@authhero/kysely-adapter 11.14.1 → 11.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/kysely-adapter.cjs +19 -19
- package/dist/kysely-adapter.d.ts +0 -1
- package/dist/kysely-adapter.mjs +2107 -2129
- package/dist/types/src/db.d.ts +0 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/kysely-adapter.cjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};let n=require("nanoid"),r=require("kysely"),i=require("@authhero/adapter-interfaces");require("@hono/zod-openapi");var a=17,o={organization:`org_`,connection:`con_`,action:`act_`,action_version:`ver_`,hook:`h_`,hook_code:`hc_`,rule:`rul_`,resource_server:`api_`,guardian_factor:`gfa_`,invite:`inv_`};function s(e){let t=(0,n.customAlphabet)(`0123456789abcdefghijklmnopqrstuvwxyz`,a)();return`${o[e]}${t}`}function c(){return s(`organization`)}function l(){return s(`connection`)}function u(){return s(`action`)}function d(){return s(`action_version`)}function f(){return s(`hook`)}function p(){return s(`resource_server`)}function m(){return s(`hook_code`)}function h(){return s(`invite`)}function g(e){return async(t,n,r)=>{let i=r?.importMetadata,a=Date.now(),o=i?.created_at?new Date(i.created_at).getTime():a,s=i?.updated_at?new Date(i.updated_at).getTime():o,c=i?.id??u();return await e.insertInto(`actions`).values({id:c,tenant_id:t,name:n.name,code:n.code,runtime:n.runtime||null,status:`built`,secrets:n.secrets?JSON.stringify(n.secrets):null,dependencies:n.dependencies?JSON.stringify(n.dependencies):null,supported_triggers:n.supported_triggers?JSON.stringify(n.supported_triggers):null,is_system:+!!n.is_system,inherit:+!!n.inherit,created_at_ts:o,updated_at_ts:s}).execute(),{id:c,tenant_id:t,name:n.name,code:n.code,runtime:n.runtime,status:`built`,secrets:n.secrets?.map(e=>({name:e.name})),dependencies:n.dependencies,supported_triggers:n.supported_triggers,is_system:n.is_system??!1,inherit:n.inherit??!1,created_at:new Date(o).toISOString(),updated_at:new Date(s).toISOString()}}}function _(e){if(e!=null){if(typeof e==`number`)return new Date(e).toISOString();if(typeof e==`string`){if(e===``)return;let t=parseFloat(e);return!isNaN(t)&&/^\d+(\.\d+)?$/.test(e)?new Date(t).toISOString():e}}}function v(e,t=new Date(0).toISOString()){return _(e)??t}function y(e){if(!e||e===``)return null;let t=new Date(e);return isNaN(t.getTime())?null:t.getTime()}function b(){return new Date().toISOString()}function x(e,t,n=[]){let r={};for(let n of t){let t=n.replace(/_ts$/,``);r[t]=v(e[n])}for(let t of n){let n=t.replace(/_ts$/,``);r[n]=_(e[t])}return r}function ee(e){if(e)try{return JSON.parse(e)}catch{return}}function te(e){return async(t,n)=>{let r=await e.selectFrom(`actions`).where(`actions.tenant_id`,`=`,t).where(`actions.id`,`=`,n).selectAll().executeTakeFirst();if(!r)return null;let{created_at_ts:i,updated_at_ts:a,deployed_at_ts:o,secrets:s,dependencies:c,supported_triggers:l,is_system:u,inherit:d,tenant_id:f,...p}=r,m=x({created_at_ts:i,updated_at_ts:a},[`created_at_ts`,`updated_at_ts`]);return{...p,tenant_id:t,...m,runtime:p.runtime??void 0,status:p.status||`built`,deployed_at:o?new Date(Number(o)).toISOString():void 0,secrets:ee(s),dependencies:ee(c),supported_triggers:ee(l),is_system:!!u,inherit:!!d}}}function ne(e){return r.sql`coalesce(${r.sql.ref(e.column)}, ${r.sql.lit(e.defaultValue)})`}function S(e){return e.replace(/\\([\\"+\-!(){}[\]^~*?:/&|])/g,`$1`)}function C(e,t){let n=new Set(t),r=e=>{let t=[],r=``,i=!1;for(let n=0;n<e.length;n++){let a=e[n];a===`"`?(i=!i,r+=a):a===` `&&!i?(r.trim()&&t.push(r.trim()),r=``):r+=a}return r.trim()&&t.push(r.trim()),t.filter(e=>{let t=e.replace(/^([^:]+)=/,`$1:`),r=t.startsWith(`-`)?t.slice(1):t;if(r.startsWith(`_exists_:`))return n.has(r.slice(9));let i=r.indexOf(`:`);return i>0?n.has(r.slice(0,i)):!0}).join(` `)},i=e.split(/ OR /i);return i.length>1?i.map(r).filter(e=>e.length>0).join(` OR `):r(e)}function w(e,t,n,r,i=[],a={}){let o=new Set(i),{ref:s}=e.dynamic,c=e=>{let t=a[e];return t===void 0?e:typeof t==`string`?t:t.column},l=e=>{let t=a[e];return t===void 0||typeof t==`string`?s(t??e):ne(t)},u=(e,t)=>{let n=a[e];if(n===void 0||typeof n==`string`)return t;let r=Number(t);return Number.isFinite(r)?r:t},d=n.split(/ OR /i);if(d.length>1)return t.where(e=>{let t=d.map(t=>{let n=t.trim().match(/^([^:]+):(.+)$/);if(n){let[,t,r]=n;if(!t||!r)return null;let i=t.trim(),a=S(r.replace(/^"(.*)"$/,`$1`).trim());return o.has(i)?e(s(c(i)),`like`,`%${a}%`):e(l(i),`=`,u(i,a))}return null}).filter(e=>e!==null);return e.or(t)});let f=[],p=``,m=!1;for(let e=0;e<n.length;e++){let t=n[e];t===`"`?(m=!m,p+=t):t===` `&&!m?p.trim()&&(f.push(p.trim()),p=``):p+=t}return p.trim()&&f.push(p.trim()),f.filter(e=>e!==`AND`).map(e=>e.replace(/^([^:]+)=/g,`$1:`)).map(e=>{let t=e.startsWith(`-`),n=null,r=``,i=!1,a;if(e.startsWith(`-_exists_:`))n=e.substring(10),i=!0,t=!0;else if(e.startsWith(`_exists_:`))n=e.substring(9),i=!0,t=!1;else if(e.includes(`:`)){let o=t?e.substring(1):e,s=o.indexOf(`:`);n=o.substring(0,s),r=o.substring(s+1),i=!1,r.startsWith(`>=`)?(a=`>=`,r=r.substring(2)):r.startsWith(`>`)?(a=`>`,r=r.substring(1)):r.startsWith(`<=`)?(a=`<=`,r=r.substring(2)):r.startsWith(`<`)?(a=`<`,r=r.substring(1)):a=`=`,r.startsWith(`"`)&&r.endsWith(`"`)&&r.length>1&&(r=r.slice(1,-1)),r=S(r)}else n=null,r=S(e),i=!1;return{key:n,value:r,isNegation:t,isExistsQuery:i,operator:a}}).forEach(({key:e,value:n,isNegation:i,isExistsQuery:a,operator:d})=>{if(e){let r=s(c(e)),f=l(e),p=u(e,n);if(a)t=i?t.where(r,`is`,null):t.where(r,`is not`,null);else if(o.has(e)&&d===`=`)t=t.where(r,i?`not like`:`like`,`%${n}%`);else if(i)switch(d){case`>`:t=t.where(f,`<=`,p);break;case`>=`:t=t.where(f,`<`,p);break;case`<`:t=t.where(f,`>=`,p);break;case`<=`:t=t.where(f,`>`,p);break;default:t=t.where(f,`!=`,p)}else t=t.where(f,d,p)}else n&&(t=t.where(e=>e.or(r.map(t=>t===`user_id`?e(s(c(t)),`=`,n):e(s(c(t)),`like`,`%${n}%`)))))}),t}function T(e){return typeof e==`string`?parseInt(e,10):typeof e==`bigint`?Number(e):e}function re(e){if(e)try{return JSON.parse(e)}catch{return}}function ie(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,q:o}=n,s=e.selectFrom(`actions`).where(`actions.tenant_id`,`=`,t);o&&(s=w(e,s,o,[`name`]));let c=(await s.offset(r*i).limit(i).selectAll().execute()).map(e=>{let{created_at_ts:n,updated_at_ts:r,deployed_at_ts:i,secrets:a,dependencies:o,supported_triggers:s,is_system:c,inherit:l,tenant_id:u,...d}=e,f=x({created_at_ts:n,updated_at_ts:r},[`created_at_ts`,`updated_at_ts`]);return{...d,tenant_id:t,...f,runtime:d.runtime??void 0,status:d.status||`built`,deployed_at:i?new Date(Number(i)).toISOString():void 0,secrets:re(a),dependencies:re(o),supported_triggers:re(s),is_system:!!c,inherit:!!l}});if(!a)return{actions:c,start:0,limit:0,length:0};let{count:l}=await s.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{actions:c,start:r*i,limit:i,length:T(l)}}}function ae(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function oe(e){return async(t,n,r)=>{let i={updated_at_ts:Date.now()};if(r.name!==void 0&&(i.name=r.name),r.code!==void 0&&(i.code=r.code),r.runtime!==void 0&&(i.runtime=r.runtime),r.secrets!==void 0){let a=await e.selectFrom(`actions`).where(`actions.id`,`=`,n).where(`actions.tenant_id`,`=`,t).select(`secrets`).executeTakeFirst(),o=new Map(ae(a?.secrets).map(e=>[e.name,e])),s=r.secrets.map(e=>e.value===void 0?{name:e.name,value:o.get(e.name)?.value}:e);i.secrets=JSON.stringify(s)}if(r.dependencies!==void 0&&(i.dependencies=JSON.stringify(r.dependencies)),r.supported_triggers!==void 0&&(i.supported_triggers=JSON.stringify(r.supported_triggers)),r.status!==void 0&&(i.status=r.status),r.deployed_at!==void 0){let e=new Date(r.deployed_at).getTime();Number.isFinite(e)&&(i.deployed_at_ts=e)}return r.is_system!==void 0&&(i.is_system=+!!r.is_system),r.inherit!==void 0&&(i.inherit=+!!r.inherit),(await e.updateTable(`actions`).set(i).where(`actions.id`,`=`,n).where(`actions.tenant_id`,`=`,t).executeTakeFirst()).numUpdatedRows>0}}function se(e){return async(t,n)=>(await e.deleteFrom(`actions`).where(`actions.id`,`=`,n).where(`actions.tenant_id`,`=`,t).executeTakeFirst()).numDeletedRows>0}function ce(e){return{create:g(e),get:te(e),list:ie(e),update:oe(e),remove:se(e)}}function le(e){return async(t,n)=>{let r=Date.now();return await e.insertInto(`action_executions`).values({id:n.id,tenant_id:t,trigger_id:n.trigger_id,status:n.status,results:JSON.stringify(n.results),logs:n.logs?JSON.stringify(n.logs):null,created_at_ts:r,updated_at_ts:r}).execute(),{id:n.id,tenant_id:t,trigger_id:n.trigger_id,status:n.status,results:n.results,logs:n.logs,created_at:new Date(r).toISOString(),updated_at:new Date(r).toISOString()}}}function ue(e){if(e)try{return JSON.parse(e)}catch{return}}function de(e){return async(t,n)=>{let r=await e.selectFrom(`action_executions`).where(`action_executions.tenant_id`,`=`,t).where(`action_executions.id`,`=`,n).selectAll().executeTakeFirst();return r?{id:r.id,tenant_id:r.tenant_id,trigger_id:r.trigger_id,status:r.status,results:ue(r.results)??[],logs:ue(r.logs),created_at:new Date(Number(r.created_at_ts)).toISOString(),updated_at:new Date(Number(r.updated_at_ts)).toISOString()}:null}}function fe(e){return{create:le(e),get:de(e)}}function E(e){if(e)try{return JSON.parse(e)}catch{return}}function pe(e){let{created_at_ts:t,updated_at_ts:n,secrets:r,dependencies:i,supported_triggers:a,deployed:o,runtime:s,...c}=e;return{...c,runtime:s??void 0,deployed:!!o,secrets:E(r),dependencies:E(i),supported_triggers:E(a),created_at:new Date(Number(t)).toISOString(),updated_at:new Date(Number(n)).toISOString()}}function me(e){return{async create(t,n,r){let i=r?.importMetadata,a=Date.now(),o=i?.created_at?new Date(i.created_at).getTime():a,s=i?.updated_at?new Date(i.updated_at).getTime():i?o:a,c=i?.id??d(),l=n.deployed!==!1,u=await e.transaction().execute(async e=>{let r=((await e.selectFrom(`action_versions`).where(`tenant_id`,`=`,t).where(`action_id`,`=`,n.action_id).select(`number`).orderBy(`number`,`desc`).limit(1).executeTakeFirst())?.number??0)+1;return l&&await e.updateTable(`action_versions`).set(i?{deployed:0}:{deployed:0,updated_at_ts:a}).where(`tenant_id`,`=`,t).where(`action_id`,`=`,n.action_id).execute(),await e.insertInto(`action_versions`).values({id:c,tenant_id:t,action_id:n.action_id,number:r,code:n.code,runtime:n.runtime||null,secrets:n.secrets?JSON.stringify(n.secrets):null,dependencies:n.dependencies?JSON.stringify(n.dependencies):null,supported_triggers:n.supported_triggers?JSON.stringify(n.supported_triggers):null,deployed:+!!l,created_at_ts:o,updated_at_ts:s}).execute(),r});return{id:c,tenant_id:t,action_id:n.action_id,number:u,code:n.code,runtime:n.runtime,secrets:n.secrets,dependencies:n.dependencies,supported_triggers:n.supported_triggers,deployed:l,created_at:new Date(o).toISOString(),updated_at:new Date(s).toISOString()}},async get(t,n,r){let i=await e.selectFrom(`action_versions`).where(`tenant_id`,`=`,t).where(`action_id`,`=`,n).where(`id`,`=`,r).selectAll().executeTakeFirst();return i?pe(i):null},async list(t,n,r={}){let{page:i=0,per_page:a=50,include_totals:o=!1}=r,s=e.selectFrom(`action_versions`).where(`tenant_id`,`=`,t).where(`action_id`,`=`,n),c=(await s.orderBy(`number`,`desc`).offset(i*a).limit(a).selectAll().execute()).map(pe);if(!o)return{versions:c,start:0,limit:0,length:0};let{count:l}=await s.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{versions:c,start:i*a,limit:a,length:T(l)}},async removeForAction(t,n){let r=await e.deleteFrom(`action_versions`).where(`tenant_id`,`=`,t).where(`action_id`,`=`,n).executeTakeFirst();return Number(r.numDeletedRows??0)}}}var D=class extends Error{res;status;constructor(e=500,t){super(t?.message,{cause:t?.cause}),this.res=t?.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})}},he=new WeakMap;function ge(e){return e instanceof Error?e.message:String(e)}function _e(e){let t=ge(e);return t.includes(`login_count`)&&(t.includes(`doesn't have a default value`)||t.includes(`NOT NULL constraint failed`))}function ve(e){let t=ge(e);return t.includes(`login_count`)&&(t.includes(`Unknown column`)||t.includes(`no column named`))}function ye(e){return async(t,r,i)=>{let a=i?.importMetadata,{identities:o,phone_verified:s,password:c,last_login:l,last_ip:u,login_count:d,...f}=r,p=new Date().toISOString(),m={...f,created_at:a?.created_at??f.created_at??p,updated_at:a?.updated_at??f.updated_at??p,user_id:a?.id??f.user_id,tenant_id:t,email_verified:+!!r.email_verified,phone_verified:s===void 0?null:+!!s,is_social:+!!r.is_social,app_metadata:JSON.stringify(r.app_metadata),user_metadata:JSON.stringify(r.user_metadata),address:r.address?JSON.stringify(r.address):null},h=async r=>{let i=async e=>{if(await e.insertInto(`users`).values(r?{...m,login_count:d??0}:m).execute(),m.user_id&&(l!==void 0||u!==void 0||d!==void 0)&&await e.insertInto(`user_activity`).values({tenant_id:t,user_id:m.user_id,last_login:l??null,last_ip:u??null,login_count:d??0}).execute(),c&&m.user_id){let r={id:(0,n.nanoid)(),user_id:m.user_id,password:c.hash,algorithm:c.algorithm,is_current:1,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),tenant_id:t};await e.insertInto(`passwords`).values(r).execute()}};e.isTransaction?await i(e):await e.transaction().execute(i)};try{let t=he.get(e)??!1;try{await h(t)}catch(n){if(!t&&_e(n))he.set(e,!0),await h(!0);else if(t&&ve(n))he.set(e,!1),await h(!1);else throw n}}catch(e){throw e.code===`SQLITE_CONSTRAINT_UNIQUE`||e.code===`ER_DUP_ENTRY`||e.message.includes(`AlreadyExists`)?new D(409,{message:`User already exists`}):new D(500,{message:`${e.code}, ${e.message}`})}return{...m,last_login:l,last_ip:u,login_count:d??0,email:m.email||``,email_verified:m.email_verified===1,phone_verified:m.phone_verified===null?void 0:m.phone_verified===1,is_social:m.is_social===1,app_metadata:r.app_metadata,user_metadata:r.user_metadata,address:r.address}}}function O(e){if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return e.map(e=>typeof e==`object`&&e?O(e):e);let t={...e};for(let e in t){let n=t[e];n===null?delete t[e]:typeof n==`object`&&n&&(Array.isArray(n)?t[e]=n.map(e=>typeof e==`object`&&e?O(e):e):t[e]=O(n))}return t}var be=[`email`,`email_verified`,`phone_number`,`phone_verified`,`username`];function k(e,t=!1){let n={connection:e.connection,provider:e.provider,user_id:(0,i.parseUserId)(e.user_id).id,isSocial:!!e.is_social};for(let t of be)e[t]!==void 0&&e[t]!==null&&(n[t]=t.endsWith(`_verified`)?!!e[t]:e[t]);if(!t){let t={};try{t=JSON.parse(e.profileData||`{}`)}catch(e){console.error(`Error parsing profileData`,e)}n.profileData={email:e.email,email_verified:!!e.email_verified,...t}}return n}function xe(e){return async(t,n)=>{let[r,i]=await Promise.all([e.selectFrom(`users`).leftJoin(`user_activity`,e=>e.onRef(`user_activity.tenant_id`,`=`,`users.tenant_id`).onRef(`user_activity.user_id`,`=`,`users.user_id`)).where(`users.tenant_id`,`=`,t).where(`users.user_id`,`=`,n).selectAll(`users`).select([`user_activity.last_login`,`user_activity.last_ip`,`user_activity.login_count`]).executeTakeFirst(),e.selectFrom(`users`).where(`users.tenant_id`,`=`,t).where(`users.linked_to`,`=`,n).selectAll().orderBy(`created_at`,`asc`).execute()]);if(!r)return null;let{tenant_id:a,...o}=r;return O({...o,email:r.email||``,email_verified:r.email_verified===1,phone_verified:r.phone_verified===null?void 0:r.phone_verified===1,is_social:r.is_social===1,last_login:r.last_login??void 0,last_ip:r.last_ip??void 0,login_count:r.login_count??0,app_metadata:JSON.parse(r.app_metadata),user_metadata:JSON.parse(r.user_metadata),address:r.address?JSON.parse(r.address):void 0,identities:[k(r,!0),...i.map(e=>k(e))]})}}var Se=[`user_id`,`email`,`email_verified`,`username`,`phone_number`,`phone_verified`,`name`,`given_name`,`family_name`,`nickname`,`picture`,`locale`,`linked_to`,`provider`,`connection`,`is_social`,`last_ip`,`last_login`,`login_count`,`created_at`,`updated_at`],Ce=new Set([`last_login`,`last_ip`,`login_count`]),we=Object.fromEntries(Se.map(e=>[e,e===`login_count`?{column:`user_activity.login_count`,defaultValue:0}:Ce.has(e)?`user_activity.${e}`:`users.${e}`])),Te=[`email`,`name`,`phone_number`,`user_id`];function Ee(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,sort:o,q:s}=n,c=e.selectFrom(`users`).leftJoin(`user_activity`,e=>e.onRef(`user_activity.tenant_id`,`=`,`users.tenant_id`).onRef(`user_activity.user_id`,`=`,`users.user_id`)).where(`users.tenant_id`,`=`,t);if(s){let t=C(s,Se);t&&(c=w(e,c,t,Te,[],we))}if(o&&o.sort_by){let{ref:t}=e.dynamic,n=we[o.sort_by]??o.sort_by;c=c.orderBy(typeof n==`string`?t(n):ne(n),o.sort_order)}let l=await c.offset(r*i).limit(i).selectAll(`users`).select([`user_activity.last_login`,`user_activity.last_ip`,`user_activity.login_count`]).execute(),u=l.map(e=>e.user_id),d=u.length?await e.selectFrom(`users`).selectAll().where(`users.tenant_id`,`=`,t).where(`users.linked_to`,`in`,u).orderBy(`created_at`,`asc`).execute():[],f=l.map(e=>{let t=d.filter(t=>t.linked_to===e.user_id);return O({...e,email_verified:e.email_verified===1,phone_verified:e.phone_verified===null?void 0:e.phone_verified===1,is_social:e.is_social===1,login_count:e.login_count??0,app_metadata:JSON.parse(e.app_metadata),user_metadata:JSON.parse(e.user_metadata),address:e.address?JSON.parse(e.address):void 0,identities:[k(e,!0),...t.map(e=>k(e))]})});if(!a)return{users:f,start:0,limit:0,length:0};let{count:p}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{users:f,start:r*i,limit:i,length:T(p)}}}function De(e){return async(t,n)=>(await e.deleteFrom(`authentication_methods`).where(`authentication_methods.tenant_id`,`=`,t).where(`authentication_methods.user_id`,`in`,e=>e.selectFrom(`users`).select(`users.user_id`).where(`users.tenant_id`,`=`,t).where(e=>e.or([e(`users.user_id`,`=`,n),e(`users.linked_to`,`=`,n)]))).execute(),await e.deleteFrom(`users`).where(`users.tenant_id`,`=`,t).where(`users.linked_to`,`=`,n).execute(),(await e.deleteFrom(`users`).where(`users.tenant_id`,`=`,t).where(`users.user_id`,`=`,n).execute()).length===1)}function A(e,t=``,n={}){for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)){let i=t?`${t}_${r}`:r,a=e[r];typeof a==`object`&&a&&!Array.isArray(a)?A(a,i,n):typeof a==`boolean`?n[i]=+!!a:n[i]=a}return n}function Oe(e,t){let n={};for(let[r,i]of Object.entries(e)){let e=t.find(e=>r.startsWith(`${e}_`));if(!e)n[r]=i;else{let t=r.slice(e.length+1);n[e]={...n[e],[t]:i}}}return n}function ke(e){return{user_id:e.user_id,last_login:e.last_login??void 0,last_ip:e.last_ip??void 0,login_count:e.login_count,failed_logins:e.failed_logins?JSON.parse(e.failed_logins):void 0,last_password_reset:e.last_password_reset??void 0}}function Ae(e){let t={};return e.last_login!==void 0&&(t.last_login=e.last_login),e.last_ip!==void 0&&(t.last_ip=e.last_ip),e.login_count!==void 0&&(t.login_count=e.login_count),e.failed_logins!==void 0&&(t.failed_logins=JSON.stringify(e.failed_logins)),e.last_password_reset!==void 0&&(t.last_password_reset=e.last_password_reset),t}function je(e){return{async get(t,n){let r=await e.selectFrom(`user_activity`).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n).selectAll().executeTakeFirst();return r?ke(r):null},async upsert(t,n,r){let i=Ae(r);if(await e.selectFrom(`user_activity`).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n).select(`user_id`).executeTakeFirst()){if(Object.keys(i).length===0)return;await e.updateTable(`user_activity`).set(i).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n).execute();return}try{await e.insertInto(`user_activity`).values({tenant_id:t,user_id:n,login_count:0,...i}).execute()}catch{if(Object.keys(i).length===0)return;await e.updateTable(`user_activity`).set(i).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n).execute()}}}}function Me(e){return async(t,n,r)=>{let{last_login:i,last_ip:a,login_count:o,...s}=r,c=A({...s,updated_at:new Date().toISOString(),app_metadata:r.app_metadata?JSON.stringify(r.app_metadata):void 0,user_metadata:r.user_metadata?JSON.stringify(r.user_metadata):void 0,address:r.address?JSON.stringify(r.address):void 0,phone_verified:r.phone_verified===void 0?void 0:+!!r.phone_verified}),l=async e=>{let[r]=await e.updateTable(`users`).set(c).where(`users.tenant_id`,`=`,t).where(`users.user_id`,`=`,n).execute();return!r||r.numUpdatedRows===0n?!1:((i!==void 0||a!==void 0||o!==void 0)&&await je(e).upsert(t,n,{last_login:i,last_ip:a,login_count:o}),!0)};return e.isTransaction?l(e):e.transaction().execute(l)}}function Ne(e){return async(t,n,r,i)=>(await e.updateTable(`users`).set({linked_to:null}).where(`users.tenant_id`,`=`,t).where(`users.user_id`,`=`,`${r}|${i}`).where(`users.linked_to`,`=`,`${n}`).execute()).length===1}function Pe(e){let t=ye(e);return{create:t,rawCreate:t,remove:De(e),get:xe(e),list:Ee(e),update:Me(e),unlink:Ne(e)}}function Fe(e){return async(t,r,a)=>{let o=a?.importMetadata,s=new Date().toISOString(),c=i.flowSchema.parse({id:o?.id??`af_${(0,n.nanoid)()}`,...r,actions:r.actions||[],created_at:o?.created_at??s,updated_at:o?.updated_at??o?.created_at??s});return await e.insertInto(`flows`).values({...c,tenant_id:t,actions:JSON.stringify(c.actions)}).execute(),c}}function j(e,t){if(!e)return t;try{return JSON.parse(e)}catch{return t}}function Ie(e){if(e)try{let t=JSON.parse(e);return t&&typeof t==`object`&&!Array.isArray(t)?t:void 0}catch{return}}function Le(e,t,n={...e}){for(let r in t)r in e&&(n[r]=j(e[r],t[r]));return n}function Re(e){return async(t,n)=>{let r=await e.selectFrom(`flows`).selectAll().where(`flows.id`,`=`,n).where(`tenant_id`,`=`,t).executeTakeFirst();if(!r)return null;let a={...r,actions:j(r.actions,[])};return i.flowSchema.parse(O(a))}}function ze(e){return async(t,n={})=>{let{page:r=0,per_page:a=50,include_totals:o=!1,q:s}=n,c=e.selectFrom(`flows`).where(`tenant_id`,`=`,t);s&&(c=w(e,c,s,[]));let l=(await c.offset(r*a).limit(a).selectAll().execute()).map(e=>{let t={...e,actions:j(e.actions,[])};return i.flowSchema.parse(O(t))});if(!o)return{flows:l,start:0,limit:0,length:0};let{count:u}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{flows:l,start:r*a,limit:a,length:T(u)}}}function Be(e){return async(t,n,r)=>{let a={...r,updated_at:new Date().toISOString()};r.actions!==void 0&&(a.actions=JSON.stringify(r.actions));let{numUpdatedRows:o}=await e.updateTable(`flows`).set(a).where(`id`,`=`,n).where(`tenant_id`,`=`,t).executeTakeFirst();if(o===0n)return null;let s=await e.selectFrom(`flows`).selectAll().where(`id`,`=`,n).where(`tenant_id`,`=`,t).executeTakeFirst();return s?i.flowSchema.parse({...s,actions:s.actions?JSON.parse(s.actions):[]}):null}}function Ve(e){return async(t,n)=>((await e.deleteFrom(`flows`).where(`id`,`=`,n).where(`tenant_id`,`=`,t).execute())[0]?.numDeletedRows??0n)>0n}function He(e){return{create:Fe(e),get:Re(e),list:ze(e),update:Be(e),remove:Ve(e)}}function M(e,t,n={...e}){for(let r of t)e[r]!==void 0&&(n[r]=JSON.stringify(e[r]));return n}function Ue(e,t,n=e){for(let r of t)e[r]!==void 0&&(n[r]=+!!e[r])}function We(e){let t={};for(let n in e)e[n]!==void 0&&e[n]!==null&&(t[n]=e[n]);return t}function Ge(e){let t={...e};return e.session_cookie&&typeof e.session_cookie==`string`&&(t.session_cookie=JSON.parse(e.session_cookie)),e.enabled_locales&&typeof e.enabled_locales==`string`&&(t.enabled_locales=JSON.parse(e.enabled_locales)),e.error_page&&typeof e.error_page==`string`&&(t.error_page=JSON.parse(e.error_page)),e.flags&&typeof e.flags==`string`&&(t.flags=JSON.parse(e.flags)),e.sandbox_versions_available&&typeof e.sandbox_versions_available==`string`&&(t.sandbox_versions_available=JSON.parse(e.sandbox_versions_available)),e.change_password&&typeof e.change_password==`string`&&(t.change_password=JSON.parse(e.change_password)),e.guardian_mfa_page&&typeof e.guardian_mfa_page==`string`&&(t.guardian_mfa_page=JSON.parse(e.guardian_mfa_page)),e.sessions&&typeof e.sessions==`string`&&(t.sessions=JSON.parse(e.sessions)),e.oidc_logout&&typeof e.oidc_logout==`string`&&(t.oidc_logout=JSON.parse(e.oidc_logout)),e.device_flow&&typeof e.device_flow==`string`&&(t.device_flow=JSON.parse(e.device_flow)),e.default_token_quota&&typeof e.default_token_quota==`string`&&(t.default_token_quota=JSON.parse(e.default_token_quota)),e.allowed_logout_urls&&typeof e.allowed_logout_urls==`string`&&(t.allowed_logout_urls=JSON.parse(e.allowed_logout_urls)),e.acr_values_supported&&typeof e.acr_values_supported==`string`&&(t.acr_values_supported=JSON.parse(e.acr_values_supported)),e.mtls&&typeof e.mtls==`string`&&(t.mtls=JSON.parse(e.mtls)),e.mfa&&typeof e.mfa==`string`&&(t.mfa=JSON.parse(e.mfa)),e.attack_protection&&typeof e.attack_protection==`string`&&(t.attack_protection=JSON.parse(e.attack_protection)),e.allow_organization_name_in_authentication_api!==void 0&&(t.allow_organization_name_in_authentication_api=e.allow_organization_name_in_authentication_api===1),e.customize_mfa_in_postlogin_action!==void 0&&(t.customize_mfa_in_postlogin_action=e.customize_mfa_in_postlogin_action===1),e.pushed_authorization_requests_supported!==void 0&&(t.pushed_authorization_requests_supported=e.pushed_authorization_requests_supported===1),e.authorization_response_iss_parameter_supported!==void 0&&(t.authorization_response_iss_parameter_supported=e.authorization_response_iss_parameter_supported===1),O(t)}function Ke(e){let t={...e};return M(e,[`session_cookie`,`enabled_locales`,`error_page`,`flags`,`sandbox_versions_available`,`change_password`,`guardian_mfa_page`,`sessions`,`oidc_logout`,`device_flow`,`default_token_quota`,`allowed_logout_urls`,`acr_values_supported`,`mtls`,`mfa`,`attack_protection`],t),e.allow_organization_name_in_authentication_api!==void 0&&(t.allow_organization_name_in_authentication_api=+!!e.allow_organization_name_in_authentication_api),e.customize_mfa_in_postlogin_action!==void 0&&(t.customize_mfa_in_postlogin_action=+!!e.customize_mfa_in_postlogin_action),e.pushed_authorization_requests_supported!==void 0&&(t.pushed_authorization_requests_supported=+!!e.pushed_authorization_requests_supported),e.authorization_response_iss_parameter_supported!==void 0&&(t.authorization_response_iss_parameter_supported=+!!e.authorization_response_iss_parameter_supported),We(t)}function qe(e){return async(t,r)=>{let i=r?.importMetadata,a=new Date().toISOString(),o={...t,id:i?.id??t.id??(0,n.nanoid)(),created_at:i?.created_at??a,updated_at:i?.updated_at??a},s=Ke(o);try{await e.insertInto(`tenants`).values(s).execute()}catch(e){let t=e?.message??``;throw t.includes(`UNIQUE constraint failed`)||t.includes(`Duplicate entry`)||t.includes(`duplicate key`)||t.includes(`AlreadyExists`)||e?.code===`SQLITE_CONSTRAINT`||e?.code===`SQLITE_CONSTRAINT_UNIQUE`||e?.code===`SQLITE_CONSTRAINT_PRIMARYKEY`||e?.code===`ER_DUP_ENTRY`||e?.code===`23505`?new D(409,{message:`Tenant with ID '${o.id}' already exists`}):e}return o}}function Je(e){return async t=>{let n=await e.selectFrom(`tenants`).where(`tenants.id`,`=`,t).selectAll().executeTakeFirst();return n?Ge(n):null}}function Ye(e){return async t=>{let n=e.selectFrom(`tenants`),{page:r=0,per_page:i=50,include_totals:a=!1,sort:o,q:s}=t||{};if(o&&o.sort_by){let{ref:t}=e.dynamic;n=n.orderBy(t(o.sort_by),o.sort_order)}s&&(n=w(e,n,s,[`friendly_name`]));let c=(await n.offset(r*i).limit(i).selectAll().execute()).map(Ge);if(!a)return{tenants:c};let{count:l}=await n.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow(),u=T(l);return{tenants:c,start:r*i,limit:i,length:u}}}function Xe(e){return async(t,n)=>{let r={...Ke(n),id:t,updated_at:new Date().toISOString()};await e.updateTable(`tenants`).set(r).where(`id`,`=`,t).execute()}}function Ze(e){return async t=>(await e.deleteFrom(`tenants`).where(`tenants.id`,`=`,t).execute()).length===1}function Qe(e){return{create:qe(e),get:Je(e),list:Ye(e),update:Xe(e),remove:Ze(e)}}function $e(e){return e?JSON.stringify(e):void 0}var et=256;function tt(e){return async(t,r)=>{let i=r.user_agent?.slice(0,et),a=r.log_id||(0,n.nanoid)(),{location_info:o,...s}=r;return await e.insertInto(`logs`).values({...s,log_id:a,tenant_id:t,user_agent:i,description:r.description?.substring(0,256),isMobile:+!!r.isMobile,scope:r.scope,auth0_client:$e(r.auth0_client),details:$e(r.details)?.substring(0,8192),country_code:o?.country_code,city_name:o?.city_name,latitude:o?.latitude,longitude:o?.longitude,time_zone:o?.time_zone,continent_code:o?.continent_code}).execute(),{...r,log_id:a,user_agent:i}}}function nt(e){if(!e)return``;try{return JSON.parse(e)}catch{return e}}function rt(e){return{...e,client_id:e.client_id,client_name:e.client_name||``,auth0_client:nt(e.auth0_client),details:nt(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}}var it=[`user_id`,`ip`,`type`,`date`,`client_id`,`client_name`,`user_agent`,`description`,`user_name`,`connection`,`connection_id`,`audience`,`scope`,`strategy`,`strategy_type`,`hostname`,`log_id`,`session_connection`,`country_code`,`city_name`,`latitude`,`longitude`,`time_zone`,`continent_code`];function at(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,sort:o,q:s,from_date:c,to_date:l}=n,u=e.selectFrom(`logs`).where(`logs.tenant_id`,`=`,t);if(s){let t=C(s,it);t&&(u=w(e,u,t,[`user_id`,`ip`,`description`],[`description`]))}typeof c==`number`&&Number.isFinite(c)&&(u=u.where(`logs.date`,`>=`,new Date(Math.floor(c)*1e3).toISOString())),typeof l==`number`&&Number.isFinite(l)&&(u=u.where(`logs.date`,`<=`,new Date(Math.floor(l)*1e3+999).toISOString()));let d=u;if(o&&o.sort_by){let{ref:t}=e.dynamic;d=d.orderBy(t(o.sort_by),o.sort_order)}d=d.offset(r*i).limit(i);let f=(await d.selectAll().execute()).map(rt);if(!a)return{logs:f,start:0,limit:0,length:0};let{count:p}=await u.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{logs:f,start:r*i,limit:i,length:T(p)}}}function ot(e){return async(t,n)=>{let r=await e.selectFrom(`logs`).where(`logs.tenant_id`,`=`,t).where(`logs.log_id`,`=`,n).selectAll().executeTakeFirst();return r?rt(r):null}}function st(e){return{create:tt(e),list:at(e),get:ot(e)}}function ct(e){return async(t,n)=>{let r=await e.selectFrom(`sessions`).where(`sessions.tenant_id`,`=`,t).where(`sessions.id`,`=`,n).selectAll().executeTakeFirst();if(!r)return null;let{tenant_id:i,device:a,clients:o,created_at_ts:s,updated_at_ts:c,expires_at_ts:l,idle_expires_at_ts:u,authenticated_at_ts:d,last_interaction_at_ts:f,used_at_ts:p,revoked_at_ts:m,...h}=r,g=x({created_at_ts:s,updated_at_ts:c,expires_at_ts:l,idle_expires_at_ts:u,authenticated_at_ts:d,last_interaction_at_ts:f,used_at_ts:p,revoked_at_ts:m},[`created_at_ts`,`updated_at_ts`,`authenticated_at_ts`,`last_interaction_at_ts`],[`expires_at_ts`,`idle_expires_at_ts`,`used_at_ts`,`revoked_at_ts`]);return{...h,...g,device:JSON.parse(a),clients:JSON.parse(o)}}}function lt(e){return async(t,n)=>{let r=Date.now(),i=b(),a={...n,created_at:i,updated_at:i,authenticated_at:i,last_interaction_at:i},{expires_at:o,idle_expires_at:s,used_at:c,revoked_at:l,device:u,clients:d,...f}=n,p=y(o),m=y(s),h=Math.max(p??0,m??0);return await e.transaction().execute(async e=>{await e.insertInto(`sessions`).values({...f,tenant_id:t,created_at_ts:r,updated_at_ts:r,authenticated_at_ts:r,last_interaction_at_ts:r,expires_at_ts:p,idle_expires_at_ts:m,used_at_ts:y(c),revoked_at_ts:y(l),device:JSON.stringify(u),clients:JSON.stringify(d)}).execute(),h>0&&n.login_session_id&&await e.updateTable(`login_sessions`).set({expires_at_ts:h,updated_at_ts:r}).where(`tenant_id`,`=`,t).where(`id`,`=`,n.login_session_id).where(`expires_at_ts`,`<`,h).execute()}),a}}function ut(e){return async(t,n)=>!!(await e.deleteFrom(`sessions`).where(`tenant_id`,`=`,t).where(`sessions.id`,`=`,n).execute()).length}function dt(e){return async(t,n,r)=>{let i=Date.now(),a={updated_at_ts:i,device:r.device?JSON.stringify(r.device):void 0,clients:r.clients?JSON.stringify(r.clients):void 0},o,s;r.expires_at!==void 0&&(o=y(r.expires_at),a.expires_at_ts=o),r.idle_expires_at!==void 0&&(s=y(r.idle_expires_at),a.idle_expires_at_ts=s),r.authenticated_at!==void 0&&(a.authenticated_at_ts=y(r.authenticated_at)),r.last_interaction_at!==void 0&&(a.last_interaction_at_ts=y(r.last_interaction_at)),r.used_at!==void 0&&(a.used_at_ts=y(r.used_at)),r.revoked_at!==void 0&&(a.revoked_at_ts=y(r.revoked_at)),r.user_id!==void 0&&(a.user_id=r.user_id),r.login_session_id!==void 0&&(a.login_session_id=r.login_session_id);let c=await e.updateTable(`sessions`).set(a).where(`tenant_id`,`=`,t).where(`sessions.id`,`=`,n).execute(),l=Math.max(o??0,s??0);if(l>0){let a=r.login_session_id??e.selectFrom(`sessions`).select(`login_session_id`).where(`tenant_id`,`=`,t).where(`id`,`=`,n);await e.updateTable(`login_sessions`).set({expires_at_ts:l,updated_at_ts:i}).where(`tenant_id`,`=`,t).where(`id`,`=`,a).where(`expires_at_ts`,`<`,l).execute().catch(()=>{})}return!!c.length}}function ft(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,sort:o,q:s}=n,c=e.selectFrom(`sessions`).where(`sessions.tenant_id`,`=`,t);s&&(c=w(e,c,s,[`user_id`,`session_id`]));let l=c;if(o&&o.sort_by){let{ref:t}=e.dynamic;l=l.orderBy(t(o.sort_by),o.sort_order)}l=l.offset(r*i).limit(i);let u=(await l.selectAll().execute()).map(e=>{let{tenant_id:t,device:n,clients:r,created_at_ts:i,updated_at_ts:a,expires_at_ts:o,idle_expires_at_ts:s,authenticated_at_ts:c,last_interaction_at_ts:l,used_at_ts:u,revoked_at_ts:d,...f}=e,p=x({created_at_ts:i,updated_at_ts:a,expires_at_ts:o,idle_expires_at_ts:s,authenticated_at_ts:c,last_interaction_at_ts:l,used_at_ts:u,revoked_at_ts:d},[`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,...p,device:JSON.parse(n),clients:JSON.parse(r)}});if(!a)return{sessions:u,start:0,limit:0,length:0};let{count:d}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow(),f=T(d);return{sessions:u,start:r*i,limit:i,length:f}}}function pt(e){return{create:lt(e),get:ct(e),list:ft(e),remove:ut(e),update:dt(e)}}function mt(e){return async(t,n)=>{let r=await e.selectFrom(`passwords`).where(`passwords.tenant_id`,`=`,t).where(`passwords.user_id`,`=`,n).where(`passwords.is_current`,`=`,1).selectAll().executeTakeFirst();if(!r)return null;let{tenant_id:i,...a}=r;return{...a,is_current:!!a.is_current}}}function ht(e){return async(t,r,i)=>{let a=i?.importMetadata,o=a?.id||r.id||(0,n.nanoid)(),s=r.is_current??!0,c=new Date().toISOString(),l={...r,id:o,is_current:s,created_at:a?.created_at??c,updated_at:a?.updated_at??c};return s&&await e.updateTable(`passwords`).set({is_current:0}).where(`user_id`,`=`,r.user_id).where(`tenant_id`,`=`,t).where(`is_current`,`=`,1).execute(),await e.insertInto(`passwords`).values({...l,is_current:+!!l.is_current,tenant_id:t}).execute(),l}}function gt(e){return async(t,n)=>{let r=e.updateTable(`passwords`).set({password:n.password,algorithm:n.algorithm,is_current:+!!n.is_current,updated_at:new Date().toISOString()}).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n.user_id);return r=n.id?r.where(`id`,`=`,n.id):r.where(`is_current`,`=`,1),(await r.execute()).length===1}}function _t(e){return async(t,n,r)=>{let i=e.selectFrom(`passwords`).where(`passwords.tenant_id`,`=`,t).where(`passwords.user_id`,`=`,n).orderBy(`created_at`,`desc`);return r&&(i=i.limit(r)),(await i.selectAll().execute()).map(({tenant_id:e,...t})=>({...t,is_current:!!t.is_current}))}}function vt(e){return{create:ht(e),update:gt(e),get:mt(e),list:_t(e)}}function yt(e){return async(t,n={})=>{let{page:r=0,per_page:a=50,include_totals:o=!1,q:s}=n,c=e.selectFrom(`codes`).where(`codes.tenant_id`,`=`,t);s&&(c=w(e,c,s,[`code`,`login_id`]));let l=(await c.offset(r*a).limit(a).selectAll().execute()).map(e=>{let{tenant_id:t,...n}=e;return i.codeSchema.parse(O(n))});if(!o)return{codes:l,start:0,limit:0,length:0};let{count:u}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{codes:l,start:r*a,limit:a,length:T(u)}}}function bt(e){return async(t,n)=>{let r={...n,created_at:new Date().toISOString()};return await e.insertInto(`codes`).values({...r,tenant_id:t}).execute(),r}}function xt(e){return async(t,n)=>(await e.deleteFrom(`codes`).where(`codes.tenant_id`,`=`,t).where(`codes.code_id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function St(e){return async(t,n,r)=>{let i=e.selectFrom(`codes`).where(`codes.code_id`,`=`,n).where(`codes.code_type`,`=`,r);t.length&&(i=i.where(`codes.tenant_id`,`=`,t));let a=await i.selectAll().executeTakeFirst();return a?O(a):null}}function Ct(e){return async(t,n)=>(await e.updateTable(`codes`).set({used_at:new Date().toISOString()}).where(`codes.tenant_id`,`=`,t).where(`codes.code_id`,`=`,n).executeTakeFirst()).numUpdatedRows>0}function wt(e){return async(t,n)=>(await e.updateTable(`codes`).set({used_at:new Date().toISOString()}).where(`codes.tenant_id`,`=`,t).where(`codes.code_id`,`=`,n).where(`codes.used_at`,`is`,null).executeTakeFirst()).numUpdatedRows>0}function Tt(e){return{create:bt(e),list:yt(e),remove:xt(e),used:Ct(e),consume:wt(e),get:St(e)}}function Et(e){return async(t,n,r)=>{let i=r?.importMetadata,{is_system:a,...o}=n;delete o.enabled_clients;let s=new Date().toISOString(),c={...o,id:i?.id??o.id??l(),is_system:a?!0:void 0,created_at:i?.created_at??s,updated_at:i?.updated_at??s};return await e.insertInto(`connections`).values({...c,is_system:+!!a,options:JSON.stringify(c.options||{}),tenant_id:t}).execute(),c}}function N(e){let{is_system:t,...n}=e;return O({...n,is_system:t?!0:void 0,options:typeof e.options==`string`?JSON.parse(e.options):{}})}function Dt(e){return e.map(N)}function Ot(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,q:o}=n,s=e.selectFrom(`connections`).where(`connections.tenant_id`,`=`,t);o&&(s=w(e,s,o,[`user_id`,`ip`]));let c=Dt(await s.offset(r*i).limit(i).selectAll().execute());if(!a)return{connections:c,start:0,limit:0,length:0};let{count:l}=await s.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{connections:c,start:r*i,limit:i,length:T(l)}}}function kt(e){return async(t,n)=>(await e.deleteFrom(`connections`).where(`connections.tenant_id`,`=`,t).where(`connections.id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function At(e){return async(t,n)=>{let r=await e.selectFrom(`connections`).where(`connections.tenant_id`,`=`,t).where(`connections.id`,`=`,n).selectAll().executeTakeFirst();return r?N(r):null}}function jt(e){return async(t,n,r)=>{let{is_system:i,...a}=r;delete a.enabled_clients;let o={...a,is_system:i===void 0?void 0:+!!i,updated_at:new Date().toISOString()};return await e.updateTable(`connections`).set({...o,options:o.options?JSON.stringify(o.options):void 0}).where(`connections.id`,`=`,n).where(`connections.tenant_id`,`=`,t).execute(),!0}}function Mt(e){return{create:Et(e),get:At(e),list:Ot(e),remove:kt(e),update:jt(e)}}function Nt(e){return async(t,r,i)=>{let a=i?.importMetadata,o=a?.id??r.client_id??(0,n.nanoid)(),s=new Date().toISOString(),c={...r,created_at:a?.created_at??s,updated_at:a?.updated_at??a?.created_at??s,client_id:o,global:r.global??!1,is_first_party:r.is_first_party??!0,oidc_conformant:r.oidc_conformant??!0,auth0_conformant:r.auth0_conformant??!0,sso:r.sso??!1,sso_disabled:r.sso_disabled??!1,cross_origin_authentication:r.cross_origin_authentication??!1,custom_login_page_on:r.custom_login_page_on??!1,require_pushed_authorization_requests:r.require_pushed_authorization_requests??!1,require_proof_of_possession:r.require_proof_of_possession??!1,hide_sign_up_disabled_error:r.hide_sign_up_disabled_error??!1},l={...c,tenant_id:t};return Ue(c,[`global`,`is_first_party`,`oidc_conformant`,`auth0_conformant`,`sso`,`sso_disabled`,`cross_origin_authentication`,`custom_login_page_on`,`require_pushed_authorization_requests`,`require_proof_of_possession`,`hide_sign_up_disabled_error`],l),Object.assign(l,{callbacks:JSON.stringify(r.callbacks||[]),allowed_origins:JSON.stringify(r.allowed_origins||[]),web_origins:JSON.stringify(r.web_origins||[]),client_aliases:JSON.stringify(r.client_aliases||[]),allowed_clients:JSON.stringify(r.allowed_clients||[]),connections:JSON.stringify(r.connections||[]),allowed_logout_urls:JSON.stringify(r.allowed_logout_urls||[]),session_transfer:JSON.stringify(r.session_transfer||{}),oidc_logout:JSON.stringify(r.oidc_logout||{}),grant_types:JSON.stringify(r.grant_types||[]),jwt_configuration:JSON.stringify(r.jwt_configuration||{}),signing_keys:JSON.stringify(r.signing_keys||[]),encryption_key:JSON.stringify(r.encryption_key||{}),addons:JSON.stringify(r.addons||{}),client_metadata:JSON.stringify(r.client_metadata||{}),mobile:JSON.stringify(r.mobile||{}),native_social_login:JSON.stringify(r.native_social_login||{}),refresh_token:JSON.stringify(r.refresh_token||{}),default_organization:JSON.stringify(r.default_organization||{}),client_authentication_methods:JSON.stringify(r.client_authentication_methods||{}),signed_request_object:JSON.stringify(r.signed_request_object||{}),token_quota:JSON.stringify(r.token_quota||{}),owner_user_id:r.owner_user_id??null,registration_type:r.registration_type??null,registration_metadata:r.registration_metadata?JSON.stringify(r.registration_metadata):null}),await e.insertInto(`clients`).values(l).execute(),c}}function Pt(e){return async(t,n)=>{let r=await e.selectFrom(`clients`).where(`clients.tenant_id`,`=`,t).where(`clients.client_id`,`=`,n).selectAll().executeTakeFirst();if(!r)return null;let{tenant_id:i,...a}=r;return O({...a,global:!!r.global,is_first_party:!!r.is_first_party,oidc_conformant:!!r.oidc_conformant,auth0_conformant:!!r.auth0_conformant,sso:!!r.sso,sso_disabled:!!r.sso_disabled,cross_origin_authentication:!!r.cross_origin_authentication,custom_login_page_on:!!r.custom_login_page_on,require_pushed_authorization_requests:!!r.require_pushed_authorization_requests,require_proof_of_possession:!!r.require_proof_of_possession,hide_sign_up_disabled_error:!!r.hide_sign_up_disabled_error,callbacks:JSON.parse(r.callbacks),allowed_origins:JSON.parse(r.allowed_origins),web_origins:JSON.parse(r.web_origins),client_aliases:JSON.parse(r.client_aliases),allowed_clients:JSON.parse(r.allowed_clients),connections:JSON.parse(r.connections||`[]`),allowed_logout_urls:JSON.parse(r.allowed_logout_urls),session_transfer:JSON.parse(r.session_transfer),oidc_logout:JSON.parse(r.oidc_logout),grant_types:JSON.parse(r.grant_types),jwt_configuration:JSON.parse(r.jwt_configuration),signing_keys:JSON.parse(r.signing_keys),encryption_key:JSON.parse(r.encryption_key),addons:JSON.parse(r.addons),client_metadata:JSON.parse(r.client_metadata),mobile:JSON.parse(r.mobile),native_social_login:JSON.parse(r.native_social_login),refresh_token:JSON.parse(r.refresh_token),default_organization:JSON.parse(r.default_organization),client_authentication_methods:JSON.parse(r.client_authentication_methods),signed_request_object:JSON.parse(r.signed_request_object),token_quota:JSON.parse(r.token_quota),registration_metadata:r.registration_metadata?JSON.parse(r.registration_metadata):void 0})}}function Ft(e){return async t=>{let n=await e.selectFrom(`clients`).where(`clients.client_id`,`=`,t).selectAll().executeTakeFirst();return n?O({...n,global:!!n.global,is_first_party:!!n.is_first_party,oidc_conformant:!!n.oidc_conformant,auth0_conformant:!!n.auth0_conformant,sso:!!n.sso,sso_disabled:!!n.sso_disabled,cross_origin_authentication:!!n.cross_origin_authentication,custom_login_page_on:!!n.custom_login_page_on,require_pushed_authorization_requests:!!n.require_pushed_authorization_requests,require_proof_of_possession:!!n.require_proof_of_possession,hide_sign_up_disabled_error:!!n.hide_sign_up_disabled_error,callbacks:JSON.parse(n.callbacks),allowed_origins:JSON.parse(n.allowed_origins),web_origins:JSON.parse(n.web_origins),client_aliases:JSON.parse(n.client_aliases),allowed_clients:JSON.parse(n.allowed_clients),connections:JSON.parse(n.connections||`[]`),allowed_logout_urls:JSON.parse(n.allowed_logout_urls),session_transfer:JSON.parse(n.session_transfer),oidc_logout:JSON.parse(n.oidc_logout),grant_types:JSON.parse(n.grant_types),jwt_configuration:JSON.parse(n.jwt_configuration),signing_keys:JSON.parse(n.signing_keys),encryption_key:JSON.parse(n.encryption_key),addons:JSON.parse(n.addons),client_metadata:JSON.parse(n.client_metadata),mobile:JSON.parse(n.mobile),native_social_login:JSON.parse(n.native_social_login),refresh_token:JSON.parse(n.refresh_token),default_organization:JSON.parse(n.default_organization),client_authentication_methods:JSON.parse(n.client_authentication_methods),signed_request_object:JSON.parse(n.signed_request_object),token_quota:JSON.parse(n.token_quota),registration_metadata:n.registration_metadata?JSON.parse(n.registration_metadata):void 0}):null}}function It(e){return async(t,n)=>{let i=e.selectFrom(`clients`).where(`clients.tenant_id`,`=`,t),a=new Set([`owner_user_id`,`registration_type`]);if(n?.q){let e=n.q.trim().match(/^([a-zA-Z_][a-zA-Z0-9_]*):"?([^"]*)"?$/);if(e&&a.has(e[1])&&e[2]){let t=e[1];i=i.where(t,`=`,e[2])}else i=i.where(e=>e.or([e(`name`,`like`,`%${n.q}%`),e(`client_id`,`like`,`%${n.q}%`)]))}if(n?.sort){let e=n.sort.sort_order===`asc`?`asc`:`desc`,t=n.sort.sort_by;i=[`name`,`client_id`,`created_at`,`updated_at`].includes(t)?i.orderBy(t,e):i.orderBy(`created_at`,`desc`)}else i=i.orderBy(`created_at`,`desc`);if(n?.from!==void 0){let e=parseInt(n.from,10);isNaN(e)||(i=i.offset(e))}else if(n?.page!==void 0){let e=n?.per_page||n?.take||10,t=n.page*e;i=i.offset(t)}let o=n?.take||n?.per_page||10;i=i.limit(o);let s=await i.selectAll().execute(),c=s.length;if(n?.include_totals){let i=e.selectFrom(`clients`).select(r.sql`count(*)`.as(`count`)).where(`clients.tenant_id`,`=`,t);if(n?.q){let e=n.q.trim().match(/^([a-zA-Z_][a-zA-Z0-9_]*):"?([^"]*)"?$/);if(e&&a.has(e[1])&&e[2]){let t=e[1];i=i.where(t,`=`,e[2])}else i=i.where(e=>e.or([e(`name`,`like`,`%${n.q}%`),e(`client_id`,`like`,`%${n.q}%`)]))}let o=await i.executeTakeFirst();c=Number(o?.count||0)}let l=s.map(e=>O({...e,global:!!e.global,is_first_party:!!e.is_first_party,oidc_conformant:!!e.oidc_conformant,auth0_conformant:!!e.auth0_conformant,sso:!!e.sso,sso_disabled:!!e.sso_disabled,cross_origin_authentication:!!e.cross_origin_authentication,custom_login_page_on:!!e.custom_login_page_on,require_pushed_authorization_requests:!!e.require_pushed_authorization_requests,require_proof_of_possession:!!e.require_proof_of_possession,hide_sign_up_disabled_error:!!e.hide_sign_up_disabled_error,callbacks:JSON.parse(e.callbacks),allowed_origins:JSON.parse(e.allowed_origins),web_origins:JSON.parse(e.web_origins),client_aliases:JSON.parse(e.client_aliases),allowed_clients:JSON.parse(e.allowed_clients),connections:JSON.parse(e.connections||`[]`),allowed_logout_urls:JSON.parse(e.allowed_logout_urls),session_transfer:JSON.parse(e.session_transfer),oidc_logout:JSON.parse(e.oidc_logout),grant_types:JSON.parse(e.grant_types),jwt_configuration:JSON.parse(e.jwt_configuration),signing_keys:JSON.parse(e.signing_keys),encryption_key:JSON.parse(e.encryption_key),addons:JSON.parse(e.addons),client_metadata:JSON.parse(e.client_metadata),mobile:JSON.parse(e.mobile),native_social_login:JSON.parse(e.native_social_login),refresh_token:JSON.parse(e.refresh_token),default_organization:JSON.parse(e.default_organization),client_authentication_methods:JSON.parse(e.client_authentication_methods),signed_request_object:JSON.parse(e.signed_request_object),token_quota:JSON.parse(e.token_quota),registration_metadata:e.registration_metadata?JSON.parse(e.registration_metadata):void 0})),u=n?.take||n?.per_page||10,d=n?.from?parseInt(n.from,10):n?.page?n.page*u:0;return{clients:l,totals:{start:isNaN(d)?0:d,limit:u,length:l.length,total:c}}}}function Lt(e){return async(t,n)=>(await e.deleteFrom(`clients`).where(`clients.tenant_id`,`=`,t).where(`clients.client_id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function Rt(e){return async(t,n,r)=>{let i={...r,updated_at:new Date().toISOString()};return Ue(r,[`global`,`is_first_party`,`oidc_conformant`,`auth0_conformant`,`sso`,`sso_disabled`,`cross_origin_authentication`,`custom_login_page_on`,`require_pushed_authorization_requests`,`require_proof_of_possession`,`hide_sign_up_disabled_error`],i),M(r,[`callbacks`,`allowed_origins`,`web_origins`,`client_aliases`,`allowed_clients`,`connections`,`allowed_logout_urls`,`session_transfer`,`oidc_logout`,`grant_types`,`jwt_configuration`,`signing_keys`,`encryption_key`,`addons`,`client_metadata`,`mobile`,`native_social_login`,`refresh_token`,`default_organization`,`client_authentication_methods`,`signed_request_object`,`token_quota`,`registration_metadata`],i),(await e.updateTable(`clients`).set(i).where(`clients.tenant_id`,`=`,t).where(`clients.client_id`,`=`,n).executeTakeFirst()).numUpdatedRows>0}}function zt(e){return{create:Nt(e),get:Pt(e),getByClientId:Ft(e),list:It(e),remove:Lt(e),update:Rt(e)}}function Bt(e){return async(t,n)=>{let r=await e.selectFrom(`clients`).where(`clients.tenant_id`,`=`,t).where(`clients.client_id`,`=`,n).select(`connections`).executeTakeFirst();if(!r)return[];let i=JSON.parse(r.connections||`[]`);if(i.length===0)return[];let a=await e.selectFrom(`connections`).where(`connections.tenant_id`,`=`,t).where(`connections.id`,`in`,i).selectAll().execute(),o=new Map(a.map(e=>[e.id,N(e)]));return i.map(e=>o.get(e)).filter(e=>e!==void 0)}}function Vt(e){return async(t,n,r)=>(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 Ht(e){return async(t,n)=>{let r=await e.selectFrom(`clients`).where(`clients.tenant_id`,`=`,t).select([`client_id`,`connections`]).execute(),i=[];for(let e of r)JSON.parse(e.connections||`[]`).includes(n)&&i.push(e.client_id);return i}}function Ut(e){return async(t,n,r)=>{let i=await e.selectFrom(`clients`).where(`clients.tenant_id`,`=`,t).where(`clients.client_id`,`=`,r).select(`connections`).executeTakeFirst();if(!i)return!1;let a=JSON.parse(i.connections||`[]`);return a.includes(n)?!0:(a.push(n),(await e.updateTable(`clients`).set({connections:JSON.stringify(a),updated_at:new Date().toISOString()}).where(`clients.tenant_id`,`=`,t).where(`clients.client_id`,`=`,r).executeTakeFirst()).numUpdatedRows>0)}}function Wt(e){return async(t,n,r)=>{let i=await e.selectFrom(`clients`).where(`clients.tenant_id`,`=`,t).where(`clients.client_id`,`=`,r).select(`connections`).executeTakeFirst();if(!i)return!1;let a=JSON.parse(i.connections||`[]`),o=a.filter(e=>e!==n);return o.length===a.length||(await e.updateTable(`clients`).set({connections:JSON.stringify(o),updated_at:new Date().toISOString()}).where(`clients.tenant_id`,`=`,t).where(`clients.client_id`,`=`,r).executeTakeFirst()).numUpdatedRows>0}}function Gt(e){return{listByClient:Bt(e),updateByClient:Vt(e),listByConnection:Ht(e),addClientToConnection:Ut(e),removeClientFromConnection:Wt(e)}}function Kt(e){return async(t,r,i)=>{let a=i?.importMetadata,o=new Date().toISOString(),s=a?.id??(0,n.nanoid)(),c=a?.created_at??o,l=a?.updated_at??a?.created_at??o,{scope:u,authorization_details_types:d,...f}=r,p={id:s,tenant_id:t,...f,scope:u?JSON.stringify(u):`[]`,authorization_details_types:d?JSON.stringify(d):`[]`,allow_any_organization:f.allow_any_organization===void 0?void 0:+!!f.allow_any_organization,is_system:f.is_system===void 0?void 0:+!!f.is_system,created_at:c,updated_at:l};return await e.insertInto(`client_grants`).values(p).execute(),O({id:s,tenant_id:t,...f,scope:u||[],authorization_details_types:d||[],allow_any_organization:f.allow_any_organization??!1,is_system:f.is_system??!1,created_at:c,updated_at:l})}}function qt(e){return async(t,n)=>{let r=await e.selectFrom(`client_grants`).selectAll().where(`client_grants.tenant_id`,`=`,t).where(`client_grants.id`,`=`,n).executeTakeFirst();return r?O({id:r.id,client_id:r.client_id,audience:r.audience,scope:r.scope?JSON.parse(r.scope):[],organization_usage:r.organization_usage,allow_any_organization:r.allow_any_organization!==void 0&&!!r.allow_any_organization,is_system:r.is_system!==void 0&&!!r.is_system,subject_type:r.subject_type,authorization_details_types:r.authorization_details_types?JSON.parse(r.authorization_details_types):[],created_at:r.created_at,updated_at:r.updated_at}):null}}function Jt(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,q:o,sort:s}=n,c=e.selectFrom(`client_grants`).where(`client_grants.tenant_id`,`=`,t);if(o){let t=o.trim(),n=t.split(/\s+/),r=n.length===1?n[0]:void 0,i=r?r.match(/^(-)?([a-zA-Z_][a-zA-Z0-9_]*):"?([^"]*)"?$/):null,a=i?i[3]:``,s=/^(>=|>|<=|<)/.test(a||``);if(i&&!s&&a){let t=!!i[1],n=i[2],{ref:r}=e.dynamic,o=r(`client_grants.${n}`);if(n===`allow_any_organization`){let e=+(a===`true`);c=t?c.where(o,`!=`,e):c.where(o,`=`,e)}else c=t?c.where(o,`!=`,a):c.where(o,`=`,a)}else c=w(e,c,t,[])}let l=c;if(s){let{ref:t}=e.dynamic;l=l.orderBy(t(s.sort_by),s.sort_order)}else l=l.orderBy(`client_grants.created_at`,`desc`);l=l.limit(i).offset(r*i);let u=(await l.selectAll().execute()).map(e=>O({id:e.id,client_id:e.client_id,audience:e.audience,scope:e.scope?JSON.parse(e.scope):[],organization_usage:e.organization_usage,allow_any_organization:e.allow_any_organization!==void 0&&!!e.allow_any_organization,is_system:e.is_system!==void 0&&!!e.is_system,subject_type:e.subject_type,authorization_details_types:e.authorization_details_types?JSON.parse(e.authorization_details_types):[],created_at:e.created_at,updated_at:e.updated_at}));if(!a)return{client_grants:u,start:0,limit:0,length:0};let{count:d}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{client_grants:u,start:r*i,limit:i,length:T(d)}}}function Yt(e){return async(t,n)=>((await e.deleteFrom(`client_grants`).where(`client_grants.tenant_id`,`=`,t).where(`client_grants.id`,`=`,n).executeTakeFirst()).numDeletedRows??0n)>0n}function Xt(e){return async(t,n,r)=>{let i=new Date().toISOString(),{scope:a,authorization_details_types:o,...s}=r,c={...s,updated_at:i};return a!==void 0&&(c.scope=JSON.stringify(a)),o!==void 0&&(c.authorization_details_types=JSON.stringify(o)),s.allow_any_organization!==void 0&&(c.allow_any_organization=+!!s.allow_any_organization),s.is_system!==void 0&&(c.is_system=+!!s.is_system),((await e.updateTable(`client_grants`).set(c).where(`client_grants.tenant_id`,`=`,t).where(`client_grants.id`,`=`,n).executeTakeFirst()).numUpdatedRows??0n)>0n}}function Zt(e){return{create:Kt(e),get:qt(e),list:Jt(e),remove:Yt(e),update:Xt(e)}}function Qt(e){return async(t,n)=>{let r=Date.now();return await e.insertInto(`client_registration_tokens`).values({id:n.id,tenant_id:t,token_hash:n.token_hash,type:n.type,client_id:n.client_id??null,sub:n.sub??null,constraints:n.constraints?JSON.stringify(n.constraints):null,single_use:+!!n.single_use,expires_at_ts:y(n.expires_at),created_at_ts:r,used_at_ts:null,revoked_at_ts:null}).execute(),{id:n.id,token_hash:n.token_hash,type:n.type,client_id:n.client_id,sub:n.sub,constraints:n.constraints,single_use:n.single_use,expires_at:n.expires_at,created_at:new Date(r).toISOString()}}}function $t(e){let t=i.clientRegistrationTokenTypeSchema.safeParse(e);if(!t.success)throw Error(`Unknown client_registration_tokens.type: ${e}`);return t.data}function en(e){if(!e)return;let t;try{t=JSON.parse(e)}catch{return}return(0,i.isPlainObject)(t)?t:void 0}function P(e){return{id:e.id,token_hash:e.token_hash,type:$t(e.type),client_id:e.client_id??void 0,sub:e.sub??void 0,constraints:en(e.constraints),single_use:!!e.single_use,expires_at:_(e.expires_at_ts),used_at:_(e.used_at_ts),revoked_at:_(e.revoked_at_ts),created_at:v(e.created_at_ts)}}function tn(e){return async(t,n)=>{let r=await e.selectFrom(`client_registration_tokens`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).selectAll().executeTakeFirst();return r?P(r):null}}function nn(e){return async(t,n)=>{let r=await e.selectFrom(`client_registration_tokens`).where(`tenant_id`,`=`,t).where(`token_hash`,`=`,n).selectAll().executeTakeFirst();return r?P(r):null}}function rn(e){return async(t,n)=>(await e.selectFrom(`client_registration_tokens`).where(`tenant_id`,`=`,t).where(`client_id`,`=`,n).orderBy(`created_at_ts`,`desc`).selectAll().execute()).map(P)}function an(e){return async(t,n,r)=>(await e.updateTable(`client_registration_tokens`).set({used_at_ts:y(r)}).where(`tenant_id`,`=`,t).where(`id`,`=`,n).where(`used_at_ts`,`is`,null).executeTakeFirst()).numUpdatedRows>0}function on(e){return async(t,n,r)=>(await e.updateTable(`client_registration_tokens`).set({revoked_at_ts:y(r)}).where(`tenant_id`,`=`,t).where(`id`,`=`,n).where(`revoked_at_ts`,`is`,null).executeTakeFirst()).numUpdatedRows>0}function sn(e){return async(t,n,r)=>{let i=await e.updateTable(`client_registration_tokens`).set({revoked_at_ts:y(r)}).where(`tenant_id`,`=`,t).where(`client_id`,`=`,n).where(`revoked_at_ts`,`is`,null).executeTakeFirst();return Number(i.numUpdatedRows)}}function cn(e){return async(t,n)=>(await e.deleteFrom(`client_registration_tokens`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function ln(e){return{create:Qt(e),get:tn(e),getByHash:nn(e),listByClient:rn(e),markUsed:an(e),revoke:on(e),revokeByClient:sn(e),remove:cn(e)}}function un(e){return async(t={})=>{let{page:n=0,per_page:r=100,include_totals:i=!1,sort:a,q:o}=t,s=e.selectFrom(`keys`).where(e=>e.or([e(`revoked_at`,`>`,new Date().toISOString()),e(`revoked_at`,`is`,null)]));o&&(s=w(e,s,o,[`kid`,`tenant_id`,`connection`,`fingerprint`,`thumbprint`,`type`]));let c=s.select(e=>e.fn.count(`kid`).as(`count`)),l=n*r;s=s.limit(r).offset(l),a&&(s=s.orderBy(a.sort_by,a.sort_order));let u=await s.selectAll().execute();return i?{signingKeys:u,start:l,limit:r,length:T((await c.executeTakeFirst())?.count??0)}:{signingKeys:u,start:0,limit:0,length:0}}}function dn(e){return async(t,n)=>{let r=n?.importMetadata;await e.insertInto(`keys`).values({...t,kid:r?.id??t.kid,created_at:r?.created_at??new Date().toDateString()}).execute()}}function fn(e){return async(t,n)=>!!(await e.updateTable(`keys`).set(n).where(`kid`,`=`,t).execute()).length}function pn(e){return{create:dn(e),list:un(e),update:fn(e)}}function mn(e){return async(t,r,i)=>{let a=i?.importMetadata,o=new Date().toISOString(),s={status:`pending`,primary:!1,...r,custom_domain_id:a?.id||r.custom_domain_id||(0,n.nanoid)()};return await e.insertInto(`custom_domains`).values({...s,created_at:a?.created_at??o,updated_at:a?.updated_at??o,tenant_id:t,primary:+!!s.primary,domain_metadata:s.domain_metadata?JSON.stringify(s.domain_metadata):void 0}).execute(),s}}function hn(e){return async t=>(await e.selectFrom(`custom_domains`).where(`custom_domains.tenant_id`,`=`,t).selectAll().execute()).map(e=>({...e,primary:e.primary===1,domain_metadata:j(e.domain_metadata,void 0),verification:j(e.verification,void 0)}))}function gn(e){return async(t,n)=>(await e.deleteFrom(`custom_domains`).where(`custom_domains.tenant_id`,`=`,t).where(`custom_domains.custom_domain_id`,`=`,n).execute()).length>0}function _n(e){return async(t,n)=>{let r=await e.selectFrom(`custom_domains`).where(`custom_domains.tenant_id`,`=`,t).where(`custom_domains.custom_domain_id`,`=`,n).selectAll().executeTakeFirst();return r?{...r,primary:r.primary===1,domain_metadata:j(r.domain_metadata,void 0),verification:j(r.verification,void 0)}:null}}function vn(e){return async(t,n,r)=>{let{verification:i,domain_metadata:a,primary:o,...s}=r,c={...s,updated_at:new Date().toISOString(),...o!==void 0&&{primary:+!!o},...a!==void 0&&{domain_metadata:JSON.stringify(a)},...i!==void 0&&{verification:JSON.stringify(i)}};return(await e.updateTable(`custom_domains`).set(c).where(`custom_domains.tenant_id`,`=`,t).where(`custom_domains.custom_domain_id`,`=`,n).execute()).length>0}}function yn(e){return async t=>{let n=await e.selectFrom(`custom_domains`).where(`custom_domains.domain`,`=`,t).selectAll().executeTakeFirst();return n?{...n,primary:n.primary===1,domain_metadata:j(n.domain_metadata,void 0)}:null}}function bn(e){return{create:mn(e),get:_n(e),getByDomain:yn(e),list:hn(e),remove:gn(e),update:vn(e)}}function xn(e){return async t=>{let[n]=await e.selectFrom(`branding`).where(`branding.tenant_id`,`=`,t).selectAll().execute();if(!n)return null;let{tenant_id:r,colors_primary:i,colors_page_background_type:a,colors_page_background_start:o,colors_page_background_end:s,colors_page_background_angle_dev:c,font_url:l,...u}=n;return O({...u,colors:{primary:i,page_background:{type:a,start:o,end:s,angle_deg:c}},font:l?{url:l}:void 0})}}function Sn(e){return async(t,n)=>{let{colors:r,font:i,...a}=n,o=r?.page_background,s=o&&typeof o==`object`?o:void 0;try{await e.insertInto(`branding`).values({...a,colors_primary:r?.primary,colors_page_background_type:s?.type,colors_page_background_start:s?.start,colors_page_background_end:s?.end,colors_page_background_angle_dev:s?.angle_deg,font_url:n.font?.url,tenant_id:t}).execute()}catch{await e.updateTable(`branding`).set({...a,colors_primary:r?.primary,colors_page_background_type:s?.type,colors_page_background_start:s?.start,colors_page_background_end:s?.end,colors_page_background_angle_dev:s?.angle_deg,font_url:n.font?.url}).where(`tenant_id`,`=`,t).execute()}}}function Cn(e){return{get:xn(e),set:Sn(e)}}function wn(e){return async t=>{let n=await e.selectFrom(`universal_login_templates`).select([`body`]).where(`tenant_id`,`=`,t).executeTakeFirst();return n?{body:n.body}:null}}function Tn(e){return async(t,n,r)=>{let i=r?.importMetadata,a=Date.now(),o=i?.created_at?new Date(i.created_at).getTime():a,s=i?.updated_at?new Date(i.updated_at).getTime():a;try{await e.insertInto(`universal_login_templates`).values({tenant_id:t,body:n.body,created_at_ts:o,updated_at_ts:s}).execute()}catch{await e.updateTable(`universal_login_templates`).set({body:n.body,updated_at_ts:s,...i?.created_at?{created_at_ts:o}:{}}).where(`tenant_id`,`=`,t).execute()}}}function En(e){return async t=>{await e.deleteFrom(`universal_login_templates`).where(`tenant_id`,`=`,t).execute()}}function Dn(e){return{get:wn(e),set:Tn(e),delete:En(e)}}function On(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,sort:o,q:s}=n,c=e.selectFrom(`hooks`).where(`hooks.tenant_id`,`=`,t);if(s&&(c=w(e,c,s,[`url`,`form_id`,`template_id`,`code_id`])),o?.sort_by){let{ref:t}=e.dynamic;c=c.orderBy(t(o.sort_by),o.sort_order)}else c=c.orderBy(`priority`,`desc`).orderBy(`created_at_ts`,`asc`);let l=(await c.offset(r*i).limit(i).selectAll().execute()).map(e=>{let{tenant_id:t,enabled:n,synchronous:r,created_at_ts:i,updated_at_ts:a,metadata:o,...s}=e,c=x({created_at_ts:i,updated_at_ts:a},[`created_at_ts`,`updated_at_ts`]);return O({...s,...c,enabled:!!n,synchronous:!!r,metadata:Ie(o)})});if(!a)return{hooks:l,start:0,limit:0,length:0};let{count:u}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{hooks:l,start:r*i,limit:i,length:T(u)}}}function kn(e){return async(t,n)=>{let r=await e.selectFrom(`hooks`).where(`hooks.tenant_id`,`=`,t).where(`hooks.hook_id`,`=`,n).selectAll().executeTakeFirst();if(!r)return null;let{tenant_id:i,created_at_ts:a,updated_at_ts:o,metadata:s,...c}=r,l=x({created_at_ts:a,updated_at_ts:o},[`created_at_ts`,`updated_at_ts`]);return O({...c,...l,enabled:!!c.enabled,synchronous:!!c.synchronous,metadata:Ie(s)})}}function An(e){return async(t,n)=>(await e.deleteFrom(`hooks`).where(`hooks.tenant_id`,`=`,t).where(`hooks.hook_id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function jn(e){return async(t,n,r)=>{let i=r?.importMetadata,a=new Date().toISOString(),o=i?.created_at??a,s=i?.updated_at??a,c=i?.id??(n.hook_id||f()),{hook_id:l,enabled:u,synchronous:d,metadata:p,...m}=n;return await e.insertInto(`hooks`).values({...m,hook_id:c,tenant_id:t,enabled:+!!u,synchronous:+!!d,metadata:p?JSON.stringify(p):null,created_at_ts:new Date(o).getTime(),updated_at_ts:new Date(s).getTime()}).execute(),{...m,hook_id:c,enabled:u??!1,synchronous:d??!1,...p?{metadata:p}:{},created_at:o,updated_at:s}}}function Mn(e){return async(t,n,r)=>{let{hook_id:i,metadata:a,...o}=r,s={...o,updated_at_ts:Date.now(),enabled:r.enabled===void 0?void 0:+!!r.enabled,synchronous:r.synchronous===void 0?void 0:+!!r.synchronous,...a===void 0?{}:{metadata:a===null?null:JSON.stringify(a)}};return await e.updateTable(`hooks`).set(s).where(`hooks.hook_id`,`=`,n).where(`hooks.tenant_id`,`=`,t).execute(),!0}}function Nn(e){return{create:jn(e),get:kn(e),list:On(e),update:Mn(e),remove:An(e)}}function Pn(e){return async(t,n,r)=>{let i=r?.importMetadata,a=new Date().toISOString(),o=i?.created_at??a,s=i?.updated_at??a,c=i?.id??m();return await e.insertInto(`hook_code`).values({id:c,tenant_id:t,code:n.code,secrets:n.secrets?JSON.stringify(n.secrets):null,created_at_ts:new Date(o).getTime(),updated_at_ts:new Date(s).getTime()}).execute(),{id:c,tenant_id:t,code:n.code,secrets:n.secrets,created_at:o,updated_at:s}}}function Fn(e){return async(t,n)=>{let r=await e.selectFrom(`hook_code`).where(`hook_code.tenant_id`,`=`,t).where(`hook_code.id`,`=`,n).selectAll().executeTakeFirst();if(!r)return null;let{created_at_ts:i,updated_at_ts:a,secrets:o,...s}=r,c=x({created_at_ts:i,updated_at_ts:a},[`created_at_ts`,`updated_at_ts`]);return{...s,...c,secrets:o?(()=>{try{return JSON.parse(o)}catch{console.warn(`Failed to parse secrets for hook_code ${n}`);return}})():void 0}}}function In(e){return async(t,n,r)=>{let i={updated_at_ts:Date.now()};return r.code!==void 0&&(i.code=r.code),r.secrets!==void 0&&(i.secrets=JSON.stringify(r.secrets)),(await e.updateTable(`hook_code`).set(i).where(`hook_code.id`,`=`,n).where(`hook_code.tenant_id`,`=`,t).executeTakeFirst()).numUpdatedRows>0}}function Ln(e){return async(t,n)=>(await e.deleteFrom(`hook_code`).where(`hook_code.tenant_id`,`=`,t).where(`hook_code.id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function Rn(e){return{create:Pn(e),get:Fn(e),update:In(e),remove:Ln(e)}}function zn(e){return async(t,r,i,a)=>{let o=a?.importMetadata,s=new Date().toISOString(),c={themeId:o?.id||i||(0,n.nanoid)(),...r,created_at:o?.created_at??s,updated_at:o?.updated_at??s},l={...c,tenant_id:t};return await e.insertInto(`themes`).values(A(l)).execute(),c}}function Bn(e){return async(t,n)=>(await e.deleteFrom(`themes`).where(`themes.tenant_id`,`=`,t).where(`themes.themeId`,`=`,n).executeTakeFirst()).numDeletedRows>0}function Vn(e){return async(t,n)=>{let r=await e.selectFrom(`themes`).where(`themes.tenant_id`,`=`,t).where(`themes.themeId`,`=`,n).selectAll().executeTakeFirst();return r?O(Oe({...r,borders_show_widget_shadow:!!r.borders_show_widget_shadow,fonts_body_text_bold:!!r.fonts_body_text_bold,fonts_buttons_text_bold:!!r.fonts_buttons_text_bold,fonts_input_labels_bold:!!r.fonts_input_labels_bold,fonts_links_bold:!!r.fonts_links_bold,fonts_subtitle_bold:!!r.fonts_subtitle_bold,fonts_title_bold:!!r.fonts_title_bold},[`widget`,`colors`,`borders`,`fonts`,`page_background`])):null}}function Hn(e){return async(t,n,r)=>{let{themeId:i,...a}=r,o=A({...a,updated_at:new Date().toISOString()});return await e.updateTable(`themes`).set(o).where(`themes.themeId`,`=`,n).where(`themes.tenant_id`,`=`,t).execute(),!0}}function Un(e){return{create:zn(e),get:Vn(e),remove:Bn(e),update:Hn(e)}}function Wn(e){return async(t,n)=>{let r=await e.selectFrom(`login_sessions`).where(`login_sessions.id`,`=`,n).selectAll().executeTakeFirst();if(!r)return null;let{created_at_ts:a,updated_at_ts:o,expires_at_ts:s,auth_params:c,...l}=r,u=x({created_at_ts:a,updated_at_ts:o,expires_at_ts:s},[`created_at_ts`,`updated_at_ts`,`expires_at_ts`]),d=Oe(O({...l,...u,state:r.state||i.LoginSessionState.PENDING,state_data:r.state_data,failure_reason:r.failure_reason}),[`auth_strategy`]);return d.authParams=typeof c==`string`&&c.length>0?JSON.parse(c):{},i.loginSessionSchema.parse(d)}}var Gn=`0123456789ABCDEFGHJKMNPQRSTVWXYZ`,F=32,Kn=10,qn=16;function Jn(e){let t=``;for(let n=Kn;n>0;n--)t=Gn.charAt(e%F)+t,e=Math.floor(e/F);return t}function Yn(){let e=new Uint8Array(qn);crypto.getRandomValues(e);let t=``;for(let n=0;n<qn;n++)t+=Gn.charAt(e[n]%F);return t}function Xn(){return Jn(Date.now())+Yn()}function Zn(e){return async(t,n)=>{let r=b(),a={id:Xn(),...n,authorization_url:n.authorization_url?.slice(0,1024),created_at:r,updated_at:r,state:n.state||i.LoginSessionState.PENDING,state_data:n.state_data,failure_reason:n.failure_reason},{authParams:o,...s}=a,c=Date.now(),l=A(s);return delete l.created_at,delete l.updated_at,delete l.expires_at,await e.insertInto(`login_sessions`).values({...l,tenant_id:t,auth_params:JSON.stringify(o),created_at_ts:c,updated_at_ts:c,expires_at_ts:n.expires_at?new Date(n.expires_at).getTime():c+1e3*60*60*24}).execute(),a}}function Qn(e){return async(t,n,r)=>{let{created_at:i,updated_at:a,expires_at:o,authParams:s,...c}=r,l={};if(s!==void 0){let r=(await e.selectFrom(`login_sessions`).where(`login_sessions.id`,`=`,n).where(`login_sessions.tenant_id`,`=`,t).select([`auth_params`]).executeTakeFirst())?.auth_params,i=typeof r==`string`&&r.length>0?JSON.parse(r):{};l={auth_params:JSON.stringify({...i,...s})}}let u=A(c);return delete u.created_at_ts,delete u.updated_at_ts,delete u.expires_at_ts,delete u.id,delete u.tenant_id,(await e.updateTable(`login_sessions`).set({...u,...l,updated_at_ts:Date.now(),...o===void 0?{}:{expires_at_ts:y(o)}}).where(`login_sessions.id`,`=`,n).where(`login_sessions.tenant_id`,`=`,t).execute()).length===1}}function $n(e){return async(t,n)=>(await e.deleteFrom(`login_sessions`).where(`login_sessions.tenant_id`,`=`,t).where(`login_sessions.id`,`=`,n).execute()).length>0}function er(e){return{create:Zn(e),get:Wn(e),update:Qn(e),remove:$n(e)}}function tr(e){return async t=>{let[n]=await e.selectFrom(`prompt_settings`).where(`prompt_settings.tenant_id`,`=`,t).selectAll().execute();return O({identifier_first:!!n?.identifier_first,password_first:!!n?.password_first,webauthn_platform_first_factor:!!n?.webauthn_platform_first_factor,universal_login_experience:n?.universal_login_experience||`new`})}}function nr(e){let t={};return typeof e.identifier_first==`boolean`&&(t.identifier_first=+!!e.identifier_first),typeof e.password_first==`boolean`&&(t.password_first=+!!e.password_first),typeof e.webauthn_platform_first_factor==`boolean`&&(t.webauthn_platform_first_factor=+!!e.webauthn_platform_first_factor),e.universal_login_experience&&(t.universal_login_experience=e.universal_login_experience),t}function rr(e){return async(t,n)=>{let r=nr(n);try{await e.insertInto(`prompt_settings`).values({tenant_id:t,identifier_first:r.identifier_first??1,password_first:r.password_first??0,webauthn_platform_first_factor:r.webauthn_platform_first_factor??0,universal_login_experience:r.universal_login_experience??`new`}).execute()}catch{if(Object.keys(r).length===0)return;await e.updateTable(`prompt_settings`).set(r).where(`tenant_id`,`=`,t).execute()}}}function ir(e){return{get:tr(e),set:rr(e)}}function ar(e){return async t=>{let[n]=await e.selectFrom(`email_providers`).where(`email_providers.tenant_id`,`=`,t).selectAll().execute();if(!n)return null;let{tenant_id:r,credentials:i,settings:a,enabled:o,...s}=n;return O({...s,credentials:JSON.parse(i),settings:JSON.parse(a),enabled:!!o})}}function or(e){return async(t,n)=>{let{credentials:r,settings:i,enabled:a,...o}=n;await e.updateTable(`email_providers`).set({...o,credentials:r?JSON.stringify(r):void 0,settings:i?JSON.stringify(i):void 0,enabled:a===void 0?void 0:+!!a}).where(`tenant_id`,`=`,t).execute()}}function sr(e){return async(t,n,r)=>{let i=r?.importMetadata,a=new Date().toISOString(),{credentials:o,settings:s,enabled:c,...l}=n;await e.insertInto(`email_providers`).values({...l,enabled:+!!c,credentials:JSON.stringify(o),settings:JSON.stringify(s),tenant_id:t,created_at:i?.created_at??a,updated_at:i?.updated_at??a}).execute()}}function cr(e){return async t=>{await e.deleteFrom(`email_providers`).where(`tenant_id`,`=`,t).execute()}}function lr(e){return{get:ar(e),create:sr(e),update:or(e),remove:cr(e)}}function ur(e){let t={template:e.template,body:e.body,from:e.from,subject:e.subject,syntax:e.syntax,includeEmailInRedirect:!!e.include_email_in_redirect,enabled:!!e.enabled};return e.result_url!==null&&e.result_url!==void 0&&(t.resultUrl=e.result_url),e.url_lifetime_in_seconds!==null&&e.url_lifetime_in_seconds!==void 0&&(t.urlLifetimeInSeconds=e.url_lifetime_in_seconds),t}function dr(e){return async(t,n)=>{let r=await e.selectFrom(`email_templates`).where(`tenant_id`,`=`,t).where(`template`,`=`,n).selectAll().executeTakeFirst();return r?i.emailTemplateSchema.parse(ur(r)):null}}function fr(e){return async t=>(await e.selectFrom(`email_templates`).where(`tenant_id`,`=`,t).orderBy(`template`,`asc`).selectAll().execute()).map(e=>i.emailTemplateSchema.parse(ur(e)))}function pr(e){return async(t,n,r)=>{let i=r?.importMetadata,a=new Date().toISOString(),o=i?.created_at??a,s=i?.updated_at??i?.created_at??a;return await e.insertInto(`email_templates`).values({tenant_id:t,template:n.template,body:n.body,from:n.from,subject:n.subject,syntax:n.syntax,result_url:n.resultUrl??null,url_lifetime_in_seconds:n.urlLifetimeInSeconds??null,include_email_in_redirect:+!!n.includeEmailInRedirect,enabled:+!!n.enabled,created_at:o,updated_at:s}).execute(),n}}function mr(e){return async(t,n,r)=>{let i={};if(r.body!==void 0&&(i.body=r.body),r.from!==void 0&&(i.from=r.from),r.subject!==void 0&&(i.subject=r.subject),r.syntax!==void 0&&(i.syntax=r.syntax),r.resultUrl!==void 0&&(i.result_url=r.resultUrl),r.urlLifetimeInSeconds!==void 0&&(i.url_lifetime_in_seconds=r.urlLifetimeInSeconds),r.includeEmailInRedirect!==void 0&&(i.include_email_in_redirect=+!!r.includeEmailInRedirect),r.enabled!==void 0&&(i.enabled=+!!r.enabled),Object.keys(i).length===0)return await e.selectFrom(`email_templates`).where(`tenant_id`,`=`,t).where(`template`,`=`,n).select(`template`).executeTakeFirst()!==void 0;i.updated_at=new Date().toISOString();let a=await e.updateTable(`email_templates`).set(i).where(`tenant_id`,`=`,t).where(`template`,`=`,n).executeTakeFirst();return Number(a.numUpdatedRows??0)>0}}function hr(e){return async(t,n)=>{let r=await e.deleteFrom(`email_templates`).where(`tenant_id`,`=`,t).where(`template`,`=`,n).executeTakeFirst();return Number(r.numDeletedRows??0)>0}}function gr(e){return{get:dr(e),list:fr(e),create:pr(e),update:mr(e),remove:hr(e)}}function _r(e){return async(t,n)=>{let r=await e.selectFrom(`refresh_tokens`).where(`refresh_tokens.tenant_id`,`=`,t).where(`refresh_tokens.id`,`=`,n).selectAll().executeTakeFirst();if(!r)return null;let{tenant_id:i,created_at_ts:a,expires_at_ts:o,idle_expires_at_ts:s,last_exchanged_at_ts:c,revoked_at_ts:l,rotated_at_ts:u,...d}=r,f=x({created_at_ts:a,expires_at_ts:o,idle_expires_at_ts:s,last_exchanged_at_ts:c,revoked_at_ts:l,rotated_at_ts:u},[`created_at_ts`],[`expires_at_ts`,`idle_expires_at_ts`,`last_exchanged_at_ts`,`revoked_at_ts`,`rotated_at_ts`]);return{...d,...f,rotating:!!r.rotating,device:r.device?JSON.parse(r.device):{},resource_servers:r.resource_servers?JSON.parse(r.resource_servers):[]}}}function vr(e){return async(t,n)=>{let r=await e.selectFrom(`refresh_tokens`).where(`refresh_tokens.tenant_id`,`=`,t).where(`refresh_tokens.token_lookup`,`=`,n).selectAll().executeTakeFirst();if(!r)return null;let{tenant_id:i,created_at_ts:a,expires_at_ts:o,idle_expires_at_ts:s,last_exchanged_at_ts:c,revoked_at_ts:l,rotated_at_ts:u,...d}=r,f=x({created_at_ts:a,expires_at_ts:o,idle_expires_at_ts:s,last_exchanged_at_ts:c,revoked_at_ts:l,rotated_at_ts:u},[`created_at_ts`],[`expires_at_ts`,`idle_expires_at_ts`,`last_exchanged_at_ts`,`revoked_at_ts`,`rotated_at_ts`]);return{...d,...f,rotating:!!r.rotating,device:r.device?JSON.parse(r.device):{},resource_servers:r.resource_servers?JSON.parse(r.resource_servers):[]}}}function yr(e){return async(t,n)=>{let r=b(),i={...n,created_at:r},{expires_at:a,idle_expires_at:o,last_exchanged_at:s,rotated_at:c,device:l,resource_servers:u,rotating:d,...f}=n,p=Date.now(),m=y(a),h=o?y(o):null,g=Math.max(m??0,h??0);return await e.transaction().execute(async e=>{await e.insertInto(`refresh_tokens`).values({...f,tenant_id:t,rotating:+!!d,device:JSON.stringify(l),resource_servers:JSON.stringify(u),created_at_ts:p,expires_at_ts:m,idle_expires_at_ts:h,last_exchanged_at_ts:s?y(s):null,rotated_at_ts:c?y(c):null}).execute(),g>0&&n.login_id&&await e.updateTable(`login_sessions`).set({expires_at_ts:g,updated_at_ts:p}).where(`tenant_id`,`=`,t).where(`id`,`=`,n.login_id).where(`expires_at_ts`,`<`,g).execute()}),{...n,...i}}}function br(e){return async(t,n)=>!!(await e.deleteFrom(`refresh_tokens`).where(`tenant_id`,`=`,t).where(`refresh_tokens.id`,`=`,n).execute()).length}function xr(e){return async(t,n,r)=>{let i=y(r),a=await e.updateTable(`refresh_tokens`).set({revoked_at_ts:i}).where(`tenant_id`,`=`,t).where(`login_id`,`=`,n).where(`revoked_at_ts`,`is`,null).executeTakeFirst();return Number(a.numUpdatedRows??0)}}function Sr(e){return async(t,n,r)=>{let i=y(r),a=await e.updateTable(`refresh_tokens`).set({revoked_at_ts:i}).where(`tenant_id`,`=`,t).where(`family_id`,`=`,n).where(`revoked_at_ts`,`is`,null).executeTakeFirst();return Number(a.numUpdatedRows??0)}}function Cr(e){return async(t,n,r,i)=>{let{created_at:a,expires_at:o,idle_expires_at:s,last_exchanged_at:c,revoked_at:l,rotated_at:u,device:d,resource_servers:f,rotating:p,...m}=r,h={...m,device:d?JSON.stringify(d):void 0,resource_servers:f?JSON.stringify(f):void 0,rotating:p===void 0?void 0:+!!p,expires_at_ts:o===void 0?void 0:y(o),idle_expires_at_ts:s===void 0?void 0:y(s),last_exchanged_at_ts:c===void 0?void 0:y(c),revoked_at_ts:l===void 0?void 0:y(l),rotated_at_ts:u===void 0?void 0:y(u)},g=i?.loginSessionBump,_=g?y(g.expires_at):null,v=await e.updateTable(`refresh_tokens`).set(h).where(`tenant_id`,`=`,t).where(`refresh_tokens.id`,`=`,n).executeTakeFirst();return g?.login_id&&_&&_>0&&await e.updateTable(`login_sessions`).set({expires_at_ts:_,updated_at_ts:Date.now()}).where(`tenant_id`,`=`,t).where(`id`,`=`,g.login_id).where(`expires_at_ts`,`<`,_).execute().catch(()=>{}),(v?.numUpdatedRows??0n)>0n}}function wr(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,sort:o,q:s}=n,c=e.selectFrom(`refresh_tokens`).where(`refresh_tokens.tenant_id`,`=`,t);s&&(c=w(e,c,s,[`token`,`login_id`]));let l=c;if(o&&o.sort_by){let{ref:t}=e.dynamic;l=l.orderBy(t(o.sort_by),o.sort_order)}l=l.offset(r*i).limit(i);let u=(await l.selectAll().execute()).map(e=>{let{tenant_id:t,created_at_ts:n,expires_at_ts:r,idle_expires_at_ts:i,last_exchanged_at_ts:a,revoked_at_ts:o,rotated_at_ts:s,...c}=e,l=x({created_at_ts:n,expires_at_ts:r,idle_expires_at_ts:i,last_exchanged_at_ts:a,revoked_at_ts:o,rotated_at_ts:s},[`created_at_ts`],[`expires_at_ts`,`idle_expires_at_ts`,`last_exchanged_at_ts`,`revoked_at_ts`,`rotated_at_ts`]);return{...c,...l,rotating:!!e.rotating,device:e.device?JSON.parse(e.device):{},resource_servers:e.resource_servers?JSON.parse(e.resource_servers):[]}});if(!a)return{refresh_tokens:u,start:0,limit:0,length:0};let{count:d}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow(),f=T(d);return{refresh_tokens:u,start:r*i,limit:i,length:f}}}function Tr(e){return{create:yr(e),get:_r(e),getByLookup:vr(e),list:wr(e),remove:br(e),revokeByLoginSession:xr(e),revokeFamily:Sr(e),update:Cr(e)}}var Er=10080*60*1e3;function Dr(e){return async t=>{let{tenant_id:n,user_id:r}=t||{},i=Date.now()-Er,a=1e3;try{let t=0;for(;;){let o=e.deleteFrom(`refresh_tokens`).where(e=>e.or([e(`expires_at_ts`,`<`,i),e(`idle_expires_at_ts`,`<`,i)]));n&&(o=o.where(`tenant_id`,`=`,n)),r&&(o=o.where(`user_id`,`=`,r));let s=await o.limit(a).execute(),c=Number(s[0]?.numDeletedRows??0);if(t+=c,c<a)break}let o=0;for(;;){let t=e.deleteFrom(`sessions`).where(e=>e.or([e(`expires_at_ts`,`<`,i),e(`idle_expires_at_ts`,`<`,i)]));n&&(t=t.where(`tenant_id`,`=`,n)),r&&(t=t.where(`user_id`,`=`,r));let s=await t.limit(a).execute(),c=Number(s[0]?.numDeletedRows??0);if(o+=c,c<a)break}let s=0;for(;;){let t=e.deleteFrom(`login_sessions`).where(`expires_at_ts`,`<`,i);n&&(t=t.where(`tenant_id`,`=`,n)),r&&(t=t.where(`user_id`,`=`,r));let o=await t.limit(a).execute(),c=Number(o[0]?.numDeletedRows??0);if(s+=c,c<a)break}(t>0||o>0||s>0)&&console.log(`Session cleanup: deleted ${t} refresh_tokens, ${o} sessions, ${s} login_sessions`)}catch(e){console.error(`Error during session cleanup:`,e)}}}function Or(e){return async(t,r,a)=>{let o=a?.importMetadata,s=new Date().toISOString(),c=i.formSchema.parse({id:o?.id??(0,n.nanoid)(),...r,created_at:o?.created_at??s,updated_at:o?.updated_at??s});return await e.insertInto(`forms`).values({...c,nodes:JSON.stringify(c.nodes||[]),start:JSON.stringify(c.start||{}),ending:JSON.stringify(c.ending||{}),tenant_id:t}).execute(),i.formSchema.parse(c)}}function kr(e){return async(t,n={})=>{let{page:r=0,per_page:a=50,include_totals:o=!1,q:s}=n,c=e.selectFrom(`forms`).where(`tenant_id`,`=`,t);s&&(c=w(e,c,s,[]));let l=(await c.offset(r*a).limit(a).selectAll().execute()).map(e=>{let t={...e};if(typeof t.nodes==`string`)try{t.nodes=JSON.parse(t.nodes)}catch{}if(typeof t.start==`string`)try{t.start=JSON.parse(t.start)}catch{}if(typeof t.ending==`string`)try{t.ending=JSON.parse(t.ending)}catch{}return i.formSchema.parse(O(t))});if(!o)return{forms:l,start:0,limit:0,length:0};let{count:u}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{forms:l,start:r*a,limit:a,length:T(u)}}}function Ar(e){return async(t,n)=>{let{numDeletedRows:r}=await e.deleteFrom(`forms`).where(`id`,`=`,n).where(`tenant_id`,`=`,t).executeTakeFirst();return r>0}}function jr(e){return async(t,n)=>{let r=await e.selectFrom(`forms`).selectAll().where(`forms.id`,`=`,n).where(`tenant_id`,`=`,t).executeTakeFirst();if(!r)return null;let a={...r};if(typeof a.nodes==`string`)try{a.nodes=JSON.parse(a.nodes)}catch{}if(typeof a.start==`string`)try{a.start=JSON.parse(a.start)}catch{}if(typeof a.ending==`string`)try{a.ending=JSON.parse(a.ending)}catch{}return i.formSchema.parse(O(a))}}function Mr(e){return async(t,n,r)=>{let i={...r,updated_at:new Date().toISOString()};M(r,[`nodes`,`start`,`ending`],i);let{numUpdatedRows:a}=await e.updateTable(`forms`).set(i).where(`id`,`=`,n).where(`tenant_id`,`=`,t).executeTakeFirst();return a>0}}function Nr(e){return{create:Or(e),get:jr(e),list:kr(e),remove:Ar(e),update:Mr(e)}}function Pr(e){return async(t,n,r)=>{let a=r?.importMetadata,o=new Date().toISOString(),s=a?.created_at??o,c=a?.updated_at??o,l={...n,id:a?.id??n.id??p(),created_at:s,updated_at:c},u=i.resourceServerSchema.parse(l),{verificationKey:d,scopes:f,options:m,skip_consent_for_verifiable_first_party_clients:h,allow_offline_access:g,is_system:_,metadata:v,...y}=u,b={...y,tenant_id:t,scopes:f?JSON.stringify(f):`[]`,options:m?JSON.stringify(m):`{}`,skip_consent_for_verifiable_first_party_clients:+!!h,allow_offline_access:+!!g,is_system:+!!_,metadata:v?JSON.stringify(v):void 0,verification_key:d,created_at:s,updated_at:c};return await e.insertInto(`resource_servers`).values(b).execute(),O(u)}}function Fr(e){return async(t,n)=>{let r=await e.selectFrom(`resource_servers`).selectAll().where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst();if(!r)return null;let{verification_key:i,scopes:a,options:o,skip_consent_for_verifiable_first_party_clients:s,allow_offline_access:c,is_system:l,metadata:u,...d}=r,f=O({...d,scopes:a?JSON.parse(a):[],options:o?JSON.parse(o):{},skip_consent_for_verifiable_first_party_clients:!!s,allow_offline_access:!!c,is_system:l?!0:void 0,metadata:u?JSON.parse(u):void 0,verificationKey:i});return f.token_lifetime??=86400,f.token_lifetime_for_web??=7200,f}}function Ir(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,q:o}=n,s=e.selectFrom(`resource_servers`).where(`resource_servers.tenant_id`,`=`,t);if(o){let t=o.trim(),n=t.split(/\s+/),r=n.length===1?n[0]:void 0,i=r?r.match(/^(-)?(name|identifier):(.*)$/):null,a=i?i[3]:``,c=/^(>=|>|<=|<)/.test(a||``);if(i&&!c){let e=!!i[1],t=i[2]===`name`?`resource_servers.name`:`resource_servers.identifier`;s=e?s.where(t,`not like`,`%${a}%`):s.where(t,`like`,`%${a}%`)}else s=w(e,s,t,[`resource_servers.name`,`resource_servers.identifier`])}let c=(await s.offset(r*i).limit(i).selectAll().execute()).map(e=>{let{verification_key:t,scopes:n,options:r,skip_consent_for_verifiable_first_party_clients:i,allow_offline_access:a,is_system:o,metadata:s,...c}=e,l=O({...c,scopes:n?JSON.parse(n):[],options:r?JSON.parse(r):{},skip_consent_for_verifiable_first_party_clients:!!i,allow_offline_access:!!a,is_system:o?!0:void 0,metadata:s?JSON.parse(s):void 0,verificationKey:t});return l.token_lifetime??=86400,l.token_lifetime_for_web??=7200,l});if(!a)return{resource_servers:c,start:0,limit:0,length:0};let{count:l}=await s.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{resource_servers:c,start:r*i,limit:i,length:T(l)}}}function Lr(e){return async(t,n)=>{let r=await e.deleteFrom(`resource_servers`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst();return Number(r.numDeletedRows)>0}}function Rr(e){return async(t,n,r)=>{let{verificationKey:i,scopes:a,options:o,skip_consent_for_verifiable_first_party_clients:s,allow_offline_access:c,is_system:l,metadata:u,...d}=r,f={...d,updated_at:new Date().toISOString()};if(i!==void 0&&(f.verification_key=i),a!==void 0&&(f.scopes=JSON.stringify(a)),o!==void 0){let r=await e.selectFrom(`resource_servers`).select(`options`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst(),i={...r?.options?JSON.parse(r.options):{},...o};f.options=JSON.stringify(i)}u!==void 0&&(f.metadata=JSON.stringify(u)),s!==void 0&&(f.skip_consent_for_verifiable_first_party_clients=+!!s),c!==void 0&&(f.allow_offline_access=+!!c),l!==void 0&&(f.is_system=+!!l);let p=await e.updateTable(`resource_servers`).set(f).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst();return Number(p.numUpdatedRows)>0}}function zr(e){return{create:Pr(e),get:Fr(e),list:Ir(e),remove:Lr(e),update:Rr(e)}}function Br(e){return async(t,r,i)=>{let a=i?.importMetadata,o=new Date().toISOString(),s=a?.created_at??o,c=a?.updated_at??o,l=a?.id||r.id||(0,n.nanoid)(),{is_system:u,id:d,metadata:f,...p}=r,m={id:l,...p,tenant_id:t,is_system:+!!u,metadata:f?JSON.stringify(f):void 0,created_at:s,updated_at:c};return await e.insertInto(`roles`).values(m).execute(),{id:l,...p,is_system:u?!0:void 0,metadata:f,created_at:s,updated_at:c}}}function Vr(e){return async(t,n)=>{let r=await e.selectFrom(`roles`).selectAll().where(`roles.tenant_id`,`=`,t).where(`roles.id`,`=`,n).executeTakeFirst();if(!r)return null;let{is_system:i,tenant_id:a,metadata:o,...s}=r;return{...s,is_system:i?!0:void 0,metadata:o?JSON.parse(o):void 0}}}function Hr(e){return async(t,n)=>{let r=e.selectFrom(`roles`).where(`roles.tenant_id`,`=`,t),{page:i=0,per_page:a=50,include_totals:o=!1}=n;n.q&&(r=w(e,r,n.q,[`name`]));let s=(await r.offset(i*a).limit(a).selectAll().execute()).map(e=>{let{is_system:t,tenant_id:n,metadata:r,...i}=e;return{...i,is_system:t?!0:void 0,metadata:r?JSON.parse(r):void 0}});if(!o)return{roles:s,start:i*a,limit:a,length:s.length};let{count:c}=await r.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{roles:s,start:i*a,limit:a,length:T(c)}}}function Ur(e){return async(t,n,r)=>{let{is_system:i,metadata:a,...o}=r,s={...o,is_system:i===void 0?void 0:+!!i,metadata:a===void 0?void 0:JSON.stringify(a),updated_at:new Date().toISOString()},c=await e.updateTable(`roles`).set(s).where(`roles.tenant_id`,`=`,t).where(`roles.id`,`=`,n).executeTakeFirst();return Number(c.numUpdatedRows)>0}}function Wr(e){return async(t,n)=>{let r=await e.deleteFrom(`roles`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst();return Number(r.numDeletedRows)>0}}function Gr(e){return{create:Br(e),get:Vr(e),list:Hr(e),update:Ur(e),remove:Wr(e)}}function Kr(e){return async(t,n,r,i)=>{if(r.length===0)return!0;let a=i?.importMetadata,o=new Date().toISOString();try{for(let i of r){if(i.role_id!==n)throw Error(`Permission role_id ${i.role_id} does not match expected role_id ${n}`);let r={tenant_id:t,role_id:i.role_id,resource_server_identifier:i.resource_server_identifier,permission_name:i.permission_name,created_at:a?.created_at??o};try{await e.insertInto(`role_permissions`).values(r).execute()}catch(e){if(e.code===`SQLITE_CONSTRAINT_PRIMARYKEY`||e.code===`SQLITE_CONSTRAINT_UNIQUE`||e.code===`ER_DUP_ENTRY`)continue;throw e}}return!0}catch(e){return console.error(`Error assigning role permissions:`,e),!1}}}function qr(e){return async(t,n,r)=>{if(r.length===0)return!0;try{return(await Promise.all(r.map(r=>e.deleteFrom(`role_permissions`).where(`tenant_id`,`=`,t).where(`role_id`,`=`,n).where(`resource_server_identifier`,`=`,r.resource_server_identifier).where(`permission_name`,`=`,r.permission_name).executeTakeFirst()))).some(e=>Number(e.numDeletedRows)>0)}catch(e){return console.error(`Error removing role permissions:`,e),!1}}}function Jr(e){return async(t,n,r={})=>{let{page:i=0,per_page:a=50,include_totals:o=!1}=r,s=e.selectFrom(`role_permissions`).leftJoin(`resource_servers`,e=>e.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`,`=`,n),c=(await s.offset(i*a).limit(a).execute()).map(e=>({role_id:e.role_id,resource_server_identifier:e.resource_server_identifier,resource_server_name:e.resource_server_name||e.resource_server_identifier,permission_name:e.permission_name,description:null,created_at:e.created_at}));return o&&await s.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow(),c}}function Yr(e){return{assign:Kr(e),remove:qr(e),list:Jr(e)}}function Xr(e){return async(t,r)=>{let i=new Date().toISOString(),a=r.scope??[],o=r.audience??``,s=await e.selectFrom(`grants`).where(`tenant_id`,`=`,t).where(`user_id`,`=`,r.user_id).where(`client_id`,`=`,r.clientID).where(`audience`,`=`,o).selectAll().executeTakeFirst();if(s){let n=s.scope?JSON.parse(s.scope):[],r=Array.from(new Set([...n,...a]));return await e.updateTable(`grants`).set({scope:JSON.stringify(r),updated_at:i}).where(`tenant_id`,`=`,t).where(`id`,`=`,s.id).execute(),{id:s.id,user_id:s.user_id,clientID:s.client_id,audience:s.audience||void 0,scope:r}}let c=(0,n.nanoid)();return await e.insertInto(`grants`).values({id:c,tenant_id:t,user_id:r.user_id,client_id:r.clientID,audience:o,scope:JSON.stringify(a),created_at:i,updated_at:i}).execute(),{id:c,user_id:r.user_id,clientID:r.clientID,audience:o||void 0,scope:a}}}function Zr(e){return async(t,n,r,i)=>{let a=await e.selectFrom(`grants`).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n).where(`client_id`,`=`,r).where(`audience`,`=`,i??``).selectAll().executeTakeFirst();return a?{id:a.id,user_id:a.user_id,clientID:a.client_id,audience:a.audience||void 0,scope:a.scope?JSON.parse(a.scope):[]}:null}}function Qr(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,sort:o,q:s}=n,c=e.selectFrom(`grants`).where(`grants.tenant_id`,`=`,t);s&&(c=w(e,c,s,[`user_id`,`client_id`,`audience`]));let l=c;if(o&&o.sort_by){let{ref:t}=e.dynamic;l=l.orderBy(t(o.sort_by),o.sort_order)}l=l.offset(r*i).limit(i);let u=(await l.selectAll().execute()).map(e=>({id:e.id,user_id:e.user_id,clientID:e.client_id,audience:e.audience||void 0,scope:e.scope?JSON.parse(e.scope):[]}));if(!a)return{grants:u,start:0,limit:0,length:0};let{count:d}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{grants:u,start:r*i,limit:i,length:T(d)}}}function $r(e){return async(t,n)=>(await e.deleteFrom(`grants`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function ei(e){return async(t,n)=>(await e.deleteFrom(`grants`).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function ti(e){return{create:Xr(e),get:Zr(e),list:Qr(e),remove:$r(e),removeByUser:ei(e)}}function ni(e){return async(t,n,r,i,a)=>{let o=a?.importMetadata,s=new Date().toISOString();try{let a={tenant_id:t,user_id:n,resource_server_identifier:r.resource_server_identifier,permission_name:r.permission_name,organization_id:i||r.organization_id||``,created_at:o?.created_at??s};return await e.insertInto(`user_permissions`).values(a).execute(),!0}catch(e){return e.code===`SQLITE_CONSTRAINT_PRIMARYKEY`||e.code===`SQLITE_CONSTRAINT_UNIQUE`||e.code===`SQLITE_CONSTRAINT`||e.code===`ER_DUP_ENTRY`||e.message&&e.message.includes(`UNIQUE constraint failed`)||e.message&&e.message.includes(`PRIMARY KEY constraint failed`)?!0:(console.error(`Error creating user permission:`,e),!1)}}}function ri(e){return async(t,n,r,i)=>{try{let a=e.deleteFrom(`user_permissions`).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n).where(`resource_server_identifier`,`=`,r.resource_server_identifier).where(`permission_name`,`=`,r.permission_name);return a=i===void 0?a.where(`organization_id`,`=`,``):a.where(`organization_id`,`=`,i),await a.execute(),!0}catch(e){return console.error(`Error removing user permission:`,e),!1}}}function ii(e){return async(t,n,r,i)=>{let a=e.selectFrom(`user_permissions`).leftJoin(`resource_servers`,e=>e.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`,`=`,n);return i!==void 0&&(a=a.where(`user_permissions.organization_id`,`=`,i)),(await a.execute()).map(e=>({resource_server_identifier:e.resource_server_identifier,permission_name:e.permission_name,description:null,resource_server_name:e.resource_server_name||e.resource_server_identifier,user_id:e.user_id,created_at:e.created_at,organization_id:e.organization_id===``?void 0:e.organization_id}))}}function ai(e){return{create:ni(e),remove:ri(e),list:ii(e)}}function oi(e){let t=ai(e);return{create:(e,n,r,i)=>t.create(e,n,r,i),remove:(e,n,r,i)=>t.remove(e,n,r,i),list:(e,n,r,i)=>t.list(e,n,r,i)}}function si(e){return async(t,n,r,i)=>{let a=e.selectFrom(`user_roles as ur`).innerJoin(`roles as r`,e=>e.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`,`=`,n);return i!==void 0&&(a=a.where(`ur.organization_id`,`=`,i)),await a.execute()}}function ci(e){return async(t,n,r,i,a)=>{let o=a?.importMetadata,s=new Date().toISOString();try{return await e.insertInto(`user_roles`).values({tenant_id:t,user_id:n,role_id:r,organization_id:i||``,created_at:o?.created_at??s}).execute(),!0}catch(e){return e.code===`SQLITE_CONSTRAINT_PRIMARYKEY`||e.code===`SQLITE_CONSTRAINT_UNIQUE`||e.code===`SQLITE_CONSTRAINT`||e.code===`ER_DUP_ENTRY`||e.message&&e.message.includes(`UNIQUE constraint failed`)||e.message&&e.message.includes(`PRIMARY KEY constraint failed`)?!0:(console.error(`Error creating user role:`,e),!1)}}}function li(e){return async(t,n,r,i)=>{try{let a=e.deleteFrom(`user_roles`).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n).where(`role_id`,`=`,r);return a=i===void 0?a.where(`organization_id`,`=`,``):a.where(`organization_id`,`=`,i),await a.execute(),!0}catch(e){return console.error(`Error removing user roles:`,e),!1}}}function ui(e){return{list:si(e),create:ci(e),remove:li(e)}}function di(e){let t=ui(e);return{list:(e,n,r,i)=>t.list(e,n,r,i),create:(e,n,r,i)=>t.create(e,n,r,i),remove:(e,n,r,i)=>t.remove(e,n,r,i)}}function fi(e){return async(t,n,r)=>{let i=r?.importMetadata,a=new Date().toISOString(),o={...n,id:i?.id||n.id||c(),tenant_id:t,created_at:i?.created_at??a,updated_at:i?.updated_at??a,branding:JSON.stringify(n.branding||{}),metadata:JSON.stringify(n.metadata||{}),enabled_connections:JSON.stringify(n.enabled_connections||[]),token_quota:JSON.stringify(n.token_quota||{})};try{await e.insertInto(`organizations`).values(o).execute()}catch(e){throw e.code===`SQLITE_CONSTRAINT_UNIQUE`||e.code===`ER_DUP_ENTRY`||e.message.includes(`AlreadyExists`)?new D(409,{message:`Organization already exists`}):e}return{...n,id:o.id,created_at:o.created_at,updated_at:o.updated_at}}}function pi(e){return async(t,n)=>{let r=await e.selectFrom(`organizations`).selectAll().where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst();return r||=await e.selectFrom(`organizations`).selectAll().where(`tenant_id`,`=`,t).where(`name`,`=`,n).executeTakeFirst(),r?O({...r,branding:r.branding?JSON.parse(r.branding):{},metadata:r.metadata?JSON.parse(r.metadata):{},enabled_connections:r.enabled_connections?JSON.parse(r.enabled_connections):[],token_quota:r.token_quota?JSON.parse(r.token_quota):{}}):null}}var I=[`name`,`display_name`];function mi(e){return async(t,n)=>{let i=e.selectFrom(`organizations`).where(`tenant_id`,`=`,t);if(n?.q){let t=C(n.q,I);t&&(i=w(e,i,t,I))}if(n?.sort){let e=n.sort.sort_order===`asc`?`asc`:`desc`,t=n.sort.sort_by;i=[`name`,`display_name`,`created_at`].includes(t)?i.orderBy(t,e):i.orderBy(`created_at`,`desc`)}else i=i.orderBy(`created_at`,`desc`);let a=n?.take??n?.per_page,o=typeof a==`number`&&Number.isFinite(a)?Math.floor(a):NaN,s=o>=1?o:10,c=0;if(n?.from!==void 0){let e=parseInt(n.from,10);Number.isNaN(e)||(c=Math.max(0,e))}else typeof n?.page==`number`&&Number.isFinite(n.page)&&(c=Math.max(0,Math.floor(n.page)*s));c>0&&(i=i.offset(c)),i=i.limit(s);let l=await i.selectAll().execute(),u=l.length;if(n?.include_totals){let i=e.selectFrom(`organizations`).where(`tenant_id`,`=`,t);if(n?.q){let t=C(n.q,I);t&&(i=w(e,i,t,I))}let a=await i.select(r.sql`count(*)`.as(`count`)).executeTakeFirst();u=Number(a?.count||0)}let d=l.map(e=>O({...e,branding:e.branding?JSON.parse(e.branding):{},metadata:e.metadata?JSON.parse(e.metadata):{},enabled_connections:e.enabled_connections?JSON.parse(e.enabled_connections):[],token_quota:e.token_quota?JSON.parse(e.token_quota):{}}));return{organizations:d,start:c,limit:s,length:d.length,total:u}}}function hi(e){return async(t,n)=>(await e.deleteFrom(`organizations`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).execute()).length>0}function gi(e){return async(t,n,r)=>{let{branding:i,metadata:a,enabled_connections:o,token_quota:s,...c}=r,l={...c,updated_at:new Date().toISOString()};return M(r,[`branding`,`metadata`,`enabled_connections`,`token_quota`],l),(await e.updateTable(`organizations`).set(l).where(`tenant_id`,`=`,t).where(`id`,`=`,n).execute()).length>0}}function _i(e){return{create:fi(e),get:pi(e),list:mi(e),remove:hi(e),update:gi(e)}}function L(e,t){return{connection_id:e.connection_id,assign_membership_on_login:!!e.assign_membership_on_login,show_as_button:!!e.show_as_button,is_signup_enabled:!!e.is_signup_enabled,connection:t?{name:t.name,strategy:t.strategy}:void 0,created_at:e.created_at,updated_at:e.updated_at}}async function R(e,t,n){let r=await e.selectFrom(`connections`).select([`name`,`strategy`]).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst();if(r)return{name:r.name,strategy:typeof r.strategy==`string`?r.strategy:void 0}}function vi(e){return{async create(t,n,r,i){let a=i?.importMetadata,o=new Date().toISOString(),s={tenant_id:t,organization_id:n,connection_id:r.connection_id,assign_membership_on_login:+!!r.assign_membership_on_login,show_as_button:r.show_as_button===!1?0:1,is_signup_enabled:r.is_signup_enabled===!1?0:1,created_at:a?.created_at??o,updated_at:a?.updated_at??o};return await e.insertInto(`organization_connections`).values(s).execute(),L(s,await R(e,t,r.connection_id))},async list(t,n){let r=await e.selectFrom(`organization_connections`).selectAll().where(`tenant_id`,`=`,t).where(`organization_id`,`=`,n).execute(),i=[];for(let n of r){let r=await R(e,t,n.connection_id);i.push(L(n,r))}return i},async get(t,n,r){let i=await e.selectFrom(`organization_connections`).selectAll().where(`tenant_id`,`=`,t).where(`organization_id`,`=`,n).where(`connection_id`,`=`,r).executeTakeFirst();return i?L(i,await R(e,t,r)):null},async update(t,n,r,i){let a={updated_at:new Date().toISOString()};i.assign_membership_on_login!==void 0&&(a.assign_membership_on_login=+!!i.assign_membership_on_login),i.show_as_button!==void 0&&(a.show_as_button=+!!i.show_as_button),i.is_signup_enabled!==void 0&&(a.is_signup_enabled=+!!i.is_signup_enabled);let o=await e.updateTable(`organization_connections`).set(a).where(`tenant_id`,`=`,t).where(`organization_id`,`=`,n).where(`connection_id`,`=`,r).executeTakeFirst();if(Number(o.numUpdatedRows??0)===0)return null;let s=await e.selectFrom(`organization_connections`).selectAll().where(`tenant_id`,`=`,t).where(`organization_id`,`=`,n).where(`connection_id`,`=`,r).executeTakeFirst();return s?L(s,await R(e,t,r)):null},async remove(t,n,r){let i=await e.deleteFrom(`organization_connections`).where(`tenant_id`,`=`,t).where(`organization_id`,`=`,n).where(`connection_id`,`=`,r).executeTakeFirst();return Number(i.numDeletedRows??0)>0}}}function yi(e){return async(t,r,i)=>{let a=i?.importMetadata,o=new Date().toISOString(),s={id:a?.id??(0,n.nanoid)(),tenant_id:t,user_id:r.user_id,organization_id:r.organization_id,created_at:a?.created_at??o,updated_at:a?.updated_at??o};try{await e.insertInto(`user_organizations`).values(s).execute()}catch(e){throw e.code===`SQLITE_CONSTRAINT_UNIQUE`||e.code===`ER_DUP_ENTRY`?new D(409,{message:`User is already a member of this organization`}):e}return{...s}}}function bi(e){return async(t,n)=>{let r=await e.selectFrom(`user_organizations`).selectAll().where(`id`,`=`,n).where(`tenant_id`,`=`,t).executeTakeFirst();return r?{id:r.id,user_id:r.user_id,organization_id:r.organization_id,created_at:r.created_at,updated_at:r.updated_at}:null}}function xi(e){return async(t,n)=>{let r=n?.page||0,i=n?.per_page||50,a=r*i,o=e.selectFrom(`user_organizations`).selectAll().where(`tenant_id`,`=`,t);if(n?.q){if(n.q.startsWith(`user_id:`)){let e=n.q.replace(`user_id:`,``);o=o.where(`user_id`,`=`,e)}else if(n.q.startsWith(`organization_id:`)){let e=n.q.replace(`organization_id:`,``);o=o.where(`organization_id`,`=`,e)}}o=o.orderBy(`created_at`,`desc`),i>0&&(o=o.limit(i).offset(a));let s=await o.execute(),c=e.selectFrom(`user_organizations`).select(e.fn.count(`id`).as(`count`)).where(`tenant_id`,`=`,t);if(n?.q){if(n.q.startsWith(`user_id:`)){let e=n.q.replace(`user_id:`,``);c=c.where(`user_id`,`=`,e)}else if(n.q.startsWith(`organization_id:`)){let e=n.q.replace(`organization_id:`,``);c=c.where(`organization_id`,`=`,e)}}let l=await c.executeTakeFirst();return{userOrganizations:s.map(e=>({id:e.id,user_id:e.user_id,organization_id:e.organization_id,created_at:e.created_at,updated_at:e.updated_at})),start:a,limit:i,length:Number(l?.count||0)}}}function Si(e){return async(t,n,r)=>{let i=r?.page||0,a=r?.per_page||50,o=i*a,s=e.selectFrom(`user_organizations`).innerJoin(`organizations`,e=>e.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`,`=`,n);s=s.orderBy(`user_organizations.created_at`,`desc`),a>0&&(s=s.limit(a).offset(o));let c=await s.execute(),l=await e.selectFrom(`user_organizations`).innerJoin(`organizations`,e=>e.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`,`=`,n).executeTakeFirst();return{organizations:c.map(e=>({id:e.id,name:e.name,display_name:e.display_name,branding:e.branding?JSON.parse(e.branding):void 0,metadata:e.metadata?JSON.parse(e.metadata):{},enabled_connections:e.enabled_connections?JSON.parse(e.enabled_connections):[],token_quota:e.token_quota?JSON.parse(e.token_quota):void 0,created_at:e.created_at,updated_at:e.updated_at,joined_at:e.joined_at})),start:o,limit:a,length:Number(l?.count||0)}}}function Ci(e){return async(t,n)=>(await e.deleteFrom(`user_organizations`).where(`id`,`=`,n).where(`tenant_id`,`=`,t).execute()).length>0}function wi(e){return async(t,n,r)=>{let i={...r,updated_at:new Date().toISOString()};return(await e.updateTable(`user_organizations`).set(i).where(`id`,`=`,n).where(`tenant_id`,`=`,t).execute()).length>0}}function Ti(e){return{create:yi(e),get:bi(e),list:xi(e),listUserOrganizations:Si(e),remove:Ci(e),update:wi(e)}}function Ei(e){return async(t,n,r)=>{let i=r?.importMetadata,a=i?.id??n.id??h(),o=i?.created_at??new Date().toISOString(),s=n.ttl_sec||604800,c=new Date(new Date(o).getTime()+s*1e3).toISOString(),l=M({id:a,tenant_id:t,organization_id:n.organization_id,inviter:n.inviter||{},invitee:n.invitee||{},client_id:n.client_id,connection_id:n.connection_id||null,invitation_url:n.invitation_url,created_at:o,expires_at:c,app_metadata:n.app_metadata||{},user_metadata:n.user_metadata||{},roles:n.roles||[],ticket_id:null,ttl_sec:s,send_invitation_email:n.send_invitation_email??!0?1:0},[`inviter`,`invitee`,`app_metadata`,`user_metadata`,`roles`]);try{await e.insertInto(`invites`).values(l).execute()}catch(e){throw e.code===`SQLITE_CONSTRAINT_UNIQUE`||e.code===`ER_DUP_ENTRY`||e.message.includes(`AlreadyExists`)?new D(409,{message:`Invite already exists`}):e}return{id:a,organization_id:l.organization_id,inviter:n.inviter,invitee:n.invitee,client_id:n.client_id,connection_id:n.connection_id,invitation_url:n.invitation_url,created_at:o,expires_at:c,app_metadata:n.app_metadata||{},user_metadata:n.user_metadata||{},roles:n.roles||[],ticket_id:l.ticket_id||void 0,ttl_sec:s,send_invitation_email:n.send_invitation_email??!0}}}function Di(e){return async(t,n)=>{let r=await e.selectFrom(`invites`).selectAll().where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst();return r?O({...Le(r,{inviter:{},invitee:{},app_metadata:{},user_metadata:{},roles:[]}),send_invitation_email:r.send_invitation_email===1}):null}}function Oi(e){return async(t,n)=>{let r=e.selectFrom(`invites`).selectAll().where(`tenant_id`,`=`,t).orderBy(`created_at`,`desc`);if(n?.per_page&&(r=r.limit(n.per_page)),n?.page){let e=(n.page-1)*(n.per_page||10);r=r.offset(e)}let i=(await r.execute()).map(e=>O({...Le(e,{inviter:{},invitee:{},app_metadata:{},user_metadata:{},roles:[]}),send_invitation_email:e.send_invitation_email===1}));return{invites:i,start:n?.page?(n.page-1)*(n.per_page||10):0,limit:n?.per_page||i.length,length:i.length}}}function ki(e){return async(t,n)=>(await e.deleteFrom(`invites`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst()).numDeletedRows>0n}function Ai(e){return async(t,n,r)=>{let i={};return r.inviter!==void 0&&(i.inviter=JSON.stringify(r.inviter)),r.invitee!==void 0&&(i.invitee=JSON.stringify(r.invitee)),r.client_id!==void 0&&(i.client_id=r.client_id),r.connection_id!==void 0&&(i.connection_id=r.connection_id),r.app_metadata!==void 0&&(i.app_metadata=JSON.stringify(r.app_metadata)),r.user_metadata!==void 0&&(i.user_metadata=JSON.stringify(r.user_metadata)),r.roles!==void 0&&(i.roles=JSON.stringify(r.roles)),r.ttl_sec!==void 0&&(i.ttl_sec=r.ttl_sec,i.expires_at=new Date(Date.now()+r.ttl_sec*1e3).toISOString()),r.send_invitation_email!==void 0&&(i.send_invitation_email=+!!r.send_invitation_email),Object.keys(i).length===0||(await e.updateTable(`invites`).set(i).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst()).numUpdatedRows>0n}}function ji(e){return{create:Ei(e),get:Di(e),list:Oi(e),remove:ki(e),update:Ai(e)}}var Mi=[`s`],Ni=[`pwd_leak`];function Pi(e){return/^\d{8}$/.test(e)?`${e.slice(0,4)}-${e.slice(4,6)}-${e.slice(6,8)}`:e}function Fi(e){return e.toISOString().split(`T`)[0]}function Ii(e){return{async getDaily(t,n={}){let{from:i,to:a}=n,o=new Date,s=new Date(o);s.setDate(s.getDate()-30);let c=i?Pi(i):Fi(s),l=a?Pi(a):Fi(o),u=r.sql`DATE(logs.date)`;return(await e.selectFrom(`logs`).where(`tenant_id`,`=`,t).where(u,`>=`,c).where(u,`<=`,l).select(e=>[u.as(`date`),e.fn.sum(e.case().when(`type`,`in`,Mi).then(1).else(0).end()).as(`logins`),e.fn.sum(e.case().when(`type`,`=`,`ss`).then(1).else(0).end()).as(`signups`),e.fn.sum(e.case().when(`type`,`in`,Ni).then(1).else(0).end()).as(`leaked_passwords`),e.fn.min(`date`).as(`first_event`),e.fn.max(`date`).as(`last_event`)]).groupBy(u).orderBy(`date`,`asc`).execute()).map(e=>({date:e.date,logins:Number(e.logins)||0,signups:Number(e.signups)||0,leaked_passwords:Number(e.leaked_passwords)||0,created_at:e.first_event||new Date().toISOString(),updated_at:e.last_event||new Date().toISOString()}))},async getActiveUsers(t){let n=new Date;return n.setDate(n.getDate()-30),(await e.selectFrom(`logs`).where(`tenant_id`,`=`,t).where(`date`,`>=`,n.toISOString()).where(`type`,`in`,Mi).where(`user_id`,`is not`,null).select(e=>e.fn.count(`user_id`).distinct().as(`count`)).executeTakeFirstOrThrow()).count||0}}}var Li={"active-users":[`s`,`seacft`],logins:[`s`,`f`,`fp`],signups:[`ss`,`fs`],"refresh-tokens":[`seacft`,`fertft`],sessions:[`slo`],logouts:[`slo`,`flo`],"password-changes":[`scp`,`fcp`,`scpr`,`fcpr`],"password-migrations":[`spm`],mfa:[`gd_auth_succeed`,`gd_auth_failed`,`gd_auth_rejected`],"email-verifications":[`sv`,`fv`,`svr`,`fvr`],"codes-sent":[`cls`,`cs`]},Ri={"active-users":{alias:`active_users`,type:`UInt64`,agg:`uniq`},logins:{alias:`logins`,type:`UInt64`,agg:`count`},signups:{alias:`signups`,type:`UInt64`,agg:`count`},"refresh-tokens":{alias:`refresh_tokens`,type:`UInt64`,agg:`count`},sessions:{alias:`sessions`,type:`UInt64`,agg:`count`},logouts:{alias:`logouts`,type:`UInt64`,agg:`count`},"password-changes":{alias:`password_changes`,type:`UInt64`,agg:`count`},"password-migrations":{alias:`password_migrations`,type:`UInt64`,agg:`count`},mfa:{alias:`mfa`,type:`UInt64`,agg:`count`},"email-verifications":{alias:`email_verifications`,type:`UInt64`,agg:`count`},"codes-sent":{alias:`codes_sent`,type:`UInt64`,agg:`count`}};async function zi(e){try{return await r.sql`SELECT @@version_comment`.execute(e),`mysql`}catch{return`sqlite`}}function z(e,t){let n=new Intl.DateTimeFormat(`en-US`,{timeZone:e,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}),r={};for(let e of n.formatToParts(t))r[e.type]=e.value;let i=r.hour===`24`?`00`:r.hour,a=Date.UTC(Number(r.year),Number(r.month)-1,Number(r.day),Number(i),Number(r.minute),Number(r.second)),o=Math.round((a-t.getTime())/6e4),s=o>=0?`+`:`-`,c=Math.abs(o);return`${s}${String(Math.floor(c/60)).padStart(2,`0`)}:${String(c%60).padStart(2,`0`)}`}var Bi=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`];function Vi(e,t){let n=t.getUTCFullYear(),r=z(e,new Date(Date.UTC(n,0,1)));for(let t=1;t<12;t++){let i=z(e,new Date(Date.UTC(n,t,1)));if(i!==r)throw Error(`Timezone '${e}' is DST-varying (offset ${r} in January vs ${i} in ${Bi[t]}) and cannot be bucketed with a single fixed offset by the SQL analytics adapter. Use a fixed-offset zone (e.g. 'UTC' or '+02:00').`)}}function Hi(e){let t=e.startsWith(`-`)?-1:1,[n,r]=e.slice(1).split(`:`);return t*(Number(n)*60+Number(r))}function Ui(e,t){let n;if(t===`+00:00`)n=r.sql`${r.sql.ref(`logs.date`)}`;else{let e=Hi(t),i=`${e>=0?`+`:`-`}${Math.abs(e)} minutes`;n=r.sql`datetime(${r.sql.ref(`logs.date`)}, ${i})`}switch(e){case`hour`:return r.sql`substr(${n}, 1, 13)`;case`month`:return r.sql`substr(${n}, 1, 7)`;case`day`:return r.sql`substr(${n}, 1, 10)`;case`week`:return r.sql`date(substr(${n}, 1, 10), '-' || ((cast(strftime('%w', substr(${n}, 1, 10)) as integer) + 6) % 7) || ' days')`;default:throw Error(`Unsupported interval '${e}' for SQL analytics adapter`)}}function Wi(e,t){if(t===`+00:00`)switch(e){case`hour`:return r.sql`substring(${r.sql.ref(`logs.date`)}, 1, 13)`;case`day`:return r.sql`substring(${r.sql.ref(`logs.date`)}, 1, 10)`;case`month`:return r.sql`substring(${r.sql.ref(`logs.date`)}, 1, 7)`;case`week`:{let e=r.sql`str_to_date(substring(${r.sql.ref(`logs.date`)}, 1, 10), '%Y-%m-%d')`;return r.sql`date_format(date_sub(${e}, interval weekday(${e}) day), '%Y-%m-%d')`}default:throw Error(`Unsupported interval '${e}' for SQL analytics adapter`)}let n=Hi(t),i=r.sql`date_add(str_to_date(substring(${r.sql.ref(`logs.date`)}, 1, 19), '%Y-%m-%dT%H:%i:%s'), interval ${r.sql.lit(n)} minute)`;switch(e){case`hour`:return r.sql`date_format(${i}, '%Y-%m-%dT%H')`;case`day`:return r.sql`date_format(${i}, '%Y-%m-%d')`;case`month`:return r.sql`date_format(${i}, '%Y-%m')`;case`week`:return r.sql`date_format(date_sub(${i}, interval weekday(${i}) day), '%Y-%m-%d')`;default:throw Error(`Unsupported interval '${e}' for SQL analytics adapter`)}}function Gi(e,t,n,r){Vi(t,n);let i=z(t,n);return r===`mysql`?Wi(e,i):Ui(e,i)}function Ki(e){switch(e){case`connection`:return`logs.connection`;case`client_id`:return`logs.client_id`;case`user_type`:return`logs.strategy_type`;case`event`:return`logs.type`;case`time`:throw Error(`time dimension is handled separately`)}}function qi(e){let t=null,n=()=>(t||=zi(e),t);return{async query(t,i,a){let o=Date.now(),s=Li[i],c=Ri[i],l=await n(),u=[],d=e.selectFrom(`logs`).where(`tenant_id`,`=`,t);d=d.where(`date`,`>=`,a.from).where(`date`,`<`,a.to),d=d.where(`type`,`in`,s),a.filters.connection?.length&&(d=d.where(`connection`,`in`,a.filters.connection)),a.filters.client_id?.length&&(d=d.where(`client_id`,`in`,a.filters.client_id)),a.filters.user_type?.length&&(d=d.where(`strategy_type`,`in`,a.filters.user_type)),a.filters.user_id?.length&&(d=d.where(`user_id`,`in`,a.filters.user_id));let f=[],p=[];for(let e of a.group_by)if(e===`time`){let e=Gi(a.interval,a.tz,new Date(a.from),l);p.push({alias:`time`,expr:e}),f.push(e),u.push({name:`time`,type:a.interval===`hour`?`DateTime`:`Date`})}else{let t=Ki(e);p.push({alias:e,expr:r.sql`${r.sql.ref(t)}`}),f.push(r.sql`${r.sql.ref(t)}`),u.push({name:e,type:`String`})}let m=c.agg===`uniq`?r.sql`COUNT(DISTINCT ${r.sql.ref(`logs.user_id`)})`:r.sql`COUNT(*)`;p.push({alias:c.alias,expr:m}),u.push({name:c.alias,type:c.type});let h=d.select(p.map(({alias:e,expr:t})=>t.as(e)));if(f.length>0&&(h=h.groupBy(f)),a.order_by){let e=a.order_by.startsWith(`-`),t=e?a.order_by.slice(1):a.order_by;h=h.orderBy(t,e?`desc`:`asc`)}else h=a.group_by.length>0&&a.group_by[0]===`time`?h.orderBy(`time`,`asc`):h.orderBy(c.alias,`desc`);h=h.limit(a.limit).offset(a.offset);let g=(await h.execute()).map(e=>{let t={};for(let n of u){let r=e[n.name];t[n.name]=n.type===`UInt64`?Number(r)||0:r??``}return t});return{meta:u,data:g,rows:g.length,rows_before_limit_at_least:g.length,statistics:{elapsed:(Date.now()-o)/1e3}}}}}function Ji(e){return{async get(t,n,r){let i=await e.selectFrom(`custom_text`).selectAll().where(`tenant_id`,`=`,t).where(`prompt`,`=`,n).where(`language`,`=`,r).executeTakeFirst();if(!i)return null;try{return JSON.parse(i.custom_text)}catch{return null}},async set(t,n,r,i,a){let o=a?.importMetadata,s=Date.now(),c=o?.created_at?new Date(o.created_at).getTime():void 0,l=o?.updated_at?new Date(o.updated_at).getTime():c,u=JSON.stringify(i);await e.selectFrom(`custom_text`).select(`tenant_id`).where(`tenant_id`,`=`,t).where(`prompt`,`=`,n).where(`language`,`=`,r).executeTakeFirst()?await e.updateTable(`custom_text`).set({custom_text:u,...c===void 0?{}:{created_at_ts:c},updated_at_ts:l??s}).where(`tenant_id`,`=`,t).where(`prompt`,`=`,n).where(`language`,`=`,r).execute():await e.insertInto(`custom_text`).values({tenant_id:t,prompt:n,language:r,custom_text:u,created_at_ts:c??s,updated_at_ts:l??s}).execute()},async delete(t,n,r){await e.deleteFrom(`custom_text`).where(`tenant_id`,`=`,t).where(`prompt`,`=`,n).where(`language`,`=`,r).execute()},async list(t){return(await e.selectFrom(`custom_text`).select([`prompt`,`language`]).where(`tenant_id`,`=`,t).execute()).map(e=>({prompt:e.prompt,language:e.language}))}}}function Yi(e){return async(t,n,r)=>{let i=r?.importMetadata,a=i?.created_at?new Date(i.created_at).getTime():Date.now(),o=i?.updated_at?new Date(i.updated_at).getTime():a,s=i?.id??Xn();return await e.insertInto(`authentication_methods`).values({id:s,tenant_id:t,user_id:n.user_id,type:n.type,phone_number:n.phone_number,totp_secret:n.totp_secret,credential_id:n.credential_id,public_key:n.public_key,sign_count:n.sign_count,credential_backed_up:n.credential_backed_up==null?void 0:+!!n.credential_backed_up,transports:n.transports?JSON.stringify(n.transports):void 0,friendly_name:n.friendly_name,confirmed:+!!n.confirmed,created_at_ts:a,updated_at_ts:o}).execute(),{id:s,user_id:n.user_id,type:n.type,phone_number:n.phone_number,totp_secret:n.totp_secret,credential_id:n.credential_id,public_key:n.public_key,sign_count:n.sign_count,credential_backed_up:n.credential_backed_up,transports:n.transports,friendly_name:n.friendly_name,confirmed:n.confirmed??!1,created_at:new Date(a).toISOString(),updated_at:new Date(o).toISOString()}}}function Xi(e){return async(t,n)=>{let r=await e.selectFrom(`authentication_methods`).where(`authentication_methods.tenant_id`,`=`,t).where(`authentication_methods.id`,`=`,n).selectAll().executeTakeFirst();return 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,credential_id:r.credential_id??void 0,public_key:r.public_key??void 0,sign_count:r.sign_count??void 0,credential_backed_up:r.credential_backed_up==null?void 0:r.credential_backed_up===1,transports:r.transports?JSON.parse(r.transports):void 0,friendly_name:r.friendly_name??void 0,confirmed:r.confirmed===1,created_at:v(r.created_at_ts),updated_at:v(r.updated_at_ts)}:null}}function Zi(e){return async(t,n)=>{let r=await e.selectFrom(`authentication_methods`).where(`authentication_methods.tenant_id`,`=`,t).where(`authentication_methods.credential_id`,`=`,n).selectAll().executeTakeFirst();return 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,credential_id:r.credential_id??void 0,public_key:r.public_key??void 0,sign_count:r.sign_count??void 0,credential_backed_up:r.credential_backed_up==null?void 0:r.credential_backed_up===1,transports:r.transports?JSON.parse(r.transports):void 0,friendly_name:r.friendly_name??void 0,confirmed:r.confirmed===1,created_at:v(r.created_at_ts),updated_at:v(r.updated_at_ts)}:null}}function Qi(e){return async(t,n)=>(await e.selectFrom(`authentication_methods`).where(`authentication_methods.tenant_id`,`=`,t).where(`authentication_methods.user_id`,`=`,n).selectAll().execute()).map(e=>({id:e.id,user_id:e.user_id,type:e.type,phone_number:e.phone_number??void 0,totp_secret:e.totp_secret??void 0,credential_id:e.credential_id??void 0,public_key:e.public_key??void 0,sign_count:e.sign_count??void 0,credential_backed_up:e.credential_backed_up==null?void 0:e.credential_backed_up===1,transports:e.transports?JSON.parse(e.transports):void 0,friendly_name:e.friendly_name??void 0,confirmed:e.confirmed===1,created_at:v(e.created_at_ts),updated_at:v(e.updated_at_ts)}))}function $i(e){return async(t,n,r)=>{let i={updated_at_ts:Date.now()};r.phone_number!==void 0&&(i.phone_number=r.phone_number),r.totp_secret!==void 0&&(i.totp_secret=r.totp_secret),r.credential_id!==void 0&&(i.credential_id=r.credential_id),r.public_key!==void 0&&(i.public_key=r.public_key),r.sign_count!==void 0&&(i.sign_count=r.sign_count),r.credential_backed_up!==void 0&&(i.credential_backed_up=+!!r.credential_backed_up),r.transports!==void 0&&(i.transports=JSON.stringify(r.transports)),r.friendly_name!==void 0&&(i.friendly_name=r.friendly_name),r.confirmed!==void 0&&(i.confirmed=+!!r.confirmed),await e.updateTable(`authentication_methods`).set(i).where(`authentication_methods.tenant_id`,`=`,t).where(`authentication_methods.id`,`=`,n).execute();let a=await Xi(e)(t,n);if(!a)throw Error(`Authentication method ${n} not found`);return a}}function ea(e){return async(t,n)=>(await e.deleteFrom(`authentication_methods`).where(`authentication_methods.tenant_id`,`=`,t).where(`authentication_methods.id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function ta(e){return{create:Yi(e),get:Xi(e),getByCredentialId:Zi(e),list:Qi(e),update:$i(e),remove:ea(e)}}function na(e){return async(t,r)=>{let i=(0,n.nanoid)();return await e.insertInto(`outbox_events`).values({id:i,tenant_id:t,event_type:r.event_type,log_type:r.log_type,aggregate_type:r.target.type,aggregate_id:r.target.id,payload:JSON.stringify({...r,id:i}),created_at:new Date().toISOString(),processed_at:null,retry_count:0,next_retry_at:null,error:null}).execute(),i}}function ra(e){return async t=>t.length===0?[]:(await e.selectFrom(`outbox_events`).selectAll().where(`id`,`in`,t).execute()).map(e=>({...JSON.parse(e.payload),id:e.id,created_at:e.created_at,processed_at:e.processed_at,retry_count:e.retry_count,next_retry_at:e.next_retry_at,error:e.error}))}function ia(e){return async t=>{let n=new Date().toISOString();return(await e.selectFrom(`outbox_events`).selectAll().where(`processed_at`,`is`,null).where(e=>e.or([e(`next_retry_at`,`is`,null),e(`next_retry_at`,`<=`,n)])).where(e=>e.or([e(`claimed_by`,`is`,null),e(`claim_expires_at`,`<=`,n)])).orderBy(`created_at`,`asc`).orderBy(`id`,`asc`).limit(t).execute()).map(e=>({...JSON.parse(e.payload),id:e.id,created_at:e.created_at,processed_at:e.processed_at,retry_count:e.retry_count,next_retry_at:e.next_retry_at,error:e.error}))}}function aa(e){return async(t,n,r)=>{if(t.length===0)return[];let i=new Date().toISOString(),a=new Date(Date.now()+r).toISOString();return await e.updateTable(`outbox_events`).set({claimed_by:n,claim_expires_at:a}).where(`id`,`in`,t).where(`processed_at`,`is`,null).where(e=>e.or([e(`claimed_by`,`is`,null),e(`claim_expires_at`,`<=`,i)])).execute(),(await e.selectFrom(`outbox_events`).select(`id`).where(`id`,`in`,t).where(`claimed_by`,`=`,n).where(`claim_expires_at`,`=`,a).execute()).map(e=>e.id)}}function oa(e){return async t=>{if(t.length===0)return;let n=new Date().toISOString();await e.updateTable(`outbox_events`).set({processed_at:n}).where(`id`,`in`,t).execute()}}function sa(e){return async(t,n,i)=>{await e.updateTable(`outbox_events`).set({error:n,next_retry_at:i,retry_count:r.sql`retry_count + 1`,claimed_by:null,claim_expires_at:null}).where(`id`,`=`,t).execute()}}function ca(e){return async(t,n)=>{let r=new Date().toISOString();await e.updateTable(`outbox_events`).set({processed_at:r,dead_lettered_at:r,final_error:n}).where(`id`,`=`,t).execute()}}function la(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1}=n,o=(await e.selectFrom(`outbox_events`).selectAll().where(`tenant_id`,`=`,t).where(`dead_lettered_at`,`is not`,null).orderBy(`dead_lettered_at`,`desc`).orderBy(`id`,`asc`).offset(r*i).limit(i).execute()).flatMap(e=>{let t;try{t=JSON.parse(e.payload)}catch(t){return console.error(`Failed to parse outbox payload for event ${e.id}`,t),[]}return[{...t,id:e.id,created_at:e.created_at,processed_at:e.processed_at,retry_count:e.retry_count,next_retry_at:e.next_retry_at,error:e.error,dead_lettered_at:e.dead_lettered_at,final_error:e.final_error}]}),s=o.length;if(a){let[n]=await e.selectFrom(`outbox_events`).select(e=>e.fn.countAll().as(`total`)).where(`tenant_id`,`=`,t).where(`dead_lettered_at`,`is not`,null).execute();s=Number(n?.total??o.length)}return{events:o,start:r*i,limit:i,length:s}}}function ua(e){return async(t,n)=>{let r=await e.updateTable(`outbox_events`).set({processed_at:null,dead_lettered_at:null,final_error:null,retry_count:0,next_retry_at:null,error:null}).where(`id`,`=`,t).where(`tenant_id`,`=`,n).where(`dead_lettered_at`,`is not`,null).executeTakeFirst();return Number(r.numUpdatedRows)>0}}function da(e){return async t=>{let n=await e.deleteFrom(`outbox_events`).where(`processed_at`,`is not`,null).where(`processed_at`,`<`,t).executeTakeFirst();return Number(n.numDeletedRows)}}function fa(e){return{create:na(e),getByIds:ra(e),getUnprocessed:ia(e),claimEvents:aa(e),markProcessed:oa(e),markRetry:sa(e),deadLetter:ca(e),listFailed:la(e),replay:ua(e),cleanup:da(e)}}function B(e){return{id:e.id,name:e.name,type:e.type,status:e.status,sink:JSON.parse(e.sink),filters:e.filters?JSON.parse(e.filters):void 0,isPriority:e.is_priority==null?void 0:e.is_priority===1,created_at:e.created_at,updated_at:e.updated_at}}function pa(e){return{async create(t,r,i){let a=i?.importMetadata,o=new Date().toISOString(),s={id:a?.id??`lst_${(0,n.nanoid)()}`,tenant_id:t,name:r.name,type:r.type,status:r.status??`active`,sink:JSON.stringify(r.sink),filters:r.filters?JSON.stringify(r.filters):null,is_priority:r.isPriority===void 0?null:+!!r.isPriority,created_at:a?.created_at??o,updated_at:a?.updated_at??o};return await e.insertInto(`log_streams`).values(s).execute(),B(s)},async get(t,n){let r=await e.selectFrom(`log_streams`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).selectAll().executeTakeFirst();return r?B(r):null},async list(t){return(await e.selectFrom(`log_streams`).where(`tenant_id`,`=`,t).selectAll().execute()).map(B)},async update(t,n,r){let i={updated_at:new Date().toISOString()};return r.name!==void 0&&(i.name=r.name),r.type!==void 0&&(i.type=r.type),r.status!==void 0&&(i.status=r.status),r.sink!==void 0&&(i.sink=JSON.stringify(r.sink)),r.filters!==void 0&&(i.filters=r.filters?JSON.stringify(r.filters):null),r.isPriority!==void 0&&(i.is_priority=+!!r.isPriority),((await e.updateTable(`log_streams`).set(i).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst())?.numUpdatedRows??0n)>0n},async remove(t,n){return((await e.deleteFrom(`log_streams`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst())?.numDeletedRows??0n)>0n}}}function V(e){return{id:e.id,name:e.name,provider:i.migrationProviderTypeSchema.parse(e.provider),connection:e.connection,enabled:e.enabled===1,credentials:JSON.parse(e.credentials),created_at:e.created_at,updated_at:e.updated_at}}function ma(e){return{async create(t,r,i){let a=i?.importMetadata,o=new Date().toISOString(),s=a?.id??r.id??`mig_${(0,n.nanoid)()}`,c=r.enabled??!0,l={id:s,tenant_id:t,name:r.name,provider:r.provider,connection:r.connection,enabled:+!!c,credentials:JSON.stringify(r.credentials),created_at:a?.created_at??o,updated_at:a?.updated_at??o};return await e.insertInto(`migration_sources`).values(l).execute(),V(l)},async get(t,n){let r=await e.selectFrom(`migration_sources`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).selectAll().executeTakeFirst();return r?V(r):null},async list(t){return(await e.selectFrom(`migration_sources`).where(`tenant_id`,`=`,t).selectAll().execute()).map(V)},async update(t,n,r){let i={updated_at:new Date().toISOString()};return r.name!==void 0&&(i.name=r.name),r.provider!==void 0&&(i.provider=r.provider),r.connection!==void 0&&(i.connection=r.connection),r.enabled!==void 0&&(i.enabled=+!!r.enabled),r.credentials!==void 0&&(i.credentials=JSON.stringify(r.credentials)),((await e.updateTable(`migration_sources`).set(i).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst())?.numUpdatedRows??0n)>0n},async remove(t,n){return((await e.deleteFrom(`migration_sources`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst())?.numDeletedRows??0n)>0n}}}function H(e){return{id:e.id,tenant_id:e.tenant_id,custom_domain_id:e.custom_domain_id,priority:e.priority,match:ha(e.match),handlers:ga(e.handlers),created_at:e.created_at,updated_at:e.updated_at}}function ha(e){if(!e)return{path:`/*`};try{let t=JSON.parse(e),n=i.matchSchema.safeParse(t);if(n.success)return n.data}catch{}return{path:`/*`}}function ga(e){if(!e)return[];try{let t=JSON.parse(e);if(!Array.isArray(t))return[];let n=[];for(let e of t){let t=i.handlerConfigSchema.safeParse(e);t.success&&n.push(t.data)}return n}catch{return[]}}function _a(e){return{async create(t,r,i){let a=i?.importMetadata,o=new Date().toISOString(),s={id:a?.id??r.id??(0,n.nanoid)(),tenant_id:t,custom_domain_id:r.custom_domain_id,priority:r.priority,match:r.match,handlers:r.handlers,created_at:a?.created_at??o,updated_at:a?.updated_at??o};return await e.insertInto(`proxy_routes`).values({id:s.id,tenant_id:s.tenant_id,custom_domain_id:s.custom_domain_id,priority:s.priority,match:JSON.stringify(s.match),handlers:JSON.stringify(s.handlers),created_at:s.created_at,updated_at:s.updated_at}).execute(),s},async get(t,n){let r=await e.selectFrom(`proxy_routes`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).selectAll().executeTakeFirst();return r?H(r):null},async list(t,n={}){let r=n.page??0,i=n.per_page??50,a=e.selectFrom(`proxy_routes`).where(`tenant_id`,`=`,t);n.custom_domain_id&&(a=a.where(`custom_domain_id`,`=`,n.custom_domain_id));let o=await a.selectAll().orderBy(`priority`,`asc`).orderBy(`created_at`,`asc`).offset(r*i).limit(i).execute();return{proxy_routes:o.map(H),start:r*i,limit:i,length:o.length}},async update(t,n,r){let i={updated_at:new Date().toISOString()};r.priority!==void 0&&(i.priority=r.priority),r.match!==void 0&&(i.match=JSON.stringify(r.match)),r.handlers!==void 0&&(i.handlers=JSON.stringify(r.handlers));let a=await e.updateTable(`proxy_routes`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).set(i).executeTakeFirst();return Number(a.numUpdatedRows)>0},async remove(t,n){let r=await e.deleteFrom(`proxy_routes`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst();return Number(r.numDeletedRows)>0}}}async function va(e,t){let n=t.indexOf(`:`),r=n===-1?t:t.slice(0,n),i=(r.endsWith(`.`)?r.slice(0,-1):r).toLowerCase(),a=await e.selectFrom(`custom_domains`).where(`domain`,`=`,i).select([`custom_domain_id`,`tenant_id`,`domain`]).executeTakeFirst();if(!a)return null;let o=await e.selectFrom(`proxy_routes`).where(`tenant_id`,`=`,a.tenant_id).where(`custom_domain_id`,`=`,a.custom_domain_id).selectAll().orderBy(`priority`,`asc`).orderBy(`created_at`,`asc`).execute();return{tenant_id:a.tenant_id,custom_domain_id:a.custom_domain_id,domain:a.domain,routes:o.map(H)}}function ya(e){return{proxyRoutes:_a(e),resolveHost:t=>va(e,t)}}function ba(e){return i.tenantOperationSchema.parse({id:e.id,tenant_id:e.tenant_id,rollout_id:e.rollout_id,kind:e.kind,status:e.status,current_step:e.current_step,engine:e.engine,engine_instance_id:e.engine_instance_id,target_worker_version:e.target_worker_version,target_database_version:e.target_database_version,error:e.error,initiated_by:e.initiated_by,created_at:e.created_at,updated_at:e.updated_at,finished_at:e.finished_at})}function xa(e){return{async create(t){let r=i.tenantOperationInsertSchema.parse(t),a=new Date().toISOString(),o={id:`op_${(0,n.nanoid)()}`,tenant_id:r.tenant_id,rollout_id:r.rollout_id??null,kind:r.kind,status:`pending`,current_step:null,engine:r.engine,engine_instance_id:r.engine_instance_id??null,target_worker_version:r.target_worker_version??null,target_database_version:r.target_database_version??null,error:null,initiated_by:r.initiated_by??null,created_at:a,updated_at:a,finished_at:null};return await e.insertInto(`tenant_operations`).values(o).execute(),ba(o)},async get(t){let n=await e.selectFrom(`tenant_operations`).where(`id`,`=`,t).selectAll().executeTakeFirst();return n?ba(n):null},async list(t={}){let n=t.page??0,r=t.per_page??50,i=e.selectFrom(`tenant_operations`);if(t.tenant_id!==void 0&&(i=i.where(`tenant_id`,`=`,t.tenant_id)),t.rollout_id!==void 0&&(i=i.where(`rollout_id`,`=`,t.rollout_id)),t.kind!==void 0&&(i=i.where(`kind`,`=`,t.kind)),t.status!==void 0){let e=Array.isArray(t.status)?t.status:[t.status];i=i.where(`status`,`in`,e)}t.engine!==void 0&&(i=i.where(`engine`,`=`,t.engine)),t.updated_before!==void 0&&(i=i.where(`updated_at`,`<`,t.updated_before));let a=await i.selectAll().orderBy(`created_at`,`desc`).orderBy(`id`,`desc`).offset(n*r).limit(r).execute();return{operations:a.map(ba),start:n*r,limit:r,length:a.length}},async update(t,n){let r={updated_at:new Date().toISOString()};n.status!==void 0&&(r.status=n.status),n.current_step!==void 0&&(r.current_step=n.current_step),n.engine_instance_id!==void 0&&(r.engine_instance_id=n.engine_instance_id),n.target_worker_version!==void 0&&(r.target_worker_version=n.target_worker_version),n.target_database_version!==void 0&&(r.target_database_version=n.target_database_version),n.error!==void 0&&(r.error=n.error),n.finished_at!==void 0&&(r.finished_at=n.finished_at);let i=await e.updateTable(`tenant_operations`).where(`id`,`=`,t).set(r).executeTakeFirst();return Number(i.numUpdatedRows)>0},async remove(t){let n=await e.deleteFrom(`tenant_operations`).where(`id`,`=`,t).executeTakeFirst();return Number(n.numDeletedRows)>0}}}var Sa=`0123456789ABCDEFGHJKMNPQRSTVWXYZ`,Ca=32,wa=10,Ta=4,Ea=10;function Da(e,t){let n=``;for(let r=t;r>0;r--)n=Sa.charAt(e%Ca)+n,e=Math.floor(e/Ca);return n}function Oa(){let e=new Uint8Array(Ea);crypto.getRandomValues(e);let t=``;for(let n=0;n<Ea;n++)t+=Sa.charAt(e[n]%Ca);return t}var ka=0,Aa=0;function ja(){let e=Date.now();return e===ka?Aa++:(ka=e,Aa=0),Da(e,wa)+Da(Aa,Ta)+Oa()}function Ma(e){if(!e)return null;try{let t=JSON.parse(e);if(t&&typeof t==`object`&&!Array.isArray(t))return Object.fromEntries(Object.entries(t))}catch{}return null}function Na(e){return i.tenantOperationEventSchema.parse({id:e.id,operation_id:e.operation_id,step:e.step,outcome:e.outcome,detail:Ma(e.detail),attempt:e.attempt,created_at:e.created_at})}function Pa(e){return{async create(t){let n=i.tenantOperationEventInsertSchema.parse(t),r={id:`evt_${ja()}`,operation_id:n.operation_id,step:n.step,outcome:n.outcome,detail:n.detail?JSON.stringify(n.detail):null,attempt:n.attempt,created_at:new Date().toISOString()};return await e.insertInto(`tenant_operation_events`).values(r).execute(),Na(r)},async listByOperation(t,n={}){let r=n.page??0,i=n.per_page??100,a=await e.selectFrom(`tenant_operation_events`).where(`operation_id`,`=`,t).selectAll().orderBy(`created_at`,`asc`).orderBy(`id`,`asc`).offset(r*i).limit(i).execute();return{events:a.map(Na),start:r*i,limit:i,length:a.length}}}}function Fa(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function Ia(e){return i.rolloutSchema.parse({id:e.id,kind:e.kind,status:e.status,target_worker_version:e.target_worker_version,target_database_version:e.target_database_version,wave_size:e.wave_size,canary_tenant_ids:Fa(e.canary_tenant_ids),filter:Fa(e.filter),initiated_by:e.initiated_by,created_at:e.created_at,updated_at:e.updated_at,finished_at:e.finished_at})}function La(e){return{async create(t){let r=i.rolloutInsertSchema.parse(t),a=new Date().toISOString(),o={id:`rol_${(0,n.nanoid)()}`,kind:r.kind,status:`pending`,target_worker_version:r.target_worker_version??null,target_database_version:r.target_database_version??null,wave_size:r.wave_size,canary_tenant_ids:r.canary_tenant_ids?JSON.stringify(r.canary_tenant_ids):null,filter:r.filter?JSON.stringify(r.filter):null,initiated_by:r.initiated_by??null,created_at:a,updated_at:a,finished_at:null};return await e.insertInto(`rollouts`).values(o).execute(),Ia(o)},async get(t){let n=await e.selectFrom(`rollouts`).where(`id`,`=`,t).selectAll().executeTakeFirst();return n?Ia(n):null},async list(t={}){let n=t.page??0,r=t.per_page??50,i=await e.selectFrom(`rollouts`).selectAll().orderBy(`created_at`,`desc`).orderBy(`id`,`desc`).offset(n*r).limit(r).execute();return{rollouts:i.map(Ia),start:n*r,limit:r,length:i.length}},async update(t,n){let r={updated_at:new Date().toISOString()};n.status!==void 0&&(r.status=n.status),n.wave_size!==void 0&&(r.wave_size=n.wave_size),n.canary_tenant_ids!==void 0&&(r.canary_tenant_ids=n.canary_tenant_ids?JSON.stringify(n.canary_tenant_ids):null),n.filter!==void 0&&(r.filter=n.filter?JSON.stringify(n.filter):null),n.finished_at!==void 0&&(r.finished_at=n.finished_at);let i=await e.updateTable(`rollouts`).where(`id`,`=`,t).set(r).executeTakeFirst();return Number(i.numUpdatedRows)>0},async remove(t){let n=await e.deleteFrom(`rollouts`).where(`id`,`=`,t).executeTakeFirst();return Number(n.numDeletedRows)>0}}}function Ra(e){return typeof e==`string`}function za(e){return typeof e==`object`&&!!e}function Ba(e){return e[e.length-1]}function U(e){return Object.freeze(e)}var Va=class{transformQuery(e){return e.node}async transformResult(e){return e.result}},Ha=U({is(e){return e.kind===`AliasNode`},create(e,t){return U({kind:`AliasNode`,node:e,alias:t})}}),W=U({is(e){return e.kind===`IdentifierNode`},create(e){return U({kind:`IdentifierNode`,name:e})}}),Ua=U({is(e){return e.kind===`AndNode`},create(e,t){return U({kind:`AndNode`,left:e,right:t})}}),Wa=U({is(e){return e.kind===`OrNode`},create(e,t){return U({kind:`OrNode`,left:e,right:t})}}),Ga=U({is(e){return e.kind===`OnNode`},create(e){return U({kind:`OnNode`,on:e})},cloneWithOperation(e,t,n){return U({...e,on:t===`And`?Ua.create(e.on,n):Wa.create(e.on,n)})}}),Ka=U({is(e){return e.kind===`JoinNode`},create(e,t){return U({kind:`JoinNode`,joinType:e,table:t,on:void 0})},createWithOn(e,t,n){return U({kind:`JoinNode`,joinType:e,table:t,on:Ga.create(n)})},cloneWithOn(e,t){return U({...e,on:e.on?Ga.cloneWithOperation(e.on,`And`,t):Ga.create(t)})}}),qa=U({is(e){return e.kind===`ListNode`},create(e){return U({kind:`ListNode`,items:U(e)})}}),Ja=class{nodeStack=[];#e=U({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),RenameConstraintNode:this.transformRenameConstraint.bind(this),ForeignKeyConstraintNode:this.transformForeignKeyConstraint.bind(this),CreateViewNode:this.transformCreateView.bind(this),RefreshMaterializedViewNode:this.transformRefreshMaterializedView.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),OrActionNode:this.transformOrAction.bind(this),CollateNode:this.transformCollate.bind(this),AlterTypeNode:this.transformAlterType.bind(this),AddValueNode:this.transformAddValue.bind(this),RenameValueNode:this.transformRenameValue.bind(this)});transformNode(e,t){if(!e)return e;this.nodeStack.push(e);let n=this.transformNodeImpl(e,t);return this.nodeStack.pop(),U(n)}transformNodeImpl(e,t){return this.#e[e.kind](e,t)}transformNodeList(e,t){return e&&U(e.map(e=>this.transformNode(e,t)))}transformSelectQuery(e,t){return{kind:`SelectQueryNode`,from:this.transformNode(e.from,t),selections:this.transformNodeList(e.selections,t),distinctOn:this.transformNodeList(e.distinctOn,t),joins:this.transformNodeList(e.joins,t),groupBy:this.transformNode(e.groupBy,t),orderBy:this.transformNode(e.orderBy,t),where:this.transformNode(e.where,t),frontModifiers:this.transformNodeList(e.frontModifiers,t),endModifiers:this.transformNodeList(e.endModifiers,t),limit:this.transformNode(e.limit,t),offset:this.transformNode(e.offset,t),with:this.transformNode(e.with,t),having:this.transformNode(e.having,t),explain:this.transformNode(e.explain,t),setOperations:this.transformNodeList(e.setOperations,t),fetch:this.transformNode(e.fetch,t),top:this.transformNode(e.top,t)}}transformSelection(e,t){return{kind:`SelectionNode`,selection:this.transformNode(e.selection,t)}}transformColumn(e,t){return{kind:`ColumnNode`,column:this.transformNode(e.column,t)}}transformAlias(e,t){return{kind:`AliasNode`,node:this.transformNode(e.node,t),alias:this.transformNode(e.alias,t)}}transformTable(e,t){return{kind:`TableNode`,table:this.transformNode(e.table,t)}}transformFrom(e,t){return{kind:`FromNode`,froms:this.transformNodeList(e.froms,t)}}transformReference(e,t){return{kind:`ReferenceNode`,column:this.transformNode(e.column,t),table:this.transformNode(e.table,t)}}transformAnd(e,t){return{kind:`AndNode`,left:this.transformNode(e.left,t),right:this.transformNode(e.right,t)}}transformOr(e,t){return{kind:`OrNode`,left:this.transformNode(e.left,t),right:this.transformNode(e.right,t)}}transformValueList(e,t){return{kind:`ValueListNode`,values:this.transformNodeList(e.values,t)}}transformParens(e,t){return{kind:`ParensNode`,node:this.transformNode(e.node,t)}}transformJoin(e,t){return{kind:`JoinNode`,joinType:e.joinType,table:this.transformNode(e.table,t),on:this.transformNode(e.on,t)}}transformRaw(e,t){return{kind:`RawNode`,sqlFragments:U([...e.sqlFragments]),parameters:this.transformNodeList(e.parameters,t)}}transformWhere(e,t){return{kind:`WhereNode`,where:this.transformNode(e.where,t)}}transformInsertQuery(e,t){return{kind:`InsertQueryNode`,into:this.transformNode(e.into,t),columns:this.transformNodeList(e.columns,t),values:this.transformNode(e.values,t),returning:this.transformNode(e.returning,t),onConflict:this.transformNode(e.onConflict,t),onDuplicateKey:this.transformNode(e.onDuplicateKey,t),endModifiers:this.transformNodeList(e.endModifiers,t),with:this.transformNode(e.with,t),orAction:this.transformNode(e.orAction,t),replace:e.replace,explain:this.transformNode(e.explain,t),defaultValues:e.defaultValues,top:this.transformNode(e.top,t),output:this.transformNode(e.output,t)}}transformValues(e,t){return{kind:`ValuesNode`,values:this.transformNodeList(e.values,t)}}transformDeleteQuery(e,t){return{kind:`DeleteQueryNode`,from:this.transformNode(e.from,t),using:this.transformNode(e.using,t),joins:this.transformNodeList(e.joins,t),where:this.transformNode(e.where,t),returning:this.transformNode(e.returning,t),endModifiers:this.transformNodeList(e.endModifiers,t),with:this.transformNode(e.with,t),orderBy:this.transformNode(e.orderBy,t),limit:this.transformNode(e.limit,t),explain:this.transformNode(e.explain,t),top:this.transformNode(e.top,t),output:this.transformNode(e.output,t)}}transformReturning(e,t){return{kind:`ReturningNode`,selections:this.transformNodeList(e.selections,t)}}transformCreateTable(e,t){return{kind:`CreateTableNode`,table:this.transformNode(e.table,t),columns:this.transformNodeList(e.columns,t),constraints:this.transformNodeList(e.constraints,t),indexes:this.transformNodeList(e.indexes,t),temporary:e.temporary,ifNotExists:e.ifNotExists,onCommit:e.onCommit,frontModifiers:this.transformNodeList(e.frontModifiers,t),endModifiers:this.transformNodeList(e.endModifiers,t),selectQuery:this.transformNode(e.selectQuery,t)}}transformColumnDefinition(e,t){return{kind:`ColumnDefinitionNode`,column:this.transformNode(e.column,t),dataType:this.transformNode(e.dataType,t),references:this.transformNode(e.references,t),primaryKey:e.primaryKey,autoIncrement:e.autoIncrement,unique:e.unique,notNull:e.notNull,unsigned:e.unsigned,defaultTo:this.transformNode(e.defaultTo,t),check:this.transformNode(e.check,t),generated:this.transformNode(e.generated,t),frontModifiers:this.transformNodeList(e.frontModifiers,t),endModifiers:this.transformNodeList(e.endModifiers,t),nullsNotDistinct:e.nullsNotDistinct,identity:e.identity,ifNotExists:e.ifNotExists}}transformAddColumn(e,t){return{kind:`AddColumnNode`,column:this.transformNode(e.column,t)}}transformDropTable(e,t){return{kind:`DropTableNode`,table:this.transformNode(e.table,t),ifExists:e.ifExists,cascade:e.cascade,temporary:e.temporary}}transformOrderBy(e,t){return{kind:`OrderByNode`,items:this.transformNodeList(e.items,t)}}transformOrderByItem(e,t){return{kind:`OrderByItemNode`,orderBy:this.transformNode(e.orderBy,t),direction:this.transformNode(e.direction,t),collation:this.transformNode(e.collation,t),nulls:e.nulls}}transformGroupBy(e,t){return{kind:`GroupByNode`,items:this.transformNodeList(e.items,t)}}transformGroupByItem(e,t){return{kind:`GroupByItemNode`,groupBy:this.transformNode(e.groupBy,t)}}transformUpdateQuery(e,t){return{kind:`UpdateQueryNode`,table:this.transformNode(e.table,t),from:this.transformNode(e.from,t),joins:this.transformNodeList(e.joins,t),where:this.transformNode(e.where,t),updates:this.transformNodeList(e.updates,t),returning:this.transformNode(e.returning,t),endModifiers:this.transformNodeList(e.endModifiers,t),with:this.transformNode(e.with,t),explain:this.transformNode(e.explain,t),limit:this.transformNode(e.limit,t),top:this.transformNode(e.top,t),output:this.transformNode(e.output,t),orderBy:this.transformNode(e.orderBy,t)}}transformColumnUpdate(e,t){return{kind:`ColumnUpdateNode`,column:this.transformNode(e.column,t),value:this.transformNode(e.value,t)}}transformLimit(e,t){return{kind:`LimitNode`,limit:this.transformNode(e.limit,t)}}transformOffset(e,t){return{kind:`OffsetNode`,offset:this.transformNode(e.offset,t)}}transformOnConflict(e,t){return{kind:`OnConflictNode`,columns:this.transformNodeList(e.columns,t),constraint:this.transformNode(e.constraint,t),indexExpression:this.transformNode(e.indexExpression,t),indexWhere:this.transformNode(e.indexWhere,t),updates:this.transformNodeList(e.updates,t),updateWhere:this.transformNode(e.updateWhere,t),doNothing:e.doNothing}}transformOnDuplicateKey(e,t){return{kind:`OnDuplicateKeyNode`,updates:this.transformNodeList(e.updates,t)}}transformCreateIndex(e,t){return{kind:`CreateIndexNode`,name:this.transformNode(e.name,t),table:this.transformNode(e.table,t),columns:this.transformNodeList(e.columns,t),unique:e.unique,using:this.transformNode(e.using,t),ifNotExists:e.ifNotExists,where:this.transformNode(e.where,t),nullsNotDistinct:e.nullsNotDistinct}}transformList(e,t){return{kind:`ListNode`,items:this.transformNodeList(e.items,t)}}transformDropIndex(e,t){return{kind:`DropIndexNode`,name:this.transformNode(e.name,t),table:this.transformNode(e.table,t),ifExists:e.ifExists,cascade:e.cascade}}transformPrimaryKeyConstraint(e,t){return{kind:`PrimaryKeyConstraintNode`,columns:this.transformNodeList(e.columns,t),name:this.transformNode(e.name,t),deferrable:e.deferrable,initiallyDeferred:e.initiallyDeferred}}transformUniqueConstraint(e,t){return{kind:`UniqueConstraintNode`,columns:this.transformNodeList(e.columns,t),name:this.transformNode(e.name,t),nullsNotDistinct:e.nullsNotDistinct,deferrable:e.deferrable,initiallyDeferred:e.initiallyDeferred}}transformForeignKeyConstraint(e,t){return{kind:`ForeignKeyConstraintNode`,columns:this.transformNodeList(e.columns,t),references:this.transformNode(e.references,t),name:this.transformNode(e.name,t),onDelete:e.onDelete,onUpdate:e.onUpdate,deferrable:e.deferrable,initiallyDeferred:e.initiallyDeferred}}transformSetOperation(e,t){return{kind:`SetOperationNode`,operator:e.operator,expression:this.transformNode(e.expression,t),all:e.all}}transformReferences(e,t){return{kind:`ReferencesNode`,table:this.transformNode(e.table,t),columns:this.transformNodeList(e.columns,t),onDelete:e.onDelete,onUpdate:e.onUpdate}}transformCheckConstraint(e,t){return{kind:`CheckConstraintNode`,expression:this.transformNode(e.expression,t),name:this.transformNode(e.name,t)}}transformWith(e,t){return{kind:`WithNode`,expressions:this.transformNodeList(e.expressions,t),recursive:e.recursive}}transformCommonTableExpression(e,t){return{kind:`CommonTableExpressionNode`,name:this.transformNode(e.name,t),materialized:e.materialized,expression:this.transformNode(e.expression,t)}}transformCommonTableExpressionName(e,t){return{kind:`CommonTableExpressionNameNode`,table:this.transformNode(e.table,t),columns:this.transformNodeList(e.columns,t)}}transformHaving(e,t){return{kind:`HavingNode`,having:this.transformNode(e.having,t)}}transformCreateSchema(e,t){return{kind:`CreateSchemaNode`,schema:this.transformNode(e.schema,t),ifNotExists:e.ifNotExists}}transformDropSchema(e,t){return{kind:`DropSchemaNode`,schema:this.transformNode(e.schema,t),ifExists:e.ifExists,cascade:e.cascade}}transformAlterTable(e,t){return{kind:`AlterTableNode`,table:this.transformNode(e.table,t),renameTo:this.transformNode(e.renameTo,t),setSchema:this.transformNode(e.setSchema,t),columnAlterations:this.transformNodeList(e.columnAlterations,t),addConstraint:this.transformNode(e.addConstraint,t),dropConstraint:this.transformNode(e.dropConstraint,t),renameConstraint:this.transformNode(e.renameConstraint,t),addIndex:this.transformNode(e.addIndex,t),dropIndex:this.transformNode(e.dropIndex,t)}}transformDropColumn(e,t){return{kind:`DropColumnNode`,column:this.transformNode(e.column,t),ifExists:e.ifExists}}transformRenameColumn(e,t){return{kind:`RenameColumnNode`,column:this.transformNode(e.column,t),renameTo:this.transformNode(e.renameTo,t)}}transformAlterColumn(e,t){return{kind:`AlterColumnNode`,column:this.transformNode(e.column,t),dataType:this.transformNode(e.dataType,t),dataTypeExpression:this.transformNode(e.dataTypeExpression,t),setDefault:this.transformNode(e.setDefault,t),dropDefault:e.dropDefault,setNotNull:e.setNotNull,dropNotNull:e.dropNotNull}}transformModifyColumn(e,t){return{kind:`ModifyColumnNode`,column:this.transformNode(e.column,t)}}transformAddConstraint(e,t){return{kind:`AddConstraintNode`,constraint:this.transformNode(e.constraint,t)}}transformDropConstraint(e,t){return{kind:`DropConstraintNode`,constraintName:this.transformNode(e.constraintName,t),ifExists:e.ifExists,modifier:e.modifier}}transformRenameConstraint(e,t){return{kind:`RenameConstraintNode`,oldName:this.transformNode(e.oldName,t),newName:this.transformNode(e.newName,t)}}transformCreateView(e,t){return{kind:`CreateViewNode`,name:this.transformNode(e.name,t),temporary:e.temporary,orReplace:e.orReplace,ifNotExists:e.ifNotExists,materialized:e.materialized,columns:this.transformNodeList(e.columns,t),as:this.transformNode(e.as,t)}}transformRefreshMaterializedView(e,t){return{kind:`RefreshMaterializedViewNode`,name:this.transformNode(e.name,t),concurrently:e.concurrently,withNoData:e.withNoData}}transformDropView(e,t){return{kind:`DropViewNode`,name:this.transformNode(e.name,t),ifExists:e.ifExists,materialized:e.materialized,cascade:e.cascade}}transformGenerated(e,t){return{kind:`GeneratedNode`,byDefault:e.byDefault,always:e.always,identity:e.identity,stored:e.stored,expression:this.transformNode(e.expression,t)}}transformDefaultValue(e,t){return{kind:`DefaultValueNode`,defaultValue:this.transformNode(e.defaultValue,t)}}transformOn(e,t){return{kind:`OnNode`,on:this.transformNode(e.on,t)}}transformSelectModifier(e,t){return{kind:`SelectModifierNode`,modifier:e.modifier,rawModifier:this.transformNode(e.rawModifier,t),of:this.transformNodeList(e.of,t)}}transformCreateType(e,t){return{kind:`CreateTypeNode`,name:this.transformNode(e.name,t),enum:this.transformNode(e.enum,t)}}transformDropType(e,t){return{kind:`DropTypeNode`,name:this.transformNode(e.name,t),additionalNames:this.transformNodeList(e.additionalNames,t),cascade:e.cascade,ifExists:e.ifExists}}transformExplain(e,t){return{kind:`ExplainNode`,format:e.format,options:this.transformNode(e.options,t)}}transformSchemableIdentifier(e,t){return{kind:`SchemableIdentifierNode`,schema:this.transformNode(e.schema,t),identifier:this.transformNode(e.identifier,t)}}transformAggregateFunction(e,t){return{kind:`AggregateFunctionNode`,func:e.func,aggregated:this.transformNodeList(e.aggregated,t),distinct:e.distinct,orderBy:this.transformNode(e.orderBy,t),withinGroup:this.transformNode(e.withinGroup,t),filter:this.transformNode(e.filter,t),over:this.transformNode(e.over,t)}}transformOver(e,t){return{kind:`OverNode`,orderBy:this.transformNode(e.orderBy,t),partitionBy:this.transformNode(e.partitionBy,t)}}transformPartitionBy(e,t){return{kind:`PartitionByNode`,items:this.transformNodeList(e.items,t)}}transformPartitionByItem(e,t){return{kind:`PartitionByItemNode`,partitionBy:this.transformNode(e.partitionBy,t)}}transformBinaryOperation(e,t){return{kind:`BinaryOperationNode`,leftOperand:this.transformNode(e.leftOperand,t),operator:this.transformNode(e.operator,t),rightOperand:this.transformNode(e.rightOperand,t)}}transformUnaryOperation(e,t){return{kind:`UnaryOperationNode`,operator:this.transformNode(e.operator,t),operand:this.transformNode(e.operand,t)}}transformUsing(e,t){return{kind:`UsingNode`,tables:this.transformNodeList(e.tables,t)}}transformFunction(e,t){return{kind:`FunctionNode`,func:e.func,arguments:this.transformNodeList(e.arguments,t)}}transformCase(e,t){return{kind:`CaseNode`,value:this.transformNode(e.value,t),when:this.transformNodeList(e.when,t),else:this.transformNode(e.else,t),isStatement:e.isStatement}}transformWhen(e,t){return{kind:`WhenNode`,condition:this.transformNode(e.condition,t),result:this.transformNode(e.result,t)}}transformJSONReference(e,t){return{kind:`JSONReferenceNode`,reference:this.transformNode(e.reference,t),traversal:this.transformNode(e.traversal,t)}}transformJSONPath(e,t){return{kind:`JSONPathNode`,inOperator:this.transformNode(e.inOperator,t),pathLegs:this.transformNodeList(e.pathLegs,t)}}transformJSONPathLeg(e,t){return{kind:`JSONPathLegNode`,type:e.type,value:e.value}}transformJSONOperatorChain(e,t){return{kind:`JSONOperatorChainNode`,operator:this.transformNode(e.operator,t),values:this.transformNodeList(e.values,t)}}transformTuple(e,t){return{kind:`TupleNode`,values:this.transformNodeList(e.values,t)}}transformMergeQuery(e,t){return{kind:`MergeQueryNode`,into:this.transformNode(e.into,t),using:this.transformNode(e.using,t),whens:this.transformNodeList(e.whens,t),with:this.transformNode(e.with,t),top:this.transformNode(e.top,t),endModifiers:this.transformNodeList(e.endModifiers,t),output:this.transformNode(e.output,t),returning:this.transformNode(e.returning,t)}}transformMatched(e,t){return{kind:`MatchedNode`,not:e.not,bySource:e.bySource}}transformAddIndex(e,t){return{kind:`AddIndexNode`,name:this.transformNode(e.name,t),columns:this.transformNodeList(e.columns,t),unique:e.unique,using:this.transformNode(e.using,t),ifNotExists:e.ifNotExists}}transformCast(e,t){return{kind:`CastNode`,expression:this.transformNode(e.expression,t),dataType:this.transformNode(e.dataType,t)}}transformFetch(e,t){return{kind:`FetchNode`,rowCount:this.transformNode(e.rowCount,t),modifier:e.modifier}}transformTop(e,t){return{kind:`TopNode`,expression:e.expression,modifiers:e.modifiers}}transformOutput(e,t){return{kind:`OutputNode`,selections:this.transformNodeList(e.selections,t)}}transformAlterType(e,t){return{kind:`AlterTypeNode`,name:this.transformNode(e.name,t),addValue:this.transformNode(e.addValue,t),renameTo:this.transformNode(e.renameTo,t),renameValue:this.transformNode(e.renameValue,t),setSchema:this.transformNode(e.setSchema,t)}}transformAddValue(e,t){return{kind:`AddValueNode`,value:this.transformNode(e.value,t),ifNotExists:e.ifNotExists,isBefore:e.isBefore,neighborValue:this.transformNode(e.neighborValue,t)}}transformRenameValue(e,t){return{kind:`RenameValueNode`,oldValue:this.transformNode(e.oldValue,t),newValue:this.transformNode(e.newValue,t)}}transformDataType(e,t){return e}transformSelectAll(e,t){return e}transformIdentifier(e,t){return e}transformValue(e,t){return e}transformPrimitiveValueList(e,t){return e}transformOperator(e,t){return e}transformDefaultInsertValue(e,t){return e}transformOrAction(e,t){return e}transformCollate(e,t){return e}};function Ya(e){return za(e)&&Ra(e.kind)}var Xa={AlterTableNode:!0,AlterTypeNode:!0,CreateIndexNode:!0,CreateSchemaNode:!0,CreateTableNode:!0,CreateTypeNode:!0,CreateViewNode:!0,DeleteQueryNode:!0,DropIndexNode:!0,DropSchemaNode:!0,DropTableNode:!0,DropTypeNode:!0,RefreshMaterializedViewNode:!0,DropViewNode:!0,InsertQueryNode:!0,RawNode:!0,SelectQueryNode:!0,UpdateQueryNode:!0,MergeQueryNode:!0};function Za(e){return Ya(e)&&Xa[e.kind]===!0}var Qa=U({is(e){return e.kind===`SchemableIdentifierNode`},create(e){return U({kind:`SchemableIdentifierNode`,identifier:W.create(e)})},createWithSchema(e,t){return U({kind:`SchemableIdentifierNode`,schema:W.create(e),identifier:W.create(t)})}}),G=U({is(e){return e.kind===`TableNode`},create(e){return U({kind:`TableNode`,table:Qa.create(e)})},createWithSchema(e,t){return U({kind:`TableNode`,table:Qa.createWithSchema(e,t)})}}),$a=U({is(e){return e.kind===`UsingNode`},create(e){return U({kind:`UsingNode`,tables:U(e)})},cloneWithTables(e,t){return U({...e,tables:U([...e.tables,...t])})}}),eo=U({json_agg:!0,to_json:!0}),to=class extends Ja{#e;#t=new Set;#n=new Set;constructor(e){super(),this.#e=e}transformNodeImpl(e,t){if(!Za(e))return super.transformNodeImpl(e,t);let n=this.#a(e);for(let e of n)this.#n.add(e);let r=this.#i(e);for(let e of r)this.#t.add(e);let i=super.transformNodeImpl(e,t);for(let e of r)this.#t.delete(e);for(let e of n)this.#n.delete(e);return i}transformSchemableIdentifier(e,t){let n=super.transformSchemableIdentifier(e,t);return n.schema||!this.#t.has(e.identifier.name)?n:{...n,schema:W.create(this.#e)}}transformReferences(e,t){let n=super.transformReferences(e,t);return n.table.table.schema?n:{...n,table:G.createWithSchema(this.#e,n.table.table.identifier.name)}}transformAggregateFunction(e,t){return{...super.transformAggregateFunction({...e,aggregated:[]},t),aggregated:this.#r(e,t,`aggregated`)}}transformFunction(e,t){return{...super.transformFunction({...e,arguments:[]},t),arguments:this.#r(e,t,`arguments`)}}transformSelectModifier(e,t){return{...super.transformSelectModifier({...e,of:void 0},t),of:e.of?.map(e=>G.is(e)&&!e.table.schema?{...e,table:this.transformIdentifier(e.table.identifier,t)}:this.transformNode(e,t))}}#r(e,t,n){return eo[e.func]?e[n].map(e=>!G.is(e)||e.table.schema?this.transformNode(e,t):{...e,table:this.transformIdentifier(e.table.identifier,t)}):this.transformNodeList(e[n],t)}#i(e){let t=new Set;if(`name`in e&&e.name&&Qa.is(e.name)&&this.#s(e.name,t),`from`in e&&e.from)for(let n of e.from.froms)this.#o(n,t);if(`into`in e&&e.into&&this.#o(e.into,t),`table`in e&&e.table&&this.#o(e.table,t),`joins`in e&&e.joins)for(let n of e.joins)this.#o(n.table,t);return`using`in e&&e.using&&(Ka.is(e.using)?this.#o(e.using.table,t):this.#o(e.using,t)),t}#a(e){let t=new Set;return`with`in e&&e.with&&this.#c(e.with,t),t}#o(e,t){if(G.is(e))return this.#s(e.table,t);if(Ha.is(e)&&G.is(e.node))return this.#s(e.node.table,t);if(qa.is(e)){for(let n of e.items)this.#o(n,t);return}if($a.is(e)){for(let n of e.tables)this.#o(n,t);return}}#s(e,t){let n=e.identifier.name;!this.#t.has(n)&&!this.#n.has(n)&&t.add(n)}#c(e,t){for(let n of e.expressions){let e=n.name.table.table.identifier.name;this.#n.has(e)||t.add(e)}}},no=class{#e;constructor(e){this.#e=new to(e)}transformQuery(e){return this.#e.transformNode(e.node,e.queryId)}async transformResult(e){return e.result}},ro=`migration_lock`;U({__noMigrations__:!0});var io=class{#e;constructor(e){this.#e=U(e)}async getMigrations(){let e=await this.#f(this.#r)?await this.#e.db.withPlugin(this.#o).selectFrom(this.#r).select([`name`,`timestamp`]).$narrowType().execute():[];return(await this.#_()).map(({name:t,...n})=>{let r=e.find(e=>e.name===t);return{name:t,migration:n,executedAt:r?new Date(r.timestamp):void 0}})}async migrateToLatest(e){return this.#t(()=>({direction:`Up`,step:1/0}),e)}async migrateTo(e,t){return this.#t(({migrations:t,executedMigrations:n,pendingMigrations:r})=>{if(za(e)&&e.__noMigrations__===!0)return{direction:`Down`,step:1/0};if(!t.find(t=>t.name===e))throw Error(`migration "${e}" doesn't exist`);let i=n.indexOf(e),a=r.findIndex(t=>t.name===e);if(i!==-1)return{direction:`Down`,step:n.length-i-1};if(a!==-1)return{direction:`Up`,step:a+1};throw Error(`migration "${e}" isn't executed or pending`)},t)}async migrateUp(e){return this.#t(()=>({direction:`Up`,step:1}),e)}async migrateDown(e){return this.#t(()=>({direction:`Down`,step:1}),e)}async#t(e,t){try{return await this.#s(),await this.#c(),await this.#l(),await this.#u(),await this.#m(e,t)}catch(e){return e instanceof ao?e.resultSet:{error:e}}}get#n(){return this.#e.migrationTableSchema}get#r(){return this.#e.migrationTableName??`kysely_migration`}get#i(){return this.#e.migrationLockTableName??`kysely_migration_lock`}get#a(){return this.#e.allowUnorderedMigrations??!1}get#o(){return this.#n?new no(this.#n):new Va}async#s(){if(this.#n&&!await this.#d())try{await this.#C(this.#e.db.schema.createSchema(this.#n))}catch(e){if(!await this.#d())throw e}}async#c(){if(!await this.#f(this.#r))try{await this.#C(this.#e.db.schema.withPlugin(this.#o).createTable(this.#r).addColumn(`name`,`varchar(255)`,e=>e.notNull().primaryKey()).addColumn(`timestamp`,`varchar(255)`,e=>e.notNull()))}catch(e){if(!await this.#f(this.#r))throw e}}async#l(){if(!await this.#f(this.#i))try{await this.#C(this.#e.db.schema.withPlugin(this.#o).createTable(this.#i).addColumn(`id`,`varchar(255)`,e=>e.notNull().primaryKey()).addColumn(`is_locked`,`integer`,e=>e.notNull().defaultTo(0)))}catch(e){if(!await this.#f(this.#i))throw e}}async#u(){if(!await this.#p())try{await this.#e.db.withPlugin(this.#o).insertInto(this.#i).values({id:ro,is_locked:0}).execute()}catch(e){if(!await this.#p())throw e}}async#d(){return(await this.#e.db.introspection.getSchemas()).some(e=>e.name===this.#n)}async#f(e){let t=this.#n;return(await this.#e.db.introspection.getTables({withInternalKyselyTables:!0})).some(n=>n.name===e&&(!t||n.schema===t))}async#p(){return!!await this.#e.db.withPlugin(this.#o).selectFrom(this.#i).where(`id`,`=`,ro).select(`id`).executeTakeFirst()}async#m(e,t){let n=this.#e.db.getExecutor().adapter,r=U({lockTable:this.#e.migrationLockTableName??`kysely_migration_lock`,lockRowId:ro,lockTableSchema:this.#e.migrationTableSchema}),i=async t=>{let n=await this.#h(t);if(n.migrations.length===0)return{results:[]};let{direction:r,step:i}=e(n);return i<=0?{results:[]}:r===`Down`?await this.#x(t,n,i):r===`Up`?await this.#S(t,n,i):{results:[]}},a=async(e,t)=>{try{return await n.acquireMigrationLock(e,r),await t(e)}finally{await n.releaseMigrationLock(e,r)}},o=t?.disableTransactions??this.#e.disableTransactions;if(this.#e.db.isTransaction){if(!n.supportsTransactionalDdl)throw Error(`Transactional DDL is not supported in this dialect. Passing a transaction to this migrator would result in failure or unexpected behavior.`);if(o)throw Error("`disableTransactions` is true but the migrator was given a transaction. Passing a transaction to this migrator would result in failure or unexpected behavior.");return a(this.#e.db,i)}return n.supportsTransactionalDdl&&!o?this.#e.db.connection().execute(e=>a(e,e=>e.transaction().execute(e=>i(e)))):this.#e.db.connection().execute(e=>a(e,i))}async#h(e){let t=await this.#_(),n=await this.#v(e);this.#y(t,n),this.#a||this.#b(t,n);let r=this.#g(t,n);return U({migrations:t,executedMigrations:n,lastMigration:Ba(n),pendingMigrations:r})}#g(e,t){return e.filter(e=>!t.includes(e.name))}async#_(){let e=await this.#e.provider.getMigrations();return Object.keys(e).sort().map(t=>({...e[t],name:t}))}async#v(e){let t=await e.withPlugin(this.#o).selectFrom(this.#r).select([`name`,`timestamp`]).$narrowType().execute(),n=this.#e.nameComparator||((e,t)=>e.localeCompare(t));return t.sort((e,t)=>e.timestamp===t.timestamp?n(e.name,t.name):new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime()).map(e=>e.name)}#y(e,t){for(let n of t)if(!e.some(e=>e.name===n))throw Error(`corrupted migrations: previously executed migration ${n} is missing`)}#b(e,t){for(let n=0;n<t.length;++n)if(e[n].name!==t[n])throw Error(`corrupted migrations: expected previously executed migration ${t[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.`)}async#x(e,t,n){let r=t.executedMigrations.toReversed().slice(0,n).map(e=>t.migrations.find(t=>t.name===e)),i=r.map(e=>({migrationName:e.name,direction:`Down`,status:`NotExecuted`}));for(let t=0;t<i.length;++t){let n=r[t];try{n.down&&(await n.down(e),await e.withPlugin(this.#o).deleteFrom(this.#r).where(`name`,`=`,n.name).execute(),i[t]={migrationName:n.name,direction:`Down`,status:`Success`})}catch(e){throw i[t]={migrationName:n.name,direction:`Down`,status:`Error`},new ao({error:e,results:i})}}return{results:i}}async#S(e,t,n){let r=t.pendingMigrations.slice(0,n).map(e=>({migrationName:e.name,direction:`Up`,status:`NotExecuted`}));for(let n=0;n<r.length;n++){let i=t.pendingMigrations[n];try{await i.up(e),await e.withPlugin(this.#o).insertInto(this.#r).values({name:i.name,timestamp:new Date().toISOString()}).execute(),r[n]={migrationName:i.name,direction:`Up`,status:`Success`}}catch(e){throw r[n]={migrationName:i.name,direction:`Up`,status:`Error`},new ao({error:e,results:r})}}return{results:r}}async#C(e){this.#e.db.getExecutor().adapter.supportsCreateIfNotExists&&(e=e.ifNotExists()),await e.execute()}},ao=class extends Error{#e;constructor(e){super(),this.#e=e}get resultSet(){return this.#e}},oo=class{migrations;constructor(e){this.migrations=e}async getMigrations(){return this.migrations}},so=t({down:()=>lo,up:()=>co});async function co(e){await e.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 e.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 e.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 e.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 e.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 e.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 e.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 lo(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()}var uo=t({down:()=>po,up:()=>fo});async function fo(e){await e.schema.alterTable(`tenants`).addColumn(`support_url`,`varchar(255)`).execute()}async function po(e){await e.schema.alterTable(`tenants`).dropColumn(`support_url`).execute()}var mo=t({down:()=>go,up:()=>ho});async function ho(e){}async function go(e){}var _o=t({down:()=>yo,up:()=>vo});async function vo(e){await e.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 yo(e){await e.schema.dropTable(`logs`).execute()}var bo=t({down:()=>So,up:()=>xo});async function xo(e){}async function So(e){}var Co=t({down:()=>To,up:()=>wo});async function wo(e){await e.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 e.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 e.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 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 To(e){await e.schema.dropTable(`sessions`).execute(),await e.schema.dropTable(`tickets`).execute(),await e.schema.dropTable(`otps`).execute()}var Eo=t({down:()=>Oo,up:()=>Do});async function Do(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`],e=>e.onDelete(`cascade`)).addColumn(`created_at`,`varchar(255)`).addColumn(`updated_at`,`varchar(255)`).execute(),await e.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 e.schema.createIndex(`codes_expires_at_index`).on(`codes`).column(`expires_at`).execute()}async function Oo(e){await e.schema.dropTable(`passwords`).execute(),await e.schema.dropTable(`codes`).execute()}var ko=t({down:()=>jo,up:()=>Ao});async function Ao(e){}async function jo(e){}var Mo=t({down:()=>Po,up:()=>No});async function No(e){await e.schema.alterTable(`passwords`).addColumn(`password`,`varchar(255)`,e=>e.notNull()).execute()}async function Po(e){await e.schema.alterTable(`passwords`).dropColumn(`password`).execute()}var Fo=t({down:()=>Lo,up:()=>Io});async function Io(e){}async function Lo(e){}var Ro=t({down:()=>Bo,up:()=>zo});async function zo(e){}async function Bo(e){}var Vo=t({down:()=>Uo,up:()=>Ho});async function Ho(e){}async function Uo(e){}var Wo=t({down:()=>Ko,up:()=>Go});async function Go(e){await e.schema.createIndex(`users_email_index`).on(`users`).column(`email`).execute()}async function Ko(e){await e.schema.dropIndex(`users_email_index`).execute()}var qo=t({down:()=>Yo,up:()=>Jo});async function Jo(e){await e.schema.alterTable(`users`).addColumn(`profileData`,`varchar(2048)`).execute()}async function Yo(e){await e.schema.alterTable(`users`).dropColumn(`profileData`).execute()}var Xo=t({down:()=>Qo,up:()=>Zo});async function Zo(e){await e.schema.createIndex(`users_linked_to_index`).on(`users`).column(`linked_to`).execute()}async function Qo(e){await e.schema.dropIndex(`users_linked_to_index`)}var $o=t({down:()=>ts,up:()=>es});async function es(e){await e.schema.alterTable(`users`).addColumn(`locale`,`varchar(255)`).execute()}async function ts(e){await e.schema.alterTable(`users`).dropColumn(`locale`).execute()}var ns=t({down:()=>is,up:()=>rs});async function rs(e){await e.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 is(e){await e.schema.dropTable(`keys`).execute()}var as=t({down:()=>ss,up:()=>os});async function os(e){}async function ss(e){}var cs=t({down:()=>us,up:()=>ls});async function ls(e){}async function us(e){}var ds=t({down:()=>ps,up:()=>fs});async function fs(e){await e.schema.alterTable(`otps`).addColumn(`audience`,`varchar(255)`).execute()}async function ps(e){await e.schema.alterTable(`otps`).dropColumn(`audience`).execute()}var ms=t({down:()=>gs,up:()=>hs});async function hs(e){}async function gs(e){}var _s=t({down:()=>ys,up:()=>vs});async function vs(e){await e.schema.alterTable(`logs`).dropColumn(`category`).execute()}async function ys(e){await e.schema.alterTable(`logs`).addColumn(`category`,`varchar(255)`,e=>e.notNull()).execute()}var bs=t({down:()=>Ss,up:()=>xs});async function xs(e){await e.schema.alterTable(`users`).dropColumn(`tags`).execute()}async function Ss(e){await e.schema.alterTable(`users`).addColumn(`tags`,`varchar(255)`).execute()}var Cs=t({down:()=>Ts,up:()=>ws});async function ws(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 Ts(e){await e.schema.dropIndex(`logs_user_id`),await e.schema.dropIndex(`logs_tenant_id`),await e.schema.dropIndex(`logs_date`)}var Es=t({down:()=>Os,up:()=>Ds});async function Ds(e){await e.schema.alterTable(`logs`).dropColumn(`details`).execute(),await e.schema.alterTable(`logs`).addColumn(`details`,`varchar(8192)`).execute()}async function Os(e){await e.schema.alterTable(`logs`).dropColumn(`details`).execute(),await e.schema.alterTable(`logs`).addColumn(`details`,`varchar(2048)`).execute()}var ks=t({down:()=>js,up:()=>As});async function As(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 js(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()}var Ms=t({down:()=>Ps,up:()=>Ns});async function Ns(e){await e.schema.createIndex(`users_name_index`).on(`users`).column(`name`).execute()}async function Ps(e){await e.schema.dropIndex(`users_name_index`).execute()}var Fs=t({down:()=>Ls,up:()=>Is});async function Is(e){}async function Ls(e){await e.schema.alterTable(`users`).dropConstraint(`unique_email_provider`).execute()}var Rs=t({down:()=>Bs,up:()=>zs});async function zs(e){await e.schema.alterTable(`otps`).dropColumn(`state`).execute(),await e.schema.alterTable(`otps`).addColumn(`state`,`varchar(8192)`).execute()}async function Bs(e){await e.schema.alterTable(`otps`).dropColumn(`state`).execute(),await e.schema.alterTable(`otps`).addColumn(`state`,`varchar(1024)`).execute()}var Vs=t({down:()=>Us,up:()=>Hs});async function Hs(e){await e.schema.alterTable(`tickets`).dropColumn(`state`).execute(),await e.schema.alterTable(`tickets`).addColumn(`state`,`varchar(8192)`).execute()}async function Us(e){await e.schema.alterTable(`tickets`).dropColumn(`state`).execute(),await e.schema.alterTable(`tickets`).addColumn(`state`,`varchar(1024)`).execute()}var Ws=t({down:()=>Ks,up:()=>Gs});async function Gs(e){await e.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 Ks(e){await e.schema.dropTable(`branding`).execute()}var qs=t({down:()=>Ys,up:()=>Js});async function Js(e){}async function Ys(e){}var Xs=t({down:()=>Qs,up:()=>Zs});async function Zs(e){}async function Qs(e){}var $s=t({down:()=>tc,up:()=>ec});async function ec(e){}async function tc(e){}var nc=t({down:()=>ic,up:()=>rc});async function rc(e){}async function ic(e){}var ac=t({down:()=>sc,up:()=>oc});async function oc(e){await e.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 sc(e){await e.schema.dropTable(`authentication_codes`).execute()}var cc=t({down:()=>uc,up:()=>lc});async function lc(e){}async function uc(e){}var dc=t({down:()=>pc,up:()=>fc});async function fc(e){await e.schema.alterTable(`otps`).addColumn(`ip`,`varchar(64)`).execute()}async function pc(e){await e.schema.alterTable(`otps`).dropColumn(`ip`).execute()}var mc=t({down:()=>gc,up:()=>hc});async function hc(e){await e.schema.alterTable(`logs`).dropColumn(`user_agent`).execute(),await e.schema.alterTable(`logs`).addColumn(`user_agent`,`varchar(1024)`).execute()}async function gc(e){await e.schema.alterTable(`logs`).dropColumn(`user_agent`).execute(),await e.schema.alterTable(`logs`).addColumn(`user_agent`,`varchar(255)`).execute()}var _c=t({down:()=>yc,up:()=>vc});async function vc(e){}async function yc(e){}var bc=t({down:()=>Sc,up:()=>xc});async function xc(e){await e.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 Sc(e){await e.schema.dropTable(`hooks`).execute()}var Cc=t({down:()=>Tc,up:()=>wc});async function wc(e){}async function Tc(e){}var Ec=t({down:()=>Oc,up:()=>Dc});async function Dc(e){}async function Oc(e){}var kc=t({down:()=>jc,up:()=>Ac});async function Ac(e){await e.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 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)`,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 jc(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)`,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()}var Mc=t({down:()=>Pc,up:()=>Nc});async function Nc(e){}async function Pc(e){}var Fc=t({down:()=>Lc,up:()=>Ic});async function Ic(e){await e.schema.alterTable(`logins`).addColumn(`auth0Client`,`varchar(256)`).execute()}async function Lc(e){await e.schema.alterTable(`logins`).dropColumn(`auth0Client`).execute()}var Rc=t({down:()=>Bc,up:()=>zc});async function zc(e){await e.schema.alterTable(`logins`).dropColumn(`authParams_state`).execute(),await e.schema.alterTable(`logins`).addColumn(`authParams_state`,`varchar(8192)`).execute()}async function Bc(e){await e.schema.alterTable(`logins`).dropColumn(`authParams_state`).execute(),await e.schema.alterTable(`logins`).addColumn(`authParams_state`,`varchar(511)`).execute()}var Vc=t({down:()=>Uc,up:()=>Hc});async function Hc(e){}async function Uc(e){}var Wc=t({down:()=>Kc,up:()=>Gc});async function Gc(e){}async function Kc(e){}var qc=t({down:()=>Yc,up:()=>Jc});async function Jc(e){await e.schema.alterTable(`logins`).addColumn(`authParams_nonce`,`varchar(255)`).execute()}async function Yc(e){await e.schema.alterTable(`logins`).dropColumn(`nonce`).execute()}var Xc=t({down:()=>Qc,up:()=>Zc});async function Zc(e){}async function Qc(e){}var $c=t({down:()=>tl,up:()=>el});async function el(e){}async function tl(e){}var nl=t({down:()=>il,up:()=>rl});async function rl(e){await e.schema.dropTable(`codes`).execute(),await e.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 il(e){await e.schema.dropTable(`codes`).execute(),await e.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()}var al=t({down:()=>sl,up:()=>ol});async function ol(e){await e.schema.dropTable(`otps`).execute(),await e.schema.dropTable(`authentication_codes`).execute()}async function sl(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)`,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 e.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()}var cl=t({down:()=>ul,up:()=>ll});async function ll(e){await e.schema.createIndex(`IDX_logs_tenant_date_type_user`).on(`logs`).columns([`tenant_id`,`date`,`type`,`user_id`]).execute()}async function ul(e){await e.schema.dropIndex(`IDX_logs_tenant_date_type_user`).on(`logs`).execute()}var dl=t({down:()=>pl,up:()=>fl});async function fl(e){}async function pl(e){}var ml=t({down:()=>gl,up:()=>hl});async function hl(e){await e.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 gl(e){await e.schema.dropTable(`prompt_settings`).execute()}var _l=t({down:()=>yl,up:()=>vl});async function vl(e){}async function yl(e){}var bl=t({down:()=>Sl,up:()=>xl});async function xl(e){}async function Sl(e){}var Cl=t({down:()=>Tl,up:()=>wl});async function wl(e){}async function Tl(e){}var El=t({down:()=>Ol,up:()=>Dl});async function Dl(e){await e.schema.alterTable(`logins`).addColumn(`authParams_ui_locales`,`varchar(32)`).execute()}async function Ol(e){await e.schema.alterTable(`logins`).dropColumn(`authParams_ui_locales`).execute()}var kl=t({down:()=>jl,up:()=>Al});async function Al(e){await e.schema.alterTable(`logins`).addColumn(`authParams_prompt`,`varchar(16)`).execute()}async function jl(e){await e.schema.alterTable(`logins`).dropColumn(`authParams_prompt`).execute()}var Ml=t({down:()=>Pl,up:()=>Nl});async function Nl(e){}async function Pl(e){}var Fl=t({down:()=>Ll,up:()=>Il});async function Il(e){await e.schema.alterTable(`logins`).addColumn(`authParams_act_as`,`varchar(255)`).execute()}async function Ll(e){await e.schema.alterTable(`logins`).dropColumn(`authParam_act_as`).execute()}var Rl=t({down:()=>Bl,up:()=>zl});async function zl(e){await e.schema.alterTable(`codes`).addColumn(`code_verifier`,`varchar(128)`).execute()}async function Bl(e){await e.schema.alterTable(`codes`).dropColumn(`code_verifier`).execute()}var Vl=t({down:()=>Ul,up:()=>Hl});async function Hl(e){await e.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 Ul(e){await e.schema.dropTable(`email_providers`).execute()}var Wl=t({down:()=>Kl,up:()=>Gl});async function Gl(e){await e.schema.dropTable(`tickets`).execute()}async function Kl(e){await e.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()}var ql=t({down:()=>Yl,up:()=>Jl});async function Jl(e){}async function Yl(e){await e.schema.alterTable(`logins`).dropColumn(`ip`).dropColumn(`useragent`).execute()}var Xl=t({down:()=>Ql,up:()=>Zl});async function Zl(e){await e.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 Ql(e){await e.schema.dropTable(`refresh_tokens`).execute()}var $l=t({down:()=>tu,up:()=>eu});async function eu(e){}async function tu(e){}var nu=t({down:()=>iu,up:()=>ru});async function ru(e){await e.schema.dropTable(`sessions`).execute(),await e.schema.dropTable(`refresh_tokens`).execute()}async function iu(e){await e.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 e.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()}var au=t({down:()=>su,up:()=>ou});async function ou(e){await e.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 e.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 su(e){await e.schema.dropTable(`sessions_2`).execute(),await e.schema.dropTable(`refresh_tokens_2`).execute()}var cu=t({down:()=>uu,up:()=>lu});async function lu(e){await e.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 e.schema.dropTable(`domains`).execute()}async function uu(e){await e.schema.dropTable(`custom_domains`).execute(),await e.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()}var du=t({down:()=>pu,up:()=>fu});async function fu(e){}async function pu(e){await e.schema.alterTable(`logins`).dropColumn(`authParams_organization`).dropColumn(`authorization_url`).execute()}var mu=t({down:()=>gu,up:()=>hu});async function hu(e){await e.schema.alterTable(`logins`).dropColumn(`authorization_url`).execute(),await e.schema.alterTable(`logins`).addColumn(`authorization_url`,`varchar(2048)`).execute()}async function gu(e){await e.schema.alterTable(`logins`).dropColumn(`authorization_url`).execute(),await e.schema.alterTable(`logins`).addColumn(`authorization_url`,`varchar(1024)`).execute()}var _u=t({down:()=>yu,up:()=>vu});async function vu(e){}async function yu(e){}var bu=t({down:()=>Su,up:()=>xu});async function xu(e){await e.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 e.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 e.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 Su(e){await e.schema.dropTable(`sessions`).execute(),await e.schema.dropTable(`login_sessions`).execute(),await e.schema.dropTable(`refresh_tokens`).execute()}var Cu=t({down:()=>Tu,up:()=>wu});async function wu(e){await e.schema.dropTable(`logins`).execute(),await e.schema.dropTable(`sessions_2`).execute(),await e.schema.dropTable(`refresh_tokens_2`).execute()}async function Tu(e){}var Eu=t({down:()=>Ou,up:()=>Du});async function Du(e){await e.schema.dropTable(`custom_domains`).execute(),await e.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 Ou(e){}var ku=t({down:()=>ju,up:()=>Au});async function Au(e){}async function ju(e){await e.schema.alterTable(`users`).dropColumn(`phone_number`).dropColumn(`phone_verified`).dropColumn(`username`).execute()}var Mu=t({down:()=>Pu,up:()=>Nu});async function Nu(e){await e.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 e.schema.createIndex(`forms_tenant_id_idx`).on(`forms`).column(`tenant_id`).execute()}async function Pu(e){await e.schema.dropTable(`forms`).execute()}var Fu=t({down:()=>Lu,up:()=>Iu});async function Iu(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(e=>({url_tmp:e.ref(`url`)})).execute(),await e.schema.alterTable(`hooks`).dropColumn(`url`).execute(),await e.schema.alterTable(`hooks`).renameColumn(`url_tmp`,`url`).execute()}async function Lu(e){await e.schema.dropTable(`hooks`).ifExists().execute(),await e.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()}var Ru=t({down:()=>Bu,up:()=>zu});async function zu(e){await e.schema.alterTable(`login_sessions`).addColumn(`login_completed`,`boolean`,e=>e.notNull().defaultTo(0)).execute()}async function Bu(e){await e.schema.alterTable(`login_sessions`).dropColumn(`login_completed`).execute()}var Vu=t({down:()=>Uu,up:()=>Hu});async function Hu(e){await e.schema.alterTable(`sessions`).addColumn(`login_session_id`,`varchar(21)`,e=>e.references(`login_sessions.id`).onDelete(`set null`)).execute()}async function Uu(e){await e.schema.alterTable(`sessions`).dropColumn(`login_session_id`).execute()}var Wu=t({down:()=>Ku,up:()=>Gu});async function Gu(e){await e.schema.createIndex(`IDX_sessions_login_session_id`).on(`sessions`).column(`login_session_id`).execute()}async function Ku(e){await e.schema.dropIndex(`IDX_sessions_login_session_id`).on(`sessions`).execute()}var qu=t({down:()=>Yu,up:()=>Ju});async function Ju(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 Yu(e){await e.schema.alterTable(`codes`).dropColumn(`code_challenge`).execute(),await e.schema.alterTable(`codes`).dropColumn(`code_challenge_method`).execute()}var Xu=t({down:()=>Qu,up:()=>Zu});async function Zu(e){await e.schema.alterTable(`codes`).addColumn(`redirect_uri`,`varchar(1024)`).execute()}async function Qu(e){await e.schema.alterTable(`codes`).dropColumn(`redirect_uri`).execute()}var $u=t({down:()=>td,up:()=>ed});async function ed(e){await e.schema.alterTable(`codes`).addColumn(`nonce`,`varchar(1024)`).execute(),await e.schema.alterTable(`codes`).addColumn(`state`,`varchar(2048)`).execute()}async function td(e){await e.schema.alterTable(`codes`).dropColumn(`nonce`).execute(),await e.schema.alterTable(`codes`).dropColumn(`state`).execute()}var nd=t({down:()=>id,up:()=>rd});async function rd(e){await e.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 e.schema.createIndex(`themes_tenant_id_idx`).on(`themes`).column(`tenant_id`).execute()}async function id(e){await e.schema.dropTable(`themes`).execute()}var ad=t({down:()=>sd,up:()=>od});async function od(e){await e.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 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)`,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 e.schema.createIndex(`roles_tenant_name_uq`).on(`roles`).columns([`tenant_id`,`name`]).unique().execute()}async function sd(e){await e.schema.dropTable(`roles`).execute(),await e.schema.dropTable(`resource_servers`).execute()}var cd=t({down:()=>ud,up:()=>ld});async function ld(e){await e.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 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)`,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 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 ud(e){await e.schema.dropTable(`user_permissions`).execute(),await e.schema.dropTable(`role_permissions`).execute()}var dd=t({down:()=>pd,up:()=>fd});async function fd(e){await e.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 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 pd(e){await e.schema.dropTable(`user_roles`).execute()}var md=t({down:()=>gd,up:()=>hd});async function hd(e){}async function gd(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()}var _d=t({down:()=>yd,up:()=>vd});async function vd(e){await e.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 e.schema.createIndex(`idx_organizations_tenant_id`).on(`organizations`).column(`tenant_id`).execute(),await e.schema.createIndex(`idx_organizations_tenant_name_unique`).on(`organizations`).columns([`tenant_id`,`name`]).unique().execute()}async function yd(e){await e.schema.dropTable(`organizations`).execute()}var bd=t({down:()=>Sd,up:()=>xd});async function xd(e){await e.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 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 Sd(e){await e.schema.dropTable(`user_organizations`).execute()}var Cd=t({down:()=>Td,up:()=>wd});async function wd(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)`,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 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)`,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 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 Td(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)`,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 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)`,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 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()}var Ed=t({down:()=>Od,up:()=>Dd});async function Dd(e){await e.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 Od(e){await e.schema.dropTable(`clients`).execute()}var kd=!1;function Ad(e){kd=e}function K(...e){kd&&console.log(...e)}function q(...e){console.warn(...e)}var jd=t({down:()=>Id,up:()=>Nd});async function Md(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function Nd(e){await Md(e)===`mysql`?await Pd(e):await Fd(e)}async function Pd(e){await e.transaction().execute(async e=>{let t=await r.sql`
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};let n=require("nanoid"),r=require("kysely"),i=require("@authhero/adapter-interfaces");require("@hono/zod-openapi");var a=17,o={organization:`org_`,connection:`con_`,action:`act_`,action_version:`ver_`,hook:`h_`,hook_code:`hc_`,rule:`rul_`,resource_server:`api_`,guardian_factor:`gfa_`,invite:`inv_`};function s(e){let t=(0,n.customAlphabet)(`0123456789abcdefghijklmnopqrstuvwxyz`,a)();return`${o[e]}${t}`}function c(){return s(`organization`)}function l(){return s(`connection`)}function u(){return s(`action`)}function d(){return s(`action_version`)}function f(){return s(`hook`)}function p(){return s(`resource_server`)}function m(){return s(`hook_code`)}function h(){return s(`invite`)}function g(e){return async(t,n,r)=>{let i=r?.importMetadata,a=Date.now(),o=i?.created_at?new Date(i.created_at).getTime():a,s=i?.updated_at?new Date(i.updated_at).getTime():o,c=i?.id??u();return await e.insertInto(`actions`).values({id:c,tenant_id:t,name:n.name,code:n.code,runtime:n.runtime||null,status:`built`,secrets:n.secrets?JSON.stringify(n.secrets):null,dependencies:n.dependencies?JSON.stringify(n.dependencies):null,supported_triggers:n.supported_triggers?JSON.stringify(n.supported_triggers):null,is_system:+!!n.is_system,inherit:+!!n.inherit,created_at_ts:o,updated_at_ts:s}).execute(),{id:c,tenant_id:t,name:n.name,code:n.code,runtime:n.runtime,status:`built`,secrets:n.secrets?.map(e=>({name:e.name})),dependencies:n.dependencies,supported_triggers:n.supported_triggers,is_system:n.is_system??!1,inherit:n.inherit??!1,created_at:new Date(o).toISOString(),updated_at:new Date(s).toISOString()}}}function _(e){if(e!=null){if(typeof e==`number`)return new Date(e).toISOString();if(typeof e==`string`){if(e===``)return;let t=parseFloat(e);return!isNaN(t)&&/^\d+(\.\d+)?$/.test(e)?new Date(t).toISOString():e}}}function v(e,t=new Date(0).toISOString()){return _(e)??t}function y(e){if(!e||e===``)return null;let t=new Date(e);return isNaN(t.getTime())?null:t.getTime()}function b(){return new Date().toISOString()}function x(e,t,n=[]){let r={};for(let n of t){let t=n.replace(/_ts$/,``);r[t]=v(e[n])}for(let t of n){let n=t.replace(/_ts$/,``);r[n]=_(e[t])}return r}function S(e){if(e)try{return JSON.parse(e)}catch{return}}function ee(e){return async(t,n)=>{let r=await e.selectFrom(`actions`).where(`actions.tenant_id`,`=`,t).where(`actions.id`,`=`,n).selectAll().executeTakeFirst();if(!r)return null;let{created_at_ts:i,updated_at_ts:a,deployed_at_ts:o,secrets:s,dependencies:c,supported_triggers:l,is_system:u,inherit:d,tenant_id:f,...p}=r,m=x({created_at_ts:i,updated_at_ts:a},[`created_at_ts`,`updated_at_ts`]);return{...p,tenant_id:t,...m,runtime:p.runtime??void 0,status:p.status||`built`,deployed_at:o?new Date(Number(o)).toISOString():void 0,secrets:S(s),dependencies:S(c),supported_triggers:S(l),is_system:!!u,inherit:!!d}}}function te(e){return r.sql`coalesce(${r.sql.ref(e.column)}, ${r.sql.lit(e.defaultValue)})`}function ne(e){return e.replace(/\\([\\"+\-!(){}[\]^~*?:/&|])/g,`$1`)}function C(e,t){let n=new Set(t),r=e=>{let t=[],r=``,i=!1;for(let n=0;n<e.length;n++){let a=e[n];a===`"`?(i=!i,r+=a):a===` `&&!i?(r.trim()&&t.push(r.trim()),r=``):r+=a}return r.trim()&&t.push(r.trim()),t.filter(e=>{let t=e.replace(/^([^:]+)=/,`$1:`),r=t.startsWith(`-`)?t.slice(1):t;if(r.startsWith(`_exists_:`))return n.has(r.slice(9));let i=r.indexOf(`:`);return i>0?n.has(r.slice(0,i)):!0}).join(` `)},i=e.split(/ OR /i);return i.length>1?i.map(r).filter(e=>e.length>0).join(` OR `):r(e)}function w(e,t,n,r,i=[],a={}){let o=new Set(i),{ref:s}=e.dynamic,c=e=>{let t=a[e];return t===void 0?e:typeof t==`string`?t:t.column},l=e=>{let t=a[e];return t===void 0||typeof t==`string`?s(t??e):te(t)},u=(e,t)=>{let n=a[e];if(n===void 0||typeof n==`string`)return t;let r=Number(t);return Number.isFinite(r)?r:t},d=n.split(/ OR /i);if(d.length>1)return t.where(e=>{let t=d.map(t=>{let n=t.trim().match(/^([^:]+):(.+)$/);if(n){let[,t,r]=n;if(!t||!r)return null;let i=t.trim(),a=ne(r.replace(/^"(.*)"$/,`$1`).trim());return o.has(i)?e(s(c(i)),`like`,`%${a}%`):e(l(i),`=`,u(i,a))}return null}).filter(e=>e!==null);return e.or(t)});let f=[],p=``,m=!1;for(let e=0;e<n.length;e++){let t=n[e];t===`"`?(m=!m,p+=t):t===` `&&!m?p.trim()&&(f.push(p.trim()),p=``):p+=t}return p.trim()&&f.push(p.trim()),f.filter(e=>e!==`AND`).map(e=>e.replace(/^([^:]+)=/g,`$1:`)).map(e=>{let t=e.startsWith(`-`),n=null,r=``,i=!1,a;if(e.startsWith(`-_exists_:`))n=e.substring(10),i=!0,t=!0;else if(e.startsWith(`_exists_:`))n=e.substring(9),i=!0,t=!1;else if(e.includes(`:`)){let o=t?e.substring(1):e,s=o.indexOf(`:`);n=o.substring(0,s),r=o.substring(s+1),i=!1,r.startsWith(`>=`)?(a=`>=`,r=r.substring(2)):r.startsWith(`>`)?(a=`>`,r=r.substring(1)):r.startsWith(`<=`)?(a=`<=`,r=r.substring(2)):r.startsWith(`<`)?(a=`<`,r=r.substring(1)):a=`=`,r.startsWith(`"`)&&r.endsWith(`"`)&&r.length>1&&(r=r.slice(1,-1)),r=ne(r)}else n=null,r=ne(e),i=!1;return{key:n,value:r,isNegation:t,isExistsQuery:i,operator:a}}).forEach(({key:e,value:n,isNegation:i,isExistsQuery:a,operator:d})=>{if(e){let r=s(c(e)),f=l(e),p=u(e,n);if(a)t=i?t.where(r,`is`,null):t.where(r,`is not`,null);else if(o.has(e)&&d===`=`)t=t.where(r,i?`not like`:`like`,`%${n}%`);else if(i)switch(d){case`>`:t=t.where(f,`<=`,p);break;case`>=`:t=t.where(f,`<`,p);break;case`<`:t=t.where(f,`>=`,p);break;case`<=`:t=t.where(f,`>`,p);break;default:t=t.where(f,`!=`,p)}else t=t.where(f,d,p)}else n&&(t=t.where(e=>e.or(r.map(t=>t===`user_id`?e(s(c(t)),`=`,n):e(s(c(t)),`like`,`%${n}%`)))))}),t}function T(e){return typeof e==`string`?parseInt(e,10):typeof e==`bigint`?Number(e):e}function re(e){if(e)try{return JSON.parse(e)}catch{return}}function ie(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,q:o}=n,s=e.selectFrom(`actions`).where(`actions.tenant_id`,`=`,t);o&&(s=w(e,s,o,[`name`]));let c=(await s.offset(r*i).limit(i).selectAll().execute()).map(e=>{let{created_at_ts:n,updated_at_ts:r,deployed_at_ts:i,secrets:a,dependencies:o,supported_triggers:s,is_system:c,inherit:l,tenant_id:u,...d}=e,f=x({created_at_ts:n,updated_at_ts:r},[`created_at_ts`,`updated_at_ts`]);return{...d,tenant_id:t,...f,runtime:d.runtime??void 0,status:d.status||`built`,deployed_at:i?new Date(Number(i)).toISOString():void 0,secrets:re(a),dependencies:re(o),supported_triggers:re(s),is_system:!!c,inherit:!!l}});if(!a)return{actions:c,start:0,limit:0,length:0};let{count:l}=await s.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{actions:c,start:r*i,limit:i,length:T(l)}}}function ae(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function oe(e){return async(t,n,r)=>{let i={updated_at_ts:Date.now()};if(r.name!==void 0&&(i.name=r.name),r.code!==void 0&&(i.code=r.code),r.runtime!==void 0&&(i.runtime=r.runtime),r.secrets!==void 0){let a=await e.selectFrom(`actions`).where(`actions.id`,`=`,n).where(`actions.tenant_id`,`=`,t).select(`secrets`).executeTakeFirst(),o=new Map(ae(a?.secrets).map(e=>[e.name,e])),s=r.secrets.map(e=>e.value===void 0?{name:e.name,value:o.get(e.name)?.value}:e);i.secrets=JSON.stringify(s)}if(r.dependencies!==void 0&&(i.dependencies=JSON.stringify(r.dependencies)),r.supported_triggers!==void 0&&(i.supported_triggers=JSON.stringify(r.supported_triggers)),r.status!==void 0&&(i.status=r.status),r.deployed_at!==void 0){let e=new Date(r.deployed_at).getTime();Number.isFinite(e)&&(i.deployed_at_ts=e)}return r.is_system!==void 0&&(i.is_system=+!!r.is_system),r.inherit!==void 0&&(i.inherit=+!!r.inherit),(await e.updateTable(`actions`).set(i).where(`actions.id`,`=`,n).where(`actions.tenant_id`,`=`,t).executeTakeFirst()).numUpdatedRows>0}}function se(e){return async(t,n)=>(await e.deleteFrom(`actions`).where(`actions.id`,`=`,n).where(`actions.tenant_id`,`=`,t).executeTakeFirst()).numDeletedRows>0}function ce(e){return{create:g(e),get:ee(e),list:ie(e),update:oe(e),remove:se(e)}}function le(e){return async(t,n)=>{let r=Date.now();return await e.insertInto(`action_executions`).values({id:n.id,tenant_id:t,trigger_id:n.trigger_id,status:n.status,results:JSON.stringify(n.results),logs:n.logs?JSON.stringify(n.logs):null,created_at_ts:r,updated_at_ts:r}).execute(),{id:n.id,tenant_id:t,trigger_id:n.trigger_id,status:n.status,results:n.results,logs:n.logs,created_at:new Date(r).toISOString(),updated_at:new Date(r).toISOString()}}}function ue(e){if(e)try{return JSON.parse(e)}catch{return}}function de(e){return async(t,n)=>{let r=await e.selectFrom(`action_executions`).where(`action_executions.tenant_id`,`=`,t).where(`action_executions.id`,`=`,n).selectAll().executeTakeFirst();return r?{id:r.id,tenant_id:r.tenant_id,trigger_id:r.trigger_id,status:r.status,results:ue(r.results)??[],logs:ue(r.logs),created_at:new Date(Number(r.created_at_ts)).toISOString(),updated_at:new Date(Number(r.updated_at_ts)).toISOString()}:null}}function fe(e){return{create:le(e),get:de(e)}}function pe(e){if(e)try{return JSON.parse(e)}catch{return}}function me(e){let{created_at_ts:t,updated_at_ts:n,secrets:r,dependencies:i,supported_triggers:a,deployed:o,runtime:s,...c}=e;return{...c,runtime:s??void 0,deployed:!!o,secrets:pe(r),dependencies:pe(i),supported_triggers:pe(a),created_at:new Date(Number(t)).toISOString(),updated_at:new Date(Number(n)).toISOString()}}function he(e){return{async create(t,n,r){let i=r?.importMetadata,a=Date.now(),o=i?.created_at?new Date(i.created_at).getTime():a,s=i?.updated_at?new Date(i.updated_at).getTime():i?o:a,c=i?.id??d(),l=n.deployed!==!1,u=await e.transaction().execute(async e=>{let r=((await e.selectFrom(`action_versions`).where(`tenant_id`,`=`,t).where(`action_id`,`=`,n.action_id).select(`number`).orderBy(`number`,`desc`).limit(1).executeTakeFirst())?.number??0)+1;return l&&await e.updateTable(`action_versions`).set(i?{deployed:0}:{deployed:0,updated_at_ts:a}).where(`tenant_id`,`=`,t).where(`action_id`,`=`,n.action_id).execute(),await e.insertInto(`action_versions`).values({id:c,tenant_id:t,action_id:n.action_id,number:r,code:n.code,runtime:n.runtime||null,secrets:n.secrets?JSON.stringify(n.secrets):null,dependencies:n.dependencies?JSON.stringify(n.dependencies):null,supported_triggers:n.supported_triggers?JSON.stringify(n.supported_triggers):null,deployed:+!!l,created_at_ts:o,updated_at_ts:s}).execute(),r});return{id:c,tenant_id:t,action_id:n.action_id,number:u,code:n.code,runtime:n.runtime,secrets:n.secrets,dependencies:n.dependencies,supported_triggers:n.supported_triggers,deployed:l,created_at:new Date(o).toISOString(),updated_at:new Date(s).toISOString()}},async get(t,n,r){let i=await e.selectFrom(`action_versions`).where(`tenant_id`,`=`,t).where(`action_id`,`=`,n).where(`id`,`=`,r).selectAll().executeTakeFirst();return i?me(i):null},async list(t,n,r={}){let{page:i=0,per_page:a=50,include_totals:o=!1}=r,s=e.selectFrom(`action_versions`).where(`tenant_id`,`=`,t).where(`action_id`,`=`,n),c=(await s.orderBy(`number`,`desc`).offset(i*a).limit(a).selectAll().execute()).map(me);if(!o)return{versions:c,start:0,limit:0,length:0};let{count:l}=await s.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{versions:c,start:i*a,limit:a,length:T(l)}},async removeForAction(t,n){let r=await e.deleteFrom(`action_versions`).where(`tenant_id`,`=`,t).where(`action_id`,`=`,n).executeTakeFirst();return Number(r.numDeletedRows??0)}}}var E=class extends Error{res;status;constructor(e=500,t){super(t?.message,{cause:t?.cause}),this.res=t?.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})}};function ge(e){return async(t,r,i)=>{let a=i?.importMetadata,{identities:o,phone_verified:s,password:c,last_login:l,last_ip:u,login_count:d,...f}=r,p=new Date().toISOString(),m={...f,created_at:a?.created_at??f.created_at??p,updated_at:a?.updated_at??f.updated_at??p,user_id:a?.id??f.user_id,tenant_id:t,email_verified:+!!r.email_verified,phone_verified:s===void 0?null:+!!s,is_social:+!!r.is_social,app_metadata:JSON.stringify(r.app_metadata),user_metadata:JSON.stringify(r.user_metadata),address:r.address?JSON.stringify(r.address):null},h=async e=>{if(await e.insertInto(`users`).values(m).execute(),m.user_id&&(l!==void 0||u!==void 0||d!==void 0)&&await e.insertInto(`user_activity`).values({tenant_id:t,user_id:m.user_id,last_login:l??null,last_ip:u??null,login_count:d??0}).execute(),c&&m.user_id){let r={id:(0,n.nanoid)(),user_id:m.user_id,password:c.hash,algorithm:c.algorithm,is_current:1,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),tenant_id:t};await e.insertInto(`passwords`).values(r).execute()}};try{e.isTransaction?await h(e):await e.transaction().execute(h)}catch(e){throw e.code===`SQLITE_CONSTRAINT_UNIQUE`||e.code===`ER_DUP_ENTRY`||e.message.includes(`AlreadyExists`)?new E(409,{message:`User already exists`}):new E(500,{message:`${e.code}, ${e.message}`})}return{...m,last_login:l,last_ip:u,login_count:d??0,email:m.email||``,email_verified:m.email_verified===1,phone_verified:m.phone_verified===null?void 0:m.phone_verified===1,is_social:m.is_social===1,app_metadata:r.app_metadata,user_metadata:r.user_metadata,address:r.address}}}function D(e){if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return e.map(e=>typeof e==`object`&&e?D(e):e);let t={...e};for(let e in t){let n=t[e];n===null?delete t[e]:typeof n==`object`&&n&&(Array.isArray(n)?t[e]=n.map(e=>typeof e==`object`&&e?D(e):e):t[e]=D(n))}return t}var _e=[`email`,`email_verified`,`phone_number`,`phone_verified`,`username`];function O(e,t=!1){let n={connection:e.connection,provider:e.provider,user_id:(0,i.parseUserId)(e.user_id).id,isSocial:!!e.is_social};for(let t of _e)e[t]!==void 0&&e[t]!==null&&(n[t]=t.endsWith(`_verified`)?!!e[t]:e[t]);if(!t){let t={};try{t=JSON.parse(e.profileData||`{}`)}catch(e){console.error(`Error parsing profileData`,e)}n.profileData={email:e.email,email_verified:!!e.email_verified,...t}}return n}function ve(e){return async(t,n)=>{let[r,i]=await Promise.all([e.selectFrom(`users`).leftJoin(`user_activity`,e=>e.onRef(`user_activity.tenant_id`,`=`,`users.tenant_id`).onRef(`user_activity.user_id`,`=`,`users.user_id`)).where(`users.tenant_id`,`=`,t).where(`users.user_id`,`=`,n).selectAll(`users`).select([`user_activity.last_login`,`user_activity.last_ip`,`user_activity.login_count`]).executeTakeFirst(),e.selectFrom(`users`).where(`users.tenant_id`,`=`,t).where(`users.linked_to`,`=`,n).selectAll().orderBy(`created_at`,`asc`).execute()]);if(!r)return null;let{tenant_id:a,...o}=r;return D({...o,email:r.email||``,email_verified:r.email_verified===1,phone_verified:r.phone_verified===null?void 0:r.phone_verified===1,is_social:r.is_social===1,last_login:r.last_login??void 0,last_ip:r.last_ip??void 0,login_count:r.login_count??0,app_metadata:JSON.parse(r.app_metadata),user_metadata:JSON.parse(r.user_metadata),address:r.address?JSON.parse(r.address):void 0,identities:[O(r,!0),...i.map(e=>O(e))]})}}var ye=[`user_id`,`email`,`email_verified`,`username`,`phone_number`,`phone_verified`,`name`,`given_name`,`family_name`,`nickname`,`picture`,`locale`,`linked_to`,`provider`,`connection`,`is_social`,`last_ip`,`last_login`,`login_count`,`created_at`,`updated_at`],be=new Set([`last_login`,`last_ip`,`login_count`]),xe=Object.fromEntries(ye.map(e=>[e,e===`login_count`?{column:`user_activity.login_count`,defaultValue:0}:be.has(e)?`user_activity.${e}`:`users.${e}`])),Se=[`email`,`name`,`phone_number`,`user_id`];function Ce(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,sort:o,q:s}=n,c=e.selectFrom(`users`).leftJoin(`user_activity`,e=>e.onRef(`user_activity.tenant_id`,`=`,`users.tenant_id`).onRef(`user_activity.user_id`,`=`,`users.user_id`)).where(`users.tenant_id`,`=`,t);if(s){let t=C(s,ye);t&&(c=w(e,c,t,Se,[],xe))}if(o&&o.sort_by){let{ref:t}=e.dynamic,n=xe[o.sort_by]??o.sort_by;c=c.orderBy(typeof n==`string`?t(n):te(n),o.sort_order)}let l=await c.offset(r*i).limit(i).selectAll(`users`).select([`user_activity.last_login`,`user_activity.last_ip`,`user_activity.login_count`]).execute(),u=l.map(e=>e.user_id),d=u.length?await e.selectFrom(`users`).selectAll().where(`users.tenant_id`,`=`,t).where(`users.linked_to`,`in`,u).orderBy(`created_at`,`asc`).execute():[],f=l.map(e=>{let t=d.filter(t=>t.linked_to===e.user_id);return D({...e,email_verified:e.email_verified===1,phone_verified:e.phone_verified===null?void 0:e.phone_verified===1,is_social:e.is_social===1,login_count:e.login_count??0,app_metadata:JSON.parse(e.app_metadata),user_metadata:JSON.parse(e.user_metadata),address:e.address?JSON.parse(e.address):void 0,identities:[O(e,!0),...t.map(e=>O(e))]})});if(!a)return{users:f,start:0,limit:0,length:0};let{count:p}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{users:f,start:r*i,limit:i,length:T(p)}}}function we(e){return async(t,n)=>(await e.deleteFrom(`authentication_methods`).where(`authentication_methods.tenant_id`,`=`,t).where(`authentication_methods.user_id`,`in`,e=>e.selectFrom(`users`).select(`users.user_id`).where(`users.tenant_id`,`=`,t).where(e=>e.or([e(`users.user_id`,`=`,n),e(`users.linked_to`,`=`,n)]))).execute(),await e.deleteFrom(`users`).where(`users.tenant_id`,`=`,t).where(`users.linked_to`,`=`,n).execute(),(await e.deleteFrom(`users`).where(`users.tenant_id`,`=`,t).where(`users.user_id`,`=`,n).execute()).length===1)}function k(e,t=``,n={}){for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)){let i=t?`${t}_${r}`:r,a=e[r];typeof a==`object`&&a&&!Array.isArray(a)?k(a,i,n):typeof a==`boolean`?n[i]=+!!a:n[i]=a}return n}function Te(e,t){let n={};for(let[r,i]of Object.entries(e)){let e=t.find(e=>r.startsWith(`${e}_`));if(!e)n[r]=i;else{let t=r.slice(e.length+1);n[e]={...n[e],[t]:i}}}return n}function Ee(e){return{user_id:e.user_id,last_login:e.last_login??void 0,last_ip:e.last_ip??void 0,login_count:e.login_count,failed_logins:e.failed_logins?JSON.parse(e.failed_logins):void 0,last_password_reset:e.last_password_reset??void 0}}function De(e){let t={};return e.last_login!==void 0&&(t.last_login=e.last_login),e.last_ip!==void 0&&(t.last_ip=e.last_ip),e.login_count!==void 0&&(t.login_count=e.login_count),e.failed_logins!==void 0&&(t.failed_logins=JSON.stringify(e.failed_logins)),e.last_password_reset!==void 0&&(t.last_password_reset=e.last_password_reset),t}function Oe(e){return{async get(t,n){let r=await e.selectFrom(`user_activity`).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n).selectAll().executeTakeFirst();return r?Ee(r):null},async upsert(t,n,r){let i=De(r);if(await e.selectFrom(`user_activity`).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n).select(`user_id`).executeTakeFirst()){if(Object.keys(i).length===0)return;await e.updateTable(`user_activity`).set(i).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n).execute();return}try{await e.insertInto(`user_activity`).values({tenant_id:t,user_id:n,login_count:0,...i}).execute()}catch{if(Object.keys(i).length===0)return;await e.updateTable(`user_activity`).set(i).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n).execute()}}}}function ke(e){return async(t,n,r)=>{let{last_login:i,last_ip:a,login_count:o,...s}=r,c=k({...s,updated_at:new Date().toISOString(),app_metadata:r.app_metadata?JSON.stringify(r.app_metadata):void 0,user_metadata:r.user_metadata?JSON.stringify(r.user_metadata):void 0,address:r.address?JSON.stringify(r.address):void 0,phone_verified:r.phone_verified===void 0?void 0:+!!r.phone_verified}),l=async e=>{let[r]=await e.updateTable(`users`).set(c).where(`users.tenant_id`,`=`,t).where(`users.user_id`,`=`,n).execute();return!r||r.numUpdatedRows===0n?!1:((i!==void 0||a!==void 0||o!==void 0)&&await Oe(e).upsert(t,n,{last_login:i,last_ip:a,login_count:o}),!0)};return e.isTransaction?l(e):e.transaction().execute(l)}}function Ae(e){return async(t,n,r,i)=>(await e.updateTable(`users`).set({linked_to:null}).where(`users.tenant_id`,`=`,t).where(`users.user_id`,`=`,`${r}|${i}`).where(`users.linked_to`,`=`,`${n}`).execute()).length===1}function je(e){let t=ge(e);return{create:t,rawCreate:t,remove:we(e),get:ve(e),list:Ce(e),update:ke(e),unlink:Ae(e)}}function Me(e){return async(t,r,a)=>{let o=a?.importMetadata,s=new Date().toISOString(),c=i.flowSchema.parse({id:o?.id??`af_${(0,n.nanoid)()}`,...r,actions:r.actions||[],created_at:o?.created_at??s,updated_at:o?.updated_at??o?.created_at??s});return await e.insertInto(`flows`).values({...c,tenant_id:t,actions:JSON.stringify(c.actions)}).execute(),c}}function A(e,t){if(!e)return t;try{return JSON.parse(e)}catch{return t}}function Ne(e){if(e)try{let t=JSON.parse(e);return t&&typeof t==`object`&&!Array.isArray(t)?t:void 0}catch{return}}function Pe(e,t,n={...e}){for(let r in t)r in e&&(n[r]=A(e[r],t[r]));return n}function Fe(e){return async(t,n)=>{let r=await e.selectFrom(`flows`).selectAll().where(`flows.id`,`=`,n).where(`tenant_id`,`=`,t).executeTakeFirst();if(!r)return null;let a={...r,actions:A(r.actions,[])};return i.flowSchema.parse(D(a))}}function Ie(e){return async(t,n={})=>{let{page:r=0,per_page:a=50,include_totals:o=!1,q:s}=n,c=e.selectFrom(`flows`).where(`tenant_id`,`=`,t);s&&(c=w(e,c,s,[]));let l=(await c.offset(r*a).limit(a).selectAll().execute()).map(e=>{let t={...e,actions:A(e.actions,[])};return i.flowSchema.parse(D(t))});if(!o)return{flows:l,start:0,limit:0,length:0};let{count:u}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{flows:l,start:r*a,limit:a,length:T(u)}}}function Le(e){return async(t,n,r)=>{let a={...r,updated_at:new Date().toISOString()};r.actions!==void 0&&(a.actions=JSON.stringify(r.actions));let{numUpdatedRows:o}=await e.updateTable(`flows`).set(a).where(`id`,`=`,n).where(`tenant_id`,`=`,t).executeTakeFirst();if(o===0n)return null;let s=await e.selectFrom(`flows`).selectAll().where(`id`,`=`,n).where(`tenant_id`,`=`,t).executeTakeFirst();return s?i.flowSchema.parse({...s,actions:s.actions?JSON.parse(s.actions):[]}):null}}function Re(e){return async(t,n)=>((await e.deleteFrom(`flows`).where(`id`,`=`,n).where(`tenant_id`,`=`,t).execute())[0]?.numDeletedRows??0n)>0n}function ze(e){return{create:Me(e),get:Fe(e),list:Ie(e),update:Le(e),remove:Re(e)}}function j(e,t,n={...e}){for(let r of t)e[r]!==void 0&&(n[r]=JSON.stringify(e[r]));return n}function Be(e,t,n=e){for(let r of t)e[r]!==void 0&&(n[r]=+!!e[r])}function Ve(e){let t={};for(let n in e)e[n]!==void 0&&e[n]!==null&&(t[n]=e[n]);return t}function He(e){let t={...e};return e.session_cookie&&typeof e.session_cookie==`string`&&(t.session_cookie=JSON.parse(e.session_cookie)),e.enabled_locales&&typeof e.enabled_locales==`string`&&(t.enabled_locales=JSON.parse(e.enabled_locales)),e.error_page&&typeof e.error_page==`string`&&(t.error_page=JSON.parse(e.error_page)),e.flags&&typeof e.flags==`string`&&(t.flags=JSON.parse(e.flags)),e.sandbox_versions_available&&typeof e.sandbox_versions_available==`string`&&(t.sandbox_versions_available=JSON.parse(e.sandbox_versions_available)),e.change_password&&typeof e.change_password==`string`&&(t.change_password=JSON.parse(e.change_password)),e.guardian_mfa_page&&typeof e.guardian_mfa_page==`string`&&(t.guardian_mfa_page=JSON.parse(e.guardian_mfa_page)),e.sessions&&typeof e.sessions==`string`&&(t.sessions=JSON.parse(e.sessions)),e.oidc_logout&&typeof e.oidc_logout==`string`&&(t.oidc_logout=JSON.parse(e.oidc_logout)),e.device_flow&&typeof e.device_flow==`string`&&(t.device_flow=JSON.parse(e.device_flow)),e.default_token_quota&&typeof e.default_token_quota==`string`&&(t.default_token_quota=JSON.parse(e.default_token_quota)),e.allowed_logout_urls&&typeof e.allowed_logout_urls==`string`&&(t.allowed_logout_urls=JSON.parse(e.allowed_logout_urls)),e.acr_values_supported&&typeof e.acr_values_supported==`string`&&(t.acr_values_supported=JSON.parse(e.acr_values_supported)),e.mtls&&typeof e.mtls==`string`&&(t.mtls=JSON.parse(e.mtls)),e.mfa&&typeof e.mfa==`string`&&(t.mfa=JSON.parse(e.mfa)),e.attack_protection&&typeof e.attack_protection==`string`&&(t.attack_protection=JSON.parse(e.attack_protection)),e.allow_organization_name_in_authentication_api!==void 0&&(t.allow_organization_name_in_authentication_api=e.allow_organization_name_in_authentication_api===1),e.customize_mfa_in_postlogin_action!==void 0&&(t.customize_mfa_in_postlogin_action=e.customize_mfa_in_postlogin_action===1),e.pushed_authorization_requests_supported!==void 0&&(t.pushed_authorization_requests_supported=e.pushed_authorization_requests_supported===1),e.authorization_response_iss_parameter_supported!==void 0&&(t.authorization_response_iss_parameter_supported=e.authorization_response_iss_parameter_supported===1),D(t)}function Ue(e){let t={...e};return j(e,[`session_cookie`,`enabled_locales`,`error_page`,`flags`,`sandbox_versions_available`,`change_password`,`guardian_mfa_page`,`sessions`,`oidc_logout`,`device_flow`,`default_token_quota`,`allowed_logout_urls`,`acr_values_supported`,`mtls`,`mfa`,`attack_protection`],t),e.allow_organization_name_in_authentication_api!==void 0&&(t.allow_organization_name_in_authentication_api=+!!e.allow_organization_name_in_authentication_api),e.customize_mfa_in_postlogin_action!==void 0&&(t.customize_mfa_in_postlogin_action=+!!e.customize_mfa_in_postlogin_action),e.pushed_authorization_requests_supported!==void 0&&(t.pushed_authorization_requests_supported=+!!e.pushed_authorization_requests_supported),e.authorization_response_iss_parameter_supported!==void 0&&(t.authorization_response_iss_parameter_supported=+!!e.authorization_response_iss_parameter_supported),Ve(t)}function We(e){return async(t,r)=>{let i=r?.importMetadata,a=new Date().toISOString(),o={...t,id:i?.id??t.id??(0,n.nanoid)(),created_at:i?.created_at??a,updated_at:i?.updated_at??a},s=Ue(o);try{await e.insertInto(`tenants`).values(s).execute()}catch(e){let t=e?.message??``;throw t.includes(`UNIQUE constraint failed`)||t.includes(`Duplicate entry`)||t.includes(`duplicate key`)||t.includes(`AlreadyExists`)||e?.code===`SQLITE_CONSTRAINT`||e?.code===`SQLITE_CONSTRAINT_UNIQUE`||e?.code===`SQLITE_CONSTRAINT_PRIMARYKEY`||e?.code===`ER_DUP_ENTRY`||e?.code===`23505`?new E(409,{message:`Tenant with ID '${o.id}' already exists`}):e}return o}}function Ge(e){return async t=>{let n=await e.selectFrom(`tenants`).where(`tenants.id`,`=`,t).selectAll().executeTakeFirst();return n?He(n):null}}function Ke(e){return async t=>{let n=e.selectFrom(`tenants`),{page:r=0,per_page:i=50,include_totals:a=!1,sort:o,q:s}=t||{};if(o&&o.sort_by){let{ref:t}=e.dynamic;n=n.orderBy(t(o.sort_by),o.sort_order)}s&&(n=w(e,n,s,[`friendly_name`]));let c=(await n.offset(r*i).limit(i).selectAll().execute()).map(He);if(!a)return{tenants:c};let{count:l}=await n.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow(),u=T(l);return{tenants:c,start:r*i,limit:i,length:u}}}function qe(e){return async(t,n)=>{let r={...Ue(n),id:t,updated_at:new Date().toISOString()};await e.updateTable(`tenants`).set(r).where(`id`,`=`,t).execute()}}function Je(e){return async t=>(await e.deleteFrom(`tenants`).where(`tenants.id`,`=`,t).execute()).length===1}function Ye(e){return{create:We(e),get:Ge(e),list:Ke(e),update:qe(e),remove:Je(e)}}function Xe(e){return e?JSON.stringify(e):void 0}var Ze=256;function Qe(e){return async(t,r)=>{let i=r.user_agent?.slice(0,Ze),a=r.log_id||(0,n.nanoid)(),{location_info:o,...s}=r;return await e.insertInto(`logs`).values({...s,log_id:a,tenant_id:t,user_agent:i,description:r.description?.substring(0,256),isMobile:+!!r.isMobile,scope:r.scope,auth0_client:Xe(r.auth0_client),details:Xe(r.details)?.substring(0,8192),country_code:o?.country_code,city_name:o?.city_name,latitude:o?.latitude,longitude:o?.longitude,time_zone:o?.time_zone,continent_code:o?.continent_code}).execute(),{...r,log_id:a,user_agent:i}}}function $e(e){if(!e)return``;try{return JSON.parse(e)}catch{return e}}function et(e){return{...e,client_id:e.client_id,client_name:e.client_name||``,auth0_client:$e(e.auth0_client),details:$e(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}}var tt=[`user_id`,`ip`,`type`,`date`,`client_id`,`client_name`,`user_agent`,`description`,`user_name`,`connection`,`connection_id`,`audience`,`scope`,`strategy`,`strategy_type`,`hostname`,`log_id`,`session_connection`,`country_code`,`city_name`,`latitude`,`longitude`,`time_zone`,`continent_code`];function nt(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,sort:o,q:s,from_date:c,to_date:l}=n,u=e.selectFrom(`logs`).where(`logs.tenant_id`,`=`,t);if(s){let t=C(s,tt);t&&(u=w(e,u,t,[`user_id`,`ip`,`description`],[`description`]))}typeof c==`number`&&Number.isFinite(c)&&(u=u.where(`logs.date`,`>=`,new Date(Math.floor(c)*1e3).toISOString())),typeof l==`number`&&Number.isFinite(l)&&(u=u.where(`logs.date`,`<=`,new Date(Math.floor(l)*1e3+999).toISOString()));let d=u;if(o&&o.sort_by){let{ref:t}=e.dynamic;d=d.orderBy(t(o.sort_by),o.sort_order)}d=d.offset(r*i).limit(i);let f=(await d.selectAll().execute()).map(et);if(!a)return{logs:f,start:0,limit:0,length:0};let{count:p}=await u.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{logs:f,start:r*i,limit:i,length:T(p)}}}function rt(e){return async(t,n)=>{let r=await e.selectFrom(`logs`).where(`logs.tenant_id`,`=`,t).where(`logs.log_id`,`=`,n).selectAll().executeTakeFirst();return r?et(r):null}}function it(e){return{create:Qe(e),list:nt(e),get:rt(e)}}function at(e){return async(t,n)=>{let r=await e.selectFrom(`sessions`).where(`sessions.tenant_id`,`=`,t).where(`sessions.id`,`=`,n).selectAll().executeTakeFirst();if(!r)return null;let{tenant_id:i,device:a,clients:o,created_at_ts:s,updated_at_ts:c,expires_at_ts:l,idle_expires_at_ts:u,authenticated_at_ts:d,last_interaction_at_ts:f,used_at_ts:p,revoked_at_ts:m,...h}=r,g=x({created_at_ts:s,updated_at_ts:c,expires_at_ts:l,idle_expires_at_ts:u,authenticated_at_ts:d,last_interaction_at_ts:f,used_at_ts:p,revoked_at_ts:m},[`created_at_ts`,`updated_at_ts`,`authenticated_at_ts`,`last_interaction_at_ts`],[`expires_at_ts`,`idle_expires_at_ts`,`used_at_ts`,`revoked_at_ts`]);return{...h,...g,device:JSON.parse(a),clients:JSON.parse(o)}}}function ot(e){return async(t,n)=>{let r=Date.now(),i=b(),a={...n,created_at:i,updated_at:i,authenticated_at:i,last_interaction_at:i},{expires_at:o,idle_expires_at:s,used_at:c,revoked_at:l,device:u,clients:d,...f}=n,p=y(o),m=y(s),h=Math.max(p??0,m??0);return await e.transaction().execute(async e=>{await e.insertInto(`sessions`).values({...f,tenant_id:t,created_at_ts:r,updated_at_ts:r,authenticated_at_ts:r,last_interaction_at_ts:r,expires_at_ts:p,idle_expires_at_ts:m,used_at_ts:y(c),revoked_at_ts:y(l),device:JSON.stringify(u),clients:JSON.stringify(d)}).execute(),h>0&&n.login_session_id&&await e.updateTable(`login_sessions`).set({expires_at_ts:h,updated_at_ts:r}).where(`tenant_id`,`=`,t).where(`id`,`=`,n.login_session_id).where(`expires_at_ts`,`<`,h).execute()}),a}}function st(e){return async(t,n)=>!!(await e.deleteFrom(`sessions`).where(`tenant_id`,`=`,t).where(`sessions.id`,`=`,n).execute()).length}function ct(e){return async(t,n,r)=>{let i=Date.now(),a={updated_at_ts:i,device:r.device?JSON.stringify(r.device):void 0,clients:r.clients?JSON.stringify(r.clients):void 0},o,s;r.expires_at!==void 0&&(o=y(r.expires_at),a.expires_at_ts=o),r.idle_expires_at!==void 0&&(s=y(r.idle_expires_at),a.idle_expires_at_ts=s),r.authenticated_at!==void 0&&(a.authenticated_at_ts=y(r.authenticated_at)),r.last_interaction_at!==void 0&&(a.last_interaction_at_ts=y(r.last_interaction_at)),r.used_at!==void 0&&(a.used_at_ts=y(r.used_at)),r.revoked_at!==void 0&&(a.revoked_at_ts=y(r.revoked_at)),r.user_id!==void 0&&(a.user_id=r.user_id),r.login_session_id!==void 0&&(a.login_session_id=r.login_session_id);let c=await e.updateTable(`sessions`).set(a).where(`tenant_id`,`=`,t).where(`sessions.id`,`=`,n).execute(),l=Math.max(o??0,s??0);if(l>0){let a=r.login_session_id??e.selectFrom(`sessions`).select(`login_session_id`).where(`tenant_id`,`=`,t).where(`id`,`=`,n);await e.updateTable(`login_sessions`).set({expires_at_ts:l,updated_at_ts:i}).where(`tenant_id`,`=`,t).where(`id`,`=`,a).where(`expires_at_ts`,`<`,l).execute().catch(()=>{})}return!!c.length}}function lt(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,sort:o,q:s}=n,c=e.selectFrom(`sessions`).where(`sessions.tenant_id`,`=`,t);s&&(c=w(e,c,s,[`user_id`,`session_id`]));let l=c;if(o&&o.sort_by){let{ref:t}=e.dynamic;l=l.orderBy(t(o.sort_by),o.sort_order)}l=l.offset(r*i).limit(i);let u=(await l.selectAll().execute()).map(e=>{let{tenant_id:t,device:n,clients:r,created_at_ts:i,updated_at_ts:a,expires_at_ts:o,idle_expires_at_ts:s,authenticated_at_ts:c,last_interaction_at_ts:l,used_at_ts:u,revoked_at_ts:d,...f}=e,p=x({created_at_ts:i,updated_at_ts:a,expires_at_ts:o,idle_expires_at_ts:s,authenticated_at_ts:c,last_interaction_at_ts:l,used_at_ts:u,revoked_at_ts:d},[`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,...p,device:JSON.parse(n),clients:JSON.parse(r)}});if(!a)return{sessions:u,start:0,limit:0,length:0};let{count:d}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow(),f=T(d);return{sessions:u,start:r*i,limit:i,length:f}}}function ut(e){return{create:ot(e),get:at(e),list:lt(e),remove:st(e),update:ct(e)}}function dt(e){return async(t,n)=>{let r=await e.selectFrom(`passwords`).where(`passwords.tenant_id`,`=`,t).where(`passwords.user_id`,`=`,n).where(`passwords.is_current`,`=`,1).selectAll().executeTakeFirst();if(!r)return null;let{tenant_id:i,...a}=r;return{...a,is_current:!!a.is_current}}}function ft(e){return async(t,r,i)=>{let a=i?.importMetadata,o=a?.id||r.id||(0,n.nanoid)(),s=r.is_current??!0,c=new Date().toISOString(),l={...r,id:o,is_current:s,created_at:a?.created_at??c,updated_at:a?.updated_at??c};return s&&await e.updateTable(`passwords`).set({is_current:0}).where(`user_id`,`=`,r.user_id).where(`tenant_id`,`=`,t).where(`is_current`,`=`,1).execute(),await e.insertInto(`passwords`).values({...l,is_current:+!!l.is_current,tenant_id:t}).execute(),l}}function pt(e){return async(t,n)=>{let r=e.updateTable(`passwords`).set({password:n.password,algorithm:n.algorithm,is_current:+!!n.is_current,updated_at:new Date().toISOString()}).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n.user_id);return r=n.id?r.where(`id`,`=`,n.id):r.where(`is_current`,`=`,1),(await r.execute()).length===1}}function mt(e){return async(t,n,r)=>{let i=e.selectFrom(`passwords`).where(`passwords.tenant_id`,`=`,t).where(`passwords.user_id`,`=`,n).orderBy(`created_at`,`desc`);return r&&(i=i.limit(r)),(await i.selectAll().execute()).map(({tenant_id:e,...t})=>({...t,is_current:!!t.is_current}))}}function ht(e){return{create:ft(e),update:pt(e),get:dt(e),list:mt(e)}}function gt(e){return async(t,n={})=>{let{page:r=0,per_page:a=50,include_totals:o=!1,q:s}=n,c=e.selectFrom(`codes`).where(`codes.tenant_id`,`=`,t);s&&(c=w(e,c,s,[`code`,`login_id`]));let l=(await c.offset(r*a).limit(a).selectAll().execute()).map(e=>{let{tenant_id:t,...n}=e;return i.codeSchema.parse(D(n))});if(!o)return{codes:l,start:0,limit:0,length:0};let{count:u}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{codes:l,start:r*a,limit:a,length:T(u)}}}function _t(e){return async(t,n)=>{let r={...n,created_at:new Date().toISOString()};return await e.insertInto(`codes`).values({...r,tenant_id:t}).execute(),r}}function vt(e){return async(t,n)=>(await e.deleteFrom(`codes`).where(`codes.tenant_id`,`=`,t).where(`codes.code_id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function yt(e){return async(t,n,r)=>{let i=e.selectFrom(`codes`).where(`codes.code_id`,`=`,n).where(`codes.code_type`,`=`,r);t.length&&(i=i.where(`codes.tenant_id`,`=`,t));let a=await i.selectAll().executeTakeFirst();return a?D(a):null}}function bt(e){return async(t,n)=>(await e.updateTable(`codes`).set({used_at:new Date().toISOString()}).where(`codes.tenant_id`,`=`,t).where(`codes.code_id`,`=`,n).executeTakeFirst()).numUpdatedRows>0}function xt(e){return async(t,n)=>(await e.updateTable(`codes`).set({used_at:new Date().toISOString()}).where(`codes.tenant_id`,`=`,t).where(`codes.code_id`,`=`,n).where(`codes.used_at`,`is`,null).executeTakeFirst()).numUpdatedRows>0}function St(e){return{create:_t(e),list:gt(e),remove:vt(e),used:bt(e),consume:xt(e),get:yt(e)}}function Ct(e){return async(t,n,r)=>{let i=r?.importMetadata,{is_system:a,...o}=n;delete o.enabled_clients;let s=new Date().toISOString(),c={...o,id:i?.id??o.id??l(),is_system:a?!0:void 0,created_at:i?.created_at??s,updated_at:i?.updated_at??s};return await e.insertInto(`connections`).values({...c,is_system:+!!a,options:JSON.stringify(c.options||{}),tenant_id:t}).execute(),c}}function M(e){let{is_system:t,...n}=e;return D({...n,is_system:t?!0:void 0,options:typeof e.options==`string`?JSON.parse(e.options):{}})}function wt(e){return e.map(M)}function Tt(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,q:o}=n,s=e.selectFrom(`connections`).where(`connections.tenant_id`,`=`,t);o&&(s=w(e,s,o,[`user_id`,`ip`]));let c=wt(await s.offset(r*i).limit(i).selectAll().execute());if(!a)return{connections:c,start:0,limit:0,length:0};let{count:l}=await s.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{connections:c,start:r*i,limit:i,length:T(l)}}}function Et(e){return async(t,n)=>(await e.deleteFrom(`connections`).where(`connections.tenant_id`,`=`,t).where(`connections.id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function Dt(e){return async(t,n)=>{let r=await e.selectFrom(`connections`).where(`connections.tenant_id`,`=`,t).where(`connections.id`,`=`,n).selectAll().executeTakeFirst();return r?M(r):null}}function Ot(e){return async(t,n,r)=>{let{is_system:i,...a}=r;delete a.enabled_clients;let o={...a,is_system:i===void 0?void 0:+!!i,updated_at:new Date().toISOString()};return await e.updateTable(`connections`).set({...o,options:o.options?JSON.stringify(o.options):void 0}).where(`connections.id`,`=`,n).where(`connections.tenant_id`,`=`,t).execute(),!0}}function kt(e){return{create:Ct(e),get:Dt(e),list:Tt(e),remove:Et(e),update:Ot(e)}}function At(e){return async(t,r,i)=>{let a=i?.importMetadata,o=a?.id??r.client_id??(0,n.nanoid)(),s=new Date().toISOString(),c={...r,created_at:a?.created_at??s,updated_at:a?.updated_at??a?.created_at??s,client_id:o,global:r.global??!1,is_first_party:r.is_first_party??!0,oidc_conformant:r.oidc_conformant??!0,auth0_conformant:r.auth0_conformant??!0,sso:r.sso??!1,sso_disabled:r.sso_disabled??!1,cross_origin_authentication:r.cross_origin_authentication??!1,custom_login_page_on:r.custom_login_page_on??!1,require_pushed_authorization_requests:r.require_pushed_authorization_requests??!1,require_proof_of_possession:r.require_proof_of_possession??!1,hide_sign_up_disabled_error:r.hide_sign_up_disabled_error??!1},l={...c,tenant_id:t};return Be(c,[`global`,`is_first_party`,`oidc_conformant`,`auth0_conformant`,`sso`,`sso_disabled`,`cross_origin_authentication`,`custom_login_page_on`,`require_pushed_authorization_requests`,`require_proof_of_possession`,`hide_sign_up_disabled_error`],l),Object.assign(l,{callbacks:JSON.stringify(r.callbacks||[]),allowed_origins:JSON.stringify(r.allowed_origins||[]),web_origins:JSON.stringify(r.web_origins||[]),client_aliases:JSON.stringify(r.client_aliases||[]),allowed_clients:JSON.stringify(r.allowed_clients||[]),connections:JSON.stringify(r.connections||[]),allowed_logout_urls:JSON.stringify(r.allowed_logout_urls||[]),session_transfer:JSON.stringify(r.session_transfer||{}),oidc_logout:JSON.stringify(r.oidc_logout||{}),grant_types:JSON.stringify(r.grant_types||[]),jwt_configuration:JSON.stringify(r.jwt_configuration||{}),signing_keys:JSON.stringify(r.signing_keys||[]),encryption_key:JSON.stringify(r.encryption_key||{}),addons:JSON.stringify(r.addons||{}),client_metadata:JSON.stringify(r.client_metadata||{}),mobile:JSON.stringify(r.mobile||{}),native_social_login:JSON.stringify(r.native_social_login||{}),refresh_token:JSON.stringify(r.refresh_token||{}),default_organization:JSON.stringify(r.default_organization||{}),client_authentication_methods:JSON.stringify(r.client_authentication_methods||{}),signed_request_object:JSON.stringify(r.signed_request_object||{}),token_quota:JSON.stringify(r.token_quota||{}),owner_user_id:r.owner_user_id??null,registration_type:r.registration_type??null,registration_metadata:r.registration_metadata?JSON.stringify(r.registration_metadata):null}),await e.insertInto(`clients`).values(l).execute(),c}}function jt(e){return async(t,n)=>{let r=await e.selectFrom(`clients`).where(`clients.tenant_id`,`=`,t).where(`clients.client_id`,`=`,n).selectAll().executeTakeFirst();if(!r)return null;let{tenant_id:i,...a}=r;return D({...a,global:!!r.global,is_first_party:!!r.is_first_party,oidc_conformant:!!r.oidc_conformant,auth0_conformant:!!r.auth0_conformant,sso:!!r.sso,sso_disabled:!!r.sso_disabled,cross_origin_authentication:!!r.cross_origin_authentication,custom_login_page_on:!!r.custom_login_page_on,require_pushed_authorization_requests:!!r.require_pushed_authorization_requests,require_proof_of_possession:!!r.require_proof_of_possession,hide_sign_up_disabled_error:!!r.hide_sign_up_disabled_error,callbacks:JSON.parse(r.callbacks),allowed_origins:JSON.parse(r.allowed_origins),web_origins:JSON.parse(r.web_origins),client_aliases:JSON.parse(r.client_aliases),allowed_clients:JSON.parse(r.allowed_clients),connections:JSON.parse(r.connections||`[]`),allowed_logout_urls:JSON.parse(r.allowed_logout_urls),session_transfer:JSON.parse(r.session_transfer),oidc_logout:JSON.parse(r.oidc_logout),grant_types:JSON.parse(r.grant_types),jwt_configuration:JSON.parse(r.jwt_configuration),signing_keys:JSON.parse(r.signing_keys),encryption_key:JSON.parse(r.encryption_key),addons:JSON.parse(r.addons),client_metadata:JSON.parse(r.client_metadata),mobile:JSON.parse(r.mobile),native_social_login:JSON.parse(r.native_social_login),refresh_token:JSON.parse(r.refresh_token),default_organization:JSON.parse(r.default_organization),client_authentication_methods:JSON.parse(r.client_authentication_methods),signed_request_object:JSON.parse(r.signed_request_object),token_quota:JSON.parse(r.token_quota),registration_metadata:r.registration_metadata?JSON.parse(r.registration_metadata):void 0})}}function Mt(e){return async t=>{let n=await e.selectFrom(`clients`).where(`clients.client_id`,`=`,t).selectAll().executeTakeFirst();return n?D({...n,global:!!n.global,is_first_party:!!n.is_first_party,oidc_conformant:!!n.oidc_conformant,auth0_conformant:!!n.auth0_conformant,sso:!!n.sso,sso_disabled:!!n.sso_disabled,cross_origin_authentication:!!n.cross_origin_authentication,custom_login_page_on:!!n.custom_login_page_on,require_pushed_authorization_requests:!!n.require_pushed_authorization_requests,require_proof_of_possession:!!n.require_proof_of_possession,hide_sign_up_disabled_error:!!n.hide_sign_up_disabled_error,callbacks:JSON.parse(n.callbacks),allowed_origins:JSON.parse(n.allowed_origins),web_origins:JSON.parse(n.web_origins),client_aliases:JSON.parse(n.client_aliases),allowed_clients:JSON.parse(n.allowed_clients),connections:JSON.parse(n.connections||`[]`),allowed_logout_urls:JSON.parse(n.allowed_logout_urls),session_transfer:JSON.parse(n.session_transfer),oidc_logout:JSON.parse(n.oidc_logout),grant_types:JSON.parse(n.grant_types),jwt_configuration:JSON.parse(n.jwt_configuration),signing_keys:JSON.parse(n.signing_keys),encryption_key:JSON.parse(n.encryption_key),addons:JSON.parse(n.addons),client_metadata:JSON.parse(n.client_metadata),mobile:JSON.parse(n.mobile),native_social_login:JSON.parse(n.native_social_login),refresh_token:JSON.parse(n.refresh_token),default_organization:JSON.parse(n.default_organization),client_authentication_methods:JSON.parse(n.client_authentication_methods),signed_request_object:JSON.parse(n.signed_request_object),token_quota:JSON.parse(n.token_quota),registration_metadata:n.registration_metadata?JSON.parse(n.registration_metadata):void 0}):null}}function Nt(e){return async(t,n)=>{let i=e.selectFrom(`clients`).where(`clients.tenant_id`,`=`,t),a=new Set([`owner_user_id`,`registration_type`]);if(n?.q){let e=n.q.trim().match(/^([a-zA-Z_][a-zA-Z0-9_]*):"?([^"]*)"?$/);if(e&&a.has(e[1])&&e[2]){let t=e[1];i=i.where(t,`=`,e[2])}else i=i.where(e=>e.or([e(`name`,`like`,`%${n.q}%`),e(`client_id`,`like`,`%${n.q}%`)]))}if(n?.sort){let e=n.sort.sort_order===`asc`?`asc`:`desc`,t=n.sort.sort_by;i=[`name`,`client_id`,`created_at`,`updated_at`].includes(t)?i.orderBy(t,e):i.orderBy(`created_at`,`desc`)}else i=i.orderBy(`created_at`,`desc`);if(n?.from!==void 0){let e=parseInt(n.from,10);isNaN(e)||(i=i.offset(e))}else if(n?.page!==void 0){let e=n?.per_page||n?.take||10,t=n.page*e;i=i.offset(t)}let o=n?.take||n?.per_page||10;i=i.limit(o);let s=await i.selectAll().execute(),c=s.length;if(n?.include_totals){let i=e.selectFrom(`clients`).select(r.sql`count(*)`.as(`count`)).where(`clients.tenant_id`,`=`,t);if(n?.q){let e=n.q.trim().match(/^([a-zA-Z_][a-zA-Z0-9_]*):"?([^"]*)"?$/);if(e&&a.has(e[1])&&e[2]){let t=e[1];i=i.where(t,`=`,e[2])}else i=i.where(e=>e.or([e(`name`,`like`,`%${n.q}%`),e(`client_id`,`like`,`%${n.q}%`)]))}let o=await i.executeTakeFirst();c=Number(o?.count||0)}let l=s.map(e=>D({...e,global:!!e.global,is_first_party:!!e.is_first_party,oidc_conformant:!!e.oidc_conformant,auth0_conformant:!!e.auth0_conformant,sso:!!e.sso,sso_disabled:!!e.sso_disabled,cross_origin_authentication:!!e.cross_origin_authentication,custom_login_page_on:!!e.custom_login_page_on,require_pushed_authorization_requests:!!e.require_pushed_authorization_requests,require_proof_of_possession:!!e.require_proof_of_possession,hide_sign_up_disabled_error:!!e.hide_sign_up_disabled_error,callbacks:JSON.parse(e.callbacks),allowed_origins:JSON.parse(e.allowed_origins),web_origins:JSON.parse(e.web_origins),client_aliases:JSON.parse(e.client_aliases),allowed_clients:JSON.parse(e.allowed_clients),connections:JSON.parse(e.connections||`[]`),allowed_logout_urls:JSON.parse(e.allowed_logout_urls),session_transfer:JSON.parse(e.session_transfer),oidc_logout:JSON.parse(e.oidc_logout),grant_types:JSON.parse(e.grant_types),jwt_configuration:JSON.parse(e.jwt_configuration),signing_keys:JSON.parse(e.signing_keys),encryption_key:JSON.parse(e.encryption_key),addons:JSON.parse(e.addons),client_metadata:JSON.parse(e.client_metadata),mobile:JSON.parse(e.mobile),native_social_login:JSON.parse(e.native_social_login),refresh_token:JSON.parse(e.refresh_token),default_organization:JSON.parse(e.default_organization),client_authentication_methods:JSON.parse(e.client_authentication_methods),signed_request_object:JSON.parse(e.signed_request_object),token_quota:JSON.parse(e.token_quota),registration_metadata:e.registration_metadata?JSON.parse(e.registration_metadata):void 0})),u=n?.take||n?.per_page||10,d=n?.from?parseInt(n.from,10):n?.page?n.page*u:0;return{clients:l,totals:{start:isNaN(d)?0:d,limit:u,length:l.length,total:c}}}}function Pt(e){return async(t,n)=>(await e.deleteFrom(`clients`).where(`clients.tenant_id`,`=`,t).where(`clients.client_id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function Ft(e){return async(t,n,r)=>{let i={...r,updated_at:new Date().toISOString()};return Be(r,[`global`,`is_first_party`,`oidc_conformant`,`auth0_conformant`,`sso`,`sso_disabled`,`cross_origin_authentication`,`custom_login_page_on`,`require_pushed_authorization_requests`,`require_proof_of_possession`,`hide_sign_up_disabled_error`],i),j(r,[`callbacks`,`allowed_origins`,`web_origins`,`client_aliases`,`allowed_clients`,`connections`,`allowed_logout_urls`,`session_transfer`,`oidc_logout`,`grant_types`,`jwt_configuration`,`signing_keys`,`encryption_key`,`addons`,`client_metadata`,`mobile`,`native_social_login`,`refresh_token`,`default_organization`,`client_authentication_methods`,`signed_request_object`,`token_quota`,`registration_metadata`],i),(await e.updateTable(`clients`).set(i).where(`clients.tenant_id`,`=`,t).where(`clients.client_id`,`=`,n).executeTakeFirst()).numUpdatedRows>0}}function It(e){return{create:At(e),get:jt(e),getByClientId:Mt(e),list:Nt(e),remove:Pt(e),update:Ft(e)}}function Lt(e){return async(t,n)=>{let r=await e.selectFrom(`clients`).where(`clients.tenant_id`,`=`,t).where(`clients.client_id`,`=`,n).select(`connections`).executeTakeFirst();if(!r)return[];let i=JSON.parse(r.connections||`[]`);if(i.length===0)return[];let a=await e.selectFrom(`connections`).where(`connections.tenant_id`,`=`,t).where(`connections.id`,`in`,i).selectAll().execute(),o=new Map(a.map(e=>[e.id,M(e)]));return i.map(e=>o.get(e)).filter(e=>e!==void 0)}}function Rt(e){return async(t,n,r)=>(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 zt(e){return async(t,n)=>{let r=await e.selectFrom(`clients`).where(`clients.tenant_id`,`=`,t).select([`client_id`,`connections`]).execute(),i=[];for(let e of r)JSON.parse(e.connections||`[]`).includes(n)&&i.push(e.client_id);return i}}function Bt(e){return async(t,n,r)=>{let i=await e.selectFrom(`clients`).where(`clients.tenant_id`,`=`,t).where(`clients.client_id`,`=`,r).select(`connections`).executeTakeFirst();if(!i)return!1;let a=JSON.parse(i.connections||`[]`);return a.includes(n)?!0:(a.push(n),(await e.updateTable(`clients`).set({connections:JSON.stringify(a),updated_at:new Date().toISOString()}).where(`clients.tenant_id`,`=`,t).where(`clients.client_id`,`=`,r).executeTakeFirst()).numUpdatedRows>0)}}function Vt(e){return async(t,n,r)=>{let i=await e.selectFrom(`clients`).where(`clients.tenant_id`,`=`,t).where(`clients.client_id`,`=`,r).select(`connections`).executeTakeFirst();if(!i)return!1;let a=JSON.parse(i.connections||`[]`),o=a.filter(e=>e!==n);return o.length===a.length||(await e.updateTable(`clients`).set({connections:JSON.stringify(o),updated_at:new Date().toISOString()}).where(`clients.tenant_id`,`=`,t).where(`clients.client_id`,`=`,r).executeTakeFirst()).numUpdatedRows>0}}function Ht(e){return{listByClient:Lt(e),updateByClient:Rt(e),listByConnection:zt(e),addClientToConnection:Bt(e),removeClientFromConnection:Vt(e)}}function Ut(e){return async(t,r,i)=>{let a=i?.importMetadata,o=new Date().toISOString(),s=a?.id??(0,n.nanoid)(),c=a?.created_at??o,l=a?.updated_at??a?.created_at??o,{scope:u,authorization_details_types:d,...f}=r,p={id:s,tenant_id:t,...f,scope:u?JSON.stringify(u):`[]`,authorization_details_types:d?JSON.stringify(d):`[]`,allow_any_organization:f.allow_any_organization===void 0?void 0:+!!f.allow_any_organization,is_system:f.is_system===void 0?void 0:+!!f.is_system,created_at:c,updated_at:l};return await e.insertInto(`client_grants`).values(p).execute(),D({id:s,tenant_id:t,...f,scope:u||[],authorization_details_types:d||[],allow_any_organization:f.allow_any_organization??!1,is_system:f.is_system??!1,created_at:c,updated_at:l})}}function Wt(e){return async(t,n)=>{let r=await e.selectFrom(`client_grants`).selectAll().where(`client_grants.tenant_id`,`=`,t).where(`client_grants.id`,`=`,n).executeTakeFirst();return r?D({id:r.id,client_id:r.client_id,audience:r.audience,scope:r.scope?JSON.parse(r.scope):[],organization_usage:r.organization_usage,allow_any_organization:r.allow_any_organization!==void 0&&!!r.allow_any_organization,is_system:r.is_system!==void 0&&!!r.is_system,subject_type:r.subject_type,authorization_details_types:r.authorization_details_types?JSON.parse(r.authorization_details_types):[],created_at:r.created_at,updated_at:r.updated_at}):null}}function Gt(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,q:o,sort:s}=n,c=e.selectFrom(`client_grants`).where(`client_grants.tenant_id`,`=`,t);if(o){let t=o.trim(),n=t.split(/\s+/),r=n.length===1?n[0]:void 0,i=r?r.match(/^(-)?([a-zA-Z_][a-zA-Z0-9_]*):"?([^"]*)"?$/):null,a=i?i[3]:``,s=/^(>=|>|<=|<)/.test(a||``);if(i&&!s&&a){let t=!!i[1],n=i[2],{ref:r}=e.dynamic,o=r(`client_grants.${n}`);if(n===`allow_any_organization`){let e=+(a===`true`);c=t?c.where(o,`!=`,e):c.where(o,`=`,e)}else c=t?c.where(o,`!=`,a):c.where(o,`=`,a)}else c=w(e,c,t,[])}let l=c;if(s){let{ref:t}=e.dynamic;l=l.orderBy(t(s.sort_by),s.sort_order)}else l=l.orderBy(`client_grants.created_at`,`desc`);l=l.limit(i).offset(r*i);let u=(await l.selectAll().execute()).map(e=>D({id:e.id,client_id:e.client_id,audience:e.audience,scope:e.scope?JSON.parse(e.scope):[],organization_usage:e.organization_usage,allow_any_organization:e.allow_any_organization!==void 0&&!!e.allow_any_organization,is_system:e.is_system!==void 0&&!!e.is_system,subject_type:e.subject_type,authorization_details_types:e.authorization_details_types?JSON.parse(e.authorization_details_types):[],created_at:e.created_at,updated_at:e.updated_at}));if(!a)return{client_grants:u,start:0,limit:0,length:0};let{count:d}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{client_grants:u,start:r*i,limit:i,length:T(d)}}}function Kt(e){return async(t,n)=>((await e.deleteFrom(`client_grants`).where(`client_grants.tenant_id`,`=`,t).where(`client_grants.id`,`=`,n).executeTakeFirst()).numDeletedRows??0n)>0n}function qt(e){return async(t,n,r)=>{let i=new Date().toISOString(),{scope:a,authorization_details_types:o,...s}=r,c={...s,updated_at:i};return a!==void 0&&(c.scope=JSON.stringify(a)),o!==void 0&&(c.authorization_details_types=JSON.stringify(o)),s.allow_any_organization!==void 0&&(c.allow_any_organization=+!!s.allow_any_organization),s.is_system!==void 0&&(c.is_system=+!!s.is_system),((await e.updateTable(`client_grants`).set(c).where(`client_grants.tenant_id`,`=`,t).where(`client_grants.id`,`=`,n).executeTakeFirst()).numUpdatedRows??0n)>0n}}function Jt(e){return{create:Ut(e),get:Wt(e),list:Gt(e),remove:Kt(e),update:qt(e)}}function Yt(e){return async(t,n)=>{let r=Date.now();return await e.insertInto(`client_registration_tokens`).values({id:n.id,tenant_id:t,token_hash:n.token_hash,type:n.type,client_id:n.client_id??null,sub:n.sub??null,constraints:n.constraints?JSON.stringify(n.constraints):null,single_use:+!!n.single_use,expires_at_ts:y(n.expires_at),created_at_ts:r,used_at_ts:null,revoked_at_ts:null}).execute(),{id:n.id,token_hash:n.token_hash,type:n.type,client_id:n.client_id,sub:n.sub,constraints:n.constraints,single_use:n.single_use,expires_at:n.expires_at,created_at:new Date(r).toISOString()}}}function Xt(e){let t=i.clientRegistrationTokenTypeSchema.safeParse(e);if(!t.success)throw Error(`Unknown client_registration_tokens.type: ${e}`);return t.data}function Zt(e){if(!e)return;let t;try{t=JSON.parse(e)}catch{return}return(0,i.isPlainObject)(t)?t:void 0}function N(e){return{id:e.id,token_hash:e.token_hash,type:Xt(e.type),client_id:e.client_id??void 0,sub:e.sub??void 0,constraints:Zt(e.constraints),single_use:!!e.single_use,expires_at:_(e.expires_at_ts),used_at:_(e.used_at_ts),revoked_at:_(e.revoked_at_ts),created_at:v(e.created_at_ts)}}function Qt(e){return async(t,n)=>{let r=await e.selectFrom(`client_registration_tokens`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).selectAll().executeTakeFirst();return r?N(r):null}}function $t(e){return async(t,n)=>{let r=await e.selectFrom(`client_registration_tokens`).where(`tenant_id`,`=`,t).where(`token_hash`,`=`,n).selectAll().executeTakeFirst();return r?N(r):null}}function en(e){return async(t,n)=>(await e.selectFrom(`client_registration_tokens`).where(`tenant_id`,`=`,t).where(`client_id`,`=`,n).orderBy(`created_at_ts`,`desc`).selectAll().execute()).map(N)}function tn(e){return async(t,n,r)=>(await e.updateTable(`client_registration_tokens`).set({used_at_ts:y(r)}).where(`tenant_id`,`=`,t).where(`id`,`=`,n).where(`used_at_ts`,`is`,null).executeTakeFirst()).numUpdatedRows>0}function nn(e){return async(t,n,r)=>(await e.updateTable(`client_registration_tokens`).set({revoked_at_ts:y(r)}).where(`tenant_id`,`=`,t).where(`id`,`=`,n).where(`revoked_at_ts`,`is`,null).executeTakeFirst()).numUpdatedRows>0}function rn(e){return async(t,n,r)=>{let i=await e.updateTable(`client_registration_tokens`).set({revoked_at_ts:y(r)}).where(`tenant_id`,`=`,t).where(`client_id`,`=`,n).where(`revoked_at_ts`,`is`,null).executeTakeFirst();return Number(i.numUpdatedRows)}}function an(e){return async(t,n)=>(await e.deleteFrom(`client_registration_tokens`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function on(e){return{create:Yt(e),get:Qt(e),getByHash:$t(e),listByClient:en(e),markUsed:tn(e),revoke:nn(e),revokeByClient:rn(e),remove:an(e)}}function sn(e){return async(t={})=>{let{page:n=0,per_page:r=100,include_totals:i=!1,sort:a,q:o}=t,s=e.selectFrom(`keys`).where(e=>e.or([e(`revoked_at`,`>`,new Date().toISOString()),e(`revoked_at`,`is`,null)]));o&&(s=w(e,s,o,[`kid`,`tenant_id`,`connection`,`fingerprint`,`thumbprint`,`type`]));let c=s.select(e=>e.fn.count(`kid`).as(`count`)),l=n*r;s=s.limit(r).offset(l),a&&(s=s.orderBy(a.sort_by,a.sort_order));let u=await s.selectAll().execute();return i?{signingKeys:u,start:l,limit:r,length:T((await c.executeTakeFirst())?.count??0)}:{signingKeys:u,start:0,limit:0,length:0}}}function cn(e){return async(t,n)=>{let r=n?.importMetadata;await e.insertInto(`keys`).values({...t,kid:r?.id??t.kid,created_at:r?.created_at??new Date().toDateString()}).execute()}}function ln(e){return async(t,n)=>!!(await e.updateTable(`keys`).set(n).where(`kid`,`=`,t).execute()).length}function un(e){return{create:cn(e),list:sn(e),update:ln(e)}}function dn(e){return async(t,r,i)=>{let a=i?.importMetadata,o=new Date().toISOString(),s={status:`pending`,primary:!1,...r,custom_domain_id:a?.id||r.custom_domain_id||(0,n.nanoid)()};return await e.insertInto(`custom_domains`).values({...s,created_at:a?.created_at??o,updated_at:a?.updated_at??o,tenant_id:t,primary:+!!s.primary,domain_metadata:s.domain_metadata?JSON.stringify(s.domain_metadata):void 0}).execute(),s}}function fn(e){return async t=>(await e.selectFrom(`custom_domains`).where(`custom_domains.tenant_id`,`=`,t).selectAll().execute()).map(e=>({...e,primary:e.primary===1,domain_metadata:A(e.domain_metadata,void 0),verification:A(e.verification,void 0)}))}function pn(e){return async(t,n)=>(await e.deleteFrom(`custom_domains`).where(`custom_domains.tenant_id`,`=`,t).where(`custom_domains.custom_domain_id`,`=`,n).execute()).length>0}function mn(e){return async(t,n)=>{let r=await e.selectFrom(`custom_domains`).where(`custom_domains.tenant_id`,`=`,t).where(`custom_domains.custom_domain_id`,`=`,n).selectAll().executeTakeFirst();return r?{...r,primary:r.primary===1,domain_metadata:A(r.domain_metadata,void 0),verification:A(r.verification,void 0)}:null}}function hn(e){return async(t,n,r)=>{let{verification:i,domain_metadata:a,primary:o,...s}=r,c={...s,updated_at:new Date().toISOString(),...o!==void 0&&{primary:+!!o},...a!==void 0&&{domain_metadata:JSON.stringify(a)},...i!==void 0&&{verification:JSON.stringify(i)}};return(await e.updateTable(`custom_domains`).set(c).where(`custom_domains.tenant_id`,`=`,t).where(`custom_domains.custom_domain_id`,`=`,n).execute()).length>0}}function gn(e){return async t=>{let n=await e.selectFrom(`custom_domains`).where(`custom_domains.domain`,`=`,t).selectAll().executeTakeFirst();return n?{...n,primary:n.primary===1,domain_metadata:A(n.domain_metadata,void 0)}:null}}function _n(e){return{create:dn(e),get:mn(e),getByDomain:gn(e),list:fn(e),remove:pn(e),update:hn(e)}}function vn(e){return async t=>{let[n]=await e.selectFrom(`branding`).where(`branding.tenant_id`,`=`,t).selectAll().execute();if(!n)return null;let{tenant_id:r,colors_primary:i,colors_page_background_type:a,colors_page_background_start:o,colors_page_background_end:s,colors_page_background_angle_dev:c,font_url:l,...u}=n;return D({...u,colors:{primary:i,page_background:{type:a,start:o,end:s,angle_deg:c}},font:l?{url:l}:void 0})}}function yn(e){return async(t,n)=>{let{colors:r,font:i,...a}=n,o=r?.page_background,s=o&&typeof o==`object`?o:void 0;try{await e.insertInto(`branding`).values({...a,colors_primary:r?.primary,colors_page_background_type:s?.type,colors_page_background_start:s?.start,colors_page_background_end:s?.end,colors_page_background_angle_dev:s?.angle_deg,font_url:n.font?.url,tenant_id:t}).execute()}catch{await e.updateTable(`branding`).set({...a,colors_primary:r?.primary,colors_page_background_type:s?.type,colors_page_background_start:s?.start,colors_page_background_end:s?.end,colors_page_background_angle_dev:s?.angle_deg,font_url:n.font?.url}).where(`tenant_id`,`=`,t).execute()}}}function bn(e){return{get:vn(e),set:yn(e)}}function xn(e){return async t=>{let n=await e.selectFrom(`universal_login_templates`).select([`body`]).where(`tenant_id`,`=`,t).executeTakeFirst();return n?{body:n.body}:null}}function Sn(e){return async(t,n,r)=>{let i=r?.importMetadata,a=Date.now(),o=i?.created_at?new Date(i.created_at).getTime():a,s=i?.updated_at?new Date(i.updated_at).getTime():a;try{await e.insertInto(`universal_login_templates`).values({tenant_id:t,body:n.body,created_at_ts:o,updated_at_ts:s}).execute()}catch{await e.updateTable(`universal_login_templates`).set({body:n.body,updated_at_ts:s,...i?.created_at?{created_at_ts:o}:{}}).where(`tenant_id`,`=`,t).execute()}}}function Cn(e){return async t=>{await e.deleteFrom(`universal_login_templates`).where(`tenant_id`,`=`,t).execute()}}function wn(e){return{get:xn(e),set:Sn(e),delete:Cn(e)}}function Tn(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,sort:o,q:s}=n,c=e.selectFrom(`hooks`).where(`hooks.tenant_id`,`=`,t);if(s&&(c=w(e,c,s,[`url`,`form_id`,`template_id`,`code_id`])),o?.sort_by){let{ref:t}=e.dynamic;c=c.orderBy(t(o.sort_by),o.sort_order)}else c=c.orderBy(`priority`,`desc`).orderBy(`created_at_ts`,`asc`);let l=(await c.offset(r*i).limit(i).selectAll().execute()).map(e=>{let{tenant_id:t,enabled:n,synchronous:r,created_at_ts:i,updated_at_ts:a,metadata:o,...s}=e,c=x({created_at_ts:i,updated_at_ts:a},[`created_at_ts`,`updated_at_ts`]);return D({...s,...c,enabled:!!n,synchronous:!!r,metadata:Ne(o)})});if(!a)return{hooks:l,start:0,limit:0,length:0};let{count:u}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{hooks:l,start:r*i,limit:i,length:T(u)}}}function En(e){return async(t,n)=>{let r=await e.selectFrom(`hooks`).where(`hooks.tenant_id`,`=`,t).where(`hooks.hook_id`,`=`,n).selectAll().executeTakeFirst();if(!r)return null;let{tenant_id:i,created_at_ts:a,updated_at_ts:o,metadata:s,...c}=r,l=x({created_at_ts:a,updated_at_ts:o},[`created_at_ts`,`updated_at_ts`]);return D({...c,...l,enabled:!!c.enabled,synchronous:!!c.synchronous,metadata:Ne(s)})}}function Dn(e){return async(t,n)=>(await e.deleteFrom(`hooks`).where(`hooks.tenant_id`,`=`,t).where(`hooks.hook_id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function On(e){return async(t,n,r)=>{let i=r?.importMetadata,a=new Date().toISOString(),o=i?.created_at??a,s=i?.updated_at??a,c=i?.id??(n.hook_id||f()),{hook_id:l,enabled:u,synchronous:d,metadata:p,...m}=n;return await e.insertInto(`hooks`).values({...m,hook_id:c,tenant_id:t,enabled:+!!u,synchronous:+!!d,metadata:p?JSON.stringify(p):null,created_at_ts:new Date(o).getTime(),updated_at_ts:new Date(s).getTime()}).execute(),{...m,hook_id:c,enabled:u??!1,synchronous:d??!1,...p?{metadata:p}:{},created_at:o,updated_at:s}}}function kn(e){return async(t,n,r)=>{let{hook_id:i,metadata:a,...o}=r,s={...o,updated_at_ts:Date.now(),enabled:r.enabled===void 0?void 0:+!!r.enabled,synchronous:r.synchronous===void 0?void 0:+!!r.synchronous,...a===void 0?{}:{metadata:a===null?null:JSON.stringify(a)}};return await e.updateTable(`hooks`).set(s).where(`hooks.hook_id`,`=`,n).where(`hooks.tenant_id`,`=`,t).execute(),!0}}function An(e){return{create:On(e),get:En(e),list:Tn(e),update:kn(e),remove:Dn(e)}}function jn(e){return async(t,n,r)=>{let i=r?.importMetadata,a=new Date().toISOString(),o=i?.created_at??a,s=i?.updated_at??a,c=i?.id??m();return await e.insertInto(`hook_code`).values({id:c,tenant_id:t,code:n.code,secrets:n.secrets?JSON.stringify(n.secrets):null,created_at_ts:new Date(o).getTime(),updated_at_ts:new Date(s).getTime()}).execute(),{id:c,tenant_id:t,code:n.code,secrets:n.secrets,created_at:o,updated_at:s}}}function Mn(e){return async(t,n)=>{let r=await e.selectFrom(`hook_code`).where(`hook_code.tenant_id`,`=`,t).where(`hook_code.id`,`=`,n).selectAll().executeTakeFirst();if(!r)return null;let{created_at_ts:i,updated_at_ts:a,secrets:o,...s}=r,c=x({created_at_ts:i,updated_at_ts:a},[`created_at_ts`,`updated_at_ts`]);return{...s,...c,secrets:o?(()=>{try{return JSON.parse(o)}catch{console.warn(`Failed to parse secrets for hook_code ${n}`);return}})():void 0}}}function Nn(e){return async(t,n,r)=>{let i={updated_at_ts:Date.now()};return r.code!==void 0&&(i.code=r.code),r.secrets!==void 0&&(i.secrets=JSON.stringify(r.secrets)),(await e.updateTable(`hook_code`).set(i).where(`hook_code.id`,`=`,n).where(`hook_code.tenant_id`,`=`,t).executeTakeFirst()).numUpdatedRows>0}}function Pn(e){return async(t,n)=>(await e.deleteFrom(`hook_code`).where(`hook_code.tenant_id`,`=`,t).where(`hook_code.id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function Fn(e){return{create:jn(e),get:Mn(e),update:Nn(e),remove:Pn(e)}}function In(e){return async(t,r,i,a)=>{let o=a?.importMetadata,s=new Date().toISOString(),c={themeId:o?.id||i||(0,n.nanoid)(),...r,created_at:o?.created_at??s,updated_at:o?.updated_at??s},l={...c,tenant_id:t};return await e.insertInto(`themes`).values(k(l)).execute(),c}}function Ln(e){return async(t,n)=>(await e.deleteFrom(`themes`).where(`themes.tenant_id`,`=`,t).where(`themes.themeId`,`=`,n).executeTakeFirst()).numDeletedRows>0}function Rn(e){return async(t,n)=>{let r=await e.selectFrom(`themes`).where(`themes.tenant_id`,`=`,t).where(`themes.themeId`,`=`,n).selectAll().executeTakeFirst();return r?D(Te({...r,borders_show_widget_shadow:!!r.borders_show_widget_shadow,fonts_body_text_bold:!!r.fonts_body_text_bold,fonts_buttons_text_bold:!!r.fonts_buttons_text_bold,fonts_input_labels_bold:!!r.fonts_input_labels_bold,fonts_links_bold:!!r.fonts_links_bold,fonts_subtitle_bold:!!r.fonts_subtitle_bold,fonts_title_bold:!!r.fonts_title_bold},[`widget`,`colors`,`borders`,`fonts`,`page_background`])):null}}function zn(e){return async(t,n,r)=>{let{themeId:i,...a}=r,o=k({...a,updated_at:new Date().toISOString()});return await e.updateTable(`themes`).set(o).where(`themes.themeId`,`=`,n).where(`themes.tenant_id`,`=`,t).execute(),!0}}function Bn(e){return{create:In(e),get:Rn(e),remove:Ln(e),update:zn(e)}}function Vn(e){return async(t,n)=>{let r=await e.selectFrom(`login_sessions`).where(`login_sessions.id`,`=`,n).selectAll().executeTakeFirst();if(!r)return null;let{created_at_ts:a,updated_at_ts:o,expires_at_ts:s,auth_params:c,...l}=r,u=x({created_at_ts:a,updated_at_ts:o,expires_at_ts:s},[`created_at_ts`,`updated_at_ts`,`expires_at_ts`]),d=Te(D({...l,...u,state:r.state||i.LoginSessionState.PENDING,state_data:r.state_data,failure_reason:r.failure_reason}),[`auth_strategy`]);return d.authParams=typeof c==`string`&&c.length>0?JSON.parse(c):{},i.loginSessionSchema.parse(d)}}var Hn=`0123456789ABCDEFGHJKMNPQRSTVWXYZ`,P=32,Un=10,Wn=16;function Gn(e){let t=``;for(let n=Un;n>0;n--)t=Hn.charAt(e%P)+t,e=Math.floor(e/P);return t}function Kn(){let e=new Uint8Array(Wn);crypto.getRandomValues(e);let t=``;for(let n=0;n<Wn;n++)t+=Hn.charAt(e[n]%P);return t}function qn(){return Gn(Date.now())+Kn()}function Jn(e){return async(t,n)=>{let r=b(),a={id:qn(),...n,authorization_url:n.authorization_url?.slice(0,1024),created_at:r,updated_at:r,state:n.state||i.LoginSessionState.PENDING,state_data:n.state_data,failure_reason:n.failure_reason},{authParams:o,...s}=a,c=Date.now(),l=k(s);return delete l.created_at,delete l.updated_at,delete l.expires_at,await e.insertInto(`login_sessions`).values({...l,tenant_id:t,auth_params:JSON.stringify(o),created_at_ts:c,updated_at_ts:c,expires_at_ts:n.expires_at?new Date(n.expires_at).getTime():c+1e3*60*60*24}).execute(),a}}function Yn(e){return async(t,n,r)=>{let{created_at:i,updated_at:a,expires_at:o,authParams:s,...c}=r,l={};if(s!==void 0){let r=(await e.selectFrom(`login_sessions`).where(`login_sessions.id`,`=`,n).where(`login_sessions.tenant_id`,`=`,t).select([`auth_params`]).executeTakeFirst())?.auth_params,i=typeof r==`string`&&r.length>0?JSON.parse(r):{};l={auth_params:JSON.stringify({...i,...s})}}let u=k(c);return delete u.created_at_ts,delete u.updated_at_ts,delete u.expires_at_ts,delete u.id,delete u.tenant_id,(await e.updateTable(`login_sessions`).set({...u,...l,updated_at_ts:Date.now(),...o===void 0?{}:{expires_at_ts:y(o)}}).where(`login_sessions.id`,`=`,n).where(`login_sessions.tenant_id`,`=`,t).execute()).length===1}}function Xn(e){return async(t,n)=>(await e.deleteFrom(`login_sessions`).where(`login_sessions.tenant_id`,`=`,t).where(`login_sessions.id`,`=`,n).execute()).length>0}function Zn(e){return{create:Jn(e),get:Vn(e),update:Yn(e),remove:Xn(e)}}function Qn(e){return async t=>{let[n]=await e.selectFrom(`prompt_settings`).where(`prompt_settings.tenant_id`,`=`,t).selectAll().execute();return D({identifier_first:!!n?.identifier_first,password_first:!!n?.password_first,webauthn_platform_first_factor:!!n?.webauthn_platform_first_factor,universal_login_experience:n?.universal_login_experience||`new`})}}function $n(e){let t={};return typeof e.identifier_first==`boolean`&&(t.identifier_first=+!!e.identifier_first),typeof e.password_first==`boolean`&&(t.password_first=+!!e.password_first),typeof e.webauthn_platform_first_factor==`boolean`&&(t.webauthn_platform_first_factor=+!!e.webauthn_platform_first_factor),e.universal_login_experience&&(t.universal_login_experience=e.universal_login_experience),t}function er(e){return async(t,n)=>{let r=$n(n);try{await e.insertInto(`prompt_settings`).values({tenant_id:t,identifier_first:r.identifier_first??1,password_first:r.password_first??0,webauthn_platform_first_factor:r.webauthn_platform_first_factor??0,universal_login_experience:r.universal_login_experience??`new`}).execute()}catch{if(Object.keys(r).length===0)return;await e.updateTable(`prompt_settings`).set(r).where(`tenant_id`,`=`,t).execute()}}}function tr(e){return{get:Qn(e),set:er(e)}}function nr(e){return async t=>{let[n]=await e.selectFrom(`email_providers`).where(`email_providers.tenant_id`,`=`,t).selectAll().execute();if(!n)return null;let{tenant_id:r,credentials:i,settings:a,enabled:o,...s}=n;return D({...s,credentials:JSON.parse(i),settings:JSON.parse(a),enabled:!!o})}}function rr(e){return async(t,n)=>{let{credentials:r,settings:i,enabled:a,...o}=n;await e.updateTable(`email_providers`).set({...o,credentials:r?JSON.stringify(r):void 0,settings:i?JSON.stringify(i):void 0,enabled:a===void 0?void 0:+!!a}).where(`tenant_id`,`=`,t).execute()}}function ir(e){return async(t,n,r)=>{let i=r?.importMetadata,a=new Date().toISOString(),{credentials:o,settings:s,enabled:c,...l}=n;await e.insertInto(`email_providers`).values({...l,enabled:+!!c,credentials:JSON.stringify(o),settings:JSON.stringify(s),tenant_id:t,created_at:i?.created_at??a,updated_at:i?.updated_at??a}).execute()}}function ar(e){return async t=>{await e.deleteFrom(`email_providers`).where(`tenant_id`,`=`,t).execute()}}function or(e){return{get:nr(e),create:ir(e),update:rr(e),remove:ar(e)}}function sr(e){let t={template:e.template,body:e.body,from:e.from,subject:e.subject,syntax:e.syntax,includeEmailInRedirect:!!e.include_email_in_redirect,enabled:!!e.enabled};return e.result_url!==null&&e.result_url!==void 0&&(t.resultUrl=e.result_url),e.url_lifetime_in_seconds!==null&&e.url_lifetime_in_seconds!==void 0&&(t.urlLifetimeInSeconds=e.url_lifetime_in_seconds),t}function cr(e){return async(t,n)=>{let r=await e.selectFrom(`email_templates`).where(`tenant_id`,`=`,t).where(`template`,`=`,n).selectAll().executeTakeFirst();return r?i.emailTemplateSchema.parse(sr(r)):null}}function lr(e){return async t=>(await e.selectFrom(`email_templates`).where(`tenant_id`,`=`,t).orderBy(`template`,`asc`).selectAll().execute()).map(e=>i.emailTemplateSchema.parse(sr(e)))}function ur(e){return async(t,n,r)=>{let i=r?.importMetadata,a=new Date().toISOString(),o=i?.created_at??a,s=i?.updated_at??i?.created_at??a;return await e.insertInto(`email_templates`).values({tenant_id:t,template:n.template,body:n.body,from:n.from,subject:n.subject,syntax:n.syntax,result_url:n.resultUrl??null,url_lifetime_in_seconds:n.urlLifetimeInSeconds??null,include_email_in_redirect:+!!n.includeEmailInRedirect,enabled:+!!n.enabled,created_at:o,updated_at:s}).execute(),n}}function dr(e){return async(t,n,r)=>{let i={};if(r.body!==void 0&&(i.body=r.body),r.from!==void 0&&(i.from=r.from),r.subject!==void 0&&(i.subject=r.subject),r.syntax!==void 0&&(i.syntax=r.syntax),r.resultUrl!==void 0&&(i.result_url=r.resultUrl),r.urlLifetimeInSeconds!==void 0&&(i.url_lifetime_in_seconds=r.urlLifetimeInSeconds),r.includeEmailInRedirect!==void 0&&(i.include_email_in_redirect=+!!r.includeEmailInRedirect),r.enabled!==void 0&&(i.enabled=+!!r.enabled),Object.keys(i).length===0)return await e.selectFrom(`email_templates`).where(`tenant_id`,`=`,t).where(`template`,`=`,n).select(`template`).executeTakeFirst()!==void 0;i.updated_at=new Date().toISOString();let a=await e.updateTable(`email_templates`).set(i).where(`tenant_id`,`=`,t).where(`template`,`=`,n).executeTakeFirst();return Number(a.numUpdatedRows??0)>0}}function fr(e){return async(t,n)=>{let r=await e.deleteFrom(`email_templates`).where(`tenant_id`,`=`,t).where(`template`,`=`,n).executeTakeFirst();return Number(r.numDeletedRows??0)>0}}function pr(e){return{get:cr(e),list:lr(e),create:ur(e),update:dr(e),remove:fr(e)}}function mr(e){return async(t,n)=>{let r=await e.selectFrom(`refresh_tokens`).where(`refresh_tokens.tenant_id`,`=`,t).where(`refresh_tokens.id`,`=`,n).selectAll().executeTakeFirst();if(!r)return null;let{tenant_id:i,created_at_ts:a,expires_at_ts:o,idle_expires_at_ts:s,last_exchanged_at_ts:c,revoked_at_ts:l,rotated_at_ts:u,...d}=r,f=x({created_at_ts:a,expires_at_ts:o,idle_expires_at_ts:s,last_exchanged_at_ts:c,revoked_at_ts:l,rotated_at_ts:u},[`created_at_ts`],[`expires_at_ts`,`idle_expires_at_ts`,`last_exchanged_at_ts`,`revoked_at_ts`,`rotated_at_ts`]);return{...d,...f,rotating:!!r.rotating,device:r.device?JSON.parse(r.device):{},resource_servers:r.resource_servers?JSON.parse(r.resource_servers):[]}}}function hr(e){return async(t,n)=>{let r=await e.selectFrom(`refresh_tokens`).where(`refresh_tokens.tenant_id`,`=`,t).where(`refresh_tokens.token_lookup`,`=`,n).selectAll().executeTakeFirst();if(!r)return null;let{tenant_id:i,created_at_ts:a,expires_at_ts:o,idle_expires_at_ts:s,last_exchanged_at_ts:c,revoked_at_ts:l,rotated_at_ts:u,...d}=r,f=x({created_at_ts:a,expires_at_ts:o,idle_expires_at_ts:s,last_exchanged_at_ts:c,revoked_at_ts:l,rotated_at_ts:u},[`created_at_ts`],[`expires_at_ts`,`idle_expires_at_ts`,`last_exchanged_at_ts`,`revoked_at_ts`,`rotated_at_ts`]);return{...d,...f,rotating:!!r.rotating,device:r.device?JSON.parse(r.device):{},resource_servers:r.resource_servers?JSON.parse(r.resource_servers):[]}}}function gr(e){return async(t,n)=>{let r=b(),i={...n,created_at:r},{expires_at:a,idle_expires_at:o,last_exchanged_at:s,rotated_at:c,device:l,resource_servers:u,rotating:d,...f}=n,p=Date.now(),m=y(a),h=o?y(o):null,g=Math.max(m??0,h??0);return await e.transaction().execute(async e=>{await e.insertInto(`refresh_tokens`).values({...f,tenant_id:t,rotating:+!!d,device:JSON.stringify(l),resource_servers:JSON.stringify(u),created_at_ts:p,expires_at_ts:m,idle_expires_at_ts:h,last_exchanged_at_ts:s?y(s):null,rotated_at_ts:c?y(c):null}).execute(),g>0&&n.login_id&&await e.updateTable(`login_sessions`).set({expires_at_ts:g,updated_at_ts:p}).where(`tenant_id`,`=`,t).where(`id`,`=`,n.login_id).where(`expires_at_ts`,`<`,g).execute()}),{...n,...i}}}function _r(e){return async(t,n)=>!!(await e.deleteFrom(`refresh_tokens`).where(`tenant_id`,`=`,t).where(`refresh_tokens.id`,`=`,n).execute()).length}function vr(e){return async(t,n,r)=>{let i=y(r),a=await e.updateTable(`refresh_tokens`).set({revoked_at_ts:i}).where(`tenant_id`,`=`,t).where(`login_id`,`=`,n).where(`revoked_at_ts`,`is`,null).executeTakeFirst();return Number(a.numUpdatedRows??0)}}function yr(e){return async(t,n,r)=>{let i=y(r),a=await e.updateTable(`refresh_tokens`).set({revoked_at_ts:i}).where(`tenant_id`,`=`,t).where(`family_id`,`=`,n).where(`revoked_at_ts`,`is`,null).executeTakeFirst();return Number(a.numUpdatedRows??0)}}function br(e){return async(t,n,r,i)=>{let{created_at:a,expires_at:o,idle_expires_at:s,last_exchanged_at:c,revoked_at:l,rotated_at:u,device:d,resource_servers:f,rotating:p,...m}=r,h={...m,device:d?JSON.stringify(d):void 0,resource_servers:f?JSON.stringify(f):void 0,rotating:p===void 0?void 0:+!!p,expires_at_ts:o===void 0?void 0:y(o),idle_expires_at_ts:s===void 0?void 0:y(s),last_exchanged_at_ts:c===void 0?void 0:y(c),revoked_at_ts:l===void 0?void 0:y(l),rotated_at_ts:u===void 0?void 0:y(u)},g=i?.loginSessionBump,_=g?y(g.expires_at):null,v=await e.updateTable(`refresh_tokens`).set(h).where(`tenant_id`,`=`,t).where(`refresh_tokens.id`,`=`,n).executeTakeFirst();return g?.login_id&&_&&_>0&&await e.updateTable(`login_sessions`).set({expires_at_ts:_,updated_at_ts:Date.now()}).where(`tenant_id`,`=`,t).where(`id`,`=`,g.login_id).where(`expires_at_ts`,`<`,_).execute().catch(()=>{}),(v?.numUpdatedRows??0n)>0n}}function xr(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,sort:o,q:s}=n,c=e.selectFrom(`refresh_tokens`).where(`refresh_tokens.tenant_id`,`=`,t);s&&(c=w(e,c,s,[`token`,`login_id`]));let l=c;if(o&&o.sort_by){let{ref:t}=e.dynamic;l=l.orderBy(t(o.sort_by),o.sort_order)}l=l.offset(r*i).limit(i);let u=(await l.selectAll().execute()).map(e=>{let{tenant_id:t,created_at_ts:n,expires_at_ts:r,idle_expires_at_ts:i,last_exchanged_at_ts:a,revoked_at_ts:o,rotated_at_ts:s,...c}=e,l=x({created_at_ts:n,expires_at_ts:r,idle_expires_at_ts:i,last_exchanged_at_ts:a,revoked_at_ts:o,rotated_at_ts:s},[`created_at_ts`],[`expires_at_ts`,`idle_expires_at_ts`,`last_exchanged_at_ts`,`revoked_at_ts`,`rotated_at_ts`]);return{...c,...l,rotating:!!e.rotating,device:e.device?JSON.parse(e.device):{},resource_servers:e.resource_servers?JSON.parse(e.resource_servers):[]}});if(!a)return{refresh_tokens:u,start:0,limit:0,length:0};let{count:d}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow(),f=T(d);return{refresh_tokens:u,start:r*i,limit:i,length:f}}}function Sr(e){return{create:gr(e),get:mr(e),getByLookup:hr(e),list:xr(e),remove:_r(e),revokeByLoginSession:vr(e),revokeFamily:yr(e),update:br(e)}}var Cr=10080*60*1e3;function wr(e){return async t=>{let{tenant_id:n,user_id:r}=t||{},i=Date.now()-Cr,a=1e3;try{let t=0;for(;;){let o=e.deleteFrom(`refresh_tokens`).where(e=>e.or([e(`expires_at_ts`,`<`,i),e(`idle_expires_at_ts`,`<`,i)]));n&&(o=o.where(`tenant_id`,`=`,n)),r&&(o=o.where(`user_id`,`=`,r));let s=await o.limit(a).execute(),c=Number(s[0]?.numDeletedRows??0);if(t+=c,c<a)break}let o=0;for(;;){let t=e.deleteFrom(`sessions`).where(e=>e.or([e(`expires_at_ts`,`<`,i),e(`idle_expires_at_ts`,`<`,i)]));n&&(t=t.where(`tenant_id`,`=`,n)),r&&(t=t.where(`user_id`,`=`,r));let s=await t.limit(a).execute(),c=Number(s[0]?.numDeletedRows??0);if(o+=c,c<a)break}let s=0;for(;;){let t=e.deleteFrom(`login_sessions`).where(`expires_at_ts`,`<`,i);n&&(t=t.where(`tenant_id`,`=`,n)),r&&(t=t.where(`user_id`,`=`,r));let o=await t.limit(a).execute(),c=Number(o[0]?.numDeletedRows??0);if(s+=c,c<a)break}(t>0||o>0||s>0)&&console.log(`Session cleanup: deleted ${t} refresh_tokens, ${o} sessions, ${s} login_sessions`)}catch(e){console.error(`Error during session cleanup:`,e)}}}function Tr(e){return async(t,r,a)=>{let o=a?.importMetadata,s=new Date().toISOString(),c=i.formSchema.parse({id:o?.id??(0,n.nanoid)(),...r,created_at:o?.created_at??s,updated_at:o?.updated_at??s});return await e.insertInto(`forms`).values({...c,nodes:JSON.stringify(c.nodes||[]),start:JSON.stringify(c.start||{}),ending:JSON.stringify(c.ending||{}),tenant_id:t}).execute(),i.formSchema.parse(c)}}function Er(e){return async(t,n={})=>{let{page:r=0,per_page:a=50,include_totals:o=!1,q:s}=n,c=e.selectFrom(`forms`).where(`tenant_id`,`=`,t);s&&(c=w(e,c,s,[]));let l=(await c.offset(r*a).limit(a).selectAll().execute()).map(e=>{let t={...e};if(typeof t.nodes==`string`)try{t.nodes=JSON.parse(t.nodes)}catch{}if(typeof t.start==`string`)try{t.start=JSON.parse(t.start)}catch{}if(typeof t.ending==`string`)try{t.ending=JSON.parse(t.ending)}catch{}return i.formSchema.parse(D(t))});if(!o)return{forms:l,start:0,limit:0,length:0};let{count:u}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{forms:l,start:r*a,limit:a,length:T(u)}}}function Dr(e){return async(t,n)=>{let{numDeletedRows:r}=await e.deleteFrom(`forms`).where(`id`,`=`,n).where(`tenant_id`,`=`,t).executeTakeFirst();return r>0}}function Or(e){return async(t,n)=>{let r=await e.selectFrom(`forms`).selectAll().where(`forms.id`,`=`,n).where(`tenant_id`,`=`,t).executeTakeFirst();if(!r)return null;let a={...r};if(typeof a.nodes==`string`)try{a.nodes=JSON.parse(a.nodes)}catch{}if(typeof a.start==`string`)try{a.start=JSON.parse(a.start)}catch{}if(typeof a.ending==`string`)try{a.ending=JSON.parse(a.ending)}catch{}return i.formSchema.parse(D(a))}}function kr(e){return async(t,n,r)=>{let i={...r,updated_at:new Date().toISOString()};j(r,[`nodes`,`start`,`ending`],i);let{numUpdatedRows:a}=await e.updateTable(`forms`).set(i).where(`id`,`=`,n).where(`tenant_id`,`=`,t).executeTakeFirst();return a>0}}function Ar(e){return{create:Tr(e),get:Or(e),list:Er(e),remove:Dr(e),update:kr(e)}}function jr(e){return async(t,n,r)=>{let a=r?.importMetadata,o=new Date().toISOString(),s=a?.created_at??o,c=a?.updated_at??o,l={...n,id:a?.id??n.id??p(),created_at:s,updated_at:c},u=i.resourceServerSchema.parse(l),{verificationKey:d,scopes:f,options:m,skip_consent_for_verifiable_first_party_clients:h,allow_offline_access:g,is_system:_,metadata:v,...y}=u,b={...y,tenant_id:t,scopes:f?JSON.stringify(f):`[]`,options:m?JSON.stringify(m):`{}`,skip_consent_for_verifiable_first_party_clients:+!!h,allow_offline_access:+!!g,is_system:+!!_,metadata:v?JSON.stringify(v):void 0,verification_key:d,created_at:s,updated_at:c};return await e.insertInto(`resource_servers`).values(b).execute(),D(u)}}function Mr(e){return async(t,n)=>{let r=await e.selectFrom(`resource_servers`).selectAll().where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst();if(!r)return null;let{verification_key:i,scopes:a,options:o,skip_consent_for_verifiable_first_party_clients:s,allow_offline_access:c,is_system:l,metadata:u,...d}=r,f=D({...d,scopes:a?JSON.parse(a):[],options:o?JSON.parse(o):{},skip_consent_for_verifiable_first_party_clients:!!s,allow_offline_access:!!c,is_system:l?!0:void 0,metadata:u?JSON.parse(u):void 0,verificationKey:i});return f.token_lifetime??=86400,f.token_lifetime_for_web??=7200,f}}function Nr(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,q:o}=n,s=e.selectFrom(`resource_servers`).where(`resource_servers.tenant_id`,`=`,t);if(o){let t=o.trim(),n=t.split(/\s+/),r=n.length===1?n[0]:void 0,i=r?r.match(/^(-)?(name|identifier):(.*)$/):null,a=i?i[3]:``,c=/^(>=|>|<=|<)/.test(a||``);if(i&&!c){let e=!!i[1],t=i[2]===`name`?`resource_servers.name`:`resource_servers.identifier`;s=e?s.where(t,`not like`,`%${a}%`):s.where(t,`like`,`%${a}%`)}else s=w(e,s,t,[`resource_servers.name`,`resource_servers.identifier`])}let c=(await s.offset(r*i).limit(i).selectAll().execute()).map(e=>{let{verification_key:t,scopes:n,options:r,skip_consent_for_verifiable_first_party_clients:i,allow_offline_access:a,is_system:o,metadata:s,...c}=e,l=D({...c,scopes:n?JSON.parse(n):[],options:r?JSON.parse(r):{},skip_consent_for_verifiable_first_party_clients:!!i,allow_offline_access:!!a,is_system:o?!0:void 0,metadata:s?JSON.parse(s):void 0,verificationKey:t});return l.token_lifetime??=86400,l.token_lifetime_for_web??=7200,l});if(!a)return{resource_servers:c,start:0,limit:0,length:0};let{count:l}=await s.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{resource_servers:c,start:r*i,limit:i,length:T(l)}}}function Pr(e){return async(t,n)=>{let r=await e.deleteFrom(`resource_servers`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst();return Number(r.numDeletedRows)>0}}function Fr(e){return async(t,n,r)=>{let{verificationKey:i,scopes:a,options:o,skip_consent_for_verifiable_first_party_clients:s,allow_offline_access:c,is_system:l,metadata:u,...d}=r,f={...d,updated_at:new Date().toISOString()};if(i!==void 0&&(f.verification_key=i),a!==void 0&&(f.scopes=JSON.stringify(a)),o!==void 0){let r=await e.selectFrom(`resource_servers`).select(`options`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst(),i={...r?.options?JSON.parse(r.options):{},...o};f.options=JSON.stringify(i)}u!==void 0&&(f.metadata=JSON.stringify(u)),s!==void 0&&(f.skip_consent_for_verifiable_first_party_clients=+!!s),c!==void 0&&(f.allow_offline_access=+!!c),l!==void 0&&(f.is_system=+!!l);let p=await e.updateTable(`resource_servers`).set(f).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst();return Number(p.numUpdatedRows)>0}}function Ir(e){return{create:jr(e),get:Mr(e),list:Nr(e),remove:Pr(e),update:Fr(e)}}function Lr(e){return async(t,r,i)=>{let a=i?.importMetadata,o=new Date().toISOString(),s=a?.created_at??o,c=a?.updated_at??o,l=a?.id||r.id||(0,n.nanoid)(),{is_system:u,id:d,metadata:f,...p}=r,m={id:l,...p,tenant_id:t,is_system:+!!u,metadata:f?JSON.stringify(f):void 0,created_at:s,updated_at:c};return await e.insertInto(`roles`).values(m).execute(),{id:l,...p,is_system:u?!0:void 0,metadata:f,created_at:s,updated_at:c}}}function Rr(e){return async(t,n)=>{let r=await e.selectFrom(`roles`).selectAll().where(`roles.tenant_id`,`=`,t).where(`roles.id`,`=`,n).executeTakeFirst();if(!r)return null;let{is_system:i,tenant_id:a,metadata:o,...s}=r;return{...s,is_system:i?!0:void 0,metadata:o?JSON.parse(o):void 0}}}function zr(e){return async(t,n)=>{let r=e.selectFrom(`roles`).where(`roles.tenant_id`,`=`,t),{page:i=0,per_page:a=50,include_totals:o=!1}=n;n.q&&(r=w(e,r,n.q,[`name`]));let s=(await r.offset(i*a).limit(a).selectAll().execute()).map(e=>{let{is_system:t,tenant_id:n,metadata:r,...i}=e;return{...i,is_system:t?!0:void 0,metadata:r?JSON.parse(r):void 0}});if(!o)return{roles:s,start:i*a,limit:a,length:s.length};let{count:c}=await r.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{roles:s,start:i*a,limit:a,length:T(c)}}}function Br(e){return async(t,n,r)=>{let{is_system:i,metadata:a,...o}=r,s={...o,is_system:i===void 0?void 0:+!!i,metadata:a===void 0?void 0:JSON.stringify(a),updated_at:new Date().toISOString()},c=await e.updateTable(`roles`).set(s).where(`roles.tenant_id`,`=`,t).where(`roles.id`,`=`,n).executeTakeFirst();return Number(c.numUpdatedRows)>0}}function Vr(e){return async(t,n)=>{let r=await e.deleteFrom(`roles`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst();return Number(r.numDeletedRows)>0}}function Hr(e){return{create:Lr(e),get:Rr(e),list:zr(e),update:Br(e),remove:Vr(e)}}function Ur(e){return async(t,n,r,i)=>{if(r.length===0)return!0;let a=i?.importMetadata,o=new Date().toISOString();try{for(let i of r){if(i.role_id!==n)throw Error(`Permission role_id ${i.role_id} does not match expected role_id ${n}`);let r={tenant_id:t,role_id:i.role_id,resource_server_identifier:i.resource_server_identifier,permission_name:i.permission_name,created_at:a?.created_at??o};try{await e.insertInto(`role_permissions`).values(r).execute()}catch(e){if(e.code===`SQLITE_CONSTRAINT_PRIMARYKEY`||e.code===`SQLITE_CONSTRAINT_UNIQUE`||e.code===`ER_DUP_ENTRY`)continue;throw e}}return!0}catch(e){return console.error(`Error assigning role permissions:`,e),!1}}}function Wr(e){return async(t,n,r)=>{if(r.length===0)return!0;try{return(await Promise.all(r.map(r=>e.deleteFrom(`role_permissions`).where(`tenant_id`,`=`,t).where(`role_id`,`=`,n).where(`resource_server_identifier`,`=`,r.resource_server_identifier).where(`permission_name`,`=`,r.permission_name).executeTakeFirst()))).some(e=>Number(e.numDeletedRows)>0)}catch(e){return console.error(`Error removing role permissions:`,e),!1}}}function Gr(e){return async(t,n,r={})=>{let{page:i=0,per_page:a=50,include_totals:o=!1}=r,s=e.selectFrom(`role_permissions`).leftJoin(`resource_servers`,e=>e.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`,`=`,n),c=(await s.offset(i*a).limit(a).execute()).map(e=>({role_id:e.role_id,resource_server_identifier:e.resource_server_identifier,resource_server_name:e.resource_server_name||e.resource_server_identifier,permission_name:e.permission_name,description:null,created_at:e.created_at}));return o&&await s.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow(),c}}function Kr(e){return{assign:Ur(e),remove:Wr(e),list:Gr(e)}}function qr(e){return async(t,r)=>{let i=new Date().toISOString(),a=r.scope??[],o=r.audience??``,s=await e.selectFrom(`grants`).where(`tenant_id`,`=`,t).where(`user_id`,`=`,r.user_id).where(`client_id`,`=`,r.clientID).where(`audience`,`=`,o).selectAll().executeTakeFirst();if(s){let n=s.scope?JSON.parse(s.scope):[],r=Array.from(new Set([...n,...a]));return await e.updateTable(`grants`).set({scope:JSON.stringify(r),updated_at:i}).where(`tenant_id`,`=`,t).where(`id`,`=`,s.id).execute(),{id:s.id,user_id:s.user_id,clientID:s.client_id,audience:s.audience||void 0,scope:r}}let c=(0,n.nanoid)();return await e.insertInto(`grants`).values({id:c,tenant_id:t,user_id:r.user_id,client_id:r.clientID,audience:o,scope:JSON.stringify(a),created_at:i,updated_at:i}).execute(),{id:c,user_id:r.user_id,clientID:r.clientID,audience:o||void 0,scope:a}}}function Jr(e){return async(t,n,r,i)=>{let a=await e.selectFrom(`grants`).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n).where(`client_id`,`=`,r).where(`audience`,`=`,i??``).selectAll().executeTakeFirst();return a?{id:a.id,user_id:a.user_id,clientID:a.client_id,audience:a.audience||void 0,scope:a.scope?JSON.parse(a.scope):[]}:null}}function Yr(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1,sort:o,q:s}=n,c=e.selectFrom(`grants`).where(`grants.tenant_id`,`=`,t);s&&(c=w(e,c,s,[`user_id`,`client_id`,`audience`]));let l=c;if(o&&o.sort_by){let{ref:t}=e.dynamic;l=l.orderBy(t(o.sort_by),o.sort_order)}l=l.offset(r*i).limit(i);let u=(await l.selectAll().execute()).map(e=>({id:e.id,user_id:e.user_id,clientID:e.client_id,audience:e.audience||void 0,scope:e.scope?JSON.parse(e.scope):[]}));if(!a)return{grants:u,start:0,limit:0,length:0};let{count:d}=await c.select(e=>e.fn.countAll().as(`count`)).executeTakeFirstOrThrow();return{grants:u,start:r*i,limit:i,length:T(d)}}}function Xr(e){return async(t,n)=>(await e.deleteFrom(`grants`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function Zr(e){return async(t,n)=>(await e.deleteFrom(`grants`).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function Qr(e){return{create:qr(e),get:Jr(e),list:Yr(e),remove:Xr(e),removeByUser:Zr(e)}}function $r(e){return async(t,n,r,i,a)=>{let o=a?.importMetadata,s=new Date().toISOString();try{let a={tenant_id:t,user_id:n,resource_server_identifier:r.resource_server_identifier,permission_name:r.permission_name,organization_id:i||r.organization_id||``,created_at:o?.created_at??s};return await e.insertInto(`user_permissions`).values(a).execute(),!0}catch(e){return e.code===`SQLITE_CONSTRAINT_PRIMARYKEY`||e.code===`SQLITE_CONSTRAINT_UNIQUE`||e.code===`SQLITE_CONSTRAINT`||e.code===`ER_DUP_ENTRY`||e.message&&e.message.includes(`UNIQUE constraint failed`)||e.message&&e.message.includes(`PRIMARY KEY constraint failed`)?!0:(console.error(`Error creating user permission:`,e),!1)}}}function ei(e){return async(t,n,r,i)=>{try{let a=e.deleteFrom(`user_permissions`).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n).where(`resource_server_identifier`,`=`,r.resource_server_identifier).where(`permission_name`,`=`,r.permission_name);return a=i===void 0?a.where(`organization_id`,`=`,``):a.where(`organization_id`,`=`,i),await a.execute(),!0}catch(e){return console.error(`Error removing user permission:`,e),!1}}}function ti(e){return async(t,n,r,i)=>{let a=e.selectFrom(`user_permissions`).leftJoin(`resource_servers`,e=>e.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`,`=`,n);return i!==void 0&&(a=a.where(`user_permissions.organization_id`,`=`,i)),(await a.execute()).map(e=>({resource_server_identifier:e.resource_server_identifier,permission_name:e.permission_name,description:null,resource_server_name:e.resource_server_name||e.resource_server_identifier,user_id:e.user_id,created_at:e.created_at,organization_id:e.organization_id===``?void 0:e.organization_id}))}}function ni(e){return{create:$r(e),remove:ei(e),list:ti(e)}}function ri(e){let t=ni(e);return{create:(e,n,r,i)=>t.create(e,n,r,i),remove:(e,n,r,i)=>t.remove(e,n,r,i),list:(e,n,r,i)=>t.list(e,n,r,i)}}function ii(e){return async(t,n,r,i)=>{let a=e.selectFrom(`user_roles as ur`).innerJoin(`roles as r`,e=>e.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`,`=`,n);return i!==void 0&&(a=a.where(`ur.organization_id`,`=`,i)),await a.execute()}}function ai(e){return async(t,n,r,i,a)=>{let o=a?.importMetadata,s=new Date().toISOString();try{return await e.insertInto(`user_roles`).values({tenant_id:t,user_id:n,role_id:r,organization_id:i||``,created_at:o?.created_at??s}).execute(),!0}catch(e){return e.code===`SQLITE_CONSTRAINT_PRIMARYKEY`||e.code===`SQLITE_CONSTRAINT_UNIQUE`||e.code===`SQLITE_CONSTRAINT`||e.code===`ER_DUP_ENTRY`||e.message&&e.message.includes(`UNIQUE constraint failed`)||e.message&&e.message.includes(`PRIMARY KEY constraint failed`)?!0:(console.error(`Error creating user role:`,e),!1)}}}function oi(e){return async(t,n,r,i)=>{try{let a=e.deleteFrom(`user_roles`).where(`tenant_id`,`=`,t).where(`user_id`,`=`,n).where(`role_id`,`=`,r);return a=i===void 0?a.where(`organization_id`,`=`,``):a.where(`organization_id`,`=`,i),await a.execute(),!0}catch(e){return console.error(`Error removing user roles:`,e),!1}}}function si(e){return{list:ii(e),create:ai(e),remove:oi(e)}}function ci(e){let t=si(e);return{list:(e,n,r,i)=>t.list(e,n,r,i),create:(e,n,r,i)=>t.create(e,n,r,i),remove:(e,n,r,i)=>t.remove(e,n,r,i)}}function li(e){return async(t,n,r)=>{let i=r?.importMetadata,a=new Date().toISOString(),o={...n,id:i?.id||n.id||c(),tenant_id:t,created_at:i?.created_at??a,updated_at:i?.updated_at??a,branding:JSON.stringify(n.branding||{}),metadata:JSON.stringify(n.metadata||{}),enabled_connections:JSON.stringify(n.enabled_connections||[]),token_quota:JSON.stringify(n.token_quota||{})};try{await e.insertInto(`organizations`).values(o).execute()}catch(e){throw e.code===`SQLITE_CONSTRAINT_UNIQUE`||e.code===`ER_DUP_ENTRY`||e.message.includes(`AlreadyExists`)?new E(409,{message:`Organization already exists`}):e}return{...n,id:o.id,created_at:o.created_at,updated_at:o.updated_at}}}function ui(e){return async(t,n)=>{let r=await e.selectFrom(`organizations`).selectAll().where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst();return r||=await e.selectFrom(`organizations`).selectAll().where(`tenant_id`,`=`,t).where(`name`,`=`,n).executeTakeFirst(),r?D({...r,branding:r.branding?JSON.parse(r.branding):{},metadata:r.metadata?JSON.parse(r.metadata):{},enabled_connections:r.enabled_connections?JSON.parse(r.enabled_connections):[],token_quota:r.token_quota?JSON.parse(r.token_quota):{}}):null}}var F=[`name`,`display_name`];function di(e){return async(t,n)=>{let i=e.selectFrom(`organizations`).where(`tenant_id`,`=`,t);if(n?.q){let t=C(n.q,F);t&&(i=w(e,i,t,F))}if(n?.sort){let e=n.sort.sort_order===`asc`?`asc`:`desc`,t=n.sort.sort_by;i=[`name`,`display_name`,`created_at`].includes(t)?i.orderBy(t,e):i.orderBy(`created_at`,`desc`)}else i=i.orderBy(`created_at`,`desc`);let a=n?.take??n?.per_page,o=typeof a==`number`&&Number.isFinite(a)?Math.floor(a):NaN,s=o>=1?o:10,c=0;if(n?.from!==void 0){let e=parseInt(n.from,10);Number.isNaN(e)||(c=Math.max(0,e))}else typeof n?.page==`number`&&Number.isFinite(n.page)&&(c=Math.max(0,Math.floor(n.page)*s));c>0&&(i=i.offset(c)),i=i.limit(s);let l=await i.selectAll().execute(),u=l.length;if(n?.include_totals){let i=e.selectFrom(`organizations`).where(`tenant_id`,`=`,t);if(n?.q){let t=C(n.q,F);t&&(i=w(e,i,t,F))}let a=await i.select(r.sql`count(*)`.as(`count`)).executeTakeFirst();u=Number(a?.count||0)}let d=l.map(e=>D({...e,branding:e.branding?JSON.parse(e.branding):{},metadata:e.metadata?JSON.parse(e.metadata):{},enabled_connections:e.enabled_connections?JSON.parse(e.enabled_connections):[],token_quota:e.token_quota?JSON.parse(e.token_quota):{}}));return{organizations:d,start:c,limit:s,length:d.length,total:u}}}function fi(e){return async(t,n)=>(await e.deleteFrom(`organizations`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).execute()).length>0}function pi(e){return async(t,n,r)=>{let{branding:i,metadata:a,enabled_connections:o,token_quota:s,...c}=r,l={...c,updated_at:new Date().toISOString()};return j(r,[`branding`,`metadata`,`enabled_connections`,`token_quota`],l),(await e.updateTable(`organizations`).set(l).where(`tenant_id`,`=`,t).where(`id`,`=`,n).execute()).length>0}}function mi(e){return{create:li(e),get:ui(e),list:di(e),remove:fi(e),update:pi(e)}}function I(e,t){return{connection_id:e.connection_id,assign_membership_on_login:!!e.assign_membership_on_login,show_as_button:!!e.show_as_button,is_signup_enabled:!!e.is_signup_enabled,connection:t?{name:t.name,strategy:t.strategy}:void 0,created_at:e.created_at,updated_at:e.updated_at}}async function L(e,t,n){let r=await e.selectFrom(`connections`).select([`name`,`strategy`]).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst();if(r)return{name:r.name,strategy:typeof r.strategy==`string`?r.strategy:void 0}}function hi(e){return{async create(t,n,r,i){let a=i?.importMetadata,o=new Date().toISOString(),s={tenant_id:t,organization_id:n,connection_id:r.connection_id,assign_membership_on_login:+!!r.assign_membership_on_login,show_as_button:r.show_as_button===!1?0:1,is_signup_enabled:r.is_signup_enabled===!1?0:1,created_at:a?.created_at??o,updated_at:a?.updated_at??o};return await e.insertInto(`organization_connections`).values(s).execute(),I(s,await L(e,t,r.connection_id))},async list(t,n){let r=await e.selectFrom(`organization_connections`).selectAll().where(`tenant_id`,`=`,t).where(`organization_id`,`=`,n).execute(),i=[];for(let n of r){let r=await L(e,t,n.connection_id);i.push(I(n,r))}return i},async get(t,n,r){let i=await e.selectFrom(`organization_connections`).selectAll().where(`tenant_id`,`=`,t).where(`organization_id`,`=`,n).where(`connection_id`,`=`,r).executeTakeFirst();return i?I(i,await L(e,t,r)):null},async update(t,n,r,i){let a={updated_at:new Date().toISOString()};i.assign_membership_on_login!==void 0&&(a.assign_membership_on_login=+!!i.assign_membership_on_login),i.show_as_button!==void 0&&(a.show_as_button=+!!i.show_as_button),i.is_signup_enabled!==void 0&&(a.is_signup_enabled=+!!i.is_signup_enabled);let o=await e.updateTable(`organization_connections`).set(a).where(`tenant_id`,`=`,t).where(`organization_id`,`=`,n).where(`connection_id`,`=`,r).executeTakeFirst();if(Number(o.numUpdatedRows??0)===0)return null;let s=await e.selectFrom(`organization_connections`).selectAll().where(`tenant_id`,`=`,t).where(`organization_id`,`=`,n).where(`connection_id`,`=`,r).executeTakeFirst();return s?I(s,await L(e,t,r)):null},async remove(t,n,r){let i=await e.deleteFrom(`organization_connections`).where(`tenant_id`,`=`,t).where(`organization_id`,`=`,n).where(`connection_id`,`=`,r).executeTakeFirst();return Number(i.numDeletedRows??0)>0}}}function gi(e){return async(t,r,i)=>{let a=i?.importMetadata,o=new Date().toISOString(),s={id:a?.id??(0,n.nanoid)(),tenant_id:t,user_id:r.user_id,organization_id:r.organization_id,created_at:a?.created_at??o,updated_at:a?.updated_at??o};try{await e.insertInto(`user_organizations`).values(s).execute()}catch(e){throw e.code===`SQLITE_CONSTRAINT_UNIQUE`||e.code===`ER_DUP_ENTRY`?new E(409,{message:`User is already a member of this organization`}):e}return{...s}}}function _i(e){return async(t,n)=>{let r=await e.selectFrom(`user_organizations`).selectAll().where(`id`,`=`,n).where(`tenant_id`,`=`,t).executeTakeFirst();return r?{id:r.id,user_id:r.user_id,organization_id:r.organization_id,created_at:r.created_at,updated_at:r.updated_at}:null}}function vi(e){return async(t,n)=>{let r=n?.page||0,i=n?.per_page||50,a=r*i,o=e.selectFrom(`user_organizations`).selectAll().where(`tenant_id`,`=`,t);if(n?.q){if(n.q.startsWith(`user_id:`)){let e=n.q.replace(`user_id:`,``);o=o.where(`user_id`,`=`,e)}else if(n.q.startsWith(`organization_id:`)){let e=n.q.replace(`organization_id:`,``);o=o.where(`organization_id`,`=`,e)}}o=o.orderBy(`created_at`,`desc`),i>0&&(o=o.limit(i).offset(a));let s=await o.execute(),c=e.selectFrom(`user_organizations`).select(e.fn.count(`id`).as(`count`)).where(`tenant_id`,`=`,t);if(n?.q){if(n.q.startsWith(`user_id:`)){let e=n.q.replace(`user_id:`,``);c=c.where(`user_id`,`=`,e)}else if(n.q.startsWith(`organization_id:`)){let e=n.q.replace(`organization_id:`,``);c=c.where(`organization_id`,`=`,e)}}let l=await c.executeTakeFirst();return{userOrganizations:s.map(e=>({id:e.id,user_id:e.user_id,organization_id:e.organization_id,created_at:e.created_at,updated_at:e.updated_at})),start:a,limit:i,length:Number(l?.count||0)}}}function yi(e){return async(t,n,r)=>{let i=r?.page||0,a=r?.per_page||50,o=i*a,s=e.selectFrom(`user_organizations`).innerJoin(`organizations`,e=>e.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`,`=`,n);s=s.orderBy(`user_organizations.created_at`,`desc`),a>0&&(s=s.limit(a).offset(o));let c=await s.execute(),l=await e.selectFrom(`user_organizations`).innerJoin(`organizations`,e=>e.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`,`=`,n).executeTakeFirst();return{organizations:c.map(e=>({id:e.id,name:e.name,display_name:e.display_name,branding:e.branding?JSON.parse(e.branding):void 0,metadata:e.metadata?JSON.parse(e.metadata):{},enabled_connections:e.enabled_connections?JSON.parse(e.enabled_connections):[],token_quota:e.token_quota?JSON.parse(e.token_quota):void 0,created_at:e.created_at,updated_at:e.updated_at,joined_at:e.joined_at})),start:o,limit:a,length:Number(l?.count||0)}}}function bi(e){return async(t,n)=>(await e.deleteFrom(`user_organizations`).where(`id`,`=`,n).where(`tenant_id`,`=`,t).execute()).length>0}function xi(e){return async(t,n,r)=>{let i={...r,updated_at:new Date().toISOString()};return(await e.updateTable(`user_organizations`).set(i).where(`id`,`=`,n).where(`tenant_id`,`=`,t).execute()).length>0}}function Si(e){return{create:gi(e),get:_i(e),list:vi(e),listUserOrganizations:yi(e),remove:bi(e),update:xi(e)}}function Ci(e){return async(t,n,r)=>{let i=r?.importMetadata,a=i?.id??n.id??h(),o=i?.created_at??new Date().toISOString(),s=n.ttl_sec||604800,c=new Date(new Date(o).getTime()+s*1e3).toISOString(),l=j({id:a,tenant_id:t,organization_id:n.organization_id,inviter:n.inviter||{},invitee:n.invitee||{},client_id:n.client_id,connection_id:n.connection_id||null,invitation_url:n.invitation_url,created_at:o,expires_at:c,app_metadata:n.app_metadata||{},user_metadata:n.user_metadata||{},roles:n.roles||[],ticket_id:null,ttl_sec:s,send_invitation_email:n.send_invitation_email??!0?1:0},[`inviter`,`invitee`,`app_metadata`,`user_metadata`,`roles`]);try{await e.insertInto(`invites`).values(l).execute()}catch(e){throw e.code===`SQLITE_CONSTRAINT_UNIQUE`||e.code===`ER_DUP_ENTRY`||e.message.includes(`AlreadyExists`)?new E(409,{message:`Invite already exists`}):e}return{id:a,organization_id:l.organization_id,inviter:n.inviter,invitee:n.invitee,client_id:n.client_id,connection_id:n.connection_id,invitation_url:n.invitation_url,created_at:o,expires_at:c,app_metadata:n.app_metadata||{},user_metadata:n.user_metadata||{},roles:n.roles||[],ticket_id:l.ticket_id||void 0,ttl_sec:s,send_invitation_email:n.send_invitation_email??!0}}}function wi(e){return async(t,n)=>{let r=await e.selectFrom(`invites`).selectAll().where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst();return r?D({...Pe(r,{inviter:{},invitee:{},app_metadata:{},user_metadata:{},roles:[]}),send_invitation_email:r.send_invitation_email===1}):null}}function Ti(e){return async(t,n)=>{let r=e.selectFrom(`invites`).selectAll().where(`tenant_id`,`=`,t).orderBy(`created_at`,`desc`);if(n?.per_page&&(r=r.limit(n.per_page)),n?.page){let e=(n.page-1)*(n.per_page||10);r=r.offset(e)}let i=(await r.execute()).map(e=>D({...Pe(e,{inviter:{},invitee:{},app_metadata:{},user_metadata:{},roles:[]}),send_invitation_email:e.send_invitation_email===1}));return{invites:i,start:n?.page?(n.page-1)*(n.per_page||10):0,limit:n?.per_page||i.length,length:i.length}}}function Ei(e){return async(t,n)=>(await e.deleteFrom(`invites`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst()).numDeletedRows>0n}function Di(e){return async(t,n,r)=>{let i={};return r.inviter!==void 0&&(i.inviter=JSON.stringify(r.inviter)),r.invitee!==void 0&&(i.invitee=JSON.stringify(r.invitee)),r.client_id!==void 0&&(i.client_id=r.client_id),r.connection_id!==void 0&&(i.connection_id=r.connection_id),r.app_metadata!==void 0&&(i.app_metadata=JSON.stringify(r.app_metadata)),r.user_metadata!==void 0&&(i.user_metadata=JSON.stringify(r.user_metadata)),r.roles!==void 0&&(i.roles=JSON.stringify(r.roles)),r.ttl_sec!==void 0&&(i.ttl_sec=r.ttl_sec,i.expires_at=new Date(Date.now()+r.ttl_sec*1e3).toISOString()),r.send_invitation_email!==void 0&&(i.send_invitation_email=+!!r.send_invitation_email),Object.keys(i).length===0||(await e.updateTable(`invites`).set(i).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst()).numUpdatedRows>0n}}function Oi(e){return{create:Ci(e),get:wi(e),list:Ti(e),remove:Ei(e),update:Di(e)}}var ki=[`s`],Ai=[`pwd_leak`];function ji(e){return/^\d{8}$/.test(e)?`${e.slice(0,4)}-${e.slice(4,6)}-${e.slice(6,8)}`:e}function Mi(e){return e.toISOString().split(`T`)[0]}function Ni(e){return{async getDaily(t,n={}){let{from:i,to:a}=n,o=new Date,s=new Date(o);s.setDate(s.getDate()-30);let c=i?ji(i):Mi(s),l=a?ji(a):Mi(o),u=r.sql`DATE(logs.date)`;return(await e.selectFrom(`logs`).where(`tenant_id`,`=`,t).where(u,`>=`,c).where(u,`<=`,l).select(e=>[u.as(`date`),e.fn.sum(e.case().when(`type`,`in`,ki).then(1).else(0).end()).as(`logins`),e.fn.sum(e.case().when(`type`,`=`,`ss`).then(1).else(0).end()).as(`signups`),e.fn.sum(e.case().when(`type`,`in`,Ai).then(1).else(0).end()).as(`leaked_passwords`),e.fn.min(`date`).as(`first_event`),e.fn.max(`date`).as(`last_event`)]).groupBy(u).orderBy(`date`,`asc`).execute()).map(e=>({date:e.date,logins:Number(e.logins)||0,signups:Number(e.signups)||0,leaked_passwords:Number(e.leaked_passwords)||0,created_at:e.first_event||new Date().toISOString(),updated_at:e.last_event||new Date().toISOString()}))},async getActiveUsers(t){let n=new Date;return n.setDate(n.getDate()-30),(await e.selectFrom(`logs`).where(`tenant_id`,`=`,t).where(`date`,`>=`,n.toISOString()).where(`type`,`in`,ki).where(`user_id`,`is not`,null).select(e=>e.fn.count(`user_id`).distinct().as(`count`)).executeTakeFirstOrThrow()).count||0}}}var Pi={"active-users":[`s`,`seacft`],logins:[`s`,`f`,`fp`],signups:[`ss`,`fs`],"refresh-tokens":[`seacft`,`fertft`],sessions:[`slo`],logouts:[`slo`,`flo`],"password-changes":[`scp`,`fcp`,`scpr`,`fcpr`],"password-migrations":[`spm`],mfa:[`gd_auth_succeed`,`gd_auth_failed`,`gd_auth_rejected`],"email-verifications":[`sv`,`fv`,`svr`,`fvr`],"codes-sent":[`cls`,`cs`]},Fi={"active-users":{alias:`active_users`,type:`UInt64`,agg:`uniq`},logins:{alias:`logins`,type:`UInt64`,agg:`count`},signups:{alias:`signups`,type:`UInt64`,agg:`count`},"refresh-tokens":{alias:`refresh_tokens`,type:`UInt64`,agg:`count`},sessions:{alias:`sessions`,type:`UInt64`,agg:`count`},logouts:{alias:`logouts`,type:`UInt64`,agg:`count`},"password-changes":{alias:`password_changes`,type:`UInt64`,agg:`count`},"password-migrations":{alias:`password_migrations`,type:`UInt64`,agg:`count`},mfa:{alias:`mfa`,type:`UInt64`,agg:`count`},"email-verifications":{alias:`email_verifications`,type:`UInt64`,agg:`count`},"codes-sent":{alias:`codes_sent`,type:`UInt64`,agg:`count`}};async function Ii(e){try{return await r.sql`SELECT @@version_comment`.execute(e),`mysql`}catch{return`sqlite`}}function R(e,t){let n=new Intl.DateTimeFormat(`en-US`,{timeZone:e,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}),r={};for(let e of n.formatToParts(t))r[e.type]=e.value;let i=r.hour===`24`?`00`:r.hour,a=Date.UTC(Number(r.year),Number(r.month)-1,Number(r.day),Number(i),Number(r.minute),Number(r.second)),o=Math.round((a-t.getTime())/6e4),s=o>=0?`+`:`-`,c=Math.abs(o);return`${s}${String(Math.floor(c/60)).padStart(2,`0`)}:${String(c%60).padStart(2,`0`)}`}var Li=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`];function Ri(e,t){let n=t.getUTCFullYear(),r=R(e,new Date(Date.UTC(n,0,1)));for(let t=1;t<12;t++){let i=R(e,new Date(Date.UTC(n,t,1)));if(i!==r)throw Error(`Timezone '${e}' is DST-varying (offset ${r} in January vs ${i} in ${Li[t]}) and cannot be bucketed with a single fixed offset by the SQL analytics adapter. Use a fixed-offset zone (e.g. 'UTC' or '+02:00').`)}}function zi(e){let t=e.startsWith(`-`)?-1:1,[n,r]=e.slice(1).split(`:`);return t*(Number(n)*60+Number(r))}function Bi(e,t){let n;if(t===`+00:00`)n=r.sql`${r.sql.ref(`logs.date`)}`;else{let e=zi(t),i=`${e>=0?`+`:`-`}${Math.abs(e)} minutes`;n=r.sql`datetime(${r.sql.ref(`logs.date`)}, ${i})`}switch(e){case`hour`:return r.sql`substr(${n}, 1, 13)`;case`month`:return r.sql`substr(${n}, 1, 7)`;case`day`:return r.sql`substr(${n}, 1, 10)`;case`week`:return r.sql`date(substr(${n}, 1, 10), '-' || ((cast(strftime('%w', substr(${n}, 1, 10)) as integer) + 6) % 7) || ' days')`;default:throw Error(`Unsupported interval '${e}' for SQL analytics adapter`)}}function Vi(e,t){if(t===`+00:00`)switch(e){case`hour`:return r.sql`substring(${r.sql.ref(`logs.date`)}, 1, 13)`;case`day`:return r.sql`substring(${r.sql.ref(`logs.date`)}, 1, 10)`;case`month`:return r.sql`substring(${r.sql.ref(`logs.date`)}, 1, 7)`;case`week`:{let e=r.sql`str_to_date(substring(${r.sql.ref(`logs.date`)}, 1, 10), '%Y-%m-%d')`;return r.sql`date_format(date_sub(${e}, interval weekday(${e}) day), '%Y-%m-%d')`}default:throw Error(`Unsupported interval '${e}' for SQL analytics adapter`)}let n=zi(t),i=r.sql`date_add(str_to_date(substring(${r.sql.ref(`logs.date`)}, 1, 19), '%Y-%m-%dT%H:%i:%s'), interval ${r.sql.lit(n)} minute)`;switch(e){case`hour`:return r.sql`date_format(${i}, '%Y-%m-%dT%H')`;case`day`:return r.sql`date_format(${i}, '%Y-%m-%d')`;case`month`:return r.sql`date_format(${i}, '%Y-%m')`;case`week`:return r.sql`date_format(date_sub(${i}, interval weekday(${i}) day), '%Y-%m-%d')`;default:throw Error(`Unsupported interval '${e}' for SQL analytics adapter`)}}function Hi(e,t,n,r){Ri(t,n);let i=R(t,n);return r===`mysql`?Vi(e,i):Bi(e,i)}function Ui(e){switch(e){case`connection`:return`logs.connection`;case`client_id`:return`logs.client_id`;case`user_type`:return`logs.strategy_type`;case`event`:return`logs.type`;case`time`:throw Error(`time dimension is handled separately`)}}function Wi(e){let t=null,n=()=>(t||=Ii(e),t);return{async query(t,i,a){let o=Date.now(),s=Pi[i],c=Fi[i],l=await n(),u=[],d=e.selectFrom(`logs`).where(`tenant_id`,`=`,t);d=d.where(`date`,`>=`,a.from).where(`date`,`<`,a.to),d=d.where(`type`,`in`,s),a.filters.connection?.length&&(d=d.where(`connection`,`in`,a.filters.connection)),a.filters.client_id?.length&&(d=d.where(`client_id`,`in`,a.filters.client_id)),a.filters.user_type?.length&&(d=d.where(`strategy_type`,`in`,a.filters.user_type)),a.filters.user_id?.length&&(d=d.where(`user_id`,`in`,a.filters.user_id));let f=[],p=[];for(let e of a.group_by)if(e===`time`){let e=Hi(a.interval,a.tz,new Date(a.from),l);p.push({alias:`time`,expr:e}),f.push(e),u.push({name:`time`,type:a.interval===`hour`?`DateTime`:`Date`})}else{let t=Ui(e);p.push({alias:e,expr:r.sql`${r.sql.ref(t)}`}),f.push(r.sql`${r.sql.ref(t)}`),u.push({name:e,type:`String`})}let m=c.agg===`uniq`?r.sql`COUNT(DISTINCT ${r.sql.ref(`logs.user_id`)})`:r.sql`COUNT(*)`;p.push({alias:c.alias,expr:m}),u.push({name:c.alias,type:c.type});let h=d.select(p.map(({alias:e,expr:t})=>t.as(e)));if(f.length>0&&(h=h.groupBy(f)),a.order_by){let e=a.order_by.startsWith(`-`),t=e?a.order_by.slice(1):a.order_by;h=h.orderBy(t,e?`desc`:`asc`)}else h=a.group_by.length>0&&a.group_by[0]===`time`?h.orderBy(`time`,`asc`):h.orderBy(c.alias,`desc`);h=h.limit(a.limit).offset(a.offset);let g=(await h.execute()).map(e=>{let t={};for(let n of u){let r=e[n.name];t[n.name]=n.type===`UInt64`?Number(r)||0:r??``}return t});return{meta:u,data:g,rows:g.length,rows_before_limit_at_least:g.length,statistics:{elapsed:(Date.now()-o)/1e3}}}}}function Gi(e){return{async get(t,n,r){let i=await e.selectFrom(`custom_text`).selectAll().where(`tenant_id`,`=`,t).where(`prompt`,`=`,n).where(`language`,`=`,r).executeTakeFirst();if(!i)return null;try{return JSON.parse(i.custom_text)}catch{return null}},async set(t,n,r,i,a){let o=a?.importMetadata,s=Date.now(),c=o?.created_at?new Date(o.created_at).getTime():void 0,l=o?.updated_at?new Date(o.updated_at).getTime():c,u=JSON.stringify(i);await e.selectFrom(`custom_text`).select(`tenant_id`).where(`tenant_id`,`=`,t).where(`prompt`,`=`,n).where(`language`,`=`,r).executeTakeFirst()?await e.updateTable(`custom_text`).set({custom_text:u,...c===void 0?{}:{created_at_ts:c},updated_at_ts:l??s}).where(`tenant_id`,`=`,t).where(`prompt`,`=`,n).where(`language`,`=`,r).execute():await e.insertInto(`custom_text`).values({tenant_id:t,prompt:n,language:r,custom_text:u,created_at_ts:c??s,updated_at_ts:l??s}).execute()},async delete(t,n,r){await e.deleteFrom(`custom_text`).where(`tenant_id`,`=`,t).where(`prompt`,`=`,n).where(`language`,`=`,r).execute()},async list(t){return(await e.selectFrom(`custom_text`).select([`prompt`,`language`]).where(`tenant_id`,`=`,t).execute()).map(e=>({prompt:e.prompt,language:e.language}))}}}function Ki(e){return async(t,n,r)=>{let i=r?.importMetadata,a=i?.created_at?new Date(i.created_at).getTime():Date.now(),o=i?.updated_at?new Date(i.updated_at).getTime():a,s=i?.id??qn();return await e.insertInto(`authentication_methods`).values({id:s,tenant_id:t,user_id:n.user_id,type:n.type,phone_number:n.phone_number,totp_secret:n.totp_secret,credential_id:n.credential_id,public_key:n.public_key,sign_count:n.sign_count,credential_backed_up:n.credential_backed_up==null?void 0:+!!n.credential_backed_up,transports:n.transports?JSON.stringify(n.transports):void 0,friendly_name:n.friendly_name,confirmed:+!!n.confirmed,created_at_ts:a,updated_at_ts:o}).execute(),{id:s,user_id:n.user_id,type:n.type,phone_number:n.phone_number,totp_secret:n.totp_secret,credential_id:n.credential_id,public_key:n.public_key,sign_count:n.sign_count,credential_backed_up:n.credential_backed_up,transports:n.transports,friendly_name:n.friendly_name,confirmed:n.confirmed??!1,created_at:new Date(a).toISOString(),updated_at:new Date(o).toISOString()}}}function qi(e){return async(t,n)=>{let r=await e.selectFrom(`authentication_methods`).where(`authentication_methods.tenant_id`,`=`,t).where(`authentication_methods.id`,`=`,n).selectAll().executeTakeFirst();return 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,credential_id:r.credential_id??void 0,public_key:r.public_key??void 0,sign_count:r.sign_count??void 0,credential_backed_up:r.credential_backed_up==null?void 0:r.credential_backed_up===1,transports:r.transports?JSON.parse(r.transports):void 0,friendly_name:r.friendly_name??void 0,confirmed:r.confirmed===1,created_at:v(r.created_at_ts),updated_at:v(r.updated_at_ts)}:null}}function Ji(e){return async(t,n)=>{let r=await e.selectFrom(`authentication_methods`).where(`authentication_methods.tenant_id`,`=`,t).where(`authentication_methods.credential_id`,`=`,n).selectAll().executeTakeFirst();return 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,credential_id:r.credential_id??void 0,public_key:r.public_key??void 0,sign_count:r.sign_count??void 0,credential_backed_up:r.credential_backed_up==null?void 0:r.credential_backed_up===1,transports:r.transports?JSON.parse(r.transports):void 0,friendly_name:r.friendly_name??void 0,confirmed:r.confirmed===1,created_at:v(r.created_at_ts),updated_at:v(r.updated_at_ts)}:null}}function Yi(e){return async(t,n)=>(await e.selectFrom(`authentication_methods`).where(`authentication_methods.tenant_id`,`=`,t).where(`authentication_methods.user_id`,`=`,n).selectAll().execute()).map(e=>({id:e.id,user_id:e.user_id,type:e.type,phone_number:e.phone_number??void 0,totp_secret:e.totp_secret??void 0,credential_id:e.credential_id??void 0,public_key:e.public_key??void 0,sign_count:e.sign_count??void 0,credential_backed_up:e.credential_backed_up==null?void 0:e.credential_backed_up===1,transports:e.transports?JSON.parse(e.transports):void 0,friendly_name:e.friendly_name??void 0,confirmed:e.confirmed===1,created_at:v(e.created_at_ts),updated_at:v(e.updated_at_ts)}))}function Xi(e){return async(t,n,r)=>{let i={updated_at_ts:Date.now()};r.phone_number!==void 0&&(i.phone_number=r.phone_number),r.totp_secret!==void 0&&(i.totp_secret=r.totp_secret),r.credential_id!==void 0&&(i.credential_id=r.credential_id),r.public_key!==void 0&&(i.public_key=r.public_key),r.sign_count!==void 0&&(i.sign_count=r.sign_count),r.credential_backed_up!==void 0&&(i.credential_backed_up=+!!r.credential_backed_up),r.transports!==void 0&&(i.transports=JSON.stringify(r.transports)),r.friendly_name!==void 0&&(i.friendly_name=r.friendly_name),r.confirmed!==void 0&&(i.confirmed=+!!r.confirmed),await e.updateTable(`authentication_methods`).set(i).where(`authentication_methods.tenant_id`,`=`,t).where(`authentication_methods.id`,`=`,n).execute();let a=await qi(e)(t,n);if(!a)throw Error(`Authentication method ${n} not found`);return a}}function Zi(e){return async(t,n)=>(await e.deleteFrom(`authentication_methods`).where(`authentication_methods.tenant_id`,`=`,t).where(`authentication_methods.id`,`=`,n).executeTakeFirst()).numDeletedRows>0}function Qi(e){return{create:Ki(e),get:qi(e),getByCredentialId:Ji(e),list:Yi(e),update:Xi(e),remove:Zi(e)}}function $i(e){return async(t,r)=>{let i=(0,n.nanoid)();return await e.insertInto(`outbox_events`).values({id:i,tenant_id:t,event_type:r.event_type,log_type:r.log_type,aggregate_type:r.target.type,aggregate_id:r.target.id,payload:JSON.stringify({...r,id:i}),created_at:new Date().toISOString(),processed_at:null,retry_count:0,next_retry_at:null,error:null}).execute(),i}}function ea(e){return async t=>t.length===0?[]:(await e.selectFrom(`outbox_events`).selectAll().where(`id`,`in`,t).execute()).map(e=>({...JSON.parse(e.payload),id:e.id,created_at:e.created_at,processed_at:e.processed_at,retry_count:e.retry_count,next_retry_at:e.next_retry_at,error:e.error}))}function ta(e){return async t=>{let n=new Date().toISOString();return(await e.selectFrom(`outbox_events`).selectAll().where(`processed_at`,`is`,null).where(e=>e.or([e(`next_retry_at`,`is`,null),e(`next_retry_at`,`<=`,n)])).where(e=>e.or([e(`claimed_by`,`is`,null),e(`claim_expires_at`,`<=`,n)])).orderBy(`created_at`,`asc`).orderBy(`id`,`asc`).limit(t).execute()).map(e=>({...JSON.parse(e.payload),id:e.id,created_at:e.created_at,processed_at:e.processed_at,retry_count:e.retry_count,next_retry_at:e.next_retry_at,error:e.error}))}}function na(e){return async(t,n,r)=>{if(t.length===0)return[];let i=new Date().toISOString(),a=new Date(Date.now()+r).toISOString();return await e.updateTable(`outbox_events`).set({claimed_by:n,claim_expires_at:a}).where(`id`,`in`,t).where(`processed_at`,`is`,null).where(e=>e.or([e(`claimed_by`,`is`,null),e(`claim_expires_at`,`<=`,i)])).execute(),(await e.selectFrom(`outbox_events`).select(`id`).where(`id`,`in`,t).where(`claimed_by`,`=`,n).where(`claim_expires_at`,`=`,a).execute()).map(e=>e.id)}}function ra(e){return async t=>{if(t.length===0)return;let n=new Date().toISOString();await e.updateTable(`outbox_events`).set({processed_at:n}).where(`id`,`in`,t).execute()}}function ia(e){return async(t,n,i)=>{await e.updateTable(`outbox_events`).set({error:n,next_retry_at:i,retry_count:r.sql`retry_count + 1`,claimed_by:null,claim_expires_at:null}).where(`id`,`=`,t).execute()}}function aa(e){return async(t,n)=>{let r=new Date().toISOString();await e.updateTable(`outbox_events`).set({processed_at:r,dead_lettered_at:r,final_error:n}).where(`id`,`=`,t).execute()}}function oa(e){return async(t,n={})=>{let{page:r=0,per_page:i=50,include_totals:a=!1}=n,o=(await e.selectFrom(`outbox_events`).selectAll().where(`tenant_id`,`=`,t).where(`dead_lettered_at`,`is not`,null).orderBy(`dead_lettered_at`,`desc`).orderBy(`id`,`asc`).offset(r*i).limit(i).execute()).flatMap(e=>{let t;try{t=JSON.parse(e.payload)}catch(t){return console.error(`Failed to parse outbox payload for event ${e.id}`,t),[]}return[{...t,id:e.id,created_at:e.created_at,processed_at:e.processed_at,retry_count:e.retry_count,next_retry_at:e.next_retry_at,error:e.error,dead_lettered_at:e.dead_lettered_at,final_error:e.final_error}]}),s=o.length;if(a){let[n]=await e.selectFrom(`outbox_events`).select(e=>e.fn.countAll().as(`total`)).where(`tenant_id`,`=`,t).where(`dead_lettered_at`,`is not`,null).execute();s=Number(n?.total??o.length)}return{events:o,start:r*i,limit:i,length:s}}}function sa(e){return async(t,n)=>{let r=await e.updateTable(`outbox_events`).set({processed_at:null,dead_lettered_at:null,final_error:null,retry_count:0,next_retry_at:null,error:null}).where(`id`,`=`,t).where(`tenant_id`,`=`,n).where(`dead_lettered_at`,`is not`,null).executeTakeFirst();return Number(r.numUpdatedRows)>0}}function ca(e){return async t=>{let n=await e.deleteFrom(`outbox_events`).where(`processed_at`,`is not`,null).where(`processed_at`,`<`,t).executeTakeFirst();return Number(n.numDeletedRows)}}function la(e){return{create:$i(e),getByIds:ea(e),getUnprocessed:ta(e),claimEvents:na(e),markProcessed:ra(e),markRetry:ia(e),deadLetter:aa(e),listFailed:oa(e),replay:sa(e),cleanup:ca(e)}}function z(e){return{id:e.id,name:e.name,type:e.type,status:e.status,sink:JSON.parse(e.sink),filters:e.filters?JSON.parse(e.filters):void 0,isPriority:e.is_priority==null?void 0:e.is_priority===1,created_at:e.created_at,updated_at:e.updated_at}}function ua(e){return{async create(t,r,i){let a=i?.importMetadata,o=new Date().toISOString(),s={id:a?.id??`lst_${(0,n.nanoid)()}`,tenant_id:t,name:r.name,type:r.type,status:r.status??`active`,sink:JSON.stringify(r.sink),filters:r.filters?JSON.stringify(r.filters):null,is_priority:r.isPriority===void 0?null:+!!r.isPriority,created_at:a?.created_at??o,updated_at:a?.updated_at??o};return await e.insertInto(`log_streams`).values(s).execute(),z(s)},async get(t,n){let r=await e.selectFrom(`log_streams`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).selectAll().executeTakeFirst();return r?z(r):null},async list(t){return(await e.selectFrom(`log_streams`).where(`tenant_id`,`=`,t).selectAll().execute()).map(z)},async update(t,n,r){let i={updated_at:new Date().toISOString()};return r.name!==void 0&&(i.name=r.name),r.type!==void 0&&(i.type=r.type),r.status!==void 0&&(i.status=r.status),r.sink!==void 0&&(i.sink=JSON.stringify(r.sink)),r.filters!==void 0&&(i.filters=r.filters?JSON.stringify(r.filters):null),r.isPriority!==void 0&&(i.is_priority=+!!r.isPriority),((await e.updateTable(`log_streams`).set(i).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst())?.numUpdatedRows??0n)>0n},async remove(t,n){return((await e.deleteFrom(`log_streams`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst())?.numDeletedRows??0n)>0n}}}function B(e){return{id:e.id,name:e.name,provider:i.migrationProviderTypeSchema.parse(e.provider),connection:e.connection,enabled:e.enabled===1,credentials:JSON.parse(e.credentials),created_at:e.created_at,updated_at:e.updated_at}}function da(e){return{async create(t,r,i){let a=i?.importMetadata,o=new Date().toISOString(),s=a?.id??r.id??`mig_${(0,n.nanoid)()}`,c=r.enabled??!0,l={id:s,tenant_id:t,name:r.name,provider:r.provider,connection:r.connection,enabled:+!!c,credentials:JSON.stringify(r.credentials),created_at:a?.created_at??o,updated_at:a?.updated_at??o};return await e.insertInto(`migration_sources`).values(l).execute(),B(l)},async get(t,n){let r=await e.selectFrom(`migration_sources`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).selectAll().executeTakeFirst();return r?B(r):null},async list(t){return(await e.selectFrom(`migration_sources`).where(`tenant_id`,`=`,t).selectAll().execute()).map(B)},async update(t,n,r){let i={updated_at:new Date().toISOString()};return r.name!==void 0&&(i.name=r.name),r.provider!==void 0&&(i.provider=r.provider),r.connection!==void 0&&(i.connection=r.connection),r.enabled!==void 0&&(i.enabled=+!!r.enabled),r.credentials!==void 0&&(i.credentials=JSON.stringify(r.credentials)),((await e.updateTable(`migration_sources`).set(i).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst())?.numUpdatedRows??0n)>0n},async remove(t,n){return((await e.deleteFrom(`migration_sources`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst())?.numDeletedRows??0n)>0n}}}function V(e){return{id:e.id,tenant_id:e.tenant_id,custom_domain_id:e.custom_domain_id,priority:e.priority,match:fa(e.match),handlers:pa(e.handlers),created_at:e.created_at,updated_at:e.updated_at}}function fa(e){if(!e)return{path:`/*`};try{let t=JSON.parse(e),n=i.matchSchema.safeParse(t);if(n.success)return n.data}catch{}return{path:`/*`}}function pa(e){if(!e)return[];try{let t=JSON.parse(e);if(!Array.isArray(t))return[];let n=[];for(let e of t){let t=i.handlerConfigSchema.safeParse(e);t.success&&n.push(t.data)}return n}catch{return[]}}function ma(e){return{async create(t,r,i){let a=i?.importMetadata,o=new Date().toISOString(),s={id:a?.id??r.id??(0,n.nanoid)(),tenant_id:t,custom_domain_id:r.custom_domain_id,priority:r.priority,match:r.match,handlers:r.handlers,created_at:a?.created_at??o,updated_at:a?.updated_at??o};return await e.insertInto(`proxy_routes`).values({id:s.id,tenant_id:s.tenant_id,custom_domain_id:s.custom_domain_id,priority:s.priority,match:JSON.stringify(s.match),handlers:JSON.stringify(s.handlers),created_at:s.created_at,updated_at:s.updated_at}).execute(),s},async get(t,n){let r=await e.selectFrom(`proxy_routes`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).selectAll().executeTakeFirst();return r?V(r):null},async list(t,n={}){let r=n.page??0,i=n.per_page??50,a=e.selectFrom(`proxy_routes`).where(`tenant_id`,`=`,t);n.custom_domain_id&&(a=a.where(`custom_domain_id`,`=`,n.custom_domain_id));let o=await a.selectAll().orderBy(`priority`,`asc`).orderBy(`created_at`,`asc`).offset(r*i).limit(i).execute();return{proxy_routes:o.map(V),start:r*i,limit:i,length:o.length}},async update(t,n,r){let i={updated_at:new Date().toISOString()};r.priority!==void 0&&(i.priority=r.priority),r.match!==void 0&&(i.match=JSON.stringify(r.match)),r.handlers!==void 0&&(i.handlers=JSON.stringify(r.handlers));let a=await e.updateTable(`proxy_routes`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).set(i).executeTakeFirst();return Number(a.numUpdatedRows)>0},async remove(t,n){let r=await e.deleteFrom(`proxy_routes`).where(`tenant_id`,`=`,t).where(`id`,`=`,n).executeTakeFirst();return Number(r.numDeletedRows)>0}}}async function ha(e,t){let n=t.indexOf(`:`),r=n===-1?t:t.slice(0,n),i=(r.endsWith(`.`)?r.slice(0,-1):r).toLowerCase(),a=await e.selectFrom(`custom_domains`).where(`domain`,`=`,i).select([`custom_domain_id`,`tenant_id`,`domain`]).executeTakeFirst();if(!a)return null;let o=await e.selectFrom(`proxy_routes`).where(`tenant_id`,`=`,a.tenant_id).where(`custom_domain_id`,`=`,a.custom_domain_id).selectAll().orderBy(`priority`,`asc`).orderBy(`created_at`,`asc`).execute();return{tenant_id:a.tenant_id,custom_domain_id:a.custom_domain_id,domain:a.domain,routes:o.map(V)}}function ga(e){return{proxyRoutes:ma(e),resolveHost:t=>ha(e,t)}}function _a(e){return i.tenantOperationSchema.parse({id:e.id,tenant_id:e.tenant_id,rollout_id:e.rollout_id,kind:e.kind,status:e.status,current_step:e.current_step,engine:e.engine,engine_instance_id:e.engine_instance_id,target_worker_version:e.target_worker_version,target_database_version:e.target_database_version,error:e.error,initiated_by:e.initiated_by,created_at:e.created_at,updated_at:e.updated_at,finished_at:e.finished_at})}function va(e){return{async create(t){let r=i.tenantOperationInsertSchema.parse(t),a=new Date().toISOString(),o={id:`op_${(0,n.nanoid)()}`,tenant_id:r.tenant_id,rollout_id:r.rollout_id??null,kind:r.kind,status:`pending`,current_step:null,engine:r.engine,engine_instance_id:r.engine_instance_id??null,target_worker_version:r.target_worker_version??null,target_database_version:r.target_database_version??null,error:null,initiated_by:r.initiated_by??null,created_at:a,updated_at:a,finished_at:null};return await e.insertInto(`tenant_operations`).values(o).execute(),_a(o)},async get(t){let n=await e.selectFrom(`tenant_operations`).where(`id`,`=`,t).selectAll().executeTakeFirst();return n?_a(n):null},async list(t={}){let n=t.page??0,r=t.per_page??50,i=e.selectFrom(`tenant_operations`);if(t.tenant_id!==void 0&&(i=i.where(`tenant_id`,`=`,t.tenant_id)),t.rollout_id!==void 0&&(i=i.where(`rollout_id`,`=`,t.rollout_id)),t.kind!==void 0&&(i=i.where(`kind`,`=`,t.kind)),t.status!==void 0){let e=Array.isArray(t.status)?t.status:[t.status];i=i.where(`status`,`in`,e)}t.engine!==void 0&&(i=i.where(`engine`,`=`,t.engine)),t.updated_before!==void 0&&(i=i.where(`updated_at`,`<`,t.updated_before));let a=await i.selectAll().orderBy(`created_at`,`desc`).orderBy(`id`,`desc`).offset(n*r).limit(r).execute();return{operations:a.map(_a),start:n*r,limit:r,length:a.length}},async update(t,n){let r={updated_at:new Date().toISOString()};n.status!==void 0&&(r.status=n.status),n.current_step!==void 0&&(r.current_step=n.current_step),n.engine_instance_id!==void 0&&(r.engine_instance_id=n.engine_instance_id),n.target_worker_version!==void 0&&(r.target_worker_version=n.target_worker_version),n.target_database_version!==void 0&&(r.target_database_version=n.target_database_version),n.error!==void 0&&(r.error=n.error),n.finished_at!==void 0&&(r.finished_at=n.finished_at);let i=await e.updateTable(`tenant_operations`).where(`id`,`=`,t).set(r).executeTakeFirst();return Number(i.numUpdatedRows)>0},async remove(t){let n=await e.deleteFrom(`tenant_operations`).where(`id`,`=`,t).executeTakeFirst();return Number(n.numDeletedRows)>0}}}var ya=`0123456789ABCDEFGHJKMNPQRSTVWXYZ`,ba=32,xa=10,Sa=4,Ca=10;function wa(e,t){let n=``;for(let r=t;r>0;r--)n=ya.charAt(e%ba)+n,e=Math.floor(e/ba);return n}function Ta(){let e=new Uint8Array(Ca);crypto.getRandomValues(e);let t=``;for(let n=0;n<Ca;n++)t+=ya.charAt(e[n]%ba);return t}var Ea=0,Da=0;function Oa(){let e=Date.now();return e===Ea?Da++:(Ea=e,Da=0),wa(e,xa)+wa(Da,Sa)+Ta()}function ka(e){if(!e)return null;try{let t=JSON.parse(e);if(t&&typeof t==`object`&&!Array.isArray(t))return Object.fromEntries(Object.entries(t))}catch{}return null}function Aa(e){return i.tenantOperationEventSchema.parse({id:e.id,operation_id:e.operation_id,step:e.step,outcome:e.outcome,detail:ka(e.detail),attempt:e.attempt,created_at:e.created_at})}function ja(e){return{async create(t){let n=i.tenantOperationEventInsertSchema.parse(t),r={id:`evt_${Oa()}`,operation_id:n.operation_id,step:n.step,outcome:n.outcome,detail:n.detail?JSON.stringify(n.detail):null,attempt:n.attempt,created_at:new Date().toISOString()};return await e.insertInto(`tenant_operation_events`).values(r).execute(),Aa(r)},async listByOperation(t,n={}){let r=n.page??0,i=n.per_page??100,a=await e.selectFrom(`tenant_operation_events`).where(`operation_id`,`=`,t).selectAll().orderBy(`created_at`,`asc`).orderBy(`id`,`asc`).offset(r*i).limit(i).execute();return{events:a.map(Aa),start:r*i,limit:i,length:a.length}}}}function Ma(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function Na(e){return i.rolloutSchema.parse({id:e.id,kind:e.kind,status:e.status,target_worker_version:e.target_worker_version,target_database_version:e.target_database_version,wave_size:e.wave_size,canary_tenant_ids:Ma(e.canary_tenant_ids),filter:Ma(e.filter),initiated_by:e.initiated_by,created_at:e.created_at,updated_at:e.updated_at,finished_at:e.finished_at})}function Pa(e){return{async create(t){let r=i.rolloutInsertSchema.parse(t),a=new Date().toISOString(),o={id:`rol_${(0,n.nanoid)()}`,kind:r.kind,status:`pending`,target_worker_version:r.target_worker_version??null,target_database_version:r.target_database_version??null,wave_size:r.wave_size,canary_tenant_ids:r.canary_tenant_ids?JSON.stringify(r.canary_tenant_ids):null,filter:r.filter?JSON.stringify(r.filter):null,initiated_by:r.initiated_by??null,created_at:a,updated_at:a,finished_at:null};return await e.insertInto(`rollouts`).values(o).execute(),Na(o)},async get(t){let n=await e.selectFrom(`rollouts`).where(`id`,`=`,t).selectAll().executeTakeFirst();return n?Na(n):null},async list(t={}){let n=t.page??0,r=t.per_page??50,i=await e.selectFrom(`rollouts`).selectAll().orderBy(`created_at`,`desc`).orderBy(`id`,`desc`).offset(n*r).limit(r).execute();return{rollouts:i.map(Na),start:n*r,limit:r,length:i.length}},async update(t,n){let r={updated_at:new Date().toISOString()};n.status!==void 0&&(r.status=n.status),n.wave_size!==void 0&&(r.wave_size=n.wave_size),n.canary_tenant_ids!==void 0&&(r.canary_tenant_ids=n.canary_tenant_ids?JSON.stringify(n.canary_tenant_ids):null),n.filter!==void 0&&(r.filter=n.filter?JSON.stringify(n.filter):null),n.finished_at!==void 0&&(r.finished_at=n.finished_at);let i=await e.updateTable(`rollouts`).where(`id`,`=`,t).set(r).executeTakeFirst();return Number(i.numUpdatedRows)>0},async remove(t){let n=await e.deleteFrom(`rollouts`).where(`id`,`=`,t).executeTakeFirst();return Number(n.numDeletedRows)>0}}}function Fa(e){return typeof e==`string`}function Ia(e){return typeof e==`object`&&!!e}function La(e){return e[e.length-1]}function H(e){return Object.freeze(e)}var Ra=class{transformQuery(e){return e.node}async transformResult(e){return e.result}},za=H({is(e){return e.kind===`AliasNode`},create(e,t){return H({kind:`AliasNode`,node:e,alias:t})}}),U=H({is(e){return e.kind===`IdentifierNode`},create(e){return H({kind:`IdentifierNode`,name:e})}}),Ba=H({is(e){return e.kind===`AndNode`},create(e,t){return H({kind:`AndNode`,left:e,right:t})}}),Va=H({is(e){return e.kind===`OrNode`},create(e,t){return H({kind:`OrNode`,left:e,right:t})}}),Ha=H({is(e){return e.kind===`OnNode`},create(e){return H({kind:`OnNode`,on:e})},cloneWithOperation(e,t,n){return H({...e,on:t===`And`?Ba.create(e.on,n):Va.create(e.on,n)})}}),Ua=H({is(e){return e.kind===`JoinNode`},create(e,t){return H({kind:`JoinNode`,joinType:e,table:t,on:void 0})},createWithOn(e,t,n){return H({kind:`JoinNode`,joinType:e,table:t,on:Ha.create(n)})},cloneWithOn(e,t){return H({...e,on:e.on?Ha.cloneWithOperation(e.on,`And`,t):Ha.create(t)})}}),Wa=H({is(e){return e.kind===`ListNode`},create(e){return H({kind:`ListNode`,items:H(e)})}}),Ga=class{nodeStack=[];#e=H({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),RenameConstraintNode:this.transformRenameConstraint.bind(this),ForeignKeyConstraintNode:this.transformForeignKeyConstraint.bind(this),CreateViewNode:this.transformCreateView.bind(this),RefreshMaterializedViewNode:this.transformRefreshMaterializedView.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),OrActionNode:this.transformOrAction.bind(this),CollateNode:this.transformCollate.bind(this),AlterTypeNode:this.transformAlterType.bind(this),AddValueNode:this.transformAddValue.bind(this),RenameValueNode:this.transformRenameValue.bind(this)});transformNode(e,t){if(!e)return e;this.nodeStack.push(e);let n=this.transformNodeImpl(e,t);return this.nodeStack.pop(),H(n)}transformNodeImpl(e,t){return this.#e[e.kind](e,t)}transformNodeList(e,t){return e&&H(e.map(e=>this.transformNode(e,t)))}transformSelectQuery(e,t){return{kind:`SelectQueryNode`,from:this.transformNode(e.from,t),selections:this.transformNodeList(e.selections,t),distinctOn:this.transformNodeList(e.distinctOn,t),joins:this.transformNodeList(e.joins,t),groupBy:this.transformNode(e.groupBy,t),orderBy:this.transformNode(e.orderBy,t),where:this.transformNode(e.where,t),frontModifiers:this.transformNodeList(e.frontModifiers,t),endModifiers:this.transformNodeList(e.endModifiers,t),limit:this.transformNode(e.limit,t),offset:this.transformNode(e.offset,t),with:this.transformNode(e.with,t),having:this.transformNode(e.having,t),explain:this.transformNode(e.explain,t),setOperations:this.transformNodeList(e.setOperations,t),fetch:this.transformNode(e.fetch,t),top:this.transformNode(e.top,t)}}transformSelection(e,t){return{kind:`SelectionNode`,selection:this.transformNode(e.selection,t)}}transformColumn(e,t){return{kind:`ColumnNode`,column:this.transformNode(e.column,t)}}transformAlias(e,t){return{kind:`AliasNode`,node:this.transformNode(e.node,t),alias:this.transformNode(e.alias,t)}}transformTable(e,t){return{kind:`TableNode`,table:this.transformNode(e.table,t)}}transformFrom(e,t){return{kind:`FromNode`,froms:this.transformNodeList(e.froms,t)}}transformReference(e,t){return{kind:`ReferenceNode`,column:this.transformNode(e.column,t),table:this.transformNode(e.table,t)}}transformAnd(e,t){return{kind:`AndNode`,left:this.transformNode(e.left,t),right:this.transformNode(e.right,t)}}transformOr(e,t){return{kind:`OrNode`,left:this.transformNode(e.left,t),right:this.transformNode(e.right,t)}}transformValueList(e,t){return{kind:`ValueListNode`,values:this.transformNodeList(e.values,t)}}transformParens(e,t){return{kind:`ParensNode`,node:this.transformNode(e.node,t)}}transformJoin(e,t){return{kind:`JoinNode`,joinType:e.joinType,table:this.transformNode(e.table,t),on:this.transformNode(e.on,t)}}transformRaw(e,t){return{kind:`RawNode`,sqlFragments:H([...e.sqlFragments]),parameters:this.transformNodeList(e.parameters,t)}}transformWhere(e,t){return{kind:`WhereNode`,where:this.transformNode(e.where,t)}}transformInsertQuery(e,t){return{kind:`InsertQueryNode`,into:this.transformNode(e.into,t),columns:this.transformNodeList(e.columns,t),values:this.transformNode(e.values,t),returning:this.transformNode(e.returning,t),onConflict:this.transformNode(e.onConflict,t),onDuplicateKey:this.transformNode(e.onDuplicateKey,t),endModifiers:this.transformNodeList(e.endModifiers,t),with:this.transformNode(e.with,t),orAction:this.transformNode(e.orAction,t),replace:e.replace,explain:this.transformNode(e.explain,t),defaultValues:e.defaultValues,top:this.transformNode(e.top,t),output:this.transformNode(e.output,t)}}transformValues(e,t){return{kind:`ValuesNode`,values:this.transformNodeList(e.values,t)}}transformDeleteQuery(e,t){return{kind:`DeleteQueryNode`,from:this.transformNode(e.from,t),using:this.transformNode(e.using,t),joins:this.transformNodeList(e.joins,t),where:this.transformNode(e.where,t),returning:this.transformNode(e.returning,t),endModifiers:this.transformNodeList(e.endModifiers,t),with:this.transformNode(e.with,t),orderBy:this.transformNode(e.orderBy,t),limit:this.transformNode(e.limit,t),explain:this.transformNode(e.explain,t),top:this.transformNode(e.top,t),output:this.transformNode(e.output,t)}}transformReturning(e,t){return{kind:`ReturningNode`,selections:this.transformNodeList(e.selections,t)}}transformCreateTable(e,t){return{kind:`CreateTableNode`,table:this.transformNode(e.table,t),columns:this.transformNodeList(e.columns,t),constraints:this.transformNodeList(e.constraints,t),indexes:this.transformNodeList(e.indexes,t),temporary:e.temporary,ifNotExists:e.ifNotExists,onCommit:e.onCommit,frontModifiers:this.transformNodeList(e.frontModifiers,t),endModifiers:this.transformNodeList(e.endModifiers,t),selectQuery:this.transformNode(e.selectQuery,t)}}transformColumnDefinition(e,t){return{kind:`ColumnDefinitionNode`,column:this.transformNode(e.column,t),dataType:this.transformNode(e.dataType,t),references:this.transformNode(e.references,t),primaryKey:e.primaryKey,autoIncrement:e.autoIncrement,unique:e.unique,notNull:e.notNull,unsigned:e.unsigned,defaultTo:this.transformNode(e.defaultTo,t),check:this.transformNode(e.check,t),generated:this.transformNode(e.generated,t),frontModifiers:this.transformNodeList(e.frontModifiers,t),endModifiers:this.transformNodeList(e.endModifiers,t),nullsNotDistinct:e.nullsNotDistinct,identity:e.identity,ifNotExists:e.ifNotExists}}transformAddColumn(e,t){return{kind:`AddColumnNode`,column:this.transformNode(e.column,t)}}transformDropTable(e,t){return{kind:`DropTableNode`,table:this.transformNode(e.table,t),ifExists:e.ifExists,cascade:e.cascade,temporary:e.temporary}}transformOrderBy(e,t){return{kind:`OrderByNode`,items:this.transformNodeList(e.items,t)}}transformOrderByItem(e,t){return{kind:`OrderByItemNode`,orderBy:this.transformNode(e.orderBy,t),direction:this.transformNode(e.direction,t),collation:this.transformNode(e.collation,t),nulls:e.nulls}}transformGroupBy(e,t){return{kind:`GroupByNode`,items:this.transformNodeList(e.items,t)}}transformGroupByItem(e,t){return{kind:`GroupByItemNode`,groupBy:this.transformNode(e.groupBy,t)}}transformUpdateQuery(e,t){return{kind:`UpdateQueryNode`,table:this.transformNode(e.table,t),from:this.transformNode(e.from,t),joins:this.transformNodeList(e.joins,t),where:this.transformNode(e.where,t),updates:this.transformNodeList(e.updates,t),returning:this.transformNode(e.returning,t),endModifiers:this.transformNodeList(e.endModifiers,t),with:this.transformNode(e.with,t),explain:this.transformNode(e.explain,t),limit:this.transformNode(e.limit,t),top:this.transformNode(e.top,t),output:this.transformNode(e.output,t),orderBy:this.transformNode(e.orderBy,t)}}transformColumnUpdate(e,t){return{kind:`ColumnUpdateNode`,column:this.transformNode(e.column,t),value:this.transformNode(e.value,t)}}transformLimit(e,t){return{kind:`LimitNode`,limit:this.transformNode(e.limit,t)}}transformOffset(e,t){return{kind:`OffsetNode`,offset:this.transformNode(e.offset,t)}}transformOnConflict(e,t){return{kind:`OnConflictNode`,columns:this.transformNodeList(e.columns,t),constraint:this.transformNode(e.constraint,t),indexExpression:this.transformNode(e.indexExpression,t),indexWhere:this.transformNode(e.indexWhere,t),updates:this.transformNodeList(e.updates,t),updateWhere:this.transformNode(e.updateWhere,t),doNothing:e.doNothing}}transformOnDuplicateKey(e,t){return{kind:`OnDuplicateKeyNode`,updates:this.transformNodeList(e.updates,t)}}transformCreateIndex(e,t){return{kind:`CreateIndexNode`,name:this.transformNode(e.name,t),table:this.transformNode(e.table,t),columns:this.transformNodeList(e.columns,t),unique:e.unique,using:this.transformNode(e.using,t),ifNotExists:e.ifNotExists,where:this.transformNode(e.where,t),nullsNotDistinct:e.nullsNotDistinct}}transformList(e,t){return{kind:`ListNode`,items:this.transformNodeList(e.items,t)}}transformDropIndex(e,t){return{kind:`DropIndexNode`,name:this.transformNode(e.name,t),table:this.transformNode(e.table,t),ifExists:e.ifExists,cascade:e.cascade}}transformPrimaryKeyConstraint(e,t){return{kind:`PrimaryKeyConstraintNode`,columns:this.transformNodeList(e.columns,t),name:this.transformNode(e.name,t),deferrable:e.deferrable,initiallyDeferred:e.initiallyDeferred}}transformUniqueConstraint(e,t){return{kind:`UniqueConstraintNode`,columns:this.transformNodeList(e.columns,t),name:this.transformNode(e.name,t),nullsNotDistinct:e.nullsNotDistinct,deferrable:e.deferrable,initiallyDeferred:e.initiallyDeferred}}transformForeignKeyConstraint(e,t){return{kind:`ForeignKeyConstraintNode`,columns:this.transformNodeList(e.columns,t),references:this.transformNode(e.references,t),name:this.transformNode(e.name,t),onDelete:e.onDelete,onUpdate:e.onUpdate,deferrable:e.deferrable,initiallyDeferred:e.initiallyDeferred}}transformSetOperation(e,t){return{kind:`SetOperationNode`,operator:e.operator,expression:this.transformNode(e.expression,t),all:e.all}}transformReferences(e,t){return{kind:`ReferencesNode`,table:this.transformNode(e.table,t),columns:this.transformNodeList(e.columns,t),onDelete:e.onDelete,onUpdate:e.onUpdate}}transformCheckConstraint(e,t){return{kind:`CheckConstraintNode`,expression:this.transformNode(e.expression,t),name:this.transformNode(e.name,t)}}transformWith(e,t){return{kind:`WithNode`,expressions:this.transformNodeList(e.expressions,t),recursive:e.recursive}}transformCommonTableExpression(e,t){return{kind:`CommonTableExpressionNode`,name:this.transformNode(e.name,t),materialized:e.materialized,expression:this.transformNode(e.expression,t)}}transformCommonTableExpressionName(e,t){return{kind:`CommonTableExpressionNameNode`,table:this.transformNode(e.table,t),columns:this.transformNodeList(e.columns,t)}}transformHaving(e,t){return{kind:`HavingNode`,having:this.transformNode(e.having,t)}}transformCreateSchema(e,t){return{kind:`CreateSchemaNode`,schema:this.transformNode(e.schema,t),ifNotExists:e.ifNotExists}}transformDropSchema(e,t){return{kind:`DropSchemaNode`,schema:this.transformNode(e.schema,t),ifExists:e.ifExists,cascade:e.cascade}}transformAlterTable(e,t){return{kind:`AlterTableNode`,table:this.transformNode(e.table,t),renameTo:this.transformNode(e.renameTo,t),setSchema:this.transformNode(e.setSchema,t),columnAlterations:this.transformNodeList(e.columnAlterations,t),addConstraint:this.transformNode(e.addConstraint,t),dropConstraint:this.transformNode(e.dropConstraint,t),renameConstraint:this.transformNode(e.renameConstraint,t),addIndex:this.transformNode(e.addIndex,t),dropIndex:this.transformNode(e.dropIndex,t)}}transformDropColumn(e,t){return{kind:`DropColumnNode`,column:this.transformNode(e.column,t),ifExists:e.ifExists}}transformRenameColumn(e,t){return{kind:`RenameColumnNode`,column:this.transformNode(e.column,t),renameTo:this.transformNode(e.renameTo,t)}}transformAlterColumn(e,t){return{kind:`AlterColumnNode`,column:this.transformNode(e.column,t),dataType:this.transformNode(e.dataType,t),dataTypeExpression:this.transformNode(e.dataTypeExpression,t),setDefault:this.transformNode(e.setDefault,t),dropDefault:e.dropDefault,setNotNull:e.setNotNull,dropNotNull:e.dropNotNull}}transformModifyColumn(e,t){return{kind:`ModifyColumnNode`,column:this.transformNode(e.column,t)}}transformAddConstraint(e,t){return{kind:`AddConstraintNode`,constraint:this.transformNode(e.constraint,t)}}transformDropConstraint(e,t){return{kind:`DropConstraintNode`,constraintName:this.transformNode(e.constraintName,t),ifExists:e.ifExists,modifier:e.modifier}}transformRenameConstraint(e,t){return{kind:`RenameConstraintNode`,oldName:this.transformNode(e.oldName,t),newName:this.transformNode(e.newName,t)}}transformCreateView(e,t){return{kind:`CreateViewNode`,name:this.transformNode(e.name,t),temporary:e.temporary,orReplace:e.orReplace,ifNotExists:e.ifNotExists,materialized:e.materialized,columns:this.transformNodeList(e.columns,t),as:this.transformNode(e.as,t)}}transformRefreshMaterializedView(e,t){return{kind:`RefreshMaterializedViewNode`,name:this.transformNode(e.name,t),concurrently:e.concurrently,withNoData:e.withNoData}}transformDropView(e,t){return{kind:`DropViewNode`,name:this.transformNode(e.name,t),ifExists:e.ifExists,materialized:e.materialized,cascade:e.cascade}}transformGenerated(e,t){return{kind:`GeneratedNode`,byDefault:e.byDefault,always:e.always,identity:e.identity,stored:e.stored,expression:this.transformNode(e.expression,t)}}transformDefaultValue(e,t){return{kind:`DefaultValueNode`,defaultValue:this.transformNode(e.defaultValue,t)}}transformOn(e,t){return{kind:`OnNode`,on:this.transformNode(e.on,t)}}transformSelectModifier(e,t){return{kind:`SelectModifierNode`,modifier:e.modifier,rawModifier:this.transformNode(e.rawModifier,t),of:this.transformNodeList(e.of,t)}}transformCreateType(e,t){return{kind:`CreateTypeNode`,name:this.transformNode(e.name,t),enum:this.transformNode(e.enum,t)}}transformDropType(e,t){return{kind:`DropTypeNode`,name:this.transformNode(e.name,t),additionalNames:this.transformNodeList(e.additionalNames,t),cascade:e.cascade,ifExists:e.ifExists}}transformExplain(e,t){return{kind:`ExplainNode`,format:e.format,options:this.transformNode(e.options,t)}}transformSchemableIdentifier(e,t){return{kind:`SchemableIdentifierNode`,schema:this.transformNode(e.schema,t),identifier:this.transformNode(e.identifier,t)}}transformAggregateFunction(e,t){return{kind:`AggregateFunctionNode`,func:e.func,aggregated:this.transformNodeList(e.aggregated,t),distinct:e.distinct,orderBy:this.transformNode(e.orderBy,t),withinGroup:this.transformNode(e.withinGroup,t),filter:this.transformNode(e.filter,t),over:this.transformNode(e.over,t)}}transformOver(e,t){return{kind:`OverNode`,orderBy:this.transformNode(e.orderBy,t),partitionBy:this.transformNode(e.partitionBy,t)}}transformPartitionBy(e,t){return{kind:`PartitionByNode`,items:this.transformNodeList(e.items,t)}}transformPartitionByItem(e,t){return{kind:`PartitionByItemNode`,partitionBy:this.transformNode(e.partitionBy,t)}}transformBinaryOperation(e,t){return{kind:`BinaryOperationNode`,leftOperand:this.transformNode(e.leftOperand,t),operator:this.transformNode(e.operator,t),rightOperand:this.transformNode(e.rightOperand,t)}}transformUnaryOperation(e,t){return{kind:`UnaryOperationNode`,operator:this.transformNode(e.operator,t),operand:this.transformNode(e.operand,t)}}transformUsing(e,t){return{kind:`UsingNode`,tables:this.transformNodeList(e.tables,t)}}transformFunction(e,t){return{kind:`FunctionNode`,func:e.func,arguments:this.transformNodeList(e.arguments,t)}}transformCase(e,t){return{kind:`CaseNode`,value:this.transformNode(e.value,t),when:this.transformNodeList(e.when,t),else:this.transformNode(e.else,t),isStatement:e.isStatement}}transformWhen(e,t){return{kind:`WhenNode`,condition:this.transformNode(e.condition,t),result:this.transformNode(e.result,t)}}transformJSONReference(e,t){return{kind:`JSONReferenceNode`,reference:this.transformNode(e.reference,t),traversal:this.transformNode(e.traversal,t)}}transformJSONPath(e,t){return{kind:`JSONPathNode`,inOperator:this.transformNode(e.inOperator,t),pathLegs:this.transformNodeList(e.pathLegs,t)}}transformJSONPathLeg(e,t){return{kind:`JSONPathLegNode`,type:e.type,value:e.value}}transformJSONOperatorChain(e,t){return{kind:`JSONOperatorChainNode`,operator:this.transformNode(e.operator,t),values:this.transformNodeList(e.values,t)}}transformTuple(e,t){return{kind:`TupleNode`,values:this.transformNodeList(e.values,t)}}transformMergeQuery(e,t){return{kind:`MergeQueryNode`,into:this.transformNode(e.into,t),using:this.transformNode(e.using,t),whens:this.transformNodeList(e.whens,t),with:this.transformNode(e.with,t),top:this.transformNode(e.top,t),endModifiers:this.transformNodeList(e.endModifiers,t),output:this.transformNode(e.output,t),returning:this.transformNode(e.returning,t)}}transformMatched(e,t){return{kind:`MatchedNode`,not:e.not,bySource:e.bySource}}transformAddIndex(e,t){return{kind:`AddIndexNode`,name:this.transformNode(e.name,t),columns:this.transformNodeList(e.columns,t),unique:e.unique,using:this.transformNode(e.using,t),ifNotExists:e.ifNotExists}}transformCast(e,t){return{kind:`CastNode`,expression:this.transformNode(e.expression,t),dataType:this.transformNode(e.dataType,t)}}transformFetch(e,t){return{kind:`FetchNode`,rowCount:this.transformNode(e.rowCount,t),modifier:e.modifier}}transformTop(e,t){return{kind:`TopNode`,expression:e.expression,modifiers:e.modifiers}}transformOutput(e,t){return{kind:`OutputNode`,selections:this.transformNodeList(e.selections,t)}}transformAlterType(e,t){return{kind:`AlterTypeNode`,name:this.transformNode(e.name,t),addValue:this.transformNode(e.addValue,t),renameTo:this.transformNode(e.renameTo,t),renameValue:this.transformNode(e.renameValue,t),setSchema:this.transformNode(e.setSchema,t)}}transformAddValue(e,t){return{kind:`AddValueNode`,value:this.transformNode(e.value,t),ifNotExists:e.ifNotExists,isBefore:e.isBefore,neighborValue:this.transformNode(e.neighborValue,t)}}transformRenameValue(e,t){return{kind:`RenameValueNode`,oldValue:this.transformNode(e.oldValue,t),newValue:this.transformNode(e.newValue,t)}}transformDataType(e,t){return e}transformSelectAll(e,t){return e}transformIdentifier(e,t){return e}transformValue(e,t){return e}transformPrimitiveValueList(e,t){return e}transformOperator(e,t){return e}transformDefaultInsertValue(e,t){return e}transformOrAction(e,t){return e}transformCollate(e,t){return e}};function Ka(e){return Ia(e)&&Fa(e.kind)}var qa={AlterTableNode:!0,AlterTypeNode:!0,CreateIndexNode:!0,CreateSchemaNode:!0,CreateTableNode:!0,CreateTypeNode:!0,CreateViewNode:!0,DeleteQueryNode:!0,DropIndexNode:!0,DropSchemaNode:!0,DropTableNode:!0,DropTypeNode:!0,RefreshMaterializedViewNode:!0,DropViewNode:!0,InsertQueryNode:!0,RawNode:!0,SelectQueryNode:!0,UpdateQueryNode:!0,MergeQueryNode:!0};function Ja(e){return Ka(e)&&qa[e.kind]===!0}var Ya=H({is(e){return e.kind===`SchemableIdentifierNode`},create(e){return H({kind:`SchemableIdentifierNode`,identifier:U.create(e)})},createWithSchema(e,t){return H({kind:`SchemableIdentifierNode`,schema:U.create(e),identifier:U.create(t)})}}),W=H({is(e){return e.kind===`TableNode`},create(e){return H({kind:`TableNode`,table:Ya.create(e)})},createWithSchema(e,t){return H({kind:`TableNode`,table:Ya.createWithSchema(e,t)})}}),Xa=H({is(e){return e.kind===`UsingNode`},create(e){return H({kind:`UsingNode`,tables:H(e)})},cloneWithTables(e,t){return H({...e,tables:H([...e.tables,...t])})}}),Za=H({json_agg:!0,to_json:!0}),Qa=class extends Ga{#e;#t=new Set;#n=new Set;constructor(e){super(),this.#e=e}transformNodeImpl(e,t){if(!Ja(e))return super.transformNodeImpl(e,t);let n=this.#a(e);for(let e of n)this.#n.add(e);let r=this.#i(e);for(let e of r)this.#t.add(e);let i=super.transformNodeImpl(e,t);for(let e of r)this.#t.delete(e);for(let e of n)this.#n.delete(e);return i}transformSchemableIdentifier(e,t){let n=super.transformSchemableIdentifier(e,t);return n.schema||!this.#t.has(e.identifier.name)?n:{...n,schema:U.create(this.#e)}}transformReferences(e,t){let n=super.transformReferences(e,t);return n.table.table.schema?n:{...n,table:W.createWithSchema(this.#e,n.table.table.identifier.name)}}transformAggregateFunction(e,t){return{...super.transformAggregateFunction({...e,aggregated:[]},t),aggregated:this.#r(e,t,`aggregated`)}}transformFunction(e,t){return{...super.transformFunction({...e,arguments:[]},t),arguments:this.#r(e,t,`arguments`)}}transformSelectModifier(e,t){return{...super.transformSelectModifier({...e,of:void 0},t),of:e.of?.map(e=>W.is(e)&&!e.table.schema?{...e,table:this.transformIdentifier(e.table.identifier,t)}:this.transformNode(e,t))}}#r(e,t,n){return Za[e.func]?e[n].map(e=>!W.is(e)||e.table.schema?this.transformNode(e,t):{...e,table:this.transformIdentifier(e.table.identifier,t)}):this.transformNodeList(e[n],t)}#i(e){let t=new Set;if(`name`in e&&e.name&&Ya.is(e.name)&&this.#s(e.name,t),`from`in e&&e.from)for(let n of e.from.froms)this.#o(n,t);if(`into`in e&&e.into&&this.#o(e.into,t),`table`in e&&e.table&&this.#o(e.table,t),`joins`in e&&e.joins)for(let n of e.joins)this.#o(n.table,t);return`using`in e&&e.using&&(Ua.is(e.using)?this.#o(e.using.table,t):this.#o(e.using,t)),t}#a(e){let t=new Set;return`with`in e&&e.with&&this.#c(e.with,t),t}#o(e,t){if(W.is(e))return this.#s(e.table,t);if(za.is(e)&&W.is(e.node))return this.#s(e.node.table,t);if(Wa.is(e)){for(let n of e.items)this.#o(n,t);return}if(Xa.is(e)){for(let n of e.tables)this.#o(n,t);return}}#s(e,t){let n=e.identifier.name;!this.#t.has(n)&&!this.#n.has(n)&&t.add(n)}#c(e,t){for(let n of e.expressions){let e=n.name.table.table.identifier.name;this.#n.has(e)||t.add(e)}}},$a=class{#e;constructor(e){this.#e=new Qa(e)}transformQuery(e){return this.#e.transformNode(e.node,e.queryId)}async transformResult(e){return e.result}},eo=`migration_lock`;H({__noMigrations__:!0});var to=class{#e;constructor(e){this.#e=H(e)}async getMigrations(){let e=await this.#f(this.#r)?await this.#e.db.withPlugin(this.#o).selectFrom(this.#r).select([`name`,`timestamp`]).$narrowType().execute():[];return(await this.#_()).map(({name:t,...n})=>{let r=e.find(e=>e.name===t);return{name:t,migration:n,executedAt:r?new Date(r.timestamp):void 0}})}async migrateToLatest(e){return this.#t(()=>({direction:`Up`,step:1/0}),e)}async migrateTo(e,t){return this.#t(({migrations:t,executedMigrations:n,pendingMigrations:r})=>{if(Ia(e)&&e.__noMigrations__===!0)return{direction:`Down`,step:1/0};if(!t.find(t=>t.name===e))throw Error(`migration "${e}" doesn't exist`);let i=n.indexOf(e),a=r.findIndex(t=>t.name===e);if(i!==-1)return{direction:`Down`,step:n.length-i-1};if(a!==-1)return{direction:`Up`,step:a+1};throw Error(`migration "${e}" isn't executed or pending`)},t)}async migrateUp(e){return this.#t(()=>({direction:`Up`,step:1}),e)}async migrateDown(e){return this.#t(()=>({direction:`Down`,step:1}),e)}async#t(e,t){try{return await this.#s(),await this.#c(),await this.#l(),await this.#u(),await this.#m(e,t)}catch(e){return e instanceof no?e.resultSet:{error:e}}}get#n(){return this.#e.migrationTableSchema}get#r(){return this.#e.migrationTableName??`kysely_migration`}get#i(){return this.#e.migrationLockTableName??`kysely_migration_lock`}get#a(){return this.#e.allowUnorderedMigrations??!1}get#o(){return this.#n?new $a(this.#n):new Ra}async#s(){if(this.#n&&!await this.#d())try{await this.#C(this.#e.db.schema.createSchema(this.#n))}catch(e){if(!await this.#d())throw e}}async#c(){if(!await this.#f(this.#r))try{await this.#C(this.#e.db.schema.withPlugin(this.#o).createTable(this.#r).addColumn(`name`,`varchar(255)`,e=>e.notNull().primaryKey()).addColumn(`timestamp`,`varchar(255)`,e=>e.notNull()))}catch(e){if(!await this.#f(this.#r))throw e}}async#l(){if(!await this.#f(this.#i))try{await this.#C(this.#e.db.schema.withPlugin(this.#o).createTable(this.#i).addColumn(`id`,`varchar(255)`,e=>e.notNull().primaryKey()).addColumn(`is_locked`,`integer`,e=>e.notNull().defaultTo(0)))}catch(e){if(!await this.#f(this.#i))throw e}}async#u(){if(!await this.#p())try{await this.#e.db.withPlugin(this.#o).insertInto(this.#i).values({id:eo,is_locked:0}).execute()}catch(e){if(!await this.#p())throw e}}async#d(){return(await this.#e.db.introspection.getSchemas()).some(e=>e.name===this.#n)}async#f(e){let t=this.#n;return(await this.#e.db.introspection.getTables({withInternalKyselyTables:!0})).some(n=>n.name===e&&(!t||n.schema===t))}async#p(){return!!await this.#e.db.withPlugin(this.#o).selectFrom(this.#i).where(`id`,`=`,eo).select(`id`).executeTakeFirst()}async#m(e,t){let n=this.#e.db.getExecutor().adapter,r=H({lockTable:this.#e.migrationLockTableName??`kysely_migration_lock`,lockRowId:eo,lockTableSchema:this.#e.migrationTableSchema}),i=async t=>{let n=await this.#h(t);if(n.migrations.length===0)return{results:[]};let{direction:r,step:i}=e(n);return i<=0?{results:[]}:r===`Down`?await this.#x(t,n,i):r===`Up`?await this.#S(t,n,i):{results:[]}},a=async(e,t)=>{try{return await n.acquireMigrationLock(e,r),await t(e)}finally{await n.releaseMigrationLock(e,r)}},o=t?.disableTransactions??this.#e.disableTransactions;if(this.#e.db.isTransaction){if(!n.supportsTransactionalDdl)throw Error(`Transactional DDL is not supported in this dialect. Passing a transaction to this migrator would result in failure or unexpected behavior.`);if(o)throw Error("`disableTransactions` is true but the migrator was given a transaction. Passing a transaction to this migrator would result in failure or unexpected behavior.");return a(this.#e.db,i)}return n.supportsTransactionalDdl&&!o?this.#e.db.connection().execute(e=>a(e,e=>e.transaction().execute(e=>i(e)))):this.#e.db.connection().execute(e=>a(e,i))}async#h(e){let t=await this.#_(),n=await this.#v(e);this.#y(t,n),this.#a||this.#b(t,n);let r=this.#g(t,n);return H({migrations:t,executedMigrations:n,lastMigration:La(n),pendingMigrations:r})}#g(e,t){return e.filter(e=>!t.includes(e.name))}async#_(){let e=await this.#e.provider.getMigrations();return Object.keys(e).sort().map(t=>({...e[t],name:t}))}async#v(e){let t=await e.withPlugin(this.#o).selectFrom(this.#r).select([`name`,`timestamp`]).$narrowType().execute(),n=this.#e.nameComparator||((e,t)=>e.localeCompare(t));return t.sort((e,t)=>e.timestamp===t.timestamp?n(e.name,t.name):new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime()).map(e=>e.name)}#y(e,t){for(let n of t)if(!e.some(e=>e.name===n))throw Error(`corrupted migrations: previously executed migration ${n} is missing`)}#b(e,t){for(let n=0;n<t.length;++n)if(e[n].name!==t[n])throw Error(`corrupted migrations: expected previously executed migration ${t[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.`)}async#x(e,t,n){let r=t.executedMigrations.toReversed().slice(0,n).map(e=>t.migrations.find(t=>t.name===e)),i=r.map(e=>({migrationName:e.name,direction:`Down`,status:`NotExecuted`}));for(let t=0;t<i.length;++t){let n=r[t];try{n.down&&(await n.down(e),await e.withPlugin(this.#o).deleteFrom(this.#r).where(`name`,`=`,n.name).execute(),i[t]={migrationName:n.name,direction:`Down`,status:`Success`})}catch(e){throw i[t]={migrationName:n.name,direction:`Down`,status:`Error`},new no({error:e,results:i})}}return{results:i}}async#S(e,t,n){let r=t.pendingMigrations.slice(0,n).map(e=>({migrationName:e.name,direction:`Up`,status:`NotExecuted`}));for(let n=0;n<r.length;n++){let i=t.pendingMigrations[n];try{await i.up(e),await e.withPlugin(this.#o).insertInto(this.#r).values({name:i.name,timestamp:new Date().toISOString()}).execute(),r[n]={migrationName:i.name,direction:`Up`,status:`Success`}}catch(e){throw r[n]={migrationName:i.name,direction:`Up`,status:`Error`},new no({error:e,results:r})}}return{results:r}}async#C(e){this.#e.db.getExecutor().adapter.supportsCreateIfNotExists&&(e=e.ifNotExists()),await e.execute()}},no=class extends Error{#e;constructor(e){super(),this.#e=e}get resultSet(){return this.#e}},ro=class{migrations;constructor(e){this.migrations=e}async getMigrations(){return this.migrations}},io=t({down:()=>oo,up:()=>ao});async function ao(e){await e.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 e.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 e.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 e.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 e.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 e.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 e.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 oo(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()}var so=t({down:()=>lo,up:()=>co});async function co(e){await e.schema.alterTable(`tenants`).addColumn(`support_url`,`varchar(255)`).execute()}async function lo(e){await e.schema.alterTable(`tenants`).dropColumn(`support_url`).execute()}var uo=t({down:()=>po,up:()=>fo});async function fo(e){}async function po(e){}var mo=t({down:()=>go,up:()=>ho});async function ho(e){await e.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 go(e){await e.schema.dropTable(`logs`).execute()}var _o=t({down:()=>yo,up:()=>vo});async function vo(e){}async function yo(e){}var bo=t({down:()=>So,up:()=>xo});async function xo(e){await e.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 e.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 e.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 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 So(e){await e.schema.dropTable(`sessions`).execute(),await e.schema.dropTable(`tickets`).execute(),await e.schema.dropTable(`otps`).execute()}var Co=t({down:()=>To,up:()=>wo});async function wo(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`],e=>e.onDelete(`cascade`)).addColumn(`created_at`,`varchar(255)`).addColumn(`updated_at`,`varchar(255)`).execute(),await e.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 e.schema.createIndex(`codes_expires_at_index`).on(`codes`).column(`expires_at`).execute()}async function To(e){await e.schema.dropTable(`passwords`).execute(),await e.schema.dropTable(`codes`).execute()}var Eo=t({down:()=>Oo,up:()=>Do});async function Do(e){}async function Oo(e){}var ko=t({down:()=>jo,up:()=>Ao});async function Ao(e){await e.schema.alterTable(`passwords`).addColumn(`password`,`varchar(255)`,e=>e.notNull()).execute()}async function jo(e){await e.schema.alterTable(`passwords`).dropColumn(`password`).execute()}var Mo=t({down:()=>Po,up:()=>No});async function No(e){}async function Po(e){}var Fo=t({down:()=>Lo,up:()=>Io});async function Io(e){}async function Lo(e){}var Ro=t({down:()=>Bo,up:()=>zo});async function zo(e){}async function Bo(e){}var Vo=t({down:()=>Uo,up:()=>Ho});async function Ho(e){await e.schema.createIndex(`users_email_index`).on(`users`).column(`email`).execute()}async function Uo(e){await e.schema.dropIndex(`users_email_index`).execute()}var Wo=t({down:()=>Ko,up:()=>Go});async function Go(e){await e.schema.alterTable(`users`).addColumn(`profileData`,`varchar(2048)`).execute()}async function Ko(e){await e.schema.alterTable(`users`).dropColumn(`profileData`).execute()}var qo=t({down:()=>Yo,up:()=>Jo});async function Jo(e){await e.schema.createIndex(`users_linked_to_index`).on(`users`).column(`linked_to`).execute()}async function Yo(e){await e.schema.dropIndex(`users_linked_to_index`)}var Xo=t({down:()=>Qo,up:()=>Zo});async function Zo(e){await e.schema.alterTable(`users`).addColumn(`locale`,`varchar(255)`).execute()}async function Qo(e){await e.schema.alterTable(`users`).dropColumn(`locale`).execute()}var $o=t({down:()=>ts,up:()=>es});async function es(e){await e.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 ts(e){await e.schema.dropTable(`keys`).execute()}var ns=t({down:()=>is,up:()=>rs});async function rs(e){}async function is(e){}var as=t({down:()=>ss,up:()=>os});async function os(e){}async function ss(e){}var cs=t({down:()=>us,up:()=>ls});async function ls(e){await e.schema.alterTable(`otps`).addColumn(`audience`,`varchar(255)`).execute()}async function us(e){await e.schema.alterTable(`otps`).dropColumn(`audience`).execute()}var ds=t({down:()=>ps,up:()=>fs});async function fs(e){}async function ps(e){}var ms=t({down:()=>gs,up:()=>hs});async function hs(e){await e.schema.alterTable(`logs`).dropColumn(`category`).execute()}async function gs(e){await e.schema.alterTable(`logs`).addColumn(`category`,`varchar(255)`,e=>e.notNull()).execute()}var _s=t({down:()=>ys,up:()=>vs});async function vs(e){await e.schema.alterTable(`users`).dropColumn(`tags`).execute()}async function ys(e){await e.schema.alterTable(`users`).addColumn(`tags`,`varchar(255)`).execute()}var bs=t({down:()=>Ss,up:()=>xs});async function xs(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 Ss(e){await e.schema.dropIndex(`logs_user_id`),await e.schema.dropIndex(`logs_tenant_id`),await e.schema.dropIndex(`logs_date`)}var Cs=t({down:()=>Ts,up:()=>ws});async function ws(e){await e.schema.alterTable(`logs`).dropColumn(`details`).execute(),await e.schema.alterTable(`logs`).addColumn(`details`,`varchar(8192)`).execute()}async function Ts(e){await e.schema.alterTable(`logs`).dropColumn(`details`).execute(),await e.schema.alterTable(`logs`).addColumn(`details`,`varchar(2048)`).execute()}var Es=t({down:()=>Os,up:()=>Ds});async function Ds(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 Os(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()}var ks=t({down:()=>js,up:()=>As});async function As(e){await e.schema.createIndex(`users_name_index`).on(`users`).column(`name`).execute()}async function js(e){await e.schema.dropIndex(`users_name_index`).execute()}var Ms=t({down:()=>Ps,up:()=>Ns});async function Ns(e){}async function Ps(e){await e.schema.alterTable(`users`).dropConstraint(`unique_email_provider`).execute()}var Fs=t({down:()=>Ls,up:()=>Is});async function Is(e){await e.schema.alterTable(`otps`).dropColumn(`state`).execute(),await e.schema.alterTable(`otps`).addColumn(`state`,`varchar(8192)`).execute()}async function Ls(e){await e.schema.alterTable(`otps`).dropColumn(`state`).execute(),await e.schema.alterTable(`otps`).addColumn(`state`,`varchar(1024)`).execute()}var Rs=t({down:()=>Bs,up:()=>zs});async function zs(e){await e.schema.alterTable(`tickets`).dropColumn(`state`).execute(),await e.schema.alterTable(`tickets`).addColumn(`state`,`varchar(8192)`).execute()}async function Bs(e){await e.schema.alterTable(`tickets`).dropColumn(`state`).execute(),await e.schema.alterTable(`tickets`).addColumn(`state`,`varchar(1024)`).execute()}var Vs=t({down:()=>Us,up:()=>Hs});async function Hs(e){await e.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 Us(e){await e.schema.dropTable(`branding`).execute()}var Ws=t({down:()=>Ks,up:()=>Gs});async function Gs(e){}async function Ks(e){}var qs=t({down:()=>Ys,up:()=>Js});async function Js(e){}async function Ys(e){}var Xs=t({down:()=>Qs,up:()=>Zs});async function Zs(e){}async function Qs(e){}var $s=t({down:()=>tc,up:()=>ec});async function ec(e){}async function tc(e){}var nc=t({down:()=>ic,up:()=>rc});async function rc(e){await e.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 ic(e){await e.schema.dropTable(`authentication_codes`).execute()}var ac=t({down:()=>sc,up:()=>oc});async function oc(e){}async function sc(e){}var cc=t({down:()=>uc,up:()=>lc});async function lc(e){await e.schema.alterTable(`otps`).addColumn(`ip`,`varchar(64)`).execute()}async function uc(e){await e.schema.alterTable(`otps`).dropColumn(`ip`).execute()}var dc=t({down:()=>pc,up:()=>fc});async function fc(e){await e.schema.alterTable(`logs`).dropColumn(`user_agent`).execute(),await e.schema.alterTable(`logs`).addColumn(`user_agent`,`varchar(1024)`).execute()}async function pc(e){await e.schema.alterTable(`logs`).dropColumn(`user_agent`).execute(),await e.schema.alterTable(`logs`).addColumn(`user_agent`,`varchar(255)`).execute()}var mc=t({down:()=>gc,up:()=>hc});async function hc(e){}async function gc(e){}var _c=t({down:()=>yc,up:()=>vc});async function vc(e){await e.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 yc(e){await e.schema.dropTable(`hooks`).execute()}var bc=t({down:()=>Sc,up:()=>xc});async function xc(e){}async function Sc(e){}var Cc=t({down:()=>Tc,up:()=>wc});async function wc(e){}async function Tc(e){}var Ec=t({down:()=>Oc,up:()=>Dc});async function Dc(e){await e.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 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)`,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 Oc(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)`,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()}var kc=t({down:()=>jc,up:()=>Ac});async function Ac(e){}async function jc(e){}var Mc=t({down:()=>Pc,up:()=>Nc});async function Nc(e){await e.schema.alterTable(`logins`).addColumn(`auth0Client`,`varchar(256)`).execute()}async function Pc(e){await e.schema.alterTable(`logins`).dropColumn(`auth0Client`).execute()}var Fc=t({down:()=>Lc,up:()=>Ic});async function Ic(e){await e.schema.alterTable(`logins`).dropColumn(`authParams_state`).execute(),await e.schema.alterTable(`logins`).addColumn(`authParams_state`,`varchar(8192)`).execute()}async function Lc(e){await e.schema.alterTable(`logins`).dropColumn(`authParams_state`).execute(),await e.schema.alterTable(`logins`).addColumn(`authParams_state`,`varchar(511)`).execute()}var Rc=t({down:()=>Bc,up:()=>zc});async function zc(e){}async function Bc(e){}var Vc=t({down:()=>Uc,up:()=>Hc});async function Hc(e){}async function Uc(e){}var Wc=t({down:()=>Kc,up:()=>Gc});async function Gc(e){await e.schema.alterTable(`logins`).addColumn(`authParams_nonce`,`varchar(255)`).execute()}async function Kc(e){await e.schema.alterTable(`logins`).dropColumn(`nonce`).execute()}var qc=t({down:()=>Yc,up:()=>Jc});async function Jc(e){}async function Yc(e){}var Xc=t({down:()=>Qc,up:()=>Zc});async function Zc(e){}async function Qc(e){}var $c=t({down:()=>tl,up:()=>el});async function el(e){await e.schema.dropTable(`codes`).execute(),await e.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 tl(e){await e.schema.dropTable(`codes`).execute(),await e.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()}var nl=t({down:()=>il,up:()=>rl});async function rl(e){await e.schema.dropTable(`otps`).execute(),await e.schema.dropTable(`authentication_codes`).execute()}async function il(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)`,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 e.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()}var al=t({down:()=>sl,up:()=>ol});async function ol(e){await e.schema.createIndex(`IDX_logs_tenant_date_type_user`).on(`logs`).columns([`tenant_id`,`date`,`type`,`user_id`]).execute()}async function sl(e){await e.schema.dropIndex(`IDX_logs_tenant_date_type_user`).on(`logs`).execute()}var cl=t({down:()=>ul,up:()=>ll});async function ll(e){}async function ul(e){}var dl=t({down:()=>pl,up:()=>fl});async function fl(e){await e.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 pl(e){await e.schema.dropTable(`prompt_settings`).execute()}var ml=t({down:()=>gl,up:()=>hl});async function hl(e){}async function gl(e){}var _l=t({down:()=>yl,up:()=>vl});async function vl(e){}async function yl(e){}var bl=t({down:()=>Sl,up:()=>xl});async function xl(e){}async function Sl(e){}var Cl=t({down:()=>Tl,up:()=>wl});async function wl(e){await e.schema.alterTable(`logins`).addColumn(`authParams_ui_locales`,`varchar(32)`).execute()}async function Tl(e){await e.schema.alterTable(`logins`).dropColumn(`authParams_ui_locales`).execute()}var El=t({down:()=>Ol,up:()=>Dl});async function Dl(e){await e.schema.alterTable(`logins`).addColumn(`authParams_prompt`,`varchar(16)`).execute()}async function Ol(e){await e.schema.alterTable(`logins`).dropColumn(`authParams_prompt`).execute()}var kl=t({down:()=>jl,up:()=>Al});async function Al(e){}async function jl(e){}var Ml=t({down:()=>Pl,up:()=>Nl});async function Nl(e){await e.schema.alterTable(`logins`).addColumn(`authParams_act_as`,`varchar(255)`).execute()}async function Pl(e){await e.schema.alterTable(`logins`).dropColumn(`authParam_act_as`).execute()}var Fl=t({down:()=>Ll,up:()=>Il});async function Il(e){await e.schema.alterTable(`codes`).addColumn(`code_verifier`,`varchar(128)`).execute()}async function Ll(e){await e.schema.alterTable(`codes`).dropColumn(`code_verifier`).execute()}var Rl=t({down:()=>Bl,up:()=>zl});async function zl(e){await e.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 Bl(e){await e.schema.dropTable(`email_providers`).execute()}var Vl=t({down:()=>Ul,up:()=>Hl});async function Hl(e){await e.schema.dropTable(`tickets`).execute()}async function Ul(e){await e.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()}var Wl=t({down:()=>Kl,up:()=>Gl});async function Gl(e){}async function Kl(e){await e.schema.alterTable(`logins`).dropColumn(`ip`).dropColumn(`useragent`).execute()}var ql=t({down:()=>Yl,up:()=>Jl});async function Jl(e){await e.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 Yl(e){await e.schema.dropTable(`refresh_tokens`).execute()}var Xl=t({down:()=>Ql,up:()=>Zl});async function Zl(e){}async function Ql(e){}var $l=t({down:()=>tu,up:()=>eu});async function eu(e){await e.schema.dropTable(`sessions`).execute(),await e.schema.dropTable(`refresh_tokens`).execute()}async function tu(e){await e.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 e.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()}var nu=t({down:()=>iu,up:()=>ru});async function ru(e){await e.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 e.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 iu(e){await e.schema.dropTable(`sessions_2`).execute(),await e.schema.dropTable(`refresh_tokens_2`).execute()}var au=t({down:()=>su,up:()=>ou});async function ou(e){await e.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 e.schema.dropTable(`domains`).execute()}async function su(e){await e.schema.dropTable(`custom_domains`).execute(),await e.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()}var cu=t({down:()=>uu,up:()=>lu});async function lu(e){}async function uu(e){await e.schema.alterTable(`logins`).dropColumn(`authParams_organization`).dropColumn(`authorization_url`).execute()}var du=t({down:()=>pu,up:()=>fu});async function fu(e){await e.schema.alterTable(`logins`).dropColumn(`authorization_url`).execute(),await e.schema.alterTable(`logins`).addColumn(`authorization_url`,`varchar(2048)`).execute()}async function pu(e){await e.schema.alterTable(`logins`).dropColumn(`authorization_url`).execute(),await e.schema.alterTable(`logins`).addColumn(`authorization_url`,`varchar(1024)`).execute()}var mu=t({down:()=>gu,up:()=>hu});async function hu(e){}async function gu(e){}var _u=t({down:()=>yu,up:()=>vu});async function vu(e){await e.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 e.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 e.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 yu(e){await e.schema.dropTable(`sessions`).execute(),await e.schema.dropTable(`login_sessions`).execute(),await e.schema.dropTable(`refresh_tokens`).execute()}var bu=t({down:()=>Su,up:()=>xu});async function xu(e){await e.schema.dropTable(`logins`).execute(),await e.schema.dropTable(`sessions_2`).execute(),await e.schema.dropTable(`refresh_tokens_2`).execute()}async function Su(e){}var Cu=t({down:()=>Tu,up:()=>wu});async function wu(e){await e.schema.dropTable(`custom_domains`).execute(),await e.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 Tu(e){}var Eu=t({down:()=>Ou,up:()=>Du});async function Du(e){}async function Ou(e){await e.schema.alterTable(`users`).dropColumn(`phone_number`).dropColumn(`phone_verified`).dropColumn(`username`).execute()}var ku=t({down:()=>ju,up:()=>Au});async function Au(e){await e.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 e.schema.createIndex(`forms_tenant_id_idx`).on(`forms`).column(`tenant_id`).execute()}async function ju(e){await e.schema.dropTable(`forms`).execute()}var Mu=t({down:()=>Pu,up:()=>Nu});async function Nu(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(e=>({url_tmp:e.ref(`url`)})).execute(),await e.schema.alterTable(`hooks`).dropColumn(`url`).execute(),await e.schema.alterTable(`hooks`).renameColumn(`url_tmp`,`url`).execute()}async function Pu(e){await e.schema.dropTable(`hooks`).ifExists().execute(),await e.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()}var Fu=t({down:()=>Lu,up:()=>Iu});async function Iu(e){await e.schema.alterTable(`login_sessions`).addColumn(`login_completed`,`boolean`,e=>e.notNull().defaultTo(0)).execute()}async function Lu(e){await e.schema.alterTable(`login_sessions`).dropColumn(`login_completed`).execute()}var Ru=t({down:()=>Bu,up:()=>zu});async function zu(e){await e.schema.alterTable(`sessions`).addColumn(`login_session_id`,`varchar(21)`,e=>e.references(`login_sessions.id`).onDelete(`set null`)).execute()}async function Bu(e){await e.schema.alterTable(`sessions`).dropColumn(`login_session_id`).execute()}var Vu=t({down:()=>Uu,up:()=>Hu});async function Hu(e){await e.schema.createIndex(`IDX_sessions_login_session_id`).on(`sessions`).column(`login_session_id`).execute()}async function Uu(e){await e.schema.dropIndex(`IDX_sessions_login_session_id`).on(`sessions`).execute()}var Wu=t({down:()=>Ku,up:()=>Gu});async function Gu(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 Ku(e){await e.schema.alterTable(`codes`).dropColumn(`code_challenge`).execute(),await e.schema.alterTable(`codes`).dropColumn(`code_challenge_method`).execute()}var qu=t({down:()=>Yu,up:()=>Ju});async function Ju(e){await e.schema.alterTable(`codes`).addColumn(`redirect_uri`,`varchar(1024)`).execute()}async function Yu(e){await e.schema.alterTable(`codes`).dropColumn(`redirect_uri`).execute()}var Xu=t({down:()=>Qu,up:()=>Zu});async function Zu(e){await e.schema.alterTable(`codes`).addColumn(`nonce`,`varchar(1024)`).execute(),await e.schema.alterTable(`codes`).addColumn(`state`,`varchar(2048)`).execute()}async function Qu(e){await e.schema.alterTable(`codes`).dropColumn(`nonce`).execute(),await e.schema.alterTable(`codes`).dropColumn(`state`).execute()}var $u=t({down:()=>td,up:()=>ed});async function ed(e){await e.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 e.schema.createIndex(`themes_tenant_id_idx`).on(`themes`).column(`tenant_id`).execute()}async function td(e){await e.schema.dropTable(`themes`).execute()}var nd=t({down:()=>id,up:()=>rd});async function rd(e){await e.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 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)`,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 e.schema.createIndex(`roles_tenant_name_uq`).on(`roles`).columns([`tenant_id`,`name`]).unique().execute()}async function id(e){await e.schema.dropTable(`roles`).execute(),await e.schema.dropTable(`resource_servers`).execute()}var ad=t({down:()=>sd,up:()=>od});async function od(e){await e.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 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)`,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 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 sd(e){await e.schema.dropTable(`user_permissions`).execute(),await e.schema.dropTable(`role_permissions`).execute()}var cd=t({down:()=>ud,up:()=>ld});async function ld(e){await e.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 e.schema.createIndex(`user_roles_user_fk`).on(`user_roles`).columns([`tenant_id`,`user_id`]).execute(),await e.schema.createIndex(`user_roles_role_fk`).on(`user_roles`).columns([`tenant_id`,`role_id`]).execute()}async function ud(e){await e.schema.dropTable(`user_roles`).execute()}var dd=t({down:()=>pd,up:()=>fd});async function fd(e){}async function pd(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()}var md=t({down:()=>gd,up:()=>hd});async function hd(e){await e.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 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 gd(e){await e.schema.dropTable(`organizations`).execute()}var _d=t({down:()=>yd,up:()=>vd});async function vd(e){await e.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 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 yd(e){await e.schema.dropTable(`user_organizations`).execute()}var bd=t({down:()=>Sd,up:()=>xd});async function xd(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)`,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 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)`,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 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 Sd(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)`,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 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)`,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 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()}var Cd=t({down:()=>Td,up:()=>wd});async function wd(e){await e.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 Td(e){await e.schema.dropTable(`clients`).execute()}var Ed=!1;function Dd(e){Ed=e}function G(...e){Ed&&console.log(...e)}function K(...e){console.warn(...e)}var Od=t({down:()=>Nd,up:()=>Ad});async function kd(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function Ad(e){await kd(e)===`mysql`?await jd(e):await Md(e)}async function jd(e){await e.transaction().execute(async e=>{let t=await r.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(e);for(let n of t.rows){let t=n.CONSTRAINT_NAME,i=n.TABLE_NAME;try{await r.sql`ALTER TABLE ${r.sql.raw(i)} DROP FOREIGN KEY ${r.sql.raw(t)}`.execute(e),
|
|
8
|
+
`.execute(e);for(let n of t.rows){let t=n.CONSTRAINT_NAME,i=n.TABLE_NAME;try{await r.sql`ALTER TABLE ${r.sql.raw(i)} DROP FOREIGN KEY ${r.sql.raw(t)}`.execute(e),G(`Dropped foreign key constraint ${t} from ${i}`)}catch(e){console.warn(`Failed to drop constraint ${t} from ${i}:`,e)}}for(let t of[`sessions_backup`,`login_sessions_backup`,`refresh_tokens_backup`])try{await r.sql`DROP TABLE IF EXISTS ${r.sql.raw(t)}`.execute(e)}catch(e){console.warn(`Failed to drop backup table ${t}:`,e)}await r.sql`CREATE TABLE sessions_backup AS SELECT * FROM sessions`.execute(e),await r.sql`CREATE TABLE login_sessions_backup AS SELECT * FROM login_sessions`.execute(e),await r.sql`CREATE TABLE refresh_tokens_backup AS SELECT * FROM refresh_tokens`.execute(e),await r.sql`DROP TABLE sessions`.execute(e),await r.sql`DROP TABLE login_sessions`.execute(e),await r.sql`DROP TABLE refresh_tokens`.execute(e),await e.schema.createTable(`refresh_tokens`).addColumn(`id`,`varchar(21)`,e=>e.notNull()).addColumn(`tenant_id`,`varchar(255)`,e=>e.notNull()).addColumn(`client_id`,`varchar(191)`,e=>e.notNull()).addColumn(`session_id`,`varchar(21)`,e=>e.notNull()).addColumn(`user_id`,`varchar(255)`).addColumn(`resource_servers`,`text`,e=>e.notNull()).addColumn(`device`,`text`,e=>e.notNull()).addColumn(`rotating`,`boolean`,e=>e.notNull()).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)`).addPrimaryKeyConstraint(`refresh_tokens_pk`,[`tenant_id`,`id`]).execute(),await r.sql`ALTER TABLE refresh_tokens
|
|
9
9
|
ADD CONSTRAINT refresh_tokens_tenant_fk
|
|
10
10
|
FOREIGN KEY (tenant_id) REFERENCES tenants(id) ON DELETE CASCADE`.execute(e),await r.sql`ALTER TABLE refresh_tokens
|
|
11
11
|
ADD CONSTRAINT refresh_tokens_client_fk
|
|
@@ -29,7 +29,7 @@ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{val
|
|
|
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(e),await r.sql`DROP TABLE sessions_backup`.execute(e),await r.sql`DROP TABLE login_sessions_backup`.execute(e),await r.sql`DROP TABLE refresh_tokens_backup`.execute(e)})}async function
|
|
32
|
+
FROM login_sessions_backup`.execute(e),await r.sql`DROP TABLE sessions_backup`.execute(e),await r.sql`DROP TABLE login_sessions_backup`.execute(e),await r.sql`DROP TABLE refresh_tokens_backup`.execute(e)})}async function Md(e){await e.transaction().execute(async e=>{for(let t of[`sessions_backup`,`login_sessions_backup`,`refresh_tokens_backup`])try{await r.sql`DROP TABLE IF EXISTS ${r.sql.raw(t)}`.execute(e)}catch(e){console.warn(`Failed to drop backup table ${t}:`,e)}await r.sql`CREATE TABLE sessions_backup AS SELECT * FROM sessions`.execute(e),await r.sql`CREATE TABLE login_sessions_backup AS SELECT * FROM login_sessions`.execute(e),await r.sql`CREATE TABLE refresh_tokens_backup AS SELECT * FROM refresh_tokens`.execute(e),await r.sql`DROP TABLE sessions`.execute(e),await r.sql`DROP TABLE login_sessions`.execute(e),await r.sql`DROP TABLE refresh_tokens`.execute(e),await e.schema.createTable(`refresh_tokens`).addColumn(`id`,`varchar(21)`,e=>e.notNull()).addColumn(`tenant_id`,`varchar(255)`,e=>e.references(`tenants.id`).onDelete(`cascade`).notNull()).addColumn(`client_id`,`varchar(191)`,e=>e.notNull()).addColumn(`session_id`,`varchar(21)`,e=>e.notNull()).addColumn(`user_id`,`varchar(255)`).addColumn(`resource_servers`,`text`,e=>e.notNull()).addColumn(`device`,`text`,e=>e.notNull()).addColumn(`rotating`,`boolean`,e=>e.notNull()).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)`).addPrimaryKeyConstraint(`refresh_tokens_pk`,[`tenant_id`,`id`]).addForeignKeyConstraint(`refresh_tokens_client_fk`,[`tenant_id`,`client_id`],`clients`,[`tenant_id`,`client_id`],e=>e.onDelete(`cascade`)).execute(),await e.schema.createTable(`sessions`).addColumn(`id`,`varchar(21)`,e=>e.notNull()).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`user_id`,`varchar(255)`).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`,`text`,e=>e.notNull()).addColumn(`clients`,`text`,e=>e.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`],e=>e.onDelete(`cascade`)).execute(),await e.schema.createTable(`login_sessions`).addColumn(`id`,`varchar(21)`,e=>e.notNull()).addColumn(`tenant_id`,`varchar(255)`,e=>e.references(`tenants.id`).onDelete(`cascade`).notNull()).addColumn(`session_id`,`varchar(21)`).addColumn(`csrf_token`,`varchar(21)`,e=>e.notNull()).addColumn(`authParams_client_id`,`varchar(191)`,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`,`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)`,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`,`text`).addColumn(`auth0Client`,`varchar(255)`).addColumn(`login_completed`,`integer`,e=>e.defaultTo(0)).addPrimaryKeyConstraint(`login_sessions_pk`,[`tenant_id`,`id`]).addForeignKeyConstraint(`login_sessions_client_fk`,[`tenant_id`,`authParams_client_id`],`clients`,[`tenant_id`,`client_id`],e=>e.onDelete(`cascade`)).addForeignKeyConstraint(`login_sessions_session_fk`,[`tenant_id`,`session_id`],`sessions`,[`tenant_id`,`id`],e=>e.onDelete(`cascade`)).execute(),await r.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
35
|
FROM refresh_tokens_backup`.execute(e),await r.sql`INSERT INTO sessions
|
|
@@ -41,16 +41,16 @@ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{val
|
|
|
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(e),await r.sql`DROP TABLE sessions_backup`.execute(e),await r.sql`DROP TABLE login_sessions_backup`.execute(e),await r.sql`DROP TABLE refresh_tokens_backup`.execute(e)})}async function
|
|
44
|
+
FROM login_sessions_backup`.execute(e),await r.sql`DROP TABLE sessions_backup`.execute(e),await r.sql`DROP TABLE login_sessions_backup`.execute(e),await r.sql`DROP TABLE refresh_tokens_backup`.execute(e)})}async function Nd(e){await kd(e)===`mysql`?await Pd(e):await Fd(e)}async function Pd(e){await e.transaction().execute(async e=>{await r.sql`ALTER TABLE refresh_tokens DROP FOREIGN KEY refresh_tokens_client_fk`.execute(e),await r.sql`ALTER TABLE login_sessions DROP FOREIGN KEY login_sessions_client_fk`.execute(e),await r.sql`ALTER TABLE refresh_tokens DROP PRIMARY KEY`.execute(e),await r.sql`ALTER TABLE refresh_tokens ADD PRIMARY KEY (id)`.execute(e),await r.sql`ALTER TABLE sessions DROP PRIMARY KEY`.execute(e),await r.sql`ALTER TABLE sessions ADD PRIMARY KEY (id)`.execute(e),await r.sql`ALTER TABLE login_sessions DROP PRIMARY KEY`.execute(e),await r.sql`ALTER TABLE login_sessions ADD PRIMARY KEY (id)`.execute(e),await r.sql`ALTER TABLE refresh_tokens
|
|
45
45
|
ADD CONSTRAINT refresh_tokens_application_fk
|
|
46
46
|
FOREIGN KEY (client_id) REFERENCES applications(id) ON DELETE CASCADE`.execute(e),await r.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(e)})}async function
|
|
48
|
+
FOREIGN KEY (authParams_client_id) REFERENCES applications(id) ON DELETE CASCADE`.execute(e)})}async function Fd(e){await e.transaction().execute(async e=>{await r.sql`CREATE TABLE refresh_tokens_temp AS SELECT * FROM refresh_tokens`.execute(e),await r.sql`DROP TABLE refresh_tokens`.execute(e),await e.schema.createTable(`refresh_tokens`).addColumn(`id`,`varchar(21)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(255)`,e=>e.references(`tenants.id`).onDelete(`cascade`).notNull()).addColumn(`client_id`,`varchar(21)`,e=>e.references(`applications.id`).onDelete(`cascade`).notNull()).addColumn(`session_id`,`varchar(21)`,e=>e.notNull()).addColumn(`user_id`,`varchar(255)`).addColumn(`resource_servers`,`varchar(255)`,e=>e.notNull()).addColumn(`device`,`varchar(255)`,e=>e.notNull()).addColumn(`rotating`,`boolean`,e=>e.notNull()).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)`).execute(),await r.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
51
|
FROM refresh_tokens_temp`.execute(e),await r.sql`DROP TABLE refresh_tokens_temp`.execute(e),await r.sql`CREATE TABLE login_sessions_temp AS SELECT * FROM login_sessions`.execute(e),await r.sql`DROP TABLE login_sessions`.execute(e),await e.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)`).addColumn(`csrf_token`,`varchar(21)`,e=>e.notNull()).addColumn(`authParams_client_id`,`varchar(191)`,e=>e.references(`applications.id`).onDelete(`cascade`).notNull()).execute(),await r.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 r.sql`DROP TABLE login_sessions_temp`.execute(e)})}var zd=t({down:()=>Vd,up:()=>Bd});async function Bd(e){await e.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 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 Vd(e){await e.schema.dropTable(`client_grants`).execute()}var Hd=t({down:()=>Wd,up:()=>Ud});async function Ud(e){await e.schema.dropTable(`applications`).execute()}async function Wd(e){await e.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 e.schema.createIndex(`idx_applications_tenant_id`).on(`applications`).columns([`tenant_id`]).execute()}var Gd=t({down:()=>qd,up:()=>Kd});async function Kd(e){await e.schema.createIndex(`users_phone_tenant_provider_index`).on(`users`).columns([`tenant_id`,`phone_number`,`provider`]).execute()}async function qd(e){await e.schema.dropIndex(`users_phone_tenant_provider_index`).execute()}var Jd=t({down:()=>Xd,up:()=>Yd});async function Yd(e){await e.schema.createIndex(`login_sessions_id_index`).on(`login_sessions`).column(`id`).execute()}async function Xd(e){await e.schema.dropIndex(`login_sessions_id_index`).execute()}var Zd=t({down:()=>$d,up:()=>Qd});async function Qd(e){await e.schema.createIndex(`connections_tenant_id_index`).on(`connections`).column(`tenant_id`).execute()}async function $d(e){await e.schema.dropIndex(`connections_tenant_id_index`).execute()}var ef=t({down:()=>nf,up:()=>tf});async function tf(e){await e.schema.dropIndex(`idx_user_organizations_tenant_id`).execute()}async function nf(e){await e.schema.createIndex(`idx_user_organizations_tenant_id`).on(`user_organizations`).column(`tenant_id`).execute()}var rf=t({down:()=>of,up:()=>af});async function af(e){await e.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 of(e){await e.schema.dropTable(`tenant_settings`).execute()}var sf=t({down:()=>lf,up:()=>cf});async function cf(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:r.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){let t=await e.selectFrom(`tenant_settings`).selectAll().execute();for(let n of t)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 lf(e){await e.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();let 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(let n of t)(n.idle_session_lifetime!==null||n.session_lifetime!==null||n.session_cookie!==null||n.enable_client_connections!==null||n.default_redirection_uri!==null||n.enabled_locales!==null||n.default_directory!==null||n.error_page!==null||n.flags!==null||n.friendly_name!==null||n.picture_url!==null||n.support_email!==null||n.support_url!==null||n.sandbox_version!==null||n.sandbox_versions_available!==null||n.change_password!==null||n.guardian_mfa_page!==null||n.default_audience!==null||n.default_organization!==null||n.sessions!==null)&&await e.insertInto(`tenant_settings`).values({tenant_id:n.id,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}).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:r.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()}var uf=t({down:()=>ff,up:()=>df});async function df(e){await e.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 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 ff(e){await e.schema.dropTable(`invites`).execute()}var pf=t({down:()=>hf,up:()=>mf});async function mf(e){await e.schema.dropTable(`logs`).ifExists().execute(),await e.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 hf(e){await e.schema.dropTable(`logs`).ifExists().execute(),await e.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()}var gf=t({down:()=>vf,up:()=>_f});async function _f(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 vf(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()}var yf=t({down:()=>xf,up:()=>bf}),J=1e3;async function bf(e){await e.schema.createTable(`password_history`).addColumn(`id`,`varchar(21)`,e=>e.primaryKey()).addColumn(`user_id`,`varchar(191)`,e=>e.notNull()).addColumn(`tenant_id`,`varchar(191)`,e=>e.references(`tenants.id`).onDelete(`cascade`).notNull()).addColumn(`password`,`varchar(255)`,e=>e.notNull()).addColumn(`algorithm`,`varchar(255)`,e=>e.notNull().defaultTo(`bcrypt`)).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).addColumn(`is_current`,`integer`,e=>e.notNull().defaultTo(1)).addForeignKeyConstraint(`password_history_user_id_tenant_id_constraint`,[`user_id`,`tenant_id`],`users`,[`user_id`,`tenant_id`],e=>e.onDelete(`cascade`)).execute();let t=0,r=!0;for(;r;){let i=await e.selectFrom(`passwords`).select([`user_id`,`tenant_id`,`password`,`algorithm`,`created_at`,`updated_at`]).limit(J).offset(t).execute();if(i.length===0){r=!1;break}for(let t of i)await e.insertInto(`password_history`).values({id:(0,n.nanoid)(),user_id:t.user_id,tenant_id:t.tenant_id,password:t.password,algorithm:t.algorithm??`bcrypt`,created_at:t.created_at,updated_at:t.updated_at??t.created_at,is_current:1}).execute();t+=J,i.length<J&&(r=!1)}await e.schema.alterTable(`passwords`).renameTo(`passwords_backup`).execute(),await e.schema.alterTable(`password_history`).renameTo(`passwords`).execute()}async function xf(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)`,e=>e.notNull()).addColumn(`tenant_id`,`varchar(255)`,e=>e.references(`tenants.id`).onDelete(`cascade`).notNull()).addColumn(`password`,`varchar(255)`,e=>e.notNull()).addColumn(`algorithm`,`varchar(255)`,e=>e.notNull().defaultTo(`bcrypt`)).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).addPrimaryKeyConstraint(`passwords_pkey`,[`user_id`,`tenant_id`]).addForeignKeyConstraint(`passwords_user_id_tenant_id_constraint`,[`user_id`,`tenant_id`],`users`,[`user_id`,`tenant_id`],e=>e.onDelete(`cascade`)).execute();let t=0,n=!0;for(;n;){let r=await e.selectFrom(`password_history`).select([`user_id`,`tenant_id`,`password`,`algorithm`,`created_at`,`updated_at`]).where(`is_current`,`=`,1).limit(J).offset(t).execute();if(r.length===0){n=!1;break}for(let t of r)await e.insertInto(`passwords`).values({user_id:t.user_id,tenant_id:t.tenant_id,password:t.password,algorithm:t.algorithm,created_at:t.created_at,updated_at:t.updated_at}).execute();t+=J,r.length<J&&(n=!1)}}await e.schema.dropTable(`password_history`).execute()}var Sf=t({down:()=>wf,up:()=>Cf});async function Cf(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 wf(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()}var Tf=t({down:()=>Df,up:()=>Ef});async function Ef(e){await e.schema.alterTable(`clients`).addColumn(`connections`,`text`,e=>e.notNull().defaultTo(`[]`)).execute()}async function Df(e){await e.schema.alterTable(`clients`).dropColumn(`connections`).execute()}var Of=t({down:()=>Af,up:()=>kf});async function kf(e){await e.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 e.schema.createIndex(`flows_tenant_id_idx`).on(`flows`).column(`tenant_id`).execute(),await e.schema.dropTable(`passwords_backup`).execute()}async function Af(e){await e.schema.dropTable(`flows`).execute()}var jf=t({down:()=>Nf,up:()=>Mf});async function Mf(e){await e.schema.alterTable(`resource_servers`).addColumn(`is_system`,`integer`,e=>e.defaultTo(0).notNull()).execute(),await e.schema.alterTable(`roles`).addColumn(`is_system`,`integer`,e=>e.defaultTo(0).notNull()).execute(),await e.schema.alterTable(`connections`).addColumn(`is_system`,`integer`,e=>e.defaultTo(0).notNull()).execute()}async function Nf(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()}var Pf=t({down:()=>If,up:()=>Ff});async function Ff(e){let t=await e.selectFrom(`keys`).selectAll().execute();await e.schema.dropTable(`keys`).execute(),await r.sql`ALTER TABLE connections RENAME TO connections_old`.execute(e),await e.schema.createTable(`connections`).addColumn(`id`,`varchar(255)`,e=>e.notNull()).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(8192)`,e=>e.defaultTo(`{}`).notNull()).addColumn(`created_at`,`varchar(255)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(255)`,e=>e.notNull()).addColumn(`display_name`,`varchar(255)`).addColumn(`is_domain_connection`,`integer`).addColumn(`show_as_button`,`integer`).addColumn(`metadata`,`varchar(4096)`).addColumn(`is_system`,`integer`,e=>e.defaultTo(0).notNull()).addPrimaryKeyConstraint(`connections_pkey`,[`tenant_id`,`id`]).execute(),await r.sql`
|
|
53
|
+
FROM login_sessions_temp`.execute(e),await r.sql`DROP TABLE login_sessions_temp`.execute(e)})}var Id=t({down:()=>Rd,up:()=>Ld});async function Ld(e){await e.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 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 Rd(e){await e.schema.dropTable(`client_grants`).execute()}var zd=t({down:()=>Vd,up:()=>Bd});async function Bd(e){await e.schema.dropTable(`applications`).execute()}async function Vd(e){await e.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 e.schema.createIndex(`idx_applications_tenant_id`).on(`applications`).columns([`tenant_id`]).execute()}var Hd=t({down:()=>Wd,up:()=>Ud});async function Ud(e){await e.schema.createIndex(`users_phone_tenant_provider_index`).on(`users`).columns([`tenant_id`,`phone_number`,`provider`]).execute()}async function Wd(e){await e.schema.dropIndex(`users_phone_tenant_provider_index`).execute()}var Gd=t({down:()=>qd,up:()=>Kd});async function Kd(e){await e.schema.createIndex(`login_sessions_id_index`).on(`login_sessions`).column(`id`).execute()}async function qd(e){await e.schema.dropIndex(`login_sessions_id_index`).execute()}var Jd=t({down:()=>Xd,up:()=>Yd});async function Yd(e){await e.schema.createIndex(`connections_tenant_id_index`).on(`connections`).column(`tenant_id`).execute()}async function Xd(e){await e.schema.dropIndex(`connections_tenant_id_index`).execute()}var Zd=t({down:()=>$d,up:()=>Qd});async function Qd(e){await e.schema.dropIndex(`idx_user_organizations_tenant_id`).execute()}async function $d(e){await e.schema.createIndex(`idx_user_organizations_tenant_id`).on(`user_organizations`).column(`tenant_id`).execute()}var ef=t({down:()=>nf,up:()=>tf});async function tf(e){await e.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 nf(e){await e.schema.dropTable(`tenant_settings`).execute()}var rf=t({down:()=>of,up:()=>af});async function af(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:r.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){let t=await e.selectFrom(`tenant_settings`).selectAll().execute();for(let n of t)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 of(e){await e.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();let 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(let n of t)(n.idle_session_lifetime!==null||n.session_lifetime!==null||n.session_cookie!==null||n.enable_client_connections!==null||n.default_redirection_uri!==null||n.enabled_locales!==null||n.default_directory!==null||n.error_page!==null||n.flags!==null||n.friendly_name!==null||n.picture_url!==null||n.support_email!==null||n.support_url!==null||n.sandbox_version!==null||n.sandbox_versions_available!==null||n.change_password!==null||n.guardian_mfa_page!==null||n.default_audience!==null||n.default_organization!==null||n.sessions!==null)&&await e.insertInto(`tenant_settings`).values({tenant_id:n.id,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}).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:r.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()}var sf=t({down:()=>lf,up:()=>cf});async function cf(e){await e.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 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 lf(e){await e.schema.dropTable(`invites`).execute()}var uf=t({down:()=>ff,up:()=>df});async function df(e){await e.schema.dropTable(`logs`).ifExists().execute(),await e.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 ff(e){await e.schema.dropTable(`logs`).ifExists().execute(),await e.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()}var pf=t({down:()=>hf,up:()=>mf});async function mf(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 hf(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()}var gf=t({down:()=>vf,up:()=>_f}),q=1e3;async function _f(e){await e.schema.createTable(`password_history`).addColumn(`id`,`varchar(21)`,e=>e.primaryKey()).addColumn(`user_id`,`varchar(191)`,e=>e.notNull()).addColumn(`tenant_id`,`varchar(191)`,e=>e.references(`tenants.id`).onDelete(`cascade`).notNull()).addColumn(`password`,`varchar(255)`,e=>e.notNull()).addColumn(`algorithm`,`varchar(255)`,e=>e.notNull().defaultTo(`bcrypt`)).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).addColumn(`is_current`,`integer`,e=>e.notNull().defaultTo(1)).addForeignKeyConstraint(`password_history_user_id_tenant_id_constraint`,[`user_id`,`tenant_id`],`users`,[`user_id`,`tenant_id`],e=>e.onDelete(`cascade`)).execute();let t=0,r=!0;for(;r;){let i=await e.selectFrom(`passwords`).select([`user_id`,`tenant_id`,`password`,`algorithm`,`created_at`,`updated_at`]).limit(q).offset(t).execute();if(i.length===0){r=!1;break}for(let t of i)await e.insertInto(`password_history`).values({id:(0,n.nanoid)(),user_id:t.user_id,tenant_id:t.tenant_id,password:t.password,algorithm:t.algorithm??`bcrypt`,created_at:t.created_at,updated_at:t.updated_at??t.created_at,is_current:1}).execute();t+=q,i.length<q&&(r=!1)}await e.schema.alterTable(`passwords`).renameTo(`passwords_backup`).execute(),await e.schema.alterTable(`password_history`).renameTo(`passwords`).execute()}async function vf(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)`,e=>e.notNull()).addColumn(`tenant_id`,`varchar(255)`,e=>e.references(`tenants.id`).onDelete(`cascade`).notNull()).addColumn(`password`,`varchar(255)`,e=>e.notNull()).addColumn(`algorithm`,`varchar(255)`,e=>e.notNull().defaultTo(`bcrypt`)).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).addPrimaryKeyConstraint(`passwords_pkey`,[`user_id`,`tenant_id`]).addForeignKeyConstraint(`passwords_user_id_tenant_id_constraint`,[`user_id`,`tenant_id`],`users`,[`user_id`,`tenant_id`],e=>e.onDelete(`cascade`)).execute();let t=0,n=!0;for(;n;){let r=await e.selectFrom(`password_history`).select([`user_id`,`tenant_id`,`password`,`algorithm`,`created_at`,`updated_at`]).where(`is_current`,`=`,1).limit(q).offset(t).execute();if(r.length===0){n=!1;break}for(let t of r)await e.insertInto(`passwords`).values({user_id:t.user_id,tenant_id:t.tenant_id,password:t.password,algorithm:t.algorithm,created_at:t.created_at,updated_at:t.updated_at}).execute();t+=q,r.length<q&&(n=!1)}}await e.schema.dropTable(`password_history`).execute()}var yf=t({down:()=>xf,up:()=>bf});async function bf(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 xf(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()}var Sf=t({down:()=>wf,up:()=>Cf});async function Cf(e){await e.schema.alterTable(`clients`).addColumn(`connections`,`text`,e=>e.notNull().defaultTo(`[]`)).execute()}async function wf(e){await e.schema.alterTable(`clients`).dropColumn(`connections`).execute()}var Tf=t({down:()=>Df,up:()=>Ef});async function Ef(e){await e.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 e.schema.createIndex(`flows_tenant_id_idx`).on(`flows`).column(`tenant_id`).execute(),await e.schema.dropTable(`passwords_backup`).execute()}async function Df(e){await e.schema.dropTable(`flows`).execute()}var Of=t({down:()=>Af,up:()=>kf});async function kf(e){await e.schema.alterTable(`resource_servers`).addColumn(`is_system`,`integer`,e=>e.defaultTo(0).notNull()).execute(),await e.schema.alterTable(`roles`).addColumn(`is_system`,`integer`,e=>e.defaultTo(0).notNull()).execute(),await e.schema.alterTable(`connections`).addColumn(`is_system`,`integer`,e=>e.defaultTo(0).notNull()).execute()}async function Af(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()}var jf=t({down:()=>Nf,up:()=>Mf});async function Mf(e){let t=await e.selectFrom(`keys`).selectAll().execute();await e.schema.dropTable(`keys`).execute(),await r.sql`ALTER TABLE connections RENAME TO connections_old`.execute(e),await e.schema.createTable(`connections`).addColumn(`id`,`varchar(255)`,e=>e.notNull()).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(8192)`,e=>e.defaultTo(`{}`).notNull()).addColumn(`created_at`,`varchar(255)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(255)`,e=>e.notNull()).addColumn(`display_name`,`varchar(255)`).addColumn(`is_domain_connection`,`integer`).addColumn(`show_as_button`,`integer`).addColumn(`metadata`,`varchar(4096)`).addColumn(`is_system`,`integer`,e=>e.defaultTo(0).notNull()).addPrimaryKeyConstraint(`connections_pkey`,[`tenant_id`,`id`]).execute(),await r.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 @@ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{val
|
|
|
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(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)`,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)`).execute();for(let n of t)await e.insertInto(`keys`).values(n).execute()}async function
|
|
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)`,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)`).execute();for(let n of t)await e.insertInto(`keys`).values(n).execute()}async function Nf(e){let t=await e.selectFrom(`keys`).selectAll().execute();await e.schema.dropTable(`keys`).execute(),await r.sql`ALTER TABLE connections RENAME TO connections_new`.execute(e),await e.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(8192)`,e=>e.defaultTo(`{}`).notNull()).addColumn(`created_at`,`varchar(255)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(255)`,e=>e.notNull()).addColumn(`display_name`,`varchar(255)`).addColumn(`is_domain_connection`,`integer`).addColumn(`show_as_button`,`integer`).addColumn(`metadata`,`varchar(4096)`).addColumn(`is_system`,`integer`,e=>e.defaultTo(0).notNull()).execute(),await r.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,11 +72,11 @@ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{val
|
|
|
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(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)`,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();for(let n of t)await e.insertInto(`keys`).values(n).execute()}var
|
|
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)`,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();for(let n of t)await e.insertInto(`keys`).values(n).execute()}var Pf=t({down:()=>If,up:()=>Ff});async function Ff(e){await e.schema.alterTable(`login_sessions`).addColumn(`state`,`varchar(50)`,e=>e.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:r.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 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 zf(e){await e.schema.alterTable(`login_sessions`).addColumn(`login_completed`,`integer`,e=>e.defaultTo(0)).execute(),await e.updateTable(`login_sessions`).set({login_completed:r.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()}var Bf=t({down:()=>Hf,up:()=>Vf});async function Vf(e){await e.schema.alterTable(`roles`).addColumn(`metadata`,`varchar(4096)`).execute(),await e.schema.alterTable(`resource_servers`).addColumn(`metadata`,`varchar(4096)`).execute()}async function Hf(e){await e.schema.alterTable(`roles`).dropColumn(`metadata`).execute(),await e.schema.alterTable(`resource_servers`).dropColumn(`metadata`).execute()}var Uf=t({down:()=>Kf,up:()=>Gf});async function Wf(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function Y(e,t,n,r){try{await e.schema.alterTable(t).addColumn(n,r).execute()}catch(e){if(e instanceof Error&&(e.message.includes(`1060`)||e.message.includes(`duplicate column`))){K(` Column ${t}.${n} already exists, skipping`);return}throw e}}async function Gf(e){let t=await Wf(e);await Y(e,`refresh_tokens`,`created_at_ts`,`bigint`),await Y(e,`refresh_tokens`,`expires_at_ts`,`bigint`),await Y(e,`refresh_tokens`,`idle_expires_at_ts`,`bigint`),await Y(e,`refresh_tokens`,`last_exchanged_at_ts`,`bigint`),await Y(e,`sessions`,`created_at_ts`,`bigint`),await Y(e,`sessions`,`updated_at_ts`,`bigint`),await Y(e,`sessions`,`expires_at_ts`,`bigint`),await Y(e,`sessions`,`idle_expires_at_ts`,`bigint`),await Y(e,`sessions`,`authenticated_at_ts`,`bigint`),await Y(e,`sessions`,`last_interaction_at_ts`,`bigint`),await Y(e,`sessions`,`used_at_ts`,`bigint`),await Y(e,`sessions`,`revoked_at_ts`,`bigint`),await Y(e,`login_sessions`,`created_at_ts`,`bigint`),await Y(e,`login_sessions`,`updated_at_ts`,`bigint`),await Y(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 X(e,t,n){try{await e.schema.dropIndex(t).on(n).execute()}catch(e){if(e instanceof Error&&e.message.includes(`1091`))return;throw e}}async function Z(e,t,n){try{await e.schema.alterTable(t).dropColumn(n).execute()}catch(e){if(e instanceof Error&&e.message.includes(`1091`))return;throw e}}async function Kf(e){await X(e,`idx_sessions_user_id`,`sessions`),await X(e,`idx_refresh_tokens_user_id`,`refresh_tokens`),await X(e,`idx_refresh_tokens_session_id`,`refresh_tokens`),await X(e,`idx_refresh_tokens_expires_at_ts`,`refresh_tokens`),await X(e,`idx_sessions_expires_at_ts`,`sessions`),await X(e,`idx_login_sessions_expires_at_ts`,`login_sessions`),await Z(e,`refresh_tokens`,`created_at_ts`),await Z(e,`refresh_tokens`,`expires_at_ts`),await Z(e,`refresh_tokens`,`idle_expires_at_ts`),await Z(e,`refresh_tokens`,`last_exchanged_at_ts`),await Z(e,`sessions`,`created_at_ts`),await Z(e,`sessions`,`updated_at_ts`),await Z(e,`sessions`,`expires_at_ts`),await Z(e,`sessions`,`idle_expires_at_ts`),await Z(e,`sessions`,`authenticated_at_ts`),await Z(e,`sessions`,`last_interaction_at_ts`),await Z(e,`sessions`,`used_at_ts`),await Z(e,`sessions`,`revoked_at_ts`),await Z(e,`login_sessions`,`created_at_ts`),await Z(e,`login_sessions`,`updated_at_ts`),await Z(e,`login_sessions`,`expires_at_ts`)}var qf=t({down:()=>Xf,up:()=>Yf});async function Jf(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function Q(e,t,n){try{await e.schema.alterTable(t).dropColumn(n).execute()}catch(e){let r=e instanceof Error?e.message:String(e);if(r.includes(`1091`)||r.includes(`no such column`)){K(` Column ${t}.${n} doesn't exist, skipping`);return}throw e}}async function Yf(e){let t=await Jf(e);K(`Dropping indexes that depend on old date columns...`);try{await r.sql`DROP INDEX IF EXISTS login_sessions_state_updated_idx`.execute(e),K(` Dropped index login_sessions_state_updated_idx`)}catch(e){q(` Warning: Failed to drop index login_sessions_state_updated_idx: ${e instanceof Error?e.message:String(e)}`)}K(`Dropping old date columns...`),await Q(e,`refresh_tokens`,`created_at`),await Q(e,`refresh_tokens`,`expires_at`),await Q(e,`refresh_tokens`,`idle_expires_at`),await Q(e,`refresh_tokens`,`last_exchanged_at`),await Q(e,`sessions`,`created_at`),await Q(e,`sessions`,`updated_at`),await Q(e,`sessions`,`expires_at`),await Q(e,`sessions`,`idle_expires_at`),await Q(e,`sessions`,`authenticated_at`),await Q(e,`sessions`,`last_interaction_at`),await Q(e,`sessions`,`used_at`),await Q(e,`sessions`,`revoked_at`),await Q(e,`login_sessions`,`created_at`),await Q(e,`login_sessions`,`updated_at`),await Q(e,`login_sessions`,`expires_at`),t===`mysql`&&(K(`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()),K(`Migration completed successfully`)}async function Xf(e){await Jf(e)===`mysql`&&(K(`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()),K(`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(),K(`Rollback completed`)}var Zf=t({down:()=>$f,up:()=>Qf});async function Qf(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 $f(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()}var ep=t({down:()=>np,up:()=>tp});async function tp(e){await e.schema.alterTable(`users`).addColumn(`preferred_username`,`varchar(255)`).execute()}async function np(e){await e.schema.alterTable(`users`).dropColumn(`preferred_username`).execute()}var rp=t({down:()=>ap,up:()=>ip});async function ip(e){await e.schema.alterTable(`users`).addColumn(`address`,`text`).execute()}async function ap(e){await e.schema.alterTable(`users`).dropColumn(`address`).execute()}var op=t({down:()=>cp,up:()=>sp});async function sp(e){try{await e.schema.alterTable(`login_sessions`).addColumn(`authParams_max_age`,`integer`).execute(),K(` Added column authParams_max_age to login_sessions`)}catch(e){q(` Warning: Could not add authParams_max_age column: ${e instanceof Error?e.message:String(e)}`)}try{await e.schema.alterTable(`login_sessions`).addColumn(`authParams_acr_values`,`text`).execute(),K(` Added column authParams_acr_values to login_sessions`)}catch(e){q(` Warning: Could not add authParams_acr_values column: ${e instanceof Error?e.message:String(e)}`)}}async function cp(e){try{await e.schema.alterTable(`login_sessions`).dropColumn(`authParams_max_age`).execute()}catch(e){q(` Warning: Could not drop authParams_max_age column: ${e instanceof Error?e.message:String(e)}`)}try{await e.schema.alterTable(`login_sessions`).dropColumn(`authParams_acr_values`).execute()}catch(e){q(` Warning: Could not drop authParams_acr_values column: ${e instanceof Error?e.message:String(e)}`)}}var lp=t({down:()=>dp,up:()=>up});async function up(e){await e.schema.alterTable(`clients`).addColumn(`auth0_conformant`,`integer`,e=>e.defaultTo(1)).execute()}async function dp(e){await e.schema.alterTable(`clients`).dropColumn(`auth0_conformant`).execute()}var fp=t({down:()=>mp,up:()=>pp});async function pp(e){await e.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 mp(e){await e.schema.dropTable(`universal_login_templates`).execute()}var hp=t({down:()=>_p,up:()=>gp});async function gp(e){await e.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 _p(e){await e.schema.dropTable(`custom_text`).execute()}var vp=t({down:()=>bp,up:()=>yp});async function yp(e){await e.schema.alterTable(`tenants`).addColumn(`mfa`,`text`).execute()}async function bp(e){await e.schema.alterTable(`tenants`).dropColumn(`mfa`).execute()}var xp=t({down:()=>Tp,up:()=>wp});async function Sp(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function Cp(e,t,n,i){try{await e.schema.alterTable(t).addColumn(n,r.sql.raw(i)).execute()}catch(e){if(e instanceof Error&&(e.message.includes(`1060`)||e.message.includes(`duplicate column`))){K(` Column ${t}.${n} already exists, skipping`);return}throw e}}async function wp(e){let t=await Sp(e);await Cp(e,`hooks`,`template_id`,`text`),await Cp(e,`hooks`,`created_at_ts`,`bigint`),await Cp(e,`hooks`,`updated_at_ts`,`bigint`),t===`mysql`?await r.sql`
|
|
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 If(e){await e.schema.alterTable(`login_sessions`).addColumn(`login_completed`,`integer`,e=>e.defaultTo(0)).execute(),await e.updateTable(`login_sessions`).set({login_completed:r.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()}var Lf=t({down:()=>zf,up:()=>Rf});async function Rf(e){await e.schema.alterTable(`roles`).addColumn(`metadata`,`varchar(4096)`).execute(),await e.schema.alterTable(`resource_servers`).addColumn(`metadata`,`varchar(4096)`).execute()}async function zf(e){await e.schema.alterTable(`roles`).dropColumn(`metadata`).execute(),await e.schema.alterTable(`resource_servers`).dropColumn(`metadata`).execute()}var Bf=t({down:()=>Uf,up:()=>Hf});async function Vf(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function J(e,t,n,r){try{await e.schema.alterTable(t).addColumn(n,r).execute()}catch(e){if(e instanceof Error&&(e.message.includes(`1060`)||e.message.includes(`duplicate column`))){G(` Column ${t}.${n} already exists, skipping`);return}throw e}}async function Hf(e){let t=await Vf(e);await J(e,`refresh_tokens`,`created_at_ts`,`bigint`),await J(e,`refresh_tokens`,`expires_at_ts`,`bigint`),await J(e,`refresh_tokens`,`idle_expires_at_ts`,`bigint`),await J(e,`refresh_tokens`,`last_exchanged_at_ts`,`bigint`),await J(e,`sessions`,`created_at_ts`,`bigint`),await J(e,`sessions`,`updated_at_ts`,`bigint`),await J(e,`sessions`,`expires_at_ts`,`bigint`),await J(e,`sessions`,`idle_expires_at_ts`,`bigint`),await J(e,`sessions`,`authenticated_at_ts`,`bigint`),await J(e,`sessions`,`last_interaction_at_ts`,`bigint`),await J(e,`sessions`,`used_at_ts`,`bigint`),await J(e,`sessions`,`revoked_at_ts`,`bigint`),await J(e,`login_sessions`,`created_at_ts`,`bigint`),await J(e,`login_sessions`,`updated_at_ts`,`bigint`),await J(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 Y(e,t,n){try{await e.schema.dropIndex(t).on(n).execute()}catch(e){if(e instanceof Error&&e.message.includes(`1091`))return;throw e}}async function X(e,t,n){try{await e.schema.alterTable(t).dropColumn(n).execute()}catch(e){if(e instanceof Error&&e.message.includes(`1091`))return;throw e}}async function Uf(e){await Y(e,`idx_sessions_user_id`,`sessions`),await Y(e,`idx_refresh_tokens_user_id`,`refresh_tokens`),await Y(e,`idx_refresh_tokens_session_id`,`refresh_tokens`),await Y(e,`idx_refresh_tokens_expires_at_ts`,`refresh_tokens`),await Y(e,`idx_sessions_expires_at_ts`,`sessions`),await Y(e,`idx_login_sessions_expires_at_ts`,`login_sessions`),await X(e,`refresh_tokens`,`created_at_ts`),await X(e,`refresh_tokens`,`expires_at_ts`),await X(e,`refresh_tokens`,`idle_expires_at_ts`),await X(e,`refresh_tokens`,`last_exchanged_at_ts`),await X(e,`sessions`,`created_at_ts`),await X(e,`sessions`,`updated_at_ts`),await X(e,`sessions`,`expires_at_ts`),await X(e,`sessions`,`idle_expires_at_ts`),await X(e,`sessions`,`authenticated_at_ts`),await X(e,`sessions`,`last_interaction_at_ts`),await X(e,`sessions`,`used_at_ts`),await X(e,`sessions`,`revoked_at_ts`),await X(e,`login_sessions`,`created_at_ts`),await X(e,`login_sessions`,`updated_at_ts`),await X(e,`login_sessions`,`expires_at_ts`)}var Wf=t({down:()=>qf,up:()=>Kf});async function Gf(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function Z(e,t,n){try{await e.schema.alterTable(t).dropColumn(n).execute()}catch(e){let r=e instanceof Error?e.message:String(e);if(r.includes(`1091`)||r.includes(`no such column`)){G(` Column ${t}.${n} doesn't exist, skipping`);return}throw e}}async function Kf(e){let t=await Gf(e);G(`Dropping indexes that depend on old date columns...`);try{await r.sql`DROP INDEX IF EXISTS login_sessions_state_updated_idx`.execute(e),G(` Dropped index login_sessions_state_updated_idx`)}catch(e){K(` Warning: Failed to drop index login_sessions_state_updated_idx: ${e instanceof Error?e.message:String(e)}`)}G(`Dropping old date columns...`),await Z(e,`refresh_tokens`,`created_at`),await Z(e,`refresh_tokens`,`expires_at`),await Z(e,`refresh_tokens`,`idle_expires_at`),await Z(e,`refresh_tokens`,`last_exchanged_at`),await Z(e,`sessions`,`created_at`),await Z(e,`sessions`,`updated_at`),await Z(e,`sessions`,`expires_at`),await Z(e,`sessions`,`idle_expires_at`),await Z(e,`sessions`,`authenticated_at`),await Z(e,`sessions`,`last_interaction_at`),await Z(e,`sessions`,`used_at`),await Z(e,`sessions`,`revoked_at`),await Z(e,`login_sessions`,`created_at`),await Z(e,`login_sessions`,`updated_at`),await Z(e,`login_sessions`,`expires_at`),t===`mysql`&&(G(`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()),G(`Migration completed successfully`)}async function qf(e){await Gf(e)===`mysql`&&(G(`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()),G(`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(),G(`Rollback completed`)}var Jf=t({down:()=>Xf,up:()=>Yf});async function Yf(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 Xf(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()}var Zf=t({down:()=>$f,up:()=>Qf});async function Qf(e){await e.schema.alterTable(`users`).addColumn(`preferred_username`,`varchar(255)`).execute()}async function $f(e){await e.schema.alterTable(`users`).dropColumn(`preferred_username`).execute()}var ep=t({down:()=>np,up:()=>tp});async function tp(e){await e.schema.alterTable(`users`).addColumn(`address`,`text`).execute()}async function np(e){await e.schema.alterTable(`users`).dropColumn(`address`).execute()}var rp=t({down:()=>ap,up:()=>ip});async function ip(e){try{await e.schema.alterTable(`login_sessions`).addColumn(`authParams_max_age`,`integer`).execute(),G(` Added column authParams_max_age to login_sessions`)}catch(e){K(` Warning: Could not add authParams_max_age column: ${e instanceof Error?e.message:String(e)}`)}try{await e.schema.alterTable(`login_sessions`).addColumn(`authParams_acr_values`,`text`).execute(),G(` Added column authParams_acr_values to login_sessions`)}catch(e){K(` Warning: Could not add authParams_acr_values column: ${e instanceof Error?e.message:String(e)}`)}}async function ap(e){try{await e.schema.alterTable(`login_sessions`).dropColumn(`authParams_max_age`).execute()}catch(e){K(` Warning: Could not drop authParams_max_age column: ${e instanceof Error?e.message:String(e)}`)}try{await e.schema.alterTable(`login_sessions`).dropColumn(`authParams_acr_values`).execute()}catch(e){K(` Warning: Could not drop authParams_acr_values column: ${e instanceof Error?e.message:String(e)}`)}}var op=t({down:()=>cp,up:()=>sp});async function sp(e){await e.schema.alterTable(`clients`).addColumn(`auth0_conformant`,`integer`,e=>e.defaultTo(1)).execute()}async function cp(e){await e.schema.alterTable(`clients`).dropColumn(`auth0_conformant`).execute()}var lp=t({down:()=>dp,up:()=>up});async function up(e){await e.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 dp(e){await e.schema.dropTable(`universal_login_templates`).execute()}var fp=t({down:()=>mp,up:()=>pp});async function pp(e){await e.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 mp(e){await e.schema.dropTable(`custom_text`).execute()}var hp=t({down:()=>_p,up:()=>gp});async function gp(e){await e.schema.alterTable(`tenants`).addColumn(`mfa`,`text`).execute()}async function _p(e){await e.schema.alterTable(`tenants`).dropColumn(`mfa`).execute()}var vp=t({down:()=>xp,up:()=>bp});async function yp(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function Q(e,t,n,i){try{await e.schema.alterTable(t).addColumn(n,r.sql.raw(i)).execute()}catch(e){if(e instanceof Error&&(e.message.includes(`1060`)||e.message.includes(`duplicate column`))){G(` Column ${t}.${n} already exists, skipping`);return}throw e}}async function bp(e){let t=await yp(e);await Q(e,`hooks`,`template_id`,`text`),await Q(e,`hooks`,`created_at_ts`,`bigint`),await Q(e,`hooks`,`updated_at_ts`,`bigint`),t===`mysql`?await r.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
|
|
@@ -86,14 +86,14 @@ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{val
|
|
|
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(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 $(e,t,n){try{await e.schema.alterTable(t).dropColumn(n).execute()}catch(e){if(e instanceof Error&&(e.message.includes(`1091`)||e.message.includes(`no such column`)))return;throw e}}async function
|
|
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 $(e,t,n){try{await e.schema.alterTable(t).dropColumn(n).execute()}catch(e){if(e instanceof Error&&(e.message.includes(`1091`)||e.message.includes(`no such column`)))return;throw e}}async function xp(e){await $(e,`hooks`,`template_id`),await $(e,`hooks`,`created_at_ts`),await $(e,`hooks`,`updated_at_ts`)}var Sp=t({down:()=>Ep,up:()=>Tp});async function Cp(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function wp(e,t,n){try{await e.schema.alterTable(t).dropColumn(n).execute()}catch(e){let r=e instanceof Error?e.message:String(e);if(r.includes(`1091`)||r.includes(`no such column`)){G(` Column ${t}.${n} doesn't exist, skipping`);return}throw e}}async function Tp(e){let t=await Cp(e);G(`Running preflight integrity check on hooks timestamp columns...`);let{rows:n}=await r.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(e),i=Number(n[0]?.null_created??0),a=Number(n[0]?.null_updated??0);if(i>0||a>0)throw Error(`Preflight check failed: ${i} row(s) with NULL created_at_ts, ${a} row(s) with NULL updated_at_ts. All timestamp data must be migrated to _ts columns before dropping legacy columns.`);if(
|
|
92
|
+
FROM hooks`.execute(e),i=Number(n[0]?.null_created??0),a=Number(n[0]?.null_updated??0);if(i>0||a>0)throw Error(`Preflight check failed: ${i} row(s) with NULL created_at_ts, ${a} row(s) with NULL updated_at_ts. All timestamp data must be migrated to _ts columns before dropping legacy columns.`);if(G(` Preflight check passed — all _ts columns are populated.`),t===`mysql`){G(`Running preflight length check on columns being narrowed...`);let{rows:t}=await r.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(e),n=Number(t[0]?.long_hook_id??0),i=Number(t[0]?.long_form_id??0),a=Number(t[0]?.long_template_id??0),o=[];if(n>0&&o.push(`${n} row(s) with hook_id longer than 21 chars`),i>0&&o.push(`${i} row(s) with form_id longer than 128 chars`),a>0&&o.push(`${a} row(s) with template_id longer than 64 chars`),o.length>0)throw Error(`Preflight length check failed: ${o.join(`; `)}. Truncate or fix oversized values before running this migration.`);
|
|
96
|
+
FROM hooks`.execute(e),n=Number(t[0]?.long_hook_id??0),i=Number(t[0]?.long_form_id??0),a=Number(t[0]?.long_template_id??0),o=[];if(n>0&&o.push(`${n} row(s) with hook_id longer than 21 chars`),i>0&&o.push(`${i} row(s) with form_id longer than 128 chars`),a>0&&o.push(`${a} row(s) with template_id longer than 64 chars`),o.length>0)throw Error(`Preflight length check failed: ${o.join(`; `)}. Truncate or fix oversized values before running this migration.`);G(` Preflight length check passed — all values fit within new column sizes.`)}G(`Dropping old date columns from hooks...`),await wp(e,`hooks`,`created_at`),await wp(e,`hooks`,`updated_at`),t===`mysql`&&(G(`Fixing hook column types...`),await e.schema.alterTable(`hooks`).modifyColumn(`hook_id`,`varchar(21)`,e=>e.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 Ep(e){let t=await Cp(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 r.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')
|
|
@@ -103,13 +103,13 @@ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{val
|
|
|
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(e),t===`mysql`&&(await e.schema.alterTable(`hooks`).modifyColumn(`hook_id`,`varchar(255)`,e=>e.notNull().primaryKey()).execute(),await e.schema.alterTable(`hooks`).modifyColumn(`form_id`,`text`).execute(),await e.schema.alterTable(`hooks`).modifyColumn(`template_id`,`text`).execute())}var
|
|
106
|
+
`.execute(e),t===`mysql`&&(await e.schema.alterTable(`hooks`).modifyColumn(`hook_id`,`varchar(255)`,e=>e.notNull().primaryKey()).execute(),await e.schema.alterTable(`hooks`).modifyColumn(`form_id`,`text`).execute(),await e.schema.alterTable(`hooks`).modifyColumn(`template_id`,`text`).execute())}var Dp=t({down:()=>kp,up:()=>Op});async function Op(e){let{rows:t}=await r.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(e);if(t.length>0){
|
|
112
|
+
`.execute(e);if(t.length>0){G(`Found ${t.length} duplicate (username, provider, tenant_id) group(s) – cleaning up…`);for(let e of t)G(` provider=${e.provider} count=${e.cnt}`);await r.sql`
|
|
113
113
|
DELETE FROM users
|
|
114
114
|
WHERE username IS NOT NULL
|
|
115
115
|
AND (user_id, tenant_id) NOT IN (
|
|
@@ -125,7 +125,7 @@ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{val
|
|
|
125
125
|
GROUP BY username, provider, tenant_id
|
|
126
126
|
HAVING COUNT(*) > 1
|
|
127
127
|
)
|
|
128
|
-
`.execute(e),K(`Duplicate rows removed.`)}await e.schema.createIndex(`unique_username_provider`).on(`users`).unique().columns([`username`,`provider`,`tenant_id`]).execute()}async function Np(e){await e.schema.dropIndex(`unique_username_provider`).execute()}var Pp=t({down:()=>Ip,up:()=>Fp});async function Fp(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 Ip(e){await e.schema.dropIndex(`idx_refresh_tokens_login_id`).execute(),await e.schema.alterTable(`refresh_tokens`).dropColumn(`login_id`).execute()}var Lp=t({down:()=>Bp,up:()=>zp});async function Rp(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function zp(e){await Rp(e)===`mysql`?(await e.schema.alterTable(`refresh_tokens`).modifyColumn(`login_id`,`varchar(26)`,e=>e.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 Bp(e){await Rp(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()}var Vp=t({down:()=>Up,up:()=>Hp});async function Hp(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 Up(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()}var Wp=t({down:()=>Kp,up:()=>Gp});async function Gp(e){await e.schema.alterTable(`login_sessions`).addColumn(`auth_connection`,`varchar(255)`).execute()}async function Kp(e){await e.schema.alterTable(`login_sessions`).dropColumn(`auth_connection`).execute()}var qp=t({down:()=>Yp,up:()=>Jp});async function Jp(e){await e.schema.createTable(`mfa_enrollments`).addColumn(`id`,`varchar(26)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.references(`tenants.id`).onDelete(`cascade`).notNull()).addColumn(`user_id`,`varchar(255)`,e=>e.notNull()).addColumn(`type`,`varchar(32)`,e=>e.notNull()).addColumn(`phone_number`,`varchar(32)`).addColumn(`totp_secret`,`varchar(255)`).addColumn(`confirmed`,`integer`,e=>e.notNull().defaultTo(0)).addColumn(`created_at_ts`,`bigint`,e=>e.notNull()).addColumn(`updated_at_ts`,`bigint`,e=>e.notNull()).execute(),await e.schema.createIndex(`mfa_enrollments_tenant_user_idx`).on(`mfa_enrollments`).columns([`tenant_id`,`user_id`]).execute()}async function Yp(e){await e.schema.dropTable(`mfa_enrollments`).execute()}var Xp=t({down:()=>Qp,up:()=>Zp});async function Zp(e){await e.schema.alterTable(`codes`).addColumn(`otp`,`varchar(32)`).execute()}async function Qp(e){await e.schema.alterTable(`codes`).dropColumn(`otp`).execute()}var $p=t({down:()=>tm,up:()=>em});async function em(e){await e.schema.alterTable(`mfa_enrollments`).renameTo(`authentication_methods`).execute(),await e.schema.alterTable(`authentication_methods`).addColumn(`credential_id`,`varchar(512)`).execute(),await e.schema.alterTable(`authentication_methods`).addColumn(`public_key`,`text`).execute(),await e.schema.alterTable(`authentication_methods`).addColumn(`sign_count`,`integer`).execute(),await e.schema.alterTable(`authentication_methods`).addColumn(`credential_backed_up`,`integer`).execute(),await e.schema.alterTable(`authentication_methods`).addColumn(`transports`,`varchar(512)`).execute(),await e.schema.alterTable(`authentication_methods`).addColumn(`friendly_name`,`varchar(255)`).execute(),await e.schema.createIndex(`authentication_methods_credential_id_idx`).on(`authentication_methods`).column(`credential_id`).execute()}async function tm(e){await e.schema.dropIndex(`authentication_methods_credential_id_idx`).execute(),await e.schema.alterTable(`authentication_methods`).dropColumn(`friendly_name`).execute(),await e.schema.alterTable(`authentication_methods`).dropColumn(`transports`).execute(),await e.schema.alterTable(`authentication_methods`).dropColumn(`credential_backed_up`).execute(),await e.schema.alterTable(`authentication_methods`).dropColumn(`sign_count`).execute(),await e.schema.alterTable(`authentication_methods`).dropColumn(`public_key`).execute(),await e.schema.alterTable(`authentication_methods`).dropColumn(`credential_id`).execute(),await e.schema.alterTable(`authentication_methods`).renameTo(`mfa_enrollments`).execute()}var nm=t({down:()=>im,up:()=>rm});async function rm(e){await e.schema.createTable(`outbox_events`).addColumn(`id`,`varchar(21)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`event_type`,`varchar(255)`,e=>e.notNull()).addColumn(`log_type`,`varchar(64)`,e=>e.notNull()).addColumn(`aggregate_type`,`varchar(64)`,e=>e.notNull()).addColumn(`aggregate_id`,`varchar(255)`,e=>e.notNull()).addColumn(`payload`,`text`,e=>e.notNull()).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`processed_at`,`varchar(35)`).addColumn(`retry_count`,`integer`,e=>e.notNull().defaultTo(0)).addColumn(`next_retry_at`,`varchar(35)`).addColumn(`error`,`text`).execute(),await e.schema.createIndex(`idx_outbox_unprocessed`).on(`outbox_events`).columns([`processed_at`,`created_at`]).execute(),await e.schema.createIndex(`idx_outbox_tenant_type`).on(`outbox_events`).columns([`tenant_id`,`event_type`,`created_at`]).execute()}async function im(e){await e.schema.dropTable(`outbox_events`).execute()}var am=t({down:()=>sm,up:()=>om});async function om(e){await e.schema.alterTable(`outbox_events`).addColumn(`claimed_by`,`varchar(64)`).execute(),await e.schema.alterTable(`outbox_events`).addColumn(`claim_expires_at`,`varchar(35)`).execute()}async function sm(e){await e.schema.alterTable(`outbox_events`).dropColumn(`claimed_by`).execute(),await e.schema.alterTable(`outbox_events`).dropColumn(`claim_expires_at`).execute()}var cm=t({down:()=>um,up:()=>lm});async function lm(e){await e.schema.createIndex(`idx_outbox_claim`).on(`outbox_events`).columns([`processed_at`,`claim_expires_at`,`next_retry_at`,`created_at`]).execute()}async function um(e){await e.schema.dropIndex(`idx_outbox_claim`).on(`outbox_events`).execute()}var dm=t({down:()=>pm,up:()=>fm});async function fm(e){await e.schema.createTable(`hook_code`).addColumn(`id`,`varchar(21)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`code`,`text`,e=>e.notNull()).addColumn(`secrets`,`text`).addColumn(`created_at_ts`,`bigint`,e=>e.notNull()).addColumn(`updated_at_ts`,`bigint`,e=>e.notNull()).execute(),await e.schema.createIndex(`idx_hook_code_tenant`).on(`hook_code`).columns([`tenant_id`]).execute(),await e.schema.alterTable(`hooks`).addColumn(`code_id`,`varchar(21)`).execute()}async function pm(e){await e.schema.alterTable(`hooks`).dropColumn(`code_id`).execute(),await e.schema.dropTable(`hook_code`).execute()}var mm=t({down:()=>gm,up:()=>hm});async function hm(e){await e.schema.createTable(`actions`).addColumn(`id`,`varchar(255)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`name`,`varchar(255)`,e=>e.notNull()).addColumn(`code`,`text`,e=>e.notNull()).addColumn(`runtime`,`varchar(50)`).addColumn(`status`,`varchar(50)`,e=>e.defaultTo(`built`)).addColumn(`secrets`,`text`).addColumn(`dependencies`,`text`).addColumn(`supported_triggers`,`text`).addColumn(`deployed_at_ts`,`bigint`).addColumn(`created_at_ts`,`bigint`,e=>e.notNull()).addColumn(`updated_at_ts`,`bigint`,e=>e.notNull()).execute(),await e.schema.createIndex(`idx_actions_tenant`).on(`actions`).columns([`tenant_id`]).execute()}async function gm(e){await e.schema.dropTable(`actions`).execute()}var _m=t({down:()=>ym,up:()=>vm});async function vm(e){await e.schema.alterTable(`outbox_events`).addColumn(`dead_lettered_at`,`varchar(35)`).execute(),await e.schema.alterTable(`outbox_events`).addColumn(`final_error`,`text`).execute()}async function ym(e){await e.schema.alterTable(`outbox_events`).dropColumn(`dead_lettered_at`).execute(),await e.schema.alterTable(`outbox_events`).dropColumn(`final_error`).execute()}var bm=t({down:()=>Sm,up:()=>xm});async function xm(e){await e.schema.alterTable(`users`).addColumn(`registration_completed_at`,`varchar(35)`).execute(),await e.updateTable(`users`).set({registration_completed_at:r.sql`created_at`}).where(`registration_completed_at`,`is`,null).execute()}async function Sm(e){await e.schema.alterTable(`users`).dropColumn(`registration_completed_at`).execute()}var Cm=t({down:()=>Tm,up:()=>wm});async function wm(e){await e.schema.createIndex(`idx_outbox_events_tenant_dead_lettered`).on(`outbox_events`).columns([`tenant_id`,`dead_lettered_at`]).execute()}async function Tm(e){await e.schema.dropIndex(`idx_outbox_events_tenant_dead_lettered`).execute()}var Em=t({down:()=>Om,up:()=>Dm});async function Dm(e){await e.schema.alterTable(`login_sessions`).addColumn(`auth_strategy_strategy`,`varchar(64)`).execute(),await e.schema.alterTable(`login_sessions`).addColumn(`auth_strategy_strategy_type`,`varchar(64)`).execute(),await e.schema.alterTable(`login_sessions`).addColumn(`authenticated_at`,`varchar(35)`).execute()}async function Om(e){await e.schema.alterTable(`login_sessions`).dropColumn(`auth_strategy_strategy`).execute(),await e.schema.alterTable(`login_sessions`).dropColumn(`auth_strategy_strategy_type`).execute(),await e.schema.alterTable(`login_sessions`).dropColumn(`authenticated_at`).execute()}var km=t({down:()=>Mm,up:()=>jm});async function Am(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function jm(e){let t=await Am(e);try{await e.schema.alterTable(`login_sessions`).addColumn(`auth_params`,`text`).execute(),K(` Added column auth_params to login_sessions`)}catch(e){q(` Warning: Could not add auth_params column: ${e instanceof Error?e.message:String(e)}`)}if(t===`mysql`)try{await e.schema.alterTable(`login_sessions`).modifyColumn(`authorization_url`,`text`).execute(),K(` Widened authorization_url to text`)}catch(e){q(` Warning: Could not widen authorization_url: ${e instanceof Error?e.message:String(e)}`)}}async function Mm(e){let t=await Am(e);try{await e.schema.alterTable(`login_sessions`).dropColumn(`auth_params`).execute()}catch(e){q(` Warning: Could not drop auth_params column: ${e instanceof Error?e.message:String(e)}`)}if(t===`mysql`)try{await e.schema.alterTable(`login_sessions`).modifyColumn(`authorization_url`,`varchar(1024)`).execute()}catch(e){q(` Warning: Could not narrow authorization_url: ${e instanceof Error?e.message:String(e)}`)}}var Nm=t({down:()=>Rm,up:()=>Lm}),Pm=[`client_id`,`act_as`,`response_type`,`response_mode`,`redirect_uri`,`audience`,`organization`,`state`,`nonce`,`scope`,`prompt`,`code_challenge_method`,`code_challenge`,`username`,`ui_locales`,`max_age`,`acr_values`,`vendor_id`],Fm=500,Im=20;async function Lm(e){try{let t=0;for(;;){let n=await e.selectFrom(`login_sessions`).where(`auth_params`,`is`,null).selectAll().limit(Fm).execute();if(n.length===0)break;for(let t=0;t<n.length;t+=Im){let r=n.slice(t,t+Im);await Promise.all(r.map(async t=>{let n={};for(let e of Pm){let r=t[`authParams_${e}`];r!=null&&(n[e]=r)}await e.updateTable(`login_sessions`).set({auth_params:JSON.stringify(n)}).where(`tenant_id`,`=`,t.tenant_id).where(`id`,`=`,t.id).execute()}))}if(t+=n.length,K(` Backfilled auth_params for ${t} login_sessions row(s)...`),n.length<Fm)break}K(t===0?` No login_sessions rows to backfill (auth_params all set)`:` Backfilled auth_params for ${t} login_sessions row(s) total`)}catch(e){q(` Warning: Could not backfill auth_params: ${e instanceof Error?e.message:String(e)}`)}}async function Rm(e){}var zm=t({down:()=>Wm,up:()=>Vm});async function Bm(e){try{return await r.sql`SELECT @@version_comment`.execute(e),`mysql`}catch{return`sqlite`}}async function Vm(e){await Bm(e)===`mysql`?await Hm(e):await Um(e)}async function Hm(e){try{await r.sql`ALTER TABLE login_sessions DROP FOREIGN KEY login_sessions_client_fk`.execute(e),K(` Dropped FK login_sessions_client_fk`)}catch(e){let t=e instanceof Error?e.message:String(e);t.includes(`1091`)||t.includes(`doesn't exist`)?K(` FK login_sessions_client_fk already absent, skipping`):q(` Warning: could not drop login_sessions_client_fk: ${t}`)}try{await r.sql`ALTER TABLE login_sessions MODIFY authParams_client_id varchar(191) NULL`.execute(e),K(` Relaxed NOT NULL on login_sessions.authParams_client_id`)}catch(e){throw q(` Failed to relax authParams_client_id NOT NULL: ${e instanceof Error?e.message:String(e)}`),e}}async function Um(e){await e.transaction().execute(async e=>{await e.schema.createTable(`login_sessions_new`).addColumn(`id`,`varchar(26)`,e=>e.notNull()).addColumn(`tenant_id`,`varchar(255)`,e=>e.references(`tenants.id`).onDelete(`cascade`).notNull()).addColumn(`session_id`,`varchar(26)`).addColumn(`csrf_token`,`varchar(26)`,e=>e.notNull()).addColumn(`authParams_client_id`,`varchar(191)`).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(`authParams_max_age`,`integer`).addColumn(`authParams_acr_values`,`varchar(255)`).addColumn(`authorization_url`,`text`).addColumn(`ip`,`varchar(39)`).addColumn(`useragent`,`text`).addColumn(`auth0Client`,`varchar(255)`).addColumn(`state`,`varchar(50)`,e=>e.defaultTo(`pending`)).addColumn(`state_data`,`text`).addColumn(`failure_reason`,`text`).addColumn(`user_id`,`varchar(255)`).addColumn(`created_at_ts`,`bigint`).addColumn(`updated_at_ts`,`bigint`).addColumn(`expires_at_ts`,`bigint`).addColumn(`auth_connection`,`varchar(255)`).addColumn(`auth_strategy_strategy`,`varchar(64)`).addColumn(`auth_strategy_strategy_type`,`varchar(64)`).addColumn(`authenticated_at`,`varchar(35)`).addColumn(`auth_params`,`text`).addPrimaryKeyConstraint(`login_sessions_pk`,[`tenant_id`,`id`]).addForeignKeyConstraint(`login_sessions_session_fk`,[`tenant_id`,`session_id`],`sessions`,[`tenant_id`,`id`],e=>e.onDelete(`cascade`)).execute(),await r.sql`INSERT INTO login_sessions_new (
|
|
128
|
+
`.execute(e),G(`Duplicate rows removed.`)}await e.schema.createIndex(`unique_username_provider`).on(`users`).unique().columns([`username`,`provider`,`tenant_id`]).execute()}async function kp(e){await e.schema.dropIndex(`unique_username_provider`).execute()}var Ap=t({down:()=>Mp,up:()=>jp});async function jp(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 Mp(e){await e.schema.dropIndex(`idx_refresh_tokens_login_id`).execute(),await e.schema.alterTable(`refresh_tokens`).dropColumn(`login_id`).execute()}var Np=t({down:()=>Ip,up:()=>Fp});async function Pp(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function Fp(e){await Pp(e)===`mysql`?(await e.schema.alterTable(`refresh_tokens`).modifyColumn(`login_id`,`varchar(26)`,e=>e.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 Ip(e){await Pp(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()}var Lp=t({down:()=>zp,up:()=>Rp});async function Rp(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 zp(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()}var Bp=t({down:()=>Hp,up:()=>Vp});async function Vp(e){await e.schema.alterTable(`login_sessions`).addColumn(`auth_connection`,`varchar(255)`).execute()}async function Hp(e){await e.schema.alterTable(`login_sessions`).dropColumn(`auth_connection`).execute()}var Up=t({down:()=>Gp,up:()=>Wp});async function Wp(e){await e.schema.createTable(`mfa_enrollments`).addColumn(`id`,`varchar(26)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.references(`tenants.id`).onDelete(`cascade`).notNull()).addColumn(`user_id`,`varchar(255)`,e=>e.notNull()).addColumn(`type`,`varchar(32)`,e=>e.notNull()).addColumn(`phone_number`,`varchar(32)`).addColumn(`totp_secret`,`varchar(255)`).addColumn(`confirmed`,`integer`,e=>e.notNull().defaultTo(0)).addColumn(`created_at_ts`,`bigint`,e=>e.notNull()).addColumn(`updated_at_ts`,`bigint`,e=>e.notNull()).execute(),await e.schema.createIndex(`mfa_enrollments_tenant_user_idx`).on(`mfa_enrollments`).columns([`tenant_id`,`user_id`]).execute()}async function Gp(e){await e.schema.dropTable(`mfa_enrollments`).execute()}var Kp=t({down:()=>Jp,up:()=>qp});async function qp(e){await e.schema.alterTable(`codes`).addColumn(`otp`,`varchar(32)`).execute()}async function Jp(e){await e.schema.alterTable(`codes`).dropColumn(`otp`).execute()}var Yp=t({down:()=>Zp,up:()=>Xp});async function Xp(e){await e.schema.alterTable(`mfa_enrollments`).renameTo(`authentication_methods`).execute(),await e.schema.alterTable(`authentication_methods`).addColumn(`credential_id`,`varchar(512)`).execute(),await e.schema.alterTable(`authentication_methods`).addColumn(`public_key`,`text`).execute(),await e.schema.alterTable(`authentication_methods`).addColumn(`sign_count`,`integer`).execute(),await e.schema.alterTable(`authentication_methods`).addColumn(`credential_backed_up`,`integer`).execute(),await e.schema.alterTable(`authentication_methods`).addColumn(`transports`,`varchar(512)`).execute(),await e.schema.alterTable(`authentication_methods`).addColumn(`friendly_name`,`varchar(255)`).execute(),await e.schema.createIndex(`authentication_methods_credential_id_idx`).on(`authentication_methods`).column(`credential_id`).execute()}async function Zp(e){await e.schema.dropIndex(`authentication_methods_credential_id_idx`).execute(),await e.schema.alterTable(`authentication_methods`).dropColumn(`friendly_name`).execute(),await e.schema.alterTable(`authentication_methods`).dropColumn(`transports`).execute(),await e.schema.alterTable(`authentication_methods`).dropColumn(`credential_backed_up`).execute(),await e.schema.alterTable(`authentication_methods`).dropColumn(`sign_count`).execute(),await e.schema.alterTable(`authentication_methods`).dropColumn(`public_key`).execute(),await e.schema.alterTable(`authentication_methods`).dropColumn(`credential_id`).execute(),await e.schema.alterTable(`authentication_methods`).renameTo(`mfa_enrollments`).execute()}var Qp=t({down:()=>em,up:()=>$p});async function $p(e){await e.schema.createTable(`outbox_events`).addColumn(`id`,`varchar(21)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`event_type`,`varchar(255)`,e=>e.notNull()).addColumn(`log_type`,`varchar(64)`,e=>e.notNull()).addColumn(`aggregate_type`,`varchar(64)`,e=>e.notNull()).addColumn(`aggregate_id`,`varchar(255)`,e=>e.notNull()).addColumn(`payload`,`text`,e=>e.notNull()).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`processed_at`,`varchar(35)`).addColumn(`retry_count`,`integer`,e=>e.notNull().defaultTo(0)).addColumn(`next_retry_at`,`varchar(35)`).addColumn(`error`,`text`).execute(),await e.schema.createIndex(`idx_outbox_unprocessed`).on(`outbox_events`).columns([`processed_at`,`created_at`]).execute(),await e.schema.createIndex(`idx_outbox_tenant_type`).on(`outbox_events`).columns([`tenant_id`,`event_type`,`created_at`]).execute()}async function em(e){await e.schema.dropTable(`outbox_events`).execute()}var tm=t({down:()=>rm,up:()=>nm});async function nm(e){await e.schema.alterTable(`outbox_events`).addColumn(`claimed_by`,`varchar(64)`).execute(),await e.schema.alterTable(`outbox_events`).addColumn(`claim_expires_at`,`varchar(35)`).execute()}async function rm(e){await e.schema.alterTable(`outbox_events`).dropColumn(`claimed_by`).execute(),await e.schema.alterTable(`outbox_events`).dropColumn(`claim_expires_at`).execute()}var im=t({down:()=>om,up:()=>am});async function am(e){await e.schema.createIndex(`idx_outbox_claim`).on(`outbox_events`).columns([`processed_at`,`claim_expires_at`,`next_retry_at`,`created_at`]).execute()}async function om(e){await e.schema.dropIndex(`idx_outbox_claim`).on(`outbox_events`).execute()}var sm=t({down:()=>lm,up:()=>cm});async function cm(e){await e.schema.createTable(`hook_code`).addColumn(`id`,`varchar(21)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`code`,`text`,e=>e.notNull()).addColumn(`secrets`,`text`).addColumn(`created_at_ts`,`bigint`,e=>e.notNull()).addColumn(`updated_at_ts`,`bigint`,e=>e.notNull()).execute(),await e.schema.createIndex(`idx_hook_code_tenant`).on(`hook_code`).columns([`tenant_id`]).execute(),await e.schema.alterTable(`hooks`).addColumn(`code_id`,`varchar(21)`).execute()}async function lm(e){await e.schema.alterTable(`hooks`).dropColumn(`code_id`).execute(),await e.schema.dropTable(`hook_code`).execute()}var um=t({down:()=>fm,up:()=>dm});async function dm(e){await e.schema.createTable(`actions`).addColumn(`id`,`varchar(255)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`name`,`varchar(255)`,e=>e.notNull()).addColumn(`code`,`text`,e=>e.notNull()).addColumn(`runtime`,`varchar(50)`).addColumn(`status`,`varchar(50)`,e=>e.defaultTo(`built`)).addColumn(`secrets`,`text`).addColumn(`dependencies`,`text`).addColumn(`supported_triggers`,`text`).addColumn(`deployed_at_ts`,`bigint`).addColumn(`created_at_ts`,`bigint`,e=>e.notNull()).addColumn(`updated_at_ts`,`bigint`,e=>e.notNull()).execute(),await e.schema.createIndex(`idx_actions_tenant`).on(`actions`).columns([`tenant_id`]).execute()}async function fm(e){await e.schema.dropTable(`actions`).execute()}var pm=t({down:()=>hm,up:()=>mm});async function mm(e){await e.schema.alterTable(`outbox_events`).addColumn(`dead_lettered_at`,`varchar(35)`).execute(),await e.schema.alterTable(`outbox_events`).addColumn(`final_error`,`text`).execute()}async function hm(e){await e.schema.alterTable(`outbox_events`).dropColumn(`dead_lettered_at`).execute(),await e.schema.alterTable(`outbox_events`).dropColumn(`final_error`).execute()}var gm=t({down:()=>vm,up:()=>_m});async function _m(e){await e.schema.alterTable(`users`).addColumn(`registration_completed_at`,`varchar(35)`).execute(),await e.updateTable(`users`).set({registration_completed_at:r.sql`created_at`}).where(`registration_completed_at`,`is`,null).execute()}async function vm(e){await e.schema.alterTable(`users`).dropColumn(`registration_completed_at`).execute()}var ym=t({down:()=>xm,up:()=>bm});async function bm(e){await e.schema.createIndex(`idx_outbox_events_tenant_dead_lettered`).on(`outbox_events`).columns([`tenant_id`,`dead_lettered_at`]).execute()}async function xm(e){await e.schema.dropIndex(`idx_outbox_events_tenant_dead_lettered`).execute()}var Sm=t({down:()=>wm,up:()=>Cm});async function Cm(e){await e.schema.alterTable(`login_sessions`).addColumn(`auth_strategy_strategy`,`varchar(64)`).execute(),await e.schema.alterTable(`login_sessions`).addColumn(`auth_strategy_strategy_type`,`varchar(64)`).execute(),await e.schema.alterTable(`login_sessions`).addColumn(`authenticated_at`,`varchar(35)`).execute()}async function wm(e){await e.schema.alterTable(`login_sessions`).dropColumn(`auth_strategy_strategy`).execute(),await e.schema.alterTable(`login_sessions`).dropColumn(`auth_strategy_strategy_type`).execute(),await e.schema.alterTable(`login_sessions`).dropColumn(`authenticated_at`).execute()}var Tm=t({down:()=>Om,up:()=>Dm});async function Em(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function Dm(e){let t=await Em(e);try{await e.schema.alterTable(`login_sessions`).addColumn(`auth_params`,`text`).execute(),G(` Added column auth_params to login_sessions`)}catch(e){K(` Warning: Could not add auth_params column: ${e instanceof Error?e.message:String(e)}`)}if(t===`mysql`)try{await e.schema.alterTable(`login_sessions`).modifyColumn(`authorization_url`,`text`).execute(),G(` Widened authorization_url to text`)}catch(e){K(` Warning: Could not widen authorization_url: ${e instanceof Error?e.message:String(e)}`)}}async function Om(e){let t=await Em(e);try{await e.schema.alterTable(`login_sessions`).dropColumn(`auth_params`).execute()}catch(e){K(` Warning: Could not drop auth_params column: ${e instanceof Error?e.message:String(e)}`)}if(t===`mysql`)try{await e.schema.alterTable(`login_sessions`).modifyColumn(`authorization_url`,`varchar(1024)`).execute()}catch(e){K(` Warning: Could not narrow authorization_url: ${e instanceof Error?e.message:String(e)}`)}}var km=t({down:()=>Pm,up:()=>Nm}),Am=[`client_id`,`act_as`,`response_type`,`response_mode`,`redirect_uri`,`audience`,`organization`,`state`,`nonce`,`scope`,`prompt`,`code_challenge_method`,`code_challenge`,`username`,`ui_locales`,`max_age`,`acr_values`,`vendor_id`],jm=500,Mm=20;async function Nm(e){try{let t=0;for(;;){let n=await e.selectFrom(`login_sessions`).where(`auth_params`,`is`,null).selectAll().limit(jm).execute();if(n.length===0)break;for(let t=0;t<n.length;t+=Mm){let r=n.slice(t,t+Mm);await Promise.all(r.map(async t=>{let n={};for(let e of Am){let r=t[`authParams_${e}`];r!=null&&(n[e]=r)}await e.updateTable(`login_sessions`).set({auth_params:JSON.stringify(n)}).where(`tenant_id`,`=`,t.tenant_id).where(`id`,`=`,t.id).execute()}))}if(t+=n.length,G(` Backfilled auth_params for ${t} login_sessions row(s)...`),n.length<jm)break}G(t===0?` No login_sessions rows to backfill (auth_params all set)`:` Backfilled auth_params for ${t} login_sessions row(s) total`)}catch(e){K(` Warning: Could not backfill auth_params: ${e instanceof Error?e.message:String(e)}`)}}async function Pm(e){}var Fm=t({down:()=>Bm,up:()=>Lm});async function Im(e){try{return await r.sql`SELECT @@version_comment`.execute(e),`mysql`}catch{return`sqlite`}}async function Lm(e){await Im(e)===`mysql`?await Rm(e):await zm(e)}async function Rm(e){try{await r.sql`ALTER TABLE login_sessions DROP FOREIGN KEY login_sessions_client_fk`.execute(e),G(` Dropped FK login_sessions_client_fk`)}catch(e){let t=e instanceof Error?e.message:String(e);t.includes(`1091`)||t.includes(`doesn't exist`)?G(` FK login_sessions_client_fk already absent, skipping`):K(` Warning: could not drop login_sessions_client_fk: ${t}`)}try{await r.sql`ALTER TABLE login_sessions MODIFY authParams_client_id varchar(191) NULL`.execute(e),G(` Relaxed NOT NULL on login_sessions.authParams_client_id`)}catch(e){throw K(` Failed to relax authParams_client_id NOT NULL: ${e instanceof Error?e.message:String(e)}`),e}}async function zm(e){await e.transaction().execute(async e=>{await e.schema.createTable(`login_sessions_new`).addColumn(`id`,`varchar(26)`,e=>e.notNull()).addColumn(`tenant_id`,`varchar(255)`,e=>e.references(`tenants.id`).onDelete(`cascade`).notNull()).addColumn(`session_id`,`varchar(26)`).addColumn(`csrf_token`,`varchar(26)`,e=>e.notNull()).addColumn(`authParams_client_id`,`varchar(191)`).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(`authParams_max_age`,`integer`).addColumn(`authParams_acr_values`,`varchar(255)`).addColumn(`authorization_url`,`text`).addColumn(`ip`,`varchar(39)`).addColumn(`useragent`,`text`).addColumn(`auth0Client`,`varchar(255)`).addColumn(`state`,`varchar(50)`,e=>e.defaultTo(`pending`)).addColumn(`state_data`,`text`).addColumn(`failure_reason`,`text`).addColumn(`user_id`,`varchar(255)`).addColumn(`created_at_ts`,`bigint`).addColumn(`updated_at_ts`,`bigint`).addColumn(`expires_at_ts`,`bigint`).addColumn(`auth_connection`,`varchar(255)`).addColumn(`auth_strategy_strategy`,`varchar(64)`).addColumn(`auth_strategy_strategy_type`,`varchar(64)`).addColumn(`authenticated_at`,`varchar(35)`).addColumn(`auth_params`,`text`).addPrimaryKeyConstraint(`login_sessions_pk`,[`tenant_id`,`id`]).addForeignKeyConstraint(`login_sessions_session_fk`,[`tenant_id`,`session_id`],`sessions`,[`tenant_id`,`id`],e=>e.onDelete(`cascade`)).execute(),await r.sql`INSERT INTO login_sessions_new (
|
|
129
129
|
id, tenant_id, session_id, csrf_token,
|
|
130
130
|
authParams_client_id, authParams_vendor_id, authParams_username,
|
|
131
131
|
authParams_response_type, authParams_response_mode, authParams_audience,
|
|
@@ -151,7 +151,7 @@ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{val
|
|
|
151
151
|
user_id, created_at_ts, updated_at_ts, expires_at_ts,
|
|
152
152
|
auth_connection, auth_strategy_strategy, auth_strategy_strategy_type,
|
|
153
153
|
authenticated_at, auth_params
|
|
154
|
-
FROM login_sessions`.execute(e),await r.sql`DROP TABLE login_sessions`.execute(e),await r.sql`ALTER TABLE login_sessions_new RENAME TO login_sessions`.execute(e),await e.schema.createIndex(`login_sessions_id_index`).on(`login_sessions`).column(`id`).execute(),await e.schema.createIndex(`idx_login_sessions_session_id`).on(`login_sessions`).column(`session_id`).execute(),await e.schema.createIndex(`login_sessions_tenant_user_idx`).on(`login_sessions`).columns([`tenant_id`,`user_id`]).execute(),await e.schema.createIndex(`login_sessions_state_idx`).on(`login_sessions`).column(`state`).execute(),await e.schema.createIndex(`idx_login_sessions_expires_at_ts`).on(`login_sessions`).column(`expires_at_ts`).execute()}),
|
|
154
|
+
FROM login_sessions`.execute(e),await r.sql`DROP TABLE login_sessions`.execute(e),await r.sql`ALTER TABLE login_sessions_new RENAME TO login_sessions`.execute(e),await e.schema.createIndex(`login_sessions_id_index`).on(`login_sessions`).column(`id`).execute(),await e.schema.createIndex(`idx_login_sessions_session_id`).on(`login_sessions`).column(`session_id`).execute(),await e.schema.createIndex(`login_sessions_tenant_user_idx`).on(`login_sessions`).columns([`tenant_id`,`user_id`]).execute(),await e.schema.createIndex(`login_sessions_state_idx`).on(`login_sessions`).column(`state`).execute(),await e.schema.createIndex(`idx_login_sessions_expires_at_ts`).on(`login_sessions`).column(`expires_at_ts`).execute()}),G(` Rebuilt login_sessions with FK dropped and authParams_client_id nullable`)}async function Bm(e){}var Vm=t({down:()=>Jm,up:()=>Gm}),Hm=[`authParams_client_id`,`authParams_vendor_id`,`authParams_username`,`authParams_response_type`,`authParams_response_mode`,`authParams_audience`,`authParams_scope`,`authParams_state`,`authParams_nonce`,`authParams_code_challenge_method`,`authParams_code_challenge`,`authParams_redirect_uri`,`authParams_organization`,`authParams_prompt`,`authParams_act_as`,`authParams_ui_locales`,`authParams_max_age`,`authParams_acr_values`];async function Um(e){try{return await r.sql`SELECT @@version_comment`.execute(e),`mysql`}catch{return`sqlite`}}async function Wm(e,t,n){try{await e.schema.alterTable(t).dropColumn(n).execute()}catch(e){let r=e instanceof Error?e.message:String(e);if(r.includes(`1091`)||r.includes(`no such column`)){G(` ${t}.${n} already absent, skipping`);return}throw e}}async function Gm(e){await Um(e)===`mysql`?await Km(e):await qm(e)}async function Km(e){for(let t of Hm)await Wm(e,`login_sessions`,t);G(` Dropped ${Hm.length} hoisted authParams_* columns from login_sessions`)}async function qm(e){await e.transaction().execute(async e=>{await e.schema.createTable(`login_sessions_new`).addColumn(`id`,`varchar(26)`,e=>e.notNull()).addColumn(`tenant_id`,`varchar(255)`,e=>e.references(`tenants.id`).onDelete(`cascade`).notNull()).addColumn(`session_id`,`varchar(26)`).addColumn(`csrf_token`,`varchar(26)`,e=>e.notNull()).addColumn(`authorization_url`,`text`).addColumn(`ip`,`varchar(39)`).addColumn(`useragent`,`text`).addColumn(`auth0Client`,`varchar(255)`).addColumn(`state`,`varchar(50)`,e=>e.defaultTo(`pending`)).addColumn(`state_data`,`text`).addColumn(`failure_reason`,`text`).addColumn(`user_id`,`varchar(255)`).addColumn(`created_at_ts`,`bigint`).addColumn(`updated_at_ts`,`bigint`).addColumn(`expires_at_ts`,`bigint`).addColumn(`auth_connection`,`varchar(255)`).addColumn(`auth_strategy_strategy`,`varchar(64)`).addColumn(`auth_strategy_strategy_type`,`varchar(64)`).addColumn(`authenticated_at`,`varchar(35)`).addColumn(`auth_params`,`text`).addPrimaryKeyConstraint(`login_sessions_pk`,[`tenant_id`,`id`]).addForeignKeyConstraint(`login_sessions_session_fk`,[`tenant_id`,`session_id`],`sessions`,[`tenant_id`,`id`],e=>e.onDelete(`cascade`)).execute(),await r.sql`INSERT INTO login_sessions_new (
|
|
155
155
|
id, tenant_id, session_id, csrf_token, authorization_url,
|
|
156
156
|
ip, useragent, auth0Client, state, state_data, failure_reason,
|
|
157
157
|
user_id, created_at_ts, updated_at_ts, expires_at_ts,
|
|
@@ -163,7 +163,7 @@ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{val
|
|
|
163
163
|
user_id, created_at_ts, updated_at_ts, expires_at_ts,
|
|
164
164
|
auth_connection, auth_strategy_strategy, auth_strategy_strategy_type,
|
|
165
165
|
authenticated_at, auth_params
|
|
166
|
-
FROM login_sessions`.execute(e),await r.sql`DROP TABLE login_sessions`.execute(e),await r.sql`ALTER TABLE login_sessions_new RENAME TO login_sessions`.execute(e),await e.schema.createIndex(`login_sessions_id_index`).on(`login_sessions`).column(`id`).execute(),await e.schema.createIndex(`idx_login_sessions_session_id`).on(`login_sessions`).column(`session_id`).execute(),await e.schema.createIndex(`login_sessions_tenant_user_idx`).on(`login_sessions`).columns([`tenant_id`,`user_id`]).execute(),await e.schema.createIndex(`login_sessions_state_idx`).on(`login_sessions`).column(`state`).execute(),await e.schema.createIndex(`idx_login_sessions_expires_at_ts`).on(`login_sessions`).column(`expires_at_ts`).execute()}),K(` Recreated login_sessions without hoisted authParams_* columns`)}async function Qm(e){}var $m=t({down:()=>th,up:()=>eh});async function eh(e){await e.schema.alterTable(`refresh_tokens`).addColumn(`revoked_at_ts`,`bigint`).execute()}async function th(e){await e.schema.alterTable(`refresh_tokens`).dropColumn(`revoked_at_ts`).execute()}var nh=t({down:()=>ih,up:()=>rh});async function rh(e){await e.schema.alterTable(`clients`).addColumn(`owner_user_id`,`varchar(255)`).execute(),await e.schema.alterTable(`clients`).addColumn(`registration_type`,`varchar(32)`).execute(),await e.schema.alterTable(`clients`).addColumn(`registration_metadata`,`text`).execute(),await e.schema.createIndex(`idx_clients_owner_user_id`).on(`clients`).columns([`tenant_id`,`owner_user_id`]).execute(),await e.schema.createTable(`client_registration_tokens`).addColumn(`id`,`varchar(255)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.references(`tenants.id`).onDelete(`cascade`).notNull()).addColumn(`token_hash`,`varchar(64)`,e=>e.notNull()).addColumn(`type`,`varchar(8)`,e=>e.notNull()).addColumn(`client_id`,`varchar(191)`).addColumn(`sub`,`varchar(255)`).addColumn(`constraints`,`text`).addColumn(`single_use`,`integer`,e=>e.defaultTo(0).notNull()).addColumn(`used_at_ts`,`bigint`).addColumn(`expires_at_ts`,`bigint`).addColumn(`created_at_ts`,`bigint`,e=>e.notNull()).addColumn(`revoked_at_ts`,`bigint`).execute(),await e.schema.createIndex(`idx_client_registration_tokens_hash`).on(`client_registration_tokens`).columns([`tenant_id`,`token_hash`]).unique().execute(),await e.schema.createIndex(`idx_client_registration_tokens_client`).on(`client_registration_tokens`).columns([`tenant_id`,`client_id`]).execute()}async function ih(e){await e.schema.dropTable(`client_registration_tokens`).execute(),await e.schema.dropIndex(`idx_clients_owner_user_id`).execute(),await e.schema.alterTable(`clients`).dropColumn(`registration_metadata`).execute(),await e.schema.alterTable(`clients`).dropColumn(`registration_type`).execute(),await e.schema.alterTable(`clients`).dropColumn(`owner_user_id`).execute()}var ah=t({down:()=>uh,up:()=>lh});async function oh(e){try{return await r.sql`SELECT @@version_comment`.execute(e),`mysql`}catch{return`sqlite`}}var sh=[{index:`connections_tenant_id_idx`,table:`connections`,reason:`composite PK (tenant_id, id)`},{index:`idx_invites_tenant_id`,table:`invites`,reason:`idx_invites_tenant_created (tenant_id, created_at)`},{index:`idx_organizations_tenant_id`,table:`organizations`,reason:`idx_organizations_tenant_name_unique (tenant_id, name)`},{index:`role_permissions_role_fk`,table:`role_permissions`,reason:`role_permissions_pk (tenant_id, role_id, ...)`},{index:`themes_tenant_id_idx`,table:`themes`,reason:`themes_pkey (tenant_id, themeId)`},{index:`users_tenant_index`,table:`users`,reason:`stale on PlanetScale only; commented out locally in 2024`},{index:`idx_user_organizations_tenant_id`,table:`user_organizations`,reason:`already dropped locally; may linger on PlanetScale`}];async function ch(e,t,n,i){try{t===`mysql`?await r.sql.raw(`DROP INDEX IF EXISTS \`${n}\` ON \`${i}\``).execute(e):await r.sql.raw(`DROP INDEX IF EXISTS "${n}"`).execute(e)}catch(e){q(` Warning: failed to drop index ${n} on ${i}: ${e instanceof Error?e.message:String(e)}`)}}async function lh(e){let t=await oh(e);for(let{index:n,table:r}of sh)await ch(e,t,n,r);await e.schema.dropTable(`members`).ifExists().execute()}async function uh(e){await e.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 e.schema.createIndex(`idx_user_organizations_tenant_id`).on(`user_organizations`).column(`tenant_id`).execute(),await e.schema.createIndex(`themes_tenant_id_idx`).on(`themes`).column(`tenant_id`).execute(),await e.schema.createIndex(`role_permissions_role_fk`).on(`role_permissions`).columns([`tenant_id`,`role_id`]).execute(),await e.schema.createIndex(`idx_organizations_tenant_id`).on(`organizations`).column(`tenant_id`).execute(),await e.schema.createIndex(`idx_invites_tenant_id`).on(`invites`).column(`tenant_id`).execute(),await e.schema.createIndex(`connections_tenant_id_idx`).on(`connections`).column(`tenant_id`).execute()}var dh=t({down:()=>ph,up:()=>fh});async function fh(e){await e.schema.alterTable(`clients`).addColumn(`user_linking_mode`,`varchar(16)`).execute()}async function ph(e){await e.schema.alterTable(`clients`).dropColumn(`user_linking_mode`).execute()}var mh=t({down:()=>gh,up:()=>hh});async function hh(e){await e.schema.alterTable(`hooks`).addColumn(`metadata`,`text`).execute()}async function gh(e){await e.schema.alterTable(`hooks`).dropColumn(`metadata`).execute()}var _h=t({down:()=>yh,up:()=>vh});async function vh(e){await e.schema.alterTable(`refresh_tokens`).addColumn(`token_lookup`,`varchar(16)`).execute(),await e.schema.alterTable(`refresh_tokens`).addColumn(`token_hash`,`varchar(64)`).execute(),await e.schema.alterTable(`refresh_tokens`).addColumn(`family_id`,`varchar(26)`).execute(),await e.schema.alterTable(`refresh_tokens`).addColumn(`rotated_to`,`varchar(26)`).execute(),await e.schema.alterTable(`refresh_tokens`).addColumn(`rotated_at_ts`,`bigint`).execute(),await e.schema.createIndex(`idx_refresh_tokens_token_lookup`).on(`refresh_tokens`).columns([`tenant_id`,`token_lookup`]).execute(),await e.schema.createIndex(`idx_refresh_tokens_family_id`).on(`refresh_tokens`).columns([`tenant_id`,`family_id`]).execute()}async function yh(e){await e.schema.dropIndex(`idx_refresh_tokens_family_id`).on(`refresh_tokens`).execute(),await e.schema.dropIndex(`idx_refresh_tokens_token_lookup`).on(`refresh_tokens`).execute(),await e.schema.alterTable(`refresh_tokens`).dropColumn(`rotated_at_ts`).execute(),await e.schema.alterTable(`refresh_tokens`).dropColumn(`rotated_to`).execute(),await e.schema.alterTable(`refresh_tokens`).dropColumn(`family_id`).execute(),await e.schema.alterTable(`refresh_tokens`).dropColumn(`token_hash`).execute(),await e.schema.alterTable(`refresh_tokens`).dropColumn(`token_lookup`).execute()}var bh=t({down:()=>Sh,up:()=>xh});async function xh(e){await e.schema.createTable(`organization_connections`).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`organization_id`,`varchar(21)`,e=>e.notNull()).addColumn(`connection_id`,`varchar(191)`,e=>e.notNull()).addColumn(`assign_membership_on_login`,`boolean`,e=>e.notNull().defaultTo(0)).addColumn(`show_as_button`,`boolean`,e=>e.notNull().defaultTo(1)).addColumn(`is_signup_enabled`,`boolean`,e=>e.notNull().defaultTo(1)).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).addUniqueConstraint(`organization_connections_unique`,[`tenant_id`,`organization_id`,`connection_id`]).addForeignKeyConstraint(`organization_connections_organization_fk`,[`organization_id`],`organizations`,[`id`],e=>e.onDelete(`cascade`)).addForeignKeyConstraint(`organization_connections_connection_fk`,[`tenant_id`,`connection_id`],`connections`,[`tenant_id`,`id`],e=>e.onDelete(`cascade`)).execute(),await e.schema.createIndex(`idx_organization_connections_tenant_org`).on(`organization_connections`).columns([`tenant_id`,`organization_id`]).execute(),await e.schema.createIndex(`idx_organization_connections_tenant_connection`).on(`organization_connections`).columns([`tenant_id`,`connection_id`]).execute()}async function Sh(e){await e.schema.dropTable(`organization_connections`).execute()}var Ch=t({down:()=>Th,up:()=>wh});async function wh(e){await e.schema.createTable(`log_streams`).addColumn(`id`,`varchar(64)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`name`,`varchar(255)`,e=>e.notNull()).addColumn(`type`,`varchar(64)`,e=>e.notNull()).addColumn(`status`,`varchar(32)`,e=>e.notNull()).addColumn(`sink`,`text`,e=>e.notNull()).addColumn(`filters`,`text`).addColumn(`is_priority`,`boolean`).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).execute(),await e.schema.createIndex(`idx_log_streams_tenant_id`).on(`log_streams`).columns([`tenant_id`]).execute()}async function Th(e){await e.schema.dropTable(`log_streams`).execute()}var Eh=t({down:()=>Oh,up:()=>Dh});async function Dh(e){await e.schema.alterTable(`tenants`).addColumn(`attack_protection`,`text`).execute()}async function Oh(e){await e.schema.alterTable(`tenants`).dropColumn(`attack_protection`).execute()}var kh=t({down:()=>jh,up:()=>Ah});async function Ah(e){await e.schema.alterTable(`tenants`).addColumn(`default_client_id`,`varchar(255)`).execute()}async function jh(e){await e.schema.alterTable(`tenants`).dropColumn(`default_client_id`).execute()}var Mh=t({down:()=>Ph,up:()=>Nh});async function Nh(e){await e.schema.createTable(`email_templates`).addColumn(`tenant_id`,`varchar(255)`,e=>e.notNull()).addColumn(`template`,`varchar(64)`,e=>e.notNull()).addColumn(`body`,`text`,e=>e.notNull()).addColumn(`from`,`varchar(255)`,e=>e.notNull()).addColumn(`subject`,`varchar(255)`,e=>e.notNull()).addColumn(`syntax`,`varchar(16)`,e=>e.notNull().defaultTo(`liquid`)).addColumn(`result_url`,`varchar(2048)`).addColumn(`url_lifetime_in_seconds`,`integer`).addColumn(`include_email_in_redirect`,`integer`,e=>e.notNull().defaultTo(0).check(r.sql`include_email_in_redirect IN (0, 1)`)).addColumn(`enabled`,`integer`,e=>e.notNull().defaultTo(1).check(r.sql`enabled IN (0, 1)`)).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).addPrimaryKeyConstraint(`email_templates_pk`,[`tenant_id`,`template`]).addForeignKeyConstraint(`email_templates_tenant_fk`,[`tenant_id`],`tenants`,[`id`],e=>e.onDelete(`cascade`)).execute()}async function Ph(e){await e.schema.dropTable(`email_templates`).execute()}var Fh=t({down:()=>Lh,up:()=>Ih});async function Ih(e){await e.schema.createTable(`action_versions`).addColumn(`id`,`varchar(255)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`action_id`,`varchar(255)`,e=>e.notNull()).addColumn(`number`,`integer`,e=>e.notNull()).addColumn(`code`,`text`,e=>e.notNull()).addColumn(`runtime`,`varchar(50)`).addColumn(`secrets`,`text`).addColumn(`dependencies`,`text`).addColumn(`supported_triggers`,`text`).addColumn(`deployed`,`integer`,e=>e.notNull().defaultTo(0)).addColumn(`created_at_ts`,`bigint`,e=>e.notNull()).addColumn(`updated_at_ts`,`bigint`,e=>e.notNull()).execute(),await e.schema.createIndex(`idx_action_versions_action`).on(`action_versions`).columns([`tenant_id`,`action_id`]).execute(),await e.schema.createIndex(`uniq_action_versions_action_number`).on(`action_versions`).columns([`tenant_id`,`action_id`,`number`]).unique().execute()}async function Lh(e){await e.schema.dropTable(`action_versions`).execute()}var Rh=t({down:()=>Bh,up:()=>zh});async function zh(e){await e.schema.alterTable(`branding`).addColumn(`dark_mode`,`varchar(8)`).execute()}async function Bh(e){await e.schema.alterTable(`branding`).dropColumn(`dark_mode`).execute()}var Vh=t({down:()=>Uh,up:()=>Hh});async function Hh(e){await e.schema.createTable(`action_executions`).addColumn(`id`,`varchar(255)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`trigger_id`,`varchar(64)`,e=>e.notNull()).addColumn(`status`,`varchar(32)`,e=>e.notNull()).addColumn(`results`,`text`,e=>e.notNull()).addColumn(`logs`,`text`).addColumn(`created_at_ts`,`bigint`,e=>e.notNull()).addColumn(`updated_at_ts`,`bigint`,e=>e.notNull()).execute(),await e.schema.createIndex(`idx_action_executions_tenant`).on(`action_executions`).columns([`tenant_id`,`id`]).execute()}async function Uh(e){await e.schema.dropTable(`action_executions`).execute()}var Wh=t({down:()=>qh,up:()=>Kh});async function Gh(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function Kh(e){await e.schema.alterTable(`clients`).addColumn(`disable_sign_ups`,`integer`,e=>e.notNull().defaultTo(0)).execute(),await e.schema.alterTable(`clients`).addColumn(`hide_sign_up_disabled_error`,`integer`,e=>e.notNull().defaultTo(0)).execute(),await Gh(e)===`mysql`?(await r.sql`
|
|
166
|
+
FROM login_sessions`.execute(e),await r.sql`DROP TABLE login_sessions`.execute(e),await r.sql`ALTER TABLE login_sessions_new RENAME TO login_sessions`.execute(e),await e.schema.createIndex(`login_sessions_id_index`).on(`login_sessions`).column(`id`).execute(),await e.schema.createIndex(`idx_login_sessions_session_id`).on(`login_sessions`).column(`session_id`).execute(),await e.schema.createIndex(`login_sessions_tenant_user_idx`).on(`login_sessions`).columns([`tenant_id`,`user_id`]).execute(),await e.schema.createIndex(`login_sessions_state_idx`).on(`login_sessions`).column(`state`).execute(),await e.schema.createIndex(`idx_login_sessions_expires_at_ts`).on(`login_sessions`).column(`expires_at_ts`).execute()}),G(` Recreated login_sessions without hoisted authParams_* columns`)}async function Jm(e){}var Ym=t({down:()=>Zm,up:()=>Xm});async function Xm(e){await e.schema.alterTable(`refresh_tokens`).addColumn(`revoked_at_ts`,`bigint`).execute()}async function Zm(e){await e.schema.alterTable(`refresh_tokens`).dropColumn(`revoked_at_ts`).execute()}var Qm=t({down:()=>eh,up:()=>$m});async function $m(e){await e.schema.alterTable(`clients`).addColumn(`owner_user_id`,`varchar(255)`).execute(),await e.schema.alterTable(`clients`).addColumn(`registration_type`,`varchar(32)`).execute(),await e.schema.alterTable(`clients`).addColumn(`registration_metadata`,`text`).execute(),await e.schema.createIndex(`idx_clients_owner_user_id`).on(`clients`).columns([`tenant_id`,`owner_user_id`]).execute(),await e.schema.createTable(`client_registration_tokens`).addColumn(`id`,`varchar(255)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.references(`tenants.id`).onDelete(`cascade`).notNull()).addColumn(`token_hash`,`varchar(64)`,e=>e.notNull()).addColumn(`type`,`varchar(8)`,e=>e.notNull()).addColumn(`client_id`,`varchar(191)`).addColumn(`sub`,`varchar(255)`).addColumn(`constraints`,`text`).addColumn(`single_use`,`integer`,e=>e.defaultTo(0).notNull()).addColumn(`used_at_ts`,`bigint`).addColumn(`expires_at_ts`,`bigint`).addColumn(`created_at_ts`,`bigint`,e=>e.notNull()).addColumn(`revoked_at_ts`,`bigint`).execute(),await e.schema.createIndex(`idx_client_registration_tokens_hash`).on(`client_registration_tokens`).columns([`tenant_id`,`token_hash`]).unique().execute(),await e.schema.createIndex(`idx_client_registration_tokens_client`).on(`client_registration_tokens`).columns([`tenant_id`,`client_id`]).execute()}async function eh(e){await e.schema.dropTable(`client_registration_tokens`).execute(),await e.schema.dropIndex(`idx_clients_owner_user_id`).execute(),await e.schema.alterTable(`clients`).dropColumn(`registration_metadata`).execute(),await e.schema.alterTable(`clients`).dropColumn(`registration_type`).execute(),await e.schema.alterTable(`clients`).dropColumn(`owner_user_id`).execute()}var th=t({down:()=>oh,up:()=>ah});async function nh(e){try{return await r.sql`SELECT @@version_comment`.execute(e),`mysql`}catch{return`sqlite`}}var rh=[{index:`connections_tenant_id_idx`,table:`connections`,reason:`composite PK (tenant_id, id)`},{index:`idx_invites_tenant_id`,table:`invites`,reason:`idx_invites_tenant_created (tenant_id, created_at)`},{index:`idx_organizations_tenant_id`,table:`organizations`,reason:`idx_organizations_tenant_name_unique (tenant_id, name)`},{index:`role_permissions_role_fk`,table:`role_permissions`,reason:`role_permissions_pk (tenant_id, role_id, ...)`},{index:`themes_tenant_id_idx`,table:`themes`,reason:`themes_pkey (tenant_id, themeId)`},{index:`users_tenant_index`,table:`users`,reason:`stale on PlanetScale only; commented out locally in 2024`},{index:`idx_user_organizations_tenant_id`,table:`user_organizations`,reason:`already dropped locally; may linger on PlanetScale`}];async function ih(e,t,n,i){try{t===`mysql`?await r.sql.raw(`DROP INDEX IF EXISTS \`${n}\` ON \`${i}\``).execute(e):await r.sql.raw(`DROP INDEX IF EXISTS "${n}"`).execute(e)}catch(e){K(` Warning: failed to drop index ${n} on ${i}: ${e instanceof Error?e.message:String(e)}`)}}async function ah(e){let t=await nh(e);for(let{index:n,table:r}of rh)await ih(e,t,n,r);await e.schema.dropTable(`members`).ifExists().execute()}async function oh(e){await e.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 e.schema.createIndex(`idx_user_organizations_tenant_id`).on(`user_organizations`).column(`tenant_id`).execute(),await e.schema.createIndex(`themes_tenant_id_idx`).on(`themes`).column(`tenant_id`).execute(),await e.schema.createIndex(`role_permissions_role_fk`).on(`role_permissions`).columns([`tenant_id`,`role_id`]).execute(),await e.schema.createIndex(`idx_organizations_tenant_id`).on(`organizations`).column(`tenant_id`).execute(),await e.schema.createIndex(`idx_invites_tenant_id`).on(`invites`).column(`tenant_id`).execute(),await e.schema.createIndex(`connections_tenant_id_idx`).on(`connections`).column(`tenant_id`).execute()}var sh=t({down:()=>lh,up:()=>ch});async function ch(e){await e.schema.alterTable(`clients`).addColumn(`user_linking_mode`,`varchar(16)`).execute()}async function lh(e){await e.schema.alterTable(`clients`).dropColumn(`user_linking_mode`).execute()}var uh=t({down:()=>fh,up:()=>dh});async function dh(e){await e.schema.alterTable(`hooks`).addColumn(`metadata`,`text`).execute()}async function fh(e){await e.schema.alterTable(`hooks`).dropColumn(`metadata`).execute()}var ph=t({down:()=>hh,up:()=>mh});async function mh(e){await e.schema.alterTable(`refresh_tokens`).addColumn(`token_lookup`,`varchar(16)`).execute(),await e.schema.alterTable(`refresh_tokens`).addColumn(`token_hash`,`varchar(64)`).execute(),await e.schema.alterTable(`refresh_tokens`).addColumn(`family_id`,`varchar(26)`).execute(),await e.schema.alterTable(`refresh_tokens`).addColumn(`rotated_to`,`varchar(26)`).execute(),await e.schema.alterTable(`refresh_tokens`).addColumn(`rotated_at_ts`,`bigint`).execute(),await e.schema.createIndex(`idx_refresh_tokens_token_lookup`).on(`refresh_tokens`).columns([`tenant_id`,`token_lookup`]).execute(),await e.schema.createIndex(`idx_refresh_tokens_family_id`).on(`refresh_tokens`).columns([`tenant_id`,`family_id`]).execute()}async function hh(e){await e.schema.dropIndex(`idx_refresh_tokens_family_id`).on(`refresh_tokens`).execute(),await e.schema.dropIndex(`idx_refresh_tokens_token_lookup`).on(`refresh_tokens`).execute(),await e.schema.alterTable(`refresh_tokens`).dropColumn(`rotated_at_ts`).execute(),await e.schema.alterTable(`refresh_tokens`).dropColumn(`rotated_to`).execute(),await e.schema.alterTable(`refresh_tokens`).dropColumn(`family_id`).execute(),await e.schema.alterTable(`refresh_tokens`).dropColumn(`token_hash`).execute(),await e.schema.alterTable(`refresh_tokens`).dropColumn(`token_lookup`).execute()}var gh=t({down:()=>vh,up:()=>_h});async function _h(e){await e.schema.createTable(`organization_connections`).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`organization_id`,`varchar(21)`,e=>e.notNull()).addColumn(`connection_id`,`varchar(191)`,e=>e.notNull()).addColumn(`assign_membership_on_login`,`boolean`,e=>e.notNull().defaultTo(0)).addColumn(`show_as_button`,`boolean`,e=>e.notNull().defaultTo(1)).addColumn(`is_signup_enabled`,`boolean`,e=>e.notNull().defaultTo(1)).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).addUniqueConstraint(`organization_connections_unique`,[`tenant_id`,`organization_id`,`connection_id`]).addForeignKeyConstraint(`organization_connections_organization_fk`,[`organization_id`],`organizations`,[`id`],e=>e.onDelete(`cascade`)).addForeignKeyConstraint(`organization_connections_connection_fk`,[`tenant_id`,`connection_id`],`connections`,[`tenant_id`,`id`],e=>e.onDelete(`cascade`)).execute(),await e.schema.createIndex(`idx_organization_connections_tenant_org`).on(`organization_connections`).columns([`tenant_id`,`organization_id`]).execute(),await e.schema.createIndex(`idx_organization_connections_tenant_connection`).on(`organization_connections`).columns([`tenant_id`,`connection_id`]).execute()}async function vh(e){await e.schema.dropTable(`organization_connections`).execute()}var yh=t({down:()=>xh,up:()=>bh});async function bh(e){await e.schema.createTable(`log_streams`).addColumn(`id`,`varchar(64)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`name`,`varchar(255)`,e=>e.notNull()).addColumn(`type`,`varchar(64)`,e=>e.notNull()).addColumn(`status`,`varchar(32)`,e=>e.notNull()).addColumn(`sink`,`text`,e=>e.notNull()).addColumn(`filters`,`text`).addColumn(`is_priority`,`boolean`).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).execute(),await e.schema.createIndex(`idx_log_streams_tenant_id`).on(`log_streams`).columns([`tenant_id`]).execute()}async function xh(e){await e.schema.dropTable(`log_streams`).execute()}var Sh=t({down:()=>wh,up:()=>Ch});async function Ch(e){await e.schema.alterTable(`tenants`).addColumn(`attack_protection`,`text`).execute()}async function wh(e){await e.schema.alterTable(`tenants`).dropColumn(`attack_protection`).execute()}var Th=t({down:()=>Dh,up:()=>Eh});async function Eh(e){await e.schema.alterTable(`tenants`).addColumn(`default_client_id`,`varchar(255)`).execute()}async function Dh(e){await e.schema.alterTable(`tenants`).dropColumn(`default_client_id`).execute()}var Oh=t({down:()=>Ah,up:()=>kh});async function kh(e){await e.schema.createTable(`email_templates`).addColumn(`tenant_id`,`varchar(255)`,e=>e.notNull()).addColumn(`template`,`varchar(64)`,e=>e.notNull()).addColumn(`body`,`text`,e=>e.notNull()).addColumn(`from`,`varchar(255)`,e=>e.notNull()).addColumn(`subject`,`varchar(255)`,e=>e.notNull()).addColumn(`syntax`,`varchar(16)`,e=>e.notNull().defaultTo(`liquid`)).addColumn(`result_url`,`varchar(2048)`).addColumn(`url_lifetime_in_seconds`,`integer`).addColumn(`include_email_in_redirect`,`integer`,e=>e.notNull().defaultTo(0).check(r.sql`include_email_in_redirect IN (0, 1)`)).addColumn(`enabled`,`integer`,e=>e.notNull().defaultTo(1).check(r.sql`enabled IN (0, 1)`)).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).addPrimaryKeyConstraint(`email_templates_pk`,[`tenant_id`,`template`]).addForeignKeyConstraint(`email_templates_tenant_fk`,[`tenant_id`],`tenants`,[`id`],e=>e.onDelete(`cascade`)).execute()}async function Ah(e){await e.schema.dropTable(`email_templates`).execute()}var jh=t({down:()=>Nh,up:()=>Mh});async function Mh(e){await e.schema.createTable(`action_versions`).addColumn(`id`,`varchar(255)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`action_id`,`varchar(255)`,e=>e.notNull()).addColumn(`number`,`integer`,e=>e.notNull()).addColumn(`code`,`text`,e=>e.notNull()).addColumn(`runtime`,`varchar(50)`).addColumn(`secrets`,`text`).addColumn(`dependencies`,`text`).addColumn(`supported_triggers`,`text`).addColumn(`deployed`,`integer`,e=>e.notNull().defaultTo(0)).addColumn(`created_at_ts`,`bigint`,e=>e.notNull()).addColumn(`updated_at_ts`,`bigint`,e=>e.notNull()).execute(),await e.schema.createIndex(`idx_action_versions_action`).on(`action_versions`).columns([`tenant_id`,`action_id`]).execute(),await e.schema.createIndex(`uniq_action_versions_action_number`).on(`action_versions`).columns([`tenant_id`,`action_id`,`number`]).unique().execute()}async function Nh(e){await e.schema.dropTable(`action_versions`).execute()}var Ph=t({down:()=>Ih,up:()=>Fh});async function Fh(e){await e.schema.alterTable(`branding`).addColumn(`dark_mode`,`varchar(8)`).execute()}async function Ih(e){await e.schema.alterTable(`branding`).dropColumn(`dark_mode`).execute()}var Lh=t({down:()=>zh,up:()=>Rh});async function Rh(e){await e.schema.createTable(`action_executions`).addColumn(`id`,`varchar(255)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`trigger_id`,`varchar(64)`,e=>e.notNull()).addColumn(`status`,`varchar(32)`,e=>e.notNull()).addColumn(`results`,`text`,e=>e.notNull()).addColumn(`logs`,`text`).addColumn(`created_at_ts`,`bigint`,e=>e.notNull()).addColumn(`updated_at_ts`,`bigint`,e=>e.notNull()).execute(),await e.schema.createIndex(`idx_action_executions_tenant`).on(`action_executions`).columns([`tenant_id`,`id`]).execute()}async function zh(e){await e.schema.dropTable(`action_executions`).execute()}var Bh=t({down:()=>Uh,up:()=>Hh});async function Vh(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function Hh(e){await e.schema.alterTable(`clients`).addColumn(`disable_sign_ups`,`integer`,e=>e.notNull().defaultTo(0)).execute(),await e.schema.alterTable(`clients`).addColumn(`hide_sign_up_disabled_error`,`integer`,e=>e.notNull().defaultTo(0)).execute(),await Vh(e)===`mysql`?(await r.sql`
|
|
167
167
|
UPDATE clients
|
|
168
168
|
SET disable_sign_ups = 1,
|
|
169
169
|
client_metadata = JSON_REMOVE(client_metadata, '$.disable_sign_ups')
|
|
@@ -181,7 +181,7 @@ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{val
|
|
|
181
181
|
UPDATE clients
|
|
182
182
|
SET client_metadata = json_remove(client_metadata, '$.disable_sign_ups')
|
|
183
183
|
WHERE json_extract(client_metadata, '$.disable_sign_ups') IS NOT NULL
|
|
184
|
-
`.execute(e))}async function qh(e){await e.schema.alterTable(`clients`).dropColumn(`hide_sign_up_disabled_error`).execute(),await e.schema.alterTable(`clients`).dropColumn(`disable_sign_ups`).execute()}var Jh=t({down:()=>Zh,up:()=>Xh});async function Yh(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function Xh(e){await Yh(e);let t=await e.selectFrom(`clients`).select([`tenant_id`,`connections`]).where(`disable_sign_ups`,`=`,1).execute(),n=new Map;for(let e of t){let t=[];try{t=JSON.parse(e.connections||`[]`)}catch{t=[]}if(!Array.isArray(t)||t.length===0)continue;let r=n.get(e.tenant_id);r||(r=new Set,n.set(e.tenant_id,r));for(let e of t)r.add(e)}for(let[t,r]of n){let n=await e.selectFrom(`connections`).select([`id`,`options`]).where(`tenant_id`,`=`,t).where(`id`,`in`,[...r]).execute();for(let r of n){let n={};try{n=r.options?JSON.parse(r.options):{}}catch{n={}}n.disable_signup!==!0&&(n.disable_signup=!0,await e.updateTable(`connections`).set({options:JSON.stringify(n)}).where(`tenant_id`,`=`,t).where(`id`,`=`,r.id).execute())}}await e.schema.alterTable(`clients`).dropColumn(`disable_sign_ups`).execute()}async function Zh(e){await e.schema.alterTable(`clients`).addColumn(`disable_sign_ups`,`integer`,e=>e.notNull().defaultTo(0)).execute()}var Qh=t({down:()=>eg,up:()=>$h});async function $h(e){await e.schema.alterTable(`actions`).addColumn(`is_system`,`integer`,e=>e.notNull().defaultTo(0)).execute(),await e.schema.alterTable(`actions`).addColumn(`inherit`,`integer`,e=>e.notNull().defaultTo(0)).execute()}async function eg(e){await e.schema.alterTable(`actions`).dropColumn(`inherit`).execute(),await e.schema.alterTable(`actions`).dropColumn(`is_system`).execute()}var tg=t({down:()=>ag,up:()=>ig}),ng=[`token_endpoint`,`userinfo_endpoint`,`client_id`,`client_secret`];function rg(e){if(!e)return{};try{let t=JSON.parse(e);return t&&typeof t==`object`?t:{}}catch{return{}}}async function ig(e){let t=await e.selectFrom(`connections`).select([`id`,`tenant_id`,`options`]).where(`strategy`,`=`,`auth0`).execute(),n=new Map;for(let e of t){let t=n.get(e.tenant_id)??[];t.push(e),n.set(e.tenant_id,t)}let r=[...n.entries()].filter(([,e])=>e.length!==1);if(r.length>0){let e=r.map(([e,t])=>`${e} (${t.length} rows: ${t.map(e=>e.id).join(`, `)})`).join(`; `);throw Error(`[collapse_auth0_source] cannot proceed: the following tenants have more than one strategy="auth0" connection — resolve manually before re-running the migration: ${e}`)}for(let[t,r]of n){let n=r[0],i=await e.selectFrom(`connections`).select([`id`,`name`,`options`]).where(`tenant_id`,`=`,t).where(`strategy`,`=`,`Username-Password-Authentication`).execute();if(i.length===0){console.warn(`[collapse_auth0_source] tenant=${t}: auth0 connection ${n.id} has no DB connection to merge into; deleting it`),await e.deleteFrom(`connections`).where(`tenant_id`,`=`,t).where(`id`,`=`,n.id).execute();continue}if(i.length>1){console.warn(`[collapse_auth0_source] tenant=${t}: ${i.length} DB connections found; skipping merge — resolve manually before next deploy`);continue}let a=rg(n.options),o={};for(let e of ng)typeof a[e]==`string`&&(o[e]=a[e]);let s=i[0],c=rg(s.options);c.configuration={...c.configuration&&typeof c.configuration==`object`?c.configuration:{},...o},await e.updateTable(`connections`).set({options:JSON.stringify(c)}).where(`tenant_id`,`=`,t).where(`id`,`=`,s.id).execute(),await e.deleteFrom(`connections`).where(`tenant_id`,`=`,t).where(`id`,`=`,n.id).execute()}}async function ag(){}var og=t({down:()=>cg,up:()=>sg});async function sg(e){await e.schema.createTable(`migration_sources`).addColumn(`id`,`varchar(64)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`name`,`varchar(255)`,e=>e.notNull()).addColumn(`provider`,`varchar(32)`,e=>e.notNull()).addColumn(`connection`,`varchar(255)`,e=>e.notNull()).addColumn(`enabled`,`boolean`,e=>e.notNull()).addColumn(`credentials`,`text`,e=>e.notNull()).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).execute(),await e.schema.createIndex(`idx_migration_sources_tenant_id`).on(`migration_sources`).columns([`tenant_id`]).execute()}async function cg(e){await e.schema.dropTable(`migration_sources`).execute()}var lg=t({down:()=>dg,up:()=>ug});async function ug(e){await e.schema.createTable(`proxy_routes`).addColumn(`id`,`varchar(64)`,e=>e.notNull().primaryKey()).addColumn(`tenant_id`,`varchar(255)`,e=>e.notNull()).addColumn(`custom_domain_id`,`varchar(256)`,e=>e.notNull()).addColumn(`priority`,`integer`,e=>e.notNull().defaultTo(100)).addColumn(`path_pattern`,`varchar(512)`,e=>e.notNull()).addColumn(`upstream_type`,`varchar(32)`,e=>e.notNull()).addColumn(`upstream_url`,`varchar(2048)`,e=>e.notNull()).addColumn(`preserve_host`,`integer`,e=>e.notNull().defaultTo(0)).addColumn(`middleware`,`varchar(8192)`,e=>e.notNull().defaultTo(`[]`)).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).execute(),await e.schema.createIndex(`proxy_routes_tenant_id_idx`).on(`proxy_routes`).column(`tenant_id`).execute(),await e.schema.createIndex(`proxy_routes_custom_domain_id_idx`).on(`proxy_routes`).column(`custom_domain_id`).execute()}async function dg(e){await e.schema.dropTable(`proxy_routes`).execute()}var fg=t({down:()=>gg,up:()=>hg});function pg(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.map(e=>{let{type:t,...n}=e;return{type:t,options:n}}):[]}catch{return[]}}function mg(e){let t=pg(e.middleware),n={type:e.upstream_type===`authhero`?`http`:e.upstream_type,options:{upstream_url:e.upstream_url,preserve_host:e.preserve_host!==0}};return[...t,n]}async function hg(e){await e.schema.alterTable(`proxy_routes`).addColumn(`match`,`varchar(2048)`,e=>e.notNull().defaultTo(`{"path":"/*"}`)).execute(),await e.schema.alterTable(`proxy_routes`).addColumn(`handlers`,`text`,e=>e.notNull().defaultTo(`[]`)).execute();let t=await e.selectFrom(`proxy_routes`).select([`id`,`path_pattern`,`upstream_type`,`upstream_url`,`preserve_host`,`middleware`]).execute();for(let n of t){let t={path:n.path_pattern||`/*`},r=mg(n);await e.updateTable(`proxy_routes`).set({match:JSON.stringify(t),handlers:JSON.stringify(r)}).where(`id`,`=`,n.id).execute()}await e.schema.alterTable(`proxy_routes`).dropColumn(`path_pattern`).execute(),await e.schema.alterTable(`proxy_routes`).dropColumn(`upstream_type`).execute(),await e.schema.alterTable(`proxy_routes`).dropColumn(`upstream_url`).execute(),await e.schema.alterTable(`proxy_routes`).dropColumn(`preserve_host`).execute(),await e.schema.alterTable(`proxy_routes`).dropColumn(`middleware`).execute()}async function gg(e){await e.schema.alterTable(`proxy_routes`).addColumn(`path_pattern`,`varchar(512)`,e=>e.notNull().defaultTo(`/*`)).execute(),await e.schema.alterTable(`proxy_routes`).addColumn(`upstream_type`,`varchar(32)`,e=>e.notNull().defaultTo(`http`)).execute(),await e.schema.alterTable(`proxy_routes`).addColumn(`upstream_url`,`varchar(2048)`,e=>e.notNull().defaultTo(``)).execute(),await e.schema.alterTable(`proxy_routes`).addColumn(`preserve_host`,`integer`,e=>e.notNull().defaultTo(0)).execute(),await e.schema.alterTable(`proxy_routes`).addColumn(`middleware`,`varchar(8192)`,e=>e.notNull().defaultTo(`[]`)).execute(),await e.schema.alterTable(`proxy_routes`).dropColumn(`match`).execute(),await e.schema.alterTable(`proxy_routes`).dropColumn(`handlers`).execute()}var _g=t({down:()=>bg,up:()=>yg});async function vg(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function yg(e){await vg(e)===`mysql`&&(K(`Widening user_permissions.resource_server_identifier from varchar(21) to varchar(100)...`),await e.schema.alterTable(`user_permissions`).modifyColumn(`resource_server_identifier`,`varchar(100)`,e=>e.notNull()).execute())}async function bg(e){await vg(e)===`mysql`&&await e.schema.alterTable(`user_permissions`).modifyColumn(`resource_server_identifier`,`varchar(21)`,e=>e.notNull()).execute()}var xg=t({down:()=>Cg,up:()=>Sg});async function Sg(e){await e.schema.createTable(`grants`).addColumn(`id`,`varchar(21)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(255)`,e=>e.references(`tenants.id`).onDelete(`cascade`).notNull()).addColumn(`user_id`,`varchar(255)`,e=>e.notNull()).addForeignKeyConstraint(`grants_user_id_constraint`,[`user_id`,`tenant_id`],`users`,[`user_id`,`tenant_id`],e=>e.onDelete(`cascade`)).addColumn(`client_id`,`varchar(100)`,e=>e.notNull()).addColumn(`audience`,`varchar(100)`,e=>e.notNull().defaultTo(``)).addColumn(`scope`,`text`,e=>e.notNull().defaultTo(`[]`)).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).execute(),await e.schema.createIndex(`grants_natural_key_idx`).on(`grants`).columns([`tenant_id`,`user_id`,`client_id`,`audience`]).unique().execute(),await e.schema.createIndex(`grants_tenant_user_idx`).on(`grants`).columns([`tenant_id`,`user_id`]).execute()}async function Cg(e){await e.schema.dropTable(`grants`).execute()}var wg=t({down:()=>Eg,up:()=>Tg});async function Tg(e){await r.sql`UPDATE clients SET is_first_party = 1 WHERE is_first_party = 0`.execute(e)}async function Eg(e){}var Dg=t({down:()=>kg,up:()=>Og});async function Og(e){await e.schema.alterTable(`tenants`).addColumn(`deployment_type`,`varchar(16)`,e=>e.notNull().defaultTo(`shared`)).execute(),await e.schema.alterTable(`tenants`).addColumn(`provisioning_state`,`varchar(16)`,e=>e.notNull().defaultTo(`ready`)).execute(),await e.schema.alterTable(`tenants`).addColumn(`provisioning_error`,`varchar(2048)`).execute(),await e.schema.alterTable(`tenants`).addColumn(`provisioning_state_changed_at`,`varchar(35)`).execute(),await e.schema.alterTable(`tenants`).addColumn(`bundle_configuration`,`varchar(64)`).execute(),await e.schema.alterTable(`tenants`).addColumn(`worker_version`,`varchar(64)`).execute(),await e.schema.alterTable(`tenants`).addColumn(`worker_script_name`,`varchar(255)`).execute(),await e.schema.alterTable(`tenants`).addColumn(`storage_kind`,`varchar(32)`).execute(),await e.schema.alterTable(`tenants`).addColumn(`d1_database_id`,`varchar(64)`).execute()}async function kg(e){await e.schema.alterTable(`tenants`).dropColumn(`d1_database_id`).execute(),await e.schema.alterTable(`tenants`).dropColumn(`storage_kind`).execute(),await e.schema.alterTable(`tenants`).dropColumn(`worker_script_name`).execute(),await e.schema.alterTable(`tenants`).dropColumn(`worker_version`).execute(),await e.schema.alterTable(`tenants`).dropColumn(`bundle_configuration`).execute(),await e.schema.alterTable(`tenants`).dropColumn(`provisioning_state_changed_at`).execute(),await e.schema.alterTable(`tenants`).dropColumn(`provisioning_error`).execute(),await e.schema.alterTable(`tenants`).dropColumn(`provisioning_state`).execute(),await e.schema.alterTable(`tenants`).dropColumn(`deployment_type`).execute()}var Ag=t({down:()=>Mg,up:()=>jg});async function jg(e){await e.schema.alterTable(`tenants`).addColumn(`database_version`,`varchar(64)`).execute()}async function Mg(e){await e.schema.alterTable(`tenants`).dropColumn(`database_version`).execute()}var Ng=t({down:()=>Ig,up:()=>Fg});async function Pg(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function Fg(e){await Pg(e)===`mysql`&&(K(`Converting users blob columns to TEXT and right-sizing oversized varchars...`),await e.schema.alterTable(`users`).modifyColumn(`profileData`,`text`).execute(),await e.schema.alterTable(`users`).modifyColumn(`picture`,`text`).execute(),await e.schema.alterTable(`users`).modifyColumn(`app_metadata`,`text`,e=>e.notNull().defaultTo(r.sql`('{}')`)).execute(),await e.schema.alterTable(`users`).modifyColumn(`created_at`,`varchar(35)`,e=>e.notNull()).execute(),await e.schema.alterTable(`users`).modifyColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).execute(),await e.schema.alterTable(`users`).modifyColumn(`locale`,`varchar(64)`).execute()),await e.schema.createTable(`user_activity`).ifNotExists().addColumn(`tenant_id`,`varchar(255)`,e=>e.notNull()).addColumn(`user_id`,`varchar(255)`,e=>e.notNull()).addColumn(`last_login`,`varchar(35)`).addColumn(`last_ip`,`varchar(45)`).addColumn(`login_count`,`integer`,e=>e.notNull().defaultTo(0)).addColumn(`failed_logins`,`text`).addColumn(`last_password_reset`,`varchar(35)`).addPrimaryKeyConstraint(`user_activity_pkey`,[`tenant_id`,`user_id`]).addForeignKeyConstraint(`user_activity_user_id_constraint`,[`user_id`,`tenant_id`],`users`,[`user_id`,`tenant_id`],e=>e.onDelete(`cascade`)).execute()}async function Ig(e){let t=await Pg(e);await e.schema.dropTable(`user_activity`).ifExists().execute(),t===`mysql`&&(await e.schema.alterTable(`users`).modifyColumn(`profileData`,`varchar(2048)`).execute(),await e.schema.alterTable(`users`).modifyColumn(`picture`,`varchar(2083)`).execute(),await e.schema.alterTable(`users`).modifyColumn(`app_metadata`,`varchar(4096)`,e=>e.notNull().defaultTo(`{}`)).execute(),await e.schema.alterTable(`users`).modifyColumn(`created_at`,`varchar(255)`,e=>e.notNull()).execute(),await e.schema.alterTable(`users`).modifyColumn(`updated_at`,`varchar(255)`,e=>e.notNull()).execute(),await e.schema.alterTable(`users`).modifyColumn(`locale`,`varchar(255)`).execute())}var Lg=t({down:()=>zg,up:()=>Rg});async function Rg(e){await e.schema.alterTable(`users`).dropColumn(`last_login`).execute(),await e.schema.alterTable(`users`).dropColumn(`last_ip`).execute(),await e.schema.alterTable(`users`).dropColumn(`login_count`).execute()}async function zg(e){await e.schema.alterTable(`users`).addColumn(`last_login`,`varchar(35)`).execute(),await e.schema.alterTable(`users`).addColumn(`last_ip`,`varchar(45)`).execute(),await e.schema.alterTable(`users`).addColumn(`login_count`,`integer`,e=>e.notNull().defaultTo(0)).execute(),await r.sql`
|
|
184
|
+
`.execute(e))}async function Uh(e){await e.schema.alterTable(`clients`).dropColumn(`hide_sign_up_disabled_error`).execute(),await e.schema.alterTable(`clients`).dropColumn(`disable_sign_ups`).execute()}var Wh=t({down:()=>qh,up:()=>Kh});async function Gh(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function Kh(e){await Gh(e);let t=await e.selectFrom(`clients`).select([`tenant_id`,`connections`]).where(`disable_sign_ups`,`=`,1).execute(),n=new Map;for(let e of t){let t=[];try{t=JSON.parse(e.connections||`[]`)}catch{t=[]}if(!Array.isArray(t)||t.length===0)continue;let r=n.get(e.tenant_id);r||(r=new Set,n.set(e.tenant_id,r));for(let e of t)r.add(e)}for(let[t,r]of n){let n=await e.selectFrom(`connections`).select([`id`,`options`]).where(`tenant_id`,`=`,t).where(`id`,`in`,[...r]).execute();for(let r of n){let n={};try{n=r.options?JSON.parse(r.options):{}}catch{n={}}n.disable_signup!==!0&&(n.disable_signup=!0,await e.updateTable(`connections`).set({options:JSON.stringify(n)}).where(`tenant_id`,`=`,t).where(`id`,`=`,r.id).execute())}}await e.schema.alterTable(`clients`).dropColumn(`disable_sign_ups`).execute()}async function qh(e){await e.schema.alterTable(`clients`).addColumn(`disable_sign_ups`,`integer`,e=>e.notNull().defaultTo(0)).execute()}var Jh=t({down:()=>Xh,up:()=>Yh});async function Yh(e){await e.schema.alterTable(`actions`).addColumn(`is_system`,`integer`,e=>e.notNull().defaultTo(0)).execute(),await e.schema.alterTable(`actions`).addColumn(`inherit`,`integer`,e=>e.notNull().defaultTo(0)).execute()}async function Xh(e){await e.schema.alterTable(`actions`).dropColumn(`inherit`).execute(),await e.schema.alterTable(`actions`).dropColumn(`is_system`).execute()}var Zh=t({down:()=>tg,up:()=>eg}),Qh=[`token_endpoint`,`userinfo_endpoint`,`client_id`,`client_secret`];function $h(e){if(!e)return{};try{let t=JSON.parse(e);return t&&typeof t==`object`?t:{}}catch{return{}}}async function eg(e){let t=await e.selectFrom(`connections`).select([`id`,`tenant_id`,`options`]).where(`strategy`,`=`,`auth0`).execute(),n=new Map;for(let e of t){let t=n.get(e.tenant_id)??[];t.push(e),n.set(e.tenant_id,t)}let r=[...n.entries()].filter(([,e])=>e.length!==1);if(r.length>0){let e=r.map(([e,t])=>`${e} (${t.length} rows: ${t.map(e=>e.id).join(`, `)})`).join(`; `);throw Error(`[collapse_auth0_source] cannot proceed: the following tenants have more than one strategy="auth0" connection — resolve manually before re-running the migration: ${e}`)}for(let[t,r]of n){let n=r[0],i=await e.selectFrom(`connections`).select([`id`,`name`,`options`]).where(`tenant_id`,`=`,t).where(`strategy`,`=`,`Username-Password-Authentication`).execute();if(i.length===0){console.warn(`[collapse_auth0_source] tenant=${t}: auth0 connection ${n.id} has no DB connection to merge into; deleting it`),await e.deleteFrom(`connections`).where(`tenant_id`,`=`,t).where(`id`,`=`,n.id).execute();continue}if(i.length>1){console.warn(`[collapse_auth0_source] tenant=${t}: ${i.length} DB connections found; skipping merge — resolve manually before next deploy`);continue}let a=$h(n.options),o={};for(let e of Qh)typeof a[e]==`string`&&(o[e]=a[e]);let s=i[0],c=$h(s.options);c.configuration={...c.configuration&&typeof c.configuration==`object`?c.configuration:{},...o},await e.updateTable(`connections`).set({options:JSON.stringify(c)}).where(`tenant_id`,`=`,t).where(`id`,`=`,s.id).execute(),await e.deleteFrom(`connections`).where(`tenant_id`,`=`,t).where(`id`,`=`,n.id).execute()}}async function tg(){}var ng=t({down:()=>ig,up:()=>rg});async function rg(e){await e.schema.createTable(`migration_sources`).addColumn(`id`,`varchar(64)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(191)`,e=>e.notNull()).addColumn(`name`,`varchar(255)`,e=>e.notNull()).addColumn(`provider`,`varchar(32)`,e=>e.notNull()).addColumn(`connection`,`varchar(255)`,e=>e.notNull()).addColumn(`enabled`,`boolean`,e=>e.notNull()).addColumn(`credentials`,`text`,e=>e.notNull()).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).execute(),await e.schema.createIndex(`idx_migration_sources_tenant_id`).on(`migration_sources`).columns([`tenant_id`]).execute()}async function ig(e){await e.schema.dropTable(`migration_sources`).execute()}var ag=t({down:()=>sg,up:()=>og});async function og(e){await e.schema.createTable(`proxy_routes`).addColumn(`id`,`varchar(64)`,e=>e.notNull().primaryKey()).addColumn(`tenant_id`,`varchar(255)`,e=>e.notNull()).addColumn(`custom_domain_id`,`varchar(256)`,e=>e.notNull()).addColumn(`priority`,`integer`,e=>e.notNull().defaultTo(100)).addColumn(`path_pattern`,`varchar(512)`,e=>e.notNull()).addColumn(`upstream_type`,`varchar(32)`,e=>e.notNull()).addColumn(`upstream_url`,`varchar(2048)`,e=>e.notNull()).addColumn(`preserve_host`,`integer`,e=>e.notNull().defaultTo(0)).addColumn(`middleware`,`varchar(8192)`,e=>e.notNull().defaultTo(`[]`)).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).execute(),await e.schema.createIndex(`proxy_routes_tenant_id_idx`).on(`proxy_routes`).column(`tenant_id`).execute(),await e.schema.createIndex(`proxy_routes_custom_domain_id_idx`).on(`proxy_routes`).column(`custom_domain_id`).execute()}async function sg(e){await e.schema.dropTable(`proxy_routes`).execute()}var cg=t({down:()=>fg,up:()=>dg});function lg(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.map(e=>{let{type:t,...n}=e;return{type:t,options:n}}):[]}catch{return[]}}function ug(e){let t=lg(e.middleware),n={type:e.upstream_type===`authhero`?`http`:e.upstream_type,options:{upstream_url:e.upstream_url,preserve_host:e.preserve_host!==0}};return[...t,n]}async function dg(e){await e.schema.alterTable(`proxy_routes`).addColumn(`match`,`varchar(2048)`,e=>e.notNull().defaultTo(`{"path":"/*"}`)).execute(),await e.schema.alterTable(`proxy_routes`).addColumn(`handlers`,`text`,e=>e.notNull().defaultTo(`[]`)).execute();let t=await e.selectFrom(`proxy_routes`).select([`id`,`path_pattern`,`upstream_type`,`upstream_url`,`preserve_host`,`middleware`]).execute();for(let n of t){let t={path:n.path_pattern||`/*`},r=ug(n);await e.updateTable(`proxy_routes`).set({match:JSON.stringify(t),handlers:JSON.stringify(r)}).where(`id`,`=`,n.id).execute()}await e.schema.alterTable(`proxy_routes`).dropColumn(`path_pattern`).execute(),await e.schema.alterTable(`proxy_routes`).dropColumn(`upstream_type`).execute(),await e.schema.alterTable(`proxy_routes`).dropColumn(`upstream_url`).execute(),await e.schema.alterTable(`proxy_routes`).dropColumn(`preserve_host`).execute(),await e.schema.alterTable(`proxy_routes`).dropColumn(`middleware`).execute()}async function fg(e){await e.schema.alterTable(`proxy_routes`).addColumn(`path_pattern`,`varchar(512)`,e=>e.notNull().defaultTo(`/*`)).execute(),await e.schema.alterTable(`proxy_routes`).addColumn(`upstream_type`,`varchar(32)`,e=>e.notNull().defaultTo(`http`)).execute(),await e.schema.alterTable(`proxy_routes`).addColumn(`upstream_url`,`varchar(2048)`,e=>e.notNull().defaultTo(``)).execute(),await e.schema.alterTable(`proxy_routes`).addColumn(`preserve_host`,`integer`,e=>e.notNull().defaultTo(0)).execute(),await e.schema.alterTable(`proxy_routes`).addColumn(`middleware`,`varchar(8192)`,e=>e.notNull().defaultTo(`[]`)).execute(),await e.schema.alterTable(`proxy_routes`).dropColumn(`match`).execute(),await e.schema.alterTable(`proxy_routes`).dropColumn(`handlers`).execute()}var pg=t({down:()=>gg,up:()=>hg});async function mg(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function hg(e){await mg(e)===`mysql`&&(G(`Widening user_permissions.resource_server_identifier from varchar(21) to varchar(100)...`),await e.schema.alterTable(`user_permissions`).modifyColumn(`resource_server_identifier`,`varchar(100)`,e=>e.notNull()).execute())}async function gg(e){await mg(e)===`mysql`&&await e.schema.alterTable(`user_permissions`).modifyColumn(`resource_server_identifier`,`varchar(21)`,e=>e.notNull()).execute()}var _g=t({down:()=>yg,up:()=>vg});async function vg(e){await e.schema.createTable(`grants`).addColumn(`id`,`varchar(21)`,e=>e.primaryKey()).addColumn(`tenant_id`,`varchar(255)`,e=>e.references(`tenants.id`).onDelete(`cascade`).notNull()).addColumn(`user_id`,`varchar(255)`,e=>e.notNull()).addForeignKeyConstraint(`grants_user_id_constraint`,[`user_id`,`tenant_id`],`users`,[`user_id`,`tenant_id`],e=>e.onDelete(`cascade`)).addColumn(`client_id`,`varchar(100)`,e=>e.notNull()).addColumn(`audience`,`varchar(100)`,e=>e.notNull().defaultTo(``)).addColumn(`scope`,`text`,e=>e.notNull().defaultTo(`[]`)).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).execute(),await e.schema.createIndex(`grants_natural_key_idx`).on(`grants`).columns([`tenant_id`,`user_id`,`client_id`,`audience`]).unique().execute(),await e.schema.createIndex(`grants_tenant_user_idx`).on(`grants`).columns([`tenant_id`,`user_id`]).execute()}async function yg(e){await e.schema.dropTable(`grants`).execute()}var bg=t({down:()=>Sg,up:()=>xg});async function xg(e){await r.sql`UPDATE clients SET is_first_party = 1 WHERE is_first_party = 0`.execute(e)}async function Sg(e){}var Cg=t({down:()=>Tg,up:()=>wg});async function wg(e){await e.schema.alterTable(`tenants`).addColumn(`deployment_type`,`varchar(16)`,e=>e.notNull().defaultTo(`shared`)).execute(),await e.schema.alterTable(`tenants`).addColumn(`provisioning_state`,`varchar(16)`,e=>e.notNull().defaultTo(`ready`)).execute(),await e.schema.alterTable(`tenants`).addColumn(`provisioning_error`,`varchar(2048)`).execute(),await e.schema.alterTable(`tenants`).addColumn(`provisioning_state_changed_at`,`varchar(35)`).execute(),await e.schema.alterTable(`tenants`).addColumn(`bundle_configuration`,`varchar(64)`).execute(),await e.schema.alterTable(`tenants`).addColumn(`worker_version`,`varchar(64)`).execute(),await e.schema.alterTable(`tenants`).addColumn(`worker_script_name`,`varchar(255)`).execute(),await e.schema.alterTable(`tenants`).addColumn(`storage_kind`,`varchar(32)`).execute(),await e.schema.alterTable(`tenants`).addColumn(`d1_database_id`,`varchar(64)`).execute()}async function Tg(e){await e.schema.alterTable(`tenants`).dropColumn(`d1_database_id`).execute(),await e.schema.alterTable(`tenants`).dropColumn(`storage_kind`).execute(),await e.schema.alterTable(`tenants`).dropColumn(`worker_script_name`).execute(),await e.schema.alterTable(`tenants`).dropColumn(`worker_version`).execute(),await e.schema.alterTable(`tenants`).dropColumn(`bundle_configuration`).execute(),await e.schema.alterTable(`tenants`).dropColumn(`provisioning_state_changed_at`).execute(),await e.schema.alterTable(`tenants`).dropColumn(`provisioning_error`).execute(),await e.schema.alterTable(`tenants`).dropColumn(`provisioning_state`).execute(),await e.schema.alterTable(`tenants`).dropColumn(`deployment_type`).execute()}var Eg=t({down:()=>Og,up:()=>Dg});async function Dg(e){await e.schema.alterTable(`tenants`).addColumn(`database_version`,`varchar(64)`).execute()}async function Og(e){await e.schema.alterTable(`tenants`).dropColumn(`database_version`).execute()}var kg=t({down:()=>Mg,up:()=>jg});async function Ag(e){try{return await r.sql`SELECT VERSION()`.execute(e),`mysql`}catch{return`sqlite`}}async function jg(e){await Ag(e)===`mysql`&&(G(`Converting users blob columns to TEXT and right-sizing oversized varchars...`),await e.schema.alterTable(`users`).modifyColumn(`profileData`,`text`).execute(),await e.schema.alterTable(`users`).modifyColumn(`picture`,`text`).execute(),await e.schema.alterTable(`users`).modifyColumn(`app_metadata`,`text`,e=>e.notNull().defaultTo(r.sql`('{}')`)).execute(),await e.schema.alterTable(`users`).modifyColumn(`created_at`,`varchar(35)`,e=>e.notNull()).execute(),await e.schema.alterTable(`users`).modifyColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).execute(),await e.schema.alterTable(`users`).modifyColumn(`locale`,`varchar(64)`).execute()),await e.schema.createTable(`user_activity`).ifNotExists().addColumn(`tenant_id`,`varchar(255)`,e=>e.notNull()).addColumn(`user_id`,`varchar(255)`,e=>e.notNull()).addColumn(`last_login`,`varchar(35)`).addColumn(`last_ip`,`varchar(45)`).addColumn(`login_count`,`integer`,e=>e.notNull().defaultTo(0)).addColumn(`failed_logins`,`text`).addColumn(`last_password_reset`,`varchar(35)`).addPrimaryKeyConstraint(`user_activity_pkey`,[`tenant_id`,`user_id`]).addForeignKeyConstraint(`user_activity_user_id_constraint`,[`user_id`,`tenant_id`],`users`,[`user_id`,`tenant_id`],e=>e.onDelete(`cascade`)).execute()}async function Mg(e){let t=await Ag(e);await e.schema.dropTable(`user_activity`).ifExists().execute(),t===`mysql`&&(await e.schema.alterTable(`users`).modifyColumn(`profileData`,`varchar(2048)`).execute(),await e.schema.alterTable(`users`).modifyColumn(`picture`,`varchar(2083)`).execute(),await e.schema.alterTable(`users`).modifyColumn(`app_metadata`,`varchar(4096)`,e=>e.notNull().defaultTo(`{}`)).execute(),await e.schema.alterTable(`users`).modifyColumn(`created_at`,`varchar(255)`,e=>e.notNull()).execute(),await e.schema.alterTable(`users`).modifyColumn(`updated_at`,`varchar(255)`,e=>e.notNull()).execute(),await e.schema.alterTable(`users`).modifyColumn(`locale`,`varchar(255)`).execute())}var Ng=t({down:()=>Fg,up:()=>Pg});async function Pg(e){await e.schema.alterTable(`users`).dropColumn(`last_login`).execute(),await e.schema.alterTable(`users`).dropColumn(`last_ip`).execute(),await e.schema.alterTable(`users`).dropColumn(`login_count`).execute()}async function Fg(e){await e.schema.alterTable(`users`).addColumn(`last_login`,`varchar(35)`).execute(),await e.schema.alterTable(`users`).addColumn(`last_ip`,`varchar(45)`).execute(),await e.schema.alterTable(`users`).addColumn(`login_count`,`integer`,e=>e.notNull().defaultTo(0)).execute(),await r.sql`
|
|
185
185
|
UPDATE users SET
|
|
186
186
|
last_login = (
|
|
187
187
|
SELECT ua.last_login FROM user_activity ua
|
|
@@ -198,4 +198,4 @@ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{val
|
|
|
198
198
|
),
|
|
199
199
|
0
|
|
200
200
|
)
|
|
201
|
-
`.execute(e)}var
|
|
201
|
+
`.execute(e)}var Ig=t({down:()=>Rg,up:()=>Lg});async function Lg(e){await e.schema.createTable(`tenant_operations`).ifNotExists().addColumn(`id`,`varchar(255)`,e=>e.notNull().primaryKey()).addColumn(`tenant_id`,`varchar(255)`).addColumn(`rollout_id`,`varchar(255)`).addColumn(`kind`,`varchar(32)`,e=>e.notNull()).addColumn(`status`,`varchar(32)`,e=>e.notNull()).addColumn(`current_step`,`varchar(255)`).addColumn(`engine`,`varchar(64)`,e=>e.notNull()).addColumn(`engine_instance_id`,`varchar(100)`).addColumn(`target_worker_version`,`varchar(255)`).addColumn(`target_database_version`,`varchar(255)`).addColumn(`error`,`text`).addColumn(`initiated_by`,`varchar(255)`).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).addColumn(`finished_at`,`varchar(35)`).execute(),await e.schema.createIndex(`tenant_operations_tenant_id_created_at_idx`).on(`tenant_operations`).columns([`tenant_id`,`created_at`]).execute(),await e.schema.createIndex(`tenant_operations_rollout_id_idx`).on(`tenant_operations`).column(`rollout_id`).execute(),await e.schema.createIndex(`tenant_operations_status_idx`).on(`tenant_operations`).column(`status`).execute(),await e.schema.createTable(`tenant_operation_events`).ifNotExists().addColumn(`id`,`varchar(255)`,e=>e.notNull().primaryKey()).addColumn(`operation_id`,`varchar(255)`,e=>e.notNull()).addColumn(`step`,`varchar(255)`,e=>e.notNull()).addColumn(`outcome`,`varchar(32)`,e=>e.notNull()).addColumn(`detail`,`text`).addColumn(`attempt`,`integer`,e=>e.notNull().defaultTo(1)).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addForeignKeyConstraint(`tenant_operation_events_operation_id_constraint`,[`operation_id`],`tenant_operations`,[`id`],e=>e.onDelete(`cascade`)).execute(),await e.schema.createIndex(`tenant_operation_events_operation_id_created_at_idx`).on(`tenant_operation_events`).columns([`operation_id`,`created_at`]).execute(),await e.schema.createTable(`rollouts`).ifNotExists().addColumn(`id`,`varchar(255)`,e=>e.notNull().primaryKey()).addColumn(`kind`,`varchar(32)`,e=>e.notNull()).addColumn(`status`,`varchar(32)`,e=>e.notNull()).addColumn(`target_worker_version`,`varchar(255)`).addColumn(`target_database_version`,`varchar(255)`).addColumn(`wave_size`,`integer`,e=>e.notNull().defaultTo(10)).addColumn(`canary_tenant_ids`,`text`).addColumn(`filter`,`text`).addColumn(`initiated_by`,`varchar(255)`).addColumn(`created_at`,`varchar(35)`,e=>e.notNull()).addColumn(`updated_at`,`varchar(35)`,e=>e.notNull()).addColumn(`finished_at`,`varchar(35)`).execute()}async function Rg(e){await e.schema.dropTable(`tenant_operation_events`).ifExists().execute(),await e.schema.dropTable(`tenant_operations`).ifExists().execute(),await e.schema.dropTable(`rollouts`).ifExists().execute()}var zg={m1_init:io,m2_magicLink:so,m3_updateAt:uo,m4_logTable:mo,m5_userProfile:_o,m6_sessions:bo,m7_passwords:Co,m8_logsTableNewFields:Eo,m9_passwordTableNewField:ko,n01_codesTable:Mo,n11_universalLoginSession:Fo,n12_userFields:Ro,n13_userEmailIndex:Vo,n14_profileDataField:Wo,n15_userEmailIndex:qo,n16_userLocale:Xo,n17_signingKeys:$o,n18_logsFields:ns,n19_connectionsUserinfo:as,n20_missingFields:cs,n21_sessionDeletedAt:ds,n22_dropLogsFields:ms,n23_dropUsersFields:_s,n24_logsIndexes:bs,n25_logDescMaxLength:Cs,n26_logsTableExtraFields:Es,n27_usersTableNameIndex:ks,n28_usersEmailConstrain:Ms,n29_increaseOtpStateLength:Fs,n30_increaseTicketStateLength:Rs,n31_branding:Vs,n32_indexesAndNotNull:Ws,n33_vendorIdInUniversalLoginSession:qs,n34_auth0ClientInUniversalLoginSession:Xs,n35_increaseUniversalSessionStateLength:$s,n36_authenticationCodes:nc,n37_disableSignUps:ac,n38_otpIpAddress:cc,n39_increaseUserAgentLength:dc,n40_userId:mc,n41_hooks:_c,n42_userIdIndexes:bc,n43_userIdIndexes:Cc,n44_codes:Ec,n45_hookProperties:kc,n46_loginAuth0Client:Mc,n47_loginAuth0Client:Fc,n48_saml:Rc,n49_removeFields:Vc,n50_authParamsNonce:Wc,n51_connectionid:qc,n52_cert:Xc,n53_codes_primary_key:$c,n54_cleanup_tables:nl,n55_logs_index:al,n56_application_fields:cl,n57_prompt_settings:dl,n58_connection_client_id:ml,n59_connection_options:_l,n60_users_metadata:bl,n61_userLocales:Cl,n62_prompt:El,n63_connection_cleanup:kl,n64_act_as:Ml,n65_code_verifier:Fl,n66_email_providers:Rl,n67_drop_tickets:Vl,n68_login_useragents:Wl,n70_refresh_tokens:ql,n71_session_new_fields:Xl,n72_session_primary_key:$l,n73_drop_sessions:nu,n74_custom_domains:au,n75_organizations:cu,n76_authorization_url_length:du,n77_drop_sessions:mu,n78_login_sessions:_u,n79_drop_sessions_2:bu,n80_recreate_custom_domains:Cu,n81_phone:Eu,n82_forms:ku,n83_addFormsIdToHooks:Mu,n84_login_completed:Fu,n85_add_login_session_id_to_sessions:Ru,n86_index_sessions_login_session_id:Vu,n87_code_challenge:Wu,n88_add_redirect_uri_to_codes:qu,n89_add_nonce_and_state_to_codes:Xu,n90_themes:$u,n91_resource_servers_rules_permissions:nd,n92_role_permissions:ad,n93_add_permissions_to_roles:cd,n94_keys_connection_and_extend_columns:dd,n95_create_organizations_table:md,n96_create_user_organizations_table:_d,n97_add_organization_to_user_permissions_and_roles:bd,n98_clients:Cd,n99_update_client_foreign_keys:Od,o001_client_grants:Id,o002_drop_applications:zd,o003_phone_number_index:Hd,o004_login_sessions_id_index:Gd,o005_connections_tenant_index:Jd,o006_remove_redundant_user_organizations_tenant_index:Zd,o007_tenant_settings:ef,o008_merge_tenant_settings_into_tenants:rf,o009_create_invites_table:sf,o010_add_log_id_to_logs:uf,o011_add_location_info_to_logs:pf,o012_add_password_history:gf,o013_connection_display_name:yf,o014_client_connections:Sf,o015_flows:Tf,o016_add_is_system_column:Of,o017_connections_composite_key:jf,o018_login_session_state:Pf,o019_roles_resource_servers_metadata:Lf,o020_session_add_timestamp_columns:Bf,o021_session_cleanup_and_ulid:Wf,o022_oidc_profile_claims:Jf,o023_preferred_username:Zf,o024_user_address:ep,o025_authparams_max_age:rp,o026_auth0_conformant:op,o027_universal_login_templates:lp,o028_custom_text:fp,o029_guardian_mfa:hp,o030_add_template_id_to_hooks:vp,o031_hooks_cleanup:Sp,o032_unique_username_provider:Dp,o033_add_login_id_to_refresh_tokens:Ap,o034_refresh_tokens_replace_session_id_with_login_id:Np,o035_idle_expires_at_ts_indexes:Lp,o036_add_connection_to_login_sessions:Bp,o037_mfa_enrollments:Up,o038_add_otp_to_codes:Kp,o039_rename_mfa_enrollments_to_authentication_methods:Yp,o040_create_outbox_events:Qp,o041_add_outbox_claim_columns:tm,o042_add_outbox_claim_index:im,o043_add_code_hooks:sm,o044_create_actions:um,o045_outbox_dead_letter:pm,o046_user_registration_completed_at:gm,o047_outbox_dead_lettered_tenant_index:ym,o048_add_auth_strategy_to_login_sessions:Sm,o049_login_sessions_auth_params:Tm,o050_login_sessions_auth_params_backfill:km,o051_relax_login_sessions_authparams:Fm,o052_drop_login_sessions_hoisted_authparams:Vm,o053_refresh_tokens_revoked_at:Ym,o054_client_registration_tokens:Qm,o055_planetscale_redundant_indexes_cleanup:th,o056_client_user_linking_mode:sh,o057_hooks_metadata:uh,o058_refresh_tokens_rotation:ph,o059_organization_connections:gh,o060_log_streams:yh,o061_tenants_attack_protection:Sh,o062_tenants_default_client_id:Th,o063_email_templates:Oh,o064_create_action_versions:jh,o065_branding_dark_mode:Ph,o066_create_action_executions:Lh,o067_client_disable_sign_ups:Bh,o068_move_disable_signup_to_connection:Wh,o069_actions_is_system_inherit:Jh,o070_collapse_auth0_source_into_db_connection:Zh,o071_migration_sources:ng,o072_proxy_routes:ag,o073_proxy_routes_v2:cg,o074_widen_user_permissions_resource_server_identifier:pg,o075_create_grants:_g,o076_default_first_party_true:bg,o077_tenant_deployment_fields:Cg,o078_tenant_database_version:Eg,o079_user_activity_and_user_column_cleanup:kg,o080_drop_user_activity_columns_from_users:Ng,o081_tenant_operations:Ig};async function Bg(e,t=!1){Dd(t),t&&console.log(`migrating...`);let{error:n,results:r}=await new to({db:e,provider:new ro(zg)}).migrateToLatest();if(r?.forEach(e=>{e.status===`Success`?t&&console.log(`migration "${e.migrationName}" was executed successfully`):e.status===`Error`&&console.error(`failed to execute migration "${e.migrationName}"`)}),n)throw console.error(`failed to migrate`),console.error(n),n}async function Vg(e,t=!1){Dd(t),t&&console.log(`migrating...`);let{error:n,results:r}=await new to({db:e,provider:new ro(zg)}).migrateDown();if(r?.forEach(e=>{e.status===`Success`?t&&console.log(`migration "${e.migrationName}" was reverted successfully`):e.status===`Error`&&console.error(`failed to execute migration "${e.migrationName}"`)}),n)throw console.error(`failed to migrate`),console.error(n),n}function Hg(e,t={useTransactions:!0}){let n={actions:ce(e),actionExecutions:fe(e),actionVersions:he(e),branding:bn(e),clients:It(e),clientConnections:Ht(e),clientGrants:Jt(e),clientRegistrationTokens:on(e),codes:St(e),connections:kt(e),emailProviders:or(e),emailTemplates:pr(e),customDomains:_n(e),flows:ze(e),forms:Ar(e),hookCode:Fn(e),hooks:An(e),invites:Oi(e),keys:un(e),loginSessions:Zn(e),logs:it(e),logStreams:ua(e),migrationSources:da(e),authenticationMethods:Qi(e),passwords:ht(e),promptSettings:tr(e),proxyRoutes:ma(e),refreshTokens:Sr(e),resourceServers:Ir(e),rolePermissions:Kr(e),grants:Qr(e),userPermissions:ri(e),userRoles:ci(e),roles:Hr(e),sessions:ut(e),sessionCleanup:wr(e),tenants:Ye(e),tenantOperations:va(e),tenantOperationEvents:ja(e),rollouts:Pa(e),themes:Bn(e),universalLoginTemplates:wn(e),customText:Gi(e),users:je(e),userActivity:Oe(e),organizations:mi(e),organizationConnections:hi(e),userOrganizations:Si(e),stats:Ni(e),analytics:Wi(e),outbox:la(e),async transaction(r){return t.useTransactions===!1?r(n):e.transaction().execute(async e=>r(Hg(e,{...t,useTransactions:!1})))}};return n}exports.createProxyDataAdapter=ga,exports.createProxyRoutesAdapter=ma,exports.default=Hg,exports.migrateDown=Vg,exports.migrateToLatest=Bg;
|