@authhero/kysely-adapter 10.110.0 → 10.111.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/kysely-adapter.cjs +29 -29
- package/dist/kysely-adapter.mjs +3423 -7857
- package/package.json +1 -2
package/dist/kysely-adapter.cjs
CHANGED
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
"use strict";var gr=Object.defineProperty;var ja=t=>{throw TypeError(t)};var wr=(t,e,a)=>e in t?gr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a;var he=(t,e,a)=>wr(t,typeof e!="symbol"?e+"":e,a),ra=(t,e,a)=>e.has(t)||ja("Cannot "+a);var i=(t,e,a)=>(ra(t,e,"read from private field"),a?a.call(t):e.get(t)),T=(t,e,a)=>e.has(t)?ja("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,a),S=(t,e,a,n)=>(ra(t,e,"write to private field"),n?n.call(t,a):e.set(t,a),a),N=(t,e,a)=>(ra(t,e,"access private method"),a);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const J=require("@authhero/adapter-interfaces");require("@hono/zod-openapi");var lt=class extends Error{constructor(e=500,a){super(a==null?void 0:a.message,{cause:a==null?void 0:a.cause});he(this,"res");he(this,"status");this.res=a==null?void 0:a.res,this.status=e}getResponse(){return this.res?new Response(this.res.body,{status:this.status,headers:this.res.headers}):new Response(this.message,{status:this.status})}};let yr="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",vr=t=>crypto.getRandomValues(new Uint8Array(t)),Nr=(t,e,a)=>{let n=(2<<Math.log2(t.length-1))-1,r=-~(1.6*n*e/t.length);return(o=e)=>{let s="";for(;;){let u=a(r),l=r|0;for(;l--;)if(s+=t[u[l]&n]||"",s.length>=o)return s}}},Cr=(t,e=21)=>Nr(t,e|0,vr),Q=(t=21)=>{let e="",a=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+=yr[a[t]&63];return e};function xr(t,e){return async(a,n)=>{const{identities:r,phone_verified:o,password:s,...u}=n,l={...u,login_count:u.login_count??0,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),tenant_id:a,email_verified:n.email_verified?1:0,phone_verified:o!==void 0?o?1:0:null,is_social:n.is_social?1:0,app_metadata:JSON.stringify(n.app_metadata),user_metadata:JSON.stringify(n.user_metadata),address:n.address?JSON.stringify(n.address):null};try{if(e.useTransactions===!1){if(await t.insertInto("users").values(l).execute(),s&&l.user_id){const _={id:Q(),user_id:l.user_id,password:s.hash,algorithm:s.algorithm,is_current:1,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),tenant_id:a};await t.insertInto("passwords").values(_).execute()}}else await t.transaction().execute(async _=>{if(await _.insertInto("users").values(l).execute(),s&&l.user_id){const m={id:Q(),user_id:l.user_id,password:s.hash,algorithm:s.algorithm,is_current:1,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),tenant_id:a};await _.insertInto("passwords").values(m).execute()}})}catch(_){throw _.code==="SQLITE_CONSTRAINT_UNIQUE"||_.message.includes("AlreadyExists")?new lt(409,{message:"User already exists"}):new lt(500,{message:`${_.code}, ${_.message}`})}return{...l,email:l.email||"",email_verified:l.email_verified===1,phone_verified:l.phone_verified!==null?l.phone_verified===1:void 0,is_social:l.is_social===1,address:n.address}}}function b(t){if(t==null||typeof t!="object")return t;if(Array.isArray(t))return t.map(a=>a!==null&&typeof a=="object"?b(a):a);const e={...t};for(const a in e){const n=e[a];n===null?delete e[a]:n!==null&&typeof n=="object"&&(Array.isArray(n)?e[a]=n.map(r=>r!==null&&typeof r=="object"?b(r):r):e[a]=b(n))}return e}const Tr=["email","email_verified","phone_number","phone_verified","username"];function zt(t,e=!1){const a={connection:t.connection,provider:t.provider,user_id:J.parseUserId(t.user_id).id,isSocial:!!t.is_social};for(const n of Tr)t[n]!==void 0&&t[n]!==null&&(a[n]=n.endsWith("_verified")?!!t[n]:t[n]);if(!e){let n={};try{n=JSON.parse(t.profileData||"{}")}catch(r){console.error("Error parsing profileData",r)}a.profileData={email:t.email,email_verified:!!t.email_verified,...n}}return a}function Sr(t){return async(e,a)=>{const[n,r]=await Promise.all([t.selectFrom("users").where("users.tenant_id","=",e).where("users.user_id","=",a).selectAll().executeTakeFirst(),t.selectFrom("users").where("users.tenant_id","=",e).where("users.linked_to","=",a).selectAll().orderBy("created_at","asc").execute()]);if(!n)return null;const{tenant_id:o,...s}=n,u={...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:[zt(n,!0),...r.map(l=>zt(l))]};return b(u)}}function W(t,e,a,n){const r=a.split(/ OR /i);if(r.length>1)return e.where(_=>{const m=r.map(d=>{const f=d.trim().match(/^([^:]+):(.+)$/);if(f){const[,h,y]=f;if(!h||!y)return null;const v=y.replace(/^"(.*)"$/,"$1");return _(h.trim(),"=",v.trim())}return null}).filter(Boolean);return _.or(m)});const o=[];let s="",u=!1;for(let _=0;_<a.length;_++){const m=a[_];m==='"'?(u=!u,s+=m):m===" "&&!u?s.trim()&&(o.push(s.trim()),s=""):s+=m}return s.trim()&&o.push(s.trim()),o.map(_=>_.replace(/^([^:]+)=/g,"$1:")).map(_=>{let m=_.startsWith("-"),d=null,f="",h=!1,y;if(_.startsWith("-_exists_:"))d=_.substring(10),h=!0,m=!0;else if(_.startsWith("_exists_:"))d=_.substring(9),h=!0,m=!1;else if(_.includes(":")){const v=m?_.substring(1):_,x=v.indexOf(":");d=v.substring(0,x),f=v.substring(x+1),h=!1,f.startsWith(">=")?(y=">=",f=f.substring(2)):f.startsWith(">")?(y=">",f=f.substring(1)):f.startsWith("<=")?(y="<=",f=f.substring(2)):f.startsWith("<")?(y="<",f=f.substring(1)):y="=",f.startsWith('"')&&f.endsWith('"')&&f.length>1&&(f=f.slice(1,-1))}else d=null,f=_,h=!1;return{key:d,value:f,isNegation:m,isExistsQuery:h,operator:y}}).forEach(({key:_,value:m,isNegation:d,isExistsQuery:f,operator:h})=>{if(_)if(f)d?e=e.where(_,"is",null):e=e.where(_,"is not",null);else if(d)switch(h){case">":e=e.where(_,"<=",m);break;case">=":e=e.where(_,"<",m);break;case"<":e=e.where(_,">=",m);break;case"<=":e=e.where(_,">",m);break;default:e=e.where(_,"!=",m)}else e=e.where(_,h,m);else if(m){const{ref:y}=t.dynamic,v=m.includes("|")?[...n,"user_id"]:n;e=e.where(x=>x.or(v.map(O=>O==="user_id"?x(y(O),"=",m):x(y(O),"like",`%${m}%`))))}}),e}function B(t){return typeof t=="string"?parseInt(t,10):typeof t=="bigint"?Number(t):t}function br(t){return async(e,a={})=>{const{page:n=0,per_page:r=50,include_totals:o=!1,sort:s,q:u}=a;let l=t.selectFrom("users").where("users.tenant_id","=",e);if(u&&(l=W(t,l,u,["email","name","phone_number"])),s&&s.sort_by){const{ref:v}=t.dynamic;l=l.orderBy(v(s.sort_by),s.sort_order)}const m=await l.offset(n*r).limit(r).selectAll().execute(),d=m.map(v=>v.user_id),f=d.length?await t.selectFrom("users").selectAll().where("users.tenant_id","=",e).where("users.linked_to","in",d).orderBy("created_at","asc").execute():[],h=m.map(v=>{const x=f.filter(O=>O.linked_to===v.user_id);return b({...v,email_verified:v.email_verified===1,phone_verified:v.phone_verified!==null?v.phone_verified===1:void 0,is_social:v.is_social===1,app_metadata:JSON.parse(v.app_metadata),user_metadata:JSON.parse(v.user_metadata),address:v.address?JSON.parse(v.address):void 0,identities:[zt(v,!0),...x.map(O=>zt(O))]})});if(!o)return{users:h,start:0,limit:0,length:0};const{count:y}=await l.select(v=>v.fn.countAll().as("count")).executeTakeFirstOrThrow();return{users:h,start:n*r,limit:r,length:B(y)}}}function Or(t){return async(e,a)=>(await t.deleteFrom("mfa_enrollments").where("mfa_enrollments.tenant_id","=",e).where("mfa_enrollments.user_id","in",r=>r.selectFrom("users").select("users.user_id").where("users.tenant_id","=",e).where(o=>o.or([o("users.user_id","=",a),o("users.linked_to","=",a)]))).execute(),await t.deleteFrom("users").where("users.tenant_id","=",e).where("users.linked_to","=",a).execute(),(await t.deleteFrom("users").where("users.tenant_id","=",e).where("users.user_id","=",a).execute()).length===1)}function _t(t,e="",a={}){for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){const r=e?`${e}_${n}`:n,o=t[n];typeof o=="object"&&o!==null&&!Array.isArray(o)?_t(o,r,a):typeof o=="boolean"?a[r]=o?1:0:a[r]=o}return a}function fn(t,e){const a={};for(const[n,r]of Object.entries(t)){const o=e.find(s=>n.startsWith(`${s}_`));if(!o)a[n]=r;else{const s=n.slice(o.length+1);a[o]={...a[o],[s]:r}}}return a}function kr(t){return async(e,a,n)=>{const r=_t({...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 t.updateTable("users").set(r).where("users.tenant_id","=",e).where("users.user_id","=",a).execute()).length===1}}function Er(t){return async(e,a,n,r)=>{const o={linked_to:null};return(await t.updateTable("users").set(o).where("users.tenant_id","=",e).where("users.user_id","=",`${n}|${r}`).where("users.linked_to","=",`${a}`).execute()).length===1}}function Ir(t,e){return{create:xr(t,e),remove:Or(t),get:Sr(t),list:br(t),update:kr(t),unlink:Er(t)}}function $r(t){return async(e,a)=>{const n=new Date().toISOString(),r=J.flowSchema.parse({id:`af_${Q()}`,...a,actions:a.actions||[],created_at:n,updated_at:n});return await t.insertInto("flows").values({...r,tenant_id:e,actions:JSON.stringify(r.actions)}).execute(),r}}function ze(t,e){if(!t)return e;try{return JSON.parse(t)}catch{return e}}function pn(t,e,a={...t}){for(const n in e)n in t&&(a[n]=ze(t[n],e[n]));return a}function Ar(t){return async(e,a)=>{const n=await t.selectFrom("flows").selectAll().where("flows.id","=",a).where("tenant_id","=",e).executeTakeFirst();if(!n)return null;const r={...n,actions:ze(n.actions,[])};return J.flowSchema.parse(b(r))}}function Dr(t){return async(e,a={})=>{const{page:n=0,per_page:r=50,include_totals:o=!1,q:s}=a;let u=t.selectFrom("flows").where("tenant_id","=",e);s&&(u=W(t,u,s,[]));const m=(await u.offset(n*r).limit(r).selectAll().execute()).map(f=>{const h={...f,actions:ze(f.actions,[])};return J.flowSchema.parse(b(h))});if(!o)return{flows:m,start:0,limit:0,length:0};const{count:d}=await u.select(f=>f.fn.countAll().as("count")).executeTakeFirstOrThrow();return{flows:m,start:n*r,limit:r,length:B(d)}}}function Pr(t){return async(e,a,n)=>{const r={...n,updated_at:new Date().toISOString()};n.actions!==void 0&&(r.actions=JSON.stringify(n.actions));const{numUpdatedRows:o}=await t.updateTable("flows").set(r).where("id","=",a).where("tenant_id","=",e).executeTakeFirst();if(o===0n)return null;const s=await t.selectFrom("flows").selectAll().where("id","=",a).where("tenant_id","=",e).executeTakeFirst();return s?J.flowSchema.parse({...s,actions:s.actions?JSON.parse(s.actions):[]}):null}}function Rr(t){return async(e,a)=>{var r;return(((r=(await t.deleteFrom("flows").where("id","=",a).where("tenant_id","=",e).execute())[0])==null?void 0:r.numDeletedRows)??0n)>0n}}function zr(t){return{create:$r(t),get:Ar(t),list:Dr(t),update:Pr(t),remove:Rr(t)}}function $t(t,e,a={...t}){for(const n of e)t[n]!==void 0&&(a[n]=JSON.stringify(t[n]));return a}function gn(t,e,a=t){for(const n of e)t[n]!==void 0&&(a[n]=t[n]?1:0)}function Fr(t){const e={};for(const a in t)t[a]!==void 0&&t[a]!==null&&(e[a]=t[a]);return e}function wn(t){const e={...t};return t.session_cookie&&typeof t.session_cookie=="string"&&(e.session_cookie=JSON.parse(t.session_cookie)),t.enabled_locales&&typeof t.enabled_locales=="string"&&(e.enabled_locales=JSON.parse(t.enabled_locales)),t.error_page&&typeof t.error_page=="string"&&(e.error_page=JSON.parse(t.error_page)),t.flags&&typeof t.flags=="string"&&(e.flags=JSON.parse(t.flags)),t.sandbox_versions_available&&typeof t.sandbox_versions_available=="string"&&(e.sandbox_versions_available=JSON.parse(t.sandbox_versions_available)),t.change_password&&typeof t.change_password=="string"&&(e.change_password=JSON.parse(t.change_password)),t.guardian_mfa_page&&typeof t.guardian_mfa_page=="string"&&(e.guardian_mfa_page=JSON.parse(t.guardian_mfa_page)),t.sessions&&typeof t.sessions=="string"&&(e.sessions=JSON.parse(t.sessions)),t.oidc_logout&&typeof t.oidc_logout=="string"&&(e.oidc_logout=JSON.parse(t.oidc_logout)),t.device_flow&&typeof t.device_flow=="string"&&(e.device_flow=JSON.parse(t.device_flow)),t.default_token_quota&&typeof t.default_token_quota=="string"&&(e.default_token_quota=JSON.parse(t.default_token_quota)),t.allowed_logout_urls&&typeof t.allowed_logout_urls=="string"&&(e.allowed_logout_urls=JSON.parse(t.allowed_logout_urls)),t.acr_values_supported&&typeof t.acr_values_supported=="string"&&(e.acr_values_supported=JSON.parse(t.acr_values_supported)),t.mtls&&typeof t.mtls=="string"&&(e.mtls=JSON.parse(t.mtls)),t.mfa&&typeof t.mfa=="string"&&(e.mfa=JSON.parse(t.mfa)),t.allow_organization_name_in_authentication_api!==void 0&&(e.allow_organization_name_in_authentication_api=t.allow_organization_name_in_authentication_api===1),t.customize_mfa_in_postlogin_action!==void 0&&(e.customize_mfa_in_postlogin_action=t.customize_mfa_in_postlogin_action===1),t.pushed_authorization_requests_supported!==void 0&&(e.pushed_authorization_requests_supported=t.pushed_authorization_requests_supported===1),t.authorization_response_iss_parameter_supported!==void 0&&(e.authorization_response_iss_parameter_supported=t.authorization_response_iss_parameter_supported===1),b(e)}function yn(t){const e={...t};return $t(t,["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"],e),t.allow_organization_name_in_authentication_api!==void 0&&(e.allow_organization_name_in_authentication_api=t.allow_organization_name_in_authentication_api?1:0),t.customize_mfa_in_postlogin_action!==void 0&&(e.customize_mfa_in_postlogin_action=t.customize_mfa_in_postlogin_action?1:0),t.pushed_authorization_requests_supported!==void 0&&(e.pushed_authorization_requests_supported=t.pushed_authorization_requests_supported?1:0),t.authorization_response_iss_parameter_supported!==void 0&&(e.authorization_response_iss_parameter_supported=t.authorization_response_iss_parameter_supported?1:0),Fr(e)}function Lr(t){return async e=>{var r,o;const a={id:e.id||Q(),created_at:new Date().toISOString(),updated_at:new Date().toISOString(),...e},n=yn(a);try{await t.insertInto("tenants").values(n).execute()}catch(s){throw(r=s==null?void 0:s.message)!=null&&r.includes("UNIQUE constraint failed")||(o=s==null?void 0:s.message)!=null&&o.includes("duplicate key")||(s==null?void 0:s.code)==="SQLITE_CONSTRAINT"||(s==null?void 0:s.code)==="23505"?new lt(409,{message:`Tenant with ID '${a.id}' already exists`}):s}return a}}function Mr(t){return async e=>{const a=await t.selectFrom("tenants").where("tenants.id","=",e).selectAll().executeTakeFirst();return a?wn(a):null}}function jr(t){return async e=>{let a=t.selectFrom("tenants");const{page:n=0,per_page:r=50,include_totals:o=!1,sort:s,q:u}=e;if(s&&s.sort_by){const{ref:h}=t.dynamic;a=a.orderBy(h(s.sort_by),s.sort_order)}u&&(a=W(t,a,u,["friendly_name"]));const m=(await a.offset(n*r).limit(r).selectAll().execute()).map(wn);if(!o)return{tenants:m};const{count:d}=await a.select(h=>h.fn.countAll().as("count")).executeTakeFirstOrThrow(),f=B(d);return{tenants:m,start:n*r,limit:r,length:f}}}function Jr(t){return async(e,a)=>{const r={...yn(a),id:e,updated_at:new Date().toISOString()};await t.updateTable("tenants").set(r).where("id","=",e).execute()}}function qr(t){return async e=>(await t.deleteFrom("tenants").where("tenants.id","=",e).execute()).length===1}function Wr(t){return{create:Lr(t),get:Mr(t),list:jr(t),update:Jr(t),remove:qr(t)}}function Ja(t){return t?JSON.stringify(t):void 0}const Br=256;function Ur(t){return async(e,a)=>{var u,l,_;const n=(u=a.user_agent)==null?void 0:u.slice(0,Br),r=a.log_id||Q(),{location_info:o,...s}=a;return await t.insertInto("logs").values({...s,log_id:r,tenant_id:e,user_agent:n,description:(l=a.description)==null?void 0:l.substring(0,256),isMobile:a.isMobile?1:0,scope:a.scope,auth0_client:Ja(a.auth0_client),details:(_=Ja(a.details))==null?void 0:_.substring(0,8192),country_code:o==null?void 0:o.country_code,city_name:o==null?void 0:o.city_name,latitude:o==null?void 0:o.latitude,longitude:o==null?void 0:o.longitude,time_zone:o==null?void 0:o.time_zone,continent_code:o==null?void 0:o.continent_code}).execute(),{...a,log_id:r,user_agent:n}}}function qa(t){if(!t)return"";try{return JSON.parse(t)}catch{return t}}function vn(t){return{...t,client_id:t.client_id,client_name:"",auth0_client:qa(t.auth0_client),details:qa(t.details),isMobile:!!t.isMobile,scope:t.scope||void 0,log_id:t.log_id,location_info:t.country_code?{country_code:t.country_code,city_name:t.city_name||"",latitude:t.latitude||"",longitude:t.longitude||"",time_zone:t.time_zone||"",continent_code:t.continent_code||""}:void 0}}function Kr(t){return async(e,a={})=>{const{page:n=0,per_page:r=50,include_totals:o=!1,sort:s,q:u}=a;let l=t.selectFrom("logs").where("logs.tenant_id","=",e);u&&(l=W(t,l,u,["user_id","ip"]));let _=l;if(s&&s.sort_by){const{ref:h}=t.dynamic;_=_.orderBy(h(s.sort_by),s.sort_order)}_=_.offset(n*r).limit(r);const d=(await _.selectAll().execute()).map(vn);if(!o)return{logs:d,start:0,limit:0,length:0};const{count:f}=await l.select(h=>h.fn.countAll().as("count")).executeTakeFirstOrThrow();return{logs:d,start:n*r,limit:r,length:B(f)}}}function Qr(t){return async(e,a)=>{const n=await t.selectFrom("logs").where("logs.tenant_id","=",e).where("logs.log_id","=",a).selectAll().executeTakeFirst();return n?vn(n):null}}function Vr(t){return{create:Ur(t),list:Kr(t),get:Qr(t)}}function Nn(t){if(t!=null){if(typeof t=="number")return new Date(t).toISOString();if(typeof t=="string"){if(t==="")return;const e=parseFloat(t);return!isNaN(e)&&/^\d+(\.\d+)?$/.test(t)?new Date(e).toISOString():t}}}function Ct(t,e=new Date(0).toISOString()){return Nn(t)??e}function P(t){if(!t||t==="")return null;const e=new Date(t);return isNaN(e.getTime())?null:e.getTime()}function ka(){return new Date().toISOString()}function Le(t,e,a=[]){const n={};for(const r of e){const o=r.replace(/_ts$/,"");n[o]=Ct(t[r])}for(const r of a){const o=r.replace(/_ts$/,"");n[o]=Nn(t[r])}return n}function Gr(t){return async(e,a)=>{const n=await t.selectFrom("sessions").where("sessions.tenant_id","=",e).where("sessions.id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:r,device:o,clients:s,created_at_ts:u,updated_at_ts:l,expires_at_ts:_,idle_expires_at_ts:m,authenticated_at_ts:d,last_interaction_at_ts:f,used_at_ts:h,revoked_at_ts:y,...v}=n,x=Le({created_at_ts:u,updated_at_ts:l,expires_at_ts:_,idle_expires_at_ts:m,authenticated_at_ts:d,last_interaction_at_ts:f,used_at_ts:h,revoked_at_ts:y},["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{...v,...x,device:JSON.parse(o),clients:JSON.parse(s)}}}function Hr(t){return async(e,a)=>{const n=Date.now(),r=ka(),o={...a,created_at:r,updated_at:r,authenticated_at:r,last_interaction_at:r},{expires_at:s,idle_expires_at:u,used_at:l,revoked_at:_,device:m,clients:d,...f}=a;return await t.insertInto("sessions").values({...f,tenant_id:e,created_at_ts:n,updated_at_ts:n,authenticated_at_ts:n,last_interaction_at_ts:n,expires_at_ts:P(s),idle_expires_at_ts:P(u),used_at_ts:P(l),revoked_at_ts:P(_),device:JSON.stringify(m),clients:JSON.stringify(d)}).execute(),o}}function Yr(t){return async(e,a)=>!!(await t.deleteFrom("sessions").where("tenant_id","=",e).where("sessions.id","=",a).execute()).length}function Xr(t){return async(e,a,n)=>{const r={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&&(r.expires_at_ts=P(n.expires_at)),n.idle_expires_at!==void 0&&(r.idle_expires_at_ts=P(n.idle_expires_at)),n.authenticated_at!==void 0&&(r.authenticated_at_ts=P(n.authenticated_at)),n.last_interaction_at!==void 0&&(r.last_interaction_at_ts=P(n.last_interaction_at)),n.used_at!==void 0&&(r.used_at_ts=P(n.used_at)),n.revoked_at!==void 0&&(r.revoked_at_ts=P(n.revoked_at)),n.user_id!==void 0&&(r.user_id=n.user_id),n.login_session_id!==void 0&&(r.login_session_id=n.login_session_id),!!(await t.updateTable("sessions").set(r).where("tenant_id","=",e).where("sessions.id","=",a).execute()).length}}function Zr(t){return async(e,a={})=>{const{page:n=0,per_page:r=50,include_totals:o=!1,sort:s,q:u}=a;let l=t.selectFrom("sessions").where("sessions.tenant_id","=",e);u&&(l=W(t,l,u,["user_id","session_id"]));let _=l;if(s&&s.sort_by){const{ref:y}=t.dynamic;_=_.orderBy(y(s.sort_by),s.sort_order)}_=_.offset(n*r).limit(r);const d=(await _.selectAll().execute()).map(y=>{const{tenant_id:v,device:x,clients:O,created_at_ts:q,updated_at_ts:R,expires_at_ts:V,idle_expires_at_ts:ae,authenticated_at_ts:X,last_interaction_at_ts:Oe,used_at_ts:Ma,revoked_at_ts:hr,...fr}=y,pr=Le({created_at_ts:q,updated_at_ts:R,expires_at_ts:V,idle_expires_at_ts:ae,authenticated_at_ts:X,last_interaction_at_ts:Oe,used_at_ts:Ma,revoked_at_ts:hr},["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{...fr,...pr,device:JSON.parse(x),clients:JSON.parse(O)}});if(!o)return{sessions:d,start:0,limit:0,length:0};const{count:f}=await l.select(y=>y.fn.countAll().as("count")).executeTakeFirstOrThrow(),h=B(f);return{sessions:d,start:n*r,limit:r,length:h}}}function eo(t){return{create:Hr(t),get:Gr(t),list:Zr(t),remove:Yr(t),update:Xr(t)}}function to(t){return async(e,a)=>{const n=await t.selectFrom("passwords").where("passwords.tenant_id","=",e).where("passwords.user_id","=",a).where("passwords.is_current","=",1).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:r,...o}=n;return{...o,is_current:!!o.is_current}}}function ao(t){return async(e,a)=>{const n=a.id||Q(),r=a.is_current??!0,o={id:n,...a,is_current:r,created_at:new Date().toISOString(),updated_at:new Date().toISOString()};return r&&await t.updateTable("passwords").set({is_current:0}).where("user_id","=",a.user_id).where("tenant_id","=",e).where("is_current","=",1).execute(),await t.insertInto("passwords").values({...o,is_current:o.is_current?1:0,tenant_id:e}).execute(),o}}function no(t){return async(e,a)=>{let n=t.updateTable("passwords").set({password:a.password,algorithm:a.algorithm,is_current:a.is_current?1:0,updated_at:new Date().toISOString()}).where("tenant_id","=",e).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 ro(t){return async(e,a,n)=>{let r=t.selectFrom("passwords").where("passwords.tenant_id","=",e).where("passwords.user_id","=",a).orderBy("created_at","desc");return n&&(r=r.limit(n)),(await r.selectAll().execute()).map(({tenant_id:s,...u})=>({...u,is_current:!!u.is_current}))}}function oo(t){return{create:ao(t),update:no(t),get:to(t),list:ro(t)}}function so(t){return async(e,a={})=>{const{page:n=0,per_page:r=50,include_totals:o=!1,q:s}=a;let u=t.selectFrom("codes").where("codes.tenant_id","=",e);s&&(u=W(t,u,s,["code","login_id"]));const m=(await u.offset(n*r).limit(r).selectAll().execute()).map(f=>{const{tenant_id:h,...y}=f;return J.codeSchema.parse(b(y))});if(!o)return{codes:m,start:0,limit:0,length:0};const{count:d}=await u.select(f=>f.fn.countAll().as("count")).executeTakeFirstOrThrow();return{codes:m,start:n*r,limit:r,length:B(d)}}}function io(t){return async(e,a)=>{const n={...a,created_at:new Date().toISOString()};return await t.insertInto("codes").values({...n,tenant_id:e}).execute(),n}}function co(t){return async(e,a)=>(await t.deleteFrom("codes").where("codes.tenant_id","=",e).where("codes.code_id","=",a).executeTakeFirst()).numDeletedRows>0}function uo(t){return async(e,a,n)=>{let r=t.selectFrom("codes").where("codes.code_id","=",a).where("codes.code_type","=",n);e.length&&(r=r.where("codes.tenant_id","=",e));const o=await r.selectAll().executeTakeFirst();return o?b(o):null}}function lo(t){return async(e,a)=>(await t.updateTable("codes").set({used_at:new Date().toISOString()}).where("codes.tenant_id","=",e).where("codes.code_id","=",a).executeTakeFirst()).numUpdatedRows>0}function _o(t){return async(e,a)=>(await t.updateTable("codes").set({used_at:new Date().toISOString()}).where("codes.tenant_id","=",e).where("codes.code_id","=",a).where("codes.used_at","is",null).executeTakeFirst()).numUpdatedRows>0}function mo(t){return{create:io(t),list:so(t),remove:co(t),used:lo(t),consume:_o(t),get:uo(t)}}const ho=17,fo={organization:"org_",connection:"con_",action:"act_",hook:"h_",rule:"rul_",resource_server:"api_",guardian_factor:"gfa_",invite:"inv_"};function At(t){const n=Cr("0123456789abcdefghijklmnopqrstuvwxyz",ho)();return`${fo[t]}${n}`}function po(){return At("organization")}function go(){return At("connection")}function wo(){return At("hook")}function yo(){return At("resource_server")}function vo(){return At("invite")}function No(t){return async(e,a)=>{const{is_system:n,...r}=a,o={id:r.id||go(),...r,is_system:n?!0:void 0,created_at:new Date().toISOString(),updated_at:new Date().toISOString()};return await t.insertInto("connections").values({...o,is_system:n?1:0,options:JSON.stringify(o.options||{}),tenant_id:e}).execute(),o}}function Ea(t){const{is_system:e,...a}=t;return b({...a,is_system:e?!0:void 0,options:JSON.parse(t.options)})}function Co(t){return t.map(Ea)}function xo(t){return async(e,a={})=>{const{page:n=0,per_page:r=50,include_totals:o=!1,q:s}=a;let u=t.selectFrom("connections").where("connections.tenant_id","=",e);s&&(u=W(t,u,s,["user_id","ip"]));const _=await u.offset(n*r).limit(r).selectAll().execute(),m=Co(_);if(!o)return{connections:m,start:0,limit:0,length:0};const{count:d}=await u.select(f=>f.fn.countAll().as("count")).executeTakeFirstOrThrow();return{connections:m,start:n*r,limit:r,length:B(d)}}}function To(t){return async(e,a)=>(await t.deleteFrom("connections").where("connections.tenant_id","=",e).where("connections.id","=",a).executeTakeFirst()).numDeletedRows>0}function So(t){return async(e,a)=>{const n=await t.selectFrom("connections").where("connections.tenant_id","=",e).where("connections.id","=",a).selectAll().executeTakeFirst();return n?Ea(n):null}}function bo(t){return async(e,a,n)=>{const{is_system:r,...o}=n,s={...o,is_system:r!==void 0?r?1:0:void 0,updated_at:new Date().toISOString()};return await t.updateTable("connections").set({...s,options:s.options?JSON.stringify(s.options):void 0}).where("connections.id","=",a).where("connections.tenant_id","=",e).execute(),!0}}function Oo(t){return{create:No(t),get:So(t),list:xo(t),remove:To(t),update:bo(t)}}function ko(t){return async(e,a)=>{const n={created_at:new Date().toISOString(),updated_at:new Date().toISOString(),...a,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??!0,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},r={...n,tenant_id:e};return gn(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"],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||{})}),await t.insertInto("clients").values(r).execute(),n}}function Eo(t){return async(e,a)=>{const n=await t.selectFrom("clients").where("clients.tenant_id","=",e).where("clients.client_id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:r,...o}=n;return b({...o,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,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)})}}function Io(t){return async e=>{const a=await t.selectFrom("clients").where("clients.client_id","=",e).selectAll().executeTakeFirst();return a?b({...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,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)}):null}}function $o(t){return async(e,a)=>{let n=t.selectFrom("clients").where("clients.tenant_id","=",e);return a!=null&&a.per_page&&(n=n.limit(a.per_page)),a!=null&&a.page&&(a!=null&&a.per_page)&&(n=n.offset((a.page-1)*a.per_page)),{clients:(await n.selectAll().execute()).map(s=>({...s,global:!!s.global,is_first_party:!!s.is_first_party,oidc_conformant:!!s.oidc_conformant,auth0_conformant:!!s.auth0_conformant,sso:!!s.sso,sso_disabled:!!s.sso_disabled,cross_origin_authentication:!!s.cross_origin_authentication,custom_login_page_on:!!s.custom_login_page_on,require_pushed_authorization_requests:!!s.require_pushed_authorization_requests,require_proof_of_possession:!!s.require_proof_of_possession,callbacks:JSON.parse(s.callbacks),allowed_origins:JSON.parse(s.allowed_origins),web_origins:JSON.parse(s.web_origins),client_aliases:JSON.parse(s.client_aliases),allowed_clients:JSON.parse(s.allowed_clients),connections:JSON.parse(s.connections||"[]"),allowed_logout_urls:JSON.parse(s.allowed_logout_urls),session_transfer:JSON.parse(s.session_transfer),oidc_logout:JSON.parse(s.oidc_logout),grant_types:JSON.parse(s.grant_types),jwt_configuration:JSON.parse(s.jwt_configuration),signing_keys:JSON.parse(s.signing_keys),encryption_key:JSON.parse(s.encryption_key),addons:JSON.parse(s.addons),client_metadata:JSON.parse(s.client_metadata),mobile:JSON.parse(s.mobile),native_social_login:JSON.parse(s.native_social_login),refresh_token:JSON.parse(s.refresh_token),default_organization:JSON.parse(s.default_organization),client_authentication_methods:JSON.parse(s.client_authentication_methods),signed_request_object:JSON.parse(s.signed_request_object),token_quota:JSON.parse(s.token_quota)}))}}}function Ao(t){return async(e,a)=>(await t.deleteFrom("clients").where("clients.tenant_id","=",e).where("clients.client_id","=",a).executeTakeFirst()).numDeletedRows>0}function Do(t){return async(e,a,n)=>{const r={...n,updated_at:new Date().toISOString()};return gn(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"],r),$t(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"],r),(await t.updateTable("clients").set(r).where("clients.tenant_id","=",e).where("clients.client_id","=",a).executeTakeFirst()).numUpdatedRows>0}}function Po(t){return{create:ko(t),get:Eo(t),getByClientId:Io(t),list:$o(t),remove:Ao(t),update:Do(t)}}function Ro(t){return async(e,a)=>{const n=await t.selectFrom("clients").where("clients.tenant_id","=",e).where("clients.client_id","=",a).select("connections").executeTakeFirst();if(!n)return[];const r=JSON.parse(n.connections||"[]");if(r.length===0)return[];const o=await t.selectFrom("connections").where("connections.tenant_id","=",e).where("connections.id","in",r).selectAll().execute(),s=new Map(o.map(u=>[u.id,Ea(u)]));return r.map(u=>s.get(u)).filter(u=>u!==void 0)}}function zo(t){return async(e,a,n)=>(await t.updateTable("clients").set({connections:JSON.stringify(n),updated_at:new Date().toISOString()}).where("clients.tenant_id","=",e).where("clients.client_id","=",a).executeTakeFirst()).numUpdatedRows>0}function Fo(t){return async(e,a)=>{const n=await t.selectFrom("clients").where("clients.tenant_id","=",e).select(["client_id","connections"]).execute(),r=[];for(const o of n)JSON.parse(o.connections||"[]").includes(a)&&r.push(o.client_id);return r}}function Lo(t){return async(e,a,n)=>{const r=await t.selectFrom("clients").where("clients.tenant_id","=",e).where("clients.client_id","=",n).select("connections").executeTakeFirst();if(!r)return!1;const o=JSON.parse(r.connections||"[]");return o.includes(a)?!0:(o.push(a),(await t.updateTable("clients").set({connections:JSON.stringify(o),updated_at:new Date().toISOString()}).where("clients.tenant_id","=",e).where("clients.client_id","=",n).executeTakeFirst()).numUpdatedRows>0)}}function Mo(t){return async(e,a,n)=>{const r=await t.selectFrom("clients").where("clients.tenant_id","=",e).where("clients.client_id","=",n).select("connections").executeTakeFirst();if(!r)return!1;const o=JSON.parse(r.connections||"[]"),s=o.filter(u=>u!==a);return s.length!==o.length?(await t.updateTable("clients").set({connections:JSON.stringify(s),updated_at:new Date().toISOString()}).where("clients.tenant_id","=",e).where("clients.client_id","=",n).executeTakeFirst()).numUpdatedRows>0:!0}}function jo(t){return{listByClient:Ro(t),updateByClient:zo(t),listByConnection:Fo(t),addClientToConnection:Lo(t),removeClientFromConnection:Mo(t)}}function Jo(t){return async(e,a)=>{const n=new Date().toISOString(),r=Q(),{scope:o,authorization_details_types:s,...u}=a,l={id:r,tenant_id:e,...u,scope:o?JSON.stringify(o):"[]",authorization_details_types:s?JSON.stringify(s):"[]",allow_any_organization:u.allow_any_organization!==void 0?u.allow_any_organization?1:0:void 0,is_system:u.is_system!==void 0?u.is_system?1:0:void 0,created_at:n,updated_at:n};return await t.insertInto("client_grants").values(l).execute(),b({id:r,tenant_id:e,...u,scope:o||[],authorization_details_types:s||[],allow_any_organization:u.allow_any_organization??!1,is_system:u.is_system??!1,created_at:n,updated_at:n})}}function qo(t){return async(e,a)=>{const n=await t.selectFrom("client_grants").selectAll().where("client_grants.tenant_id","=",e).where("client_grants.id","=",a).executeTakeFirst();if(!n)return null;const r={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 b(r)}}function Wo(t){return async(e,a={})=>{const{page:n=0,per_page:r=50,include_totals:o=!1,q:s,sort:u}=a;let l=t.selectFrom("client_grants").where("client_grants.tenant_id","=",e);if(s){const h=s.trim(),y=h.split(/\s+/),v=y.length===1?y[0]:void 0,x=v?v.match(/^(-)?([a-zA-Z_][a-zA-Z0-9_]*):"?([^"]*)"?$/):null,O=x?x[3]:"",q=/^(>=|>|<=|<)/.test(O||"");if(x&&!q&&O){const R=!!x[1],V=x[2],{ref:ae}=t.dynamic,X=ae(`client_grants.${V}`);if(V==="allow_any_organization"){const Oe=O==="true"?1:0;R?l=l.where(X,"!=",Oe):l=l.where(X,"=",Oe)}else R?l=l.where(X,"!=",O):l=l.where(X,"=",O)}else l=W(t,l,h,[])}let _=l;if(u){const{ref:h}=t.dynamic;_=_.orderBy(h(u.sort_by),u.sort_order)}else _=_.orderBy("client_grants.created_at","desc");_=_.limit(r).offset(n*r);const d=(await _.selectAll().execute()).map(h=>{const y={id:h.id,client_id:h.client_id,audience:h.audience,scope:h.scope?JSON.parse(h.scope):[],organization_usage:h.organization_usage,allow_any_organization:h.allow_any_organization!==void 0?!!h.allow_any_organization:!1,is_system:h.is_system!==void 0?!!h.is_system:!1,subject_type:h.subject_type,authorization_details_types:h.authorization_details_types?JSON.parse(h.authorization_details_types):[],created_at:h.created_at,updated_at:h.updated_at};return b(y)});if(!o)return{client_grants:d,start:0,limit:0,length:0};const{count:f}=await l.select(h=>h.fn.countAll().as("count")).executeTakeFirstOrThrow();return{client_grants:d,start:n*r,limit:r,length:B(f)}}}function Bo(t){return async(e,a)=>((await t.deleteFrom("client_grants").where("client_grants.tenant_id","=",e).where("client_grants.id","=",a).executeTakeFirst()).numDeletedRows??0n)>0n}function Uo(t){return async(e,a,n)=>{const r=new Date().toISOString(),{scope:o,authorization_details_types:s,...u}=n,l={...u,updated_at:r};return o!==void 0&&(l.scope=JSON.stringify(o)),s!==void 0&&(l.authorization_details_types=JSON.stringify(s)),u.allow_any_organization!==void 0&&(l.allow_any_organization=u.allow_any_organization?1:0),u.is_system!==void 0&&(l.is_system=u.is_system?1:0),((await t.updateTable("client_grants").set(l).where("client_grants.tenant_id","=",e).where("client_grants.id","=",a).executeTakeFirst()).numUpdatedRows??0n)>0n}}function Ko(t){return{create:Jo(t),get:qo(t),list:Wo(t),remove:Bo(t),update:Uo(t)}}function Qo(t){return async(e={})=>{const{page:a=0,per_page:n=100,include_totals:r=!1,sort:o,q:s}=e;let u=t.selectFrom("keys").where(h=>h.or([h("revoked_at",">",new Date().toISOString()),h("revoked_at","is",null)]));s&&(u=W(t,u,s,["kid","connection","fingerprint","thumbprint","type"]));let l=u.select(h=>h.fn.count("kid").as("count"));const _=a*n;u=u.limit(n).offset(_),o&&(u=u.orderBy(o.sort_by,o.sort_order));const m=await u.selectAll().execute();if(!r)return{signingKeys:m,start:0,limit:0,length:0};const d=await l.executeTakeFirst(),f=B((d==null?void 0:d.count)??0);return{signingKeys:m,start:_,limit:n,length:f}}}function Vo(t){return async e=>{await t.insertInto("keys").values({...e,created_at:new Date().toDateString()}).execute()}}function Go(t){return async(e,a)=>!!(await t.updateTable("keys").set(a).where("kid","=",e).execute()).length}function Ho(t){return{create:Vo(t),list:Qo(t),update:Go(t)}}function Yo(t){return async(e,a)=>{const n={custom_domain_id:a.custom_domain_id||Q(),status:"pending",primary:!1,...a};return await t.insertInto("custom_domains").values({...n,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),tenant_id:e,primary:n.primary?1:0,domain_metadata:n.domain_metadata?JSON.stringify(n.domain_metadata):void 0}).execute(),n}}function Xo(t){return async e=>(await t.selectFrom("custom_domains").where("custom_domains.tenant_id","=",e).selectAll().execute()).map(n=>({...n,primary:n.primary===1,domain_metadata:ze(n.domain_metadata,void 0)}))}function Zo(t){return async(e,a)=>(await t.deleteFrom("custom_domains").where("custom_domains.tenant_id","=",e).where("custom_domains.custom_domain_id","=",a).execute()).length>0}function es(t){return async(e,a)=>{const n=await t.selectFrom("custom_domains").where("custom_domains.tenant_id","=",e).where("custom_domains.custom_domain_id","=",a).selectAll().executeTakeFirst();return n?{...n,primary:n.primary===1,domain_metadata:ze(n.domain_metadata,void 0),verification:ze(n.verification,void 0)}:null}}function ts(t){return async(e,a,n)=>{const{verification:r,domain_metadata:o,primary:s,...u}=n,l={...u,updated_at:new Date().toISOString(),...s!==void 0&&{primary:s?1:0},...o!==void 0&&{domain_metadata:JSON.stringify(o)},...r!==void 0&&{verification:JSON.stringify(r)}};return(await t.updateTable("custom_domains").set(l).where("custom_domains.tenant_id","=",e).where("custom_domains.custom_domain_id","=",a).execute()).length>0}}function as(t){return async e=>{const a=await t.selectFrom("custom_domains").where("custom_domains.domain","=",e).selectAll().executeTakeFirst();return a?{...a,primary:a.primary===1,domain_metadata:ze(a.domain_metadata,void 0)}:null}}function ns(t){return{create:Yo(t),get:es(t),getByDomain:as(t),list:Xo(t),remove:Zo(t),update:ts(t)}}function rs(t){return async e=>{const[a]=await t.selectFrom("branding").where("branding.tenant_id","=",e).selectAll().execute();if(!a)return null;const{tenant_id:n,colors_primary:r,colors_page_background_type:o,colors_page_background_start:s,colors_page_background_end:u,colors_page_background_angle_dev:l,font_url:_,...m}=a;return b({...m,colors:{primary:r,page_background:{type:o,start:s,end:u,angle_deg:l}},font:_?{url:_}:void 0})}}function os(t){return async(e,a)=>{var s,u,l,_,m,d,f,h,y,v,x,O,q,R,V,ae,X,Oe;const{colors:n,font:r,...o}=a;try{await t.insertInto("branding").values({...o,colors_primary:n==null?void 0:n.primary,colors_page_background_type:(u=(s=a.colors)==null?void 0:s.page_background)==null?void 0:u.type,colors_page_background_start:(_=(l=a.colors)==null?void 0:l.page_background)==null?void 0:_.start,colors_page_background_end:(d=(m=a.colors)==null?void 0:m.page_background)==null?void 0:d.end,colors_page_background_angle_dev:(h=(f=a.colors)==null?void 0:f.page_background)==null?void 0:h.angle_deg,font_url:(y=a.font)==null?void 0:y.url,tenant_id:e}).execute()}catch{await t.updateTable("branding").set({...o,colors_primary:n==null?void 0:n.primary,colors_page_background_type:(x=(v=a.colors)==null?void 0:v.page_background)==null?void 0:x.type,colors_page_background_start:(q=(O=a.colors)==null?void 0:O.page_background)==null?void 0:q.start,colors_page_background_end:(V=(R=a.colors)==null?void 0:R.page_background)==null?void 0:V.end,colors_page_background_angle_dev:(X=(ae=a.colors)==null?void 0:ae.page_background)==null?void 0:X.angle_deg,font_url:(Oe=a.font)==null?void 0:Oe.url}).where("tenant_id","=",e).execute()}}}function ss(t){return{get:rs(t),set:os(t)}}function is(t){return async e=>{const a=await t.selectFrom("universal_login_templates").select(["body"]).where("tenant_id","=",e).executeTakeFirst();return a?{body:a.body}:null}}function cs(t){return async(e,a)=>{const n=Date.now();try{await t.insertInto("universal_login_templates").values({tenant_id:e,body:a.body,created_at_ts:n,updated_at_ts:n}).execute()}catch{await t.updateTable("universal_login_templates").set({body:a.body,updated_at_ts:n}).where("tenant_id","=",e).execute()}}}function us(t){return async e=>{await t.deleteFrom("universal_login_templates").where("tenant_id","=",e).execute()}}function ls(t){return{get:is(t),set:cs(t),delete:us(t)}}function ds(t){return async(e,a={})=>{const{page:n=0,per_page:r=50,include_totals:o=!1,q:s}=a;let u=t.selectFrom("hooks").where("hooks.tenant_id","=",e);s&&(u=W(t,u,s,["url","form_id","template_id"]));const m=(await u.offset(n*r).limit(r).selectAll().execute()).map(f=>{const{tenant_id:h,enabled:y,synchronous:v,created_at_ts:x,updated_at_ts:O,...q}=f,R=Le({created_at_ts:x,updated_at_ts:O},["created_at_ts","updated_at_ts"]);return b({...q,...R,enabled:!!y,synchronous:!!v})});if(!o)return{hooks:m,start:0,limit:0,length:0};const{count:d}=await u.select(f=>f.fn.countAll().as("count")).executeTakeFirstOrThrow();return{hooks:m,start:n*r,limit:r,length:B(d)}}}function _s(t){return async(e,a)=>{const n=await t.selectFrom("hooks").where("hooks.tenant_id","=",e).where("hooks.hook_id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:r,created_at_ts:o,updated_at_ts:s,...u}=n,l=Le({created_at_ts:o,updated_at_ts:s},["created_at_ts","updated_at_ts"]);return b({...u,...l,enabled:!!u.enabled,synchronous:!!u.synchronous})}}function ms(t){return async(e,a)=>(await t.deleteFrom("hooks").where("hooks.tenant_id","=",e).where("hooks.hook_id","=",a).executeTakeFirst()).numDeletedRows>0}function hs(t){return async(e,a)=>{const n=Date.now(),r=a.hook_id||wo(),{hook_id:o,enabled:s,synchronous:u,...l}=a;return await t.insertInto("hooks").values({...l,hook_id:r,tenant_id:e,enabled:s?1:0,synchronous:u?1:0,created_at_ts:n,updated_at_ts:n}).execute(),{...l,hook_id:r,enabled:s??!1,synchronous:u??!1,created_at:new Date(n).toISOString(),updated_at:new Date(n).toISOString()}}}function fs(t){return async(e,a,n)=>{const{hook_id:r,...o}=n,s={...o,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};return await t.updateTable("hooks").set(s).where("hooks.hook_id","=",a).where("hooks.tenant_id","=",e).execute(),!0}}function ps(t){return{create:hs(t),get:_s(t),list:ds(t),update:fs(t),remove:ms(t)}}function gs(t){return async(e,a,n)=>{const r={themeId:n||Q(),created_at:new Date().toISOString(),updated_at:new Date().toISOString(),...a},o={...r,tenant_id:e};return await t.insertInto("themes").values(_t(o)).execute(),r}}function ws(t){return async(e,a)=>(await t.deleteFrom("themes").where("themes.tenant_id","=",e).where("themes.themeId","=",a).executeTakeFirst()).numDeletedRows>0}function ys(t){return async(e,a)=>{const n=await t.selectFrom("themes").where("themes.tenant_id","=",e).where("themes.themeId","=",a).selectAll().executeTakeFirst();if(!n)return null;const r={...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 b(fn(r,["widget","colors","borders","fonts","page_background"]))}}function vs(t){return async(e,a,n)=>{const{themeId:r,...o}=n,s=_t({...o,updated_at:new Date().toISOString()});return await t.updateTable("themes").set(s).where("themes.themeId","=",a).where("themes.tenant_id","=",e).execute(),!0}}function Ns(t){return{create:gs(t),get:ys(t),remove:ws(t),update:vs(t)}}function Cs(t){return async(e,a)=>{const n=await t.selectFrom("login_sessions").where("login_sessions.id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{created_at_ts:r,updated_at_ts:o,expires_at_ts:s,...u}=n,l=Le({created_at_ts:r,updated_at_ts:o,expires_at_ts:s},["created_at_ts","updated_at_ts","expires_at_ts"]);return J.loginSessionSchema.parse(fn(b({...u,...l,state:n.state||J.LoginSessionState.PENDING,state_data:n.state_data,failure_reason:n.failure_reason}),["authParams"]))}}function Pt(t){const e=new Error(t);return e.source="ulid",e}const Ia="0123456789ABCDEFGHJKMNPQRSTVWXYZ",pt=Ia.length,Wa=Math.pow(2,48)-1,xs=10,Ts=16;function Ss(t){let e=Math.floor(t()*pt);return e===pt&&(e=pt-1),Ia.charAt(e)}function bs(t,e){if(isNaN(t))throw new Error(t+" must be a number");if(t>Wa)throw Pt("cannot encode time greater than "+Wa);if(t<0)throw Pt("time must be positive");if(Number.isInteger(Number(t))===!1)throw Pt("time must be an integer");let a,n="";for(;e>0;e--)a=t%pt,n=Ia.charAt(a)+n,t=(t-a)/pt;return n}function Os(t,e){let a="";for(;t>0;t--)a=Ss(e)+a;return a}function ks(t=!1,e){e||(e=typeof window<"u"?window:null);const a=e&&(e.crypto||e.msCrypto);if(a)return()=>{const n=new Uint8Array(1);return a.getRandomValues(n),n[0]/255};try{const n=require("crypto");return()=>n.randomBytes(1).readUInt8()/255}catch{}if(t){try{console.error("secure crypto unusable, falling back to insecure Math.random()!")}catch{}return()=>Math.random()}throw Pt("secure crypto unusable, insecure Math.random not allowed")}function Es(t){return t||(t=ks()),function(a){return isNaN(a)&&(a=Date.now()),bs(a,xs)+Os(Ts,t)}}const Cn=Es();function Is(t){return async(e,a)=>{var u;const n=ka(),r={id:Cn(),...a,authorization_url:(u=a.authorization_url)==null?void 0:u.slice(0,1024),created_at:n,updated_at:n,state:a.state||J.LoginSessionState.PENDING,state_data:a.state_data,failure_reason:a.failure_reason},o=Date.now(),s=_t(r);return delete s.created_at,delete s.updated_at,delete s.expires_at,await t.insertInto("login_sessions").values({...s,tenant_id:e,created_at_ts:o,updated_at_ts:o,expires_at_ts:o+1e3*60*60*24}).execute(),r}}function $s(t){return async(e,a,n)=>{const{created_at:r,updated_at:o,expires_at:s,...u}=n,l=_t(u);return delete l.created_at_ts,delete l.updated_at_ts,delete l.expires_at_ts,delete l.id,delete l.tenant_id,(await t.updateTable("login_sessions").set({...l,updated_at_ts:Date.now(),...s!==void 0?{expires_at_ts:P(s)}:{}}).where("login_sessions.id","=",a).where("login_sessions.tenant_id","=",e).execute()).length===1}}function As(t){return async(e,a)=>(await t.deleteFrom("login_sessions").where("login_sessions.tenant_id","=",e).where("login_sessions.id","=",a).execute()).length>0}function Ds(t){return{create:Is(t),get:Cs(t),update:$s(t),remove:As(t)}}function Ps(t){return async e=>{const[a]=await t.selectFrom("prompt_settings").where("prompt_settings.tenant_id","=",e).selectAll().execute();return b({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 Ba(t){return b({...t,webauthn_platform_first_factor:t.webauthn_platform_first_factor?!!t.webauthn_platform_first_factor:void 0,identifier_first:t.identifier_first?!!t.identifier_first:void 0,password_first:t.password_first?!!t.password_first:void 0,universal_login_experience:t.universal_login_experience})}function Rs(t){return async(e,a)=>{try{const n=J.promptSettingSchema.parse(a);await t.insertInto("prompt_settings").values({...Ba(n),tenant_id:e}).execute()}catch{await t.updateTable("prompt_settings").set(Ba(a)).where("tenant_id","=",e).execute()}}}function zs(t){return{get:Ps(t),set:Rs(t)}}function Fs(t){return async e=>{const[a]=await t.selectFrom("email_providers").where("email_providers.tenant_id","=",e).selectAll().execute();if(!a)return null;const{tenant_id:n,credentials:r,settings:o,enabled:s,...u}=a;return b({...u,credentials:JSON.parse(r),settings:JSON.parse(o),enabled:!!s})}}function Ls(t){return async(e,a)=>{const{credentials:n,settings:r,enabled:o,...s}=a;await t.updateTable("email_providers").set({...s,credentials:n?JSON.stringify(n):void 0,settings:r?JSON.stringify(r):void 0,enabled:o!==void 0?o?1:0:void 0}).where("tenant_id","=",e).execute()}}function Ms(t){return async(e,a)=>{const{credentials:n,settings:r,enabled:o,...s}=a;await t.insertInto("email_providers").values({...s,enabled:o?1:0,credentials:JSON.stringify(n),settings:JSON.stringify(r),tenant_id:e,created_at:new Date().toISOString(),updated_at:new Date().toISOString()}).execute()}}function js(t){return async e=>{await t.deleteFrom("email_providers").where("tenant_id","=",e).execute()}}function Js(t){return{get:Fs(t),create:Ms(t),update:Ls(t),remove:js(t)}}function qs(t){return async(e,a)=>{const n=await t.selectFrom("refresh_tokens").where("refresh_tokens.tenant_id","=",e).where("refresh_tokens.id","=",a).selectAll().executeTakeFirst();if(!n)return null;const{tenant_id:r,created_at_ts:o,expires_at_ts:s,idle_expires_at_ts:u,last_exchanged_at_ts:l,..._}=n,m=Le({created_at_ts:o,expires_at_ts:s,idle_expires_at_ts:u,last_exchanged_at_ts:l},["created_at_ts"],["expires_at_ts","idle_expires_at_ts","last_exchanged_at_ts"]);return{..._,...m,rotating:!!n.rotating,device:n.device?JSON.parse(n.device):{},resource_servers:n.resource_servers?JSON.parse(n.resource_servers):[]}}}function Ws(t){return async(e,a)=>{const n=ka(),r={...a,created_at:n},{expires_at:o,idle_expires_at:s,last_exchanged_at:u,device:l,resource_servers:_,rotating:m,...d}=a,f=Date.now();return await t.insertInto("refresh_tokens").values({...d,tenant_id:e,rotating:m?1:0,device:JSON.stringify(l),resource_servers:JSON.stringify(_),created_at_ts:f,expires_at_ts:P(o),idle_expires_at_ts:s?P(s):null,last_exchanged_at_ts:u?P(u):null}).execute(),{...a,...r}}}function Bs(t){return async(e,a)=>!!(await t.deleteFrom("refresh_tokens").where("tenant_id","=",e).where("refresh_tokens.id","=",a).execute()).length}function Us(t){return async(e,a,n)=>{const{created_at:r,expires_at:o,idle_expires_at:s,last_exchanged_at:u,device:l,resource_servers:_,rotating:m,...d}=n,f={...d,device:l?JSON.stringify(l):void 0,resource_servers:_?JSON.stringify(_):void 0,rotating:m!==void 0?m?1:0:void 0,expires_at_ts:o!==void 0?P(o):void 0,idle_expires_at_ts:s!==void 0?P(s):void 0,last_exchanged_at_ts:u!==void 0?P(u):void 0};return!!(await t.updateTable("refresh_tokens").set(f).where("tenant_id","=",e).where("refresh_tokens.id","=",a).execute()).length}}function Ks(t){return async(e,a={})=>{const{page:n=0,per_page:r=50,include_totals:o=!1,sort:s,q:u}=a;let l=t.selectFrom("refresh_tokens").where("refresh_tokens.tenant_id","=",e);u&&(l=W(t,l,u,["token","login_id"]));let _=l;if(s&&s.sort_by){const{ref:y}=t.dynamic;_=_.orderBy(y(s.sort_by),s.sort_order)}_=_.offset(n*r).limit(r);const d=(await _.selectAll().execute()).map(y=>{const{tenant_id:v,created_at_ts:x,expires_at_ts:O,idle_expires_at_ts:q,last_exchanged_at_ts:R,...V}=y,ae=Le({created_at_ts:x,expires_at_ts:O,idle_expires_at_ts:q,last_exchanged_at_ts:R},["created_at_ts"],["expires_at_ts","idle_expires_at_ts","last_exchanged_at_ts"]);return{...V,...ae,rotating:!!y.rotating,device:y.device?JSON.parse(y.device):{},resource_servers:y.resource_servers?JSON.parse(y.resource_servers):[]}});if(!o)return{refresh_tokens:d,start:0,limit:0,length:0};const{count:f}=await l.select(y=>y.fn.countAll().as("count")).executeTakeFirstOrThrow(),h=B(f);return{refresh_tokens:d,start:n*r,limit:r,length:h}}}function Qs(t){return{create:Ws(t),get:qs(t),list:Ks(t),remove:Bs(t),update:Us(t)}}const Vs=7*24*60*60*1e3;function Gs(t){return async e=>{var u,l,_;const{tenant_id:a,user_id:n}=e||{},o=Date.now()-Vs,s=1e3;try{let m=0;for(;;){let h=t.deleteFrom("refresh_tokens").where(x=>x.or([x("expires_at_ts","<",o),x("idle_expires_at_ts","<",o)]));a&&(h=h.where("tenant_id","=",a)),n&&(h=h.where("user_id","=",n));const y=await h.limit(s).execute(),v=Number(((u=y[0])==null?void 0:u.numDeletedRows)??0);if(m+=v,v<s)break}let d=0;for(;;){let h=t.deleteFrom("sessions").where(x=>x.or([x("expires_at_ts","<",o),x("idle_expires_at_ts","<",o)]));a&&(h=h.where("tenant_id","=",a)),n&&(h=h.where("user_id","=",n));const y=await h.limit(s).execute(),v=Number(((l=y[0])==null?void 0:l.numDeletedRows)??0);if(d+=v,v<s)break}let f=0;for(;;){let h=t.deleteFrom("login_sessions").where("expires_at_ts","<",o);a&&(h=h.where("tenant_id","=",a)),n&&(h=h.where("user_id","=",n));const y=await h.limit(s).execute(),v=Number(((_=y[0])==null?void 0:_.numDeletedRows)??0);if(f+=v,v<s)break}(m>0||d>0||f>0)&&console.log(`Session cleanup: deleted ${m} refresh_tokens, ${d} sessions, ${f} login_sessions`)}catch(m){console.error("Error during session cleanup:",m)}}}function Hs(t){return async(e,a)=>{const n=J.formSchema.parse({id:Q(),...a,created_at:new Date().toISOString(),updated_at:new Date().toISOString()});return await t.insertInto("forms").values({...n,nodes:JSON.stringify(n.nodes||[]),start:JSON.stringify(n.start||{}),ending:JSON.stringify(n.ending||{}),tenant_id:e}).execute(),J.formSchema.parse(n)}}function Ys(t){return async(e,a={})=>{const{page:n=0,per_page:r=50,include_totals:o=!1,q:s}=a;let u=t.selectFrom("forms").where("tenant_id","=",e);s&&(u=W(t,u,s,[]));const m=(await u.offset(n*r).limit(r).selectAll().execute()).map(f=>{const h={...f};if(typeof h.nodes=="string")try{h.nodes=JSON.parse(h.nodes)}catch{}if(typeof h.start=="string")try{h.start=JSON.parse(h.start)}catch{}if(typeof h.ending=="string")try{h.ending=JSON.parse(h.ending)}catch{}return J.formSchema.parse(b(h))});if(!o)return{forms:m,start:0,limit:0,length:0};const{count:d}=await u.select(f=>f.fn.countAll().as("count")).executeTakeFirstOrThrow();return{forms:m,start:n*r,limit:r,length:B(d)}}}function Xs(t){return async(e,a)=>{const{numDeletedRows:n}=await t.deleteFrom("forms").where("id","=",a).where("tenant_id","=",e).executeTakeFirst();return n>0}}function Zs(t){return async(e,a)=>{const n=await t.selectFrom("forms").selectAll().where("forms.id","=",a).where("tenant_id","=",e).executeTakeFirst();if(!n)return null;const r={...n};if(typeof r.nodes=="string")try{r.nodes=JSON.parse(r.nodes)}catch{}if(typeof r.start=="string")try{r.start=JSON.parse(r.start)}catch{}if(typeof r.ending=="string")try{r.ending=JSON.parse(r.ending)}catch{}return J.formSchema.parse(b(r))}}function ei(t){return async(e,a,n)=>{const r={...n,updated_at:new Date().toISOString()};$t(n,["nodes","start","ending"],r);const{numUpdatedRows:o}=await t.updateTable("forms").set(r).where("id","=",a).where("tenant_id","=",e).executeTakeFirst();return o>0}}function ti(t){return{create:Hs(t),get:Zs(t),list:Ys(t),remove:Xs(t),update:ei(t)}}function ai(t){return async(e,a)=>{const n=new Date().toISOString(),r={id:yo(),...a,created_at:n,updated_at:n},o=J.resourceServerSchema.parse(r),{verificationKey:s,scopes:u,options:l,skip_consent_for_verifiable_first_party_clients:_,allow_offline_access:m,is_system:d,metadata:f,...h}=o,y={...h,tenant_id:e,scopes:u?JSON.stringify(u):"[]",options:l?JSON.stringify(l):"{}",skip_consent_for_verifiable_first_party_clients:_?1:0,allow_offline_access:m?1:0,is_system:d?1:0,metadata:f?JSON.stringify(f):void 0,verification_key:s,created_at:n,updated_at:n};return await t.insertInto("resource_servers").values(y).execute(),b(o)}}function ni(t){return async(e,a)=>{const n=await t.selectFrom("resource_servers").selectAll().where("tenant_id","=",e).where("id","=",a).executeTakeFirst();if(!n)return null;const r=n,{verification_key:o,scopes:s,options:u,skip_consent_for_verifiable_first_party_clients:l,allow_offline_access:_,is_system:m,metadata:d,...f}=r,h={...f,scopes:s?JSON.parse(s):[],options:u?JSON.parse(u):{},skip_consent_for_verifiable_first_party_clients:!!l,allow_offline_access:!!_,is_system:m?!0:void 0,metadata:d?JSON.parse(d):void 0,verificationKey:o};return b(h)}}function ri(t){return async(e,a={})=>{const{page:n=0,per_page:r=50,include_totals:o=!1,q:s}=a;let u=t.selectFrom("resource_servers").where("resource_servers.tenant_id","=",e);if(s){const f=s.trim(),h=f.split(/\s+/),y=h.length===1?h[0]:void 0,v=y?y.match(/^(-)?(name|identifier):(.*)$/):null,x=v?v[3]:"",O=/^(>=|>|<=|<)/.test(x||"");if(v&&!O){const q=!!v[1],R=v[2]==="name"?"resource_servers.name":"resource_servers.identifier";u=q?u.where(R,"not like",`%${x}%`):u.where(R,"like",`%${x}%`)}else u=W(t,u,f,["resource_servers.name","resource_servers.identifier"])}const m=(await u.offset(n*r).limit(r).selectAll().execute()).map(f=>{const h=f,{verification_key:y,scopes:v,options:x,skip_consent_for_verifiable_first_party_clients:O,allow_offline_access:q,is_system:R,metadata:V,...ae}=h,X={...ae,scopes:v?JSON.parse(v):[],options:x?JSON.parse(x):{},skip_consent_for_verifiable_first_party_clients:!!O,allow_offline_access:!!q,is_system:R?!0:void 0,metadata:V?JSON.parse(V):void 0,verificationKey:y};return b(X)});if(!o)return{resource_servers:m,start:0,limit:0,length:0};const{count:d}=await u.select(f=>f.fn.countAll().as("count")).executeTakeFirstOrThrow();return{resource_servers:m,start:n*r,limit:r,length:B(d)}}}function oi(t){return async(e,a)=>{const n=await t.deleteFrom("resource_servers").where("tenant_id","=",e).where("id","=",a).executeTakeFirst();return Number(n.numDeletedRows)>0}}function si(t){return async(e,a,n)=>{const{verificationKey:r,scopes:o,options:s,skip_consent_for_verifiable_first_party_clients:u,allow_offline_access:l,is_system:_,metadata:m,...d}=n,f={...d,updated_at:new Date().toISOString()};if(r!==void 0&&(f.verification_key=r),o!==void 0&&(f.scopes=JSON.stringify(o)),s!==void 0){const y=await t.selectFrom("resource_servers").select("options").where("tenant_id","=",e).where("id","=",a).executeTakeFirst(),x={...y!=null&&y.options?JSON.parse(y.options):{},...s};f.options=JSON.stringify(x)}m!==void 0&&(f.metadata=JSON.stringify(m)),u!==void 0&&(f.skip_consent_for_verifiable_first_party_clients=u?1:0),l!==void 0&&(f.allow_offline_access=l?1:0),_!==void 0&&(f.is_system=_?1:0);const h=await t.updateTable("resource_servers").set(f).where("tenant_id","=",e).where("id","=",a).executeTakeFirst();return Number(h.numUpdatedRows)>0}}function ii(t){return{create:ai(t),get:ni(t),list:ri(t),remove:oi(t),update:si(t)}}function ci(t){return async(e,a)=>{const n=new Date().toISOString(),r=a.id||Q(),{is_system:o,id:s,metadata:u,...l}=a,_={id:r,...l,tenant_id:e,is_system:o?1:0,metadata:u?JSON.stringify(u):void 0,created_at:n,updated_at:n};return await t.insertInto("roles").values(_).execute(),{id:r,...l,is_system:o?!0:void 0,metadata:u,created_at:n,updated_at:n}}}function ui(t){return async(e,a)=>{const n=await t.selectFrom("roles").selectAll().where("roles.tenant_id","=",e).where("roles.id","=",a).executeTakeFirst();if(!n)return null;const r=n,{is_system:o,tenant_id:s,metadata:u,...l}=r;return{...l,is_system:o?!0:void 0,metadata:u?JSON.parse(u):void 0}}}function li(t){return async(e,a)=>{let n=t.selectFrom("roles").where("roles.tenant_id","=",e);const{page:r=0,per_page:o=50,include_totals:s=!1}=a;a.q&&(n=W(t,n,a.q,["name"]));const _=(await n.offset(r*o).limit(o).selectAll().execute()).map(d=>{const f=d,{is_system:h,tenant_id:y,metadata:v,...x}=f;return{...x,is_system:h?!0:void 0,metadata:v?JSON.parse(v):void 0}});if(!s)return{roles:_,start:r*o,limit:o,length:_.length};const{count:m}=await n.select(d=>d.fn.countAll().as("count")).executeTakeFirstOrThrow();return{roles:_,start:r*o,limit:o,length:B(m)}}}function di(t){return async(e,a,n)=>{const{is_system:r,metadata:o,...s}=n,u={...s,is_system:r!==void 0?r?1:0:void 0,metadata:o!==void 0?JSON.stringify(o):void 0,updated_at:new Date().toISOString()},l=await t.updateTable("roles").set(u).where("roles.tenant_id","=",e).where("roles.id","=",a).executeTakeFirst();return Number(l.numUpdatedRows)>0}}function _i(t){return async(e,a)=>{const n=await t.deleteFrom("roles").where("tenant_id","=",e).where("id","=",a).executeTakeFirst();return Number(n.numDeletedRows)>0}}function mi(t){return{create:ci(t),get:ui(t),list:li(t),update:di(t),remove:_i(t)}}function hi(t){return async(e,a,n)=>{if(n.length===0)return!0;const r=new Date().toISOString();try{for(const o of n){if(o.role_id!==a)throw new Error(`Permission role_id ${o.role_id} does not match expected role_id ${a}`);const s={tenant_id:e,role_id:o.role_id,resource_server_identifier:o.resource_server_identifier,permission_name:o.permission_name,created_at:r};try{await t.insertInto("role_permissions").values(s).execute()}catch(u){if(u.code==="SQLITE_CONSTRAINT_PRIMARYKEY"||u.code==="SQLITE_CONSTRAINT_UNIQUE")continue;throw u}}return!0}catch(o){return console.error("Error assigning role permissions:",o),!1}}}function fi(t){return async(e,a,n)=>{if(n.length===0)return!0;try{return(await Promise.all(n.map(o=>t.deleteFrom("role_permissions").where("tenant_id","=",e).where("role_id","=",a).where("resource_server_identifier","=",o.resource_server_identifier).where("permission_name","=",o.permission_name).executeTakeFirst()))).some(o=>Number(o.numDeletedRows)>0)}catch(r){return console.error("Error removing role permissions:",r),!1}}}function pi(t){return async(e,a,n={})=>{const{page:r=0,per_page:o=50,include_totals:s=!1}=n;let u=t.selectFrom("role_permissions").leftJoin("resource_servers",d=>d.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","=",e).where("role_permissions.role_id","=",a);const m=(await u.offset(r*o).limit(o).execute()).map(d=>({role_id:d.role_id,resource_server_identifier:d.resource_server_identifier,resource_server_name:d.resource_server_name||d.resource_server_identifier,permission_name:d.permission_name,description:null,created_at:d.created_at}));return s&&await u.select(d=>d.fn.countAll().as("count")).executeTakeFirstOrThrow(),m}}function gi(t){return{assign:hi(t),remove:fi(t),list:pi(t)}}function wi(t){return async(e,a,n,r)=>{const o=new Date().toISOString();try{const s={tenant_id:e,user_id:a,resource_server_identifier:n.resource_server_identifier,permission_name:n.permission_name,organization_id:r||n.organization_id||"",created_at:o};return await t.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.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 yi(t){return async(e,a,n,r)=>{try{let o=t.deleteFrom("user_permissions").where("tenant_id","=",e).where("user_id","=",a).where("resource_server_identifier","=",n.resource_server_identifier).where("permission_name","=",n.permission_name);return r!==void 0?o=o.where("organization_id","=",r):o=o.where("organization_id","=",""),await o.execute(),!0}catch(o){return console.error("Error removing user permission:",o),!1}}}function vi(t){return async(e,a,n,r)=>{let o=t.selectFrom("user_permissions").leftJoin("resource_servers",u=>u.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","=",e).where("user_permissions.user_id","=",a);return r!==void 0&&(o=o.where("user_permissions.organization_id","=",r)),(await o.execute()).map(u=>({resource_server_identifier:u.resource_server_identifier,permission_name:u.permission_name,description:null,resource_server_name:u.resource_server_name||u.resource_server_identifier,user_id:u.user_id,created_at:u.created_at,organization_id:u.organization_id===""?void 0:u.organization_id}))}}function Ni(t){return{create:wi(t),remove:yi(t),list:vi(t)}}function Ci(t){const e=Ni(t);return{create:(a,n,r,o)=>e.create(a,n,r,o),remove:(a,n,r,o)=>e.remove(a,n,r,o),list:(a,n,r,o)=>e.list(a,n,r,o)}}function xi(t){return async(e,a,n,r)=>{let o=t.selectFrom("user_roles as ur").innerJoin("roles as r",u=>u.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","=",e).where("ur.user_id","=",a);return r!==void 0&&(o=o.where("ur.organization_id","=",r)),await o.execute()}}function Ti(t){return async(e,a,n,r)=>{const o=new Date().toISOString();try{return await t.insertInto("user_roles").values({tenant_id:e,user_id:a,role_id:n,organization_id:r||"",created_at:o}).execute(),!0}catch(s){return s.code==="SQLITE_CONSTRAINT_PRIMARYKEY"||s.code==="SQLITE_CONSTRAINT_UNIQUE"||s.code==="SQLITE_CONSTRAINT"||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 Si(t){return async(e,a,n,r)=>{try{let o=t.deleteFrom("user_roles").where("tenant_id","=",e).where("user_id","=",a).where("role_id","=",n);return r!==void 0?o=o.where("organization_id","=",r):o=o.where("organization_id","=",""),await o.execute(),!0}catch(o){return console.error("Error removing user roles:",o),!1}}}function bi(t){return{list:xi(t),create:Ti(t),remove:Si(t)}}function Oi(t){const e=bi(t);return{list:(a,n,r,o)=>e.list(a,n,r,o),create:(a,n,r,o)=>e.create(a,n,r,o),remove:(a,n,r,o)=>e.remove(a,n,r,o)}}function ki(t){return async(e,a)=>{const n={...a,id:a.id||po(),tenant_id:e,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 t.insertInto("organizations").values(n).execute()}catch(r){throw r.code==="SQLITE_CONSTRAINT_UNIQUE"||r.message.includes("AlreadyExists")?new lt(409,{message:"Organization already exists"}):r}return{...a,id:n.id,created_at:n.created_at,updated_at:n.updated_at}}}function Ei(t){return async(e,a)=>{let n=await t.selectFrom("organizations").selectAll().where("tenant_id","=",e).where("id","=",a).executeTakeFirst();return n||(n=await t.selectFrom("organizations").selectAll().where("tenant_id","=",e).where("name","=",a).executeTakeFirst()),n?b({...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}}function Ft(t){return typeof t>"u"||t===void 0}function oe(t){return typeof t=="string"}function $a(t){return typeof t=="number"}function xn(t){return typeof t=="boolean"}function Tn(t){return t===null}function Sn(t){return typeof t=="bigint"}function Me(t){return typeof t=="function"}function Xt(t){return typeof t=="object"&&t!==null}function Ii(t){return t[t.length-1]}function c(t){return Object.freeze(t)}function Dt(t){return Ne(t)?t:[t]}function Ne(t){return Array.isArray(t)}const K=c({is(t){return t.kind==="IdentifierNode"},create(t){return c({kind:"IdentifierNode",name:t})}}),da=c({is(t){return t.kind==="SchemableIdentifierNode"},create(t){return c({kind:"SchemableIdentifierNode",identifier:K.create(t)})},createWithSchema(t,e){return c({kind:"SchemableIdentifierNode",schema:K.create(t),identifier:K.create(e)})}}),be=c({is(t){return t.kind==="AliasNode"},create(t,e){return c({kind:"AliasNode",node:t,alias:e})}}),ve=c({is(t){return t.kind==="TableNode"},create(t){return c({kind:"TableNode",table:da.create(t)})},createWithSchema(t,e){return c({kind:"TableNode",table:da.createWithSchema(t,e)})}});function Y(t){return Xt(t)&&Me(t.toOperationNode)}function $i(t){return Xt(t)&&"expressionType"in t&&Y(t)}function Ai(t){return Xt(t)&&"expression"in t&&oe(t.alias)&&Y(t)}const se=c({is(t){return t.kind==="SelectModifierNode"},create(t,e){return c({kind:"SelectModifierNode",modifier:t,of:e})},createWithExpression(t){return c({kind:"SelectModifierNode",rawModifier:t})}}),Ce=c({is(t){return t.kind==="AndNode"},create(t,e){return c({kind:"AndNode",left:t,right:e})}}),mt=c({is(t){return t.kind==="OrNode"},create(t,e){return c({kind:"OrNode",left:t,right:e})}}),oa=c({is(t){return t.kind==="OnNode"},create(t){return c({kind:"OnNode",on:t})},cloneWithOperation(t,e,a){return c({...t,on:e==="And"?Ce.create(t.on,a):mt.create(t.on,a)})}}),gt=c({is(t){return t.kind==="JoinNode"},create(t,e){return c({kind:"JoinNode",joinType:t,table:e,on:void 0})},createWithOn(t,e,a){return c({kind:"JoinNode",joinType:t,table:e,on:oa.create(a)})},cloneWithOn(t,e){return c({...t,on:t.on?oa.cloneWithOperation(t.on,"And",e):oa.create(e)})}}),dt=c({is(t){return t.kind==="BinaryOperationNode"},create(t,e,a){return c({kind:"BinaryOperationNode",leftOperand:t,operator:e,rightOperand:a})}}),Di=["=","==","!=","<>",">",">=","<","<=","in","not in","is","is not","like","not like","match","ilike","not ilike","@>","<@","^@","&&","?","?&","?|","!<","!>","<=>","!~","~","~*","!~*","@@","@@@","!!","<->","regexp","is distinct from","is not distinct from"],Pi=["+","-","*","/","%","^","&","|","#","<<",">>"],bn=["->","->>"],Ri=[...Di,...Pi,"&&","||"],zi=["exists","not exists"],Fi=["not","-",...zi],Li=[...Ri,...bn,...Fi,"between","between symmetric"],Fe=c({is(t){return t.kind==="OperatorNode"},create(t){return c({kind:"OperatorNode",operator:t})}});function Ua(t){return oe(t)&&bn.includes(t)}const Aa=c({is(t){return t.kind==="ColumnNode"},create(t){return c({kind:"ColumnNode",column:K.create(t)})}}),On=c({is(t){return t.kind==="SelectAllNode"},create(){return c({kind:"SelectAllNode"})}}),Zt=c({is(t){return t.kind==="ReferenceNode"},create(t,e){return c({kind:"ReferenceNode",table:e,column:t})},createSelectAll(t){return c({kind:"ReferenceNode",table:t,column:On.create()})}});function kn(t){return Xt(t)&&Y(t)&&oe(t.dynamicReference)}const _a=c({is(t){return t.kind==="OrderByItemNode"},create(t,e){return c({kind:"OrderByItemNode",orderBy:t,direction:e})}}),U=c({is(t){return t.kind==="RawNode"},create(t,e){return c({kind:"RawNode",sqlFragments:c(t),parameters:c(e)})},createWithSql(t){return U.create([t],[])},createWithChild(t){return U.create(["",""],[t])},createWithChildren(t){return U.create(new Array(t.length+1).fill(""),t)}});function Mi(t){return t==="asc"||t==="desc"}function Da(t){if(t.length===2)return[sa(t[0],t[1])];if(t.length===1){const[e]=t;return Array.isArray(e)?e.map(a=>sa(a)):[sa(e)]}throw new Error(`Invalid number of arguments at order by! expected 1-2, received ${t.length}`)}function sa(t,e){const a=ji(t);if(_a.is(a)){if(e)throw new Error("Cannot specify direction twice!");return a}return _a.create(a,En(e))}function ji(t){if(na(t))return aa(t);if(kn(t))return t.toOperationNode();const[e,a]=t.split(" ");if(a){if(!Mi(a))throw new Error(`Invalid order by direction: ${a}`);return _a.create(xe(e),En(a))}return xe(t)}function En(t){if(t)return t==="asc"||t==="desc"?U.createWithSql(t):t.toOperationNode()}const Lt=c({is(t){return t.kind==="JSONReferenceNode"},create(t,e){return c({kind:"JSONReferenceNode",reference:t,traversal:e})},cloneWithTraversal(t,e){return c({...t,traversal:e})}}),In=c({is(t){return t.kind==="JSONOperatorChainNode"},create(t){return c({kind:"JSONOperatorChainNode",operator:t,values:c([])})},cloneWithValue(t,e){return c({...t,values:c([...t.values,e])})}}),wt=c({is(t){return t.kind==="JSONPathNode"},create(t){return c({kind:"JSONPathNode",inOperator:t,pathLegs:c([])})},cloneWithLeg(t,e){return c({...t,pathLegs:c([...t.pathLegs,e])})}});function Ji(t){return oe(t)?xe(t):t.toOperationNode()}function xt(t){return Ne(t)?t.map(e=>G(e)):[G(t)]}function G(t){return na(t)?aa(t):Ji(t)}function qi(t,e){const a=xe(t);if(Ua(e))return Lt.create(a,In.create(Fe.create(e)));const n=e.slice(0,-1);if(Ua(n))return Lt.create(a,wt.create(Fe.create(n)));throw new Error(`Invalid JSON operator: ${e}`)}function xe(t){const e=".";if(!t.includes(e))return Zt.create(Aa.create(t));const a=t.split(e).map($n);if(a.length===3)return Bi(a);if(a.length===2)return Ui(a);throw new Error(`invalid column reference ${t}`)}function Wi(t){const e=" as ";if(t.includes(e)){const[a,n]=t.split(e).map($n);return be.create(xe(a),K.create(n))}else return xe(t)}function Bi(t){const[e,a,n]=t;return Zt.create(Aa.create(n),ve.createWithSchema(e,a))}function Ui(t){const[e,a]=t;return Zt.create(Aa.create(a),ve.create(e))}function $n(t){return t.trim()}const Ki=c({is(t){return t.kind==="PrimitiveValueListNode"},create(t){return c({kind:"PrimitiveValueListNode",values:c([...t])})}}),Qi=c({is(t){return t.kind==="ValueListNode"},create(t){return c({kind:"ValueListNode",values:c(t)})}}),Te=c({is(t){return t.kind==="ValueNode"},create(t){return c({kind:"ValueNode",value:t})},createImmediate(t){return c({kind:"ValueNode",value:t,immediate:!0})}});function Vi(t){return Ne(t)?Gi(t):j(t)}function j(t){return na(t)?aa(t):Te.create(t)}function Pa(t){return $a(t)||xn(t)||Tn(t)}function Ra(t){if(!Pa(t))throw new Error(`unsafe immediate value ${JSON.stringify(t)}`);return Te.createImmediate(t)}function Gi(t){return t.some(na)?Qi.create(t.map(e=>j(e))):Ki.create(t)}const Tt=c({is(t){return t.kind==="ParensNode"},create(t){return c({kind:"ParensNode",node:t})}});function te(t){if(t.length===3)return za(t[0],t[1],t[2]);if(t.length===1)return j(t[0]);throw new Error(`invalid arguments: ${JSON.stringify(t)}`)}function za(t,e,a){return Hi(e)&&An(a)?dt.create(G(t),ha(e),Te.createImmediate(a)):dt.create(G(t),ha(e),Vi(a))}function St(t,e,a){return dt.create(G(t),ha(e),G(a))}function Ka(t,e){return ma(Object.entries(t).filter(([,a])=>!Ft(a)).map(([a,n])=>za(a,An(n)?"is":"=",n)),e)}function ma(t,e,a=!0){const n=e==="and"?Ce.create:mt.create;if(t.length===0)return dt.create(Te.createImmediate(1),Fe.create("="),Te.createImmediate(e==="and"?1:0));let r=Qa(t[0]);for(let o=1;o<t.length;++o)r=n(r,Qa(t[o]));return t.length>1&&a?Tt.create(r):r}function Hi(t){return t==="is"||t==="is not"}function An(t){return Tn(t)||xn(t)}function ha(t){if(oe(t)&&Li.includes(t))return Fe.create(t);if(Y(t))return t.toOperationNode();throw new Error(`invalid operator ${JSON.stringify(t)}`)}function Qa(t){return Y(t)?t.toOperationNode():t}const Se=c({is(t){return t.kind==="OrderByNode"},create(t){return c({kind:"OrderByNode",items:c([...t])})},cloneWithItems(t,e){return c({...t,items:c([...t.items,...e])})}}),Va=c({is(t){return t.kind==="PartitionByNode"},create(t){return c({kind:"PartitionByNode",items:c(t)})},cloneWithItems(t,e){return c({...t,items:c([...t.items,...e])})}}),fa=c({is(t){return t.kind==="OverNode"},create(){return c({kind:"OverNode"})},cloneWithOrderByItems(t,e){return c({...t,orderBy:t.orderBy?Se.cloneWithItems(t.orderBy,e):Se.create(e)})},cloneWithPartitionByItems(t,e){return c({...t,partitionBy:t.partitionBy?Va.cloneWithItems(t.partitionBy,e):Va.create(e)})}}),Mt=c({is(t){return t.kind==="FromNode"},create(t){return c({kind:"FromNode",froms:c(t)})},cloneWithFroms(t,e){return c({...t,froms:c([...t.froms,...e])})}}),Ga=c({is(t){return t.kind==="GroupByNode"},create(t){return c({kind:"GroupByNode",items:c(t)})},cloneWithItems(t,e){return c({...t,items:c([...t.items,...e])})}}),Ha=c({is(t){return t.kind==="HavingNode"},create(t){return c({kind:"HavingNode",having:t})},cloneWithOperation(t,e,a){return c({...t,having:e==="And"?Ce.create(t.having,a):mt.create(t.having,a)})}}),E=c({is(t){return t.kind==="SelectQueryNode"},create(t){return c({kind:"SelectQueryNode",...t&&{with:t}})},createFrom(t,e){return c({kind:"SelectQueryNode",from:Mt.create(t),...e&&{with:e}})},cloneWithSelections(t,e){return c({...t,selections:t.selections?c([...t.selections,...e]):c(e)})},cloneWithDistinctOn(t,e){return c({...t,distinctOn:t.distinctOn?c([...t.distinctOn,...e]):c(e)})},cloneWithFrontModifier(t,e){return c({...t,frontModifiers:t.frontModifiers?c([...t.frontModifiers,e]):c([e])})},cloneWithOrderByItems(t,e){return c({...t,orderBy:t.orderBy?Se.cloneWithItems(t.orderBy,e):Se.create(e)})},cloneWithGroupByItems(t,e){return c({...t,groupBy:t.groupBy?Ga.cloneWithItems(t.groupBy,e):Ga.create(e)})},cloneWithLimit(t,e){return c({...t,limit:e})},cloneWithOffset(t,e){return c({...t,offset:e})},cloneWithFetch(t,e){return c({...t,fetch:e})},cloneWithHaving(t,e){return c({...t,having:t.having?Ha.cloneWithOperation(t.having,"And",e):Ha.create(e)})},cloneWithSetOperations(t,e){return c({...t,setOperations:t.setOperations?c([...t.setOperations,...e]):c([...e])})},cloneWithoutSelections(t){return c({...t,selections:[]})},cloneWithoutLimit(t){return c({...t,limit:void 0})},cloneWithoutOffset(t){return c({...t,offset:void 0})},cloneWithoutOrderBy(t){return c({...t,orderBy:void 0})},cloneWithoutGroupBy(t){return c({...t,groupBy:void 0})}});function je(t,e){Object.defineProperties(t.prototype,{then:{enumerable:!1,value:()=>{throw new Error(e)}}})}var Z;const vt=class vt{constructor(e){T(this,Z);S(this,Z,c(e))}on(...e){return new vt({...i(this,Z),joinNode:gt.cloneWithOn(i(this,Z).joinNode,te(e))})}onRef(e,a,n){return new vt({...i(this,Z),joinNode:gt.cloneWithOn(i(this,Z).joinNode,St(e,a,n))})}onTrue(){return new vt({...i(this,Z),joinNode:gt.cloneWithOn(i(this,Z).joinNode,U.createWithSql("true"))})}$call(e){return e(this)}toOperationNode(){return i(this,Z).joinNode}};Z=new WeakMap;let jt=vt;je(jt,"don't await JoinBuilder instances. They are never executed directly and are always just a part of a query.");const Yi=c({is(t){return t.kind==="PartitionByItemNode"},create(t){return c({kind:"PartitionByItemNode",partitionBy:t})}});function Xi(t){return xt(t).map(Yi.create)}var ke;const Kt=class Kt{constructor(e){T(this,ke);S(this,ke,c(e))}orderBy(e,a){return new Kt({overNode:fa.cloneWithOrderByItems(i(this,ke).overNode,Da([e,a]))})}partitionBy(e){return new Kt({overNode:fa.cloneWithPartitionByItems(i(this,ke).overNode,Xi(e))})}$call(e){return e(this)}toOperationNode(){return i(this,ke).overNode}};ke=new WeakMap;let Jt=Kt;je(Jt,"don't await OverBuilder instances. They are never executed directly and are always just a part of a query.");const yt=c({is(t){return t.kind==="SelectionNode"},create(t){return c({kind:"SelectionNode",selection:t})},createSelectAll(){return c({kind:"SelectionNode",selection:On.create()})},createSelectAllFromTable(t){return c({kind:"SelectionNode",selection:Zt.createSelectAll(t)})}});function Dn(t){return Me(t)?Dn(t(ta())):Ne(t)?t.map(e=>Ya(e)):[Ya(t)]}function Ya(t){return oe(t)?yt.create(Wi(t)):kn(t)?yt.create(t.toOperationNode()):yt.create(Wn(t))}function Pn(t){return t?Array.isArray(t)?t.map(Xa):[Xa(t)]:[yt.createSelectAll()]}function Xa(t){if(oe(t))return yt.createSelectAllFromTable(ee(t));throw new Error(`invalid value selectAll expression: ${JSON.stringify(t)}`)}const Zi=c({is(t){return t.kind==="InsertQueryNode"},create(t,e,a){return c({kind:"InsertQueryNode",into:t,...e&&{with:e},replace:a})},createWithoutInto(){return c({kind:"InsertQueryNode"})},cloneWith(t,e){return c({...t,...e})}}),ec=c({is(t){return t.kind==="UpdateQueryNode"},create(t,e){return c({kind:"UpdateQueryNode",table:t,...e&&{with:e}})},createWithoutTable(){return c({kind:"UpdateQueryNode"})},cloneWithFromItems(t,e){return c({...t,from:t.from?Mt.cloneWithFroms(t.from,e):Mt.create(e)})},cloneWithUpdates(t,e){return c({...t,updates:t.updates?c([...t.updates,...e]):e})},cloneWithLimit(t,e){return c({...t,limit:e})}}),Za=c({is(t){return t.kind==="UsingNode"},create(t){return c({kind:"UsingNode",tables:c(t)})},cloneWithTables(t,e){return c({...t,tables:c([...t.tables,...e])})}}),tc=c({is(t){return t.kind==="DeleteQueryNode"},create(t,e){return c({kind:"DeleteQueryNode",from:Mt.create(t),...e&&{with:e}})},cloneWithOrderByItems(t,e){return c({...t,orderBy:t.orderBy?Se.cloneWithItems(t.orderBy,e):Se.create(e)})},cloneWithoutOrderBy(t){return c({...t,orderBy:void 0})},cloneWithLimit(t,e){return c({...t,limit:e})},cloneWithoutLimit(t){return c({...t,limit:void 0})},cloneWithUsing(t,e){return c({...t,using:t.using!==void 0?Za.cloneWithTables(t.using,e):Za.create(e)})}}),Qe=c({is(t){return t.kind==="WhereNode"},create(t){return c({kind:"WhereNode",where:t})},cloneWithOperation(t,e,a){return c({...t,where:e==="And"?Ce.create(t.where,a):mt.create(t.where,a)})}}),en=c({is(t){return t.kind==="ReturningNode"},create(t){return c({kind:"ReturningNode",selections:c(t)})},cloneWithSelections(t,e){return c({...t,selections:t.selections?c([...t.selections,...e]):c(e)})}}),ac=c({is(t){return t.kind==="ExplainNode"},create(t,e){return c({kind:"ExplainNode",format:t,options:e})}}),ea=c({is(t){return t.kind==="WhenNode"},create(t){return c({kind:"WhenNode",condition:t})},cloneWithResult(t,e){return c({...t,result:e})}}),nc=c({is(t){return t.kind==="MergeQueryNode"},create(t,e){return c({kind:"MergeQueryNode",into:t,...e&&{with:e}})},cloneWithUsing(t,e){return c({...t,using:e})},cloneWithWhen(t,e){return c({...t,whens:t.whens?c([...t.whens,e]):c([e])})},cloneWithThen(t,e){return c({...t,whens:t.whens?c([...t.whens.slice(0,-1),ea.cloneWithResult(t.whens[t.whens.length-1],e)]):void 0})}}),tn=c({is(t){return t.kind==="OutputNode"},create(t){return c({kind:"OutputNode",selections:c(t)})},cloneWithSelections(t,e){return c({...t,selections:t.selections?c([...t.selections,...e]):c(e)})}}),A=c({is(t){return E.is(t)||Zi.is(t)||ec.is(t)||tc.is(t)||nc.is(t)},cloneWithEndModifier(t,e){return c({...t,endModifiers:t.endModifiers?c([...t.endModifiers,e]):c([e])})},cloneWithWhere(t,e){return c({...t,where:t.where?Qe.cloneWithOperation(t.where,"And",e):Qe.create(e)})},cloneWithJoin(t,e){return c({...t,joins:t.joins?c([...t.joins,e]):c([e])})},cloneWithReturning(t,e){return c({...t,returning:t.returning?en.cloneWithSelections(t.returning,e):en.create(e)})},cloneWithoutReturning(t){return c({...t,returning:void 0})},cloneWithoutWhere(t){return c({...t,where:void 0})},cloneWithExplain(t,e,a){return c({...t,explain:ac.create(e,a==null?void 0:a.toOperationNode())})},cloneWithTop(t,e){return c({...t,top:e})},cloneWithOutput(t,e){return c({...t,output:t.output?tn.cloneWithSelections(t.output,e):tn.create(e)})}});class rc extends Error{constructor(a){super("no result");he(this,"node");this.node=a}}function oc(t){return Object.prototype.hasOwnProperty.call(t,"prototype")}const sc=c({is(t){return t.kind==="TopNode"},create(t,e){return c({kind:"TopNode",expression:t,modifiers:e})}});function ic(t,e){if(!$a(t)&&!Sn(t))throw new Error(`Invalid top expression: ${t}`);if(!Ft(e)&&!cc(e))throw new Error(`Invalid top modifiers: ${e}`);return sc.create(t,e)}function cc(t){return t==="percent"||t==="with ties"||t==="percent with ties"}const uc=c({is(t){return t.kind==="LimitNode"},create(t){return c({kind:"LimitNode",limit:t})}}),an=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9"];function lc(t){let e="";for(let a=0;a<t;++a)e+=dc();return e}function dc(){return an[~~(Math.random()*an.length)]}function ie(){return new _c}var Ye;class _c{constructor(){T(this,Ye)}get queryId(){return i(this,Ye)===void 0&&S(this,Ye,lc(8)),i(this,Ye)}}Ye=new WeakMap;var Qt;class mc{constructor(){he(this,"nodeStack",[]);T(this,Qt,c({AliasNode:this.transformAlias.bind(this),ColumnNode:this.transformColumn.bind(this),IdentifierNode:this.transformIdentifier.bind(this),SchemableIdentifierNode:this.transformSchemableIdentifier.bind(this),RawNode:this.transformRaw.bind(this),ReferenceNode:this.transformReference.bind(this),SelectQueryNode:this.transformSelectQuery.bind(this),SelectionNode:this.transformSelection.bind(this),TableNode:this.transformTable.bind(this),FromNode:this.transformFrom.bind(this),SelectAllNode:this.transformSelectAll.bind(this),AndNode:this.transformAnd.bind(this),OrNode:this.transformOr.bind(this),ValueNode:this.transformValue.bind(this),ValueListNode:this.transformValueList.bind(this),PrimitiveValueListNode:this.transformPrimitiveValueList.bind(this),ParensNode:this.transformParens.bind(this),JoinNode:this.transformJoin.bind(this),OperatorNode:this.transformOperator.bind(this),WhereNode:this.transformWhere.bind(this),InsertQueryNode:this.transformInsertQuery.bind(this),DeleteQueryNode:this.transformDeleteQuery.bind(this),ReturningNode:this.transformReturning.bind(this),CreateTableNode:this.transformCreateTable.bind(this),AddColumnNode:this.transformAddColumn.bind(this),ColumnDefinitionNode:this.transformColumnDefinition.bind(this),DropTableNode:this.transformDropTable.bind(this),DataTypeNode:this.transformDataType.bind(this),OrderByNode:this.transformOrderBy.bind(this),OrderByItemNode:this.transformOrderByItem.bind(this),GroupByNode:this.transformGroupBy.bind(this),GroupByItemNode:this.transformGroupByItem.bind(this),UpdateQueryNode:this.transformUpdateQuery.bind(this),ColumnUpdateNode:this.transformColumnUpdate.bind(this),LimitNode:this.transformLimit.bind(this),OffsetNode:this.transformOffset.bind(this),OnConflictNode:this.transformOnConflict.bind(this),OnDuplicateKeyNode:this.transformOnDuplicateKey.bind(this),CreateIndexNode:this.transformCreateIndex.bind(this),DropIndexNode:this.transformDropIndex.bind(this),ListNode:this.transformList.bind(this),PrimaryKeyConstraintNode:this.transformPrimaryKeyConstraint.bind(this),UniqueConstraintNode:this.transformUniqueConstraint.bind(this),ReferencesNode:this.transformReferences.bind(this),CheckConstraintNode:this.transformCheckConstraint.bind(this),WithNode:this.transformWith.bind(this),CommonTableExpressionNode:this.transformCommonTableExpression.bind(this),CommonTableExpressionNameNode:this.transformCommonTableExpressionName.bind(this),HavingNode:this.transformHaving.bind(this),CreateSchemaNode:this.transformCreateSchema.bind(this),DropSchemaNode:this.transformDropSchema.bind(this),AlterTableNode:this.transformAlterTable.bind(this),DropColumnNode:this.transformDropColumn.bind(this),RenameColumnNode:this.transformRenameColumn.bind(this),AlterColumnNode:this.transformAlterColumn.bind(this),ModifyColumnNode:this.transformModifyColumn.bind(this),AddConstraintNode:this.transformAddConstraint.bind(this),DropConstraintNode:this.transformDropConstraint.bind(this),ForeignKeyConstraintNode:this.transformForeignKeyConstraint.bind(this),CreateViewNode:this.transformCreateView.bind(this),DropViewNode:this.transformDropView.bind(this),GeneratedNode:this.transformGenerated.bind(this),DefaultValueNode:this.transformDefaultValue.bind(this),OnNode:this.transformOn.bind(this),ValuesNode:this.transformValues.bind(this),SelectModifierNode:this.transformSelectModifier.bind(this),CreateTypeNode:this.transformCreateType.bind(this),DropTypeNode:this.transformDropType.bind(this),ExplainNode:this.transformExplain.bind(this),DefaultInsertValueNode:this.transformDefaultInsertValue.bind(this),AggregateFunctionNode:this.transformAggregateFunction.bind(this),OverNode:this.transformOver.bind(this),PartitionByNode:this.transformPartitionBy.bind(this),PartitionByItemNode:this.transformPartitionByItem.bind(this),SetOperationNode:this.transformSetOperation.bind(this),BinaryOperationNode:this.transformBinaryOperation.bind(this),UnaryOperationNode:this.transformUnaryOperation.bind(this),UsingNode:this.transformUsing.bind(this),FunctionNode:this.transformFunction.bind(this),CaseNode:this.transformCase.bind(this),WhenNode:this.transformWhen.bind(this),JSONReferenceNode:this.transformJSONReference.bind(this),JSONPathNode:this.transformJSONPath.bind(this),JSONPathLegNode:this.transformJSONPathLeg.bind(this),JSONOperatorChainNode:this.transformJSONOperatorChain.bind(this),TupleNode:this.transformTuple.bind(this),MergeQueryNode:this.transformMergeQuery.bind(this),MatchedNode:this.transformMatched.bind(this),AddIndexNode:this.transformAddIndex.bind(this),CastNode:this.transformCast.bind(this),FetchNode:this.transformFetch.bind(this),TopNode:this.transformTop.bind(this),OutputNode:this.transformOutput.bind(this)}))}transformNode(e){if(!e)return e;this.nodeStack.push(e);const a=this.transformNodeImpl(e);return this.nodeStack.pop(),c(a)}transformNodeImpl(e){return i(this,Qt)[e.kind](e)}transformNodeList(e){return e&&c(e.map(a=>this.transformNode(a)))}transformSelectQuery(e){return{kind:"SelectQueryNode",from:this.transformNode(e.from),selections:this.transformNodeList(e.selections),distinctOn:this.transformNodeList(e.distinctOn),joins:this.transformNodeList(e.joins),groupBy:this.transformNode(e.groupBy),orderBy:this.transformNode(e.orderBy),where:this.transformNode(e.where),frontModifiers:this.transformNodeList(e.frontModifiers),endModifiers:this.transformNodeList(e.endModifiers),limit:this.transformNode(e.limit),offset:this.transformNode(e.offset),with:this.transformNode(e.with),having:this.transformNode(e.having),explain:this.transformNode(e.explain),setOperations:this.transformNodeList(e.setOperations),fetch:this.transformNode(e.fetch),top:this.transformNode(e.top)}}transformSelection(e){return{kind:"SelectionNode",selection:this.transformNode(e.selection)}}transformColumn(e){return{kind:"ColumnNode",column:this.transformNode(e.column)}}transformAlias(e){return{kind:"AliasNode",node:this.transformNode(e.node),alias:this.transformNode(e.alias)}}transformTable(e){return{kind:"TableNode",table:this.transformNode(e.table)}}transformFrom(e){return{kind:"FromNode",froms:this.transformNodeList(e.froms)}}transformReference(e){return{kind:"ReferenceNode",column:this.transformNode(e.column),table:this.transformNode(e.table)}}transformAnd(e){return{kind:"AndNode",left:this.transformNode(e.left),right:this.transformNode(e.right)}}transformOr(e){return{kind:"OrNode",left:this.transformNode(e.left),right:this.transformNode(e.right)}}transformValueList(e){return{kind:"ValueListNode",values:this.transformNodeList(e.values)}}transformParens(e){return{kind:"ParensNode",node:this.transformNode(e.node)}}transformJoin(e){return{kind:"JoinNode",joinType:e.joinType,table:this.transformNode(e.table),on:this.transformNode(e.on)}}transformRaw(e){return{kind:"RawNode",sqlFragments:c([...e.sqlFragments]),parameters:this.transformNodeList(e.parameters)}}transformWhere(e){return{kind:"WhereNode",where:this.transformNode(e.where)}}transformInsertQuery(e){return{kind:"InsertQueryNode",into:this.transformNode(e.into),columns:this.transformNodeList(e.columns),values:this.transformNode(e.values),returning:this.transformNode(e.returning),onConflict:this.transformNode(e.onConflict),onDuplicateKey:this.transformNode(e.onDuplicateKey),endModifiers:this.transformNodeList(e.endModifiers),with:this.transformNode(e.with),ignore:e.ignore,replace:e.replace,explain:this.transformNode(e.explain),defaultValues:e.defaultValues,top:this.transformNode(e.top),output:this.transformNode(e.output)}}transformValues(e){return{kind:"ValuesNode",values:this.transformNodeList(e.values)}}transformDeleteQuery(e){return{kind:"DeleteQueryNode",from:this.transformNode(e.from),using:this.transformNode(e.using),joins:this.transformNodeList(e.joins),where:this.transformNode(e.where),returning:this.transformNode(e.returning),endModifiers:this.transformNodeList(e.endModifiers),with:this.transformNode(e.with),orderBy:this.transformNode(e.orderBy),limit:this.transformNode(e.limit),explain:this.transformNode(e.explain),top:this.transformNode(e.top),output:this.transformNode(e.output)}}transformReturning(e){return{kind:"ReturningNode",selections:this.transformNodeList(e.selections)}}transformCreateTable(e){return{kind:"CreateTableNode",table:this.transformNode(e.table),columns:this.transformNodeList(e.columns),constraints:this.transformNodeList(e.constraints),temporary:e.temporary,ifNotExists:e.ifNotExists,onCommit:e.onCommit,frontModifiers:this.transformNodeList(e.frontModifiers),endModifiers:this.transformNodeList(e.endModifiers),selectQuery:this.transformNode(e.selectQuery)}}transformColumnDefinition(e){return{kind:"ColumnDefinitionNode",column:this.transformNode(e.column),dataType:this.transformNode(e.dataType),references:this.transformNode(e.references),primaryKey:e.primaryKey,autoIncrement:e.autoIncrement,unique:e.unique,notNull:e.notNull,unsigned:e.unsigned,defaultTo:this.transformNode(e.defaultTo),check:this.transformNode(e.check),generated:this.transformNode(e.generated),frontModifiers:this.transformNodeList(e.frontModifiers),endModifiers:this.transformNodeList(e.endModifiers),nullsNotDistinct:e.nullsNotDistinct,identity:e.identity,ifNotExists:e.ifNotExists}}transformAddColumn(e){return{kind:"AddColumnNode",column:this.transformNode(e.column)}}transformDropTable(e){return{kind:"DropTableNode",table:this.transformNode(e.table),ifExists:e.ifExists,cascade:e.cascade}}transformOrderBy(e){return{kind:"OrderByNode",items:this.transformNodeList(e.items)}}transformOrderByItem(e){return{kind:"OrderByItemNode",orderBy:this.transformNode(e.orderBy),direction:this.transformNode(e.direction)}}transformGroupBy(e){return{kind:"GroupByNode",items:this.transformNodeList(e.items)}}transformGroupByItem(e){return{kind:"GroupByItemNode",groupBy:this.transformNode(e.groupBy)}}transformUpdateQuery(e){return{kind:"UpdateQueryNode",table:this.transformNode(e.table),from:this.transformNode(e.from),joins:this.transformNodeList(e.joins),where:this.transformNode(e.where),updates:this.transformNodeList(e.updates),returning:this.transformNode(e.returning),endModifiers:this.transformNodeList(e.endModifiers),with:this.transformNode(e.with),explain:this.transformNode(e.explain),limit:this.transformNode(e.limit),top:this.transformNode(e.top),output:this.transformNode(e.output)}}transformColumnUpdate(e){return{kind:"ColumnUpdateNode",column:this.transformNode(e.column),value:this.transformNode(e.value)}}transformLimit(e){return{kind:"LimitNode",limit:this.transformNode(e.limit)}}transformOffset(e){return{kind:"OffsetNode",offset:this.transformNode(e.offset)}}transformOnConflict(e){return{kind:"OnConflictNode",columns:this.transformNodeList(e.columns),constraint:this.transformNode(e.constraint),indexExpression:this.transformNode(e.indexExpression),indexWhere:this.transformNode(e.indexWhere),updates:this.transformNodeList(e.updates),updateWhere:this.transformNode(e.updateWhere),doNothing:e.doNothing}}transformOnDuplicateKey(e){return{kind:"OnDuplicateKeyNode",updates:this.transformNodeList(e.updates)}}transformCreateIndex(e){return{kind:"CreateIndexNode",name:this.transformNode(e.name),table:this.transformNode(e.table),columns:this.transformNodeList(e.columns),unique:e.unique,using:this.transformNode(e.using),ifNotExists:e.ifNotExists,where:this.transformNode(e.where),nullsNotDistinct:e.nullsNotDistinct}}transformList(e){return{kind:"ListNode",items:this.transformNodeList(e.items)}}transformDropIndex(e){return{kind:"DropIndexNode",name:this.transformNode(e.name),table:this.transformNode(e.table),ifExists:e.ifExists,cascade:e.cascade}}transformPrimaryKeyConstraint(e){return{kind:"PrimaryKeyConstraintNode",columns:this.transformNodeList(e.columns),name:this.transformNode(e.name)}}transformUniqueConstraint(e){return{kind:"UniqueConstraintNode",columns:this.transformNodeList(e.columns),name:this.transformNode(e.name),nullsNotDistinct:e.nullsNotDistinct}}transformForeignKeyConstraint(e){return{kind:"ForeignKeyConstraintNode",columns:this.transformNodeList(e.columns),references:this.transformNode(e.references),name:this.transformNode(e.name),onDelete:e.onDelete,onUpdate:e.onUpdate}}transformSetOperation(e){return{kind:"SetOperationNode",operator:e.operator,expression:this.transformNode(e.expression),all:e.all}}transformReferences(e){return{kind:"ReferencesNode",table:this.transformNode(e.table),columns:this.transformNodeList(e.columns),onDelete:e.onDelete,onUpdate:e.onUpdate}}transformCheckConstraint(e){return{kind:"CheckConstraintNode",expression:this.transformNode(e.expression),name:this.transformNode(e.name)}}transformWith(e){return{kind:"WithNode",expressions:this.transformNodeList(e.expressions),recursive:e.recursive}}transformCommonTableExpression(e){return{kind:"CommonTableExpressionNode",name:this.transformNode(e.name),materialized:e.materialized,expression:this.transformNode(e.expression)}}transformCommonTableExpressionName(e){return{kind:"CommonTableExpressionNameNode",table:this.transformNode(e.table),columns:this.transformNodeList(e.columns)}}transformHaving(e){return{kind:"HavingNode",having:this.transformNode(e.having)}}transformCreateSchema(e){return{kind:"CreateSchemaNode",schema:this.transformNode(e.schema),ifNotExists:e.ifNotExists}}transformDropSchema(e){return{kind:"DropSchemaNode",schema:this.transformNode(e.schema),ifExists:e.ifExists,cascade:e.cascade}}transformAlterTable(e){return{kind:"AlterTableNode",table:this.transformNode(e.table),renameTo:this.transformNode(e.renameTo),setSchema:this.transformNode(e.setSchema),columnAlterations:this.transformNodeList(e.columnAlterations),addConstraint:this.transformNode(e.addConstraint),dropConstraint:this.transformNode(e.dropConstraint),addIndex:this.transformNode(e.addIndex),dropIndex:this.transformNode(e.dropIndex)}}transformDropColumn(e){return{kind:"DropColumnNode",column:this.transformNode(e.column)}}transformRenameColumn(e){return{kind:"RenameColumnNode",column:this.transformNode(e.column),renameTo:this.transformNode(e.renameTo)}}transformAlterColumn(e){return{kind:"AlterColumnNode",column:this.transformNode(e.column),dataType:this.transformNode(e.dataType),dataTypeExpression:this.transformNode(e.dataTypeExpression),setDefault:this.transformNode(e.setDefault),dropDefault:e.dropDefault,setNotNull:e.setNotNull,dropNotNull:e.dropNotNull}}transformModifyColumn(e){return{kind:"ModifyColumnNode",column:this.transformNode(e.column)}}transformAddConstraint(e){return{kind:"AddConstraintNode",constraint:this.transformNode(e.constraint)}}transformDropConstraint(e){return{kind:"DropConstraintNode",constraintName:this.transformNode(e.constraintName),ifExists:e.ifExists,modifier:e.modifier}}transformCreateView(e){return{kind:"CreateViewNode",name:this.transformNode(e.name),temporary:e.temporary,orReplace:e.orReplace,ifNotExists:e.ifNotExists,materialized:e.materialized,columns:this.transformNodeList(e.columns),as:this.transformNode(e.as)}}transformDropView(e){return{kind:"DropViewNode",name:this.transformNode(e.name),ifExists:e.ifExists,materialized:e.materialized,cascade:e.cascade}}transformGenerated(e){return{kind:"GeneratedNode",byDefault:e.byDefault,always:e.always,identity:e.identity,stored:e.stored,expression:this.transformNode(e.expression)}}transformDefaultValue(e){return{kind:"DefaultValueNode",defaultValue:this.transformNode(e.defaultValue)}}transformOn(e){return{kind:"OnNode",on:this.transformNode(e.on)}}transformSelectModifier(e){return{kind:"SelectModifierNode",modifier:e.modifier,rawModifier:this.transformNode(e.rawModifier),of:this.transformNodeList(e.of)}}transformCreateType(e){return{kind:"CreateTypeNode",name:this.transformNode(e.name),enum:this.transformNode(e.enum)}}transformDropType(e){return{kind:"DropTypeNode",name:this.transformNode(e.name),ifExists:e.ifExists}}transformExplain(e){return{kind:"ExplainNode",format:e.format,options:this.transformNode(e.options)}}transformSchemableIdentifier(e){return{kind:"SchemableIdentifierNode",schema:this.transformNode(e.schema),identifier:this.transformNode(e.identifier)}}transformAggregateFunction(e){return{kind:"AggregateFunctionNode",aggregated:this.transformNodeList(e.aggregated),distinct:e.distinct,orderBy:this.transformNode(e.orderBy),filter:this.transformNode(e.filter),func:e.func,over:this.transformNode(e.over)}}transformOver(e){return{kind:"OverNode",orderBy:this.transformNode(e.orderBy),partitionBy:this.transformNode(e.partitionBy)}}transformPartitionBy(e){return{kind:"PartitionByNode",items:this.transformNodeList(e.items)}}transformPartitionByItem(e){return{kind:"PartitionByItemNode",partitionBy:this.transformNode(e.partitionBy)}}transformBinaryOperation(e){return{kind:"BinaryOperationNode",leftOperand:this.transformNode(e.leftOperand),operator:this.transformNode(e.operator),rightOperand:this.transformNode(e.rightOperand)}}transformUnaryOperation(e){return{kind:"UnaryOperationNode",operator:this.transformNode(e.operator),operand:this.transformNode(e.operand)}}transformUsing(e){return{kind:"UsingNode",tables:this.transformNodeList(e.tables)}}transformFunction(e){return{kind:"FunctionNode",func:e.func,arguments:this.transformNodeList(e.arguments)}}transformCase(e){return{kind:"CaseNode",value:this.transformNode(e.value),when:this.transformNodeList(e.when),else:this.transformNode(e.else),isStatement:e.isStatement}}transformWhen(e){return{kind:"WhenNode",condition:this.transformNode(e.condition),result:this.transformNode(e.result)}}transformJSONReference(e){return{kind:"JSONReferenceNode",reference:this.transformNode(e.reference),traversal:this.transformNode(e.traversal)}}transformJSONPath(e){return{kind:"JSONPathNode",inOperator:this.transformNode(e.inOperator),pathLegs:this.transformNodeList(e.pathLegs)}}transformJSONPathLeg(e){return{kind:"JSONPathLegNode",type:e.type,value:e.value}}transformJSONOperatorChain(e){return{kind:"JSONOperatorChainNode",operator:this.transformNode(e.operator),values:this.transformNodeList(e.values)}}transformTuple(e){return{kind:"TupleNode",values:this.transformNodeList(e.values)}}transformMergeQuery(e){return{kind:"MergeQueryNode",into:this.transformNode(e.into),using:this.transformNode(e.using),whens:this.transformNodeList(e.whens),with:this.transformNode(e.with),top:this.transformNode(e.top),endModifiers:this.transformNodeList(e.endModifiers),output:this.transformNode(e.output)}}transformMatched(e){return{kind:"MatchedNode",not:e.not,bySource:e.bySource}}transformAddIndex(e){return{kind:"AddIndexNode",name:this.transformNode(e.name),columns:this.transformNodeList(e.columns),unique:e.unique,using:this.transformNode(e.using),ifNotExists:e.ifNotExists}}transformCast(e){return{kind:"CastNode",expression:this.transformNode(e.expression),dataType:this.transformNode(e.dataType)}}transformFetch(e){return{kind:"FetchNode",rowCount:this.transformNode(e.rowCount),modifier:e.modifier}}transformTop(e){return{kind:"TopNode",expression:e.expression,modifiers:e.modifiers}}transformOutput(e){return{kind:"OutputNode",selections:this.transformNodeList(e.selections)}}transformDataType(e){return e}transformSelectAll(e){return e}transformIdentifier(e){return e}transformValue(e){return e}transformPrimitiveValueList(e){return e}transformOperator(e){return e}transformDefaultInsertValue(e){return e}}Qt=new WeakMap;const hc=c({AlterTableNode:!0,CreateIndexNode:!0,CreateSchemaNode:!0,CreateTableNode:!0,CreateTypeNode:!0,CreateViewNode:!0,DeleteQueryNode:!0,DropIndexNode:!0,DropSchemaNode:!0,DropTableNode:!0,DropTypeNode:!0,DropViewNode:!0,InsertQueryNode:!0,RawNode:!0,SelectQueryNode:!0,UpdateQueryNode:!0,MergeQueryNode:!0}),fc={json_agg:!0,to_json:!0};var Xe,Ee,Ie,$,pa,Rn,zn,Fn,Be,ga,Ln;class pc extends mc{constructor(a){super();T(this,$);T(this,Xe);T(this,Ee,new Set);T(this,Ie,new Set);S(this,Xe,a)}transformNodeImpl(a){if(!N(this,$,Rn).call(this,a))return super.transformNodeImpl(a);const n=N(this,$,Fn).call(this,a);for(const s of n)i(this,Ie).add(s);const r=N(this,$,zn).call(this,a);for(const s of r)i(this,Ee).add(s);const o=super.transformNodeImpl(a);for(const s of r)i(this,Ee).delete(s);for(const s of n)i(this,Ie).delete(s);return o}transformSchemableIdentifier(a){const n=super.transformSchemableIdentifier(a);return n.schema||!i(this,Ee).has(a.identifier.name)?n:{...n,schema:K.create(i(this,Xe))}}transformReferences(a){const n=super.transformReferences(a);return n.table.table.schema?n:{...n,table:ve.createWithSchema(i(this,Xe),n.table.table.identifier.name)}}transformAggregateFunction(a){return{...super.transformAggregateFunction({...a,aggregated:[]}),aggregated:N(this,$,pa).call(this,a,"aggregated")}}transformFunction(a){return{...super.transformFunction({...a,arguments:[]}),arguments:N(this,$,pa).call(this,a,"arguments")}}}Xe=new WeakMap,Ee=new WeakMap,Ie=new WeakMap,$=new WeakSet,pa=function(a,n){return fc[a.func]?a[n].map(r=>!ve.is(r)||r.table.schema?this.transformNode(r):{...r,table:this.transformIdentifier(r.table.identifier)}):this.transformNodeList(a[n])},Rn=function(a){return a.kind in hc},zn=function(a){const n=new Set;if("name"in a&&a.name&&da.is(a.name)&&N(this,$,ga).call(this,a.name,n),"from"in a&&a.from)for(const r of a.from.froms)N(this,$,Be).call(this,r,n);if("into"in a&&a.into&&N(this,$,Be).call(this,a.into,n),"table"in a&&a.table&&N(this,$,Be).call(this,a.table,n),"joins"in a&&a.joins)for(const r of a.joins)N(this,$,Be).call(this,r.table,n);return"using"in a&&a.using&&N(this,$,Be).call(this,a.using,n),n},Fn=function(a){const n=new Set;return"with"in a&&a.with&&N(this,$,Ln).call(this,a.with,n),n},Be=function(a,n){const r=ve.is(a)?a:be.is(a)&&ve.is(a.node)?a.node:null;r&&N(this,$,ga).call(this,r.table,n)},ga=function(a,n){const r=a.identifier.name;!i(this,Ee).has(r)&&!i(this,Ie).has(r)&&n.add(r)},Ln=function(a,n){for(const r of a.expressions){const o=r.name.table.table.identifier.name;i(this,Ie).has(o)||n.add(o)}};var bt;class Mn{constructor(e){T(this,bt);S(this,bt,new pc(e))}transformQuery(e){return i(this,bt).transformNode(e.node)}async transformResult(e){return e.result}}bt=new WeakMap;var Ot,Ze,et;class nn{constructor(){T(this,Ot);T(this,Ze);T(this,et);he(this,"resolve",e=>{i(this,Ze)&&i(this,Ze).call(this,e)});he(this,"reject",e=>{i(this,et)&&i(this,et).call(this,e)});S(this,Ot,new Promise((e,a)=>{S(this,et,a),S(this,Ze,e)}))}get promise(){return i(this,Ot)}}Ot=new WeakMap,Ze=new WeakMap,et=new WeakMap;const rn=new Set;function gc(t){rn.has(t)||(rn.add(t),console.log(t))}const wc=c([]);var $e,kt,wa;class yc{constructor(e=wc){T(this,kt);T(this,$e);S(this,$e,e)}get plugins(){return i(this,$e)}transformQuery(e,a){for(const n of i(this,$e)){const r=n.transformQuery({node:e,queryId:a});if(r.kind===e.kind)e=r;else throw new Error(["KyselyPlugin.transformQuery must return a node","of the same kind that was given to it.",`The plugin was given a ${e.kind}`,`but it returned a ${r.kind}`].join(" "))}return e}async executeQuery(e,a){return await this.provideConnection(async n=>{const r=await n.executeQuery(e),o=await N(this,kt,wa).call(this,r,a);return vc(r,o),o})}async*stream(e,a,n){const r=new nn,o=new nn;this.provideConnection(async u=>(r.resolve(u),await o.promise)).catch(u=>r.reject(u));const s=await r.promise;try{for await(const u of s.streamQuery(e,a))yield await N(this,kt,wa).call(this,u,n)}finally{o.resolve()}}}$e=new WeakMap,kt=new WeakSet,wa=async function(e,a){for(const n of i(this,$e))e=await n.transformResult({result:e,queryId:a});return e};function vc(t,e){const{numAffectedRows:a}=t;a===void 0&&t.numUpdatedOrDeletedRows===void 0||a!==void 0&&e.numAffectedRows!==void 0||gc("kysely:warning: outdated driver/plugin detected! QueryResult.numUpdatedOrDeletedRows is deprecated and will be removed in a future release.")}class Ve extends yc{get adapter(){throw new Error("this query cannot be compiled to SQL")}compileQuery(){throw new Error("this query cannot be compiled to SQL")}provideConnection(){throw new Error("this query cannot be executed")}withConnectionProvider(){throw new Error("this query cannot have a connection provider")}withPlugin(e){return new Ve([...this.plugins,e])}withPlugins(e){return new Ve([...this.plugins,...e])}withPluginAtFront(e){return new Ve([e,...this.plugins])}withoutPlugins(){return new Ve([])}}const jn=new Ve;function Nc(t,e){return new jt({joinNode:gt.create(t,Bt(e))})}function Cc(){return new Jt({overNode:fa.create()})}function Je(t,e){if(e.length===3)return Tc(t,e[0],e[1],e[2]);if(e.length===2)return xc(t,e[0],e[1]);throw new Error("not implemented")}function xc(t,e,a){return a(Nc(t,e)).toOperationNode()}function Tc(t,e,a,n){return gt.createWithOn(t,Bt(e),St(a,"=",n))}const Sc=c({is(t){return t.kind==="OffsetNode"},create(t){return c({kind:"OffsetNode",offset:t})}}),bc=c({is(t){return t.kind==="GroupByItemNode"},create(t){return c({kind:"GroupByItemNode",groupBy:t})}});function Oc(t){return t=Me(t)?t(ta()):t,xt(t).map(bc.create)}const kc=c({is(t){return t.kind==="SetOperationNode"},create(t,e,a){return c({kind:"SetOperationNode",operator:t,expression:e,all:a})}});function qe(t,e,a){return Me(e)&&(e=e(La())),Ne(e)||(e=[e]),e.map(n=>kc.create(t,aa(n),a))}var _e;const Vt=class Vt{constructor(e){T(this,_e);S(this,_e,e)}get expressionType(){}as(e){return new Fa(this,e)}or(...e){return new ya(mt.create(i(this,_e),te(e)))}and(...e){return new va(Ce.create(i(this,_e),te(e)))}$castTo(){return new Vt(i(this,_e))}$notNull(){return new Vt(i(this,_e))}toOperationNode(){return i(this,_e)}};_e=new WeakMap;let k=Vt;var tt,ge;class Fa{constructor(e,a){T(this,tt);T(this,ge);S(this,tt,e),S(this,ge,a)}get expression(){return i(this,tt)}get alias(){return i(this,ge)}toOperationNode(){return be.create(i(this,tt).toOperationNode(),Y(i(this,ge))?i(this,ge).toOperationNode():K.create(i(this,ge)))}}tt=new WeakMap,ge=new WeakMap;var Ae;const Gt=class Gt{constructor(e){T(this,Ae);S(this,Ae,e)}get expressionType(){}as(e){return new Fa(this,e)}or(...e){return new Gt(mt.create(i(this,Ae),te(e)))}$castTo(){return new Gt(i(this,Ae))}toOperationNode(){return Tt.create(i(this,Ae))}};Ae=new WeakMap;let ya=Gt;var De;const Ht=class Ht{constructor(e){T(this,De);S(this,De,e)}get expressionType(){}as(e){return new Fa(this,e)}and(...e){return new Ht(Ce.create(i(this,De),te(e)))}$castTo(){return new Ht(i(this,De))}toOperationNode(){return Tt.create(i(this,De))}};De=new WeakMap;let va=Ht;const Ec={is(t){return t.kind==="FetchNode"},create(t,e){return{kind:"FetchNode",rowCount:Te.create(t),modifier:e}}};function Ic(t,e){if(!$a(t)&&!Sn(t))throw new Error(`Invalid fetch row count: ${t}`);if(!$c(e))throw new Error(`Invalid fetch modifier: ${e}`);return Ec.create(t,e)}function $c(t){return t==="only"||t==="with ties"}var p;const C=class C{constructor(e){T(this,p);S(this,p,c(e))}get expressionType(){}get isSelectQueryBuilder(){return!0}where(...e){return new C({...i(this,p),queryNode:A.cloneWithWhere(i(this,p).queryNode,te(e))})}whereRef(e,a,n){return new C({...i(this,p),queryNode:A.cloneWithWhere(i(this,p).queryNode,St(e,a,n))})}having(...e){return new C({...i(this,p),queryNode:E.cloneWithHaving(i(this,p).queryNode,te(e))})}havingRef(e,a,n){return new C({...i(this,p),queryNode:E.cloneWithHaving(i(this,p).queryNode,St(e,a,n))})}select(e){return new C({...i(this,p),queryNode:E.cloneWithSelections(i(this,p).queryNode,Dn(e))})}distinctOn(e){return new C({...i(this,p),queryNode:E.cloneWithDistinctOn(i(this,p).queryNode,xt(e))})}modifyFront(e){return new C({...i(this,p),queryNode:E.cloneWithFrontModifier(i(this,p).queryNode,se.createWithExpression(e.toOperationNode()))})}modifyEnd(e){return new C({...i(this,p),queryNode:A.cloneWithEndModifier(i(this,p).queryNode,se.createWithExpression(e.toOperationNode()))})}distinct(){return new C({...i(this,p),queryNode:E.cloneWithFrontModifier(i(this,p).queryNode,se.create("Distinct"))})}forUpdate(e){return new C({...i(this,p),queryNode:A.cloneWithEndModifier(i(this,p).queryNode,se.create("ForUpdate",e?Dt(e).map(ee):void 0))})}forShare(e){return new C({...i(this,p),queryNode:A.cloneWithEndModifier(i(this,p).queryNode,se.create("ForShare",e?Dt(e).map(ee):void 0))})}forKeyShare(e){return new C({...i(this,p),queryNode:A.cloneWithEndModifier(i(this,p).queryNode,se.create("ForKeyShare",e?Dt(e).map(ee):void 0))})}forNoKeyUpdate(e){return new C({...i(this,p),queryNode:A.cloneWithEndModifier(i(this,p).queryNode,se.create("ForNoKeyUpdate",e?Dt(e).map(ee):void 0))})}skipLocked(){return new C({...i(this,p),queryNode:A.cloneWithEndModifier(i(this,p).queryNode,se.create("SkipLocked"))})}noWait(){return new C({...i(this,p),queryNode:A.cloneWithEndModifier(i(this,p).queryNode,se.create("NoWait"))})}selectAll(e){return new C({...i(this,p),queryNode:E.cloneWithSelections(i(this,p).queryNode,Pn(e))})}innerJoin(...e){return new C({...i(this,p),queryNode:A.cloneWithJoin(i(this,p).queryNode,Je("InnerJoin",e))})}leftJoin(...e){return new C({...i(this,p),queryNode:A.cloneWithJoin(i(this,p).queryNode,Je("LeftJoin",e))})}rightJoin(...e){return new C({...i(this,p),queryNode:A.cloneWithJoin(i(this,p).queryNode,Je("RightJoin",e))})}fullJoin(...e){return new C({...i(this,p),queryNode:A.cloneWithJoin(i(this,p).queryNode,Je("FullJoin",e))})}innerJoinLateral(...e){return new C({...i(this,p),queryNode:A.cloneWithJoin(i(this,p).queryNode,Je("LateralInnerJoin",e))})}leftJoinLateral(...e){return new C({...i(this,p),queryNode:A.cloneWithJoin(i(this,p).queryNode,Je("LateralLeftJoin",e))})}orderBy(...e){return new C({...i(this,p),queryNode:E.cloneWithOrderByItems(i(this,p).queryNode,Da(e))})}groupBy(e){return new C({...i(this,p),queryNode:E.cloneWithGroupByItems(i(this,p).queryNode,Oc(e))})}limit(e){return new C({...i(this,p),queryNode:E.cloneWithLimit(i(this,p).queryNode,uc.create(j(e)))})}offset(e){return new C({...i(this,p),queryNode:E.cloneWithOffset(i(this,p).queryNode,Sc.create(j(e)))})}fetch(e,a="only"){return new C({...i(this,p),queryNode:E.cloneWithFetch(i(this,p).queryNode,Ic(e,a))})}top(e,a){return new C({...i(this,p),queryNode:A.cloneWithTop(i(this,p).queryNode,ic(e,a))})}union(e){return new C({...i(this,p),queryNode:E.cloneWithSetOperations(i(this,p).queryNode,qe("union",e,!1))})}unionAll(e){return new C({...i(this,p),queryNode:E.cloneWithSetOperations(i(this,p).queryNode,qe("union",e,!0))})}intersect(e){return new C({...i(this,p),queryNode:E.cloneWithSetOperations(i(this,p).queryNode,qe("intersect",e,!1))})}intersectAll(e){return new C({...i(this,p),queryNode:E.cloneWithSetOperations(i(this,p).queryNode,qe("intersect",e,!0))})}except(e){return new C({...i(this,p),queryNode:E.cloneWithSetOperations(i(this,p).queryNode,qe("except",e,!1))})}exceptAll(e){return new C({...i(this,p),queryNode:E.cloneWithSetOperations(i(this,p).queryNode,qe("except",e,!0))})}as(e){return new Jn(this,e)}clearSelect(){return new C({...i(this,p),queryNode:E.cloneWithoutSelections(i(this,p).queryNode)})}clearWhere(){return new C({...i(this,p),queryNode:A.cloneWithoutWhere(i(this,p).queryNode)})}clearLimit(){return new C({...i(this,p),queryNode:E.cloneWithoutLimit(i(this,p).queryNode)})}clearOffset(){return new C({...i(this,p),queryNode:E.cloneWithoutOffset(i(this,p).queryNode)})}clearOrderBy(){return new C({...i(this,p),queryNode:E.cloneWithoutOrderBy(i(this,p).queryNode)})}clearGroupBy(){return new C({...i(this,p),queryNode:E.cloneWithoutGroupBy(i(this,p).queryNode)})}$call(e){return e(this)}$if(e,a){return e?a(this):new C({...i(this,p)})}$castTo(){return new C(i(this,p))}$narrowType(){return new C(i(this,p))}$assertType(){return new C(i(this,p))}$asTuple(){return new k(this.toOperationNode())}withPlugin(e){return new C({...i(this,p),executor:i(this,p).executor.withPlugin(e)})}toOperationNode(){return i(this,p).executor.transformQuery(i(this,p).queryNode,i(this,p).queryId)}compile(){return i(this,p).executor.compileQuery(this.toOperationNode(),i(this,p).queryId)}async execute(){const e=this.compile();return(await i(this,p).executor.executeQuery(e,i(this,p).queryId)).rows}async executeTakeFirst(){const[e]=await this.execute();return e}async executeTakeFirstOrThrow(e=rc){const a=await this.executeTakeFirst();if(a===void 0)throw oc(e)?new e(this.toOperationNode()):e(this.toOperationNode());return a}async*stream(e=100){const a=this.compile(),n=i(this,p).executor.stream(a,e,i(this,p).queryId);for await(const r of n)yield*r.rows}async explain(e,a){return await new C({...i(this,p),queryNode:A.cloneWithExplain(i(this,p).queryNode,e,a)}).execute()}};p=new WeakMap;let qt=C;je(qt,"don't await SelectQueryBuilder instances directly. To execute the query you need to call `execute` or `executeTakeFirst`.");function Ac(t){return new qt(t)}var at,nt;class Jn{constructor(e,a){T(this,at);T(this,nt);S(this,at,e),S(this,nt,a)}get expression(){return i(this,at)}get alias(){return i(this,nt)}get isAliasedSelectQueryBuilder(){return!0}toOperationNode(){return be.create(i(this,at).toOperationNode(),K.create(i(this,nt)))}}at=new WeakMap,nt=new WeakMap;je(Jn,"don't await AliasedSelectQueryBuilder instances directly. AliasedSelectQueryBuilder should never be executed directly since it's always a part of another query.");const pe=c({is(t){return t.kind==="AggregateFunctionNode"},create(t,e=[]){return c({kind:"AggregateFunctionNode",func:t,aggregated:e})},cloneWithDistinct(t){return c({...t,distinct:!0})},cloneWithOrderBy(t,e){return c({...t,orderBy:t.orderBy?Se.cloneWithItems(t.orderBy,e):Se.create(e)})},cloneWithFilter(t,e){return c({...t,filter:t.filter?Qe.cloneWithOperation(t.filter,"And",e):Qe.create(e)})},cloneWithOrFilter(t,e){return c({...t,filter:t.filter?Qe.cloneWithOperation(t.filter,"Or",e):Qe.create(e)})},cloneWithOver(t,e){return c({...t,over:e})}}),on=c({is(t){return t.kind==="FunctionNode"},create(t,e){return c({kind:"FunctionNode",func:t,arguments:e})}});var D;const de=class de{constructor(e){T(this,D);S(this,D,c(e))}get expressionType(){}as(e){return new Dc(this,e)}distinct(){return new de({...i(this,D),aggregateFunctionNode:pe.cloneWithDistinct(i(this,D).aggregateFunctionNode)})}orderBy(e,a){return new de({...i(this,D),aggregateFunctionNode:pe.cloneWithOrderBy(i(this,D).aggregateFunctionNode,Da([e,a]))})}filterWhere(...e){return new de({...i(this,D),aggregateFunctionNode:pe.cloneWithFilter(i(this,D).aggregateFunctionNode,te(e))})}filterWhereRef(e,a,n){return new de({...i(this,D),aggregateFunctionNode:pe.cloneWithFilter(i(this,D).aggregateFunctionNode,St(e,a,n))})}over(e){const a=Cc();return new de({...i(this,D),aggregateFunctionNode:pe.cloneWithOver(i(this,D).aggregateFunctionNode,(e?e(a):a).toOperationNode())})}$call(e){return e(this)}$castTo(){return new de(i(this,D))}$notNull(){return new de(i(this,D))}toOperationNode(){return i(this,D).aggregateFunctionNode}};D=new WeakMap;let Ge=de;je(Ge,"don't await AggregateFunctionBuilder instances. They are never executed directly and are always just a part of a query.");var rt,ot;class Dc{constructor(e,a){T(this,rt);T(this,ot);S(this,rt,e),S(this,ot,a)}get expression(){return i(this,rt)}get alias(){return i(this,ot)}toOperationNode(){return be.create(i(this,rt).toOperationNode(),K.create(i(this,ot)))}}rt=new WeakMap,ot=new WeakMap;function Pc(){const t=(a,n)=>new k(on.create(a,xt(n??[]))),e=(a,n)=>new Ge({aggregateFunctionNode:pe.create(a,n?xt(n):void 0)});return Object.assign(t,{agg:e,avg(a){return e("avg",[a])},coalesce(...a){return t("coalesce",a)},count(a){return e("count",[a])},countAll(a){return new Ge({aggregateFunctionNode:pe.create("count",Pn(a))})},max(a){return e("max",[a])},min(a){return e("min",[a])},sum(a){return e("sum",[a])},any(a){return t("any",[a])},jsonAgg(a){return new Ge({aggregateFunctionNode:pe.create("json_agg",[oe(a)?ee(a):a.toOperationNode()])})},toJson(a){return new k(on.create("to_json",[oe(a)?ee(a):a.toOperationNode()]))}})}const Rc=c({is(t){return t.kind==="UnaryOperationNode"},create(t,e){return c({kind:"UnaryOperationNode",operator:t,operand:e})}});function zc(t,e){return Rc.create(Fe.create(t),G(e))}const me=c({is(t){return t.kind==="CaseNode"},create(t){return c({kind:"CaseNode",value:t})},cloneWithWhen(t,e){return c({...t,when:c(t.when?[...t.when,e]:[e])})},cloneWithThen(t,e){return c({...t,when:t.when?c([...t.when.slice(0,-1),ea.cloneWithResult(t.when[t.when.length-1],e)]):void 0})},cloneWith(t,e){return c({...t,...e})}});var st;class Fc{constructor(e){T(this,st);S(this,st,c(e))}when(...e){return new qn({...i(this,st),node:me.cloneWithWhen(i(this,st).node,ea.create(te(e)))})}}st=new WeakMap;var it;class qn{constructor(e){T(this,it);S(this,it,c(e))}then(e){return new Lc({...i(this,it),node:me.cloneWithThen(i(this,it).node,Pa(e)?Ra(e):j(e))})}}it=new WeakMap;var ne;class Lc{constructor(e){T(this,ne);S(this,ne,c(e))}when(...e){return new qn({...i(this,ne),node:me.cloneWithWhen(i(this,ne).node,ea.create(te(e)))})}else(e){return new Mc({...i(this,ne),node:me.cloneWith(i(this,ne).node,{else:Pa(e)?Ra(e):j(e)})})}end(){return new k(me.cloneWith(i(this,ne).node,{isStatement:!1}))}endCase(){return new k(me.cloneWith(i(this,ne).node,{isStatement:!0}))}}ne=new WeakMap;var ct;class Mc{constructor(e){T(this,ct);S(this,ct,c(e))}end(){return new k(me.cloneWith(i(this,ct).node,{isStatement:!1}))}endCase(){return new k(me.cloneWith(i(this,ct).node,{isStatement:!0}))}}ct=new WeakMap;const sn=c({is(t){return t.kind==="JSONPathLegNode"},create(t,e){return c({kind:"JSONPathLegNode",type:t,value:e})}});var re,Et,Ca;class Na{constructor(e){T(this,Et);T(this,re);S(this,re,e)}at(e){return N(this,Et,Ca).call(this,"ArrayLocation",e)}key(e){return N(this,Et,Ca).call(this,"Member",e)}}re=new WeakMap,Et=new WeakSet,Ca=function(e,a){return Lt.is(i(this,re))?new Wt(Lt.cloneWithTraversal(i(this,re),wt.is(i(this,re).traversal)?wt.cloneWithLeg(i(this,re).traversal,sn.create(e,a)):In.cloneWithValue(i(this,re).traversal,Te.createImmediate(a)))):new Wt(wt.cloneWithLeg(i(this,re),sn.create(e,a)))};var Pe;const Yt=class Yt extends Na{constructor(a){super(a);T(this,Pe);S(this,Pe,a)}get expressionType(){}as(a){return new jc(this,a)}$castTo(){return new Yt(i(this,Pe))}$notNull(){return new Yt(i(this,Pe))}toOperationNode(){return i(this,Pe)}};Pe=new WeakMap;let Wt=Yt;var ut,we;class jc{constructor(e,a){T(this,ut);T(this,we);S(this,ut,e),S(this,we,a)}get expression(){return i(this,ut)}get alias(){return i(this,we)}toOperationNode(){return be.create(i(this,ut).toOperationNode(),Y(i(this,we))?i(this,we).toOperationNode():K.create(i(this,we)))}}ut=new WeakMap,we=new WeakMap;const cn=c({is(t){return t.kind==="TupleNode"},create(t){return c({kind:"TupleNode",values:c(t)})}}),Jc=["varchar","char","text","integer","int2","int4","int8","smallint","bigint","boolean","real","double precision","float4","float8","decimal","numeric","binary","bytea","date","datetime","time","timetz","timestamp","timestamptz","serial","bigserial","uuid","json","jsonb","blob","varbinary","int4range","int4multirange","int8range","int8multirange","numrange","nummultirange","tsrange","tsmultirange","tstzrange","tstzmultirange","daterange","datemultirange"],qc=[/^varchar\(\d+\)$/,/^char\(\d+\)$/,/^decimal\(\d+, \d+\)$/,/^numeric\(\d+, \d+\)$/,/^binary\(\d+\)$/,/^datetime\(\d+\)$/,/^time\(\d+\)$/,/^timetz\(\d+\)$/,/^timestamp\(\d+\)$/,/^timestamptz\(\d+\)$/,/^varbinary\(\d+\)$/],Wc=c({is(t){return t.kind==="DataTypeNode"},create(t){return c({kind:"DataTypeNode",dataType:t})}});function Bc(t){return!!(Jc.includes(t)||qc.some(e=>e.test(t)))}function Uc(t){if(Y(t))return t.toOperationNode();if(Bc(t))return Wc.create(t);throw new Error(`invalid column data type ${JSON.stringify(t)}`)}const Kc=c({is(t){return t.kind==="CastNode"},create(t,e){return c({kind:"CastNode",expression:t,dataType:e})}});function La(t=jn){function e(r,o,s){return new k(za(r,o,s))}function a(r,o){return new k(zc(r,o))}const n=Object.assign(e,{fn:void 0,eb:void 0,selectFrom(r){return Ac({queryId:ie(),executor:t,queryNode:E.createFrom(Qc(r))})},case(r){return new Fc({node:me.create(Ft(r)?void 0:G(r))})},ref(r,o){return Ft(o)?new k(xe(r)):new Na(qi(r,o))},jsonPath(){return new Na(wt.create())},table(r){return new k(ee(r))},val(r){return new k(j(r))},refTuple(...r){return new k(cn.create(r.map(G)))},tuple(...r){return new k(cn.create(r.map(j)))},lit(r){return new k(Ra(r))},unary:a,not(r){return a("not",r)},exists(r){return a("exists",r)},neg(r){return a("-",r)},between(r,o,s){return new k(dt.create(G(r),Fe.create("between"),Ce.create(j(o),j(s))))},betweenSymmetric(r,o,s){return new k(dt.create(G(r),Fe.create("between symmetric"),Ce.create(j(o),j(s))))},and(r){return Ne(r)?new k(ma(r,"and")):new k(Ka(r,"and"))},or(r){return Ne(r)?new k(ma(r,"or")):new k(Ka(r,"or"))},parens(...r){const o=te(r);return Tt.is(o)?new k(o):new k(Tt.create(o))},cast(r,o){return new k(Kc.create(G(r),Uc(o)))},withSchema(r){return La(t.withPluginAtFront(new Mn(r)))}});return n.fn=Pc(),n.eb=n,n}function ta(t){return La()}function aa(t){if(Y(t))return t.toOperationNode();if(Me(t))return t(ta()).toOperationNode();throw new Error(`invalid expression: ${JSON.stringify(t)}`)}function Wn(t){if(Y(t))return t.toOperationNode();if(Me(t))return t(ta()).toOperationNode();throw new Error(`invalid aliased expression: ${JSON.stringify(t)}`)}function na(t){return $i(t)||Ai(t)||Me(t)}function Qc(t){return Ne(t)?t.map(e=>Bt(e)):[Bt(t)]}function Bt(t){return oe(t)?Vc(t):Wn(t)}function Vc(t){const e=" as ";if(t.includes(e)){const[a,n]=t.split(e).map(Bn);return be.create(ee(a),K.create(n))}else return ee(t)}function ee(t){const e=".";if(t.includes(e)){const[a,n]=t.split(e).map(Bn);return ve.createWithSchema(a,n)}else return ve.create(t)}function Bn(t){return t.trim()}var M,H,Rt,xa,Ta;const Nt=class Nt{constructor(e){T(this,H);T(this,M);S(this,M,c(e))}get expressionType(){}get isRawBuilder(){return!0}as(e){return new Un(this,e)}$castTo(){return new Nt({...i(this,M)})}$notNull(){return new Nt(i(this,M))}withPlugin(e){return new Nt({...i(this,M),plugins:i(this,M).plugins!==void 0?c([...i(this,M).plugins,e]):c([e])})}toOperationNode(){return N(this,H,xa).call(this,N(this,H,Rt).call(this))}compile(e){return N(this,H,Ta).call(this,N(this,H,Rt).call(this,e))}async execute(e){const a=N(this,H,Rt).call(this,e);return a.executeQuery(N(this,H,Ta).call(this,a),i(this,M).queryId)}};M=new WeakMap,H=new WeakSet,Rt=function(e){const a=e!==void 0?e.getExecutor():jn;return i(this,M).plugins!==void 0?a.withPlugins(i(this,M).plugins):a},xa=function(e){return e.transformQuery(i(this,M).rawNode,i(this,M).queryId)},Ta=function(e){return e.compileQuery(N(this,H,xa).call(this,e),i(this,M).queryId)};let Ut=Nt;function fe(t){return new Ut(t)}je(Ut,"don't await RawBuilder instances directly. To execute the query you need to call `execute`");var Re,ye;class Un{constructor(e,a){T(this,Re);T(this,ye);S(this,Re,e),S(this,ye,a)}get expression(){return i(this,Re)}get alias(){return i(this,ye)}get rawBuilder(){return i(this,Re)}toOperationNode(){return be.create(i(this,Re).toOperationNode(),Y(i(this,ye))?i(this,ye).toOperationNode():K.create(i(this,ye)))}}Re=new WeakMap,ye=new WeakMap;je(Un,"don't await AliasedRawBuilder instances directly. AliasedRawBuilder should never be executed directly since it's always a part of another query.");const w=Object.assign((t,...e)=>fe({queryId:ie(),rawNode:U.create(t,(e==null?void 0:e.map(un))??[])}),{ref(t){return fe({queryId:ie(),rawNode:U.createWithChild(xe(t))})},val(t){return fe({queryId:ie(),rawNode:U.createWithChild(j(t))})},value(t){return this.val(t)},table(t){return fe({queryId:ie(),rawNode:U.createWithChild(ee(t))})},id(...t){const e=new Array(t.length+1).fill(".");return e[0]="",e[e.length-1]="",fe({queryId:ie(),rawNode:U.create(e,t.map(K.create))})},lit(t){return fe({queryId:ie(),rawNode:U.createWithChild(Te.createImmediate(t))})},literal(t){return this.lit(t)},raw(t){return fe({queryId:ie(),rawNode:U.createWithSql(t)})},join(t,e=w`, `){const a=new Array(2*t.length-1),n=e.toOperationNode();for(let r=0;r<t.length;++r)a[2*r]=un(t[r]),r!==t.length-1&&(a[2*r+1]=n);return fe({queryId:ie(),rawNode:U.createWithChildren(a)})}});function un(t){return Y(t)?t.toOperationNode():j(t)}class Gc{transformQuery(e){return e.node}async transformResult(e){return e.result}}const Hc="kysely_migration",ln="kysely_migration_lock",Yc=!1,ia="migration_lock",Xc=c({__noMigrations__:!0});var I,g,ht,ce,ue,Ue,Qn,le,Vn,Gn,Hn,Yn,Xn,Sa,Ke,ba,Zn,er,tr,Oa,ar,nr,rr,or,sr,ft;class Kn{constructor(e){T(this,g);T(this,I);S(this,I,c(e))}async getMigrations(){const e=await N(this,g,Ke).call(this,i(this,g,ue))?await i(this,I).db.withPlugin(i(this,g,le)).selectFrom(i(this,g,ue)).select(["name","timestamp"]).$narrowType().execute():[];return(await N(this,g,Oa).call(this)).map(({name:n,...r})=>{const o=e.find(s=>s.name===n);return{name:n,migration:r,executedAt:o?new Date(o.timestamp):void 0}})}async migrateToLatest(){return N(this,g,ht).call(this,()=>({direction:"Up",step:1/0}))}async migrateTo(e){return N(this,g,ht).call(this,({migrations:a,executedMigrations:n,pendingMigrations:r})=>{if(e===Xc)return{direction:"Down",step:1/0};if(!a.find(u=>u.name===e))throw new Error(`migration "${e}" doesn't exist`);const o=n.indexOf(e),s=r.findIndex(u=>u.name===e);if(o!==-1)return{direction:"Down",step:n.length-o-1};if(s!==-1)return{direction:"Up",step:s+1};throw new Error(`migration "${e}" isn't executed or pending`)})}async migrateUp(){return N(this,g,ht).call(this,()=>({direction:"Up",step:1}))}async migrateDown(){return N(this,g,ht).call(this,()=>({direction:"Down",step:1}))}}I=new WeakMap,g=new WeakSet,ht=async function(e){try{return await N(this,g,Vn).call(this),await N(this,g,Zn).call(this,e)}catch(a){return a instanceof ca?a.resultSet:{error:a}}},ce=function(){return i(this,I).migrationTableSchema},ue=function(){return i(this,I).migrationTableName??Hc},Ue=function(){return i(this,I).migrationLockTableName??ln},Qn=function(){return i(this,I).allowUnorderedMigrations??Yc},le=function(){return i(this,g,ce)?new Mn(i(this,g,ce)):new Gc},Vn=async function(){await N(this,g,Gn).call(this),await N(this,g,Hn).call(this),await N(this,g,Yn).call(this),await N(this,g,Xn).call(this)},Gn=async function(){if(i(this,g,ce)&&!await N(this,g,Sa).call(this))try{await N(this,g,ft).call(this,i(this,I).db.schema.createSchema(i(this,g,ce)))}catch(e){if(!await N(this,g,Sa).call(this))throw e}},Hn=async function(){if(!await N(this,g,Ke).call(this,i(this,g,ue)))try{i(this,g,ce)&&await N(this,g,ft).call(this,i(this,I).db.schema.createSchema(i(this,g,ce))),await N(this,g,ft).call(this,i(this,I).db.schema.withPlugin(i(this,g,le)).createTable(i(this,g,ue)).addColumn("name","varchar(255)",e=>e.notNull().primaryKey()).addColumn("timestamp","varchar(255)",e=>e.notNull()))}catch(e){if(!await N(this,g,Ke).call(this,i(this,g,ue)))throw e}},Yn=async function(){if(!await N(this,g,Ke).call(this,i(this,g,Ue)))try{await N(this,g,ft).call(this,i(this,I).db.schema.withPlugin(i(this,g,le)).createTable(i(this,g,Ue)).addColumn("id","varchar(255)",e=>e.notNull().primaryKey()).addColumn("is_locked","integer",e=>e.notNull().defaultTo(0)))}catch(e){if(!await N(this,g,Ke).call(this,i(this,g,Ue)))throw e}},Xn=async function(){if(!await N(this,g,ba).call(this))try{await i(this,I).db.withPlugin(i(this,g,le)).insertInto(i(this,g,Ue)).values({id:ia,is_locked:0}).execute()}catch(e){if(!await N(this,g,ba).call(this))throw e}},Sa=async function(){return(await i(this,I).db.introspection.getSchemas()).some(a=>a.name===i(this,g,ce))},Ke=async function(e){const a=i(this,g,ce);return(await i(this,I).db.introspection.getTables({withInternalKyselyTables:!0})).some(r=>r.name===e&&(!a||r.schema===a))},ba=async function(){return!!await i(this,I).db.withPlugin(i(this,g,le)).selectFrom(i(this,g,Ue)).where("id","=",ia).select("id").executeTakeFirst()},Zn=async function(e){const a=i(this,I).db.getExecutor().adapter,n=c({lockTable:i(this,I).migrationLockTableName??ln,lockRowId:ia,lockTableSchema:i(this,I).migrationTableSchema}),r=async o=>{try{await a.acquireMigrationLock(o,n);const s=await N(this,g,er).call(this,o);if(s.migrations.length===0)return{results:[]};const{direction:u,step:l}=e(s);return l<=0?{results:[]}:u==="Down"?await N(this,g,or).call(this,o,s,l):u==="Up"?await N(this,g,sr).call(this,o,s,l):{results:[]}}finally{await a.releaseMigrationLock(o,n)}};return a.supportsTransactionalDdl?i(this,I).db.transaction().execute(r):i(this,I).db.connection().execute(r)},er=async function(e){const a=await N(this,g,Oa).call(this),n=await N(this,g,ar).call(this,e);N(this,g,nr).call(this,a,n),i(this,g,Qn)||N(this,g,rr).call(this,a,n);const r=N(this,g,tr).call(this,a,n);return c({migrations:a,executedMigrations:n,lastMigration:Ii(n),pendingMigrations:r})},tr=function(e,a){return e.filter(n=>!a.includes(n.name))},Oa=async function(){const e=await i(this,I).provider.getMigrations();return Object.keys(e).sort().map(a=>({...e[a],name:a}))},ar=async function(e){const a=await e.withPlugin(i(this,g,le)).selectFrom(i(this,g,ue)).select(["name","timestamp"]).$narrowType().execute(),n=i(this,I).nameComparator||((r,o)=>r.localeCompare(o));return a.sort((r,o)=>r.timestamp===o.timestamp?n(r.name,o.name):new Date(r.timestamp).getTime()-new Date(o.timestamp).getTime()).map(r=>r.name)},nr=function(e,a){for(const n of a)if(!e.some(r=>r.name===n))throw new Error(`corrupted migrations: previously executed migration ${n} is missing`)},rr=function(e,a){for(let n=0;n<a.length;++n)if(e[n].name!==a[n])throw new Error(`corrupted migrations: expected previously executed migration ${a[n]} to be at index ${n} but ${e[n].name} was found in its place. New migrations must always have a name that comes alphabetically after the last executed migration.`)},or=async function(e,a,n){const r=a.executedMigrations.slice().reverse().slice(0,n).map(s=>a.migrations.find(u=>u.name===s)),o=r.map(s=>({migrationName:s.name,direction:"Down",status:"NotExecuted"}));for(let s=0;s<o.length;++s){const u=r[s];try{u.down&&(await u.down(e),await e.withPlugin(i(this,g,le)).deleteFrom(i(this,g,ue)).where("name","=",u.name).execute(),o[s]={migrationName:u.name,direction:"Down",status:"Success"})}catch(l){throw o[s]={migrationName:u.name,direction:"Down",status:"Error"},new ca({error:l,results:o})}}return{results:o}},sr=async function(e,a,n){const o=a.pendingMigrations.slice(0,n).map(s=>({migrationName:s.name,direction:"Up",status:"NotExecuted"}));for(let s=0;s<o.length;s++){const u=a.pendingMigrations[s];try{await u.up(e),await e.withPlugin(i(this,g,le)).insertInto(i(this,g,ue)).values({name:u.name,timestamp:new Date().toISOString()}).execute(),o[s]={migrationName:u.name,direction:"Up",status:"Success"}}catch(l){throw o[s]={migrationName:u.name,direction:"Up",status:"Error"},new ca({error:l,results:o})}}return{results:o}},ft=async function(e){i(this,I).db.getExecutor().adapter.supportsCreateIfNotExists&&(e=e.ifNotExists()),await e.execute()};var It;class ca extends Error{constructor(a){super();T(this,It);S(this,It,a)}get resultSet(){return i(this,It)}}It=new WeakMap;function Zc(t){return async(e,a)=>{let n=t.selectFrom("organizations").selectAll().where("tenant_id","=",e);if(a!=null&&a.q&&(n=n.where(m=>m.or([m("name","like",`%${a.q}%`),m("display_name","like",`%${a.q}%`)]))),a!=null&&a.sort){const m=a.sort.sort_order==="asc"?"asc":"desc",d=a.sort.sort_by;["name","display_name","created_at"].includes(d)?n=n.orderBy(d,m):n=n.orderBy("created_at","desc")}else n=n.orderBy("created_at","desc");if((a==null?void 0:a.from)!==void 0){const m=parseInt(a.from,10);isNaN(m)||(n=n.offset(m))}else if((a==null?void 0:a.page)!==void 0){const m=(a==null?void 0:a.per_page)||(a==null?void 0:a.take)||10,d=a.page*m;n=n.offset(d)}const r=(a==null?void 0:a.take)||(a==null?void 0:a.per_page)||10;n=n.limit(r);const o=await n.execute();let s=o.length;if(a!=null&&a.include_totals){let m=t.selectFrom("organizations").select(w`count(*)`.as("count")).where("tenant_id","=",e);a!=null&&a.q&&(m=m.where(f=>f.or([f("name","like",`%${a.q}%`),f("display_name","like",`%${a.q}%`)])));const d=await m.executeTakeFirst();s=Number((d==null?void 0:d.count)||0)}const u=o.map(m=>b({...m,branding:m.branding?JSON.parse(m.branding):{},metadata:m.metadata?JSON.parse(m.metadata):{},enabled_connections:m.enabled_connections?JSON.parse(m.enabled_connections):[],token_quota:m.token_quota?JSON.parse(m.token_quota):{}})),l=(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*l:0;return{organizations:u,start:isNaN(_)?0:_,limit:l,length:u.length,total:s}}}function eu(t){return async(e,a)=>(await t.deleteFrom("organizations").where("tenant_id","=",e).where("id","=",a).execute()).length>0}function tu(t){return async(e,a,n)=>{const{branding:r,metadata:o,enabled_connections:s,token_quota:u,...l}=n,_={...l,updated_at:new Date().toISOString()};return $t(n,["branding","metadata","enabled_connections","token_quota"],_),(await t.updateTable("organizations").set(_).where("tenant_id","=",e).where("id","=",a).execute()).length>0}}function au(t){return{create:ki(t),get:Ei(t),list:Zc(t),remove:eu(t),update:tu(t)}}function nu(t){return async(e,a)=>{const n={id:Q(),tenant_id:e,user_id:a.user_id,organization_id:a.organization_id,created_at:new Date().toISOString(),updated_at:new Date().toISOString()};try{await t.insertInto("user_organizations").values(n).execute()}catch(r){throw r.code==="SQLITE_CONSTRAINT_UNIQUE"||r.code==="ER_DUP_ENTRY"?new lt(409,{message:"User is already a member of this organization"}):r}return{...n}}}function ru(t){return async(e,a)=>{const n=await t.selectFrom("user_organizations").selectAll().where("id","=",a).where("tenant_id","=",e).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 ou(t){return async(e,a)=>{const n=(a==null?void 0:a.page)||0,r=(a==null?void 0:a.per_page)||50,o=n*r;let s=t.selectFrom("user_organizations").selectAll().where("tenant_id","=",e);if(a!=null&&a.q){if(a.q.startsWith("user_id:")){const d=a.q.replace("user_id:","");s=s.where("user_id","=",d)}else if(a.q.startsWith("organization_id:")){const d=a.q.replace("organization_id:","");s=s.where("organization_id","=",d)}}s=s.orderBy("created_at","desc"),r>0&&(s=s.limit(r).offset(o));const u=await s.execute();let l=t.selectFrom("user_organizations").select(t.fn.count("id").as("count")).where("tenant_id","=",e);if(a!=null&&a.q){if(a.q.startsWith("user_id:")){const d=a.q.replace("user_id:","");l=l.where("user_id","=",d)}else if(a.q.startsWith("organization_id:")){const d=a.q.replace("organization_id:","");l=l.where("organization_id","=",d)}}const _=await l.executeTakeFirst();return{userOrganizations:u.map(d=>({id:d.id,user_id:d.user_id,organization_id:d.organization_id,created_at:d.created_at,updated_at:d.updated_at})),start:o,limit:r,length:Number((_==null?void 0:_.count)||0)}}}function su(t){return async(e,a,n)=>{const r=(n==null?void 0:n.page)||0,o=(n==null?void 0:n.per_page)||50,s=r*o;let u=t.selectFrom("user_organizations").innerJoin("organizations",d=>d.onRef("organizations.id","=","user_organizations.organization_id").on("organizations.tenant_id","=",e)).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","=",e).where("user_organizations.user_id","=",a);u=u.orderBy("user_organizations.created_at","desc"),o>0&&(u=u.limit(o).offset(s));const l=await u.execute(),_=await t.selectFrom("user_organizations").innerJoin("organizations",d=>d.onRef("organizations.id","=","user_organizations.organization_id").on("organizations.tenant_id","=",e)).select(t.fn.count("user_organizations.id").as("count")).where("user_organizations.tenant_id","=",e).where("user_organizations.user_id","=",a).executeTakeFirst();return{organizations:l.map(d=>({id:d.id,name:d.name,display_name:d.display_name,branding:d.branding?JSON.parse(d.branding):void 0,metadata:d.metadata?JSON.parse(d.metadata):{},enabled_connections:d.enabled_connections?JSON.parse(d.enabled_connections):[],token_quota:d.token_quota?JSON.parse(d.token_quota):void 0,created_at:d.created_at,updated_at:d.updated_at,joined_at:d.joined_at})),start:s,limit:o,length:Number((_==null?void 0:_.count)||0)}}}function iu(t){return async(e,a)=>(await t.deleteFrom("user_organizations").where("id","=",a).where("tenant_id","=",e).execute()).length>0}function cu(t){return async(e,a,n)=>{const r={...n,updated_at:new Date().toISOString()};return(await t.updateTable("user_organizations").set(r).where("id","=",a).where("tenant_id","=",e).execute()).length>0}}function uu(t){return{create:nu(t),get:ru(t),list:ou(t),listUserOrganizations:su(t),remove:iu(t),update:cu(t)}}function lu(t){return async(e,a)=>{const n=vo(),r=new Date().toISOString(),o=a.ttl_sec||604800,s=new Date(Date.now()+o*1e3).toISOString(),u=$t({id:n,tenant_id:e,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:r,expires_at:s,app_metadata:a.app_metadata||{},user_metadata:a.user_metadata||{},roles:a.roles||[],ticket_id:null,ttl_sec:o,send_invitation_email:a.send_invitation_email??!0?1:0},["inviter","invitee","app_metadata","user_metadata","roles"]);try{await t.insertInto("invites").values(u).execute()}catch(l){throw l.code==="SQLITE_CONSTRAINT_UNIQUE"||l.message.includes("AlreadyExists")?new lt(409,{message:"Invite already exists"}):l}return{id:n,organization_id:u.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:r,expires_at:s,app_metadata:a.app_metadata||{},user_metadata:a.user_metadata||{},roles:a.roles||[],ticket_id:u.ticket_id||void 0,ttl_sec:o,send_invitation_email:a.send_invitation_email??!0}}}function du(t){return async(e,a)=>{const n=await t.selectFrom("invites").selectAll().where("tenant_id","=",e).where("id","=",a).executeTakeFirst();if(!n)return null;const r=pn(n,{inviter:{},invitee:{},app_metadata:{},user_metadata:{},roles:[]});return b({...r,send_invitation_email:n.send_invitation_email===1})}}function _u(t){return async(e,a)=>{let n=t.selectFrom("invites").selectAll().where("tenant_id","=",e).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 o=(await n.execute()).map(s=>{const u=pn(s,{inviter:{},invitee:{},app_metadata:{},user_metadata:{},roles:[]});return b({...u,send_invitation_email:s.send_invitation_email===1})});return{invites:o,start:a!=null&&a.page?(a.page-1)*(a.per_page||10):0,limit:(a==null?void 0:a.per_page)||o.length,length:o.length}}}function mu(t){return async(e,a)=>(await t.deleteFrom("invites").where("tenant_id","=",e).where("id","=",a).executeTakeFirst()).numDeletedRows>0n}function hu(t){return async(e,a,n)=>{const r={};return n.inviter!==void 0&&(r.inviter=JSON.stringify(n.inviter)),n.invitee!==void 0&&(r.invitee=JSON.stringify(n.invitee)),n.client_id!==void 0&&(r.client_id=n.client_id),n.connection_id!==void 0&&(r.connection_id=n.connection_id),n.app_metadata!==void 0&&(r.app_metadata=JSON.stringify(n.app_metadata)),n.user_metadata!==void 0&&(r.user_metadata=JSON.stringify(n.user_metadata)),n.roles!==void 0&&(r.roles=JSON.stringify(n.roles)),n.ttl_sec!==void 0&&(r.ttl_sec=n.ttl_sec,r.expires_at=new Date(Date.now()+n.ttl_sec*1e3).toISOString()),n.send_invitation_email!==void 0&&(r.send_invitation_email=n.send_invitation_email?1:0),Object.keys(r).length===0?!0:(await t.updateTable("invites").set(r).where("tenant_id","=",e).where("id","=",a).executeTakeFirst()).numUpdatedRows>0n}}function fu(t){return{create:lu(t),get:du(t),list:_u(t),remove:mu(t),update:hu(t)}}const dn=["s","seacft","seccft","sepft","sertft","ssa"],pu=["pwd_leak","signup_pwd_leak","reset_pwd_leak"];function _n(t){return`${t.slice(0,4)}-${t.slice(4,6)}-${t.slice(6,8)}`}function mn(t){return t.toISOString().split("T")[0]}function gu(t){return{async getDaily(e,a={}){const{from:n,to:r}=a,o=new Date,s=new Date(o);s.setDate(s.getDate()-30);const u=n?_n(n):mn(s),l=r?_n(r):mn(o),_=w`DATE(logs.date)`;return(await t.selectFrom("logs").where("tenant_id","=",e).where(_,">=",u).where(_,"<=",l).select(d=>[_.as("date"),d.fn.sum(d.case().when("type","in",dn).then(1).else(0).end()).as("logins"),d.fn.sum(d.case().when("type","=","ss").then(1).else(0).end()).as("signups"),d.fn.sum(d.case().when("type","in",pu).then(1).else(0).end()).as("leaked_passwords"),d.fn.min("date").as("first_event"),d.fn.max("date").as("last_event")]).groupBy(_).orderBy("date","asc").execute()).map(d=>({date:d.date,logins:Number(d.logins)||0,signups:Number(d.signups)||0,leaked_passwords:Number(d.leaked_passwords)||0,created_at:d.first_event||new Date().toISOString(),updated_at:d.last_event||new Date().toISOString()}))},async getActiveUsers(e){const a=new Date;return a.setDate(a.getDate()-30),(await t.selectFrom("logs").where("tenant_id","=",e).where("date",">=",a.toISOString()).where("type","in",dn).where("user_id","is not",null).select(r=>r.fn.count("user_id").distinct().as("count")).executeTakeFirstOrThrow()).count||0}}}function wu(t){return{async get(e,a,n){const r=await t.selectFrom("custom_text").selectAll().where("tenant_id","=",e).where("prompt","=",a).where("language","=",n).executeTakeFirst();if(!r)return null;try{return JSON.parse(r.custom_text)}catch{return null}},async set(e,a,n,r){const o=Date.now(),s=JSON.stringify(r);await t.selectFrom("custom_text").select("tenant_id").where("tenant_id","=",e).where("prompt","=",a).where("language","=",n).executeTakeFirst()?await t.updateTable("custom_text").set({custom_text:s,updated_at_ts:o}).where("tenant_id","=",e).where("prompt","=",a).where("language","=",n).execute():await t.insertInto("custom_text").values({tenant_id:e,prompt:a,language:n,custom_text:s,created_at_ts:o,updated_at_ts:o}).execute()},async delete(e,a,n){await t.deleteFrom("custom_text").where("tenant_id","=",e).where("prompt","=",a).where("language","=",n).execute()},async list(e){return(await t.selectFrom("custom_text").select(["prompt","language"]).where("tenant_id","=",e).execute()).map(n=>({prompt:n.prompt,language:n.language}))}}}function yu(t){return async(e,a)=>{const n=Date.now(),r=Cn();return await t.insertInto("mfa_enrollments").values({id:r,tenant_id:e,user_id:a.user_id,type:a.type,phone_number:a.phone_number,totp_secret:a.totp_secret,confirmed:a.confirmed?1:0,created_at_ts:n,updated_at_ts:n}).execute(),{id:r,user_id:a.user_id,type:a.type,phone_number:a.phone_number,totp_secret:a.totp_secret,confirmed:a.confirmed??!1,created_at:new Date(n).toISOString(),updated_at:new Date(n).toISOString()}}}function ir(t){return async(e,a)=>{const n=await t.selectFrom("mfa_enrollments").where("mfa_enrollments.tenant_id","=",e).where("mfa_enrollments.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,confirmed:n.confirmed===1,created_at:Ct(n.created_at_ts),updated_at:Ct(n.updated_at_ts)}:null}}function vu(t){return async(e,a)=>(await t.selectFrom("mfa_enrollments").where("mfa_enrollments.tenant_id","=",e).where("mfa_enrollments.user_id","=",a).selectAll().execute()).map(r=>({id:r.id,user_id:r.user_id,type:r.type,phone_number:r.phone_number??void 0,totp_secret:r.totp_secret??void 0,confirmed:r.confirmed===1,created_at:Ct(r.created_at_ts),updated_at:Ct(r.updated_at_ts)}))}function Nu(t){return async(e,a,n)=>{const o={updated_at_ts:Date.now()};n.phone_number!==void 0&&(o.phone_number=n.phone_number),n.totp_secret!==void 0&&(o.totp_secret=n.totp_secret),n.confirmed!==void 0&&(o.confirmed=n.confirmed?1:0),await t.updateTable("mfa_enrollments").set(o).where("mfa_enrollments.tenant_id","=",e).where("mfa_enrollments.id","=",a).execute();const s=await ir(t)(e,a);if(!s)throw new Error(`MFA enrollment ${a} not found`);return s}}function Cu(t){return async(e,a)=>(await t.deleteFrom("mfa_enrollments").where("mfa_enrollments.tenant_id","=",e).where("mfa_enrollments.id","=",a).executeTakeFirst()).numDeletedRows>0}function xu(t){return{create:yu(t),get:ir(t),list:vu(t),update:Nu(t),remove:Cu(t)}}class cr{constructor(e){he(this,"migrations");this.migrations=e}async getMigrations(){return this.migrations}}async function Tu(t){await t.schema.createTable("tenants").addColumn("id","varchar(255)",e=>e.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)",e=>e.notNull()).addColumn("updated_at","varchar(255)",e=>e.notNull()).execute(),await t.schema.createTable("users").addColumn("user_id","varchar(255)",e=>e.notNull()).addColumn("tenant_id","varchar(255)",e=>e.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)",e=>e.notNull()).addColumn("updated_at","varchar(255)",e=>e.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",e=>e.notNull()).addColumn("last_login","varchar(255)").addColumn("provider","varchar(255)",e=>e.notNull()).addColumn("connection","varchar(255)").addColumn("email_verified","boolean",e=>e.notNull()).addColumn("is_social","boolean",e=>e.notNull()).addColumn("app_metadata","varchar(4096)",e=>e.defaultTo("{}").notNull()).addColumn("user_metadata","varchar(4096)",e=>e.defaultTo("{}").notNull()).addUniqueConstraint("unique_email_provider",["email","provider","tenant_id"]).addUniqueConstraint("unique_phone_provider",["phone_number","provider","tenant_id"]).execute(),await t.schema.createTable("members").addColumn("id","varchar(255)",e=>e.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",e=>e.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)",e=>e.notNull()).addColumn("updated_at","varchar(255)",e=>e.notNull()).execute(),await t.schema.createTable("applications").addColumn("id","varchar(255)",e=>e.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("name","varchar(255)",e=>e.notNull()).addColumn("client_secret","varchar(255)").addColumn("allowed_logout_urls","varchar(255)").addColumn("authentication_settings","varchar(255)").addColumn("addons","varchar(4096)",e=>e.notNull().defaultTo("{}")).addColumn("callbacks","varchar(1024)",e=>e.notNull().defaultTo("[]")).addColumn("allowed_origins","varchar(1024)",e=>e.notNull().defaultTo("[]")).addColumn("web_origins","varchar(1024)",e=>e.notNull().defaultTo("[]")).addColumn("allowed_clients","varchar(1024)",e=>e.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",e=>e.notNull()).addColumn("created_at","varchar(255)",e=>e.notNull()).addColumn("updated_at","varchar(255)",e=>e.notNull()).execute(),await t.schema.createTable("connections").addColumn("id","varchar(255)",e=>e.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("name","varchar(255)",e=>e.notNull()).addColumn("response_type","varchar(255)").addColumn("response_mode","varchar(255)").addColumn("strategy","varchar(64)").addColumn("options","varchar(2048)",e=>e.defaultTo("{}").notNull()).addColumn("created_at","varchar(255)",e=>e.notNull()).addColumn("updated_at","varchar(255)",e=>e.notNull()).execute(),await t.schema.createTable("migrations").addColumn("id","varchar(255)",e=>e.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",e=>e.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)",e=>e.notNull()).addColumn("updated_at","varchar(255)",e=>e.notNull()).execute(),await t.schema.createTable("domains").addColumn("id","varchar(255)",e=>e.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("domain","varchar(255)",e=>e.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)",e=>e.notNull()).addColumn("updated_at","varchar(255)",e=>e.notNull()).execute()}async function Su(t){await t.schema.dropTable("domains").execute(),await t.schema.dropTable("members").execute(),await t.schema.dropTable("users").execute(),await t.schema.dropTable("connections").execute(),await t.schema.dropTable("applications").execute(),await t.schema.dropTable("migrations").execute(),await t.schema.dropTable("tenants").execute()}const bu=Object.freeze(Object.defineProperty({__proto__:null,down:Su,up:Tu},Symbol.toStringTag,{value:"Module"}));async function Ou(t){await t.schema.alterTable("tenants").addColumn("support_url","varchar(255)").execute()}async function ku(t){await t.schema.alterTable("tenants").dropColumn("support_url").execute()}const Eu=Object.freeze(Object.defineProperty({__proto__:null,down:ku,up:Ou},Symbol.toStringTag,{value:"Module"}));async function Iu(t){}async function $u(t){}const Au=Object.freeze(Object.defineProperty({__proto__:null,down:$u,up:Iu},Symbol.toStringTag,{value:"Module"}));async function Du(t){await t.schema.createTable("logs").addColumn("id","varchar(255)",e=>e.notNull().primaryKey()).addColumn("category","varchar(255)",e=>e.notNull()).addColumn("tenant_id","varchar(64)").addColumn("user_id","varchar(64)").addForeignKeyConstraint("tenant_id_constraint",["tenant_id"],"tenants",["id"],e=>e.onDelete("cascade")).addColumn("ip","varchar(255)").addColumn("type","varchar(8)",e=>e.notNull()).addColumn("date","varchar(25)",e=>e.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 Pu(t){await t.schema.dropTable("logs").execute()}const Ru=Object.freeze(Object.defineProperty({__proto__:null,down:Pu,up:Du},Symbol.toStringTag,{value:"Module"}));async function zu(t){}async function Fu(t){}const Lu=Object.freeze(Object.defineProperty({__proto__:null,down:Fu,up:zu},Symbol.toStringTag,{value:"Module"}));async function Mu(t){await t.schema.createTable("sessions").addColumn("id","varchar(21)",e=>e.primaryKey()).addColumn("tenant_id","varchar(255)").addColumn("user_id","varchar(255)").addForeignKeyConstraint("user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],e=>e.onDelete("cascade")).addColumn("created_at","varchar(35)",e=>e.notNull()).addColumn("updated_at","varchar(35)",e=>e.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)",e=>e.notNull()).addColumn("clients","varchar(1024)",e=>e.notNull()).execute(),await t.schema.createTable("tickets").addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("id","varchar(255)",e=>e.primaryKey()).addColumn("client_id","varchar(255)",e=>e.references("applications.id").onDelete("cascade").notNull()).addColumn("email","varchar(255)",e=>e.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)",e=>e.notNull()).addColumn("expires_at","varchar(255)",e=>e.notNull()).addColumn("used_at","varchar(255)").execute(),await t.schema.createTable("otps").addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("id","varchar(255)",e=>e.primaryKey()).addColumn("client_id","varchar(255)",e=>e.references("applications.id").onDelete("cascade").notNull()).addColumn("code","varchar(255)",e=>e.notNull()).addColumn("email","varchar(255)",e=>e.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)",e=>e.notNull()).addColumn("expires_at","varchar(255)",e=>e.notNull()).addColumn("used_at","varchar(255)").execute(),await t.schema.createIndex("otps_email_index").on("otps").column("email").execute(),await t.schema.createIndex("otps_expires_at_index").on("otps").column("expires_at").execute()}async function ju(t){await t.schema.dropTable("sessions").execute(),await t.schema.dropTable("tickets").execute(),await t.schema.dropTable("otps").execute()}const Ju=Object.freeze(Object.defineProperty({__proto__:null,down:ju,up:Mu},Symbol.toStringTag,{value:"Module"}));async function qu(t){await t.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"],e=>e.onDelete("cascade")).addColumn("created_at","varchar(255)").addColumn("updated_at","varchar(255)").execute(),await t.schema.createTable("codes").addColumn("id","varchar(255)",e=>e.primaryKey()).addColumn("user_id","varchar(255)").addColumn("tenant_id","varchar(255)").addForeignKeyConstraint("user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],e=>e.onDelete("cascade")).addColumn("type","varchar(255)",e=>e.notNull()).addColumn("created_at","varchar(255)",e=>e.notNull()).addColumn("expires_at","varchar(255)",e=>e.notNull()).addColumn("used_at","varchar(255)").execute(),await t.schema.createIndex("codes_expires_at_index").on("codes").column("expires_at").execute()}async function Wu(t){await t.schema.dropTable("passwords").execute(),await t.schema.dropTable("codes").execute()}const Bu=Object.freeze(Object.defineProperty({__proto__:null,down:Wu,up:qu},Symbol.toStringTag,{value:"Module"}));async function Uu(t){}async function Ku(t){}const Qu=Object.freeze(Object.defineProperty({__proto__:null,down:Ku,up:Uu},Symbol.toStringTag,{value:"Module"}));async function Vu(t){await t.schema.alterTable("passwords").addColumn("password","varchar(255)",e=>e.notNull()).execute()}async function Gu(t){await t.schema.alterTable("passwords").dropColumn("password").execute()}const Hu=Object.freeze(Object.defineProperty({__proto__:null,down:Gu,up:Vu},Symbol.toStringTag,{value:"Module"}));async function Yu(t){}async function Xu(t){}const Zu=Object.freeze(Object.defineProperty({__proto__:null,down:Xu,up:Yu},Symbol.toStringTag,{value:"Module"}));async function el(t){}async function tl(t){}const al=Object.freeze(Object.defineProperty({__proto__:null,down:tl,up:el},Symbol.toStringTag,{value:"Module"}));async function nl(t){}async function rl(t){}const ol=Object.freeze(Object.defineProperty({__proto__:null,down:rl,up:nl},Symbol.toStringTag,{value:"Module"}));async function sl(t){await t.schema.createIndex("users_email_index").on("users").column("email").execute()}async function il(t){await t.schema.dropIndex("users_email_index").execute()}const cl=Object.freeze(Object.defineProperty({__proto__:null,down:il,up:sl},Symbol.toStringTag,{value:"Module"}));async function ul(t){await t.schema.alterTable("users").addColumn("profileData","varchar(2048)").execute()}async function ll(t){await t.schema.alterTable("users").dropColumn("profileData").execute()}const dl=Object.freeze(Object.defineProperty({__proto__:null,down:ll,up:ul},Symbol.toStringTag,{value:"Module"}));async function _l(t){await t.schema.createIndex("users_linked_to_index").on("users").column("linked_to").execute()}async function ml(t){await t.schema.dropIndex("users_linked_to_index")}const hl=Object.freeze(Object.defineProperty({__proto__:null,down:ml,up:_l},Symbol.toStringTag,{value:"Module"}));async function fl(t){await t.schema.alterTable("users").addColumn("locale","varchar(255)").execute()}async function pl(t){await t.schema.alterTable("users").dropColumn("locale").execute()}const gl=Object.freeze(Object.defineProperty({__proto__:null,down:pl,up:fl},Symbol.toStringTag,{value:"Module"}));async function wl(t){await t.schema.createTable("keys").addColumn("kid","varchar(255)",e=>e.primaryKey()).addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade")).addColumn("created_at","varchar(255)",e=>e.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)",e=>e.notNull().defaultTo("jwt_signing")).addColumn("connection","varchar(255)",e=>e.references("connections.id").onDelete("cascade")).execute()}async function yl(t){await t.schema.dropTable("keys").execute()}const vl=Object.freeze(Object.defineProperty({__proto__:null,down:yl,up:wl},Symbol.toStringTag,{value:"Module"}));async function Nl(t){}async function Cl(t){}const xl=Object.freeze(Object.defineProperty({__proto__:null,down:Cl,up:Nl},Symbol.toStringTag,{value:"Module"}));async function Tl(t){}async function Sl(t){}const bl=Object.freeze(Object.defineProperty({__proto__:null,down:Sl,up:Tl},Symbol.toStringTag,{value:"Module"}));async function Ol(t){await t.schema.alterTable("otps").addColumn("audience","varchar(255)").execute()}async function kl(t){await t.schema.alterTable("otps").dropColumn("audience").execute()}const El=Object.freeze(Object.defineProperty({__proto__:null,down:kl,up:Ol},Symbol.toStringTag,{value:"Module"}));async function Il(t){}async function $l(t){}const Al=Object.freeze(Object.defineProperty({__proto__:null,down:$l,up:Il},Symbol.toStringTag,{value:"Module"}));async function Dl(t){await t.schema.alterTable("logs").dropColumn("category").execute()}async function Pl(t){await t.schema.alterTable("logs").addColumn("category","varchar(255)",e=>e.notNull()).execute()}const Rl=Object.freeze(Object.defineProperty({__proto__:null,down:Pl,up:Dl},Symbol.toStringTag,{value:"Module"}));async function zl(t){await t.schema.alterTable("users").dropColumn("tags").execute()}async function Fl(t){await t.schema.alterTable("users").addColumn("tags","varchar(255)").execute()}const Ll=Object.freeze(Object.defineProperty({__proto__:null,down:Fl,up:zl},Symbol.toStringTag,{value:"Module"}));async function Ml(t){await t.schema.createIndex("logs_user_id").on("logs").column("user_id").execute(),await t.schema.createIndex("logs_tenant_id").on("logs").column("tenant_id").execute(),await t.schema.createIndex("logs_date").on("logs").column("date").execute()}async function jl(t){await t.schema.dropIndex("logs_user_id"),await t.schema.dropIndex("logs_tenant_id"),await t.schema.dropIndex("logs_date")}const Jl=Object.freeze(Object.defineProperty({__proto__:null,down:jl,up:Ml},Symbol.toStringTag,{value:"Module"}));async function ql(t){await t.schema.alterTable("logs").dropColumn("details").execute(),await t.schema.alterTable("logs").addColumn("details","varchar(8192)").execute()}async function Wl(t){await t.schema.alterTable("logs").dropColumn("details").execute(),await t.schema.alterTable("logs").addColumn("details","varchar(2048)").execute()}const Bl=Object.freeze(Object.defineProperty({__proto__:null,down:Wl,up:ql},Symbol.toStringTag,{value:"Module"}));async function Ul(t){await t.schema.alterTable("logs").addColumn("user_name","varchar(255)").execute(),await t.schema.alterTable("logs").addColumn("auth0_client","varchar(255)").execute(),await t.schema.alterTable("logs").addColumn("isMobile","boolean").execute(),await t.schema.alterTable("logs").addColumn("connection","varchar(255)").execute(),await t.schema.alterTable("logs").addColumn("connection_id","varchar(255)").execute(),await t.schema.alterTable("logs").addColumn("audience","varchar(255)").execute(),await t.schema.alterTable("logs").addColumn("scope","varchar(255)").execute(),await t.schema.alterTable("logs").addColumn("strategy","varchar(255)").execute(),await t.schema.alterTable("logs").addColumn("strategy_type","varchar(255)").execute(),await t.schema.alterTable("logs").addColumn("hostname","varchar(255)").execute(),await t.schema.alterTable("logs").addColumn("session_connection","varchar(255)").execute()}async function Kl(t){await t.schema.alterTable("logs").dropColumn("user_name").execute(),await t.schema.alterTable("logs").dropColumn("auth0_client").execute(),await t.schema.alterTable("logs").dropColumn("isMobile").execute(),await t.schema.alterTable("logs").dropColumn("connection").execute(),await t.schema.alterTable("logs").dropColumn("connection_id").execute(),await t.schema.alterTable("logs").dropColumn("audience").execute(),await t.schema.alterTable("logs").dropColumn("scope").execute(),await t.schema.alterTable("logs").dropColumn("strategy").execute(),await t.schema.alterTable("logs").dropColumn("strategy_type").execute(),await t.schema.alterTable("logs").dropColumn("hostname").execute(),await t.schema.alterTable("logs").dropColumn("session_connection").execute()}const Ql=Object.freeze(Object.defineProperty({__proto__:null,down:Kl,up:Ul},Symbol.toStringTag,{value:"Module"}));async function Vl(t){await t.schema.createIndex("users_name_index").on("users").column("name").execute()}async function Gl(t){await t.schema.dropIndex("users_name_index").execute()}const Hl=Object.freeze(Object.defineProperty({__proto__:null,down:Gl,up:Vl},Symbol.toStringTag,{value:"Module"}));async function Yl(t){}async function Xl(t){await t.schema.alterTable("users").dropConstraint("unique_email_provider").execute()}const Zl=Object.freeze(Object.defineProperty({__proto__:null,down:Xl,up:Yl},Symbol.toStringTag,{value:"Module"}));async function ed(t){await t.schema.alterTable("otps").dropColumn("state").execute(),await t.schema.alterTable("otps").addColumn("state","varchar(8192)").execute()}async function td(t){await t.schema.alterTable("otps").dropColumn("state").execute(),await t.schema.alterTable("otps").addColumn("state","varchar(1024)").execute()}const ad=Object.freeze(Object.defineProperty({__proto__:null,down:td,up:ed},Symbol.toStringTag,{value:"Module"}));async function nd(t){await t.schema.alterTable("tickets").dropColumn("state").execute(),await t.schema.alterTable("tickets").addColumn("state","varchar(8192)").execute()}async function rd(t){await t.schema.alterTable("tickets").dropColumn("state").execute(),await t.schema.alterTable("tickets").addColumn("state","varchar(1024)").execute()}const od=Object.freeze(Object.defineProperty({__proto__:null,down:rd,up:nd},Symbol.toStringTag,{value:"Module"}));async function sd(t){await t.schema.createTable("branding").addColumn("tenant_id","varchar(255)",e=>e.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 id(t){await t.schema.dropTable("branding").execute()}const cd=Object.freeze(Object.defineProperty({__proto__:null,down:id,up:sd},Symbol.toStringTag,{value:"Module"}));async function ud(t){}async function ld(t){}const dd=Object.freeze(Object.defineProperty({__proto__:null,down:ld,up:ud},Symbol.toStringTag,{value:"Module"}));async function _d(t){}async function md(t){}const hd=Object.freeze(Object.defineProperty({__proto__:null,down:md,up:_d},Symbol.toStringTag,{value:"Module"}));async function fd(t){}async function pd(t){}const gd=Object.freeze(Object.defineProperty({__proto__:null,down:pd,up:fd},Symbol.toStringTag,{value:"Module"}));async function wd(t){}async function yd(t){}const vd=Object.freeze(Object.defineProperty({__proto__:null,down:yd,up:wd},Symbol.toStringTag,{value:"Module"}));async function Nd(t){await t.schema.createTable("authentication_codes").addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("code","varchar(255)",e=>e.primaryKey()).addColumn("client_id","varchar(255)",e=>e.references("applications.id").onDelete("cascade").notNull()).addColumn("user_id","varchar(255)",e=>e.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)",e=>e.notNull()).addColumn("expires_at","varchar(255)",e=>e.notNull()).addColumn("used_at","varchar(255)").execute()}async function Cd(t){await t.schema.dropTable("authentication_codes").execute()}const xd=Object.freeze(Object.defineProperty({__proto__:null,down:Cd,up:Nd},Symbol.toStringTag,{value:"Module"}));async function Td(t){}async function Sd(t){}const bd=Object.freeze(Object.defineProperty({__proto__:null,down:Sd,up:Td},Symbol.toStringTag,{value:"Module"}));async function Od(t){await t.schema.alterTable("otps").addColumn("ip","varchar(64)").execute()}async function kd(t){await t.schema.alterTable("otps").dropColumn("ip").execute()}const Ed=Object.freeze(Object.defineProperty({__proto__:null,down:kd,up:Od},Symbol.toStringTag,{value:"Module"}));async function Id(t){await t.schema.alterTable("logs").dropColumn("user_agent").execute(),await t.schema.alterTable("logs").addColumn("user_agent","varchar(1024)").execute()}async function $d(t){await t.schema.alterTable("logs").dropColumn("user_agent").execute(),await t.schema.alterTable("logs").addColumn("user_agent","varchar(255)").execute()}const Ad=Object.freeze(Object.defineProperty({__proto__:null,down:$d,up:Id},Symbol.toStringTag,{value:"Module"}));async function Dd(t){}async function Pd(t){}const Rd=Object.freeze(Object.defineProperty({__proto__:null,down:Pd,up:Dd},Symbol.toStringTag,{value:"Module"}));async function zd(t){await t.schema.createTable("hooks").addColumn("hook_id","varchar(255)",e=>e.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("url","varchar(512)",e=>e.notNull()).addColumn("trigger_id","varchar(255)",e=>e.notNull()).addColumn("enabled","boolean",e=>e.notNull()).addColumn("created_at","varchar(255)",e=>e.notNull()).addColumn("updated_at","varchar(255)",e=>e.notNull()).addColumn("synchronous","boolean",e=>e.defaultTo(!1).notNull()).addColumn("priority","integer").execute()}async function Fd(t){await t.schema.dropTable("hooks").execute()}const Ld=Object.freeze(Object.defineProperty({__proto__:null,down:Fd,up:zd},Symbol.toStringTag,{value:"Module"}));async function Md(t){}async function jd(t){}const Jd=Object.freeze(Object.defineProperty({__proto__:null,down:jd,up:Md},Symbol.toStringTag,{value:"Module"}));async function qd(t){}async function Wd(t){}const Bd=Object.freeze(Object.defineProperty({__proto__:null,down:Wd,up:qd},Symbol.toStringTag,{value:"Module"}));async function Ud(t){await t.schema.createTable("logins").addColumn("login_id","varchar(255)",e=>e.primaryKey()).addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("authParams_client_id","varchar(255)",e=>e.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)",e=>e.notNull()).addColumn("updated_at","varchar(255)",e=>e.notNull()).addColumn("expires_at","varchar(255)",e=>e.notNull()).addColumn("ip","varchar(255)").addColumn("useragent","varchar(512)").execute(),await t.schema.alterTable("passwords").addColumn("algorithm","varchar(16)").execute(),await t.schema.dropTable("codes").execute(),await t.schema.createTable("codes").addColumn("code_id","varchar(255)",e=>e.primaryKey()).addColumn("tenant_id","varchar(255)",e=>e.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"],e=>e.onDelete("cascade")).addColumn("code_type","varchar(255)",e=>e.notNull()).addColumn("created_at","varchar(255)",e=>e.notNull()).addColumn("expires_at","varchar(255)",e=>e.notNull()).addColumn("used_at","varchar(255)").execute()}async function Kd(t){await t.schema.dropTable("logins").execute(),await t.schema.alterTable("passwords").dropColumn("algorithm").execute(),await t.schema.dropTable("codes").execute(),await t.schema.createTable("codes").addColumn("id","varchar(255)",e=>e.primaryKey()).addColumn("code","varchar(255)",e=>e.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"],e=>e.onDelete("cascade")).addColumn("type","varchar(255)",e=>e.notNull()).addColumn("created_at","varchar(255)",e=>e.notNull()).addColumn("expires_at","varchar(255)",e=>e.notNull()).addColumn("used_at","varchar(255)").execute()}const Qd=Object.freeze(Object.defineProperty({__proto__:null,down:Kd,up:Ud},Symbol.toStringTag,{value:"Module"}));async function Vd(t){}async function Gd(t){}const Hd=Object.freeze(Object.defineProperty({__proto__:null,down:Gd,up:Vd},Symbol.toStringTag,{value:"Module"}));async function Yd(t){await t.schema.alterTable("logins").addColumn("auth0Client","varchar(256)").execute()}async function Xd(t){await t.schema.alterTable("logins").dropColumn("auth0Client").execute()}const Zd=Object.freeze(Object.defineProperty({__proto__:null,down:Xd,up:Yd},Symbol.toStringTag,{value:"Module"}));async function e_(t){await t.schema.alterTable("logins").dropColumn("authParams_state").execute(),await t.schema.alterTable("logins").addColumn("authParams_state","varchar(8192)").execute()}async function t_(t){await t.schema.alterTable("logins").dropColumn("authParams_state").execute(),await t.schema.alterTable("logins").addColumn("authParams_state","varchar(511)").execute()}const a_=Object.freeze(Object.defineProperty({__proto__:null,down:t_,up:e_},Symbol.toStringTag,{value:"Module"}));async function n_(t){}async function r_(t){}const o_=Object.freeze(Object.defineProperty({__proto__:null,down:r_,up:n_},Symbol.toStringTag,{value:"Module"}));async function s_(t){}async function i_(t){}const c_=Object.freeze(Object.defineProperty({__proto__:null,down:i_,up:s_},Symbol.toStringTag,{value:"Module"}));async function u_(t){await t.schema.alterTable("logins").addColumn("authParams_nonce","varchar(255)").execute()}async function l_(t){await t.schema.alterTable("logins").dropColumn("nonce").execute()}const d_=Object.freeze(Object.defineProperty({__proto__:null,down:l_,up:u_},Symbol.toStringTag,{value:"Module"}));async function __(t){}async function m_(t){}const h_=Object.freeze(Object.defineProperty({__proto__:null,down:m_,up:__},Symbol.toStringTag,{value:"Module"}));async function f_(t){}async function p_(t){}const g_=Object.freeze(Object.defineProperty({__proto__:null,down:p_,up:f_},Symbol.toStringTag,{value:"Module"}));async function w_(t){await t.schema.dropTable("codes").execute(),await t.schema.createTable("codes").addColumn("code_id","varchar(255)",e=>e.notNull()).addColumn("tenant_id","varchar(255)",e=>e.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"],e=>e.onDelete("cascade")).addColumn("code_type","varchar(255)",e=>e.notNull()).addColumn("created_at","varchar(255)",e=>e.notNull()).addColumn("expires_at","varchar(255)",e=>e.notNull()).addColumn("used_at","varchar(255)").addPrimaryKeyConstraint("PK_codes_code_id_code_type",["code_id","code_type"]).execute()}async function y_(t){await t.schema.dropTable("codes").execute(),await t.schema.createTable("codes").addColumn("code_id","varchar(255)",e=>e.primaryKey()).addColumn("tenant_id","varchar(255)",e=>e.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"],e=>e.onDelete("cascade")).addColumn("code_type","varchar(255)",e=>e.notNull()).addColumn("created_at","varchar(255)",e=>e.notNull()).addColumn("expires_at","varchar(255)",e=>e.notNull()).addColumn("used_at","varchar(255)").execute()}const v_=Object.freeze(Object.defineProperty({__proto__:null,down:y_,up:w_},Symbol.toStringTag,{value:"Module"}));async function N_(t){await t.schema.dropTable("otps").execute(),await t.schema.dropTable("authentication_codes").execute()}async function C_(t){await t.schema.alterTable("keys").addColumn("private_key","varchar(2048)").addColumn("public_key","varchar(2048)").execute(),await t.schema.createTable("otps").addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("id","varchar(255)",e=>e.primaryKey()).addColumn("client_id","varchar(255)",e=>e.references("applications.id").onDelete("cascade").notNull()).addColumn("code","varchar(255)",e=>e.notNull()).addColumn("email","varchar(255)",e=>e.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)",e=>e.notNull()).addColumn("expires_at","varchar(255)",e=>e.notNull()).addColumn("used_at","varchar(255)").execute(),await t.schema.createTable("authentication_codes").addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("code","varchar(255)",e=>e.primaryKey()).addColumn("client_id","varchar(255)",e=>e.references("applications.id").onDelete("cascade").notNull()).addColumn("user_id","varchar(255)",e=>e.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)",e=>e.notNull()).addColumn("expires_at","varchar(255)",e=>e.notNull()).addColumn("used_at","varchar(255)").execute()}const x_=Object.freeze(Object.defineProperty({__proto__:null,down:C_,up:N_},Symbol.toStringTag,{value:"Module"}));async function T_(t){await t.schema.createIndex("IDX_logs_tenant_date_type_user").on("logs").columns(["tenant_id","date","type","user_id"]).execute()}async function S_(t){await t.schema.dropIndex("IDX_logs_tenant_date_type_user").on("logs").execute()}const b_=Object.freeze(Object.defineProperty({__proto__:null,down:S_,up:T_},Symbol.toStringTag,{value:"Module"}));async function O_(t){}async function k_(t){}const E_=Object.freeze(Object.defineProperty({__proto__:null,down:k_,up:O_},Symbol.toStringTag,{value:"Module"}));async function I_(t){await t.schema.createTable("prompt_settings").addColumn("tenant_id","varchar(64)",e=>e.primaryKey()).addColumn("universal_login_experience","varchar(16)",e=>e.defaultTo("new").notNull()).addColumn("identifier_first","boolean",e=>e.defaultTo(!0).notNull()).addColumn("password_first","boolean",e=>e.defaultTo(!1).notNull()).addColumn("webauthn_platform_first_factor","boolean",e=>e.defaultTo(!1).notNull()).execute()}async function $_(t){await t.schema.dropTable("prompt_settings").execute()}const A_=Object.freeze(Object.defineProperty({__proto__:null,down:$_,up:I_},Symbol.toStringTag,{value:"Module"}));async function D_(t){}async function P_(t){}const R_=Object.freeze(Object.defineProperty({__proto__:null,down:P_,up:D_},Symbol.toStringTag,{value:"Module"}));async function z_(t){}async function F_(t){}const L_=Object.freeze(Object.defineProperty({__proto__:null,down:F_,up:z_},Symbol.toStringTag,{value:"Module"}));async function M_(t){}async function j_(t){}const J_=Object.freeze(Object.defineProperty({__proto__:null,down:j_,up:M_},Symbol.toStringTag,{value:"Module"}));async function q_(t){await t.schema.alterTable("logins").addColumn("authParams_ui_locales","varchar(32)").execute()}async function W_(t){await t.schema.alterTable("logins").dropColumn("authParams_ui_locales").execute()}const B_=Object.freeze(Object.defineProperty({__proto__:null,down:W_,up:q_},Symbol.toStringTag,{value:"Module"}));async function U_(t){await t.schema.alterTable("logins").addColumn("authParams_prompt","varchar(16)").execute()}async function K_(t){await t.schema.alterTable("logins").dropColumn("authParams_prompt").execute()}const Q_=Object.freeze(Object.defineProperty({__proto__:null,down:K_,up:U_},Symbol.toStringTag,{value:"Module"}));async function V_(t){}async function G_(t){}const H_=Object.freeze(Object.defineProperty({__proto__:null,down:G_,up:V_},Symbol.toStringTag,{value:"Module"}));async function Y_(t){await t.schema.alterTable("logins").addColumn("authParams_act_as","varchar(255)").execute()}async function X_(t){await t.schema.alterTable("logins").dropColumn("authParam_act_as").execute()}const Z_=Object.freeze(Object.defineProperty({__proto__:null,down:X_,up:Y_},Symbol.toStringTag,{value:"Module"}));async function em(t){await t.schema.alterTable("codes").addColumn("code_verifier","varchar(128)").execute()}async function tm(t){await t.schema.alterTable("codes").dropColumn("code_verifier").execute()}const am=Object.freeze(Object.defineProperty({__proto__:null,down:tm,up:em},Symbol.toStringTag,{value:"Module"}));async function nm(t){await t.schema.createTable("email_providers").addColumn("tenant_id","varchar(255)",e=>e.primaryKey()).addColumn("name","varchar(255)",e=>e.notNull()).addColumn("enabled","boolean",e=>e.notNull()).addColumn("default_from_address","varchar(255)").addColumn("credentials","varchar(2048)",e=>e.notNull().defaultTo("{}")).addColumn("settings","varchar(2048)",e=>e.notNull().defaultTo("{}")).addColumn("created_at","varchar(29)",e=>e.notNull()).addColumn("updated_at","varchar(29)",e=>e.notNull()).execute()}async function rm(t){await t.schema.dropTable("email_providers").execute()}const om=Object.freeze(Object.defineProperty({__proto__:null,down:rm,up:nm},Symbol.toStringTag,{value:"Module"}));async function sm(t){await t.schema.dropTable("tickets").execute()}async function im(t){await t.schema.createTable("tickets").addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("id","varchar(255)",e=>e.primaryKey()).addColumn("client_id","varchar(255)",e=>e.references("applications.id").onDelete("cascade").notNull()).addColumn("email","varchar(255)",e=>e.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)",e=>e.notNull()).addColumn("expires_at","varchar(255)",e=>e.notNull()).addColumn("used_at","varchar(255)").execute()}const cm=Object.freeze(Object.defineProperty({__proto__:null,down:im,up:sm},Symbol.toStringTag,{value:"Module"}));async function um(t){}async function lm(t){await t.schema.alterTable("logins").dropColumn("ip").dropColumn("useragent").execute()}const dm=Object.freeze(Object.defineProperty({__proto__:null,down:lm,up:um},Symbol.toStringTag,{value:"Module"}));async function _m(t){await t.schema.createTable("refresh_tokens").addColumn("id","varchar(21)",e=>e.primaryKey()).addColumn("client_id","varchar(21)",e=>e.references("applications.id").onDelete("cascade").notNull()).addColumn("tenant_id","varchar(255)").addColumn("session_id","varchar(21)",e=>e.notNull()).addColumn("user_id","varchar(255)").addForeignKeyConstraint("user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],e=>e.onDelete("cascade")).addColumn("created_at","varchar(35)",e=>e.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("last_exchanged_at","varchar(35)").addColumn("device","varchar(2048)",e=>e.notNull()).addColumn("resource_servers","varchar(2048)",e=>e.notNull()).addColumn("rotating","boolean",e=>e.notNull()).execute()}async function mm(t){await t.schema.dropTable("refresh_tokens").execute()}const hm=Object.freeze(Object.defineProperty({__proto__:null,down:mm,up:_m},Symbol.toStringTag,{value:"Module"}));async function fm(t){}async function pm(t){}const gm=Object.freeze(Object.defineProperty({__proto__:null,down:pm,up:fm},Symbol.toStringTag,{value:"Module"}));async function wm(t){await t.schema.dropTable("sessions").execute(),await t.schema.dropTable("refresh_tokens").execute()}async function ym(t){await t.schema.createTable("sessions").addColumn("id","varchar(21)",e=>e.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"],e=>e.onDelete("cascade")).addColumn("created_at","varchar(35)",e=>e.notNull()).addColumn("updated_at","varchar(35)",e=>e.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)",e=>e.notNull()).addColumn("clients","varchar(1024)",e=>e.notNull()).execute(),await t.schema.createTable("refresh_tokens").addColumn("id","varchar(21)",e=>e.primaryKey()).addColumn("client_id","varchar(21)",e=>e.references("applications.id").onDelete("cascade").notNull()).addColumn("tenant_id","varchar(255)").addColumn("session_id","varchar(21)",e=>e.notNull()).addColumn("user_id","varchar(255)").addForeignKeyConstraint("refresh_tokens_user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],e=>e.onDelete("cascade")).addColumn("created_at","varchar(35)",e=>e.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("last_exchanged_at","varchar(35)").addColumn("device","varchar(2048)",e=>e.notNull()).addColumn("resource_servers","varchar(2048)",e=>e.notNull()).addColumn("rotating","boolean",e=>e.notNull()).execute()}const vm=Object.freeze(Object.defineProperty({__proto__:null,down:ym,up:wm},Symbol.toStringTag,{value:"Module"}));async function Nm(t){await t.schema.createTable("sessions_2").addColumn("id","varchar(21)",e=>e.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"],e=>e.onDelete("cascade")).addColumn("created_at","varchar(35)",e=>e.notNull()).addColumn("updated_at","varchar(35)",e=>e.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)",e=>e.notNull()).addColumn("clients","varchar(1024)",e=>e.notNull()).execute(),await t.schema.createTable("refresh_tokens_2").addColumn("id","varchar(21)",e=>e.primaryKey()).addColumn("client_id","varchar(21)",e=>e.references("applications.id").onDelete("cascade").notNull()).addColumn("tenant_id","varchar(255)").addColumn("session_id","varchar(21)",e=>e.notNull()).addColumn("user_id","varchar(255)").addForeignKeyConstraint("refresh_tokens_2_user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],e=>e.onDelete("cascade")).addColumn("created_at","varchar(35)",e=>e.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("last_exchanged_at","varchar(35)").addColumn("device","varchar(2048)",e=>e.notNull()).addColumn("resource_servers","varchar(2048)",e=>e.notNull()).addColumn("rotating","boolean",e=>e.notNull()).execute()}async function Cm(t){await t.schema.dropTable("sessions_2").execute(),await t.schema.dropTable("refresh_tokens_2").execute()}const xm=Object.freeze(Object.defineProperty({__proto__:null,down:Cm,up:Nm},Symbol.toStringTag,{value:"Module"}));async function Tm(t){await t.schema.createTable("custom_domains").addColumn("custom_domain_id","varchar(21)",e=>e.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("domain","varchar(255)",e=>e.notNull()).addColumn("primary","boolean",e=>e.notNull()).addColumn("status","varchar(50)",e=>e.notNull()).addColumn("type","varchar(50)",e=>e.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)",e=>e.notNull()).addColumn("updated_at","varchar(35)",e=>e.notNull()).execute(),await t.schema.dropTable("domains").execute()}async function Sm(t){await t.schema.dropTable("custom_domains").execute(),await t.schema.createTable("domains").addColumn("id","varchar(255)",e=>e.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("domain","varchar(255)",e=>e.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)",e=>e.notNull()).addColumn("updated_at","varchar(255)",e=>e.notNull()).execute()}const bm=Object.freeze(Object.defineProperty({__proto__:null,down:Sm,up:Tm},Symbol.toStringTag,{value:"Module"}));async function Om(t){}async function km(t){await t.schema.alterTable("logins").dropColumn("authParams_organization").dropColumn("authorization_url").execute()}const Em=Object.freeze(Object.defineProperty({__proto__:null,down:km,up:Om},Symbol.toStringTag,{value:"Module"}));async function Im(t){await t.schema.alterTable("logins").dropColumn("authorization_url").execute(),await t.schema.alterTable("logins").addColumn("authorization_url","varchar(2048)").execute()}async function $m(t){await t.schema.alterTable("logins").dropColumn("authorization_url").execute(),await t.schema.alterTable("logins").addColumn("authorization_url","varchar(1024)").execute()}const Am=Object.freeze(Object.defineProperty({__proto__:null,down:$m,up:Im},Symbol.toStringTag,{value:"Module"}));async function Dm(t){}async function Pm(t){}const Rm=Object.freeze(Object.defineProperty({__proto__:null,down:Pm,up:Dm},Symbol.toStringTag,{value:"Module"}));async function zm(t){await t.schema.createTable("sessions").addColumn("id","varchar(21)",e=>e.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"],e=>e.onDelete("cascade")).addColumn("created_at","varchar(35)",e=>e.notNull()).addColumn("updated_at","varchar(35)",e=>e.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)",e=>e.notNull()).addColumn("clients","varchar(1024)",e=>e.notNull()).execute(),await t.schema.createTable("login_sessions").addColumn("id","varchar(21)",e=>e.primaryKey()).addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("session_id","varchar(21)",e=>e.references("sessions.id").onDelete("cascade")).addColumn("csrf_token","varchar(21)",e=>e.notNull()).addColumn("authParams_client_id","varchar(255)",e=>e.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)",e=>e.notNull()).addColumn("updated_at","varchar(35)",e=>e.notNull()).addColumn("expires_at","varchar(35)",e=>e.notNull()).addColumn("ip","varchar(39)").addColumn("useragent","varchar(1024)").addColumn("auth0Client","varchar(255)").execute(),await t.schema.createTable("refresh_tokens").addColumn("id","varchar(21)",e=>e.primaryKey()).addColumn("client_id","varchar(21)",e=>e.references("applications.id").onDelete("cascade").notNull()).addColumn("tenant_id","varchar(255)").addColumn("session_id","varchar(21)",e=>e.notNull()).addColumn("user_id","varchar(255)").addForeignKeyConstraint("refresh_tokens_user_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],e=>e.onDelete("cascade")).addColumn("created_at","varchar(35)",e=>e.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("last_exchanged_at","varchar(35)").addColumn("device","varchar(2048)",e=>e.notNull()).addColumn("resource_servers","varchar(2048)",e=>e.notNull()).addColumn("rotating","boolean",e=>e.notNull()).execute()}async function Fm(t){await t.schema.dropTable("sessions").execute(),await t.schema.dropTable("login_sessions").execute(),await t.schema.dropTable("refresh_tokens").execute()}const Lm=Object.freeze(Object.defineProperty({__proto__:null,down:Fm,up:zm},Symbol.toStringTag,{value:"Module"}));async function Mm(t){await t.schema.dropTable("logins").execute(),await t.schema.dropTable("sessions_2").execute(),await t.schema.dropTable("refresh_tokens_2").execute()}async function jm(t){}const Jm=Object.freeze(Object.defineProperty({__proto__:null,down:jm,up:Mm},Symbol.toStringTag,{value:"Module"}));async function qm(t){await t.schema.dropTable("custom_domains").execute(),await t.schema.createTable("custom_domains").addColumn("custom_domain_id","varchar(256)",e=>e.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("domain","varchar(255)",e=>e.notNull()).addColumn("primary","boolean",e=>e.notNull()).addColumn("status","varchar(50)",e=>e.notNull()).addColumn("type","varchar(50)",e=>e.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)",e=>e.notNull()).addColumn("updated_at","varchar(35)",e=>e.notNull()).execute()}async function Wm(t){}const Bm=Object.freeze(Object.defineProperty({__proto__:null,down:Wm,up:qm},Symbol.toStringTag,{value:"Module"}));async function Um(t){}async function Km(t){await t.schema.alterTable("users").dropColumn("phone_number").dropColumn("phone_verified").dropColumn("username").execute()}const Qm=Object.freeze(Object.defineProperty({__proto__:null,down:Km,up:Um},Symbol.toStringTag,{value:"Module"}));async function Vm(t){await t.schema.createTable("forms").addColumn("id","varchar(255)",e=>e.primaryKey()).addColumn("name","varchar(255)",e=>e.notNull()).addColumn("tenant_id","varchar(255)",e=>e.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)",e=>e.notNull()).addColumn("updated_at","varchar(255)",e=>e.notNull()).execute(),await t.schema.createIndex("forms_tenant_id_idx").on("forms").column("tenant_id").execute()}async function Gm(t){await t.schema.dropTable("forms").execute()}const Hm=Object.freeze(Object.defineProperty({__proto__:null,down:Gm,up:Vm},Symbol.toStringTag,{value:"Module"}));async function Ym(t){await t.schema.alterTable("hooks").addColumn("form_id","text").execute(),await t.schema.alterTable("hooks").addColumn("url_tmp","varchar(512)").execute(),await t.updateTable("hooks").set(e=>({url_tmp:e.ref("url")})).execute(),await t.schema.alterTable("hooks").dropColumn("url").execute(),await t.schema.alterTable("hooks").renameColumn("url_tmp","url").execute()}async function Xm(t){await t.schema.dropTable("hooks").ifExists().execute(),await t.schema.createTable("hooks").addColumn("hook_id","text",e=>e.primaryKey()).addColumn("tenant_id","text",e=>e.notNull()).addColumn("trigger_id","text",e=>e.notNull()).addColumn("enabled","integer",e=>e.notNull().defaultTo(0)).addColumn("url","varchar(512)",e=>e.notNull()).addColumn("synchronous","integer",e=>e.notNull().defaultTo(0)).addColumn("priority","integer").addColumn("created_at","text",e=>e.notNull()).addColumn("updated_at","text",e=>e.notNull()).execute()}const Zm=Object.freeze(Object.defineProperty({__proto__:null,down:Xm,up:Ym},Symbol.toStringTag,{value:"Module"}));async function eh(t){await t.schema.alterTable("login_sessions").addColumn("login_completed","boolean",e=>e.notNull().defaultTo(0)).execute()}async function th(t){await t.schema.alterTable("login_sessions").dropColumn("login_completed").execute()}const ah=Object.freeze(Object.defineProperty({__proto__:null,down:th,up:eh},Symbol.toStringTag,{value:"Module"}));async function nh(t){await t.schema.alterTable("sessions").addColumn("login_session_id","varchar(21)",e=>e.references("login_sessions.id").onDelete("set null")).execute()}async function rh(t){await t.schema.alterTable("sessions").dropColumn("login_session_id").execute()}const oh=Object.freeze(Object.defineProperty({__proto__:null,down:rh,up:nh},Symbol.toStringTag,{value:"Module"}));async function sh(t){await t.schema.createIndex("IDX_sessions_login_session_id").on("sessions").column("login_session_id").execute()}async function ih(t){await t.schema.dropIndex("IDX_sessions_login_session_id").on("sessions").execute()}const ch=Object.freeze(Object.defineProperty({__proto__:null,down:ih,up:sh},Symbol.toStringTag,{value:"Module"}));async function uh(t){await t.schema.alterTable("codes").addColumn("code_challenge","varchar(128)").execute(),await t.schema.alterTable("codes").addColumn("code_challenge_method","varchar(5)").execute()}async function lh(t){await t.schema.alterTable("codes").dropColumn("code_challenge").execute(),await t.schema.alterTable("codes").dropColumn("code_challenge_method").execute()}const dh=Object.freeze(Object.defineProperty({__proto__:null,down:lh,up:uh},Symbol.toStringTag,{value:"Module"}));async function _h(t){await t.schema.alterTable("codes").addColumn("redirect_uri","varchar(1024)").execute()}async function mh(t){await t.schema.alterTable("codes").dropColumn("redirect_uri").execute()}const hh=Object.freeze(Object.defineProperty({__proto__:null,down:mh,up:_h},Symbol.toStringTag,{value:"Module"}));async function fh(t){await t.schema.alterTable("codes").addColumn("nonce","varchar(1024)").execute(),await t.schema.alterTable("codes").addColumn("state","varchar(2048)").execute()}async function ph(t){await t.schema.alterTable("codes").dropColumn("nonce").execute(),await t.schema.alterTable("codes").dropColumn("state").execute()}const gh=Object.freeze(Object.defineProperty({__proto__:null,down:ph,up:fh},Symbol.toStringTag,{value:"Module"}));async function wh(t){await t.schema.createTable("themes").addColumn("tenant_id","varchar(255)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("themeId","varchar(255)",e=>e.notNull()).addColumn("displayName","varchar(255)",e=>e.notNull()).addColumn("colors_primary_button_label","varchar(24)",e=>e.notNull()).addColumn("colors_primary_button","varchar(24)",e=>e.notNull()).addColumn("colors_secondary_button_border","varchar(24)",e=>e.notNull()).addColumn("colors_secondary_button_label","varchar(24)",e=>e.notNull()).addColumn("colors_base_focus_color","varchar(24)",e=>e.notNull()).addColumn("colors_base_hover_color","varchar(24)",e=>e.notNull()).addColumn("colors_body_text","varchar(24)",e=>e.notNull()).addColumn("colors_captcha_widget_theme","varchar(24)",e=>e.notNull()).addColumn("colors_error","varchar(24)",e=>e.notNull()).addColumn("colors_header","varchar(24)",e=>e.notNull()).addColumn("colors_icons","varchar(24)",e=>e.notNull()).addColumn("colors_input_background","varchar(24)",e=>e.notNull()).addColumn("colors_input_border","varchar(24)",e=>e.notNull()).addColumn("colors_input_filled_text","varchar(24)",e=>e.notNull()).addColumn("colors_input_labels_placeholders","varchar(24)",e=>e.notNull()).addColumn("colors_links_focused_components","varchar(24)",e=>e.notNull()).addColumn("colors_success","varchar(24)",e=>e.notNull()).addColumn("colors_widget_background","varchar(24)",e=>e.notNull()).addColumn("colors_widget_border","varchar(24)",e=>e.notNull()).addColumn("borders_button_border_radius","integer",e=>e.notNull()).addColumn("borders_button_border_weight","integer",e=>e.notNull()).addColumn("borders_buttons_style","varchar(24)",e=>e.notNull()).addColumn("borders_input_border_radius","integer",e=>e.notNull()).addColumn("borders_input_border_weight","integer",e=>e.notNull()).addColumn("borders_inputs_style","varchar(24)",e=>e.notNull()).addColumn("borders_show_widget_shadow","boolean",e=>e.notNull()).addColumn("borders_widget_border_weight","integer",e=>e.notNull()).addColumn("borders_widget_corner_radius","integer",e=>e.notNull()).addColumn("fonts_body_text_bold","integer",e=>e.notNull()).addColumn("fonts_body_text_size","integer",e=>e.notNull()).addColumn("fonts_buttons_text_bold","integer",e=>e.notNull()).addColumn("fonts_buttons_text_size","integer",e=>e.notNull()).addColumn("fonts_font_url","varchar(255)",e=>e.notNull()).addColumn("fonts_input_labels_bold","integer",e=>e.notNull()).addColumn("fonts_input_labels_size","integer",e=>e.notNull()).addColumn("fonts_links_bold","boolean",e=>e.notNull()).addColumn("fonts_links_size","integer",e=>e.notNull()).addColumn("fonts_links_style","varchar(24)",e=>e.notNull()).addColumn("fonts_reference_text_size","integer",e=>e.notNull()).addColumn("fonts_subtitle_bold","boolean",e=>e.notNull()).addColumn("fonts_subtitle_size","integer",e=>e.notNull()).addColumn("fonts_title_bold","boolean",e=>e.notNull()).addColumn("fonts_title_size","integer",e=>e.notNull()).addColumn("page_background_background_color","varchar(24)",e=>e.notNull()).addColumn("page_background_background_image_url","varchar(255)",e=>e.notNull()).addColumn("page_background_page_layout","varchar(24)",e=>e.notNull()).addColumn("widget_header_text_alignment","varchar(24)",e=>e.notNull()).addColumn("widget_logo_height","integer",e=>e.notNull()).addColumn("widget_logo_position","varchar(24)",e=>e.notNull()).addColumn("widget_logo_url","varchar(255)",e=>e.notNull()).addColumn("widget_social_buttons_layout","varchar(24)",e=>e.notNull()).addColumn("created_at","varchar(35)",e=>e.notNull()).addColumn("updated_at","varchar(35)",e=>e.notNull()).addPrimaryKeyConstraint("themes_pkey",["tenant_id","themeId"]).execute(),await t.schema.createIndex("themes_tenant_id_idx").on("themes").column("tenant_id").execute()}async function yh(t){await t.schema.dropTable("themes").execute()}const vh=Object.freeze(Object.defineProperty({__proto__:null,down:yh,up:wh},Symbol.toStringTag,{value:"Module"}));async function Nh(t){await t.schema.createTable("resource_servers").addColumn("id","varchar(21)",e=>e.notNull()).addColumn("tenant_id","varchar(191)",e=>e.notNull()).addColumn("identifier","varchar(191)",e=>e.notNull()).addColumn("name","varchar(255)",e=>e.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)",e=>e.notNull()).addColumn("updated_at","varchar(35)",e=>e.notNull()).addPrimaryKeyConstraint("resource_servers_pk",["tenant_id","id"]).execute(),await t.schema.createIndex("resource_servers_tenant_identifier_uq").on("resource_servers").columns(["tenant_id","identifier"]).unique().execute(),await t.schema.createTable("roles").addColumn("id","varchar(21)",e=>e.notNull()).addColumn("tenant_id","varchar(191)",e=>e.notNull()).addColumn("name","varchar(50)",e=>e.notNull()).addColumn("description","varchar(255)").addColumn("created_at","varchar(35)",e=>e.notNull()).addColumn("updated_at","varchar(35)",e=>e.notNull()).addPrimaryKeyConstraint("roles_pk",["tenant_id","id"]).execute(),await t.schema.createIndex("roles_tenant_name_uq").on("roles").columns(["tenant_id","name"]).unique().execute()}async function Ch(t){await t.schema.dropTable("roles").execute(),await t.schema.dropTable("resource_servers").execute()}const xh=Object.freeze(Object.defineProperty({__proto__:null,down:Ch,up:Nh},Symbol.toStringTag,{value:"Module"}));async function Th(t){await t.schema.createTable("role_permissions").addColumn("tenant_id","varchar(191)",e=>e.notNull()).addColumn("role_id","varchar(21)",e=>e.notNull()).addColumn("resource_server_identifier","varchar(191)",e=>e.notNull()).addColumn("permission_name","varchar(191)",e=>e.notNull()).addColumn("created_at","varchar(35)",e=>e.notNull()).addPrimaryKeyConstraint("role_permissions_pk",["tenant_id","role_id","resource_server_identifier","permission_name"]).execute(),await t.schema.createIndex("role_permissions_role_fk").on("role_permissions").columns(["tenant_id","role_id"]).execute(),await t.schema.createIndex("role_permissions_permission_fk").on("role_permissions").columns(["tenant_id","resource_server_identifier","permission_name"]).execute(),await t.schema.createTable("user_permissions").addColumn("tenant_id","varchar(191)",e=>e.notNull()).addColumn("user_id","varchar(191)",e=>e.notNull()).addColumn("resource_server_identifier","varchar(191)",e=>e.notNull()).addColumn("permission_name","varchar(191)",e=>e.notNull()).addColumn("created_at","varchar(35)",e=>e.notNull()).addPrimaryKeyConstraint("user_permissions_pk",["tenant_id","user_id","resource_server_identifier","permission_name"]).execute(),await t.schema.createIndex("user_permissions_user_fk").on("user_permissions").columns(["tenant_id","user_id"]).execute(),await t.schema.createIndex("user_permissions_permission_fk").on("user_permissions").columns(["tenant_id","resource_server_identifier","permission_name"]).execute()}async function Sh(t){await t.schema.dropTable("user_permissions").execute(),await t.schema.dropTable("role_permissions").execute()}const bh=Object.freeze(Object.defineProperty({__proto__:null,down:Sh,up:Th},Symbol.toStringTag,{value:"Module"}));async function Oh(t){await t.schema.createTable("user_roles").addColumn("tenant_id","varchar(191)",e=>e.notNull()).addColumn("user_id","varchar(191)",e=>e.notNull()).addColumn("role_id","varchar(21)",e=>e.notNull()).addColumn("created_at","varchar(35)",e=>e.notNull()).addPrimaryKeyConstraint("user_roles_pk",["tenant_id","user_id","role_id"]).execute(),await t.schema.createIndex("user_roles_user_fk").on("user_roles").columns(["tenant_id","user_id"]).execute(),await t.schema.createIndex("user_roles_role_fk").on("user_roles").columns(["tenant_id","role_id"]).execute()}async function kh(t){await t.schema.dropTable("user_roles").execute()}const Eh=Object.freeze(Object.defineProperty({__proto__:null,down:kh,up:Oh},Symbol.toStringTag,{value:"Module"}));async function Ih(t){}async function $h(t){await t.schema.alterTable("keys").dropColumn("connection").execute(),await t.schema.alterTable("keys").modifyColumn("cert","varchar(2048)").execute(),await t.schema.alterTable("keys").modifyColumn("pkcs7","varchar(2048)").execute(),await t.schema.alterTable("keys").dropColumn("type").execute()}const Ah=Object.freeze(Object.defineProperty({__proto__:null,down:$h,up:Ih},Symbol.toStringTag,{value:"Module"}));async function Dh(t){await t.schema.createTable("organizations").addColumn("id","varchar(21)",e=>e.primaryKey()).addColumn("tenant_id","varchar(191)",e=>e.notNull()).addColumn("name","varchar(256)",e=>e.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)",e=>e.notNull()).addColumn("updated_at","varchar(35)",e=>e.notNull()).execute(),await t.schema.createIndex("idx_organizations_tenant_id").on("organizations").column("tenant_id").execute(),await t.schema.createIndex("idx_organizations_tenant_name_unique").on("organizations").columns(["tenant_id","name"]).unique().execute()}async function Ph(t){await t.schema.dropTable("organizations").execute()}const Rh=Object.freeze(Object.defineProperty({__proto__:null,down:Ph,up:Dh},Symbol.toStringTag,{value:"Module"}));async function zh(t){await t.schema.createTable("user_organizations").addColumn("id","varchar(21)",e=>e.primaryKey()).addColumn("tenant_id","varchar(191)",e=>e.notNull()).addColumn("user_id","varchar(191)",e=>e.notNull()).addColumn("organization_id","varchar(21)",e=>e.notNull()).addColumn("created_at","varchar(35)",e=>e.notNull()).addColumn("updated_at","varchar(35)",e=>e.notNull()).addUniqueConstraint("user_organizations_unique",["tenant_id","user_id","organization_id"]).execute(),await t.schema.createIndex("idx_user_organizations_tenant_id").on("user_organizations").column("tenant_id").execute(),await t.schema.createIndex("idx_user_organizations_user_id").on("user_organizations").column("user_id").execute(),await t.schema.createIndex("idx_user_organizations_organization_id").on("user_organizations").column("organization_id").execute()}async function Fh(t){await t.schema.dropTable("user_organizations").execute()}const Lh=Object.freeze(Object.defineProperty({__proto__:null,down:Fh,up:zh},Symbol.toStringTag,{value:"Module"}));async function Mh(t){await t.schema.dropTable("user_permissions").execute(),await t.schema.dropTable("user_roles").execute(),await t.schema.createTable("user_permissions").addColumn("tenant_id","varchar(191)",e=>e.notNull()).addColumn("user_id","varchar(191)",e=>e.notNull()).addColumn("resource_server_identifier","varchar(21)",e=>e.notNull()).addColumn("permission_name","varchar(191)",e=>e.notNull()).addColumn("organization_id","varchar(21)",e=>e.notNull().defaultTo("")).addColumn("created_at","varchar(35)",e=>e.notNull()).addPrimaryKeyConstraint("user_permissions_pk",["tenant_id","user_id","resource_server_identifier","permission_name","organization_id"]).execute(),await t.schema.createIndex("user_permissions_user_fk").on("user_permissions").columns(["tenant_id","user_id"]).execute(),await t.schema.createIndex("user_permissions_permission_fk").on("user_permissions").columns(["tenant_id","resource_server_identifier","permission_name"]).execute(),await t.schema.createIndex("user_permissions_organization_fk").on("user_permissions").column("organization_id").execute(),await t.schema.createTable("user_roles").addColumn("tenant_id","varchar(191)",e=>e.notNull()).addColumn("user_id","varchar(191)",e=>e.notNull()).addColumn("role_id","varchar(21)",e=>e.notNull()).addColumn("organization_id","varchar(191)",e=>e.notNull().defaultTo("")).addColumn("created_at","varchar(35)",e=>e.notNull()).addPrimaryKeyConstraint("user_roles_pk",["tenant_id","user_id","role_id","organization_id"]).execute(),await t.schema.createIndex("user_roles_user_fk").on("user_roles").columns(["tenant_id","user_id"]).execute(),await t.schema.createIndex("user_roles_role_fk").on("user_roles").columns(["tenant_id","role_id"]).execute(),await t.schema.createIndex("user_roles_organization_fk").on("user_roles").column("organization_id").execute()}async function jh(t){await t.schema.dropTable("user_permissions").execute(),await t.schema.dropTable("user_roles").execute(),await t.schema.createTable("user_permissions").addColumn("tenant_id","varchar(191)",e=>e.notNull()).addColumn("user_id","varchar(191)",e=>e.notNull()).addColumn("resource_server_identifier","varchar(191)",e=>e.notNull()).addColumn("permission_name","varchar(191)",e=>e.notNull()).addColumn("created_at","varchar(35)",e=>e.notNull()).addPrimaryKeyConstraint("user_permissions_pk",["tenant_id","user_id","resource_server_identifier","permission_name"]).execute(),await t.schema.createIndex("user_permissions_user_fk").on("user_permissions").columns(["tenant_id","user_id"]).execute(),await t.schema.createIndex("user_permissions_permission_fk").on("user_permissions").columns(["tenant_id","resource_server_identifier","permission_name"]).execute(),await t.schema.createTable("user_roles").addColumn("tenant_id","varchar(191)",e=>e.notNull()).addColumn("user_id","varchar(191)",e=>e.notNull()).addColumn("role_id","varchar(21)",e=>e.notNull()).addColumn("created_at","varchar(35)",e=>e.notNull()).addPrimaryKeyConstraint("user_roles_pk",["tenant_id","user_id","role_id"]).execute(),await t.schema.createIndex("user_roles_user_fk").on("user_roles").columns(["tenant_id","user_id"]).execute(),await t.schema.createIndex("user_roles_role_fk").on("user_roles").columns(["tenant_id","role_id"]).execute()}const Jh=Object.freeze(Object.defineProperty({__proto__:null,down:jh,up:Mh},Symbol.toStringTag,{value:"Module"}));async function qh(t){await t.schema.createTable("clients").addColumn("client_id","varchar(191)",e=>e.notNull()).addColumn("tenant_id","varchar(191)",e=>e.references("tenants.id").onDelete("cascade").notNull()).addColumn("name","varchar(255)",e=>e.notNull()).addColumn("description","varchar(140)").addColumn("global","integer",e=>e.defaultTo(0).notNull()).addColumn("client_secret","varchar(255)").addColumn("app_type","varchar(64)",e=>e.defaultTo("regular_web")).addColumn("logo_uri","varchar(2083)").addColumn("is_first_party","integer",e=>e.defaultTo(0).notNull()).addColumn("oidc_conformant","integer",e=>e.defaultTo(1).notNull()).addColumn("callbacks","text",e=>e.notNull()).addColumn("allowed_origins","text",e=>e.notNull()).addColumn("web_origins","text",e=>e.notNull()).addColumn("client_aliases","text",e=>e.notNull()).addColumn("allowed_clients","text",e=>e.notNull()).addColumn("allowed_logout_urls","text",e=>e.notNull()).addColumn("session_transfer","text",e=>e.notNull()).addColumn("oidc_logout","text",e=>e.notNull()).addColumn("grant_types","text",e=>e.notNull()).addColumn("jwt_configuration","text",e=>e.notNull()).addColumn("signing_keys","text",e=>e.notNull()).addColumn("encryption_key","text",e=>e.notNull()).addColumn("sso","integer",e=>e.defaultTo(0).notNull()).addColumn("sso_disabled","integer",e=>e.defaultTo(1).notNull()).addColumn("cross_origin_authentication","integer",e=>e.defaultTo(0).notNull()).addColumn("cross_origin_loc","varchar(2083)").addColumn("custom_login_page_on","integer",e=>e.defaultTo(0).notNull()).addColumn("custom_login_page","text").addColumn("custom_login_page_preview","text").addColumn("form_template","text").addColumn("addons","text",e=>e.notNull()).addColumn("token_endpoint_auth_method","varchar(64)",e=>e.defaultTo("client_secret_basic")).addColumn("client_metadata","text",e=>e.notNull()).addColumn("mobile","text",e=>e.notNull()).addColumn("initiate_login_uri","varchar(2083)").addColumn("native_social_login","text",e=>e.notNull()).addColumn("refresh_token","text",e=>e.notNull()).addColumn("default_organization","text",e=>e.notNull()).addColumn("organization_usage","varchar(32)",e=>e.defaultTo("deny")).addColumn("organization_require_behavior","varchar(32)",e=>e.defaultTo("no_prompt")).addColumn("client_authentication_methods","text",e=>e.notNull()).addColumn("require_pushed_authorization_requests","integer",e=>e.defaultTo(0).notNull()).addColumn("require_proof_of_possession","integer",e=>e.defaultTo(0).notNull()).addColumn("signed_request_object","text",e=>e.notNull()).addColumn("compliance_level","varchar(64)").addColumn("par_request_expiry","integer").addColumn("token_quota","text",e=>e.notNull()).addColumn("created_at","varchar(35)",e=>e.notNull()).addColumn("updated_at","varchar(35)",e=>e.notNull()).addPrimaryKeyConstraint("clients_tenant_id_client_id",["tenant_id","client_id"]).execute()}async function Wh(t){await t.schema.dropTable("clients").execute()}const Bh=Object.freeze(Object.defineProperty({__proto__:null,down:Wh,up:qh},Symbol.toStringTag,{value:"Module"}));async function ur(t){try{return await w`SELECT VERSION()`.execute(t),"mysql"}catch{return"sqlite"}}async function Uh(t){await ur(t)==="mysql"?await Kh(t):await Qh(t)}async function Kh(t){await t.transaction().execute(async e=>{const a=await w`
|
|
1
|
+
"use strict";var Ne=Object.defineProperty;var Se=(e,t,a)=>t in e?Ne(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var K=(e,t,a)=>Se(e,typeof t!="symbol"?t+"":t,a);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const O=require("nanoid"),S=require("@authhero/adapter-interfaces");require("@hono/zod-openapi");const h=require("kysely");var R=class extends Error{constructor(t=500,a){super(a==null?void 0:a.message,{cause:a==null?void 0:a.cause});K(this,"res");K(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 be(e,t){return async(a,n)=>{const{identities:o,phone_verified:r,password:s,...i}=n,l={...i,login_count:i.login_count??0,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),tenant_id:a,email_verified:n.email_verified?1:0,phone_verified:r!==void 0?r?1:0:null,is_social:n.is_social?1:0,app_metadata:JSON.stringify(n.app_metadata),user_metadata:JSON.stringify(n.user_metadata),address:n.address?JSON.stringify(n.address):null};try{if(t.useTransactions===!1){if(await e.insertInto("users").values(l).execute(),s&&l.user_id){const d={id:O.nanoid(),user_id:l.user_id,password:s.hash,algorithm:s.algorithm,is_current:1,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),tenant_id:a};await e.insertInto("passwords").values(d).execute()}}else await e.transaction().execute(async d=>{if(await d.insertInto("users").values(l).execute(),s&&l.user_id){const u={id:O.nanoid(),user_id:l.user_id,password:s.hash,algorithm:s.algorithm,is_current:1,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),tenant_id:a};await d.insertInto("passwords").values(u).execute()}})}catch(d){throw d.code==="SQLITE_CONSTRAINT_UNIQUE"||d.message.includes("AlreadyExists")?new R(409,{message:"User already exists"}):new R(500,{message:`${d.code}, ${d.message}`})}return{...l,email:l.email||"",email_verified:l.email_verified===1,phone_verified:l.phone_verified!==null?l.phone_verified===1:void 0,is_social:l.is_social===1,address:n.address}}}function w(e){if(e==null||typeof e!="object")return e;if(Array.isArray(e))return e.map(a=>a!==null&&typeof a=="object"?w(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"?w(o):o):t[a]=w(n))}return t}const Oe=["email","email_verified","phone_number","phone_verified","username"];function U(e,t=!1){const a={connection:e.connection,provider:e.provider,user_id:S.parseUserId(e.user_id).id,isSocial:!!e.is_social};for(const n of Oe)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 ke(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:[U(n,!0),...o.map(l=>U(l))]};return w(i)}}function k(e,t,a,n){const o=a.split(/ OR /i);if(o.length>1)return t.where(d=>{const u=o.map(c=>{const m=c.trim().match(/^([^:]+):(.+)$/);if(m){const[,_,p]=m;if(!_||!p)return null;const f=p.replace(/^"(.*)"$/,"$1");return d(_.trim(),"=",f.trim())}return null}).filter(Boolean);return d.or(u)});const r=[];let s="",i=!1;for(let d=0;d<a.length;d++){const u=a[d];u==='"'?(i=!i,s+=u):u===" "&&!i?s.trim()&&(r.push(s.trim()),s=""):s+=u}return s.trim()&&r.push(s.trim()),r.map(d=>d.replace(/^([^:]+)=/g,"$1:")).map(d=>{let u=d.startsWith("-"),c=null,m="",_=!1,p;if(d.startsWith("-_exists_:"))c=d.substring(10),_=!0,u=!0;else if(d.startsWith("_exists_:"))c=d.substring(9),_=!0,u=!1;else if(d.includes(":")){const f=u?d.substring(1):d,g=f.indexOf(":");c=f.substring(0,g),m=f.substring(g+1),_=!1,m.startsWith(">=")?(p=">=",m=m.substring(2)):m.startsWith(">")?(p=">",m=m.substring(1)):m.startsWith("<=")?(p="<=",m=m.substring(2)):m.startsWith("<")?(p="<",m=m.substring(1)):p="=",m.startsWith('"')&&m.endsWith('"')&&m.length>1&&(m=m.slice(1,-1))}else c=null,m=d,_=!1;return{key:c,value:m,isNegation:u,isExistsQuery:_,operator:p}}).forEach(({key:d,value:u,isNegation:c,isExistsQuery:m,operator:_})=>{if(d)if(m)c?t=t.where(d,"is",null):t=t.where(d,"is not",null);else if(c)switch(_){case">":t=t.where(d,"<=",u);break;case">=":t=t.where(d,"<",u);break;case"<":t=t.where(d,">=",u);break;case"<=":t=t.where(d,">",u);break;default:t=t.where(d,"!=",u)}else t=t.where(d,_,u);else if(u){const{ref:p}=e.dynamic,f=u.includes("|")?[...n,"user_id"]:n;t=t.where(g=>g.or(f.map(v=>v==="user_id"?g(p(v),"=",u):g(p(v),"like",`%${u}%`))))}}),t}function $(e){return typeof e=="string"?parseInt(e,10):typeof e=="bigint"?Number(e):e}function $e(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&&(l=k(e,l,i,["email","name","phone_number"])),s&&s.sort_by){const{ref:f}=e.dynamic;l=l.orderBy(f(s.sort_by),s.sort_order)}const u=await l.offset(n*o).limit(o).selectAll().execute(),c=u.map(f=>f.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(f=>{const g=m.filter(v=>v.linked_to===f.user_id);return w({...f,email_verified:f.email_verified===1,phone_verified:f.phone_verified!==null?f.phone_verified===1:void 0,is_social:f.is_social===1,app_metadata:JSON.parse(f.app_metadata),user_metadata:JSON.parse(f.user_metadata),address:f.address?JSON.parse(f.address):void 0,identities:[U(f,!0),...g.map(v=>U(v))]})});if(!r)return{users:_,start:0,limit:0,length:0};const{count:p}=await l.select(f=>f.fn.countAll().as("count")).executeTakeFirstOrThrow();return{users:_,start:n*o,limit:o,length:$(p)}}}function Ee(e){return async(t,a)=>(await e.deleteFrom("mfa_enrollments").where("mfa_enrollments.tenant_id","=",t).where("mfa_enrollments.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 M(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)?M(r,o,a):typeof r=="boolean"?a[o]=r?1:0:a[o]=r}return a}function se(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 Ie(e){return async(t,a,n)=>{const o=M({...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 ze(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 Pe(e,t){return{create:be(e,t),remove:Ee(e),get:ke(e),list:$e(e),update:Ie(e),unlink:ze(e)}}function De(e){return async(t,a)=>{const n=new Date().toISOString(),o=S.flowSchema.parse({id:`af_${O.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 D(e,t){if(!e)return t;try{return JSON.parse(e)}catch{return t}}function ie(e,t,a={...e}){for(const n in t)n in e&&(a[n]=D(e[n],t[n]));return a}function Ae(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:D(n.actions,[])};return S.flowSchema.parse(w(o))}}function je(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=k(e,i,s,[]));const u=(await i.offset(n*o).limit(o).selectAll().execute()).map(m=>{const _={...m,actions:D(m.actions,[])};return S.flowSchema.parse(w(_))});if(!r)return{flows:u,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{flows:u,start:n*o,limit:o,length:$(c)}}}function Fe(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?S.flowSchema.parse({...s,actions:s.actions?JSON.parse(s.actions):[]}):null}}function Re(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 Me(e){return{create:De(e),get:Ae(e),list:je(e),update:Fe(e),remove:Re(e)}}function q(e,t,a={...e}){for(const n of t)e[n]!==void 0&&(a[n]=JSON.stringify(e[n]));return a}function le(e,t,a=e){for(const n of t)e[n]!==void 0&&(a[n]=e[n]?1:0)}function Je(e){const t={};for(const a in e)e[a]!==void 0&&e[a]!==null&&(t[a]=e[a]);return t}function ce(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.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),w(t)}function de(e){const t={...e};return q(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"],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),Je(t)}function qe(e){return async t=>{var o,r;const a={id:t.id||O.nanoid(),created_at:new Date().toISOString(),updated_at:new Date().toISOString(),...t},n=de(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)==="23505"?new R(409,{message:`Tenant with ID '${a.id}' already exists`}):s}return a}}function Le(e){return async t=>{const a=await e.selectFrom("tenants").where("tenants.id","=",t).selectAll().executeTakeFirst();return a?ce(a):null}}function Ke(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:_}=e.dynamic;a=a.orderBy(_(s.sort_by),s.sort_order)}i&&(a=k(e,a,i,["friendly_name"]));const u=(await a.offset(n*o).limit(o).selectAll().execute()).map(ce);if(!r)return{tenants:u};const{count:c}=await a.select(_=>_.fn.countAll().as("count")).executeTakeFirstOrThrow(),m=$(c);return{tenants:u,start:n*o,limit:o,length:m}}}function Ue(e){return async(t,a)=>{const o={...de(a),id:t,updated_at:new Date().toISOString()};await e.updateTable("tenants").set(o).where("id","=",t).execute()}}function Be(e){return async t=>(await e.deleteFrom("tenants").where("tenants.id","=",t).execute()).length===1}function Qe(e){return{create:qe(e),get:Le(e),list:Ke(e),update:Ue(e),remove:Be(e)}}function X(e){return e?JSON.stringify(e):void 0}const He=256;function Ye(e){return async(t,a)=>{var i,l,d;const n=(i=a.user_agent)==null?void 0:i.slice(0,He),o=a.log_id||O.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:X(a.auth0_client),details:(d=X(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 Z(e){if(!e)return"";try{return JSON.parse(e)}catch{return e}}function ue(e){return{...e,client_id:e.client_id,client_name:"",auth0_client:Z(e.auth0_client),details:Z(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 We(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=k(e,l,i,["user_id","ip"]));let d=l;if(s&&s.sort_by){const{ref:_}=e.dynamic;d=d.orderBy(_(s.sort_by),s.sort_order)}d=d.offset(n*o).limit(o);const c=(await d.selectAll().execute()).map(ue);if(!r)return{logs:c,start:0,limit:0,length:0};const{count:m}=await l.select(_=>_.fn.countAll().as("count")).executeTakeFirstOrThrow();return{logs:c,start:n*o,limit:o,length:$(m)}}}function Ge(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?ue(n):null}}function Ve(e){return{create:Ye(e),list:We(e),get:Ge(e)}}function _e(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 _e(e)??t}function y(e){if(!e||e==="")return null;const t=new Date(e);return isNaN(t.getTime())?null:t.getTime()}function Y(){return new Date().toISOString()}function A(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]=_e(e[o])}return n}function Xe(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:u,authenticated_at_ts:c,last_interaction_at_ts:m,used_at_ts:_,revoked_at_ts:p,...f}=n,g=A({created_at_ts:i,updated_at_ts:l,expires_at_ts:d,idle_expires_at_ts:u,authenticated_at_ts:c,last_interaction_at_ts:m,used_at_ts:_,revoked_at_ts:p},["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{...f,...g,device:JSON.parse(r),clients:JSON.parse(s)}}}function Ze(e){return async(t,a)=>{const n=Date.now(),o=Y(),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:u,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:y(s),idle_expires_at_ts:y(i),used_at_ts:y(l),revoked_at_ts:y(d),device:JSON.stringify(u),clients:JSON.stringify(c)}).execute(),r}}function et(e){return async(t,a)=>!!(await e.deleteFrom("sessions").where("tenant_id","=",t).where("sessions.id","=",a).execute()).length}function tt(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=y(n.expires_at)),n.idle_expires_at!==void 0&&(o.idle_expires_at_ts=y(n.idle_expires_at)),n.authenticated_at!==void 0&&(o.authenticated_at_ts=y(n.authenticated_at)),n.last_interaction_at!==void 0&&(o.last_interaction_at_ts=y(n.last_interaction_at)),n.used_at!==void 0&&(o.used_at_ts=y(n.used_at)),n.revoked_at!==void 0&&(o.revoked_at_ts=y(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 at(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=k(e,l,i,["user_id","session_id"]));let d=l;if(s&&s.sort_by){const{ref:p}=e.dynamic;d=d.orderBy(p(s.sort_by),s.sort_order)}d=d.offset(n*o).limit(o);const c=(await d.selectAll().execute()).map(p=>{const{tenant_id:f,device:g,clients:v,created_at_ts:b,updated_at_ts:C,expires_at_ts:E,idle_expires_at_ts:z,authenticated_at_ts:I,last_interaction_at_ts:P,used_at_ts:V,revoked_at_ts:Ce,...xe}=p,Te=A({created_at_ts:b,updated_at_ts:C,expires_at_ts:E,idle_expires_at_ts:z,authenticated_at_ts:I,last_interaction_at_ts:P,used_at_ts:V,revoked_at_ts:Ce},["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{...xe,...Te,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(p=>p.fn.countAll().as("count")).executeTakeFirstOrThrow(),_=$(m);return{sessions:c,start:n*o,limit:o,length:_}}}function nt(e){return{create:Ze(e),get:Xe(e),list:at(e),remove:et(e),update:tt(e)}}function ot(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 rt(e){return async(t,a)=>{const n=a.id||O.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 st(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 it(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 lt(e){return{create:rt(e),update:st(e),get:ot(e),list:it(e)}}function ct(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=k(e,i,s,["code","login_id"]));const u=(await i.offset(n*o).limit(o).selectAll().execute()).map(m=>{const{tenant_id:_,...p}=m;return S.codeSchema.parse(w(p))});if(!r)return{codes:u,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{codes:u,start:n*o,limit:o,length:$(c)}}}function dt(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 ut(e){return async(t,a)=>(await e.deleteFrom("codes").where("codes.tenant_id","=",t).where("codes.code_id","=",a).executeTakeFirst()).numDeletedRows>0}function _t(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?w(r):null}}function mt(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 ht(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 pt(e){return{create:dt(e),list:ct(e),remove:ut(e),used:mt(e),consume:ht(e),get:_t(e)}}const ft=17,gt={organization:"org_",connection:"con_",action:"act_",hook:"h_",rule:"rul_",resource_server:"api_",guardian_factor:"gfa_",invite:"inv_"};function L(e){const n=O.customAlphabet("0123456789abcdefghijklmnopqrstuvwxyz",ft)();return`${gt[e]}${n}`}function wt(){return L("organization")}function vt(){return L("connection")}function yt(){return L("hook")}function Ct(){return L("resource_server")}function xt(){return L("invite")}function Tt(e){return async(t,a)=>{const{is_system:n,...o}=a,r={id:o.id||vt(),...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 W(e){const{is_system:t,...a}=e;return w({...a,is_system:t?!0:void 0,options:JSON.parse(e.options)})}function Nt(e){return e.map(W)}function St(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=k(e,i,s,["user_id","ip"]));const d=await i.offset(n*o).limit(o).selectAll().execute(),u=Nt(d);if(!r)return{connections:u,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{connections:u,start:n*o,limit:o,length:$(c)}}}function bt(e){return async(t,a)=>(await e.deleteFrom("connections").where("connections.tenant_id","=",t).where("connections.id","=",a).executeTakeFirst()).numDeletedRows>0}function Ot(e){return async(t,a)=>{const n=await e.selectFrom("connections").where("connections.tenant_id","=",t).where("connections.id","=",a).selectAll().executeTakeFirst();return n?W(n):null}}function kt(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 $t(e){return{create:Tt(e),get:Ot(e),list:St(e),remove:bt(e),update:kt(e)}}function Et(e){return async(t,a)=>{const n={created_at:new Date().toISOString(),updated_at:new Date().toISOString(),...a,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??!0,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},o={...n,tenant_id:t};return le(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"],o),Object.assign(o,{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||{})}),await e.insertInto("clients").values(o).execute(),n}}function It(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 w({...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,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)})}}function zt(e){return async t=>{const a=await e.selectFrom("clients").where("clients.client_id","=",t).selectAll().executeTakeFirst();return a?w({...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,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)}):null}}function Pt(e){return async(t,a)=>{let n=e.selectFrom("clients").where("clients.tenant_id","=",t);return a!=null&&a.per_page&&(n=n.limit(a.per_page)),a!=null&&a.page&&(a!=null&&a.per_page)&&(n=n.offset((a.page-1)*a.per_page)),{clients:(await n.selectAll().execute()).map(s=>({...s,global:!!s.global,is_first_party:!!s.is_first_party,oidc_conformant:!!s.oidc_conformant,auth0_conformant:!!s.auth0_conformant,sso:!!s.sso,sso_disabled:!!s.sso_disabled,cross_origin_authentication:!!s.cross_origin_authentication,custom_login_page_on:!!s.custom_login_page_on,require_pushed_authorization_requests:!!s.require_pushed_authorization_requests,require_proof_of_possession:!!s.require_proof_of_possession,callbacks:JSON.parse(s.callbacks),allowed_origins:JSON.parse(s.allowed_origins),web_origins:JSON.parse(s.web_origins),client_aliases:JSON.parse(s.client_aliases),allowed_clients:JSON.parse(s.allowed_clients),connections:JSON.parse(s.connections||"[]"),allowed_logout_urls:JSON.parse(s.allowed_logout_urls),session_transfer:JSON.parse(s.session_transfer),oidc_logout:JSON.parse(s.oidc_logout),grant_types:JSON.parse(s.grant_types),jwt_configuration:JSON.parse(s.jwt_configuration),signing_keys:JSON.parse(s.signing_keys),encryption_key:JSON.parse(s.encryption_key),addons:JSON.parse(s.addons),client_metadata:JSON.parse(s.client_metadata),mobile:JSON.parse(s.mobile),native_social_login:JSON.parse(s.native_social_login),refresh_token:JSON.parse(s.refresh_token),default_organization:JSON.parse(s.default_organization),client_authentication_methods:JSON.parse(s.client_authentication_methods),signed_request_object:JSON.parse(s.signed_request_object),token_quota:JSON.parse(s.token_quota)}))}}}function Dt(e){return async(t,a)=>(await e.deleteFrom("clients").where("clients.tenant_id","=",t).where("clients.client_id","=",a).executeTakeFirst()).numDeletedRows>0}function At(e){return async(t,a,n)=>{const o={...n,updated_at:new Date().toISOString()};return le(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"],o),q(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"],o),(await e.updateTable("clients").set(o).where("clients.tenant_id","=",t).where("clients.client_id","=",a).executeTakeFirst()).numUpdatedRows>0}}function jt(e){return{create:Et(e),get:It(e),getByClientId:zt(e),list:Pt(e),remove:Dt(e),update:At(e)}}function Ft(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,W(i)]));return o.map(i=>s.get(i)).filter(i=>i!==void 0)}}function Rt(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 Mt(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 Jt(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 qt(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 Lt(e){return{listByClient:Ft(e),updateByClient:Rt(e),listByConnection:Mt(e),addClientToConnection:Jt(e),removeClientFromConnection:qt(e)}}function Kt(e){return async(t,a)=>{const n=new Date().toISOString(),o=O.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(),w({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 Ut(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 w(o)}}function Bt(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 _=s.trim(),p=_.split(/\s+/),f=p.length===1?p[0]:void 0,g=f?f.match(/^(-)?([a-zA-Z_][a-zA-Z0-9_]*):"?([^"]*)"?$/):null,v=g?g[3]:"",b=/^(>=|>|<=|<)/.test(v||"");if(g&&!b&&v){const C=!!g[1],E=g[2],{ref:z}=e.dynamic,I=z(`client_grants.${E}`);if(E==="allow_any_organization"){const P=v==="true"?1:0;C?l=l.where(I,"!=",P):l=l.where(I,"=",P)}else C?l=l.where(I,"!=",v):l=l.where(I,"=",v)}else l=k(e,l,_,[])}let d=l;if(i){const{ref:_}=e.dynamic;d=d.orderBy(_(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(_=>{const p={id:_.id,client_id:_.client_id,audience:_.audience,scope:_.scope?JSON.parse(_.scope):[],organization_usage:_.organization_usage,allow_any_organization:_.allow_any_organization!==void 0?!!_.allow_any_organization:!1,is_system:_.is_system!==void 0?!!_.is_system:!1,subject_type:_.subject_type,authorization_details_types:_.authorization_details_types?JSON.parse(_.authorization_details_types):[],created_at:_.created_at,updated_at:_.updated_at};return w(p)});if(!r)return{client_grants:c,start:0,limit:0,length:0};const{count:m}=await l.select(_=>_.fn.countAll().as("count")).executeTakeFirstOrThrow();return{client_grants:c,start:n*o,limit:o,length:$(m)}}}function Qt(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 Ht(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 Yt(e){return{create:Kt(e),get:Ut(e),list:Bt(e),remove:Qt(e),update:Ht(e)}}function Wt(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(_=>_.or([_("revoked_at",">",new Date().toISOString()),_("revoked_at","is",null)]));s&&(i=k(e,i,s,["kid","connection","fingerprint","thumbprint","type"]));let l=i.select(_=>_.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 u=await i.selectAll().execute();if(!o)return{signingKeys:u,start:0,limit:0,length:0};const c=await l.executeTakeFirst(),m=$((c==null?void 0:c.count)??0);return{signingKeys:u,start:d,limit:n,length:m}}}function Gt(e){return async t=>{await e.insertInto("keys").values({...t,created_at:new Date().toDateString()}).execute()}}function Vt(e){return async(t,a)=>!!(await e.updateTable("keys").set(a).where("kid","=",t).execute()).length}function Xt(e){return{create:Gt(e),list:Wt(e),update:Vt(e)}}function Zt(e){return async(t,a)=>{const n={custom_domain_id:a.custom_domain_id||O.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 ea(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:D(n.domain_metadata,void 0)}))}function ta(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 aa(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:D(n.domain_metadata,void 0),verification:D(n.verification,void 0)}:null}}function na(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 oa(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:D(a.domain_metadata,void 0)}:null}}function ra(e){return{create:Zt(e),get:aa(e),getByDomain:oa(e),list:ea(e),remove:ta(e),update:na(e)}}function sa(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,...u}=a;return w({...u,colors:{primary:o,page_background:{type:r,start:s,end:i,angle_deg:l}},font:d?{url:d}:void 0})}}function ia(e){return async(t,a)=>{var s,i,l,d,u,c,m,_,p,f,g,v,b,C,E,z,I,P;const{colors:n,font:o,...r}=a;try{await e.insertInto("branding").values({...r,colors_primary:n==null?void 0:n.primary,colors_page_background_type:(i=(s=a.colors)==null?void 0:s.page_background)==null?void 0:i.type,colors_page_background_start:(d=(l=a.colors)==null?void 0:l.page_background)==null?void 0:d.start,colors_page_background_end:(c=(u=a.colors)==null?void 0:u.page_background)==null?void 0:c.end,colors_page_background_angle_dev:(_=(m=a.colors)==null?void 0:m.page_background)==null?void 0:_.angle_deg,font_url:(p=a.font)==null?void 0:p.url,tenant_id:t}).execute()}catch{await e.updateTable("branding").set({...r,colors_primary:n==null?void 0:n.primary,colors_page_background_type:(g=(f=a.colors)==null?void 0:f.page_background)==null?void 0:g.type,colors_page_background_start:(b=(v=a.colors)==null?void 0:v.page_background)==null?void 0:b.start,colors_page_background_end:(E=(C=a.colors)==null?void 0:C.page_background)==null?void 0:E.end,colors_page_background_angle_dev:(I=(z=a.colors)==null?void 0:z.page_background)==null?void 0:I.angle_deg,font_url:(P=a.font)==null?void 0:P.url}).where("tenant_id","=",t).execute()}}}function la(e){return{get:sa(e),set:ia(e)}}function ca(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 da(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 ua(e){return async t=>{await e.deleteFrom("universal_login_templates").where("tenant_id","=",t).execute()}}function _a(e){return{get:ca(e),set:da(e),delete:ua(e)}}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("hooks").where("hooks.tenant_id","=",t);s&&(i=k(e,i,s,["url","form_id","template_id"]));const u=(await i.offset(n*o).limit(o).selectAll().execute()).map(m=>{const{tenant_id:_,enabled:p,synchronous:f,created_at_ts:g,updated_at_ts:v,...b}=m,C=A({created_at_ts:g,updated_at_ts:v},["created_at_ts","updated_at_ts"]);return w({...b,...C,enabled:!!p,synchronous:!!f})});if(!r)return{hooks:u,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{hooks:u,start:n*o,limit:o,length:$(c)}}}function ha(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,...i}=n,l=A({created_at_ts:r,updated_at_ts:s},["created_at_ts","updated_at_ts"]);return w({...i,...l,enabled:!!i.enabled,synchronous:!!i.synchronous})}}function pa(e){return async(t,a)=>(await e.deleteFrom("hooks").where("hooks.tenant_id","=",t).where("hooks.hook_id","=",a).executeTakeFirst()).numDeletedRows>0}function fa(e){return async(t,a)=>{const n=Date.now(),o=a.hook_id||yt(),{hook_id:r,enabled:s,synchronous:i,...l}=a;return await e.insertInto("hooks").values({...l,hook_id:o,tenant_id:t,enabled:s?1:0,synchronous:i?1:0,created_at_ts:n,updated_at_ts:n}).execute(),{...l,hook_id:o,enabled:s??!1,synchronous:i??!1,created_at:new Date(n).toISOString(),updated_at:new Date(n).toISOString()}}}function ga(e){return async(t,a,n)=>{const{hook_id:o,...r}=n,s={...r,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};return await e.updateTable("hooks").set(s).where("hooks.hook_id","=",a).where("hooks.tenant_id","=",t).execute(),!0}}function wa(e){return{create:fa(e),get:ha(e),list:ma(e),update:ga(e),remove:pa(e)}}function va(e){return async(t,a,n)=>{const o={themeId:n||O.nanoid(),created_at:new Date().toISOString(),updated_at:new Date().toISOString(),...a},r={...o,tenant_id:t};return await e.insertInto("themes").values(M(r)).execute(),o}}function ya(e){return async(t,a)=>(await e.deleteFrom("themes").where("themes.tenant_id","=",t).where("themes.themeId","=",a).executeTakeFirst()).numDeletedRows>0}function Ca(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 w(se(o,["widget","colors","borders","fonts","page_background"]))}}function xa(e){return async(t,a,n)=>{const{themeId:o,...r}=n,s=M({...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 Ta(e){return{create:va(e),get:Ca(e),remove:ya(e),update:xa(e)}}function Na(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,...i}=n,l=A({created_at_ts:o,updated_at_ts:r,expires_at_ts:s},["created_at_ts","updated_at_ts","expires_at_ts"]);return S.loginSessionSchema.parse(se(w({...i,...l,state:n.state||S.LoginSessionState.PENDING,state_data:n.state_data,failure_reason:n.failure_reason}),["authParams"]))}}const G="0123456789ABCDEFGHJKMNPQRSTVWXYZ",H=G.length,Sa=10,ee=16;function ba(e){let t="";for(let a=Sa;a>0;a--)t=G.charAt(e%H)+t,e=Math.floor(e/H);return t}function Oa(){const e=new Uint8Array(ee);crypto.getRandomValues(e);let t="";for(let a=0;a<ee;a++)t+=G.charAt(e[a]%H);return t}function me(){return ba(Date.now())+Oa()}function ka(e){return async(t,a)=>{var i;const n=Y(),o={id:me(),...a,authorization_url:(i=a.authorization_url)==null?void 0:i.slice(0,1024),created_at:n,updated_at:n,state:a.state||S.LoginSessionState.PENDING,state_data:a.state_data,failure_reason:a.failure_reason},r=Date.now(),s=M(o);return delete s.created_at,delete s.updated_at,delete s.expires_at,await e.insertInto("login_sessions").values({...s,tenant_id:t,created_at_ts:r,updated_at_ts:r,expires_at_ts:r+1e3*60*60*24}).execute(),o}}function $a(e){return async(t,a,n)=>{const{created_at:o,updated_at:r,expires_at:s,...i}=n,l=M(i);return delete l.created_at_ts,delete l.updated_at_ts,delete l.expires_at_ts,delete l.id,delete l.tenant_id,(await e.updateTable("login_sessions").set({...l,updated_at_ts:Date.now(),...s!==void 0?{expires_at_ts:y(s)}:{}}).where("login_sessions.id","=",a).where("login_sessions.tenant_id","=",t).execute()).length===1}}function Ea(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 Ia(e){return{create:ka(e),get:Na(e),update:$a(e),remove:Ea(e)}}function za(e){return async t=>{const[a]=await e.selectFrom("prompt_settings").where("prompt_settings.tenant_id","=",t).selectAll().execute();return w({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 te(e){return w({...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 Pa(e){return async(t,a)=>{try{const n=S.promptSettingSchema.parse(a);await e.insertInto("prompt_settings").values({...te(n),tenant_id:t}).execute()}catch{await e.updateTable("prompt_settings").set(te(a)).where("tenant_id","=",t).execute()}}}function Da(e){return{get:za(e),set:Pa(e)}}function Aa(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 w({...i,credentials:JSON.parse(o),settings:JSON.parse(r),enabled:!!s})}}function ja(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 Fa(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 Ra(e){return async t=>{await e.deleteFrom("email_providers").where("tenant_id","=",t).execute()}}function Ma(e){return{get:Aa(e),create:Fa(e),update:ja(e),remove:Ra(e)}}function Ja(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,...d}=n,u=A({created_at_ts:r,expires_at_ts:s,idle_expires_at_ts:i,last_exchanged_at_ts:l},["created_at_ts"],["expires_at_ts","idle_expires_at_ts","last_exchanged_at_ts"]);return{...d,...u,rotating:!!n.rotating,device:n.device?JSON.parse(n.device):{},resource_servers:n.resource_servers?JSON.parse(n.resource_servers):[]}}}function qa(e){return async(t,a)=>{const n=Y(),o={...a,created_at:n},{expires_at:r,idle_expires_at:s,last_exchanged_at:i,device:l,resource_servers:d,rotating:u,...c}=a,m=Date.now();return await e.insertInto("refresh_tokens").values({...c,tenant_id:t,rotating:u?1:0,device:JSON.stringify(l),resource_servers:JSON.stringify(d),created_at_ts:m,expires_at_ts:y(r),idle_expires_at_ts:s?y(s):null,last_exchanged_at_ts:i?y(i):null}).execute(),{...a,...o}}}function La(e){return async(t,a)=>!!(await e.deleteFrom("refresh_tokens").where("tenant_id","=",t).where("refresh_tokens.id","=",a).execute()).length}function Ka(e){return async(t,a,n)=>{const{created_at:o,expires_at:r,idle_expires_at:s,last_exchanged_at:i,device:l,resource_servers:d,rotating:u,...c}=n,m={...c,device:l?JSON.stringify(l):void 0,resource_servers:d?JSON.stringify(d):void 0,rotating:u!==void 0?u?1:0:void 0,expires_at_ts:r!==void 0?y(r):void 0,idle_expires_at_ts:s!==void 0?y(s):void 0,last_exchanged_at_ts:i!==void 0?y(i):void 0};return!!(await e.updateTable("refresh_tokens").set(m).where("tenant_id","=",t).where("refresh_tokens.id","=",a).execute()).length}}function Ua(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=k(e,l,i,["token","login_id"]));let d=l;if(s&&s.sort_by){const{ref:p}=e.dynamic;d=d.orderBy(p(s.sort_by),s.sort_order)}d=d.offset(n*o).limit(o);const c=(await d.selectAll().execute()).map(p=>{const{tenant_id:f,created_at_ts:g,expires_at_ts:v,idle_expires_at_ts:b,last_exchanged_at_ts:C,...E}=p,z=A({created_at_ts:g,expires_at_ts:v,idle_expires_at_ts:b,last_exchanged_at_ts:C},["created_at_ts"],["expires_at_ts","idle_expires_at_ts","last_exchanged_at_ts"]);return{...E,...z,rotating:!!p.rotating,device:p.device?JSON.parse(p.device):{},resource_servers:p.resource_servers?JSON.parse(p.resource_servers):[]}});if(!r)return{refresh_tokens:c,start:0,limit:0,length:0};const{count:m}=await l.select(p=>p.fn.countAll().as("count")).executeTakeFirstOrThrow(),_=$(m);return{refresh_tokens:c,start:n*o,limit:o,length:_}}}function Ba(e){return{create:qa(e),get:Ja(e),list:Ua(e),remove:La(e),update:Ka(e)}}const Qa=7*24*60*60*1e3;function Ha(e){return async t=>{var i,l,d;const{tenant_id:a,user_id:n}=t||{},r=Date.now()-Qa,s=1e3;try{let u=0;for(;;){let _=e.deleteFrom("refresh_tokens").where(g=>g.or([g("expires_at_ts","<",r),g("idle_expires_at_ts","<",r)]));a&&(_=_.where("tenant_id","=",a)),n&&(_=_.where("user_id","=",n));const p=await _.limit(s).execute(),f=Number(((i=p[0])==null?void 0:i.numDeletedRows)??0);if(u+=f,f<s)break}let c=0;for(;;){let _=e.deleteFrom("sessions").where(g=>g.or([g("expires_at_ts","<",r),g("idle_expires_at_ts","<",r)]));a&&(_=_.where("tenant_id","=",a)),n&&(_=_.where("user_id","=",n));const p=await _.limit(s).execute(),f=Number(((l=p[0])==null?void 0:l.numDeletedRows)??0);if(c+=f,f<s)break}let m=0;for(;;){let _=e.deleteFrom("login_sessions").where("expires_at_ts","<",r);a&&(_=_.where("tenant_id","=",a)),n&&(_=_.where("user_id","=",n));const p=await _.limit(s).execute(),f=Number(((d=p[0])==null?void 0:d.numDeletedRows)??0);if(m+=f,f<s)break}(u>0||c>0||m>0)&&console.log(`Session cleanup: deleted ${u} refresh_tokens, ${c} sessions, ${m} login_sessions`)}catch(u){console.error("Error during session cleanup:",u)}}}function Ya(e){return async(t,a)=>{const n=S.formSchema.parse({id:O.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(),S.formSchema.parse(n)}}function Wa(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=k(e,i,s,[]));const u=(await i.offset(n*o).limit(o).selectAll().execute()).map(m=>{const _={...m};if(typeof _.nodes=="string")try{_.nodes=JSON.parse(_.nodes)}catch{}if(typeof _.start=="string")try{_.start=JSON.parse(_.start)}catch{}if(typeof _.ending=="string")try{_.ending=JSON.parse(_.ending)}catch{}return S.formSchema.parse(w(_))});if(!r)return{forms:u,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{forms:u,start:n*o,limit:o,length:$(c)}}}function Ga(e){return async(t,a)=>{const{numDeletedRows:n}=await e.deleteFrom("forms").where("id","=",a).where("tenant_id","=",t).executeTakeFirst();return n>0}}function Va(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 S.formSchema.parse(w(o))}}function Xa(e){return async(t,a,n)=>{const o={...n,updated_at:new Date().toISOString()};q(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 Za(e){return{create:Ya(e),get:Va(e),list:Wa(e),remove:Ga(e),update:Xa(e)}}function en(e){return async(t,a)=>{const n=new Date().toISOString(),o={id:Ct(),...a,created_at:n,updated_at:n},r=S.resourceServerSchema.parse(o),{verificationKey:s,scopes:i,options:l,skip_consent_for_verifiable_first_party_clients:d,allow_offline_access:u,is_system:c,metadata:m,..._}=r,p={..._,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:u?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(p).execute(),w(r)}}function tn(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:u,metadata:c,...m}=o,_={...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:u?!0:void 0,metadata:c?JSON.parse(c):void 0,verificationKey:r};return w(_)}}function an(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(),_=m.split(/\s+/),p=_.length===1?_[0]:void 0,f=p?p.match(/^(-)?(name|identifier):(.*)$/):null,g=f?f[3]:"",v=/^(>=|>|<=|<)/.test(g||"");if(f&&!v){const b=!!f[1],C=f[2]==="name"?"resource_servers.name":"resource_servers.identifier";i=b?i.where(C,"not like",`%${g}%`):i.where(C,"like",`%${g}%`)}else i=k(e,i,m,["resource_servers.name","resource_servers.identifier"])}const u=(await i.offset(n*o).limit(o).selectAll().execute()).map(m=>{const _=m,{verification_key:p,scopes:f,options:g,skip_consent_for_verifiable_first_party_clients:v,allow_offline_access:b,is_system:C,metadata:E,...z}=_,I={...z,scopes:f?JSON.parse(f):[],options:g?JSON.parse(g):{},skip_consent_for_verifiable_first_party_clients:!!v,allow_offline_access:!!b,is_system:C?!0:void 0,metadata:E?JSON.parse(E):void 0,verificationKey:p};return w(I)});if(!r)return{resource_servers:u,start:0,limit:0,length:0};const{count:c}=await i.select(m=>m.fn.countAll().as("count")).executeTakeFirstOrThrow();return{resource_servers:u,start:n*o,limit:o,length:$(c)}}}function nn(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 on(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:u,...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 p=await e.selectFrom("resource_servers").select("options").where("tenant_id","=",t).where("id","=",a).executeTakeFirst(),g={...p!=null&&p.options?JSON.parse(p.options):{},...s};m.options=JSON.stringify(g)}u!==void 0&&(m.metadata=JSON.stringify(u)),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 _=await e.updateTable("resource_servers").set(m).where("tenant_id","=",t).where("id","=",a).executeTakeFirst();return Number(_.numUpdatedRows)>0}}function rn(e){return{create:en(e),get:tn(e),list:an(e),remove:nn(e),update:on(e)}}function sn(e){return async(t,a)=>{const n=new Date().toISOString(),o=a.id||O.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 ln(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 cn(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=k(e,n,a.q,["name"]));const d=(await n.offset(o*r).limit(r).selectAll().execute()).map(c=>{const m=c,{is_system:_,tenant_id:p,metadata:f,...g}=m;return{...g,is_system:_?!0:void 0,metadata:f?JSON.parse(f):void 0}});if(!s)return{roles:d,start:o*r,limit:r,length:d.length};const{count:u}=await n.select(c=>c.fn.countAll().as("count")).executeTakeFirstOrThrow();return{roles:d,start:o*r,limit:r,length:$(u)}}}function dn(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 un(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 _n(e){return{create:sn(e),get:ln(e),list:cn(e),update:dn(e),remove:un(e)}}function mn(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")continue;throw i}}return!0}catch(r){return console.error("Error assigning role permissions:",r),!1}}}function hn(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 pn(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 u=(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(),u}}function fn(e){return{assign:mn(e),remove:hn(e),list:pn(e)}}function gn(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.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 wn(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 vn(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 yn(e){return{create:gn(e),remove:wn(e),list:vn(e)}}function Cn(e){const t=yn(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 xn(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 Tn(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.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 Nn(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 Sn(e){return{list:xn(e),create:Tn(e),remove:Nn(e)}}function bn(e){const t=Sn(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 On(e){return async(t,a)=>{const n={...a,id:a.id||wt(),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.message.includes("AlreadyExists")?new R(409,{message:"Organization already exists"}):o}return{...a,id:n.id,created_at:n.created_at,updated_at:n.updated_at}}}function kn(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?w({...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}}function $n(e){return async(t,a)=>{let n=e.selectFrom("organizations").selectAll().where("tenant_id","=",t);if(a!=null&&a.q&&(n=n.where(u=>u.or([u("name","like",`%${a.q}%`),u("display_name","like",`%${a.q}%`)]))),a!=null&&a.sort){const u=a.sort.sort_order==="asc"?"asc":"desc",c=a.sort.sort_by;["name","display_name","created_at"].includes(c)?n=n.orderBy(c,u):n=n.orderBy("created_at","desc")}else n=n.orderBy("created_at","desc");if((a==null?void 0:a.from)!==void 0){const u=parseInt(a.from,10);isNaN(u)||(n=n.offset(u))}else if((a==null?void 0:a.page)!==void 0){const u=(a==null?void 0:a.per_page)||(a==null?void 0:a.take)||10,c=a.page*u;n=n.offset(c)}const o=(a==null?void 0:a.take)||(a==null?void 0:a.per_page)||10;n=n.limit(o);const r=await n.execute();let s=r.length;if(a!=null&&a.include_totals){let u=e.selectFrom("organizations").select(h.sql`count(*)`.as("count")).where("tenant_id","=",t);a!=null&&a.q&&(u=u.where(m=>m.or([m("name","like",`%${a.q}%`),m("display_name","like",`%${a.q}%`)])));const c=await u.executeTakeFirst();s=Number((c==null?void 0:c.count)||0)}const i=r.map(u=>w({...u,branding:u.branding?JSON.parse(u.branding):{},metadata:u.metadata?JSON.parse(u.metadata):{},enabled_connections:u.enabled_connections?JSON.parse(u.enabled_connections):[],token_quota:u.token_quota?JSON.parse(u.token_quota):{}})),l=(a==null?void 0:a.take)||(a==null?void 0:a.per_page)||10,d=a!=null&&a.from?parseInt(a.from,10):a!=null&&a.page?a.page*l:0;return{organizations:i,start:isNaN(d)?0:d,limit:l,length:i.length,total:s}}}function En(e){return async(t,a)=>(await e.deleteFrom("organizations").where("tenant_id","=",t).where("id","=",a).execute()).length>0}function In(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 q(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 zn(e){return{create:On(e),get:kn(e),list:$n(e),remove:En(e),update:In(e)}}function Pn(e){return async(t,a)=>{const n={id:O.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 R(409,{message:"User is already a member of this organization"}):o}return{...n}}}function Dn(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 An(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 jn(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 Fn(e){return async(t,a)=>(await e.deleteFrom("user_organizations").where("id","=",a).where("tenant_id","=",t).execute()).length>0}function Rn(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 Mn(e){return{create:Pn(e),get:Dn(e),list:An(e),listUserOrganizations:jn(e),remove:Fn(e),update:Rn(e)}}function Jn(e){return async(t,a)=>{const n=xt(),o=new Date().toISOString(),r=a.ttl_sec||604800,s=new Date(Date.now()+r*1e3).toISOString(),i=q({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.message.includes("AlreadyExists")?new R(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 qn(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=ie(n,{inviter:{},invitee:{},app_metadata:{},user_metadata:{},roles:[]});return w({...o,send_invitation_email:n.send_invitation_email===1})}}function Ln(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=ie(s,{inviter:{},invitee:{},app_metadata:{},user_metadata:{},roles:[]});return w({...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 Kn(e){return async(t,a)=>(await e.deleteFrom("invites").where("tenant_id","=",t).where("id","=",a).executeTakeFirst()).numDeletedRows>0n}function Un(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 Bn(e){return{create:Jn(e),get:qn(e),list:Ln(e),remove:Kn(e),update:Un(e)}}const ae=["s","seacft","seccft","sepft","sertft","ssa"],Qn=["pwd_leak","signup_pwd_leak","reset_pwd_leak"];function ne(e){return`${e.slice(0,4)}-${e.slice(4,6)}-${e.slice(6,8)}`}function oe(e){return e.toISOString().split("T")[0]}function Hn(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?ne(n):oe(s),l=o?ne(o):oe(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",ae).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",Qn).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",ae).where("user_id","is not",null).select(o=>o.fn.count("user_id").distinct().as("count")).executeTakeFirstOrThrow()).count||0}}}function Yn(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 Wn(e){return async(t,a)=>{const n=Date.now(),o=me();return await e.insertInto("mfa_enrollments").values({id:o,tenant_id:t,user_id:a.user_id,type:a.type,phone_number:a.phone_number,totp_secret:a.totp_secret,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,confirmed:a.confirmed??!1,created_at:new Date(n).toISOString(),updated_at:new Date(n).toISOString()}}}function he(e){return async(t,a)=>{const n=await e.selectFrom("mfa_enrollments").where("mfa_enrollments.tenant_id","=",t).where("mfa_enrollments.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,confirmed:n.confirmed===1,created_at:J(n.created_at_ts),updated_at:J(n.updated_at_ts)}:null}}function Gn(e){return async(t,a)=>(await e.selectFrom("mfa_enrollments").where("mfa_enrollments.tenant_id","=",t).where("mfa_enrollments.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,confirmed:o.confirmed===1,created_at:J(o.created_at_ts),updated_at:J(o.updated_at_ts)}))}function Vn(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.confirmed!==void 0&&(r.confirmed=n.confirmed?1:0),await e.updateTable("mfa_enrollments").set(r).where("mfa_enrollments.tenant_id","=",t).where("mfa_enrollments.id","=",a).execute();const s=await he(e)(t,a);if(!s)throw new Error(`MFA enrollment ${a} not found`);return s}}function Xn(e){return async(t,a)=>(await e.deleteFrom("mfa_enrollments").where("mfa_enrollments.tenant_id","=",t).where("mfa_enrollments.id","=",a).executeTakeFirst()).numDeletedRows>0}function Zn(e){return{create:Wn(e),get:he(e),list:Gn(e),update:Vn(e),remove:Xn(e)}}class pe{constructor(t){K(this,"migrations");this.migrations=t}async getMigrations(){return this.migrations}}async function eo(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 to(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 ao=Object.freeze(Object.defineProperty({__proto__:null,down:to,up:eo},Symbol.toStringTag,{value:"Module"}));async function no(e){await e.schema.alterTable("tenants").addColumn("support_url","varchar(255)").execute()}async function oo(e){await e.schema.alterTable("tenants").dropColumn("support_url").execute()}const ro=Object.freeze(Object.defineProperty({__proto__:null,down:oo,up:no},Symbol.toStringTag,{value:"Module"}));async function so(e){}async function io(e){}const lo=Object.freeze(Object.defineProperty({__proto__:null,down:io,up:so},Symbol.toStringTag,{value:"Module"}));async function co(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 uo(e){await e.schema.dropTable("logs").execute()}const _o=Object.freeze(Object.defineProperty({__proto__:null,down:uo,up:co},Symbol.toStringTag,{value:"Module"}));async function mo(e){}async function ho(e){}const po=Object.freeze(Object.defineProperty({__proto__:null,down:ho,up:mo},Symbol.toStringTag,{value:"Module"}));async function fo(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 go(e){await e.schema.dropTable("sessions").execute(),await e.schema.dropTable("tickets").execute(),await e.schema.dropTable("otps").execute()}const wo=Object.freeze(Object.defineProperty({__proto__:null,down:go,up:fo},Symbol.toStringTag,{value:"Module"}));async function vo(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 yo(e){await e.schema.dropTable("passwords").execute(),await e.schema.dropTable("codes").execute()}const Co=Object.freeze(Object.defineProperty({__proto__:null,down:yo,up:vo},Symbol.toStringTag,{value:"Module"}));async function xo(e){}async function To(e){}const No=Object.freeze(Object.defineProperty({__proto__:null,down:To,up:xo},Symbol.toStringTag,{value:"Module"}));async function So(e){await e.schema.alterTable("passwords").addColumn("password","varchar(255)",t=>t.notNull()).execute()}async function bo(e){await e.schema.alterTable("passwords").dropColumn("password").execute()}const Oo=Object.freeze(Object.defineProperty({__proto__:null,down:bo,up:So},Symbol.toStringTag,{value:"Module"}));async function ko(e){}async function $o(e){}const Eo=Object.freeze(Object.defineProperty({__proto__:null,down:$o,up:ko},Symbol.toStringTag,{value:"Module"}));async function Io(e){}async function zo(e){}const Po=Object.freeze(Object.defineProperty({__proto__:null,down:zo,up:Io},Symbol.toStringTag,{value:"Module"}));async function Do(e){}async function Ao(e){}const jo=Object.freeze(Object.defineProperty({__proto__:null,down:Ao,up:Do},Symbol.toStringTag,{value:"Module"}));async function Fo(e){await e.schema.createIndex("users_email_index").on("users").column("email").execute()}async function Ro(e){await e.schema.dropIndex("users_email_index").execute()}const Mo=Object.freeze(Object.defineProperty({__proto__:null,down:Ro,up:Fo},Symbol.toStringTag,{value:"Module"}));async function Jo(e){await e.schema.alterTable("users").addColumn("profileData","varchar(2048)").execute()}async function qo(e){await e.schema.alterTable("users").dropColumn("profileData").execute()}const Lo=Object.freeze(Object.defineProperty({__proto__:null,down:qo,up:Jo},Symbol.toStringTag,{value:"Module"}));async function Ko(e){await e.schema.createIndex("users_linked_to_index").on("users").column("linked_to").execute()}async function Uo(e){await e.schema.dropIndex("users_linked_to_index")}const Bo=Object.freeze(Object.defineProperty({__proto__:null,down:Uo,up:Ko},Symbol.toStringTag,{value:"Module"}));async function Qo(e){await e.schema.alterTable("users").addColumn("locale","varchar(255)").execute()}async function Ho(e){await e.schema.alterTable("users").dropColumn("locale").execute()}const Yo=Object.freeze(Object.defineProperty({__proto__:null,down:Ho,up:Qo},Symbol.toStringTag,{value:"Module"}));async function Wo(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 Go(e){await e.schema.dropTable("keys").execute()}const Vo=Object.freeze(Object.defineProperty({__proto__:null,down:Go,up:Wo},Symbol.toStringTag,{value:"Module"}));async function Xo(e){}async function Zo(e){}const er=Object.freeze(Object.defineProperty({__proto__:null,down:Zo,up:Xo},Symbol.toStringTag,{value:"Module"}));async function tr(e){}async function ar(e){}const nr=Object.freeze(Object.defineProperty({__proto__:null,down:ar,up:tr},Symbol.toStringTag,{value:"Module"}));async function or(e){await e.schema.alterTable("otps").addColumn("audience","varchar(255)").execute()}async function rr(e){await e.schema.alterTable("otps").dropColumn("audience").execute()}const sr=Object.freeze(Object.defineProperty({__proto__:null,down:rr,up:or},Symbol.toStringTag,{value:"Module"}));async function ir(e){}async function lr(e){}const cr=Object.freeze(Object.defineProperty({__proto__:null,down:lr,up:ir},Symbol.toStringTag,{value:"Module"}));async function dr(e){await e.schema.alterTable("logs").dropColumn("category").execute()}async function ur(e){await e.schema.alterTable("logs").addColumn("category","varchar(255)",t=>t.notNull()).execute()}const _r=Object.freeze(Object.defineProperty({__proto__:null,down:ur,up:dr},Symbol.toStringTag,{value:"Module"}));async function mr(e){await e.schema.alterTable("users").dropColumn("tags").execute()}async function hr(e){await e.schema.alterTable("users").addColumn("tags","varchar(255)").execute()}const pr=Object.freeze(Object.defineProperty({__proto__:null,down:hr,up:mr},Symbol.toStringTag,{value:"Module"}));async function fr(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 gr(e){await e.schema.dropIndex("logs_user_id"),await e.schema.dropIndex("logs_tenant_id"),await e.schema.dropIndex("logs_date")}const wr=Object.freeze(Object.defineProperty({__proto__:null,down:gr,up:fr},Symbol.toStringTag,{value:"Module"}));async function vr(e){await e.schema.alterTable("logs").dropColumn("details").execute(),await e.schema.alterTable("logs").addColumn("details","varchar(8192)").execute()}async function yr(e){await e.schema.alterTable("logs").dropColumn("details").execute(),await e.schema.alterTable("logs").addColumn("details","varchar(2048)").execute()}const Cr=Object.freeze(Object.defineProperty({__proto__:null,down:yr,up:vr},Symbol.toStringTag,{value:"Module"}));async function xr(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 Tr(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 Nr=Object.freeze(Object.defineProperty({__proto__:null,down:Tr,up:xr},Symbol.toStringTag,{value:"Module"}));async function Sr(e){await e.schema.createIndex("users_name_index").on("users").column("name").execute()}async function br(e){await e.schema.dropIndex("users_name_index").execute()}const Or=Object.freeze(Object.defineProperty({__proto__:null,down:br,up:Sr},Symbol.toStringTag,{value:"Module"}));async function kr(e){}async function $r(e){await e.schema.alterTable("users").dropConstraint("unique_email_provider").execute()}const Er=Object.freeze(Object.defineProperty({__proto__:null,down:$r,up:kr},Symbol.toStringTag,{value:"Module"}));async function Ir(e){await e.schema.alterTable("otps").dropColumn("state").execute(),await e.schema.alterTable("otps").addColumn("state","varchar(8192)").execute()}async function zr(e){await e.schema.alterTable("otps").dropColumn("state").execute(),await e.schema.alterTable("otps").addColumn("state","varchar(1024)").execute()}const Pr=Object.freeze(Object.defineProperty({__proto__:null,down:zr,up:Ir},Symbol.toStringTag,{value:"Module"}));async function Dr(e){await e.schema.alterTable("tickets").dropColumn("state").execute(),await e.schema.alterTable("tickets").addColumn("state","varchar(8192)").execute()}async function Ar(e){await e.schema.alterTable("tickets").dropColumn("state").execute(),await e.schema.alterTable("tickets").addColumn("state","varchar(1024)").execute()}const jr=Object.freeze(Object.defineProperty({__proto__:null,down:Ar,up:Dr},Symbol.toStringTag,{value:"Module"}));async function Fr(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 Rr(e){await e.schema.dropTable("branding").execute()}const Mr=Object.freeze(Object.defineProperty({__proto__:null,down:Rr,up:Fr},Symbol.toStringTag,{value:"Module"}));async function Jr(e){}async function qr(e){}const Lr=Object.freeze(Object.defineProperty({__proto__:null,down:qr,up:Jr},Symbol.toStringTag,{value:"Module"}));async function Kr(e){}async function Ur(e){}const Br=Object.freeze(Object.defineProperty({__proto__:null,down:Ur,up:Kr},Symbol.toStringTag,{value:"Module"}));async function Qr(e){}async function Hr(e){}const Yr=Object.freeze(Object.defineProperty({__proto__:null,down:Hr,up:Qr},Symbol.toStringTag,{value:"Module"}));async function Wr(e){}async function Gr(e){}const Vr=Object.freeze(Object.defineProperty({__proto__:null,down:Gr,up:Wr},Symbol.toStringTag,{value:"Module"}));async function Xr(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 Zr(e){await e.schema.dropTable("authentication_codes").execute()}const es=Object.freeze(Object.defineProperty({__proto__:null,down:Zr,up:Xr},Symbol.toStringTag,{value:"Module"}));async function ts(e){}async function as(e){}const ns=Object.freeze(Object.defineProperty({__proto__:null,down:as,up:ts},Symbol.toStringTag,{value:"Module"}));async function os(e){await e.schema.alterTable("otps").addColumn("ip","varchar(64)").execute()}async function rs(e){await e.schema.alterTable("otps").dropColumn("ip").execute()}const ss=Object.freeze(Object.defineProperty({__proto__:null,down:rs,up:os},Symbol.toStringTag,{value:"Module"}));async function is(e){await e.schema.alterTable("logs").dropColumn("user_agent").execute(),await e.schema.alterTable("logs").addColumn("user_agent","varchar(1024)").execute()}async function ls(e){await e.schema.alterTable("logs").dropColumn("user_agent").execute(),await e.schema.alterTable("logs").addColumn("user_agent","varchar(255)").execute()}const cs=Object.freeze(Object.defineProperty({__proto__:null,down:ls,up:is},Symbol.toStringTag,{value:"Module"}));async function ds(e){}async function us(e){}const _s=Object.freeze(Object.defineProperty({__proto__:null,down:us,up:ds},Symbol.toStringTag,{value:"Module"}));async function ms(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 hs(e){await e.schema.dropTable("hooks").execute()}const ps=Object.freeze(Object.defineProperty({__proto__:null,down:hs,up:ms},Symbol.toStringTag,{value:"Module"}));async function fs(e){}async function gs(e){}const ws=Object.freeze(Object.defineProperty({__proto__:null,down:gs,up:fs},Symbol.toStringTag,{value:"Module"}));async function vs(e){}async function ys(e){}const Cs=Object.freeze(Object.defineProperty({__proto__:null,down:ys,up:vs},Symbol.toStringTag,{value:"Module"}));async function xs(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 Ts(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 Ns=Object.freeze(Object.defineProperty({__proto__:null,down:Ts,up:xs},Symbol.toStringTag,{value:"Module"}));async function Ss(e){}async function bs(e){}const Os=Object.freeze(Object.defineProperty({__proto__:null,down:bs,up:Ss},Symbol.toStringTag,{value:"Module"}));async function ks(e){await e.schema.alterTable("logins").addColumn("auth0Client","varchar(256)").execute()}async function $s(e){await e.schema.alterTable("logins").dropColumn("auth0Client").execute()}const Es=Object.freeze(Object.defineProperty({__proto__:null,down:$s,up:ks},Symbol.toStringTag,{value:"Module"}));async function Is(e){await e.schema.alterTable("logins").dropColumn("authParams_state").execute(),await e.schema.alterTable("logins").addColumn("authParams_state","varchar(8192)").execute()}async function zs(e){await e.schema.alterTable("logins").dropColumn("authParams_state").execute(),await e.schema.alterTable("logins").addColumn("authParams_state","varchar(511)").execute()}const Ps=Object.freeze(Object.defineProperty({__proto__:null,down:zs,up:Is},Symbol.toStringTag,{value:"Module"}));async function Ds(e){}async function As(e){}const js=Object.freeze(Object.defineProperty({__proto__:null,down:As,up:Ds},Symbol.toStringTag,{value:"Module"}));async function Fs(e){}async function Rs(e){}const Ms=Object.freeze(Object.defineProperty({__proto__:null,down:Rs,up:Fs},Symbol.toStringTag,{value:"Module"}));async function Js(e){await e.schema.alterTable("logins").addColumn("authParams_nonce","varchar(255)").execute()}async function qs(e){await e.schema.alterTable("logins").dropColumn("nonce").execute()}const Ls=Object.freeze(Object.defineProperty({__proto__:null,down:qs,up:Js},Symbol.toStringTag,{value:"Module"}));async function Ks(e){}async function Us(e){}const Bs=Object.freeze(Object.defineProperty({__proto__:null,down:Us,up:Ks},Symbol.toStringTag,{value:"Module"}));async function Qs(e){}async function Hs(e){}const Ys=Object.freeze(Object.defineProperty({__proto__:null,down:Hs,up:Qs},Symbol.toStringTag,{value:"Module"}));async function Ws(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 Gs(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 Vs=Object.freeze(Object.defineProperty({__proto__:null,down:Gs,up:Ws},Symbol.toStringTag,{value:"Module"}));async function Xs(e){await e.schema.dropTable("otps").execute(),await e.schema.dropTable("authentication_codes").execute()}async function Zs(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 ei=Object.freeze(Object.defineProperty({__proto__:null,down:Zs,up:Xs},Symbol.toStringTag,{value:"Module"}));async function ti(e){await e.schema.createIndex("IDX_logs_tenant_date_type_user").on("logs").columns(["tenant_id","date","type","user_id"]).execute()}async function ai(e){await e.schema.dropIndex("IDX_logs_tenant_date_type_user").on("logs").execute()}const ni=Object.freeze(Object.defineProperty({__proto__:null,down:ai,up:ti},Symbol.toStringTag,{value:"Module"}));async function oi(e){}async function ri(e){}const si=Object.freeze(Object.defineProperty({__proto__:null,down:ri,up:oi},Symbol.toStringTag,{value:"Module"}));async function ii(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 li(e){await e.schema.dropTable("prompt_settings").execute()}const ci=Object.freeze(Object.defineProperty({__proto__:null,down:li,up:ii},Symbol.toStringTag,{value:"Module"}));async function di(e){}async function ui(e){}const _i=Object.freeze(Object.defineProperty({__proto__:null,down:ui,up:di},Symbol.toStringTag,{value:"Module"}));async function mi(e){}async function hi(e){}const pi=Object.freeze(Object.defineProperty({__proto__:null,down:hi,up:mi},Symbol.toStringTag,{value:"Module"}));async function fi(e){}async function gi(e){}const wi=Object.freeze(Object.defineProperty({__proto__:null,down:gi,up:fi},Symbol.toStringTag,{value:"Module"}));async function vi(e){await e.schema.alterTable("logins").addColumn("authParams_ui_locales","varchar(32)").execute()}async function yi(e){await e.schema.alterTable("logins").dropColumn("authParams_ui_locales").execute()}const Ci=Object.freeze(Object.defineProperty({__proto__:null,down:yi,up:vi},Symbol.toStringTag,{value:"Module"}));async function xi(e){await e.schema.alterTable("logins").addColumn("authParams_prompt","varchar(16)").execute()}async function Ti(e){await e.schema.alterTable("logins").dropColumn("authParams_prompt").execute()}const Ni=Object.freeze(Object.defineProperty({__proto__:null,down:Ti,up:xi},Symbol.toStringTag,{value:"Module"}));async function Si(e){}async function bi(e){}const Oi=Object.freeze(Object.defineProperty({__proto__:null,down:bi,up:Si},Symbol.toStringTag,{value:"Module"}));async function ki(e){await e.schema.alterTable("logins").addColumn("authParams_act_as","varchar(255)").execute()}async function $i(e){await e.schema.alterTable("logins").dropColumn("authParam_act_as").execute()}const Ei=Object.freeze(Object.defineProperty({__proto__:null,down:$i,up:ki},Symbol.toStringTag,{value:"Module"}));async function Ii(e){await e.schema.alterTable("codes").addColumn("code_verifier","varchar(128)").execute()}async function zi(e){await e.schema.alterTable("codes").dropColumn("code_verifier").execute()}const Pi=Object.freeze(Object.defineProperty({__proto__:null,down:zi,up:Ii},Symbol.toStringTag,{value:"Module"}));async function Di(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 Ai(e){await e.schema.dropTable("email_providers").execute()}const ji=Object.freeze(Object.defineProperty({__proto__:null,down:Ai,up:Di},Symbol.toStringTag,{value:"Module"}));async function Fi(e){await e.schema.dropTable("tickets").execute()}async function Ri(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 Mi=Object.freeze(Object.defineProperty({__proto__:null,down:Ri,up:Fi},Symbol.toStringTag,{value:"Module"}));async function Ji(e){}async function qi(e){await e.schema.alterTable("logins").dropColumn("ip").dropColumn("useragent").execute()}const Li=Object.freeze(Object.defineProperty({__proto__:null,down:qi,up:Ji},Symbol.toStringTag,{value:"Module"}));async function Ki(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 Ui(e){await e.schema.dropTable("refresh_tokens").execute()}const Bi=Object.freeze(Object.defineProperty({__proto__:null,down:Ui,up:Ki},Symbol.toStringTag,{value:"Module"}));async function Qi(e){}async function Hi(e){}const Yi=Object.freeze(Object.defineProperty({__proto__:null,down:Hi,up:Qi},Symbol.toStringTag,{value:"Module"}));async function Wi(e){await e.schema.dropTable("sessions").execute(),await e.schema.dropTable("refresh_tokens").execute()}async function Gi(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 Vi=Object.freeze(Object.defineProperty({__proto__:null,down:Gi,up:Wi},Symbol.toStringTag,{value:"Module"}));async function Xi(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 Zi(e){await e.schema.dropTable("sessions_2").execute(),await e.schema.dropTable("refresh_tokens_2").execute()}const el=Object.freeze(Object.defineProperty({__proto__:null,down:Zi,up:Xi},Symbol.toStringTag,{value:"Module"}));async function tl(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 al(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 nl=Object.freeze(Object.defineProperty({__proto__:null,down:al,up:tl},Symbol.toStringTag,{value:"Module"}));async function ol(e){}async function rl(e){await e.schema.alterTable("logins").dropColumn("authParams_organization").dropColumn("authorization_url").execute()}const sl=Object.freeze(Object.defineProperty({__proto__:null,down:rl,up:ol},Symbol.toStringTag,{value:"Module"}));async function il(e){await e.schema.alterTable("logins").dropColumn("authorization_url").execute(),await e.schema.alterTable("logins").addColumn("authorization_url","varchar(2048)").execute()}async function ll(e){await e.schema.alterTable("logins").dropColumn("authorization_url").execute(),await e.schema.alterTable("logins").addColumn("authorization_url","varchar(1024)").execute()}const cl=Object.freeze(Object.defineProperty({__proto__:null,down:ll,up:il},Symbol.toStringTag,{value:"Module"}));async function dl(e){}async function ul(e){}const _l=Object.freeze(Object.defineProperty({__proto__:null,down:ul,up:dl},Symbol.toStringTag,{value:"Module"}));async function ml(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 hl(e){await e.schema.dropTable("sessions").execute(),await e.schema.dropTable("login_sessions").execute(),await e.schema.dropTable("refresh_tokens").execute()}const pl=Object.freeze(Object.defineProperty({__proto__:null,down:hl,up:ml},Symbol.toStringTag,{value:"Module"}));async function fl(e){await e.schema.dropTable("logins").execute(),await e.schema.dropTable("sessions_2").execute(),await e.schema.dropTable("refresh_tokens_2").execute()}async function gl(e){}const wl=Object.freeze(Object.defineProperty({__proto__:null,down:gl,up:fl},Symbol.toStringTag,{value:"Module"}));async function vl(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 yl(e){}const Cl=Object.freeze(Object.defineProperty({__proto__:null,down:yl,up:vl},Symbol.toStringTag,{value:"Module"}));async function xl(e){}async function Tl(e){await e.schema.alterTable("users").dropColumn("phone_number").dropColumn("phone_verified").dropColumn("username").execute()}const Nl=Object.freeze(Object.defineProperty({__proto__:null,down:Tl,up:xl},Symbol.toStringTag,{value:"Module"}));async function Sl(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 bl(e){await e.schema.dropTable("forms").execute()}const Ol=Object.freeze(Object.defineProperty({__proto__:null,down:bl,up:Sl},Symbol.toStringTag,{value:"Module"}));async function kl(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 $l(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 El=Object.freeze(Object.defineProperty({__proto__:null,down:$l,up:kl},Symbol.toStringTag,{value:"Module"}));async function Il(e){await e.schema.alterTable("login_sessions").addColumn("login_completed","boolean",t=>t.notNull().defaultTo(0)).execute()}async function zl(e){await e.schema.alterTable("login_sessions").dropColumn("login_completed").execute()}const Pl=Object.freeze(Object.defineProperty({__proto__:null,down:zl,up:Il},Symbol.toStringTag,{value:"Module"}));async function Dl(e){await e.schema.alterTable("sessions").addColumn("login_session_id","varchar(21)",t=>t.references("login_sessions.id").onDelete("set null")).execute()}async function Al(e){await e.schema.alterTable("sessions").dropColumn("login_session_id").execute()}const jl=Object.freeze(Object.defineProperty({__proto__:null,down:Al,up:Dl},Symbol.toStringTag,{value:"Module"}));async function Fl(e){await e.schema.createIndex("IDX_sessions_login_session_id").on("sessions").column("login_session_id").execute()}async function Rl(e){await e.schema.dropIndex("IDX_sessions_login_session_id").on("sessions").execute()}const Ml=Object.freeze(Object.defineProperty({__proto__:null,down:Rl,up:Fl},Symbol.toStringTag,{value:"Module"}));async function Jl(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 ql(e){await e.schema.alterTable("codes").dropColumn("code_challenge").execute(),await e.schema.alterTable("codes").dropColumn("code_challenge_method").execute()}const Ll=Object.freeze(Object.defineProperty({__proto__:null,down:ql,up:Jl},Symbol.toStringTag,{value:"Module"}));async function Kl(e){await e.schema.alterTable("codes").addColumn("redirect_uri","varchar(1024)").execute()}async function Ul(e){await e.schema.alterTable("codes").dropColumn("redirect_uri").execute()}const Bl=Object.freeze(Object.defineProperty({__proto__:null,down:Ul,up:Kl},Symbol.toStringTag,{value:"Module"}));async function Ql(e){await e.schema.alterTable("codes").addColumn("nonce","varchar(1024)").execute(),await e.schema.alterTable("codes").addColumn("state","varchar(2048)").execute()}async function Hl(e){await e.schema.alterTable("codes").dropColumn("nonce").execute(),await e.schema.alterTable("codes").dropColumn("state").execute()}const Yl=Object.freeze(Object.defineProperty({__proto__:null,down:Hl,up:Ql},Symbol.toStringTag,{value:"Module"}));async function Wl(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 Gl(e){await e.schema.dropTable("themes").execute()}const Vl=Object.freeze(Object.defineProperty({__proto__:null,down:Gl,up:Wl},Symbol.toStringTag,{value:"Module"}));async function Xl(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 Zl(e){await e.schema.dropTable("roles").execute(),await e.schema.dropTable("resource_servers").execute()}const ec=Object.freeze(Object.defineProperty({__proto__:null,down:Zl,up:Xl},Symbol.toStringTag,{value:"Module"}));async function tc(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 ac(e){await e.schema.dropTable("user_permissions").execute(),await e.schema.dropTable("role_permissions").execute()}const nc=Object.freeze(Object.defineProperty({__proto__:null,down:ac,up:tc},Symbol.toStringTag,{value:"Module"}));async function oc(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 rc(e){await e.schema.dropTable("user_roles").execute()}const sc=Object.freeze(Object.defineProperty({__proto__:null,down:rc,up:oc},Symbol.toStringTag,{value:"Module"}));async function ic(e){}async function lc(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 cc=Object.freeze(Object.defineProperty({__proto__:null,down:lc,up:ic},Symbol.toStringTag,{value:"Module"}));async function dc(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 uc(e){await e.schema.dropTable("organizations").execute()}const _c=Object.freeze(Object.defineProperty({__proto__:null,down:uc,up:dc},Symbol.toStringTag,{value:"Module"}));async function mc(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 hc(e){await e.schema.dropTable("user_organizations").execute()}const pc=Object.freeze(Object.defineProperty({__proto__:null,down:hc,up:mc},Symbol.toStringTag,{value:"Module"}));async function fc(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 gc(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 wc=Object.freeze(Object.defineProperty({__proto__:null,down:gc,up:fc},Symbol.toStringTag,{value:"Module"}));async function vc(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 yc(e){await e.schema.dropTable("clients").execute()}const Cc=Object.freeze(Object.defineProperty({__proto__:null,down:yc,up:vc},Symbol.toStringTag,{value:"Module"}));async function fe(e){try{return await h.sql`SELECT VERSION()`.execute(e),"mysql"}catch{return"sqlite"}}async function xc(e){await fe(e)==="mysql"?await Tc(e):await Nc(e)}async function Tc(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
|
|
5
5
|
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc
|
|
6
6
|
WHERE rc.CONSTRAINT_SCHEMA = DATABASE()
|
|
7
7
|
AND rc.TABLE_NAME IN ('refresh_tokens', 'sessions', 'login_sessions')
|
|
8
|
-
`.execute(
|
|
8
|
+
`.execute(t);for(const o of a.rows){const r=o.CONSTRAINT_NAME,s=o.TABLE_NAME;try{await h.sql`ALTER TABLE ${h.sql.raw(s)} DROP FOREIGN KEY ${h.sql.raw(r)}`.execute(t),console.log(`Dropped foreign key constraint ${r} from ${s}`)}catch(i){console.warn(`Failed to drop constraint ${r} from ${s}:`,i)}}const n=["sessions_backup","login_sessions_backup","refresh_tokens_backup"];for(const o of n)try{await h.sql`DROP TABLE IF EXISTS ${h.sql.raw(o)}`.execute(t)}catch(r){console.warn(`Failed to drop backup table ${o}:`,r)}await h.sql`CREATE TABLE sessions_backup AS SELECT * FROM sessions`.execute(t),await h.sql`CREATE TABLE login_sessions_backup AS SELECT * FROM login_sessions`.execute(t),await h.sql`CREATE TABLE refresh_tokens_backup AS SELECT * FROM refresh_tokens`.execute(t),await h.sql`DROP TABLE sessions`.execute(t),await h.sql`DROP TABLE login_sessions`.execute(t),await h.sql`DROP TABLE refresh_tokens`.execute(t),await t.schema.createTable("refresh_tokens").addColumn("id","varchar(21)",o=>o.notNull()).addColumn("tenant_id","varchar(255)",o=>o.notNull()).addColumn("client_id","varchar(191)",o=>o.notNull()).addColumn("session_id","varchar(21)",o=>o.notNull()).addColumn("user_id","varchar(255)").addColumn("resource_servers","text",o=>o.notNull()).addColumn("device","text",o=>o.notNull()).addColumn("rotating","boolean",o=>o.notNull()).addColumn("created_at","varchar(35)",o=>o.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("last_exchanged_at","varchar(35)").addPrimaryKeyConstraint("refresh_tokens_pk",["tenant_id","id"]).execute(),await h.sql`ALTER TABLE refresh_tokens
|
|
9
9
|
ADD CONSTRAINT refresh_tokens_tenant_fk
|
|
10
|
-
FOREIGN KEY (tenant_id) REFERENCES tenants(id) ON DELETE CASCADE`.execute(
|
|
10
|
+
FOREIGN KEY (tenant_id) REFERENCES tenants(id) ON DELETE CASCADE`.execute(t),await h.sql`ALTER TABLE refresh_tokens
|
|
11
11
|
ADD CONSTRAINT refresh_tokens_client_fk
|
|
12
|
-
FOREIGN KEY (tenant_id, client_id) REFERENCES clients(tenant_id, client_id) ON DELETE CASCADE`.execute(
|
|
12
|
+
FOREIGN KEY (tenant_id, client_id) REFERENCES clients(tenant_id, client_id) ON DELETE CASCADE`.execute(t),await t.schema.createTable("sessions").addColumn("id","varchar(21)",o=>o.notNull()).addColumn("tenant_id","varchar(191)",o=>o.notNull()).addColumn("user_id","varchar(255)").addColumn("created_at","varchar(35)",o=>o.notNull()).addColumn("updated_at","varchar(35)",o=>o.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","text",o=>o.notNull()).addColumn("clients","text",o=>o.notNull()).addColumn("login_session_id","varchar(21)").addPrimaryKeyConstraint("sessions_pk",["tenant_id","id"]).execute(),await h.sql`ALTER TABLE sessions
|
|
13
13
|
ADD CONSTRAINT sessions_user_fk
|
|
14
|
-
FOREIGN KEY (user_id, tenant_id) REFERENCES users(user_id, tenant_id) ON DELETE CASCADE`.execute(
|
|
14
|
+
FOREIGN KEY (user_id, tenant_id) REFERENCES users(user_id, tenant_id) ON DELETE CASCADE`.execute(t),await t.schema.createTable("login_sessions").addColumn("id","varchar(21)",o=>o.notNull()).addColumn("tenant_id","varchar(255)",o=>o.notNull()).addColumn("session_id","varchar(21)").addColumn("csrf_token","varchar(21)",o=>o.notNull()).addColumn("authParams_client_id","varchar(191)",o=>o.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","text").addColumn("authParams_state","text").addColumn("authParams_nonce","varchar(255)").addColumn("authParams_code_challenge_method","varchar(255)").addColumn("authParams_code_challenge","varchar(255)").addColumn("authParams_redirect_uri","text").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","text").addColumn("created_at","varchar(35)",o=>o.notNull()).addColumn("updated_at","varchar(35)",o=>o.notNull()).addColumn("expires_at","varchar(35)",o=>o.notNull()).addColumn("ip","varchar(39)").addColumn("useragent","text").addColumn("auth0Client","varchar(255)").addColumn("login_completed","integer",o=>o.defaultTo(0)).addPrimaryKeyConstraint("login_sessions_pk",["tenant_id","id"]).execute(),await h.sql`ALTER TABLE login_sessions
|
|
15
15
|
ADD CONSTRAINT login_sessions_tenant_fk
|
|
16
|
-
FOREIGN KEY (tenant_id) REFERENCES tenants(id) ON DELETE CASCADE`.execute(
|
|
16
|
+
FOREIGN KEY (tenant_id) REFERENCES tenants(id) ON DELETE CASCADE`.execute(t),await h.sql`ALTER TABLE login_sessions
|
|
17
17
|
ADD CONSTRAINT login_sessions_client_fk
|
|
18
|
-
FOREIGN KEY (tenant_id, authParams_client_id) REFERENCES clients(tenant_id, client_id) ON DELETE CASCADE`.execute(
|
|
18
|
+
FOREIGN KEY (tenant_id, authParams_client_id) REFERENCES clients(tenant_id, client_id) ON DELETE CASCADE`.execute(t),await h.sql`ALTER TABLE login_sessions
|
|
19
19
|
ADD CONSTRAINT login_sessions_session_fk
|
|
20
|
-
FOREIGN KEY (tenant_id, session_id) REFERENCES sessions(tenant_id, id) ON DELETE CASCADE`.execute(
|
|
20
|
+
FOREIGN KEY (tenant_id, session_id) REFERENCES sessions(tenant_id, id) ON DELETE CASCADE`.execute(t),await h.sql`INSERT INTO refresh_tokens
|
|
21
21
|
SELECT id, tenant_id, client_id, session_id, user_id, resource_servers, device, rotating,
|
|
22
22
|
created_at, expires_at, idle_expires_at, last_exchanged_at
|
|
23
|
-
FROM refresh_tokens_backup`.execute(
|
|
23
|
+
FROM refresh_tokens_backup`.execute(t),await h.sql`INSERT INTO sessions
|
|
24
24
|
SELECT id, tenant_id, user_id, created_at, updated_at, expires_at, idle_expires_at,
|
|
25
25
|
authenticated_at, last_interaction_at, used_at, revoked_at, device, clients, login_session_id
|
|
26
|
-
FROM sessions_backup`.execute(
|
|
26
|
+
FROM sessions_backup`.execute(t),await h.sql`INSERT INTO login_sessions
|
|
27
27
|
SELECT id, tenant_id, session_id, csrf_token, authParams_client_id, authParams_vendor_id, authParams_username,
|
|
28
28
|
authParams_response_type, authParams_response_mode, authParams_audience, authParams_scope, authParams_state,
|
|
29
29
|
authParams_nonce, authParams_code_challenge_method, authParams_code_challenge, authParams_redirect_uri,
|
|
30
30
|
authParams_organization, authParams_prompt, authParams_act_as, authParams_ui_locales, authorization_url,
|
|
31
31
|
created_at, updated_at, expires_at, ip, useragent, auth0Client, login_completed
|
|
32
|
-
FROM login_sessions_backup`.execute(
|
|
32
|
+
FROM login_sessions_backup`.execute(t),await h.sql`DROP TABLE sessions_backup`.execute(t),await h.sql`DROP TABLE login_sessions_backup`.execute(t),await h.sql`DROP TABLE refresh_tokens_backup`.execute(t)})}async function Nc(e){await e.transaction().execute(async t=>{const a=["sessions_backup","login_sessions_backup","refresh_tokens_backup"];for(const n of a)try{await h.sql`DROP TABLE IF EXISTS ${h.sql.raw(n)}`.execute(t)}catch(o){console.warn(`Failed to drop backup table ${n}:`,o)}await h.sql`CREATE TABLE sessions_backup AS SELECT * FROM sessions`.execute(t),await h.sql`CREATE TABLE login_sessions_backup AS SELECT * FROM login_sessions`.execute(t),await h.sql`CREATE TABLE refresh_tokens_backup AS SELECT * FROM refresh_tokens`.execute(t),await h.sql`DROP TABLE sessions`.execute(t),await h.sql`DROP TABLE login_sessions`.execute(t),await h.sql`DROP TABLE refresh_tokens`.execute(t),await t.schema.createTable("refresh_tokens").addColumn("id","varchar(21)",n=>n.notNull()).addColumn("tenant_id","varchar(255)",n=>n.references("tenants.id").onDelete("cascade").notNull()).addColumn("client_id","varchar(191)",n=>n.notNull()).addColumn("session_id","varchar(21)",n=>n.notNull()).addColumn("user_id","varchar(255)").addColumn("resource_servers","text",n=>n.notNull()).addColumn("device","text",n=>n.notNull()).addColumn("rotating","boolean",n=>n.notNull()).addColumn("created_at","varchar(35)",n=>n.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("last_exchanged_at","varchar(35)").addPrimaryKeyConstraint("refresh_tokens_pk",["tenant_id","id"]).addForeignKeyConstraint("refresh_tokens_client_fk",["tenant_id","client_id"],"clients",["tenant_id","client_id"],n=>n.onDelete("cascade")).execute(),await t.schema.createTable("sessions").addColumn("id","varchar(21)",n=>n.notNull()).addColumn("tenant_id","varchar(191)",n=>n.notNull()).addColumn("user_id","varchar(255)").addColumn("created_at","varchar(35)",n=>n.notNull()).addColumn("updated_at","varchar(35)",n=>n.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","text",n=>n.notNull()).addColumn("clients","text",n=>n.notNull()).addColumn("login_session_id","varchar(21)").addPrimaryKeyConstraint("sessions_pk",["tenant_id","id"]).addForeignKeyConstraint("sessions_user_fk",["user_id","tenant_id"],"users",["user_id","tenant_id"],n=>n.onDelete("cascade")).execute(),await t.schema.createTable("login_sessions").addColumn("id","varchar(21)",n=>n.notNull()).addColumn("tenant_id","varchar(255)",n=>n.references("tenants.id").onDelete("cascade").notNull()).addColumn("session_id","varchar(21)").addColumn("csrf_token","varchar(21)",n=>n.notNull()).addColumn("authParams_client_id","varchar(191)",n=>n.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","text").addColumn("authParams_state","text").addColumn("authParams_nonce","varchar(255)").addColumn("authParams_code_challenge_method","varchar(255)").addColumn("authParams_code_challenge","varchar(255)").addColumn("authParams_redirect_uri","text").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","text").addColumn("created_at","varchar(35)",n=>n.notNull()).addColumn("updated_at","varchar(35)",n=>n.notNull()).addColumn("expires_at","varchar(35)",n=>n.notNull()).addColumn("ip","varchar(39)").addColumn("useragent","text").addColumn("auth0Client","varchar(255)").addColumn("login_completed","integer",n=>n.defaultTo(0)).addPrimaryKeyConstraint("login_sessions_pk",["tenant_id","id"]).addForeignKeyConstraint("login_sessions_client_fk",["tenant_id","authParams_client_id"],"clients",["tenant_id","client_id"],n=>n.onDelete("cascade")).addForeignKeyConstraint("login_sessions_session_fk",["tenant_id","session_id"],"sessions",["tenant_id","id"],n=>n.onDelete("cascade")).execute(),await h.sql`INSERT INTO refresh_tokens
|
|
33
33
|
SELECT id, tenant_id, client_id, session_id, user_id, resource_servers, device, rotating,
|
|
34
34
|
created_at, expires_at, idle_expires_at, last_exchanged_at
|
|
35
|
-
FROM refresh_tokens_backup`.execute(
|
|
35
|
+
FROM refresh_tokens_backup`.execute(t),await h.sql`INSERT INTO sessions
|
|
36
36
|
SELECT id, tenant_id, user_id, created_at, updated_at, expires_at, idle_expires_at,
|
|
37
37
|
authenticated_at, last_interaction_at, used_at, revoked_at, device, clients, login_session_id
|
|
38
|
-
FROM sessions_backup`.execute(
|
|
38
|
+
FROM sessions_backup`.execute(t),await h.sql`INSERT INTO login_sessions
|
|
39
39
|
SELECT id, tenant_id, session_id, csrf_token, authParams_client_id, authParams_vendor_id, authParams_username,
|
|
40
40
|
authParams_response_type, authParams_response_mode, authParams_audience, authParams_scope, authParams_state,
|
|
41
41
|
authParams_nonce, authParams_code_challenge_method, authParams_code_challenge, authParams_redirect_uri,
|
|
42
42
|
authParams_organization, authParams_prompt, authParams_act_as, authParams_ui_locales, authorization_url,
|
|
43
43
|
created_at, updated_at, expires_at, ip, useragent, auth0Client, login_completed
|
|
44
|
-
FROM login_sessions_backup`.execute(
|
|
44
|
+
FROM login_sessions_backup`.execute(t),await h.sql`DROP TABLE sessions_backup`.execute(t),await h.sql`DROP TABLE login_sessions_backup`.execute(t),await h.sql`DROP TABLE refresh_tokens_backup`.execute(t)})}async function Sc(e){await fe(e)==="mysql"?await bc(e):await Oc(e)}async function bc(e){await e.transaction().execute(async t=>{await h.sql`ALTER TABLE refresh_tokens DROP FOREIGN KEY refresh_tokens_client_fk`.execute(t),await h.sql`ALTER TABLE login_sessions DROP FOREIGN KEY login_sessions_client_fk`.execute(t),await h.sql`ALTER TABLE refresh_tokens DROP PRIMARY KEY`.execute(t),await h.sql`ALTER TABLE refresh_tokens ADD PRIMARY KEY (id)`.execute(t),await h.sql`ALTER TABLE sessions DROP PRIMARY KEY`.execute(t),await h.sql`ALTER TABLE sessions ADD PRIMARY KEY (id)`.execute(t),await h.sql`ALTER TABLE login_sessions DROP PRIMARY KEY`.execute(t),await h.sql`ALTER TABLE login_sessions ADD PRIMARY KEY (id)`.execute(t),await h.sql`ALTER TABLE refresh_tokens
|
|
45
45
|
ADD CONSTRAINT refresh_tokens_application_fk
|
|
46
|
-
FOREIGN KEY (client_id) REFERENCES applications(id) ON DELETE CASCADE`.execute(
|
|
46
|
+
FOREIGN KEY (client_id) REFERENCES applications(id) ON DELETE CASCADE`.execute(t),await h.sql`ALTER TABLE login_sessions
|
|
47
47
|
ADD CONSTRAINT login_sessions_application_fk
|
|
48
|
-
FOREIGN KEY (authParams_client_id) REFERENCES applications(id) ON DELETE CASCADE`.execute(
|
|
48
|
+
FOREIGN KEY (authParams_client_id) REFERENCES applications(id) ON DELETE CASCADE`.execute(t)})}async function Oc(e){await e.transaction().execute(async t=>{await h.sql`CREATE TABLE refresh_tokens_temp AS SELECT * FROM refresh_tokens`.execute(t),await h.sql`DROP TABLE refresh_tokens`.execute(t),await t.schema.createTable("refresh_tokens").addColumn("id","varchar(21)",a=>a.primaryKey()).addColumn("tenant_id","varchar(255)",a=>a.references("tenants.id").onDelete("cascade").notNull()).addColumn("client_id","varchar(21)",a=>a.references("applications.id").onDelete("cascade").notNull()).addColumn("session_id","varchar(21)",a=>a.notNull()).addColumn("user_id","varchar(255)").addColumn("resource_servers","varchar(255)",a=>a.notNull()).addColumn("device","varchar(255)",a=>a.notNull()).addColumn("rotating","boolean",a=>a.notNull()).addColumn("created_at","varchar(35)",a=>a.notNull()).addColumn("expires_at","varchar(35)").addColumn("idle_expires_at","varchar(35)").addColumn("last_exchanged_at","varchar(35)").execute(),await h.sql`INSERT INTO refresh_tokens
|
|
49
49
|
SELECT id, tenant_id, client_id, session_id, user_id, resource_servers, device, rotating,
|
|
50
50
|
created_at, expires_at, idle_expires_at, last_exchanged_at
|
|
51
|
-
FROM refresh_tokens_temp`.execute(
|
|
51
|
+
FROM refresh_tokens_temp`.execute(t),await h.sql`DROP TABLE refresh_tokens_temp`.execute(t),await h.sql`CREATE TABLE login_sessions_temp AS SELECT * FROM login_sessions`.execute(t),await h.sql`DROP TABLE login_sessions`.execute(t),await t.schema.createTable("login_sessions").addColumn("id","varchar(21)",a=>a.primaryKey()).addColumn("tenant_id","varchar(255)",a=>a.references("tenants.id").onDelete("cascade").notNull()).addColumn("session_id","varchar(21)").addColumn("csrf_token","varchar(21)",a=>a.notNull()).addColumn("authParams_client_id","varchar(191)",a=>a.references("applications.id").onDelete("cascade").notNull()).execute(),await h.sql`INSERT INTO login_sessions (id, tenant_id, session_id, csrf_token, authParams_client_id)
|
|
52
52
|
SELECT id, tenant_id, session_id, csrf_token, authParams_client_id
|
|
53
|
-
FROM login_sessions_temp`.execute(e),await w`DROP TABLE login_sessions_temp`.execute(e)})}const Yh=Object.freeze(Object.defineProperty({__proto__:null,down:Vh,up:Uh},Symbol.toStringTag,{value:"Module"}));async function Xh(t){await t.schema.createTable("client_grants").addColumn("id","varchar(21)",e=>e.notNull()).addColumn("tenant_id","varchar(191)",e=>e.notNull().references("tenants.id").onDelete("cascade")).addColumn("client_id","varchar(191)",e=>e.notNull()).addColumn("audience","varchar(191)",e=>e.notNull()).addColumn("scope","text",e=>e.defaultTo("[]")).addColumn("organization_usage","varchar(32)").addColumn("allow_any_organization","integer",e=>e.defaultTo(0)).addColumn("is_system","integer",e=>e.defaultTo(0)).addColumn("subject_type","varchar(32)").addColumn("authorization_details_types","text",e=>e.defaultTo("[]")).addColumn("created_at","varchar(35)",e=>e.notNull()).addColumn("updated_at","varchar(35)",e=>e.notNull()).addPrimaryKeyConstraint("pk_client_grants",["tenant_id","id"]).addForeignKeyConstraint("fk_client_grants_clients",["tenant_id","client_id"],"clients",["tenant_id","client_id"],e=>e.onDelete("cascade")).execute(),await t.schema.createIndex("uq_client_grants_tenant_client_audience").on("client_grants").columns(["tenant_id","client_id","audience"]).unique().execute(),await t.schema.createIndex("idx_client_grants_audience").on("client_grants").columns(["audience"]).execute()}async function Zh(t){await t.schema.dropTable("client_grants").execute()}const ef=Object.freeze(Object.defineProperty({__proto__:null,down:Zh,up:Xh},Symbol.toStringTag,{value:"Module"}));async function tf(t){await t.schema.dropTable("applications").execute()}async function af(t){await t.schema.createTable("applications").addColumn("id","varchar(21)",e=>e.notNull()).addColumn("tenant_id","varchar(191)",e=>e.notNull().references("tenants.id").onDelete("cascade")).addColumn("name","varchar(255)",e=>e.notNull()).addColumn("client_secret","varchar(255)").addColumn("callbacks","text",e=>e.defaultTo("[]")).addColumn("allowed_origins","text",e=>e.defaultTo("[]")).addColumn("web_origins","text",e=>e.defaultTo("[]")).addColumn("allowed_logout_urls","text",e=>e.defaultTo("[]")).addColumn("allowed_clients","text",e=>e.defaultTo("[]")).addColumn("disable_sign_ups","integer",e=>e.defaultTo(0)).addColumn("addons","text",e=>e.defaultTo("{}")).addColumn("client_metadata","text",e=>e.defaultTo("{}")).addColumn("created_at","varchar(35)",e=>e.notNull()).addColumn("updated_at","varchar(35)",e=>e.notNull()).addPrimaryKeyConstraint("pk_applications",["tenant_id","id"]).execute(),await t.schema.createIndex("idx_applications_tenant_id").on("applications").columns(["tenant_id"]).execute()}const nf=Object.freeze(Object.defineProperty({__proto__:null,down:af,up:tf},Symbol.toStringTag,{value:"Module"}));async function rf(t){await t.schema.createIndex("users_phone_tenant_provider_index").on("users").columns(["tenant_id","phone_number","provider"]).execute()}async function of(t){await t.schema.dropIndex("users_phone_tenant_provider_index").execute()}const sf=Object.freeze(Object.defineProperty({__proto__:null,down:of,up:rf},Symbol.toStringTag,{value:"Module"}));async function cf(t){await t.schema.createIndex("login_sessions_id_index").on("login_sessions").column("id").execute()}async function uf(t){await t.schema.dropIndex("login_sessions_id_index").execute()}const lf=Object.freeze(Object.defineProperty({__proto__:null,down:uf,up:cf},Symbol.toStringTag,{value:"Module"}));async function df(t){await t.schema.createIndex("connections_tenant_id_index").on("connections").column("tenant_id").execute()}async function _f(t){await t.schema.dropIndex("connections_tenant_id_index").execute()}const mf=Object.freeze(Object.defineProperty({__proto__:null,down:_f,up:df},Symbol.toStringTag,{value:"Module"}));async function hf(t){await t.schema.dropIndex("idx_user_organizations_tenant_id").execute()}async function ff(t){await t.schema.createIndex("idx_user_organizations_tenant_id").on("user_organizations").column("tenant_id").execute()}const pf=Object.freeze(Object.defineProperty({__proto__:null,down:ff,up:hf},Symbol.toStringTag,{value:"Module"}));async function gf(t){await t.schema.createTable("tenant_settings").addColumn("tenant_id","varchar(191)",e=>e.references("tenants.id").onDelete("cascade").notNull().primaryKey()).addColumn("idle_session_lifetime","integer").addColumn("session_lifetime","integer").addColumn("session_cookie","text").addColumn("enable_client_connections","integer").addColumn("default_redirection_uri","text").addColumn("enabled_locales","text").addColumn("default_directory","varchar(255)").addColumn("error_page","text").addColumn("flags","text").addColumn("friendly_name","varchar(255)").addColumn("picture_url","text").addColumn("support_email","varchar(255)").addColumn("support_url","text").addColumn("sandbox_version","varchar(50)").addColumn("sandbox_versions_available","text").addColumn("change_password","text").addColumn("guardian_mfa_page","text").addColumn("default_audience","varchar(255)").addColumn("default_organization","varchar(255)").addColumn("sessions","text").execute()}async function wf(t){await t.schema.dropTable("tenant_settings").execute()}const yf=Object.freeze(Object.defineProperty({__proto__:null,down:wf,up:gf},Symbol.toStringTag,{value:"Module"}));async function vf(t){if(await t.schema.alterTable("tenants").addColumn("idle_session_lifetime","integer").execute(),await t.schema.alterTable("tenants").addColumn("session_lifetime","integer").execute(),await t.schema.alterTable("tenants").addColumn("session_cookie","text").execute(),await t.schema.alterTable("tenants").addColumn("allowed_logout_urls","text").execute(),await t.schema.alterTable("tenants").addColumn("ephemeral_session_lifetime","integer").execute(),await t.schema.alterTable("tenants").addColumn("idle_ephemeral_session_lifetime","integer").execute(),await t.schema.alterTable("tenants").addColumn("default_redirection_uri","text").execute(),await t.schema.alterTable("tenants").addColumn("enabled_locales","text").execute(),await t.schema.alterTable("tenants").addColumn("default_directory","varchar(255)").execute(),await t.schema.alterTable("tenants").addColumn("error_page","text").execute(),await t.schema.alterTable("tenants").addColumn("flags","text").execute(),await t.schema.alterTable("tenants").addColumn("friendly_name","varchar(255)").execute(),await t.schema.alterTable("tenants").addColumn("picture_url","text").execute(),await t.schema.alterTable("tenants").addColumn("support_email","varchar(255)").execute(),await t.schema.alterTable("tenants").addColumn("sandbox_version","varchar(50)").execute(),await t.schema.alterTable("tenants").addColumn("sandbox_versions_available","text").execute(),await t.schema.alterTable("tenants").addColumn("legacy_sandbox_version","varchar(50)").execute(),await t.schema.alterTable("tenants").addColumn("change_password","text").execute(),await t.schema.alterTable("tenants").addColumn("guardian_mfa_page","text").execute(),await t.schema.alterTable("tenants").addColumn("device_flow","text").execute(),await t.schema.alterTable("tenants").addColumn("default_token_quota","text").execute(),await t.schema.alterTable("tenants").addColumn("default_audience","varchar(255)").execute(),await t.schema.alterTable("tenants").addColumn("default_organization","varchar(255)").execute(),await t.schema.alterTable("tenants").addColumn("sessions","text").execute(),await t.schema.alterTable("tenants").addColumn("oidc_logout","text").execute(),await t.schema.alterTable("tenants").addColumn("allow_organization_name_in_authentication_api","integer").execute(),await t.schema.alterTable("tenants").addColumn("customize_mfa_in_postlogin_action","integer").execute(),await t.schema.alterTable("tenants").addColumn("acr_values_supported","text").execute(),await t.schema.alterTable("tenants").addColumn("mtls","text").execute(),await t.schema.alterTable("tenants").addColumn("pushed_authorization_requests_supported","integer").execute(),await t.schema.alterTable("tenants").addColumn("authorization_response_iss_parameter_supported","integer").execute(),await t.updateTable("tenants").set({friendly_name:w`name`}).execute(),await t.schema.alterTable("tenants").dropColumn("language").execute(),await t.schema.alterTable("tenants").dropColumn("logo").execute(),await t.schema.alterTable("tenants").dropColumn("primary_color").execute(),await t.schema.alterTable("tenants").dropColumn("secondary_color").execute(),await t.schema.alterTable("tenants").dropColumn("name").execute(),(await t.selectFrom("tenant_settings").select("tenant_id").limit(1).execute()).length>0){const a=await t.selectFrom("tenant_settings").selectAll().execute();for(const n of a)await t.updateTable("tenants").set({idle_session_lifetime:n.idle_session_lifetime,session_lifetime:n.session_lifetime,session_cookie:n.session_cookie,enable_client_connections:n.enable_client_connections,default_redirection_uri:n.default_redirection_uri,enabled_locales:n.enabled_locales,default_directory:n.default_directory,error_page:n.error_page,flags:n.flags,friendly_name:n.friendly_name,picture_url:n.picture_url,support_email:n.support_email,support_url:n.support_url,sandbox_version:n.sandbox_version,sandbox_versions_available:n.sandbox_versions_available,change_password:n.change_password,guardian_mfa_page:n.guardian_mfa_page,default_audience:n.default_audience,default_organization:n.default_organization,sessions:n.sessions}).where("id","=",n.tenant_id).execute()}await t.schema.dropTable("tenant_settings").execute()}async function Nf(t){await t.schema.createTable("tenant_settings").addColumn("tenant_id","varchar(191)",a=>a.references("tenants.id").onDelete("cascade").notNull().primaryKey()).addColumn("idle_session_lifetime","integer").addColumn("session_lifetime","integer").addColumn("session_cookie","text").addColumn("enable_client_connections","integer").addColumn("default_redirection_uri","text").addColumn("enabled_locales","text").addColumn("default_directory","varchar(255)").addColumn("error_page","text").addColumn("flags","text").addColumn("friendly_name","varchar(255)").addColumn("picture_url","text").addColumn("support_email","varchar(255)").addColumn("support_url","text").addColumn("sandbox_version","varchar(50)").addColumn("sandbox_versions_available","text").addColumn("change_password","text").addColumn("guardian_mfa_page","text").addColumn("default_audience","varchar(255)").addColumn("default_organization","varchar(255)").addColumn("sessions","text").execute();const e=await t.selectFrom("tenants").select(["id","idle_session_lifetime","session_lifetime","session_cookie","enable_client_connections","default_redirection_uri","enabled_locales","default_directory","error_page","flags","friendly_name","picture_url","support_email","support_url","sandbox_version","sandbox_versions_available","change_password","guardian_mfa_page","default_audience","default_organization","sessions"]).execute();for(const a of e)(a.idle_session_lifetime!==null||a.session_lifetime!==null||a.session_cookie!==null||a.enable_client_connections!==null||a.default_redirection_uri!==null||a.enabled_locales!==null||a.default_directory!==null||a.error_page!==null||a.flags!==null||a.friendly_name!==null||a.picture_url!==null||a.support_email!==null||a.support_url!==null||a.sandbox_version!==null||a.sandbox_versions_available!==null||a.change_password!==null||a.guardian_mfa_page!==null||a.default_audience!==null||a.default_organization!==null||a.sessions!==null)&&await t.insertInto("tenant_settings").values({tenant_id:a.id,idle_session_lifetime:a.idle_session_lifetime,session_lifetime:a.session_lifetime,session_cookie:a.session_cookie,enable_client_connections:a.enable_client_connections,default_redirection_uri:a.default_redirection_uri,enabled_locales:a.enabled_locales,default_directory:a.default_directory,error_page:a.error_page,flags:a.flags,friendly_name:a.friendly_name,picture_url:a.picture_url,support_email:a.support_email,support_url:a.support_url,sandbox_version:a.sandbox_version,sandbox_versions_available:a.sandbox_versions_available,change_password:a.change_password,guardian_mfa_page:a.guardian_mfa_page,default_audience:a.default_audience,default_organization:a.default_organization,sessions:a.sessions}).execute();await t.schema.alterTable("tenants").dropColumn("idle_session_lifetime").dropColumn("session_lifetime").dropColumn("session_cookie").dropColumn("enable_client_connections").dropColumn("default_redirection_uri").dropColumn("enabled_locales").dropColumn("default_directory").dropColumn("error_page").dropColumn("flags").dropColumn("friendly_name").dropColumn("picture_url").dropColumn("support_email").dropColumn("sandbox_version").dropColumn("sandbox_versions_available").dropColumn("change_password").dropColumn("guardian_mfa_page").dropColumn("default_audience").dropColumn("default_organization").dropColumn("sessions").execute(),await t.schema.alterTable("tenants").addColumn("name","varchar(255)").execute(),await t.updateTable("tenants").set({name:w`COALESCE(friendly_name, id)`}).execute(),await t.schema.alterTable("tenants").addColumn("language","varchar(255)").execute(),await t.schema.alterTable("tenants").addColumn("logo","text").execute(),await t.schema.alterTable("tenants").addColumn("primary_color","varchar(50)").execute(),await t.schema.alterTable("tenants").addColumn("secondary_color","varchar(50)").execute()}const Cf=Object.freeze(Object.defineProperty({__proto__:null,down:Nf,up:vf},Symbol.toStringTag,{value:"Module"}));async function xf(t){await t.schema.createTable("invites").addColumn("id","varchar(21)",e=>e.primaryKey()).addColumn("tenant_id","varchar(191)",e=>e.notNull()).addColumn("organization_id","varchar(21)",e=>e.notNull()).addColumn("inviter","text",e=>e.notNull()).addColumn("invitee","text",e=>e.notNull()).addColumn("client_id","varchar(191)",e=>e.notNull()).addColumn("connection_id","varchar(21)").addColumn("invitation_url","text",e=>e.notNull()).addColumn("created_at","varchar(35)",e=>e.notNull()).addColumn("expires_at","varchar(35)",e=>e.notNull()).addColumn("app_metadata","text").addColumn("user_metadata","text").addColumn("roles","text").addColumn("ticket_id","varchar(191)").addColumn("ttl_sec","integer").addColumn("send_invitation_email","integer").execute(),await t.schema.createIndex("idx_invites_tenant_id").on("invites").column("tenant_id").execute(),await t.schema.createIndex("idx_invites_organization_id").on("invites").column("organization_id").execute(),await t.schema.createIndex("idx_invites_expires_at").on("invites").column("expires_at").execute(),await t.schema.createIndex("idx_invites_tenant_created").on("invites").columns(["tenant_id","created_at"]).execute()}async function Tf(t){await t.schema.dropTable("invites").execute()}const Sf=Object.freeze(Object.defineProperty({__proto__:null,down:Tf,up:xf},Symbol.toStringTag,{value:"Module"}));async function bf(t){await t.schema.dropTable("logs").ifExists().execute(),await t.schema.createTable("logs").addColumn("log_id","varchar(21)",e=>e.primaryKey().notNull()).addColumn("category","varchar(255)").addColumn("tenant_id","varchar(64)").addColumn("user_id","varchar(64)").addColumn("ip","varchar(255)").addColumn("type","varchar(8)",e=>e.notNull()).addColumn("date","varchar(25)",e=>e.notNull()).addColumn("client_id","varchar(255)").addColumn("client_name","varchar(255)").addColumn("user_agent","varchar(255)").addColumn("description","varchar(255)").addColumn("details","varchar(2048)").addColumn("isMobile","integer").addColumn("user_name","varchar(255)").addColumn("connection","varchar(255)").addColumn("connection_id","varchar(255)").addColumn("audience","varchar(255)").addColumn("scope","varchar(255)").addColumn("strategy","varchar(255)").addColumn("strategy_type","varchar(255)").addColumn("hostname","varchar(255)").addColumn("auth0_client","varchar(8192)").addColumn("session_connection","varchar(255)").execute()}async function Of(t){await t.schema.dropTable("logs").ifExists().execute(),await t.schema.createTable("logs").addColumn("id","varchar(255)",e=>e.primaryKey().notNull()).addColumn("category","varchar(255)",e=>e.notNull()).addColumn("tenant_id","varchar(64)").addColumn("user_id","varchar(64)").addColumn("ip","varchar(255)").addColumn("type","varchar(8)",e=>e.notNull()).addColumn("date","varchar(25)",e=>e.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()}const kf=Object.freeze(Object.defineProperty({__proto__:null,down:Of,up:bf},Symbol.toStringTag,{value:"Module"}));async function Ef(t){await t.schema.alterTable("logs").addColumn("country_code","varchar(2)").execute(),await t.schema.alterTable("logs").addColumn("city_name","varchar(255)").execute(),await t.schema.alterTable("logs").addColumn("latitude","varchar(255)").execute(),await t.schema.alterTable("logs").addColumn("longitude","varchar(255)").execute(),await t.schema.alterTable("logs").addColumn("time_zone","varchar(255)").execute(),await t.schema.alterTable("logs").addColumn("continent_code","varchar(2)").execute()}async function If(t){await t.schema.alterTable("logs").dropColumn("country_code").execute(),await t.schema.alterTable("logs").dropColumn("city_name").execute(),await t.schema.alterTable("logs").dropColumn("latitude").execute(),await t.schema.alterTable("logs").dropColumn("longitude").execute(),await t.schema.alterTable("logs").dropColumn("time_zone").execute(),await t.schema.alterTable("logs").dropColumn("continent_code").execute()}const $f=Object.freeze(Object.defineProperty({__proto__:null,down:If,up:Ef},Symbol.toStringTag,{value:"Module"})),He=1e3;async function Af(t){await t.schema.createTable("password_history").addColumn("id","varchar(21)",n=>n.primaryKey()).addColumn("user_id","varchar(191)",n=>n.notNull()).addColumn("tenant_id","varchar(191)",n=>n.references("tenants.id").onDelete("cascade").notNull()).addColumn("password","varchar(255)",n=>n.notNull()).addColumn("algorithm","varchar(255)",n=>n.notNull().defaultTo("bcrypt")).addColumn("created_at","varchar(35)",n=>n.notNull()).addColumn("updated_at","varchar(35)",n=>n.notNull()).addColumn("is_current","integer",n=>n.notNull().defaultTo(1)).addForeignKeyConstraint("password_history_user_id_tenant_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],n=>n.onDelete("cascade")).execute();let e=0,a=!0;for(;a;){const n=await t.selectFrom("passwords").select(["user_id","tenant_id","password","algorithm","created_at","updated_at"]).limit(He).offset(e).execute();if(n.length===0){a=!1;break}for(const r of n)await t.insertInto("password_history").values({id:Q(),user_id:r.user_id,tenant_id:r.tenant_id,password:r.password,algorithm:r.algorithm??"bcrypt",created_at:r.created_at,updated_at:r.updated_at??r.created_at,is_current:1}).execute();e+=He,n.length<He&&(a=!1)}await t.schema.alterTable("passwords").renameTo("passwords_backup").execute(),await t.schema.alterTable("password_history").renameTo("passwords").execute()}async function Df(t){await t.schema.alterTable("passwords").renameTo("password_history").execute();try{await t.schema.alterTable("passwords_backup").renameTo("passwords").execute()}catch{await t.schema.createTable("passwords").addColumn("user_id","varchar(255)",n=>n.notNull()).addColumn("tenant_id","varchar(255)",n=>n.references("tenants.id").onDelete("cascade").notNull()).addColumn("password","varchar(255)",n=>n.notNull()).addColumn("algorithm","varchar(255)",n=>n.notNull().defaultTo("bcrypt")).addColumn("created_at","varchar(35)",n=>n.notNull()).addColumn("updated_at","varchar(35)",n=>n.notNull()).addPrimaryKeyConstraint("passwords_pkey",["user_id","tenant_id"]).addForeignKeyConstraint("passwords_user_id_tenant_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],n=>n.onDelete("cascade")).execute();let e=0,a=!0;for(;a;){const n=await t.selectFrom("password_history").select(["user_id","tenant_id","password","algorithm","created_at","updated_at"]).where("is_current","=",1).limit(He).offset(e).execute();if(n.length===0){a=!1;break}for(const r of n)await t.insertInto("passwords").values({user_id:r.user_id,tenant_id:r.tenant_id,password:r.password,algorithm:r.algorithm,created_at:r.created_at,updated_at:r.updated_at}).execute();e+=He,n.length<He&&(a=!1)}}await t.schema.dropTable("password_history").execute()}const Pf=Object.freeze(Object.defineProperty({__proto__:null,down:Df,up:Af},Symbol.toStringTag,{value:"Module"}));async function Rf(t){await t.schema.alterTable("connections").addColumn("display_name","varchar(255)").execute(),await t.schema.alterTable("connections").addColumn("is_domain_connection","integer").execute(),await t.schema.alterTable("connections").addColumn("show_as_button","integer").execute(),await t.schema.alterTable("connections").addColumn("metadata","varchar(4096)").execute()}async function zf(t){await t.schema.alterTable("connections").dropColumn("display_name").execute(),await t.schema.alterTable("connections").dropColumn("is_domain_connection").execute(),await t.schema.alterTable("connections").dropColumn("show_as_button").execute(),await t.schema.alterTable("connections").dropColumn("metadata").execute()}const Ff=Object.freeze(Object.defineProperty({__proto__:null,down:zf,up:Rf},Symbol.toStringTag,{value:"Module"}));async function Lf(t){await t.schema.alterTable("clients").addColumn("connections","text",e=>e.notNull().defaultTo("[]")).execute()}async function Mf(t){await t.schema.alterTable("clients").dropColumn("connections").execute()}const jf=Object.freeze(Object.defineProperty({__proto__:null,down:Mf,up:Lf},Symbol.toStringTag,{value:"Module"}));async function Jf(t){await t.schema.createTable("flows").addColumn("id","varchar(24)",e=>e.primaryKey()).addColumn("tenant_id","varchar(191)",e=>e.notNull()).addColumn("name","varchar(150)",e=>e.notNull()).addColumn("actions","text").addColumn("created_at","varchar(35)",e=>e.notNull()).addColumn("updated_at","varchar(35)",e=>e.notNull()).execute(),await t.schema.createIndex("flows_tenant_id_idx").on("flows").column("tenant_id").execute(),await t.schema.dropTable("passwords_backup").execute()}async function qf(t){await t.schema.dropTable("flows").execute()}const Wf=Object.freeze(Object.defineProperty({__proto__:null,down:qf,up:Jf},Symbol.toStringTag,{value:"Module"}));async function Bf(t){await t.schema.alterTable("resource_servers").addColumn("is_system","integer",e=>e.defaultTo(0).notNull()).execute(),await t.schema.alterTable("roles").addColumn("is_system","integer",e=>e.defaultTo(0).notNull()).execute(),await t.schema.alterTable("connections").addColumn("is_system","integer",e=>e.defaultTo(0).notNull()).execute()}async function Uf(t){await t.schema.alterTable("resource_servers").dropColumn("is_system").execute(),await t.schema.alterTable("roles").dropColumn("is_system").execute(),await t.schema.alterTable("connections").dropColumn("is_system").execute()}const Kf=Object.freeze(Object.defineProperty({__proto__:null,down:Uf,up:Bf},Symbol.toStringTag,{value:"Module"}));async function Qf(t){const e=await t.selectFrom("keys").selectAll().execute();await t.schema.dropTable("keys").execute(),await w`ALTER TABLE connections RENAME TO connections_old`.execute(t),await t.schema.createTable("connections").addColumn("id","varchar(255)",a=>a.notNull()).addColumn("tenant_id","varchar(255)",a=>a.references("tenants.id").onDelete("cascade").notNull()).addColumn("name","varchar(255)",a=>a.notNull()).addColumn("response_type","varchar(255)").addColumn("response_mode","varchar(255)").addColumn("strategy","varchar(64)").addColumn("options","varchar(8192)",a=>a.defaultTo("{}").notNull()).addColumn("created_at","varchar(255)",a=>a.notNull()).addColumn("updated_at","varchar(255)",a=>a.notNull()).addColumn("display_name","varchar(255)").addColumn("is_domain_connection","integer").addColumn("show_as_button","integer").addColumn("metadata","varchar(4096)").addColumn("is_system","integer",a=>a.defaultTo(0).notNull()).addPrimaryKeyConstraint("connections_pkey",["tenant_id","id"]).execute(),await w`
|
|
53
|
+
FROM login_sessions_temp`.execute(t),await h.sql`DROP TABLE login_sessions_temp`.execute(t)})}const kc=Object.freeze(Object.defineProperty({__proto__:null,down:Sc,up:xc},Symbol.toStringTag,{value:"Module"}));async function $c(e){await e.schema.createTable("client_grants").addColumn("id","varchar(21)",t=>t.notNull()).addColumn("tenant_id","varchar(191)",t=>t.notNull().references("tenants.id").onDelete("cascade")).addColumn("client_id","varchar(191)",t=>t.notNull()).addColumn("audience","varchar(191)",t=>t.notNull()).addColumn("scope","text",t=>t.defaultTo("[]")).addColumn("organization_usage","varchar(32)").addColumn("allow_any_organization","integer",t=>t.defaultTo(0)).addColumn("is_system","integer",t=>t.defaultTo(0)).addColumn("subject_type","varchar(32)").addColumn("authorization_details_types","text",t=>t.defaultTo("[]")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("pk_client_grants",["tenant_id","id"]).addForeignKeyConstraint("fk_client_grants_clients",["tenant_id","client_id"],"clients",["tenant_id","client_id"],t=>t.onDelete("cascade")).execute(),await e.schema.createIndex("uq_client_grants_tenant_client_audience").on("client_grants").columns(["tenant_id","client_id","audience"]).unique().execute(),await e.schema.createIndex("idx_client_grants_audience").on("client_grants").columns(["audience"]).execute()}async function Ec(e){await e.schema.dropTable("client_grants").execute()}const Ic=Object.freeze(Object.defineProperty({__proto__:null,down:Ec,up:$c},Symbol.toStringTag,{value:"Module"}));async function zc(e){await e.schema.dropTable("applications").execute()}async function Pc(e){await e.schema.createTable("applications").addColumn("id","varchar(21)",t=>t.notNull()).addColumn("tenant_id","varchar(191)",t=>t.notNull().references("tenants.id").onDelete("cascade")).addColumn("name","varchar(255)",t=>t.notNull()).addColumn("client_secret","varchar(255)").addColumn("callbacks","text",t=>t.defaultTo("[]")).addColumn("allowed_origins","text",t=>t.defaultTo("[]")).addColumn("web_origins","text",t=>t.defaultTo("[]")).addColumn("allowed_logout_urls","text",t=>t.defaultTo("[]")).addColumn("allowed_clients","text",t=>t.defaultTo("[]")).addColumn("disable_sign_ups","integer",t=>t.defaultTo(0)).addColumn("addons","text",t=>t.defaultTo("{}")).addColumn("client_metadata","text",t=>t.defaultTo("{}")).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).addPrimaryKeyConstraint("pk_applications",["tenant_id","id"]).execute(),await e.schema.createIndex("idx_applications_tenant_id").on("applications").columns(["tenant_id"]).execute()}const Dc=Object.freeze(Object.defineProperty({__proto__:null,down:Pc,up:zc},Symbol.toStringTag,{value:"Module"}));async function Ac(e){await e.schema.createIndex("users_phone_tenant_provider_index").on("users").columns(["tenant_id","phone_number","provider"]).execute()}async function jc(e){await e.schema.dropIndex("users_phone_tenant_provider_index").execute()}const Fc=Object.freeze(Object.defineProperty({__proto__:null,down:jc,up:Ac},Symbol.toStringTag,{value:"Module"}));async function Rc(e){await e.schema.createIndex("login_sessions_id_index").on("login_sessions").column("id").execute()}async function Mc(e){await e.schema.dropIndex("login_sessions_id_index").execute()}const Jc=Object.freeze(Object.defineProperty({__proto__:null,down:Mc,up:Rc},Symbol.toStringTag,{value:"Module"}));async function qc(e){await e.schema.createIndex("connections_tenant_id_index").on("connections").column("tenant_id").execute()}async function Lc(e){await e.schema.dropIndex("connections_tenant_id_index").execute()}const Kc=Object.freeze(Object.defineProperty({__proto__:null,down:Lc,up:qc},Symbol.toStringTag,{value:"Module"}));async function Uc(e){await e.schema.dropIndex("idx_user_organizations_tenant_id").execute()}async function Bc(e){await e.schema.createIndex("idx_user_organizations_tenant_id").on("user_organizations").column("tenant_id").execute()}const Qc=Object.freeze(Object.defineProperty({__proto__:null,down:Bc,up:Uc},Symbol.toStringTag,{value:"Module"}));async function Hc(e){await e.schema.createTable("tenant_settings").addColumn("tenant_id","varchar(191)",t=>t.references("tenants.id").onDelete("cascade").notNull().primaryKey()).addColumn("idle_session_lifetime","integer").addColumn("session_lifetime","integer").addColumn("session_cookie","text").addColumn("enable_client_connections","integer").addColumn("default_redirection_uri","text").addColumn("enabled_locales","text").addColumn("default_directory","varchar(255)").addColumn("error_page","text").addColumn("flags","text").addColumn("friendly_name","varchar(255)").addColumn("picture_url","text").addColumn("support_email","varchar(255)").addColumn("support_url","text").addColumn("sandbox_version","varchar(50)").addColumn("sandbox_versions_available","text").addColumn("change_password","text").addColumn("guardian_mfa_page","text").addColumn("default_audience","varchar(255)").addColumn("default_organization","varchar(255)").addColumn("sessions","text").execute()}async function Yc(e){await e.schema.dropTable("tenant_settings").execute()}const Wc=Object.freeze(Object.defineProperty({__proto__:null,down:Yc,up:Hc},Symbol.toStringTag,{value:"Module"}));async function Gc(e){if(await e.schema.alterTable("tenants").addColumn("idle_session_lifetime","integer").execute(),await e.schema.alterTable("tenants").addColumn("session_lifetime","integer").execute(),await e.schema.alterTable("tenants").addColumn("session_cookie","text").execute(),await e.schema.alterTable("tenants").addColumn("allowed_logout_urls","text").execute(),await e.schema.alterTable("tenants").addColumn("ephemeral_session_lifetime","integer").execute(),await e.schema.alterTable("tenants").addColumn("idle_ephemeral_session_lifetime","integer").execute(),await e.schema.alterTable("tenants").addColumn("default_redirection_uri","text").execute(),await e.schema.alterTable("tenants").addColumn("enabled_locales","text").execute(),await e.schema.alterTable("tenants").addColumn("default_directory","varchar(255)").execute(),await e.schema.alterTable("tenants").addColumn("error_page","text").execute(),await e.schema.alterTable("tenants").addColumn("flags","text").execute(),await e.schema.alterTable("tenants").addColumn("friendly_name","varchar(255)").execute(),await e.schema.alterTable("tenants").addColumn("picture_url","text").execute(),await e.schema.alterTable("tenants").addColumn("support_email","varchar(255)").execute(),await e.schema.alterTable("tenants").addColumn("sandbox_version","varchar(50)").execute(),await e.schema.alterTable("tenants").addColumn("sandbox_versions_available","text").execute(),await e.schema.alterTable("tenants").addColumn("legacy_sandbox_version","varchar(50)").execute(),await e.schema.alterTable("tenants").addColumn("change_password","text").execute(),await e.schema.alterTable("tenants").addColumn("guardian_mfa_page","text").execute(),await e.schema.alterTable("tenants").addColumn("device_flow","text").execute(),await e.schema.alterTable("tenants").addColumn("default_token_quota","text").execute(),await e.schema.alterTable("tenants").addColumn("default_audience","varchar(255)").execute(),await e.schema.alterTable("tenants").addColumn("default_organization","varchar(255)").execute(),await e.schema.alterTable("tenants").addColumn("sessions","text").execute(),await e.schema.alterTable("tenants").addColumn("oidc_logout","text").execute(),await e.schema.alterTable("tenants").addColumn("allow_organization_name_in_authentication_api","integer").execute(),await e.schema.alterTable("tenants").addColumn("customize_mfa_in_postlogin_action","integer").execute(),await e.schema.alterTable("tenants").addColumn("acr_values_supported","text").execute(),await e.schema.alterTable("tenants").addColumn("mtls","text").execute(),await e.schema.alterTable("tenants").addColumn("pushed_authorization_requests_supported","integer").execute(),await e.schema.alterTable("tenants").addColumn("authorization_response_iss_parameter_supported","integer").execute(),await e.updateTable("tenants").set({friendly_name:h.sql`name`}).execute(),await e.schema.alterTable("tenants").dropColumn("language").execute(),await e.schema.alterTable("tenants").dropColumn("logo").execute(),await e.schema.alterTable("tenants").dropColumn("primary_color").execute(),await e.schema.alterTable("tenants").dropColumn("secondary_color").execute(),await e.schema.alterTable("tenants").dropColumn("name").execute(),(await e.selectFrom("tenant_settings").select("tenant_id").limit(1).execute()).length>0){const a=await e.selectFrom("tenant_settings").selectAll().execute();for(const n of a)await e.updateTable("tenants").set({idle_session_lifetime:n.idle_session_lifetime,session_lifetime:n.session_lifetime,session_cookie:n.session_cookie,enable_client_connections:n.enable_client_connections,default_redirection_uri:n.default_redirection_uri,enabled_locales:n.enabled_locales,default_directory:n.default_directory,error_page:n.error_page,flags:n.flags,friendly_name:n.friendly_name,picture_url:n.picture_url,support_email:n.support_email,support_url:n.support_url,sandbox_version:n.sandbox_version,sandbox_versions_available:n.sandbox_versions_available,change_password:n.change_password,guardian_mfa_page:n.guardian_mfa_page,default_audience:n.default_audience,default_organization:n.default_organization,sessions:n.sessions}).where("id","=",n.tenant_id).execute()}await e.schema.dropTable("tenant_settings").execute()}async function Vc(e){await e.schema.createTable("tenant_settings").addColumn("tenant_id","varchar(191)",a=>a.references("tenants.id").onDelete("cascade").notNull().primaryKey()).addColumn("idle_session_lifetime","integer").addColumn("session_lifetime","integer").addColumn("session_cookie","text").addColumn("enable_client_connections","integer").addColumn("default_redirection_uri","text").addColumn("enabled_locales","text").addColumn("default_directory","varchar(255)").addColumn("error_page","text").addColumn("flags","text").addColumn("friendly_name","varchar(255)").addColumn("picture_url","text").addColumn("support_email","varchar(255)").addColumn("support_url","text").addColumn("sandbox_version","varchar(50)").addColumn("sandbox_versions_available","text").addColumn("change_password","text").addColumn("guardian_mfa_page","text").addColumn("default_audience","varchar(255)").addColumn("default_organization","varchar(255)").addColumn("sessions","text").execute();const t=await e.selectFrom("tenants").select(["id","idle_session_lifetime","session_lifetime","session_cookie","enable_client_connections","default_redirection_uri","enabled_locales","default_directory","error_page","flags","friendly_name","picture_url","support_email","support_url","sandbox_version","sandbox_versions_available","change_password","guardian_mfa_page","default_audience","default_organization","sessions"]).execute();for(const a of t)(a.idle_session_lifetime!==null||a.session_lifetime!==null||a.session_cookie!==null||a.enable_client_connections!==null||a.default_redirection_uri!==null||a.enabled_locales!==null||a.default_directory!==null||a.error_page!==null||a.flags!==null||a.friendly_name!==null||a.picture_url!==null||a.support_email!==null||a.support_url!==null||a.sandbox_version!==null||a.sandbox_versions_available!==null||a.change_password!==null||a.guardian_mfa_page!==null||a.default_audience!==null||a.default_organization!==null||a.sessions!==null)&&await e.insertInto("tenant_settings").values({tenant_id:a.id,idle_session_lifetime:a.idle_session_lifetime,session_lifetime:a.session_lifetime,session_cookie:a.session_cookie,enable_client_connections:a.enable_client_connections,default_redirection_uri:a.default_redirection_uri,enabled_locales:a.enabled_locales,default_directory:a.default_directory,error_page:a.error_page,flags:a.flags,friendly_name:a.friendly_name,picture_url:a.picture_url,support_email:a.support_email,support_url:a.support_url,sandbox_version:a.sandbox_version,sandbox_versions_available:a.sandbox_versions_available,change_password:a.change_password,guardian_mfa_page:a.guardian_mfa_page,default_audience:a.default_audience,default_organization:a.default_organization,sessions:a.sessions}).execute();await e.schema.alterTable("tenants").dropColumn("idle_session_lifetime").dropColumn("session_lifetime").dropColumn("session_cookie").dropColumn("enable_client_connections").dropColumn("default_redirection_uri").dropColumn("enabled_locales").dropColumn("default_directory").dropColumn("error_page").dropColumn("flags").dropColumn("friendly_name").dropColumn("picture_url").dropColumn("support_email").dropColumn("sandbox_version").dropColumn("sandbox_versions_available").dropColumn("change_password").dropColumn("guardian_mfa_page").dropColumn("default_audience").dropColumn("default_organization").dropColumn("sessions").execute(),await e.schema.alterTable("tenants").addColumn("name","varchar(255)").execute(),await e.updateTable("tenants").set({name:h.sql`COALESCE(friendly_name, id)`}).execute(),await e.schema.alterTable("tenants").addColumn("language","varchar(255)").execute(),await e.schema.alterTable("tenants").addColumn("logo","text").execute(),await e.schema.alterTable("tenants").addColumn("primary_color","varchar(50)").execute(),await e.schema.alterTable("tenants").addColumn("secondary_color","varchar(50)").execute()}const Xc=Object.freeze(Object.defineProperty({__proto__:null,down:Vc,up:Gc},Symbol.toStringTag,{value:"Module"}));async function Zc(e){await e.schema.createTable("invites").addColumn("id","varchar(21)",t=>t.primaryKey()).addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("organization_id","varchar(21)",t=>t.notNull()).addColumn("inviter","text",t=>t.notNull()).addColumn("invitee","text",t=>t.notNull()).addColumn("client_id","varchar(191)",t=>t.notNull()).addColumn("connection_id","varchar(21)").addColumn("invitation_url","text",t=>t.notNull()).addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("expires_at","varchar(35)",t=>t.notNull()).addColumn("app_metadata","text").addColumn("user_metadata","text").addColumn("roles","text").addColumn("ticket_id","varchar(191)").addColumn("ttl_sec","integer").addColumn("send_invitation_email","integer").execute(),await e.schema.createIndex("idx_invites_tenant_id").on("invites").column("tenant_id").execute(),await e.schema.createIndex("idx_invites_organization_id").on("invites").column("organization_id").execute(),await e.schema.createIndex("idx_invites_expires_at").on("invites").column("expires_at").execute(),await e.schema.createIndex("idx_invites_tenant_created").on("invites").columns(["tenant_id","created_at"]).execute()}async function ed(e){await e.schema.dropTable("invites").execute()}const td=Object.freeze(Object.defineProperty({__proto__:null,down:ed,up:Zc},Symbol.toStringTag,{value:"Module"}));async function ad(e){await e.schema.dropTable("logs").ifExists().execute(),await e.schema.createTable("logs").addColumn("log_id","varchar(21)",t=>t.primaryKey().notNull()).addColumn("category","varchar(255)").addColumn("tenant_id","varchar(64)").addColumn("user_id","varchar(64)").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)").addColumn("isMobile","integer").addColumn("user_name","varchar(255)").addColumn("connection","varchar(255)").addColumn("connection_id","varchar(255)").addColumn("audience","varchar(255)").addColumn("scope","varchar(255)").addColumn("strategy","varchar(255)").addColumn("strategy_type","varchar(255)").addColumn("hostname","varchar(255)").addColumn("auth0_client","varchar(8192)").addColumn("session_connection","varchar(255)").execute()}async function nd(e){await e.schema.dropTable("logs").ifExists().execute(),await e.schema.createTable("logs").addColumn("id","varchar(255)",t=>t.primaryKey().notNull()).addColumn("category","varchar(255)",t=>t.notNull()).addColumn("tenant_id","varchar(64)").addColumn("user_id","varchar(64)").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()}const od=Object.freeze(Object.defineProperty({__proto__:null,down:nd,up:ad},Symbol.toStringTag,{value:"Module"}));async function rd(e){await e.schema.alterTable("logs").addColumn("country_code","varchar(2)").execute(),await e.schema.alterTable("logs").addColumn("city_name","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("latitude","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("longitude","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("time_zone","varchar(255)").execute(),await e.schema.alterTable("logs").addColumn("continent_code","varchar(2)").execute()}async function sd(e){await e.schema.alterTable("logs").dropColumn("country_code").execute(),await e.schema.alterTable("logs").dropColumn("city_name").execute(),await e.schema.alterTable("logs").dropColumn("latitude").execute(),await e.schema.alterTable("logs").dropColumn("longitude").execute(),await e.schema.alterTable("logs").dropColumn("time_zone").execute(),await e.schema.alterTable("logs").dropColumn("continent_code").execute()}const id=Object.freeze(Object.defineProperty({__proto__:null,down:sd,up:rd},Symbol.toStringTag,{value:"Module"})),F=1e3;async function ld(e){await e.schema.createTable("password_history").addColumn("id","varchar(21)",n=>n.primaryKey()).addColumn("user_id","varchar(191)",n=>n.notNull()).addColumn("tenant_id","varchar(191)",n=>n.references("tenants.id").onDelete("cascade").notNull()).addColumn("password","varchar(255)",n=>n.notNull()).addColumn("algorithm","varchar(255)",n=>n.notNull().defaultTo("bcrypt")).addColumn("created_at","varchar(35)",n=>n.notNull()).addColumn("updated_at","varchar(35)",n=>n.notNull()).addColumn("is_current","integer",n=>n.notNull().defaultTo(1)).addForeignKeyConstraint("password_history_user_id_tenant_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],n=>n.onDelete("cascade")).execute();let t=0,a=!0;for(;a;){const n=await e.selectFrom("passwords").select(["user_id","tenant_id","password","algorithm","created_at","updated_at"]).limit(F).offset(t).execute();if(n.length===0){a=!1;break}for(const o of n)await e.insertInto("password_history").values({id:O.nanoid(),user_id:o.user_id,tenant_id:o.tenant_id,password:o.password,algorithm:o.algorithm??"bcrypt",created_at:o.created_at,updated_at:o.updated_at??o.created_at,is_current:1}).execute();t+=F,n.length<F&&(a=!1)}await e.schema.alterTable("passwords").renameTo("passwords_backup").execute(),await e.schema.alterTable("password_history").renameTo("passwords").execute()}async function cd(e){await e.schema.alterTable("passwords").renameTo("password_history").execute();try{await e.schema.alterTable("passwords_backup").renameTo("passwords").execute()}catch{await e.schema.createTable("passwords").addColumn("user_id","varchar(255)",n=>n.notNull()).addColumn("tenant_id","varchar(255)",n=>n.references("tenants.id").onDelete("cascade").notNull()).addColumn("password","varchar(255)",n=>n.notNull()).addColumn("algorithm","varchar(255)",n=>n.notNull().defaultTo("bcrypt")).addColumn("created_at","varchar(35)",n=>n.notNull()).addColumn("updated_at","varchar(35)",n=>n.notNull()).addPrimaryKeyConstraint("passwords_pkey",["user_id","tenant_id"]).addForeignKeyConstraint("passwords_user_id_tenant_id_constraint",["user_id","tenant_id"],"users",["user_id","tenant_id"],n=>n.onDelete("cascade")).execute();let t=0,a=!0;for(;a;){const n=await e.selectFrom("password_history").select(["user_id","tenant_id","password","algorithm","created_at","updated_at"]).where("is_current","=",1).limit(F).offset(t).execute();if(n.length===0){a=!1;break}for(const o of n)await e.insertInto("passwords").values({user_id:o.user_id,tenant_id:o.tenant_id,password:o.password,algorithm:o.algorithm,created_at:o.created_at,updated_at:o.updated_at}).execute();t+=F,n.length<F&&(a=!1)}}await e.schema.dropTable("password_history").execute()}const dd=Object.freeze(Object.defineProperty({__proto__:null,down:cd,up:ld},Symbol.toStringTag,{value:"Module"}));async function ud(e){await e.schema.alterTable("connections").addColumn("display_name","varchar(255)").execute(),await e.schema.alterTable("connections").addColumn("is_domain_connection","integer").execute(),await e.schema.alterTable("connections").addColumn("show_as_button","integer").execute(),await e.schema.alterTable("connections").addColumn("metadata","varchar(4096)").execute()}async function _d(e){await e.schema.alterTable("connections").dropColumn("display_name").execute(),await e.schema.alterTable("connections").dropColumn("is_domain_connection").execute(),await e.schema.alterTable("connections").dropColumn("show_as_button").execute(),await e.schema.alterTable("connections").dropColumn("metadata").execute()}const md=Object.freeze(Object.defineProperty({__proto__:null,down:_d,up:ud},Symbol.toStringTag,{value:"Module"}));async function hd(e){await e.schema.alterTable("clients").addColumn("connections","text",t=>t.notNull().defaultTo("[]")).execute()}async function pd(e){await e.schema.alterTable("clients").dropColumn("connections").execute()}const fd=Object.freeze(Object.defineProperty({__proto__:null,down:pd,up:hd},Symbol.toStringTag,{value:"Module"}));async function gd(e){await e.schema.createTable("flows").addColumn("id","varchar(24)",t=>t.primaryKey()).addColumn("tenant_id","varchar(191)",t=>t.notNull()).addColumn("name","varchar(150)",t=>t.notNull()).addColumn("actions","text").addColumn("created_at","varchar(35)",t=>t.notNull()).addColumn("updated_at","varchar(35)",t=>t.notNull()).execute(),await e.schema.createIndex("flows_tenant_id_idx").on("flows").column("tenant_id").execute(),await e.schema.dropTable("passwords_backup").execute()}async function wd(e){await e.schema.dropTable("flows").execute()}const vd=Object.freeze(Object.defineProperty({__proto__:null,down:wd,up:gd},Symbol.toStringTag,{value:"Module"}));async function yd(e){await e.schema.alterTable("resource_servers").addColumn("is_system","integer",t=>t.defaultTo(0).notNull()).execute(),await e.schema.alterTable("roles").addColumn("is_system","integer",t=>t.defaultTo(0).notNull()).execute(),await e.schema.alterTable("connections").addColumn("is_system","integer",t=>t.defaultTo(0).notNull()).execute()}async function Cd(e){await e.schema.alterTable("resource_servers").dropColumn("is_system").execute(),await e.schema.alterTable("roles").dropColumn("is_system").execute(),await e.schema.alterTable("connections").dropColumn("is_system").execute()}const xd=Object.freeze(Object.defineProperty({__proto__:null,down:Cd,up:yd},Symbol.toStringTag,{value:"Module"}));async function Td(e){const t=await e.selectFrom("keys").selectAll().execute();await e.schema.dropTable("keys").execute(),await h.sql`ALTER TABLE connections RENAME TO connections_old`.execute(e),await e.schema.createTable("connections").addColumn("id","varchar(255)",a=>a.notNull()).addColumn("tenant_id","varchar(255)",a=>a.references("tenants.id").onDelete("cascade").notNull()).addColumn("name","varchar(255)",a=>a.notNull()).addColumn("response_type","varchar(255)").addColumn("response_mode","varchar(255)").addColumn("strategy","varchar(64)").addColumn("options","varchar(8192)",a=>a.defaultTo("{}").notNull()).addColumn("created_at","varchar(255)",a=>a.notNull()).addColumn("updated_at","varchar(255)",a=>a.notNull()).addColumn("display_name","varchar(255)").addColumn("is_domain_connection","integer").addColumn("show_as_button","integer").addColumn("metadata","varchar(4096)").addColumn("is_system","integer",a=>a.defaultTo(0).notNull()).addPrimaryKeyConstraint("connections_pkey",["tenant_id","id"]).execute(),await h.sql`
|
|
54
54
|
INSERT INTO connections (
|
|
55
55
|
id, tenant_id, name, response_type, response_mode, strategy, options,
|
|
56
56
|
created_at, updated_at, display_name,
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
created_at, updated_at, display_name,
|
|
62
62
|
is_domain_connection, show_as_button, metadata, is_system
|
|
63
63
|
FROM connections_old
|
|
64
|
-
`.execute(
|
|
64
|
+
`.execute(e),await e.schema.dropTable("connections_old").execute(),await e.schema.createIndex("connections_tenant_id_idx").on("connections").column("tenant_id").execute(),await e.schema.createTable("keys").addColumn("kid","varchar(255)",a=>a.primaryKey()).addColumn("tenant_id","varchar(255)",a=>a.references("tenants.id").onDelete("cascade")).addColumn("created_at","varchar(255)",a=>a.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)",a=>a.notNull().defaultTo("jwt_signing")).addColumn("connection","varchar(255)").execute();for(const a of t)await e.insertInto("keys").values(a).execute()}async function Nd(e){const t=await e.selectFrom("keys").selectAll().execute();await e.schema.dropTable("keys").execute(),await h.sql`ALTER TABLE connections RENAME TO connections_new`.execute(e),await e.schema.createTable("connections").addColumn("id","varchar(255)",a=>a.notNull().primaryKey()).addColumn("tenant_id","varchar(255)",a=>a.references("tenants.id").onDelete("cascade").notNull()).addColumn("name","varchar(255)",a=>a.notNull()).addColumn("response_type","varchar(255)").addColumn("response_mode","varchar(255)").addColumn("strategy","varchar(64)").addColumn("options","varchar(8192)",a=>a.defaultTo("{}").notNull()).addColumn("created_at","varchar(255)",a=>a.notNull()).addColumn("updated_at","varchar(255)",a=>a.notNull()).addColumn("display_name","varchar(255)").addColumn("is_domain_connection","integer").addColumn("show_as_button","integer").addColumn("metadata","varchar(4096)").addColumn("is_system","integer",a=>a.defaultTo(0).notNull()).execute(),await h.sql`
|
|
65
65
|
INSERT INTO connections (
|
|
66
66
|
id, tenant_id, name, response_type, response_mode, strategy, options,
|
|
67
67
|
created_at, updated_at, display_name,
|
|
@@ -72,44 +72,44 @@
|
|
|
72
72
|
created_at, updated_at, display_name,
|
|
73
73
|
is_domain_connection, show_as_button, metadata, is_system
|
|
74
74
|
FROM connections_new
|
|
75
|
-
`.execute(
|
|
75
|
+
`.execute(e),await e.schema.dropTable("connections_new").execute(),await e.schema.createIndex("connections_tenant_id_idx").on("connections").column("tenant_id").execute(),await e.schema.createTable("keys").addColumn("kid","varchar(255)",a=>a.primaryKey()).addColumn("tenant_id","varchar(255)",a=>a.references("tenants.id").onDelete("cascade")).addColumn("created_at","varchar(255)",a=>a.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)",a=>a.notNull().defaultTo("jwt_signing")).addColumn("connection","varchar(255)",a=>a.references("connections.id").onDelete("cascade")).execute();for(const a of t)await e.insertInto("keys").values(a).execute()}const Sd=Object.freeze(Object.defineProperty({__proto__:null,down:Nd,up:Td},Symbol.toStringTag,{value:"Module"}));async function bd(e){await e.schema.alterTable("login_sessions").addColumn("state","varchar(50)",t=>t.defaultTo("pending")).execute(),await e.schema.alterTable("login_sessions").addColumn("state_data","text").execute(),await e.schema.alterTable("login_sessions").addColumn("failure_reason","text").execute(),await e.schema.alterTable("login_sessions").addColumn("user_id","varchar(255)").execute(),await e.schema.createIndex("login_sessions_tenant_user_idx").on("login_sessions").columns(["tenant_id","user_id"]).execute(),await e.updateTable("login_sessions").set({state:h.sql`CASE
|
|
76
76
|
WHEN login_completed = 1 THEN 'completed'
|
|
77
77
|
WHEN expires_at < CURRENT_TIMESTAMP THEN 'expired'
|
|
78
78
|
ELSE 'pending'
|
|
79
|
-
END`}).execute(),await t.schema.alterTable("login_sessions").dropColumn("login_completed").execute(),await t.schema.createIndex("login_sessions_state_idx").on("login_sessions").column("state").execute(),await t.schema.createIndex("login_sessions_state_updated_idx").on("login_sessions").columns(["state","updated_at"]).execute()}async function Yf(t){await t.schema.alterTable("login_sessions").addColumn("login_completed","integer",e=>e.defaultTo(0)).execute(),await t.updateTable("login_sessions").set({login_completed:w`CASE WHEN state = 'completed' THEN 1 ELSE 0 END`}).execute(),await t.schema.dropIndex("login_sessions_state_updated_idx").execute(),await t.schema.dropIndex("login_sessions_state_idx").execute(),await t.schema.dropIndex("login_sessions_tenant_user_idx").execute(),await t.schema.alterTable("login_sessions").dropColumn("state").dropColumn("state_data").dropColumn("failure_reason").dropColumn("user_id").execute()}const Xf=Object.freeze(Object.defineProperty({__proto__:null,down:Yf,up:Hf},Symbol.toStringTag,{value:"Module"}));async function Zf(t){await t.schema.alterTable("roles").addColumn("metadata","varchar(4096)").execute(),await t.schema.alterTable("resource_servers").addColumn("metadata","varchar(4096)").execute()}async function ep(t){await t.schema.alterTable("roles").dropColumn("metadata").execute(),await t.schema.alterTable("resource_servers").dropColumn("metadata").execute()}const tp=Object.freeze(Object.defineProperty({__proto__:null,down:ep,up:Zf},Symbol.toStringTag,{value:"Module"}));async function ap(t){try{return await w`SELECT VERSION()`.execute(t),"mysql"}catch{return"sqlite"}}async function z(t,e,a,n){try{await t.schema.alterTable(e).addColumn(a,n).execute()}catch(r){if(r instanceof Error&&(r.message.includes("1060")||r.message.includes("duplicate column"))){console.log(` Column ${e}.${a} already exists, skipping`);return}throw r}}async function np(t){const e=await ap(t);await z(t,"refresh_tokens","created_at_ts","bigint"),await z(t,"refresh_tokens","expires_at_ts","bigint"),await z(t,"refresh_tokens","idle_expires_at_ts","bigint"),await z(t,"refresh_tokens","last_exchanged_at_ts","bigint"),await z(t,"sessions","created_at_ts","bigint"),await z(t,"sessions","updated_at_ts","bigint"),await z(t,"sessions","expires_at_ts","bigint"),await z(t,"sessions","idle_expires_at_ts","bigint"),await z(t,"sessions","authenticated_at_ts","bigint"),await z(t,"sessions","last_interaction_at_ts","bigint"),await z(t,"sessions","used_at_ts","bigint"),await z(t,"sessions","revoked_at_ts","bigint"),await z(t,"login_sessions","created_at_ts","bigint"),await z(t,"login_sessions","updated_at_ts","bigint"),await z(t,"login_sessions","expires_at_ts","bigint"),e==="mysql"&&(await t.schema.alterTable("refresh_tokens").modifyColumn("created_at","varchar(35)").execute(),await t.schema.alterTable("refresh_tokens").modifyColumn("expires_at","varchar(35)").execute(),await t.schema.alterTable("sessions").modifyColumn("created_at","varchar(35)").execute(),await t.schema.alterTable("sessions").modifyColumn("updated_at","varchar(35)").execute(),await t.schema.alterTable("sessions").modifyColumn("expires_at","varchar(35)").execute(),await t.schema.alterTable("login_sessions").modifyColumn("created_at","varchar(35)").execute(),await t.schema.alterTable("login_sessions").modifyColumn("updated_at","varchar(35)").execute(),await t.schema.alterTable("login_sessions").modifyColumn("expires_at","varchar(35)").execute()),await t.schema.createIndex("idx_sessions_user_id").on("sessions").columns(["tenant_id","user_id"]).execute(),await t.schema.createIndex("idx_refresh_tokens_user_id").on("refresh_tokens").columns(["tenant_id","user_id"]).execute(),await t.schema.createIndex("idx_refresh_tokens_session_id").on("refresh_tokens").column("session_id").execute(),await t.schema.createIndex("idx_refresh_tokens_expires_at_ts").on("refresh_tokens").column("expires_at_ts").execute(),await t.schema.createIndex("idx_sessions_expires_at_ts").on("sessions").column("expires_at_ts").execute(),await t.schema.createIndex("idx_login_sessions_expires_at_ts").on("login_sessions").column("expires_at_ts").execute()}async function We(t,e,a){try{await t.schema.dropIndex(e).on(a).execute()}catch(n){if(n instanceof Error&&n.message.includes("1091"))return;throw n}}async function F(t,e,a){try{await t.schema.alterTable(e).dropColumn(a).execute()}catch(n){if(n instanceof Error&&n.message.includes("1091"))return;throw n}}async function rp(t){await We(t,"idx_sessions_user_id","sessions"),await We(t,"idx_refresh_tokens_user_id","refresh_tokens"),await We(t,"idx_refresh_tokens_session_id","refresh_tokens"),await We(t,"idx_refresh_tokens_expires_at_ts","refresh_tokens"),await We(t,"idx_sessions_expires_at_ts","sessions"),await We(t,"idx_login_sessions_expires_at_ts","login_sessions"),await F(t,"refresh_tokens","created_at_ts"),await F(t,"refresh_tokens","expires_at_ts"),await F(t,"refresh_tokens","idle_expires_at_ts"),await F(t,"refresh_tokens","last_exchanged_at_ts"),await F(t,"sessions","created_at_ts"),await F(t,"sessions","updated_at_ts"),await F(t,"sessions","expires_at_ts"),await F(t,"sessions","idle_expires_at_ts"),await F(t,"sessions","authenticated_at_ts"),await F(t,"sessions","last_interaction_at_ts"),await F(t,"sessions","used_at_ts"),await F(t,"sessions","revoked_at_ts"),await F(t,"login_sessions","created_at_ts"),await F(t,"login_sessions","updated_at_ts"),await F(t,"login_sessions","expires_at_ts")}const op=Object.freeze(Object.defineProperty({__proto__:null,down:rp,up:np},Symbol.toStringTag,{value:"Module"}));async function lr(t){try{return await w`SELECT VERSION()`.execute(t),"mysql"}catch{return"sqlite"}}async function L(t,e,a){try{await t.schema.alterTable(e).dropColumn(a).execute()}catch(n){const r=n instanceof Error?n.message:String(n);if(r.includes("1091")||r.includes("no such column")){console.log(` Column ${e}.${a} doesn't exist, skipping`);return}throw n}}async function sp(t){const e=await lr(t);console.log("Dropping indexes that depend on old date columns...");try{await w`DROP INDEX IF EXISTS login_sessions_state_updated_idx`.execute(t),console.log(" Dropped index login_sessions_state_updated_idx")}catch(a){console.log(` Warning: Failed to drop index login_sessions_state_updated_idx: ${a instanceof Error?a.message:String(a)}`)}console.log("Dropping old date columns..."),await L(t,"refresh_tokens","created_at"),await L(t,"refresh_tokens","expires_at"),await L(t,"refresh_tokens","idle_expires_at"),await L(t,"refresh_tokens","last_exchanged_at"),await L(t,"sessions","created_at"),await L(t,"sessions","updated_at"),await L(t,"sessions","expires_at"),await L(t,"sessions","idle_expires_at"),await L(t,"sessions","authenticated_at"),await L(t,"sessions","last_interaction_at"),await L(t,"sessions","used_at"),await L(t,"sessions","revoked_at"),await L(t,"login_sessions","created_at"),await L(t,"login_sessions","updated_at"),await L(t,"login_sessions","expires_at"),e==="mysql"&&(console.log("Increasing ID column sizes for ULID support..."),await t.schema.alterTable("login_sessions").modifyColumn("id","varchar(26)").execute(),await t.schema.alterTable("login_sessions").modifyColumn("session_id","varchar(26)").execute(),await t.schema.alterTable("login_sessions").modifyColumn("csrf_token","varchar(26)").execute(),await t.schema.alterTable("sessions").modifyColumn("id","varchar(26)").execute(),await t.schema.alterTable("sessions").modifyColumn("login_session_id","varchar(26)").execute(),await t.schema.alterTable("refresh_tokens").modifyColumn("id","varchar(26)").execute(),await t.schema.alterTable("refresh_tokens").modifyColumn("session_id","varchar(26)").execute()),console.log("Migration completed successfully")}async function ip(t){await lr(t)==="mysql"&&(console.log("Restoring ID column sizes to varchar(21)..."),await t.schema.alterTable("login_sessions").modifyColumn("id","varchar(21)").execute(),await t.schema.alterTable("login_sessions").modifyColumn("session_id","varchar(21)").execute(),await t.schema.alterTable("login_sessions").modifyColumn("csrf_token","varchar(21)").execute(),await t.schema.alterTable("sessions").modifyColumn("id","varchar(21)").execute(),await t.schema.alterTable("sessions").modifyColumn("login_session_id","varchar(21)").execute(),await t.schema.alterTable("refresh_tokens").modifyColumn("id","varchar(21)").execute(),await t.schema.alterTable("refresh_tokens").modifyColumn("session_id","varchar(21)").execute()),console.log("Re-adding old date columns (data will be empty)..."),await t.schema.alterTable("refresh_tokens").addColumn("created_at","varchar(35)").execute(),await t.schema.alterTable("refresh_tokens").addColumn("expires_at","varchar(35)").execute(),await t.schema.alterTable("refresh_tokens").addColumn("idle_expires_at","varchar(35)").execute(),await t.schema.alterTable("refresh_tokens").addColumn("last_exchanged_at","varchar(35)").execute(),await t.schema.alterTable("sessions").addColumn("created_at","varchar(35)").execute(),await t.schema.alterTable("sessions").addColumn("updated_at","varchar(35)").execute(),await t.schema.alterTable("sessions").addColumn("expires_at","varchar(35)").execute(),await t.schema.alterTable("sessions").addColumn("idle_expires_at","varchar(35)").execute(),await t.schema.alterTable("sessions").addColumn("authenticated_at","varchar(35)").execute(),await t.schema.alterTable("sessions").addColumn("last_interaction_at","varchar(35)").execute(),await t.schema.alterTable("sessions").addColumn("used_at","varchar(35)").execute(),await t.schema.alterTable("sessions").addColumn("revoked_at","varchar(35)").execute(),await t.schema.alterTable("login_sessions").addColumn("created_at","varchar(35)").execute(),await t.schema.alterTable("login_sessions").addColumn("updated_at","varchar(35)").execute(),await t.schema.alterTable("login_sessions").addColumn("expires_at","varchar(35)").execute(),console.log("Rollback completed")}const cp=Object.freeze(Object.defineProperty({__proto__:null,down:ip,up:sp},Symbol.toStringTag,{value:"Module"}));async function up(t){await t.schema.alterTable("users").dropColumn("user_metadata").execute(),await t.schema.alterTable("users").addColumn("user_metadata","text").execute(),await t.schema.alterTable("users").addColumn("middle_name","varchar(100)").execute(),await t.schema.alterTable("users").addColumn("profile","text").execute(),await t.schema.alterTable("users").addColumn("website","text").execute(),await t.schema.alterTable("users").addColumn("gender","varchar(50)").execute(),await t.schema.alterTable("users").addColumn("birthdate","varchar(10)").execute(),await t.schema.alterTable("users").addColumn("zoneinfo","varchar(100)").execute()}async function lp(t){await t.schema.alterTable("users").dropColumn("middle_name").execute(),await t.schema.alterTable("users").dropColumn("profile").execute(),await t.schema.alterTable("users").dropColumn("website").execute(),await t.schema.alterTable("users").dropColumn("gender").execute(),await t.schema.alterTable("users").dropColumn("birthdate").execute(),await t.schema.alterTable("users").dropColumn("zoneinfo").execute(),await t.schema.alterTable("users").dropColumn("user_metadata").execute(),await t.schema.alterTable("users").addColumn("user_metadata","varchar(4096)").execute()}const dp=Object.freeze(Object.defineProperty({__proto__:null,down:lp,up},Symbol.toStringTag,{value:"Module"}));async function _p(t){await t.schema.alterTable("users").addColumn("preferred_username","varchar(255)").execute()}async function mp(t){await t.schema.alterTable("users").dropColumn("preferred_username").execute()}const hp=Object.freeze(Object.defineProperty({__proto__:null,down:mp,up:_p},Symbol.toStringTag,{value:"Module"}));async function fp(t){await t.schema.alterTable("users").addColumn("address","text").execute()}async function pp(t){await t.schema.alterTable("users").dropColumn("address").execute()}const gp=Object.freeze(Object.defineProperty({__proto__:null,down:pp,up:fp},Symbol.toStringTag,{value:"Module"}));async function wp(t){try{await t.schema.alterTable("login_sessions").addColumn("authParams_max_age","integer").execute(),console.log(" Added column authParams_max_age to login_sessions")}catch(e){console.log(` Warning: Could not add authParams_max_age column: ${e instanceof Error?e.message:String(e)}`)}try{await t.schema.alterTable("login_sessions").addColumn("authParams_acr_values","text").execute(),console.log(" Added column authParams_acr_values to login_sessions")}catch(e){console.log(` Warning: Could not add authParams_acr_values column: ${e instanceof Error?e.message:String(e)}`)}}async function yp(t){try{await t.schema.alterTable("login_sessions").dropColumn("authParams_max_age").execute()}catch(e){console.log(` Warning: Could not drop authParams_max_age column: ${e instanceof Error?e.message:String(e)}`)}try{await t.schema.alterTable("login_sessions").dropColumn("authParams_acr_values").execute()}catch(e){console.log(` Warning: Could not drop authParams_acr_values column: ${e instanceof Error?e.message:String(e)}`)}}const vp=Object.freeze(Object.defineProperty({__proto__:null,down:yp,up:wp},Symbol.toStringTag,{value:"Module"}));async function Np(t){await t.schema.alterTable("clients").addColumn("auth0_conformant","integer",e=>e.defaultTo(1)).execute()}async function Cp(t){await t.schema.alterTable("clients").dropColumn("auth0_conformant").execute()}const xp=Object.freeze(Object.defineProperty({__proto__:null,down:Cp,up:Np},Symbol.toStringTag,{value:"Module"}));async function Tp(t){await t.schema.createTable("universal_login_templates").addColumn("tenant_id","varchar(191)",e=>e.primaryKey().references("tenants.id").onDelete("cascade")).addColumn("body","text",e=>e.notNull()).addColumn("updated_at_ts","integer",e=>e.notNull()).addColumn("created_at_ts","integer",e=>e.notNull()).execute()}async function Sp(t){await t.schema.dropTable("universal_login_templates").execute()}const bp=Object.freeze(Object.defineProperty({__proto__:null,down:Sp,up:Tp},Symbol.toStringTag,{value:"Module"}));async function Op(t){await t.schema.createTable("custom_text").addColumn("tenant_id","varchar(191)",e=>e.notNull().references("tenants.id").onDelete("cascade")).addColumn("prompt","varchar(64)",e=>e.notNull()).addColumn("language","varchar(16)",e=>e.notNull()).addColumn("custom_text","text",e=>e.notNull()).addColumn("created_at_ts","bigint",e=>e.notNull()).addColumn("updated_at_ts","bigint",e=>e.notNull()).addPrimaryKeyConstraint("custom_text_pk",["tenant_id","prompt","language"]).execute()}async function kp(t){await t.schema.dropTable("custom_text").execute()}const Ep=Object.freeze(Object.defineProperty({__proto__:null,down:kp,up:Op},Symbol.toStringTag,{value:"Module"}));async function Ip(t){await t.schema.alterTable("tenants").addColumn("mfa","text").execute()}async function $p(t){await t.schema.alterTable("tenants").dropColumn("mfa").execute()}const Ap=Object.freeze(Object.defineProperty({__proto__:null,down:$p,up:Ip},Symbol.toStringTag,{value:"Module"}));async function Dp(t){try{return await w`SELECT VERSION()`.execute(t),"mysql"}catch{return"sqlite"}}async function ua(t,e,a,n){try{await t.schema.alterTable(e).addColumn(a,w.raw(n)).execute()}catch(r){if(r instanceof Error&&(r.message.includes("1060")||r.message.includes("duplicate column"))){console.log(` Column ${e}.${a} already exists, skipping`);return}throw r}}async function Pp(t){const e=await Dp(t);await ua(t,"hooks","template_id","text"),await ua(t,"hooks","created_at_ts","bigint"),await ua(t,"hooks","updated_at_ts","bigint"),e==="mysql"?await w`
|
|
79
|
+
END`}).execute(),await e.schema.alterTable("login_sessions").dropColumn("login_completed").execute(),await e.schema.createIndex("login_sessions_state_idx").on("login_sessions").column("state").execute(),await e.schema.createIndex("login_sessions_state_updated_idx").on("login_sessions").columns(["state","updated_at"]).execute()}async function Od(e){await e.schema.alterTable("login_sessions").addColumn("login_completed","integer",t=>t.defaultTo(0)).execute(),await e.updateTable("login_sessions").set({login_completed:h.sql`CASE WHEN state = 'completed' THEN 1 ELSE 0 END`}).execute(),await e.schema.dropIndex("login_sessions_state_updated_idx").execute(),await e.schema.dropIndex("login_sessions_state_idx").execute(),await e.schema.dropIndex("login_sessions_tenant_user_idx").execute(),await e.schema.alterTable("login_sessions").dropColumn("state").dropColumn("state_data").dropColumn("failure_reason").dropColumn("user_id").execute()}const kd=Object.freeze(Object.defineProperty({__proto__:null,down:Od,up:bd},Symbol.toStringTag,{value:"Module"}));async function $d(e){await e.schema.alterTable("roles").addColumn("metadata","varchar(4096)").execute(),await e.schema.alterTable("resource_servers").addColumn("metadata","varchar(4096)").execute()}async function Ed(e){await e.schema.alterTable("roles").dropColumn("metadata").execute(),await e.schema.alterTable("resource_servers").dropColumn("metadata").execute()}const Id=Object.freeze(Object.defineProperty({__proto__:null,down:Ed,up:$d},Symbol.toStringTag,{value:"Module"}));async function zd(e){try{return await h.sql`SELECT VERSION()`.execute(e),"mysql"}catch{return"sqlite"}}async function x(e,t,a,n){try{await e.schema.alterTable(t).addColumn(a,n).execute()}catch(o){if(o instanceof Error&&(o.message.includes("1060")||o.message.includes("duplicate column"))){console.log(` Column ${t}.${a} already exists, skipping`);return}throw o}}async function Pd(e){const t=await zd(e);await x(e,"refresh_tokens","created_at_ts","bigint"),await x(e,"refresh_tokens","expires_at_ts","bigint"),await x(e,"refresh_tokens","idle_expires_at_ts","bigint"),await x(e,"refresh_tokens","last_exchanged_at_ts","bigint"),await x(e,"sessions","created_at_ts","bigint"),await x(e,"sessions","updated_at_ts","bigint"),await x(e,"sessions","expires_at_ts","bigint"),await x(e,"sessions","idle_expires_at_ts","bigint"),await x(e,"sessions","authenticated_at_ts","bigint"),await x(e,"sessions","last_interaction_at_ts","bigint"),await x(e,"sessions","used_at_ts","bigint"),await x(e,"sessions","revoked_at_ts","bigint"),await x(e,"login_sessions","created_at_ts","bigint"),await x(e,"login_sessions","updated_at_ts","bigint"),await x(e,"login_sessions","expires_at_ts","bigint"),t==="mysql"&&(await e.schema.alterTable("refresh_tokens").modifyColumn("created_at","varchar(35)").execute(),await e.schema.alterTable("refresh_tokens").modifyColumn("expires_at","varchar(35)").execute(),await e.schema.alterTable("sessions").modifyColumn("created_at","varchar(35)").execute(),await e.schema.alterTable("sessions").modifyColumn("updated_at","varchar(35)").execute(),await e.schema.alterTable("sessions").modifyColumn("expires_at","varchar(35)").execute(),await e.schema.alterTable("login_sessions").modifyColumn("created_at","varchar(35)").execute(),await e.schema.alterTable("login_sessions").modifyColumn("updated_at","varchar(35)").execute(),await e.schema.alterTable("login_sessions").modifyColumn("expires_at","varchar(35)").execute()),await e.schema.createIndex("idx_sessions_user_id").on("sessions").columns(["tenant_id","user_id"]).execute(),await e.schema.createIndex("idx_refresh_tokens_user_id").on("refresh_tokens").columns(["tenant_id","user_id"]).execute(),await e.schema.createIndex("idx_refresh_tokens_session_id").on("refresh_tokens").column("session_id").execute(),await e.schema.createIndex("idx_refresh_tokens_expires_at_ts").on("refresh_tokens").column("expires_at_ts").execute(),await e.schema.createIndex("idx_sessions_expires_at_ts").on("sessions").column("expires_at_ts").execute(),await e.schema.createIndex("idx_login_sessions_expires_at_ts").on("login_sessions").column("expires_at_ts").execute()}async function j(e,t,a){try{await e.schema.dropIndex(t).on(a).execute()}catch(n){if(n instanceof Error&&n.message.includes("1091"))return;throw n}}async function T(e,t,a){try{await e.schema.alterTable(t).dropColumn(a).execute()}catch(n){if(n instanceof Error&&n.message.includes("1091"))return;throw n}}async function Dd(e){await j(e,"idx_sessions_user_id","sessions"),await j(e,"idx_refresh_tokens_user_id","refresh_tokens"),await j(e,"idx_refresh_tokens_session_id","refresh_tokens"),await j(e,"idx_refresh_tokens_expires_at_ts","refresh_tokens"),await j(e,"idx_sessions_expires_at_ts","sessions"),await j(e,"idx_login_sessions_expires_at_ts","login_sessions"),await T(e,"refresh_tokens","created_at_ts"),await T(e,"refresh_tokens","expires_at_ts"),await T(e,"refresh_tokens","idle_expires_at_ts"),await T(e,"refresh_tokens","last_exchanged_at_ts"),await T(e,"sessions","created_at_ts"),await T(e,"sessions","updated_at_ts"),await T(e,"sessions","expires_at_ts"),await T(e,"sessions","idle_expires_at_ts"),await T(e,"sessions","authenticated_at_ts"),await T(e,"sessions","last_interaction_at_ts"),await T(e,"sessions","used_at_ts"),await T(e,"sessions","revoked_at_ts"),await T(e,"login_sessions","created_at_ts"),await T(e,"login_sessions","updated_at_ts"),await T(e,"login_sessions","expires_at_ts")}const Ad=Object.freeze(Object.defineProperty({__proto__:null,down:Dd,up:Pd},Symbol.toStringTag,{value:"Module"}));async function ge(e){try{return await h.sql`SELECT VERSION()`.execute(e),"mysql"}catch{return"sqlite"}}async function N(e,t,a){try{await e.schema.alterTable(t).dropColumn(a).execute()}catch(n){const o=n instanceof Error?n.message:String(n);if(o.includes("1091")||o.includes("no such column")){console.log(` Column ${t}.${a} doesn't exist, skipping`);return}throw n}}async function jd(e){const t=await ge(e);console.log("Dropping indexes that depend on old date columns...");try{await h.sql`DROP INDEX IF EXISTS login_sessions_state_updated_idx`.execute(e),console.log(" Dropped index login_sessions_state_updated_idx")}catch(a){console.log(` Warning: Failed to drop index login_sessions_state_updated_idx: ${a instanceof Error?a.message:String(a)}`)}console.log("Dropping old date columns..."),await N(e,"refresh_tokens","created_at"),await N(e,"refresh_tokens","expires_at"),await N(e,"refresh_tokens","idle_expires_at"),await N(e,"refresh_tokens","last_exchanged_at"),await N(e,"sessions","created_at"),await N(e,"sessions","updated_at"),await N(e,"sessions","expires_at"),await N(e,"sessions","idle_expires_at"),await N(e,"sessions","authenticated_at"),await N(e,"sessions","last_interaction_at"),await N(e,"sessions","used_at"),await N(e,"sessions","revoked_at"),await N(e,"login_sessions","created_at"),await N(e,"login_sessions","updated_at"),await N(e,"login_sessions","expires_at"),t==="mysql"&&(console.log("Increasing ID column sizes for ULID support..."),await e.schema.alterTable("login_sessions").modifyColumn("id","varchar(26)").execute(),await e.schema.alterTable("login_sessions").modifyColumn("session_id","varchar(26)").execute(),await e.schema.alterTable("login_sessions").modifyColumn("csrf_token","varchar(26)").execute(),await e.schema.alterTable("sessions").modifyColumn("id","varchar(26)").execute(),await e.schema.alterTable("sessions").modifyColumn("login_session_id","varchar(26)").execute(),await e.schema.alterTable("refresh_tokens").modifyColumn("id","varchar(26)").execute(),await e.schema.alterTable("refresh_tokens").modifyColumn("session_id","varchar(26)").execute()),console.log("Migration completed successfully")}async function Fd(e){await ge(e)==="mysql"&&(console.log("Restoring ID column sizes to varchar(21)..."),await e.schema.alterTable("login_sessions").modifyColumn("id","varchar(21)").execute(),await e.schema.alterTable("login_sessions").modifyColumn("session_id","varchar(21)").execute(),await e.schema.alterTable("login_sessions").modifyColumn("csrf_token","varchar(21)").execute(),await e.schema.alterTable("sessions").modifyColumn("id","varchar(21)").execute(),await e.schema.alterTable("sessions").modifyColumn("login_session_id","varchar(21)").execute(),await e.schema.alterTable("refresh_tokens").modifyColumn("id","varchar(21)").execute(),await e.schema.alterTable("refresh_tokens").modifyColumn("session_id","varchar(21)").execute()),console.log("Re-adding old date columns (data will be empty)..."),await e.schema.alterTable("refresh_tokens").addColumn("created_at","varchar(35)").execute(),await e.schema.alterTable("refresh_tokens").addColumn("expires_at","varchar(35)").execute(),await e.schema.alterTable("refresh_tokens").addColumn("idle_expires_at","varchar(35)").execute(),await e.schema.alterTable("refresh_tokens").addColumn("last_exchanged_at","varchar(35)").execute(),await e.schema.alterTable("sessions").addColumn("created_at","varchar(35)").execute(),await e.schema.alterTable("sessions").addColumn("updated_at","varchar(35)").execute(),await e.schema.alterTable("sessions").addColumn("expires_at","varchar(35)").execute(),await e.schema.alterTable("sessions").addColumn("idle_expires_at","varchar(35)").execute(),await e.schema.alterTable("sessions").addColumn("authenticated_at","varchar(35)").execute(),await e.schema.alterTable("sessions").addColumn("last_interaction_at","varchar(35)").execute(),await e.schema.alterTable("sessions").addColumn("used_at","varchar(35)").execute(),await e.schema.alterTable("sessions").addColumn("revoked_at","varchar(35)").execute(),await e.schema.alterTable("login_sessions").addColumn("created_at","varchar(35)").execute(),await e.schema.alterTable("login_sessions").addColumn("updated_at","varchar(35)").execute(),await e.schema.alterTable("login_sessions").addColumn("expires_at","varchar(35)").execute(),console.log("Rollback completed")}const Rd=Object.freeze(Object.defineProperty({__proto__:null,down:Fd,up:jd},Symbol.toStringTag,{value:"Module"}));async function Md(e){await e.schema.alterTable("users").dropColumn("user_metadata").execute(),await e.schema.alterTable("users").addColumn("user_metadata","text").execute(),await e.schema.alterTable("users").addColumn("middle_name","varchar(100)").execute(),await e.schema.alterTable("users").addColumn("profile","text").execute(),await e.schema.alterTable("users").addColumn("website","text").execute(),await e.schema.alterTable("users").addColumn("gender","varchar(50)").execute(),await e.schema.alterTable("users").addColumn("birthdate","varchar(10)").execute(),await e.schema.alterTable("users").addColumn("zoneinfo","varchar(100)").execute()}async function Jd(e){await e.schema.alterTable("users").dropColumn("middle_name").execute(),await e.schema.alterTable("users").dropColumn("profile").execute(),await e.schema.alterTable("users").dropColumn("website").execute(),await e.schema.alterTable("users").dropColumn("gender").execute(),await e.schema.alterTable("users").dropColumn("birthdate").execute(),await e.schema.alterTable("users").dropColumn("zoneinfo").execute(),await e.schema.alterTable("users").dropColumn("user_metadata").execute(),await e.schema.alterTable("users").addColumn("user_metadata","varchar(4096)").execute()}const qd=Object.freeze(Object.defineProperty({__proto__:null,down:Jd,up:Md},Symbol.toStringTag,{value:"Module"}));async function Ld(e){await e.schema.alterTable("users").addColumn("preferred_username","varchar(255)").execute()}async function Kd(e){await e.schema.alterTable("users").dropColumn("preferred_username").execute()}const Ud=Object.freeze(Object.defineProperty({__proto__:null,down:Kd,up:Ld},Symbol.toStringTag,{value:"Module"}));async function Bd(e){await e.schema.alterTable("users").addColumn("address","text").execute()}async function Qd(e){await e.schema.alterTable("users").dropColumn("address").execute()}const Hd=Object.freeze(Object.defineProperty({__proto__:null,down:Qd,up:Bd},Symbol.toStringTag,{value:"Module"}));async function Yd(e){try{await e.schema.alterTable("login_sessions").addColumn("authParams_max_age","integer").execute(),console.log(" Added column authParams_max_age to login_sessions")}catch(t){console.log(` Warning: Could not add authParams_max_age column: ${t instanceof Error?t.message:String(t)}`)}try{await e.schema.alterTable("login_sessions").addColumn("authParams_acr_values","text").execute(),console.log(" Added column authParams_acr_values to login_sessions")}catch(t){console.log(` Warning: Could not add authParams_acr_values column: ${t instanceof Error?t.message:String(t)}`)}}async function Wd(e){try{await e.schema.alterTable("login_sessions").dropColumn("authParams_max_age").execute()}catch(t){console.log(` Warning: Could not drop authParams_max_age column: ${t instanceof Error?t.message:String(t)}`)}try{await e.schema.alterTable("login_sessions").dropColumn("authParams_acr_values").execute()}catch(t){console.log(` Warning: Could not drop authParams_acr_values column: ${t instanceof Error?t.message:String(t)}`)}}const Gd=Object.freeze(Object.defineProperty({__proto__:null,down:Wd,up:Yd},Symbol.toStringTag,{value:"Module"}));async function Vd(e){await e.schema.alterTable("clients").addColumn("auth0_conformant","integer",t=>t.defaultTo(1)).execute()}async function Xd(e){await e.schema.alterTable("clients").dropColumn("auth0_conformant").execute()}const Zd=Object.freeze(Object.defineProperty({__proto__:null,down:Xd,up:Vd},Symbol.toStringTag,{value:"Module"}));async function eu(e){await e.schema.createTable("universal_login_templates").addColumn("tenant_id","varchar(191)",t=>t.primaryKey().references("tenants.id").onDelete("cascade")).addColumn("body","text",t=>t.notNull()).addColumn("updated_at_ts","integer",t=>t.notNull()).addColumn("created_at_ts","integer",t=>t.notNull()).execute()}async function tu(e){await e.schema.dropTable("universal_login_templates").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("custom_text").addColumn("tenant_id","varchar(191)",t=>t.notNull().references("tenants.id").onDelete("cascade")).addColumn("prompt","varchar(64)",t=>t.notNull()).addColumn("language","varchar(16)",t=>t.notNull()).addColumn("custom_text","text",t=>t.notNull()).addColumn("created_at_ts","bigint",t=>t.notNull()).addColumn("updated_at_ts","bigint",t=>t.notNull()).addPrimaryKeyConstraint("custom_text_pk",["tenant_id","prompt","language"]).execute()}async function ou(e){await e.schema.dropTable("custom_text").execute()}const ru=Object.freeze(Object.defineProperty({__proto__:null,down:ou,up:nu},Symbol.toStringTag,{value:"Module"}));async function su(e){await e.schema.alterTable("tenants").addColumn("mfa","text").execute()}async function iu(e){await e.schema.alterTable("tenants").dropColumn("mfa").execute()}const lu=Object.freeze(Object.defineProperty({__proto__:null,down:iu,up:su},Symbol.toStringTag,{value:"Module"}));async function cu(e){try{return await h.sql`SELECT VERSION()`.execute(e),"mysql"}catch{return"sqlite"}}async function B(e,t,a,n){try{await e.schema.alterTable(t).addColumn(a,h.sql.raw(n)).execute()}catch(o){if(o instanceof Error&&(o.message.includes("1060")||o.message.includes("duplicate column"))){console.log(` Column ${t}.${a} already exists, skipping`);return}throw o}}async function du(e){const t=await cu(e);await B(e,"hooks","template_id","text"),await B(e,"hooks","created_at_ts","bigint"),await B(e,"hooks","updated_at_ts","bigint"),t==="mysql"?await h.sql`
|
|
80
80
|
UPDATE hooks
|
|
81
81
|
SET created_at_ts = UNIX_TIMESTAMP(created_at) * 1000,
|
|
82
82
|
updated_at_ts = UNIX_TIMESTAMP(updated_at) * 1000
|
|
83
83
|
WHERE created_at_ts IS NULL AND created_at IS NOT NULL
|
|
84
|
-
`.execute(
|
|
84
|
+
`.execute(e):await h.sql`
|
|
85
85
|
UPDATE hooks
|
|
86
86
|
SET created_at_ts = CAST(strftime('%s', created_at) AS INTEGER) * 1000,
|
|
87
87
|
updated_at_ts = CAST(strftime('%s', updated_at) AS INTEGER) * 1000
|
|
88
88
|
WHERE created_at_ts IS NULL AND created_at IS NOT NULL
|
|
89
|
-
`.execute(
|
|
89
|
+
`.execute(e),t==="mysql"&&(await e.schema.alterTable("hooks").modifyColumn("created_at","varchar(255)").execute(),await e.schema.alterTable("hooks").modifyColumn("updated_at","varchar(255)").execute())}async function Q(e,t,a){try{await e.schema.alterTable(t).dropColumn(a).execute()}catch(n){if(n instanceof Error&&(n.message.includes("1091")||n.message.includes("no such column")))return;throw n}}async function uu(e){await Q(e,"hooks","template_id"),await Q(e,"hooks","created_at_ts"),await Q(e,"hooks","updated_at_ts")}const _u=Object.freeze(Object.defineProperty({__proto__:null,down:uu,up:du},Symbol.toStringTag,{value:"Module"}));async function we(e){try{return await h.sql`SELECT VERSION()`.execute(e),"mysql"}catch{return"sqlite"}}async function re(e,t,a){try{await e.schema.alterTable(t).dropColumn(a).execute()}catch(n){const o=n instanceof Error?n.message:String(n);if(o.includes("1091")||o.includes("no such column")){console.log(` Column ${t}.${a} doesn't exist, skipping`);return}throw n}}async function mu(e){var r,s,i,l,d;const t=await we(e);console.log("Running preflight integrity check on hooks timestamp columns...");const{rows:a}=await h.sql`SELECT
|
|
90
90
|
SUM(CASE WHEN created_at_ts IS NULL THEN 1 ELSE 0 END) AS null_created,
|
|
91
91
|
SUM(CASE WHEN updated_at_ts IS NULL THEN 1 ELSE 0 END) AS null_updated
|
|
92
|
-
FROM hooks`.execute(
|
|
92
|
+
FROM hooks`.execute(e),n=Number(((r=a[0])==null?void 0:r.null_created)??0),o=Number(((s=a[0])==null?void 0:s.null_updated)??0);if(n>0||o>0)throw new Error(`Preflight check failed: ${n} row(s) with NULL created_at_ts, ${o} row(s) with NULL updated_at_ts. All timestamp data must be migrated to _ts columns before dropping legacy columns.`);if(console.log(" Preflight check passed — all _ts columns are populated."),t==="mysql"){console.log("Running preflight length check on columns being narrowed...");const{rows:u}=await h.sql`SELECT
|
|
93
93
|
SUM(CASE WHEN CHAR_LENGTH(hook_id) > 21 THEN 1 ELSE 0 END) AS long_hook_id,
|
|
94
94
|
SUM(CASE WHEN CHAR_LENGTH(form_id) > 128 THEN 1 ELSE 0 END) AS long_form_id,
|
|
95
95
|
SUM(CASE WHEN CHAR_LENGTH(template_id) > 64 THEN 1 ELSE 0 END) AS long_template_id
|
|
96
|
-
FROM hooks`.execute(
|
|
96
|
+
FROM hooks`.execute(e),c=Number(((i=u[0])==null?void 0:i.long_hook_id)??0),m=Number(((l=u[0])==null?void 0:l.long_form_id)??0),_=Number(((d=u[0])==null?void 0:d.long_template_id)??0),p=[];if(c>0&&p.push(`${c} row(s) with hook_id longer than 21 chars`),m>0&&p.push(`${m} row(s) with form_id longer than 128 chars`),_>0&&p.push(`${_} row(s) with template_id longer than 64 chars`),p.length>0)throw new Error(`Preflight length check failed: ${p.join("; ")}. Truncate or fix oversized values before running this migration.`);console.log(" Preflight length check passed — all values fit within new column sizes.")}console.log("Dropping old date columns from hooks..."),await re(e,"hooks","created_at"),await re(e,"hooks","updated_at"),t==="mysql"&&(console.log("Fixing hook column types..."),await e.schema.alterTable("hooks").modifyColumn("hook_id","varchar(21)",u=>u.notNull().primaryKey()).execute(),await e.schema.alterTable("hooks").modifyColumn("form_id","varchar(128)").execute(),await e.schema.alterTable("hooks").modifyColumn("template_id","varchar(64)").execute())}async function hu(e){const t=await we(e);await e.schema.alterTable("hooks").addColumn("created_at","varchar(255)").execute(),await e.schema.alterTable("hooks").addColumn("updated_at","varchar(255)").execute(),t==="mysql"?await h.sql`
|
|
97
97
|
UPDATE hooks
|
|
98
98
|
SET created_at = DATE_FORMAT(CONVERT_TZ(FROM_UNIXTIME(created_at_ts / 1000), @@session.time_zone, '+00:00'), '%Y-%m-%dT%H:%i:%s.000Z'),
|
|
99
99
|
updated_at = DATE_FORMAT(CONVERT_TZ(FROM_UNIXTIME(updated_at_ts / 1000), @@session.time_zone, '+00:00'), '%Y-%m-%dT%H:%i:%s.000Z')
|
|
100
100
|
WHERE created_at_ts IS NOT NULL
|
|
101
|
-
`.execute(
|
|
101
|
+
`.execute(e):await h.sql`
|
|
102
102
|
UPDATE hooks
|
|
103
103
|
SET created_at = strftime('%Y-%m-%dT%H:%M:%fZ', created_at_ts / 1000, 'unixepoch'),
|
|
104
104
|
updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', updated_at_ts / 1000, 'unixepoch')
|
|
105
105
|
WHERE created_at_ts IS NOT NULL
|
|
106
|
-
`.execute(
|
|
106
|
+
`.execute(e),t==="mysql"&&(await e.schema.alterTable("hooks").modifyColumn("hook_id","varchar(255)",a=>a.notNull().primaryKey()).execute(),await e.schema.alterTable("hooks").modifyColumn("form_id","text").execute(),await e.schema.alterTable("hooks").modifyColumn("template_id","text").execute())}const pu=Object.freeze(Object.defineProperty({__proto__:null,down:hu,up:mu},Symbol.toStringTag,{value:"Module"}));async function fu(e){const{rows:t}=await h.sql`
|
|
107
107
|
SELECT username, provider, tenant_id, COUNT(*) AS cnt
|
|
108
108
|
FROM users
|
|
109
109
|
WHERE username IS NOT NULL
|
|
110
110
|
GROUP BY username, provider, tenant_id
|
|
111
111
|
HAVING COUNT(*) > 1
|
|
112
|
-
`.execute(
|
|
112
|
+
`.execute(e);if(t.length>0){console.log(`Found ${t.length} duplicate (username, provider, tenant_id) group(s) – cleaning up…`);for(const a of t)console.log(` username=${a.username} provider=${a.provider} tenant_id=${a.tenant_id} count=${a.cnt}`);await h.sql`
|
|
113
113
|
DELETE FROM users
|
|
114
114
|
WHERE username IS NOT NULL
|
|
115
115
|
AND (user_id, tenant_id) NOT IN (
|
|
@@ -125,4 +125,4 @@
|
|
|
125
125
|
GROUP BY username, provider, tenant_id
|
|
126
126
|
HAVING COUNT(*) > 1
|
|
127
127
|
)
|
|
128
|
-
`.execute(
|
|
128
|
+
`.execute(e),console.log("Duplicate rows removed.")}await e.schema.createIndex("unique_username_provider").on("users").unique().columns(["username","provider","tenant_id"]).execute()}async function gu(e){await e.schema.dropIndex("unique_username_provider").execute()}const wu=Object.freeze(Object.defineProperty({__proto__:null,down:gu,up:fu},Symbol.toStringTag,{value:"Module"}));async function vu(e){await e.schema.alterTable("refresh_tokens").addColumn("login_id","varchar(26)").execute(),await e.schema.createIndex("idx_refresh_tokens_login_id").on("refresh_tokens").column("login_id").execute()}async function yu(e){await e.schema.dropIndex("idx_refresh_tokens_login_id").execute(),await e.schema.alterTable("refresh_tokens").dropColumn("login_id").execute()}const Cu=Object.freeze(Object.defineProperty({__proto__:null,down:yu,up:vu},Symbol.toStringTag,{value:"Module"}));async function ve(e){try{return await h.sql`SELECT VERSION()`.execute(e),"mysql"}catch{return"sqlite"}}async function xu(e){await ve(e)==="mysql"?(await e.schema.alterTable("refresh_tokens").modifyColumn("login_id","varchar(26)",a=>a.notNull()).execute(),await e.schema.dropIndex("idx_refresh_tokens_session_id").execute(),await e.schema.alterTable("refresh_tokens").dropColumn("session_id").execute()):(await e.schema.dropIndex("idx_refresh_tokens_session_id").execute(),await e.schema.alterTable("refresh_tokens").dropColumn("session_id").execute())}async function Tu(e){await ve(e)==="mysql"?(await e.schema.alterTable("refresh_tokens").addColumn("session_id","varchar(26)").execute(),await e.schema.createIndex("idx_refresh_tokens_session_id").on("refresh_tokens").column("session_id").execute(),await e.schema.alterTable("refresh_tokens").modifyColumn("login_id","varchar(26)").execute()):await e.schema.alterTable("refresh_tokens").addColumn("session_id","varchar(21)").execute()}const Nu=Object.freeze(Object.defineProperty({__proto__:null,down:Tu,up:xu},Symbol.toStringTag,{value:"Module"}));async function Su(e){await e.schema.createIndex("idx_sessions_idle_expires_at_ts").on("sessions").column("idle_expires_at_ts").execute(),await e.schema.createIndex("idx_refresh_tokens_idle_expires_at_ts").on("refresh_tokens").column("idle_expires_at_ts").execute()}async function bu(e){await e.schema.dropIndex("idx_sessions_idle_expires_at_ts").on("sessions").execute(),await e.schema.dropIndex("idx_refresh_tokens_idle_expires_at_ts").on("refresh_tokens").execute()}const Ou=Object.freeze(Object.defineProperty({__proto__:null,down:bu,up:Su},Symbol.toStringTag,{value:"Module"}));async function ku(e){await e.schema.alterTable("login_sessions").addColumn("auth_connection","varchar(255)").execute()}async function $u(e){await e.schema.alterTable("login_sessions").dropColumn("auth_connection").execute()}const Eu=Object.freeze(Object.defineProperty({__proto__:null,down:$u,up:ku},Symbol.toStringTag,{value:"Module"}));async function Iu(e){await e.schema.createTable("mfa_enrollments").addColumn("id","varchar(26)",t=>t.primaryKey()).addColumn("tenant_id","varchar(191)",t=>t.references("tenants.id").onDelete("cascade").notNull()).addColumn("user_id","varchar(255)",t=>t.notNull()).addColumn("type","varchar(32)",t=>t.notNull()).addColumn("phone_number","varchar(32)").addColumn("totp_secret","varchar(255)").addColumn("confirmed","integer",t=>t.notNull().defaultTo(0)).addColumn("created_at_ts","bigint",t=>t.notNull()).addColumn("updated_at_ts","bigint",t=>t.notNull()).execute(),await e.schema.createIndex("mfa_enrollments_tenant_user_idx").on("mfa_enrollments").columns(["tenant_id","user_id"]).execute()}async function zu(e){await e.schema.dropTable("mfa_enrollments").execute()}const Pu=Object.freeze(Object.defineProperty({__proto__:null,down:zu,up:Iu},Symbol.toStringTag,{value:"Module"}));async function Du(e){await e.schema.alterTable("codes").addColumn("otp","varchar(32)").execute()}async function Au(e){await e.schema.alterTable("codes").dropColumn("otp").execute()}const ju=Object.freeze(Object.defineProperty({__proto__:null,down:Au,up:Du},Symbol.toStringTag,{value:"Module"})),ye={m1_init:ao,m2_magicLink:ro,m3_updateAt:lo,m4_logTable:_o,m5_userProfile:po,m6_sessions:wo,m7_passwords:Co,m8_logsTableNewFields:No,m9_passwordTableNewField:Oo,n01_codesTable:Eo,n11_universalLoginSession:Po,n12_userFields:jo,n13_userEmailIndex:Mo,n14_profileDataField:Lo,n15_userEmailIndex:Bo,n16_userLocale:Yo,n17_signingKeys:Vo,n18_logsFields:er,n19_connectionsUserinfo:nr,n20_missingFields:sr,n21_sessionDeletedAt:cr,n22_dropLogsFields:_r,n23_dropUsersFields:pr,n24_logsIndexes:wr,n25_logDescMaxLength:Cr,n26_logsTableExtraFields:Nr,n27_usersTableNameIndex:Or,n28_usersEmailConstrain:Er,n29_increaseOtpStateLength:Pr,n30_increaseTicketStateLength:jr,n31_branding:Mr,n32_indexesAndNotNull:Lr,n33_vendorIdInUniversalLoginSession:Br,n34_auth0ClientInUniversalLoginSession:Yr,n35_increaseUniversalSessionStateLength:Vr,n36_authenticationCodes:es,n37_disableSignUps:ns,n38_otpIpAddress:ss,n39_increaseUserAgentLength:cs,n40_userId:_s,n41_hooks:ps,n42_userIdIndexes:ws,n43_userIdIndexes:Cs,n44_codes:Ns,n45_hookProperties:Os,n46_loginAuth0Client:Es,n47_loginAuth0Client:Ps,n48_saml:js,n49_removeFields:Ms,n50_authParamsNonce:Ls,n51_connectionid:Bs,n52_cert:Ys,n53_codes_primary_key:Vs,n54_cleanup_tables:ei,n55_logs_index:ni,n56_application_fields:si,n57_prompt_settings:ci,n58_connection_client_id:_i,n59_connection_options:pi,n60_users_metadata:wi,n61_userLocales:Ci,n62_prompt:Ni,n63_connection_cleanup:Oi,n64_act_as:Ei,n65_code_verifier:Pi,n66_email_providers:ji,n67_drop_tickets:Mi,n68_login_useragents:Li,n70_refresh_tokens:Bi,n71_session_new_fields:Yi,n72_session_primary_key:Vi,n73_drop_sessions:el,n74_custom_domains:nl,n75_organizations:sl,n76_authorization_url_length:cl,n77_drop_sessions:_l,n78_login_sessions:pl,n79_drop_sessions_2:wl,n80_recreate_custom_domains:Cl,n81_phone:Nl,n82_forms:Ol,n83_addFormsIdToHooks:El,n84_login_completed:Pl,n85_add_login_session_id_to_sessions:jl,n86_index_sessions_login_session_id:Ml,n87_code_challenge:Ll,n88_add_redirect_uri_to_codes:Bl,n89_add_nonce_and_state_to_codes:Yl,n90_themes:Vl,n91_resource_servers_rules_permissions:ec,n92_role_permissions:nc,n93_add_permissions_to_roles:sc,n94_keys_connection_and_extend_columns:cc,n95_create_organizations_table:_c,n96_create_user_organizations_table:pc,n97_add_organization_to_user_permissions_and_roles:wc,n98_clients:Cc,n99_update_client_foreign_keys:kc,o001_client_grants:Ic,o002_drop_applications:Dc,o003_phone_number_index:Fc,o004_login_sessions_id_index:Jc,o005_connections_tenant_index:Kc,o006_remove_redundant_user_organizations_tenant_index:Qc,o007_tenant_settings:Wc,o008_merge_tenant_settings_into_tenants:Xc,o009_create_invites_table:td,o010_add_log_id_to_logs:od,o011_add_location_info_to_logs:id,o012_add_password_history:dd,o013_connection_display_name:md,o014_client_connections:fd,o015_flows:vd,o016_add_is_system_column:xd,o017_connections_composite_key:Sd,o018_login_session_state:kd,o019_roles_resource_servers_metadata:Id,o020_session_add_timestamp_columns:Ad,o021_session_cleanup_and_ulid:Rd,o022_oidc_profile_claims:qd,o023_preferred_username:Ud,o024_user_address:Hd,o025_authparams_max_age:Gd,o026_auth0_conformant:Zd,o027_universal_login_templates:au,o028_custom_text:ru,o029_guardian_mfa:lu,o030_add_template_id_to_hooks:_u,o031_hooks_cleanup:pu,o032_unique_username_provider:wu,o033_add_login_id_to_refresh_tokens:Cu,o034_refresh_tokens_replace_session_id_with_login_id:Nu,o035_idle_expires_at_ts_indexes:Ou,o036_add_connection_to_login_sessions:Eu,o037_mfa_enrollments:Pu,o038_add_otp_to_codes:ju};async function Fu(e,t=!1){t&&console.log("migrating...");const a=new pe(ye),n=new h.Migrator({db:e,provider:a}),{error:o,results:r}=await n.migrateToLatest();if(r==null||r.forEach(s=>{s.status==="Success"?t&&console.log(`migration "${s.migrationName}" was executed successfully`):s.status==="Error"&&console.error(`failed to execute migration "${s.migrationName}"`)}),o)throw console.error("failed to migrate"),console.error(o),o}async function Ru(e){console.log("migrating...");const t=new pe(ye),a=new h.Migrator({db:e,provider:t}),{error:n,results:o}=await a.migrateDown();if(o==null||o.forEach(r=>{r.status==="Success"?console.log(`migration "${r.migrationName}" was reverted successfully`):r.status==="Error"&&console.error(`failed to execute migration "${r.migrationName}"`)}),n)throw console.error("failed to migrate"),console.error(n),n}function Mu(e,t={useTransactions:!0}){return{branding:la(e),clients:jt(e),clientConnections:Lt(e),clientGrants:Yt(e),codes:pt(e),connections:$t(e),emailProviders:Ma(e),customDomains:ra(e),flows:Me(e),forms:Za(e),hooks:wa(e),invites:Bn(e),keys:Xt(e),loginSessions:Ia(e),logs:Ve(e),mfaEnrollments:Zn(e),passwords:lt(e),promptSettings:Da(e),refreshTokens:Ba(e),resourceServers:rn(e),rolePermissions:fn(e),userPermissions:Cn(e),userRoles:bn(e),roles:_n(e),sessions:nt(e),sessionCleanup:Ha(e),tenants:Qe(e),themes:Ta(e),universalLoginTemplates:_a(e),customText:Yn(e),users:Pe(e,t),organizations:zn(e),userOrganizations:Mn(e),stats:Hn(e)}}exports.default=Mu;exports.migrateDown=Ru;exports.migrateToLatest=Fu;
|