@authhero/kysely-adapter 11.1.1 → 11.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- "use strict";var Ge=Object.defineProperty;var Ve=(e,t,a)=>t in e?Ge(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var H=(e,t,a)=>Ve(e,typeof t!="symbol"?t+"":t,a);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const k=require("nanoid"),N=require("@authhero/adapter-interfaces");require("@hono/zod-openapi");const h=require("kysely"),Xe=17,Ze={organization:"org_",connection:"con_",action:"act_",action_version:"ver_",hook:"h_",hook_code:"hc_",rule:"rul_",resource_server:"api_",guardian_factor:"gfa_",invite:"inv_"};function R(e){const n=k.customAlphabet("0123456789abcdefghijklmnopqrstuvwxyz",Xe)();return`${Ze[e]}${n}`}function et(){return R("organization")}function tt(){return R("connection")}function at(){return R("action")}function nt(){return R("action_version")}function ot(){return R("hook")}function rt(){return R("resource_server")}function st(){return R("hook_code")}function it(){return R("invite")}function ct(e){return async(t,a)=>{var r;const n=Date.now(),o=at();return await e.insertInto("actions").values({id:o,tenant_id:t,name:a.name,code:a.code,runtime:a.runtime||null,status:"built",secrets:a.secrets?JSON.stringify(a.secrets):null,dependencies:a.dependencies?JSON.stringify(a.dependencies):null,supported_triggers:a.supported_triggers?JSON.stringify(a.supported_triggers):null,is_system:a.is_system?1:0,inherit:a.inherit?1:0,created_at_ts:n,updated_at_ts:n}).execute(),{id:o,tenant_id:t,name:a.name,code:a.code,runtime:a.runtime,status:"built",secrets:(r=a.secrets)==null?void 0:r.map(s=>({name:s.name})),dependencies:a.dependencies,supported_triggers:a.supported_triggers,is_system:a.is_system??!1,inherit:a.inherit??!1,created_at:new Date(n).toISOString(),updated_at:new Date(n).toISOString()}}}function Q(e){if(e!=null){if(typeof e=="number")return new Date(e).toISOString();if(typeof e=="string"){if(e==="")return;const t=parseFloat(e);return!isNaN(t)&&/^\d+(\.\d+)?$/.test(e)?new Date(t).toISOString():e}}}function j(e,t=new Date(0).toISOString()){return Q(e)??t}function x(e){if(!e||e==="")return null;const t=new Date(e);return isNaN(t.getTime())?null:t.getTime()}function le(){return new Date().toISOString()}function F(e,t,a=[]){const n={};for(const o of t){const r=o.replace(/_ts$/,"");n[r]=j(e[o])}for(const o of a){const r=o.replace(/_ts$/,"");n[r]=Q(e[o])}return n}function Z(e){if(e)try{return JSON.parse(e)}catch{return}}function lt(e){return async(t,a)=>{const n=await e.selectFrom("actions").where("actions.tenant_id","=",t).where("actions.id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{created_at_ts:o,updated_at_ts:r,deployed_at_ts:s,secrets:i,dependencies:l,supported_triggers:d,is_system:_,inherit:c,tenant_id:m,...u}=n,f=F({created_at_ts:o,updated_at_ts:r},["created_at_ts","updated_at_ts"]);return{...u,tenant_id:t,...f,runtime:u.runtime??void 0,status:u.status||"built",deployed_at:s?new Date(Number(s)).toISOString():void 0,secrets:Z(i),dependencies:Z(l),supported_triggers:Z(d),is_system:!!_,inherit:!!c}}}function se(e,t){const a=new Set(t),n=r=>{const s=[];let i="",l=!1;for(let _=0;_<r.length;_++){const c=r[_];c==='"'?(l=!l,i+=c):c===" "&&!l?(i.trim()&&s.push(i.trim()),i=""):i+=c}return i.trim()&&s.push(i.trim()),s.filter(_=>{const c=_.replace(/^([^:]+)=/,"$1:"),m=c.startsWith("-")?c.slice(1):c;if(m.startsWith("_exists_:"))return a.has(m.slice(9));const u=m.indexOf(":");return u>0?a.has(m.slice(0,u)):!0}).join(" ")},o=e.split(/ OR /i);return o.length>1?o.map(n).filter(r=>r.length>0).join(" OR "):n(e)}function O(e,t,a,n){const o=a.split(/ OR /i);if(o.length>1)return t.where(d=>{const _=o.map(c=>{const m=c.trim().match(/^([^:]+):(.+)$/);if(m){const[,u,f]=m;if(!u||!f)return null;const p=f.replace(/^"(.*)"$/,"$1");return d(u.trim(),"=",p.trim())}return null}).filter(Boolean);return d.or(_)});const r=[];let s="",i=!1;for(let d=0;d<a.length;d++){const _=a[d];_==='"'?(i=!i,s+=_):_===" "&&!i?s.trim()&&(r.push(s.trim()),s=""):s+=_}return s.trim()&&r.push(s.trim()),r.filter(d=>d!=="AND").map(d=>d.replace(/^([^:]+)=/g,"$1:")).map(d=>{let _=d.startsWith("-"),c=null,m="",u=!1,f;if(d.startsWith("-_exists_:"))c=d.substring(10),u=!0,_=!0;else if(d.startsWith("_exists_:"))c=d.substring(9),u=!0,_=!1;else if(d.includes(":")){const p=_?d.substring(1):d,g=p.indexOf(":");c=p.substring(0,g),m=p.substring(g+1),u=!1,m.startsWith(">=")?(f=">=",m=m.substring(2)):m.startsWith(">")?(f=">",m=m.substring(1)):m.startsWith("<=")?(f="<=",m=m.substring(2)):m.startsWith("<")?(f="<",m=m.substring(1)):f="=",m.startsWith('"')&&m.endsWith('"')&&m.length>1&&(m=m.slice(1,-1))}else c=null,m=d,u=!1;return{key:c,value:m,isNegation:_,isExistsQuery:u,operator:f}}).forEach(({key:d,value:_,isNegation:c,isExistsQuery:m,operator:u})=>{if(d)if(m)c?t=t.where(d,"is",null):t=t.where(d,"is not",null);else if(c)switch(u){case">":t=t.where(d,"<=",_);break;case">=":t=t.where(d,"<",_);break;case"<":t=t.where(d,">=",_);break;case"<=":t=t.where(d,">",_);break;default:t=t.where(d,"!=",_)}else t=t.where(d,u,_);else if(_){const{ref:f}=e.dynamic;t=t.where(p=>p.or(n.map(g=>g==="user_id"?p(f(g),"=",_):p(f(g),"like",`%${_}%`))))}}),t}function E(e){return typeof e=="string"?parseInt(e,10):typeof e=="bigint"?Number(e):e}function ee(e){if(e)try{return JSON.parse(e)}catch{return}}function dt(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,q:s}=a;let i=e.selectFrom("actions").where("actions.tenant_id","=",t);s&&(i=O(e,i,s,["name"]));const _=(await i.offset(n*o).limit(o).selectAll().execute()).map(m=>{const{created_at_ts:u,updated_at_ts:f,deployed_at_ts:p,secrets:g,dependencies:v,supported_triggers:b,is_system:S,inherit:$,tenant_id:D,...C}=m,T=F({created_at_ts:u,updated_at_ts:f},["created_at_ts","updated_at_ts"]);return{...C,tenant_id:t,...T,runtime:C.runtime??void 0,status:C.status||"built",deployed_at:p?new Date(Number(p)).toISOString():void 0,secrets:ee(g),dependencies:ee(v),supported_triggers:ee(b),is_system:!!S,inherit:!!$}});if(!r)return{actions:_,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{actions:_,start:n*o,limit:o,length:E(c)}}}function ut(e){if(!e)return[];try{const t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function _t(e){return async(t,a,n)=>{const o={updated_at_ts:Date.now()};if(n.name!==void 0&&(o.name=n.name),n.code!==void 0&&(o.code=n.code),n.runtime!==void 0&&(o.runtime=n.runtime),n.secrets!==void 0){const s=await e.selectFrom("actions").where("actions.id","=",a).where("actions.tenant_id","=",t).select("secrets").executeTakeFirst(),i=new Map(ut(s==null?void 0:s.secrets).map(d=>[d.name,d])),l=n.secrets.map(d=>{var _;return d.value===void 0?{name:d.name,value:(_=i.get(d.name))==null?void 0:_.value}:d});o.secrets=JSON.stringify(l)}if(n.dependencies!==void 0&&(o.dependencies=JSON.stringify(n.dependencies)),n.supported_triggers!==void 0&&(o.supported_triggers=JSON.stringify(n.supported_triggers)),n.status!==void 0&&(o.status=n.status),n.deployed_at!==void 0){const s=new Date(n.deployed_at).getTime();Number.isFinite(s)&&(o.deployed_at_ts=s)}return n.is_system!==void 0&&(o.is_system=n.is_system?1:0),n.inherit!==void 0&&(o.inherit=n.inherit?1:0),(await e.updateTable("actions").set(o).where("actions.id","=",a).where("actions.tenant_id","=",t).executeTakeFirst()).numUpdatedRows>0}}function mt(e){return async(t,a)=>(await e.deleteFrom("actions").where("actions.id","=",a).where("actions.tenant_id","=",t).executeTakeFirst()).numDeletedRows>0}function ht(e){return{create:ct(e),get:lt(e),list:dt(e),update:_t(e),remove:mt(e)}}function pt(e){return async(t,a)=>{const n=Date.now();return await e.insertInto("action_executions").values({id:a.id,tenant_id:t,trigger_id:a.trigger_id,status:a.status,results:JSON.stringify(a.results),logs:a.logs?JSON.stringify(a.logs):null,created_at_ts:n,updated_at_ts:n}).execute(),{id:a.id,tenant_id:t,trigger_id:a.trigger_id,status:a.status,results:a.results,logs:a.logs,created_at:new Date(n).toISOString(),updated_at:new Date(n).toISOString()}}}function me(e){if(e)try{return JSON.parse(e)}catch{return}}function ft(e){return async(t,a)=>{const n=await e.selectFrom("action_executions").where("action_executions.tenant_id","=",t).where("action_executions.id","=",a).selectAll().executeTakeFirst();return n?{id:n.id,tenant_id:n.tenant_id,trigger_id:n.trigger_id,status:n.status,results:me(n.results)??[],logs:me(n.logs),created_at:new Date(Number(n.created_at_ts)).toISOString(),updated_at:new Date(Number(n.updated_at_ts)).toISOString()}:null}}function gt(e){return{create:pt(e),get:ft(e)}}function te(e){if(e)try{return JSON.parse(e)}catch{return}}function he(e){const{created_at_ts:t,updated_at_ts:a,secrets:n,dependencies:o,supported_triggers:r,deployed:s,runtime:i,...l}=e;return{...l,runtime:i??void 0,deployed:!!s,secrets:te(n),dependencies:te(o),supported_triggers:te(r),created_at:new Date(Number(t)).toISOString(),updated_at:new Date(Number(a)).toISOString()}}function wt(e){return{async create(t,a){const n=Date.now(),o=nt(),r=a.deployed!==!1,s=await e.transaction().execute(async i=>{const l=await i.selectFrom("action_versions").where("tenant_id","=",t).where("action_id","=",a.action_id).select("number").orderBy("number","desc").limit(1).executeTakeFirst(),d=((l==null?void 0:l.number)??0)+1;return r&&await i.updateTable("action_versions").set({deployed:0,updated_at_ts:n}).where("tenant_id","=",t).where("action_id","=",a.action_id).execute(),await i.insertInto("action_versions").values({id:o,tenant_id:t,action_id:a.action_id,number:d,code:a.code,runtime:a.runtime||null,secrets:a.secrets?JSON.stringify(a.secrets):null,dependencies:a.dependencies?JSON.stringify(a.dependencies):null,supported_triggers:a.supported_triggers?JSON.stringify(a.supported_triggers):null,deployed:r?1:0,created_at_ts:n,updated_at_ts:n}).execute(),d});return{id:o,tenant_id:t,action_id:a.action_id,number:s,code:a.code,runtime:a.runtime,secrets:a.secrets,dependencies:a.dependencies,supported_triggers:a.supported_triggers,deployed:r,created_at:new Date(n).toISOString(),updated_at:new Date(n).toISOString()}},async get(t,a,n){const o=await e.selectFrom("action_versions").where("tenant_id","=",t).where("action_id","=",a).where("id","=",n).selectAll().executeTakeFirst();return o?he(o):null},async list(t,a,n={}){const{page:o=0,per_page:r=50,include_totals:s=!1}=n,i=e.selectFrom("action_versions").where("tenant_id","=",t).where("action_id","=",a),d=(await i.orderBy("number","desc").offset(o*r).limit(r).selectAll().execute()).map(he);if(!s)return{versions:d,start:0,limit:0,length:0};const{count:_}=await i.select(c=>c.fn.countAll().as("count")).executeTakeFirstOrThrow();return{versions:d,start:o*r,limit:r,length:E(_)}},async removeForAction(t,a){const n=await e.deleteFrom("action_versions").where("tenant_id","=",t).where("action_id","=",a).executeTakeFirst();return Number(n.numDeletedRows??0)}}}var U=class extends Error{constructor(t=500,a){super(a==null?void 0:a.message,{cause:a==null?void 0:a.cause});H(this,"res");H(this,"status");this.res=a==null?void 0:a.res,this.status=t}getResponse(){return this.res?new Response(this.res.body,{status:this.status,headers:this.res.headers}):new Response(this.message,{status:this.status})}};function yt(e){return async(t,a)=>{const{identities:n,phone_verified:o,password:r,...s}=a,i={...s,login_count:s.login_count??0,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),tenant_id:t,email_verified:a.email_verified?1:0,phone_verified:o!==void 0?o?1:0:null,is_social:a.is_social?1:0,app_metadata:JSON.stringify(a.app_metadata),user_metadata:JSON.stringify(a.user_metadata),address:a.address?JSON.stringify(a.address):null};try{const l=async d=>{if(await d.insertInto("users").values(i).execute(),r&&i.user_id){const _={id:k.nanoid(),user_id:i.user_id,password:r.hash,algorithm:r.algorithm,is_current:1,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),tenant_id:t};await d.insertInto("passwords").values(_).execute()}};e.isTransaction?await l(e):await e.transaction().execute(l)}catch(l){throw l.code==="SQLITE_CONSTRAINT_UNIQUE"||l.code==="ER_DUP_ENTRY"||l.message.includes("AlreadyExists")?new U(409,{message:"User already exists"}):new U(500,{message:`${l.code}, ${l.message}`})}return{...i,email:i.email||"",email_verified:i.email_verified===1,phone_verified:i.phone_verified!==null?i.phone_verified===1:void 0,is_social:i.is_social===1,address:a.address}}}function y(e){if(e==null||typeof e!="object")return e;if(Array.isArray(e))return e.map(a=>a!==null&&typeof a=="object"?y(a):a);const t={...e};for(const a in t){const n=t[a];n===null?delete t[a]:n!==null&&typeof n=="object"&&(Array.isArray(n)?t[a]=n.map(o=>o!==null&&typeof o=="object"?y(o):o):t[a]=y(n))}return t}const vt=["email","email_verified","phone_number","phone_verified","username"];function X(e,t=!1){const a={connection:e.connection,provider:e.provider,user_id:N.parseUserId(e.user_id).id,isSocial:!!e.is_social};for(const n of vt)e[n]!==void 0&&e[n]!==null&&(a[n]=n.endsWith("_verified")?!!e[n]:e[n]);if(!t){let n={};try{n=JSON.parse(e.profileData||"{}")}catch(o){console.error("Error parsing profileData",o)}a.profileData={email:e.email,email_verified:!!e.email_verified,...n}}return a}function Ct(e){return async(t,a)=>{const[n,o]=await Promise.all([e.selectFrom("users").where("users.tenant_id","=",t).where("users.user_id","=",a).selectAll().executeTakeFirst(),e.selectFrom("users").where("users.tenant_id","=",t).where("users.linked_to","=",a).selectAll().orderBy("created_at","asc").execute()]);if(!n)return null;const{tenant_id:r,...s}=n,i={...s,email:n.email||"",email_verified:n.email_verified===1,phone_verified:n.phone_verified!==null?n.phone_verified===1:void 0,is_social:n.is_social===1,app_metadata:JSON.parse(n.app_metadata),user_metadata:JSON.parse(n.user_metadata),address:n.address?JSON.parse(n.address):void 0,identities:[X(n,!0),...o.map(l=>X(l))]};return y(i)}}const xt=["user_id","email","email_verified","username","phone_number","phone_verified","name","given_name","family_name","nickname","picture","locale","linked_to","provider","connection","is_social","last_ip","last_login","login_count","created_at","updated_at"],Tt=["email","name","phone_number","user_id"];function bt(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,sort:s,q:i}=a;let l=e.selectFrom("users").where("users.tenant_id","=",t);if(i){const p=se(i,xt);p&&(l=O(e,l,p,Tt))}if(s&&s.sort_by){const{ref:p}=e.dynamic;l=l.orderBy(p(s.sort_by),s.sort_order)}const _=await l.offset(n*o).limit(o).selectAll().execute(),c=_.map(p=>p.user_id),m=c.length?await e.selectFrom("users").selectAll().where("users.tenant_id","=",t).where("users.linked_to","in",c).orderBy("created_at","asc").execute():[],u=_.map(p=>{const g=m.filter(v=>v.linked_to===p.user_id);return y({...p,email_verified:p.email_verified===1,phone_verified:p.phone_verified!==null?p.phone_verified===1:void 0,is_social:p.is_social===1,app_metadata:JSON.parse(p.app_metadata),user_metadata:JSON.parse(p.user_metadata),address:p.address?JSON.parse(p.address):void 0,identities:[X(p,!0),...g.map(v=>X(v))]})});if(!r)return{users:u,start:0,limit:0,length:0};const{count:f}=await l.select(p=>p.fn.countAll().as("count")).executeTakeFirstOrThrow();return{users:u,start:n*o,limit:o,length:E(f)}}}function Nt(e){return async(t,a)=>(await e.deleteFrom("authentication_methods").where("authentication_methods.tenant_id","=",t).where("authentication_methods.user_id","in",o=>o.selectFrom("users").select("users.user_id").where("users.tenant_id","=",t).where(r=>r.or([r("users.user_id","=",a),r("users.linked_to","=",a)]))).execute(),await e.deleteFrom("users").where("users.tenant_id","=",t).where("users.linked_to","=",a).execute(),(await e.deleteFrom("users").where("users.tenant_id","=",t).where("users.user_id","=",a).execute()).length===1)}function B(e,t="",a={}){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){const o=t?`${t}_${n}`:n,r=e[n];typeof r=="object"&&r!==null&&!Array.isArray(r)?B(r,o,a):typeof r=="boolean"?a[o]=r?1:0:a[o]=r}return a}function Oe(e,t){const a={};for(const[n,o]of Object.entries(e)){const r=t.find(s=>n.startsWith(`${s}_`));if(!r)a[n]=o;else{const s=n.slice(r.length+1);a[r]={...a[r],[s]:o}}}return a}function St(e){return async(t,a,n)=>{const o=B({...n,updated_at:new Date().toISOString(),app_metadata:n.app_metadata?JSON.stringify(n.app_metadata):void 0,user_metadata:n.user_metadata?JSON.stringify(n.user_metadata):void 0,address:n.address?JSON.stringify(n.address):void 0,phone_verified:n.phone_verified!==void 0?n.phone_verified?1:0:void 0});return(await e.updateTable("users").set(o).where("users.tenant_id","=",t).where("users.user_id","=",a).execute()).length===1}}function Ot(e){return async(t,a,n,o)=>{const r={linked_to:null};return(await e.updateTable("users").set(r).where("users.tenant_id","=",t).where("users.user_id","=",`${n}|${o}`).where("users.linked_to","=",`${a}`).execute()).length===1}}function kt(e){const t=yt(e);return{create:t,rawCreate:t,remove:Nt(e),get:Ct(e),list:bt(e),update:St(e),unlink:Ot(e)}}function $t(e){return async(t,a)=>{const n=new Date().toISOString(),o=N.flowSchema.parse({id:`af_${k.nanoid()}`,...a,actions:a.actions||[],created_at:n,updated_at:n});return await e.insertInto("flows").values({...o,tenant_id:t,actions:JSON.stringify(o.actions)}).execute(),o}}function q(e,t){if(!e)return t;try{return JSON.parse(e)}catch{return t}}function ke(e){if(e)try{const t=JSON.parse(e);return t&&typeof t=="object"&&!Array.isArray(t)?t:void 0}catch{return}}function $e(e,t,a={...e}){for(const n in t)n in e&&(a[n]=q(e[n],t[n]));return a}function Et(e){return async(t,a)=>{const n=await e.selectFrom("flows").selectAll().where("flows.id","=",a).where("tenant_id","=",t).executeTakeFirst();if(!n)return null;const o={...n,actions:q(n.actions,[])};return N.flowSchema.parse(y(o))}}function It(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,q:s}=a;let i=e.selectFrom("flows").where("tenant_id","=",t);s&&(i=O(e,i,s,[]));const _=(await i.offset(n*o).limit(o).selectAll().execute()).map(m=>{const u={...m,actions:q(m.actions,[])};return N.flowSchema.parse(y(u))});if(!r)return{flows:_,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{flows:_,start:n*o,limit:o,length:E(c)}}}function Pt(e){return async(t,a,n)=>{const o={...n,updated_at:new Date().toISOString()};n.actions!==void 0&&(o.actions=JSON.stringify(n.actions));const{numUpdatedRows:r}=await e.updateTable("flows").set(o).where("id","=",a).where("tenant_id","=",t).executeTakeFirst();if(r===0n)return null;const s=await e.selectFrom("flows").selectAll().where("id","=",a).where("tenant_id","=",t).executeTakeFirst();return s?N.flowSchema.parse({...s,actions:s.actions?JSON.parse(s.actions):[]}):null}}function zt(e){return async(t,a)=>{var o;return(((o=(await e.deleteFrom("flows").where("id","=",a).where("tenant_id","=",t).execute())[0])==null?void 0:o.numDeletedRows)??0n)>0n}}function Dt(e){return{create:$t(e),get:Et(e),list:It(e),update:Pt(e),remove:zt(e)}}function W(e,t,a={...e}){for(const n of t)e[n]!==void 0&&(a[n]=JSON.stringify(e[n]));return a}function Ee(e,t,a=e){for(const n of t)e[n]!==void 0&&(a[n]=e[n]?1:0)}function At(e){const t={};for(const a in e)e[a]!==void 0&&e[a]!==null&&(t[a]=e[a]);return t}function Ie(e){const t={...e};return e.session_cookie&&typeof e.session_cookie=="string"&&(t.session_cookie=JSON.parse(e.session_cookie)),e.enabled_locales&&typeof e.enabled_locales=="string"&&(t.enabled_locales=JSON.parse(e.enabled_locales)),e.error_page&&typeof e.error_page=="string"&&(t.error_page=JSON.parse(e.error_page)),e.flags&&typeof e.flags=="string"&&(t.flags=JSON.parse(e.flags)),e.sandbox_versions_available&&typeof e.sandbox_versions_available=="string"&&(t.sandbox_versions_available=JSON.parse(e.sandbox_versions_available)),e.change_password&&typeof e.change_password=="string"&&(t.change_password=JSON.parse(e.change_password)),e.guardian_mfa_page&&typeof e.guardian_mfa_page=="string"&&(t.guardian_mfa_page=JSON.parse(e.guardian_mfa_page)),e.sessions&&typeof e.sessions=="string"&&(t.sessions=JSON.parse(e.sessions)),e.oidc_logout&&typeof e.oidc_logout=="string"&&(t.oidc_logout=JSON.parse(e.oidc_logout)),e.device_flow&&typeof e.device_flow=="string"&&(t.device_flow=JSON.parse(e.device_flow)),e.default_token_quota&&typeof e.default_token_quota=="string"&&(t.default_token_quota=JSON.parse(e.default_token_quota)),e.allowed_logout_urls&&typeof e.allowed_logout_urls=="string"&&(t.allowed_logout_urls=JSON.parse(e.allowed_logout_urls)),e.acr_values_supported&&typeof e.acr_values_supported=="string"&&(t.acr_values_supported=JSON.parse(e.acr_values_supported)),e.mtls&&typeof e.mtls=="string"&&(t.mtls=JSON.parse(e.mtls)),e.mfa&&typeof e.mfa=="string"&&(t.mfa=JSON.parse(e.mfa)),e.attack_protection&&typeof e.attack_protection=="string"&&(t.attack_protection=JSON.parse(e.attack_protection)),e.allow_organization_name_in_authentication_api!==void 0&&(t.allow_organization_name_in_authentication_api=e.allow_organization_name_in_authentication_api===1),e.customize_mfa_in_postlogin_action!==void 0&&(t.customize_mfa_in_postlogin_action=e.customize_mfa_in_postlogin_action===1),e.pushed_authorization_requests_supported!==void 0&&(t.pushed_authorization_requests_supported=e.pushed_authorization_requests_supported===1),e.authorization_response_iss_parameter_supported!==void 0&&(t.authorization_response_iss_parameter_supported=e.authorization_response_iss_parameter_supported===1),y(t)}function Pe(e){const t={...e};return W(e,["session_cookie","enabled_locales","error_page","flags","sandbox_versions_available","change_password","guardian_mfa_page","sessions","oidc_logout","device_flow","default_token_quota","allowed_logout_urls","acr_values_supported","mtls","mfa","attack_protection"],t),e.allow_organization_name_in_authentication_api!==void 0&&(t.allow_organization_name_in_authentication_api=e.allow_organization_name_in_authentication_api?1:0),e.customize_mfa_in_postlogin_action!==void 0&&(t.customize_mfa_in_postlogin_action=e.customize_mfa_in_postlogin_action?1:0),e.pushed_authorization_requests_supported!==void 0&&(t.pushed_authorization_requests_supported=e.pushed_authorization_requests_supported?1:0),e.authorization_response_iss_parameter_supported!==void 0&&(t.authorization_response_iss_parameter_supported=e.authorization_response_iss_parameter_supported?1:0),At(t)}function Ft(e){return async t=>{var o,r;const a={id:t.id||k.nanoid(),created_at:new Date().toISOString(),updated_at:new Date().toISOString(),...t},n=Pe(a);try{await e.insertInto("tenants").values(n).execute()}catch(s){throw(o=s==null?void 0:s.message)!=null&&o.includes("UNIQUE constraint failed")||(r=s==null?void 0:s.message)!=null&&r.includes("duplicate key")||(s==null?void 0:s.code)==="SQLITE_CONSTRAINT"||(s==null?void 0:s.code)==="ER_DUP_ENTRY"||(s==null?void 0:s.code)==="23505"?new U(409,{message:`Tenant with ID '${a.id}' already exists`}):s}return a}}function jt(e){return async t=>{const a=await e.selectFrom("tenants").where("tenants.id","=",t).selectAll().executeTakeFirst();return a?Ie(a):null}}function Rt(e){return async t=>{let a=e.selectFrom("tenants");const{page:n=0,per_page:o=50,include_totals:r=!1,sort:s,q:i}=t||{};if(s&&s.sort_by){const{ref:u}=e.dynamic;a=a.orderBy(u(s.sort_by),s.sort_order)}i&&(a=O(e,a,i,["friendly_name"]));const _=(await a.offset(n*o).limit(o).selectAll().execute()).map(Ie);if(!r)return{tenants:_};const{count:c}=await a.select(u=>u.fn.countAll().as("count")).executeTakeFirstOrThrow(),m=E(c);return{tenants:_,start:n*o,limit:o,length:m}}}function qt(e){return async(t,a)=>{const o={...Pe(a),id:t,updated_at:new Date().toISOString()};await e.updateTable("tenants").set(o).where("id","=",t).execute()}}function Mt(e){return async t=>(await e.deleteFrom("tenants").where("tenants.id","=",t).execute()).length===1}function Jt(e){return{create:Ft(e),get:jt(e),list:Rt(e),update:qt(e),remove:Mt(e)}}function pe(e){return e?JSON.stringify(e):void 0}const Lt=256;function Ut(e){return async(t,a)=>{var i,l,d;const n=(i=a.user_agent)==null?void 0:i.slice(0,Lt),o=a.log_id||k.nanoid(),{location_info:r,...s}=a;return await e.insertInto("logs").values({...s,log_id:o,tenant_id:t,user_agent:n,description:(l=a.description)==null?void 0:l.substring(0,256),isMobile:a.isMobile?1:0,scope:a.scope,auth0_client:pe(a.auth0_client),details:(d=pe(a.details))==null?void 0:d.substring(0,8192),country_code:r==null?void 0:r.country_code,city_name:r==null?void 0:r.city_name,latitude:r==null?void 0:r.latitude,longitude:r==null?void 0:r.longitude,time_zone:r==null?void 0:r.time_zone,continent_code:r==null?void 0:r.continent_code}).execute(),{...a,log_id:o,user_agent:n}}}function fe(e){if(!e)return"";try{return JSON.parse(e)}catch{return e}}function ze(e){return{...e,client_id:e.client_id,client_name:"",auth0_client:fe(e.auth0_client),details:fe(e.details),isMobile:!!e.isMobile,scope:e.scope||void 0,log_id:e.log_id,location_info:e.country_code?{country_code:e.country_code,city_name:e.city_name||"",latitude:e.latitude||"",longitude:e.longitude||"",time_zone:e.time_zone||"",continent_code:e.continent_code||""}:void 0}}function Bt(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,sort:s,q:i}=a;let l=e.selectFrom("logs").where("logs.tenant_id","=",t);i&&(l=O(e,l,i,["user_id","ip"]));let d=l;if(s&&s.sort_by){const{ref:u}=e.dynamic;d=d.orderBy(u(s.sort_by),s.sort_order)}d=d.offset(n*o).limit(o);const c=(await d.selectAll().execute()).map(ze);if(!r)return{logs:c,start:0,limit:0,length:0};const{count:m}=await l.select(u=>u.fn.countAll().as("count")).executeTakeFirstOrThrow();return{logs:c,start:n*o,limit:o,length:E(m)}}}function Kt(e){return async(t,a)=>{const n=await e.selectFrom("logs").where("logs.tenant_id","=",t).where("logs.log_id","=",a).selectAll().executeTakeFirst();return n?ze(n):null}}function Qt(e){return{create:Ut(e),list:Bt(e),get:Kt(e)}}function Wt(e){return async(t,a)=>{const n=await e.selectFrom("sessions").where("sessions.tenant_id","=",t).where("sessions.id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:o,device:r,clients:s,created_at_ts:i,updated_at_ts:l,expires_at_ts:d,idle_expires_at_ts:_,authenticated_at_ts:c,last_interaction_at_ts:m,used_at_ts:u,revoked_at_ts:f,...p}=n,g=F({created_at_ts:i,updated_at_ts:l,expires_at_ts:d,idle_expires_at_ts:_,authenticated_at_ts:c,last_interaction_at_ts:m,used_at_ts:u,revoked_at_ts:f},["created_at_ts","updated_at_ts","authenticated_at_ts","last_interaction_at_ts"],["expires_at_ts","idle_expires_at_ts","used_at_ts","revoked_at_ts"]);return{...p,...g,device:JSON.parse(r),clients:JSON.parse(s)}}}function Ht(e){return async(t,a)=>{const n=Date.now(),o=le(),r={...a,created_at:o,updated_at:o,authenticated_at:o,last_interaction_at:o},{expires_at:s,idle_expires_at:i,used_at:l,revoked_at:d,device:_,clients:c,...m}=a;return await e.insertInto("sessions").values({...m,tenant_id:t,created_at_ts:n,updated_at_ts:n,authenticated_at_ts:n,last_interaction_at_ts:n,expires_at_ts:x(s),idle_expires_at_ts:x(i),used_at_ts:x(l),revoked_at_ts:x(d),device:JSON.stringify(_),clients:JSON.stringify(c)}).execute(),r}}function Yt(e){return async(t,a)=>!!(await e.deleteFrom("sessions").where("tenant_id","=",t).where("sessions.id","=",a).execute()).length}function Gt(e){return async(t,a,n)=>{const o={updated_at_ts:Date.now(),device:n.device?JSON.stringify(n.device):void 0,clients:n.clients?JSON.stringify(n.clients):void 0};return n.expires_at!==void 0&&(o.expires_at_ts=x(n.expires_at)),n.idle_expires_at!==void 0&&(o.idle_expires_at_ts=x(n.idle_expires_at)),n.authenticated_at!==void 0&&(o.authenticated_at_ts=x(n.authenticated_at)),n.last_interaction_at!==void 0&&(o.last_interaction_at_ts=x(n.last_interaction_at)),n.used_at!==void 0&&(o.used_at_ts=x(n.used_at)),n.revoked_at!==void 0&&(o.revoked_at_ts=x(n.revoked_at)),n.user_id!==void 0&&(o.user_id=n.user_id),n.login_session_id!==void 0&&(o.login_session_id=n.login_session_id),!!(await e.updateTable("sessions").set(o).where("tenant_id","=",t).where("sessions.id","=",a).execute()).length}}function Vt(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,sort:s,q:i}=a;let l=e.selectFrom("sessions").where("sessions.tenant_id","=",t);i&&(l=O(e,l,i,["user_id","session_id"]));let d=l;if(s&&s.sort_by){const{ref:f}=e.dynamic;d=d.orderBy(f(s.sort_by),s.sort_order)}d=d.offset(n*o).limit(o);const c=(await d.selectAll().execute()).map(f=>{const{tenant_id:p,device:g,clients:v,created_at_ts:b,updated_at_ts:S,expires_at_ts:$,idle_expires_at_ts:D,authenticated_at_ts:C,last_interaction_at_ts:T,used_at_ts:K,revoked_at_ts:M,...He}=f,Ye=F({created_at_ts:b,updated_at_ts:S,expires_at_ts:$,idle_expires_at_ts:D,authenticated_at_ts:C,last_interaction_at_ts:T,used_at_ts:K,revoked_at_ts:M},["created_at_ts","updated_at_ts","authenticated_at_ts","last_interaction_at_ts"],["expires_at_ts","idle_expires_at_ts","used_at_ts","revoked_at_ts"]);return{...He,...Ye,device:JSON.parse(g),clients:JSON.parse(v)}});if(!r)return{sessions:c,start:0,limit:0,length:0};const{count:m}=await l.select(f=>f.fn.countAll().as("count")).executeTakeFirstOrThrow(),u=E(m);return{sessions:c,start:n*o,limit:o,length:u}}}function Xt(e){return{create:Ht(e),get:Wt(e),list:Vt(e),remove:Yt(e),update:Gt(e)}}function Zt(e){return async(t,a)=>{const n=await e.selectFrom("passwords").where("passwords.tenant_id","=",t).where("passwords.user_id","=",a).where("passwords.is_current","=",1).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:o,...r}=n;return{...r,is_current:!!r.is_current}}}function ea(e){return async(t,a)=>{const n=a.id||k.nanoid(),o=a.is_current??!0,r={id:n,...a,is_current:o,created_at:new Date().toISOString(),updated_at:new Date().toISOString()};return o&&await e.updateTable("passwords").set({is_current:0}).where("user_id","=",a.user_id).where("tenant_id","=",t).where("is_current","=",1).execute(),await e.insertInto("passwords").values({...r,is_current:r.is_current?1:0,tenant_id:t}).execute(),r}}function ta(e){return async(t,a)=>{let n=e.updateTable("passwords").set({password:a.password,algorithm:a.algorithm,is_current:a.is_current?1:0,updated_at:new Date().toISOString()}).where("tenant_id","=",t).where("user_id","=",a.user_id);return a.id?n=n.where("id","=",a.id):n=n.where("is_current","=",1),(await n.execute()).length===1}}function aa(e){return async(t,a,n)=>{let o=e.selectFrom("passwords").where("passwords.tenant_id","=",t).where("passwords.user_id","=",a).orderBy("created_at","desc");return n&&(o=o.limit(n)),(await o.selectAll().execute()).map(({tenant_id:s,...i})=>({...i,is_current:!!i.is_current}))}}function na(e){return{create:ea(e),update:ta(e),get:Zt(e),list:aa(e)}}function oa(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,q:s}=a;let i=e.selectFrom("codes").where("codes.tenant_id","=",t);s&&(i=O(e,i,s,["code","login_id"]));const _=(await i.offset(n*o).limit(o).selectAll().execute()).map(m=>{const{tenant_id:u,...f}=m;return N.codeSchema.parse(y(f))});if(!r)return{codes:_,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{codes:_,start:n*o,limit:o,length:E(c)}}}function ra(e){return async(t,a)=>{const n={...a,created_at:new Date().toISOString()};return await e.insertInto("codes").values({...n,tenant_id:t}).execute(),n}}function sa(e){return async(t,a)=>(await e.deleteFrom("codes").where("codes.tenant_id","=",t).where("codes.code_id","=",a).executeTakeFirst()).numDeletedRows>0}function ia(e){return async(t,a,n)=>{let o=e.selectFrom("codes").where("codes.code_id","=",a).where("codes.code_type","=",n);t.length&&(o=o.where("codes.tenant_id","=",t));const r=await o.selectAll().executeTakeFirst();return r?y(r):null}}function ca(e){return async(t,a)=>(await e.updateTable("codes").set({used_at:new Date().toISOString()}).where("codes.tenant_id","=",t).where("codes.code_id","=",a).executeTakeFirst()).numUpdatedRows>0}function la(e){return async(t,a)=>(await e.updateTable("codes").set({used_at:new Date().toISOString()}).where("codes.tenant_id","=",t).where("codes.code_id","=",a).where("codes.used_at","is",null).executeTakeFirst()).numUpdatedRows>0}function da(e){return{create:ra(e),list:oa(e),remove:sa(e),used:ca(e),consume:la(e),get:ia(e)}}function ua(e){return async(t,a)=>{const{is_system:n,...o}=a,r={id:o.id||tt(),...o,is_system:n?!0:void 0,created_at:new Date().toISOString(),updated_at:new Date().toISOString()};return await e.insertInto("connections").values({...r,is_system:n?1:0,options:JSON.stringify(r.options||{}),tenant_id:t}).execute(),r}}function de(e){const{is_system:t,...a}=e;return y({...a,is_system:t?!0:void 0,options:JSON.parse(e.options)})}function _a(e){return e.map(de)}function ma(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,q:s}=a;let i=e.selectFrom("connections").where("connections.tenant_id","=",t);s&&(i=O(e,i,s,["user_id","ip"]));const d=await i.offset(n*o).limit(o).selectAll().execute(),_=_a(d);if(!r)return{connections:_,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{connections:_,start:n*o,limit:o,length:E(c)}}}function ha(e){return async(t,a)=>(await e.deleteFrom("connections").where("connections.tenant_id","=",t).where("connections.id","=",a).executeTakeFirst()).numDeletedRows>0}function pa(e){return async(t,a)=>{const n=await e.selectFrom("connections").where("connections.tenant_id","=",t).where("connections.id","=",a).selectAll().executeTakeFirst();return n?de(n):null}}function fa(e){return async(t,a,n)=>{const{is_system:o,...r}=n,s={...r,is_system:o!==void 0?o?1:0:void 0,updated_at:new Date().toISOString()};return await e.updateTable("connections").set({...s,options:s.options?JSON.stringify(s.options):void 0}).where("connections.id","=",a).where("connections.tenant_id","=",t).execute(),!0}}function ga(e){return{create:ua(e),get:pa(e),list:ma(e),remove:ha(e),update:fa(e)}}function wa(e){return async(t,a)=>{const n=a.client_id??k.nanoid(),o={created_at:new Date().toISOString(),updated_at:new Date().toISOString(),...a,client_id:n,global:a.global??!1,is_first_party:a.is_first_party??!1,oidc_conformant:a.oidc_conformant??!0,auth0_conformant:a.auth0_conformant??!0,sso:a.sso??!1,sso_disabled:a.sso_disabled??!1,cross_origin_authentication:a.cross_origin_authentication??!1,custom_login_page_on:a.custom_login_page_on??!1,require_pushed_authorization_requests:a.require_pushed_authorization_requests??!1,require_proof_of_possession:a.require_proof_of_possession??!1,hide_sign_up_disabled_error:a.hide_sign_up_disabled_error??!1},r={...o,tenant_id:t};return Ee(o,["global","is_first_party","oidc_conformant","auth0_conformant","sso","sso_disabled","cross_origin_authentication","custom_login_page_on","require_pushed_authorization_requests","require_proof_of_possession","hide_sign_up_disabled_error"],r),Object.assign(r,{callbacks:JSON.stringify(a.callbacks||[]),allowed_origins:JSON.stringify(a.allowed_origins||[]),web_origins:JSON.stringify(a.web_origins||[]),client_aliases:JSON.stringify(a.client_aliases||[]),allowed_clients:JSON.stringify(a.allowed_clients||[]),connections:JSON.stringify(a.connections||[]),allowed_logout_urls:JSON.stringify(a.allowed_logout_urls||[]),session_transfer:JSON.stringify(a.session_transfer||{}),oidc_logout:JSON.stringify(a.oidc_logout||{}),grant_types:JSON.stringify(a.grant_types||[]),jwt_configuration:JSON.stringify(a.jwt_configuration||{}),signing_keys:JSON.stringify(a.signing_keys||[]),encryption_key:JSON.stringify(a.encryption_key||{}),addons:JSON.stringify(a.addons||{}),client_metadata:JSON.stringify(a.client_metadata||{}),mobile:JSON.stringify(a.mobile||{}),native_social_login:JSON.stringify(a.native_social_login||{}),refresh_token:JSON.stringify(a.refresh_token||{}),default_organization:JSON.stringify(a.default_organization||{}),client_authentication_methods:JSON.stringify(a.client_authentication_methods||{}),signed_request_object:JSON.stringify(a.signed_request_object||{}),token_quota:JSON.stringify(a.token_quota||{}),owner_user_id:a.owner_user_id??null,registration_type:a.registration_type??null,registration_metadata:a.registration_metadata?JSON.stringify(a.registration_metadata):null}),await e.insertInto("clients").values(r).execute(),o}}function ya(e){return async(t,a)=>{const n=await e.selectFrom("clients").where("clients.tenant_id","=",t).where("clients.client_id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:o,...r}=n;return y({...r,global:!!n.global,is_first_party:!!n.is_first_party,oidc_conformant:!!n.oidc_conformant,auth0_conformant:!!n.auth0_conformant,sso:!!n.sso,sso_disabled:!!n.sso_disabled,cross_origin_authentication:!!n.cross_origin_authentication,custom_login_page_on:!!n.custom_login_page_on,require_pushed_authorization_requests:!!n.require_pushed_authorization_requests,require_proof_of_possession:!!n.require_proof_of_possession,hide_sign_up_disabled_error:!!n.hide_sign_up_disabled_error,callbacks:JSON.parse(n.callbacks),allowed_origins:JSON.parse(n.allowed_origins),web_origins:JSON.parse(n.web_origins),client_aliases:JSON.parse(n.client_aliases),allowed_clients:JSON.parse(n.allowed_clients),connections:JSON.parse(n.connections||"[]"),allowed_logout_urls:JSON.parse(n.allowed_logout_urls),session_transfer:JSON.parse(n.session_transfer),oidc_logout:JSON.parse(n.oidc_logout),grant_types:JSON.parse(n.grant_types),jwt_configuration:JSON.parse(n.jwt_configuration),signing_keys:JSON.parse(n.signing_keys),encryption_key:JSON.parse(n.encryption_key),addons:JSON.parse(n.addons),client_metadata:JSON.parse(n.client_metadata),mobile:JSON.parse(n.mobile),native_social_login:JSON.parse(n.native_social_login),refresh_token:JSON.parse(n.refresh_token),default_organization:JSON.parse(n.default_organization),client_authentication_methods:JSON.parse(n.client_authentication_methods),signed_request_object:JSON.parse(n.signed_request_object),token_quota:JSON.parse(n.token_quota),registration_metadata:n.registration_metadata?JSON.parse(n.registration_metadata):void 0})}}function va(e){return async t=>{const a=await e.selectFrom("clients").where("clients.client_id","=",t).selectAll().executeTakeFirst();return a?y({...a,global:!!a.global,is_first_party:!!a.is_first_party,oidc_conformant:!!a.oidc_conformant,auth0_conformant:!!a.auth0_conformant,sso:!!a.sso,sso_disabled:!!a.sso_disabled,cross_origin_authentication:!!a.cross_origin_authentication,custom_login_page_on:!!a.custom_login_page_on,require_pushed_authorization_requests:!!a.require_pushed_authorization_requests,require_proof_of_possession:!!a.require_proof_of_possession,hide_sign_up_disabled_error:!!a.hide_sign_up_disabled_error,callbacks:JSON.parse(a.callbacks),allowed_origins:JSON.parse(a.allowed_origins),web_origins:JSON.parse(a.web_origins),client_aliases:JSON.parse(a.client_aliases),allowed_clients:JSON.parse(a.allowed_clients),connections:JSON.parse(a.connections||"[]"),allowed_logout_urls:JSON.parse(a.allowed_logout_urls),session_transfer:JSON.parse(a.session_transfer),oidc_logout:JSON.parse(a.oidc_logout),grant_types:JSON.parse(a.grant_types),jwt_configuration:JSON.parse(a.jwt_configuration),signing_keys:JSON.parse(a.signing_keys),encryption_key:JSON.parse(a.encryption_key),addons:JSON.parse(a.addons),client_metadata:JSON.parse(a.client_metadata),mobile:JSON.parse(a.mobile),native_social_login:JSON.parse(a.native_social_login),refresh_token:JSON.parse(a.refresh_token),default_organization:JSON.parse(a.default_organization),client_authentication_methods:JSON.parse(a.client_authentication_methods),signed_request_object:JSON.parse(a.signed_request_object),token_quota:JSON.parse(a.token_quota),registration_metadata:a.registration_metadata?JSON.parse(a.registration_metadata):void 0}):null}}function Ca(e){return async(t,a)=>{let n=e.selectFrom("clients").where("clients.tenant_id","=",t);const o=new Set(["owner_user_id","registration_type"]);if(a!=null&&a.q){const m=a.q.trim().match(/^([a-zA-Z_][a-zA-Z0-9_]*):"?([^"]*)"?$/);if(m&&o.has(m[1])&&m[2]){const u=m[1];n=n.where(u,"=",m[2])}else n=n.where(u=>u.or([u("name","like",`%${a.q}%`),u("client_id","like",`%${a.q}%`)]))}if(a!=null&&a.sort){const c=a.sort.sort_order==="asc"?"asc":"desc",m=a.sort.sort_by;["name","client_id","created_at","updated_at"].includes(m)?n=n.orderBy(m,c):n=n.orderBy("created_at","desc")}else n=n.orderBy("created_at","desc");if((a==null?void 0:a.from)!==void 0){const c=parseInt(a.from,10);isNaN(c)||(n=n.offset(c))}else if((a==null?void 0:a.page)!==void 0){const c=(a==null?void 0:a.per_page)||(a==null?void 0:a.take)||10,m=a.page*c;n=n.offset(m)}const r=(a==null?void 0:a.take)||(a==null?void 0:a.per_page)||10;n=n.limit(r);const s=await n.selectAll().execute();let i=s.length;if(a!=null&&a.include_totals){let c=e.selectFrom("clients").select(h.sql`count(*)`.as("count")).where("clients.tenant_id","=",t);if(a!=null&&a.q){const f=a.q.trim().match(/^([a-zA-Z_][a-zA-Z0-9_]*):"?([^"]*)"?$/);if(f&&o.has(f[1])&&f[2]){const p=f[1];c=c.where(p,"=",f[2])}else c=c.where(p=>p.or([p("name","like",`%${a.q}%`),p("client_id","like",`%${a.q}%`)]))}const m=await c.executeTakeFirst();i=Number((m==null?void 0:m.count)||0)}const l=s.map(c=>y({...c,global:!!c.global,is_first_party:!!c.is_first_party,oidc_conformant:!!c.oidc_conformant,auth0_conformant:!!c.auth0_conformant,sso:!!c.sso,sso_disabled:!!c.sso_disabled,cross_origin_authentication:!!c.cross_origin_authentication,custom_login_page_on:!!c.custom_login_page_on,require_pushed_authorization_requests:!!c.require_pushed_authorization_requests,require_proof_of_possession:!!c.require_proof_of_possession,hide_sign_up_disabled_error:!!c.hide_sign_up_disabled_error,callbacks:JSON.parse(c.callbacks),allowed_origins:JSON.parse(c.allowed_origins),web_origins:JSON.parse(c.web_origins),client_aliases:JSON.parse(c.client_aliases),allowed_clients:JSON.parse(c.allowed_clients),connections:JSON.parse(c.connections||"[]"),allowed_logout_urls:JSON.parse(c.allowed_logout_urls),session_transfer:JSON.parse(c.session_transfer),oidc_logout:JSON.parse(c.oidc_logout),grant_types:JSON.parse(c.grant_types),jwt_configuration:JSON.parse(c.jwt_configuration),signing_keys:JSON.parse(c.signing_keys),encryption_key:JSON.parse(c.encryption_key),addons:JSON.parse(c.addons),client_metadata:JSON.parse(c.client_metadata),mobile:JSON.parse(c.mobile),native_social_login:JSON.parse(c.native_social_login),refresh_token:JSON.parse(c.refresh_token),default_organization:JSON.parse(c.default_organization),client_authentication_methods:JSON.parse(c.client_authentication_methods),signed_request_object:JSON.parse(c.signed_request_object),token_quota:JSON.parse(c.token_quota),registration_metadata:c.registration_metadata?JSON.parse(c.registration_metadata):void 0})),d=(a==null?void 0:a.take)||(a==null?void 0:a.per_page)||10,_=a!=null&&a.from?parseInt(a.from,10):a!=null&&a.page?a.page*d:0;return{clients:l,totals:{start:isNaN(_)?0:_,limit:d,length:l.length,total:i}}}}function xa(e){return async(t,a)=>(await e.deleteFrom("clients").where("clients.tenant_id","=",t).where("clients.client_id","=",a).executeTakeFirst()).numDeletedRows>0}function Ta(e){return async(t,a,n)=>{const o={...n,updated_at:new Date().toISOString()};return Ee(n,["global","is_first_party","oidc_conformant","auth0_conformant","sso","sso_disabled","cross_origin_authentication","custom_login_page_on","require_pushed_authorization_requests","require_proof_of_possession","hide_sign_up_disabled_error"],o),W(n,["callbacks","allowed_origins","web_origins","client_aliases","allowed_clients","connections","allowed_logout_urls","session_transfer","oidc_logout","grant_types","jwt_configuration","signing_keys","encryption_key","addons","client_metadata","mobile","native_social_login","refresh_token","default_organization","client_authentication_methods","signed_request_object","token_quota","registration_metadata"],o),(await e.updateTable("clients").set(o).where("clients.tenant_id","=",t).where("clients.client_id","=",a).executeTakeFirst()).numUpdatedRows>0}}function ba(e){return{create:wa(e),get:ya(e),getByClientId:va(e),list:Ca(e),remove:xa(e),update:Ta(e)}}function Na(e){return async(t,a)=>{const n=await e.selectFrom("clients").where("clients.tenant_id","=",t).where("clients.client_id","=",a).select("connections").executeTakeFirst();if(!n)return[];const o=JSON.parse(n.connections||"[]");if(o.length===0)return[];const r=await e.selectFrom("connections").where("connections.tenant_id","=",t).where("connections.id","in",o).selectAll().execute(),s=new Map(r.map(i=>[i.id,de(i)]));return o.map(i=>s.get(i)).filter(i=>i!==void 0)}}function Sa(e){return async(t,a,n)=>(await e.updateTable("clients").set({connections:JSON.stringify(n),updated_at:new Date().toISOString()}).where("clients.tenant_id","=",t).where("clients.client_id","=",a).executeTakeFirst()).numUpdatedRows>0}function Oa(e){return async(t,a)=>{const n=await e.selectFrom("clients").where("clients.tenant_id","=",t).select(["client_id","connections"]).execute(),o=[];for(const r of n)JSON.parse(r.connections||"[]").includes(a)&&o.push(r.client_id);return o}}function ka(e){return async(t,a,n)=>{const o=await e.selectFrom("clients").where("clients.tenant_id","=",t).where("clients.client_id","=",n).select("connections").executeTakeFirst();if(!o)return!1;const r=JSON.parse(o.connections||"[]");return r.includes(a)?!0:(r.push(a),(await e.updateTable("clients").set({connections:JSON.stringify(r),updated_at:new Date().toISOString()}).where("clients.tenant_id","=",t).where("clients.client_id","=",n).executeTakeFirst()).numUpdatedRows>0)}}function $a(e){return async(t,a,n)=>{const o=await e.selectFrom("clients").where("clients.tenant_id","=",t).where("clients.client_id","=",n).select("connections").executeTakeFirst();if(!o)return!1;const r=JSON.parse(o.connections||"[]"),s=r.filter(i=>i!==a);return s.length!==r.length?(await e.updateTable("clients").set({connections:JSON.stringify(s),updated_at:new Date().toISOString()}).where("clients.tenant_id","=",t).where("clients.client_id","=",n).executeTakeFirst()).numUpdatedRows>0:!0}}function Ea(e){return{listByClient:Na(e),updateByClient:Sa(e),listByConnection:Oa(e),addClientToConnection:ka(e),removeClientFromConnection:$a(e)}}function Ia(e){return async(t,a)=>{const n=new Date().toISOString(),o=k.nanoid(),{scope:r,authorization_details_types:s,...i}=a,l={id:o,tenant_id:t,...i,scope:r?JSON.stringify(r):"[]",authorization_details_types:s?JSON.stringify(s):"[]",allow_any_organization:i.allow_any_organization!==void 0?i.allow_any_organization?1:0:void 0,is_system:i.is_system!==void 0?i.is_system?1:0:void 0,created_at:n,updated_at:n};return await e.insertInto("client_grants").values(l).execute(),y({id:o,tenant_id:t,...i,scope:r||[],authorization_details_types:s||[],allow_any_organization:i.allow_any_organization??!1,is_system:i.is_system??!1,created_at:n,updated_at:n})}}function Pa(e){return async(t,a)=>{const n=await e.selectFrom("client_grants").selectAll().where("client_grants.tenant_id","=",t).where("client_grants.id","=",a).executeTakeFirst();if(!n)return null;const o={id:n.id,client_id:n.client_id,audience:n.audience,scope:n.scope?JSON.parse(n.scope):[],organization_usage:n.organization_usage,allow_any_organization:n.allow_any_organization!==void 0?!!n.allow_any_organization:!1,is_system:n.is_system!==void 0?!!n.is_system:!1,subject_type:n.subject_type,authorization_details_types:n.authorization_details_types?JSON.parse(n.authorization_details_types):[],created_at:n.created_at,updated_at:n.updated_at};return y(o)}}function za(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,q:s,sort:i}=a;let l=e.selectFrom("client_grants").where("client_grants.tenant_id","=",t);if(s){const u=s.trim(),f=u.split(/\s+/),p=f.length===1?f[0]:void 0,g=p?p.match(/^(-)?([a-zA-Z_][a-zA-Z0-9_]*):"?([^"]*)"?$/):null,v=g?g[3]:"",b=/^(>=|>|<=|<)/.test(v||"");if(g&&!b&&v){const S=!!g[1],$=g[2],{ref:D}=e.dynamic,C=D(`client_grants.${$}`);if($==="allow_any_organization"){const T=v==="true"?1:0;S?l=l.where(C,"!=",T):l=l.where(C,"=",T)}else S?l=l.where(C,"!=",v):l=l.where(C,"=",v)}else l=O(e,l,u,[])}let d=l;if(i){const{ref:u}=e.dynamic;d=d.orderBy(u(i.sort_by),i.sort_order)}else d=d.orderBy("client_grants.created_at","desc");d=d.limit(o).offset(n*o);const c=(await d.selectAll().execute()).map(u=>{const f={id:u.id,client_id:u.client_id,audience:u.audience,scope:u.scope?JSON.parse(u.scope):[],organization_usage:u.organization_usage,allow_any_organization:u.allow_any_organization!==void 0?!!u.allow_any_organization:!1,is_system:u.is_system!==void 0?!!u.is_system:!1,subject_type:u.subject_type,authorization_details_types:u.authorization_details_types?JSON.parse(u.authorization_details_types):[],created_at:u.created_at,updated_at:u.updated_at};return y(f)});if(!r)return{client_grants:c,start:0,limit:0,length:0};const{count:m}=await l.select(u=>u.fn.countAll().as("count")).executeTakeFirstOrThrow();return{client_grants:c,start:n*o,limit:o,length:E(m)}}}function Da(e){return async(t,a)=>((await e.deleteFrom("client_grants").where("client_grants.tenant_id","=",t).where("client_grants.id","=",a).executeTakeFirst()).numDeletedRows??0n)>0n}function Aa(e){return async(t,a,n)=>{const o=new Date().toISOString(),{scope:r,authorization_details_types:s,...i}=n,l={...i,updated_at:o};return r!==void 0&&(l.scope=JSON.stringify(r)),s!==void 0&&(l.authorization_details_types=JSON.stringify(s)),i.allow_any_organization!==void 0&&(l.allow_any_organization=i.allow_any_organization?1:0),i.is_system!==void 0&&(l.is_system=i.is_system?1:0),((await e.updateTable("client_grants").set(l).where("client_grants.tenant_id","=",t).where("client_grants.id","=",a).executeTakeFirst()).numUpdatedRows??0n)>0n}}function Fa(e){return{create:Ia(e),get:Pa(e),list:za(e),remove:Da(e),update:Aa(e)}}function ja(e){return async(t,a)=>{const n=Date.now();return await e.insertInto("client_registration_tokens").values({id:a.id,tenant_id:t,token_hash:a.token_hash,type:a.type,client_id:a.client_id??null,sub:a.sub??null,constraints:a.constraints?JSON.stringify(a.constraints):null,single_use:a.single_use?1:0,expires_at_ts:x(a.expires_at),created_at_ts:n,used_at_ts:null,revoked_at_ts:null}).execute(),{id:a.id,token_hash:a.token_hash,type:a.type,client_id:a.client_id,sub:a.sub,constraints:a.constraints,single_use:a.single_use,expires_at:a.expires_at,created_at:new Date(n).toISOString()}}}function Ra(e){const t=N.clientRegistrationTokenTypeSchema.safeParse(e);if(!t.success)throw new Error(`Unknown client_registration_tokens.type: ${e}`);return t.data}function qa(e){if(!e)return;let t;try{t=JSON.parse(e)}catch{return}return N.isPlainObject(t)?t:void 0}function ue(e){return{id:e.id,token_hash:e.token_hash,type:Ra(e.type),client_id:e.client_id??void 0,sub:e.sub??void 0,constraints:qa(e.constraints),single_use:!!e.single_use,expires_at:Q(e.expires_at_ts),used_at:Q(e.used_at_ts),revoked_at:Q(e.revoked_at_ts),created_at:j(e.created_at_ts)}}function Ma(e){return async(t,a)=>{const n=await e.selectFrom("client_registration_tokens").where("tenant_id","=",t).where("id","=",a).selectAll().executeTakeFirst();return n?ue(n):null}}function Ja(e){return async(t,a)=>{const n=await e.selectFrom("client_registration_tokens").where("tenant_id","=",t).where("token_hash","=",a).selectAll().executeTakeFirst();return n?ue(n):null}}function La(e){return async(t,a)=>(await e.selectFrom("client_registration_tokens").where("tenant_id","=",t).where("client_id","=",a).orderBy("created_at_ts","desc").selectAll().execute()).map(ue)}function Ua(e){return async(t,a,n)=>(await e.updateTable("client_registration_tokens").set({used_at_ts:x(n)}).where("tenant_id","=",t).where("id","=",a).where("used_at_ts","is",null).executeTakeFirst()).numUpdatedRows>0}function Ba(e){return async(t,a,n)=>(await e.updateTable("client_registration_tokens").set({revoked_at_ts:x(n)}).where("tenant_id","=",t).where("id","=",a).where("revoked_at_ts","is",null).executeTakeFirst()).numUpdatedRows>0}function Ka(e){return async(t,a,n)=>{const o=await e.updateTable("client_registration_tokens").set({revoked_at_ts:x(n)}).where("tenant_id","=",t).where("client_id","=",a).where("revoked_at_ts","is",null).executeTakeFirst();return Number(o.numUpdatedRows)}}function Qa(e){return async(t,a)=>(await e.deleteFrom("client_registration_tokens").where("tenant_id","=",t).where("id","=",a).executeTakeFirst()).numDeletedRows>0}function Wa(e){return{create:ja(e),get:Ma(e),getByHash:Ja(e),listByClient:La(e),markUsed:Ua(e),revoke:Ba(e),revokeByClient:Ka(e),remove:Qa(e)}}function Ha(e){return async(t={})=>{const{page:a=0,per_page:n=100,include_totals:o=!1,sort:r,q:s}=t;let i=e.selectFrom("keys").where(u=>u.or([u("revoked_at",">",new Date().toISOString()),u("revoked_at","is",null)]));s&&(i=O(e,i,s,["kid","tenant_id","connection","fingerprint","thumbprint","type"]));let l=i.select(u=>u.fn.count("kid").as("count"));const d=a*n;i=i.limit(n).offset(d),r&&(i=i.orderBy(r.sort_by,r.sort_order));const _=await i.selectAll().execute();if(!o)return{signingKeys:_,start:0,limit:0,length:0};const c=await l.executeTakeFirst(),m=E((c==null?void 0:c.count)??0);return{signingKeys:_,start:d,limit:n,length:m}}}function Ya(e){return async t=>{await e.insertInto("keys").values({...t,created_at:new Date().toDateString()}).execute()}}function Ga(e){return async(t,a)=>!!(await e.updateTable("keys").set(a).where("kid","=",t).execute()).length}function Va(e){return{create:Ya(e),list:Ha(e),update:Ga(e)}}function Xa(e){return async(t,a)=>{const n={custom_domain_id:a.custom_domain_id||k.nanoid(),status:"pending",primary:!1,...a};return await e.insertInto("custom_domains").values({...n,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),tenant_id:t,primary:n.primary?1:0,domain_metadata:n.domain_metadata?JSON.stringify(n.domain_metadata):void 0}).execute(),n}}function Za(e){return async t=>(await e.selectFrom("custom_domains").where("custom_domains.tenant_id","=",t).selectAll().execute()).map(n=>({...n,primary:n.primary===1,domain_metadata:q(n.domain_metadata,void 0)}))}function en(e){return async(t,a)=>(await e.deleteFrom("custom_domains").where("custom_domains.tenant_id","=",t).where("custom_domains.custom_domain_id","=",a).execute()).length>0}function tn(e){return async(t,a)=>{const n=await e.selectFrom("custom_domains").where("custom_domains.tenant_id","=",t).where("custom_domains.custom_domain_id","=",a).selectAll().executeTakeFirst();return n?{...n,primary:n.primary===1,domain_metadata:q(n.domain_metadata,void 0),verification:q(n.verification,void 0)}:null}}function an(e){return async(t,a,n)=>{const{verification:o,domain_metadata:r,primary:s,...i}=n,l={...i,updated_at:new Date().toISOString(),...s!==void 0&&{primary:s?1:0},...r!==void 0&&{domain_metadata:JSON.stringify(r)},...o!==void 0&&{verification:JSON.stringify(o)}};return(await e.updateTable("custom_domains").set(l).where("custom_domains.tenant_id","=",t).where("custom_domains.custom_domain_id","=",a).execute()).length>0}}function nn(e){return async t=>{const a=await e.selectFrom("custom_domains").where("custom_domains.domain","=",t).selectAll().executeTakeFirst();return a?{...a,primary:a.primary===1,domain_metadata:q(a.domain_metadata,void 0)}:null}}function on(e){return{create:Xa(e),get:tn(e),getByDomain:nn(e),list:Za(e),remove:en(e),update:an(e)}}function rn(e){return async t=>{const[a]=await e.selectFrom("branding").where("branding.tenant_id","=",t).selectAll().execute();if(!a)return null;const{tenant_id:n,colors_primary:o,colors_page_background_type:r,colors_page_background_start:s,colors_page_background_end:i,colors_page_background_angle_dev:l,font_url:d,..._}=a;return y({..._,colors:{primary:o,page_background:{type:r,start:s,end:i,angle_deg:l}},font:d?{url:d}:void 0})}}function sn(e){return async(t,a)=>{var l,d;const{colors:n,font:o,...r}=a,s=n==null?void 0:n.page_background,i=s&&typeof s=="object"?s:void 0;try{await e.insertInto("branding").values({...r,colors_primary:n==null?void 0:n.primary,colors_page_background_type:i==null?void 0:i.type,colors_page_background_start:i==null?void 0:i.start,colors_page_background_end:i==null?void 0:i.end,colors_page_background_angle_dev:i==null?void 0:i.angle_deg,font_url:(l=a.font)==null?void 0:l.url,tenant_id:t}).execute()}catch{await e.updateTable("branding").set({...r,colors_primary:n==null?void 0:n.primary,colors_page_background_type:i==null?void 0:i.type,colors_page_background_start:i==null?void 0:i.start,colors_page_background_end:i==null?void 0:i.end,colors_page_background_angle_dev:i==null?void 0:i.angle_deg,font_url:(d=a.font)==null?void 0:d.url}).where("tenant_id","=",t).execute()}}}function cn(e){return{get:rn(e),set:sn(e)}}function ln(e){return async t=>{const a=await e.selectFrom("universal_login_templates").select(["body"]).where("tenant_id","=",t).executeTakeFirst();return a?{body:a.body}:null}}function dn(e){return async(t,a)=>{const n=Date.now();try{await e.insertInto("universal_login_templates").values({tenant_id:t,body:a.body,created_at_ts:n,updated_at_ts:n}).execute()}catch{await e.updateTable("universal_login_templates").set({body:a.body,updated_at_ts:n}).where("tenant_id","=",t).execute()}}}function un(e){return async t=>{await e.deleteFrom("universal_login_templates").where("tenant_id","=",t).execute()}}function _n(e){return{get:ln(e),set:dn(e),delete:un(e)}}function mn(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,sort:s,q:i}=a;let l=e.selectFrom("hooks").where("hooks.tenant_id","=",t);if(i&&(l=O(e,l,i,["url","form_id","template_id","code_id"])),s!=null&&s.sort_by){const{ref:u}=e.dynamic;l=l.orderBy(u(s.sort_by),s.sort_order)}else l=l.orderBy("priority","desc").orderBy("created_at_ts","asc");const c=(await l.offset(n*o).limit(o).selectAll().execute()).map(u=>{const{tenant_id:f,enabled:p,synchronous:g,created_at_ts:v,updated_at_ts:b,metadata:S,...$}=u,D=F({created_at_ts:v,updated_at_ts:b},["created_at_ts","updated_at_ts"]);return y({...$,...D,enabled:!!p,synchronous:!!g,metadata:ke(S)})});if(!r)return{hooks:c,start:0,limit:0,length:0};const{count:m}=await l.select(u=>u.fn.countAll().as("count")).executeTakeFirstOrThrow();return{hooks:c,start:n*o,limit:o,length:E(m)}}}function hn(e){return async(t,a)=>{const n=await e.selectFrom("hooks").where("hooks.tenant_id","=",t).where("hooks.hook_id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:o,created_at_ts:r,updated_at_ts:s,metadata:i,...l}=n,d=F({created_at_ts:r,updated_at_ts:s},["created_at_ts","updated_at_ts"]);return y({...l,...d,enabled:!!l.enabled,synchronous:!!l.synchronous,metadata:ke(i)})}}function pn(e){return async(t,a)=>(await e.deleteFrom("hooks").where("hooks.tenant_id","=",t).where("hooks.hook_id","=",a).executeTakeFirst()).numDeletedRows>0}function fn(e){return async(t,a)=>{const n=Date.now(),o=a.hook_id||ot(),{hook_id:r,enabled:s,synchronous:i,metadata:l,...d}=a;return await e.insertInto("hooks").values({...d,hook_id:o,tenant_id:t,enabled:s?1:0,synchronous:i?1:0,metadata:l?JSON.stringify(l):null,created_at_ts:n,updated_at_ts:n}).execute(),{...d,hook_id:o,enabled:s??!1,synchronous:i??!1,...l?{metadata:l}:{},created_at:new Date(n).toISOString(),updated_at:new Date(n).toISOString()}}}function gn(e){return async(t,a,n)=>{const{hook_id:o,metadata:r,...s}=n,i={...s,updated_at_ts:Date.now(),enabled:n.enabled!==void 0?n.enabled?1:0:void 0,synchronous:n.synchronous!==void 0?n.synchronous?1:0:void 0,...r!==void 0?{metadata:r===null?null:JSON.stringify(r)}:{}};return await e.updateTable("hooks").set(i).where("hooks.hook_id","=",a).where("hooks.tenant_id","=",t).execute(),!0}}function wn(e){return{create:fn(e),get:hn(e),list:mn(e),update:gn(e),remove:pn(e)}}function yn(e){return async(t,a)=>{const n=Date.now(),o=st();return await e.insertInto("hook_code").values({id:o,tenant_id:t,code:a.code,secrets:a.secrets?JSON.stringify(a.secrets):null,created_at_ts:n,updated_at_ts:n}).execute(),{id:o,tenant_id:t,code:a.code,secrets:a.secrets,created_at:new Date(n).toISOString(),updated_at:new Date(n).toISOString()}}}function vn(e){return async(t,a)=>{const n=await e.selectFrom("hook_code").where("hook_code.tenant_id","=",t).where("hook_code.id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{created_at_ts:o,updated_at_ts:r,secrets:s,...i}=n,l=F({created_at_ts:o,updated_at_ts:r},["created_at_ts","updated_at_ts"]);return{...i,...l,secrets:s?(()=>{try{return JSON.parse(s)}catch{console.warn(`Failed to parse secrets for hook_code ${a}`);return}})():void 0}}}function Cn(e){return async(t,a,n)=>{const o={updated_at_ts:Date.now()};return n.code!==void 0&&(o.code=n.code),n.secrets!==void 0&&(o.secrets=JSON.stringify(n.secrets)),(await e.updateTable("hook_code").set(o).where("hook_code.id","=",a).where("hook_code.tenant_id","=",t).executeTakeFirst()).numUpdatedRows>0}}function xn(e){return async(t,a)=>(await e.deleteFrom("hook_code").where("hook_code.tenant_id","=",t).where("hook_code.id","=",a).executeTakeFirst()).numDeletedRows>0}function Tn(e){return{create:yn(e),get:vn(e),update:Cn(e),remove:xn(e)}}function bn(e){return async(t,a,n)=>{const o={themeId:n||k.nanoid(),created_at:new Date().toISOString(),updated_at:new Date().toISOString(),...a},r={...o,tenant_id:t};return await e.insertInto("themes").values(B(r)).execute(),o}}function Nn(e){return async(t,a)=>(await e.deleteFrom("themes").where("themes.tenant_id","=",t).where("themes.themeId","=",a).executeTakeFirst()).numDeletedRows>0}function Sn(e){return async(t,a)=>{const n=await e.selectFrom("themes").where("themes.tenant_id","=",t).where("themes.themeId","=",a).selectAll().executeTakeFirst();if(!n)return null;const o={...n,borders_show_widget_shadow:!!n.borders_show_widget_shadow,fonts_body_text_bold:!!n.fonts_body_text_bold,fonts_buttons_text_bold:!!n.fonts_buttons_text_bold,fonts_input_labels_bold:!!n.fonts_input_labels_bold,fonts_links_bold:!!n.fonts_links_bold,fonts_subtitle_bold:!!n.fonts_subtitle_bold,fonts_title_bold:!!n.fonts_title_bold};return y(Oe(o,["widget","colors","borders","fonts","page_background"]))}}function On(e){return async(t,a,n)=>{const{themeId:o,...r}=n,s=B({...r,updated_at:new Date().toISOString()});return await e.updateTable("themes").set(s).where("themes.themeId","=",a).where("themes.tenant_id","=",t).execute(),!0}}function kn(e){return{create:bn(e),get:Sn(e),remove:Nn(e),update:On(e)}}function $n(e){return async(t,a)=>{const n=await e.selectFrom("login_sessions").where("login_sessions.id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{created_at_ts:o,updated_at_ts:r,expires_at_ts:s,auth_params:i,...l}=n,d=F({created_at_ts:o,updated_at_ts:r,expires_at_ts:s},["created_at_ts","updated_at_ts","expires_at_ts"]),_=Oe(y({...l,...d,state:n.state||N.LoginSessionState.PENDING,state_data:n.state_data,failure_reason:n.failure_reason}),["auth_strategy"]);return _.authParams=typeof i=="string"&&i.length>0?JSON.parse(i):{},N.loginSessionSchema.parse(_)}}const _e="0123456789ABCDEFGHJKMNPQRSTVWXYZ",ie=_e.length,En=10,ge=16;function In(e){let t="";for(let a=En;a>0;a--)t=_e.charAt(e%ie)+t,e=Math.floor(e/ie);return t}function Pn(){const e=new Uint8Array(ge);crypto.getRandomValues(e);let t="";for(let a=0;a<ge;a++)t+=_e.charAt(e[a]%ie);return t}function De(){return In(Date.now())+Pn()}function zn(e){return async(t,a)=>{var d;const n=le(),o={id:De(),...a,authorization_url:(d=a.authorization_url)==null?void 0:d.slice(0,1024),created_at:n,updated_at:n,state:a.state||N.LoginSessionState.PENDING,state_data:a.state_data,failure_reason:a.failure_reason},{authParams:r,...s}=o,i=Date.now(),l=B(s);return delete l.created_at,delete l.updated_at,delete l.expires_at,await e.insertInto("login_sessions").values({...l,tenant_id:t,auth_params:JSON.stringify(r),created_at_ts:i,updated_at_ts:i,expires_at_ts:a.expires_at?new Date(a.expires_at).getTime():i+1e3*60*60*24}).execute(),o}}function Dn(e){return async(t,a,n)=>{const{created_at:o,updated_at:r,expires_at:s,authParams:i,...l}=n;let d={};if(i!==void 0){const m=await e.selectFrom("login_sessions").where("login_sessions.id","=",a).where("login_sessions.tenant_id","=",t).select(["auth_params"]).executeTakeFirst(),u=m==null?void 0:m.auth_params,f=typeof u=="string"&&u.length>0?JSON.parse(u):{};d={auth_params:JSON.stringify({...f,...i})}}const _=B(l);return delete _.created_at_ts,delete _.updated_at_ts,delete _.expires_at_ts,delete _.id,delete _.tenant_id,(await e.updateTable("login_sessions").set({..._,...d,updated_at_ts:Date.now(),...s!==void 0?{expires_at_ts:x(s)}:{}}).where("login_sessions.id","=",a).where("login_sessions.tenant_id","=",t).execute()).length===1}}function An(e){return async(t,a)=>(await e.deleteFrom("login_sessions").where("login_sessions.tenant_id","=",t).where("login_sessions.id","=",a).execute()).length>0}function Fn(e){return{create:zn(e),get:$n(e),update:Dn(e),remove:An(e)}}function jn(e){return async t=>{const[a]=await e.selectFrom("prompt_settings").where("prompt_settings.tenant_id","=",t).selectAll().execute();return y({identifier_first:!!(a!=null&&a.identifier_first),password_first:!!(a!=null&&a.password_first),webauthn_platform_first_factor:!!(a!=null&&a.webauthn_platform_first_factor),universal_login_experience:(a==null?void 0:a.universal_login_experience)||"new"})}}function we(e){return y({...e,webauthn_platform_first_factor:e.webauthn_platform_first_factor?!!e.webauthn_platform_first_factor:void 0,identifier_first:e.identifier_first?!!e.identifier_first:void 0,password_first:e.password_first?!!e.password_first:void 0,universal_login_experience:e.universal_login_experience})}function Rn(e){return async(t,a)=>{try{const n=N.promptSettingSchema.parse(a);await e.insertInto("prompt_settings").values({...we(n),tenant_id:t}).execute()}catch{await e.updateTable("prompt_settings").set(we(a)).where("tenant_id","=",t).execute()}}}function qn(e){return{get:jn(e),set:Rn(e)}}function Mn(e){return async t=>{const[a]=await e.selectFrom("email_providers").where("email_providers.tenant_id","=",t).selectAll().execute();if(!a)return null;const{tenant_id:n,credentials:o,settings:r,enabled:s,...i}=a;return y({...i,credentials:JSON.parse(o),settings:JSON.parse(r),enabled:!!s})}}function Jn(e){return async(t,a)=>{const{credentials:n,settings:o,enabled:r,...s}=a;await e.updateTable("email_providers").set({...s,credentials:n?JSON.stringify(n):void 0,settings:o?JSON.stringify(o):void 0,enabled:r!==void 0?r?1:0:void 0}).where("tenant_id","=",t).execute()}}function Ln(e){return async(t,a)=>{const{credentials:n,settings:o,enabled:r,...s}=a;await e.insertInto("email_providers").values({...s,enabled:r?1:0,credentials:JSON.stringify(n),settings:JSON.stringify(o),tenant_id:t,created_at:new Date().toISOString(),updated_at:new Date().toISOString()}).execute()}}function Un(e){return async t=>{await e.deleteFrom("email_providers").where("tenant_id","=",t).execute()}}function Bn(e){return{get:Mn(e),create:Ln(e),update:Jn(e),remove:Un(e)}}function Ae(e){const t={template:e.template,body:e.body,from:e.from,subject:e.subject,syntax:e.syntax,includeEmailInRedirect:!!e.include_email_in_redirect,enabled:!!e.enabled};return e.result_url!==null&&e.result_url!==void 0&&(t.resultUrl=e.result_url),e.url_lifetime_in_seconds!==null&&e.url_lifetime_in_seconds!==void 0&&(t.urlLifetimeInSeconds=e.url_lifetime_in_seconds),t}function Kn(e){return async(t,a)=>{const n=await e.selectFrom("email_templates").where("tenant_id","=",t).where("template","=",a).selectAll().executeTakeFirst();return n?N.emailTemplateSchema.parse(Ae(n)):null}}function Qn(e){return async t=>(await e.selectFrom("email_templates").where("tenant_id","=",t).orderBy("template","asc").selectAll().execute()).map(n=>N.emailTemplateSchema.parse(Ae(n)))}function Wn(e){return async(t,a)=>{const n=new Date().toISOString();return await e.insertInto("email_templates").values({tenant_id:t,template:a.template,body:a.body,from:a.from,subject:a.subject,syntax:a.syntax,result_url:a.resultUrl??null,url_lifetime_in_seconds:a.urlLifetimeInSeconds??null,include_email_in_redirect:a.includeEmailInRedirect?1:0,enabled:a.enabled?1:0,created_at:n,updated_at:n}).execute(),a}}function Hn(e){return async(t,a,n)=>{const o={};if(n.body!==void 0&&(o.body=n.body),n.from!==void 0&&(o.from=n.from),n.subject!==void 0&&(o.subject=n.subject),n.syntax!==void 0&&(o.syntax=n.syntax),n.resultUrl!==void 0&&(o.result_url=n.resultUrl),n.urlLifetimeInSeconds!==void 0&&(o.url_lifetime_in_seconds=n.urlLifetimeInSeconds),n.includeEmailInRedirect!==void 0&&(o.include_email_in_redirect=n.includeEmailInRedirect?1:0),n.enabled!==void 0&&(o.enabled=n.enabled?1:0),Object.keys(o).length===0)return await e.selectFrom("email_templates").where("tenant_id","=",t).where("template","=",a).select("template").executeTakeFirst()!==void 0;o.updated_at=new Date().toISOString();const r=await e.updateTable("email_templates").set(o).where("tenant_id","=",t).where("template","=",a).executeTakeFirst();return Number(r.numUpdatedRows??0)>0}}function Yn(e){return async(t,a)=>{const n=await e.deleteFrom("email_templates").where("tenant_id","=",t).where("template","=",a).executeTakeFirst();return Number(n.numDeletedRows??0)>0}}function Gn(e){return{get:Kn(e),list:Qn(e),create:Wn(e),update:Hn(e),remove:Yn(e)}}function Vn(e){return async(t,a)=>{const n=await e.selectFrom("refresh_tokens").where("refresh_tokens.tenant_id","=",t).where("refresh_tokens.id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:o,created_at_ts:r,expires_at_ts:s,idle_expires_at_ts:i,last_exchanged_at_ts:l,revoked_at_ts:d,rotated_at_ts:_,...c}=n,m=F({created_at_ts:r,expires_at_ts:s,idle_expires_at_ts:i,last_exchanged_at_ts:l,revoked_at_ts:d,rotated_at_ts:_},["created_at_ts"],["expires_at_ts","idle_expires_at_ts","last_exchanged_at_ts","revoked_at_ts","rotated_at_ts"]);return{...c,...m,rotating:!!n.rotating,device:n.device?JSON.parse(n.device):{},resource_servers:n.resource_servers?JSON.parse(n.resource_servers):[]}}}function Xn(e){return async(t,a)=>{const n=await e.selectFrom("refresh_tokens").where("refresh_tokens.tenant_id","=",t).where("refresh_tokens.token_lookup","=",a).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:o,created_at_ts:r,expires_at_ts:s,idle_expires_at_ts:i,last_exchanged_at_ts:l,revoked_at_ts:d,rotated_at_ts:_,...c}=n,m=F({created_at_ts:r,expires_at_ts:s,idle_expires_at_ts:i,last_exchanged_at_ts:l,revoked_at_ts:d,rotated_at_ts:_},["created_at_ts"],["expires_at_ts","idle_expires_at_ts","last_exchanged_at_ts","revoked_at_ts","rotated_at_ts"]);return{...c,...m,rotating:!!n.rotating,device:n.device?JSON.parse(n.device):{},resource_servers:n.resource_servers?JSON.parse(n.resource_servers):[]}}}function Zn(e){return async(t,a)=>{const n=le(),o={...a,created_at:n},{expires_at:r,idle_expires_at:s,last_exchanged_at:i,rotated_at:l,device:d,resource_servers:_,rotating:c,...m}=a,u=Date.now(),f=x(r),p=s?x(s):null,g=Math.max(f??0,p??0);return await e.transaction().execute(async v=>{await v.insertInto("refresh_tokens").values({...m,tenant_id:t,rotating:c?1:0,device:JSON.stringify(d),resource_servers:JSON.stringify(_),created_at_ts:u,expires_at_ts:f,idle_expires_at_ts:p,last_exchanged_at_ts:i?x(i):null,rotated_at_ts:l?x(l):null}).execute(),g>0&&a.login_id&&await v.updateTable("login_sessions").set({expires_at_ts:g,updated_at_ts:u}).where("tenant_id","=",t).where("id","=",a.login_id).where("expires_at_ts","<",g).execute()}),{...a,...o}}}function eo(e){return async(t,a)=>!!(await e.deleteFrom("refresh_tokens").where("tenant_id","=",t).where("refresh_tokens.id","=",a).execute()).length}function to(e){return async(t,a,n)=>{const o=x(n),r=await e.updateTable("refresh_tokens").set({revoked_at_ts:o}).where("tenant_id","=",t).where("login_id","=",a).where("revoked_at_ts","is",null).executeTakeFirst();return Number(r.numUpdatedRows??0)}}function ao(e){return async(t,a,n)=>{const o=x(n),r=await e.updateTable("refresh_tokens").set({revoked_at_ts:o}).where("tenant_id","=",t).where("family_id","=",a).where("revoked_at_ts","is",null).executeTakeFirst();return Number(r.numUpdatedRows??0)}}function no(e){return async(t,a,n,o)=>{const{created_at:r,expires_at:s,idle_expires_at:i,last_exchanged_at:l,revoked_at:d,rotated_at:_,device:c,resource_servers:m,rotating:u,...f}=n,p={...f,device:c?JSON.stringify(c):void 0,resource_servers:m?JSON.stringify(m):void 0,rotating:u!==void 0?u?1:0:void 0,expires_at_ts:s!==void 0?x(s):void 0,idle_expires_at_ts:i!==void 0?x(i):void 0,last_exchanged_at_ts:l!==void 0?x(l):void 0,revoked_at_ts:d!==void 0?x(d):void 0,rotated_at_ts:_!==void 0?x(_):void 0},g=o==null?void 0:o.loginSessionBump,v=g?x(g.expires_at):null,b=await e.updateTable("refresh_tokens").set(p).where("tenant_id","=",t).where("refresh_tokens.id","=",a).executeTakeFirst();return g!=null&&g.login_id&&v&&v>0&&await e.updateTable("login_sessions").set({expires_at_ts:v,updated_at_ts:Date.now()}).where("tenant_id","=",t).where("id","=",g.login_id).where("expires_at_ts","<",v).execute().catch(()=>{}),((b==null?void 0:b.numUpdatedRows)??0n)>0n}}function oo(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,sort:s,q:i}=a;let l=e.selectFrom("refresh_tokens").where("refresh_tokens.tenant_id","=",t);i&&(l=O(e,l,i,["token","login_id"]));let d=l;if(s&&s.sort_by){const{ref:f}=e.dynamic;d=d.orderBy(f(s.sort_by),s.sort_order)}d=d.offset(n*o).limit(o);const c=(await d.selectAll().execute()).map(f=>{const{tenant_id:p,created_at_ts:g,expires_at_ts:v,idle_expires_at_ts:b,last_exchanged_at_ts:S,revoked_at_ts:$,rotated_at_ts:D,...C}=f,T=F({created_at_ts:g,expires_at_ts:v,idle_expires_at_ts:b,last_exchanged_at_ts:S,revoked_at_ts:$,rotated_at_ts:D},["created_at_ts"],["expires_at_ts","idle_expires_at_ts","last_exchanged_at_ts","revoked_at_ts","rotated_at_ts"]);return{...C,...T,rotating:!!f.rotating,device:f.device?JSON.parse(f.device):{},resource_servers:f.resource_servers?JSON.parse(f.resource_servers):[]}});if(!r)return{refresh_tokens:c,start:0,limit:0,length:0};const{count:m}=await l.select(f=>f.fn.countAll().as("count")).executeTakeFirstOrThrow(),u=E(m);return{refresh_tokens:c,start:n*o,limit:o,length:u}}}function ro(e){return{create:Zn(e),get:Vn(e),getByLookup:Xn(e),list:oo(e),remove:eo(e),revokeByLoginSession:to(e),revokeFamily:ao(e),update:no(e)}}const so=7*24*60*60*1e3;function io(e){return async t=>{var i,l,d;const{tenant_id:a,user_id:n}=t||{},r=Date.now()-so,s=1e3;try{let _=0;for(;;){let u=e.deleteFrom("refresh_tokens").where(g=>g.or([g("expires_at_ts","<",r),g("idle_expires_at_ts","<",r)]));a&&(u=u.where("tenant_id","=",a)),n&&(u=u.where("user_id","=",n));const f=await u.limit(s).execute(),p=Number(((i=f[0])==null?void 0:i.numDeletedRows)??0);if(_+=p,p<s)break}let c=0;for(;;){let u=e.deleteFrom("sessions").where(g=>g.or([g("expires_at_ts","<",r),g("idle_expires_at_ts","<",r)]));a&&(u=u.where("tenant_id","=",a)),n&&(u=u.where("user_id","=",n));const f=await u.limit(s).execute(),p=Number(((l=f[0])==null?void 0:l.numDeletedRows)??0);if(c+=p,p<s)break}let m=0;for(;;){let u=e.deleteFrom("login_sessions").where("expires_at_ts","<",r);a&&(u=u.where("tenant_id","=",a)),n&&(u=u.where("user_id","=",n));const f=await u.limit(s).execute(),p=Number(((d=f[0])==null?void 0:d.numDeletedRows)??0);if(m+=p,p<s)break}(_>0||c>0||m>0)&&console.log(`Session cleanup: deleted ${_} refresh_tokens, ${c} sessions, ${m} login_sessions`)}catch(_){console.error("Error during session cleanup:",_)}}}function co(e){return async(t,a)=>{const n=N.formSchema.parse({id:k.nanoid(),...a,created_at:new Date().toISOString(),updated_at:new Date().toISOString()});return await e.insertInto("forms").values({...n,nodes:JSON.stringify(n.nodes||[]),start:JSON.stringify(n.start||{}),ending:JSON.stringify(n.ending||{}),tenant_id:t}).execute(),N.formSchema.parse(n)}}function lo(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,q:s}=a;let i=e.selectFrom("forms").where("tenant_id","=",t);s&&(i=O(e,i,s,[]));const _=(await i.offset(n*o).limit(o).selectAll().execute()).map(m=>{const u={...m};if(typeof u.nodes=="string")try{u.nodes=JSON.parse(u.nodes)}catch{}if(typeof u.start=="string")try{u.start=JSON.parse(u.start)}catch{}if(typeof u.ending=="string")try{u.ending=JSON.parse(u.ending)}catch{}return N.formSchema.parse(y(u))});if(!r)return{forms:_,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{forms:_,start:n*o,limit:o,length:E(c)}}}function uo(e){return async(t,a)=>{const{numDeletedRows:n}=await e.deleteFrom("forms").where("id","=",a).where("tenant_id","=",t).executeTakeFirst();return n>0}}function _o(e){return async(t,a)=>{const n=await e.selectFrom("forms").selectAll().where("forms.id","=",a).where("tenant_id","=",t).executeTakeFirst();if(!n)return null;const o={...n};if(typeof o.nodes=="string")try{o.nodes=JSON.parse(o.nodes)}catch{}if(typeof o.start=="string")try{o.start=JSON.parse(o.start)}catch{}if(typeof o.ending=="string")try{o.ending=JSON.parse(o.ending)}catch{}return N.formSchema.parse(y(o))}}function mo(e){return async(t,a,n)=>{const o={...n,updated_at:new Date().toISOString()};W(n,["nodes","start","ending"],o);const{numUpdatedRows:r}=await e.updateTable("forms").set(o).where("id","=",a).where("tenant_id","=",t).executeTakeFirst();return r>0}}function ho(e){return{create:co(e),get:_o(e),list:lo(e),remove:uo(e),update:mo(e)}}function po(e){return async(t,a)=>{const n=new Date().toISOString(),o={id:rt(),...a,created_at:n,updated_at:n},r=N.resourceServerSchema.parse(o),{verificationKey:s,scopes:i,options:l,skip_consent_for_verifiable_first_party_clients:d,allow_offline_access:_,is_system:c,metadata:m,...u}=r,f={...u,tenant_id:t,scopes:i?JSON.stringify(i):"[]",options:l?JSON.stringify(l):"{}",skip_consent_for_verifiable_first_party_clients:d?1:0,allow_offline_access:_?1:0,is_system:c?1:0,metadata:m?JSON.stringify(m):void 0,verification_key:s,created_at:n,updated_at:n};return await e.insertInto("resource_servers").values(f).execute(),y(r)}}function fo(e){return async(t,a)=>{const n=await e.selectFrom("resource_servers").selectAll().where("tenant_id","=",t).where("id","=",a).executeTakeFirst();if(!n)return null;const o=n,{verification_key:r,scopes:s,options:i,skip_consent_for_verifiable_first_party_clients:l,allow_offline_access:d,is_system:_,metadata:c,...m}=o,u=y({...m,scopes:s?JSON.parse(s):[],options:i?JSON.parse(i):{},skip_consent_for_verifiable_first_party_clients:!!l,allow_offline_access:!!d,is_system:_?!0:void 0,metadata:c?JSON.parse(c):void 0,verificationKey:r});return u.token_lifetime??(u.token_lifetime=86400),u.token_lifetime_for_web??(u.token_lifetime_for_web=7200),u}}function go(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,q:s}=a;let i=e.selectFrom("resource_servers").where("resource_servers.tenant_id","=",t);if(s){const m=s.trim(),u=m.split(/\s+/),f=u.length===1?u[0]:void 0,p=f?f.match(/^(-)?(name|identifier):(.*)$/):null,g=p?p[3]:"",v=/^(>=|>|<=|<)/.test(g||"");if(p&&!v){const b=!!p[1],S=p[2]==="name"?"resource_servers.name":"resource_servers.identifier";i=b?i.where(S,"not like",`%${g}%`):i.where(S,"like",`%${g}%`)}else i=O(e,i,m,["resource_servers.name","resource_servers.identifier"])}const _=(await i.offset(n*o).limit(o).selectAll().execute()).map(m=>{const u=m,{verification_key:f,scopes:p,options:g,skip_consent_for_verifiable_first_party_clients:v,allow_offline_access:b,is_system:S,metadata:$,...D}=u,C=y({...D,scopes:p?JSON.parse(p):[],options:g?JSON.parse(g):{},skip_consent_for_verifiable_first_party_clients:!!v,allow_offline_access:!!b,is_system:S?!0:void 0,metadata:$?JSON.parse($):void 0,verificationKey:f});return C.token_lifetime??(C.token_lifetime=86400),C.token_lifetime_for_web??(C.token_lifetime_for_web=7200),C});if(!r)return{resource_servers:_,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{resource_servers:_,start:n*o,limit:o,length:E(c)}}}function wo(e){return async(t,a)=>{const n=await e.deleteFrom("resource_servers").where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return Number(n.numDeletedRows)>0}}function yo(e){return async(t,a,n)=>{const{verificationKey:o,scopes:r,options:s,skip_consent_for_verifiable_first_party_clients:i,allow_offline_access:l,is_system:d,metadata:_,...c}=n,m={...c,updated_at:new Date().toISOString()};if(o!==void 0&&(m.verification_key=o),r!==void 0&&(m.scopes=JSON.stringify(r)),s!==void 0){const f=await e.selectFrom("resource_servers").select("options").where("tenant_id","=",t).where("id","=",a).executeTakeFirst(),g={...f!=null&&f.options?JSON.parse(f.options):{},...s};m.options=JSON.stringify(g)}_!==void 0&&(m.metadata=JSON.stringify(_)),i!==void 0&&(m.skip_consent_for_verifiable_first_party_clients=i?1:0),l!==void 0&&(m.allow_offline_access=l?1:0),d!==void 0&&(m.is_system=d?1:0);const u=await e.updateTable("resource_servers").set(m).where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return Number(u.numUpdatedRows)>0}}function vo(e){return{create:po(e),get:fo(e),list:go(e),remove:wo(e),update:yo(e)}}function Co(e){return async(t,a)=>{const n=new Date().toISOString(),o=a.id||k.nanoid(),{is_system:r,id:s,metadata:i,...l}=a,d={id:o,...l,tenant_id:t,is_system:r?1:0,metadata:i?JSON.stringify(i):void 0,created_at:n,updated_at:n};return await e.insertInto("roles").values(d).execute(),{id:o,...l,is_system:r?!0:void 0,metadata:i,created_at:n,updated_at:n}}}function xo(e){return async(t,a)=>{const n=await e.selectFrom("roles").selectAll().where("roles.tenant_id","=",t).where("roles.id","=",a).executeTakeFirst();if(!n)return null;const o=n,{is_system:r,tenant_id:s,metadata:i,...l}=o;return{...l,is_system:r?!0:void 0,metadata:i?JSON.parse(i):void 0}}}function To(e){return async(t,a)=>{let n=e.selectFrom("roles").where("roles.tenant_id","=",t);const{page:o=0,per_page:r=50,include_totals:s=!1}=a;a.q&&(n=O(e,n,a.q,["name"]));const d=(await n.offset(o*r).limit(r).selectAll().execute()).map(c=>{const m=c,{is_system:u,tenant_id:f,metadata:p,...g}=m;return{...g,is_system:u?!0:void 0,metadata:p?JSON.parse(p):void 0}});if(!s)return{roles:d,start:o*r,limit:r,length:d.length};const{count:_}=await n.select(c=>c.fn.countAll().as("count")).executeTakeFirstOrThrow();return{roles:d,start:o*r,limit:r,length:E(_)}}}function bo(e){return async(t,a,n)=>{const{is_system:o,metadata:r,...s}=n,i={...s,is_system:o!==void 0?o?1:0:void 0,metadata:r!==void 0?JSON.stringify(r):void 0,updated_at:new Date().toISOString()},l=await e.updateTable("roles").set(i).where("roles.tenant_id","=",t).where("roles.id","=",a).executeTakeFirst();return Number(l.numUpdatedRows)>0}}function No(e){return async(t,a)=>{const n=await e.deleteFrom("roles").where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return Number(n.numDeletedRows)>0}}function So(e){return{create:Co(e),get:xo(e),list:To(e),update:bo(e),remove:No(e)}}function Oo(e){return async(t,a,n)=>{if(n.length===0)return!0;const o=new Date().toISOString();try{for(const r of n){if(r.role_id!==a)throw new Error(`Permission role_id ${r.role_id} does not match expected role_id ${a}`);const s={tenant_id:t,role_id:r.role_id,resource_server_identifier:r.resource_server_identifier,permission_name:r.permission_name,created_at:o};try{await e.insertInto("role_permissions").values(s).execute()}catch(i){if(i.code==="SQLITE_CONSTRAINT_PRIMARYKEY"||i.code==="SQLITE_CONSTRAINT_UNIQUE"||i.code==="ER_DUP_ENTRY")continue;throw i}}return!0}catch(r){return console.error("Error assigning role permissions:",r),!1}}}function ko(e){return async(t,a,n)=>{if(n.length===0)return!0;try{return(await Promise.all(n.map(r=>e.deleteFrom("role_permissions").where("tenant_id","=",t).where("role_id","=",a).where("resource_server_identifier","=",r.resource_server_identifier).where("permission_name","=",r.permission_name).executeTakeFirst()))).some(r=>Number(r.numDeletedRows)>0)}catch(o){return console.error("Error removing role permissions:",o),!1}}}function $o(e){return async(t,a,n={})=>{const{page:o=0,per_page:r=50,include_totals:s=!1}=n;let i=e.selectFrom("role_permissions").leftJoin("resource_servers",c=>c.onRef("role_permissions.tenant_id","=","resource_servers.tenant_id").onRef("role_permissions.resource_server_identifier","=","resource_servers.id")).select(["role_permissions.role_id","role_permissions.resource_server_identifier","role_permissions.permission_name","role_permissions.created_at","resource_servers.name as resource_server_name"]).where("role_permissions.tenant_id","=",t).where("role_permissions.role_id","=",a);const _=(await i.offset(o*r).limit(r).execute()).map(c=>({role_id:c.role_id,resource_server_identifier:c.resource_server_identifier,resource_server_name:c.resource_server_name||c.resource_server_identifier,permission_name:c.permission_name,description:null,created_at:c.created_at}));return s&&await i.select(c=>c.fn.countAll().as("count")).executeTakeFirstOrThrow(),_}}function Eo(e){return{assign:Oo(e),remove:ko(e),list:$o(e)}}function Io(e){return async(t,a,n,o)=>{const r=new Date().toISOString();try{const s={tenant_id:t,user_id:a,resource_server_identifier:n.resource_server_identifier,permission_name:n.permission_name,organization_id:o||n.organization_id||"",created_at:r};return await e.insertInto("user_permissions").values(s).execute(),!0}catch(s){return s.code==="SQLITE_CONSTRAINT_PRIMARYKEY"||s.code==="SQLITE_CONSTRAINT_UNIQUE"||s.code==="SQLITE_CONSTRAINT"||s.code==="ER_DUP_ENTRY"||s.message&&s.message.includes("UNIQUE constraint failed")||s.message&&s.message.includes("PRIMARY KEY constraint failed")?!0:(console.error("Error creating user permission:",s),!1)}}}function Po(e){return async(t,a,n,o)=>{try{let r=e.deleteFrom("user_permissions").where("tenant_id","=",t).where("user_id","=",a).where("resource_server_identifier","=",n.resource_server_identifier).where("permission_name","=",n.permission_name);return o!==void 0?r=r.where("organization_id","=",o):r=r.where("organization_id","=",""),await r.execute(),!0}catch(r){return console.error("Error removing user permission:",r),!1}}}function zo(e){return async(t,a,n,o)=>{let r=e.selectFrom("user_permissions").leftJoin("resource_servers",i=>i.onRef("user_permissions.tenant_id","=","resource_servers.tenant_id").onRef("user_permissions.resource_server_identifier","=","resource_servers.id")).select(["user_permissions.resource_server_identifier","user_permissions.permission_name","resource_servers.name as resource_server_name","user_permissions.user_id","user_permissions.created_at","user_permissions.organization_id"]).where("user_permissions.tenant_id","=",t).where("user_permissions.user_id","=",a);return o!==void 0&&(r=r.where("user_permissions.organization_id","=",o)),(await r.execute()).map(i=>({resource_server_identifier:i.resource_server_identifier,permission_name:i.permission_name,description:null,resource_server_name:i.resource_server_name||i.resource_server_identifier,user_id:i.user_id,created_at:i.created_at,organization_id:i.organization_id===""?void 0:i.organization_id}))}}function Do(e){return{create:Io(e),remove:Po(e),list:zo(e)}}function Ao(e){const t=Do(e);return{create:(a,n,o,r)=>t.create(a,n,o,r),remove:(a,n,o,r)=>t.remove(a,n,o,r),list:(a,n,o,r)=>t.list(a,n,o,r)}}function Fo(e){return async(t,a,n,o)=>{let r=e.selectFrom("user_roles as ur").innerJoin("roles as r",i=>i.onRef("ur.role_id","=","r.id").onRef("ur.tenant_id","=","r.tenant_id")).select(["r.id","r.name","r.description","r.created_at","r.updated_at"]).where("ur.tenant_id","=",t).where("ur.user_id","=",a);return o!==void 0&&(r=r.where("ur.organization_id","=",o)),await r.execute()}}function jo(e){return async(t,a,n,o)=>{const r=new Date().toISOString();try{return await e.insertInto("user_roles").values({tenant_id:t,user_id:a,role_id:n,organization_id:o||"",created_at:r}).execute(),!0}catch(s){return s.code==="SQLITE_CONSTRAINT_PRIMARYKEY"||s.code==="SQLITE_CONSTRAINT_UNIQUE"||s.code==="SQLITE_CONSTRAINT"||s.code==="ER_DUP_ENTRY"||s.message&&s.message.includes("UNIQUE constraint failed")||s.message&&s.message.includes("PRIMARY KEY constraint failed")?!0:(console.error("Error creating user role:",s),!1)}}}function Ro(e){return async(t,a,n,o)=>{try{let r=e.deleteFrom("user_roles").where("tenant_id","=",t).where("user_id","=",a).where("role_id","=",n);return o!==void 0?r=r.where("organization_id","=",o):r=r.where("organization_id","=",""),await r.execute(),!0}catch(r){return console.error("Error removing user roles:",r),!1}}}function qo(e){return{list:Fo(e),create:jo(e),remove:Ro(e)}}function Mo(e){const t=qo(e);return{list:(a,n,o,r)=>t.list(a,n,o,r),create:(a,n,o,r)=>t.create(a,n,o,r),remove:(a,n,o,r)=>t.remove(a,n,o,r)}}function Jo(e){return async(t,a)=>{const n={...a,id:a.id||et(),tenant_id:t,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),branding:JSON.stringify(a.branding||{}),metadata:JSON.stringify(a.metadata||{}),enabled_connections:JSON.stringify(a.enabled_connections||[]),token_quota:JSON.stringify(a.token_quota||{})};try{await e.insertInto("organizations").values(n).execute()}catch(o){throw o.code==="SQLITE_CONSTRAINT_UNIQUE"||o.code==="ER_DUP_ENTRY"||o.message.includes("AlreadyExists")?new U(409,{message:"Organization already exists"}):o}return{...a,id:n.id,created_at:n.created_at,updated_at:n.updated_at}}}function Lo(e){return async(t,a)=>{let n=await e.selectFrom("organizations").selectAll().where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return n||(n=await e.selectFrom("organizations").selectAll().where("tenant_id","=",t).where("name","=",a).executeTakeFirst()),n?y({...n,branding:n.branding?JSON.parse(n.branding):{},metadata:n.metadata?JSON.parse(n.metadata):{},enabled_connections:n.enabled_connections?JSON.parse(n.enabled_connections):[],token_quota:n.token_quota?JSON.parse(n.token_quota):{}}):null}}const Y=["name","display_name"];function Uo(e){return async(t,a)=>{let n=e.selectFrom("organizations").where("tenant_id","=",t);if(a!=null&&a.q){const c=se(a.q,Y);c&&(n=O(e,n,c,Y))}if(a!=null&&a.sort){const c=a.sort.sort_order==="asc"?"asc":"desc",m=a.sort.sort_by;["name","display_name","created_at"].includes(m)?n=n.orderBy(m,c):n=n.orderBy("created_at","desc")}else n=n.orderBy("created_at","desc");const o=(a==null?void 0:a.take)??(a==null?void 0:a.per_page),r=typeof o=="number"&&Number.isFinite(o)?Math.floor(o):NaN,s=r>=1?r:10;let i=0;if((a==null?void 0:a.from)!==void 0){const c=parseInt(a.from,10);Number.isNaN(c)||(i=Math.max(0,c))}else typeof(a==null?void 0:a.page)=="number"&&Number.isFinite(a.page)&&(i=Math.max(0,Math.floor(a.page)*s));i>0&&(n=n.offset(i)),n=n.limit(s);const l=await n.selectAll().execute();let d=l.length;if(a!=null&&a.include_totals){let c=e.selectFrom("organizations").where("tenant_id","=",t);if(a!=null&&a.q){const u=se(a.q,Y);u&&(c=O(e,c,u,Y))}const m=await c.select(h.sql`count(*)`.as("count")).executeTakeFirst();d=Number((m==null?void 0:m.count)||0)}const _=l.map(c=>y({...c,branding:c.branding?JSON.parse(c.branding):{},metadata:c.metadata?JSON.parse(c.metadata):{},enabled_connections:c.enabled_connections?JSON.parse(c.enabled_connections):[],token_quota:c.token_quota?JSON.parse(c.token_quota):{}}));return{organizations:_,start:i,limit:s,length:_.length,total:d}}}function Bo(e){return async(t,a)=>(await e.deleteFrom("organizations").where("tenant_id","=",t).where("id","=",a).execute()).length>0}function Ko(e){return async(t,a,n)=>{const{branding:o,metadata:r,enabled_connections:s,token_quota:i,...l}=n,d={...l,updated_at:new Date().toISOString()};return W(n,["branding","metadata","enabled_connections","token_quota"],d),(await e.updateTable("organizations").set(d).where("tenant_id","=",t).where("id","=",a).execute()).length>0}}function Qo(e){return{create:Jo(e),get:Lo(e),list:Uo(e),remove:Bo(e),update:Ko(e)}}function G(e,t){return{connection_id:e.connection_id,assign_membership_on_login:!!e.assign_membership_on_login,show_as_button:!!e.show_as_button,is_signup_enabled:!!e.is_signup_enabled,connection:t?{name:t.name,strategy:t.strategy}:void 0,created_at:e.created_at,updated_at:e.updated_at}}async function V(e,t,a){const n=await e.selectFrom("connections").select(["name","strategy"]).where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return n?{name:n.name,strategy:n.strategy??void 0}:void 0}function Wo(e){return{async create(t,a,n){const o=new Date().toISOString(),r={tenant_id:t,organization_id:a,connection_id:n.connection_id,assign_membership_on_login:n.assign_membership_on_login?1:0,show_as_button:n.show_as_button===!1?0:1,is_signup_enabled:n.is_signup_enabled===!1?0:1,created_at:o,updated_at:o};await e.insertInto("organization_connections").values(r).execute();const s=await V(e,t,n.connection_id);return G(r,s)},async list(t,a){const n=await e.selectFrom("organization_connections").selectAll().where("tenant_id","=",t).where("organization_id","=",a).execute(),o=[];for(const r of n){const s=await V(e,t,r.connection_id);o.push(G(r,s))}return o},async get(t,a,n){const o=await e.selectFrom("organization_connections").selectAll().where("tenant_id","=",t).where("organization_id","=",a).where("connection_id","=",n).executeTakeFirst();if(!o)return null;const r=await V(e,t,n);return G(o,r)},async update(t,a,n,o){const r={updated_at:new Date().toISOString()};o.assign_membership_on_login!==void 0&&(r.assign_membership_on_login=o.assign_membership_on_login?1:0),o.show_as_button!==void 0&&(r.show_as_button=o.show_as_button?1:0),o.is_signup_enabled!==void 0&&(r.is_signup_enabled=o.is_signup_enabled?1:0);const s=await e.updateTable("organization_connections").set(r).where("tenant_id","=",t).where("organization_id","=",a).where("connection_id","=",n).executeTakeFirst();if(Number(s.numUpdatedRows??0)===0)return null;const i=await e.selectFrom("organization_connections").selectAll().where("tenant_id","=",t).where("organization_id","=",a).where("connection_id","=",n).executeTakeFirst();if(!i)return null;const l=await V(e,t,n);return G(i,l)},async remove(t,a,n){const o=await e.deleteFrom("organization_connections").where("tenant_id","=",t).where("organization_id","=",a).where("connection_id","=",n).executeTakeFirst();return Number(o.numDeletedRows??0)>0}}}function Ho(e){return async(t,a)=>{const n={id:k.nanoid(),tenant_id:t,user_id:a.user_id,organization_id:a.organization_id,created_at:new Date().toISOString(),updated_at:new Date().toISOString()};try{await e.insertInto("user_organizations").values(n).execute()}catch(o){throw o.code==="SQLITE_CONSTRAINT_UNIQUE"||o.code==="ER_DUP_ENTRY"?new U(409,{message:"User is already a member of this organization"}):o}return{...n}}}function Yo(e){return async(t,a)=>{const n=await e.selectFrom("user_organizations").selectAll().where("id","=",a).where("tenant_id","=",t).executeTakeFirst();return n?{id:n.id,user_id:n.user_id,organization_id:n.organization_id,created_at:n.created_at,updated_at:n.updated_at}:null}}function Go(e){return async(t,a)=>{const n=(a==null?void 0:a.page)||0,o=(a==null?void 0:a.per_page)||50,r=n*o;let s=e.selectFrom("user_organizations").selectAll().where("tenant_id","=",t);if(a!=null&&a.q){if(a.q.startsWith("user_id:")){const c=a.q.replace("user_id:","");s=s.where("user_id","=",c)}else if(a.q.startsWith("organization_id:")){const c=a.q.replace("organization_id:","");s=s.where("organization_id","=",c)}}s=s.orderBy("created_at","desc"),o>0&&(s=s.limit(o).offset(r));const i=await s.execute();let l=e.selectFrom("user_organizations").select(e.fn.count("id").as("count")).where("tenant_id","=",t);if(a!=null&&a.q){if(a.q.startsWith("user_id:")){const c=a.q.replace("user_id:","");l=l.where("user_id","=",c)}else if(a.q.startsWith("organization_id:")){const c=a.q.replace("organization_id:","");l=l.where("organization_id","=",c)}}const d=await l.executeTakeFirst();return{userOrganizations:i.map(c=>({id:c.id,user_id:c.user_id,organization_id:c.organization_id,created_at:c.created_at,updated_at:c.updated_at})),start:r,limit:o,length:Number((d==null?void 0:d.count)||0)}}}function Vo(e){return async(t,a,n)=>{const o=(n==null?void 0:n.page)||0,r=(n==null?void 0:n.per_page)||50,s=o*r;let i=e.selectFrom("user_organizations").innerJoin("organizations",c=>c.onRef("organizations.id","=","user_organizations.organization_id").on("organizations.tenant_id","=",t)).select(["organizations.id","organizations.name","organizations.display_name","organizations.branding","organizations.metadata","organizations.enabled_connections","organizations.token_quota","organizations.created_at","organizations.updated_at","user_organizations.created_at as joined_at"]).where("user_organizations.tenant_id","=",t).where("user_organizations.user_id","=",a);i=i.orderBy("user_organizations.created_at","desc"),r>0&&(i=i.limit(r).offset(s));const l=await i.execute(),d=await e.selectFrom("user_organizations").innerJoin("organizations",c=>c.onRef("organizations.id","=","user_organizations.organization_id").on("organizations.tenant_id","=",t)).select(e.fn.count("user_organizations.id").as("count")).where("user_organizations.tenant_id","=",t).where("user_organizations.user_id","=",a).executeTakeFirst();return{organizations:l.map(c=>({id:c.id,name:c.name,display_name:c.display_name,branding:c.branding?JSON.parse(c.branding):void 0,metadata:c.metadata?JSON.parse(c.metadata):{},enabled_connections:c.enabled_connections?JSON.parse(c.enabled_connections):[],token_quota:c.token_quota?JSON.parse(c.token_quota):void 0,created_at:c.created_at,updated_at:c.updated_at,joined_at:c.joined_at})),start:s,limit:r,length:Number((d==null?void 0:d.count)||0)}}}function Xo(e){return async(t,a)=>(await e.deleteFrom("user_organizations").where("id","=",a).where("tenant_id","=",t).execute()).length>0}function Zo(e){return async(t,a,n)=>{const o={...n,updated_at:new Date().toISOString()};return(await e.updateTable("user_organizations").set(o).where("id","=",a).where("tenant_id","=",t).execute()).length>0}}function er(e){return{create:Ho(e),get:Yo(e),list:Go(e),listUserOrganizations:Vo(e),remove:Xo(e),update:Zo(e)}}function tr(e){return async(t,a)=>{const n=it(),o=new Date().toISOString(),r=a.ttl_sec||604800,s=new Date(Date.now()+r*1e3).toISOString(),i=W({id:n,tenant_id:t,organization_id:a.organization_id,inviter:a.inviter||{},invitee:a.invitee||{},client_id:a.client_id,connection_id:a.connection_id||null,invitation_url:a.invitation_url,created_at:o,expires_at:s,app_metadata:a.app_metadata||{},user_metadata:a.user_metadata||{},roles:a.roles||[],ticket_id:null,ttl_sec:r,send_invitation_email:a.send_invitation_email??!0?1:0},["inviter","invitee","app_metadata","user_metadata","roles"]);try{await e.insertInto("invites").values(i).execute()}catch(l){throw l.code==="SQLITE_CONSTRAINT_UNIQUE"||l.code==="ER_DUP_ENTRY"||l.message.includes("AlreadyExists")?new U(409,{message:"Invite already exists"}):l}return{id:n,organization_id:i.organization_id,inviter:a.inviter,invitee:a.invitee,client_id:a.client_id,connection_id:a.connection_id,invitation_url:a.invitation_url,created_at:o,expires_at:s,app_metadata:a.app_metadata||{},user_metadata:a.user_metadata||{},roles:a.roles||[],ticket_id:i.ticket_id||void 0,ttl_sec:r,send_invitation_email:a.send_invitation_email??!0}}}function ar(e){return async(t,a)=>{const n=await e.selectFrom("invites").selectAll().where("tenant_id","=",t).where("id","=",a).executeTakeFirst();if(!n)return null;const o=$e(n,{inviter:{},invitee:{},app_metadata:{},user_metadata:{},roles:[]});return y({...o,send_invitation_email:n.send_invitation_email===1})}}function nr(e){return async(t,a)=>{let n=e.selectFrom("invites").selectAll().where("tenant_id","=",t).orderBy("created_at","desc");if(a!=null&&a.per_page&&(n=n.limit(a.per_page)),a!=null&&a.page){const s=(a.page-1)*(a.per_page||10);n=n.offset(s)}const r=(await n.execute()).map(s=>{const i=$e(s,{inviter:{},invitee:{},app_metadata:{},user_metadata:{},roles:[]});return y({...i,send_invitation_email:s.send_invitation_email===1})});return{invites:r,start:a!=null&&a.page?(a.page-1)*(a.per_page||10):0,limit:(a==null?void 0:a.per_page)||r.length,length:r.length}}}function or(e){return async(t,a)=>(await e.deleteFrom("invites").where("tenant_id","=",t).where("id","=",a).executeTakeFirst()).numDeletedRows>0n}function rr(e){return async(t,a,n)=>{const o={};return n.inviter!==void 0&&(o.inviter=JSON.stringify(n.inviter)),n.invitee!==void 0&&(o.invitee=JSON.stringify(n.invitee)),n.client_id!==void 0&&(o.client_id=n.client_id),n.connection_id!==void 0&&(o.connection_id=n.connection_id),n.app_metadata!==void 0&&(o.app_metadata=JSON.stringify(n.app_metadata)),n.user_metadata!==void 0&&(o.user_metadata=JSON.stringify(n.user_metadata)),n.roles!==void 0&&(o.roles=JSON.stringify(n.roles)),n.ttl_sec!==void 0&&(o.ttl_sec=n.ttl_sec,o.expires_at=new Date(Date.now()+n.ttl_sec*1e3).toISOString()),n.send_invitation_email!==void 0&&(o.send_invitation_email=n.send_invitation_email?1:0),Object.keys(o).length===0?!0:(await e.updateTable("invites").set(o).where("tenant_id","=",t).where("id","=",a).executeTakeFirst()).numUpdatedRows>0n}}function sr(e){return{create:tr(e),get:ar(e),list:nr(e),remove:or(e),update:rr(e)}}const ye=["s"],ir=["pwd_leak"];function ve(e){return/^\d{8}$/.test(e)?`${e.slice(0,4)}-${e.slice(4,6)}-${e.slice(6,8)}`:e}function Ce(e){return e.toISOString().split("T")[0]}function cr(e){return{async getDaily(t,a={}){const{from:n,to:o}=a,r=new Date,s=new Date(r);s.setDate(s.getDate()-30);const i=n?ve(n):Ce(s),l=o?ve(o):Ce(r),d=h.sql`DATE(logs.date)`;return(await e.selectFrom("logs").where("tenant_id","=",t).where(d,">=",i).where(d,"<=",l).select(c=>[d.as("date"),c.fn.sum(c.case().when("type","in",ye).then(1).else(0).end()).as("logins"),c.fn.sum(c.case().when("type","=","ss").then(1).else(0).end()).as("signups"),c.fn.sum(c.case().when("type","in",ir).then(1).else(0).end()).as("leaked_passwords"),c.fn.min("date").as("first_event"),c.fn.max("date").as("last_event")]).groupBy(d).orderBy("date","asc").execute()).map(c=>({date:c.date,logins:Number(c.logins)||0,signups:Number(c.signups)||0,leaked_passwords:Number(c.leaked_passwords)||0,created_at:c.first_event||new Date().toISOString(),updated_at:c.last_event||new Date().toISOString()}))},async getActiveUsers(t){const a=new Date;return a.setDate(a.getDate()-30),(await e.selectFrom("logs").where("tenant_id","=",t).where("date",">=",a.toISOString()).where("type","in",ye).where("user_id","is not",null).select(o=>o.fn.count("user_id").distinct().as("count")).executeTakeFirstOrThrow()).count||0}}}const lr={"active-users":["s","seacft"],logins:["s","f","fp"],signups:["ss","fs"],"refresh-tokens":["seacft","fertft"],sessions:["slo"]},dr={"active-users":{alias:"active_users",type:"UInt64",agg:"uniq"},logins:{alias:"logins",type:"UInt64",agg:"count"},signups:{alias:"signups",type:"UInt64",agg:"count"},"refresh-tokens":{alias:"refresh_tokens",type:"UInt64",agg:"count"},sessions:{alias:"sessions",type:"UInt64",agg:"count"}};async function ur(e){try{return await h.sql`SELECT @@version_comment`.execute(e),"mysql"}catch{return"sqlite"}}function ce(e,t){const a=new Intl.DateTimeFormat("en-US",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}),n={};for(const c of a.formatToParts(t))n[c.type]=c.value;const o=n.hour==="24"?"00":n.hour,r=Date.UTC(Number(n.year),Number(n.month)-1,Number(n.day),Number(o),Number(n.minute),Number(n.second)),s=Math.round((r-t.getTime())/6e4),i=s>=0?"+":"-",l=Math.abs(s),d=String(Math.floor(l/60)).padStart(2,"0"),_=String(l%60).padStart(2,"0");return`${i}${d}:${_}`}const _r=["January","February","March","April","May","June","July","August","September","October","November","December"];function mr(e,t){const a=t.getUTCFullYear(),n=ce(e,new Date(Date.UTC(a,0,1)));for(let o=1;o<12;o++){const r=ce(e,new Date(Date.UTC(a,o,1)));if(r!==n)throw new Error(`Timezone '${e}' is DST-varying (offset ${n} in January vs ${r} in ${_r[o]}) and cannot be bucketed with a single fixed offset by the SQL analytics adapter. Use a fixed-offset zone (e.g. 'UTC' or '+02:00').`)}}function Fe(e){const t=e.startsWith("-")?-1:1,[a,n]=e.slice(1).split(":");return t*(Number(a)*60+Number(n))}function hr(e,t){let a;if(t==="+00:00")a=h.sql`${h.sql.ref("logs.date")}`;else{const n=Fe(t),o=`${n>=0?"+":"-"}${Math.abs(n)} minutes`;a=h.sql`datetime(${h.sql.ref("logs.date")}, ${o})`}switch(e){case"hour":return h.sql`substr(${a}, 1, 13)`;case"month":return h.sql`substr(${a}, 1, 7)`;case"day":return h.sql`substr(${a}, 1, 10)`;case"week":return h.sql`date(substr(${a}, 1, 10), '-' || ((cast(strftime('%w', substr(${a}, 1, 10)) as integer) + 6) % 7) || ' days')`;default:throw new Error(`Unsupported interval '${e}' for SQL analytics adapter`)}}function pr(e,t){if(t==="+00:00")switch(e){case"hour":return h.sql`substring(${h.sql.ref("logs.date")}, 1, 13)`;case"day":return h.sql`substring(${h.sql.ref("logs.date")}, 1, 10)`;case"month":return h.sql`substring(${h.sql.ref("logs.date")}, 1, 7)`;case"week":{const o=h.sql`str_to_date(substring(${h.sql.ref("logs.date")}, 1, 10), '%Y-%m-%d')`;return h.sql`date_format(date_sub(${o}, interval weekday(${o}) day), '%Y-%m-%d')`}default:throw new Error(`Unsupported interval '${e}' for SQL analytics adapter`)}const a=Fe(t),n=h.sql`date_add(str_to_date(substring(${h.sql.ref("logs.date")}, 1, 19), '%Y-%m-%dT%H:%i:%s'), interval ${h.sql.lit(a)} minute)`;switch(e){case"hour":return h.sql`date_format(${n}, '%Y-%m-%dT%H')`;case"day":return h.sql`date_format(${n}, '%Y-%m-%d')`;case"month":return h.sql`date_format(${n}, '%Y-%m')`;case"week":return h.sql`date_format(date_sub(${n}, interval weekday(${n}) day), '%Y-%m-%d')`;default:throw new Error(`Unsupported interval '${e}' for SQL analytics adapter`)}}function fr(e,t,a,n){mr(t,a);const o=ce(t,a);return n==="mysql"?pr(e,o):hr(e,o)}function gr(e){switch(e){case"connection":return"logs.connection";case"client_id":return"logs.client_id";case"user_type":return"logs.strategy_type";case"event":return"logs.type";case"time":throw new Error("time dimension is handled separately")}}function wr(e){let t=null;const a=()=>(t||(t=ur(e)),t);return{async query(n,o,r){var b,S,$,D;const s=Date.now(),i=lr[o],l=dr[o],d=await a(),_=[];let c=e.selectFrom("logs").where("tenant_id","=",n);c=c.where("date",">=",r.from).where("date","<",r.to),c=c.where("type","in",i),(b=r.filters.connection)!=null&&b.length&&(c=c.where("connection","in",r.filters.connection)),(S=r.filters.client_id)!=null&&S.length&&(c=c.where("client_id","in",r.filters.client_id)),($=r.filters.user_type)!=null&&$.length&&(c=c.where("strategy_type","in",r.filters.user_type)),(D=r.filters.user_id)!=null&&D.length&&(c=c.where("user_id","in",r.filters.user_id));const m=[],u=[];for(const C of r.group_by)if(C==="time"){const T=fr(r.interval,r.tz,new Date(r.from),d);u.push({alias:"time",expr:T}),m.push(T),_.push({name:"time",type:r.interval==="hour"?"DateTime":"Date"})}else{const T=gr(C);u.push({alias:C,expr:h.sql`${h.sql.ref(T)}`}),m.push(h.sql`${h.sql.ref(T)}`),_.push({name:C,type:"String"})}const f=l.agg==="uniq"?h.sql`COUNT(DISTINCT ${h.sql.ref("logs.user_id")})`:h.sql`COUNT(*)`;u.push({alias:l.alias,expr:f}),_.push({name:l.alias,type:l.type});let p=c.select(u.map(({alias:C,expr:T})=>T.as(C)));if(m.length>0&&(p=p.groupBy(m)),r.order_by){const C=r.order_by.startsWith("-"),T=C?r.order_by.slice(1):r.order_by;p=p.orderBy(T,C?"desc":"asc")}else r.group_by.length>0&&r.group_by[0]==="time"?p=p.orderBy("time","asc"):p=p.orderBy(l.alias,"desc");p=p.limit(r.limit).offset(r.offset);const v=(await p.execute()).map(C=>{const T={};for(const K of _){const M=C[K.name];T[K.name]=K.type==="UInt64"?Number(M)||0:M??""}return T});return{meta:_,data:v,rows:v.length,rows_before_limit_at_least:v.length,statistics:{elapsed:(Date.now()-s)/1e3}}}}}function yr(e){return{async get(t,a,n){const o=await e.selectFrom("custom_text").selectAll().where("tenant_id","=",t).where("prompt","=",a).where("language","=",n).executeTakeFirst();if(!o)return null;try{return JSON.parse(o.custom_text)}catch{return null}},async set(t,a,n,o){const r=Date.now(),s=JSON.stringify(o);await e.selectFrom("custom_text").select("tenant_id").where("tenant_id","=",t).where("prompt","=",a).where("language","=",n).executeTakeFirst()?await e.updateTable("custom_text").set({custom_text:s,updated_at_ts:r}).where("tenant_id","=",t).where("prompt","=",a).where("language","=",n).execute():await e.insertInto("custom_text").values({tenant_id:t,prompt:a,language:n,custom_text:s,created_at_ts:r,updated_at_ts:r}).execute()},async delete(t,a,n){await e.deleteFrom("custom_text").where("tenant_id","=",t).where("prompt","=",a).where("language","=",n).execute()},async list(t){return(await e.selectFrom("custom_text").select(["prompt","language"]).where("tenant_id","=",t).execute()).map(n=>({prompt:n.prompt,language:n.language}))}}}function vr(e){return async(t,a)=>{const n=Date.now(),o=De();return await e.insertInto("authentication_methods").values({id:o,tenant_id:t,user_id:a.user_id,type:a.type,phone_number:a.phone_number,totp_secret:a.totp_secret,credential_id:a.credential_id,public_key:a.public_key,sign_count:a.sign_count,credential_backed_up:a.credential_backed_up==null?void 0:a.credential_backed_up?1:0,transports:a.transports?JSON.stringify(a.transports):void 0,friendly_name:a.friendly_name,confirmed:a.confirmed?1:0,created_at_ts:n,updated_at_ts:n}).execute(),{id:o,user_id:a.user_id,type:a.type,phone_number:a.phone_number,totp_secret:a.totp_secret,credential_id:a.credential_id,public_key:a.public_key,sign_count:a.sign_count,credential_backed_up:a.credential_backed_up,transports:a.transports,friendly_name:a.friendly_name,confirmed:a.confirmed??!1,created_at:new Date(n).toISOString(),updated_at:new Date(n).toISOString()}}}function je(e){return async(t,a)=>{const n=await e.selectFrom("authentication_methods").where("authentication_methods.tenant_id","=",t).where("authentication_methods.id","=",a).selectAll().executeTakeFirst();return n?{id:n.id,user_id:n.user_id,type:n.type,phone_number:n.phone_number??void 0,totp_secret:n.totp_secret??void 0,credential_id:n.credential_id??void 0,public_key:n.public_key??void 0,sign_count:n.sign_count??void 0,credential_backed_up:n.credential_backed_up!=null?n.credential_backed_up===1:void 0,transports:n.transports?JSON.parse(n.transports):void 0,friendly_name:n.friendly_name??void 0,confirmed:n.confirmed===1,created_at:j(n.created_at_ts),updated_at:j(n.updated_at_ts)}:null}}function Cr(e){return async(t,a)=>{const n=await e.selectFrom("authentication_methods").where("authentication_methods.tenant_id","=",t).where("authentication_methods.credential_id","=",a).selectAll().executeTakeFirst();return n?{id:n.id,user_id:n.user_id,type:n.type,phone_number:n.phone_number??void 0,totp_secret:n.totp_secret??void 0,credential_id:n.credential_id??void 0,public_key:n.public_key??void 0,sign_count:n.sign_count??void 0,credential_backed_up:n.credential_backed_up!=null?n.credential_backed_up===1:void 0,transports:n.transports?JSON.parse(n.transports):void 0,friendly_name:n.friendly_name??void 0,confirmed:n.confirmed===1,created_at:j(n.created_at_ts),updated_at:j(n.updated_at_ts)}:null}}function xr(e){return async(t,a)=>(await e.selectFrom("authentication_methods").where("authentication_methods.tenant_id","=",t).where("authentication_methods.user_id","=",a).selectAll().execute()).map(o=>({id:o.id,user_id:o.user_id,type:o.type,phone_number:o.phone_number??void 0,totp_secret:o.totp_secret??void 0,credential_id:o.credential_id??void 0,public_key:o.public_key??void 0,sign_count:o.sign_count??void 0,credential_backed_up:o.credential_backed_up!=null?o.credential_backed_up===1:void 0,transports:o.transports?JSON.parse(o.transports):void 0,friendly_name:o.friendly_name??void 0,confirmed:o.confirmed===1,created_at:j(o.created_at_ts),updated_at:j(o.updated_at_ts)}))}function Tr(e){return async(t,a,n)=>{const r={updated_at_ts:Date.now()};n.phone_number!==void 0&&(r.phone_number=n.phone_number),n.totp_secret!==void 0&&(r.totp_secret=n.totp_secret),n.credential_id!==void 0&&(r.credential_id=n.credential_id),n.public_key!==void 0&&(r.public_key=n.public_key),n.sign_count!==void 0&&(r.sign_count=n.sign_count),n.credential_backed_up!==void 0&&(r.credential_backed_up=n.credential_backed_up?1:0),n.transports!==void 0&&(r.transports=JSON.stringify(n.transports)),n.friendly_name!==void 0&&(r.friendly_name=n.friendly_name),n.confirmed!==void 0&&(r.confirmed=n.confirmed?1:0),await e.updateTable("authentication_methods").set(r).where("authentication_methods.tenant_id","=",t).where("authentication_methods.id","=",a).execute();const s=await je(e)(t,a);if(!s)throw new Error(`Authentication method ${a} not found`);return s}}function br(e){return async(t,a)=>(await e.deleteFrom("authentication_methods").where("authentication_methods.tenant_id","=",t).where("authentication_methods.id","=",a).executeTakeFirst()).numDeletedRows>0}function Nr(e){return{create:vr(e),get:je(e),getByCredentialId:Cr(e),list:xr(e),update:Tr(e),remove:br(e)}}function Sr(e){return async(t,a)=>{const n=k.nanoid();return await e.insertInto("outbox_events").values({id:n,tenant_id:t,event_type:a.event_type,log_type:a.log_type,aggregate_type:a.target.type,aggregate_id:a.target.id,payload:JSON.stringify({...a,id:n}),created_at:new Date().toISOString(),processed_at:null,retry_count:0,next_retry_at:null,error:null}).execute(),n}}function Or(e){return async t=>t.length===0?[]:(await e.selectFrom("outbox_events").selectAll().where("id","in",t).execute()).map(n=>({...JSON.parse(n.payload),id:n.id,created_at:n.created_at,processed_at:n.processed_at,retry_count:n.retry_count,next_retry_at:n.next_retry_at,error:n.error}))}function kr(e){return async t=>{const a=new Date().toISOString();return(await e.selectFrom("outbox_events").selectAll().where("processed_at","is",null).where(o=>o.or([o("next_retry_at","is",null),o("next_retry_at","<=",a)])).where(o=>o.or([o("claimed_by","is",null),o("claim_expires_at","<=",a)])).orderBy("created_at","asc").orderBy("id","asc").limit(t).execute()).map(o=>({...JSON.parse(o.payload),id:o.id,created_at:o.created_at,processed_at:o.processed_at,retry_count:o.retry_count,next_retry_at:o.next_retry_at,error:o.error}))}}function $r(e){return async(t,a,n)=>{if(t.length===0)return[];const o=new Date().toISOString(),r=new Date(Date.now()+n).toISOString();return await e.updateTable("outbox_events").set({claimed_by:a,claim_expires_at:r}).where("id","in",t).where("processed_at","is",null).where(i=>i.or([i("claimed_by","is",null),i("claim_expires_at","<=",o)])).execute(),(await e.selectFrom("outbox_events").select("id").where("id","in",t).where("claimed_by","=",a).where("claim_expires_at","=",r).execute()).map(i=>i.id)}}function Er(e){return async t=>{if(t.length===0)return;const a=new Date().toISOString();await e.updateTable("outbox_events").set({processed_at:a}).where("id","in",t).execute()}}function Ir(e){return async(t,a,n)=>{await e.updateTable("outbox_events").set({error:a,next_retry_at:n,retry_count:h.sql`retry_count + 1`,claimed_by:null,claim_expires_at:null}).where("id","=",t).execute()}}function Pr(e){return async(t,a)=>{const n=new Date().toISOString();await e.updateTable("outbox_events").set({processed_at:n,dead_lettered_at:n,final_error:a}).where("id","=",t).execute()}}function zr(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1}=a,i=(await e.selectFrom("outbox_events").selectAll().where("tenant_id","=",t).where("dead_lettered_at","is not",null).orderBy("dead_lettered_at","desc").orderBy("id","asc").offset(n*o).limit(o).execute()).flatMap(d=>{let _;try{_=JSON.parse(d.payload)}catch(c){return console.error(`Failed to parse outbox payload for event ${d.id}`,c),[]}return[{..._,id:d.id,created_at:d.created_at,processed_at:d.processed_at,retry_count:d.retry_count,next_retry_at:d.next_retry_at,error:d.error,dead_lettered_at:d.dead_lettered_at,final_error:d.final_error}]});let l=i.length;if(r){const[d]=await e.selectFrom("outbox_events").select(_=>_.fn.countAll().as("total")).where("tenant_id","=",t).where("dead_lettered_at","is not",null).execute();l=Number((d==null?void 0:d.total)??i.length)}return{events:i,start:n*o,limit:o,length:l}}}function Dr(e){return async(t,a)=>{const n=await e.updateTable("outbox_events").set({processed_at:null,dead_lettered_at:null,final_error:null,retry_count:0,next_retry_at:null,error:null}).where("id","=",t).where("tenant_id","=",a).where("dead_lettered_at","is not",null).executeTakeFirst();return Number(n.numUpdatedRows)>0}}function Ar(e){return async t=>{const a=await e.deleteFrom("outbox_events").where("processed_at","is not",null).where("processed_at","<",t).executeTakeFirst();return Number(a.numDeletedRows)}}function Fr(e){return{create:Sr(e),getByIds:Or(e),getUnprocessed:kr(e),claimEvents:$r(e),markProcessed:Er(e),markRetry:Ir(e),deadLetter:Pr(e),listFailed:zr(e),replay:Dr(e),cleanup:Ar(e)}}function ae(e){return{id:e.id,name:e.name,type:e.type,status:e.status,sink:JSON.parse(e.sink),filters:e.filters?JSON.parse(e.filters):void 0,isPriority:e.is_priority==null?void 0:e.is_priority===1,created_at:e.created_at,updated_at:e.updated_at}}function jr(e){return{async create(t,a){const n=new Date().toISOString(),r={id:`lst_${k.nanoid()}`,tenant_id:t,name:a.name,type:a.type,status:a.status??"active",sink:JSON.stringify(a.sink),filters:a.filters?JSON.stringify(a.filters):null,is_priority:a.isPriority===void 0?null:a.isPriority?1:0,created_at:n,updated_at:n};return await e.insertInto("log_streams").values(r).execute(),ae(r)},async get(t,a){const n=await e.selectFrom("log_streams").where("tenant_id","=",t).where("id","=",a).selectAll().executeTakeFirst();return n?ae(n):null},async list(t){return(await e.selectFrom("log_streams").where("tenant_id","=",t).selectAll().execute()).map(ae)},async update(t,a,n){const o={updated_at:new Date().toISOString()};n.name!==void 0&&(o.name=n.name),n.type!==void 0&&(o.type=n.type),n.status!==void 0&&(o.status=n.status),n.sink!==void 0&&(o.sink=JSON.stringify(n.sink)),n.filters!==void 0&&(o.filters=n.filters?JSON.stringify(n.filters):null),n.isPriority!==void 0&&(o.is_priority=n.isPriority?1:0);const r=await e.updateTable("log_streams").set(o).where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return((r==null?void 0:r.numUpdatedRows)??0n)>0n},async remove(t,a){const n=await e.deleteFrom("log_streams").where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return((n==null?void 0:n.numDeletedRows)??0n)>0n}}}function ne(e){return{id:e.id,name:e.name,provider:N.migrationProviderTypeSchema.parse(e.provider),connection:e.connection,enabled:e.enabled===1,credentials:JSON.parse(e.credentials),created_at:e.created_at,updated_at:e.updated_at}}function Rr(e){return{async create(t,a){const n=new Date().toISOString(),o=a.id??`mig_${k.nanoid()}`,r=a.enabled??!0,s={id:o,tenant_id:t,name:a.name,provider:a.provider,connection:a.connection,enabled:r?1:0,credentials:JSON.stringify(a.credentials),created_at:n,updated_at:n};return await e.insertInto("migration_sources").values(s).execute(),ne(s)},async get(t,a){const n=await e.selectFrom("migration_sources").where("tenant_id","=",t).where("id","=",a).selectAll().executeTakeFirst();return n?ne(n):null},async list(t){return(await e.selectFrom("migration_sources").where("tenant_id","=",t).selectAll().execute()).map(ne)},async update(t,a,n){const o={updated_at:new Date().toISOString()};n.name!==void 0&&(o.name=n.name),n.provider!==void 0&&(o.provider=n.provider),n.connection!==void 0&&(o.connection=n.connection),n.enabled!==void 0&&(o.enabled=n.enabled?1:0),n.credentials!==void 0&&(o.credentials=JSON.stringify(n.credentials));const r=await e.updateTable("migration_sources").set(o).where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return((r==null?void 0:r.numUpdatedRows)??0n)>0n},async remove(t,a){const n=await e.deleteFrom("migration_sources").where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return((n==null?void 0:n.numDeletedRows)??0n)>0n}}}class Re{constructor(t){H(this,"migrations");this.migrations=t}async getMigrations(){return this.migrations}}async function qr(e){await e.schema.createTable("tenants").addColumn("id","varchar(255)",t=>t.primaryKey()).addColumn("name","varchar(255)").addColumn("audience","varchar(255)").addColumn("sender_email","varchar(255)").addColumn("sender_name","varchar(255)").addColumn("language","varchar(255)").addColumn("logo","varchar(255)").addColumn("primary_color","varchar(255)").addColumn("secondary_color","varchar(255)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).execute(),await e.schema.createTable("users").addColumn("user_id","varchar(255)",t=>t.notNull()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("email","varchar(255)").addColumn("given_name","varchar(255)").addColumn("family_name","varchar(255)").addColumn("nickname","varchar(255)").addColumn("name","varchar(255)").addColumn("picture","varchar(2083)").addColumn("tags","varchar(255)").addColumn("phone_number","varchar(17)").addColumn("phone_verified","boolean").addColumn("username","varchar(128)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).addPrimaryKeyConstraint("users_tenants",["user_id","tenant_id"]).addColumn("linked_to","varchar(255)").addForeignKeyConstraint("linked_to_constraint",["linked_to","tenant_id"],"users",["user_id","tenant_id"]).addColumn("last_ip","varchar(255)").addColumn("login_count","integer",t=>t.notNull()).addColumn("last_login","varchar(255)").addColumn("provider","varchar(255)",t=>t.notNull()).addColumn("connection","varchar(255)").addColumn("email_verified","boolean",t=>t.notNull()).addColumn("is_social","boolean",t=>t.notNull()).addColumn("app_metadata","varchar(4096)",t=>t.defaultTo("{}").notNull()).addColumn("user_metadata","varchar(4096)",t=>t.defaultTo("{}").notNull()).addUniqueConstraint("unique_email_provider",["email","provider","tenant_id"]).addUniqueConstraint("unique_phone_provider",["phone_number","provider","tenant_id"]).execute(),await e.schema.createTable("members").addColumn("id","varchar(255)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("sub","varchar(255)").addColumn("email","varchar(255)").addColumn("name","varchar(255)").addColumn("status","varchar(255)").addColumn("role","varchar(255)").addColumn("picture","varchar(2083)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).execute(),await e.schema.createTable("applications").addColumn("id","varchar(255)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("name","varchar(255)",t=>t.notNull()).addColumn("client_secret","varchar(255)").addColumn("allowed_logout_urls","varchar(255)").addColumn("authentication_settings","varchar(255)").addColumn("addons","varchar(4096)",t=>t.notNull().defaultTo("{}")).addColumn("callbacks","varchar(1024)",t=>t.notNull().defaultTo("[]")).addColumn("allowed_origins","varchar(1024)",t=>t.notNull().defaultTo("[]")).addColumn("web_origins","varchar(1024)",t=>t.notNull().defaultTo("[]")).addColumn("allowed_clients","varchar(1024)",t=>t.defaultTo("[]").notNull()).addColumn("options_kid","varchar(32)").addColumn("options_team_id","varchar(32)").addColumn("options_client_id","varchar(128)").addColumn("options_client_secret","varchar(255)").addColumn("options_scope","varchar(255)").addColumn("options_realms","varchar(255)").addColumn("options_app_secret","varchar(1024)").addColumn("email_validation","varchar(255)").addColumn("disable_sign_ups","boolean",t=>t.notNull()).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).execute(),await e.schema.createTable("connections").addColumn("id","varchar(255)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("name","varchar(255)",t=>t.notNull()).addColumn("response_type","varchar(255)").addColumn("response_mode","varchar(255)").addColumn("strategy","varchar(64)").addColumn("options","varchar(2048)",t=>t.defaultTo("{}").notNull()).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).execute(),await e.schema.createTable("migrations").addColumn("id","varchar(255)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("provider","varchar(255)").addColumn("client_id","varchar(255)").addColumn("origin","varchar(255)").addColumn("domain","varchar(255)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).execute(),await e.schema.createTable("domains").addColumn("id","varchar(255)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("domain","varchar(255)",t=>t.notNull()).addColumn("email_service","varchar(255)").addColumn("email_api_key","varchar(255)").addColumn("dkim_private_key","varchar(2048)").addColumn("dkim_public_key","varchar(2048)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).execute()}async function Mr(e){await e.schema.dropTable("domains").execute(),await e.schema.dropTable("members").execute(),await e.schema.dropTable("users").execute(),await e.schema.dropTable("connections").execute(),await e.schema.dropTable("applications").execute(),await e.schema.dropTable("migrations").execute(),await e.schema.dropTable("tenants").execute()}const Jr=Object.freeze(Object.defineProperty({__proto__:null,down:Mr,up:qr},Symbol.toStringTag,{value:"Module"}));async function Lr(e){await e.schema.alterTable("tenants").addColumn("support_url","varchar(255)").execute()}async function Ur(e){await e.schema.alterTable("tenants").dropColumn("support_url").execute()}const Br=Object.freeze(Object.defineProperty({__proto__:null,down:Ur,up:Lr},Symbol.toStringTag,{value:"Module"}));async function Kr(e){}async function Qr(e){}const Wr=Object.freeze(Object.defineProperty({__proto__:null,down:Qr,up:Kr},Symbol.toStringTag,{value:"Module"}));async function Hr(e){await e.schema.createTable("logs").addColumn("id","varchar(255)",t=>t.notNull().primaryKey()).addColumn("category","varchar(255)",t=>t.notNull()).addColumn("tenant_id","varchar(64)").addColumn("user_id","varchar(64)").addForeignKeyConstraint("tenant_id_constraint",["tenant_id"],"tenants",["id"],t=>t.onDelete("cascade")).addColumn("ip","varchar(255)").addColumn("type","varchar(8)",t=>t.notNull()).addColumn("date","varchar(25)",t=>t.notNull()).addColumn("client_id","varchar(255)").addColumn("client_name","varchar(255)").addColumn("user_agent","varchar(255)").addColumn("description","varchar(255)").addColumn("details","varchar(2048)").execute()}async function Yr(e){await e.schema.dropTable("logs").execute()}const Gr=Object.freeze(Object.defineProperty({__proto__:null,down:Yr,up:Hr},Symbol.toStringTag,{value:"Module"}));async function Vr(e){}async function Xr(e){}const Zr=Object.freeze(Object.defineProperty({__proto__:null,down:Xr,up:Vr},Symbol.toStringTag,{value:"Module"}));async function es(e){await e.schema.createTable("sessions").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)").addColumn("user_id","varchar(255)").addForeignKeyConstraint("user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("authenticated_at","varchar(35)").addColumn("last_interaction_at","varchar(35)").addColumn("used_at","varchar(35)").addColumn("revoked_at","varchar(35)").addColumn("device","varchar(2048)",t=>t.notNull()).addColumn("clients","varchar(1024)",t=>t.notNull()).execute(),await e.schema.createTable("tickets").addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("id","varchar(255)",t=>t.primaryKey()).addColumn("client_id","varchar(255)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("email","varchar(255)",t=>t.notNull()).addColumn("nonce","varchar(255)").addColumn("state","varchar(1024)").addColumn("scope","varchar(1024)").addColumn("response_type","varchar(256)").addColumn("response_mode","varchar(256)").addColumn("redirect_uri","varchar(1024)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute(),await e.schema.createTable("otps").addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("id","varchar(255)",t=>t.primaryKey()).addColumn("client_id","varchar(255)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("code","varchar(255)",t=>t.notNull()).addColumn("email","varchar(255)",t=>t.notNull()).addColumn("user_id","varchar(255)").addColumn("send","varchar(255)").addColumn("nonce","varchar(255)").addColumn("state","varchar(1024)").addColumn("scope","varchar(1024)").addColumn("response_type","varchar(256)").addColumn("response_mode","varchar(256)").addColumn("redirect_uri","varchar(1024)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute(),await e.schema.createIndex("otps_email_index").on("otps").column("email").execute(),await e.schema.createIndex("otps_expires_at_index").on("otps").column("expires_at").execute()}async function ts(e){await e.schema.dropTable("sessions").execute(),await e.schema.dropTable("tickets").execute(),await e.schema.dropTable("otps").execute()}const as=Object.freeze(Object.defineProperty({__proto__:null,down:ts,up:es},Symbol.toStringTag,{value:"Module"}));async function ns(e){await e.schema.createTable("passwords").addColumn("tenant_id","varchar(255)").addColumn("user_id","varchar(255)").addPrimaryKeyConstraint("passwords_pkey",["user_id","tenant_id"]).addForeignKeyConstraint("user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(255)").addColumn("updated_at","varchar(255)").execute(),await e.schema.createTable("codes").addColumn("id","varchar(255)",t=>t.primaryKey()).addColumn("user_id","varchar(255)").addColumn("tenant_id","varchar(255)").addForeignKeyConstraint("user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("type","varchar(255)",t=>t.notNull()).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute(),await e.schema.createIndex("codes_expires_at_index").on("codes").column("expires_at").execute()}async function os(e){await e.schema.dropTable("passwords").execute(),await e.schema.dropTable("codes").execute()}const rs=Object.freeze(Object.defineProperty({__proto__:null,down:os,up:ns},Symbol.toStringTag,{value:"Module"}));async function ss(e){}async function is(e){}const cs=Object.freeze(Object.defineProperty({__proto__:null,down:is,up:ss},Symbol.toStringTag,{value:"Module"}));async function ls(e){await e.schema.alterTable("passwords").addColumn("password","varchar(255)",t=>t.notNull()).execute()}async function ds(e){await e.schema.alterTable("passwords").dropColumn("password").execute()}const us=Object.freeze(Object.defineProperty({__proto__:null,down:ds,up:ls},Symbol.toStringTag,{value:"Module"}));async function _s(e){}async function ms(e){}const hs=Object.freeze(Object.defineProperty({__proto__:null,down:ms,up:_s},Symbol.toStringTag,{value:"Module"}));async function ps(e){}async function fs(e){}const gs=Object.freeze(Object.defineProperty({__proto__:null,down:fs,up:ps},Symbol.toStringTag,{value:"Module"}));async function ws(e){}async function ys(e){}const vs=Object.freeze(Object.defineProperty({__proto__:null,down:ys,up:ws},Symbol.toStringTag,{value:"Module"}));async function Cs(e){await e.schema.createIndex("users_email_index").on("users").column("email").execute()}async function xs(e){await e.schema.dropIndex("users_email_index").execute()}const Ts=Object.freeze(Object.defineProperty({__proto__:null,down:xs,up:Cs},Symbol.toStringTag,{value:"Module"}));async function bs(e){await e.schema.alterTable("users").addColumn("profileData","varchar(2048)").execute()}async function Ns(e){await e.schema.alterTable("users").dropColumn("profileData").execute()}const Ss=Object.freeze(Object.defineProperty({__proto__:null,down:Ns,up:bs},Symbol.toStringTag,{value:"Module"}));async function Os(e){await e.schema.createIndex("users_linked_to_index").on("users").column("linked_to").execute()}async function ks(e){await e.schema.dropIndex("users_linked_to_index")}const $s=Object.freeze(Object.defineProperty({__proto__:null,down:ks,up:Os},Symbol.toStringTag,{value:"Module"}));async function Es(e){await e.schema.alterTable("users").addColumn("locale","varchar(255)").execute()}async function Is(e){await e.schema.alterTable("users").dropColumn("locale").execute()}const Ps=Object.freeze(Object.defineProperty({__proto__:null,down:Is,up:Es},Symbol.toStringTag,{value:"Module"}));async function zs(e){await e.schema.createTable("keys").addColumn("kid","varchar(255)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade")).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("revoked_at","varchar(255)").addColumn("cert","varchar(4096)").addColumn("pkcs7","varchar(4096)").addColumn("fingerprint","varchar(256)").addColumn("thumbprint","varchar(256)").addColumn("current_since","varchar(256)").addColumn("current_until","varchar(256)").addColumn("type","varchar(50)",t=>t.notNull().defaultTo("jwt_signing")).addColumn("connection","varchar(255)",t=>t.references("connections.id").onDelete("cascade")).execute()}async function Ds(e){await e.schema.dropTable("keys").execute()}const As=Object.freeze(Object.defineProperty({__proto__:null,down:Ds,up:zs},Symbol.toStringTag,{value:"Module"}));async function Fs(e){}async function js(e){}const Rs=Object.freeze(Object.defineProperty({__proto__:null,down:js,up:Fs},Symbol.toStringTag,{value:"Module"}));async function qs(e){}async function Ms(e){}const Js=Object.freeze(Object.defineProperty({__proto__:null,down:Ms,up:qs},Symbol.toStringTag,{value:"Module"}));async function Ls(e){await e.schema.alterTable("otps").addColumn("audience","varchar(255)").execute()}async function Us(e){await e.schema.alterTable("otps").dropColumn("audience").execute()}const Bs=Object.freeze(Object.defineProperty({__proto__:null,down:Us,up:Ls},Symbol.toStringTag,{value:"Module"}));async function Ks(e){}async function Qs(e){}const Ws=Object.freeze(Object.defineProperty({__proto__:null,down:Qs,up:Ks},Symbol.toStringTag,{value:"Module"}));async function Hs(e){await e.schema.alterTable("logs").dropColumn("category").execute()}async function Ys(e){await e.schema.alterTable("logs").addColumn("category","varchar(255)",t=>t.notNull()).execute()}const Gs=Object.freeze(Object.defineProperty({__proto__:null,down:Ys,up:Hs},Symbol.toStringTag,{value:"Module"}));async function Vs(e){await e.schema.alterTable("users").dropColumn("tags").execute()}async function Xs(e){await e.schema.alterTable("users").addColumn("tags","varchar(255)").execute()}const Zs=Object.freeze(Object.defineProperty({__proto__:null,down:Xs,up:Vs},Symbol.toStringTag,{value:"Module"}));async function ei(e){await e.schema.createIndex("logs_user_id").on("logs").column("user_id").execute(),await e.schema.createIndex("logs_tenant_id").on("logs").column("tenant_id").execute(),await e.schema.createIndex("logs_date").on("logs").column("date").execute()}async function ti(e){await e.schema.dropIndex("logs_user_id"),await e.schema.dropIndex("logs_tenant_id"),await e.schema.dropIndex("logs_date")}const ai=Object.freeze(Object.defineProperty({__proto__:null,down:ti,up:ei},Symbol.toStringTag,{value:"Module"}));async function ni(e){await e.schema.alterTable("logs").dropColumn("details").execute(),await e.schema.alterTable("logs").addColumn("details","varchar(8192)").execute()}async function oi(e){await e.schema.alterTable("logs").dropColumn("details").execute(),await e.schema.alterTable("logs").addColumn("details","varchar(2048)").execute()}const ri=Object.freeze(Object.defineProperty({__proto__:null,down:oi,up:ni},Symbol.toStringTag,{value:"Module"}));async function si(e){await e.schema.alterTable("logs").addColumn("user_name","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("auth0_client","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("isMobile","boolean").execute(),await e.schema.alterTable("logs").addColumn("connection","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("connection_id","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("audience","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("scope","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("strategy","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("strategy_type","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("hostname","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("session_connection","varchar(255)").execute()}async function ii(e){await e.schema.alterTable("logs").dropColumn("user_name").execute(),await e.schema.alterTable("logs").dropColumn("auth0_client").execute(),await e.schema.alterTable("logs").dropColumn("isMobile").execute(),await e.schema.alterTable("logs").dropColumn("connection").execute(),await e.schema.alterTable("logs").dropColumn("connection_id").execute(),await e.schema.alterTable("logs").dropColumn("audience").execute(),await e.schema.alterTable("logs").dropColumn("scope").execute(),await e.schema.alterTable("logs").dropColumn("strategy").execute(),await e.schema.alterTable("logs").dropColumn("strategy_type").execute(),await e.schema.alterTable("logs").dropColumn("hostname").execute(),await e.schema.alterTable("logs").dropColumn("session_connection").execute()}const ci=Object.freeze(Object.defineProperty({__proto__:null,down:ii,up:si},Symbol.toStringTag,{value:"Module"}));async function li(e){await e.schema.createIndex("users_name_index").on("users").column("name").execute()}async function di(e){await e.schema.dropIndex("users_name_index").execute()}const ui=Object.freeze(Object.defineProperty({__proto__:null,down:di,up:li},Symbol.toStringTag,{value:"Module"}));async function _i(e){}async function mi(e){await e.schema.alterTable("users").dropConstraint("unique_email_provider").execute()}const hi=Object.freeze(Object.defineProperty({__proto__:null,down:mi,up:_i},Symbol.toStringTag,{value:"Module"}));async function pi(e){await e.schema.alterTable("otps").dropColumn("state").execute(),await e.schema.alterTable("otps").addColumn("state","varchar(8192)").execute()}async function fi(e){await e.schema.alterTable("otps").dropColumn("state").execute(),await e.schema.alterTable("otps").addColumn("state","varchar(1024)").execute()}const gi=Object.freeze(Object.defineProperty({__proto__:null,down:fi,up:pi},Symbol.toStringTag,{value:"Module"}));async function wi(e){await e.schema.alterTable("tickets").dropColumn("state").execute(),await e.schema.alterTable("tickets").addColumn("state","varchar(8192)").execute()}async function yi(e){await e.schema.alterTable("tickets").dropColumn("state").execute(),await e.schema.alterTable("tickets").addColumn("state","varchar(1024)").execute()}const vi=Object.freeze(Object.defineProperty({__proto__:null,down:yi,up:wi},Symbol.toStringTag,{value:"Module"}));async function Ci(e){await e.schema.createTable("branding").addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull().primaryKey()).addColumn("logo_url","varchar(512)").addColumn("favicon_url","varchar(512)").addColumn("font_url","varchar(512)").addColumn("colors_primary","varchar(8)").addColumn("colors_page_background_type","varchar(32)").addColumn("colors_page_background_start","varchar(8)").addColumn("colors_page_background_end","varchar(8)").addColumn("colors_page_background_angle_dev","integer").execute()}async function xi(e){await e.schema.dropTable("branding").execute()}const Ti=Object.freeze(Object.defineProperty({__proto__:null,down:xi,up:Ci},Symbol.toStringTag,{value:"Module"}));async function bi(e){}async function Ni(e){}const Si=Object.freeze(Object.defineProperty({__proto__:null,down:Ni,up:bi},Symbol.toStringTag,{value:"Module"}));async function Oi(e){}async function ki(e){}const $i=Object.freeze(Object.defineProperty({__proto__:null,down:ki,up:Oi},Symbol.toStringTag,{value:"Module"}));async function Ei(e){}async function Ii(e){}const Pi=Object.freeze(Object.defineProperty({__proto__:null,down:Ii,up:Ei},Symbol.toStringTag,{value:"Module"}));async function zi(e){}async function Di(e){}const Ai=Object.freeze(Object.defineProperty({__proto__:null,down:Di,up:zi},Symbol.toStringTag,{value:"Module"}));async function Fi(e){await e.schema.createTable("authentication_codes").addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("code","varchar(255)",t=>t.primaryKey()).addColumn("client_id","varchar(255)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("user_id","varchar(255)",t=>t.notNull()).addColumn("nonce","varchar(255)").addColumn("state","varchar(8192)").addColumn("scope","varchar(1024)").addColumn("response_type","varchar(256)").addColumn("response_mode","varchar(256)").addColumn("redirect_uri","varchar(1024)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute()}async function ji(e){await e.schema.dropTable("authentication_codes").execute()}const Ri=Object.freeze(Object.defineProperty({__proto__:null,down:ji,up:Fi},Symbol.toStringTag,{value:"Module"}));async function qi(e){}async function Mi(e){}const Ji=Object.freeze(Object.defineProperty({__proto__:null,down:Mi,up:qi},Symbol.toStringTag,{value:"Module"}));async function Li(e){await e.schema.alterTable("otps").addColumn("ip","varchar(64)").execute()}async function Ui(e){await e.schema.alterTable("otps").dropColumn("ip").execute()}const Bi=Object.freeze(Object.defineProperty({__proto__:null,down:Ui,up:Li},Symbol.toStringTag,{value:"Module"}));async function Ki(e){await e.schema.alterTable("logs").dropColumn("user_agent").execute(),await e.schema.alterTable("logs").addColumn("user_agent","varchar(1024)").execute()}async function Qi(e){await e.schema.alterTable("logs").dropColumn("user_agent").execute(),await e.schema.alterTable("logs").addColumn("user_agent","varchar(255)").execute()}const Wi=Object.freeze(Object.defineProperty({__proto__:null,down:Qi,up:Ki},Symbol.toStringTag,{value:"Module"}));async function Hi(e){}async function Yi(e){}const Gi=Object.freeze(Object.defineProperty({__proto__:null,down:Yi,up:Hi},Symbol.toStringTag,{value:"Module"}));async function Vi(e){await e.schema.createTable("hooks").addColumn("hook_id","varchar(255)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("url","varchar(512)",t=>t.notNull()).addColumn("trigger_id","varchar(255)",t=>t.notNull()).addColumn("enabled","boolean",t=>t.notNull()).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).addColumn("synchronous","boolean",t=>t.defaultTo(!1).notNull()).addColumn("priority","integer").execute()}async function Xi(e){await e.schema.dropTable("hooks").execute()}const Zi=Object.freeze(Object.defineProperty({__proto__:null,down:Xi,up:Vi},Symbol.toStringTag,{value:"Module"}));async function ec(e){}async function tc(e){}const ac=Object.freeze(Object.defineProperty({__proto__:null,down:tc,up:ec},Symbol.toStringTag,{value:"Module"}));async function nc(e){}async function oc(e){}const rc=Object.freeze(Object.defineProperty({__proto__:null,down:oc,up:nc},Symbol.toStringTag,{value:"Module"}));async function sc(e){await e.schema.createTable("logins").addColumn("login_id","varchar(255)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("authParams_client_id","varchar(255)",t=>t.notNull()).addColumn("authParams_vendor_id","varchar(255)").addColumn("authParams_username","varchar(255)").addColumn("authParams_response_type","varchar(255)").addColumn("authParams_response_mode","varchar(255)").addColumn("authParams_audience","varchar(255)").addColumn("authParams_scope","varchar(511)").addColumn("authParams_state","varchar(511)").addColumn("authParams_code_challenge_method","varchar(256)").addColumn("authParams_code_challenge","varchar(256)").addColumn("authParams_redirect_uri","varchar(256)").addColumn("authParams_organization","varchar(256)").addColumn("authorization_url","varchar(1024)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("ip","varchar(255)").addColumn("useragent","varchar(512)").execute(),await e.schema.alterTable("passwords").addColumn("algorithm","varchar(16)").execute(),await e.schema.dropTable("codes").execute(),await e.schema.createTable("codes").addColumn("code_id","varchar(255)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("user_id","varchar(255)").addColumn("login_id","varchar(255)").addForeignKeyConstraint("codes_user_id_tenant_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("code_type","varchar(255)",t=>t.notNull()).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute()}async function ic(e){await e.schema.dropTable("logins").execute(),await e.schema.alterTable("passwords").dropColumn("algorithm").execute(),await e.schema.dropTable("codes").execute(),await e.schema.createTable("codes").addColumn("id","varchar(255)",t=>t.primaryKey()).addColumn("code","varchar(255)",t=>t.notNull()).addColumn("user_id","varchar(255)").addColumn("tenant_id","varchar(255)").addForeignKeyConstraint("codes_user_id_tenant_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("type","varchar(255)",t=>t.notNull()).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute()}const cc=Object.freeze(Object.defineProperty({__proto__:null,down:ic,up:sc},Symbol.toStringTag,{value:"Module"}));async function lc(e){}async function dc(e){}const uc=Object.freeze(Object.defineProperty({__proto__:null,down:dc,up:lc},Symbol.toStringTag,{value:"Module"}));async function _c(e){await e.schema.alterTable("logins").addColumn("auth0Client","varchar(256)").execute()}async function mc(e){await e.schema.alterTable("logins").dropColumn("auth0Client").execute()}const hc=Object.freeze(Object.defineProperty({__proto__:null,down:mc,up:_c},Symbol.toStringTag,{value:"Module"}));async function pc(e){await e.schema.alterTable("logins").dropColumn("authParams_state").execute(),await e.schema.alterTable("logins").addColumn("authParams_state","varchar(8192)").execute()}async function fc(e){await e.schema.alterTable("logins").dropColumn("authParams_state").execute(),await e.schema.alterTable("logins").addColumn("authParams_state","varchar(511)").execute()}const gc=Object.freeze(Object.defineProperty({__proto__:null,down:fc,up:pc},Symbol.toStringTag,{value:"Module"}));async function wc(e){}async function yc(e){}const vc=Object.freeze(Object.defineProperty({__proto__:null,down:yc,up:wc},Symbol.toStringTag,{value:"Module"}));async function Cc(e){}async function xc(e){}const Tc=Object.freeze(Object.defineProperty({__proto__:null,down:xc,up:Cc},Symbol.toStringTag,{value:"Module"}));async function bc(e){await e.schema.alterTable("logins").addColumn("authParams_nonce","varchar(255)").execute()}async function Nc(e){await e.schema.alterTable("logins").dropColumn("nonce").execute()}const Sc=Object.freeze(Object.defineProperty({__proto__:null,down:Nc,up:bc},Symbol.toStringTag,{value:"Module"}));async function Oc(e){}async function kc(e){}const $c=Object.freeze(Object.defineProperty({__proto__:null,down:kc,up:Oc},Symbol.toStringTag,{value:"Module"}));async function Ec(e){}async function Ic(e){}const Pc=Object.freeze(Object.defineProperty({__proto__:null,down:Ic,up:Ec},Symbol.toStringTag,{value:"Module"}));async function zc(e){await e.schema.dropTable("codes").execute(),await e.schema.createTable("codes").addColumn("code_id","varchar(255)",t=>t.notNull()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("user_id","varchar(255)").addColumn("login_id","varchar(255)").addColumn("connection_id","varchar(255)").addForeignKeyConstraint("codes_user_id_tenant_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("code_type","varchar(255)",t=>t.notNull()).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").addPrimaryKeyConstraint("PK_codes_code_id_code_type",["code_id","code_type"]).execute()}async function Dc(e){await e.schema.dropTable("codes").execute(),await e.schema.createTable("codes").addColumn("code_id","varchar(255)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("user_id","varchar(255)").addColumn("connection_id","varchar(255)").addColumn("login_id","varchar(255)").addForeignKeyConstraint("codes_user_id_tenant_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("code_type","varchar(255)",t=>t.notNull()).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute()}const Ac=Object.freeze(Object.defineProperty({__proto__:null,down:Dc,up:zc},Symbol.toStringTag,{value:"Module"}));async function Fc(e){await e.schema.dropTable("otps").execute(),await e.schema.dropTable("authentication_codes").execute()}async function jc(e){await e.schema.alterTable("keys").addColumn("private_key","varchar(2048)").addColumn("public_key","varchar(2048)").execute(),await e.schema.createTable("otps").addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("id","varchar(255)",t=>t.primaryKey()).addColumn("client_id","varchar(255)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("code","varchar(255)",t=>t.notNull()).addColumn("email","varchar(255)",t=>t.notNull()).addColumn("user_id","varchar(255)").addColumn("send","varchar(255)").addColumn("nonce","varchar(255)").addColumn("state","varchar(1024)").addColumn("scope","varchar(1024)").addColumn("response_type","varchar(256)").addColumn("response_mode","varchar(256)").addColumn("redirect_uri","varchar(1024)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute(),await e.schema.createTable("authentication_codes").addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("code","varchar(255)",t=>t.primaryKey()).addColumn("client_id","varchar(255)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("user_id","varchar(255)",t=>t.notNull()).addColumn("nonce","varchar(255)").addColumn("state","varchar(8192)").addColumn("scope","varchar(1024)").addColumn("response_type","varchar(256)").addColumn("response_mode","varchar(256)").addColumn("redirect_uri","varchar(1024)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute()}const Rc=Object.freeze(Object.defineProperty({__proto__:null,down:jc,up:Fc},Symbol.toStringTag,{value:"Module"}));async function qc(e){await e.schema.createIndex("IDX_logs_tenant_date_type_user").on("logs").columns(["tenant_id","date","type","user_id"]).execute()}async function Mc(e){await e.schema.dropIndex("IDX_logs_tenant_date_type_user").on("logs").execute()}const Jc=Object.freeze(Object.defineProperty({__proto__:null,down:Mc,up:qc},Symbol.toStringTag,{value:"Module"}));async function Lc(e){}async function Uc(e){}const Bc=Object.freeze(Object.defineProperty({__proto__:null,down:Uc,up:Lc},Symbol.toStringTag,{value:"Module"}));async function Kc(e){await e.schema.createTable("prompt_settings").addColumn("tenant_id","varchar(64)",t=>t.primaryKey()).addColumn("universal_login_experience","varchar(16)",t=>t.defaultTo("new").notNull()).addColumn("identifier_first","boolean",t=>t.defaultTo(!0).notNull()).addColumn("password_first","boolean",t=>t.defaultTo(!1).notNull()).addColumn("webauthn_platform_first_factor","boolean",t=>t.defaultTo(!1).notNull()).execute()}async function Qc(e){await e.schema.dropTable("prompt_settings").execute()}const Wc=Object.freeze(Object.defineProperty({__proto__:null,down:Qc,up:Kc},Symbol.toStringTag,{value:"Module"}));async function Hc(e){}async function Yc(e){}const Gc=Object.freeze(Object.defineProperty({__proto__:null,down:Yc,up:Hc},Symbol.toStringTag,{value:"Module"}));async function Vc(e){}async function Xc(e){}const Zc=Object.freeze(Object.defineProperty({__proto__:null,down:Xc,up:Vc},Symbol.toStringTag,{value:"Module"}));async function el(e){}async function tl(e){}const al=Object.freeze(Object.defineProperty({__proto__:null,down:tl,up:el},Symbol.toStringTag,{value:"Module"}));async function nl(e){await e.schema.alterTable("logins").addColumn("authParams_ui_locales","varchar(32)").execute()}async function ol(e){await e.schema.alterTable("logins").dropColumn("authParams_ui_locales").execute()}const rl=Object.freeze(Object.defineProperty({__proto__:null,down:ol,up:nl},Symbol.toStringTag,{value:"Module"}));async function sl(e){await e.schema.alterTable("logins").addColumn("authParams_prompt","varchar(16)").execute()}async function il(e){await e.schema.alterTable("logins").dropColumn("authParams_prompt").execute()}const cl=Object.freeze(Object.defineProperty({__proto__:null,down:il,up:sl},Symbol.toStringTag,{value:"Module"}));async function ll(e){}async function dl(e){}const ul=Object.freeze(Object.defineProperty({__proto__:null,down:dl,up:ll},Symbol.toStringTag,{value:"Module"}));async function _l(e){await e.schema.alterTable("logins").addColumn("authParams_act_as","varchar(255)").execute()}async function ml(e){await e.schema.alterTable("logins").dropColumn("authParam_act_as").execute()}const hl=Object.freeze(Object.defineProperty({__proto__:null,down:ml,up:_l},Symbol.toStringTag,{value:"Module"}));async function pl(e){await e.schema.alterTable("codes").addColumn("code_verifier","varchar(128)").execute()}async function fl(e){await e.schema.alterTable("codes").dropColumn("code_verifier").execute()}const gl=Object.freeze(Object.defineProperty({__proto__:null,down:fl,up:pl},Symbol.toStringTag,{value:"Module"}));async function wl(e){await e.schema.createTable("email_providers").addColumn("tenant_id","varchar(255)",t=>t.primaryKey()).addColumn("name","varchar(255)",t=>t.notNull()).addColumn("enabled","boolean",t=>t.notNull()).addColumn("default_from_address","varchar(255)").addColumn("credentials","varchar(2048)",t=>t.notNull().defaultTo("{}")).addColumn("settings","varchar(2048)",t=>t.notNull().defaultTo("{}")).addColumn("created_at","varchar(29)",t=>t.notNull()).addColumn("updated_at","varchar(29)",t=>t.notNull()).execute()}async function yl(e){await e.schema.dropTable("email_providers").execute()}const vl=Object.freeze(Object.defineProperty({__proto__:null,down:yl,up:wl},Symbol.toStringTag,{value:"Module"}));async function Cl(e){await e.schema.dropTable("tickets").execute()}async function xl(e){await e.schema.createTable("tickets").addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("id","varchar(255)",t=>t.primaryKey()).addColumn("client_id","varchar(255)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("email","varchar(255)",t=>t.notNull()).addColumn("nonce","varchar(255)").addColumn("state","varchar(1024)").addColumn("scope","varchar(1024)").addColumn("response_type","varchar(256)").addColumn("response_mode","varchar(256)").addColumn("redirect_uri","varchar(1024)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute()}const Tl=Object.freeze(Object.defineProperty({__proto__:null,down:xl,up:Cl},Symbol.toStringTag,{value:"Module"}));async function bl(e){}async function Nl(e){await e.schema.alterTable("logins").dropColumn("ip").dropColumn("useragent").execute()}const Sl=Object.freeze(Object.defineProperty({__proto__:null,down:Nl,up:bl},Symbol.toStringTag,{value:"Module"}));async function Ol(e){await e.schema.createTable("refresh_tokens").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("client_id","varchar(21)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("tenant_id","varchar(255)").addColumn("session_id","varchar(21)",t=>t.notNull()).addColumn("user_id","varchar(255)").addForeignKeyConstraint("user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("last_exchanged_at","varchar(35)").addColumn("device","varchar(2048)",t=>t.notNull()).addColumn("resource_servers","varchar(2048)",t=>t.notNull()).addColumn("rotating","boolean",t=>t.notNull()).execute()}async function kl(e){await e.schema.dropTable("refresh_tokens").execute()}const $l=Object.freeze(Object.defineProperty({__proto__:null,down:kl,up:Ol},Symbol.toStringTag,{value:"Module"}));async function El(e){}async function Il(e){}const Pl=Object.freeze(Object.defineProperty({__proto__:null,down:Il,up:El},Symbol.toStringTag,{value:"Module"}));async function zl(e){await e.schema.dropTable("sessions").execute(),await e.schema.dropTable("refresh_tokens").execute()}async function Dl(e){await e.schema.createTable("sessions").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)").addColumn("user_id","varchar(255)").addForeignKeyConstraint("sessions_user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("authenticated_at","varchar(35)").addColumn("last_interaction_at","varchar(35)").addColumn("used_at","varchar(35)").addColumn("revoked_at","varchar(35)").addColumn("device","varchar(2048)",t=>t.notNull()).addColumn("clients","varchar(1024)",t=>t.notNull()).execute(),await e.schema.createTable("refresh_tokens").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("client_id","varchar(21)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("tenant_id","varchar(255)").addColumn("session_id","varchar(21)",t=>t.notNull()).addColumn("user_id","varchar(255)").addForeignKeyConstraint("refresh_tokens_user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("last_exchanged_at","varchar(35)").addColumn("device","varchar(2048)",t=>t.notNull()).addColumn("resource_servers","varchar(2048)",t=>t.notNull()).addColumn("rotating","boolean",t=>t.notNull()).execute()}const Al=Object.freeze(Object.defineProperty({__proto__:null,down:Dl,up:zl},Symbol.toStringTag,{value:"Module"}));async function Fl(e){await e.schema.createTable("sessions_2").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)").addColumn("user_id","varchar(255)").addForeignKeyConstraint("sessions_2_user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("authenticated_at","varchar(35)").addColumn("last_interaction_at","varchar(35)").addColumn("used_at","varchar(35)").addColumn("revoked_at","varchar(35)").addColumn("device","varchar(2048)",t=>t.notNull()).addColumn("clients","varchar(1024)",t=>t.notNull()).execute(),await e.schema.createTable("refresh_tokens_2").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("client_id","varchar(21)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("tenant_id","varchar(255)").addColumn("session_id","varchar(21)",t=>t.notNull()).addColumn("user_id","varchar(255)").addForeignKeyConstraint("refresh_tokens_2_user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("last_exchanged_at","varchar(35)").addColumn("device","varchar(2048)",t=>t.notNull()).addColumn("resource_servers","varchar(2048)",t=>t.notNull()).addColumn("rotating","boolean",t=>t.notNull()).execute()}async function jl(e){await e.schema.dropTable("sessions_2").execute(),await e.schema.dropTable("refresh_tokens_2").execute()}const Rl=Object.freeze(Object.defineProperty({__proto__:null,down:jl,up:Fl},Symbol.toStringTag,{value:"Module"}));async function ql(e){await e.schema.createTable("custom_domains").addColumn("custom_domain_id","varchar(21)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("domain","varchar(255)",t=>t.notNull()).addColumn("primary","boolean",t=>t.notNull()).addColumn("status","varchar(50)",t=>t.notNull()).addColumn("type","varchar(50)",t=>t.notNull()).addColumn("origin_domain_name","varchar(255)").addColumn("verification","varchar(2048)").addColumn("custom_client_ip_header","varchar(50)").addColumn("tls_policy","varchar(50)").addColumn("domain_metadata","varchar(2048)").addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).execute(),await e.schema.dropTable("domains").execute()}async function Ml(e){await e.schema.dropTable("custom_domains").execute(),await e.schema.createTable("domains").addColumn("id","varchar(255)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("domain","varchar(255)",t=>t.notNull()).addColumn("email_service","varchar(255)").addColumn("email_api_key","varchar(255)").addColumn("dkim_private_key","varchar(2048)").addColumn("dkim_public_key","varchar(2048)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).execute()}const Jl=Object.freeze(Object.defineProperty({__proto__:null,down:Ml,up:ql},Symbol.toStringTag,{value:"Module"}));async function Ll(e){}async function Ul(e){await e.schema.alterTable("logins").dropColumn("authParams_organization").dropColumn("authorization_url").execute()}const Bl=Object.freeze(Object.defineProperty({__proto__:null,down:Ul,up:Ll},Symbol.toStringTag,{value:"Module"}));async function Kl(e){await e.schema.alterTable("logins").dropColumn("authorization_url").execute(),await e.schema.alterTable("logins").addColumn("authorization_url","varchar(2048)").execute()}async function Ql(e){await e.schema.alterTable("logins").dropColumn("authorization_url").execute(),await e.schema.alterTable("logins").addColumn("authorization_url","varchar(1024)").execute()}const Wl=Object.freeze(Object.defineProperty({__proto__:null,down:Ql,up:Kl},Symbol.toStringTag,{value:"Module"}));async function Hl(e){}async function Yl(e){}const Gl=Object.freeze(Object.defineProperty({__proto__:null,down:Yl,up:Hl},Symbol.toStringTag,{value:"Module"}));async function Vl(e){await e.schema.createTable("sessions").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)").addColumn("user_id","varchar(255)").addForeignKeyConstraint("sessions_user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("authenticated_at","varchar(35)").addColumn("last_interaction_at","varchar(35)").addColumn("used_at","varchar(35)").addColumn("revoked_at","varchar(35)").addColumn("device","varchar(2048)",t=>t.notNull()).addColumn("clients","varchar(1024)",t=>t.notNull()).execute(),await e.schema.createTable("login_sessions").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("session_id","varchar(21)",t=>t.references("sessions.id").onDelete("cascade")).addColumn("csrf_token","varchar(21)",t=>t.notNull()).addColumn("authParams_client_id","varchar(255)",t=>t.notNull()).addColumn("authParams_vendor_id","varchar(255)").addColumn("authParams_username","varchar(255)").addColumn("authParams_response_type","varchar(255)").addColumn("authParams_response_mode","varchar(255)").addColumn("authParams_audience","varchar(255)").addColumn("authParams_scope","varchar(511)").addColumn("authParams_state","varchar(2048)").addColumn("authParams_nonce","varchar(255)").addColumn("authParams_code_challenge_method","varchar(255)").addColumn("authParams_code_challenge","varchar(255)").addColumn("authParams_redirect_uri","varchar(255)").addColumn("authParams_organization","varchar(255)").addColumn("authParams_prompt","varchar(32)").addColumn("authParams_act_as","varchar(256)").addColumn("authParams_ui_locales","varchar(32)").addColumn("authorization_url","varchar(1024)").addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)",t=>t.notNull()).addColumn("ip","varchar(39)").addColumn("useragent","varchar(1024)").addColumn("auth0Client","varchar(255)").execute(),await e.schema.createTable("refresh_tokens").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("client_id","varchar(21)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("tenant_id","varchar(255)").addColumn("session_id","varchar(21)",t=>t.notNull()).addColumn("user_id","varchar(255)").addForeignKeyConstraint("refresh_tokens_user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("last_exchanged_at","varchar(35)").addColumn("device","varchar(2048)",t=>t.notNull()).addColumn("resource_servers","varchar(2048)",t=>t.notNull()).addColumn("rotating","boolean",t=>t.notNull()).execute()}async function Xl(e){await e.schema.dropTable("sessions").execute(),await e.schema.dropTable("login_sessions").execute(),await e.schema.dropTable("refresh_tokens").execute()}const Zl=Object.freeze(Object.defineProperty({__proto__:null,down:Xl,up:Vl},Symbol.toStringTag,{value:"Module"}));async function ed(e){await e.schema.dropTable("logins").execute(),await e.schema.dropTable("sessions_2").execute(),await e.schema.dropTable("refresh_tokens_2").execute()}async function td(e){}const ad=Object.freeze(Object.defineProperty({__proto__:null,down:td,up:ed},Symbol.toStringTag,{value:"Module"}));async function nd(e){await e.schema.dropTable("custom_domains").execute(),await e.schema.createTable("custom_domains").addColumn("custom_domain_id","varchar(256)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("domain","varchar(255)",t=>t.notNull()).addColumn("primary","boolean",t=>t.notNull()).addColumn("status","varchar(50)",t=>t.notNull()).addColumn("type","varchar(50)",t=>t.notNull()).addColumn("origin_domain_name","varchar(255)").addColumn("verification","varchar(2048)").addColumn("custom_client_ip_header","varchar(50)").addColumn("tls_policy","varchar(50)").addColumn("domain_metadata","varchar(2048)").addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).execute()}async function od(e){}const rd=Object.freeze(Object.defineProperty({__proto__:null,down:od,up:nd},Symbol.toStringTag,{value:"Module"}));async function sd(e){}async function id(e){await e.schema.alterTable("users").dropColumn("phone_number").dropColumn("phone_verified").dropColumn("username").execute()}const cd=Object.freeze(Object.defineProperty({__proto__:null,down:id,up:sd},Symbol.toStringTag,{value:"Module"}));async function ld(e){await e.schema.createTable("forms").addColumn("id","varchar(255)",t=>t.primaryKey()).addColumn("name","varchar(255)",t=>t.notNull()).addColumn("tenant_id","varchar(255)",t=>t.notNull()).addColumn("messages","varchar(255)").addColumn("languages","varchar(255)").addColumn("translations","varchar(4096)").addColumn("nodes","varchar(4096)").addColumn("start","varchar(255)").addColumn("ending","varchar(255)").addColumn("style","varchar(1042)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).execute(),await e.schema.createIndex("forms_tenant_id_idx").on("forms").column("tenant_id").execute()}async function dd(e){await e.schema.dropTable("forms").execute()}const ud=Object.freeze(Object.defineProperty({__proto__:null,down:dd,up:ld},Symbol.toStringTag,{value:"Module"}));async function _d(e){await e.schema.alterTable("hooks").addColumn("form_id","text").execute(),await e.schema.alterTable("hooks").addColumn("url_tmp","varchar(512)").execute(),await e.updateTable("hooks").set(t=>({url_tmp:t.ref("url")})).execute(),await e.schema.alterTable("hooks").dropColumn("url").execute(),await e.schema.alterTable("hooks").renameColumn("url_tmp","url").execute()}async function md(e){await e.schema.dropTable("hooks").ifExists().execute(),await e.schema.createTable("hooks").addColumn("hook_id","text",t=>t.primaryKey()).addColumn("tenant_id","text",t=>t.notNull()).addColumn("trigger_id","text",t=>t.notNull()).addColumn("enabled","integer",t=>t.notNull().defaultTo(0)).addColumn("url","varchar(512)",t=>t.notNull()).addColumn("synchronous","integer",t=>t.notNull().defaultTo(0)).addColumn("priority","integer").addColumn("created_at","text",t=>t.notNull()).addColumn("updated_at","text",t=>t.notNull()).execute()}const hd=Object.freeze(Object.defineProperty({__proto__:null,down:md,up:_d},Symbol.toStringTag,{value:"Module"}));async function pd(e){await e.schema.alterTable("login_sessions").addColumn("login_completed","boolean",t=>t.notNull().defaultTo(0)).execute()}async function fd(e){await e.schema.alterTable("login_sessions").dropColumn("login_completed").execute()}const gd=Object.freeze(Object.defineProperty({__proto__:null,down:fd,up:pd},Symbol.toStringTag,{value:"Module"}));async function wd(e){await e.schema.alterTable("sessions").addColumn("login_session_id","varchar(21)",t=>t.references("login_sessions.id").onDelete("set null")).execute()}async function yd(e){await e.schema.alterTable("sessions").dropColumn("login_session_id").execute()}const vd=Object.freeze(Object.defineProperty({__proto__:null,down:yd,up:wd},Symbol.toStringTag,{value:"Module"}));async function Cd(e){await e.schema.createIndex("IDX_sessions_login_session_id").on("sessions").column("login_session_id").execute()}async function xd(e){await e.schema.dropIndex("IDX_sessions_login_session_id").on("sessions").execute()}const Td=Object.freeze(Object.defineProperty({__proto__:null,down:xd,up:Cd},Symbol.toStringTag,{value:"Module"}));async function bd(e){await e.schema.alterTable("codes").addColumn("code_challenge","varchar(128)").execute(),await e.schema.alterTable("codes").addColumn("code_challenge_method","varchar(5)").execute()}async function Nd(e){await e.schema.alterTable("codes").dropColumn("code_challenge").execute(),await e.schema.alterTable("codes").dropColumn("code_challenge_method").execute()}const Sd=Object.freeze(Object.defineProperty({__proto__:null,down:Nd,up:bd},Symbol.toStringTag,{value:"Module"}));async function Od(e){await e.schema.alterTable("codes").addColumn("redirect_uri","varchar(1024)").execute()}async function kd(e){await e.schema.alterTable("codes").dropColumn("redirect_uri").execute()}const $d=Object.freeze(Object.defineProperty({__proto__:null,down:kd,up:Od},Symbol.toStringTag,{value:"Module"}));async function Ed(e){await e.schema.alterTable("codes").addColumn("nonce","varchar(1024)").execute(),await e.schema.alterTable("codes").addColumn("state","varchar(2048)").execute()}async function Id(e){await e.schema.alterTable("codes").dropColumn("nonce").execute(),await e.schema.alterTable("codes").dropColumn("state").execute()}const Pd=Object.freeze(Object.defineProperty({__proto__:null,down:Id,up:Ed},Symbol.toStringTag,{value:"Module"}));async function zd(e){await e.schema.createTable("themes").addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("themeId","varchar(255)",t=>t.notNull()).addColumn("displayName","varchar(255)",t=>t.notNull()).addColumn("colors_primary_button_label","varchar(24)",t=>t.notNull()).addColumn("colors_primary_button","varchar(24)",t=>t.notNull()).addColumn("colors_secondary_button_border","varchar(24)",t=>t.notNull()).addColumn("colors_secondary_button_label","varchar(24)",t=>t.notNull()).addColumn("colors_base_focus_color","varchar(24)",t=>t.notNull()).addColumn("colors_base_hover_color","varchar(24)",t=>t.notNull()).addColumn("colors_body_text","varchar(24)",t=>t.notNull()).addColumn("colors_captcha_widget_theme","varchar(24)",t=>t.notNull()).addColumn("colors_error","varchar(24)",t=>t.notNull()).addColumn("colors_header","varchar(24)",t=>t.notNull()).addColumn("colors_icons","varchar(24)",t=>t.notNull()).addColumn("colors_input_background","varchar(24)",t=>t.notNull()).addColumn("colors_input_border","varchar(24)",t=>t.notNull()).addColumn("colors_input_filled_text","varchar(24)",t=>t.notNull()).addColumn("colors_input_labels_placeholders","varchar(24)",t=>t.notNull()).addColumn("colors_links_focused_components","varchar(24)",t=>t.notNull()).addColumn("colors_success","varchar(24)",t=>t.notNull()).addColumn("colors_widget_background","varchar(24)",t=>t.notNull()).addColumn("colors_widget_border","varchar(24)",t=>t.notNull()).addColumn("borders_button_border_radius","integer",t=>t.notNull()).addColumn("borders_button_border_weight","integer",t=>t.notNull()).addColumn("borders_buttons_style","varchar(24)",t=>t.notNull()).addColumn("borders_input_border_radius","integer",t=>t.notNull()).addColumn("borders_input_border_weight","integer",t=>t.notNull()).addColumn("borders_inputs_style","varchar(24)",t=>t.notNull()).addColumn("borders_show_widget_shadow","boolean",t=>t.notNull()).addColumn("borders_widget_border_weight","integer",t=>t.notNull()).addColumn("borders_widget_corner_radius","integer",t=>t.notNull()).addColumn("fonts_body_text_bold","integer",t=>t.notNull()).addColumn("fonts_body_text_size","integer",t=>t.notNull()).addColumn("fonts_buttons_text_bold","integer",t=>t.notNull()).addColumn("fonts_buttons_text_size","integer",t=>t.notNull()).addColumn("fonts_font_url","varchar(255)",t=>t.notNull()).addColumn("fonts_input_labels_bold","integer",t=>t.notNull()).addColumn("fonts_input_labels_size","integer",t=>t.notNull()).addColumn("fonts_links_bold","boolean",t=>t.notNull()).addColumn("fonts_links_size","integer",t=>t.notNull()).addColumn("fonts_links_style","varchar(24)",t=>t.notNull()).addColumn("fonts_reference_text_size","integer",t=>t.notNull()).addColumn("fonts_subtitle_bold","boolean",t=>t.notNull()).addColumn("fonts_subtitle_size","integer",t=>t.notNull()).addColumn("fonts_title_bold","boolean",t=>t.notNull()).addColumn("fonts_title_size","integer",t=>t.notNull()).addColumn("page_background_background_color","varchar(24)",t=>t.notNull()).addColumn("page_background_background_image_url","varchar(255)",t=>t.notNull()).addColumn("page_background_page_layout","varchar(24)",t=>t.notNull()).addColumn("widget_header_text_alignment","varchar(24)",t=>t.notNull()).addColumn("widget_logo_height","integer",t=>t.notNull()).addColumn("widget_logo_position","varchar(24)",t=>t.notNull()).addColumn("widget_logo_url","varchar(255)",t=>t.notNull()).addColumn("widget_social_buttons_layout","varchar(24)",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("themes_pkey",["tenant_id","themeId"]).execute(),await e.schema.createIndex("themes_tenant_id_idx").on("themes").column("tenant_id").execute()}async function Dd(e){await e.schema.dropTable("themes").execute()}const Ad=Object.freeze(Object.defineProperty({__proto__:null,down:Dd,up:zd},Symbol.toStringTag,{value:"Module"}));async function Fd(e){await e.schema.createTable("resource_servers").addColumn("id","varchar(21)",t=>t.notNull()).addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("identifier","varchar(191)",t=>t.notNull()).addColumn("name","varchar(255)",t=>t.notNull()).addColumn("scopes","varchar(4096)").addColumn("signing_alg","varchar(64)").addColumn("signing_secret","varchar(2048)").addColumn("token_lifetime","integer").addColumn("token_lifetime_for_web","integer").addColumn("skip_consent_for_verifiable_first_party_clients","integer").addColumn("allow_offline_access","integer").addColumn("verification_key","varchar(4096)").addColumn("options","varchar(4096)").addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("resource_servers_pk",["tenant_id","id"]).execute(),await e.schema.createIndex("resource_servers_tenant_identifier_uq").on("resource_servers").columns(["tenant_id","identifier"]).unique().execute(),await e.schema.createTable("roles").addColumn("id","varchar(21)",t=>t.notNull()).addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("name","varchar(50)",t=>t.notNull()).addColumn("description","varchar(255)").addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("roles_pk",["tenant_id","id"]).execute(),await e.schema.createIndex("roles_tenant_name_uq").on("roles").columns(["tenant_id","name"]).unique().execute()}async function jd(e){await e.schema.dropTable("roles").execute(),await e.schema.dropTable("resource_servers").execute()}const Rd=Object.freeze(Object.defineProperty({__proto__:null,down:jd,up:Fd},Symbol.toStringTag,{value:"Module"}));async function qd(e){await e.schema.createTable("role_permissions").addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("role_id","varchar(21)",t=>t.notNull()).addColumn("resource_server_identifier","varchar(191)",t=>t.notNull()).addColumn("permission_name","varchar(191)",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("role_permissions_pk",["tenant_id","role_id","resource_server_identifier","permission_name"]).execute(),await e.schema.createIndex("role_permissions_role_fk").on("role_permissions").columns(["tenant_id","role_id"]).execute(),await e.schema.createIndex("role_permissions_permission_fk").on("role_permissions").columns(["tenant_id","resource_server_identifier","permission_name"]).execute(),await e.schema.createTable("user_permissions").addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("user_id","varchar(191)",t=>t.notNull()).addColumn("resource_server_identifier","varchar(191)",t=>t.notNull()).addColumn("permission_name","varchar(191)",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("user_permissions_pk",["tenant_id","user_id","resource_server_identifier","permission_name"]).execute(),await e.schema.createIndex("user_permissions_user_fk").on("user_permissions").columns(["tenant_id","user_id"]).execute(),await e.schema.createIndex("user_permissions_permission_fk").on("user_permissions").columns(["tenant_id","resource_server_identifier","permission_name"]).execute()}async function Md(e){await e.schema.dropTable("user_permissions").execute(),await e.schema.dropTable("role_permissions").execute()}const Jd=Object.freeze(Object.defineProperty({__proto__:null,down:Md,up:qd},Symbol.toStringTag,{value:"Module"}));async function Ld(e){await e.schema.createTable("user_roles").addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("user_id","varchar(191)",t=>t.notNull()).addColumn("role_id","varchar(21)",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("user_roles_pk",["tenant_id","user_id","role_id"]).execute(),await e.schema.createIndex("user_roles_user_fk").on("user_roles").columns(["tenant_id","user_id"]).execute(),await e.schema.createIndex("user_roles_role_fk").on("user_roles").columns(["tenant_id","role_id"]).execute()}async function Ud(e){await e.schema.dropTable("user_roles").execute()}const Bd=Object.freeze(Object.defineProperty({__proto__:null,down:Ud,up:Ld},Symbol.toStringTag,{value:"Module"}));async function Kd(e){}async function Qd(e){await e.schema.alterTable("keys").dropColumn("connection").execute(),await e.schema.alterTable("keys").modifyColumn("cert","varchar(2048)").execute(),await e.schema.alterTable("keys").modifyColumn("pkcs7","varchar(2048)").execute(),await e.schema.alterTable("keys").dropColumn("type").execute()}const Wd=Object.freeze(Object.defineProperty({__proto__:null,down:Qd,up:Kd},Symbol.toStringTag,{value:"Module"}));async function Hd(e){await e.schema.createTable("organizations").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("name","varchar(256)",t=>t.notNull()).addColumn("display_name","varchar(256)").addColumn("branding","text").addColumn("metadata","text").addColumn("enabled_connections","text").addColumn("token_quota","text").addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).execute(),await e.schema.createIndex("idx_organizations_tenant_id").on("organizations").column("tenant_id").execute(),await e.schema.createIndex("idx_organizations_tenant_name_unique").on("organizations").columns(["tenant_id","name"]).unique().execute()}async function Yd(e){await e.schema.dropTable("organizations").execute()}const Gd=Object.freeze(Object.defineProperty({__proto__:null,down:Yd,up:Hd},Symbol.toStringTag,{value:"Module"}));async function Vd(e){await e.schema.createTable("user_organizations").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("user_id","varchar(191)",t=>t.notNull()).addColumn("organization_id","varchar(21)",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addUniqueConstraint("user_organizations_unique",["tenant_id","user_id","organization_id"]).execute(),await e.schema.createIndex("idx_user_organizations_tenant_id").on("user_organizations").column("tenant_id").execute(),await e.schema.createIndex("idx_user_organizations_user_id").on("user_organizations").column("user_id").execute(),await e.schema.createIndex("idx_user_organizations_organization_id").on("user_organizations").column("organization_id").execute()}async function Xd(e){await e.schema.dropTable("user_organizations").execute()}const Zd=Object.freeze(Object.defineProperty({__proto__:null,down:Xd,up:Vd},Symbol.toStringTag,{value:"Module"}));async function eu(e){await e.schema.dropTable("user_permissions").execute(),await e.schema.dropTable("user_roles").execute(),await e.schema.createTable("user_permissions").addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("user_id","varchar(191)",t=>t.notNull()).addColumn("resource_server_identifier","varchar(21)",t=>t.notNull()).addColumn("permission_name","varchar(191)",t=>t.notNull()).addColumn("organization_id","varchar(21)",t=>t.notNull().defaultTo("")).addColumn("created_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("user_permissions_pk",["tenant_id","user_id","resource_server_identifier","permission_name","organization_id"]).execute(),await e.schema.createIndex("user_permissions_user_fk").on("user_permissions").columns(["tenant_id","user_id"]).execute(),await e.schema.createIndex("user_permissions_permission_fk").on("user_permissions").columns(["tenant_id","resource_server_identifier","permission_name"]).execute(),await e.schema.createIndex("user_permissions_organization_fk").on("user_permissions").column("organization_id").execute(),await e.schema.createTable("user_roles").addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("user_id","varchar(191)",t=>t.notNull()).addColumn("role_id","varchar(21)",t=>t.notNull()).addColumn("organization_id","varchar(191)",t=>t.notNull().defaultTo("")).addColumn("created_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("user_roles_pk",["tenant_id","user_id","role_id","organization_id"]).execute(),await e.schema.createIndex("user_roles_user_fk").on("user_roles").columns(["tenant_id","user_id"]).execute(),await e.schema.createIndex("user_roles_role_fk").on("user_roles").columns(["tenant_id","role_id"]).execute(),await e.schema.createIndex("user_roles_organization_fk").on("user_roles").column("organization_id").execute()}async function tu(e){await e.schema.dropTable("user_permissions").execute(),await e.schema.dropTable("user_roles").execute(),await e.schema.createTable("user_permissions").addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("user_id","varchar(191)",t=>t.notNull()).addColumn("resource_server_identifier","varchar(191)",t=>t.notNull()).addColumn("permission_name","varchar(191)",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("user_permissions_pk",["tenant_id","user_id","resource_server_identifier","permission_name"]).execute(),await e.schema.createIndex("user_permissions_user_fk").on("user_permissions").columns(["tenant_id","user_id"]).execute(),await e.schema.createIndex("user_permissions_permission_fk").on("user_permissions").columns(["tenant_id","resource_server_identifier","permission_name"]).execute(),await e.schema.createTable("user_roles").addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("user_id","varchar(191)",t=>t.notNull()).addColumn("role_id","varchar(21)",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("user_roles_pk",["tenant_id","user_id","role_id"]).execute(),await e.schema.createIndex("user_roles_user_fk").on("user_roles").columns(["tenant_id","user_id"]).execute(),await e.schema.createIndex("user_roles_role_fk").on("user_roles").columns(["tenant_id","role_id"]).execute()}const au=Object.freeze(Object.defineProperty({__proto__:null,down:tu,up:eu},Symbol.toStringTag,{value:"Module"}));async function nu(e){await e.schema.createTable("clients").addColumn("client_id","varchar(191)",t=>t.notNull()).addColumn("tenant_id","varchar(191)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("name","varchar(255)",t=>t.notNull()).addColumn("description","varchar(140)").addColumn("global","integer",t=>t.defaultTo(0).notNull()).addColumn("client_secret","varchar(255)").addColumn("app_type","varchar(64)",t=>t.defaultTo("regular_web")).addColumn("logo_uri","varchar(2083)").addColumn("is_first_party","integer",t=>t.defaultTo(0).notNull()).addColumn("oidc_conformant","integer",t=>t.defaultTo(1).notNull()).addColumn("callbacks","text",t=>t.notNull()).addColumn("allowed_origins","text",t=>t.notNull()).addColumn("web_origins","text",t=>t.notNull()).addColumn("client_aliases","text",t=>t.notNull()).addColumn("allowed_clients","text",t=>t.notNull()).addColumn("allowed_logout_urls","text",t=>t.notNull()).addColumn("session_transfer","text",t=>t.notNull()).addColumn("oidc_logout","text",t=>t.notNull()).addColumn("grant_types","text",t=>t.notNull()).addColumn("jwt_configuration","text",t=>t.notNull()).addColumn("signing_keys","text",t=>t.notNull()).addColumn("encryption_key","text",t=>t.notNull()).addColumn("sso","integer",t=>t.defaultTo(0).notNull()).addColumn("sso_disabled","integer",t=>t.defaultTo(1).notNull()).addColumn("cross_origin_authentication","integer",t=>t.defaultTo(0).notNull()).addColumn("cross_origin_loc","varchar(2083)").addColumn("custom_login_page_on","integer",t=>t.defaultTo(0).notNull()).addColumn("custom_login_page","text").addColumn("custom_login_page_preview","text").addColumn("form_template","text").addColumn("addons","text",t=>t.notNull()).addColumn("token_endpoint_auth_method","varchar(64)",t=>t.defaultTo("client_secret_basic")).addColumn("client_metadata","text",t=>t.notNull()).addColumn("mobile","text",t=>t.notNull()).addColumn("initiate_login_uri","varchar(2083)").addColumn("native_social_login","text",t=>t.notNull()).addColumn("refresh_token","text",t=>t.notNull()).addColumn("default_organization","text",t=>t.notNull()).addColumn("organization_usage","varchar(32)",t=>t.defaultTo("deny")).addColumn("organization_require_behavior","varchar(32)",t=>t.defaultTo("no_prompt")).addColumn("client_authentication_methods","text",t=>t.notNull()).addColumn("require_pushed_authorization_requests","integer",t=>t.defaultTo(0).notNull()).addColumn("require_proof_of_possession","integer",t=>t.defaultTo(0).notNull()).addColumn("signed_request_object","text",t=>t.notNull()).addColumn("compliance_level","varchar(64)").addColumn("par_request_expiry","integer").addColumn("token_quota","text",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("clients_tenant_id_client_id",["tenant_id","client_id"]).execute()}async function ou(e){await e.schema.dropTable("clients").execute()}const ru=Object.freeze(Object.defineProperty({__proto__:null,down:ou,up:nu},Symbol.toStringTag,{value:"Module"}));let qe=!1;function Me(e){qe=e}function w(...e){qe&&console.log(...e)}function A(...e){console.warn(...e)}async function Je(e){try{return await h.sql`SELECT VERSION()`.execute(e),"mysql"}catch{return"sqlite"}}async function su(e){await Je(e)==="mysql"?await iu(e):await cu(e)}async function iu(e){await e.transaction().execute(async t=>{const a=await h.sql`
1
+ "use strict";var Ge=Object.defineProperty;var Ve=(e,t,a)=>t in e?Ge(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var H=(e,t,a)=>Ve(e,typeof t!="symbol"?t+"":t,a);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const k=require("nanoid"),N=require("@authhero/adapter-interfaces");require("@hono/zod-openapi");const h=require("kysely"),Xe=17,Ze={organization:"org_",connection:"con_",action:"act_",action_version:"ver_",hook:"h_",hook_code:"hc_",rule:"rul_",resource_server:"api_",guardian_factor:"gfa_",invite:"inv_"};function R(e){const n=k.customAlphabet("0123456789abcdefghijklmnopqrstuvwxyz",Xe)();return`${Ze[e]}${n}`}function et(){return R("organization")}function tt(){return R("connection")}function at(){return R("action")}function nt(){return R("action_version")}function ot(){return R("hook")}function rt(){return R("resource_server")}function st(){return R("hook_code")}function it(){return R("invite")}function ct(e){return async(t,a)=>{var r;const n=Date.now(),o=at();return await e.insertInto("actions").values({id:o,tenant_id:t,name:a.name,code:a.code,runtime:a.runtime||null,status:"built",secrets:a.secrets?JSON.stringify(a.secrets):null,dependencies:a.dependencies?JSON.stringify(a.dependencies):null,supported_triggers:a.supported_triggers?JSON.stringify(a.supported_triggers):null,is_system:a.is_system?1:0,inherit:a.inherit?1:0,created_at_ts:n,updated_at_ts:n}).execute(),{id:o,tenant_id:t,name:a.name,code:a.code,runtime:a.runtime,status:"built",secrets:(r=a.secrets)==null?void 0:r.map(s=>({name:s.name})),dependencies:a.dependencies,supported_triggers:a.supported_triggers,is_system:a.is_system??!1,inherit:a.inherit??!1,created_at:new Date(n).toISOString(),updated_at:new Date(n).toISOString()}}}function Q(e){if(e!=null){if(typeof e=="number")return new Date(e).toISOString();if(typeof e=="string"){if(e==="")return;const t=parseFloat(e);return!isNaN(t)&&/^\d+(\.\d+)?$/.test(e)?new Date(t).toISOString():e}}}function j(e,t=new Date(0).toISOString()){return Q(e)??t}function x(e){if(!e||e==="")return null;const t=new Date(e);return isNaN(t.getTime())?null:t.getTime()}function le(){return new Date().toISOString()}function F(e,t,a=[]){const n={};for(const o of t){const r=o.replace(/_ts$/,"");n[r]=j(e[o])}for(const o of a){const r=o.replace(/_ts$/,"");n[r]=Q(e[o])}return n}function Z(e){if(e)try{return JSON.parse(e)}catch{return}}function lt(e){return async(t,a)=>{const n=await e.selectFrom("actions").where("actions.tenant_id","=",t).where("actions.id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{created_at_ts:o,updated_at_ts:r,deployed_at_ts:s,secrets:i,dependencies:l,supported_triggers:d,is_system:_,inherit:c,tenant_id:m,...u}=n,f=F({created_at_ts:o,updated_at_ts:r},["created_at_ts","updated_at_ts"]);return{...u,tenant_id:t,...f,runtime:u.runtime??void 0,status:u.status||"built",deployed_at:s?new Date(Number(s)).toISOString():void 0,secrets:Z(i),dependencies:Z(l),supported_triggers:Z(d),is_system:!!_,inherit:!!c}}}function se(e,t){const a=new Set(t),n=r=>{const s=[];let i="",l=!1;for(let _=0;_<r.length;_++){const c=r[_];c==='"'?(l=!l,i+=c):c===" "&&!l?(i.trim()&&s.push(i.trim()),i=""):i+=c}return i.trim()&&s.push(i.trim()),s.filter(_=>{const c=_.replace(/^([^:]+)=/,"$1:"),m=c.startsWith("-")?c.slice(1):c;if(m.startsWith("_exists_:"))return a.has(m.slice(9));const u=m.indexOf(":");return u>0?a.has(m.slice(0,u)):!0}).join(" ")},o=e.split(/ OR /i);return o.length>1?o.map(n).filter(r=>r.length>0).join(" OR "):n(e)}function O(e,t,a,n){const o=a.split(/ OR /i);if(o.length>1)return t.where(d=>{const _=o.map(c=>{const m=c.trim().match(/^([^:]+):(.+)$/);if(m){const[,u,f]=m;if(!u||!f)return null;const p=f.replace(/^"(.*)"$/,"$1");return d(u.trim(),"=",p.trim())}return null}).filter(Boolean);return d.or(_)});const r=[];let s="",i=!1;for(let d=0;d<a.length;d++){const _=a[d];_==='"'?(i=!i,s+=_):_===" "&&!i?s.trim()&&(r.push(s.trim()),s=""):s+=_}return s.trim()&&r.push(s.trim()),r.filter(d=>d!=="AND").map(d=>d.replace(/^([^:]+)=/g,"$1:")).map(d=>{let _=d.startsWith("-"),c=null,m="",u=!1,f;if(d.startsWith("-_exists_:"))c=d.substring(10),u=!0,_=!0;else if(d.startsWith("_exists_:"))c=d.substring(9),u=!0,_=!1;else if(d.includes(":")){const p=_?d.substring(1):d,g=p.indexOf(":");c=p.substring(0,g),m=p.substring(g+1),u=!1,m.startsWith(">=")?(f=">=",m=m.substring(2)):m.startsWith(">")?(f=">",m=m.substring(1)):m.startsWith("<=")?(f="<=",m=m.substring(2)):m.startsWith("<")?(f="<",m=m.substring(1)):f="=",m.startsWith('"')&&m.endsWith('"')&&m.length>1&&(m=m.slice(1,-1))}else c=null,m=d,u=!1;return{key:c,value:m,isNegation:_,isExistsQuery:u,operator:f}}).forEach(({key:d,value:_,isNegation:c,isExistsQuery:m,operator:u})=>{if(d)if(m)c?t=t.where(d,"is",null):t=t.where(d,"is not",null);else if(c)switch(u){case">":t=t.where(d,"<=",_);break;case">=":t=t.where(d,"<",_);break;case"<":t=t.where(d,">=",_);break;case"<=":t=t.where(d,">",_);break;default:t=t.where(d,"!=",_)}else t=t.where(d,u,_);else if(_){const{ref:f}=e.dynamic;t=t.where(p=>p.or(n.map(g=>g==="user_id"?p(f(g),"=",_):p(f(g),"like",`%${_}%`))))}}),t}function E(e){return typeof e=="string"?parseInt(e,10):typeof e=="bigint"?Number(e):e}function ee(e){if(e)try{return JSON.parse(e)}catch{return}}function dt(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,q:s}=a;let i=e.selectFrom("actions").where("actions.tenant_id","=",t);s&&(i=O(e,i,s,["name"]));const _=(await i.offset(n*o).limit(o).selectAll().execute()).map(m=>{const{created_at_ts:u,updated_at_ts:f,deployed_at_ts:p,secrets:g,dependencies:v,supported_triggers:b,is_system:S,inherit:$,tenant_id:D,...C}=m,T=F({created_at_ts:u,updated_at_ts:f},["created_at_ts","updated_at_ts"]);return{...C,tenant_id:t,...T,runtime:C.runtime??void 0,status:C.status||"built",deployed_at:p?new Date(Number(p)).toISOString():void 0,secrets:ee(g),dependencies:ee(v),supported_triggers:ee(b),is_system:!!S,inherit:!!$}});if(!r)return{actions:_,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{actions:_,start:n*o,limit:o,length:E(c)}}}function ut(e){if(!e)return[];try{const t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function _t(e){return async(t,a,n)=>{const o={updated_at_ts:Date.now()};if(n.name!==void 0&&(o.name=n.name),n.code!==void 0&&(o.code=n.code),n.runtime!==void 0&&(o.runtime=n.runtime),n.secrets!==void 0){const s=await e.selectFrom("actions").where("actions.id","=",a).where("actions.tenant_id","=",t).select("secrets").executeTakeFirst(),i=new Map(ut(s==null?void 0:s.secrets).map(d=>[d.name,d])),l=n.secrets.map(d=>{var _;return d.value===void 0?{name:d.name,value:(_=i.get(d.name))==null?void 0:_.value}:d});o.secrets=JSON.stringify(l)}if(n.dependencies!==void 0&&(o.dependencies=JSON.stringify(n.dependencies)),n.supported_triggers!==void 0&&(o.supported_triggers=JSON.stringify(n.supported_triggers)),n.status!==void 0&&(o.status=n.status),n.deployed_at!==void 0){const s=new Date(n.deployed_at).getTime();Number.isFinite(s)&&(o.deployed_at_ts=s)}return n.is_system!==void 0&&(o.is_system=n.is_system?1:0),n.inherit!==void 0&&(o.inherit=n.inherit?1:0),(await e.updateTable("actions").set(o).where("actions.id","=",a).where("actions.tenant_id","=",t).executeTakeFirst()).numUpdatedRows>0}}function mt(e){return async(t,a)=>(await e.deleteFrom("actions").where("actions.id","=",a).where("actions.tenant_id","=",t).executeTakeFirst()).numDeletedRows>0}function ht(e){return{create:ct(e),get:lt(e),list:dt(e),update:_t(e),remove:mt(e)}}function pt(e){return async(t,a)=>{const n=Date.now();return await e.insertInto("action_executions").values({id:a.id,tenant_id:t,trigger_id:a.trigger_id,status:a.status,results:JSON.stringify(a.results),logs:a.logs?JSON.stringify(a.logs):null,created_at_ts:n,updated_at_ts:n}).execute(),{id:a.id,tenant_id:t,trigger_id:a.trigger_id,status:a.status,results:a.results,logs:a.logs,created_at:new Date(n).toISOString(),updated_at:new Date(n).toISOString()}}}function me(e){if(e)try{return JSON.parse(e)}catch{return}}function ft(e){return async(t,a)=>{const n=await e.selectFrom("action_executions").where("action_executions.tenant_id","=",t).where("action_executions.id","=",a).selectAll().executeTakeFirst();return n?{id:n.id,tenant_id:n.tenant_id,trigger_id:n.trigger_id,status:n.status,results:me(n.results)??[],logs:me(n.logs),created_at:new Date(Number(n.created_at_ts)).toISOString(),updated_at:new Date(Number(n.updated_at_ts)).toISOString()}:null}}function gt(e){return{create:pt(e),get:ft(e)}}function te(e){if(e)try{return JSON.parse(e)}catch{return}}function he(e){const{created_at_ts:t,updated_at_ts:a,secrets:n,dependencies:o,supported_triggers:r,deployed:s,runtime:i,...l}=e;return{...l,runtime:i??void 0,deployed:!!s,secrets:te(n),dependencies:te(o),supported_triggers:te(r),created_at:new Date(Number(t)).toISOString(),updated_at:new Date(Number(a)).toISOString()}}function wt(e){return{async create(t,a){const n=Date.now(),o=nt(),r=a.deployed!==!1,s=await e.transaction().execute(async i=>{const l=await i.selectFrom("action_versions").where("tenant_id","=",t).where("action_id","=",a.action_id).select("number").orderBy("number","desc").limit(1).executeTakeFirst(),d=((l==null?void 0:l.number)??0)+1;return r&&await i.updateTable("action_versions").set({deployed:0,updated_at_ts:n}).where("tenant_id","=",t).where("action_id","=",a.action_id).execute(),await i.insertInto("action_versions").values({id:o,tenant_id:t,action_id:a.action_id,number:d,code:a.code,runtime:a.runtime||null,secrets:a.secrets?JSON.stringify(a.secrets):null,dependencies:a.dependencies?JSON.stringify(a.dependencies):null,supported_triggers:a.supported_triggers?JSON.stringify(a.supported_triggers):null,deployed:r?1:0,created_at_ts:n,updated_at_ts:n}).execute(),d});return{id:o,tenant_id:t,action_id:a.action_id,number:s,code:a.code,runtime:a.runtime,secrets:a.secrets,dependencies:a.dependencies,supported_triggers:a.supported_triggers,deployed:r,created_at:new Date(n).toISOString(),updated_at:new Date(n).toISOString()}},async get(t,a,n){const o=await e.selectFrom("action_versions").where("tenant_id","=",t).where("action_id","=",a).where("id","=",n).selectAll().executeTakeFirst();return o?he(o):null},async list(t,a,n={}){const{page:o=0,per_page:r=50,include_totals:s=!1}=n,i=e.selectFrom("action_versions").where("tenant_id","=",t).where("action_id","=",a),d=(await i.orderBy("number","desc").offset(o*r).limit(r).selectAll().execute()).map(he);if(!s)return{versions:d,start:0,limit:0,length:0};const{count:_}=await i.select(c=>c.fn.countAll().as("count")).executeTakeFirstOrThrow();return{versions:d,start:o*r,limit:r,length:E(_)}},async removeForAction(t,a){const n=await e.deleteFrom("action_versions").where("tenant_id","=",t).where("action_id","=",a).executeTakeFirst();return Number(n.numDeletedRows??0)}}}var U=class extends Error{constructor(t=500,a){super(a==null?void 0:a.message,{cause:a==null?void 0:a.cause});H(this,"res");H(this,"status");this.res=a==null?void 0:a.res,this.status=t}getResponse(){return this.res?new Response(this.res.body,{status:this.status,headers:this.res.headers}):new Response(this.message,{status:this.status})}};function yt(e){return async(t,a)=>{const{identities:n,phone_verified:o,password:r,...s}=a,i={...s,login_count:s.login_count??0,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),tenant_id:t,email_verified:a.email_verified?1:0,phone_verified:o!==void 0?o?1:0:null,is_social:a.is_social?1:0,app_metadata:JSON.stringify(a.app_metadata),user_metadata:JSON.stringify(a.user_metadata),address:a.address?JSON.stringify(a.address):null};try{const l=async d=>{if(await d.insertInto("users").values(i).execute(),r&&i.user_id){const _={id:k.nanoid(),user_id:i.user_id,password:r.hash,algorithm:r.algorithm,is_current:1,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),tenant_id:t};await d.insertInto("passwords").values(_).execute()}};e.isTransaction?await l(e):await e.transaction().execute(l)}catch(l){throw l.code==="SQLITE_CONSTRAINT_UNIQUE"||l.code==="ER_DUP_ENTRY"||l.message.includes("AlreadyExists")?new U(409,{message:"User already exists"}):new U(500,{message:`${l.code}, ${l.message}`})}return{...i,email:i.email||"",email_verified:i.email_verified===1,phone_verified:i.phone_verified!==null?i.phone_verified===1:void 0,is_social:i.is_social===1,address:a.address}}}function y(e){if(e==null||typeof e!="object")return e;if(Array.isArray(e))return e.map(a=>a!==null&&typeof a=="object"?y(a):a);const t={...e};for(const a in t){const n=t[a];n===null?delete t[a]:n!==null&&typeof n=="object"&&(Array.isArray(n)?t[a]=n.map(o=>o!==null&&typeof o=="object"?y(o):o):t[a]=y(n))}return t}const vt=["email","email_verified","phone_number","phone_verified","username"];function X(e,t=!1){const a={connection:e.connection,provider:e.provider,user_id:N.parseUserId(e.user_id).id,isSocial:!!e.is_social};for(const n of vt)e[n]!==void 0&&e[n]!==null&&(a[n]=n.endsWith("_verified")?!!e[n]:e[n]);if(!t){let n={};try{n=JSON.parse(e.profileData||"{}")}catch(o){console.error("Error parsing profileData",o)}a.profileData={email:e.email,email_verified:!!e.email_verified,...n}}return a}function Ct(e){return async(t,a)=>{const[n,o]=await Promise.all([e.selectFrom("users").where("users.tenant_id","=",t).where("users.user_id","=",a).selectAll().executeTakeFirst(),e.selectFrom("users").where("users.tenant_id","=",t).where("users.linked_to","=",a).selectAll().orderBy("created_at","asc").execute()]);if(!n)return null;const{tenant_id:r,...s}=n,i={...s,email:n.email||"",email_verified:n.email_verified===1,phone_verified:n.phone_verified!==null?n.phone_verified===1:void 0,is_social:n.is_social===1,app_metadata:JSON.parse(n.app_metadata),user_metadata:JSON.parse(n.user_metadata),address:n.address?JSON.parse(n.address):void 0,identities:[X(n,!0),...o.map(l=>X(l))]};return y(i)}}const xt=["user_id","email","email_verified","username","phone_number","phone_verified","name","given_name","family_name","nickname","picture","locale","linked_to","provider","connection","is_social","last_ip","last_login","login_count","created_at","updated_at"],Tt=["email","name","phone_number","user_id"];function bt(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,sort:s,q:i}=a;let l=e.selectFrom("users").where("users.tenant_id","=",t);if(i){const p=se(i,xt);p&&(l=O(e,l,p,Tt))}if(s&&s.sort_by){const{ref:p}=e.dynamic;l=l.orderBy(p(s.sort_by),s.sort_order)}const _=await l.offset(n*o).limit(o).selectAll().execute(),c=_.map(p=>p.user_id),m=c.length?await e.selectFrom("users").selectAll().where("users.tenant_id","=",t).where("users.linked_to","in",c).orderBy("created_at","asc").execute():[],u=_.map(p=>{const g=m.filter(v=>v.linked_to===p.user_id);return y({...p,email_verified:p.email_verified===1,phone_verified:p.phone_verified!==null?p.phone_verified===1:void 0,is_social:p.is_social===1,app_metadata:JSON.parse(p.app_metadata),user_metadata:JSON.parse(p.user_metadata),address:p.address?JSON.parse(p.address):void 0,identities:[X(p,!0),...g.map(v=>X(v))]})});if(!r)return{users:u,start:0,limit:0,length:0};const{count:f}=await l.select(p=>p.fn.countAll().as("count")).executeTakeFirstOrThrow();return{users:u,start:n*o,limit:o,length:E(f)}}}function Nt(e){return async(t,a)=>(await e.deleteFrom("authentication_methods").where("authentication_methods.tenant_id","=",t).where("authentication_methods.user_id","in",o=>o.selectFrom("users").select("users.user_id").where("users.tenant_id","=",t).where(r=>r.or([r("users.user_id","=",a),r("users.linked_to","=",a)]))).execute(),await e.deleteFrom("users").where("users.tenant_id","=",t).where("users.linked_to","=",a).execute(),(await e.deleteFrom("users").where("users.tenant_id","=",t).where("users.user_id","=",a).execute()).length===1)}function B(e,t="",a={}){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){const o=t?`${t}_${n}`:n,r=e[n];typeof r=="object"&&r!==null&&!Array.isArray(r)?B(r,o,a):typeof r=="boolean"?a[o]=r?1:0:a[o]=r}return a}function Oe(e,t){const a={};for(const[n,o]of Object.entries(e)){const r=t.find(s=>n.startsWith(`${s}_`));if(!r)a[n]=o;else{const s=n.slice(r.length+1);a[r]={...a[r],[s]:o}}}return a}function St(e){return async(t,a,n)=>{const o=B({...n,updated_at:new Date().toISOString(),app_metadata:n.app_metadata?JSON.stringify(n.app_metadata):void 0,user_metadata:n.user_metadata?JSON.stringify(n.user_metadata):void 0,address:n.address?JSON.stringify(n.address):void 0,phone_verified:n.phone_verified!==void 0?n.phone_verified?1:0:void 0});return(await e.updateTable("users").set(o).where("users.tenant_id","=",t).where("users.user_id","=",a).execute()).length===1}}function Ot(e){return async(t,a,n,o)=>{const r={linked_to:null};return(await e.updateTable("users").set(r).where("users.tenant_id","=",t).where("users.user_id","=",`${n}|${o}`).where("users.linked_to","=",`${a}`).execute()).length===1}}function kt(e){const t=yt(e);return{create:t,rawCreate:t,remove:Nt(e),get:Ct(e),list:bt(e),update:St(e),unlink:Ot(e)}}function $t(e){return async(t,a)=>{const n=new Date().toISOString(),o=N.flowSchema.parse({id:`af_${k.nanoid()}`,...a,actions:a.actions||[],created_at:n,updated_at:n});return await e.insertInto("flows").values({...o,tenant_id:t,actions:JSON.stringify(o.actions)}).execute(),o}}function q(e,t){if(!e)return t;try{return JSON.parse(e)}catch{return t}}function ke(e){if(e)try{const t=JSON.parse(e);return t&&typeof t=="object"&&!Array.isArray(t)?t:void 0}catch{return}}function $e(e,t,a={...e}){for(const n in t)n in e&&(a[n]=q(e[n],t[n]));return a}function Et(e){return async(t,a)=>{const n=await e.selectFrom("flows").selectAll().where("flows.id","=",a).where("tenant_id","=",t).executeTakeFirst();if(!n)return null;const o={...n,actions:q(n.actions,[])};return N.flowSchema.parse(y(o))}}function It(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,q:s}=a;let i=e.selectFrom("flows").where("tenant_id","=",t);s&&(i=O(e,i,s,[]));const _=(await i.offset(n*o).limit(o).selectAll().execute()).map(m=>{const u={...m,actions:q(m.actions,[])};return N.flowSchema.parse(y(u))});if(!r)return{flows:_,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{flows:_,start:n*o,limit:o,length:E(c)}}}function Pt(e){return async(t,a,n)=>{const o={...n,updated_at:new Date().toISOString()};n.actions!==void 0&&(o.actions=JSON.stringify(n.actions));const{numUpdatedRows:r}=await e.updateTable("flows").set(o).where("id","=",a).where("tenant_id","=",t).executeTakeFirst();if(r===0n)return null;const s=await e.selectFrom("flows").selectAll().where("id","=",a).where("tenant_id","=",t).executeTakeFirst();return s?N.flowSchema.parse({...s,actions:s.actions?JSON.parse(s.actions):[]}):null}}function zt(e){return async(t,a)=>{var o;return(((o=(await e.deleteFrom("flows").where("id","=",a).where("tenant_id","=",t).execute())[0])==null?void 0:o.numDeletedRows)??0n)>0n}}function Dt(e){return{create:$t(e),get:Et(e),list:It(e),update:Pt(e),remove:zt(e)}}function W(e,t,a={...e}){for(const n of t)e[n]!==void 0&&(a[n]=JSON.stringify(e[n]));return a}function Ee(e,t,a=e){for(const n of t)e[n]!==void 0&&(a[n]=e[n]?1:0)}function At(e){const t={};for(const a in e)e[a]!==void 0&&e[a]!==null&&(t[a]=e[a]);return t}function Ie(e){const t={...e};return e.session_cookie&&typeof e.session_cookie=="string"&&(t.session_cookie=JSON.parse(e.session_cookie)),e.enabled_locales&&typeof e.enabled_locales=="string"&&(t.enabled_locales=JSON.parse(e.enabled_locales)),e.error_page&&typeof e.error_page=="string"&&(t.error_page=JSON.parse(e.error_page)),e.flags&&typeof e.flags=="string"&&(t.flags=JSON.parse(e.flags)),e.sandbox_versions_available&&typeof e.sandbox_versions_available=="string"&&(t.sandbox_versions_available=JSON.parse(e.sandbox_versions_available)),e.change_password&&typeof e.change_password=="string"&&(t.change_password=JSON.parse(e.change_password)),e.guardian_mfa_page&&typeof e.guardian_mfa_page=="string"&&(t.guardian_mfa_page=JSON.parse(e.guardian_mfa_page)),e.sessions&&typeof e.sessions=="string"&&(t.sessions=JSON.parse(e.sessions)),e.oidc_logout&&typeof e.oidc_logout=="string"&&(t.oidc_logout=JSON.parse(e.oidc_logout)),e.device_flow&&typeof e.device_flow=="string"&&(t.device_flow=JSON.parse(e.device_flow)),e.default_token_quota&&typeof e.default_token_quota=="string"&&(t.default_token_quota=JSON.parse(e.default_token_quota)),e.allowed_logout_urls&&typeof e.allowed_logout_urls=="string"&&(t.allowed_logout_urls=JSON.parse(e.allowed_logout_urls)),e.acr_values_supported&&typeof e.acr_values_supported=="string"&&(t.acr_values_supported=JSON.parse(e.acr_values_supported)),e.mtls&&typeof e.mtls=="string"&&(t.mtls=JSON.parse(e.mtls)),e.mfa&&typeof e.mfa=="string"&&(t.mfa=JSON.parse(e.mfa)),e.attack_protection&&typeof e.attack_protection=="string"&&(t.attack_protection=JSON.parse(e.attack_protection)),e.allow_organization_name_in_authentication_api!==void 0&&(t.allow_organization_name_in_authentication_api=e.allow_organization_name_in_authentication_api===1),e.customize_mfa_in_postlogin_action!==void 0&&(t.customize_mfa_in_postlogin_action=e.customize_mfa_in_postlogin_action===1),e.pushed_authorization_requests_supported!==void 0&&(t.pushed_authorization_requests_supported=e.pushed_authorization_requests_supported===1),e.authorization_response_iss_parameter_supported!==void 0&&(t.authorization_response_iss_parameter_supported=e.authorization_response_iss_parameter_supported===1),y(t)}function Pe(e){const t={...e};return W(e,["session_cookie","enabled_locales","error_page","flags","sandbox_versions_available","change_password","guardian_mfa_page","sessions","oidc_logout","device_flow","default_token_quota","allowed_logout_urls","acr_values_supported","mtls","mfa","attack_protection"],t),e.allow_organization_name_in_authentication_api!==void 0&&(t.allow_organization_name_in_authentication_api=e.allow_organization_name_in_authentication_api?1:0),e.customize_mfa_in_postlogin_action!==void 0&&(t.customize_mfa_in_postlogin_action=e.customize_mfa_in_postlogin_action?1:0),e.pushed_authorization_requests_supported!==void 0&&(t.pushed_authorization_requests_supported=e.pushed_authorization_requests_supported?1:0),e.authorization_response_iss_parameter_supported!==void 0&&(t.authorization_response_iss_parameter_supported=e.authorization_response_iss_parameter_supported?1:0),At(t)}function Ft(e){return async t=>{var o,r;const a={id:t.id||k.nanoid(),created_at:new Date().toISOString(),updated_at:new Date().toISOString(),...t},n=Pe(a);try{await e.insertInto("tenants").values(n).execute()}catch(s){throw(o=s==null?void 0:s.message)!=null&&o.includes("UNIQUE constraint failed")||(r=s==null?void 0:s.message)!=null&&r.includes("duplicate key")||(s==null?void 0:s.code)==="SQLITE_CONSTRAINT"||(s==null?void 0:s.code)==="ER_DUP_ENTRY"||(s==null?void 0:s.code)==="23505"?new U(409,{message:`Tenant with ID '${a.id}' already exists`}):s}return a}}function jt(e){return async t=>{const a=await e.selectFrom("tenants").where("tenants.id","=",t).selectAll().executeTakeFirst();return a?Ie(a):null}}function Rt(e){return async t=>{let a=e.selectFrom("tenants");const{page:n=0,per_page:o=50,include_totals:r=!1,sort:s,q:i}=t||{};if(s&&s.sort_by){const{ref:u}=e.dynamic;a=a.orderBy(u(s.sort_by),s.sort_order)}i&&(a=O(e,a,i,["friendly_name"]));const _=(await a.offset(n*o).limit(o).selectAll().execute()).map(Ie);if(!r)return{tenants:_};const{count:c}=await a.select(u=>u.fn.countAll().as("count")).executeTakeFirstOrThrow(),m=E(c);return{tenants:_,start:n*o,limit:o,length:m}}}function qt(e){return async(t,a)=>{const o={...Pe(a),id:t,updated_at:new Date().toISOString()};await e.updateTable("tenants").set(o).where("id","=",t).execute()}}function Mt(e){return async t=>(await e.deleteFrom("tenants").where("tenants.id","=",t).execute()).length===1}function Jt(e){return{create:Ft(e),get:jt(e),list:Rt(e),update:qt(e),remove:Mt(e)}}function pe(e){return e?JSON.stringify(e):void 0}const Lt=256;function Ut(e){return async(t,a)=>{var i,l,d;const n=(i=a.user_agent)==null?void 0:i.slice(0,Lt),o=a.log_id||k.nanoid(),{location_info:r,...s}=a;return await e.insertInto("logs").values({...s,log_id:o,tenant_id:t,user_agent:n,description:(l=a.description)==null?void 0:l.substring(0,256),isMobile:a.isMobile?1:0,scope:a.scope,auth0_client:pe(a.auth0_client),details:(d=pe(a.details))==null?void 0:d.substring(0,8192),country_code:r==null?void 0:r.country_code,city_name:r==null?void 0:r.city_name,latitude:r==null?void 0:r.latitude,longitude:r==null?void 0:r.longitude,time_zone:r==null?void 0:r.time_zone,continent_code:r==null?void 0:r.continent_code}).execute(),{...a,log_id:o,user_agent:n}}}function fe(e){if(!e)return"";try{return JSON.parse(e)}catch{return e}}function ze(e){return{...e,client_id:e.client_id,client_name:"",auth0_client:fe(e.auth0_client),details:fe(e.details),isMobile:!!e.isMobile,scope:e.scope||void 0,log_id:e.log_id,location_info:e.country_code?{country_code:e.country_code,city_name:e.city_name||"",latitude:e.latitude||"",longitude:e.longitude||"",time_zone:e.time_zone||"",continent_code:e.continent_code||""}:void 0}}function Bt(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,sort:s,q:i,from_date:l,to_date:d}=a;let _=e.selectFrom("logs").where("logs.tenant_id","=",t);i&&(_=O(e,_,i,["user_id","ip"])),typeof l=="number"&&Number.isFinite(l)&&(_=_.where("logs.date",">=",new Date(Math.floor(l)*1e3).toISOString())),typeof d=="number"&&Number.isFinite(d)&&(_=_.where("logs.date","<=",new Date(Math.floor(d)*1e3+999).toISOString()));let c=_;if(s&&s.sort_by){const{ref:p}=e.dynamic;c=c.orderBy(p(s.sort_by),s.sort_order)}c=c.offset(n*o).limit(o);const u=(await c.selectAll().execute()).map(ze);if(!r)return{logs:u,start:0,limit:0,length:0};const{count:f}=await _.select(p=>p.fn.countAll().as("count")).executeTakeFirstOrThrow();return{logs:u,start:n*o,limit:o,length:E(f)}}}function Kt(e){return async(t,a)=>{const n=await e.selectFrom("logs").where("logs.tenant_id","=",t).where("logs.log_id","=",a).selectAll().executeTakeFirst();return n?ze(n):null}}function Qt(e){return{create:Ut(e),list:Bt(e),get:Kt(e)}}function Wt(e){return async(t,a)=>{const n=await e.selectFrom("sessions").where("sessions.tenant_id","=",t).where("sessions.id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:o,device:r,clients:s,created_at_ts:i,updated_at_ts:l,expires_at_ts:d,idle_expires_at_ts:_,authenticated_at_ts:c,last_interaction_at_ts:m,used_at_ts:u,revoked_at_ts:f,...p}=n,g=F({created_at_ts:i,updated_at_ts:l,expires_at_ts:d,idle_expires_at_ts:_,authenticated_at_ts:c,last_interaction_at_ts:m,used_at_ts:u,revoked_at_ts:f},["created_at_ts","updated_at_ts","authenticated_at_ts","last_interaction_at_ts"],["expires_at_ts","idle_expires_at_ts","used_at_ts","revoked_at_ts"]);return{...p,...g,device:JSON.parse(r),clients:JSON.parse(s)}}}function Ht(e){return async(t,a)=>{const n=Date.now(),o=le(),r={...a,created_at:o,updated_at:o,authenticated_at:o,last_interaction_at:o},{expires_at:s,idle_expires_at:i,used_at:l,revoked_at:d,device:_,clients:c,...m}=a;return await e.insertInto("sessions").values({...m,tenant_id:t,created_at_ts:n,updated_at_ts:n,authenticated_at_ts:n,last_interaction_at_ts:n,expires_at_ts:x(s),idle_expires_at_ts:x(i),used_at_ts:x(l),revoked_at_ts:x(d),device:JSON.stringify(_),clients:JSON.stringify(c)}).execute(),r}}function Yt(e){return async(t,a)=>!!(await e.deleteFrom("sessions").where("tenant_id","=",t).where("sessions.id","=",a).execute()).length}function Gt(e){return async(t,a,n)=>{const o={updated_at_ts:Date.now(),device:n.device?JSON.stringify(n.device):void 0,clients:n.clients?JSON.stringify(n.clients):void 0};return n.expires_at!==void 0&&(o.expires_at_ts=x(n.expires_at)),n.idle_expires_at!==void 0&&(o.idle_expires_at_ts=x(n.idle_expires_at)),n.authenticated_at!==void 0&&(o.authenticated_at_ts=x(n.authenticated_at)),n.last_interaction_at!==void 0&&(o.last_interaction_at_ts=x(n.last_interaction_at)),n.used_at!==void 0&&(o.used_at_ts=x(n.used_at)),n.revoked_at!==void 0&&(o.revoked_at_ts=x(n.revoked_at)),n.user_id!==void 0&&(o.user_id=n.user_id),n.login_session_id!==void 0&&(o.login_session_id=n.login_session_id),!!(await e.updateTable("sessions").set(o).where("tenant_id","=",t).where("sessions.id","=",a).execute()).length}}function Vt(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,sort:s,q:i}=a;let l=e.selectFrom("sessions").where("sessions.tenant_id","=",t);i&&(l=O(e,l,i,["user_id","session_id"]));let d=l;if(s&&s.sort_by){const{ref:f}=e.dynamic;d=d.orderBy(f(s.sort_by),s.sort_order)}d=d.offset(n*o).limit(o);const c=(await d.selectAll().execute()).map(f=>{const{tenant_id:p,device:g,clients:v,created_at_ts:b,updated_at_ts:S,expires_at_ts:$,idle_expires_at_ts:D,authenticated_at_ts:C,last_interaction_at_ts:T,used_at_ts:K,revoked_at_ts:M,...He}=f,Ye=F({created_at_ts:b,updated_at_ts:S,expires_at_ts:$,idle_expires_at_ts:D,authenticated_at_ts:C,last_interaction_at_ts:T,used_at_ts:K,revoked_at_ts:M},["created_at_ts","updated_at_ts","authenticated_at_ts","last_interaction_at_ts"],["expires_at_ts","idle_expires_at_ts","used_at_ts","revoked_at_ts"]);return{...He,...Ye,device:JSON.parse(g),clients:JSON.parse(v)}});if(!r)return{sessions:c,start:0,limit:0,length:0};const{count:m}=await l.select(f=>f.fn.countAll().as("count")).executeTakeFirstOrThrow(),u=E(m);return{sessions:c,start:n*o,limit:o,length:u}}}function Xt(e){return{create:Ht(e),get:Wt(e),list:Vt(e),remove:Yt(e),update:Gt(e)}}function Zt(e){return async(t,a)=>{const n=await e.selectFrom("passwords").where("passwords.tenant_id","=",t).where("passwords.user_id","=",a).where("passwords.is_current","=",1).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:o,...r}=n;return{...r,is_current:!!r.is_current}}}function ea(e){return async(t,a)=>{const n=a.id||k.nanoid(),o=a.is_current??!0,r={id:n,...a,is_current:o,created_at:new Date().toISOString(),updated_at:new Date().toISOString()};return o&&await e.updateTable("passwords").set({is_current:0}).where("user_id","=",a.user_id).where("tenant_id","=",t).where("is_current","=",1).execute(),await e.insertInto("passwords").values({...r,is_current:r.is_current?1:0,tenant_id:t}).execute(),r}}function ta(e){return async(t,a)=>{let n=e.updateTable("passwords").set({password:a.password,algorithm:a.algorithm,is_current:a.is_current?1:0,updated_at:new Date().toISOString()}).where("tenant_id","=",t).where("user_id","=",a.user_id);return a.id?n=n.where("id","=",a.id):n=n.where("is_current","=",1),(await n.execute()).length===1}}function aa(e){return async(t,a,n)=>{let o=e.selectFrom("passwords").where("passwords.tenant_id","=",t).where("passwords.user_id","=",a).orderBy("created_at","desc");return n&&(o=o.limit(n)),(await o.selectAll().execute()).map(({tenant_id:s,...i})=>({...i,is_current:!!i.is_current}))}}function na(e){return{create:ea(e),update:ta(e),get:Zt(e),list:aa(e)}}function oa(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,q:s}=a;let i=e.selectFrom("codes").where("codes.tenant_id","=",t);s&&(i=O(e,i,s,["code","login_id"]));const _=(await i.offset(n*o).limit(o).selectAll().execute()).map(m=>{const{tenant_id:u,...f}=m;return N.codeSchema.parse(y(f))});if(!r)return{codes:_,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{codes:_,start:n*o,limit:o,length:E(c)}}}function ra(e){return async(t,a)=>{const n={...a,created_at:new Date().toISOString()};return await e.insertInto("codes").values({...n,tenant_id:t}).execute(),n}}function sa(e){return async(t,a)=>(await e.deleteFrom("codes").where("codes.tenant_id","=",t).where("codes.code_id","=",a).executeTakeFirst()).numDeletedRows>0}function ia(e){return async(t,a,n)=>{let o=e.selectFrom("codes").where("codes.code_id","=",a).where("codes.code_type","=",n);t.length&&(o=o.where("codes.tenant_id","=",t));const r=await o.selectAll().executeTakeFirst();return r?y(r):null}}function ca(e){return async(t,a)=>(await e.updateTable("codes").set({used_at:new Date().toISOString()}).where("codes.tenant_id","=",t).where("codes.code_id","=",a).executeTakeFirst()).numUpdatedRows>0}function la(e){return async(t,a)=>(await e.updateTable("codes").set({used_at:new Date().toISOString()}).where("codes.tenant_id","=",t).where("codes.code_id","=",a).where("codes.used_at","is",null).executeTakeFirst()).numUpdatedRows>0}function da(e){return{create:ra(e),list:oa(e),remove:sa(e),used:ca(e),consume:la(e),get:ia(e)}}function ua(e){return async(t,a)=>{const{is_system:n,...o}=a,r={id:o.id||tt(),...o,is_system:n?!0:void 0,created_at:new Date().toISOString(),updated_at:new Date().toISOString()};return await e.insertInto("connections").values({...r,is_system:n?1:0,options:JSON.stringify(r.options||{}),tenant_id:t}).execute(),r}}function de(e){const{is_system:t,...a}=e;return y({...a,is_system:t?!0:void 0,options:JSON.parse(e.options)})}function _a(e){return e.map(de)}function ma(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,q:s}=a;let i=e.selectFrom("connections").where("connections.tenant_id","=",t);s&&(i=O(e,i,s,["user_id","ip"]));const d=await i.offset(n*o).limit(o).selectAll().execute(),_=_a(d);if(!r)return{connections:_,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{connections:_,start:n*o,limit:o,length:E(c)}}}function ha(e){return async(t,a)=>(await e.deleteFrom("connections").where("connections.tenant_id","=",t).where("connections.id","=",a).executeTakeFirst()).numDeletedRows>0}function pa(e){return async(t,a)=>{const n=await e.selectFrom("connections").where("connections.tenant_id","=",t).where("connections.id","=",a).selectAll().executeTakeFirst();return n?de(n):null}}function fa(e){return async(t,a,n)=>{const{is_system:o,...r}=n,s={...r,is_system:o!==void 0?o?1:0:void 0,updated_at:new Date().toISOString()};return await e.updateTable("connections").set({...s,options:s.options?JSON.stringify(s.options):void 0}).where("connections.id","=",a).where("connections.tenant_id","=",t).execute(),!0}}function ga(e){return{create:ua(e),get:pa(e),list:ma(e),remove:ha(e),update:fa(e)}}function wa(e){return async(t,a)=>{const n=a.client_id??k.nanoid(),o={created_at:new Date().toISOString(),updated_at:new Date().toISOString(),...a,client_id:n,global:a.global??!1,is_first_party:a.is_first_party??!1,oidc_conformant:a.oidc_conformant??!0,auth0_conformant:a.auth0_conformant??!0,sso:a.sso??!1,sso_disabled:a.sso_disabled??!1,cross_origin_authentication:a.cross_origin_authentication??!1,custom_login_page_on:a.custom_login_page_on??!1,require_pushed_authorization_requests:a.require_pushed_authorization_requests??!1,require_proof_of_possession:a.require_proof_of_possession??!1,hide_sign_up_disabled_error:a.hide_sign_up_disabled_error??!1},r={...o,tenant_id:t};return Ee(o,["global","is_first_party","oidc_conformant","auth0_conformant","sso","sso_disabled","cross_origin_authentication","custom_login_page_on","require_pushed_authorization_requests","require_proof_of_possession","hide_sign_up_disabled_error"],r),Object.assign(r,{callbacks:JSON.stringify(a.callbacks||[]),allowed_origins:JSON.stringify(a.allowed_origins||[]),web_origins:JSON.stringify(a.web_origins||[]),client_aliases:JSON.stringify(a.client_aliases||[]),allowed_clients:JSON.stringify(a.allowed_clients||[]),connections:JSON.stringify(a.connections||[]),allowed_logout_urls:JSON.stringify(a.allowed_logout_urls||[]),session_transfer:JSON.stringify(a.session_transfer||{}),oidc_logout:JSON.stringify(a.oidc_logout||{}),grant_types:JSON.stringify(a.grant_types||[]),jwt_configuration:JSON.stringify(a.jwt_configuration||{}),signing_keys:JSON.stringify(a.signing_keys||[]),encryption_key:JSON.stringify(a.encryption_key||{}),addons:JSON.stringify(a.addons||{}),client_metadata:JSON.stringify(a.client_metadata||{}),mobile:JSON.stringify(a.mobile||{}),native_social_login:JSON.stringify(a.native_social_login||{}),refresh_token:JSON.stringify(a.refresh_token||{}),default_organization:JSON.stringify(a.default_organization||{}),client_authentication_methods:JSON.stringify(a.client_authentication_methods||{}),signed_request_object:JSON.stringify(a.signed_request_object||{}),token_quota:JSON.stringify(a.token_quota||{}),owner_user_id:a.owner_user_id??null,registration_type:a.registration_type??null,registration_metadata:a.registration_metadata?JSON.stringify(a.registration_metadata):null}),await e.insertInto("clients").values(r).execute(),o}}function ya(e){return async(t,a)=>{const n=await e.selectFrom("clients").where("clients.tenant_id","=",t).where("clients.client_id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:o,...r}=n;return y({...r,global:!!n.global,is_first_party:!!n.is_first_party,oidc_conformant:!!n.oidc_conformant,auth0_conformant:!!n.auth0_conformant,sso:!!n.sso,sso_disabled:!!n.sso_disabled,cross_origin_authentication:!!n.cross_origin_authentication,custom_login_page_on:!!n.custom_login_page_on,require_pushed_authorization_requests:!!n.require_pushed_authorization_requests,require_proof_of_possession:!!n.require_proof_of_possession,hide_sign_up_disabled_error:!!n.hide_sign_up_disabled_error,callbacks:JSON.parse(n.callbacks),allowed_origins:JSON.parse(n.allowed_origins),web_origins:JSON.parse(n.web_origins),client_aliases:JSON.parse(n.client_aliases),allowed_clients:JSON.parse(n.allowed_clients),connections:JSON.parse(n.connections||"[]"),allowed_logout_urls:JSON.parse(n.allowed_logout_urls),session_transfer:JSON.parse(n.session_transfer),oidc_logout:JSON.parse(n.oidc_logout),grant_types:JSON.parse(n.grant_types),jwt_configuration:JSON.parse(n.jwt_configuration),signing_keys:JSON.parse(n.signing_keys),encryption_key:JSON.parse(n.encryption_key),addons:JSON.parse(n.addons),client_metadata:JSON.parse(n.client_metadata),mobile:JSON.parse(n.mobile),native_social_login:JSON.parse(n.native_social_login),refresh_token:JSON.parse(n.refresh_token),default_organization:JSON.parse(n.default_organization),client_authentication_methods:JSON.parse(n.client_authentication_methods),signed_request_object:JSON.parse(n.signed_request_object),token_quota:JSON.parse(n.token_quota),registration_metadata:n.registration_metadata?JSON.parse(n.registration_metadata):void 0})}}function va(e){return async t=>{const a=await e.selectFrom("clients").where("clients.client_id","=",t).selectAll().executeTakeFirst();return a?y({...a,global:!!a.global,is_first_party:!!a.is_first_party,oidc_conformant:!!a.oidc_conformant,auth0_conformant:!!a.auth0_conformant,sso:!!a.sso,sso_disabled:!!a.sso_disabled,cross_origin_authentication:!!a.cross_origin_authentication,custom_login_page_on:!!a.custom_login_page_on,require_pushed_authorization_requests:!!a.require_pushed_authorization_requests,require_proof_of_possession:!!a.require_proof_of_possession,hide_sign_up_disabled_error:!!a.hide_sign_up_disabled_error,callbacks:JSON.parse(a.callbacks),allowed_origins:JSON.parse(a.allowed_origins),web_origins:JSON.parse(a.web_origins),client_aliases:JSON.parse(a.client_aliases),allowed_clients:JSON.parse(a.allowed_clients),connections:JSON.parse(a.connections||"[]"),allowed_logout_urls:JSON.parse(a.allowed_logout_urls),session_transfer:JSON.parse(a.session_transfer),oidc_logout:JSON.parse(a.oidc_logout),grant_types:JSON.parse(a.grant_types),jwt_configuration:JSON.parse(a.jwt_configuration),signing_keys:JSON.parse(a.signing_keys),encryption_key:JSON.parse(a.encryption_key),addons:JSON.parse(a.addons),client_metadata:JSON.parse(a.client_metadata),mobile:JSON.parse(a.mobile),native_social_login:JSON.parse(a.native_social_login),refresh_token:JSON.parse(a.refresh_token),default_organization:JSON.parse(a.default_organization),client_authentication_methods:JSON.parse(a.client_authentication_methods),signed_request_object:JSON.parse(a.signed_request_object),token_quota:JSON.parse(a.token_quota),registration_metadata:a.registration_metadata?JSON.parse(a.registration_metadata):void 0}):null}}function Ca(e){return async(t,a)=>{let n=e.selectFrom("clients").where("clients.tenant_id","=",t);const o=new Set(["owner_user_id","registration_type"]);if(a!=null&&a.q){const m=a.q.trim().match(/^([a-zA-Z_][a-zA-Z0-9_]*):"?([^"]*)"?$/);if(m&&o.has(m[1])&&m[2]){const u=m[1];n=n.where(u,"=",m[2])}else n=n.where(u=>u.or([u("name","like",`%${a.q}%`),u("client_id","like",`%${a.q}%`)]))}if(a!=null&&a.sort){const c=a.sort.sort_order==="asc"?"asc":"desc",m=a.sort.sort_by;["name","client_id","created_at","updated_at"].includes(m)?n=n.orderBy(m,c):n=n.orderBy("created_at","desc")}else n=n.orderBy("created_at","desc");if((a==null?void 0:a.from)!==void 0){const c=parseInt(a.from,10);isNaN(c)||(n=n.offset(c))}else if((a==null?void 0:a.page)!==void 0){const c=(a==null?void 0:a.per_page)||(a==null?void 0:a.take)||10,m=a.page*c;n=n.offset(m)}const r=(a==null?void 0:a.take)||(a==null?void 0:a.per_page)||10;n=n.limit(r);const s=await n.selectAll().execute();let i=s.length;if(a!=null&&a.include_totals){let c=e.selectFrom("clients").select(h.sql`count(*)`.as("count")).where("clients.tenant_id","=",t);if(a!=null&&a.q){const f=a.q.trim().match(/^([a-zA-Z_][a-zA-Z0-9_]*):"?([^"]*)"?$/);if(f&&o.has(f[1])&&f[2]){const p=f[1];c=c.where(p,"=",f[2])}else c=c.where(p=>p.or([p("name","like",`%${a.q}%`),p("client_id","like",`%${a.q}%`)]))}const m=await c.executeTakeFirst();i=Number((m==null?void 0:m.count)||0)}const l=s.map(c=>y({...c,global:!!c.global,is_first_party:!!c.is_first_party,oidc_conformant:!!c.oidc_conformant,auth0_conformant:!!c.auth0_conformant,sso:!!c.sso,sso_disabled:!!c.sso_disabled,cross_origin_authentication:!!c.cross_origin_authentication,custom_login_page_on:!!c.custom_login_page_on,require_pushed_authorization_requests:!!c.require_pushed_authorization_requests,require_proof_of_possession:!!c.require_proof_of_possession,hide_sign_up_disabled_error:!!c.hide_sign_up_disabled_error,callbacks:JSON.parse(c.callbacks),allowed_origins:JSON.parse(c.allowed_origins),web_origins:JSON.parse(c.web_origins),client_aliases:JSON.parse(c.client_aliases),allowed_clients:JSON.parse(c.allowed_clients),connections:JSON.parse(c.connections||"[]"),allowed_logout_urls:JSON.parse(c.allowed_logout_urls),session_transfer:JSON.parse(c.session_transfer),oidc_logout:JSON.parse(c.oidc_logout),grant_types:JSON.parse(c.grant_types),jwt_configuration:JSON.parse(c.jwt_configuration),signing_keys:JSON.parse(c.signing_keys),encryption_key:JSON.parse(c.encryption_key),addons:JSON.parse(c.addons),client_metadata:JSON.parse(c.client_metadata),mobile:JSON.parse(c.mobile),native_social_login:JSON.parse(c.native_social_login),refresh_token:JSON.parse(c.refresh_token),default_organization:JSON.parse(c.default_organization),client_authentication_methods:JSON.parse(c.client_authentication_methods),signed_request_object:JSON.parse(c.signed_request_object),token_quota:JSON.parse(c.token_quota),registration_metadata:c.registration_metadata?JSON.parse(c.registration_metadata):void 0})),d=(a==null?void 0:a.take)||(a==null?void 0:a.per_page)||10,_=a!=null&&a.from?parseInt(a.from,10):a!=null&&a.page?a.page*d:0;return{clients:l,totals:{start:isNaN(_)?0:_,limit:d,length:l.length,total:i}}}}function xa(e){return async(t,a)=>(await e.deleteFrom("clients").where("clients.tenant_id","=",t).where("clients.client_id","=",a).executeTakeFirst()).numDeletedRows>0}function Ta(e){return async(t,a,n)=>{const o={...n,updated_at:new Date().toISOString()};return Ee(n,["global","is_first_party","oidc_conformant","auth0_conformant","sso","sso_disabled","cross_origin_authentication","custom_login_page_on","require_pushed_authorization_requests","require_proof_of_possession","hide_sign_up_disabled_error"],o),W(n,["callbacks","allowed_origins","web_origins","client_aliases","allowed_clients","connections","allowed_logout_urls","session_transfer","oidc_logout","grant_types","jwt_configuration","signing_keys","encryption_key","addons","client_metadata","mobile","native_social_login","refresh_token","default_organization","client_authentication_methods","signed_request_object","token_quota","registration_metadata"],o),(await e.updateTable("clients").set(o).where("clients.tenant_id","=",t).where("clients.client_id","=",a).executeTakeFirst()).numUpdatedRows>0}}function ba(e){return{create:wa(e),get:ya(e),getByClientId:va(e),list:Ca(e),remove:xa(e),update:Ta(e)}}function Na(e){return async(t,a)=>{const n=await e.selectFrom("clients").where("clients.tenant_id","=",t).where("clients.client_id","=",a).select("connections").executeTakeFirst();if(!n)return[];const o=JSON.parse(n.connections||"[]");if(o.length===0)return[];const r=await e.selectFrom("connections").where("connections.tenant_id","=",t).where("connections.id","in",o).selectAll().execute(),s=new Map(r.map(i=>[i.id,de(i)]));return o.map(i=>s.get(i)).filter(i=>i!==void 0)}}function Sa(e){return async(t,a,n)=>(await e.updateTable("clients").set({connections:JSON.stringify(n),updated_at:new Date().toISOString()}).where("clients.tenant_id","=",t).where("clients.client_id","=",a).executeTakeFirst()).numUpdatedRows>0}function Oa(e){return async(t,a)=>{const n=await e.selectFrom("clients").where("clients.tenant_id","=",t).select(["client_id","connections"]).execute(),o=[];for(const r of n)JSON.parse(r.connections||"[]").includes(a)&&o.push(r.client_id);return o}}function ka(e){return async(t,a,n)=>{const o=await e.selectFrom("clients").where("clients.tenant_id","=",t).where("clients.client_id","=",n).select("connections").executeTakeFirst();if(!o)return!1;const r=JSON.parse(o.connections||"[]");return r.includes(a)?!0:(r.push(a),(await e.updateTable("clients").set({connections:JSON.stringify(r),updated_at:new Date().toISOString()}).where("clients.tenant_id","=",t).where("clients.client_id","=",n).executeTakeFirst()).numUpdatedRows>0)}}function $a(e){return async(t,a,n)=>{const o=await e.selectFrom("clients").where("clients.tenant_id","=",t).where("clients.client_id","=",n).select("connections").executeTakeFirst();if(!o)return!1;const r=JSON.parse(o.connections||"[]"),s=r.filter(i=>i!==a);return s.length!==r.length?(await e.updateTable("clients").set({connections:JSON.stringify(s),updated_at:new Date().toISOString()}).where("clients.tenant_id","=",t).where("clients.client_id","=",n).executeTakeFirst()).numUpdatedRows>0:!0}}function Ea(e){return{listByClient:Na(e),updateByClient:Sa(e),listByConnection:Oa(e),addClientToConnection:ka(e),removeClientFromConnection:$a(e)}}function Ia(e){return async(t,a)=>{const n=new Date().toISOString(),o=k.nanoid(),{scope:r,authorization_details_types:s,...i}=a,l={id:o,tenant_id:t,...i,scope:r?JSON.stringify(r):"[]",authorization_details_types:s?JSON.stringify(s):"[]",allow_any_organization:i.allow_any_organization!==void 0?i.allow_any_organization?1:0:void 0,is_system:i.is_system!==void 0?i.is_system?1:0:void 0,created_at:n,updated_at:n};return await e.insertInto("client_grants").values(l).execute(),y({id:o,tenant_id:t,...i,scope:r||[],authorization_details_types:s||[],allow_any_organization:i.allow_any_organization??!1,is_system:i.is_system??!1,created_at:n,updated_at:n})}}function Pa(e){return async(t,a)=>{const n=await e.selectFrom("client_grants").selectAll().where("client_grants.tenant_id","=",t).where("client_grants.id","=",a).executeTakeFirst();if(!n)return null;const o={id:n.id,client_id:n.client_id,audience:n.audience,scope:n.scope?JSON.parse(n.scope):[],organization_usage:n.organization_usage,allow_any_organization:n.allow_any_organization!==void 0?!!n.allow_any_organization:!1,is_system:n.is_system!==void 0?!!n.is_system:!1,subject_type:n.subject_type,authorization_details_types:n.authorization_details_types?JSON.parse(n.authorization_details_types):[],created_at:n.created_at,updated_at:n.updated_at};return y(o)}}function za(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,q:s,sort:i}=a;let l=e.selectFrom("client_grants").where("client_grants.tenant_id","=",t);if(s){const u=s.trim(),f=u.split(/\s+/),p=f.length===1?f[0]:void 0,g=p?p.match(/^(-)?([a-zA-Z_][a-zA-Z0-9_]*):"?([^"]*)"?$/):null,v=g?g[3]:"",b=/^(>=|>|<=|<)/.test(v||"");if(g&&!b&&v){const S=!!g[1],$=g[2],{ref:D}=e.dynamic,C=D(`client_grants.${$}`);if($==="allow_any_organization"){const T=v==="true"?1:0;S?l=l.where(C,"!=",T):l=l.where(C,"=",T)}else S?l=l.where(C,"!=",v):l=l.where(C,"=",v)}else l=O(e,l,u,[])}let d=l;if(i){const{ref:u}=e.dynamic;d=d.orderBy(u(i.sort_by),i.sort_order)}else d=d.orderBy("client_grants.created_at","desc");d=d.limit(o).offset(n*o);const c=(await d.selectAll().execute()).map(u=>{const f={id:u.id,client_id:u.client_id,audience:u.audience,scope:u.scope?JSON.parse(u.scope):[],organization_usage:u.organization_usage,allow_any_organization:u.allow_any_organization!==void 0?!!u.allow_any_organization:!1,is_system:u.is_system!==void 0?!!u.is_system:!1,subject_type:u.subject_type,authorization_details_types:u.authorization_details_types?JSON.parse(u.authorization_details_types):[],created_at:u.created_at,updated_at:u.updated_at};return y(f)});if(!r)return{client_grants:c,start:0,limit:0,length:0};const{count:m}=await l.select(u=>u.fn.countAll().as("count")).executeTakeFirstOrThrow();return{client_grants:c,start:n*o,limit:o,length:E(m)}}}function Da(e){return async(t,a)=>((await e.deleteFrom("client_grants").where("client_grants.tenant_id","=",t).where("client_grants.id","=",a).executeTakeFirst()).numDeletedRows??0n)>0n}function Aa(e){return async(t,a,n)=>{const o=new Date().toISOString(),{scope:r,authorization_details_types:s,...i}=n,l={...i,updated_at:o};return r!==void 0&&(l.scope=JSON.stringify(r)),s!==void 0&&(l.authorization_details_types=JSON.stringify(s)),i.allow_any_organization!==void 0&&(l.allow_any_organization=i.allow_any_organization?1:0),i.is_system!==void 0&&(l.is_system=i.is_system?1:0),((await e.updateTable("client_grants").set(l).where("client_grants.tenant_id","=",t).where("client_grants.id","=",a).executeTakeFirst()).numUpdatedRows??0n)>0n}}function Fa(e){return{create:Ia(e),get:Pa(e),list:za(e),remove:Da(e),update:Aa(e)}}function ja(e){return async(t,a)=>{const n=Date.now();return await e.insertInto("client_registration_tokens").values({id:a.id,tenant_id:t,token_hash:a.token_hash,type:a.type,client_id:a.client_id??null,sub:a.sub??null,constraints:a.constraints?JSON.stringify(a.constraints):null,single_use:a.single_use?1:0,expires_at_ts:x(a.expires_at),created_at_ts:n,used_at_ts:null,revoked_at_ts:null}).execute(),{id:a.id,token_hash:a.token_hash,type:a.type,client_id:a.client_id,sub:a.sub,constraints:a.constraints,single_use:a.single_use,expires_at:a.expires_at,created_at:new Date(n).toISOString()}}}function Ra(e){const t=N.clientRegistrationTokenTypeSchema.safeParse(e);if(!t.success)throw new Error(`Unknown client_registration_tokens.type: ${e}`);return t.data}function qa(e){if(!e)return;let t;try{t=JSON.parse(e)}catch{return}return N.isPlainObject(t)?t:void 0}function ue(e){return{id:e.id,token_hash:e.token_hash,type:Ra(e.type),client_id:e.client_id??void 0,sub:e.sub??void 0,constraints:qa(e.constraints),single_use:!!e.single_use,expires_at:Q(e.expires_at_ts),used_at:Q(e.used_at_ts),revoked_at:Q(e.revoked_at_ts),created_at:j(e.created_at_ts)}}function Ma(e){return async(t,a)=>{const n=await e.selectFrom("client_registration_tokens").where("tenant_id","=",t).where("id","=",a).selectAll().executeTakeFirst();return n?ue(n):null}}function Ja(e){return async(t,a)=>{const n=await e.selectFrom("client_registration_tokens").where("tenant_id","=",t).where("token_hash","=",a).selectAll().executeTakeFirst();return n?ue(n):null}}function La(e){return async(t,a)=>(await e.selectFrom("client_registration_tokens").where("tenant_id","=",t).where("client_id","=",a).orderBy("created_at_ts","desc").selectAll().execute()).map(ue)}function Ua(e){return async(t,a,n)=>(await e.updateTable("client_registration_tokens").set({used_at_ts:x(n)}).where("tenant_id","=",t).where("id","=",a).where("used_at_ts","is",null).executeTakeFirst()).numUpdatedRows>0}function Ba(e){return async(t,a,n)=>(await e.updateTable("client_registration_tokens").set({revoked_at_ts:x(n)}).where("tenant_id","=",t).where("id","=",a).where("revoked_at_ts","is",null).executeTakeFirst()).numUpdatedRows>0}function Ka(e){return async(t,a,n)=>{const o=await e.updateTable("client_registration_tokens").set({revoked_at_ts:x(n)}).where("tenant_id","=",t).where("client_id","=",a).where("revoked_at_ts","is",null).executeTakeFirst();return Number(o.numUpdatedRows)}}function Qa(e){return async(t,a)=>(await e.deleteFrom("client_registration_tokens").where("tenant_id","=",t).where("id","=",a).executeTakeFirst()).numDeletedRows>0}function Wa(e){return{create:ja(e),get:Ma(e),getByHash:Ja(e),listByClient:La(e),markUsed:Ua(e),revoke:Ba(e),revokeByClient:Ka(e),remove:Qa(e)}}function Ha(e){return async(t={})=>{const{page:a=0,per_page:n=100,include_totals:o=!1,sort:r,q:s}=t;let i=e.selectFrom("keys").where(u=>u.or([u("revoked_at",">",new Date().toISOString()),u("revoked_at","is",null)]));s&&(i=O(e,i,s,["kid","tenant_id","connection","fingerprint","thumbprint","type"]));let l=i.select(u=>u.fn.count("kid").as("count"));const d=a*n;i=i.limit(n).offset(d),r&&(i=i.orderBy(r.sort_by,r.sort_order));const _=await i.selectAll().execute();if(!o)return{signingKeys:_,start:0,limit:0,length:0};const c=await l.executeTakeFirst(),m=E((c==null?void 0:c.count)??0);return{signingKeys:_,start:d,limit:n,length:m}}}function Ya(e){return async t=>{await e.insertInto("keys").values({...t,created_at:new Date().toDateString()}).execute()}}function Ga(e){return async(t,a)=>!!(await e.updateTable("keys").set(a).where("kid","=",t).execute()).length}function Va(e){return{create:Ya(e),list:Ha(e),update:Ga(e)}}function Xa(e){return async(t,a)=>{const n={custom_domain_id:a.custom_domain_id||k.nanoid(),status:"pending",primary:!1,...a};return await e.insertInto("custom_domains").values({...n,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),tenant_id:t,primary:n.primary?1:0,domain_metadata:n.domain_metadata?JSON.stringify(n.domain_metadata):void 0}).execute(),n}}function Za(e){return async t=>(await e.selectFrom("custom_domains").where("custom_domains.tenant_id","=",t).selectAll().execute()).map(n=>({...n,primary:n.primary===1,domain_metadata:q(n.domain_metadata,void 0)}))}function en(e){return async(t,a)=>(await e.deleteFrom("custom_domains").where("custom_domains.tenant_id","=",t).where("custom_domains.custom_domain_id","=",a).execute()).length>0}function tn(e){return async(t,a)=>{const n=await e.selectFrom("custom_domains").where("custom_domains.tenant_id","=",t).where("custom_domains.custom_domain_id","=",a).selectAll().executeTakeFirst();return n?{...n,primary:n.primary===1,domain_metadata:q(n.domain_metadata,void 0),verification:q(n.verification,void 0)}:null}}function an(e){return async(t,a,n)=>{const{verification:o,domain_metadata:r,primary:s,...i}=n,l={...i,updated_at:new Date().toISOString(),...s!==void 0&&{primary:s?1:0},...r!==void 0&&{domain_metadata:JSON.stringify(r)},...o!==void 0&&{verification:JSON.stringify(o)}};return(await e.updateTable("custom_domains").set(l).where("custom_domains.tenant_id","=",t).where("custom_domains.custom_domain_id","=",a).execute()).length>0}}function nn(e){return async t=>{const a=await e.selectFrom("custom_domains").where("custom_domains.domain","=",t).selectAll().executeTakeFirst();return a?{...a,primary:a.primary===1,domain_metadata:q(a.domain_metadata,void 0)}:null}}function on(e){return{create:Xa(e),get:tn(e),getByDomain:nn(e),list:Za(e),remove:en(e),update:an(e)}}function rn(e){return async t=>{const[a]=await e.selectFrom("branding").where("branding.tenant_id","=",t).selectAll().execute();if(!a)return null;const{tenant_id:n,colors_primary:o,colors_page_background_type:r,colors_page_background_start:s,colors_page_background_end:i,colors_page_background_angle_dev:l,font_url:d,..._}=a;return y({..._,colors:{primary:o,page_background:{type:r,start:s,end:i,angle_deg:l}},font:d?{url:d}:void 0})}}function sn(e){return async(t,a)=>{var l,d;const{colors:n,font:o,...r}=a,s=n==null?void 0:n.page_background,i=s&&typeof s=="object"?s:void 0;try{await e.insertInto("branding").values({...r,colors_primary:n==null?void 0:n.primary,colors_page_background_type:i==null?void 0:i.type,colors_page_background_start:i==null?void 0:i.start,colors_page_background_end:i==null?void 0:i.end,colors_page_background_angle_dev:i==null?void 0:i.angle_deg,font_url:(l=a.font)==null?void 0:l.url,tenant_id:t}).execute()}catch{await e.updateTable("branding").set({...r,colors_primary:n==null?void 0:n.primary,colors_page_background_type:i==null?void 0:i.type,colors_page_background_start:i==null?void 0:i.start,colors_page_background_end:i==null?void 0:i.end,colors_page_background_angle_dev:i==null?void 0:i.angle_deg,font_url:(d=a.font)==null?void 0:d.url}).where("tenant_id","=",t).execute()}}}function cn(e){return{get:rn(e),set:sn(e)}}function ln(e){return async t=>{const a=await e.selectFrom("universal_login_templates").select(["body"]).where("tenant_id","=",t).executeTakeFirst();return a?{body:a.body}:null}}function dn(e){return async(t,a)=>{const n=Date.now();try{await e.insertInto("universal_login_templates").values({tenant_id:t,body:a.body,created_at_ts:n,updated_at_ts:n}).execute()}catch{await e.updateTable("universal_login_templates").set({body:a.body,updated_at_ts:n}).where("tenant_id","=",t).execute()}}}function un(e){return async t=>{await e.deleteFrom("universal_login_templates").where("tenant_id","=",t).execute()}}function _n(e){return{get:ln(e),set:dn(e),delete:un(e)}}function mn(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,sort:s,q:i}=a;let l=e.selectFrom("hooks").where("hooks.tenant_id","=",t);if(i&&(l=O(e,l,i,["url","form_id","template_id","code_id"])),s!=null&&s.sort_by){const{ref:u}=e.dynamic;l=l.orderBy(u(s.sort_by),s.sort_order)}else l=l.orderBy("priority","desc").orderBy("created_at_ts","asc");const c=(await l.offset(n*o).limit(o).selectAll().execute()).map(u=>{const{tenant_id:f,enabled:p,synchronous:g,created_at_ts:v,updated_at_ts:b,metadata:S,...$}=u,D=F({created_at_ts:v,updated_at_ts:b},["created_at_ts","updated_at_ts"]);return y({...$,...D,enabled:!!p,synchronous:!!g,metadata:ke(S)})});if(!r)return{hooks:c,start:0,limit:0,length:0};const{count:m}=await l.select(u=>u.fn.countAll().as("count")).executeTakeFirstOrThrow();return{hooks:c,start:n*o,limit:o,length:E(m)}}}function hn(e){return async(t,a)=>{const n=await e.selectFrom("hooks").where("hooks.tenant_id","=",t).where("hooks.hook_id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:o,created_at_ts:r,updated_at_ts:s,metadata:i,...l}=n,d=F({created_at_ts:r,updated_at_ts:s},["created_at_ts","updated_at_ts"]);return y({...l,...d,enabled:!!l.enabled,synchronous:!!l.synchronous,metadata:ke(i)})}}function pn(e){return async(t,a)=>(await e.deleteFrom("hooks").where("hooks.tenant_id","=",t).where("hooks.hook_id","=",a).executeTakeFirst()).numDeletedRows>0}function fn(e){return async(t,a)=>{const n=Date.now(),o=a.hook_id||ot(),{hook_id:r,enabled:s,synchronous:i,metadata:l,...d}=a;return await e.insertInto("hooks").values({...d,hook_id:o,tenant_id:t,enabled:s?1:0,synchronous:i?1:0,metadata:l?JSON.stringify(l):null,created_at_ts:n,updated_at_ts:n}).execute(),{...d,hook_id:o,enabled:s??!1,synchronous:i??!1,...l?{metadata:l}:{},created_at:new Date(n).toISOString(),updated_at:new Date(n).toISOString()}}}function gn(e){return async(t,a,n)=>{const{hook_id:o,metadata:r,...s}=n,i={...s,updated_at_ts:Date.now(),enabled:n.enabled!==void 0?n.enabled?1:0:void 0,synchronous:n.synchronous!==void 0?n.synchronous?1:0:void 0,...r!==void 0?{metadata:r===null?null:JSON.stringify(r)}:{}};return await e.updateTable("hooks").set(i).where("hooks.hook_id","=",a).where("hooks.tenant_id","=",t).execute(),!0}}function wn(e){return{create:fn(e),get:hn(e),list:mn(e),update:gn(e),remove:pn(e)}}function yn(e){return async(t,a)=>{const n=Date.now(),o=st();return await e.insertInto("hook_code").values({id:o,tenant_id:t,code:a.code,secrets:a.secrets?JSON.stringify(a.secrets):null,created_at_ts:n,updated_at_ts:n}).execute(),{id:o,tenant_id:t,code:a.code,secrets:a.secrets,created_at:new Date(n).toISOString(),updated_at:new Date(n).toISOString()}}}function vn(e){return async(t,a)=>{const n=await e.selectFrom("hook_code").where("hook_code.tenant_id","=",t).where("hook_code.id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{created_at_ts:o,updated_at_ts:r,secrets:s,...i}=n,l=F({created_at_ts:o,updated_at_ts:r},["created_at_ts","updated_at_ts"]);return{...i,...l,secrets:s?(()=>{try{return JSON.parse(s)}catch{console.warn(`Failed to parse secrets for hook_code ${a}`);return}})():void 0}}}function Cn(e){return async(t,a,n)=>{const o={updated_at_ts:Date.now()};return n.code!==void 0&&(o.code=n.code),n.secrets!==void 0&&(o.secrets=JSON.stringify(n.secrets)),(await e.updateTable("hook_code").set(o).where("hook_code.id","=",a).where("hook_code.tenant_id","=",t).executeTakeFirst()).numUpdatedRows>0}}function xn(e){return async(t,a)=>(await e.deleteFrom("hook_code").where("hook_code.tenant_id","=",t).where("hook_code.id","=",a).executeTakeFirst()).numDeletedRows>0}function Tn(e){return{create:yn(e),get:vn(e),update:Cn(e),remove:xn(e)}}function bn(e){return async(t,a,n)=>{const o={themeId:n||k.nanoid(),created_at:new Date().toISOString(),updated_at:new Date().toISOString(),...a},r={...o,tenant_id:t};return await e.insertInto("themes").values(B(r)).execute(),o}}function Nn(e){return async(t,a)=>(await e.deleteFrom("themes").where("themes.tenant_id","=",t).where("themes.themeId","=",a).executeTakeFirst()).numDeletedRows>0}function Sn(e){return async(t,a)=>{const n=await e.selectFrom("themes").where("themes.tenant_id","=",t).where("themes.themeId","=",a).selectAll().executeTakeFirst();if(!n)return null;const o={...n,borders_show_widget_shadow:!!n.borders_show_widget_shadow,fonts_body_text_bold:!!n.fonts_body_text_bold,fonts_buttons_text_bold:!!n.fonts_buttons_text_bold,fonts_input_labels_bold:!!n.fonts_input_labels_bold,fonts_links_bold:!!n.fonts_links_bold,fonts_subtitle_bold:!!n.fonts_subtitle_bold,fonts_title_bold:!!n.fonts_title_bold};return y(Oe(o,["widget","colors","borders","fonts","page_background"]))}}function On(e){return async(t,a,n)=>{const{themeId:o,...r}=n,s=B({...r,updated_at:new Date().toISOString()});return await e.updateTable("themes").set(s).where("themes.themeId","=",a).where("themes.tenant_id","=",t).execute(),!0}}function kn(e){return{create:bn(e),get:Sn(e),remove:Nn(e),update:On(e)}}function $n(e){return async(t,a)=>{const n=await e.selectFrom("login_sessions").where("login_sessions.id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{created_at_ts:o,updated_at_ts:r,expires_at_ts:s,auth_params:i,...l}=n,d=F({created_at_ts:o,updated_at_ts:r,expires_at_ts:s},["created_at_ts","updated_at_ts","expires_at_ts"]),_=Oe(y({...l,...d,state:n.state||N.LoginSessionState.PENDING,state_data:n.state_data,failure_reason:n.failure_reason}),["auth_strategy"]);return _.authParams=typeof i=="string"&&i.length>0?JSON.parse(i):{},N.loginSessionSchema.parse(_)}}const _e="0123456789ABCDEFGHJKMNPQRSTVWXYZ",ie=_e.length,En=10,ge=16;function In(e){let t="";for(let a=En;a>0;a--)t=_e.charAt(e%ie)+t,e=Math.floor(e/ie);return t}function Pn(){const e=new Uint8Array(ge);crypto.getRandomValues(e);let t="";for(let a=0;a<ge;a++)t+=_e.charAt(e[a]%ie);return t}function De(){return In(Date.now())+Pn()}function zn(e){return async(t,a)=>{var d;const n=le(),o={id:De(),...a,authorization_url:(d=a.authorization_url)==null?void 0:d.slice(0,1024),created_at:n,updated_at:n,state:a.state||N.LoginSessionState.PENDING,state_data:a.state_data,failure_reason:a.failure_reason},{authParams:r,...s}=o,i=Date.now(),l=B(s);return delete l.created_at,delete l.updated_at,delete l.expires_at,await e.insertInto("login_sessions").values({...l,tenant_id:t,auth_params:JSON.stringify(r),created_at_ts:i,updated_at_ts:i,expires_at_ts:a.expires_at?new Date(a.expires_at).getTime():i+1e3*60*60*24}).execute(),o}}function Dn(e){return async(t,a,n)=>{const{created_at:o,updated_at:r,expires_at:s,authParams:i,...l}=n;let d={};if(i!==void 0){const m=await e.selectFrom("login_sessions").where("login_sessions.id","=",a).where("login_sessions.tenant_id","=",t).select(["auth_params"]).executeTakeFirst(),u=m==null?void 0:m.auth_params,f=typeof u=="string"&&u.length>0?JSON.parse(u):{};d={auth_params:JSON.stringify({...f,...i})}}const _=B(l);return delete _.created_at_ts,delete _.updated_at_ts,delete _.expires_at_ts,delete _.id,delete _.tenant_id,(await e.updateTable("login_sessions").set({..._,...d,updated_at_ts:Date.now(),...s!==void 0?{expires_at_ts:x(s)}:{}}).where("login_sessions.id","=",a).where("login_sessions.tenant_id","=",t).execute()).length===1}}function An(e){return async(t,a)=>(await e.deleteFrom("login_sessions").where("login_sessions.tenant_id","=",t).where("login_sessions.id","=",a).execute()).length>0}function Fn(e){return{create:zn(e),get:$n(e),update:Dn(e),remove:An(e)}}function jn(e){return async t=>{const[a]=await e.selectFrom("prompt_settings").where("prompt_settings.tenant_id","=",t).selectAll().execute();return y({identifier_first:!!(a!=null&&a.identifier_first),password_first:!!(a!=null&&a.password_first),webauthn_platform_first_factor:!!(a!=null&&a.webauthn_platform_first_factor),universal_login_experience:(a==null?void 0:a.universal_login_experience)||"new"})}}function we(e){return y({...e,webauthn_platform_first_factor:e.webauthn_platform_first_factor?!!e.webauthn_platform_first_factor:void 0,identifier_first:e.identifier_first?!!e.identifier_first:void 0,password_first:e.password_first?!!e.password_first:void 0,universal_login_experience:e.universal_login_experience})}function Rn(e){return async(t,a)=>{try{const n=N.promptSettingSchema.parse(a);await e.insertInto("prompt_settings").values({...we(n),tenant_id:t}).execute()}catch{await e.updateTable("prompt_settings").set(we(a)).where("tenant_id","=",t).execute()}}}function qn(e){return{get:jn(e),set:Rn(e)}}function Mn(e){return async t=>{const[a]=await e.selectFrom("email_providers").where("email_providers.tenant_id","=",t).selectAll().execute();if(!a)return null;const{tenant_id:n,credentials:o,settings:r,enabled:s,...i}=a;return y({...i,credentials:JSON.parse(o),settings:JSON.parse(r),enabled:!!s})}}function Jn(e){return async(t,a)=>{const{credentials:n,settings:o,enabled:r,...s}=a;await e.updateTable("email_providers").set({...s,credentials:n?JSON.stringify(n):void 0,settings:o?JSON.stringify(o):void 0,enabled:r!==void 0?r?1:0:void 0}).where("tenant_id","=",t).execute()}}function Ln(e){return async(t,a)=>{const{credentials:n,settings:o,enabled:r,...s}=a;await e.insertInto("email_providers").values({...s,enabled:r?1:0,credentials:JSON.stringify(n),settings:JSON.stringify(o),tenant_id:t,created_at:new Date().toISOString(),updated_at:new Date().toISOString()}).execute()}}function Un(e){return async t=>{await e.deleteFrom("email_providers").where("tenant_id","=",t).execute()}}function Bn(e){return{get:Mn(e),create:Ln(e),update:Jn(e),remove:Un(e)}}function Ae(e){const t={template:e.template,body:e.body,from:e.from,subject:e.subject,syntax:e.syntax,includeEmailInRedirect:!!e.include_email_in_redirect,enabled:!!e.enabled};return e.result_url!==null&&e.result_url!==void 0&&(t.resultUrl=e.result_url),e.url_lifetime_in_seconds!==null&&e.url_lifetime_in_seconds!==void 0&&(t.urlLifetimeInSeconds=e.url_lifetime_in_seconds),t}function Kn(e){return async(t,a)=>{const n=await e.selectFrom("email_templates").where("tenant_id","=",t).where("template","=",a).selectAll().executeTakeFirst();return n?N.emailTemplateSchema.parse(Ae(n)):null}}function Qn(e){return async t=>(await e.selectFrom("email_templates").where("tenant_id","=",t).orderBy("template","asc").selectAll().execute()).map(n=>N.emailTemplateSchema.parse(Ae(n)))}function Wn(e){return async(t,a)=>{const n=new Date().toISOString();return await e.insertInto("email_templates").values({tenant_id:t,template:a.template,body:a.body,from:a.from,subject:a.subject,syntax:a.syntax,result_url:a.resultUrl??null,url_lifetime_in_seconds:a.urlLifetimeInSeconds??null,include_email_in_redirect:a.includeEmailInRedirect?1:0,enabled:a.enabled?1:0,created_at:n,updated_at:n}).execute(),a}}function Hn(e){return async(t,a,n)=>{const o={};if(n.body!==void 0&&(o.body=n.body),n.from!==void 0&&(o.from=n.from),n.subject!==void 0&&(o.subject=n.subject),n.syntax!==void 0&&(o.syntax=n.syntax),n.resultUrl!==void 0&&(o.result_url=n.resultUrl),n.urlLifetimeInSeconds!==void 0&&(o.url_lifetime_in_seconds=n.urlLifetimeInSeconds),n.includeEmailInRedirect!==void 0&&(o.include_email_in_redirect=n.includeEmailInRedirect?1:0),n.enabled!==void 0&&(o.enabled=n.enabled?1:0),Object.keys(o).length===0)return await e.selectFrom("email_templates").where("tenant_id","=",t).where("template","=",a).select("template").executeTakeFirst()!==void 0;o.updated_at=new Date().toISOString();const r=await e.updateTable("email_templates").set(o).where("tenant_id","=",t).where("template","=",a).executeTakeFirst();return Number(r.numUpdatedRows??0)>0}}function Yn(e){return async(t,a)=>{const n=await e.deleteFrom("email_templates").where("tenant_id","=",t).where("template","=",a).executeTakeFirst();return Number(n.numDeletedRows??0)>0}}function Gn(e){return{get:Kn(e),list:Qn(e),create:Wn(e),update:Hn(e),remove:Yn(e)}}function Vn(e){return async(t,a)=>{const n=await e.selectFrom("refresh_tokens").where("refresh_tokens.tenant_id","=",t).where("refresh_tokens.id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:o,created_at_ts:r,expires_at_ts:s,idle_expires_at_ts:i,last_exchanged_at_ts:l,revoked_at_ts:d,rotated_at_ts:_,...c}=n,m=F({created_at_ts:r,expires_at_ts:s,idle_expires_at_ts:i,last_exchanged_at_ts:l,revoked_at_ts:d,rotated_at_ts:_},["created_at_ts"],["expires_at_ts","idle_expires_at_ts","last_exchanged_at_ts","revoked_at_ts","rotated_at_ts"]);return{...c,...m,rotating:!!n.rotating,device:n.device?JSON.parse(n.device):{},resource_servers:n.resource_servers?JSON.parse(n.resource_servers):[]}}}function Xn(e){return async(t,a)=>{const n=await e.selectFrom("refresh_tokens").where("refresh_tokens.tenant_id","=",t).where("refresh_tokens.token_lookup","=",a).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:o,created_at_ts:r,expires_at_ts:s,idle_expires_at_ts:i,last_exchanged_at_ts:l,revoked_at_ts:d,rotated_at_ts:_,...c}=n,m=F({created_at_ts:r,expires_at_ts:s,idle_expires_at_ts:i,last_exchanged_at_ts:l,revoked_at_ts:d,rotated_at_ts:_},["created_at_ts"],["expires_at_ts","idle_expires_at_ts","last_exchanged_at_ts","revoked_at_ts","rotated_at_ts"]);return{...c,...m,rotating:!!n.rotating,device:n.device?JSON.parse(n.device):{},resource_servers:n.resource_servers?JSON.parse(n.resource_servers):[]}}}function Zn(e){return async(t,a)=>{const n=le(),o={...a,created_at:n},{expires_at:r,idle_expires_at:s,last_exchanged_at:i,rotated_at:l,device:d,resource_servers:_,rotating:c,...m}=a,u=Date.now(),f=x(r),p=s?x(s):null,g=Math.max(f??0,p??0);return await e.transaction().execute(async v=>{await v.insertInto("refresh_tokens").values({...m,tenant_id:t,rotating:c?1:0,device:JSON.stringify(d),resource_servers:JSON.stringify(_),created_at_ts:u,expires_at_ts:f,idle_expires_at_ts:p,last_exchanged_at_ts:i?x(i):null,rotated_at_ts:l?x(l):null}).execute(),g>0&&a.login_id&&await v.updateTable("login_sessions").set({expires_at_ts:g,updated_at_ts:u}).where("tenant_id","=",t).where("id","=",a.login_id).where("expires_at_ts","<",g).execute()}),{...a,...o}}}function eo(e){return async(t,a)=>!!(await e.deleteFrom("refresh_tokens").where("tenant_id","=",t).where("refresh_tokens.id","=",a).execute()).length}function to(e){return async(t,a,n)=>{const o=x(n),r=await e.updateTable("refresh_tokens").set({revoked_at_ts:o}).where("tenant_id","=",t).where("login_id","=",a).where("revoked_at_ts","is",null).executeTakeFirst();return Number(r.numUpdatedRows??0)}}function ao(e){return async(t,a,n)=>{const o=x(n),r=await e.updateTable("refresh_tokens").set({revoked_at_ts:o}).where("tenant_id","=",t).where("family_id","=",a).where("revoked_at_ts","is",null).executeTakeFirst();return Number(r.numUpdatedRows??0)}}function no(e){return async(t,a,n,o)=>{const{created_at:r,expires_at:s,idle_expires_at:i,last_exchanged_at:l,revoked_at:d,rotated_at:_,device:c,resource_servers:m,rotating:u,...f}=n,p={...f,device:c?JSON.stringify(c):void 0,resource_servers:m?JSON.stringify(m):void 0,rotating:u!==void 0?u?1:0:void 0,expires_at_ts:s!==void 0?x(s):void 0,idle_expires_at_ts:i!==void 0?x(i):void 0,last_exchanged_at_ts:l!==void 0?x(l):void 0,revoked_at_ts:d!==void 0?x(d):void 0,rotated_at_ts:_!==void 0?x(_):void 0},g=o==null?void 0:o.loginSessionBump,v=g?x(g.expires_at):null,b=await e.updateTable("refresh_tokens").set(p).where("tenant_id","=",t).where("refresh_tokens.id","=",a).executeTakeFirst();return g!=null&&g.login_id&&v&&v>0&&await e.updateTable("login_sessions").set({expires_at_ts:v,updated_at_ts:Date.now()}).where("tenant_id","=",t).where("id","=",g.login_id).where("expires_at_ts","<",v).execute().catch(()=>{}),((b==null?void 0:b.numUpdatedRows)??0n)>0n}}function oo(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,sort:s,q:i}=a;let l=e.selectFrom("refresh_tokens").where("refresh_tokens.tenant_id","=",t);i&&(l=O(e,l,i,["token","login_id"]));let d=l;if(s&&s.sort_by){const{ref:f}=e.dynamic;d=d.orderBy(f(s.sort_by),s.sort_order)}d=d.offset(n*o).limit(o);const c=(await d.selectAll().execute()).map(f=>{const{tenant_id:p,created_at_ts:g,expires_at_ts:v,idle_expires_at_ts:b,last_exchanged_at_ts:S,revoked_at_ts:$,rotated_at_ts:D,...C}=f,T=F({created_at_ts:g,expires_at_ts:v,idle_expires_at_ts:b,last_exchanged_at_ts:S,revoked_at_ts:$,rotated_at_ts:D},["created_at_ts"],["expires_at_ts","idle_expires_at_ts","last_exchanged_at_ts","revoked_at_ts","rotated_at_ts"]);return{...C,...T,rotating:!!f.rotating,device:f.device?JSON.parse(f.device):{},resource_servers:f.resource_servers?JSON.parse(f.resource_servers):[]}});if(!r)return{refresh_tokens:c,start:0,limit:0,length:0};const{count:m}=await l.select(f=>f.fn.countAll().as("count")).executeTakeFirstOrThrow(),u=E(m);return{refresh_tokens:c,start:n*o,limit:o,length:u}}}function ro(e){return{create:Zn(e),get:Vn(e),getByLookup:Xn(e),list:oo(e),remove:eo(e),revokeByLoginSession:to(e),revokeFamily:ao(e),update:no(e)}}const so=7*24*60*60*1e3;function io(e){return async t=>{var i,l,d;const{tenant_id:a,user_id:n}=t||{},r=Date.now()-so,s=1e3;try{let _=0;for(;;){let u=e.deleteFrom("refresh_tokens").where(g=>g.or([g("expires_at_ts","<",r),g("idle_expires_at_ts","<",r)]));a&&(u=u.where("tenant_id","=",a)),n&&(u=u.where("user_id","=",n));const f=await u.limit(s).execute(),p=Number(((i=f[0])==null?void 0:i.numDeletedRows)??0);if(_+=p,p<s)break}let c=0;for(;;){let u=e.deleteFrom("sessions").where(g=>g.or([g("expires_at_ts","<",r),g("idle_expires_at_ts","<",r)]));a&&(u=u.where("tenant_id","=",a)),n&&(u=u.where("user_id","=",n));const f=await u.limit(s).execute(),p=Number(((l=f[0])==null?void 0:l.numDeletedRows)??0);if(c+=p,p<s)break}let m=0;for(;;){let u=e.deleteFrom("login_sessions").where("expires_at_ts","<",r);a&&(u=u.where("tenant_id","=",a)),n&&(u=u.where("user_id","=",n));const f=await u.limit(s).execute(),p=Number(((d=f[0])==null?void 0:d.numDeletedRows)??0);if(m+=p,p<s)break}(_>0||c>0||m>0)&&console.log(`Session cleanup: deleted ${_} refresh_tokens, ${c} sessions, ${m} login_sessions`)}catch(_){console.error("Error during session cleanup:",_)}}}function co(e){return async(t,a)=>{const n=N.formSchema.parse({id:k.nanoid(),...a,created_at:new Date().toISOString(),updated_at:new Date().toISOString()});return await e.insertInto("forms").values({...n,nodes:JSON.stringify(n.nodes||[]),start:JSON.stringify(n.start||{}),ending:JSON.stringify(n.ending||{}),tenant_id:t}).execute(),N.formSchema.parse(n)}}function lo(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,q:s}=a;let i=e.selectFrom("forms").where("tenant_id","=",t);s&&(i=O(e,i,s,[]));const _=(await i.offset(n*o).limit(o).selectAll().execute()).map(m=>{const u={...m};if(typeof u.nodes=="string")try{u.nodes=JSON.parse(u.nodes)}catch{}if(typeof u.start=="string")try{u.start=JSON.parse(u.start)}catch{}if(typeof u.ending=="string")try{u.ending=JSON.parse(u.ending)}catch{}return N.formSchema.parse(y(u))});if(!r)return{forms:_,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{forms:_,start:n*o,limit:o,length:E(c)}}}function uo(e){return async(t,a)=>{const{numDeletedRows:n}=await e.deleteFrom("forms").where("id","=",a).where("tenant_id","=",t).executeTakeFirst();return n>0}}function _o(e){return async(t,a)=>{const n=await e.selectFrom("forms").selectAll().where("forms.id","=",a).where("tenant_id","=",t).executeTakeFirst();if(!n)return null;const o={...n};if(typeof o.nodes=="string")try{o.nodes=JSON.parse(o.nodes)}catch{}if(typeof o.start=="string")try{o.start=JSON.parse(o.start)}catch{}if(typeof o.ending=="string")try{o.ending=JSON.parse(o.ending)}catch{}return N.formSchema.parse(y(o))}}function mo(e){return async(t,a,n)=>{const o={...n,updated_at:new Date().toISOString()};W(n,["nodes","start","ending"],o);const{numUpdatedRows:r}=await e.updateTable("forms").set(o).where("id","=",a).where("tenant_id","=",t).executeTakeFirst();return r>0}}function ho(e){return{create:co(e),get:_o(e),list:lo(e),remove:uo(e),update:mo(e)}}function po(e){return async(t,a)=>{const n=new Date().toISOString(),o={id:rt(),...a,created_at:n,updated_at:n},r=N.resourceServerSchema.parse(o),{verificationKey:s,scopes:i,options:l,skip_consent_for_verifiable_first_party_clients:d,allow_offline_access:_,is_system:c,metadata:m,...u}=r,f={...u,tenant_id:t,scopes:i?JSON.stringify(i):"[]",options:l?JSON.stringify(l):"{}",skip_consent_for_verifiable_first_party_clients:d?1:0,allow_offline_access:_?1:0,is_system:c?1:0,metadata:m?JSON.stringify(m):void 0,verification_key:s,created_at:n,updated_at:n};return await e.insertInto("resource_servers").values(f).execute(),y(r)}}function fo(e){return async(t,a)=>{const n=await e.selectFrom("resource_servers").selectAll().where("tenant_id","=",t).where("id","=",a).executeTakeFirst();if(!n)return null;const o=n,{verification_key:r,scopes:s,options:i,skip_consent_for_verifiable_first_party_clients:l,allow_offline_access:d,is_system:_,metadata:c,...m}=o,u=y({...m,scopes:s?JSON.parse(s):[],options:i?JSON.parse(i):{},skip_consent_for_verifiable_first_party_clients:!!l,allow_offline_access:!!d,is_system:_?!0:void 0,metadata:c?JSON.parse(c):void 0,verificationKey:r});return u.token_lifetime??(u.token_lifetime=86400),u.token_lifetime_for_web??(u.token_lifetime_for_web=7200),u}}function go(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1,q:s}=a;let i=e.selectFrom("resource_servers").where("resource_servers.tenant_id","=",t);if(s){const m=s.trim(),u=m.split(/\s+/),f=u.length===1?u[0]:void 0,p=f?f.match(/^(-)?(name|identifier):(.*)$/):null,g=p?p[3]:"",v=/^(>=|>|<=|<)/.test(g||"");if(p&&!v){const b=!!p[1],S=p[2]==="name"?"resource_servers.name":"resource_servers.identifier";i=b?i.where(S,"not like",`%${g}%`):i.where(S,"like",`%${g}%`)}else i=O(e,i,m,["resource_servers.name","resource_servers.identifier"])}const _=(await i.offset(n*o).limit(o).selectAll().execute()).map(m=>{const u=m,{verification_key:f,scopes:p,options:g,skip_consent_for_verifiable_first_party_clients:v,allow_offline_access:b,is_system:S,metadata:$,...D}=u,C=y({...D,scopes:p?JSON.parse(p):[],options:g?JSON.parse(g):{},skip_consent_for_verifiable_first_party_clients:!!v,allow_offline_access:!!b,is_system:S?!0:void 0,metadata:$?JSON.parse($):void 0,verificationKey:f});return C.token_lifetime??(C.token_lifetime=86400),C.token_lifetime_for_web??(C.token_lifetime_for_web=7200),C});if(!r)return{resource_servers:_,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{resource_servers:_,start:n*o,limit:o,length:E(c)}}}function wo(e){return async(t,a)=>{const n=await e.deleteFrom("resource_servers").where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return Number(n.numDeletedRows)>0}}function yo(e){return async(t,a,n)=>{const{verificationKey:o,scopes:r,options:s,skip_consent_for_verifiable_first_party_clients:i,allow_offline_access:l,is_system:d,metadata:_,...c}=n,m={...c,updated_at:new Date().toISOString()};if(o!==void 0&&(m.verification_key=o),r!==void 0&&(m.scopes=JSON.stringify(r)),s!==void 0){const f=await e.selectFrom("resource_servers").select("options").where("tenant_id","=",t).where("id","=",a).executeTakeFirst(),g={...f!=null&&f.options?JSON.parse(f.options):{},...s};m.options=JSON.stringify(g)}_!==void 0&&(m.metadata=JSON.stringify(_)),i!==void 0&&(m.skip_consent_for_verifiable_first_party_clients=i?1:0),l!==void 0&&(m.allow_offline_access=l?1:0),d!==void 0&&(m.is_system=d?1:0);const u=await e.updateTable("resource_servers").set(m).where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return Number(u.numUpdatedRows)>0}}function vo(e){return{create:po(e),get:fo(e),list:go(e),remove:wo(e),update:yo(e)}}function Co(e){return async(t,a)=>{const n=new Date().toISOString(),o=a.id||k.nanoid(),{is_system:r,id:s,metadata:i,...l}=a,d={id:o,...l,tenant_id:t,is_system:r?1:0,metadata:i?JSON.stringify(i):void 0,created_at:n,updated_at:n};return await e.insertInto("roles").values(d).execute(),{id:o,...l,is_system:r?!0:void 0,metadata:i,created_at:n,updated_at:n}}}function xo(e){return async(t,a)=>{const n=await e.selectFrom("roles").selectAll().where("roles.tenant_id","=",t).where("roles.id","=",a).executeTakeFirst();if(!n)return null;const o=n,{is_system:r,tenant_id:s,metadata:i,...l}=o;return{...l,is_system:r?!0:void 0,metadata:i?JSON.parse(i):void 0}}}function To(e){return async(t,a)=>{let n=e.selectFrom("roles").where("roles.tenant_id","=",t);const{page:o=0,per_page:r=50,include_totals:s=!1}=a;a.q&&(n=O(e,n,a.q,["name"]));const d=(await n.offset(o*r).limit(r).selectAll().execute()).map(c=>{const m=c,{is_system:u,tenant_id:f,metadata:p,...g}=m;return{...g,is_system:u?!0:void 0,metadata:p?JSON.parse(p):void 0}});if(!s)return{roles:d,start:o*r,limit:r,length:d.length};const{count:_}=await n.select(c=>c.fn.countAll().as("count")).executeTakeFirstOrThrow();return{roles:d,start:o*r,limit:r,length:E(_)}}}function bo(e){return async(t,a,n)=>{const{is_system:o,metadata:r,...s}=n,i={...s,is_system:o!==void 0?o?1:0:void 0,metadata:r!==void 0?JSON.stringify(r):void 0,updated_at:new Date().toISOString()},l=await e.updateTable("roles").set(i).where("roles.tenant_id","=",t).where("roles.id","=",a).executeTakeFirst();return Number(l.numUpdatedRows)>0}}function No(e){return async(t,a)=>{const n=await e.deleteFrom("roles").where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return Number(n.numDeletedRows)>0}}function So(e){return{create:Co(e),get:xo(e),list:To(e),update:bo(e),remove:No(e)}}function Oo(e){return async(t,a,n)=>{if(n.length===0)return!0;const o=new Date().toISOString();try{for(const r of n){if(r.role_id!==a)throw new Error(`Permission role_id ${r.role_id} does not match expected role_id ${a}`);const s={tenant_id:t,role_id:r.role_id,resource_server_identifier:r.resource_server_identifier,permission_name:r.permission_name,created_at:o};try{await e.insertInto("role_permissions").values(s).execute()}catch(i){if(i.code==="SQLITE_CONSTRAINT_PRIMARYKEY"||i.code==="SQLITE_CONSTRAINT_UNIQUE"||i.code==="ER_DUP_ENTRY")continue;throw i}}return!0}catch(r){return console.error("Error assigning role permissions:",r),!1}}}function ko(e){return async(t,a,n)=>{if(n.length===0)return!0;try{return(await Promise.all(n.map(r=>e.deleteFrom("role_permissions").where("tenant_id","=",t).where("role_id","=",a).where("resource_server_identifier","=",r.resource_server_identifier).where("permission_name","=",r.permission_name).executeTakeFirst()))).some(r=>Number(r.numDeletedRows)>0)}catch(o){return console.error("Error removing role permissions:",o),!1}}}function $o(e){return async(t,a,n={})=>{const{page:o=0,per_page:r=50,include_totals:s=!1}=n;let i=e.selectFrom("role_permissions").leftJoin("resource_servers",c=>c.onRef("role_permissions.tenant_id","=","resource_servers.tenant_id").onRef("role_permissions.resource_server_identifier","=","resource_servers.id")).select(["role_permissions.role_id","role_permissions.resource_server_identifier","role_permissions.permission_name","role_permissions.created_at","resource_servers.name as resource_server_name"]).where("role_permissions.tenant_id","=",t).where("role_permissions.role_id","=",a);const _=(await i.offset(o*r).limit(r).execute()).map(c=>({role_id:c.role_id,resource_server_identifier:c.resource_server_identifier,resource_server_name:c.resource_server_name||c.resource_server_identifier,permission_name:c.permission_name,description:null,created_at:c.created_at}));return s&&await i.select(c=>c.fn.countAll().as("count")).executeTakeFirstOrThrow(),_}}function Eo(e){return{assign:Oo(e),remove:ko(e),list:$o(e)}}function Io(e){return async(t,a,n,o)=>{const r=new Date().toISOString();try{const s={tenant_id:t,user_id:a,resource_server_identifier:n.resource_server_identifier,permission_name:n.permission_name,organization_id:o||n.organization_id||"",created_at:r};return await e.insertInto("user_permissions").values(s).execute(),!0}catch(s){return s.code==="SQLITE_CONSTRAINT_PRIMARYKEY"||s.code==="SQLITE_CONSTRAINT_UNIQUE"||s.code==="SQLITE_CONSTRAINT"||s.code==="ER_DUP_ENTRY"||s.message&&s.message.includes("UNIQUE constraint failed")||s.message&&s.message.includes("PRIMARY KEY constraint failed")?!0:(console.error("Error creating user permission:",s),!1)}}}function Po(e){return async(t,a,n,o)=>{try{let r=e.deleteFrom("user_permissions").where("tenant_id","=",t).where("user_id","=",a).where("resource_server_identifier","=",n.resource_server_identifier).where("permission_name","=",n.permission_name);return o!==void 0?r=r.where("organization_id","=",o):r=r.where("organization_id","=",""),await r.execute(),!0}catch(r){return console.error("Error removing user permission:",r),!1}}}function zo(e){return async(t,a,n,o)=>{let r=e.selectFrom("user_permissions").leftJoin("resource_servers",i=>i.onRef("user_permissions.tenant_id","=","resource_servers.tenant_id").onRef("user_permissions.resource_server_identifier","=","resource_servers.id")).select(["user_permissions.resource_server_identifier","user_permissions.permission_name","resource_servers.name as resource_server_name","user_permissions.user_id","user_permissions.created_at","user_permissions.organization_id"]).where("user_permissions.tenant_id","=",t).where("user_permissions.user_id","=",a);return o!==void 0&&(r=r.where("user_permissions.organization_id","=",o)),(await r.execute()).map(i=>({resource_server_identifier:i.resource_server_identifier,permission_name:i.permission_name,description:null,resource_server_name:i.resource_server_name||i.resource_server_identifier,user_id:i.user_id,created_at:i.created_at,organization_id:i.organization_id===""?void 0:i.organization_id}))}}function Do(e){return{create:Io(e),remove:Po(e),list:zo(e)}}function Ao(e){const t=Do(e);return{create:(a,n,o,r)=>t.create(a,n,o,r),remove:(a,n,o,r)=>t.remove(a,n,o,r),list:(a,n,o,r)=>t.list(a,n,o,r)}}function Fo(e){return async(t,a,n,o)=>{let r=e.selectFrom("user_roles as ur").innerJoin("roles as r",i=>i.onRef("ur.role_id","=","r.id").onRef("ur.tenant_id","=","r.tenant_id")).select(["r.id","r.name","r.description","r.created_at","r.updated_at"]).where("ur.tenant_id","=",t).where("ur.user_id","=",a);return o!==void 0&&(r=r.where("ur.organization_id","=",o)),await r.execute()}}function jo(e){return async(t,a,n,o)=>{const r=new Date().toISOString();try{return await e.insertInto("user_roles").values({tenant_id:t,user_id:a,role_id:n,organization_id:o||"",created_at:r}).execute(),!0}catch(s){return s.code==="SQLITE_CONSTRAINT_PRIMARYKEY"||s.code==="SQLITE_CONSTRAINT_UNIQUE"||s.code==="SQLITE_CONSTRAINT"||s.code==="ER_DUP_ENTRY"||s.message&&s.message.includes("UNIQUE constraint failed")||s.message&&s.message.includes("PRIMARY KEY constraint failed")?!0:(console.error("Error creating user role:",s),!1)}}}function Ro(e){return async(t,a,n,o)=>{try{let r=e.deleteFrom("user_roles").where("tenant_id","=",t).where("user_id","=",a).where("role_id","=",n);return o!==void 0?r=r.where("organization_id","=",o):r=r.where("organization_id","=",""),await r.execute(),!0}catch(r){return console.error("Error removing user roles:",r),!1}}}function qo(e){return{list:Fo(e),create:jo(e),remove:Ro(e)}}function Mo(e){const t=qo(e);return{list:(a,n,o,r)=>t.list(a,n,o,r),create:(a,n,o,r)=>t.create(a,n,o,r),remove:(a,n,o,r)=>t.remove(a,n,o,r)}}function Jo(e){return async(t,a)=>{const n={...a,id:a.id||et(),tenant_id:t,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),branding:JSON.stringify(a.branding||{}),metadata:JSON.stringify(a.metadata||{}),enabled_connections:JSON.stringify(a.enabled_connections||[]),token_quota:JSON.stringify(a.token_quota||{})};try{await e.insertInto("organizations").values(n).execute()}catch(o){throw o.code==="SQLITE_CONSTRAINT_UNIQUE"||o.code==="ER_DUP_ENTRY"||o.message.includes("AlreadyExists")?new U(409,{message:"Organization already exists"}):o}return{...a,id:n.id,created_at:n.created_at,updated_at:n.updated_at}}}function Lo(e){return async(t,a)=>{let n=await e.selectFrom("organizations").selectAll().where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return n||(n=await e.selectFrom("organizations").selectAll().where("tenant_id","=",t).where("name","=",a).executeTakeFirst()),n?y({...n,branding:n.branding?JSON.parse(n.branding):{},metadata:n.metadata?JSON.parse(n.metadata):{},enabled_connections:n.enabled_connections?JSON.parse(n.enabled_connections):[],token_quota:n.token_quota?JSON.parse(n.token_quota):{}}):null}}const Y=["name","display_name"];function Uo(e){return async(t,a)=>{let n=e.selectFrom("organizations").where("tenant_id","=",t);if(a!=null&&a.q){const c=se(a.q,Y);c&&(n=O(e,n,c,Y))}if(a!=null&&a.sort){const c=a.sort.sort_order==="asc"?"asc":"desc",m=a.sort.sort_by;["name","display_name","created_at"].includes(m)?n=n.orderBy(m,c):n=n.orderBy("created_at","desc")}else n=n.orderBy("created_at","desc");const o=(a==null?void 0:a.take)??(a==null?void 0:a.per_page),r=typeof o=="number"&&Number.isFinite(o)?Math.floor(o):NaN,s=r>=1?r:10;let i=0;if((a==null?void 0:a.from)!==void 0){const c=parseInt(a.from,10);Number.isNaN(c)||(i=Math.max(0,c))}else typeof(a==null?void 0:a.page)=="number"&&Number.isFinite(a.page)&&(i=Math.max(0,Math.floor(a.page)*s));i>0&&(n=n.offset(i)),n=n.limit(s);const l=await n.selectAll().execute();let d=l.length;if(a!=null&&a.include_totals){let c=e.selectFrom("organizations").where("tenant_id","=",t);if(a!=null&&a.q){const u=se(a.q,Y);u&&(c=O(e,c,u,Y))}const m=await c.select(h.sql`count(*)`.as("count")).executeTakeFirst();d=Number((m==null?void 0:m.count)||0)}const _=l.map(c=>y({...c,branding:c.branding?JSON.parse(c.branding):{},metadata:c.metadata?JSON.parse(c.metadata):{},enabled_connections:c.enabled_connections?JSON.parse(c.enabled_connections):[],token_quota:c.token_quota?JSON.parse(c.token_quota):{}}));return{organizations:_,start:i,limit:s,length:_.length,total:d}}}function Bo(e){return async(t,a)=>(await e.deleteFrom("organizations").where("tenant_id","=",t).where("id","=",a).execute()).length>0}function Ko(e){return async(t,a,n)=>{const{branding:o,metadata:r,enabled_connections:s,token_quota:i,...l}=n,d={...l,updated_at:new Date().toISOString()};return W(n,["branding","metadata","enabled_connections","token_quota"],d),(await e.updateTable("organizations").set(d).where("tenant_id","=",t).where("id","=",a).execute()).length>0}}function Qo(e){return{create:Jo(e),get:Lo(e),list:Uo(e),remove:Bo(e),update:Ko(e)}}function G(e,t){return{connection_id:e.connection_id,assign_membership_on_login:!!e.assign_membership_on_login,show_as_button:!!e.show_as_button,is_signup_enabled:!!e.is_signup_enabled,connection:t?{name:t.name,strategy:t.strategy}:void 0,created_at:e.created_at,updated_at:e.updated_at}}async function V(e,t,a){const n=await e.selectFrom("connections").select(["name","strategy"]).where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return n?{name:n.name,strategy:n.strategy??void 0}:void 0}function Wo(e){return{async create(t,a,n){const o=new Date().toISOString(),r={tenant_id:t,organization_id:a,connection_id:n.connection_id,assign_membership_on_login:n.assign_membership_on_login?1:0,show_as_button:n.show_as_button===!1?0:1,is_signup_enabled:n.is_signup_enabled===!1?0:1,created_at:o,updated_at:o};await e.insertInto("organization_connections").values(r).execute();const s=await V(e,t,n.connection_id);return G(r,s)},async list(t,a){const n=await e.selectFrom("organization_connections").selectAll().where("tenant_id","=",t).where("organization_id","=",a).execute(),o=[];for(const r of n){const s=await V(e,t,r.connection_id);o.push(G(r,s))}return o},async get(t,a,n){const o=await e.selectFrom("organization_connections").selectAll().where("tenant_id","=",t).where("organization_id","=",a).where("connection_id","=",n).executeTakeFirst();if(!o)return null;const r=await V(e,t,n);return G(o,r)},async update(t,a,n,o){const r={updated_at:new Date().toISOString()};o.assign_membership_on_login!==void 0&&(r.assign_membership_on_login=o.assign_membership_on_login?1:0),o.show_as_button!==void 0&&(r.show_as_button=o.show_as_button?1:0),o.is_signup_enabled!==void 0&&(r.is_signup_enabled=o.is_signup_enabled?1:0);const s=await e.updateTable("organization_connections").set(r).where("tenant_id","=",t).where("organization_id","=",a).where("connection_id","=",n).executeTakeFirst();if(Number(s.numUpdatedRows??0)===0)return null;const i=await e.selectFrom("organization_connections").selectAll().where("tenant_id","=",t).where("organization_id","=",a).where("connection_id","=",n).executeTakeFirst();if(!i)return null;const l=await V(e,t,n);return G(i,l)},async remove(t,a,n){const o=await e.deleteFrom("organization_connections").where("tenant_id","=",t).where("organization_id","=",a).where("connection_id","=",n).executeTakeFirst();return Number(o.numDeletedRows??0)>0}}}function Ho(e){return async(t,a)=>{const n={id:k.nanoid(),tenant_id:t,user_id:a.user_id,organization_id:a.organization_id,created_at:new Date().toISOString(),updated_at:new Date().toISOString()};try{await e.insertInto("user_organizations").values(n).execute()}catch(o){throw o.code==="SQLITE_CONSTRAINT_UNIQUE"||o.code==="ER_DUP_ENTRY"?new U(409,{message:"User is already a member of this organization"}):o}return{...n}}}function Yo(e){return async(t,a)=>{const n=await e.selectFrom("user_organizations").selectAll().where("id","=",a).where("tenant_id","=",t).executeTakeFirst();return n?{id:n.id,user_id:n.user_id,organization_id:n.organization_id,created_at:n.created_at,updated_at:n.updated_at}:null}}function Go(e){return async(t,a)=>{const n=(a==null?void 0:a.page)||0,o=(a==null?void 0:a.per_page)||50,r=n*o;let s=e.selectFrom("user_organizations").selectAll().where("tenant_id","=",t);if(a!=null&&a.q){if(a.q.startsWith("user_id:")){const c=a.q.replace("user_id:","");s=s.where("user_id","=",c)}else if(a.q.startsWith("organization_id:")){const c=a.q.replace("organization_id:","");s=s.where("organization_id","=",c)}}s=s.orderBy("created_at","desc"),o>0&&(s=s.limit(o).offset(r));const i=await s.execute();let l=e.selectFrom("user_organizations").select(e.fn.count("id").as("count")).where("tenant_id","=",t);if(a!=null&&a.q){if(a.q.startsWith("user_id:")){const c=a.q.replace("user_id:","");l=l.where("user_id","=",c)}else if(a.q.startsWith("organization_id:")){const c=a.q.replace("organization_id:","");l=l.where("organization_id","=",c)}}const d=await l.executeTakeFirst();return{userOrganizations:i.map(c=>({id:c.id,user_id:c.user_id,organization_id:c.organization_id,created_at:c.created_at,updated_at:c.updated_at})),start:r,limit:o,length:Number((d==null?void 0:d.count)||0)}}}function Vo(e){return async(t,a,n)=>{const o=(n==null?void 0:n.page)||0,r=(n==null?void 0:n.per_page)||50,s=o*r;let i=e.selectFrom("user_organizations").innerJoin("organizations",c=>c.onRef("organizations.id","=","user_organizations.organization_id").on("organizations.tenant_id","=",t)).select(["organizations.id","organizations.name","organizations.display_name","organizations.branding","organizations.metadata","organizations.enabled_connections","organizations.token_quota","organizations.created_at","organizations.updated_at","user_organizations.created_at as joined_at"]).where("user_organizations.tenant_id","=",t).where("user_organizations.user_id","=",a);i=i.orderBy("user_organizations.created_at","desc"),r>0&&(i=i.limit(r).offset(s));const l=await i.execute(),d=await e.selectFrom("user_organizations").innerJoin("organizations",c=>c.onRef("organizations.id","=","user_organizations.organization_id").on("organizations.tenant_id","=",t)).select(e.fn.count("user_organizations.id").as("count")).where("user_organizations.tenant_id","=",t).where("user_organizations.user_id","=",a).executeTakeFirst();return{organizations:l.map(c=>({id:c.id,name:c.name,display_name:c.display_name,branding:c.branding?JSON.parse(c.branding):void 0,metadata:c.metadata?JSON.parse(c.metadata):{},enabled_connections:c.enabled_connections?JSON.parse(c.enabled_connections):[],token_quota:c.token_quota?JSON.parse(c.token_quota):void 0,created_at:c.created_at,updated_at:c.updated_at,joined_at:c.joined_at})),start:s,limit:r,length:Number((d==null?void 0:d.count)||0)}}}function Xo(e){return async(t,a)=>(await e.deleteFrom("user_organizations").where("id","=",a).where("tenant_id","=",t).execute()).length>0}function Zo(e){return async(t,a,n)=>{const o={...n,updated_at:new Date().toISOString()};return(await e.updateTable("user_organizations").set(o).where("id","=",a).where("tenant_id","=",t).execute()).length>0}}function er(e){return{create:Ho(e),get:Yo(e),list:Go(e),listUserOrganizations:Vo(e),remove:Xo(e),update:Zo(e)}}function tr(e){return async(t,a)=>{const n=it(),o=new Date().toISOString(),r=a.ttl_sec||604800,s=new Date(Date.now()+r*1e3).toISOString(),i=W({id:n,tenant_id:t,organization_id:a.organization_id,inviter:a.inviter||{},invitee:a.invitee||{},client_id:a.client_id,connection_id:a.connection_id||null,invitation_url:a.invitation_url,created_at:o,expires_at:s,app_metadata:a.app_metadata||{},user_metadata:a.user_metadata||{},roles:a.roles||[],ticket_id:null,ttl_sec:r,send_invitation_email:a.send_invitation_email??!0?1:0},["inviter","invitee","app_metadata","user_metadata","roles"]);try{await e.insertInto("invites").values(i).execute()}catch(l){throw l.code==="SQLITE_CONSTRAINT_UNIQUE"||l.code==="ER_DUP_ENTRY"||l.message.includes("AlreadyExists")?new U(409,{message:"Invite already exists"}):l}return{id:n,organization_id:i.organization_id,inviter:a.inviter,invitee:a.invitee,client_id:a.client_id,connection_id:a.connection_id,invitation_url:a.invitation_url,created_at:o,expires_at:s,app_metadata:a.app_metadata||{},user_metadata:a.user_metadata||{},roles:a.roles||[],ticket_id:i.ticket_id||void 0,ttl_sec:r,send_invitation_email:a.send_invitation_email??!0}}}function ar(e){return async(t,a)=>{const n=await e.selectFrom("invites").selectAll().where("tenant_id","=",t).where("id","=",a).executeTakeFirst();if(!n)return null;const o=$e(n,{inviter:{},invitee:{},app_metadata:{},user_metadata:{},roles:[]});return y({...o,send_invitation_email:n.send_invitation_email===1})}}function nr(e){return async(t,a)=>{let n=e.selectFrom("invites").selectAll().where("tenant_id","=",t).orderBy("created_at","desc");if(a!=null&&a.per_page&&(n=n.limit(a.per_page)),a!=null&&a.page){const s=(a.page-1)*(a.per_page||10);n=n.offset(s)}const r=(await n.execute()).map(s=>{const i=$e(s,{inviter:{},invitee:{},app_metadata:{},user_metadata:{},roles:[]});return y({...i,send_invitation_email:s.send_invitation_email===1})});return{invites:r,start:a!=null&&a.page?(a.page-1)*(a.per_page||10):0,limit:(a==null?void 0:a.per_page)||r.length,length:r.length}}}function or(e){return async(t,a)=>(await e.deleteFrom("invites").where("tenant_id","=",t).where("id","=",a).executeTakeFirst()).numDeletedRows>0n}function rr(e){return async(t,a,n)=>{const o={};return n.inviter!==void 0&&(o.inviter=JSON.stringify(n.inviter)),n.invitee!==void 0&&(o.invitee=JSON.stringify(n.invitee)),n.client_id!==void 0&&(o.client_id=n.client_id),n.connection_id!==void 0&&(o.connection_id=n.connection_id),n.app_metadata!==void 0&&(o.app_metadata=JSON.stringify(n.app_metadata)),n.user_metadata!==void 0&&(o.user_metadata=JSON.stringify(n.user_metadata)),n.roles!==void 0&&(o.roles=JSON.stringify(n.roles)),n.ttl_sec!==void 0&&(o.ttl_sec=n.ttl_sec,o.expires_at=new Date(Date.now()+n.ttl_sec*1e3).toISOString()),n.send_invitation_email!==void 0&&(o.send_invitation_email=n.send_invitation_email?1:0),Object.keys(o).length===0?!0:(await e.updateTable("invites").set(o).where("tenant_id","=",t).where("id","=",a).executeTakeFirst()).numUpdatedRows>0n}}function sr(e){return{create:tr(e),get:ar(e),list:nr(e),remove:or(e),update:rr(e)}}const ye=["s"],ir=["pwd_leak"];function ve(e){return/^\d{8}$/.test(e)?`${e.slice(0,4)}-${e.slice(4,6)}-${e.slice(6,8)}`:e}function Ce(e){return e.toISOString().split("T")[0]}function cr(e){return{async getDaily(t,a={}){const{from:n,to:o}=a,r=new Date,s=new Date(r);s.setDate(s.getDate()-30);const i=n?ve(n):Ce(s),l=o?ve(o):Ce(r),d=h.sql`DATE(logs.date)`;return(await e.selectFrom("logs").where("tenant_id","=",t).where(d,">=",i).where(d,"<=",l).select(c=>[d.as("date"),c.fn.sum(c.case().when("type","in",ye).then(1).else(0).end()).as("logins"),c.fn.sum(c.case().when("type","=","ss").then(1).else(0).end()).as("signups"),c.fn.sum(c.case().when("type","in",ir).then(1).else(0).end()).as("leaked_passwords"),c.fn.min("date").as("first_event"),c.fn.max("date").as("last_event")]).groupBy(d).orderBy("date","asc").execute()).map(c=>({date:c.date,logins:Number(c.logins)||0,signups:Number(c.signups)||0,leaked_passwords:Number(c.leaked_passwords)||0,created_at:c.first_event||new Date().toISOString(),updated_at:c.last_event||new Date().toISOString()}))},async getActiveUsers(t){const a=new Date;return a.setDate(a.getDate()-30),(await e.selectFrom("logs").where("tenant_id","=",t).where("date",">=",a.toISOString()).where("type","in",ye).where("user_id","is not",null).select(o=>o.fn.count("user_id").distinct().as("count")).executeTakeFirstOrThrow()).count||0}}}const lr={"active-users":["s","seacft"],logins:["s","f","fp"],signups:["ss","fs"],"refresh-tokens":["seacft","fertft"],sessions:["slo"]},dr={"active-users":{alias:"active_users",type:"UInt64",agg:"uniq"},logins:{alias:"logins",type:"UInt64",agg:"count"},signups:{alias:"signups",type:"UInt64",agg:"count"},"refresh-tokens":{alias:"refresh_tokens",type:"UInt64",agg:"count"},sessions:{alias:"sessions",type:"UInt64",agg:"count"}};async function ur(e){try{return await h.sql`SELECT @@version_comment`.execute(e),"mysql"}catch{return"sqlite"}}function ce(e,t){const a=new Intl.DateTimeFormat("en-US",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}),n={};for(const c of a.formatToParts(t))n[c.type]=c.value;const o=n.hour==="24"?"00":n.hour,r=Date.UTC(Number(n.year),Number(n.month)-1,Number(n.day),Number(o),Number(n.minute),Number(n.second)),s=Math.round((r-t.getTime())/6e4),i=s>=0?"+":"-",l=Math.abs(s),d=String(Math.floor(l/60)).padStart(2,"0"),_=String(l%60).padStart(2,"0");return`${i}${d}:${_}`}const _r=["January","February","March","April","May","June","July","August","September","October","November","December"];function mr(e,t){const a=t.getUTCFullYear(),n=ce(e,new Date(Date.UTC(a,0,1)));for(let o=1;o<12;o++){const r=ce(e,new Date(Date.UTC(a,o,1)));if(r!==n)throw new Error(`Timezone '${e}' is DST-varying (offset ${n} in January vs ${r} in ${_r[o]}) and cannot be bucketed with a single fixed offset by the SQL analytics adapter. Use a fixed-offset zone (e.g. 'UTC' or '+02:00').`)}}function Fe(e){const t=e.startsWith("-")?-1:1,[a,n]=e.slice(1).split(":");return t*(Number(a)*60+Number(n))}function hr(e,t){let a;if(t==="+00:00")a=h.sql`${h.sql.ref("logs.date")}`;else{const n=Fe(t),o=`${n>=0?"+":"-"}${Math.abs(n)} minutes`;a=h.sql`datetime(${h.sql.ref("logs.date")}, ${o})`}switch(e){case"hour":return h.sql`substr(${a}, 1, 13)`;case"month":return h.sql`substr(${a}, 1, 7)`;case"day":return h.sql`substr(${a}, 1, 10)`;case"week":return h.sql`date(substr(${a}, 1, 10), '-' || ((cast(strftime('%w', substr(${a}, 1, 10)) as integer) + 6) % 7) || ' days')`;default:throw new Error(`Unsupported interval '${e}' for SQL analytics adapter`)}}function pr(e,t){if(t==="+00:00")switch(e){case"hour":return h.sql`substring(${h.sql.ref("logs.date")}, 1, 13)`;case"day":return h.sql`substring(${h.sql.ref("logs.date")}, 1, 10)`;case"month":return h.sql`substring(${h.sql.ref("logs.date")}, 1, 7)`;case"week":{const o=h.sql`str_to_date(substring(${h.sql.ref("logs.date")}, 1, 10), '%Y-%m-%d')`;return h.sql`date_format(date_sub(${o}, interval weekday(${o}) day), '%Y-%m-%d')`}default:throw new Error(`Unsupported interval '${e}' for SQL analytics adapter`)}const a=Fe(t),n=h.sql`date_add(str_to_date(substring(${h.sql.ref("logs.date")}, 1, 19), '%Y-%m-%dT%H:%i:%s'), interval ${h.sql.lit(a)} minute)`;switch(e){case"hour":return h.sql`date_format(${n}, '%Y-%m-%dT%H')`;case"day":return h.sql`date_format(${n}, '%Y-%m-%d')`;case"month":return h.sql`date_format(${n}, '%Y-%m')`;case"week":return h.sql`date_format(date_sub(${n}, interval weekday(${n}) day), '%Y-%m-%d')`;default:throw new Error(`Unsupported interval '${e}' for SQL analytics adapter`)}}function fr(e,t,a,n){mr(t,a);const o=ce(t,a);return n==="mysql"?pr(e,o):hr(e,o)}function gr(e){switch(e){case"connection":return"logs.connection";case"client_id":return"logs.client_id";case"user_type":return"logs.strategy_type";case"event":return"logs.type";case"time":throw new Error("time dimension is handled separately")}}function wr(e){let t=null;const a=()=>(t||(t=ur(e)),t);return{async query(n,o,r){var b,S,$,D;const s=Date.now(),i=lr[o],l=dr[o],d=await a(),_=[];let c=e.selectFrom("logs").where("tenant_id","=",n);c=c.where("date",">=",r.from).where("date","<",r.to),c=c.where("type","in",i),(b=r.filters.connection)!=null&&b.length&&(c=c.where("connection","in",r.filters.connection)),(S=r.filters.client_id)!=null&&S.length&&(c=c.where("client_id","in",r.filters.client_id)),($=r.filters.user_type)!=null&&$.length&&(c=c.where("strategy_type","in",r.filters.user_type)),(D=r.filters.user_id)!=null&&D.length&&(c=c.where("user_id","in",r.filters.user_id));const m=[],u=[];for(const C of r.group_by)if(C==="time"){const T=fr(r.interval,r.tz,new Date(r.from),d);u.push({alias:"time",expr:T}),m.push(T),_.push({name:"time",type:r.interval==="hour"?"DateTime":"Date"})}else{const T=gr(C);u.push({alias:C,expr:h.sql`${h.sql.ref(T)}`}),m.push(h.sql`${h.sql.ref(T)}`),_.push({name:C,type:"String"})}const f=l.agg==="uniq"?h.sql`COUNT(DISTINCT ${h.sql.ref("logs.user_id")})`:h.sql`COUNT(*)`;u.push({alias:l.alias,expr:f}),_.push({name:l.alias,type:l.type});let p=c.select(u.map(({alias:C,expr:T})=>T.as(C)));if(m.length>0&&(p=p.groupBy(m)),r.order_by){const C=r.order_by.startsWith("-"),T=C?r.order_by.slice(1):r.order_by;p=p.orderBy(T,C?"desc":"asc")}else r.group_by.length>0&&r.group_by[0]==="time"?p=p.orderBy("time","asc"):p=p.orderBy(l.alias,"desc");p=p.limit(r.limit).offset(r.offset);const v=(await p.execute()).map(C=>{const T={};for(const K of _){const M=C[K.name];T[K.name]=K.type==="UInt64"?Number(M)||0:M??""}return T});return{meta:_,data:v,rows:v.length,rows_before_limit_at_least:v.length,statistics:{elapsed:(Date.now()-s)/1e3}}}}}function yr(e){return{async get(t,a,n){const o=await e.selectFrom("custom_text").selectAll().where("tenant_id","=",t).where("prompt","=",a).where("language","=",n).executeTakeFirst();if(!o)return null;try{return JSON.parse(o.custom_text)}catch{return null}},async set(t,a,n,o){const r=Date.now(),s=JSON.stringify(o);await e.selectFrom("custom_text").select("tenant_id").where("tenant_id","=",t).where("prompt","=",a).where("language","=",n).executeTakeFirst()?await e.updateTable("custom_text").set({custom_text:s,updated_at_ts:r}).where("tenant_id","=",t).where("prompt","=",a).where("language","=",n).execute():await e.insertInto("custom_text").values({tenant_id:t,prompt:a,language:n,custom_text:s,created_at_ts:r,updated_at_ts:r}).execute()},async delete(t,a,n){await e.deleteFrom("custom_text").where("tenant_id","=",t).where("prompt","=",a).where("language","=",n).execute()},async list(t){return(await e.selectFrom("custom_text").select(["prompt","language"]).where("tenant_id","=",t).execute()).map(n=>({prompt:n.prompt,language:n.language}))}}}function vr(e){return async(t,a)=>{const n=Date.now(),o=De();return await e.insertInto("authentication_methods").values({id:o,tenant_id:t,user_id:a.user_id,type:a.type,phone_number:a.phone_number,totp_secret:a.totp_secret,credential_id:a.credential_id,public_key:a.public_key,sign_count:a.sign_count,credential_backed_up:a.credential_backed_up==null?void 0:a.credential_backed_up?1:0,transports:a.transports?JSON.stringify(a.transports):void 0,friendly_name:a.friendly_name,confirmed:a.confirmed?1:0,created_at_ts:n,updated_at_ts:n}).execute(),{id:o,user_id:a.user_id,type:a.type,phone_number:a.phone_number,totp_secret:a.totp_secret,credential_id:a.credential_id,public_key:a.public_key,sign_count:a.sign_count,credential_backed_up:a.credential_backed_up,transports:a.transports,friendly_name:a.friendly_name,confirmed:a.confirmed??!1,created_at:new Date(n).toISOString(),updated_at:new Date(n).toISOString()}}}function je(e){return async(t,a)=>{const n=await e.selectFrom("authentication_methods").where("authentication_methods.tenant_id","=",t).where("authentication_methods.id","=",a).selectAll().executeTakeFirst();return n?{id:n.id,user_id:n.user_id,type:n.type,phone_number:n.phone_number??void 0,totp_secret:n.totp_secret??void 0,credential_id:n.credential_id??void 0,public_key:n.public_key??void 0,sign_count:n.sign_count??void 0,credential_backed_up:n.credential_backed_up!=null?n.credential_backed_up===1:void 0,transports:n.transports?JSON.parse(n.transports):void 0,friendly_name:n.friendly_name??void 0,confirmed:n.confirmed===1,created_at:j(n.created_at_ts),updated_at:j(n.updated_at_ts)}:null}}function Cr(e){return async(t,a)=>{const n=await e.selectFrom("authentication_methods").where("authentication_methods.tenant_id","=",t).where("authentication_methods.credential_id","=",a).selectAll().executeTakeFirst();return n?{id:n.id,user_id:n.user_id,type:n.type,phone_number:n.phone_number??void 0,totp_secret:n.totp_secret??void 0,credential_id:n.credential_id??void 0,public_key:n.public_key??void 0,sign_count:n.sign_count??void 0,credential_backed_up:n.credential_backed_up!=null?n.credential_backed_up===1:void 0,transports:n.transports?JSON.parse(n.transports):void 0,friendly_name:n.friendly_name??void 0,confirmed:n.confirmed===1,created_at:j(n.created_at_ts),updated_at:j(n.updated_at_ts)}:null}}function xr(e){return async(t,a)=>(await e.selectFrom("authentication_methods").where("authentication_methods.tenant_id","=",t).where("authentication_methods.user_id","=",a).selectAll().execute()).map(o=>({id:o.id,user_id:o.user_id,type:o.type,phone_number:o.phone_number??void 0,totp_secret:o.totp_secret??void 0,credential_id:o.credential_id??void 0,public_key:o.public_key??void 0,sign_count:o.sign_count??void 0,credential_backed_up:o.credential_backed_up!=null?o.credential_backed_up===1:void 0,transports:o.transports?JSON.parse(o.transports):void 0,friendly_name:o.friendly_name??void 0,confirmed:o.confirmed===1,created_at:j(o.created_at_ts),updated_at:j(o.updated_at_ts)}))}function Tr(e){return async(t,a,n)=>{const r={updated_at_ts:Date.now()};n.phone_number!==void 0&&(r.phone_number=n.phone_number),n.totp_secret!==void 0&&(r.totp_secret=n.totp_secret),n.credential_id!==void 0&&(r.credential_id=n.credential_id),n.public_key!==void 0&&(r.public_key=n.public_key),n.sign_count!==void 0&&(r.sign_count=n.sign_count),n.credential_backed_up!==void 0&&(r.credential_backed_up=n.credential_backed_up?1:0),n.transports!==void 0&&(r.transports=JSON.stringify(n.transports)),n.friendly_name!==void 0&&(r.friendly_name=n.friendly_name),n.confirmed!==void 0&&(r.confirmed=n.confirmed?1:0),await e.updateTable("authentication_methods").set(r).where("authentication_methods.tenant_id","=",t).where("authentication_methods.id","=",a).execute();const s=await je(e)(t,a);if(!s)throw new Error(`Authentication method ${a} not found`);return s}}function br(e){return async(t,a)=>(await e.deleteFrom("authentication_methods").where("authentication_methods.tenant_id","=",t).where("authentication_methods.id","=",a).executeTakeFirst()).numDeletedRows>0}function Nr(e){return{create:vr(e),get:je(e),getByCredentialId:Cr(e),list:xr(e),update:Tr(e),remove:br(e)}}function Sr(e){return async(t,a)=>{const n=k.nanoid();return await e.insertInto("outbox_events").values({id:n,tenant_id:t,event_type:a.event_type,log_type:a.log_type,aggregate_type:a.target.type,aggregate_id:a.target.id,payload:JSON.stringify({...a,id:n}),created_at:new Date().toISOString(),processed_at:null,retry_count:0,next_retry_at:null,error:null}).execute(),n}}function Or(e){return async t=>t.length===0?[]:(await e.selectFrom("outbox_events").selectAll().where("id","in",t).execute()).map(n=>({...JSON.parse(n.payload),id:n.id,created_at:n.created_at,processed_at:n.processed_at,retry_count:n.retry_count,next_retry_at:n.next_retry_at,error:n.error}))}function kr(e){return async t=>{const a=new Date().toISOString();return(await e.selectFrom("outbox_events").selectAll().where("processed_at","is",null).where(o=>o.or([o("next_retry_at","is",null),o("next_retry_at","<=",a)])).where(o=>o.or([o("claimed_by","is",null),o("claim_expires_at","<=",a)])).orderBy("created_at","asc").orderBy("id","asc").limit(t).execute()).map(o=>({...JSON.parse(o.payload),id:o.id,created_at:o.created_at,processed_at:o.processed_at,retry_count:o.retry_count,next_retry_at:o.next_retry_at,error:o.error}))}}function $r(e){return async(t,a,n)=>{if(t.length===0)return[];const o=new Date().toISOString(),r=new Date(Date.now()+n).toISOString();return await e.updateTable("outbox_events").set({claimed_by:a,claim_expires_at:r}).where("id","in",t).where("processed_at","is",null).where(i=>i.or([i("claimed_by","is",null),i("claim_expires_at","<=",o)])).execute(),(await e.selectFrom("outbox_events").select("id").where("id","in",t).where("claimed_by","=",a).where("claim_expires_at","=",r).execute()).map(i=>i.id)}}function Er(e){return async t=>{if(t.length===0)return;const a=new Date().toISOString();await e.updateTable("outbox_events").set({processed_at:a}).where("id","in",t).execute()}}function Ir(e){return async(t,a,n)=>{await e.updateTable("outbox_events").set({error:a,next_retry_at:n,retry_count:h.sql`retry_count + 1`,claimed_by:null,claim_expires_at:null}).where("id","=",t).execute()}}function Pr(e){return async(t,a)=>{const n=new Date().toISOString();await e.updateTable("outbox_events").set({processed_at:n,dead_lettered_at:n,final_error:a}).where("id","=",t).execute()}}function zr(e){return async(t,a={})=>{const{page:n=0,per_page:o=50,include_totals:r=!1}=a,i=(await e.selectFrom("outbox_events").selectAll().where("tenant_id","=",t).where("dead_lettered_at","is not",null).orderBy("dead_lettered_at","desc").orderBy("id","asc").offset(n*o).limit(o).execute()).flatMap(d=>{let _;try{_=JSON.parse(d.payload)}catch(c){return console.error(`Failed to parse outbox payload for event ${d.id}`,c),[]}return[{..._,id:d.id,created_at:d.created_at,processed_at:d.processed_at,retry_count:d.retry_count,next_retry_at:d.next_retry_at,error:d.error,dead_lettered_at:d.dead_lettered_at,final_error:d.final_error}]});let l=i.length;if(r){const[d]=await e.selectFrom("outbox_events").select(_=>_.fn.countAll().as("total")).where("tenant_id","=",t).where("dead_lettered_at","is not",null).execute();l=Number((d==null?void 0:d.total)??i.length)}return{events:i,start:n*o,limit:o,length:l}}}function Dr(e){return async(t,a)=>{const n=await e.updateTable("outbox_events").set({processed_at:null,dead_lettered_at:null,final_error:null,retry_count:0,next_retry_at:null,error:null}).where("id","=",t).where("tenant_id","=",a).where("dead_lettered_at","is not",null).executeTakeFirst();return Number(n.numUpdatedRows)>0}}function Ar(e){return async t=>{const a=await e.deleteFrom("outbox_events").where("processed_at","is not",null).where("processed_at","<",t).executeTakeFirst();return Number(a.numDeletedRows)}}function Fr(e){return{create:Sr(e),getByIds:Or(e),getUnprocessed:kr(e),claimEvents:$r(e),markProcessed:Er(e),markRetry:Ir(e),deadLetter:Pr(e),listFailed:zr(e),replay:Dr(e),cleanup:Ar(e)}}function ae(e){return{id:e.id,name:e.name,type:e.type,status:e.status,sink:JSON.parse(e.sink),filters:e.filters?JSON.parse(e.filters):void 0,isPriority:e.is_priority==null?void 0:e.is_priority===1,created_at:e.created_at,updated_at:e.updated_at}}function jr(e){return{async create(t,a){const n=new Date().toISOString(),r={id:`lst_${k.nanoid()}`,tenant_id:t,name:a.name,type:a.type,status:a.status??"active",sink:JSON.stringify(a.sink),filters:a.filters?JSON.stringify(a.filters):null,is_priority:a.isPriority===void 0?null:a.isPriority?1:0,created_at:n,updated_at:n};return await e.insertInto("log_streams").values(r).execute(),ae(r)},async get(t,a){const n=await e.selectFrom("log_streams").where("tenant_id","=",t).where("id","=",a).selectAll().executeTakeFirst();return n?ae(n):null},async list(t){return(await e.selectFrom("log_streams").where("tenant_id","=",t).selectAll().execute()).map(ae)},async update(t,a,n){const o={updated_at:new Date().toISOString()};n.name!==void 0&&(o.name=n.name),n.type!==void 0&&(o.type=n.type),n.status!==void 0&&(o.status=n.status),n.sink!==void 0&&(o.sink=JSON.stringify(n.sink)),n.filters!==void 0&&(o.filters=n.filters?JSON.stringify(n.filters):null),n.isPriority!==void 0&&(o.is_priority=n.isPriority?1:0);const r=await e.updateTable("log_streams").set(o).where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return((r==null?void 0:r.numUpdatedRows)??0n)>0n},async remove(t,a){const n=await e.deleteFrom("log_streams").where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return((n==null?void 0:n.numDeletedRows)??0n)>0n}}}function ne(e){return{id:e.id,name:e.name,provider:N.migrationProviderTypeSchema.parse(e.provider),connection:e.connection,enabled:e.enabled===1,credentials:JSON.parse(e.credentials),created_at:e.created_at,updated_at:e.updated_at}}function Rr(e){return{async create(t,a){const n=new Date().toISOString(),o=a.id??`mig_${k.nanoid()}`,r=a.enabled??!0,s={id:o,tenant_id:t,name:a.name,provider:a.provider,connection:a.connection,enabled:r?1:0,credentials:JSON.stringify(a.credentials),created_at:n,updated_at:n};return await e.insertInto("migration_sources").values(s).execute(),ne(s)},async get(t,a){const n=await e.selectFrom("migration_sources").where("tenant_id","=",t).where("id","=",a).selectAll().executeTakeFirst();return n?ne(n):null},async list(t){return(await e.selectFrom("migration_sources").where("tenant_id","=",t).selectAll().execute()).map(ne)},async update(t,a,n){const o={updated_at:new Date().toISOString()};n.name!==void 0&&(o.name=n.name),n.provider!==void 0&&(o.provider=n.provider),n.connection!==void 0&&(o.connection=n.connection),n.enabled!==void 0&&(o.enabled=n.enabled?1:0),n.credentials!==void 0&&(o.credentials=JSON.stringify(n.credentials));const r=await e.updateTable("migration_sources").set(o).where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return((r==null?void 0:r.numUpdatedRows)??0n)>0n},async remove(t,a){const n=await e.deleteFrom("migration_sources").where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return((n==null?void 0:n.numDeletedRows)??0n)>0n}}}class Re{constructor(t){H(this,"migrations");this.migrations=t}async getMigrations(){return this.migrations}}async function qr(e){await e.schema.createTable("tenants").addColumn("id","varchar(255)",t=>t.primaryKey()).addColumn("name","varchar(255)").addColumn("audience","varchar(255)").addColumn("sender_email","varchar(255)").addColumn("sender_name","varchar(255)").addColumn("language","varchar(255)").addColumn("logo","varchar(255)").addColumn("primary_color","varchar(255)").addColumn("secondary_color","varchar(255)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).execute(),await e.schema.createTable("users").addColumn("user_id","varchar(255)",t=>t.notNull()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("email","varchar(255)").addColumn("given_name","varchar(255)").addColumn("family_name","varchar(255)").addColumn("nickname","varchar(255)").addColumn("name","varchar(255)").addColumn("picture","varchar(2083)").addColumn("tags","varchar(255)").addColumn("phone_number","varchar(17)").addColumn("phone_verified","boolean").addColumn("username","varchar(128)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).addPrimaryKeyConstraint("users_tenants",["user_id","tenant_id"]).addColumn("linked_to","varchar(255)").addForeignKeyConstraint("linked_to_constraint",["linked_to","tenant_id"],"users",["user_id","tenant_id"]).addColumn("last_ip","varchar(255)").addColumn("login_count","integer",t=>t.notNull()).addColumn("last_login","varchar(255)").addColumn("provider","varchar(255)",t=>t.notNull()).addColumn("connection","varchar(255)").addColumn("email_verified","boolean",t=>t.notNull()).addColumn("is_social","boolean",t=>t.notNull()).addColumn("app_metadata","varchar(4096)",t=>t.defaultTo("{}").notNull()).addColumn("user_metadata","varchar(4096)",t=>t.defaultTo("{}").notNull()).addUniqueConstraint("unique_email_provider",["email","provider","tenant_id"]).addUniqueConstraint("unique_phone_provider",["phone_number","provider","tenant_id"]).execute(),await e.schema.createTable("members").addColumn("id","varchar(255)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("sub","varchar(255)").addColumn("email","varchar(255)").addColumn("name","varchar(255)").addColumn("status","varchar(255)").addColumn("role","varchar(255)").addColumn("picture","varchar(2083)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).execute(),await e.schema.createTable("applications").addColumn("id","varchar(255)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("name","varchar(255)",t=>t.notNull()).addColumn("client_secret","varchar(255)").addColumn("allowed_logout_urls","varchar(255)").addColumn("authentication_settings","varchar(255)").addColumn("addons","varchar(4096)",t=>t.notNull().defaultTo("{}")).addColumn("callbacks","varchar(1024)",t=>t.notNull().defaultTo("[]")).addColumn("allowed_origins","varchar(1024)",t=>t.notNull().defaultTo("[]")).addColumn("web_origins","varchar(1024)",t=>t.notNull().defaultTo("[]")).addColumn("allowed_clients","varchar(1024)",t=>t.defaultTo("[]").notNull()).addColumn("options_kid","varchar(32)").addColumn("options_team_id","varchar(32)").addColumn("options_client_id","varchar(128)").addColumn("options_client_secret","varchar(255)").addColumn("options_scope","varchar(255)").addColumn("options_realms","varchar(255)").addColumn("options_app_secret","varchar(1024)").addColumn("email_validation","varchar(255)").addColumn("disable_sign_ups","boolean",t=>t.notNull()).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).execute(),await e.schema.createTable("connections").addColumn("id","varchar(255)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("name","varchar(255)",t=>t.notNull()).addColumn("response_type","varchar(255)").addColumn("response_mode","varchar(255)").addColumn("strategy","varchar(64)").addColumn("options","varchar(2048)",t=>t.defaultTo("{}").notNull()).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).execute(),await e.schema.createTable("migrations").addColumn("id","varchar(255)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("provider","varchar(255)").addColumn("client_id","varchar(255)").addColumn("origin","varchar(255)").addColumn("domain","varchar(255)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).execute(),await e.schema.createTable("domains").addColumn("id","varchar(255)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("domain","varchar(255)",t=>t.notNull()).addColumn("email_service","varchar(255)").addColumn("email_api_key","varchar(255)").addColumn("dkim_private_key","varchar(2048)").addColumn("dkim_public_key","varchar(2048)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).execute()}async function Mr(e){await e.schema.dropTable("domains").execute(),await e.schema.dropTable("members").execute(),await e.schema.dropTable("users").execute(),await e.schema.dropTable("connections").execute(),await e.schema.dropTable("applications").execute(),await e.schema.dropTable("migrations").execute(),await e.schema.dropTable("tenants").execute()}const Jr=Object.freeze(Object.defineProperty({__proto__:null,down:Mr,up:qr},Symbol.toStringTag,{value:"Module"}));async function Lr(e){await e.schema.alterTable("tenants").addColumn("support_url","varchar(255)").execute()}async function Ur(e){await e.schema.alterTable("tenants").dropColumn("support_url").execute()}const Br=Object.freeze(Object.defineProperty({__proto__:null,down:Ur,up:Lr},Symbol.toStringTag,{value:"Module"}));async function Kr(e){}async function Qr(e){}const Wr=Object.freeze(Object.defineProperty({__proto__:null,down:Qr,up:Kr},Symbol.toStringTag,{value:"Module"}));async function Hr(e){await e.schema.createTable("logs").addColumn("id","varchar(255)",t=>t.notNull().primaryKey()).addColumn("category","varchar(255)",t=>t.notNull()).addColumn("tenant_id","varchar(64)").addColumn("user_id","varchar(64)").addForeignKeyConstraint("tenant_id_constraint",["tenant_id"],"tenants",["id"],t=>t.onDelete("cascade")).addColumn("ip","varchar(255)").addColumn("type","varchar(8)",t=>t.notNull()).addColumn("date","varchar(25)",t=>t.notNull()).addColumn("client_id","varchar(255)").addColumn("client_name","varchar(255)").addColumn("user_agent","varchar(255)").addColumn("description","varchar(255)").addColumn("details","varchar(2048)").execute()}async function Yr(e){await e.schema.dropTable("logs").execute()}const Gr=Object.freeze(Object.defineProperty({__proto__:null,down:Yr,up:Hr},Symbol.toStringTag,{value:"Module"}));async function Vr(e){}async function Xr(e){}const Zr=Object.freeze(Object.defineProperty({__proto__:null,down:Xr,up:Vr},Symbol.toStringTag,{value:"Module"}));async function es(e){await e.schema.createTable("sessions").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)").addColumn("user_id","varchar(255)").addForeignKeyConstraint("user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("authenticated_at","varchar(35)").addColumn("last_interaction_at","varchar(35)").addColumn("used_at","varchar(35)").addColumn("revoked_at","varchar(35)").addColumn("device","varchar(2048)",t=>t.notNull()).addColumn("clients","varchar(1024)",t=>t.notNull()).execute(),await e.schema.createTable("tickets").addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("id","varchar(255)",t=>t.primaryKey()).addColumn("client_id","varchar(255)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("email","varchar(255)",t=>t.notNull()).addColumn("nonce","varchar(255)").addColumn("state","varchar(1024)").addColumn("scope","varchar(1024)").addColumn("response_type","varchar(256)").addColumn("response_mode","varchar(256)").addColumn("redirect_uri","varchar(1024)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute(),await e.schema.createTable("otps").addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("id","varchar(255)",t=>t.primaryKey()).addColumn("client_id","varchar(255)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("code","varchar(255)",t=>t.notNull()).addColumn("email","varchar(255)",t=>t.notNull()).addColumn("user_id","varchar(255)").addColumn("send","varchar(255)").addColumn("nonce","varchar(255)").addColumn("state","varchar(1024)").addColumn("scope","varchar(1024)").addColumn("response_type","varchar(256)").addColumn("response_mode","varchar(256)").addColumn("redirect_uri","varchar(1024)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute(),await e.schema.createIndex("otps_email_index").on("otps").column("email").execute(),await e.schema.createIndex("otps_expires_at_index").on("otps").column("expires_at").execute()}async function ts(e){await e.schema.dropTable("sessions").execute(),await e.schema.dropTable("tickets").execute(),await e.schema.dropTable("otps").execute()}const as=Object.freeze(Object.defineProperty({__proto__:null,down:ts,up:es},Symbol.toStringTag,{value:"Module"}));async function ns(e){await e.schema.createTable("passwords").addColumn("tenant_id","varchar(255)").addColumn("user_id","varchar(255)").addPrimaryKeyConstraint("passwords_pkey",["user_id","tenant_id"]).addForeignKeyConstraint("user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(255)").addColumn("updated_at","varchar(255)").execute(),await e.schema.createTable("codes").addColumn("id","varchar(255)",t=>t.primaryKey()).addColumn("user_id","varchar(255)").addColumn("tenant_id","varchar(255)").addForeignKeyConstraint("user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("type","varchar(255)",t=>t.notNull()).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute(),await e.schema.createIndex("codes_expires_at_index").on("codes").column("expires_at").execute()}async function os(e){await e.schema.dropTable("passwords").execute(),await e.schema.dropTable("codes").execute()}const rs=Object.freeze(Object.defineProperty({__proto__:null,down:os,up:ns},Symbol.toStringTag,{value:"Module"}));async function ss(e){}async function is(e){}const cs=Object.freeze(Object.defineProperty({__proto__:null,down:is,up:ss},Symbol.toStringTag,{value:"Module"}));async function ls(e){await e.schema.alterTable("passwords").addColumn("password","varchar(255)",t=>t.notNull()).execute()}async function ds(e){await e.schema.alterTable("passwords").dropColumn("password").execute()}const us=Object.freeze(Object.defineProperty({__proto__:null,down:ds,up:ls},Symbol.toStringTag,{value:"Module"}));async function _s(e){}async function ms(e){}const hs=Object.freeze(Object.defineProperty({__proto__:null,down:ms,up:_s},Symbol.toStringTag,{value:"Module"}));async function ps(e){}async function fs(e){}const gs=Object.freeze(Object.defineProperty({__proto__:null,down:fs,up:ps},Symbol.toStringTag,{value:"Module"}));async function ws(e){}async function ys(e){}const vs=Object.freeze(Object.defineProperty({__proto__:null,down:ys,up:ws},Symbol.toStringTag,{value:"Module"}));async function Cs(e){await e.schema.createIndex("users_email_index").on("users").column("email").execute()}async function xs(e){await e.schema.dropIndex("users_email_index").execute()}const Ts=Object.freeze(Object.defineProperty({__proto__:null,down:xs,up:Cs},Symbol.toStringTag,{value:"Module"}));async function bs(e){await e.schema.alterTable("users").addColumn("profileData","varchar(2048)").execute()}async function Ns(e){await e.schema.alterTable("users").dropColumn("profileData").execute()}const Ss=Object.freeze(Object.defineProperty({__proto__:null,down:Ns,up:bs},Symbol.toStringTag,{value:"Module"}));async function Os(e){await e.schema.createIndex("users_linked_to_index").on("users").column("linked_to").execute()}async function ks(e){await e.schema.dropIndex("users_linked_to_index")}const $s=Object.freeze(Object.defineProperty({__proto__:null,down:ks,up:Os},Symbol.toStringTag,{value:"Module"}));async function Es(e){await e.schema.alterTable("users").addColumn("locale","varchar(255)").execute()}async function Is(e){await e.schema.alterTable("users").dropColumn("locale").execute()}const Ps=Object.freeze(Object.defineProperty({__proto__:null,down:Is,up:Es},Symbol.toStringTag,{value:"Module"}));async function zs(e){await e.schema.createTable("keys").addColumn("kid","varchar(255)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade")).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("revoked_at","varchar(255)").addColumn("cert","varchar(4096)").addColumn("pkcs7","varchar(4096)").addColumn("fingerprint","varchar(256)").addColumn("thumbprint","varchar(256)").addColumn("current_since","varchar(256)").addColumn("current_until","varchar(256)").addColumn("type","varchar(50)",t=>t.notNull().defaultTo("jwt_signing")).addColumn("connection","varchar(255)",t=>t.references("connections.id").onDelete("cascade")).execute()}async function Ds(e){await e.schema.dropTable("keys").execute()}const As=Object.freeze(Object.defineProperty({__proto__:null,down:Ds,up:zs},Symbol.toStringTag,{value:"Module"}));async function Fs(e){}async function js(e){}const Rs=Object.freeze(Object.defineProperty({__proto__:null,down:js,up:Fs},Symbol.toStringTag,{value:"Module"}));async function qs(e){}async function Ms(e){}const Js=Object.freeze(Object.defineProperty({__proto__:null,down:Ms,up:qs},Symbol.toStringTag,{value:"Module"}));async function Ls(e){await e.schema.alterTable("otps").addColumn("audience","varchar(255)").execute()}async function Us(e){await e.schema.alterTable("otps").dropColumn("audience").execute()}const Bs=Object.freeze(Object.defineProperty({__proto__:null,down:Us,up:Ls},Symbol.toStringTag,{value:"Module"}));async function Ks(e){}async function Qs(e){}const Ws=Object.freeze(Object.defineProperty({__proto__:null,down:Qs,up:Ks},Symbol.toStringTag,{value:"Module"}));async function Hs(e){await e.schema.alterTable("logs").dropColumn("category").execute()}async function Ys(e){await e.schema.alterTable("logs").addColumn("category","varchar(255)",t=>t.notNull()).execute()}const Gs=Object.freeze(Object.defineProperty({__proto__:null,down:Ys,up:Hs},Symbol.toStringTag,{value:"Module"}));async function Vs(e){await e.schema.alterTable("users").dropColumn("tags").execute()}async function Xs(e){await e.schema.alterTable("users").addColumn("tags","varchar(255)").execute()}const Zs=Object.freeze(Object.defineProperty({__proto__:null,down:Xs,up:Vs},Symbol.toStringTag,{value:"Module"}));async function ei(e){await e.schema.createIndex("logs_user_id").on("logs").column("user_id").execute(),await e.schema.createIndex("logs_tenant_id").on("logs").column("tenant_id").execute(),await e.schema.createIndex("logs_date").on("logs").column("date").execute()}async function ti(e){await e.schema.dropIndex("logs_user_id"),await e.schema.dropIndex("logs_tenant_id"),await e.schema.dropIndex("logs_date")}const ai=Object.freeze(Object.defineProperty({__proto__:null,down:ti,up:ei},Symbol.toStringTag,{value:"Module"}));async function ni(e){await e.schema.alterTable("logs").dropColumn("details").execute(),await e.schema.alterTable("logs").addColumn("details","varchar(8192)").execute()}async function oi(e){await e.schema.alterTable("logs").dropColumn("details").execute(),await e.schema.alterTable("logs").addColumn("details","varchar(2048)").execute()}const ri=Object.freeze(Object.defineProperty({__proto__:null,down:oi,up:ni},Symbol.toStringTag,{value:"Module"}));async function si(e){await e.schema.alterTable("logs").addColumn("user_name","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("auth0_client","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("isMobile","boolean").execute(),await e.schema.alterTable("logs").addColumn("connection","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("connection_id","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("audience","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("scope","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("strategy","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("strategy_type","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("hostname","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("session_connection","varchar(255)").execute()}async function ii(e){await e.schema.alterTable("logs").dropColumn("user_name").execute(),await e.schema.alterTable("logs").dropColumn("auth0_client").execute(),await e.schema.alterTable("logs").dropColumn("isMobile").execute(),await e.schema.alterTable("logs").dropColumn("connection").execute(),await e.schema.alterTable("logs").dropColumn("connection_id").execute(),await e.schema.alterTable("logs").dropColumn("audience").execute(),await e.schema.alterTable("logs").dropColumn("scope").execute(),await e.schema.alterTable("logs").dropColumn("strategy").execute(),await e.schema.alterTable("logs").dropColumn("strategy_type").execute(),await e.schema.alterTable("logs").dropColumn("hostname").execute(),await e.schema.alterTable("logs").dropColumn("session_connection").execute()}const ci=Object.freeze(Object.defineProperty({__proto__:null,down:ii,up:si},Symbol.toStringTag,{value:"Module"}));async function li(e){await e.schema.createIndex("users_name_index").on("users").column("name").execute()}async function di(e){await e.schema.dropIndex("users_name_index").execute()}const ui=Object.freeze(Object.defineProperty({__proto__:null,down:di,up:li},Symbol.toStringTag,{value:"Module"}));async function _i(e){}async function mi(e){await e.schema.alterTable("users").dropConstraint("unique_email_provider").execute()}const hi=Object.freeze(Object.defineProperty({__proto__:null,down:mi,up:_i},Symbol.toStringTag,{value:"Module"}));async function pi(e){await e.schema.alterTable("otps").dropColumn("state").execute(),await e.schema.alterTable("otps").addColumn("state","varchar(8192)").execute()}async function fi(e){await e.schema.alterTable("otps").dropColumn("state").execute(),await e.schema.alterTable("otps").addColumn("state","varchar(1024)").execute()}const gi=Object.freeze(Object.defineProperty({__proto__:null,down:fi,up:pi},Symbol.toStringTag,{value:"Module"}));async function wi(e){await e.schema.alterTable("tickets").dropColumn("state").execute(),await e.schema.alterTable("tickets").addColumn("state","varchar(8192)").execute()}async function yi(e){await e.schema.alterTable("tickets").dropColumn("state").execute(),await e.schema.alterTable("tickets").addColumn("state","varchar(1024)").execute()}const vi=Object.freeze(Object.defineProperty({__proto__:null,down:yi,up:wi},Symbol.toStringTag,{value:"Module"}));async function Ci(e){await e.schema.createTable("branding").addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull().primaryKey()).addColumn("logo_url","varchar(512)").addColumn("favicon_url","varchar(512)").addColumn("font_url","varchar(512)").addColumn("colors_primary","varchar(8)").addColumn("colors_page_background_type","varchar(32)").addColumn("colors_page_background_start","varchar(8)").addColumn("colors_page_background_end","varchar(8)").addColumn("colors_page_background_angle_dev","integer").execute()}async function xi(e){await e.schema.dropTable("branding").execute()}const Ti=Object.freeze(Object.defineProperty({__proto__:null,down:xi,up:Ci},Symbol.toStringTag,{value:"Module"}));async function bi(e){}async function Ni(e){}const Si=Object.freeze(Object.defineProperty({__proto__:null,down:Ni,up:bi},Symbol.toStringTag,{value:"Module"}));async function Oi(e){}async function ki(e){}const $i=Object.freeze(Object.defineProperty({__proto__:null,down:ki,up:Oi},Symbol.toStringTag,{value:"Module"}));async function Ei(e){}async function Ii(e){}const Pi=Object.freeze(Object.defineProperty({__proto__:null,down:Ii,up:Ei},Symbol.toStringTag,{value:"Module"}));async function zi(e){}async function Di(e){}const Ai=Object.freeze(Object.defineProperty({__proto__:null,down:Di,up:zi},Symbol.toStringTag,{value:"Module"}));async function Fi(e){await e.schema.createTable("authentication_codes").addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("code","varchar(255)",t=>t.primaryKey()).addColumn("client_id","varchar(255)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("user_id","varchar(255)",t=>t.notNull()).addColumn("nonce","varchar(255)").addColumn("state","varchar(8192)").addColumn("scope","varchar(1024)").addColumn("response_type","varchar(256)").addColumn("response_mode","varchar(256)").addColumn("redirect_uri","varchar(1024)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute()}async function ji(e){await e.schema.dropTable("authentication_codes").execute()}const Ri=Object.freeze(Object.defineProperty({__proto__:null,down:ji,up:Fi},Symbol.toStringTag,{value:"Module"}));async function qi(e){}async function Mi(e){}const Ji=Object.freeze(Object.defineProperty({__proto__:null,down:Mi,up:qi},Symbol.toStringTag,{value:"Module"}));async function Li(e){await e.schema.alterTable("otps").addColumn("ip","varchar(64)").execute()}async function Ui(e){await e.schema.alterTable("otps").dropColumn("ip").execute()}const Bi=Object.freeze(Object.defineProperty({__proto__:null,down:Ui,up:Li},Symbol.toStringTag,{value:"Module"}));async function Ki(e){await e.schema.alterTable("logs").dropColumn("user_agent").execute(),await e.schema.alterTable("logs").addColumn("user_agent","varchar(1024)").execute()}async function Qi(e){await e.schema.alterTable("logs").dropColumn("user_agent").execute(),await e.schema.alterTable("logs").addColumn("user_agent","varchar(255)").execute()}const Wi=Object.freeze(Object.defineProperty({__proto__:null,down:Qi,up:Ki},Symbol.toStringTag,{value:"Module"}));async function Hi(e){}async function Yi(e){}const Gi=Object.freeze(Object.defineProperty({__proto__:null,down:Yi,up:Hi},Symbol.toStringTag,{value:"Module"}));async function Vi(e){await e.schema.createTable("hooks").addColumn("hook_id","varchar(255)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("url","varchar(512)",t=>t.notNull()).addColumn("trigger_id","varchar(255)",t=>t.notNull()).addColumn("enabled","boolean",t=>t.notNull()).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).addColumn("synchronous","boolean",t=>t.defaultTo(!1).notNull()).addColumn("priority","integer").execute()}async function Xi(e){await e.schema.dropTable("hooks").execute()}const Zi=Object.freeze(Object.defineProperty({__proto__:null,down:Xi,up:Vi},Symbol.toStringTag,{value:"Module"}));async function ec(e){}async function tc(e){}const ac=Object.freeze(Object.defineProperty({__proto__:null,down:tc,up:ec},Symbol.toStringTag,{value:"Module"}));async function nc(e){}async function oc(e){}const rc=Object.freeze(Object.defineProperty({__proto__:null,down:oc,up:nc},Symbol.toStringTag,{value:"Module"}));async function sc(e){await e.schema.createTable("logins").addColumn("login_id","varchar(255)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("authParams_client_id","varchar(255)",t=>t.notNull()).addColumn("authParams_vendor_id","varchar(255)").addColumn("authParams_username","varchar(255)").addColumn("authParams_response_type","varchar(255)").addColumn("authParams_response_mode","varchar(255)").addColumn("authParams_audience","varchar(255)").addColumn("authParams_scope","varchar(511)").addColumn("authParams_state","varchar(511)").addColumn("authParams_code_challenge_method","varchar(256)").addColumn("authParams_code_challenge","varchar(256)").addColumn("authParams_redirect_uri","varchar(256)").addColumn("authParams_organization","varchar(256)").addColumn("authorization_url","varchar(1024)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("ip","varchar(255)").addColumn("useragent","varchar(512)").execute(),await e.schema.alterTable("passwords").addColumn("algorithm","varchar(16)").execute(),await e.schema.dropTable("codes").execute(),await e.schema.createTable("codes").addColumn("code_id","varchar(255)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("user_id","varchar(255)").addColumn("login_id","varchar(255)").addForeignKeyConstraint("codes_user_id_tenant_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("code_type","varchar(255)",t=>t.notNull()).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute()}async function ic(e){await e.schema.dropTable("logins").execute(),await e.schema.alterTable("passwords").dropColumn("algorithm").execute(),await e.schema.dropTable("codes").execute(),await e.schema.createTable("codes").addColumn("id","varchar(255)",t=>t.primaryKey()).addColumn("code","varchar(255)",t=>t.notNull()).addColumn("user_id","varchar(255)").addColumn("tenant_id","varchar(255)").addForeignKeyConstraint("codes_user_id_tenant_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("type","varchar(255)",t=>t.notNull()).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute()}const cc=Object.freeze(Object.defineProperty({__proto__:null,down:ic,up:sc},Symbol.toStringTag,{value:"Module"}));async function lc(e){}async function dc(e){}const uc=Object.freeze(Object.defineProperty({__proto__:null,down:dc,up:lc},Symbol.toStringTag,{value:"Module"}));async function _c(e){await e.schema.alterTable("logins").addColumn("auth0Client","varchar(256)").execute()}async function mc(e){await e.schema.alterTable("logins").dropColumn("auth0Client").execute()}const hc=Object.freeze(Object.defineProperty({__proto__:null,down:mc,up:_c},Symbol.toStringTag,{value:"Module"}));async function pc(e){await e.schema.alterTable("logins").dropColumn("authParams_state").execute(),await e.schema.alterTable("logins").addColumn("authParams_state","varchar(8192)").execute()}async function fc(e){await e.schema.alterTable("logins").dropColumn("authParams_state").execute(),await e.schema.alterTable("logins").addColumn("authParams_state","varchar(511)").execute()}const gc=Object.freeze(Object.defineProperty({__proto__:null,down:fc,up:pc},Symbol.toStringTag,{value:"Module"}));async function wc(e){}async function yc(e){}const vc=Object.freeze(Object.defineProperty({__proto__:null,down:yc,up:wc},Symbol.toStringTag,{value:"Module"}));async function Cc(e){}async function xc(e){}const Tc=Object.freeze(Object.defineProperty({__proto__:null,down:xc,up:Cc},Symbol.toStringTag,{value:"Module"}));async function bc(e){await e.schema.alterTable("logins").addColumn("authParams_nonce","varchar(255)").execute()}async function Nc(e){await e.schema.alterTable("logins").dropColumn("nonce").execute()}const Sc=Object.freeze(Object.defineProperty({__proto__:null,down:Nc,up:bc},Symbol.toStringTag,{value:"Module"}));async function Oc(e){}async function kc(e){}const $c=Object.freeze(Object.defineProperty({__proto__:null,down:kc,up:Oc},Symbol.toStringTag,{value:"Module"}));async function Ec(e){}async function Ic(e){}const Pc=Object.freeze(Object.defineProperty({__proto__:null,down:Ic,up:Ec},Symbol.toStringTag,{value:"Module"}));async function zc(e){await e.schema.dropTable("codes").execute(),await e.schema.createTable("codes").addColumn("code_id","varchar(255)",t=>t.notNull()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("user_id","varchar(255)").addColumn("login_id","varchar(255)").addColumn("connection_id","varchar(255)").addForeignKeyConstraint("codes_user_id_tenant_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("code_type","varchar(255)",t=>t.notNull()).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").addPrimaryKeyConstraint("PK_codes_code_id_code_type",["code_id","code_type"]).execute()}async function Dc(e){await e.schema.dropTable("codes").execute(),await e.schema.createTable("codes").addColumn("code_id","varchar(255)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("user_id","varchar(255)").addColumn("connection_id","varchar(255)").addColumn("login_id","varchar(255)").addForeignKeyConstraint("codes_user_id_tenant_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("code_type","varchar(255)",t=>t.notNull()).addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute()}const Ac=Object.freeze(Object.defineProperty({__proto__:null,down:Dc,up:zc},Symbol.toStringTag,{value:"Module"}));async function Fc(e){await e.schema.dropTable("otps").execute(),await e.schema.dropTable("authentication_codes").execute()}async function jc(e){await e.schema.alterTable("keys").addColumn("private_key","varchar(2048)").addColumn("public_key","varchar(2048)").execute(),await e.schema.createTable("otps").addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("id","varchar(255)",t=>t.primaryKey()).addColumn("client_id","varchar(255)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("code","varchar(255)",t=>t.notNull()).addColumn("email","varchar(255)",t=>t.notNull()).addColumn("user_id","varchar(255)").addColumn("send","varchar(255)").addColumn("nonce","varchar(255)").addColumn("state","varchar(1024)").addColumn("scope","varchar(1024)").addColumn("response_type","varchar(256)").addColumn("response_mode","varchar(256)").addColumn("redirect_uri","varchar(1024)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute(),await e.schema.createTable("authentication_codes").addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("code","varchar(255)",t=>t.primaryKey()).addColumn("client_id","varchar(255)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("user_id","varchar(255)",t=>t.notNull()).addColumn("nonce","varchar(255)").addColumn("state","varchar(8192)").addColumn("scope","varchar(1024)").addColumn("response_type","varchar(256)").addColumn("response_mode","varchar(256)").addColumn("redirect_uri","varchar(1024)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute()}const Rc=Object.freeze(Object.defineProperty({__proto__:null,down:jc,up:Fc},Symbol.toStringTag,{value:"Module"}));async function qc(e){await e.schema.createIndex("IDX_logs_tenant_date_type_user").on("logs").columns(["tenant_id","date","type","user_id"]).execute()}async function Mc(e){await e.schema.dropIndex("IDX_logs_tenant_date_type_user").on("logs").execute()}const Jc=Object.freeze(Object.defineProperty({__proto__:null,down:Mc,up:qc},Symbol.toStringTag,{value:"Module"}));async function Lc(e){}async function Uc(e){}const Bc=Object.freeze(Object.defineProperty({__proto__:null,down:Uc,up:Lc},Symbol.toStringTag,{value:"Module"}));async function Kc(e){await e.schema.createTable("prompt_settings").addColumn("tenant_id","varchar(64)",t=>t.primaryKey()).addColumn("universal_login_experience","varchar(16)",t=>t.defaultTo("new").notNull()).addColumn("identifier_first","boolean",t=>t.defaultTo(!0).notNull()).addColumn("password_first","boolean",t=>t.defaultTo(!1).notNull()).addColumn("webauthn_platform_first_factor","boolean",t=>t.defaultTo(!1).notNull()).execute()}async function Qc(e){await e.schema.dropTable("prompt_settings").execute()}const Wc=Object.freeze(Object.defineProperty({__proto__:null,down:Qc,up:Kc},Symbol.toStringTag,{value:"Module"}));async function Hc(e){}async function Yc(e){}const Gc=Object.freeze(Object.defineProperty({__proto__:null,down:Yc,up:Hc},Symbol.toStringTag,{value:"Module"}));async function Vc(e){}async function Xc(e){}const Zc=Object.freeze(Object.defineProperty({__proto__:null,down:Xc,up:Vc},Symbol.toStringTag,{value:"Module"}));async function el(e){}async function tl(e){}const al=Object.freeze(Object.defineProperty({__proto__:null,down:tl,up:el},Symbol.toStringTag,{value:"Module"}));async function nl(e){await e.schema.alterTable("logins").addColumn("authParams_ui_locales","varchar(32)").execute()}async function ol(e){await e.schema.alterTable("logins").dropColumn("authParams_ui_locales").execute()}const rl=Object.freeze(Object.defineProperty({__proto__:null,down:ol,up:nl},Symbol.toStringTag,{value:"Module"}));async function sl(e){await e.schema.alterTable("logins").addColumn("authParams_prompt","varchar(16)").execute()}async function il(e){await e.schema.alterTable("logins").dropColumn("authParams_prompt").execute()}const cl=Object.freeze(Object.defineProperty({__proto__:null,down:il,up:sl},Symbol.toStringTag,{value:"Module"}));async function ll(e){}async function dl(e){}const ul=Object.freeze(Object.defineProperty({__proto__:null,down:dl,up:ll},Symbol.toStringTag,{value:"Module"}));async function _l(e){await e.schema.alterTable("logins").addColumn("authParams_act_as","varchar(255)").execute()}async function ml(e){await e.schema.alterTable("logins").dropColumn("authParam_act_as").execute()}const hl=Object.freeze(Object.defineProperty({__proto__:null,down:ml,up:_l},Symbol.toStringTag,{value:"Module"}));async function pl(e){await e.schema.alterTable("codes").addColumn("code_verifier","varchar(128)").execute()}async function fl(e){await e.schema.alterTable("codes").dropColumn("code_verifier").execute()}const gl=Object.freeze(Object.defineProperty({__proto__:null,down:fl,up:pl},Symbol.toStringTag,{value:"Module"}));async function wl(e){await e.schema.createTable("email_providers").addColumn("tenant_id","varchar(255)",t=>t.primaryKey()).addColumn("name","varchar(255)",t=>t.notNull()).addColumn("enabled","boolean",t=>t.notNull()).addColumn("default_from_address","varchar(255)").addColumn("credentials","varchar(2048)",t=>t.notNull().defaultTo("{}")).addColumn("settings","varchar(2048)",t=>t.notNull().defaultTo("{}")).addColumn("created_at","varchar(29)",t=>t.notNull()).addColumn("updated_at","varchar(29)",t=>t.notNull()).execute()}async function yl(e){await e.schema.dropTable("email_providers").execute()}const vl=Object.freeze(Object.defineProperty({__proto__:null,down:yl,up:wl},Symbol.toStringTag,{value:"Module"}));async function Cl(e){await e.schema.dropTable("tickets").execute()}async function xl(e){await e.schema.createTable("tickets").addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("id","varchar(255)",t=>t.primaryKey()).addColumn("client_id","varchar(255)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("email","varchar(255)",t=>t.notNull()).addColumn("nonce","varchar(255)").addColumn("state","varchar(1024)").addColumn("scope","varchar(1024)").addColumn("response_type","varchar(256)").addColumn("response_mode","varchar(256)").addColumn("redirect_uri","varchar(1024)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("expires_at","varchar(255)",t=>t.notNull()).addColumn("used_at","varchar(255)").execute()}const Tl=Object.freeze(Object.defineProperty({__proto__:null,down:xl,up:Cl},Symbol.toStringTag,{value:"Module"}));async function bl(e){}async function Nl(e){await e.schema.alterTable("logins").dropColumn("ip").dropColumn("useragent").execute()}const Sl=Object.freeze(Object.defineProperty({__proto__:null,down:Nl,up:bl},Symbol.toStringTag,{value:"Module"}));async function Ol(e){await e.schema.createTable("refresh_tokens").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("client_id","varchar(21)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("tenant_id","varchar(255)").addColumn("session_id","varchar(21)",t=>t.notNull()).addColumn("user_id","varchar(255)").addForeignKeyConstraint("user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("last_exchanged_at","varchar(35)").addColumn("device","varchar(2048)",t=>t.notNull()).addColumn("resource_servers","varchar(2048)",t=>t.notNull()).addColumn("rotating","boolean",t=>t.notNull()).execute()}async function kl(e){await e.schema.dropTable("refresh_tokens").execute()}const $l=Object.freeze(Object.defineProperty({__proto__:null,down:kl,up:Ol},Symbol.toStringTag,{value:"Module"}));async function El(e){}async function Il(e){}const Pl=Object.freeze(Object.defineProperty({__proto__:null,down:Il,up:El},Symbol.toStringTag,{value:"Module"}));async function zl(e){await e.schema.dropTable("sessions").execute(),await e.schema.dropTable("refresh_tokens").execute()}async function Dl(e){await e.schema.createTable("sessions").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)").addColumn("user_id","varchar(255)").addForeignKeyConstraint("sessions_user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("authenticated_at","varchar(35)").addColumn("last_interaction_at","varchar(35)").addColumn("used_at","varchar(35)").addColumn("revoked_at","varchar(35)").addColumn("device","varchar(2048)",t=>t.notNull()).addColumn("clients","varchar(1024)",t=>t.notNull()).execute(),await e.schema.createTable("refresh_tokens").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("client_id","varchar(21)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("tenant_id","varchar(255)").addColumn("session_id","varchar(21)",t=>t.notNull()).addColumn("user_id","varchar(255)").addForeignKeyConstraint("refresh_tokens_user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("last_exchanged_at","varchar(35)").addColumn("device","varchar(2048)",t=>t.notNull()).addColumn("resource_servers","varchar(2048)",t=>t.notNull()).addColumn("rotating","boolean",t=>t.notNull()).execute()}const Al=Object.freeze(Object.defineProperty({__proto__:null,down:Dl,up:zl},Symbol.toStringTag,{value:"Module"}));async function Fl(e){await e.schema.createTable("sessions_2").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)").addColumn("user_id","varchar(255)").addForeignKeyConstraint("sessions_2_user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("authenticated_at","varchar(35)").addColumn("last_interaction_at","varchar(35)").addColumn("used_at","varchar(35)").addColumn("revoked_at","varchar(35)").addColumn("device","varchar(2048)",t=>t.notNull()).addColumn("clients","varchar(1024)",t=>t.notNull()).execute(),await e.schema.createTable("refresh_tokens_2").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("client_id","varchar(21)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("tenant_id","varchar(255)").addColumn("session_id","varchar(21)",t=>t.notNull()).addColumn("user_id","varchar(255)").addForeignKeyConstraint("refresh_tokens_2_user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("last_exchanged_at","varchar(35)").addColumn("device","varchar(2048)",t=>t.notNull()).addColumn("resource_servers","varchar(2048)",t=>t.notNull()).addColumn("rotating","boolean",t=>t.notNull()).execute()}async function jl(e){await e.schema.dropTable("sessions_2").execute(),await e.schema.dropTable("refresh_tokens_2").execute()}const Rl=Object.freeze(Object.defineProperty({__proto__:null,down:jl,up:Fl},Symbol.toStringTag,{value:"Module"}));async function ql(e){await e.schema.createTable("custom_domains").addColumn("custom_domain_id","varchar(21)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("domain","varchar(255)",t=>t.notNull()).addColumn("primary","boolean",t=>t.notNull()).addColumn("status","varchar(50)",t=>t.notNull()).addColumn("type","varchar(50)",t=>t.notNull()).addColumn("origin_domain_name","varchar(255)").addColumn("verification","varchar(2048)").addColumn("custom_client_ip_header","varchar(50)").addColumn("tls_policy","varchar(50)").addColumn("domain_metadata","varchar(2048)").addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).execute(),await e.schema.dropTable("domains").execute()}async function Ml(e){await e.schema.dropTable("custom_domains").execute(),await e.schema.createTable("domains").addColumn("id","varchar(255)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("domain","varchar(255)",t=>t.notNull()).addColumn("email_service","varchar(255)").addColumn("email_api_key","varchar(255)").addColumn("dkim_private_key","varchar(2048)").addColumn("dkim_public_key","varchar(2048)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).execute()}const Jl=Object.freeze(Object.defineProperty({__proto__:null,down:Ml,up:ql},Symbol.toStringTag,{value:"Module"}));async function Ll(e){}async function Ul(e){await e.schema.alterTable("logins").dropColumn("authParams_organization").dropColumn("authorization_url").execute()}const Bl=Object.freeze(Object.defineProperty({__proto__:null,down:Ul,up:Ll},Symbol.toStringTag,{value:"Module"}));async function Kl(e){await e.schema.alterTable("logins").dropColumn("authorization_url").execute(),await e.schema.alterTable("logins").addColumn("authorization_url","varchar(2048)").execute()}async function Ql(e){await e.schema.alterTable("logins").dropColumn("authorization_url").execute(),await e.schema.alterTable("logins").addColumn("authorization_url","varchar(1024)").execute()}const Wl=Object.freeze(Object.defineProperty({__proto__:null,down:Ql,up:Kl},Symbol.toStringTag,{value:"Module"}));async function Hl(e){}async function Yl(e){}const Gl=Object.freeze(Object.defineProperty({__proto__:null,down:Yl,up:Hl},Symbol.toStringTag,{value:"Module"}));async function Vl(e){await e.schema.createTable("sessions").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)").addColumn("user_id","varchar(255)").addForeignKeyConstraint("sessions_user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("authenticated_at","varchar(35)").addColumn("last_interaction_at","varchar(35)").addColumn("used_at","varchar(35)").addColumn("revoked_at","varchar(35)").addColumn("device","varchar(2048)",t=>t.notNull()).addColumn("clients","varchar(1024)",t=>t.notNull()).execute(),await e.schema.createTable("login_sessions").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("session_id","varchar(21)",t=>t.references("sessions.id").onDelete("cascade")).addColumn("csrf_token","varchar(21)",t=>t.notNull()).addColumn("authParams_client_id","varchar(255)",t=>t.notNull()).addColumn("authParams_vendor_id","varchar(255)").addColumn("authParams_username","varchar(255)").addColumn("authParams_response_type","varchar(255)").addColumn("authParams_response_mode","varchar(255)").addColumn("authParams_audience","varchar(255)").addColumn("authParams_scope","varchar(511)").addColumn("authParams_state","varchar(2048)").addColumn("authParams_nonce","varchar(255)").addColumn("authParams_code_challenge_method","varchar(255)").addColumn("authParams_code_challenge","varchar(255)").addColumn("authParams_redirect_uri","varchar(255)").addColumn("authParams_organization","varchar(255)").addColumn("authParams_prompt","varchar(32)").addColumn("authParams_act_as","varchar(256)").addColumn("authParams_ui_locales","varchar(32)").addColumn("authorization_url","varchar(1024)").addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)",t=>t.notNull()).addColumn("ip","varchar(39)").addColumn("useragent","varchar(1024)").addColumn("auth0Client","varchar(255)").execute(),await e.schema.createTable("refresh_tokens").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("client_id","varchar(21)",t=>t.references("applications.id").onDelete("cascade").notNull()).addColumn("tenant_id","varchar(255)").addColumn("session_id","varchar(21)",t=>t.notNull()).addColumn("user_id","varchar(255)").addForeignKeyConstraint("refresh_tokens_user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],t=>t.onDelete("cascade")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("last_exchanged_at","varchar(35)").addColumn("device","varchar(2048)",t=>t.notNull()).addColumn("resource_servers","varchar(2048)",t=>t.notNull()).addColumn("rotating","boolean",t=>t.notNull()).execute()}async function Xl(e){await e.schema.dropTable("sessions").execute(),await e.schema.dropTable("login_sessions").execute(),await e.schema.dropTable("refresh_tokens").execute()}const Zl=Object.freeze(Object.defineProperty({__proto__:null,down:Xl,up:Vl},Symbol.toStringTag,{value:"Module"}));async function ed(e){await e.schema.dropTable("logins").execute(),await e.schema.dropTable("sessions_2").execute(),await e.schema.dropTable("refresh_tokens_2").execute()}async function td(e){}const ad=Object.freeze(Object.defineProperty({__proto__:null,down:td,up:ed},Symbol.toStringTag,{value:"Module"}));async function nd(e){await e.schema.dropTable("custom_domains").execute(),await e.schema.createTable("custom_domains").addColumn("custom_domain_id","varchar(256)",t=>t.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("domain","varchar(255)",t=>t.notNull()).addColumn("primary","boolean",t=>t.notNull()).addColumn("status","varchar(50)",t=>t.notNull()).addColumn("type","varchar(50)",t=>t.notNull()).addColumn("origin_domain_name","varchar(255)").addColumn("verification","varchar(2048)").addColumn("custom_client_ip_header","varchar(50)").addColumn("tls_policy","varchar(50)").addColumn("domain_metadata","varchar(2048)").addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).execute()}async function od(e){}const rd=Object.freeze(Object.defineProperty({__proto__:null,down:od,up:nd},Symbol.toStringTag,{value:"Module"}));async function sd(e){}async function id(e){await e.schema.alterTable("users").dropColumn("phone_number").dropColumn("phone_verified").dropColumn("username").execute()}const cd=Object.freeze(Object.defineProperty({__proto__:null,down:id,up:sd},Symbol.toStringTag,{value:"Module"}));async function ld(e){await e.schema.createTable("forms").addColumn("id","varchar(255)",t=>t.primaryKey()).addColumn("name","varchar(255)",t=>t.notNull()).addColumn("tenant_id","varchar(255)",t=>t.notNull()).addColumn("messages","varchar(255)").addColumn("languages","varchar(255)").addColumn("translations","varchar(4096)").addColumn("nodes","varchar(4096)").addColumn("start","varchar(255)").addColumn("ending","varchar(255)").addColumn("style","varchar(1042)").addColumn("created_at","varchar(255)",t=>t.notNull()).addColumn("updated_at","varchar(255)",t=>t.notNull()).execute(),await e.schema.createIndex("forms_tenant_id_idx").on("forms").column("tenant_id").execute()}async function dd(e){await e.schema.dropTable("forms").execute()}const ud=Object.freeze(Object.defineProperty({__proto__:null,down:dd,up:ld},Symbol.toStringTag,{value:"Module"}));async function _d(e){await e.schema.alterTable("hooks").addColumn("form_id","text").execute(),await e.schema.alterTable("hooks").addColumn("url_tmp","varchar(512)").execute(),await e.updateTable("hooks").set(t=>({url_tmp:t.ref("url")})).execute(),await e.schema.alterTable("hooks").dropColumn("url").execute(),await e.schema.alterTable("hooks").renameColumn("url_tmp","url").execute()}async function md(e){await e.schema.dropTable("hooks").ifExists().execute(),await e.schema.createTable("hooks").addColumn("hook_id","text",t=>t.primaryKey()).addColumn("tenant_id","text",t=>t.notNull()).addColumn("trigger_id","text",t=>t.notNull()).addColumn("enabled","integer",t=>t.notNull().defaultTo(0)).addColumn("url","varchar(512)",t=>t.notNull()).addColumn("synchronous","integer",t=>t.notNull().defaultTo(0)).addColumn("priority","integer").addColumn("created_at","text",t=>t.notNull()).addColumn("updated_at","text",t=>t.notNull()).execute()}const hd=Object.freeze(Object.defineProperty({__proto__:null,down:md,up:_d},Symbol.toStringTag,{value:"Module"}));async function pd(e){await e.schema.alterTable("login_sessions").addColumn("login_completed","boolean",t=>t.notNull().defaultTo(0)).execute()}async function fd(e){await e.schema.alterTable("login_sessions").dropColumn("login_completed").execute()}const gd=Object.freeze(Object.defineProperty({__proto__:null,down:fd,up:pd},Symbol.toStringTag,{value:"Module"}));async function wd(e){await e.schema.alterTable("sessions").addColumn("login_session_id","varchar(21)",t=>t.references("login_sessions.id").onDelete("set null")).execute()}async function yd(e){await e.schema.alterTable("sessions").dropColumn("login_session_id").execute()}const vd=Object.freeze(Object.defineProperty({__proto__:null,down:yd,up:wd},Symbol.toStringTag,{value:"Module"}));async function Cd(e){await e.schema.createIndex("IDX_sessions_login_session_id").on("sessions").column("login_session_id").execute()}async function xd(e){await e.schema.dropIndex("IDX_sessions_login_session_id").on("sessions").execute()}const Td=Object.freeze(Object.defineProperty({__proto__:null,down:xd,up:Cd},Symbol.toStringTag,{value:"Module"}));async function bd(e){await e.schema.alterTable("codes").addColumn("code_challenge","varchar(128)").execute(),await e.schema.alterTable("codes").addColumn("code_challenge_method","varchar(5)").execute()}async function Nd(e){await e.schema.alterTable("codes").dropColumn("code_challenge").execute(),await e.schema.alterTable("codes").dropColumn("code_challenge_method").execute()}const Sd=Object.freeze(Object.defineProperty({__proto__:null,down:Nd,up:bd},Symbol.toStringTag,{value:"Module"}));async function Od(e){await e.schema.alterTable("codes").addColumn("redirect_uri","varchar(1024)").execute()}async function kd(e){await e.schema.alterTable("codes").dropColumn("redirect_uri").execute()}const $d=Object.freeze(Object.defineProperty({__proto__:null,down:kd,up:Od},Symbol.toStringTag,{value:"Module"}));async function Ed(e){await e.schema.alterTable("codes").addColumn("nonce","varchar(1024)").execute(),await e.schema.alterTable("codes").addColumn("state","varchar(2048)").execute()}async function Id(e){await e.schema.alterTable("codes").dropColumn("nonce").execute(),await e.schema.alterTable("codes").dropColumn("state").execute()}const Pd=Object.freeze(Object.defineProperty({__proto__:null,down:Id,up:Ed},Symbol.toStringTag,{value:"Module"}));async function zd(e){await e.schema.createTable("themes").addColumn("tenant_id","varchar(255)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("themeId","varchar(255)",t=>t.notNull()).addColumn("displayName","varchar(255)",t=>t.notNull()).addColumn("colors_primary_button_label","varchar(24)",t=>t.notNull()).addColumn("colors_primary_button","varchar(24)",t=>t.notNull()).addColumn("colors_secondary_button_border","varchar(24)",t=>t.notNull()).addColumn("colors_secondary_button_label","varchar(24)",t=>t.notNull()).addColumn("colors_base_focus_color","varchar(24)",t=>t.notNull()).addColumn("colors_base_hover_color","varchar(24)",t=>t.notNull()).addColumn("colors_body_text","varchar(24)",t=>t.notNull()).addColumn("colors_captcha_widget_theme","varchar(24)",t=>t.notNull()).addColumn("colors_error","varchar(24)",t=>t.notNull()).addColumn("colors_header","varchar(24)",t=>t.notNull()).addColumn("colors_icons","varchar(24)",t=>t.notNull()).addColumn("colors_input_background","varchar(24)",t=>t.notNull()).addColumn("colors_input_border","varchar(24)",t=>t.notNull()).addColumn("colors_input_filled_text","varchar(24)",t=>t.notNull()).addColumn("colors_input_labels_placeholders","varchar(24)",t=>t.notNull()).addColumn("colors_links_focused_components","varchar(24)",t=>t.notNull()).addColumn("colors_success","varchar(24)",t=>t.notNull()).addColumn("colors_widget_background","varchar(24)",t=>t.notNull()).addColumn("colors_widget_border","varchar(24)",t=>t.notNull()).addColumn("borders_button_border_radius","integer",t=>t.notNull()).addColumn("borders_button_border_weight","integer",t=>t.notNull()).addColumn("borders_buttons_style","varchar(24)",t=>t.notNull()).addColumn("borders_input_border_radius","integer",t=>t.notNull()).addColumn("borders_input_border_weight","integer",t=>t.notNull()).addColumn("borders_inputs_style","varchar(24)",t=>t.notNull()).addColumn("borders_show_widget_shadow","boolean",t=>t.notNull()).addColumn("borders_widget_border_weight","integer",t=>t.notNull()).addColumn("borders_widget_corner_radius","integer",t=>t.notNull()).addColumn("fonts_body_text_bold","integer",t=>t.notNull()).addColumn("fonts_body_text_size","integer",t=>t.notNull()).addColumn("fonts_buttons_text_bold","integer",t=>t.notNull()).addColumn("fonts_buttons_text_size","integer",t=>t.notNull()).addColumn("fonts_font_url","varchar(255)",t=>t.notNull()).addColumn("fonts_input_labels_bold","integer",t=>t.notNull()).addColumn("fonts_input_labels_size","integer",t=>t.notNull()).addColumn("fonts_links_bold","boolean",t=>t.notNull()).addColumn("fonts_links_size","integer",t=>t.notNull()).addColumn("fonts_links_style","varchar(24)",t=>t.notNull()).addColumn("fonts_reference_text_size","integer",t=>t.notNull()).addColumn("fonts_subtitle_bold","boolean",t=>t.notNull()).addColumn("fonts_subtitle_size","integer",t=>t.notNull()).addColumn("fonts_title_bold","boolean",t=>t.notNull()).addColumn("fonts_title_size","integer",t=>t.notNull()).addColumn("page_background_background_color","varchar(24)",t=>t.notNull()).addColumn("page_background_background_image_url","varchar(255)",t=>t.notNull()).addColumn("page_background_page_layout","varchar(24)",t=>t.notNull()).addColumn("widget_header_text_alignment","varchar(24)",t=>t.notNull()).addColumn("widget_logo_height","integer",t=>t.notNull()).addColumn("widget_logo_position","varchar(24)",t=>t.notNull()).addColumn("widget_logo_url","varchar(255)",t=>t.notNull()).addColumn("widget_social_buttons_layout","varchar(24)",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("themes_pkey",["tenant_id","themeId"]).execute(),await e.schema.createIndex("themes_tenant_id_idx").on("themes").column("tenant_id").execute()}async function Dd(e){await e.schema.dropTable("themes").execute()}const Ad=Object.freeze(Object.defineProperty({__proto__:null,down:Dd,up:zd},Symbol.toStringTag,{value:"Module"}));async function Fd(e){await e.schema.createTable("resource_servers").addColumn("id","varchar(21)",t=>t.notNull()).addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("identifier","varchar(191)",t=>t.notNull()).addColumn("name","varchar(255)",t=>t.notNull()).addColumn("scopes","varchar(4096)").addColumn("signing_alg","varchar(64)").addColumn("signing_secret","varchar(2048)").addColumn("token_lifetime","integer").addColumn("token_lifetime_for_web","integer").addColumn("skip_consent_for_verifiable_first_party_clients","integer").addColumn("allow_offline_access","integer").addColumn("verification_key","varchar(4096)").addColumn("options","varchar(4096)").addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("resource_servers_pk",["tenant_id","id"]).execute(),await e.schema.createIndex("resource_servers_tenant_identifier_uq").on("resource_servers").columns(["tenant_id","identifier"]).unique().execute(),await e.schema.createTable("roles").addColumn("id","varchar(21)",t=>t.notNull()).addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("name","varchar(50)",t=>t.notNull()).addColumn("description","varchar(255)").addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("roles_pk",["tenant_id","id"]).execute(),await e.schema.createIndex("roles_tenant_name_uq").on("roles").columns(["tenant_id","name"]).unique().execute()}async function jd(e){await e.schema.dropTable("roles").execute(),await e.schema.dropTable("resource_servers").execute()}const Rd=Object.freeze(Object.defineProperty({__proto__:null,down:jd,up:Fd},Symbol.toStringTag,{value:"Module"}));async function qd(e){await e.schema.createTable("role_permissions").addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("role_id","varchar(21)",t=>t.notNull()).addColumn("resource_server_identifier","varchar(191)",t=>t.notNull()).addColumn("permission_name","varchar(191)",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("role_permissions_pk",["tenant_id","role_id","resource_server_identifier","permission_name"]).execute(),await e.schema.createIndex("role_permissions_role_fk").on("role_permissions").columns(["tenant_id","role_id"]).execute(),await e.schema.createIndex("role_permissions_permission_fk").on("role_permissions").columns(["tenant_id","resource_server_identifier","permission_name"]).execute(),await e.schema.createTable("user_permissions").addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("user_id","varchar(191)",t=>t.notNull()).addColumn("resource_server_identifier","varchar(191)",t=>t.notNull()).addColumn("permission_name","varchar(191)",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("user_permissions_pk",["tenant_id","user_id","resource_server_identifier","permission_name"]).execute(),await e.schema.createIndex("user_permissions_user_fk").on("user_permissions").columns(["tenant_id","user_id"]).execute(),await e.schema.createIndex("user_permissions_permission_fk").on("user_permissions").columns(["tenant_id","resource_server_identifier","permission_name"]).execute()}async function Md(e){await e.schema.dropTable("user_permissions").execute(),await e.schema.dropTable("role_permissions").execute()}const Jd=Object.freeze(Object.defineProperty({__proto__:null,down:Md,up:qd},Symbol.toStringTag,{value:"Module"}));async function Ld(e){await e.schema.createTable("user_roles").addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("user_id","varchar(191)",t=>t.notNull()).addColumn("role_id","varchar(21)",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("user_roles_pk",["tenant_id","user_id","role_id"]).execute(),await e.schema.createIndex("user_roles_user_fk").on("user_roles").columns(["tenant_id","user_id"]).execute(),await e.schema.createIndex("user_roles_role_fk").on("user_roles").columns(["tenant_id","role_id"]).execute()}async function Ud(e){await e.schema.dropTable("user_roles").execute()}const Bd=Object.freeze(Object.defineProperty({__proto__:null,down:Ud,up:Ld},Symbol.toStringTag,{value:"Module"}));async function Kd(e){}async function Qd(e){await e.schema.alterTable("keys").dropColumn("connection").execute(),await e.schema.alterTable("keys").modifyColumn("cert","varchar(2048)").execute(),await e.schema.alterTable("keys").modifyColumn("pkcs7","varchar(2048)").execute(),await e.schema.alterTable("keys").dropColumn("type").execute()}const Wd=Object.freeze(Object.defineProperty({__proto__:null,down:Qd,up:Kd},Symbol.toStringTag,{value:"Module"}));async function Hd(e){await e.schema.createTable("organizations").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("name","varchar(256)",t=>t.notNull()).addColumn("display_name","varchar(256)").addColumn("branding","text").addColumn("metadata","text").addColumn("enabled_connections","text").addColumn("token_quota","text").addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).execute(),await e.schema.createIndex("idx_organizations_tenant_id").on("organizations").column("tenant_id").execute(),await e.schema.createIndex("idx_organizations_tenant_name_unique").on("organizations").columns(["tenant_id","name"]).unique().execute()}async function Yd(e){await e.schema.dropTable("organizations").execute()}const Gd=Object.freeze(Object.defineProperty({__proto__:null,down:Yd,up:Hd},Symbol.toStringTag,{value:"Module"}));async function Vd(e){await e.schema.createTable("user_organizations").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("user_id","varchar(191)",t=>t.notNull()).addColumn("organization_id","varchar(21)",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addUniqueConstraint("user_organizations_unique",["tenant_id","user_id","organization_id"]).execute(),await e.schema.createIndex("idx_user_organizations_tenant_id").on("user_organizations").column("tenant_id").execute(),await e.schema.createIndex("idx_user_organizations_user_id").on("user_organizations").column("user_id").execute(),await e.schema.createIndex("idx_user_organizations_organization_id").on("user_organizations").column("organization_id").execute()}async function Xd(e){await e.schema.dropTable("user_organizations").execute()}const Zd=Object.freeze(Object.defineProperty({__proto__:null,down:Xd,up:Vd},Symbol.toStringTag,{value:"Module"}));async function eu(e){await e.schema.dropTable("user_permissions").execute(),await e.schema.dropTable("user_roles").execute(),await e.schema.createTable("user_permissions").addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("user_id","varchar(191)",t=>t.notNull()).addColumn("resource_server_identifier","varchar(21)",t=>t.notNull()).addColumn("permission_name","varchar(191)",t=>t.notNull()).addColumn("organization_id","varchar(21)",t=>t.notNull().defaultTo("")).addColumn("created_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("user_permissions_pk",["tenant_id","user_id","resource_server_identifier","permission_name","organization_id"]).execute(),await e.schema.createIndex("user_permissions_user_fk").on("user_permissions").columns(["tenant_id","user_id"]).execute(),await e.schema.createIndex("user_permissions_permission_fk").on("user_permissions").columns(["tenant_id","resource_server_identifier","permission_name"]).execute(),await e.schema.createIndex("user_permissions_organization_fk").on("user_permissions").column("organization_id").execute(),await e.schema.createTable("user_roles").addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("user_id","varchar(191)",t=>t.notNull()).addColumn("role_id","varchar(21)",t=>t.notNull()).addColumn("organization_id","varchar(191)",t=>t.notNull().defaultTo("")).addColumn("created_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("user_roles_pk",["tenant_id","user_id","role_id","organization_id"]).execute(),await e.schema.createIndex("user_roles_user_fk").on("user_roles").columns(["tenant_id","user_id"]).execute(),await e.schema.createIndex("user_roles_role_fk").on("user_roles").columns(["tenant_id","role_id"]).execute(),await e.schema.createIndex("user_roles_organization_fk").on("user_roles").column("organization_id").execute()}async function tu(e){await e.schema.dropTable("user_permissions").execute(),await e.schema.dropTable("user_roles").execute(),await e.schema.createTable("user_permissions").addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("user_id","varchar(191)",t=>t.notNull()).addColumn("resource_server_identifier","varchar(191)",t=>t.notNull()).addColumn("permission_name","varchar(191)",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("user_permissions_pk",["tenant_id","user_id","resource_server_identifier","permission_name"]).execute(),await e.schema.createIndex("user_permissions_user_fk").on("user_permissions").columns(["tenant_id","user_id"]).execute(),await e.schema.createIndex("user_permissions_permission_fk").on("user_permissions").columns(["tenant_id","resource_server_identifier","permission_name"]).execute(),await e.schema.createTable("user_roles").addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("user_id","varchar(191)",t=>t.notNull()).addColumn("role_id","varchar(21)",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("user_roles_pk",["tenant_id","user_id","role_id"]).execute(),await e.schema.createIndex("user_roles_user_fk").on("user_roles").columns(["tenant_id","user_id"]).execute(),await e.schema.createIndex("user_roles_role_fk").on("user_roles").columns(["tenant_id","role_id"]).execute()}const au=Object.freeze(Object.defineProperty({__proto__:null,down:tu,up:eu},Symbol.toStringTag,{value:"Module"}));async function nu(e){await e.schema.createTable("clients").addColumn("client_id","varchar(191)",t=>t.notNull()).addColumn("tenant_id","varchar(191)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("name","varchar(255)",t=>t.notNull()).addColumn("description","varchar(140)").addColumn("global","integer",t=>t.defaultTo(0).notNull()).addColumn("client_secret","varchar(255)").addColumn("app_type","varchar(64)",t=>t.defaultTo("regular_web")).addColumn("logo_uri","varchar(2083)").addColumn("is_first_party","integer",t=>t.defaultTo(0).notNull()).addColumn("oidc_conformant","integer",t=>t.defaultTo(1).notNull()).addColumn("callbacks","text",t=>t.notNull()).addColumn("allowed_origins","text",t=>t.notNull()).addColumn("web_origins","text",t=>t.notNull()).addColumn("client_aliases","text",t=>t.notNull()).addColumn("allowed_clients","text",t=>t.notNull()).addColumn("allowed_logout_urls","text",t=>t.notNull()).addColumn("session_transfer","text",t=>t.notNull()).addColumn("oidc_logout","text",t=>t.notNull()).addColumn("grant_types","text",t=>t.notNull()).addColumn("jwt_configuration","text",t=>t.notNull()).addColumn("signing_keys","text",t=>t.notNull()).addColumn("encryption_key","text",t=>t.notNull()).addColumn("sso","integer",t=>t.defaultTo(0).notNull()).addColumn("sso_disabled","integer",t=>t.defaultTo(1).notNull()).addColumn("cross_origin_authentication","integer",t=>t.defaultTo(0).notNull()).addColumn("cross_origin_loc","varchar(2083)").addColumn("custom_login_page_on","integer",t=>t.defaultTo(0).notNull()).addColumn("custom_login_page","text").addColumn("custom_login_page_preview","text").addColumn("form_template","text").addColumn("addons","text",t=>t.notNull()).addColumn("token_endpoint_auth_method","varchar(64)",t=>t.defaultTo("client_secret_basic")).addColumn("client_metadata","text",t=>t.notNull()).addColumn("mobile","text",t=>t.notNull()).addColumn("initiate_login_uri","varchar(2083)").addColumn("native_social_login","text",t=>t.notNull()).addColumn("refresh_token","text",t=>t.notNull()).addColumn("default_organization","text",t=>t.notNull()).addColumn("organization_usage","varchar(32)",t=>t.defaultTo("deny")).addColumn("organization_require_behavior","varchar(32)",t=>t.defaultTo("no_prompt")).addColumn("client_authentication_methods","text",t=>t.notNull()).addColumn("require_pushed_authorization_requests","integer",t=>t.defaultTo(0).notNull()).addColumn("require_proof_of_possession","integer",t=>t.defaultTo(0).notNull()).addColumn("signed_request_object","text",t=>t.notNull()).addColumn("compliance_level","varchar(64)").addColumn("par_request_expiry","integer").addColumn("token_quota","text",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("clients_tenant_id_client_id",["tenant_id","client_id"]).execute()}async function ou(e){await e.schema.dropTable("clients").execute()}const ru=Object.freeze(Object.defineProperty({__proto__:null,down:ou,up:nu},Symbol.toStringTag,{value:"Module"}));let qe=!1;function Me(e){qe=e}function w(...e){qe&&console.log(...e)}function A(...e){console.warn(...e)}async function Je(e){try{return await h.sql`SELECT VERSION()`.execute(e),"mysql"}catch{return"sqlite"}}async function su(e){await Je(e)==="mysql"?await iu(e):await cu(e)}async function iu(e){await e.transaction().execute(async t=>{const a=await h.sql`
2
2
  SELECT
3
3
  rc.CONSTRAINT_NAME,
4
4
  rc.TABLE_NAME