tempest.games 0.1.34 → 0.1.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,30 +1,30 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var zM=Object.create;var{getPrototypeOf:QM,defineProperty:aS,getOwnPropertyNames:DM}=Object;var UM=Object.prototype.hasOwnProperty;var Sk=(o,T,f)=>{f=o!=null?zM(QM(o)):{};let n=T||!o||!o.__esModule?aS(f,"default",{value:o,enumerable:!0}):f;for(let S of DM(o))if(!UM.call(n,S))aS(n,S,{get:()=>o[S],enumerable:!0});return n};var Ak=(o,T)=>()=>(T||o((T={exports:{}}).exports,T),T.exports);var VM=(o,T)=>{for(var f in T)aS(o,f,{get:T[f],enumerable:!0,configurable:!0,set:(n)=>T[f]=()=>n})};var $k=import.meta.require;import{join as Tk,normalize as fk,resolve as C1}from"path";function cn(o=Math.random){return o().toString(36).slice(2)}class Tn extends Promise{fate;resolve;reject;done=!1;constructor(o){let T,f;super((n,S)=>{T=n,f=S});this.resolve=T,this.reject=f,this.use(o instanceof Promise?o:new Promise(o))}pass(o,T){if(o===this.fate)this.resolve(T),this.done=!0}fail(o,T){if(o===this.fate)this.reject(T),this.done=!0}use(o){if(o instanceof Promise){let T=o;this.fate=T,T.then((f)=>{this.pass(T,f)},(f)=>{this.fail(T,f)})}else this.resolve(o),this.fate=void 0}}function P$(o){return Object.entries(o)}var i$=(o,T,f=no.STORE)=>{return jT(f,{key:`${o.key}:JSON`,get:({get:n})=>T.toJson(n(o)),set:({set:n},S)=>{n(o,T.fromJson(S))}})};function C(o){while(o.child!==null)o=o.child;return o}class oo{Subscriber;subscribers=new Map;subscribe(o,T){return this.subscribers.set(o,T),()=>{this.unsubscribe(o)}}unsubscribe(o){this.subscribers.delete(o)}next(o){let T=this.subscribers.values();for(let f of T)f(o)}}class oA extends oo{state;constructor(o){super();this.state=o}next(o){this.state=o,super.next(o)}}function NT(o,T,f){let n={key:T.key,type:"atom_family"},S=o.families.get(T.key);if(S)o.logger.error("\u2757","atom_family",T.key,`Overwriting an existing ${VT(S)} "${S.key}" in store "${o.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let A=new oo,F=Object.assign((J)=>{let R=fo(J),M={key:T.key,subKey:R},_=`${T.key}(${R})`,w=C(o),X=T.default,D={key:_,default:X instanceof Function?X(J):X};if(T.effects)D.effects=T.effects(J);let K=FT(w,D,M);return A.next({type:"state_creation",token:K}),K},n,{subject:A,install:(J)=>NT(J,T),internalRoles:f});return o.families.set(T.key,F),o.defaults.set(T.key,T.default),n}function g$(o,T){if("mutable"in T)return fn(o,T);return NT(o,T)}function hT(o,T,f){let n={key:T.key,type:"readonly_selector_family"},S=o.families.get(T.key);if(S)o.logger.error("\u2757","readonly_selector_family",T.key,`Overwriting an existing ${VT(S)} "${S.key}" in store "${o.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let A=new oo,F=Object.assign((J)=>{let R=fo(J),M={key:T.key,subKey:R},_=`${T.key}(${R})`,w=C(o),X=nn(w,{key:_,get:T.get(J)},M);return A.next({type:"state_creation",token:X}),X},n,{internalRoles:f,subject:A,install:(J)=>hT(J,T),default:(J)=>{return T.get(J)({get:(...M)=>Ro(o,...M),find:(...M)=>i(o,...M),json:(M)=>Io(o,M)})}});return o.families.set(T.key,F),n}function Zn(o,T){if("set"in T)return Sn(o,T);return hT(o,T)}class Pn{_buffer;_index=0;constructor(o){let T;if(typeof o==="number")T=o;else T=o.length;this._buffer=Array.from({length:T})}get buffer(){return this._buffer}get index(){return this._index}add(o){this._buffer[this._index]=o,this._index=(this._index+1)%this._buffer.length}copy(){let o=new Pn([...this._buffer]);return o._index=this._index,o}}var BM={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function d$(o,T){let f=fo(T),n=`${o.key}(${f})`,S=BM[o.type],A={key:n,type:S};return Object.assign(A,{family:{key:o.key,subKey:f}}),Object.assign(A,{counterfeit:!0}),A}function nT(o){let T={key:o.key,type:o.type};if("family"in o)T.family=o.family;return T}function Gf(o){return l$(no.STORE,o)}function Tf(o){return g$(no.STORE,o)}function TA(...o){if(o.length===2)return Ro(no.STORE,...o);return Ro(no.STORE,...o)}function gn(o,T,f=no.STORE){return f.joins.set(o.key,new An(o,T,f)),{key:o.key,type:"join",a:o.between[0],b:o.between[1],cardinality:o.cardinality}}function e$(o){return s$(o,no.STORE)}var fA=(o)=>(T,f,n,S,...A)=>{console[o](`${T} ${f} "${n}" ${S}`,...A)},LM={error:fA("error"),info:fA("info"),warn:fA("warn")};class nA{logLevel;filter;logger;constructor(o,T,f=LM){this.logLevel=o,this.filter=T,this.logger=f}error=(...o)=>{if((this.filter?.(...o)??!0)&&this.logLevel!==null)this.logger.error(...o)};info=(...o)=>{if((this.filter?.(...o)??!0)&&this.logLevel==="info")this.logger.info(...o)};warn=(...o)=>{if((this.filter?.(...o)??!0)&&this.logLevel!=="error"&&this.logLevel!==null)this.logger.warn(...o)}}var Zk=Symbol("claim");class a${store;constructor(o=no.STORE){this.store=o,oF("root",o)}allocate(o,T,f){return ff(this.store,o,T,f)}fuse(o,T,f){return TF(this.store,o,T,f)}deallocate(o){nf(this.store,o)}claim(o,T,f){return Yf(this.store,o,T,f)}}class SA{store;realm;constructor(o=no.STORE){this.store=o,this.realm=new a$(o)}allocate(o,T,f){ff(this.store,o,T,f)}deallocate(o){nf(this.store,o)}claim(o,T,f){Yf(this.store,o,T,f)}}function ln(o){return Zn(no.STORE,o)}function jo(o){return"epoch"in o.transactionMeta}function Mo(o){return"phase"in o.transactionMeta}var fF=(o)=>{let T=C(o);if(!Mo(T)){o.logger.warn("\uD83D\uDC1E","transaction","???","abortTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}o.logger.info("\uD83E\uDE82","transaction",T.transactionMeta.update.key,"Aborting transaction"),T.parent.child=null};function Wo(o){return o[0].toUpperCase()+o.slice(1)}function VT(o){return o.type.split("_").map(Wo).join(" ")}class Sf extends Error{constructor(o,T){super(`${VT(o)} ${fo(o.key)} not found in store "${T.config.name}".`)}}function tf(o,T,f){return(...n)=>{let S=$o(o,T);if(S)return S.run(n,f);throw new Sf(T,o)}}var un=(o)=>(T)=>o instanceof Function?o(T):o;var PT=(o,T)=>{if(o.valueMap.has(T.key))return o.logger.info("\uD83D\uDCD6",T.type,T.key,"reading cached value"),nF(T,o);if(T.type==="selector"||T.type==="readonly_selector")return o.logger.info("\uD83E\uDDEE",T.type,T.key,"computing value"),T.get();let f=T.default instanceof Function?T.default():T.default;return o.logger.info("\uD83D\uDC81","atom",T.key,"could not find cached value; using default",f),T.default instanceof Function?T.default():T.default};var SF=(o,T)=>{if(o.operation.open){let f=performance.now();return o.logger.info("\u2757",T.type,T.key,`deferring setState at T-${f} until setState for "${o.operation.token.key}" is done`),f}o.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:T},o.logger.info("\u2B55",T.type,T.key,`operation start in store "${o.config.name}"${!Mo(o)?"":` ${o.transactionMeta.phase} "${o.transactionMeta.update.key}"`}`)},AF=(o)=>{if(o.operation.open)o.logger.info("\uD83D\uDD34",o.operation.token.type,o.operation.token.key,`operation done in store "${o.config.name}"`);o.operation={open:!1},o.on.operationClose.next(o.operation)},$F=(o,T)=>{if(!o.operation.open)return o.logger.error("\uD83D\uDC1E","unknown",T,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return o.operation.done.has(T)},zf=(o,T)=>{if(!o.operation.open){o.logger.error("\uD83D\uDC1E","unknown",T,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}o.operation.done.add(T)};var FF=(o,T,f)=>{switch(T.type){case"mutable_atom":o.logger.info("\uD83D\uDCE2",T.type,T.key,"is now (",f.newValue,") subscribers:",T.subject.subscribers);break;case"atom":case"selector":case"readonly_selector":o.logger.info("\uD83D\uDCE2",T.type,T.key,"went (",f.oldValue,"->",f.newValue,") subscribers:",T.subject.subscribers)}T.subject.next(f)};var AA=(o,T)=>{let f=C(o),n=f.selectorAtoms.getRelatedKeys(T.key);if(f.logger.info("\uD83E\uDDF9",T.type,T.key,n?`evicting ${n.size} states downstream:`:"no downstream states",n??"to evict"),n){if(f.operation.open)f.logger.info("\uD83E\uDDF9",T.type,T.key,`[ ${[...f.operation.done].join(", ")} ] already done`);for(let S of n){if($F(f,S))continue;JF(S,f),zf(f,S)}}};function CM(o,T){if(MF(T.newValue))return!1;if(o.includes("\uD83D\uDD0D"))return!1;return!0}var RF=(o,T,f)=>{let{key:n}=T,S=C(o);if(!Mo(S)||S.transactionMeta.phase!=="building"){o.logger.error("\uD83D\uDC1E","atom",n,"stowUpdate called outside of a transaction. This is probably a bug.");return}if(!CM(n,f))return;let $={type:"atom_update",key:n,...f};if(T.family)$.family=T.family;S.transactionMeta.update.updates.push($),o.logger.info("\uD83D\uDCC1","atom",n,"stowed (",f.oldValue,"->",f.newValue,")")};var WF=(o,T,f)=>{let n=PT(f,o),S=n;if(o.type==="mutable_atom"&&Mo(f)){let{parent:$}=f;S=Fn(f,o,$)}if(S=un(T)(S),f.logger.info("\uD83D\uDCDD","atom",o.key,"set to",S),S=OT(f,o.key,S,o.subject),OF(f,o.key))kF(f,o.key);zf(f,o.key),AA(f,o);let A={oldValue:n,newValue:S};if(jo(f))FF(f,o,A);else if(f.parent){if(f.on.transactionApplying.state===null)RF(f,o,A);else if(o.key.startsWith("*")){let $=o.key.slice(1),F=f.atoms.get($),J=f.valueMap.get($);if(F.type==="mutable_atom"&&Mo(f)){let{parent:M}=f;J=Fn(f,F,M)}if(J.do(A.newValue)===null)AA(f,F)}}};var en=(o,T,f)=>{switch(T.type){case"atom":case"mutable_atom":WF(T,f,o);break;case"selector":T.set(f);break}};function _F(o,T){if(T.family){let f=o.families.get(T.family.key);if(f)return f}}function Uo(o,...T){let f,n,S,A;if(T.length===2){if(f=T[0],A=T[1],n=_F(o,f)??null,n)S=f.family?vo(f.family.subKey):null,f=i(o,n,S)}else n=T[0],S=T[1],A=T[2],f=i(o,n,S);if("counterfeit"in f&&"family"in f){let J=f.family.subKey,R=o.disposalTraces.buffer.find((M)=>M?.key===J);o.logger.error("\u274C",f.type,f.key,`could not be set because it was not found in the store "${o.config.name}".`,R?`This state was previously disposed:
4
- ${R.trace}`:"No previous disposal trace was found.");return}let $=SF(o,f);if($){let J=o.on.operationClose.subscribe(`waiting to set "${f.key}" at T-${$}`,()=>{J(),o.logger.info("\uD83D\uDFE2",f.type,f.key,`resuming deferred setState from T-${$}`),Uo(o,f,A)});return}let F=$o(o,f);en(o,F,A),AF(o)}function sn(o,T,f){let{key:n,newValue:S,oldValue:A}=T,$=o==="newValue"?S:A,F={key:n,type:"atom"};if(T.family)Object.assign(F,{family:T.family});Uo(f,F,$)}function wF(o){let{stack:T}=o;if(T)return`
3
+ var BM=Object.create;var{getPrototypeOf:mM,defineProperty:oA,getOwnPropertyNames:LM}=Object;var CM=Object.prototype.hasOwnProperty;var tk=(o,T,n)=>{n=o!=null?BM(mM(o)):{};let f=T||!o||!o.__esModule?oA(n,"default",{value:o,enumerable:!0}):n;for(let S of LM(o))if(!CM.call(f,S))oA(f,S,{get:()=>o[S],enumerable:!0});return f};var Rk=(o,T)=>()=>(T||o((T={exports:{}}).exports,T),T.exports);var IM=(o,T)=>{for(var n in T)oA(o,n,{get:T[n],enumerable:!0,configurable:!0,set:(f)=>T[n]=()=>f})};var Mk=import.meta.require;import{join as $k,normalize as Fk,resolve as N0}from"node:path";function Zf(o=Math.random){return o().toString(36).slice(2)}class nf extends Promise{fate;resolve;reject;done=!1;constructor(o){let T,n;super((f,S)=>{T=f,n=S});this.resolve=T,this.reject=n,this.use(o instanceof Promise?o:new Promise(o))}pass(o,T){if(o===this.fate)this.resolve(T),this.done=!0}fail(o,T){if(o===this.fate)this.reject(T),this.done=!0}use(o){if(o instanceof Promise){let T=o;this.fate=T,T.then((n)=>{this.pass(T,n)},(n)=>{this.fail(T,n)})}else this.resolve(o),this.fate=void 0}}function g$(o){return Object.entries(o)}var d$=(o,T,n=fo.STORE)=>{return jT(n,{key:`${o.key}:JSON`,get:({get:f})=>T.toJson(f(o)),set:({set:f},S)=>{f(o,T.fromJson(S))}})};function C(o){while(o.child!==null)o=o.child;return o}class oo{Subscriber;subscribers=new Map;subscribe(o,T){return this.subscribers.set(o,T),()=>{this.unsubscribe(o)}}unsubscribe(o){this.subscribers.delete(o)}next(o){let T=this.subscribers.values();for(let n of T)n(o)}}class TA extends oo{state;constructor(o){super();this.state=o}next(o){this.state=o,super.next(o)}}function hT(o,T,n){let f={key:T.key,type:"atom_family"},S=o.families.get(T.key);if(S)o.logger.error("\u2757","atom_family",T.key,`Overwriting an existing ${VT(S)} "${S.key}" in store "${o.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let A=new oo,F=Object.assign((J)=>{let t=no(J),R={key:T.key,subKey:t},W=`${T.key}(${t})`,O=C(o),_=T.default,Q={key:W,default:_ instanceof Function?_(J):_};if(T.effects)Q.effects=T.effects(J);let H=FT(O,Q,R);return A.next({type:"state_creation",token:H}),H},f,{subject:A,install:(J)=>hT(J,T),internalRoles:n});return o.families.set(T.key,F),o.defaults.set(T.key,T.default),f}function l$(o,T){if("mutable"in T)return ff(o,T);return hT(o,T)}function NT(o,T,n){let f={key:T.key,type:"readonly_selector_family"},S=o.families.get(T.key);if(S)o.logger.error("\u2757","readonly_selector_family",T.key,`Overwriting an existing ${VT(S)} "${S.key}" in store "${o.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let A=new oo,F=Object.assign((J)=>{let t=no(J),R={key:T.key,subKey:t},W=`${T.key}(${t})`,O=C(o),_=Sf(O,{key:W,get:T.get(J)},R);return A.next({type:"state_creation",token:_}),_},f,{internalRoles:n,subject:A,install:(J)=>NT(J,T),default:(J)=>{return T.get(J)({get:(...R)=>to(o,...R),find:(...R)=>i(o,...R),json:(R)=>Io(o,R)})}});return o.families.set(T.key,F),f}function Pf(o,T){if("set"in T)return Af(o,T);return NT(o,T)}class gf{_buffer;_index=0;constructor(o){let T;if(typeof o==="number")T=o;else T=o.length;this._buffer=Array.from({length:T})}get buffer(){return this._buffer}get index(){return this._index}add(o){this._buffer[this._index]=o,this._index=(this._index+1)%this._buffer.length}copy(){let o=new gf([...this._buffer]);return o._index=this._index,o}}var jM={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function u$(o,T){let n=no(T),f=`${o.key}(${n})`,S=jM[o.type],A={key:f,type:S};return Object.assign(A,{family:{key:o.key,subKey:n}}),Object.assign(A,{counterfeit:!0}),A}function fT(o){let T={key:o.key,type:o.type};if("family"in o)T.family=o.family;return T}function Gn(o){return e$(fo.STORE,o)}function nn(o){return l$(fo.STORE,o)}function nA(...o){if(o.length===2)return to(fo.STORE,...o);return to(fo.STORE,...o)}function df(o,T,n=fo.STORE){return n.joins.set(o.key,new $f(o,T,n)),{key:o.key,type:"join",a:o.between[0],b:o.between[1],cardinality:o.cardinality}}function a$(o){return oF(o,fo.STORE)}var fA=(o)=>(T,n,f,S,...A)=>{console[o](`${T} ${n} "${f}" ${S}`,...A)},hM={error:fA("error"),info:fA("info"),warn:fA("warn")};class SA{logLevel;filter;logger;constructor(o,T,n=hM){this.logLevel=o,this.filter=T,this.logger=n}error=(...o)=>{if((this.filter?.(...o)??!0)&&this.logLevel!==null)this.logger.error(...o)};info=(...o)=>{if((this.filter?.(...o)??!0)&&this.logLevel==="info")this.logger.info(...o)};warn=(...o)=>{if((this.filter?.(...o)??!0)&&this.logLevel!=="error"&&this.logLevel!==null)this.logger.warn(...o)}}var lk=Symbol("claim");class TF{store;constructor(o=fo.STORE){this.store=o,nF("root",o)}allocate(o,T,n){return fn(this.store,o,T,n)}fuse(o,T,n){return fF(this.store,o,T,n)}deallocate(o){Sn(this.store,o)}claim(o,T,n){return Yn(this.store,o,T,n)}}class AA{store;realm;constructor(o=fo.STORE){this.store=o,this.realm=new TF(o)}allocate(o,T,n){fn(this.store,o,T,n)}deallocate(o){Sn(this.store,o)}claim(o,T,n){Yn(this.store,o,T,n)}}function uf(o){return Pf(fo.STORE,o)}function qo(o){return"epoch"in o.transactionMeta}function Ro(o){return"phase"in o.transactionMeta}var SF=(o)=>{let T=C(o);if(!Ro(T)){o.logger.warn("\uD83D\uDC1E","transaction","???","abortTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}o.logger.info("\uD83E\uDE82","transaction",T.transactionMeta.update.key,"Aborting transaction"),T.parent.child=null};function Mo(o){return o[0].toUpperCase()+o.slice(1)}function VT(o){return o.type.split("_").map(Mo).join(" ")}class An extends Error{constructor(o,T){super(`${VT(o)} ${no(o.key)} not found in store "${T.config.name}".`)}}function zn(o,T,n){return(...f)=>{let S=$o(o,T);if(S)return S.run(f,n);throw new An(T,o)}}var ef=(o)=>(T)=>o instanceof Function?o(T):o;var PT=(o,T)=>{if(o.valueMap.has(T.key))return o.logger.info("\uD83D\uDCD6",T.type,T.key,"reading cached value"),AF(T,o);switch(T.type){case"selector":case"readonly_selector":return o.logger.info("\uD83E\uDDEE",T.type,T.key,"computing value"),T.get();case"atom":case"mutable_atom":{let n=T.default,f;if(n instanceof Function)f=n();else f=n;return o.logger.info("\uD83D\uDC81","atom",T.key,"could not find cached value; using default",f),f}}};var $F=(o,T)=>{if(o.operation.open){let n=performance.now();return o.logger.info("\u2757",T.type,T.key,`deferring setState at T-${n} until setState for "${o.operation.token.key}" is done`),n}o.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:T},o.logger.info("\u2B55",T.type,T.key,`operation start in store "${o.config.name}"${!Ro(o)?"":` ${o.transactionMeta.phase} "${o.transactionMeta.update.key}"`}`)},FF=(o)=>{if(o.operation.open)o.logger.info("\uD83D\uDD34",o.operation.token.type,o.operation.token.key,`operation done in store "${o.config.name}"`);o.operation={open:!1},o.on.operationClose.next(o.operation)},JF=(o,T)=>{if(!o.operation.open)return o.logger.error("\uD83D\uDC1E","unknown",T,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return o.operation.done.has(T)},Dn=(o,T)=>{if(!o.operation.open){o.logger.error("\uD83D\uDC1E","unknown",T,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}o.operation.done.add(T)};var tF=(o,T,n)=>{switch(T.type){case"mutable_atom":o.logger.info("\uD83D\uDCE2",T.type,T.key,"is now (",n.newValue,") subscribers:",T.subject.subscribers);break;case"atom":case"selector":case"readonly_selector":o.logger.info("\uD83D\uDCE2",T.type,T.key,"went (",n.oldValue,"->",n.newValue,") subscribers:",T.subject.subscribers)}T.subject.next(n)};var $A=(o,T)=>{let n=C(o),f=n.selectorAtoms.getRelatedKeys(T.key);if(n.logger.info("\uD83E\uDDF9",T.type,T.key,f?`evicting ${f.size} states downstream:`:"no downstream states",f??"to evict"),f){if(n.operation.open)n.logger.info("\uD83E\uDDF9",T.type,T.key,`[ ${[...n.operation.done].join(", ")} ] already done`);for(let S of f){if(JF(n,S))continue;RF(S,n),Dn(n,S)}}};var MF=(o,T,n)=>{let f=PT(o,T),S=f;if(T.type==="mutable_atom"&&Ro(o)){let{parent:$}=o;S=Jf(o,T,$)}if(S=ef(n)(S),o.logger.info("\uD83D\uDCDD","atom",T.key,"set to",S),S=yT(o,T.key,S,T.subject),kF(o,T.key))WF(o,T.key);Dn(o,T.key),$A(o,T);let A={oldValue:f,newValue:S};if(!Ro(o)){tF(o,T,A);return}if(o.on.transactionApplying.state===null){let{key:$}=T;if(yF(A.newValue))return;let F={type:"atom_update",key:$,...A};if(T.family)F.family=T.family;o.transactionMeta.update.updates.push(F),o.logger.info("\uD83D\uDCC1","atom",$,"stowed (",A.oldValue,"->",A.newValue,")")}else if(T.key.startsWith("*")){let $=T.key.slice(1),F=o.atoms.get($),J=o.valueMap.get($);if(F.type==="mutable_atom"&&Ro(o)){let{parent:R}=o;J=Jf(o,F,R)}if(J.do(A.newValue)===null)$A(o,F)}};var sf=(o,T,n)=>{switch(T.type){case"atom":case"mutable_atom":MF(o,T,n);break;case"selector":T.set(n);break}};function OF(o,T){if(T.family){let n=o.families.get(T.family.key);if(n)return n}}function Uo(o,...T){let n,f,S,A;if(T.length===2){if(n=T[0],A=T[1],f=OF(o,n)??null,f)S=n.family?xo(n.family.subKey):null,n=i(o,f,S)}else f=T[0],S=T[1],A=T[2],n=i(o,f,S);if("counterfeit"in n&&"family"in n){let J=n.family.subKey,t=o.disposalTraces.buffer.find((R)=>R?.key===J);o.logger.error("\u274C",n.type,n.key,`could not be set because it was not found in the store "${o.config.name}".`,t?`This state was previously disposed:
4
+ ${t.trace}`:"No previous disposal trace was found.");return}let $=$F(o,n);if($){let J=o.on.operationClose.subscribe(`waiting to set "${n.key}" at T-${$}`,()=>{J(),o.logger.info("\uD83D\uDFE2",n.type,n.key,`resuming deferred setState from T-${$}`),Uo(o,n,A)});return}let F=$o(o,n);sf(o,F,A),FF(o)}function af(o,T,n){let{key:f,newValue:S,oldValue:A}=T,$=o==="newValue"?S:A,F={key:f,type:"atom"};if(T.family)Object.assign(F,{family:T.family});Uo(n,F,$)}function wF(o){let{stack:T}=o;if(T)return`
5
5
  `+T.split(`
6
6
  `)?.slice(1)?.join(`
7
- `);return""}function oF(o,T=no.STORE){let f={key:o,stringKey:fo(o),dependsOn:"any"};return T.molecules.set(fo(o),f),o}function ff(o,T,f,n="any"){let S=T,A=fo(f),$=[],F=C(o);if(Array.isArray(S))for(let M of S){let _=fo(M);if(F.molecules.get(_))o.moleculeGraph.set(_,A,{source:_});else $.push(_)}else{let M=fo(S);if(F.molecules.get(M))o.moleculeGraph.set(M,A,{source:M});else $.push(M)}if($.length===0)F.molecules.set(A,{key:f,stringKey:A,dependsOn:n});let J={type:"molecule_creation",key:f,provenance:S};if(Mo(F)&&F.transactionMeta.phase==="building")F.transactionMeta.update.updates.push(J);else F.on.moleculeCreation.next(J);for(let M of $){let _=o.disposalTraces.buffer.find((w)=>w?.key===M);o.logger.error("\u274C","molecule",f,"allocation failed:",`Could not allocate to ${M} in store "${o.config.name}".`,_?`
8
- ${M} was most recently disposed
9
- ${_.trace}`:`No previous disposal trace for ${M} was found.`)}return f}function TF(o,T,f,n){let S=`T$--${T}==${f}++${n}`;return ff(o,[f,n],S,"all"),S}function nf(o,T){let f=fo(T),n=o.molecules.get(f);if(!n){let X=o.disposalTraces.buffer.find((D)=>D?.key===f);o.logger.error("\u274C","molecule",T,"deallocation failed:",`Could not find allocation for ${f} in store "${o.config.name}".`,X?`
7
+ `);return""}function nF(o,T=fo.STORE){let n={key:o,stringKey:no(o),dependsOn:"any"};return T.molecules.set(no(o),n),o}function fn(o,T,n,f="any"){let S=T,A=no(n),$=[],F=C(o);if(Array.isArray(S))for(let R of S){let W=no(R);if(F.molecules.get(W))o.moleculeGraph.set(W,A,{source:W});else $.push(W)}else{let R=no(S);if(F.molecules.get(R))o.moleculeGraph.set(R,A,{source:R});else $.push(R)}if($.length===0)F.molecules.set(A,{key:n,stringKey:A,dependsOn:f});let J={type:"molecule_creation",key:n,provenance:S};if(Ro(F)&&F.transactionMeta.phase==="building")F.transactionMeta.update.updates.push(J);else F.on.moleculeCreation.next(J);for(let R of $){let W=o.disposalTraces.buffer.find((O)=>O?.key===R);o.logger.error("\u274C","molecule",n,"allocation failed:",`Could not allocate to ${R} in store "${o.config.name}".`,W?`
8
+ ${R} was most recently disposed
9
+ ${W.trace}`:`No previous disposal trace for ${R} was found.`)}return n}function fF(o,T,n,f){let S=`T$--${T}==${n}++${f}`;return fn(o,[n,f],S,"all"),S}function Sn(o,T){let n=no(T),f=o.molecules.get(n);if(!f){let _=o.disposalTraces.buffer.find((Q)=>Q?.key===n);o.logger.error("\u274C","molecule",T,"deallocation failed:",`Could not find allocation for ${n} in store "${o.config.name}".`,_?`
10
10
  This state was most recently deallocated
11
- ${X.trace}`:`No previous disposal trace for ${f} was found.`);return}let S=o.moleculeJoins.getRelatedKeys(n.key);if(S)for(let X of S){let D=o.joins.get(X);if(D)D.relations.delete(n.key),D.molecules.delete(n.stringKey)}o.moleculeJoins.delete(n.stringKey);let A=[],$=[],F={type:"molecule_disposal",key:n.key,values:$,provenance:A},J=C(o);J.molecules.delete(f);let R=Mo(J)&&J.transactionMeta.phase==="building";if(R)J.transactionMeta.update.updates.push(F);let M=o.moleculeGraph.getRelationEntries({downstreamMoleculeKey:n.stringKey});if(M)for(let[X,{source:D}]of M)if(D===n.stringKey){let K=vo(X);nf(o,K)}else A.push(D);let _=J.moleculeData.getRelatedKeys(n.stringKey);if(_)for(let X of _){let D=J.families.get(X),K=i(o,D,n.key);$.push([D.key,K]),Af(o,K)}if(J.moleculeGraph.delete(n.stringKey),J.moleculeJoins.delete(n.stringKey),J.moleculeData.delete(n.stringKey),!R)J.on.moleculeDisposal.next(F);J.molecules.delete(n.stringKey);let w=wF(new Error);o.disposalTraces.add({key:f,trace:w})}function Yf(o,T,f,n){let S=fo(f),A=C(o),$=A.molecules.get(S);if(!$){let w=o.disposalTraces.buffer.find((X)=>X?.key===S);return o.logger.error("\u274C","molecule",f,"claim failed:",`Could not allocate to ${S} in store "${o.config.name}".`,w?`
11
+ ${_.trace}`:`No previous disposal trace for ${n} was found.`);return}let S=o.moleculeJoins.getRelatedKeys(f.key);if(S)for(let _ of S){let Q=o.joins.get(_);if(Q)Q.relations.delete(f.key),Q.molecules.delete(f.stringKey)}o.moleculeJoins.delete(f.stringKey);let A=[],$=[],F={type:"molecule_disposal",key:f.key,values:$,provenance:A},J=C(o);J.molecules.delete(n);let t=Ro(J)&&J.transactionMeta.phase==="building";if(t)J.transactionMeta.update.updates.push(F);let R=o.moleculeGraph.getRelationEntries({downstreamMoleculeKey:f.stringKey});if(R)for(let[_,{source:Q}]of R)if(Q===f.stringKey){let H=xo(_);Sn(o,H)}else A.push(Q);let W=J.moleculeData.getRelatedKeys(f.stringKey);if(W)for(let _ of W){let Q=J.families.get(_),H=i(o,Q,f.key);$.push([Q.key,H]),$n(o,H)}if(J.moleculeGraph.delete(f.stringKey),J.moleculeJoins.delete(f.stringKey),J.moleculeData.delete(f.stringKey),!t)J.on.moleculeDisposal.next(F);J.molecules.delete(f.stringKey);let O=wF(new Error);o.disposalTraces.add({key:n,trace:O})}function Yn(o,T,n,f){let S=no(n),A=C(o),$=A.molecules.get(S);if(!$){let O=o.disposalTraces.buffer.find((_)=>_?.key===S);return o.logger.error("\u274C","molecule",n,"claim failed:",`Could not allocate to ${S} in store "${o.config.name}".`,O?`
12
12
  ${S} was most recently disposed
13
- ${w.trace}`:`No previous disposal trace for ${S} was found.`),f}let F=fo(T),J=A.molecules.get(F);if(!J){let w=o.disposalTraces.buffer.find((X)=>X?.key===F);return o.logger.error("\u274C","molecule",f,"claim failed:",`Could not allocate to ${F} in store "${o.config.name}".`,w?`
13
+ ${O.trace}`:`No previous disposal trace for ${S} was found.`),n}let F=no(T),J=A.molecules.get(F);if(!J){let O=o.disposalTraces.buffer.find((_)=>_?.key===F);return o.logger.error("\u274C","molecule",n,"claim failed:",`Could not allocate to ${F} in store "${o.config.name}".`,O?`
14
14
  ${F} was most recently disposed
15
- ${w.trace}`:`No previous disposal trace for ${F} was found.`),f}let R=o.moleculeGraph.getRelationEntries({downstreamMoleculeKey:$.stringKey}).filter(([,{source:w}])=>w!==S).map(([w])=>vo(w));if(n)A.moleculeGraph.delete(S);A.moleculeGraph.set({upstreamMoleculeKey:J.stringKey,downstreamMoleculeKey:$.stringKey},{source:J.stringKey});let M={type:"molecule_transfer",key:$.key,from:R,to:[J.key]};if(Mo(A)&&A.transactionMeta.phase==="building")A.transactionMeta.update.updates.push(M);return f}function $A(o,T,f){switch(T){case"newValue":{yF(o,f);break}case"oldValue":{Af(f,o.token);break}}}function FA(o,T,f){switch(T){case"newValue":{Af(f,o.token);break}case"oldValue":{if(yF(o,f),o.subType==="atom")f.valueMap.set(o.token.key,o.value);break}}}function yF(o,T){let{family:f}=o.token;if(f){let n=T.families.get(f.key);if(n)i(T,n,vo(f.subKey))}}function XF(o,T,f){switch(T){case"newValue":ff(f,o.provenance,o.key);break;case"oldValue":nf(f,o.key);break}}function HF(o,T,f){switch(T){case"newValue":nf(f,o.key);break;case"oldValue":{let n=o.provenance.map(vo);ff(f,n,o.key);for(let[S,A]of o.values){let $=f.families.get(S);if($){i(f,$,o.key);let F=`${S}(${fo(o.key)})`;f.valueMap.set(F,A)}}}break}}function KF(o,T,f){switch(T){case"newValue":{let n=o.to.length===1?o.to[0]:o.to;Yf(f,n,o.key,"exclusive")}break;case"oldValue":{let n=o.from.length===1?o.from[0]:o.from;Yf(f,n,o.key,"exclusive")}break}}function an(o,T,f){let n=o==="newValue"?T.updates:[...T.updates].reverse();for(let S of n)switch(S.type){case"atom_update":case"selector_update":sn(o,S,f);break;case"state_creation":$A(S,o,f);break;case"state_disposal":FA(S,o,f);break;case"molecule_creation":XF(S,o,f);break;case"molecule_disposal":HF(S,o,f);break;case"molecule_transfer":KF(S,o,f);break;case"transaction_update":an(o,S,f);break}}function EF(o,T,f){if(jo(o)&&T)o.transactionMeta.epoch.set(T,f)}function GF(o,T,f){if(!jo(o))return;let S=o.transactionMeta.actionContinuities.getRelatedKey(T);if(S!==void 0)o.transactionMeta.epoch.set(S,f)}var YF=(o,T)=>{let f=C(T),{parent:n}=f;if(n===null||!Mo(f)||f.transactionMeta?.phase!=="building"){T.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}f.transactionMeta.phase="applying",f.transactionMeta.update.output=o,n.child=null,n.on.transactionApplying.next(f.transactionMeta);let{updates:S}=f.transactionMeta.update;if(T.logger.info("\uD83D\uDEC4","transaction",f.transactionMeta.update.key,`Applying transaction with ${S.length} updates:`,S),an("newValue",f.transactionMeta.update,n),jo(n))GF(n,f.transactionMeta.update.key,f.transactionMeta.update.epoch),$o(T,{key:f.transactionMeta.update.key,type:"transaction"})?.subject.next(f.transactionMeta.update),T.logger.info("\uD83D\uDEEC","transaction",f.transactionMeta.update.key,"Finished applying transaction.");else if(Mo(n))n.transactionMeta.update.updates.push(f.transactionMeta.update);n.on.transactionApplying.next(null)};function tF(o,T,f){if(!jo(o))return;let{epoch:S,actionContinuities:A}=o.transactionMeta;if(A.set(T,f),!S.has(T))S.set(T,-1)}function zF(o){return{store:o}}function Ro(o,...T){let f,n,S;if(T.length===1)f=T[0];else n=T[0],S=T[1],f=i(o,n,S);if("counterfeit"in f&&"family"in f){n=o.families.get(f.family.key);let A=f.family.subKey,$=o.disposalTraces.buffer.find((F)=>F?.key===A);switch(o.logger.error("\u274C",f.type,f.key,`could not be retrieved because it was not found in the store "${o.config.name}".`,$?`This state was previously disposed:
16
- ${$.trace}`:"No previous disposal trace was found."),n.type){case"atom_family":case"mutable_atom_family":return o.defaults.get(n.key);case"selector_family":case"readonly_selector_family":{if(o.defaults.has(n.key))return o.defaults.get(f.family.key);let F=$o(o,n).default(A);return o.defaults.set(n.key,F),F}}}return PT(o,$o(o,f))}class No{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(o,T)=>`${o}:${T}`;warn;getRelatedKeys(o){return this.relations.get(o)}addRelation(o,T){let f=this.relations.get(o),n=this.relations.get(T);if(f)f.add(T);else f=new Set([T]),this.relations.set(o,f);if(n)n.add(o);else n=new Set([o]),this.relations.set(T,n)}deleteRelation(o,T){let f=this.relations.get(o);if(f){if(f.delete(T),f.size===0)this.relations.delete(o);let n=this.relations.get(T);if(n){if(n.delete(o),n.size===0)this.relations.delete(T)}}}replaceRelationsUnsafely(o,T){this.relations.set(o,new Set(T));for(let f of T){let n=new Set().add(o);this.relations.set(f,n)}}replaceRelationsSafely(o,T){let f=this.relations.get(o),n=this.isAType?.(o)?o:void 0,S=n===void 0?o:void 0;if(f)for(let A of f){n??=A,S??=A;let $=this.relations.get(A);if($){if($.size===1)this.relations.delete(A);else $.delete(o);this.contents.delete(this.makeContentKey(n,S))}}this.relations.set(o,new Set(T));for(let A of T){let $=this.relations.get(A);if($)$.add(o);else $=new Set().add(o),this.relations.set(A,$)}}getContentInternal(o){return this.contents.get(o)}setContent(o,T){this.contents.set(o,T)}deleteContent(o){this.contents.delete(o)}constructor(o,T){if(this.a=o.between[0],this.b=o.between[1],this.cardinality=o.cardinality,!T?.externalStore)this.relations=new Map(o.relations?.map(([f,n])=>[f,new Set(n)])),this.contents=new Map(o.contents);if(this.isAType=T?.isAType??null,this.isBType=T?.isBType??null,this.isContent=T?.isContent??null,T?.makeContentKey)this.makeContentKey=T.makeContentKey;if(T?.externalStore){let f=T.externalStore;if(this.has=(n,S)=>f.has(n,S),this.addRelation=(n,S)=>{f.addRelation(n,S)},this.deleteRelation=(n,S)=>{f.deleteRelation(n,S)},this.replaceRelationsSafely=(n,S)=>{f.replaceRelationsSafely(n,S)},this.replaceRelationsUnsafely=(n,S)=>{f.replaceRelationsUnsafely(n,S)},this.getRelatedKeys=(n)=>f.getRelatedKeys(n),f.getContent)this.getContentInternal=(n)=>{return f.getContent(n)},this.setContent=(n,S)=>{f.setContent(n,S)},this.deleteContent=(n)=>{f.deleteContent(n)};for(let[n,S]of o.relations??[]){let A=this.isAType?.(n)?n:void 0,$=A===void 0?n:void 0;for(let F of S)A??=F,$??=F,this.addRelation(A,$)}for(let[n,S]of o.contents??[])this.setContent(n,S)}if(T?.warn)this.warn=T.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([o,T])=>[o,[...T]]),contents:[...this.contents.entries()]}}set(...o){let T,f,n;switch(o.length){case 1:{let S=o[0];T=S[this.a],f=S[this.b],n=void 0;break}case 2:{let S=o[0];if(typeof S==="string")[T,f]=o;else T=S[this.a],f=S[this.b],n=o[1];break}default:{T=o[0],f=o[1],n=o[2];break}}switch(this.cardinality){case"1:1":{let S=this.getRelatedKey(T);if(S&&S!==f)this.delete(T,S)}case"1:n":{let S=this.getRelatedKey(f);if(S&&S!==T)this.delete(S,f)}break;case"n:n":}if(n){let S=this.makeContentKey(T,f);this.setContent(S,n)}return this.addRelation(T,f),this}delete(o,T){T=typeof T==="string"?T:o[this.b];let f=typeof o==="string"?o:o[this.a];if(f===void 0&&typeof T==="string"){let n=this.getRelatedKeys(T);if(n)for(let S of n)this.delete(S,T)}if(typeof f==="string"&&T===void 0){let n=this.getRelatedKeys(f);if(n)for(let S of n)this.delete(f,S)}if(typeof f==="string"&&typeof T==="string"){this.deleteRelation(f,T);let n=this.makeContentKey(f,T);this.deleteContent(n)}return this}getRelatedKey(o){let T=this.getRelatedKeys(o);if(T){if(T.size>1)this.warn?.(`${T.size} related keys were found for key "${o}": (${[...T].map((n)=>`"${n}"`).join(", ")}). Only one related key was expected.`);let f;for(let n of T){f=n;break}return f}}replaceRelations(o,T,f){let n=!Array.isArray(T),S=n?Object.keys(T):T;if(f?.reckless)this.replaceRelationsUnsafely(o,S);else this.replaceRelationsSafely(o,S);if(n)for(let A of S){let $=this.makeContentKey(o,A),F=T[A];this.setContent($,F)}return this}getContent(o,T){let f=this.makeContentKey(o,T);return this.getContentInternal(f)}getRelationEntries(o){let T=o[this.a],f=o[this.b];if(T!==void 0&&f===void 0){let n=this.getRelatedKeys(T);if(n)return[...n].map((S)=>{return[S,this.getContent(T,S)]})}if(T===void 0&&f!==void 0){let n=this.getRelatedKeys(f);if(n)return[...n].map((S)=>{return[S,this.getContent(S,f)]})}return[]}has(o,T){if(T)return this.getRelatedKeys(o)?.has(T)??!1;return this.relations.has(o)}}class kT extends Map{deleted=new Set;source;constructor(o){super();this.source=o}get(o){if(super.has(o))return super.get(o);if(!this.deleted.has(o)&&this.source.has(o))return this.source.get(o);return}set(o,T){return this.deleted.delete(o),super.set(o,T)}hasOwn(o){return super.has(o)}has(o){return!this.deleted.has(o)&&(super.has(o)||this.source.has(o))}delete(o){return this.deleted.add(o),super.delete(o)}}var QF=(o,T,f,n)=>{let S=C(o),A={parent:S,child:null,on:S.on,loggers:S.loggers,logger:S.logger,config:S.config,atoms:new kT(S.atoms),atomsThatAreDefault:new Set(S.atomsThatAreDefault),families:new kT(S.families),joins:new kT(S.joins),operation:{open:!1},readonlySelectors:new kT(S.readonlySelectors),timelines:new kT(S.timelines),timelineTopics:new No(S.timelineTopics.toJSON()),trackers:new Map,transactions:new kT(S.transactions),selectorAtoms:new No(S.selectorAtoms.toJSON()),selectorGraph:new No(S.selectorGraph.toJSON(),{makeContentKey:(...R)=>R.sort().join(":")}),selectors:new kT(S.selectors),valueMap:new kT(S.valueMap),defaults:S.defaults,disposalTraces:o.disposalTraces.copy(),molecules:new kT(S.molecules),moleculeGraph:new No(S.moleculeGraph.toJSON(),{makeContentKey:S.moleculeGraph.makeContentKey}),moleculeData:new No(S.moleculeData.toJSON(),{makeContentKey:S.moleculeData.makeContentKey}),moleculeJoins:new No(S.moleculeJoins.toJSON(),{makeContentKey:S.moleculeJoins.makeContentKey}),miscResources:new kT(S.miscResources)},$=DF(o,T),F={phase:"building",update:{type:"transaction_update",key:T,id:n,epoch:$===void 0?Number.NaN:$+1,updates:[],params:f,output:void 0},toolkit:{get:(...R)=>Ro(J,...R),set:(...R)=>{Uo(J,...R)},run:(R,M=cn())=>tf(J,R,M),find:(R,M)=>i(J,R,M),json:(R)=>Io(J,R),dispose:(...R)=>{Af(J,...R)},env:()=>zF(J)}},J=Object.assign(A,{transactionMeta:F});return S.child=J,o.logger.info("\uD83D\uDEEB","transaction",T,"Building transaction with params:",f),J};function JA(o,T){let f={key:T.key,type:"transaction",run:(A,$)=>{let F=QF(o,T.key,A,$);try{let J=C(o),{toolkit:R}=F.transactionMeta,M=T.do(R,...A);return YF(M,J),M}catch(J){throw fF(n),o.logger.warn("\uD83D\uDCA5","transaction",T.key,"caught:",J),J}},install:(A)=>JA(A,T),subject:new oo},n=C(o);n.transactions.set(f.key,f);let S=nT(f);return o.on.transactionCreation.next(S),S}function DF(o,T){let f=jo(o),n=f?o.transactionMeta.actionContinuities.getRelatedKey(T):void 0;return f&&n!==void 0?o.transactionMeta.epoch.get(n):void 0}function Jn(o){return JA(no.STORE,o)}class UF{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new No({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new No({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...o)=>o.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new No({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new No({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new Pn(100);molecules=new Map;moleculeJoins=new No({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...o)=>o.sort().join(":")});moleculeGraph=new No({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...o)=>o.sort().join(":")});moleculeData=new No({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...o)=>o.sort().join(":")});miscResources=new Map;on={atomCreation:new oo,atomDisposal:new oo,selectorCreation:new oo,selectorDisposal:new oo,timelineCreation:new oo,transactionCreation:new oo,transactionApplying:new oA(null),operationClose:new oo,moleculeCreation:new oo,moleculeDisposal:new oo};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new nA("warn",(o,T,f)=>!f.includes("\uD83D\uDD0D"))];logger={error:(...o)=>{for(let T of this.loggers)T.error(...o)},info:(...o)=>{for(let T of this.loggers)T.info(...o)},warn:(...o)=>{for(let T of this.loggers)T.warn(...o)}};constructor(o,T=null){if(this.config={...T?.config,...o},T!==null){if(this.valueMap=new Map(T?.valueMap),this.operation={...T?.operation},jo(T))this.transactionMeta={epoch:new Map(T?.transactionMeta.epoch),actionContinuities:new No(T?.transactionMeta.actionContinuities.toJSON())};for(let[,n]of T.families){if(n.internalRoles?.includes("mutable")||n.internalRoles?.includes("join"))continue;n.install(this)}let f=new Set;for(let[,n]of T.atoms){if(f.has(n.key))continue;if(n.install(this),n.type==="mutable_atom"){let S=Io(T,n),A=bT(n);f.add(S.key),f.add(A.key)}}for(let[,n]of T.readonlySelectors)n.install(this);for(let[,n]of T.selectors){if(f.has(n.key))continue;n.install(this)}for(let[,n]of T.transactions)n.install(this);for(let[,n]of T.timelines)n.install(this)}}}var no={get STORE(){if(!globalThis.ATOM_IO_IMPLICIT_STORE)globalThis.ATOM_IO_IMPLICIT_STORE=new UF({name:"IMPLICIT_STORE",lifespan:"ephemeral"});return globalThis.ATOM_IO_IMPLICIT_STORE}};function $o(o,T){let f,n=o;while(n!==null){switch(T.type){case"atom":case"mutable_atom":f=n.atoms.get(T.key);break;case"selector":f=n.selectors.get(T.key);break;case"readonly_selector":f=n.readonlySelectors.get(T.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":f=n.families.get(T.key);break;case"timeline":f=n.timelines.get(T.key);break;case"transaction":f=n.transactions.get(T.key);break}if(f)return f;n=n.child}throw new Sf(T,o)}function VF(o,T,f){let n=o.families.get(T.key);if(n===void 0)throw new Sf(T,o);let S=n(f),A=C(o);if(S.family){if(jo(A))switch(S.type){case"atom":case"mutable_atom":o.on.atomCreation.next(S);break;case"selector":case"readonly_selector":o.on.selectorCreation.next(S);break}else if(Mo(A)&&A.on.transactionApplying.state===null)A.transactionMeta.update.updates.push({type:"state_creation",token:S})}return S}function BF(o,T,f){let n=fo(f),S=`${T.key}(${n})`,A=C(o),$;switch(T.type){case"atom_family":case"mutable_atom_family":$=A.atoms.get(S);break;case"selector_family":$=A.selectors.get(S);break;case"readonly_selector_family":$=A.readonlySelectors.get(S);break}if($)return nT($);return $}function i(o,T,f){let n=BF(o,T,f);if(n)return n;let S=fo(f),A=o.molecules.get(S);if(!A&&o.config.lifespan==="immortal"){let $=d$(T,f);return o.logger.error("\u274C",$.type,$.key,`was not found in store "${o.config.name}"; returned a counterfeit token.`),$}if(n=VF(o,T,f),A)C(o).moleculeData.set(S,T.key);return n}function Af(o,...T){let f;if(T.length===1)f=T[0];else{let n=T[0],S=T[1];f=i(o,n,S)}try{$o(o,f)}catch(n){o.logger.error("\u274C",f.type,f.key,`could not be disposed because it was not found in the store "${o.config.name}".`);return}switch(f.type){case"atom":case"mutable_atom":RA(o,f);break;case"selector":case"readonly_selector":LF(o,f);break}}var oS=(o,T)=>C(o).atoms.has(T),mM=(o,T)=>C(o).selectors.has(T),IM=(o,T)=>C(o).readonlySelectors.has(T),CF=(o,T)=>oS(o,T)||mM(o,T)||IM(o,T);var TS=(o,T)=>{return C(T).selectorGraph.getRelationEntries({downstreamSelectorKey:o}).filter(([n,{source:S}])=>S!==o).map(([n,{source:S}])=>S).filter((n)=>CF(T,n))};var MA=(o,T,f)=>{let n=[],S=TS(o,f);while(S.length>0){let A=S.shift();if(T.has(A))continue;if(T.add(A),!oS(f,A))S.push(...TS(A,f));else if(!n.includes(A))n.push(A)}return n},mF=(o,T)=>{let f=o.key,n=TS(f,T),S=new Set;return n.flatMap((A)=>oS(T,A)?A:MA(A,S,T))};var IF=(o,T,f,n)=>{let S=C(n);if(T.type==="atom"||T.type==="mutable_atom")S.selectorAtoms.set({selectorKey:o,atomKey:T.key}),n.logger.info("\uD83D\uDD0D","selector",o,`discovers root atom "${T.key}"`);else{let A=MA(T.key,f,n);n.logger.info("\uD83D\uDD0D","selector",o,`discovers root atoms: [ ${A.map(($)=>`"${$}"`).join(", ")} ]`);for(let $ of A)S.selectorAtoms=S.selectorAtoms.set({selectorKey:o,atomKey:$})}f.add(T.key)};var fS=(o,T,f)=>({get:(...n)=>{let S=C(f),A;if(n.length===2){let[J,R]=n;A=i(f,J,R)}else[A]=n;let $=$o(f,A),F=PT(f,$);return f.logger.info("\uD83D\uDD0C","selector",o,`registers dependency ( "${A.key}" =`,F,")"),S.selectorGraph.set({upstreamSelectorKey:A.key,downstreamSelectorKey:o},{source:A.key}),IF(o,A,T,f),F},set:(...n)=>{let S,A;if(n.length===2)S=n[0],A=n[1];else{let J=n[0],R=n[1];A=n[2],S=i(f,J,R)}let $=C(f),F=$o($,S);en($,F,A)},find:(n,S)=>i(f,n,S),json:(n)=>Io(f,n)});var nn=(o,T,f)=>{let n=C(o),S=new oo,A=new Set,{get:$,find:F,json:J}=fS(T.key,A,n),R=()=>{let X=T.get({get:$,find:F,json:J});return OT(C(o),T.key,X,S),A.clear(),X},M={...T,subject:S,install:(X)=>nn(X,T,f),get:R,type:"readonly_selector",...f&&{family:f}};n.readonlySelectors.set(T.key,M);let _=R();o.logger.info("\u2728",M.type,M.key,"=",_);let w={key:T.key,type:"readonly_selector"};if(f)w.family=f;return w};var Rn=(o,T,f)=>{let n=C(o),S=new oo,A=new Set,$=fS(T.key,A,n),{find:F,get:J,json:R}=$,M={find:F,get:J,json:R},_=(L=T.get,h=C(o))=>{let q=L(M);return OT(h,T.key,q,S),A.clear(),q},X={...T,subject:S,install:(L)=>Rn(L,T,f),get:_,set:(L)=>{let h=C(o),q=_(T.get,h),P=un(L)(q);if(o.logger.info("\uD83D\uDCDD","selector",T.key,"set (",q,"->",P,")"),OT(h,T.key,P,S),zf(h,T.key),jo(h))S.next({newValue:P,oldValue:q});T.set($,P)},type:"selector",...f&&{family:f}};n.selectors.set(T.key,X);let D=_();o.logger.info("\u2728",X.type,X.key,"=",D);let K={key:T.key,type:"selector"};if(f)K.family=f;return K};function jT(o,T){if("set"in T){let S=Rn(o,T,void 0);return o.on.selectorCreation.next(S),S}let n=nn(o,T,void 0);return o.on.selectorCreation.next(n),n}function LF(o,T){let f=C(o),{key:n}=T,S=$o(f,T);if(!S.family)o.logger.error("\u274C","selector",n,"Standalone selectors cannot be disposed.");else{if(f.molecules.get(S.family.subKey))f.moleculeData.delete(S.family.subKey,S.family.key);let $;switch(T.type){case"selector":f.selectors.delete(n),$={key:S.family.key,type:"selector_family"},$o(o,$).subject.next({type:"state_disposal",subType:"selector",token:T});break;case"readonly_selector":f.readonlySelectors.delete(n),$={key:S.family.key,type:"readonly_selector_family"},$o(o,$).subject.next({type:"state_disposal",subType:"selector",token:T});break}if(f.valueMap.delete(n),f.selectorAtoms.delete(n),f.selectorGraph.delete(n),o.logger.info("\uD83D\uDD25",T.type,n,"deleted"),Mo(f)&&f.transactionMeta.phase==="building")f.transactionMeta.update.updates.push({type:"state_disposal",subType:"selector",token:T});else o.on.selectorDisposal.next(T)}}function Sn(o,T,f){let n={key:T.key,type:"selector_family"},S=o.families.get(T.key);if(S)o.logger.error("\u2757","selector_family",T.key,`Overwriting an existing ${VT(S)} "${S.key}" in store "${o.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let A=new oo,F=Object.assign((J)=>{let R=fo(J),M={key:T.key,subKey:R},_=`${T.key}(${R})`,w=C(o),X=Rn(w,{key:_,get:T.get(J),set:T.set(J)},M);return A.next({type:"state_creation",token:X}),X},n,{internalRoles:f,subject:A,install:(J)=>Sn(J,T),default:(J)=>{return T.get(J)({get:(...M)=>Ro(o,...M),find:(M,_)=>i(o,M,_),json:(M)=>Io(o,M)})}});return o.families.set(T.key,F),n}function jF(o,T,f){return Sn(o,{key:`${T.key}:JSON`,get:(S)=>({get:A})=>{let $=A(T,S);return f.toJson($)},set:(S)=>({set:A},$)=>{A(T,S,f.fromJson($))}},["mutable","json"])}var vo=(o)=>JSON.parse(o),fo=(o)=>JSON.stringify(o),S4=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var NF=(o,T)=>{let f=C(o);if(f.operation.open)return f.operation.prev.get(T.key);return f.valueMap.get(T.key)};var kA=(o,T)=>{let f=C(o);return mF(T,o).map((S)=>{let A=f.atoms.get(S);if(A===void 0)throw new Error(`Atom "${S}", a dependency of selector "${T.key}", not found in store "${o.config.name}".`);return A.subject.subscribe(`${T.type}:${T.key}`,($)=>{o.logger.info("\uD83D\uDCE2",T.type,T.key,"root",S,"went",$.oldValue,"->",$.newValue);let F=NF(f,T),J=PT(f,T);o.logger.info("\u2728",T.type,T.key,"went",F,"->",J),T.subject.next({newValue:J,oldValue:F})})})};function lo(o,T,f,n){function S(_){if(o.operation.open){let w=o.on.operationClose.subscribe(`state subscription ${f}`,()=>{w(),n(_)})}else n(_)}let A=$o(o,T);o.logger.info("\uD83D\uDC40",A.type,A.key,`Adding subscription "${f}"`);let $=A.type==="selector"||A.type==="readonly_selector",F=null,J=S;if($)F=kA(o,A),J=(_)=>{if(F)F.length=0,F.push(...kA(o,A));S(_)};let R=A.subject.subscribe(f,J);return()=>{if(o.logger.info("\uD83D\uDE48",A.type,A.key,`Removing subscription "${f}"`),R(),F)for(let _ of F)_()}}var WA=(o,T,f,n)=>{let S=$o(o,T);o.logger.info("\uD83D\uDC40","timeline",T.key,`Adding subscription "${f}"`);let A=S.subject.subscribe(f,n);return()=>{o.logger.info("\uD83D\uDE48","timeline",T.key,`Removing subscription "${f}" from timeline`),A()}};var OA=(o,T,f,n)=>{let S=$o(o,T);o.logger.info("\uD83D\uDC40","transaction",T.key,`Adding subscription "${f}"`);let A=S.subject.subscribe(f,n);return()=>{o.logger.info("\uD83D\uDE48","transaction",T.key,`Removing subscription "${f}"`),A()}};class $f{Update;initializeState(o,T){let f=`*${o.key}`;T.atoms.delete(f),T.valueMap.delete(f);let n=o.family?{key:`*${o.family.key}`,subKey:o.family.subKey}:void 0,S=FT(T,{key:f,default:null},n);if(T.parent?.valueMap.has(f)){let A=T.parent.valueMap.get(f);T.valueMap.set(f,A)}return S}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(o,T,f){let n=`tracker:${f.config.name}:${Mo(f)?f.transactionMeta.update.key:"main"}:${o.key}`,S=Ro(f,o);this.unsubscribeFromInnerValue=S.subscribe(n,(A)=>{Uo(f,T,A)}),this.unsubscribeFromState=lo(f,o,n,(A)=>{if(A.newValue!==A.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=A.newValue.subscribe(n,($)=>{Uo(f,T,$)})})}updateCore(o,T,f){let n=`tracker:${f.config.name}:${Mo(f)?f.transactionMeta.update.key:"main"}:${o.key}`;lo(f,T,n,({newValue:S,oldValue:A})=>{let $=f.timelineTopics.getRelatedKey(T.key);if($){if(f.timelines.get($)?.timeTraveling){let R=WA(f,{key:$,type:"timeline"},n,(M)=>{R(),Uo(f,o,(_)=>{if(M==="redo"&&S)_.do(S);else if(M==="undo"&&A)_.undo(A);return _})});return}}let F=f.on.operationClose.subscribe(n,()=>{F();let J=Ro(f,o),R=S===null?-1:J.getUpdateNumber(S),M=R-J.cacheUpdateNumber;if(S&&M===1)Uo(f,o,(_)=>(_.do(S),_));else f.logger.info("\u274C","mutable_atom",o.key,`could not be updated. Expected update number ${J.cacheUpdateNumber+1}, but got ${R}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(o,T){this.mutableState=o;let f=C(T);this.latestUpdateState=this.initializeState(o,f),this.observeCore(o,this.latestUpdateState,f),this.updateCore(o,this.latestUpdateState,f),f.trackers.set(o.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),f.trackers.delete(o.key)}}}function Mn(o,T,f){o.logger.info("\uD83D\uDD28","atom",T.key,`creating in store "${o.config.name}"`);let n=C(o),S=n.atoms.get(T.key);if(S&&S.type==="mutable_atom")return o.logger.error("\u274C","atom",T.key,"Tried to create atom, but it already exists in the store."),nT(S);let A=new oo,$={...T,type:"mutable_atom",install:(R)=>{return R.logger.info("\uD83D\uDEE0\uFE0F","atom",T.key,`installing in store "${R.config.name}"`),Mn(R,T,f)},subject:A};if(f)$.family=f;let F=T.default();n.atoms.set($.key,$),nS(o,T.key),OT(n,T.key,F,A);let J=nT($);if(T.effects){let R=0,M=[];for(let _ of T.effects){let w=_({setSelf:(X)=>{Uo(o,J,X)},onSet:(X)=>lo(o,J,`effect[${R}]`,X)});if(w)M.push(w);++R}$.cleanup=()=>{for(let _ of M)_()}}if(new $f(J,o),!f)i$(J,T,o);return J}class _A{trackers=new Map;Update;latestUpdateAtoms;mutableAtoms;constructor(o,T){let f=NT(T,{key:`*${o.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=$o(T,f),this.mutableAtoms=o,this.mutableAtoms.subject.subscribe(`store=${T.config.name}::tracker-atom-family`,(n)=>{let{type:S,token:A}=n;if(A.family){let $=vo(A.family.subKey);switch(S){case"state_creation":this.trackers.set($,new $f(A,T));break;case"state_disposal":{let F=this.trackers.get($);if(F)F[Symbol.dispose](),this.trackers.delete($)}break}}})}}function fn(o,T,f){let n={key:T.key,type:"mutable_atom_family"},S=o.families.get(T.key);if(S)o.logger.error("\u2757","mutable_atom_family",T.key,`Overwriting an existing ${VT(S)} "${S.key}" in store "${o.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let A=new oo,F=Object.assign((J)=>{let R=fo(J),M={key:T.key,subKey:R},_=`${T.key}(${R})`,w=C(o),X={key:_,default:()=>T.default(J),toJson:T.toJson,fromJson:T.fromJson,mutable:!0};if(T.effects)X.effects=T.effects(J);let D=Mn(w,X,M);return A.next({type:"state_creation",token:D}),D},n,{subject:A,install:(J)=>fn(J,T),toJson:T.toJson,fromJson:T.fromJson,internalRoles:f});return o.families.set(T.key,F),jF(o,F,T),new _A(F,o),n}var wA=(o,T)=>{let f=C(T),n=`${o.key}:JSON`;return f.families.get(n)};var Io=(o,T)=>{if(T.family){let n=C(o),A={key:`${T.family.key}:JSON`,type:"selector_family"},$=$o(n,A),F=JSON.parse(T.family.subKey);return i(o,$,F)}return{type:"selector",key:`${T.key}:JSON`}};var bT=(o)=>{let f={type:"atom",key:`*${o.key}`};if(o.family)f.family={key:`*${o.family.key}`,subKey:o.family.subKey};return f};function MF(o){return typeof o==="object"&&o!==null&&"do"in o&&"undo"in o&&"subscribe"in o}function Fn(o,T,f){let n=f.valueMap.get(T.key),S=o.valueMap.get(T.key);if(n===S){if(n===void 0)return typeof T.default==="function"?T.default():T.default;f.logger.info("\uD83D\uDCC3","atom",T.key,"copying");let A=T.toJson(n),$=T.fromJson(A);return o.valueMap.set(T.key,$),new $f(T,f),$}return S}function OT(o,T,f,n){let S=o.valueMap.get(T);if(S instanceof Tn)S.use(f);if(f instanceof Promise){let A=new Tn(f);return o.valueMap.set(T,A),A.then(($)=>{OT(o,T,$,n),n.next({newValue:$,oldValue:A})}).catch(($)=>{o.logger.error("\uD83D\uDCA5","state",T,"rejected:",$)}),A}return o.valueMap.set(T,f),f}var nF=(o,T)=>{let f=T.valueMap.get(o.key);if(o.type==="mutable_atom"&&Mo(T)){let{parent:n}=T;f=Fn(T,o,n)}return f},JF=(o,T)=>{let f=T.valueMap.get(o);if(f instanceof Tn){let n=f,S=T.selectors.get(o)??T.readonlySelectors.get(o);if(S)n.use(S.get());return}if(T.operation.open)T.operation.prev.set(o,f);T.valueMap.delete(o),T.logger.info("\uD83D\uDDD1","state",o,"evicted")};var OF=(o,T)=>{return C(o).atomsThatAreDefault.has(T)},nS=(o,T)=>{let f=C(o);f.atomsThatAreDefault=new Set(f.atomsThatAreDefault).add(T)},kF=(o,T)=>{let f=C(o);f.atomsThatAreDefault=new Set(C(o).atomsThatAreDefault),f.atomsThatAreDefault.delete(T)};function FT(o,T,f){o.logger.info("\uD83D\uDD28","atom",T.key,`creating in store "${o.config.name}"`);let n=C(o),S=n.atoms.get(T.key);if(S&&S.type==="atom")return o.logger.error("\u274C","atom",T.key,"Tried to create atom, but it already exists in the store."),nT(S);let A=new oo,$={...T,type:"atom",install:(R)=>{return R.logger.info("\uD83D\uDEE0\uFE0F","atom",T.key,`installing in store "${R.config.name}"`),FT(R,T,f)},subject:A};if(f)$.family=f;let F=T.default;if(T.default instanceof Function)F=T.default();n.atoms.set($.key,$),nS(o,T.key),OT(n,T.key,F,A);let J=nT($);if(T.effects){let R=0,M=[];for(let _ of T.effects){let w=_({setSelf:(X)=>{Uo(o,J,X)},onSet:(X)=>lo(o,J,`effect[${R}]`,X)});if(w)M.push(w);++R}$.cleanup=()=>{for(let _ of M)_()}}return J}function l$(o,T){if("mutable"in T){let S=Mn(o,T,void 0);return o.on.atomCreation.next(S),S}let n=FT(o,T,void 0);return o.on.atomCreation.next(n),n}function RA(o,T){let f=C(o),{key:n,family:S}=T,A=$o(f,T);if(!S)o.logger.error("\u274C","atom",n,"Standalone atoms cannot be disposed.");else{A.cleanup?.();let $=o.valueMap.get(A.key),F=$o(o,{key:S.key,type:"atom_family"}),J={type:"state_disposal",subType:"atom",token:T,value:$};F.subject.next(J);let R=Mo(f);if(f.atoms.delete(n),f.valueMap.delete(n),f.selectorAtoms.delete(n),f.atomsThatAreDefault.delete(n),o.timelineTopics.delete(n),T.type==="mutable_atom"){let M=bT(T);RA(o,M),o.trackers.delete(n)}if(o.logger.info("\uD83D\uDD25","atom",n,"deleted"),R&&f.transactionMeta.phase==="building"){let M=f.transactionMeta.update.updates.at(-1);if(!(M?.type==="molecule_disposal"&&M.values.some(([X])=>X===A.family?.key)))f.transactionMeta.update.updates.push(J)}else o.on.atomDisposal.next(T)}}class ho extends Set{mode="record";subject=new oo;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(o,T=0){super(o);if(o instanceof ho)this.parent=o,this.cacheUpdateNumber=o.cacheUpdateNumber;if(T)this.cacheLimit=T,this.cache=new Array(T),this.subscribe("auto cache",(f)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=f})}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(o){let T=new ho(o.members,o.cacheLimit);return T.cache=o.cache,T.cacheIdx=o.cacheIdx,T.cacheUpdateNumber=o.cacheUpdateNumber,T}add(o){let T=super.add(o);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${fo(o)}`);return T}clear(){let o=this.mode==="record"?[...this]:null;if(super.clear(),o)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(o)}`)}delete(o){let T=super.delete(o);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${fo(o)}`);return T}parent;child=null;transactionUpdates=null;transaction(o){this.mode="transaction",this.transactionUpdates=[],this.child=new ho(this);let T=this.child._subscribe("transaction",(f)=>{this.transactionUpdates?.push(f)});try{if(o(this.child)){for(let n of this.transactionUpdates)this.doStep(n);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(f){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",f),f}finally{T(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(o,T){return this.subject.subscribe(o,T)}subscribe(o,T){return this.subject.subscribe(o,(f)=>{T(`${this.cacheUpdateNumber}=${f}`)})}emit(o){this.subject.next(o)}doStep(o){let T=o.indexOf(":"),f=o.substring(0,T),n=o.substring(T+1);switch(f){case"add":this.add(JSON.parse(n));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(n));break;case"tx":for(let S of n.split(";"))this.doStep(S)}}getUpdateNumber(o){let T=o.indexOf("=");return Number(o.substring(0,T))}do(o){let T=o.indexOf("="),f=Number(o.substring(0,T)),n=f-this.cacheUpdateNumber;if(n>0){if(n===1){this.mode="playback";let A=o.substring(T+1);return this.doStep(A),this.mode="record",this.cacheUpdateNumber=f,null}return this.cacheUpdateNumber+1}if(Math.abs(n)<this.cacheLimit){let A=this.cacheIdx+n;if(this.cache[A]===o)return null;this.mode="playback";let F=!1;while(!F){this.cacheIdx%=this.cacheLimit;let R=this.cache[this.cacheIdx];if(this.cacheIdx--,!R)return"OUT_OF_RANGE";this.undo(R),F=this.cacheIdx===A-1}let J=o.substring(T+1);return this.doStep(J),this.mode="record",this.cacheUpdateNumber=f,null}return"OUT_OF_RANGE"}undoStep(o){let T=o.indexOf(":"),f=o.substring(0,T),n=o.substring(T+1);switch(f){case"add":this.delete(JSON.parse(n));break;case"del":this.add(JSON.parse(n));break;case"clear":{let S=JSON.parse(n);for(let A of S)this.add(A);break}case"tx":{let S=n.split(";");for(let A=S.length-1;A>=0;A--)this.undoStep(S[A])}}}undo(o){let T=o.indexOf("=");if(Number(o.substring(0,T))===this.cacheUpdateNumber){this.mode="playback";let n=o.substring(T+1);return this.undoStep(n),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}class An{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(o,T){let f=this.toolkit;this.toolkit=o,T(this),this.toolkit=f}store;realm;[Symbol.dispose](){}constructor(o,T,f=no.STORE){this.store=f,this.realm=new SA(f),this.options=o,this.defaultContent=T,this.store.miscResources.set(`join:${o.key}`,this),this.realm.allocate("root",o.key),this.toolkit={get:(...G)=>Ro(f,...G),set:(...G)=>{Uo(f,...G)},find:(...G)=>i(f,...G),json:(G)=>Io(f,G)};let n=o.between[0],S=o.between[1],A=fn(f,{key:`${o.key}/relatedKeys`,default:()=>new ho,mutable:!0,fromJson:(G)=>ho.fromJSON(G),toJson:(G)=>G.toJSON()},["join","relations"]);this.core={relatedKeysAtoms:A};let $=({get:G},z)=>G(A,z),F=({set:G},z,U)=>{if(!this.store.molecules.has(fo(z)))this.realm.allocate(o.key,z);G(A,z,(Q)=>Q.add(U)),G(A,U,(Q)=>Q.add(z))},J=({set:G},z,U)=>{G(A,z,(Q)=>{return Q.delete(U),Q}),G(A,U,(Q)=>{return Q.delete(z),Q})},R=(G,z,U)=>{let{find:Q,get:v,set:l}=G,E=Q(A,z),s=v(E);for(let r of s){if(U.includes(r))continue;l(A,r,(ko)=>{return ko.delete(z),ko})}l(E,(r)=>{return r.transaction((a)=>{a.clear();for(let ko of U){let Lo=$(G,ko),fT=Lo.has(z);if(this.relations.cardinality==="1:n"){let IT=[];for(let Y of Lo){if(Y===z)continue;let p=$(G,Y);if(p.delete(ko),p.size===0)IT.push(Y)}if(!fT&&Lo.size>0)Lo.clear();for(let Y of IT){let p=[ko,Y].sort(),Fo=`"${p[0]}:${p[1]}"`;this.molecules.delete(Fo)}}if(!fT)Lo.add(z);a.add(ko)}return!0}),r})},M=(G,z,U)=>{let{set:Q}=G;Q(A,z,(v)=>{return v.transaction((l)=>{for(let E of U)l.add(E);return!0}),v});for(let v of U)Q(A,v,(l)=>{return l.add(z),l});return!0},_=(G,z,U)=>{let Q=$(G,z);return U?Q.has(U):Q.size>0},w={getRelatedKeys:(G)=>$(this.toolkit,G),addRelation:(G,z)=>{this.store.moleculeJoins.set(G,o.key),this.store.moleculeJoins.set(z,o.key),F(this.toolkit,G,z)},deleteRelation:(G,z)=>{J(this.toolkit,G,z)},replaceRelationsSafely:(G,z)=>{R(this.toolkit,G,z)},replaceRelationsUnsafely:(G,z)=>{M(this.toolkit,G,z)},has:(G,z)=>_(this.toolkit,G,z)},X,D;if(T){D=NT(f,{key:`${o.key}/content`,default:T},["join","content"]);let G=({get:Q},v)=>Q(D,v),z=({set:Q},v,l)=>{Q(D,v,l)};X=Object.assign(w,{getContent:(Q)=>{return G(this.toolkit,Q)},setContent:(Q,v)=>{z(this.toolkit,Q,v)},deleteContent:(Q)=>{this.realm.deallocate(Q)}})}else X=w;let K=new No(o,{externalStore:X,isAType:o.isAType,isBType:o.isBType,makeContentKey:(...G)=>{let[z,U]=G,Q=G.sort(),v=`${Q[0]}:${Q[1]}`,l=f.molecules.get(fo(z)),E=f.molecules.get(fo(U));if(!l)this.realm.allocate(o.key,z);if(!E)this.realm.allocate(o.key,U);return this.realm.allocate(z,v,"all"),this.realm.claim(U,v),this.store.moleculeJoins.set(v,o.key),v}}),L=()=>hT(f,{key:`${o.key}/singleRelatedKey`,get:(G)=>({get:z})=>{let U=z(A,G);for(let Q of U)return Q;return null}},["join","keys"]),h=()=>{return hT(f,{key:`${o.key}/multipleRelatedKeys`,get:(G)=>({get:z})=>{let U=wA(A,f);return z(U,G).members}},["join","keys"])},q=()=>hT(f,{key:`${o.key}/singleRelatedEntry`,get:(G)=>({get:z})=>{let U=z(A,G);for(let Q of U){let v=K.isAType?.(G)?G:void 0,l=v===void 0?G:void 0;v??=Q,l??=Q;let E=K.makeContentKey(v,l),s=z(D,E);return[Q,s]}return null}},["join","entries"]),P=()=>hT(f,{key:`${o.key}/multipleRelatedEntries`,get:(G)=>({get:z})=>{let U=wA(A,f);return z(U,G).members.map((v)=>{let l=K.isAType?.(G)?G:void 0,E=l===void 0?G:void 0;l??=v,E??=v;let s=K.makeContentKey(l,E),r=z(D,s);return[v,r]})}},["join","entries"]);switch(o.cardinality){case"1:1":{let G=L(),z=`${n}KeyOf${Wo(S)}`,U=`${S}KeyOf${Wo(n)}`,Q={[z]:G,[U]:G},v;if(T){let l=q(),E=`${n}EntryOf${Wo(S)}`,s=`${S}EntryOf${Wo(n)}`,r={[E]:l,[s]:l};v=Object.assign(Q,r)}else v=Q;this.relations=K,this.states=v;break}case"1:n":{let G=L(),z=h(),U=`${n}KeyOf${Wo(S)}`,Q=`${S}KeysOf${Wo(n)}`,v={[U]:G,[Q]:z},l;if(T){let E=q(),s=P(),r=`${n}EntryOf${Wo(S)}`,a=`${S}EntriesOf${Wo(n)}`,ko={[r]:E,[a]:s};l=Object.assign(v,ko)}else l=v;this.relations=K,this.states=l;break}case"n:n":{let G=h(),z=`${n}KeysOf${Wo(S)}`,U=`${S}KeysOf${Wo(n)}`,Q={[z]:G,[U]:G},v;if(T){let l=P(),E=`${n}EntriesOf${Wo(S)}`,s=`${S}EntriesOf${Wo(n)}`,r={[E]:l,[s]:l};v=Object.assign(Q,r)}else v=Q;this.relations=K,this.states=v}}}}function Qf(o,T){let f=T.joins.get(o.key);if(f===void 0){let S=no.STORE.joins.get(o.key);if(S===void 0)throw new Error(`Join "${o.key}" not found in store "${T.config.name}"`);f=new An(S.options,S.defaultContent,T),T.joins.set(o.key,f)}return f}function $n(o,T,f){let n=Qf(o,f),S=C(f);if(Mo(S)){let{toolkit:A}=S.transactionMeta;n.transact(A,({relations:$})=>{T($)})}else T(n.relations)}function dn(o,T,f){let n=Qf(o,f),S;switch(o.cardinality){case"1:1":{let A=`${o.a}KeyOf${Wo(o.b)}`,$=`${o.b}KeyOf${Wo(o.a)}`;S={get[A](){let J=n.states[A];return i(f,J,T)},get[$](){let J=n.states[$];return i(f,J,T)}};let F=`${o.a}EntryOf${Wo(o.b)}`;if(F in n.states){let J=`${o.b}EntryOf${Wo(o.a)}`;Object.assign(S,{get[F](){let R=n.states[F];return i(f,R,T)},get[J](){let R=n.states[J];return i(f,R,T)}})}break}case"1:n":{let A=`${o.a}KeyOf${Wo(o.b)}`,$=`${o.b}KeysOf${Wo(o.a)}`;S={get[A](){let J=n.states[A];return i(f,J,T)},get[$](){let J=n.states[$];return i(f,J,T)}};let F=`${o.a}EntryOf${Wo(o.b)}`;if(F in n.states){let J=`${o.b}EntriesOf${Wo(o.a)}`;Object.assign(S,{get[F](){let R=n.states[F];return i(f,R,T)},get[J](){let R=n.states[J];return i(f,R,T)}})}break}case"n:n":{let A=`${o.a}KeysOf${Wo(o.b)}`,$=`${o.b}KeysOf${Wo(o.a)}`;S={get[A](){let J=n.states[A];return i(f,J,T)},get[$](){let J=n.states[$];return i(f,J,T)}};let F=`${o.a}EntriesOf${Wo(o.b)}`;if(F in n.states){let J=`${o.b}EntriesOf${Wo(o.a)}`;Object.assign(S,{get[F](){let R=n.states[F];return i(f,R,T)},get[J](){let R=n.states[J];return i(f,R,T)}})}}}return S}function s$(o,T){return Qf(o,T).core.relatedKeysAtoms}var yA=(o)=>{let T=FT(o,{key:"\uD83D\uDD0D Atom Token Index (Internal)",default:()=>{let f=new Map;for(let[n,S]of o.atoms)if(!n.includes("\uD83D\uDD0D")){let A=nT(S);if(S.family){let $=f.get(S.family.key);if(!$||!("familyMembers"in $))$={key:S.family.key,familyMembers:new Map},f.set(S.family.key,$);$.familyMembers.set(S.family.subKey,A)}else f.set(n,A)}return f},effects:[({setSelf:f})=>{o.on.atomCreation.subscribe("introspection",(n)=>{if(n.key.includes("\uD83D\uDD0D"))return;f((S)=>{if(n.family){let{key:A,subKey:$}=n.family,F=S.get(A);if(F===void 0||!("familyMembers"in F))F={key:A,familyMembers:new Map},S.set(A,F);F.familyMembers.set($,n)}else S.set(n.key,n);return S})}),o.on.atomDisposal.subscribe("introspection",(n)=>{f((S)=>{if(n.family){let{key:A,subKey:$}=n.family,F=S.get(A);if(F&&"familyMembers"in F){if(F.familyMembers.delete($),F.familyMembers.size===0)S.delete(A)}}else S.delete(n.key);return S})})}]},void 0);return jT(o,{key:"\uD83D\uDD0D Atom Token Index",get:({get:f})=>f(T)})};var XA=(o)=>{let T=FT(o,{key:"\uD83D\uDD0D Selector Token Index (Internal)",default:()=>{let f=new Map;for(let n of[o.readonlySelectors,o.selectors])for(let[S,A]of n)if(!S.includes("\uD83D\uDD0D")){let $=nT(A);if(A.family){let F=f.get(A.family.key);if(!F||!("familyMembers"in F))F={key:A.family.key,familyMembers:new Map},f.set(A.family.key,F);F.familyMembers.set(A.family.subKey,$)}else f.set(S,$)}return f},effects:[({setSelf:f})=>{o.on.selectorCreation.subscribe("introspection",(n)=>{if(n.key.includes("\uD83D\uDD0D"))return;f((S)=>{if(n.family){let{key:A,subKey:$}=n.family,F=S.get(A);if(F===void 0||!("familyMembers"in F))F={key:A,familyMembers:new Map},S.set(A,F);F.familyMembers.set($,n)}else S.set(n.key,n);return S})}),o.on.selectorDisposal.subscribe("introspection",(n)=>{f((S)=>{if(n.family){let{key:A,subKey:$}=n.family,F=S.get(A);if(F&&"familyMembers"in F){if(F.familyMembers.delete($),F.familyMembers.size===0)S.delete(A)}}else S.delete(n.key);return S})})}]},void 0);return jT(o,{key:"\uD83D\uDD0D Selector Token Index",get:({get:f})=>f(T)})};class SS{supported;constructor(o){this.supported=o}refine(o){for(let[T,f]of Object.entries(this.supported))try{if(f(o)===!0&&f!==Boolean)return{type:T,data:o}}catch(n){try{if(o instanceof f)return{type:T,data:o}}catch(S){}}return null}}var HA=new SS({number:(o)=>typeof o==="number",string:(o)=>typeof o==="string",boolean:(o)=>typeof o==="boolean",null:(o)=>o===null});function KA(o){if(!o)return!1;return Object.getPrototypeOf(o)===Object.prototype}var EA=new SS({object:KA,array:(o)=>Array.isArray(o)}),jM=new SS({...HA.supported,...EA.supported}),Df=(o)=>{if(o===void 0)return"undefined";let T=jM.refine(o);if(T)return T.type;return Object.getPrototypeOf(o).constructor.name};class hF{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(o=no.STORE){this.store=o,this.atomIndex=yA(this.store),this.selectorIndex=XA(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:T})=>{this.statesCreatedAt.set(T,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:T})=>{this.statesCreatedAt.delete(T)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:T})=>{this.statesCreatedAt.set(T,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:T})=>{this.statesCreatedAt.delete(T)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(o=hF.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let T=TA(this.atomIndex),f=TA(this.selectorIndex),n=[...T.values()].filter((F)=>("familyMembers"in F)),S=[...f.values()].filter((F)=>("familyMembers"in F)),A=performance.now(),$=[];if(o.atomFamilies)for(let F of n){let J=F.familyMembers.values();for(let R of J){let _=this.statesCreatedAt.get(R.key)??this.auditorCreatedAt,w=A-_;$.push([R,w])}}if(o.selectorFamilies)for(let F of S){let J=F.familyMembers.values();for(let R of J){let _=this.statesCreatedAt.get(R.key)??this.auditorCreatedAt,w=A-_;$.push([R,w])}}return $}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var GA=(o,T)=>{let f=(n,S)=>{let $=((J,R)=>{let M=T(J,R);if(M)return M;return null})(n,S);if($?.jobComplete??$?.pathComplete)return $;let F=Array.isArray(S)?S.map((J,R)=>[R,J]):KA(S)?Object.entries(S):[];for(let[J,R]of F){let M=f([...n,J],R);if(M?.jobComplete)return M}return{}};f([],o)};function NM(o,T){return{summary:`${o<T?"+":"-"}${Math.abs(o-T)} (${o} \u2192 ${T})`}}function hM(o,T){return{summary:`${o.length<T.length?"+":"-"}${Math.abs(o.length-T.length)} ("${o}" \u2192 "${T}")`}}function bM(o,T){return{summary:`${o} \u2192 ${T}`}}function bF(o,T,f){let n="",S=[],A=[],$=[];return GA(o,(F,J)=>{let R;for(R of F){let M=T[R];if(M===void 0)A.push([R,JSON.stringify(J)]);else{let _=f(J,M);if(_.summary!=="No Change")$.push([R,_])}}}),GA(T,(F,J)=>{let R;for(R of F)if(o[R]===void 0)S.push([R,JSON.stringify(J)])}),n=`\uFF5E${$.length} \uFF0B${S.length} \uFF0D${A.length}`,{summary:n,added:S,removed:A,changed:$}}function xM(o,T,f){return bF(o,T,f)}class xF{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(o,T,f){this.leafRefinery=o,this.treeRefinery=T,this.leafDiffers={},this.treeDiffers={};for(let n of Object.keys(o.supported)){let S=f[n];this.leafDiffers[n]=S}for(let n of Object.keys(T.supported)){let S=f[n];this.treeDiffers[n]=S}}diff(o,T){if(o===T)return{summary:"No Change"};let f=this.leafRefinery.refine(o)??this.treeRefinery.refine(o),n=this.leafRefinery.refine(T)??this.treeRefinery.refine(T);if(f!==null&&n!==null){if(f.type===n.type){if(f.type in this.leafDiffers)return this.leafDiffers[f.type](f.data,n.data);if(f.type in this.treeDiffers)return this.treeDiffers[f.type](f.data,n.data,(F,J)=>this.diff(F,J))}}let S=Df(o),A=Df(T);if(S===A)return{summary:`${S} \u2192 ${A}`};return{summary:`Type change: ${S} \u2192 ${A}`}}}var oK=new xF(HA,EA,{number:NM,string:hM,boolean:bM,null:()=>({summary:"No Change"}),object:bF,array:xM});class vF extends Map{set(o,T){if(this.has(o))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:o,value:T}),this;return super.set(o,T)}clear(){throw new Error("Cannot clear an InvariantMap")}}class AS{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(o){this.key=o}static existing=new vF;static create(o,T){let f=new AS(o),{type:n,globals:S,actions:A,perspectives:$}=T(f),F={type:n,key:o,globals:S,actions:A,perspectives:$};return AS.existing.set(o,F),F}add(...o){switch(o[0].type){case"atom":case"mutable_atom":this.globals.push(...o);break;case"transaction":this.actions.push(...o);break;case"atom_family":case"mutable_atom_family":{let[f,n]=o;this.perspectives.push({type:"realtime_perspective",resourceAtoms:f,viewAtoms:n})}break}return this}}function RK(o){let{key:T,config:f}=o,n=AS.create(T,f),{actions:S}=n;for(let A of S)tF(no.STORE,T,A.key);return EF(no.STORE,T,-1),n}var kK=Gf({key:"usersInRoomIndex",mutable:!0,default:()=>new ho,toJson:(o)=>o.toJSON(),fromJson:(o)=>ho.fromJSON(o)}),YA=Gf({key:"roomIndex",default:()=>new ho,mutable:!0,toJson:(o)=>o.toJSON(),fromJson:(o)=>ho.fromJSON(o)}),vM={enteredAtEpoch:0},Wn=gn({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(o)=>typeof o==="string",isBType:(o)=>typeof o==="string"},vM),_K=ln({key:"usersInMyRoomView",get:(o)=>({find:T})=>{let f=e$(Wn);return[T(f,o)]}});import{spawn as qM}from"child_process";class Uf{listeners;globalListeners;handleEvent(o,...T){for(let n of this.globalListeners)n(o,...T);let f=this.listeners.get(o);if(f)for(let n of f)n(...T)}id="no_id_retrieved";emit;constructor(o){this.emit=o,this.listeners=new Map,this.globalListeners=new Set}on(o,T){let f=this.listeners.get(o);if(f)f.add(T);else this.listeners.set(o,new Set([T]));return this}onAny(o){return this.globalListeners.add(o),this}off(o,T){let f=this.listeners.get(o);if(f)if(T)f.delete(T);else this.listeners.delete(o);return this}offAny(o){return this.globalListeners.delete(o),this}}class tA extends Uf{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;key;logger;handleLog(o){if(Array.isArray(o)){let[T,...f]=o;switch(T){case"i":this.logger.info(...f);break;case"w":this.logger.warn(...f);break;case"e":this.logger.error(...f);break;default:return}}}constructor(o,T,f){super((n,...S)=>{let A=JSON.stringify([n,...S])+"\x03",$=(F)=>{if(F.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",$)};return this.process.stdin.once("error",$),this.process.stdin.write(A),this});if(this.process=o,this.key=T,this.logger=f??{info:(...n)=>{console.info(this.id,this.key,...n)},warn:(...n)=>{console.warn(this.id,this.key,...n)},error:(...n)=>{console.error(this.id,this.key,...n)}},this.process.stdout.on("data",(n)=>{let S=n.toString();if(S==="ALIVE")return;this.unprocessedEvents.push(...S.split("\x03"));let A=this.unprocessedEvents.shift();this.incompleteData+=A??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let $=vo(this.incompleteData);this.handleEvent(...$);while(this.unprocessedEvents.length>0){let F=this.unprocessedEvents.shift();if(F){if(this.unprocessedEvents.length===0)this.incompleteData=F;$=vo(F),this.handleEvent(...$)}}this.incompleteData=""}catch($){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error($)}}),this.process.stderr.on("data",(n)=>{let S=n.toString();this.unprocessedLogs.push(...S.split("\x03"));let A=this.unprocessedLogs.shift();this.incompleteLog+=A??"";try{let $=vo(this.incompleteLog);this.handleLog($);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)$=vo(this.incompleteLog),this.handleLog($)}catch($){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error($),console.error("\u274C\u274C\u274C\uFE0F")}}),o.pid)this.id=o.pid.toString()}}class qF extends Uf{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(o){super((...T)=>{return this.out.next(T),this});this.id=o,this.in=new oo,this.out=new oo,this.in.subscribe("socket",(T)=>{this.handleEvent(...T)})}dispose(){for(let o of this.disposalFunctions)o()}}class zA extends Uf{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...o){this.process.stderr.write(fo(o.map((T)=>T instanceof ho?`{ ${T.toJSON().members.join(" | ")} }`:T))+"\x03")}logger={info:(...o)=>{this.log("i",...o)},warn:(...o)=>{this.log("w",...o)},error:(...o)=>{this.log("e",...o)}};constructor(){super((o,...T)=>{let f=JSON.stringify([o,...T]);return this.process.stdout.write(f+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(o)=>{let T=o.toString();this.unprocessedEvents.push(...T.split("\x03"));let f=this.unprocessedEvents.shift();this.incompleteData+=f??"";try{let n=vo(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",n),this.handleEvent(...n);while(this.unprocessedEvents.length>0){let S=this.unprocessedEvents.shift();if(S){if(this.unprocessedEvents.length===0)this.incompleteData=S;let A=vo(S);this.handleEvent(...A)}}this.incompleteData=""}catch(n){if(n instanceof Error)this.logger.error("\u2757",n.message,n.cause,n.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(o)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${o}`)}),process.on("end",()=>{this.logger.info("\uD83D\uDD25",this.id,"ended"),process.exit(0)}),process.on("SIGTERM",()=>{this.logger.error("\uD83D\uDD25",this.id,"terminated"),process.exit(0)}),process.on("SIGINT",()=>{this.logger.error("\uD83D\uDD25",this.id,"interrupted"),process.exit(0)}),process.pid)this.id=process.pid?.toString();this.on("user-joins",(o)=>{this.logger.info("\uD83D\uDC64","user",o,"joined");let T=new qF(`user:${o}`);this.relays.set(o,T),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let f of this.relayServices){let n=f(T);if(n)T.disposalFunctions.push(n)}this.on(`user:${o}`,(...f)=>{T.in.next(f)}),T.out.subscribe("socket",(f)=>{this.emit(...f)})}),this.on("user-leaves",(o)=>{let T=this.relays.get(o);if(this.off(`relay:${o}`),T)T.dispose(),this.relays.delete(o)}),process.stdout.write("ALIVE")}relay(o){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(o)}}var QA=Tf({key:"roomArguments",default:["echo",["Hello World!"]]}),rF=ln({key:"room",get:(o)=>async({get:T,find:f})=>{let n=f(QA,o),S=T(n),[A,$]=S,F=await new Promise((J)=>{let R=qM(A,$,{env:process.env}),M=(_)=>{if(_.toString()==="ALIVE")R.stdout.off("data",M),J(R)};R.stdout.on("data",M)});return new tA(F,o)}});var rK=Jn({key:"createRoom",do:({get:o,set:T,find:f},n,S,A)=>{let $=A?[S,A]:[S],F=f(QA,n);T(F,$),T(YA,(M)=>M.add(n));let J=f(rF,n);return o(J)}}),pK=Jn({key:"joinRoom",do:(o,T,f,n)=>{let S={enteredAtEpoch:n};return $n(Wn,(A)=>{A.set({room:T,user:f},S)},o.env().store),S}}),cK=Jn({key:"leaveRoom",do:(o,T,f)=>{$n(Wn,(n)=>{n.delete({room:T,user:f})},o.env().store)}}),ZK=Jn({key:"destroyRoom",do:(o,T)=>{$n(Wn,(f)=>{f.delete({room:T})},o.env().store),o.set(YA,(f)=>(f.delete(T),f))}});function DA(o,T){return T.map((f)=>{switch(f.type){case"transaction_update":{let n=DA(o,f.updates);return{...f,updates:n}}case"atom_update":case"selector_update":case"molecule_creation":case"molecule_disposal":case"molecule_transfer":case"state_creation":case"state_disposal":return f}}).filter((f)=>{switch(f.type){case"atom_update":case"selector_update":return o.includes(f.key);case"state_creation":case"state_disposal":return o.includes(f.token.key);case"molecule_creation":case"transaction_update":case"molecule_disposal":case"molecule_transfer":return!0}})}var gK=Tf({key:"redactor",default:{occlude:(o)=>o}}),Vf=Tf({key:"unacknowledgedUpdates",default:()=>[]});var pF=Tf({key:"sockets",default:null}),eK=Gf({key:"socketsIndex",mutable:!0,default:()=>new ho,toJson:(o)=>o.toJSON(),fromJson:(o)=>ho.fromJSON(o)}),sK=Gf({key:"usersIndex",mutable:!0,default:()=>new ho,toJson:(o)=>o.toJSON(),fromJson:(o)=>ho.fromJSON(o)}),UA=gn({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(o)=>o.startsWith("user::"),isBType:(o)=>o.startsWith("socket::")});function cF(o,T,f,n){let S=T.key;return function A(){let $=[];for(let J of T.globals){let R=J.type==="mutable_atom"?Io(o,J):J,M=Ro(o,R);$.push(R,M)}for(let J of T.perspectives){let{viewAtoms:R,resourceAtoms:M}=J,_=i(o,R,f),w=Ro(o,_);o.logger.info("\uD83D\uDC41","atom",M.key,`${f} can see`,{viewAtoms:R,resourceAtoms:M,userView:w});for(let X of w){let D=X.type==="mutable_atom"?Io(o,X):X,K=Ro(o,D);$.push(D,K)}}let F=jo(o)?o.transactionMeta.epoch.get(S)??null:null;n?.emit(`continuity-init:${S}`,F,$)}}function ZF(o,T,f){let n=T.key;return function S(A){o.logger.info("\uD83D\uDECE\uFE0F","continuity",n,"received",A);let{key:$,id:F}=A,J=`tx-run:${$}:${F}`,R=`${J}:start`,M=`${J}:end`;performance.mark(R);try{tf(o,{type:"transaction",key:$},F)(...A.params)}catch(w){if(w instanceof Error)o.logger.error("\u274C","continuity",n,`failed to run transaction ${$} from ${f} with update ${F}`,w.message)}performance.mark(M);let _=performance.measure(J,R,M);o?.logger.info("\uD83D\uDE80","transaction",$,F,f,_.duration)}}function PF(o,T,f,n){let S=T.key;return function A($){if(o.logger.info("\uD83D\uDC4D","continuity",S,`${f} acknowledged epoch ${$}`),n[0]?.epoch===$)Uo(o,Vf,f,(J)=>{return J.shift(),o.logger.info("\uD83D\uDC4D","continuity",S,`${f} unacknowledged update queue now has`,J.length,"items"),J})}}function iF(o,T,f,n){let S=T.key,A=[];for(let $ of T.actions){let F=OA(o,$,`sync-continuity:${S}:${f}`,(J)=>{try{let R=T.globals.map((w)=>{if(w.type==="atom")return w.key;return bT(w).key}).concat(T.perspectives.flatMap((w)=>{let{viewAtoms:X}=w,D=i(o,X,f);return Ro(o,D).map((L)=>{return L.type==="mutable_atom"?"*"+L.key:L.key})})),M=DA(R,J.updates),_={...J,updates:M};Uo(o,Vf,f,(w)=>{if(_)w.push(_),w.sort((X,D)=>X.epoch-D.epoch),o.logger.info("\uD83D\uDC4D","continuity",S,`${f} unacknowledged update queue now has`,w.length,"items");return w}),n?.emit(`tx-new:${S}`,_)}catch(R){if(R instanceof Error)o.logger.error("\u274C","continuity",S,`${f} failed to send update from transaction ${$.key} to ${f}`,R.message)}});A.push(F)}return A}function gF(o,T,f,n){let S=T.key,A=[];for(let $ of T.perspectives){let{viewAtoms:F}=$,J=i(o,F,f),R=lo(o,J,`sync-continuity:${S}:${f}:perspective:${$.resourceAtoms.key}`,({oldValue:M,newValue:_})=>{let w=M.map((L)=>L.key),X=_.map((L)=>L.key),D=M.filter((L)=>!X.includes(L.key)),K=_.filter((L)=>!w.includes(L.key)).flatMap((L)=>{let h=L.type==="mutable_atom"?Io(o,L):L,q=Ro(o,h);return[h,q]});if(o.logger.info("\uD83D\uDC41","atom",$.resourceAtoms.key,`${f} has a new perspective`,{oldKeys:w,newKeys:X,revealed:K,concealed:D}),K.length>0)n?.emit(`reveal:${S}`,K);if(D.length>0)n?.emit(`conceal:${S}`,D)});A.push(R)}return A}function U5({socket:o,store:T=no.STORE}){return function f(n){let S=o,A=n.key,$=dn(UA,`socket::${S.id}`,T).userKeyOfSocket,F=Ro(T,$);if(!F)return T.logger.error("\u274C","continuity",A,`Tried to create a synchronizer for a socket (${S.id}) that is not connected to a user.`),()=>{};let J=dn(UA,F,T).socketKeyOfUser,R=lo(T,J,`sync-continuity:${A}:${F}`,({newValue:h})=>{if(T.logger.info("\uD83D\uDC4B","continuity",A,`seeing ${F} on new socket ${h}`),h===null){T.logger.warn("\u274C","continuity",A,`User (${F}) is not connected to a socket, waiting for them to reappear.`);return}let q=i(T,pF,h);S=Ro(T,q);for(let G of M)S?.emit(`tx-new:${A}`,G)}),M=Ro(T,Vf,F),_=[],w=gF(T,n,F,S),X=iF(T,n,F,S);_.push(...w,...X);let D=cF(T,n,F,o);S.off(`get:${A}`,D),S.on(`get:${A}`,D);let K=ZF(T,n,F);S.off(`tx-run:${A}`,K),S.on(`tx-run:${A}`,K);let L=PF(T,n,F,M);return S?.on(`ack:${A}`,L),()=>{for(let h of _)h();S?.off(`ack:${A}`,L),S?.off(`get:${A}`,D),S?.off(`tx-run:${A}`,K)}}}var{file:L1,serve:nk}=globalThis.Bun;import{readFileSync as JJ}from"fs";import{resolve as IA}from"path";function rM(o,T){let f={},n=[];for(let S in o){let A=o[S],$=T[S],F=A["~standard"].validate($);if(F instanceof Promise)throw new Error(`Validation must be synchronous, but ${S} returned a Promise.`);if(F.issues){n.push(...F.issues.map((J)=>({...J,path:[S,...J.path??[]]})));continue}f[S]=F.value}if(n.length)return{issues:n};return{value:f}}function dF(o){let T=o.runtimeEnvStrict??o.runtimeEnv??process.env;if(o.emptyStringAsUndefined??!1){for(let[q,P]of Object.entries(T))if(P==="")delete T[q]}if(!!o.skipValidation)return T;let S=typeof o.client==="object"?o.client:{},A=typeof o.server==="object"?o.server:{},$=typeof o.shared==="object"?o.shared:{},F=o.isServer??(typeof window==="undefined"||("Deno"in window)),J=F?{...A,...$,...S}:{...S,...$},R=rM(J,T),M=o.onValidationError??((q)=>{throw console.error("\u274C Invalid environment variables:",q),new Error("Invalid environment variables")}),_=o.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(R.issues)return M(R.issues);let w=(q)=>{if(!o.clientPrefix)return!0;return!q.startsWith(o.clientPrefix)&&!(q in $)},X=(q)=>{return F||!w(q)},D=(q)=>{return q==="__esModule"||q==="$$typeof"},K=(o.extends??[]).reduce((q,P)=>{return Object.assign(q,P)},{}),L=Object.assign(R.value,K);return new Proxy(L,{get(q,P){if(typeof P!=="string")return;if(D(P))return;if(!X(P))return _(P);return Reflect.get(q,P)}})}var Ao;(function(o){o.assertEqual=(S)=>S;function T(S){}o.assertIs=T;function f(S){throw new Error}o.assertNever=f,o.arrayToEnum=(S)=>{let A={};for(let $ of S)A[$]=$;return A},o.getValidEnumValues=(S)=>{let A=o.objectKeys(S).filter((F)=>typeof S[S[F]]!=="number"),$={};for(let F of A)$[F]=S[F];return o.objectValues($)},o.objectValues=(S)=>{return o.objectKeys(S).map(function(A){return S[A]})},o.objectKeys=typeof Object.keys==="function"?(S)=>Object.keys(S):(S)=>{let A=[];for(let $ in S)if(Object.prototype.hasOwnProperty.call(S,$))A.push($);return A},o.find=(S,A)=>{for(let $ of S)if(A($))return $;return},o.isInteger=typeof Number.isInteger==="function"?(S)=>Number.isInteger(S):(S)=>typeof S==="number"&&isFinite(S)&&Math.floor(S)===S;function n(S,A=" | "){return S.map(($)=>typeof $==="string"?`'${$}'`:$).join(A)}o.joinValues=n,o.jsonStringifyReplacer=(S,A)=>{if(typeof A==="bigint")return A.toString();return A}})(Ao||(Ao={}));var BA;(function(o){o.mergeShapes=(T,f)=>{return{...T,...f}}})(BA||(BA={}));var N=Ao.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),vT=(o)=>{switch(typeof o){case"undefined":return N.undefined;case"string":return N.string;case"number":return isNaN(o)?N.nan:N.number;case"boolean":return N.boolean;case"function":return N.function;case"bigint":return N.bigint;case"symbol":return N.symbol;case"object":if(Array.isArray(o))return N.array;if(o===null)return N.null;if(o.then&&typeof o.then==="function"&&o.catch&&typeof o.catch==="function")return N.promise;if(typeof Map!=="undefined"&&o instanceof Map)return N.map;if(typeof Set!=="undefined"&&o instanceof Set)return N.set;if(typeof Date!=="undefined"&&o instanceof Date)return N.date;return N.object;default:return N.unknown}},t=Ao.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),pM=(o)=>{return JSON.stringify(o,null,2).replace(/"([^"]+)":/g,"$1:")};class JT extends Error{get errors(){return this.issues}constructor(o){super();this.issues=[],this.addIssue=(f)=>{this.issues=[...this.issues,f]},this.addIssues=(f=[])=>{this.issues=[...this.issues,...f]};let T=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,T);else this.__proto__=T;this.name="ZodError",this.issues=o}format(o){let T=o||function(S){return S.message},f={_errors:[]},n=(S)=>{for(let A of S.issues)if(A.code==="invalid_union")A.unionErrors.map(n);else if(A.code==="invalid_return_type")n(A.returnTypeError);else if(A.code==="invalid_arguments")n(A.argumentsError);else if(A.path.length===0)f._errors.push(T(A));else{let $=f,F=0;while(F<A.path.length){let J=A.path[F];if(F!==A.path.length-1)$[J]=$[J]||{_errors:[]};else $[J]=$[J]||{_errors:[]},$[J]._errors.push(T(A));$=$[J],F++}}};return n(this),f}static assert(o){if(!(o instanceof JT))throw new Error(`Not a ZodError: ${o}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Ao.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(o=(T)=>T.message){let T={},f=[];for(let n of this.issues)if(n.path.length>0)T[n.path[0]]=T[n.path[0]]||[],T[n.path[0]].push(o(n));else f.push(o(n));return{formErrors:f,fieldErrors:T}}get formErrors(){return this.flatten()}}JT.create=(o)=>{return new JT(o)};var mf=(o,T)=>{let f;switch(o.code){case t.invalid_type:if(o.received===N.undefined)f="Required";else f=`Expected ${o.expected}, received ${o.received}`;break;case t.invalid_literal:f=`Invalid literal value, expected ${JSON.stringify(o.expected,Ao.jsonStringifyReplacer)}`;break;case t.unrecognized_keys:f=`Unrecognized key(s) in object: ${Ao.joinValues(o.keys,", ")}`;break;case t.invalid_union:f="Invalid input";break;case t.invalid_union_discriminator:f=`Invalid discriminator value. Expected ${Ao.joinValues(o.options)}`;break;case t.invalid_enum_value:f=`Invalid enum value. Expected ${Ao.joinValues(o.options)}, received '${o.received}'`;break;case t.invalid_arguments:f="Invalid function arguments";break;case t.invalid_return_type:f="Invalid function return type";break;case t.invalid_date:f="Invalid date";break;case t.invalid_string:if(typeof o.validation==="object")if("includes"in o.validation){if(f=`Invalid input: must include "${o.validation.includes}"`,typeof o.validation.position==="number")f=`${f} at one or more positions greater than or equal to ${o.validation.position}`}else if("startsWith"in o.validation)f=`Invalid input: must start with "${o.validation.startsWith}"`;else if("endsWith"in o.validation)f=`Invalid input: must end with "${o.validation.endsWith}"`;else Ao.assertNever(o.validation);else if(o.validation!=="regex")f=`Invalid ${o.validation}`;else f="Invalid";break;case t.too_small:if(o.type==="array")f=`Array must contain ${o.exact?"exactly":o.inclusive?"at least":"more than"} ${o.minimum} element(s)`;else if(o.type==="string")f=`String must contain ${o.exact?"exactly":o.inclusive?"at least":"over"} ${o.minimum} character(s)`;else if(o.type==="number")f=`Number must be ${o.exact?"exactly equal to ":o.inclusive?"greater than or equal to ":"greater than "}${o.minimum}`;else if(o.type==="date")f=`Date must be ${o.exact?"exactly equal to ":o.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(o.minimum))}`;else f="Invalid input";break;case t.too_big:if(o.type==="array")f=`Array must contain ${o.exact?"exactly":o.inclusive?"at most":"less than"} ${o.maximum} element(s)`;else if(o.type==="string")f=`String must contain ${o.exact?"exactly":o.inclusive?"at most":"under"} ${o.maximum} character(s)`;else if(o.type==="number")f=`Number must be ${o.exact?"exactly":o.inclusive?"less than or equal to":"less than"} ${o.maximum}`;else if(o.type==="bigint")f=`BigInt must be ${o.exact?"exactly":o.inclusive?"less than or equal to":"less than"} ${o.maximum}`;else if(o.type==="date")f=`Date must be ${o.exact?"exactly":o.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(o.maximum))}`;else f="Invalid input";break;case t.custom:f="Invalid input";break;case t.invalid_intersection_types:f="Intersection results could not be merged";break;case t.not_multiple_of:f=`Number must be a multiple of ${o.multipleOf}`;break;case t.not_finite:f="Number must be finite";break;default:f=T.defaultError,Ao.assertNever(o)}return{message:f}},sF=mf;function cM(o){sF=o}function $S(){return sF}var FS=(o)=>{let{data:T,path:f,errorMaps:n,issueData:S}=o,A=[...f,...S.path||[]],$={...S,path:A};if(S.message!==void 0)return{...S,path:A,message:S.message};let F="",J=n.filter((R)=>!!R).slice().reverse();for(let R of J)F=R($,{data:T,defaultError:F}).message;return{...S,path:A,message:F}},ZM=[];function m(o,T){let f=$S(),n=FS({issueData:T,data:o.data,path:o.path,errorMaps:[o.common.contextualErrorMap,o.schemaErrorMap,f,f===mf?void 0:mf].filter((S)=>!!S)});o.common.issues.push(n)}class uo{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(o,T){let f=[];for(let n of T){if(n.status==="aborted")return d;if(n.status==="dirty")o.dirty();f.push(n.value)}return{status:o.value,value:f}}static async mergeObjectAsync(o,T){let f=[];for(let n of T){let S=await n.key,A=await n.value;f.push({key:S,value:A})}return uo.mergeObjectSync(o,f)}static mergeObjectSync(o,T){let f={};for(let n of T){let{key:S,value:A}=n;if(S.status==="aborted")return d;if(A.status==="aborted")return d;if(S.status==="dirty")o.dirty();if(A.status==="dirty")o.dirty();if(S.value!=="__proto__"&&(typeof A.value!=="undefined"||n.alwaysSet))f[S.value]=A.value}return{status:o.value,value:f}}}var d=Object.freeze({status:"aborted"}),Lf=(o)=>({status:"dirty",value:o}),ao=(o)=>({status:"valid",value:o}),LA=(o)=>o.status==="aborted",CA=(o)=>o.status==="dirty",Ff=(o)=>o.status==="valid",_n=(o)=>typeof Promise!=="undefined"&&o instanceof Promise;function JS(o,T,f,n){if(f==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof T==="function"?o!==T||!n:!T.has(o))throw new TypeError("Cannot read private member from an object whose class did not declare it");return f==="m"?n:f==="a"?n.call(o):n?n.value:T.get(o)}function aF(o,T,f,n,S){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!S)throw new TypeError("Private accessor was defined without a setter");if(typeof T==="function"?o!==T||!S:!T.has(o))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?S.call(o,f):S?S.value=f:T.set(o,f),f}var x;(function(o){o.errToObj=(T)=>typeof T==="string"?{message:T}:T||{},o.toString=(T)=>typeof T==="string"?T:T===null||T===void 0?void 0:T.message})(x||(x={}));var On,kn;class YT{constructor(o,T,f,n){this._cachedPath=[],this.parent=o,this.data=T,this._path=f,this._key=n}get path(){if(!this._cachedPath.length)if(this._key instanceof Array)this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var lF=(o,T)=>{if(Ff(T))return{success:!0,data:T.value};else{if(!o.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let f=new JT(o.common.issues);return this._error=f,this._error}}}};function u(o){if(!o)return{};let{errorMap:T,invalid_type_error:f,required_error:n,description:S}=o;if(T&&(f||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(T)return{errorMap:T,description:S};return{errorMap:($,F)=>{var J,R;let{message:M}=o;if($.code==="invalid_enum_value")return{message:M!==null&&M!==void 0?M:F.defaultError};if(typeof F.data==="undefined")return{message:(J=M!==null&&M!==void 0?M:n)!==null&&J!==void 0?J:F.defaultError};if($.code!=="invalid_type")return{message:F.defaultError};return{message:(R=M!==null&&M!==void 0?M:f)!==null&&R!==void 0?R:F.defaultError}},description:S}}class e{get description(){return this._def.description}_getType(o){return vT(o.data)}_getOrReturnCtx(o,T){return T||{common:o.parent.common,data:o.data,parsedType:vT(o.data),schemaErrorMap:this._def.errorMap,path:o.path,parent:o.parent}}_processInputParams(o){return{status:new uo,ctx:{common:o.parent.common,data:o.data,parsedType:vT(o.data),schemaErrorMap:this._def.errorMap,path:o.path,parent:o.parent}}}_parseSync(o){let T=this._parse(o);if(_n(T))throw new Error("Synchronous parse encountered promise.");return T}_parseAsync(o){let T=this._parse(o);return Promise.resolve(T)}parse(o,T){let f=this.safeParse(o,T);if(f.success)return f.data;throw f.error}safeParse(o,T){var f;let n={common:{issues:[],async:(f=T===null||T===void 0?void 0:T.async)!==null&&f!==void 0?f:!1,contextualErrorMap:T===null||T===void 0?void 0:T.errorMap},path:(T===null||T===void 0?void 0:T.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:o,parsedType:vT(o)},S=this._parseSync({data:o,path:n.path,parent:n});return lF(n,S)}"~validate"(o){var T,f;let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:o,parsedType:vT(o)};if(!this["~standard"].async)try{let S=this._parseSync({data:o,path:[],parent:n});return Ff(S)?{value:S.value}:{issues:n.common.issues}}catch(S){if((f=(T=S===null||S===void 0?void 0:S.message)===null||T===void 0?void 0:T.toLowerCase())===null||f===void 0?void 0:f.includes("encountered"))this["~standard"].async=!0;n.common={issues:[],async:!0}}return this._parseAsync({data:o,path:[],parent:n}).then((S)=>Ff(S)?{value:S.value}:{issues:n.common.issues})}async parseAsync(o,T){let f=await this.safeParseAsync(o,T);if(f.success)return f.data;throw f.error}async safeParseAsync(o,T){let f={common:{issues:[],contextualErrorMap:T===null||T===void 0?void 0:T.errorMap,async:!0},path:(T===null||T===void 0?void 0:T.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:o,parsedType:vT(o)},n=this._parse({data:o,path:f.path,parent:f}),S=await(_n(n)?n:Promise.resolve(n));return lF(f,S)}refine(o,T){let f=(n)=>{if(typeof T==="string"||typeof T==="undefined")return{message:T};else if(typeof T==="function")return T(n);else return T};return this._refinement((n,S)=>{let A=o(n),$=()=>S.addIssue({code:t.custom,...f(n)});if(typeof Promise!=="undefined"&&A instanceof Promise)return A.then((F)=>{if(!F)return $(),!1;else return!0});if(!A)return $(),!1;else return!0})}refinement(o,T){return this._refinement((f,n)=>{if(!o(f))return n.addIssue(typeof T==="function"?T(f,n):T),!1;else return!0})}_refinement(o){return new _T({schema:this,typeName:g.ZodEffects,effect:{type:"refinement",refinement:o}})}superRefine(o){return this._refinement(o)}constructor(o){this.spa=this.safeParseAsync,this._def=o,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(T)=>this["~validate"](T)}}optional(){return GT.create(this,this._def)}nullable(){return qT.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ET.create(this)}promise(){return Wf.create(this,this._def)}or(o){return hf.create([this,o],this._def)}and(o){return bf.create(this,o,this._def)}transform(o){return new _T({...u(this._def),schema:this,typeName:g.ZodEffects,effect:{type:"transform",transform:o}})}default(o){let T=typeof o==="function"?o:()=>o;return new rf({...u(this._def),innerType:this,defaultValue:T,typeName:g.ZodDefault})}brand(){return new MS({typeName:g.ZodBranded,type:this,...u(this._def)})}catch(o){let T=typeof o==="function"?o:()=>o;return new pf({...u(this._def),innerType:this,catchValue:T,typeName:g.ZodCatch})}describe(o){return new this.constructor({...this._def,description:o})}pipe(o){return En.create(this,o)}readonly(){return cf.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var PM=/^c[^\s-]{8,}$/i,iM=/^[0-9a-z]+$/,gM=/^[0-9A-HJKMNP-TV-Z]{26}$/i,dM=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,lM=/^[a-z0-9_-]{21}$/i,uM=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,eM=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,sM=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,aM="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",VA,oW=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,TW=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,fW=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,nW=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,SW=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,AW=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,oJ="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",$W=new RegExp(`^${oJ}$`);function TJ(o){let T="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";if(o.precision)T=`${T}\\.\\d{${o.precision}}`;else if(o.precision==null)T=`${T}(\\.\\d+)?`;return T}function FW(o){return new RegExp(`^${TJ(o)}$`)}function fJ(o){let T=`${oJ}T${TJ(o)}`,f=[];if(f.push(o.local?"Z?":"Z"),o.offset)f.push("([+-]\\d{2}:?\\d{2})");return T=`${T}(${f.join("|")})`,new RegExp(`^${T}$`)}function JW(o,T){if((T==="v4"||!T)&&oW.test(o))return!0;if((T==="v6"||!T)&&fW.test(o))return!0;return!1}function RW(o,T){if(!uM.test(o))return!1;try{let[f]=o.split("."),n=f.replace(/-/g,"+").replace(/_/g,"/").padEnd(f.length+(4-f.length%4)%4,"="),S=JSON.parse(atob(n));if(typeof S!=="object"||S===null)return!1;if(!S.typ||!S.alg)return!1;if(T&&S.alg!==T)return!1;return!0}catch(f){return!1}}function MW(o,T){if((T==="v4"||!T)&&TW.test(o))return!0;if((T==="v6"||!T)&&nW.test(o))return!0;return!1}class KT extends e{_parse(o){if(this._def.coerce)o.data=String(o.data);if(this._getType(o)!==N.string){let S=this._getOrReturnCtx(o);return m(S,{code:t.invalid_type,expected:N.string,received:S.parsedType}),d}let f=new uo,n=void 0;for(let S of this._def.checks)if(S.kind==="min"){if(o.data.length<S.value)n=this._getOrReturnCtx(o,n),m(n,{code:t.too_small,minimum:S.value,type:"string",inclusive:!0,exact:!1,message:S.message}),f.dirty()}else if(S.kind==="max"){if(o.data.length>S.value)n=this._getOrReturnCtx(o,n),m(n,{code:t.too_big,maximum:S.value,type:"string",inclusive:!0,exact:!1,message:S.message}),f.dirty()}else if(S.kind==="length"){let A=o.data.length>S.value,$=o.data.length<S.value;if(A||$){if(n=this._getOrReturnCtx(o,n),A)m(n,{code:t.too_big,maximum:S.value,type:"string",inclusive:!0,exact:!0,message:S.message});else if($)m(n,{code:t.too_small,minimum:S.value,type:"string",inclusive:!0,exact:!0,message:S.message});f.dirty()}}else if(S.kind==="email"){if(!sM.test(o.data))n=this._getOrReturnCtx(o,n),m(n,{validation:"email",code:t.invalid_string,message:S.message}),f.dirty()}else if(S.kind==="emoji"){if(!VA)VA=new RegExp(aM,"u");if(!VA.test(o.data))n=this._getOrReturnCtx(o,n),m(n,{validation:"emoji",code:t.invalid_string,message:S.message}),f.dirty()}else if(S.kind==="uuid"){if(!dM.test(o.data))n=this._getOrReturnCtx(o,n),m(n,{validation:"uuid",code:t.invalid_string,message:S.message}),f.dirty()}else if(S.kind==="nanoid"){if(!lM.test(o.data))n=this._getOrReturnCtx(o,n),m(n,{validation:"nanoid",code:t.invalid_string,message:S.message}),f.dirty()}else if(S.kind==="cuid"){if(!PM.test(o.data))n=this._getOrReturnCtx(o,n),m(n,{validation:"cuid",code:t.invalid_string,message:S.message}),f.dirty()}else if(S.kind==="cuid2"){if(!iM.test(o.data))n=this._getOrReturnCtx(o,n),m(n,{validation:"cuid2",code:t.invalid_string,message:S.message}),f.dirty()}else if(S.kind==="ulid"){if(!gM.test(o.data))n=this._getOrReturnCtx(o,n),m(n,{validation:"ulid",code:t.invalid_string,message:S.message}),f.dirty()}else if(S.kind==="url")try{new URL(o.data)}catch(A){n=this._getOrReturnCtx(o,n),m(n,{validation:"url",code:t.invalid_string,message:S.message}),f.dirty()}else if(S.kind==="regex"){if(S.regex.lastIndex=0,!S.regex.test(o.data))n=this._getOrReturnCtx(o,n),m(n,{validation:"regex",code:t.invalid_string,message:S.message}),f.dirty()}else if(S.kind==="trim")o.data=o.data.trim();else if(S.kind==="includes"){if(!o.data.includes(S.value,S.position))n=this._getOrReturnCtx(o,n),m(n,{code:t.invalid_string,validation:{includes:S.value,position:S.position},message:S.message}),f.dirty()}else if(S.kind==="toLowerCase")o.data=o.data.toLowerCase();else if(S.kind==="toUpperCase")o.data=o.data.toUpperCase();else if(S.kind==="startsWith"){if(!o.data.startsWith(S.value))n=this._getOrReturnCtx(o,n),m(n,{code:t.invalid_string,validation:{startsWith:S.value},message:S.message}),f.dirty()}else if(S.kind==="endsWith"){if(!o.data.endsWith(S.value))n=this._getOrReturnCtx(o,n),m(n,{code:t.invalid_string,validation:{endsWith:S.value},message:S.message}),f.dirty()}else if(S.kind==="datetime"){if(!fJ(S).test(o.data))n=this._getOrReturnCtx(o,n),m(n,{code:t.invalid_string,validation:"datetime",message:S.message}),f.dirty()}else if(S.kind==="date"){if(!$W.test(o.data))n=this._getOrReturnCtx(o,n),m(n,{code:t.invalid_string,validation:"date",message:S.message}),f.dirty()}else if(S.kind==="time"){if(!FW(S).test(o.data))n=this._getOrReturnCtx(o,n),m(n,{code:t.invalid_string,validation:"time",message:S.message}),f.dirty()}else if(S.kind==="duration"){if(!eM.test(o.data))n=this._getOrReturnCtx(o,n),m(n,{validation:"duration",code:t.invalid_string,message:S.message}),f.dirty()}else if(S.kind==="ip"){if(!JW(o.data,S.version))n=this._getOrReturnCtx(o,n),m(n,{validation:"ip",code:t.invalid_string,message:S.message}),f.dirty()}else if(S.kind==="jwt"){if(!RW(o.data,S.alg))n=this._getOrReturnCtx(o,n),m(n,{validation:"jwt",code:t.invalid_string,message:S.message}),f.dirty()}else if(S.kind==="cidr"){if(!MW(o.data,S.version))n=this._getOrReturnCtx(o,n),m(n,{validation:"cidr",code:t.invalid_string,message:S.message}),f.dirty()}else if(S.kind==="base64"){if(!SW.test(o.data))n=this._getOrReturnCtx(o,n),m(n,{validation:"base64",code:t.invalid_string,message:S.message}),f.dirty()}else if(S.kind==="base64url"){if(!AW.test(o.data))n=this._getOrReturnCtx(o,n),m(n,{validation:"base64url",code:t.invalid_string,message:S.message}),f.dirty()}else Ao.assertNever(S);return{status:f.value,value:o.data}}_regex(o,T,f){return this.refinement((n)=>o.test(n),{validation:T,code:t.invalid_string,...x.errToObj(f)})}_addCheck(o){return new KT({...this._def,checks:[...this._def.checks,o]})}email(o){return this._addCheck({kind:"email",...x.errToObj(o)})}url(o){return this._addCheck({kind:"url",...x.errToObj(o)})}emoji(o){return this._addCheck({kind:"emoji",...x.errToObj(o)})}uuid(o){return this._addCheck({kind:"uuid",...x.errToObj(o)})}nanoid(o){return this._addCheck({kind:"nanoid",...x.errToObj(o)})}cuid(o){return this._addCheck({kind:"cuid",...x.errToObj(o)})}cuid2(o){return this._addCheck({kind:"cuid2",...x.errToObj(o)})}ulid(o){return this._addCheck({kind:"ulid",...x.errToObj(o)})}base64(o){return this._addCheck({kind:"base64",...x.errToObj(o)})}base64url(o){return this._addCheck({kind:"base64url",...x.errToObj(o)})}jwt(o){return this._addCheck({kind:"jwt",...x.errToObj(o)})}ip(o){return this._addCheck({kind:"ip",...x.errToObj(o)})}cidr(o){return this._addCheck({kind:"cidr",...x.errToObj(o)})}datetime(o){var T,f;if(typeof o==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:o});return this._addCheck({kind:"datetime",precision:typeof(o===null||o===void 0?void 0:o.precision)==="undefined"?null:o===null||o===void 0?void 0:o.precision,offset:(T=o===null||o===void 0?void 0:o.offset)!==null&&T!==void 0?T:!1,local:(f=o===null||o===void 0?void 0:o.local)!==null&&f!==void 0?f:!1,...x.errToObj(o===null||o===void 0?void 0:o.message)})}date(o){return this._addCheck({kind:"date",message:o})}time(o){if(typeof o==="string")return this._addCheck({kind:"time",precision:null,message:o});return this._addCheck({kind:"time",precision:typeof(o===null||o===void 0?void 0:o.precision)==="undefined"?null:o===null||o===void 0?void 0:o.precision,...x.errToObj(o===null||o===void 0?void 0:o.message)})}duration(o){return this._addCheck({kind:"duration",...x.errToObj(o)})}regex(o,T){return this._addCheck({kind:"regex",regex:o,...x.errToObj(T)})}includes(o,T){return this._addCheck({kind:"includes",value:o,position:T===null||T===void 0?void 0:T.position,...x.errToObj(T===null||T===void 0?void 0:T.message)})}startsWith(o,T){return this._addCheck({kind:"startsWith",value:o,...x.errToObj(T)})}endsWith(o,T){return this._addCheck({kind:"endsWith",value:o,...x.errToObj(T)})}min(o,T){return this._addCheck({kind:"min",value:o,...x.errToObj(T)})}max(o,T){return this._addCheck({kind:"max",value:o,...x.errToObj(T)})}length(o,T){return this._addCheck({kind:"length",value:o,...x.errToObj(T)})}nonempty(o){return this.min(1,x.errToObj(o))}trim(){return new KT({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new KT({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new KT({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((o)=>o.kind==="datetime")}get isDate(){return!!this._def.checks.find((o)=>o.kind==="date")}get isTime(){return!!this._def.checks.find((o)=>o.kind==="time")}get isDuration(){return!!this._def.checks.find((o)=>o.kind==="duration")}get isEmail(){return!!this._def.checks.find((o)=>o.kind==="email")}get isURL(){return!!this._def.checks.find((o)=>o.kind==="url")}get isEmoji(){return!!this._def.checks.find((o)=>o.kind==="emoji")}get isUUID(){return!!this._def.checks.find((o)=>o.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((o)=>o.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((o)=>o.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((o)=>o.kind==="cuid2")}get isULID(){return!!this._def.checks.find((o)=>o.kind==="ulid")}get isIP(){return!!this._def.checks.find((o)=>o.kind==="ip")}get isCIDR(){return!!this._def.checks.find((o)=>o.kind==="cidr")}get isBase64(){return!!this._def.checks.find((o)=>o.kind==="base64")}get isBase64url(){return!!this._def.checks.find((o)=>o.kind==="base64url")}get minLength(){let o=null;for(let T of this._def.checks)if(T.kind==="min"){if(o===null||T.value>o)o=T.value}return o}get maxLength(){let o=null;for(let T of this._def.checks)if(T.kind==="max"){if(o===null||T.value<o)o=T.value}return o}}KT.create=(o)=>{var T;return new KT({checks:[],typeName:g.ZodString,coerce:(T=o===null||o===void 0?void 0:o.coerce)!==null&&T!==void 0?T:!1,...u(o)})};function WW(o,T){let f=(o.toString().split(".")[1]||"").length,n=(T.toString().split(".")[1]||"").length,S=f>n?f:n,A=parseInt(o.toFixed(S).replace(".","")),$=parseInt(T.toFixed(S).replace(".",""));return A%$/Math.pow(10,S)}class gT extends e{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(o){if(this._def.coerce)o.data=Number(o.data);if(this._getType(o)!==N.number){let S=this._getOrReturnCtx(o);return m(S,{code:t.invalid_type,expected:N.number,received:S.parsedType}),d}let f=void 0,n=new uo;for(let S of this._def.checks)if(S.kind==="int"){if(!Ao.isInteger(o.data))f=this._getOrReturnCtx(o,f),m(f,{code:t.invalid_type,expected:"integer",received:"float",message:S.message}),n.dirty()}else if(S.kind==="min"){if(S.inclusive?o.data<S.value:o.data<=S.value)f=this._getOrReturnCtx(o,f),m(f,{code:t.too_small,minimum:S.value,type:"number",inclusive:S.inclusive,exact:!1,message:S.message}),n.dirty()}else if(S.kind==="max"){if(S.inclusive?o.data>S.value:o.data>=S.value)f=this._getOrReturnCtx(o,f),m(f,{code:t.too_big,maximum:S.value,type:"number",inclusive:S.inclusive,exact:!1,message:S.message}),n.dirty()}else if(S.kind==="multipleOf"){if(WW(o.data,S.value)!==0)f=this._getOrReturnCtx(o,f),m(f,{code:t.not_multiple_of,multipleOf:S.value,message:S.message}),n.dirty()}else if(S.kind==="finite"){if(!Number.isFinite(o.data))f=this._getOrReturnCtx(o,f),m(f,{code:t.not_finite,message:S.message}),n.dirty()}else Ao.assertNever(S);return{status:n.value,value:o.data}}gte(o,T){return this.setLimit("min",o,!0,x.toString(T))}gt(o,T){return this.setLimit("min",o,!1,x.toString(T))}lte(o,T){return this.setLimit("max",o,!0,x.toString(T))}lt(o,T){return this.setLimit("max",o,!1,x.toString(T))}setLimit(o,T,f,n){return new gT({...this._def,checks:[...this._def.checks,{kind:o,value:T,inclusive:f,message:x.toString(n)}]})}_addCheck(o){return new gT({...this._def,checks:[...this._def.checks,o]})}int(o){return this._addCheck({kind:"int",message:x.toString(o)})}positive(o){return this._addCheck({kind:"min",value:0,inclusive:!1,message:x.toString(o)})}negative(o){return this._addCheck({kind:"max",value:0,inclusive:!1,message:x.toString(o)})}nonpositive(o){return this._addCheck({kind:"max",value:0,inclusive:!0,message:x.toString(o)})}nonnegative(o){return this._addCheck({kind:"min",value:0,inclusive:!0,message:x.toString(o)})}multipleOf(o,T){return this._addCheck({kind:"multipleOf",value:o,message:x.toString(T)})}finite(o){return this._addCheck({kind:"finite",message:x.toString(o)})}safe(o){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:x.toString(o)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:x.toString(o)})}get minValue(){let o=null;for(let T of this._def.checks)if(T.kind==="min"){if(o===null||T.value>o)o=T.value}return o}get maxValue(){let o=null;for(let T of this._def.checks)if(T.kind==="max"){if(o===null||T.value<o)o=T.value}return o}get isInt(){return!!this._def.checks.find((o)=>o.kind==="int"||o.kind==="multipleOf"&&Ao.isInteger(o.value))}get isFinite(){let o=null,T=null;for(let f of this._def.checks)if(f.kind==="finite"||f.kind==="int"||f.kind==="multipleOf")return!0;else if(f.kind==="min"){if(T===null||f.value>T)T=f.value}else if(f.kind==="max"){if(o===null||f.value<o)o=f.value}return Number.isFinite(T)&&Number.isFinite(o)}}gT.create=(o)=>{return new gT({checks:[],typeName:g.ZodNumber,coerce:(o===null||o===void 0?void 0:o.coerce)||!1,...u(o)})};class dT extends e{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(o){if(this._def.coerce)try{o.data=BigInt(o.data)}catch(S){return this._getInvalidInput(o)}if(this._getType(o)!==N.bigint)return this._getInvalidInput(o);let f=void 0,n=new uo;for(let S of this._def.checks)if(S.kind==="min"){if(S.inclusive?o.data<S.value:o.data<=S.value)f=this._getOrReturnCtx(o,f),m(f,{code:t.too_small,type:"bigint",minimum:S.value,inclusive:S.inclusive,message:S.message}),n.dirty()}else if(S.kind==="max"){if(S.inclusive?o.data>S.value:o.data>=S.value)f=this._getOrReturnCtx(o,f),m(f,{code:t.too_big,type:"bigint",maximum:S.value,inclusive:S.inclusive,message:S.message}),n.dirty()}else if(S.kind==="multipleOf"){if(o.data%S.value!==BigInt(0))f=this._getOrReturnCtx(o,f),m(f,{code:t.not_multiple_of,multipleOf:S.value,message:S.message}),n.dirty()}else Ao.assertNever(S);return{status:n.value,value:o.data}}_getInvalidInput(o){let T=this._getOrReturnCtx(o);return m(T,{code:t.invalid_type,expected:N.bigint,received:T.parsedType}),d}gte(o,T){return this.setLimit("min",o,!0,x.toString(T))}gt(o,T){return this.setLimit("min",o,!1,x.toString(T))}lte(o,T){return this.setLimit("max",o,!0,x.toString(T))}lt(o,T){return this.setLimit("max",o,!1,x.toString(T))}setLimit(o,T,f,n){return new dT({...this._def,checks:[...this._def.checks,{kind:o,value:T,inclusive:f,message:x.toString(n)}]})}_addCheck(o){return new dT({...this._def,checks:[...this._def.checks,o]})}positive(o){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:x.toString(o)})}negative(o){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:x.toString(o)})}nonpositive(o){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:x.toString(o)})}nonnegative(o){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:x.toString(o)})}multipleOf(o,T){return this._addCheck({kind:"multipleOf",value:o,message:x.toString(T)})}get minValue(){let o=null;for(let T of this._def.checks)if(T.kind==="min"){if(o===null||T.value>o)o=T.value}return o}get maxValue(){let o=null;for(let T of this._def.checks)if(T.kind==="max"){if(o===null||T.value<o)o=T.value}return o}}dT.create=(o)=>{var T;return new dT({checks:[],typeName:g.ZodBigInt,coerce:(T=o===null||o===void 0?void 0:o.coerce)!==null&&T!==void 0?T:!1,...u(o)})};class If extends e{_parse(o){if(this._def.coerce)o.data=Boolean(o.data);if(this._getType(o)!==N.boolean){let f=this._getOrReturnCtx(o);return m(f,{code:t.invalid_type,expected:N.boolean,received:f.parsedType}),d}return ao(o.data)}}If.create=(o)=>{return new If({typeName:g.ZodBoolean,coerce:(o===null||o===void 0?void 0:o.coerce)||!1,...u(o)})};class Jf extends e{_parse(o){if(this._def.coerce)o.data=new Date(o.data);if(this._getType(o)!==N.date){let S=this._getOrReturnCtx(o);return m(S,{code:t.invalid_type,expected:N.date,received:S.parsedType}),d}if(isNaN(o.data.getTime())){let S=this._getOrReturnCtx(o);return m(S,{code:t.invalid_date}),d}let f=new uo,n=void 0;for(let S of this._def.checks)if(S.kind==="min"){if(o.data.getTime()<S.value)n=this._getOrReturnCtx(o,n),m(n,{code:t.too_small,message:S.message,inclusive:!0,exact:!1,minimum:S.value,type:"date"}),f.dirty()}else if(S.kind==="max"){if(o.data.getTime()>S.value)n=this._getOrReturnCtx(o,n),m(n,{code:t.too_big,message:S.message,inclusive:!0,exact:!1,maximum:S.value,type:"date"}),f.dirty()}else Ao.assertNever(S);return{status:f.value,value:new Date(o.data.getTime())}}_addCheck(o){return new Jf({...this._def,checks:[...this._def.checks,o]})}min(o,T){return this._addCheck({kind:"min",value:o.getTime(),message:x.toString(T)})}max(o,T){return this._addCheck({kind:"max",value:o.getTime(),message:x.toString(T)})}get minDate(){let o=null;for(let T of this._def.checks)if(T.kind==="min"){if(o===null||T.value>o)o=T.value}return o!=null?new Date(o):null}get maxDate(){let o=null;for(let T of this._def.checks)if(T.kind==="max"){if(o===null||T.value<o)o=T.value}return o!=null?new Date(o):null}}Jf.create=(o)=>{return new Jf({checks:[],coerce:(o===null||o===void 0?void 0:o.coerce)||!1,typeName:g.ZodDate,...u(o)})};class wn extends e{_parse(o){if(this._getType(o)!==N.symbol){let f=this._getOrReturnCtx(o);return m(f,{code:t.invalid_type,expected:N.symbol,received:f.parsedType}),d}return ao(o.data)}}wn.create=(o)=>{return new wn({typeName:g.ZodSymbol,...u(o)})};class jf extends e{_parse(o){if(this._getType(o)!==N.undefined){let f=this._getOrReturnCtx(o);return m(f,{code:t.invalid_type,expected:N.undefined,received:f.parsedType}),d}return ao(o.data)}}jf.create=(o)=>{return new jf({typeName:g.ZodUndefined,...u(o)})};class Nf extends e{_parse(o){if(this._getType(o)!==N.null){let f=this._getOrReturnCtx(o);return m(f,{code:t.invalid_type,expected:N.null,received:f.parsedType}),d}return ao(o.data)}}Nf.create=(o)=>{return new Nf({typeName:g.ZodNull,...u(o)})};class Rf extends e{constructor(){super(...arguments);this._any=!0}_parse(o){return ao(o.data)}}Rf.create=(o)=>{return new Rf({typeName:g.ZodAny,...u(o)})};class iT extends e{constructor(){super(...arguments);this._unknown=!0}_parse(o){return ao(o.data)}}iT.create=(o)=>{return new iT({typeName:g.ZodUnknown,...u(o)})};class BT extends e{_parse(o){let T=this._getOrReturnCtx(o);return m(T,{code:t.invalid_type,expected:N.never,received:T.parsedType}),d}}BT.create=(o)=>{return new BT({typeName:g.ZodNever,...u(o)})};class yn extends e{_parse(o){if(this._getType(o)!==N.undefined){let f=this._getOrReturnCtx(o);return m(f,{code:t.invalid_type,expected:N.void,received:f.parsedType}),d}return ao(o.data)}}yn.create=(o)=>{return new yn({typeName:g.ZodVoid,...u(o)})};class ET extends e{_parse(o){let{ctx:T,status:f}=this._processInputParams(o),n=this._def;if(T.parsedType!==N.array)return m(T,{code:t.invalid_type,expected:N.array,received:T.parsedType}),d;if(n.exactLength!==null){let A=T.data.length>n.exactLength.value,$=T.data.length<n.exactLength.value;if(A||$)m(T,{code:A?t.too_big:t.too_small,minimum:$?n.exactLength.value:void 0,maximum:A?n.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:n.exactLength.message}),f.dirty()}if(n.minLength!==null){if(T.data.length<n.minLength.value)m(T,{code:t.too_small,minimum:n.minLength.value,type:"array",inclusive:!0,exact:!1,message:n.minLength.message}),f.dirty()}if(n.maxLength!==null){if(T.data.length>n.maxLength.value)m(T,{code:t.too_big,maximum:n.maxLength.value,type:"array",inclusive:!0,exact:!1,message:n.maxLength.message}),f.dirty()}if(T.common.async)return Promise.all([...T.data].map((A,$)=>{return n.type._parseAsync(new YT(T,A,T.path,$))})).then((A)=>{return uo.mergeArray(f,A)});let S=[...T.data].map((A,$)=>{return n.type._parseSync(new YT(T,A,T.path,$))});return uo.mergeArray(f,S)}get element(){return this._def.type}min(o,T){return new ET({...this._def,minLength:{value:o,message:x.toString(T)}})}max(o,T){return new ET({...this._def,maxLength:{value:o,message:x.toString(T)}})}length(o,T){return new ET({...this._def,exactLength:{value:o,message:x.toString(T)}})}nonempty(o){return this.min(1,o)}}ET.create=(o,T)=>{return new ET({type:o,minLength:null,maxLength:null,exactLength:null,typeName:g.ZodArray,...u(T)})};function Bf(o){if(o instanceof zo){let T={};for(let f in o.shape){let n=o.shape[f];T[f]=GT.create(Bf(n))}return new zo({...o._def,shape:()=>T})}else if(o instanceof ET)return new ET({...o._def,type:Bf(o.element)});else if(o instanceof GT)return GT.create(Bf(o.unwrap()));else if(o instanceof qT)return qT.create(Bf(o.unwrap()));else if(o instanceof LT)return LT.create(o.items.map((T)=>Bf(T)));else return o}class zo extends e{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let o=this._def.shape(),T=Ao.objectKeys(o);return this._cached={shape:o,keys:T}}_parse(o){if(this._getType(o)!==N.object){let J=this._getOrReturnCtx(o);return m(J,{code:t.invalid_type,expected:N.object,received:J.parsedType}),d}let{status:f,ctx:n}=this._processInputParams(o),{shape:S,keys:A}=this._getCached(),$=[];if(!(this._def.catchall instanceof BT&&this._def.unknownKeys==="strip")){for(let J in n.data)if(!A.includes(J))$.push(J)}let F=[];for(let J of A){let R=S[J],M=n.data[J];F.push({key:{status:"valid",value:J},value:R._parse(new YT(n,M,n.path,J)),alwaysSet:J in n.data})}if(this._def.catchall instanceof BT){let J=this._def.unknownKeys;if(J==="passthrough")for(let R of $)F.push({key:{status:"valid",value:R},value:{status:"valid",value:n.data[R]}});else if(J==="strict"){if($.length>0)m(n,{code:t.unrecognized_keys,keys:$}),f.dirty()}else if(J==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let J=this._def.catchall;for(let R of $){let M=n.data[R];F.push({key:{status:"valid",value:R},value:J._parse(new YT(n,M,n.path,R)),alwaysSet:R in n.data})}}if(n.common.async)return Promise.resolve().then(async()=>{let J=[];for(let R of F){let M=await R.key,_=await R.value;J.push({key:M,value:_,alwaysSet:R.alwaysSet})}return J}).then((J)=>{return uo.mergeObjectSync(f,J)});else return uo.mergeObjectSync(f,F)}get shape(){return this._def.shape()}strict(o){return x.errToObj,new zo({...this._def,unknownKeys:"strict",...o!==void 0?{errorMap:(T,f)=>{var n,S,A,$;let F=(A=(S=(n=this._def).errorMap)===null||S===void 0?void 0:S.call(n,T,f).message)!==null&&A!==void 0?A:f.defaultError;if(T.code==="unrecognized_keys")return{message:($=x.errToObj(o).message)!==null&&$!==void 0?$:F};return{message:F}}}:{}})}strip(){return new zo({...this._def,unknownKeys:"strip"})}passthrough(){return new zo({...this._def,unknownKeys:"passthrough"})}extend(o){return new zo({...this._def,shape:()=>({...this._def.shape(),...o})})}merge(o){return new zo({unknownKeys:o._def.unknownKeys,catchall:o._def.catchall,shape:()=>({...this._def.shape(),...o._def.shape()}),typeName:g.ZodObject})}setKey(o,T){return this.augment({[o]:T})}catchall(o){return new zo({...this._def,catchall:o})}pick(o){let T={};return Ao.objectKeys(o).forEach((f)=>{if(o[f]&&this.shape[f])T[f]=this.shape[f]}),new zo({...this._def,shape:()=>T})}omit(o){let T={};return Ao.objectKeys(this.shape).forEach((f)=>{if(!o[f])T[f]=this.shape[f]}),new zo({...this._def,shape:()=>T})}deepPartial(){return Bf(this)}partial(o){let T={};return Ao.objectKeys(this.shape).forEach((f)=>{let n=this.shape[f];if(o&&!o[f])T[f]=n;else T[f]=n.optional()}),new zo({...this._def,shape:()=>T})}required(o){let T={};return Ao.objectKeys(this.shape).forEach((f)=>{if(o&&!o[f])T[f]=this.shape[f];else{let S=this.shape[f];while(S instanceof GT)S=S._def.innerType;T[f]=S}}),new zo({...this._def,shape:()=>T})}keyof(){return nJ(Ao.objectKeys(this.shape))}}zo.create=(o,T)=>{return new zo({shape:()=>o,unknownKeys:"strip",catchall:BT.create(),typeName:g.ZodObject,...u(T)})};zo.strictCreate=(o,T)=>{return new zo({shape:()=>o,unknownKeys:"strict",catchall:BT.create(),typeName:g.ZodObject,...u(T)})};zo.lazycreate=(o,T)=>{return new zo({shape:o,unknownKeys:"strip",catchall:BT.create(),typeName:g.ZodObject,...u(T)})};class hf extends e{_parse(o){let{ctx:T}=this._processInputParams(o),f=this._def.options;function n(S){for(let $ of S)if($.result.status==="valid")return $.result;for(let $ of S)if($.result.status==="dirty")return T.common.issues.push(...$.ctx.common.issues),$.result;let A=S.map(($)=>new JT($.ctx.common.issues));return m(T,{code:t.invalid_union,unionErrors:A}),d}if(T.common.async)return Promise.all(f.map(async(S)=>{let A={...T,common:{...T.common,issues:[]},parent:null};return{result:await S._parseAsync({data:T.data,path:T.path,parent:A}),ctx:A}})).then(n);else{let S=void 0,A=[];for(let F of f){let J={...T,common:{...T.common,issues:[]},parent:null},R=F._parseSync({data:T.data,path:T.path,parent:J});if(R.status==="valid")return R;else if(R.status==="dirty"&&!S)S={result:R,ctx:J};if(J.common.issues.length)A.push(J.common.issues)}if(S)return T.common.issues.push(...S.ctx.common.issues),S.result;let $=A.map((F)=>new JT(F));return m(T,{code:t.invalid_union,unionErrors:$}),d}}get options(){return this._def.options}}hf.create=(o,T)=>{return new hf({options:o,typeName:g.ZodUnion,...u(T)})};var xT=(o)=>{if(o instanceof xf)return xT(o.schema);else if(o instanceof _T)return xT(o.innerType());else if(o instanceof vf)return[o.value];else if(o instanceof lT)return o.options;else if(o instanceof qf)return Ao.objectValues(o.enum);else if(o instanceof rf)return xT(o._def.innerType);else if(o instanceof jf)return[void 0];else if(o instanceof Nf)return[null];else if(o instanceof GT)return[void 0,...xT(o.unwrap())];else if(o instanceof qT)return[null,...xT(o.unwrap())];else if(o instanceof MS)return xT(o.unwrap());else if(o instanceof cf)return xT(o.unwrap());else if(o instanceof pf)return xT(o._def.innerType);else return[]};class RS extends e{_parse(o){let{ctx:T}=this._processInputParams(o);if(T.parsedType!==N.object)return m(T,{code:t.invalid_type,expected:N.object,received:T.parsedType}),d;let f=this.discriminator,n=T.data[f],S=this.optionsMap.get(n);if(!S)return m(T,{code:t.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[f]}),d;if(T.common.async)return S._parseAsync({data:T.data,path:T.path,parent:T});else return S._parseSync({data:T.data,path:T.path,parent:T})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(o,T,f){let n=new Map;for(let S of T){let A=xT(S.shape[o]);if(!A.length)throw new Error(`A discriminator value for key \`${o}\` could not be extracted from all schema options`);for(let $ of A){if(n.has($))throw new Error(`Discriminator property ${String(o)} has duplicate value ${String($)}`);n.set($,S)}}return new RS({typeName:g.ZodDiscriminatedUnion,discriminator:o,options:T,optionsMap:n,...u(f)})}}function mA(o,T){let f=vT(o),n=vT(T);if(o===T)return{valid:!0,data:o};else if(f===N.object&&n===N.object){let S=Ao.objectKeys(T),A=Ao.objectKeys(o).filter((F)=>S.indexOf(F)!==-1),$={...o,...T};for(let F of A){let J=mA(o[F],T[F]);if(!J.valid)return{valid:!1};$[F]=J.data}return{valid:!0,data:$}}else if(f===N.array&&n===N.array){if(o.length!==T.length)return{valid:!1};let S=[];for(let A=0;A<o.length;A++){let $=o[A],F=T[A],J=mA($,F);if(!J.valid)return{valid:!1};S.push(J.data)}return{valid:!0,data:S}}else if(f===N.date&&n===N.date&&+o===+T)return{valid:!0,data:o};else return{valid:!1}}class bf extends e{_parse(o){let{status:T,ctx:f}=this._processInputParams(o),n=(S,A)=>{if(LA(S)||LA(A))return d;let $=mA(S.value,A.value);if(!$.valid)return m(f,{code:t.invalid_intersection_types}),d;if(CA(S)||CA(A))T.dirty();return{status:T.value,value:$.data}};if(f.common.async)return Promise.all([this._def.left._parseAsync({data:f.data,path:f.path,parent:f}),this._def.right._parseAsync({data:f.data,path:f.path,parent:f})]).then(([S,A])=>n(S,A));else return n(this._def.left._parseSync({data:f.data,path:f.path,parent:f}),this._def.right._parseSync({data:f.data,path:f.path,parent:f}))}}bf.create=(o,T,f)=>{return new bf({left:o,right:T,typeName:g.ZodIntersection,...u(f)})};class LT extends e{_parse(o){let{status:T,ctx:f}=this._processInputParams(o);if(f.parsedType!==N.array)return m(f,{code:t.invalid_type,expected:N.array,received:f.parsedType}),d;if(f.data.length<this._def.items.length)return m(f,{code:t.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),d;if(!this._def.rest&&f.data.length>this._def.items.length)m(f,{code:t.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),T.dirty();let S=[...f.data].map((A,$)=>{let F=this._def.items[$]||this._def.rest;if(!F)return null;return F._parse(new YT(f,A,f.path,$))}).filter((A)=>!!A);if(f.common.async)return Promise.all(S).then((A)=>{return uo.mergeArray(T,A)});else return uo.mergeArray(T,S)}get items(){return this._def.items}rest(o){return new LT({...this._def,rest:o})}}LT.create=(o,T)=>{if(!Array.isArray(o))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new LT({items:o,typeName:g.ZodTuple,rest:null,...u(T)})};class Xn extends e{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(o){let{status:T,ctx:f}=this._processInputParams(o);if(f.parsedType!==N.object)return m(f,{code:t.invalid_type,expected:N.object,received:f.parsedType}),d;let n=[],S=this._def.keyType,A=this._def.valueType;for(let $ in f.data)n.push({key:S._parse(new YT(f,$,f.path,$)),value:A._parse(new YT(f,f.data[$],f.path,$)),alwaysSet:$ in f.data});if(f.common.async)return uo.mergeObjectAsync(T,n);else return uo.mergeObjectSync(T,n)}get element(){return this._def.valueType}static create(o,T,f){if(T instanceof e)return new Xn({keyType:o,valueType:T,typeName:g.ZodRecord,...u(f)});return new Xn({keyType:KT.create(),valueType:o,typeName:g.ZodRecord,...u(T)})}}class Hn extends e{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(o){let{status:T,ctx:f}=this._processInputParams(o);if(f.parsedType!==N.map)return m(f,{code:t.invalid_type,expected:N.map,received:f.parsedType}),d;let n=this._def.keyType,S=this._def.valueType,A=[...f.data.entries()].map(([$,F],J)=>{return{key:n._parse(new YT(f,$,f.path,[J,"key"])),value:S._parse(new YT(f,F,f.path,[J,"value"]))}});if(f.common.async){let $=new Map;return Promise.resolve().then(async()=>{for(let F of A){let J=await F.key,R=await F.value;if(J.status==="aborted"||R.status==="aborted")return d;if(J.status==="dirty"||R.status==="dirty")T.dirty();$.set(J.value,R.value)}return{status:T.value,value:$}})}else{let $=new Map;for(let F of A){let{key:J,value:R}=F;if(J.status==="aborted"||R.status==="aborted")return d;if(J.status==="dirty"||R.status==="dirty")T.dirty();$.set(J.value,R.value)}return{status:T.value,value:$}}}}Hn.create=(o,T,f)=>{return new Hn({valueType:T,keyType:o,typeName:g.ZodMap,...u(f)})};class Mf extends e{_parse(o){let{status:T,ctx:f}=this._processInputParams(o);if(f.parsedType!==N.set)return m(f,{code:t.invalid_type,expected:N.set,received:f.parsedType}),d;let n=this._def;if(n.minSize!==null){if(f.data.size<n.minSize.value)m(f,{code:t.too_small,minimum:n.minSize.value,type:"set",inclusive:!0,exact:!1,message:n.minSize.message}),T.dirty()}if(n.maxSize!==null){if(f.data.size>n.maxSize.value)m(f,{code:t.too_big,maximum:n.maxSize.value,type:"set",inclusive:!0,exact:!1,message:n.maxSize.message}),T.dirty()}let S=this._def.valueType;function A(F){let J=new Set;for(let R of F){if(R.status==="aborted")return d;if(R.status==="dirty")T.dirty();J.add(R.value)}return{status:T.value,value:J}}let $=[...f.data.values()].map((F,J)=>S._parse(new YT(f,F,f.path,J)));if(f.common.async)return Promise.all($).then((F)=>A(F));else return A($)}min(o,T){return new Mf({...this._def,minSize:{value:o,message:x.toString(T)}})}max(o,T){return new Mf({...this._def,maxSize:{value:o,message:x.toString(T)}})}size(o,T){return this.min(o,T).max(o,T)}nonempty(o){return this.min(1,o)}}Mf.create=(o,T)=>{return new Mf({valueType:o,minSize:null,maxSize:null,typeName:g.ZodSet,...u(T)})};class Cf extends e{constructor(){super(...arguments);this.validate=this.implement}_parse(o){let{ctx:T}=this._processInputParams(o);if(T.parsedType!==N.function)return m(T,{code:t.invalid_type,expected:N.function,received:T.parsedType}),d;function f($,F){return FS({data:$,path:T.path,errorMaps:[T.common.contextualErrorMap,T.schemaErrorMap,$S(),mf].filter((J)=>!!J),issueData:{code:t.invalid_arguments,argumentsError:F}})}function n($,F){return FS({data:$,path:T.path,errorMaps:[T.common.contextualErrorMap,T.schemaErrorMap,$S(),mf].filter((J)=>!!J),issueData:{code:t.invalid_return_type,returnTypeError:F}})}let S={errorMap:T.common.contextualErrorMap},A=T.data;if(this._def.returns instanceof Wf){let $=this;return ao(async function(...F){let J=new JT([]),R=await $._def.args.parseAsync(F,S).catch((w)=>{throw J.addIssue(f(F,w)),J}),M=await Reflect.apply(A,this,R);return await $._def.returns._def.type.parseAsync(M,S).catch((w)=>{throw J.addIssue(n(M,w)),J})})}else{let $=this;return ao(function(...F){let J=$._def.args.safeParse(F,S);if(!J.success)throw new JT([f(F,J.error)]);let R=Reflect.apply(A,this,J.data),M=$._def.returns.safeParse(R,S);if(!M.success)throw new JT([n(R,M.error)]);return M.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...o){return new Cf({...this._def,args:LT.create(o).rest(iT.create())})}returns(o){return new Cf({...this._def,returns:o})}implement(o){return this.parse(o)}strictImplement(o){return this.parse(o)}static create(o,T,f){return new Cf({args:o?o:LT.create([]).rest(iT.create()),returns:T||iT.create(),typeName:g.ZodFunction,...u(f)})}}class xf extends e{get schema(){return this._def.getter()}_parse(o){let{ctx:T}=this._processInputParams(o);return this._def.getter()._parse({data:T.data,path:T.path,parent:T})}}xf.create=(o,T)=>{return new xf({getter:o,typeName:g.ZodLazy,...u(T)})};class vf extends e{_parse(o){if(o.data!==this._def.value){let T=this._getOrReturnCtx(o);return m(T,{received:T.data,code:t.invalid_literal,expected:this._def.value}),d}return{status:"valid",value:o.data}}get value(){return this._def.value}}vf.create=(o,T)=>{return new vf({value:o,typeName:g.ZodLiteral,...u(T)})};function nJ(o,T){return new lT({values:o,typeName:g.ZodEnum,...u(T)})}class lT extends e{constructor(){super(...arguments);On.set(this,void 0)}_parse(o){if(typeof o.data!=="string"){let T=this._getOrReturnCtx(o),f=this._def.values;return m(T,{expected:Ao.joinValues(f),received:T.parsedType,code:t.invalid_type}),d}if(!JS(this,On,"f"))aF(this,On,new Set(this._def.values),"f");if(!JS(this,On,"f").has(o.data)){let T=this._getOrReturnCtx(o),f=this._def.values;return m(T,{received:T.data,code:t.invalid_enum_value,options:f}),d}return ao(o.data)}get options(){return this._def.values}get enum(){let o={};for(let T of this._def.values)o[T]=T;return o}get Values(){let o={};for(let T of this._def.values)o[T]=T;return o}get Enum(){let o={};for(let T of this._def.values)o[T]=T;return o}extract(o,T=this._def){return lT.create(o,{...this._def,...T})}exclude(o,T=this._def){return lT.create(this.options.filter((f)=>!o.includes(f)),{...this._def,...T})}}On=new WeakMap;lT.create=nJ;class qf extends e{constructor(){super(...arguments);kn.set(this,void 0)}_parse(o){let T=Ao.getValidEnumValues(this._def.values),f=this._getOrReturnCtx(o);if(f.parsedType!==N.string&&f.parsedType!==N.number){let n=Ao.objectValues(T);return m(f,{expected:Ao.joinValues(n),received:f.parsedType,code:t.invalid_type}),d}if(!JS(this,kn,"f"))aF(this,kn,new Set(Ao.getValidEnumValues(this._def.values)),"f");if(!JS(this,kn,"f").has(o.data)){let n=Ao.objectValues(T);return m(f,{received:f.data,code:t.invalid_enum_value,options:n}),d}return ao(o.data)}get enum(){return this._def.values}}kn=new WeakMap;qf.create=(o,T)=>{return new qf({values:o,typeName:g.ZodNativeEnum,...u(T)})};class Wf extends e{unwrap(){return this._def.type}_parse(o){let{ctx:T}=this._processInputParams(o);if(T.parsedType!==N.promise&&T.common.async===!1)return m(T,{code:t.invalid_type,expected:N.promise,received:T.parsedType}),d;let f=T.parsedType===N.promise?T.data:Promise.resolve(T.data);return ao(f.then((n)=>{return this._def.type.parseAsync(n,{path:T.path,errorMap:T.common.contextualErrorMap})}))}}Wf.create=(o,T)=>{return new Wf({type:o,typeName:g.ZodPromise,...u(T)})};class _T extends e{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===g.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(o){let{status:T,ctx:f}=this._processInputParams(o),n=this._def.effect||null,S={addIssue:(A)=>{if(m(f,A),A.fatal)T.abort();else T.dirty()},get path(){return f.path}};if(S.addIssue=S.addIssue.bind(S),n.type==="preprocess"){let A=n.transform(f.data,S);if(f.common.async)return Promise.resolve(A).then(async($)=>{if(T.value==="aborted")return d;let F=await this._def.schema._parseAsync({data:$,path:f.path,parent:f});if(F.status==="aborted")return d;if(F.status==="dirty")return Lf(F.value);if(T.value==="dirty")return Lf(F.value);return F});else{if(T.value==="aborted")return d;let $=this._def.schema._parseSync({data:A,path:f.path,parent:f});if($.status==="aborted")return d;if($.status==="dirty")return Lf($.value);if(T.value==="dirty")return Lf($.value);return $}}if(n.type==="refinement"){let A=($)=>{let F=n.refinement($,S);if(f.common.async)return Promise.resolve(F);if(F instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return $};if(f.common.async===!1){let $=this._def.schema._parseSync({data:f.data,path:f.path,parent:f});if($.status==="aborted")return d;if($.status==="dirty")T.dirty();return A($.value),{status:T.value,value:$.value}}else return this._def.schema._parseAsync({data:f.data,path:f.path,parent:f}).then(($)=>{if($.status==="aborted")return d;if($.status==="dirty")T.dirty();return A($.value).then(()=>{return{status:T.value,value:$.value}})})}if(n.type==="transform")if(f.common.async===!1){let A=this._def.schema._parseSync({data:f.data,path:f.path,parent:f});if(!Ff(A))return A;let $=n.transform(A.value,S);if($ instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:T.value,value:$}}else return this._def.schema._parseAsync({data:f.data,path:f.path,parent:f}).then((A)=>{if(!Ff(A))return A;return Promise.resolve(n.transform(A.value,S)).then(($)=>({status:T.value,value:$}))});Ao.assertNever(n)}}_T.create=(o,T,f)=>{return new _T({schema:o,typeName:g.ZodEffects,effect:T,...u(f)})};_T.createWithPreprocess=(o,T,f)=>{return new _T({schema:T,effect:{type:"preprocess",transform:o},typeName:g.ZodEffects,...u(f)})};class GT extends e{_parse(o){if(this._getType(o)===N.undefined)return ao(void 0);return this._def.innerType._parse(o)}unwrap(){return this._def.innerType}}GT.create=(o,T)=>{return new GT({innerType:o,typeName:g.ZodOptional,...u(T)})};class qT extends e{_parse(o){if(this._getType(o)===N.null)return ao(null);return this._def.innerType._parse(o)}unwrap(){return this._def.innerType}}qT.create=(o,T)=>{return new qT({innerType:o,typeName:g.ZodNullable,...u(T)})};class rf extends e{_parse(o){let{ctx:T}=this._processInputParams(o),f=T.data;if(T.parsedType===N.undefined)f=this._def.defaultValue();return this._def.innerType._parse({data:f,path:T.path,parent:T})}removeDefault(){return this._def.innerType}}rf.create=(o,T)=>{return new rf({innerType:o,typeName:g.ZodDefault,defaultValue:typeof T.default==="function"?T.default:()=>T.default,...u(T)})};class pf extends e{_parse(o){let{ctx:T}=this._processInputParams(o),f={...T,common:{...T.common,issues:[]}},n=this._def.innerType._parse({data:f.data,path:f.path,parent:{...f}});if(_n(n))return n.then((S)=>{return{status:"valid",value:S.status==="valid"?S.value:this._def.catchValue({get error(){return new JT(f.common.issues)},input:f.data})}});else return{status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new JT(f.common.issues)},input:f.data})}}removeCatch(){return this._def.innerType}}pf.create=(o,T)=>{return new pf({innerType:o,typeName:g.ZodCatch,catchValue:typeof T.catch==="function"?T.catch:()=>T.catch,...u(T)})};class Kn extends e{_parse(o){if(this._getType(o)!==N.nan){let f=this._getOrReturnCtx(o);return m(f,{code:t.invalid_type,expected:N.nan,received:f.parsedType}),d}return{status:"valid",value:o.data}}}Kn.create=(o)=>{return new Kn({typeName:g.ZodNaN,...u(o)})};var OW=Symbol("zod_brand");class MS extends e{_parse(o){let{ctx:T}=this._processInputParams(o),f=T.data;return this._def.type._parse({data:f,path:T.path,parent:T})}unwrap(){return this._def.type}}class En extends e{_parse(o){let{status:T,ctx:f}=this._processInputParams(o);if(f.common.async)return(async()=>{let S=await this._def.in._parseAsync({data:f.data,path:f.path,parent:f});if(S.status==="aborted")return d;if(S.status==="dirty")return T.dirty(),Lf(S.value);else return this._def.out._parseAsync({data:S.value,path:f.path,parent:f})})();else{let n=this._def.in._parseSync({data:f.data,path:f.path,parent:f});if(n.status==="aborted")return d;if(n.status==="dirty")return T.dirty(),{status:"dirty",value:n.value};else return this._def.out._parseSync({data:n.value,path:f.path,parent:f})}}static create(o,T){return new En({in:o,out:T,typeName:g.ZodPipeline})}}class cf extends e{_parse(o){let T=this._def.innerType._parse(o),f=(n)=>{if(Ff(n))n.value=Object.freeze(n.value);return n};return _n(T)?T.then((n)=>f(n)):f(T)}unwrap(){return this._def.innerType}}cf.create=(o,T)=>{return new cf({innerType:o,typeName:g.ZodReadonly,...u(T)})};function uF(o,T){let f=typeof o==="function"?o(T):typeof o==="string"?{message:o}:o;return typeof f==="string"?{message:f}:f}function SJ(o,T={},f){if(o)return Rf.create().superRefine((n,S)=>{var A,$;let F=o(n);if(F instanceof Promise)return F.then((J)=>{var R,M;if(!J){let _=uF(T,n),w=(M=(R=_.fatal)!==null&&R!==void 0?R:f)!==null&&M!==void 0?M:!0;S.addIssue({code:"custom",..._,fatal:w})}});if(!F){let J=uF(T,n),R=($=(A=J.fatal)!==null&&A!==void 0?A:f)!==null&&$!==void 0?$:!0;S.addIssue({code:"custom",...J,fatal:R})}return});return Rf.create()}var kW={object:zo.lazycreate},g;(function(o){o.ZodString="ZodString",o.ZodNumber="ZodNumber",o.ZodNaN="ZodNaN",o.ZodBigInt="ZodBigInt",o.ZodBoolean="ZodBoolean",o.ZodDate="ZodDate",o.ZodSymbol="ZodSymbol",o.ZodUndefined="ZodUndefined",o.ZodNull="ZodNull",o.ZodAny="ZodAny",o.ZodUnknown="ZodUnknown",o.ZodNever="ZodNever",o.ZodVoid="ZodVoid",o.ZodArray="ZodArray",o.ZodObject="ZodObject",o.ZodUnion="ZodUnion",o.ZodDiscriminatedUnion="ZodDiscriminatedUnion",o.ZodIntersection="ZodIntersection",o.ZodTuple="ZodTuple",o.ZodRecord="ZodRecord",o.ZodMap="ZodMap",o.ZodSet="ZodSet",o.ZodFunction="ZodFunction",o.ZodLazy="ZodLazy",o.ZodLiteral="ZodLiteral",o.ZodEnum="ZodEnum",o.ZodEffects="ZodEffects",o.ZodNativeEnum="ZodNativeEnum",o.ZodOptional="ZodOptional",o.ZodNullable="ZodNullable",o.ZodDefault="ZodDefault",o.ZodCatch="ZodCatch",o.ZodPromise="ZodPromise",o.ZodBranded="ZodBranded",o.ZodPipeline="ZodPipeline",o.ZodReadonly="ZodReadonly"})(g||(g={}));var _W=(o,T={message:`Input not instance of ${o.name}`})=>SJ((f)=>f instanceof o,T),AJ=KT.create,$J=gT.create,wW=Kn.create,yW=dT.create,FJ=If.create,XW=Jf.create,HW=wn.create,KW=jf.create,EW=Nf.create,GW=Rf.create,YW=iT.create,tW=BT.create,zW=yn.create,QW=ET.create,DW=zo.create,UW=zo.strictCreate,VW=hf.create,BW=RS.create,LW=bf.create,CW=LT.create,mW=Xn.create,IW=Hn.create,jW=Mf.create,NW=Cf.create,hW=xf.create,bW=vf.create,xW=lT.create,vW=qf.create,qW=Wf.create,eF=_T.create,rW=GT.create,pW=qT.create,cW=_T.createWithPreprocess,ZW=En.create,PW=()=>AJ().optional(),iW=()=>$J().optional(),gW=()=>FJ().optional(),dW={string:(o)=>KT.create({...o,coerce:!0}),number:(o)=>gT.create({...o,coerce:!0}),boolean:(o)=>If.create({...o,coerce:!0}),bigint:(o)=>dT.create({...o,coerce:!0}),date:(o)=>Jf.create({...o,coerce:!0})},lW=d,Go=Object.freeze({__proto__:null,defaultErrorMap:mf,setErrorMap:cM,getErrorMap:$S,makeIssue:FS,EMPTY_PATH:ZM,addIssueToContext:m,ParseStatus:uo,INVALID:d,DIRTY:Lf,OK:ao,isAborted:LA,isDirty:CA,isValid:Ff,isAsync:_n,get util(){return Ao},get objectUtil(){return BA},ZodParsedType:N,getParsedType:vT,ZodType:e,datetimeRegex:fJ,ZodString:KT,ZodNumber:gT,ZodBigInt:dT,ZodBoolean:If,ZodDate:Jf,ZodSymbol:wn,ZodUndefined:jf,ZodNull:Nf,ZodAny:Rf,ZodUnknown:iT,ZodNever:BT,ZodVoid:yn,ZodArray:ET,ZodObject:zo,ZodUnion:hf,ZodDiscriminatedUnion:RS,ZodIntersection:bf,ZodTuple:LT,ZodRecord:Xn,ZodMap:Hn,ZodSet:Mf,ZodFunction:Cf,ZodLazy:xf,ZodLiteral:vf,ZodEnum:lT,ZodNativeEnum:qf,ZodPromise:Wf,ZodEffects:_T,ZodTransformer:_T,ZodOptional:GT,ZodNullable:qT,ZodDefault:rf,ZodCatch:pf,ZodNaN:Kn,BRAND:OW,ZodBranded:MS,ZodPipeline:En,ZodReadonly:cf,custom:SJ,Schema:e,ZodSchema:e,late:kW,get ZodFirstPartyTypeKind(){return g},coerce:dW,any:GW,array:QW,bigint:yW,boolean:FJ,date:XW,discriminatedUnion:BW,effect:eF,enum:xW,function:NW,instanceof:_W,intersection:LW,lazy:hW,literal:bW,map:IW,nan:wW,nativeEnum:vW,never:tW,null:EW,nullable:pW,number:$J,object:DW,oboolean:gW,onumber:iW,optional:rW,ostring:PW,pipeline:ZW,preprocess:cW,promise:qW,record:mW,set:jW,strictObject:UW,string:AJ,symbol:HW,transformer:eF,tuple:CW,undefined:KW,union:VW,unknown:YW,void:zW,NEVER:lW,ZodIssueCode:t,quotelessJson:pM,ZodError:JT});var uW="__vite_start_time"in globalThis,eW=typeof window!=="undefined",n6="vitest"in globalThis,tT=dF({isServer:!uW&&!eW,server:{CI:Go.string().transform((o)=>!0).optional(),POSTGRES_USER:Go.string(),POSTGRES_PASSWORD:Go.string(),POSTGRES_DATABASE:Go.string(),POSTGRES_HOST:Go.string(),POSTGRES_PORT:Go.string().transform((o)=>Number.parseInt(o,10)),BACKEND_PORT:Go.string().transform((o)=>Number.parseInt(o,10)),RUN_WORKERS_FROM_SOURCE:Go.union([Go.literal("true"),Go.literal("false")]).optional().transform((o)=>o==="true"),FRONTEND_PORT:Go.string().transform((o)=>Number.parseInt(o,10)),FRONTEND_ORIGINS:Go.string().transform((o)=>JSON.parse(o)).pipe(Go.array(Go.string())),OPENAI_API_KEY:Go.string().optional()},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:Go.string(),VITE_USE_SELF_SIGNED_CERTIFICATE:Go.union([Go.literal("true"),Go.literal("false")]).optional().transform((o)=>o==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var RJ=IA(import.meta.dirname,"../dev"),MJ=tT.VITE_USE_SELF_SIGNED_CERTIFICATE?{cert:JJ(IA(RJ,"./cert.pem"),"utf-8"),key:JJ(IA(RJ,"./key.pem"),"utf-8")}:void 0;import aO from"path";var O=Symbol.for("drizzle:entityKind"),R6=Symbol.for("drizzle:hasOwnEntityKind");function H(o,T){if(!o||typeof o!=="object")return!1;if(o instanceof T)return!0;if(!Object.prototype.hasOwnProperty.call(T,O))throw new Error(`Class "${T.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let f=Object.getPrototypeOf(o).constructor;if(f)while(f){if(O in f&&f[O]===T[O])return!0;f=Object.getPrototypeOf(f)}return!1}class _o{constructor(o,T){this.table=o,this.config=T,this.name=T.name,this.keyAsName=T.keyAsName,this.notNull=T.notNull,this.default=T.default,this.defaultFn=T.defaultFn,this.onUpdateFn=T.onUpdateFn,this.hasDefault=T.hasDefault,this.primary=T.primaryKey,this.isUnique=T.isUnique,this.uniqueName=T.uniqueName,this.uniqueType=T.uniqueType,this.dataType=T.dataType,this.columnType=T.columnType,this.generated=T.generated,this.generatedIdentity=T.generatedIdentity}static[O]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(o){return o}mapToDriverValue(o){return o}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class jA{static[O]="ColumnBuilder";config;constructor(o,T,f){this.config={name:o,keyAsName:o==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:T,columnType:f,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(o){return this.config.default=o,this.config.hasDefault=!0,this}$defaultFn(o){return this.config.defaultFn=o,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(o){return this.config.onUpdateFn=o,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(o){if(this.config.name!=="")return;this.config.name=o}}var zT=Symbol.for("drizzle:Name");class NA{static[O]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(o,T){if(this.reference=()=>{let{name:f,columns:n,foreignColumns:S}=o();return{name:f,columns:n,foreignTable:S[0].table,foreignColumns:S}},T)this._onUpdate=T.onUpdate,this._onDelete=T.onDelete}onUpdate(o){return this._onUpdate=o===void 0?"no action":o,this}onDelete(o){return this._onDelete=o===void 0?"no action":o,this}build(o){return new WJ(o,this)}}class WJ{constructor(o,T){this.table=o,this.reference=T.reference,this.onUpdate=T._onUpdate,this.onDelete=T._onDelete}static[O]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:o,columns:T,foreignColumns:f}=this.reference(),n=T.map(($)=>$.name),S=f.map(($)=>$.name),A=[this.table[zT],...n,f[0].table[zT],...S];return o??`${A.join("_")}_fk`}}function WS(o,...T){return o(...T)}function OJ(o,T){return`${o[zT]}_${T.join("_")}_unique`}function kJ(o,T,f){for(let n=T;n<o.length;n++){let S=o[n];if(S==="\\"){n++;continue}if(S==='"')return[o.slice(T,n).replace(/\\/g,""),n+1];if(f)continue;if(S===","||S==="}")return[o.slice(T,n).replace(/\\/g,""),n]}return[o.slice(T).replace(/\\/g,""),o.length]}function _J(o,T=0){let f=[],n=T,S=!1;while(n<o.length){let A=o[n];if(A===","){if(S||n===T)f.push("");S=!0,n++;continue}if(S=!1,A==="\\"){n+=2;continue}if(A==='"'){let[J,R]=kJ(o,n+1,!0);f.push(J),n=R;continue}if(A==="}")return[f,n+1];if(A==="{"){let[J,R]=_J(o,n+1);f.push(J),n=R;continue}let[$,F]=kJ(o,n,!1);f.push($),n=F}return[f,n]}function wJ(o){let[T]=_J(o,1);return T}function hA(o){return`{${o.map((T)=>{if(Array.isArray(T))return hA(T);if(typeof T==="string")return`"${T.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${T}`}).join(",")}}`}class b extends jA{foreignKeyConfigs=[];static[O]="PgColumnBuilder";array(o){return new XJ(this.config.name,this,o)}references(o,T={}){return this.foreignKeyConfigs.push({ref:o,actions:T}),this}unique(o,T){return this.config.isUnique=!0,this.config.uniqueName=o,this.config.uniqueType=T?.nulls,this}generatedAlwaysAs(o){return this.config.generated={as:o,type:"always",mode:"stored"},this}buildForeignKeys(o,T){return this.foreignKeyConfigs.map(({ref:f,actions:n})=>{return WS((S,A)=>{let $=new NA(()=>{let F=S();return{columns:[o],foreignColumns:[F]}});if(A.onUpdate)$.onUpdate(A.onUpdate);if(A.onDelete)$.onDelete(A.onDelete);return $.build(T)},f,n)})}buildExtraConfigColumn(o){return new yJ(o,this.config)}}class V extends _o{constructor(o,T){if(!T.uniqueName)T.uniqueName=OJ(o,[T.name]);super(o,T);this.table=o}static[O]="PgColumn"}class yJ extends V{static[O]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(o){return this.indexConfig.opClass=o,this}}class Gn{static[O]="IndexedColumn";constructor(o,T,f,n){this.name=o,this.keyAsName=T,this.type=f,this.indexConfig=n}name;keyAsName;type;indexConfig}class XJ extends b{static[O]="PgArrayBuilder";constructor(o,T,f){super(o,"array","PgArray");this.config.baseBuilder=T,this.config.size=f}build(o){let T=this.config.baseBuilder.build(o);return new bA(o,this.config,T)}}class bA extends V{constructor(o,T,f,n){super(o,T);this.baseColumn=f,this.range=n,this.size=T.size}size;static[O]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(o){if(typeof o==="string")o=wJ(o);return o.map((T)=>this.baseColumn.mapFromDriverValue(T))}mapToDriverValue(o,T=!1){let f=o.map((n)=>n===null?null:H(this.baseColumn,bA)?this.baseColumn.mapToDriverValue(n,!0):this.baseColumn.mapToDriverValue(n));if(T)return f;return hA(f)}}var xA=Symbol.for("drizzle:isPgEnum");function HJ(o){return!!o&&typeof o==="function"&&xA in o&&o[xA]===!0}class KJ extends b{static[O]="PgEnumColumnBuilder";constructor(o,T){super(o,"string","PgEnumColumn");this.config.enum=T}build(o){return new EJ(o,this.config)}}class EJ extends V{static[O]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(o,T){super(o,T);this.enum=T.enum}getSQLType(){return this.enum.enumName}}function OS(o,T){return sW(o,T,void 0)}function sW(o,T,f){let n=Object.assign((S)=>new KJ(S??"",n),{enumName:o,enumValues:T,schema:f,[xA]:!0});return n}class bo{static[O]="Subquery";constructor(o,T,f,n=!1){this._={brand:"Subquery",sql:o,selectedFields:T,alias:f,isWith:n}}}class Yn extends bo{static[O]="WithSubquery"}var GJ="0.40.0";var vA,qA,wo={startActiveSpan(o,T){if(!vA)return T();if(!qA)qA=vA.trace.getTracer("drizzle-orm",GJ);return WS((f,n)=>n.startActiveSpan(o,(S)=>{try{return T(S)}catch(A){throw S.setStatus({code:f.SpanStatusCode.ERROR,message:A instanceof Error?A.message:"Unknown error"}),A}finally{S.end()}}),vA,qA)}};var Ho=Symbol.for("drizzle:ViewBaseConfig");var kS=Symbol.for("drizzle:Schema"),_S=Symbol.for("drizzle:Columns"),YJ=Symbol.for("drizzle:ExtraConfigColumns"),rA=Symbol.for("drizzle:OriginalName"),pA=Symbol.for("drizzle:BaseName"),tn=Symbol.for("drizzle:IsAlias"),tJ=Symbol.for("drizzle:ExtraConfigBuilder"),aW=Symbol.for("drizzle:IsDrizzleTable");class I{static[O]="Table";static Symbol={Name:zT,Schema:kS,OriginalName:rA,Columns:_S,ExtraConfigColumns:YJ,BaseName:pA,IsAlias:tn,ExtraConfigBuilder:tJ};[zT];[rA];[kS];[_S];[YJ];[pA];[tn]=!1;[aW]=!0;[tJ]=void 0;constructor(o,T,f){this[zT]=this[rA]=o,this[kS]=T,this[pA]=f}}function qo(o){return o[zT]}function Of(o){return`${o[kS]??"public"}.${o[zT]}`}function cA(o){return o!==null&&o!==void 0&&typeof o.getSQL==="function"}function oO(o){let T={sql:"",params:[]};for(let f of o)if(T.sql+=f.sql,T.params.push(...f.params),f.typings?.length){if(!T.typings)T.typings=[];T.typings.push(...f.typings)}return T}class xo{static[O]="StringChunk";value;constructor(o){this.value=Array.isArray(o)?o:[o]}getSQL(){return new j([this])}}class j{constructor(o){this.queryChunks=o}static[O]="SQL";decoder=QJ;shouldInlineParams=!1;append(o){return this.queryChunks.push(...o.queryChunks),this}toQuery(o){return wo.startActiveSpan("drizzle.buildSQL",(T)=>{let f=this.buildQueryFromSourceParams(this.queryChunks,o);return T?.setAttributes({"drizzle.query.text":f.sql,"drizzle.query.params":JSON.stringify(f.params)}),f})}buildQueryFromSourceParams(o,T){let f=Object.assign({},T,{inlineParams:T.inlineParams||this.shouldInlineParams,paramStartIndex:T.paramStartIndex||{value:0}}),{casing:n,escapeName:S,escapeParam:A,prepareTyping:$,inlineParams:F,paramStartIndex:J}=f;return oO(o.map((R)=>{if(H(R,xo))return{sql:R.value.join(""),params:[]};if(H(R,wS))return{sql:S(R.value),params:[]};if(R===void 0)return{sql:"",params:[]};if(Array.isArray(R)){let M=[new xo("(")];for(let[_,w]of R.entries())if(M.push(w),_<R.length-1)M.push(new xo(", "));return M.push(new xo(")")),this.buildQueryFromSourceParams(M,f)}if(H(R,j))return this.buildQueryFromSourceParams(R.queryChunks,{...f,inlineParams:F||R.shouldInlineParams});if(H(R,I)){let M=R[I.Symbol.Schema],_=R[I.Symbol.Name];return{sql:M===void 0||R[tn]?S(_):S(M)+"."+S(_),params:[]}}if(H(R,_o)){let M=n.getColumnCasing(R);if(T.invokeSource==="indexes")return{sql:S(M),params:[]};let _=R.table[I.Symbol.Schema];return{sql:R.table[tn]||_===void 0?S(R.table[I.Symbol.Name])+"."+S(M):S(_)+"."+S(R.table[I.Symbol.Name])+"."+S(M),params:[]}}if(H(R,ST)){let M=R[Ho].schema,_=R[Ho].name;return{sql:M===void 0||R[Ho].isAlias?S(_):S(M)+"."+S(_),params:[]}}if(H(R,RT)){if(H(R.value,uT))return{sql:A(J.value++,R),params:[R],typings:["none"]};let M=R.value===null?null:R.encoder.mapToDriverValue(R.value);if(H(M,j))return this.buildQueryFromSourceParams([M],f);if(F)return{sql:this.mapInlineParam(M,f),params:[]};let _=["none"];if($)_=[$(R.encoder)];return{sql:A(J.value++,M),params:[M],typings:_}}if(H(R,uT))return{sql:A(J.value++,R),params:[R],typings:["none"]};if(H(R,j.Aliased)&&R.fieldAlias!==void 0)return{sql:S(R.fieldAlias),params:[]};if(H(R,bo)){if(R._.isWith)return{sql:S(R._.alias),params:[]};return this.buildQueryFromSourceParams([new xo("("),R._.sql,new xo(") "),new wS(R._.alias)],f)}if(HJ(R)){if(R.schema)return{sql:S(R.schema)+"."+S(R.enumName),params:[]};return{sql:S(R.enumName),params:[]}}if(cA(R)){if(R.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([R.getSQL()],f);return this.buildQueryFromSourceParams([new xo("("),R.getSQL(),new xo(")")],f)}if(F)return{sql:this.mapInlineParam(R,f),params:[]};return{sql:A(J.value++,R),params:[R],typings:["none"]}}))}mapInlineParam(o,{escapeString:T}){if(o===null)return"null";if(typeof o==="number"||typeof o==="boolean")return o.toString();if(typeof o==="string")return T(o);if(typeof o==="object"){let f=o.toString();if(f==="[object Object]")return T(JSON.stringify(o));return T(f)}throw new Error("Unexpected param value: "+o)}getSQL(){return this}as(o){if(o===void 0)return this;return new j.Aliased(this,o)}mapWith(o){return this.decoder=typeof o==="function"?{mapFromDriverValue:o}:o,this}inlineParams(){return this.shouldInlineParams=!0,this}if(o){return o?this:void 0}}class wS{constructor(o){this.value=o}static[O]="Name";brand;getSQL(){return new j([this])}}function zJ(o){return typeof o==="object"&&o!==null&&"mapToDriverValue"in o&&typeof o.mapToDriverValue==="function"}var QJ={mapFromDriverValue:(o)=>o},DJ={mapToDriverValue:(o)=>o},e6={...QJ,...DJ};class RT{constructor(o,T=DJ){this.value=o,this.encoder=T}static[O]="Param";brand;getSQL(){return new j([this])}}function k(o,...T){let f=[];if(T.length>0||o.length>0&&o[0]!=="")f.push(new xo(o[0]));for(let[n,S]of T.entries())f.push(S,new xo(o[n+1]));return new j(f)}((o)=>{function T(){return new j([])}o.empty=T;function f(J){return new j(J)}o.fromList=f;function n(J){return new j([new xo(J)])}o.raw=n;function S(J,R){let M=[];for(let[_,w]of J.entries()){if(_>0&&R!==void 0)M.push(R);M.push(w)}return new j(M)}o.join=S;function A(J){return new wS(J)}o.identifier=A;function $(J){return new uT(J)}o.placeholder=$;function F(J,R){return new RT(J,R)}o.param=F})(k||(k={}));((o)=>{class T{constructor(f,n){this.sql=f,this.fieldAlias=n}static[O]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new T(this.sql,this.fieldAlias)}}o.Aliased=T})(j||(j={}));class uT{constructor(o){this.name=o}static[O]="Placeholder";getSQL(){return new j([this])}}function ZA(o,T){return o.map((f)=>{if(H(f,uT)){if(!(f.name in T))throw new Error(`No value for placeholder "${f.name}" was provided`);return T[f.name]}if(H(f,RT)&&H(f.value,uT)){if(!(f.value.name in T))throw new Error(`No value for placeholder "${f.value.name}" was provided`);return f.encoder.mapToDriverValue(T[f.value.name])}return f})}var TO=Symbol.for("drizzle:IsDrizzleView");class ST{static[O]="View";[Ho];[TO]=!0;constructor({name:o,schema:T,selectedFields:f,query:n}){this[Ho]={name:o,originalName:o,schema:T,selectedFields:f,query:n,isExisting:!n,isAlias:!1}}getSQL(){return new j([this])}}_o.prototype.getSQL=function(){return new j([this])};I.prototype.getSQL=function(){return new j([this])};bo.prototype.getSQL=function(){return new j([this])};class Zf{constructor(o){this.table=o}static[O]="ColumnAliasProxyHandler";get(o,T){if(T==="table")return this.table;return o[T]}}class zn{constructor(o,T){this.alias=o,this.replaceOriginalName=T}static[O]="TableAliasProxyHandler";get(o,T){if(T===I.Symbol.IsAlias)return!0;if(T===I.Symbol.Name)return this.alias;if(this.replaceOriginalName&&T===I.Symbol.OriginalName)return this.alias;if(T===Ho)return{...o[Ho],name:this.alias,isAlias:!0};if(T===I.Symbol.Columns){let n=o[I.Symbol.Columns];if(!n)return n;let S={};return Object.keys(n).map((A)=>{S[A]=new Proxy(n[A],new Zf(new Proxy(o,this)))}),S}let f=o[T];if(H(f,_o))return new Proxy(f,new Zf(new Proxy(o,this)));return f}}function yS(o,T){return new Proxy(o,new zn(T,!1))}function CT(o,T){return new Proxy(o,new Zf(new Proxy(o.table,new zn(T,!1))))}function PA(o,T){return new j.Aliased(Qn(o.sql,T),o.fieldAlias)}function Qn(o,T){return k.join(o.queryChunks.map((f)=>{if(H(f,_o))return CT(f,T);if(H(f,j))return Qn(f,T);if(H(f,j.Aliased))return PA(f,T);return f}))}class XS extends Error{static[O]="DrizzleError";constructor({message:o,cause:T}){super(o);this.name="DrizzleError",this.cause=T}}class iA extends XS{static[O]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function AT(o,T){if(zJ(T)&&!cA(o)&&!H(o,RT)&&!H(o,uT)&&!H(o,_o)&&!H(o,I)&&!H(o,ST))return new RT(o,T);return o}var HS=(o,T)=>{return k`${o} = ${AT(T,o)}`},UJ=(o,T)=>{return k`${o} <> ${AT(T,o)}`};function Dn(...o){let T=o.filter((f)=>f!==void 0);if(T.length===0)return;if(T.length===1)return new j(T);return new j([new xo("("),k.join(T,new xo(" and ")),new xo(")")])}function VJ(...o){let T=o.filter((f)=>f!==void 0);if(T.length===0)return;if(T.length===1)return new j(T);return new j([new xo("("),k.join(T,new xo(" or ")),new xo(")")])}function BJ(o){return k`not ${o}`}var LJ=(o,T)=>{return k`${o} > ${AT(T,o)}`},CJ=(o,T)=>{return k`${o} >= ${AT(T,o)}`},mJ=(o,T)=>{return k`${o} < ${AT(T,o)}`},IJ=(o,T)=>{return k`${o} <= ${AT(T,o)}`};function jJ(o,T){if(Array.isArray(T)){if(T.length===0)return k`false`;return k`${o} in ${T.map((f)=>AT(f,o))}`}return k`${o} in ${AT(T,o)}`}function NJ(o,T){if(Array.isArray(T)){if(T.length===0)return k`true`;return k`${o} not in ${T.map((f)=>AT(f,o))}`}return k`${o} not in ${AT(T,o)}`}function hJ(o){return k`${o} is null`}function bJ(o){return k`${o} is not null`}function xJ(o){return k`exists ${o}`}function vJ(o){return k`not exists ${o}`}function qJ(o,T,f){return k`${o} between ${AT(T,o)} and ${AT(f,o)}`}function rJ(o,T,f){return k`${o} not between ${AT(T,o)} and ${AT(f,o)}`}function pJ(o,T){return k`${o} like ${T}`}function cJ(o,T){return k`${o} not like ${T}`}function ZJ(o,T){return k`${o} ilike ${T}`}function PJ(o,T){return k`${o} not ilike ${T}`}function iJ(o){return k`${o} asc`}function gJ(o){return k`${o} desc`}class dJ{static[O]="ConsoleLogWriter";write(o){console.log(o)}}class gA{static[O]="DefaultLogger";writer;constructor(o){this.writer=o?.writer??new dJ}logQuery(o,T){let f=T.map((S)=>{try{return JSON.stringify(S)}catch{return String(S)}}),n=f.length?` -- params: [${f.join(", ")}]`:"";this.writer.write(`Query: ${o}${n}`)}}class dA{static[O]="NoopLogger";logQuery(){}}class oT{static[O]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(o){return this.then(void 0,o)}finally(o){return this.then((T)=>{return o?.(),T},(T)=>{throw o?.(),T})}then(o,T){return this.execute().then(o,T)}}function lJ(o,T,f){let n={},S=o.reduce((A,{path:$,field:F},J)=>{let R;if(H(F,_o))R=F;else if(H(F,j))R=F.decoder;else R=F.sql.decoder;let M=A;for(let[_,w]of $.entries())if(_<$.length-1){if(!(w in M))M[w]={};M=M[w]}else{let X=T[J],D=M[w]=X===null?null:R.mapFromDriverValue(X);if(f&&H(F,_o)&&$.length===2){let K=$[0];if(!(K in n))n[K]=D===null?qo(F.table):!1;else if(typeof n[K]==="string"&&n[K]!==qo(F.table))n[K]=!1}}return A},{});if(f&&Object.keys(n).length>0){for(let[A,$]of Object.entries(n))if(typeof $==="string"&&!f[$])S[A]=null}return S}function wT(o,T){return Object.entries(o).reduce((f,[n,S])=>{if(typeof n!=="string")return f;let A=T?[...T,n]:[n];if(H(S,_o)||H(S,j)||H(S,j.Aliased))f.push({path:A,field:S});else if(H(S,I))f.push(...wT(S[I.Symbol.Columns],A));else f.push(...wT(S,A));return f},[])}function Un(o,T){let f=Object.keys(o),n=Object.keys(T);if(f.length!==n.length)return!1;for(let[S,A]of f.entries())if(A!==n[S])return!1;return!0}function KS(o,T){let f=Object.entries(T).filter(([,n])=>n!==void 0).map(([n,S])=>{if(H(S,j)||H(S,_o))return[n,S];else return[n,new RT(S,o[I.Symbol.Columns][n])]});if(f.length===0)throw new Error("No values to set");return Object.fromEntries(f)}function uJ(o,T){for(let f of T)for(let n of Object.getOwnPropertyNames(f.prototype)){if(n==="constructor")continue;Object.defineProperty(o.prototype,n,Object.getOwnPropertyDescriptor(f.prototype,n)||Object.create(null))}}function eJ(o){return o[I.Symbol.Columns]}function rT(o){return H(o,bo)?o._.alias:H(o,ST)?o[Ho].name:H(o,j)?void 0:o[I.Symbol.IsAlias]?o[I.Symbol.Name]:o[I.Symbol.BaseName]}function So(o,T){return{name:typeof o==="string"&&o.length>0?o:"",config:typeof o==="object"?o:T}}function sJ(o){if(typeof o!=="object"||o===null)return!1;if(o.constructor.name!=="Object")return!1;if("logger"in o){let T=typeof o.logger;if(T!=="boolean"&&(T!=="object"||typeof o.logger.logQuery!=="function")&&T!=="undefined")return!1;return!0}if("schema"in o){let T=typeof o.logger;if(T!=="object"&&T!=="undefined")return!1;return!0}if("casing"in o){let T=typeof o.logger;if(T!=="string"&&T!=="undefined")return!1;return!0}if("mode"in o){if(o.mode!=="default"||o.mode!=="planetscale"||o.mode!==void 0)return!1;return!0}if("connection"in o){let T=typeof o.connection;if(T!=="string"&&T!=="object"&&T!=="undefined")return!1;return!0}if("client"in o){let T=typeof o.client;if(T!=="object"&&T!=="function"&&T!=="undefined")return!1;return!0}if(Object.keys(o).length===0)return!0;return!1}class eT extends b{static[O]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(o){if(o){let{name:T,...f}=o;this.config.generatedIdentity={type:"always",sequenceName:T,sequenceOptions:f}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(o){if(o){let{name:T,...f}=o;this.config.generatedIdentity={type:"byDefault",sequenceName:T,sequenceOptions:f}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class aJ extends eT{static[O]="PgBigInt53Builder";constructor(o){super(o,"number","PgBigInt53")}build(o){return new oR(o,this.config)}}class oR extends V{static[O]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(o){if(typeof o==="number")return o;return Number(o)}}class TR extends eT{static[O]="PgBigInt64Builder";constructor(o){super(o,"bigint","PgBigInt64")}build(o){return new fR(o,this.config)}}class fR extends V{static[O]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(o){return BigInt(o)}}function nR(o,T){let{name:f,config:n}=So(o,T);if(n.mode==="number")return new aJ(f);return new TR(f)}class SR extends b{static[O]="PgBigSerial53Builder";constructor(o){super(o,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(o){return new AR(o,this.config)}}class AR extends V{static[O]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(o){if(typeof o==="number")return o;return Number(o)}}class $R extends b{static[O]="PgBigSerial64Builder";constructor(o){super(o,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(o){return new FR(o,this.config)}}class FR extends V{static[O]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(o){return BigInt(o)}}function JR(o,T){let{name:f,config:n}=So(o,T);if(n.mode==="number")return new SR(f);return new $R(f)}class RR extends b{static[O]="PgBooleanBuilder";constructor(o){super(o,"boolean","PgBoolean")}build(o){return new MR(o,this.config)}}class MR extends V{static[O]="PgBoolean";getSQLType(){return"boolean"}}function Vn(o){return new RR(o??"")}class WR extends b{static[O]="PgCharBuilder";constructor(o,T){super(o,"string","PgChar");this.config.length=T.length,this.config.enumValues=T.enum}build(o){return new OR(o,this.config)}}class OR extends V{static[O]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function kR(o,T={}){let{name:f,config:n}=So(o,T);return new WR(f,n)}class _R extends b{static[O]="PgCidrBuilder";constructor(o){super(o,"string","PgCidr")}build(o){return new wR(o,this.config)}}class wR extends V{static[O]="PgCidr";getSQLType(){return"cidr"}}function yR(o){return new _R(o??"")}class XR extends b{static[O]="PgCustomColumnBuilder";constructor(o,T,f){super(o,"custom","PgCustomColumn");this.config.fieldConfig=T,this.config.customTypeParams=f}build(o){return new HR(o,this.config)}}class HR extends V{static[O]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(o,T){super(o,T);this.sqlName=T.customTypeParams.dataType(T.fieldConfig),this.mapTo=T.customTypeParams.toDriver,this.mapFrom=T.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(o){return typeof this.mapFrom==="function"?this.mapFrom(o):o}mapToDriverValue(o){return typeof this.mapTo==="function"?this.mapTo(o):o}}function KR(o){return(T,f)=>{let{name:n,config:S}=So(T,f);return new XR(n,S,o)}}class pT extends b{static[O]="PgDateColumnBaseBuilder";defaultNow(){return this.default(k`now()`)}}class ER extends pT{static[O]="PgDateBuilder";constructor(o){super(o,"date","PgDate")}build(o){return new ES(o,this.config)}}class ES extends V{static[O]="PgDate";getSQLType(){return"date"}mapFromDriverValue(o){return new Date(o)}mapToDriverValue(o){return o.toISOString()}}class GR extends pT{static[O]="PgDateStringBuilder";constructor(o){super(o,"string","PgDateString")}build(o){return new GS(o,this.config)}}class GS extends V{static[O]="PgDateString";getSQLType(){return"date"}}function YR(o,T){let{name:f,config:n}=So(o,T);if(n?.mode==="date")return new ER(f);return new GR(f)}class tR extends b{static[O]="PgDoublePrecisionBuilder";constructor(o){super(o,"number","PgDoublePrecision")}build(o){return new zR(o,this.config)}}class zR extends V{static[O]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(o){if(typeof o==="string")return Number.parseFloat(o);return o}}function QR(o){return new tR(o??"")}class DR extends b{static[O]="PgInetBuilder";constructor(o){super(o,"string","PgInet")}build(o){return new UR(o,this.config)}}class UR extends V{static[O]="PgInet";getSQLType(){return"inet"}}function VR(o){return new DR(o??"")}class BR extends eT{static[O]="PgIntegerBuilder";constructor(o){super(o,"number","PgInteger")}build(o){return new LR(o,this.config)}}class LR extends V{static[O]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(o){if(typeof o==="string")return Number.parseInt(o);return o}}function YS(o){return new BR(o??"")}class CR extends b{static[O]="PgIntervalBuilder";constructor(o,T){super(o,"string","PgInterval");this.config.intervalConfig=T}build(o){return new mR(o,this.config)}}class mR extends V{static[O]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let o=this.fields?` ${this.fields}`:"",T=this.precision?`(${this.precision})`:"";return`interval${o}${T}`}}function IR(o,T={}){let{name:f,config:n}=So(o,T);return new CR(f,n)}class jR extends b{static[O]="PgJsonBuilder";constructor(o){super(o,"json","PgJson")}build(o){return new tS(o,this.config)}}class tS extends V{static[O]="PgJson";constructor(o,T){super(o,T)}getSQLType(){return"json"}mapToDriverValue(o){return JSON.stringify(o)}mapFromDriverValue(o){if(typeof o==="string")try{return JSON.parse(o)}catch{return o}return o}}function NR(o){return new jR(o??"")}class hR extends b{static[O]="PgJsonbBuilder";constructor(o){super(o,"json","PgJsonb")}build(o){return new zS(o,this.config)}}class zS extends V{static[O]="PgJsonb";constructor(o,T){super(o,T)}getSQLType(){return"jsonb"}mapToDriverValue(o){return JSON.stringify(o)}mapFromDriverValue(o){if(typeof o==="string")try{return JSON.parse(o)}catch{return o}return o}}function bR(o){return new hR(o??"")}class xR extends b{static[O]="PgLineBuilder";constructor(o){super(o,"array","PgLine")}build(o){return new vR(o,this.config)}}class vR extends V{static[O]="PgLine";getSQLType(){return"line"}mapFromDriverValue(o){let[T,f,n]=o.slice(1,-1).split(",");return[Number.parseFloat(T),Number.parseFloat(f),Number.parseFloat(n)]}mapToDriverValue(o){return`{${o[0]},${o[1]},${o[2]}}`}}class qR extends b{static[O]="PgLineABCBuilder";constructor(o){super(o,"json","PgLineABC")}build(o){return new rR(o,this.config)}}class rR extends V{static[O]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(o){let[T,f,n]=o.slice(1,-1).split(",");return{a:Number.parseFloat(T),b:Number.parseFloat(f),c:Number.parseFloat(n)}}mapToDriverValue(o){return`{${o.a},${o.b},${o.c}}`}}function pR(o,T){let{name:f,config:n}=So(o,T);if(!n?.mode||n.mode==="tuple")return new xR(f);return new qR(f)}class cR extends b{static[O]="PgMacaddrBuilder";constructor(o){super(o,"string","PgMacaddr")}build(o){return new ZR(o,this.config)}}class ZR extends V{static[O]="PgMacaddr";getSQLType(){return"macaddr"}}function PR(o){return new cR(o??"")}class iR extends b{static[O]="PgMacaddr8Builder";constructor(o){super(o,"string","PgMacaddr8")}build(o){return new gR(o,this.config)}}class gR extends V{static[O]="PgMacaddr8";getSQLType(){return"macaddr8"}}function dR(o){return new iR(o??"")}class lR extends b{static[O]="PgNumericBuilder";constructor(o,T,f){super(o,"string","PgNumeric");this.config.precision=T,this.config.scale=f}build(o){return new QS(o,this.config)}}class QS extends V{static[O]="PgNumeric";precision;scale;constructor(o,T){super(o,T);this.precision=T.precision,this.scale=T.scale}getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}function uR(o,T){let{name:f,config:n}=So(o,T);return new lR(f,n?.precision,n?.scale)}class eR extends b{static[O]="PgPointTupleBuilder";constructor(o){super(o,"array","PgPointTuple")}build(o){return new sR(o,this.config)}}class sR extends V{static[O]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(o){if(typeof o==="string"){let[T,f]=o.slice(1,-1).split(",");return[Number.parseFloat(T),Number.parseFloat(f)]}return[o.x,o.y]}mapToDriverValue(o){return`(${o[0]},${o[1]})`}}class aR extends b{static[O]="PgPointObjectBuilder";constructor(o){super(o,"json","PgPointObject")}build(o){return new o0(o,this.config)}}class o0 extends V{static[O]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(o){if(typeof o==="string"){let[T,f]=o.slice(1,-1).split(",");return{x:Number.parseFloat(T),y:Number.parseFloat(f)}}return o}mapToDriverValue(o){return`(${o.x},${o.y})`}}function T0(o,T){let{name:f,config:n}=So(o,T);if(!n?.mode||n.mode==="tuple")return new eR(f);return new aR(f)}function fO(o){let T=[];for(let f=0;f<o.length;f+=2)T.push(Number.parseInt(o.slice(f,f+2),16));return new Uint8Array(T)}function f0(o,T){let f=new ArrayBuffer(8),n=new DataView(f);for(let S=0;S<8;S++)n.setUint8(S,o[T+S]);return n.getFloat64(0,!0)}function lA(o){let T=fO(o),f=0,n=T[f];f+=1;let S=new DataView(T.buffer),A=S.getUint32(f,n===1);f+=4;let $;if(A&536870912)$=S.getUint32(f,n===1),f+=4;if((A&65535)===1){let F=f0(T,f);f+=8;let J=f0(T,f);return f+=8,[F,J]}throw new Error("Unsupported geometry type")}class n0 extends b{static[O]="PgGeometryBuilder";constructor(o){super(o,"array","PgGeometry")}build(o){return new S0(o,this.config)}}class S0 extends V{static[O]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(o){return lA(o)}mapToDriverValue(o){return`point(${o[0]} ${o[1]})`}}class A0 extends b{static[O]="PgGeometryObjectBuilder";constructor(o){super(o,"json","PgGeometryObject")}build(o){return new $0(o,this.config)}}class $0 extends V{static[O]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(o){let T=lA(o);return{x:T[0],y:T[1]}}mapToDriverValue(o){return`point(${o.x} ${o.y})`}}function F0(o,T){let{name:f,config:n}=So(o,T);if(!n?.mode||n.mode==="tuple")return new n0(f);return new A0(f)}class J0 extends b{static[O]="PgRealBuilder";constructor(o,T){super(o,"number","PgReal");this.config.length=T}build(o){return new R0(o,this.config)}}class R0 extends V{static[O]="PgReal";constructor(o,T){super(o,T)}getSQLType(){return"real"}mapFromDriverValue=(o)=>{if(typeof o==="string")return Number.parseFloat(o);return o}}function M0(o){return new J0(o??"")}class W0 extends b{static[O]="PgSerialBuilder";constructor(o){super(o,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(o){return new O0(o,this.config)}}class O0 extends V{static[O]="PgSerial";getSQLType(){return"serial"}}function k0(o){return new W0(o??"")}class _0 extends eT{static[O]="PgSmallIntBuilder";constructor(o){super(o,"number","PgSmallInt")}build(o){return new w0(o,this.config)}}class w0 extends V{static[O]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(o)=>{if(typeof o==="string")return Number(o);return o}}function y0(o){return new _0(o??"")}class X0 extends b{static[O]="PgSmallSerialBuilder";constructor(o){super(o,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(o){return new H0(o,this.config)}}class H0 extends V{static[O]="PgSmallSerial";getSQLType(){return"smallserial"}}function K0(o){return new X0(o??"")}class E0 extends b{static[O]="PgTextBuilder";constructor(o,T){super(o,"string","PgText");this.config.enumValues=T.enum}build(o){return new G0(o,this.config)}}class G0 extends V{static[O]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function Y0(o,T={}){let{name:f,config:n}=So(o,T);return new E0(f,n)}class t0 extends pT{constructor(o,T,f){super(o,"string","PgTime");this.withTimezone=T,this.precision=f,this.config.withTimezone=T,this.config.precision=f}static[O]="PgTimeBuilder";build(o){return new DS(o,this.config)}}class DS extends V{static[O]="PgTime";withTimezone;precision;constructor(o,T){super(o,T);this.withTimezone=T.withTimezone,this.precision=T.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function z0(o,T={}){let{name:f,config:n}=So(o,T);return new t0(f,n.withTimezone??!1,n.precision)}class Q0 extends pT{static[O]="PgTimestampBuilder";constructor(o,T,f){super(o,"date","PgTimestamp");this.config.withTimezone=T,this.config.precision=f}build(o){return new US(o,this.config)}}class US extends V{static[O]="PgTimestamp";withTimezone;precision;constructor(o,T){super(o,T);this.withTimezone=T.withTimezone,this.precision=T.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(o)=>{return new Date(this.withTimezone?o:o+"+0000")};mapToDriverValue=(o)=>{return o.toISOString()}}class D0 extends pT{static[O]="PgTimestampStringBuilder";constructor(o,T,f){super(o,"string","PgTimestampString");this.config.withTimezone=T,this.config.precision=f}build(o){return new VS(o,this.config)}}class VS extends V{static[O]="PgTimestampString";withTimezone;precision;constructor(o,T){super(o,T);this.withTimezone=T.withTimezone,this.precision=T.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function QT(o,T={}){let{name:f,config:n}=So(o,T);if(n?.mode==="string")return new D0(f,n.withTimezone??!1,n.precision);return new Q0(f,n?.withTimezone??!1,n?.precision)}class U0 extends b{static[O]="PgUUIDBuilder";constructor(o){super(o,"string","PgUUID")}defaultRandom(){return this.default(k`gen_random_uuid()`)}build(o){return new BS(o,this.config)}}class BS extends V{static[O]="PgUUID";getSQLType(){return"uuid"}}function MT(o){return new U0(o??"")}class V0 extends b{static[O]="PgVarcharBuilder";constructor(o,T){super(o,"string","PgVarchar");this.config.length=T.length,this.config.enumValues=T.enum}build(o){return new B0(o,this.config)}}class B0 extends V{static[O]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function po(o,T={}){let{name:f,config:n}=So(o,T);return new V0(f,n)}class L0 extends b{static[O]="PgBinaryVectorBuilder";constructor(o,T){super(o,"string","PgBinaryVector");this.config.dimensions=T.dimensions}build(o){return new C0(o,this.config)}}class C0 extends V{static[O]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function m0(o,T){let{name:f,config:n}=So(o,T);return new L0(f,n)}class I0 extends b{static[O]="PgHalfVectorBuilder";constructor(o,T){super(o,"array","PgHalfVector");this.config.dimensions=T.dimensions}build(o){return new j0(o,this.config)}}class j0 extends V{static[O]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(o){return JSON.stringify(o)}mapFromDriverValue(o){return o.slice(1,-1).split(",").map((T)=>Number.parseFloat(T))}}function N0(o,T){let{name:f,config:n}=So(o,T);return new I0(f,n)}class h0 extends b{static[O]="PgSparseVectorBuilder";constructor(o,T){super(o,"string","PgSparseVector");this.config.dimensions=T.dimensions}build(o){return new b0(o,this.config)}}class b0 extends V{static[O]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function x0(o,T){let{name:f,config:n}=So(o,T);return new h0(f,n)}class v0 extends b{static[O]="PgVectorBuilder";constructor(o,T){super(o,"array","PgVector");this.config.dimensions=T.dimensions}build(o){return new q0(o,this.config)}}class q0 extends V{static[O]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(o){return JSON.stringify(o)}mapFromDriverValue(o){return o.slice(1,-1).split(",").map((T)=>Number.parseFloat(T))}}function r0(o,T){let{name:f,config:n}=So(o,T);return new v0(f,n)}function p0(){return{bigint:nR,bigserial:JR,boolean:Vn,char:kR,cidr:yR,customType:KR,date:YR,doublePrecision:QR,inet:VR,integer:YS,interval:IR,json:NR,jsonb:bR,line:pR,macaddr:PR,macaddr8:dR,numeric:uR,point:T0,geometry:F0,real:M0,serial:k0,smallint:y0,smallserial:K0,text:Y0,time:z0,timestamp:QT,uuid:MT,varchar:po,bit:m0,halfvec:N0,sparsevec:x0,vector:r0}}var uA=Symbol.for("drizzle:PgInlineForeignKeys"),c0=Symbol.for("drizzle:EnableRLS");class co extends I{static[O]="PgTable";static Symbol=Object.assign({},I.Symbol,{InlineForeignKeys:uA,EnableRLS:c0});[uA]=[];[c0]=!1;[I.Symbol.ExtraConfigBuilder]=void 0;[I.Symbol.ExtraConfigColumns]={}}function nO(o,T,f,n,S=o){let A=new co(o,n,S),$=typeof T==="function"?T(p0()):T,F=Object.fromEntries(Object.entries($).map(([M,_])=>{let w=_;w.setName(M);let X=w.build(A);return A[uA].push(...w.buildForeignKeys(X,A)),[M,X]})),J=Object.fromEntries(Object.entries($).map(([M,_])=>{let w=_;w.setName(M);let X=w.buildExtraConfigColumn(A);return[M,X]})),R=Object.assign(A,F);if(R[I.Symbol.Columns]=F,R[I.Symbol.ExtraConfigColumns]=J,f)R[co.Symbol.ExtraConfigBuilder]=f;return Object.assign(R,{enableRLS:()=>{return R[co.Symbol.EnableRLS]=!0,R}})}var sT=(o,T,f)=>{return nO(o,T,f,void 0)};function Z0(...o){if(o[0].columns)return new Bn(o[0].columns,o[0].name);return new Bn(o)}class Bn{static[O]="PgPrimaryKeyBuilder";columns;name;constructor(o,T){this.columns=o,this.name=T}build(o){return new P0(o,this.columns,this.name)}}class P0{constructor(o,T,f){this.table=o,this.columns=T,this.name=f}static[O]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[co.Symbol.Name]}_${this.columns.map((o)=>o.name).join("_")}_pk`}}class eA{constructor(o,T,f){this.sourceTable=o,this.referencedTable=T,this.relationName=f,this.referencedTableName=T[I.Symbol.Name]}static[O]="Relation";referencedTableName;fieldName}class i0{constructor(o,T){this.table=o,this.config=T}static[O]="Relations"}class aT extends eA{constructor(o,T,f,n){super(o,T,f?.relationName);this.config=f,this.isNullable=n}static[O]="One";withFieldName(o){let T=new aT(this.sourceTable,this.referencedTable,this.config,this.isNullable);return T.fieldName=o,T}}class Ln extends eA{constructor(o,T,f){super(o,T,f?.relationName);this.config=f}static[O]="Many";withFieldName(o){let T=new Ln(this.sourceTable,this.referencedTable,this.config);return T.fieldName=o,T}}function g0(){return{and:Dn,between:qJ,eq:HS,exists:xJ,gt:LJ,gte:CJ,ilike:ZJ,inArray:jJ,isNull:hJ,isNotNull:bJ,like:pJ,lt:mJ,lte:IJ,ne:UJ,not:BJ,notBetween:rJ,notExists:vJ,notLike:cJ,notIlike:PJ,notInArray:NJ,or:VJ,sql:k}}function d0(){return{sql:k,asc:iJ,desc:gJ}}function l0(o,T){if(Object.keys(o).length===1&&"default"in o&&!H(o.default,I))o=o.default;let f={},n={},S={};for(let[A,$]of Object.entries(o))if(H($,I)){let F=Of($),J=n[F];f[F]=A,S[A]={tsName:A,dbName:$[I.Symbol.Name],schema:$[I.Symbol.Schema],columns:$[I.Symbol.Columns],relations:J?.relations??{},primaryKey:J?.primaryKey??[]};for(let M of Object.values($[I.Symbol.Columns]))if(M.primary)S[A].primaryKey.push(M);let R=$[I.Symbol.ExtraConfigBuilder]?.($[I.Symbol.ExtraConfigColumns]);if(R){for(let M of Object.values(R))if(H(M,Bn))S[A].primaryKey.push(...M.columns)}}else if(H($,i0)){let F=Of($.table),J=f[F],R=$.config(T($.table)),M;for(let[_,w]of Object.entries(R))if(J){let X=S[J];if(X.relations[_]=w,M)X.primaryKey.push(...M)}else{if(!(F in n))n[F]={relations:{},primaryKey:M};n[F].relations[_]=w}}return{tables:S,tableNamesMap:f}}function SO(o){return function T(f,n){return new aT(o,f,n,n?.fields.reduce((S,A)=>S&&A.notNull,!0)??!1)}}function AO(o){return function T(f,n){return new Ln(o,f,n)}}function u0(o,T,f){if(H(f,aT)&&f.config)return{fields:f.config.fields,references:f.config.references};let n=T[Of(f.referencedTable)];if(!n)throw new Error(`Table "${f.referencedTable[I.Symbol.Name]}" not found in schema`);let S=o[n];if(!S)throw new Error(`Table "${n}" not found in schema`);let A=f.sourceTable,$=T[Of(A)];if(!$)throw new Error(`Table "${A[I.Symbol.Name]}" not found in schema`);let F=[];for(let J of Object.values(S.relations))if(f.relationName&&f!==J&&J.relationName===f.relationName||!f.relationName&&J.referencedTable===f.sourceTable)F.push(J);if(F.length>1)throw f.relationName?new Error(`There are multiple relations with name "${f.relationName}" in table "${n}"`):new Error(`There are multiple relations between "${n}" and "${f.sourceTable[I.Symbol.Name]}". Please specify relation name`);if(F[0]&&H(F[0],aT)&&F[0].config)return{fields:F[0].config.references,references:F[0].config.fields};throw new Error(`There is not enough information to infer relation "${$}.${f.fieldName}"`)}function e0(o){return{one:SO(o),many:AO(o)}}function LS(o,T,f,n,S=(A)=>A){let A={};for(let[$,F]of n.entries())if(F.isJson){let J=T.relations[F.tsKey],R=f[$],M=typeof R==="string"?JSON.parse(R):R;A[F.tsKey]=H(J,aT)?M&&LS(o,o[F.relationTableTsKey],M,F.selection,S):M.map((_)=>LS(o,o[F.relationTableTsKey],_,F.selection,S))}else{let J=S(f[$]),R=F.field,M;if(H(R,_o))M=R;else if(H(R,j))M=R.decoder;else M=R.sql.decoder;A[F.tsKey]=J===null?null:M.mapFromDriverValue(J)}return A}import BO from"os";import LO from"fs";var CS=new Map,sA=new Map,aA=Symbol("OriginError"),Pf={};class yT extends Promise{constructor(o,T,f,n,S={}){let A,$;super((F,J)=>{A=F,$=J});this.tagged=Array.isArray(o.raw),this.strings=o,this.args=T,this.handler=f,this.canceller=n,this.options=S,this.state=null,this.statement=null,this.resolve=(F)=>(this.active=!1,A(F)),this.reject=(F)=>(this.active=!1,$(F)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[aA]=this.handler.debug?new Error:this.tagged&&$O(this.strings)}get origin(){return(this.handler.debug?this[aA].stack:this.tagged&&sA.has(this.strings)?sA.get(this.strings):sA.set(this.strings,this[aA].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(o=1,T){if(this.options.simple=!1,typeof o==="function")T=o,o=1;if(this.cursorRows=o,typeof T==="function")return this.cursorFn=T,this;let f;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};f&&f();let n=new Promise((S,A)=>{this.cursorFn=($)=>{return S({value:$,done:!1}),new Promise((F)=>f=F)},this.resolve=()=>(this.active=!1,S({done:!0})),this.reject=($)=>(this.active=!1,A($))});return this.execute(),n},return(){return f&&f(Pf),{done:!0}}})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw new Error(".stream has been renamed to .forEach")}forEach(o){return this.forEachFn=o,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}}function $O(o){if(CS.has(o))return CS.get(o);let T=Error.stackTraceLimit;return Error.stackTraceLimit=4,CS.set(o,new Error),Error.stackTraceLimit=T,CS.get(o)}class gf extends Error{constructor(o){super(o.message);this.name=this.constructor.name,Object.assign(this,o)}}var Bo={connection:s0,postgres:a0,generic:o1,notSupported:T1};function s0(o,T,f){let{host:n,port:S}=f||T,A=Object.assign(new Error("write "+o+" "+(T.path||n+":"+S)),{code:o,errno:o,address:T.path||n},T.path?{}:{port:S});return Error.captureStackTrace(A,s0),A}function a0(o){let T=new gf(o);return Error.captureStackTrace(T,a0),T}function o1(o,T){let f=Object.assign(new Error(o+": "+T),{code:o});return Error.captureStackTrace(f,o1),f}function T1(o){let T=Object.assign(new Error(o+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:o});return Error.captureStackTrace(T,T1),T}var FO={string:{to:25,from:null,serialize:(o)=>""+o},number:{to:0,from:[21,23,26,700,701],serialize:(o)=>""+o,parse:(o)=>+o},json:{to:114,from:[114,3802],serialize:(o)=>JSON.stringify(o),parse:(o)=>JSON.parse(o)},boolean:{to:16,from:16,serialize:(o)=>o===!0?"t":"f",parse:(o)=>o==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(o)=>(o instanceof Date?o:new Date(o)).toISOString(),parse:(o)=>new Date(o)},bytea:{to:17,from:17,serialize:(o)=>"\\x"+Buffer.from(o).toString("hex"),parse:(o)=>Buffer.from(o.slice(2),"hex")}};class jS{then(){o$()}catch(){o$()}finally(){o$()}}class jn extends jS{constructor(o){super();this.value=bS(o)}}class mT extends jS{constructor(o,T,f){super();this.value=o,this.type=T,this.array=f}}class NS extends jS{constructor(o,T){super();this.first=o,this.rest=T}build(o,T,f,n){let S=JO.map(([A,$])=>({fn:$,i:o.search(A)})).sort((A,$)=>A.i-$.i).pop();return S.i===-1?A$(this.first,n):S.fn(this.first,this.rest,T,f,n)}}function hS(o,T,f,n){let S=o instanceof mT?o.value:o;if(S===void 0){if(o instanceof mT?o.value=n.transform.undefined:S=o=n.transform.undefined,S===void 0)throw Bo.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+f.push(o instanceof mT?(T.push(o.value),o.array?o.array[o.type||IS(o.value)]||o.type||A1(o.value):o.type):(T.push(o),IS(o)))}var n1=F1(FO);function n$(o,T,f,n,S,A){for(let $=1;$<o.strings.length;$++)T+=S$(T,f,n,S,A)+o.strings[$],f=o.args[$];return T}function S$(o,T,f,n,S){return T instanceof NS?T.build(o,f,n,S):T instanceof yT?f$(T,f,n,S):T instanceof jn?T.value:T&&T[0]instanceof yT?T.reduce((A,$)=>A+" "+f$($,f,n,S),""):hS(T,f,n,S)}function f$(o,T,f,n){return o.fragment=!0,n$(o,o.strings[0],o.args[0],T,f,n)}function S1(o,T,f,n,S){return o.map((A)=>"("+n.map(($)=>S$("values",A[$],T,f,S)).join(",")+")").join(",")}function f1(o,T,f,n,S){let A=Array.isArray(o[0]),$=T.length?T.flat():Object.keys(A?o[0]:o);return S1(A?o:[o],f,n,$,S)}function mS(o,T,f,n,S){if(typeof o==="string"&&(o=[o].concat(T)),Array.isArray(o))return A$(o,S);let A;return(T.length?T.flat():Object.keys(o)).map((F)=>{return A=o[F],(A instanceof yT?f$(A,f,n,S):A instanceof jn?A.value:hS(A,f,n,S))+" as "+bS(S.transform.column.to?S.transform.column.to(F):F)}).join(",")}var JO=Object.entries({values:f1,in:(...o)=>{let T=f1(...o);return T==="()"?"(null)":T},select:mS,as:mS,returning:mS,"\\(":mS,update(o,T,f,n,S){return(T.length?T.flat():Object.keys(o)).map((A)=>bS(S.transform.column.to?S.transform.column.to(A):A)+"="+S$("values",o[A],f,n,S))},insert(o,T,f,n,S){let A=T.length?T.flat():Object.keys(Array.isArray(o)?o[0]:o);return"("+A$(A,S)+")values"+S1(Array.isArray(o)?o:[o],f,n,A,S)}}).map(([o,T])=>[new RegExp("((?:^|[\\s(])"+o+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),T]);function o$(){throw Bo.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:RO,parsers:MO}=n1;function A1(o){if(Array.isArray(o))return A1(o[0]);return typeof o==="string"?1009:0}var $1=function(o){let T=F1(o||{});return{serializers:Object.assign({},RO,T.serializers),parsers:Object.assign({},MO,T.parsers)}};function F1(o){return Object.keys(o).reduce((T,f)=>{if(o[f].from&&[].concat(o[f].from).forEach((n)=>T.parsers[n]=o[f].parse),o[f].serialize)T.serializers[o[f].to]=o[f].serialize,o[f].from&&[].concat(o[f].from).forEach((n)=>T.serializers[n]=o[f].serialize);return T},{parsers:{},serializers:{}})}function A$(o,{transform:{column:T}}){return o.map((f)=>bS(T.to?T.to(f):f)).join(",")}var bS=function o(T){return'"'+T.replace(/"/g,'""').replace(/\./g,'"."')+'"'},IS=function o(T){return T instanceof mT?T.type:T instanceof Date?1184:T instanceof Uint8Array?17:T===!0||T===!1?16:typeof T==="bigint"?20:Array.isArray(T)?o(T[0]):0},WO=/\\/g,OO=/"/g;function kO(o){return o.replace(WO,"\\\\").replace(OO,"\\\"")}var J1=function o(T,f,n,S){if(Array.isArray(T)===!1)return T;if(!T.length)return"{}";let A=T[0],$=S===1020?";":",";if(Array.isArray(A)&&!A.type)return"{"+T.map((F)=>o(F,f,n,S)).join($)+"}";return"{"+T.map((F)=>{if(F===void 0){if(F=n.transform.undefined,F===void 0)throw Bo.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return F===null?"null":'"'+kO(f?f(F.type?F.value:F):""+F)+'"'}).join($)+"}"},T$={i:0,char:null,str:"",quoted:!1,last:0},R1=function o(T,f,n){return T$.i=T$.last=0,M1(T$,T,f,n)};function M1(o,T,f,n){let S=[],A=n===1020?";":",";for(;o.i<T.length;o.i++){if(o.char=T[o.i],o.quoted)if(o.char==="\\")o.str+=T[++o.i];else if(o.char==='"')S.push(f?f(o.str):o.str),o.str="",o.quoted=T[o.i+1]==='"',o.last=o.i+2;else o.str+=o.char;else if(o.char==='"')o.quoted=!0;else if(o.char==="{")o.last=++o.i,S.push(M1(o,T,f,n));else if(o.char==="}"){o.quoted=!1,o.last<o.i&&S.push(f?f(T.slice(o.last,o.i)):T.slice(o.last,o.i)),o.last=o.i+1;break}else if(o.char===A&&o.p!=="}"&&o.p!=='"')S.push(f?f(T.slice(o.last,o.i)):T.slice(o.last,o.i)),o.last=o.i+1;o.p=o.char}return o.last<o.i&&S.push(f?f(T.slice(o.last,o.i+1)):T.slice(o.last,o.i+1)),S}var kf=(o)=>{let T=o[0];for(let f=1;f<o.length;f++)T+=o[f]==="_"?o[++f].toUpperCase():o[f];return T},_f=(o)=>{let T=o[0].toUpperCase();for(let f=1;f<o.length;f++)T+=o[f]==="_"?o[++f].toUpperCase():o[f];return T},wf=(o)=>o.replace(/_/g,"-"),Cn=(o)=>o.replace(/([A-Z])/g,"_$1").toLowerCase(),mn=(o)=>(o.slice(0,1)+o.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),In=(o)=>o.replace(/-/g,"_");function $$(o){return function T(f,n){return typeof f==="object"&&f!==null&&(n.type===114||n.type===3802)?Array.isArray(f)?f.map((S)=>T(S,n)):Object.entries(f).reduce((S,[A,$])=>Object.assign(S,{[o(A)]:T($,n)}),{}):f}}kf.column={from:kf};kf.value={from:$$(kf)};Cn.column={to:Cn};var F$={...kf};F$.column.to=Cn;_f.column={from:_f};_f.value={from:$$(_f)};mn.column={to:mn};var J$={..._f};J$.column.to=mn;wf.column={from:wf};wf.value={from:$$(wf)};In.column={to:In};var R$={...wf};R$.column.to=In;import W1 from"net";import XO from"tls";import Nn from"crypto";import M$ from"stream";import{performance as O1}from"perf_hooks";class yf extends Array{constructor(){super();Object.defineProperties(this,{count:{value:null,writable:!0},state:{value:null,writable:!0},command:{value:null,writable:!0},columns:{value:null,writable:!0},statement:{value:null,writable:!0}})}static get[Symbol.species](){return Array}}var WT=_O;function _O(o=[]){let T=o.slice(),f=0;return{get length(){return T.length-f},remove:(n)=>{let S=T.indexOf(n);return S===-1?null:(T.splice(S,1),n)},push:(n)=>(T.push(n),n),shift:()=>{let n=T[f++];if(f===T.length)f=0,T=[];else T[f-1]=void 0;return n}}}var eo=Buffer.allocUnsafe(256),wO="BCcDdEFfHPpQSX".split("").reduce((o,T)=>{let f=T.charCodeAt(0);return o[T]=()=>{return eo[0]=f,Oo.i=5,Oo},o},{}),Oo=Object.assign(yO,wO,{N:String.fromCharCode(0),i:0,inc(o){return Oo.i+=o,Oo},str(o){let T=Buffer.byteLength(o);return xS(T),Oo.i+=eo.write(o,Oo.i,T,"utf8"),Oo},i16(o){return xS(2),eo.writeUInt16BE(o,Oo.i),Oo.i+=2,Oo},i32(o,T){if(T||T===0)return eo.writeUInt32BE(o,T),Oo;return xS(4),eo.writeUInt32BE(o,Oo.i),Oo.i+=4,Oo},z(o){return xS(o),eo.fill(0,Oo.i,Oo.i+o),Oo.i+=o,Oo},raw(o){return eo=Buffer.concat([eo.subarray(0,Oo.i),o]),Oo.i=eo.length,Oo},end(o=1){eo.writeUInt32BE(Oo.i-o,o);let T=eo.subarray(0,Oo.i);return Oo.i=0,eo=Buffer.allocUnsafe(256),T}}),c=Oo;function xS(o){if(eo.length-Oo.i<o){let T=eo,f=T.length;eo=Buffer.allocUnsafe(f+(f>>1)+o),T.copy(eo)}}function yO(){return Oo.i=0,Oo}var k$=w1,HO=1,of=c().S().end(),k1=c().H().end(),KO=c().i32(8).i32(80877103).end(8),EO=Buffer.concat([c().E().str(c.N).i32(0).end(),of]),GO=c().D().str("S").str(c.N).end(),df=()=>{},YO=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),tO={83:"severity_local",86:"severity",67:"code",77:"message",68:"detail",72:"hint",80:"position",112:"internal_position",113:"internal_query",87:"where",115:"schema_name",116:"table_name",99:"column_name",100:"data type_name",110:"constraint_name",70:"file",76:"line",82:"routine"};function w1(o,T={},{onopen:f=df,onend:n=df,onclose:S=df}={}){let{ssl:A,max:$,user:F,host:J,port:R,database:M,parsers:_,transform:w,onnotice:X,onnotify:D,onparameter:K,max_pipeline:L,keep_alive:h,backoff:q,target_session_attrs:P}=o,G=WT(),z=HO++,U={pid:null,secret:null},Q=O$(eS,o.idle_timeout),v=O$(eS,o.max_lifetime),l=O$(b1,o.connect_timeout),E=null,s,r=new yf,a=Buffer.alloc(0),ko=o.fetch_types,Lo={},fT={},IT=Math.random().toString(36).slice(2),Y=1,p=0,Fo=0,Yo=0,Co=0,To=0,yo=0,Vo=0,to=null,Ko=null,Zo=!1,Xo=null,XT=null,Po=null,cT=null,mo=null,Eo=null,HT=null,DT=null,B=null,sf=null,io={queue:T.closed,idleTimer:Q,connect(W){Po=W||!0,q$()},terminate:on,execute:af,cancel:I1,end:eS,count:0,id:z};return T.closed&&T.closed.push(io),io;async function m1(){let W;try{W=o.socket?await Promise.resolve(o.socket(o)):new W1.Socket}catch(y){Ef(y);return}return W.on("error",Ef),W.on("close",r$),W.on("drain",x$),W}async function I1({pid:W,secret:y},Z,Jo){try{s=c().i32(16).i32(80877102).i32(W).i32(y).end(16),await v$(),E.once("error",Jo),E.once("close",Z)}catch(Qo){Jo(Qo)}}function af(W){if(Zo)return pn(W,Bo.connection("CONNECTION_DESTROYED",o));if(W.cancelled)return;try{return W.state=U,B?G.push(W):(B=W,B.active=!0),h1(W),ro(j1(W))&&!W.describeFirst&&!W.cursorFn&&G.length<L&&(!W.options.onexecute||W.options.onexecute(io))}catch(y){return G.length===0&&ro(of),UT(y),!0}}function j1(W){if(W.parameters.length>=65534)throw Bo.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return W.options.simple?c().Q().str(W.statement.string+c.N).end():W.describeFirst?Buffer.concat([N$(W),k1]):W.prepare?W.prepared?rn(W):Buffer.concat([N$(W),rn(W)]):N1(W)}function N$(W){return Buffer.concat([c$(W.statement.string,W.parameters,W.statement.types,W.statement.name),GM("S",W.statement.name)])}function rn(W){return Buffer.concat([EM(W.parameters,W.statement.types,W.statement.name,W.cursorName),W.cursorFn?Z$("",W.cursorRows):EO])}function N1(W){return Buffer.concat([c$(W.statement.string,W.parameters,W.statement.types),GO,rn(W)])}function h1(W){let y=[],Z=[],Jo=n$(W,W.strings[0],W.args[0],y,Z,o);!W.tagged&&W.args.forEach((Qo)=>hS(Qo,y,Z,o)),W.prepare=o.prepare&&("prepare"in W.options?W.options.prepare:!0),W.string=Jo,W.signature=W.prepare&&Z+Jo,W.onlyDescribe&&delete fT[W.signature],W.parameters=W.parameters||y,W.prepared=W.prepare&&W.signature in fT,W.describeFirst=W.onlyDescribe||y.length&&!W.prepared,W.statement=W.prepared?fT[W.signature]:{string:Jo,types:Z,name:W.prepare?IT+Y++:""},typeof o.debug==="function"&&o.debug(z,Jo,y,Z)}function ro(W,y){if(Eo=Eo?Buffer.concat([Eo,W]):Buffer.from(W),y||Eo.length>=1024)return h$(y);return Ko===null&&(Ko=setImmediate(h$)),!0}function h$(W){let y=E.write(Eo,W);return Ko!==null&&clearImmediate(Ko),Eo=Ko=null,y}function b1(){UT(Bo.connection("CONNECT_TIMEOUT",o,E)),E.destroy()}async function b$(){if(ro(KO),!await new Promise((y)=>E.once("data",(Z)=>y(Z[0]===83)))&&A==="prefer")return Kf();E.removeAllListeners(),E=XO.connect({socket:E,servername:W1.isIP(E.host)?void 0:E.host,...A==="require"||A==="allow"||A==="prefer"?{rejectUnauthorized:!1}:A==="verify-full"?{}:typeof A==="object"?A:{}}),E.on("secureConnect",Kf),E.on("error",Ef),E.on("close",r$),E.on("drain",x$)}function x$(){!B&&f(io)}function uS(W){if(Xo){if(Xo.push(W),Fo-=W.length,Fo>=0)return}a=Xo?Buffer.concat(Xo,To-Fo):a.length===0?W:Buffer.concat([a,W],a.length+W.length);while(a.length>4){if(To=a.readUInt32BE(1),To>=a.length){Fo=To-a.length,Xo=[a];break}try{x1(a.subarray(0,To+1))}catch(y){B&&(B.cursorFn||B.describeFirst)&&ro(of),UT(y)}a=a.subarray(To+1),Fo=0,Xo=null}}async function v$(){if(Zo=!1,Lo={},E||(E=await m1()),!E)return;if(l.start(),o.socket)return A?b$():Kf();if(E.on("connect",A?b$:Kf),o.path)return E.connect(o.path);E.ssl=A,E.connect(R[Yo],J[Yo]),E.host=J[Yo],E.port=R[Yo],Yo=(Yo+1)%R.length}function q$(){setTimeout(v$,p?p+yo-O1.now():0)}function Kf(){try{fT={},ko=o.fetch_types,IT=Math.random().toString(36).slice(2),Y=1,v.start(),E.on("data",uS),h&&E.setKeepAlive&&E.setKeepAlive(!0,1000*h);let W=tM();ro(W)}catch(W){Ef(W)}}function Ef(W){if(io.queue===T.connecting&&o.host[Co+1])return;UT(W);while(G.length)pn(G.shift(),W)}function UT(W){mo&&(mo.destroy(W),mo=null),B&&pn(B,W),Po&&(pn(Po,W),Po=null)}function pn(W,y){"query"in y||"parameters"in y||Object.defineProperties(y,{stack:{value:y.stack+W.origin.replace(/.*\n/,`
17
- `),enumerable:o.debug},query:{value:W.string,enumerable:o.debug},parameters:{value:W.parameters,enumerable:o.debug},args:{value:W.args,enumerable:o.debug},types:{value:W.statement&&W.statement.types,enumerable:o.debug}}),W.reject(y)}function eS(){return cT||(!io.reserved&&n(io),!io.reserved&&!Po&&!B&&G.length===0?(on(),new Promise((W)=>E&&E.readyState!=="closed"?E.once("close",W):W())):cT=new Promise((W)=>HT=W))}function on(){if(Zo=!0,mo||B||Po||G.length)Ef(Bo.connection("CONNECTION_DESTROYED",o));if(clearImmediate(Ko),E)E.removeListener("data",uS),E.removeListener("connect",Kf),E.readyState==="open"&&E.end(c().X().end());HT&&(HT(),cT=HT=null)}async function r$(W){if(a=Buffer.alloc(0),Fo=0,Xo=null,clearImmediate(Ko),E.removeListener("data",uS),E.removeListener("connect",Kf),Q.cancel(),v.cancel(),l.cancel(),E.removeAllListeners(),E=null,Po)return q$();!W&&(B||G.length)&&Ef(Bo.connection("CONNECTION_CLOSED",o,E)),p=O1.now(),W&&o.shared.retries++,yo=(typeof q==="function"?q(o.shared.retries):q)*1000,S(io,Bo.connection("CONNECTION_CLOSED",o,E))}function x1(W,y=W[0]){(y===68?v1:y===100?OM:y===65?$M:y===83?q1:y===90?r1:y===67?p1:y===50?p$:y===49?c1:y===116?Z1:y===84?P1:y===82?i1:y===110?s1:y===75?a1:y===69?SM:y===115?FM:y===51?JM:y===71?RM:y===78?_M:y===72?MM:y===99?kM:y===73?wM:y===86?yM:y===118?XM:y===87?WM:HM)(W)}function v1(W){let y=7,Z,Jo,Qo,go=B.isRaw?new Array(B.statement.columns.length):{};for(let so=0;so<B.statement.columns.length;so++)Jo=B.statement.columns[so],Z=W.readInt32BE(y),y+=4,Qo=Z===-1?null:B.isRaw===!0?W.subarray(y,y+=Z):Jo.parser===void 0?W.toString("utf8",y,y+=Z):Jo.parser.array===!0?Jo.parser(W.toString("utf8",y+1,y+=Z)):Jo.parser(W.toString("utf8",y,y+=Z)),B.isRaw?go[so]=B.isRaw===!0?Qo:w.value.from?w.value.from(Qo,Jo):Qo:go[Jo.name]=w.value.from?w.value.from(Qo,Jo):Qo;B.forEachFn?B.forEachFn(w.row.from?w.row.from(go):go,r):r[Vo++]=w.row.from?w.row.from(go):go}function q1(W){let[y,Z]=W.toString("utf8",5,W.length-1).split(c.N);if(Lo[y]=Z,o.parameters[y]!==Z)o.parameters[y]=Z,K&&K(y,Z)}function r1(W){if(B&&B.options.simple&&B.resolve(XT||r),B=XT=null,r=new yf,l.cancel(),Po){if(P){if(!Lo.in_hot_standby||!Lo.default_transaction_read_only)return nM();else if(fM(P,Lo))return on()}if(ko)return Po===!0&&(Po=null),oM();Po!==!0&&af(Po),o.shared.retries=Co=0,Po=null;return}while(G.length&&(B=G.shift())&&(B.active=!0,B.cancelled))w1(o).cancel(B.state,B.cancelled.resolve,B.cancelled.reject);if(B)return;io.reserved?!io.reserved.release&&W[5]===73?cT?on():(io.reserved=null,f(io)):io.reserved():cT?on():f(io)}function p1(W){Vo=0;for(let y=W.length-1;y>0;y--){if(W[y]===32&&W[y+1]<58&&r.count===null)r.count=+W.toString("utf8",y+1,W.length-1);if(W[y-1]>=65){r.command=W.toString("utf8",5,y),r.state=U;break}}if(sf&&(sf(),sf=null),r.command==="BEGIN"&&$!==1&&!io.reserved)return UT(Bo.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(B.options.simple)return p$();if(B.cursorFn)r.count&&B.cursorFn(r),ro(of);B.resolve(r)}function c1(){B.parsing=!1}function p$(){!r.statement&&(r.statement=B.statement),r.columns=B.statement.columns}function Z1(W){let y=W.readUInt16BE(5);for(let Z=0;Z<y;++Z)!B.statement.types[Z]&&(B.statement.types[Z]=W.readUInt32BE(7+Z*4));B.prepare&&(fT[B.signature]=B.statement),B.describeFirst&&!B.onlyDescribe&&(ro(rn(B)),B.describeFirst=!1)}function P1(W){if(r.command)XT=XT||[r],XT.push(r=new yf),r.count=null,B.statement.columns=null;let y=W.readUInt16BE(5),Z=7,Jo;B.statement.columns=Array(y);for(let Qo=0;Qo<y;++Qo){Jo=Z;while(W[Z++]!==0);let go=W.readUInt32BE(Z),so=W.readUInt16BE(Z+4),ZT=W.readUInt32BE(Z+6);B.statement.columns[Qo]={name:w.column.from?w.column.from(W.toString("utf8",Jo,Z-1)):W.toString("utf8",Jo,Z-1),parser:_[ZT],table:go,number:so,type:ZT},Z+=18}if(r.statement=B.statement,B.onlyDescribe)return B.resolve(B.statement),ro(of)}async function i1(W,y=W.readUInt32BE(5)){(y===3?g1:y===5?d1:y===10?l1:y===11?u1:y===12?e1:y!==0?KM:df)(W,y)}async function g1(){let W=await sS();ro(c().p().str(W).z(1).end())}async function d1(W){let y="md5"+await _1(Buffer.concat([Buffer.from(await _1(await sS()+F)),W.subarray(9)]));ro(c().p().str(y).z(1).end())}async function l1(){DT=(await Nn.randomBytes(18)).toString("base64"),c().p().str("SCRAM-SHA-256"+c.N);let W=c.i;ro(c.inc(4).str("n,,n=*,r="+DT).i32(c.i-W-4,W).end())}async function u1(W){let y=W.toString("utf8",9).split(",").reduce((so,ZT)=>(so[ZT[0]]=ZT.slice(2),so),{}),Z=await Nn.pbkdf2Sync(await sS(),Buffer.from(y.s,"base64"),parseInt(y.i),32,"sha256"),Jo=await vS(Z,"Client Key"),Qo="n=*,r="+DT+",r="+y.r+",s="+y.s+",i="+y.i+",c=biws,r="+y.r;to=(await vS(await vS(Z,"Server Key"),Qo)).toString("base64");let go="c=biws,r="+y.r+",p="+QO(Jo,Buffer.from(await vS(await zO(Jo),Qo))).toString("base64");ro(c().p().str(go).end())}function e1(W){if(W.toString("utf8",9).split(c.N,1)[0].slice(2)===to)return;UT(Bo.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),E.destroy()}function sS(){return Promise.resolve(typeof o.pass==="function"?o.pass():o.pass)}function s1(){if(r.statement=B.statement,r.statement.columns=[],B.onlyDescribe)return B.resolve(B.statement),ro(of)}function a1(W){U.pid=W.readUInt32BE(5),U.secret=W.readUInt32BE(9)}async function oM(){ko=!1,(await new yT([`
15
+ ${O.trace}`:`No previous disposal trace for ${F} was found.`),n}let t=o.moleculeGraph.getRelationEntries({downstreamMoleculeKey:$.stringKey}).filter(([,{source:O}])=>O!==S).map(([O])=>xo(O));if(f)A.moleculeGraph.delete(S);A.moleculeGraph.set({upstreamMoleculeKey:J.stringKey,downstreamMoleculeKey:$.stringKey},{source:J.stringKey});let R={type:"molecule_transfer",key:$.key,from:t,to:[J.key]};if(Ro(A)&&A.transactionMeta.phase==="building")A.transactionMeta.update.updates.push(R);return n}function FA(o,T,n){switch(T){case"newValue":{_F(o,n);break}case"oldValue":{$n(n,o.token);break}}}function JA(o,T,n){switch(T){case"newValue":{$n(n,o.token);break}case"oldValue":{if(_F(o,n),o.subType==="atom")n.valueMap.set(o.token.key,o.value);break}}}function _F(o,T){let{family:n}=o.token;if(n){let f=T.families.get(n.key);if(f)i(T,f,xo(n.subKey))}}function XF(o,T,n){switch(T){case"newValue":fn(n,o.provenance,o.key);break;case"oldValue":Sn(n,o.key);break}}function HF(o,T,n){switch(T){case"newValue":Sn(n,o.key);break;case"oldValue":{let f=o.provenance.map(xo);fn(n,f,o.key);for(let[S,A]of o.values){let $=n.families.get(S);if($){i(n,$,o.key);let F=`${S}(${no(o.key)})`;n.valueMap.set(F,A)}}}break}}function KF(o,T,n){switch(T){case"newValue":{let f=o.to.length===1?o.to[0]:o.to;Yn(n,f,o.key,"exclusive")}break;case"oldValue":{let f=o.from.length===1?o.from[0]:o.from;Yn(n,f,o.key,"exclusive")}break}}function oS(o,T,n){let f=o==="newValue"?T.updates:[...T.updates].reverse();for(let S of f)switch(S.type){case"atom_update":case"selector_update":af(o,S,n);break;case"state_creation":FA(S,o,n);break;case"state_disposal":JA(S,o,n);break;case"molecule_creation":XF(S,o,n);break;case"molecule_disposal":HF(S,o,n);break;case"molecule_transfer":KF(S,o,n);break;case"transaction_update":oS(o,S,n);break}}function tA(o,T){return o.transactionMeta.actionContinuities.getRelatedKey(T)}function NM(o,T){return o.transactionMeta.epoch.get(T)}function EF(o,T){if(!qo(o))return;let f=tA(o,T);if(f===void 0)return;return NM(o,f)}function GF(o,T,n){if(qo(o)&&T)o.transactionMeta.epoch.set(T,n)}function YF(o,T,n){if(!qo(o))return;let S=tA(o,T);if(S!==void 0)o.transactionMeta.epoch.set(S,n)}var zF=(o,T)=>{let n=C(T),{parent:f}=n;if(f===null||!Ro(n)||n.transactionMeta?.phase!=="building"){T.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}n.transactionMeta.phase="applying",n.transactionMeta.update.output=o,f.child=null,f.on.transactionApplying.next(n.transactionMeta);let{updates:S}=n.transactionMeta.update;if(T.logger.info("\uD83D\uDEC4","transaction",n.transactionMeta.update.key,`Applying transaction with ${S.length} updates:`,S),oS("newValue",n.transactionMeta.update,f),qo(f))YF(f,n.transactionMeta.update.key,n.transactionMeta.update.epoch),$o(T,{key:n.transactionMeta.update.key,type:"transaction"})?.subject.next(n.transactionMeta.update),T.logger.info("\uD83D\uDEEC","transaction",n.transactionMeta.update.key,"Finished applying transaction.");else if(Ro(f))f.transactionMeta.update.updates.push(n.transactionMeta.update);f.on.transactionApplying.next(null)};function DF(o,T,n){if(!qo(o))return;let{epoch:S,actionContinuities:A}=o.transactionMeta;if(A.set(T,n),!S.has(T))S.set(T,-1)}function QF(o){return{store:o}}function to(o,...T){let n,f,S;if(T.length===1)n=T[0];else f=T[0],S=T[1],n=i(o,f,S);if("counterfeit"in n&&"family"in n){f=o.families.get(n.family.key);let A=n.family.subKey,$=o.disposalTraces.buffer.find((F)=>F?.key===A);switch(o.logger.error("\u274C",n.type,n.key,`could not be retrieved because it was not found in the store "${o.config.name}".`,$?`This state was previously disposed:
16
+ ${$.trace}`:"No previous disposal trace was found."),f.type){case"atom_family":case"mutable_atom_family":return o.defaults.get(f.key);case"selector_family":case"readonly_selector_family":{if(o.defaults.has(f.key))return o.defaults.get(n.family.key);let F=$o(o,f).default(A);return o.defaults.set(f.key,F),F}}}return PT(o,$o(o,n))}class jo{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(o,T)=>`${o}:${T}`;warn;getRelatedKeys(o){return this.relations.get(o)}addRelation(o,T){let n=this.relations.get(o),f=this.relations.get(T);if(n)n.add(T);else n=new Set([T]),this.relations.set(o,n);if(f)f.add(o);else f=new Set([o]),this.relations.set(T,f)}deleteRelation(o,T){let n=this.relations.get(o);if(n){if(n.delete(T),n.size===0)this.relations.delete(o);let f=this.relations.get(T);if(f){if(f.delete(o),f.size===0)this.relations.delete(T)}}}replaceRelationsUnsafely(o,T){this.relations.set(o,new Set(T));for(let n of T){let f=new Set().add(o);this.relations.set(n,f)}}replaceRelationsSafely(o,T){let n=this.relations.get(o),f=this.isAType?.(o)?o:void 0,S=f===void 0?o:void 0;if(n)for(let A of n){f??=A,S??=A;let $=this.relations.get(A);if($){if($.size===1)this.relations.delete(A);else $.delete(o);this.contents.delete(this.makeContentKey(f,S))}}this.relations.set(o,new Set(T));for(let A of T){let $=this.relations.get(A);if($)$.add(o);else $=new Set().add(o),this.relations.set(A,$)}}getContentInternal(o){return this.contents.get(o)}setContent(o,T){this.contents.set(o,T)}deleteContent(o){this.contents.delete(o)}constructor(o,T){if(this.a=o.between[0],this.b=o.between[1],this.cardinality=o.cardinality,!T?.externalStore)this.relations=new Map(o.relations?.map(([n,f])=>[n,new Set(f)])),this.contents=new Map(o.contents);if(this.isAType=T?.isAType??null,this.isBType=T?.isBType??null,this.isContent=T?.isContent??null,T?.makeContentKey)this.makeContentKey=T.makeContentKey;if(T?.externalStore){let n=T.externalStore;if(this.has=(f,S)=>n.has(f,S),this.addRelation=(f,S)=>{n.addRelation(f,S)},this.deleteRelation=(f,S)=>{n.deleteRelation(f,S)},this.replaceRelationsSafely=(f,S)=>{n.replaceRelationsSafely(f,S)},this.replaceRelationsUnsafely=(f,S)=>{n.replaceRelationsUnsafely(f,S)},this.getRelatedKeys=(f)=>n.getRelatedKeys(f),n.getContent)this.getContentInternal=(f)=>{return n.getContent(f)},this.setContent=(f,S)=>{n.setContent(f,S)},this.deleteContent=(f)=>{n.deleteContent(f)};for(let[f,S]of o.relations??[]){let A=this.isAType?.(f)?f:void 0,$=A===void 0?f:void 0;for(let F of S)A??=F,$??=F,this.addRelation(A,$)}for(let[f,S]of o.contents??[])this.setContent(f,S)}if(T?.warn)this.warn=T.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([o,T])=>[o,[...T]]),contents:[...this.contents.entries()]}}set(...o){let T,n,f;switch(o.length){case 1:{let S=o[0];T=S[this.a],n=S[this.b],f=void 0;break}case 2:{let S=o[0];if(typeof S==="string")[T,n]=o;else T=S[this.a],n=S[this.b],f=o[1];break}default:{T=o[0],n=o[1],f=o[2];break}}switch(this.cardinality){case"1:1":{let S=this.getRelatedKey(T);if(S&&S!==n)this.delete(T,S)}case"1:n":{let S=this.getRelatedKey(n);if(S&&S!==T)this.delete(S,n)}break;case"n:n":}if(f){let S=this.makeContentKey(T,n);this.setContent(S,f)}return this.addRelation(T,n),this}delete(o,T){T=typeof T==="string"?T:o[this.b];let n=typeof o==="string"?o:o[this.a];if(n===void 0&&typeof T==="string"){let f=this.getRelatedKeys(T);if(f)for(let S of f)this.delete(S,T)}if(typeof n==="string"&&T===void 0){let f=this.getRelatedKeys(n);if(f)for(let S of f)this.delete(n,S)}if(typeof n==="string"&&typeof T==="string"){this.deleteRelation(n,T);let f=this.makeContentKey(n,T);this.deleteContent(f)}return this}getRelatedKey(o){let T=this.getRelatedKeys(o);if(T){if(T.size>1)this.warn?.(`${T.size} related keys were found for key "${o}": (${[...T].map((f)=>`"${f}"`).join(", ")}). Only one related key was expected.`);let n;for(let f of T){n=f;break}return n}}replaceRelations(o,T,n){let f=!Array.isArray(T),S=f?Object.keys(T):T;if(n?.reckless)this.replaceRelationsUnsafely(o,S);else this.replaceRelationsSafely(o,S);if(f)for(let A of S){let $=this.makeContentKey(o,A),F=T[A];this.setContent($,F)}return this}getContent(o,T){let n=this.makeContentKey(o,T);return this.getContentInternal(n)}getRelationEntries(o){let T=o[this.a],n=o[this.b];if(T!==void 0&&n===void 0){let f=this.getRelatedKeys(T);if(f)return[...f].map((S)=>{return[S,this.getContent(T,S)]})}if(T===void 0&&n!==void 0){let f=this.getRelatedKeys(n);if(f)return[...f].map((S)=>{return[S,this.getContent(S,n)]})}return[]}has(o,T){if(T)return this.getRelatedKeys(o)?.has(T)??!1;return this.relations.has(o)}}class kT extends Map{deleted=new Set;source;constructor(o){super();this.source=o}get(o){if(super.has(o))return super.get(o);if(!this.deleted.has(o)&&this.source.has(o))return this.source.get(o);return}set(o,T){return this.deleted.delete(o),super.set(o,T)}hasOwn(o){return super.has(o)}has(o){return!this.deleted.has(o)&&(super.has(o)||this.source.has(o))}delete(o){return this.deleted.add(o),super.delete(o)}}var UF=(o,T,n,f)=>{let S=C(o),A={parent:S,child:null,on:S.on,loggers:S.loggers,logger:S.logger,config:S.config,atoms:new kT(S.atoms),atomsThatAreDefault:new Set(S.atomsThatAreDefault),families:new kT(S.families),joins:new kT(S.joins),operation:{open:!1},readonlySelectors:new kT(S.readonlySelectors),timelines:new kT(S.timelines),timelineTopics:new jo(S.timelineTopics.toJSON()),trackers:new Map,transactions:new kT(S.transactions),selectorAtoms:new jo(S.selectorAtoms.toJSON()),selectorGraph:new jo(S.selectorGraph.toJSON(),{makeContentKey:(...t)=>t.sort().join(":")}),selectors:new kT(S.selectors),valueMap:new kT(S.valueMap),defaults:S.defaults,disposalTraces:o.disposalTraces.copy(),molecules:new kT(S.molecules),moleculeGraph:new jo(S.moleculeGraph.toJSON(),{makeContentKey:S.moleculeGraph.makeContentKey}),moleculeData:new jo(S.moleculeData.toJSON(),{makeContentKey:S.moleculeData.makeContentKey}),moleculeJoins:new jo(S.moleculeJoins.toJSON(),{makeContentKey:S.moleculeJoins.makeContentKey}),miscResources:new kT(S.miscResources)},$=EF(o,T),F={phase:"building",update:{type:"transaction_update",key:T,id:f,epoch:$===void 0?Number.NaN:$+1,updates:[],params:n,output:void 0},toolkit:{get:(...t)=>to(J,...t),set:(...t)=>{Uo(J,...t)},run:(t,R=Zf())=>zn(J,t,R),find:(t,R)=>i(J,t,R),json:(t)=>Io(J,t),dispose:(...t)=>{$n(J,...t)},env:()=>QF(J)}},J=Object.assign(A,{transactionMeta:F});return S.child=J,o.logger.info("\uD83D\uDEEB","transaction",T,"Building transaction with params:",n),J};function RA(o,T){let n={key:T.key,type:"transaction",run:(A,$)=>{let F=UF(o,T.key,A,$);try{let J=C(o),{toolkit:t}=F.transactionMeta,R=T.do(t,...A);return zF(R,J),R}catch(J){throw SF(f),o.logger.warn("\uD83D\uDCA5","transaction",T.key,"caught:",J),J}},install:(A)=>RA(A,T),subject:new oo},f=C(o);f.transactions.set(n.key,n);let S=fT(n);return o.on.transactionCreation.next(S),S}function tf(o){return RA(fo.STORE,o)}class VF{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new jo({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new jo({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...o)=>o.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new jo({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new jo({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new gf(100);molecules=new Map;moleculeJoins=new jo({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...o)=>o.sort().join(":")});moleculeGraph=new jo({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...o)=>o.sort().join(":")});moleculeData=new jo({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...o)=>o.sort().join(":")});miscResources=new Map;on={atomCreation:new oo,atomDisposal:new oo,selectorCreation:new oo,selectorDisposal:new oo,timelineCreation:new oo,transactionCreation:new oo,transactionApplying:new TA(null),operationClose:new oo,moleculeCreation:new oo,moleculeDisposal:new oo};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new SA("warn",(o,T,n)=>!iT(n))];logger={error:(...o)=>{for(let T of this.loggers)T.error(...o)},info:(...o)=>{for(let T of this.loggers)T.info(...o)},warn:(...o)=>{for(let T of this.loggers)T.warn(...o)}};constructor(o,T=null){if(this.config={...T?.config,...o},T!==null){if(this.valueMap=new Map(T?.valueMap),this.operation={...T?.operation},qo(T))this.transactionMeta={epoch:new Map(T?.transactionMeta.epoch),actionContinuities:new jo(T?.transactionMeta.actionContinuities.toJSON())};for(let[,f]of T.families){if(f.internalRoles?.includes("mutable")||f.internalRoles?.includes("join"))continue;f.install(this)}let n=new Set;for(let[,f]of T.atoms){if(n.has(f.key))continue;if(f.install(this),f.type==="mutable_atom"){let S=Io(T,f),A=bT(f);n.add(S.key),n.add(A.key)}}for(let[,f]of T.readonlySelectors)f.install(this);for(let[,f]of T.selectors){if(n.has(f.key))continue;f.install(this)}for(let[,f]of T.transactions)f.install(this);for(let[,f]of T.timelines)f.install(this)}}}var fo={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new VF({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function $o(o,T){let n,f=o;while(f!==null){switch(T.type){case"atom":case"mutable_atom":n=f.atoms.get(T.key);break;case"selector":n=f.selectors.get(T.key);break;case"readonly_selector":n=f.readonlySelectors.get(T.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":n=f.families.get(T.key);break;case"timeline":n=f.timelines.get(T.key);break;case"transaction":n=f.transactions.get(T.key);break}if(n)return n;f=f.child}throw new An(T,o)}function BF(o,T,n){let f=o.families.get(T.key);if(f===void 0)throw new An(T,o);let S=f(n),A=C(o);if(S.family){if(qo(A))switch(S.type){case"atom":case"mutable_atom":o.on.atomCreation.next(S);break;case"selector":case"readonly_selector":o.on.selectorCreation.next(S);break}else if(Ro(A)&&A.on.transactionApplying.state===null)A.transactionMeta.update.updates.push({type:"state_creation",token:S})}return S}function mF(o,T,n){let f=no(n),S=`${T.key}(${f})`,A=C(o),$;switch(T.type){case"atom_family":case"mutable_atom_family":$=A.atoms.get(S);break;case"selector_family":$=A.selectors.get(S);break;case"readonly_selector_family":$=A.readonlySelectors.get(S);break}if($)return fT($);return $}function i(o,T,n){let f=mF(o,T,n);if(f)return f;let S=no(n),A=o.molecules.get(S);if(!A&&o.config.lifespan==="immortal"){let $=u$(T,n);return o.logger.error("\u274C",$.type,$.key,`was not found in store "${o.config.name}"; returned a counterfeit token.`),$}if(f=BF(o,T,n),A)C(o).moleculeData.set(S,T.key);return f}function $n(o,...T){let n;if(T.length===1)n=T[0];else{let f=T[0],S=T[1];n=i(o,f,S)}try{$o(o,n)}catch(f){o.logger.error("\u274C",n.type,n.key,`could not be disposed because it was not found in the store "${o.config.name}".`);return}switch(n.type){case"atom":case"mutable_atom":MA(o,n);break;case"selector":case"readonly_selector":LF(o,n);break}}var TS=(o,T)=>C(o).atoms.has(T),bM=(o,T)=>C(o).selectors.has(T),xM=(o,T)=>C(o).readonlySelectors.has(T),CF=(o,T)=>TS(o,T)||bM(o,T)||xM(o,T);var nS=(o,T)=>{return C(T).selectorGraph.getRelationEntries({downstreamSelectorKey:o}).filter(([f,{source:S}])=>S!==o).map(([f,{source:S}])=>S).filter((f)=>CF(T,f))};var yA=(o,T,n)=>{let f=[],S=nS(o,n);while(S.length>0){let A=S.shift();if(T.has(A))continue;if(T.add(A),!TS(n,A))S.push(...nS(A,n));else if(!f.includes(A))f.push(A)}return f},IF=(o,T)=>{let n=o.key,f=nS(n,T),S=new Set;return f.flatMap((A)=>TS(T,A)?A:yA(A,S,T))};var jF=(o,T,n,f)=>{let S=C(f);if(T.type==="atom"||T.type==="mutable_atom")S.selectorAtoms.set({selectorKey:o,atomKey:T.key}),f.logger.info("\uD83D\uDD0D","selector",o,`discovers root atom "${T.key}"`);else{let A=yA(T.key,n,f);f.logger.info("\uD83D\uDD0D","selector",o,`discovers root atoms: [ ${A.map(($)=>`"${$}"`).join(", ")} ]`);for(let $ of A)S.selectorAtoms=S.selectorAtoms.set({selectorKey:o,atomKey:$})}n.add(T.key)};var fS=(o,T,n)=>({get:(...f)=>{let S=C(n),A;if(f.length===2){let[J,t]=f;A=i(n,J,t)}else[A]=f;let $=$o(n,A),F=PT(n,$);return n.logger.info("\uD83D\uDD0C","selector",o,`registers dependency ( "${A.key}" =`,F,")"),S.selectorGraph.set({upstreamSelectorKey:A.key,downstreamSelectorKey:o},{source:A.key}),jF(o,A,T,n),F},set:(...f)=>{let S,A;if(f.length===2)S=f[0],A=f[1];else{let J=f[0],t=f[1];A=f[2],S=i(n,J,t)}let $=C(n),F=$o($,S);sf($,F,A)},find:(f,S)=>i(n,f,S),json:(f)=>Io(n,f)});var Sf=(o,T,n)=>{let f=C(o),S=new oo,A=new Set,{get:$,find:F,json:J}=fS(T.key,A,f),t=()=>{let _=T.get({get:$,find:F,json:J});return yT(C(o),T.key,_,S),A.clear(),_},R={...T,subject:S,install:(_)=>Sf(_,T,n),get:t,type:"readonly_selector",...n&&{family:n}};f.readonlySelectors.set(T.key,R);let W=t();o.logger.info("\u2728",R.type,R.key,"=",W);let O={key:T.key,type:"readonly_selector"};if(n)O.family=n;return O};var Rf=(o,T,n)=>{let f=C(o),S=new oo,A=new Set,$=fS(T.key,A,f),{find:F,get:J,json:t}=$,R={find:F,get:J,json:t},W=(m=T.get,b=C(o))=>{let r=m(R);return yT(b,T.key,r,S),A.clear(),r},_={...T,subject:S,install:(m)=>Rf(m,T,n),get:W,set:(m)=>{let b=C(o),r=W(T.get,b),P=ef(m)(r);if(o.logger.info("\uD83D\uDCDD","selector",T.key,"set (",r,"->",P,")"),yT(b,T.key,P,S),Dn(b,T.key),qo(b))S.next({newValue:P,oldValue:r});T.set($,P)},type:"selector",...n&&{family:n}};f.selectors.set(T.key,_);let Q=W();o.logger.info("\u2728",_.type,_.key,"=",Q);let H={key:T.key,type:"selector"};if(n)H.family=n;return H};function jT(o,T){if("set"in T){let S=Rf(o,T,void 0);return o.on.selectorCreation.next(S),S}let f=Sf(o,T,void 0);return o.on.selectorCreation.next(f),f}function LF(o,T){let n=C(o),{key:f}=T,S=$o(n,T);if(!S.family)o.logger.error("\u274C","selector",f,"Standalone selectors cannot be disposed.");else{if(n.molecules.get(S.family.subKey))n.moleculeData.delete(S.family.subKey,S.family.key);let $;switch(T.type){case"selector":n.selectors.delete(f),$={key:S.family.key,type:"selector_family"},$o(o,$).subject.next({type:"state_disposal",subType:"selector",token:T});break;case"readonly_selector":n.readonlySelectors.delete(f),$={key:S.family.key,type:"readonly_selector_family"},$o(o,$).subject.next({type:"state_disposal",subType:"selector",token:T});break}if(n.valueMap.delete(f),n.selectorAtoms.delete(f),n.selectorGraph.delete(f),o.logger.info("\uD83D\uDD25",T.type,f,"deleted"),Ro(n)&&n.transactionMeta.phase==="building")n.transactionMeta.update.updates.push({type:"state_disposal",subType:"selector",token:T});else o.on.selectorDisposal.next(T)}}function Af(o,T,n){let f={key:T.key,type:"selector_family"},S=o.families.get(T.key);if(S)o.logger.error("\u2757","selector_family",T.key,`Overwriting an existing ${VT(S)} "${S.key}" in store "${o.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let A=new oo,F=Object.assign((J)=>{let t=no(J),R={key:T.key,subKey:t},W=`${T.key}(${t})`,O=C(o),_=Rf(O,{key:W,get:T.get(J),set:T.set(J)},R);return A.next({type:"state_creation",token:_}),_},f,{internalRoles:n,subject:A,install:(J)=>Af(J,T),default:(J)=>{return T.get(J)({get:(...R)=>to(o,...R),find:(R,W)=>i(o,R,W),json:(R)=>Io(o,R)})}});return o.families.set(T.key,F),f}function hF(o,T,n){return Af(o,{key:`${T.key}:JSON`,get:(S)=>({get:A})=>{let $=A(T,S);return n.toJson($)},set:(S)=>({set:A},$)=>{A(T,S,n.fromJson($))}},["mutable","json"])}var xo=(o)=>JSON.parse(o),no=(o)=>JSON.stringify(o),F2=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var NF=(o,T)=>{let n=C(o);if(n.operation.open)return n.operation.prev.get(T.key);return n.valueMap.get(T.key)};var OA=(o,T)=>{let n=C(o);return IF(T,o).map((S)=>{let A=n.atoms.get(S);if(A===void 0)throw new Error(`Atom "${S}", a dependency of selector "${T.key}", not found in store "${o.config.name}".`);return A.subject.subscribe(`${T.type}:${T.key}`,($)=>{o.logger.info("\uD83D\uDCE2",T.type,T.key,"root",S,"went",$.oldValue,"->",$.newValue);let F=NF(n,T),J=PT(n,T);o.logger.info("\u2728",T.type,T.key,"went",F,"->",J),T.subject.next({newValue:J,oldValue:F})})})};function lo(o,T,n,f){function S(W){if(o.operation.open){let O=o.on.operationClose.subscribe(`state subscription ${n}`,()=>{O(),f(W)})}else f(W)}let A=$o(o,T);o.logger.info("\uD83D\uDC40",A.type,A.key,`Adding subscription "${n}"`);let $=A.type==="selector"||A.type==="readonly_selector",F=null,J=S;if($)F=OA(o,A),J=(W)=>{if(F)F.length=0,F.push(...OA(o,A));S(W)};let t=A.subject.subscribe(n,J);return()=>{if(o.logger.info("\uD83D\uDE48",A.type,A.key,`Removing subscription "${n}"`),t(),F)for(let W of F)W()}}var kA=(o,T,n,f)=>{let S=$o(o,T);o.logger.info("\uD83D\uDC40","timeline",T.key,`Adding subscription "${n}"`);let A=S.subject.subscribe(n,f);return()=>{o.logger.info("\uD83D\uDE48","timeline",T.key,`Removing subscription "${n}" from timeline`),A()}};var WA=(o,T,n,f)=>{let S=$o(o,T);o.logger.info("\uD83D\uDC40","transaction",T.key,`Adding subscription "${n}"`);let A=S.subject.subscribe(n,f);return()=>{o.logger.info("\uD83D\uDE48","transaction",T.key,`Removing subscription "${n}"`),A()}};class Fn{Update;initializeState(o,T){let n=`*${o.key}`;T.atoms.delete(n),T.valueMap.delete(n);let f=o.family?{key:`*${o.family.key}`,subKey:o.family.subKey}:void 0,S=FT(T,{key:n,default:null},f);if(T.parent?.valueMap.has(n)){let A=T.parent.valueMap.get(n);T.valueMap.set(n,A)}return S}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(o,T,n){let f=`tracker:${n.config.name}:${Ro(n)?n.transactionMeta.update.key:"main"}:${o.key}`,S=to(n,o);this.unsubscribeFromInnerValue=S.subscribe(f,(A)=>{Uo(n,T,A)}),this.unsubscribeFromState=lo(n,o,f,(A)=>{if(A.newValue!==A.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=A.newValue.subscribe(f,($)=>{Uo(n,T,$)})})}updateCore(o,T,n){let f=`tracker:${n.config.name}:${Ro(n)?n.transactionMeta.update.key:"main"}:${o.key}`;lo(n,T,f,({newValue:S,oldValue:A})=>{let $=n.timelineTopics.getRelatedKey(T.key);if($){if(n.timelines.get($)?.timeTraveling){let t=kA(n,{key:$,type:"timeline"},f,(R)=>{t(),Uo(n,o,(W)=>{if(R==="redo"&&S)W.do(S);else if(R==="undo"&&A)W.undo(A);return W})});return}}let F=n.on.operationClose.subscribe(f,()=>{F();let J=to(n,o),t=S===null?-1:J.getUpdateNumber(S),R=t-J.cacheUpdateNumber;if(S&&R===1)Uo(n,o,(W)=>(W.do(S),W));else n.logger.info("\u274C","mutable_atom",o.key,`could not be updated. Expected update number ${J.cacheUpdateNumber+1}, but got ${t}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(o,T){this.mutableState=o;let n=C(T);this.latestUpdateState=this.initializeState(o,n),this.observeCore(o,this.latestUpdateState,n),this.updateCore(o,this.latestUpdateState,n),n.trackers.set(o.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),n.trackers.delete(o.key)}}}function Mf(o,T,n){o.logger.info("\uD83D\uDD28","atom",T.key,`creating in store "${o.config.name}"`);let f=C(o),S=f.atoms.get(T.key);if(S&&S.type==="mutable_atom")return o.logger.error("\u274C","atom",T.key,"Tried to create atom, but it already exists in the store."),fT(S);let A=new oo,$={...T,type:"mutable_atom",install:(t)=>{return t.logger.info("\uD83D\uDEE0\uFE0F","atom",T.key,`installing in store "${t.config.name}"`),Mf(t,T,n)},subject:A};if(n)$.family=n;let F=T.default();f.atoms.set($.key,$),SS(o,T.key),yT(f,T.key,F,A);let J=fT($);if(T.effects){let t=0,R=[];for(let W of T.effects){let O=W({setSelf:(_)=>{Uo(o,J,_)},onSet:(_)=>lo(o,J,`effect[${t}]`,_)});if(O)R.push(O);++t}$.cleanup=()=>{for(let W of R)W()}}if(new Fn(J,o),!n)d$(J,T,o);return J}class wA{trackers=new Map;Update;latestUpdateAtoms;mutableAtoms;constructor(o,T){let n=hT(T,{key:`*${o.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=$o(T,n),this.mutableAtoms=o,this.mutableAtoms.subject.subscribe(`store=${T.config.name}::tracker-atom-family`,(f)=>{let{type:S,token:A}=f;if(A.family){let $=xo(A.family.subKey);switch(S){case"state_creation":this.trackers.set($,new Fn(A,T));break;case"state_disposal":{let F=this.trackers.get($);if(F)F[Symbol.dispose](),this.trackers.delete($)}break}}})}}function ff(o,T,n){let f={key:T.key,type:"mutable_atom_family"},S=o.families.get(T.key);if(S)o.logger.error("\u2757","mutable_atom_family",T.key,`Overwriting an existing ${VT(S)} "${S.key}" in store "${o.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let A=new oo,F=Object.assign((J)=>{let t=no(J),R={key:T.key,subKey:t},W=`${T.key}(${t})`,O=C(o),_={key:W,default:()=>T.default(J),toJson:T.toJson,fromJson:T.fromJson,mutable:!0};if(T.effects)_.effects=T.effects(J);let Q=Mf(O,_,R);return A.next({type:"state_creation",token:Q}),Q},f,{subject:A,install:(J)=>ff(J,T),toJson:T.toJson,fromJson:T.fromJson,internalRoles:n});return o.families.set(T.key,F),hF(o,F,T),new wA(F,o),f}var _A=(o,T)=>{let n=C(T),f=`${o.key}:JSON`;return n.families.get(f)};var Io=(o,T)=>{if(T.family){let f=C(o),A={key:`${T.family.key}:JSON`,type:"selector_family"},$=$o(f,A),F=JSON.parse(T.family.subKey);return i(o,$,F)}return{type:"selector",key:`${T.key}:JSON`}};var bT=(o)=>{let n={type:"atom",key:`*${o.key}`};if(o.family)n.family={key:`*${o.family.key}`,subKey:o.family.subKey};return n};function yF(o){return typeof o==="object"&&o!==null&&"do"in o&&"undo"in o&&"subscribe"in o}function Jf(o,T,n){let f=n.valueMap.get(T.key),S=o.valueMap.get(T.key);if(f!==S)return S;if(f===void 0)return T.default();n.logger.info("\uD83D\uDCC3","atom",T.key,"copying");let A=T.toJson(f),$=T.fromJson(A);return o.valueMap.set(T.key,$),new Fn(T,n),$}function yT(o,T,n,f){let S=o.valueMap.get(T);if(S instanceof nf)S.use(n);if(n instanceof Promise){let A=new nf(n);return o.valueMap.set(T,A),A.then(($)=>{yT(o,T,$,f),f.next({newValue:$,oldValue:A})}).catch(($)=>{o.logger.error("\uD83D\uDCA5","state",T,"rejected:",$)}),A}return o.valueMap.set(T,n),n}var AF=(o,T)=>{let n=T.valueMap.get(o.key);if(o.type==="mutable_atom"&&Ro(T)){let{parent:f}=T;n=Jf(T,o,f)}return n},RF=(o,T)=>{let n=T.valueMap.get(o);if(n instanceof nf){let f=n,S=T.selectors.get(o)??T.readonlySelectors.get(o);if(S)f.use(S.get());return}if(T.operation.open)T.operation.prev.set(o,n);T.valueMap.delete(o),T.logger.info("\uD83D\uDDD1","state",o,"evicted")};var kF=(o,T)=>{return C(o).atomsThatAreDefault.has(T)},SS=(o,T)=>{let n=C(o);n.atomsThatAreDefault=new Set(n.atomsThatAreDefault).add(T)},WF=(o,T)=>{let n=C(o);n.atomsThatAreDefault=new Set(C(o).atomsThatAreDefault),n.atomsThatAreDefault.delete(T)};function FT(o,T,n){o.logger.info("\uD83D\uDD28","atom",T.key,`creating in store "${o.config.name}"`);let f=C(o),S=f.atoms.get(T.key);if(S&&S.type==="atom")return o.logger.error("\u274C","atom",T.key,"Tried to create atom, but it already exists in the store."),fT(S);let A=new oo,$={...T,type:"atom",install:(t)=>{return t.logger.info("\uD83D\uDEE0\uFE0F","atom",T.key,`installing in store "${t.config.name}"`),FT(t,T,n)},subject:A};if(n)$.family=n;let F=T.default;if(T.default instanceof Function)F=T.default();f.atoms.set($.key,$),SS(o,T.key),yT(f,T.key,F,A);let J=fT($);if(T.effects){let t=0,R=[];for(let W of T.effects){let O=W({setSelf:(_)=>{Uo(o,J,_)},onSet:(_)=>lo(o,J,`effect[${t}]`,_)});if(O)R.push(O);++t}$.cleanup=()=>{for(let W of R)W()}}return J}function e$(o,T){if("mutable"in T){let S=Mf(o,T,void 0);return o.on.atomCreation.next(S),S}let f=FT(o,T,void 0);return o.on.atomCreation.next(f),f}function MA(o,T){let n=C(o),{key:f,family:S}=T,A=$o(n,T);if(!S)o.logger.error("\u274C","atom",f,"Standalone atoms cannot be disposed.");else{A.cleanup?.();let $=o.valueMap.get(A.key),F=$o(o,{key:S.key,type:"atom_family"}),J={type:"state_disposal",subType:"atom",token:T,value:$};F.subject.next(J);let t=Ro(n);if(n.atoms.delete(f),n.valueMap.delete(f),n.selectorAtoms.delete(f),n.atomsThatAreDefault.delete(f),o.timelineTopics.delete(f),T.type==="mutable_atom"){let R=bT(T);MA(o,R),o.trackers.delete(f)}if(o.logger.info("\uD83D\uDD25","atom",f,"deleted"),t&&n.transactionMeta.phase==="building"){let R=n.transactionMeta.update.updates.at(-1);if(!(R?.type==="molecule_disposal"&&R.values.some(([_])=>_===A.family?.key)))n.transactionMeta.update.updates.push(J)}else o.on.atomDisposal.next(T)}}class ho extends Set{mode="record";subject=new oo;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(o,T=0){super(o);if(o instanceof ho)this.parent=o,this.cacheUpdateNumber=o.cacheUpdateNumber;if(T)this.cacheLimit=T,this.cache=new Array(T),this.subscribe("auto cache",(n)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=n})}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(o){let T=new ho(o.members,o.cacheLimit);return T.cache=o.cache,T.cacheIdx=o.cacheIdx,T.cacheUpdateNumber=o.cacheUpdateNumber,T}add(o){let T=super.add(o);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${no(o)}`);return T}clear(){let o=this.mode==="record"?[...this]:null;if(super.clear(),o)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(o)}`)}delete(o){let T=super.delete(o);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${no(o)}`);return T}parent;child=null;transactionUpdates=null;transaction(o){this.mode="transaction",this.transactionUpdates=[],this.child=new ho(this);let T=this.child._subscribe("transaction",(n)=>{this.transactionUpdates?.push(n)});try{if(o(this.child)){for(let f of this.transactionUpdates)this.doStep(f);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(n){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",n),n}finally{T(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(o,T){return this.subject.subscribe(o,T)}subscribe(o,T){return this.subject.subscribe(o,(n)=>{T(`${this.cacheUpdateNumber}=${n}`)})}emit(o){this.subject.next(o)}doStep(o){let T=o.indexOf(":"),n=o.substring(0,T),f=o.substring(T+1);switch(n){case"add":this.add(JSON.parse(f));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(f));break;case"tx":for(let S of f.split(";"))this.doStep(S)}}getUpdateNumber(o){let T=o.indexOf("=");return Number(o.substring(0,T))}do(o){let T=o.indexOf("="),n=Number(o.substring(0,T)),f=n-this.cacheUpdateNumber;if(f>0){if(f===1){this.mode="playback";let A=o.substring(T+1);return this.doStep(A),this.mode="record",this.cacheUpdateNumber=n,null}return this.cacheUpdateNumber+1}if(Math.abs(f)<this.cacheLimit){let A=this.cacheIdx+f;if(this.cache[A]===o)return null;this.mode="playback";let F=!1;while(!F){this.cacheIdx%=this.cacheLimit;let t=this.cache[this.cacheIdx];if(this.cacheIdx--,!t)return"OUT_OF_RANGE";this.undo(t),F=this.cacheIdx===A-1}let J=o.substring(T+1);return this.doStep(J),this.mode="record",this.cacheUpdateNumber=n,null}return"OUT_OF_RANGE"}undoStep(o){let T=o.indexOf(":"),n=o.substring(0,T),f=o.substring(T+1);switch(n){case"add":this.delete(JSON.parse(f));break;case"del":this.add(JSON.parse(f));break;case"clear":{let S=JSON.parse(f);for(let A of S)this.add(A);break}case"tx":{let S=f.split(";");for(let A=S.length-1;A>=0;A--)this.undoStep(S[A])}}}undo(o){let T=o.indexOf("=");if(Number(o.substring(0,T))===this.cacheUpdateNumber){this.mode="playback";let f=o.substring(T+1);return this.undoStep(f),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}class $f{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(o,T){let n=this.toolkit;this.toolkit=o,T(this),this.toolkit=n}store;realm;[Symbol.dispose](){}constructor(o,T,n=fo.STORE){this.store=n,this.realm=new AA(n),this.options=o,this.defaultContent=T,this.store.miscResources.set(`join:${o.key}`,this),this.realm.allocate("root",o.key),this.toolkit={get:(...E)=>to(n,...E),set:(...E)=>{Uo(n,...E)},find:(...E)=>i(n,...E),json:(E)=>Io(n,E)};let f=o.between[0],S=o.between[1],A=ff(n,{key:`${o.key}/relatedKeys`,default:()=>new ho,mutable:!0,fromJson:(E)=>ho.fromJSON(E),toJson:(E)=>E.toJSON()},["join","relations"]);this.core={relatedKeysAtoms:A};let $=({get:E},z)=>E(A,z),F=({set:E},z,U)=>{if(!this.store.molecules.has(no(z)))this.realm.allocate(o.key,z);E(A,z,(D)=>D.add(U)),E(A,U,(D)=>D.add(z))},J=({set:E},z,U)=>{E(A,z,(D)=>{return D.delete(U),D}),E(A,U,(D)=>{return D.delete(z),D})},t=(E,z,U)=>{let{find:D,get:v,set:l}=E,K=D(A,z),s=v(K);for(let q of s){if(U.includes(q))continue;l(A,q,(ko)=>{return ko.delete(z),ko})}l(K,(q)=>{return q.transaction((a)=>{a.clear();for(let ko of U){let mo=$(E,ko),nT=mo.has(z);if(this.relations.cardinality==="1:n"){let IT=[];for(let G of mo){if(G===z)continue;let p=$(E,G);if(p.delete(ko),p.size===0)IT.push(G)}if(!nT&&mo.size>0)mo.clear();for(let G of IT){let p=[ko,G].sort(),Fo=`"${p[0]}:${p[1]}"`;this.molecules.delete(Fo)}}if(!nT)mo.add(z);a.add(ko)}return!0}),q})},R=(E,z,U)=>{let{set:D}=E;D(A,z,(v)=>{return v.transaction((l)=>{for(let K of U)l.add(K);return!0}),v});for(let v of U)D(A,v,(l)=>{return l.add(z),l});return!0},W=(E,z,U)=>{let D=$(E,z);return U?D.has(U):D.size>0},O={getRelatedKeys:(E)=>$(this.toolkit,E),addRelation:(E,z)=>{this.store.moleculeJoins.set(E,o.key),this.store.moleculeJoins.set(z,o.key),F(this.toolkit,E,z)},deleteRelation:(E,z)=>{J(this.toolkit,E,z)},replaceRelationsSafely:(E,z)=>{t(this.toolkit,E,z)},replaceRelationsUnsafely:(E,z)=>{R(this.toolkit,E,z)},has:(E,z)=>W(this.toolkit,E,z)},_,Q;if(T){Q=hT(n,{key:`${o.key}/content`,default:T},["join","content"]);let E=({get:D},v)=>D(Q,v),z=({set:D},v,l)=>{D(Q,v,l)};_=Object.assign(O,{getContent:(D)=>{return E(this.toolkit,D)},setContent:(D,v)=>{z(this.toolkit,D,v)},deleteContent:(D)=>{this.realm.deallocate(D)}})}else _=O;let H=new jo(o,{externalStore:_,isAType:o.isAType,isBType:o.isBType,makeContentKey:(...E)=>{let[z,U]=E,D=E.sort(),v=`${D[0]}:${D[1]}`,l=n.molecules.get(no(z)),K=n.molecules.get(no(U));if(!l)this.realm.allocate(o.key,z);if(!K)this.realm.allocate(o.key,U);return this.realm.allocate(z,v,"all"),this.realm.claim(U,v),this.store.moleculeJoins.set(v,o.key),v}}),m=()=>NT(n,{key:`${o.key}/singleRelatedKey`,get:(E)=>({get:z})=>{let U=z(A,E);for(let D of U)return D;return null}},["join","keys"]),b=()=>{return NT(n,{key:`${o.key}/multipleRelatedKeys`,get:(E)=>({get:z})=>{let U=_A(A,n);return z(U,E).members}},["join","keys"])},r=()=>NT(n,{key:`${o.key}/singleRelatedEntry`,get:(E)=>({get:z})=>{let U=z(A,E);for(let D of U){let v=H.isAType?.(E)?E:void 0,l=v===void 0?E:void 0;v??=D,l??=D;let K=H.makeContentKey(v,l),s=z(Q,K);return[D,s]}return null}},["join","entries"]),P=()=>NT(n,{key:`${o.key}/multipleRelatedEntries`,get:(E)=>({get:z})=>{let U=_A(A,n);return z(U,E).members.map((v)=>{let l=H.isAType?.(E)?E:void 0,K=l===void 0?E:void 0;l??=v,K??=v;let s=H.makeContentKey(l,K),q=z(Q,s);return[v,q]})}},["join","entries"]);switch(o.cardinality){case"1:1":{let E=m(),z=`${f}KeyOf${Mo(S)}`,U=`${S}KeyOf${Mo(f)}`,D={[z]:E,[U]:E},v;if(T){let l=r(),K=`${f}EntryOf${Mo(S)}`,s=`${S}EntryOf${Mo(f)}`,q={[K]:l,[s]:l};v=Object.assign(D,q)}else v=D;this.relations=H,this.states=v;break}case"1:n":{let E=m(),z=b(),U=`${f}KeyOf${Mo(S)}`,D=`${S}KeysOf${Mo(f)}`,v={[U]:E,[D]:z},l;if(T){let K=r(),s=P(),q=`${f}EntryOf${Mo(S)}`,a=`${S}EntriesOf${Mo(f)}`,ko={[q]:K,[a]:s};l=Object.assign(v,ko)}else l=v;this.relations=H,this.states=l;break}case"n:n":{let E=b(),z=`${f}KeysOf${Mo(S)}`,U=`${S}KeysOf${Mo(f)}`,D={[z]:E,[U]:E},v;if(T){let l=P(),K=`${f}EntriesOf${Mo(S)}`,s=`${S}EntriesOf${Mo(f)}`,q={[K]:l,[s]:l};v=Object.assign(D,q)}else v=D;this.relations=H,this.states=v}}}}function Qn(o,T){let n=T.joins.get(o.key);if(n===void 0){let S=fo.STORE.joins.get(o.key);if(S===void 0)throw new Error(`Join "${o.key}" not found in store "${T.config.name}"`);n=new $f(S.options,S.defaultContent,T),T.joins.set(o.key,n)}return n}function Ff(o,T,n){let f=Qn(o,n),S=C(n);if(Ro(S)){let{toolkit:A}=S.transactionMeta;f.transact(A,({relations:$})=>{T($)})}else T(f.relations)}function lf(o,T,n){let f=Qn(o,n),S;switch(o.cardinality){case"1:1":{let A=`${o.a}KeyOf${Mo(o.b)}`,$=`${o.b}KeyOf${Mo(o.a)}`;S={get[A](){let J=f.states[A];return i(n,J,T)},get[$](){let J=f.states[$];return i(n,J,T)}};let F=`${o.a}EntryOf${Mo(o.b)}`;if(F in f.states){let J=`${o.b}EntryOf${Mo(o.a)}`;Object.assign(S,{get[F](){let t=f.states[F];return i(n,t,T)},get[J](){let t=f.states[J];return i(n,t,T)}})}break}case"1:n":{let A=`${o.a}KeyOf${Mo(o.b)}`,$=`${o.b}KeysOf${Mo(o.a)}`;S={get[A](){let J=f.states[A];return i(n,J,T)},get[$](){let J=f.states[$];return i(n,J,T)}};let F=`${o.a}EntryOf${Mo(o.b)}`;if(F in f.states){let J=`${o.b}EntriesOf${Mo(o.a)}`;Object.assign(S,{get[F](){let t=f.states[F];return i(n,t,T)},get[J](){let t=f.states[J];return i(n,t,T)}})}break}case"n:n":{let A=`${o.a}KeysOf${Mo(o.b)}`,$=`${o.b}KeysOf${Mo(o.a)}`;S={get[A](){let J=f.states[A];return i(n,J,T)},get[$](){let J=f.states[$];return i(n,J,T)}};let F=`${o.a}EntriesOf${Mo(o.b)}`;if(F in f.states){let J=`${o.b}EntriesOf${Mo(o.a)}`;Object.assign(S,{get[F](){let t=f.states[F];return i(n,t,T)},get[J](){let t=f.states[J];return i(n,t,T)}})}}}return S}function oF(o,T){return Qn(o,T).core.relatedKeysAtoms}function iT(o){return o.startsWith("\uD83D\uDD0D ")}var XA=(o)=>{let T=FT(o,{key:"\uD83D\uDD0D Atom Token Index (Internal)",default:()=>{let n=new Map;for(let[f,S]of o.atoms){if(iT(f))continue;let A=fT(S);if(S.family){let $=n.get(S.family.key);if(!$||!("familyMembers"in $))$={key:S.family.key,familyMembers:new Map},n.set(S.family.key,$);$.familyMembers.set(S.family.subKey,A)}else n.set(f,A)}return n},effects:[({setSelf:n})=>{o.on.atomCreation.subscribe("introspection",(f)=>{if(iT(f.key))return;n((S)=>{if(f.family){let{key:A,subKey:$}=f.family,F=S.get(A);if(F===void 0||!("familyMembers"in F))F={key:A,familyMembers:new Map},S.set(A,F);F.familyMembers.set($,f)}else S.set(f.key,f);return S})}),o.on.atomDisposal.subscribe("introspection",(f)=>{n((S)=>{if(f.family){let{key:A,subKey:$}=f.family,F=S.get(A);if(F&&"familyMembers"in F){if(F.familyMembers.delete($),F.familyMembers.size===0)S.delete(A)}}else S.delete(f.key);return S})})}]},void 0);return jT(o,{key:"\uD83D\uDD0D Atom Token Index",get:({get:n})=>n(T)})};var HA=(o)=>{let T=FT(o,{key:"\uD83D\uDD0D Selector Token Index (Internal)",default:()=>{let n=new Map;for(let f of[o.readonlySelectors,o.selectors])for(let[S,A]of f){if(iT(S))continue;let $=fT(A);if(A.family){let F=n.get(A.family.key);if(!F||!("familyMembers"in F))F={key:A.family.key,familyMembers:new Map},n.set(A.family.key,F);F.familyMembers.set(A.family.subKey,$)}else n.set(S,$)}return n},effects:[({setSelf:n})=>{o.on.selectorCreation.subscribe("introspection",(f)=>{if(iT(f.key))return;n((S)=>{if(f.family){let{key:A,subKey:$}=f.family,F=S.get(A);if(F===void 0||!("familyMembers"in F))F={key:A,familyMembers:new Map},S.set(A,F);F.familyMembers.set($,f)}else S.set(f.key,f);return S})}),o.on.selectorDisposal.subscribe("introspection",(f)=>{n((S)=>{if(f.family){let{key:A,subKey:$}=f.family,F=S.get(A);if(F&&"familyMembers"in F){if(F.familyMembers.delete($),F.familyMembers.size===0)S.delete(A)}}else S.delete(f.key);return S})})}]},void 0);return jT(o,{key:"\uD83D\uDD0D Selector Token Index",get:({get:n})=>n(T)})};class AS{supported;constructor(o){this.supported=o}refine(o){for(let[T,n]of Object.entries(this.supported))try{if(n(o)===!0&&n!==Boolean)return{type:T,data:o}}catch(f){try{if(o instanceof n)return{type:T,data:o}}catch(S){}}return null}}var KA=new AS({number:(o)=>typeof o==="number",string:(o)=>typeof o==="string",boolean:(o)=>typeof o==="boolean",null:(o)=>o===null});function EA(o){if(!o)return!1;return Object.getPrototypeOf(o)===Object.prototype}var GA=new AS({object:EA,array:(o)=>Array.isArray(o)}),vM=new AS({...KA.supported,...GA.supported}),Un=(o)=>{if(o===void 0)return"undefined";let T=vM.refine(o);if(T)return T.type;return Object.getPrototypeOf(o).constructor.name};class bF{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(o=fo.STORE){this.store=o,this.atomIndex=XA(this.store),this.selectorIndex=HA(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:T})=>{this.statesCreatedAt.set(T,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:T})=>{this.statesCreatedAt.delete(T)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:T})=>{this.statesCreatedAt.set(T,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:T})=>{this.statesCreatedAt.delete(T)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(o=bF.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let T=nA(this.atomIndex),n=nA(this.selectorIndex),f=[...T.values()].filter((F)=>("familyMembers"in F)),S=[...n.values()].filter((F)=>("familyMembers"in F)),A=performance.now(),$=[];if(o.atomFamilies)for(let F of f){let J=F.familyMembers.values();for(let t of J){let W=this.statesCreatedAt.get(t.key)??this.auditorCreatedAt,O=A-W;$.push([t,O])}}if(o.selectorFamilies)for(let F of S){let J=F.familyMembers.values();for(let t of J){let W=this.statesCreatedAt.get(t.key)??this.auditorCreatedAt,O=A-W;$.push([t,O])}}return $}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var YA=(o,T)=>{let n=(f,S)=>{let $=((J,t)=>{let R=T(J,t);if(R)return R;return null})(f,S);if($?.jobComplete??$?.pathComplete)return $;let F=Array.isArray(S)?S.map((J,t)=>[t,J]):EA(S)?Object.entries(S):[];for(let[J,t]of F){let R=n([...f,J],t);if(R?.jobComplete)return R}return{}};n([],o)};function rM(o,T){return{summary:`${o<T?"+":"-"}${Math.abs(o-T)} (${o} \u2192 ${T})`}}function qM(o,T){return{summary:`${o.length<T.length?"+":"-"}${Math.abs(o.length-T.length)} ("${o}" \u2192 "${T}")`}}function pM(o,T){return{summary:`${o} \u2192 ${T}`}}function xF(o,T,n){let f="",S=[],A=[],$=[];return YA(o,(F,J)=>{let t;for(t of F){let R=T[t];if(R===void 0)A.push([t,JSON.stringify(J)]);else{let W=n(J,R);if(W.summary!=="No Change")$.push([t,W])}}}),YA(T,(F,J)=>{let t;for(t of F)if(o[t]===void 0)S.push([t,JSON.stringify(J)])}),f=`\uFF5E${$.length} \uFF0B${S.length} \uFF0D${A.length}`,{summary:f,added:S,removed:A,changed:$}}function cM(o,T,n){return xF(o,T,n)}class vF{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(o,T,n){this.leafRefinery=o,this.treeRefinery=T,this.leafDiffers={},this.treeDiffers={};for(let f of Object.keys(o.supported)){let S=n[f];this.leafDiffers[f]=S}for(let f of Object.keys(T.supported)){let S=n[f];this.treeDiffers[f]=S}}diff(o,T){if(o===T)return{summary:"No Change"};let n=this.leafRefinery.refine(o)??this.treeRefinery.refine(o),f=this.leafRefinery.refine(T)??this.treeRefinery.refine(T);if(n!==null&&f!==null){if(n.type===f.type){if(n.type in this.leafDiffers)return this.leafDiffers[n.type](n.data,f.data);if(n.type in this.treeDiffers)return this.treeDiffers[n.type](n.data,f.data,(F,J)=>this.diff(F,J))}}let S=Un(o),A=Un(T);if(S===A)return{summary:`${S} \u2192 ${A}`};return{summary:`Type change: ${S} \u2192 ${A}`}}}var A8=new vF(KA,GA,{number:rM,string:qM,boolean:pM,null:()=>({summary:"No Change"}),object:xF,array:cM});class rF extends Map{set(o,T){if(this.has(o))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:o,value:T}),this;return super.set(o,T)}clear(){throw new Error("Cannot clear an InvariantMap")}}class $S{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(o){this.key=o}static existing=new rF;static create(o,T){let n=new $S(o),{type:f,globals:S,actions:A,perspectives:$}=T(n),F={type:f,key:o,globals:S,actions:A,perspectives:$};return $S.existing.set(o,F),F}add(...o){switch(o[0].type){case"atom":case"mutable_atom":this.globals.push(...o);break;case"transaction":this.actions.push(...o);break;case"atom_family":case"mutable_atom_family":{let[n,f]=o;this.perspectives.push({type:"realtime_perspective",resourceAtoms:n,viewAtoms:f})}break}return this}}function W8(o){let{key:T,config:n}=o,f=$S.create(T,n),{actions:S}=f;for(let A of S)DF(fo.STORE,T,A.key);return GF(fo.STORE,T,-1),f}var X8=Gn({key:"usersInRoomIndex",mutable:!0,default:()=>new ho,toJson:(o)=>o.toJSON(),fromJson:(o)=>ho.fromJSON(o)}),zA=Gn({key:"roomIndex",default:()=>new ho,mutable:!0,toJson:(o)=>o.toJSON(),fromJson:(o)=>ho.fromJSON(o)}),ZM={enteredAtEpoch:0},yf=df({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(o)=>typeof o==="string",isBType:(o)=>typeof o==="string"},ZM),H8=uf({key:"usersInMyRoomView",get:(o)=>({find:T})=>{let n=a$(yf);return[T(n,o)]}});import{spawn as PM}from"node:child_process";class Vn{listeners;globalListeners;handleEvent(o,...T){for(let f of this.globalListeners)f(o,...T);let n=this.listeners.get(o);if(n)for(let f of n)f(...T)}id="no_id_retrieved";emit;constructor(o){this.emit=o,this.listeners=new Map,this.globalListeners=new Set}on(o,T){let n=this.listeners.get(o);if(n)n.add(T);else this.listeners.set(o,new Set([T]));return this}onAny(o){return this.globalListeners.add(o),this}off(o,T){let n=this.listeners.get(o);if(n)if(T)n.delete(T);else this.listeners.delete(o);return this}offAny(o){return this.globalListeners.delete(o),this}}class DA extends Vn{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;key;logger;handleLog(o){if(Array.isArray(o)){let[T,...n]=o;switch(T){case"i":this.logger.info(...n);break;case"w":this.logger.warn(...n);break;case"e":this.logger.error(...n);break;default:return}}}constructor(o,T,n){super((f,...S)=>{let A=JSON.stringify([f,...S])+"\x03",$=(F)=>{if(F.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",$)};return this.process.stdin.once("error",$),this.process.stdin.write(A),this});if(this.process=o,this.key=T,this.logger=n??{info:(...f)=>{console.info(this.id,this.key,...f)},warn:(...f)=>{console.warn(this.id,this.key,...f)},error:(...f)=>{console.error(this.id,this.key,...f)}},this.process.stdout.on("data",(f)=>{let S=f.toString();if(S==="ALIVE")return;this.unprocessedEvents.push(...S.split("\x03"));let A=this.unprocessedEvents.shift();this.incompleteData+=A??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let $=xo(this.incompleteData);this.handleEvent(...$);while(this.unprocessedEvents.length>0){let F=this.unprocessedEvents.shift();if(F){if(this.unprocessedEvents.length===0)this.incompleteData=F;$=xo(F),this.handleEvent(...$)}}this.incompleteData=""}catch($){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error($)}}),this.process.stderr.on("data",(f)=>{let S=f.toString();this.unprocessedLogs.push(...S.split("\x03"));let A=this.unprocessedLogs.shift();this.incompleteLog+=A??"";try{let $=xo(this.incompleteLog);this.handleLog($);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)$=xo(this.incompleteLog),this.handleLog($)}catch($){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error($),console.error("\u274C\u274C\u274C\uFE0F")}}),o.pid)this.id=o.pid.toString()}}class qF extends Vn{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(o){super((...T)=>{return this.out.next(T),this});this.id=o,this.in=new oo,this.out=new oo,this.in.subscribe("socket",(T)=>{this.handleEvent(...T)})}dispose(){for(let o of this.disposalFunctions)o()}}class QA extends Vn{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...o){this.process.stderr.write(no(o.map((T)=>T instanceof ho?`{ ${T.toJSON().members.join(" | ")} }`:T))+"\x03")}logger={info:(...o)=>{this.log("i",...o)},warn:(...o)=>{this.log("w",...o)},error:(...o)=>{this.log("e",...o)}};constructor(){super((o,...T)=>{let n=JSON.stringify([o,...T]);return this.process.stdout.write(n+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(o)=>{let T=o.toString();this.unprocessedEvents.push(...T.split("\x03"));let n=this.unprocessedEvents.shift();this.incompleteData+=n??"";try{let f=xo(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",f),this.handleEvent(...f);while(this.unprocessedEvents.length>0){let S=this.unprocessedEvents.shift();if(S){if(this.unprocessedEvents.length===0)this.incompleteData=S;let A=xo(S);this.handleEvent(...A)}}this.incompleteData=""}catch(f){if(f instanceof Error)this.logger.error("\u2757",f.message,f.cause,f.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(o)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${o}`)}),process.on("end",()=>{this.logger.info("\uD83D\uDD25",this.id,"ended"),process.exit(0)}),process.on("SIGTERM",()=>{this.logger.error("\uD83D\uDD25",this.id,"terminated"),process.exit(0)}),process.on("SIGINT",()=>{this.logger.error("\uD83D\uDD25",this.id,"interrupted"),process.exit(0)}),process.pid)this.id=process.pid?.toString();this.on("user-joins",(o)=>{this.logger.info("\uD83D\uDC64","user",o,"joined");let T=new qF(`user:${o}`);this.relays.set(o,T),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let n of this.relayServices){let f=n(T);if(f)T.disposalFunctions.push(f)}this.on(`user:${o}`,(...n)=>{T.in.next(n)}),T.out.subscribe("socket",(n)=>{this.emit(...n)})}),this.on("user-leaves",(o)=>{let T=this.relays.get(o);if(this.off(`relay:${o}`),T)T.dispose(),this.relays.delete(o)}),process.stdout.write("ALIVE")}relay(o){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(o)}}var UA=nn({key:"roomArguments",default:["echo",["Hello World!"]]}),pF=uf({key:"room",get:(o)=>async({get:T,find:n})=>{let f=n(UA,o),S=T(f),[A,$]=S,F=await new Promise((J)=>{let t=PM(A,$,{env:process.env}),R=(W)=>{if(W.toString()==="ALIVE")t.stdout.off("data",R),J(t)};t.stdout.on("data",R)});return new DA(F,o)}});var i8=tf({key:"createRoom",do:({get:o,set:T,find:n},f,S,A)=>{let $=A?[S,A]:[S],F=n(UA,f);T(F,$),T(zA,(R)=>R.add(f));let J=n(pF,f);return o(J)}}),g8=tf({key:"joinRoom",do:(o,T,n,f)=>{let S={enteredAtEpoch:f};return Ff(yf,(A)=>{A.set({room:T,user:n},S)},o.env().store),S}}),d8=tf({key:"leaveRoom",do:(o,T,n)=>{Ff(yf,(f)=>{f.delete({room:T,user:n})},o.env().store)}}),l8=tf({key:"destroyRoom",do:(o,T)=>{Ff(yf,(n)=>{n.delete({room:T})},o.env().store),o.set(zA,(n)=>(n.delete(T),n))}});function VA(o,T){return T.map((n)=>{switch(n.type){case"transaction_update":{let f=VA(o,n.updates);return{...n,updates:f}}case"atom_update":case"selector_update":case"molecule_creation":case"molecule_disposal":case"molecule_transfer":case"state_creation":case"state_disposal":return n}}).filter((n)=>{switch(n.type){case"atom_update":case"selector_update":return o.includes(n.key);case"state_creation":case"state_disposal":return o.includes(n.token.key);case"molecule_creation":case"transaction_update":case"molecule_disposal":case"molecule_transfer":return!0}})}var s8=nn({key:"redactor",default:{occlude:(o)=>o}}),Bn=nn({key:"unacknowledgedUpdates",default:()=>[]});var cF=nn({key:"sockets",default:null}),nK=Gn({key:"socketsIndex",mutable:!0,default:()=>new ho,toJson:(o)=>o.toJSON(),fromJson:(o)=>ho.fromJSON(o)}),fK=Gn({key:"usersIndex",mutable:!0,default:()=>new ho,toJson:(o)=>o.toJSON(),fromJson:(o)=>ho.fromJSON(o)}),BA=df({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(o)=>o.startsWith("user::"),isBType:(o)=>o.startsWith("socket::")});function ZF(o,T,n,f){let S=T.key;return function A(){let $=[];for(let J of T.globals){let t=J.type==="mutable_atom"?Io(o,J):J,R=to(o,t);$.push(t,R)}for(let J of T.perspectives){let{viewAtoms:t,resourceAtoms:R}=J,W=i(o,t,n),O=to(o,W);o.logger.info("\uD83D\uDC41","atom",R.key,`${n} can see`,{viewAtoms:t,resourceAtoms:R,userView:O});for(let _ of O){let Q=_.type==="mutable_atom"?Io(o,_):_,H=to(o,Q);$.push(Q,H)}}let F=qo(o)?o.transactionMeta.epoch.get(S)??null:null;f?.emit(`continuity-init:${S}`,F,$)}}function PF(o,T,n){let f=T.key;return function S(A){o.logger.info("\uD83D\uDECE\uFE0F","continuity",f,"received",A);let{key:$,id:F}=A,J=`tx-run:${$}:${F}`,t=`${J}:start`,R=`${J}:end`;performance.mark(t);try{zn(o,{type:"transaction",key:$},F)(...A.params)}catch(O){if(O instanceof Error)o.logger.error("\u274C","continuity",f,`failed to run transaction ${$} from ${n} with update ${F}`,O.message)}performance.mark(R);let W=performance.measure(J,t,R);o?.logger.info("\uD83D\uDE80","transaction",$,F,n,W.duration)}}function iF(o,T,n,f){let S=T.key;return function A($){if(o.logger.info("\uD83D\uDC4D","continuity",S,`${n} acknowledged epoch ${$}`),f[0]?.epoch===$)Uo(o,Bn,n,(J)=>{return J.shift(),o.logger.info("\uD83D\uDC4D","continuity",S,`${n} unacknowledged update queue now has`,J.length,"items"),J})}}function gF(o,T,n,f){let S=T.key,A=[];for(let $ of T.actions){let F=WA(o,$,`sync-continuity:${S}:${n}`,(J)=>{try{let t=T.globals.map((O)=>{if(O.type==="atom")return O.key;return bT(O).key}).concat(T.perspectives.flatMap((O)=>{let{viewAtoms:_}=O,Q=i(o,_,n);return to(o,Q).map((m)=>{return m.type==="mutable_atom"?"*"+m.key:m.key})})),R=VA(t,J.updates),W={...J,updates:R};Uo(o,Bn,n,(O)=>{if(W)O.push(W),O.sort((_,Q)=>_.epoch-Q.epoch),o.logger.info("\uD83D\uDC4D","continuity",S,`${n} unacknowledged update queue now has`,O.length,"items");return O}),f?.emit(`tx-new:${S}`,W)}catch(t){if(t instanceof Error)o.logger.error("\u274C","continuity",S,`${n} failed to send update from transaction ${$.key} to ${n}`,t.message)}});A.push(F)}return A}function dF(o,T,n,f){let S=T.key,A=[];for(let $ of T.perspectives){let{viewAtoms:F}=$,J=i(o,F,n),t=lo(o,J,`sync-continuity:${S}:${n}:perspective:${$.resourceAtoms.key}`,({oldValue:R,newValue:W})=>{let O=R.map((m)=>m.key),_=W.map((m)=>m.key),Q=R.filter((m)=>!_.includes(m.key)),H=W.filter((m)=>!O.includes(m.key)).flatMap((m)=>{let b=m.type==="mutable_atom"?Io(o,m):m,r=to(o,b);return[b,r]});if(o.logger.info("\uD83D\uDC41","atom",$.resourceAtoms.key,`${n} has a new perspective`,{oldKeys:O,newKeys:_,revealed:H,concealed:Q}),H.length>0)f?.emit(`reveal:${S}`,H);if(Q.length>0)f?.emit(`conceal:${S}`,Q)});A.push(t)}return A}function CK({socket:o,store:T=fo.STORE}){return function n(f){let S=o,A=f.key,$=lf(BA,`socket::${S.id}`,T).userKeyOfSocket,F=to(T,$);if(!F)return T.logger.error("\u274C","continuity",A,`Tried to create a synchronizer for a socket (${S.id}) that is not connected to a user.`),()=>{};let J=lf(BA,F,T).socketKeyOfUser,t=lo(T,J,`sync-continuity:${A}:${F}`,({newValue:b})=>{if(T.logger.info("\uD83D\uDC4B","continuity",A,`seeing ${F} on new socket ${b}`),b===null){T.logger.warn("\u274C","continuity",A,`User (${F}) is not connected to a socket, waiting for them to reappear.`);return}let r=i(T,cF,b);S=to(T,r);for(let E of R)S?.emit(`tx-new:${A}`,E)}),R=to(T,Bn,F),W=[],O=dF(T,f,F,S),_=gF(T,f,F,S);W.push(...O,..._);let Q=ZF(T,f,F,o);S.off(`get:${A}`,Q),S.on(`get:${A}`,Q);let H=PF(T,f,F);S.off(`tx-run:${A}`,H),S.on(`tx-run:${A}`,H);let m=iF(T,f,F,R);return S?.on(`ack:${A}`,m),()=>{for(let b of W)b();S?.off(`ack:${A}`,m),S?.off(`get:${A}`,Q),S?.off(`tx-run:${A}`,H)}}}var{file:h0,serve:Jk}=globalThis.Bun;import{readFileSync as tJ}from"node:fs";import{resolve as hA}from"node:path";function iM(o,T){let n={},f=[];for(let S in o){let A=o[S],$=T[S],F=A["~standard"].validate($);if(F instanceof Promise)throw new Error(`Validation must be synchronous, but ${S} returned a Promise.`);if(F.issues){f.push(...F.issues.map((J)=>({...J,path:[S,...J.path??[]]})));continue}n[S]=F.value}if(f.length)return{issues:f};return{value:n}}function lF(o){let T=o.runtimeEnvStrict??o.runtimeEnv??process.env;if(o.emptyStringAsUndefined??!1){for(let[r,P]of Object.entries(T))if(P==="")delete T[r]}if(!!o.skipValidation)return T;let S=typeof o.client==="object"?o.client:{},A=typeof o.server==="object"?o.server:{},$=typeof o.shared==="object"?o.shared:{},F=o.isServer??(typeof window==="undefined"||("Deno"in window)),J=F?{...A,...$,...S}:{...S,...$},t=iM(J,T),R=o.onValidationError??((r)=>{throw console.error("\u274C Invalid environment variables:",r),new Error("Invalid environment variables")}),W=o.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(t.issues)return R(t.issues);let O=(r)=>{if(!o.clientPrefix)return!0;return!r.startsWith(o.clientPrefix)&&!(r in $)},_=(r)=>{return F||!O(r)},Q=(r)=>{return r==="__esModule"||r==="$$typeof"},H=(o.extends??[]).reduce((r,P)=>{return Object.assign(r,P)},{}),m=Object.assign(t.value,H);return new Proxy(m,{get(r,P){if(typeof P!=="string")return;if(Q(P))return;if(!_(P))return W(P);return Reflect.get(r,P)}})}var Ao;(function(o){o.assertEqual=(S)=>S;function T(S){}o.assertIs=T;function n(S){throw new Error}o.assertNever=n,o.arrayToEnum=(S)=>{let A={};for(let $ of S)A[$]=$;return A},o.getValidEnumValues=(S)=>{let A=o.objectKeys(S).filter((F)=>typeof S[S[F]]!=="number"),$={};for(let F of A)$[F]=S[F];return o.objectValues($)},o.objectValues=(S)=>{return o.objectKeys(S).map(function(A){return S[A]})},o.objectKeys=typeof Object.keys==="function"?(S)=>Object.keys(S):(S)=>{let A=[];for(let $ in S)if(Object.prototype.hasOwnProperty.call(S,$))A.push($);return A},o.find=(S,A)=>{for(let $ of S)if(A($))return $;return},o.isInteger=typeof Number.isInteger==="function"?(S)=>Number.isInteger(S):(S)=>typeof S==="number"&&isFinite(S)&&Math.floor(S)===S;function f(S,A=" | "){return S.map(($)=>typeof $==="string"?`'${$}'`:$).join(A)}o.joinValues=f,o.jsonStringifyReplacer=(S,A)=>{if(typeof A==="bigint")return A.toString();return A}})(Ao||(Ao={}));var LA;(function(o){o.mergeShapes=(T,n)=>{return{...T,...n}}})(LA||(LA={}));var h=Ao.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),vT=(o)=>{switch(typeof o){case"undefined":return h.undefined;case"string":return h.string;case"number":return isNaN(o)?h.nan:h.number;case"boolean":return h.boolean;case"function":return h.function;case"bigint":return h.bigint;case"symbol":return h.symbol;case"object":if(Array.isArray(o))return h.array;if(o===null)return h.null;if(o.then&&typeof o.then==="function"&&o.catch&&typeof o.catch==="function")return h.promise;if(typeof Map!=="undefined"&&o instanceof Map)return h.map;if(typeof Set!=="undefined"&&o instanceof Set)return h.set;if(typeof Date!=="undefined"&&o instanceof Date)return h.date;return h.object;default:return h.unknown}},Y=Ao.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),gM=(o)=>{return JSON.stringify(o,null,2).replace(/"([^"]+)":/g,"$1:")};class JT extends Error{get errors(){return this.issues}constructor(o){super();this.issues=[],this.addIssue=(n)=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let T=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,T);else this.__proto__=T;this.name="ZodError",this.issues=o}format(o){let T=o||function(S){return S.message},n={_errors:[]},f=(S)=>{for(let A of S.issues)if(A.code==="invalid_union")A.unionErrors.map(f);else if(A.code==="invalid_return_type")f(A.returnTypeError);else if(A.code==="invalid_arguments")f(A.argumentsError);else if(A.path.length===0)n._errors.push(T(A));else{let $=n,F=0;while(F<A.path.length){let J=A.path[F];if(F!==A.path.length-1)$[J]=$[J]||{_errors:[]};else $[J]=$[J]||{_errors:[]},$[J]._errors.push(T(A));$=$[J],F++}}};return f(this),n}static assert(o){if(!(o instanceof JT))throw new Error(`Not a ZodError: ${o}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Ao.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(o=(T)=>T.message){let T={},n=[];for(let f of this.issues)if(f.path.length>0)T[f.path[0]]=T[f.path[0]]||[],T[f.path[0]].push(o(f));else n.push(o(f));return{formErrors:n,fieldErrors:T}}get formErrors(){return this.flatten()}}JT.create=(o)=>{return new JT(o)};var In=(o,T)=>{let n;switch(o.code){case Y.invalid_type:if(o.received===h.undefined)n="Required";else n=`Expected ${o.expected}, received ${o.received}`;break;case Y.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(o.expected,Ao.jsonStringifyReplacer)}`;break;case Y.unrecognized_keys:n=`Unrecognized key(s) in object: ${Ao.joinValues(o.keys,", ")}`;break;case Y.invalid_union:n="Invalid input";break;case Y.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Ao.joinValues(o.options)}`;break;case Y.invalid_enum_value:n=`Invalid enum value. Expected ${Ao.joinValues(o.options)}, received '${o.received}'`;break;case Y.invalid_arguments:n="Invalid function arguments";break;case Y.invalid_return_type:n="Invalid function return type";break;case Y.invalid_date:n="Invalid date";break;case Y.invalid_string:if(typeof o.validation==="object")if("includes"in o.validation){if(n=`Invalid input: must include "${o.validation.includes}"`,typeof o.validation.position==="number")n=`${n} at one or more positions greater than or equal to ${o.validation.position}`}else if("startsWith"in o.validation)n=`Invalid input: must start with "${o.validation.startsWith}"`;else if("endsWith"in o.validation)n=`Invalid input: must end with "${o.validation.endsWith}"`;else Ao.assertNever(o.validation);else if(o.validation!=="regex")n=`Invalid ${o.validation}`;else n="Invalid";break;case Y.too_small:if(o.type==="array")n=`Array must contain ${o.exact?"exactly":o.inclusive?"at least":"more than"} ${o.minimum} element(s)`;else if(o.type==="string")n=`String must contain ${o.exact?"exactly":o.inclusive?"at least":"over"} ${o.minimum} character(s)`;else if(o.type==="number")n=`Number must be ${o.exact?"exactly equal to ":o.inclusive?"greater than or equal to ":"greater than "}${o.minimum}`;else if(o.type==="date")n=`Date must be ${o.exact?"exactly equal to ":o.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(o.minimum))}`;else n="Invalid input";break;case Y.too_big:if(o.type==="array")n=`Array must contain ${o.exact?"exactly":o.inclusive?"at most":"less than"} ${o.maximum} element(s)`;else if(o.type==="string")n=`String must contain ${o.exact?"exactly":o.inclusive?"at most":"under"} ${o.maximum} character(s)`;else if(o.type==="number")n=`Number must be ${o.exact?"exactly":o.inclusive?"less than or equal to":"less than"} ${o.maximum}`;else if(o.type==="bigint")n=`BigInt must be ${o.exact?"exactly":o.inclusive?"less than or equal to":"less than"} ${o.maximum}`;else if(o.type==="date")n=`Date must be ${o.exact?"exactly":o.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(o.maximum))}`;else n="Invalid input";break;case Y.custom:n="Invalid input";break;case Y.invalid_intersection_types:n="Intersection results could not be merged";break;case Y.not_multiple_of:n=`Number must be a multiple of ${o.multipleOf}`;break;case Y.not_finite:n="Number must be finite";break;default:n=T.defaultError,Ao.assertNever(o)}return{message:n}},aF=In;function dM(o){aF=o}function FS(){return aF}var JS=(o)=>{let{data:T,path:n,errorMaps:f,issueData:S}=o,A=[...n,...S.path||[]],$={...S,path:A};if(S.message!==void 0)return{...S,path:A,message:S.message};let F="",J=f.filter((t)=>!!t).slice().reverse();for(let t of J)F=t($,{data:T,defaultError:F}).message;return{...S,path:A,message:F}},lM=[];function L(o,T){let n=FS(),f=JS({issueData:T,data:o.data,path:o.path,errorMaps:[o.common.contextualErrorMap,o.schemaErrorMap,n,n===In?void 0:In].filter((S)=>!!S)});o.common.issues.push(f)}class uo{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(o,T){let n=[];for(let f of T){if(f.status==="aborted")return d;if(f.status==="dirty")o.dirty();n.push(f.value)}return{status:o.value,value:n}}static async mergeObjectAsync(o,T){let n=[];for(let f of T){let S=await f.key,A=await f.value;n.push({key:S,value:A})}return uo.mergeObjectSync(o,n)}static mergeObjectSync(o,T){let n={};for(let f of T){let{key:S,value:A}=f;if(S.status==="aborted")return d;if(A.status==="aborted")return d;if(S.status==="dirty")o.dirty();if(A.status==="dirty")o.dirty();if(S.value!=="__proto__"&&(typeof A.value!=="undefined"||f.alwaysSet))n[S.value]=A.value}return{status:o.value,value:n}}}var d=Object.freeze({status:"aborted"}),Ln=(o)=>({status:"dirty",value:o}),ao=(o)=>({status:"valid",value:o}),CA=(o)=>o.status==="aborted",IA=(o)=>o.status==="dirty",Jn=(o)=>o.status==="valid",Of=(o)=>typeof Promise!=="undefined"&&o instanceof Promise;function tS(o,T,n,f){if(n==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof T==="function"?o!==T||!f:!T.has(o))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?f:n==="a"?f.call(o):f?f.value:T.get(o)}function oJ(o,T,n,f,S){if(f==="m")throw new TypeError("Private method is not writable");if(f==="a"&&!S)throw new TypeError("Private accessor was defined without a setter");if(typeof T==="function"?o!==T||!S:!T.has(o))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f==="a"?S.call(o,n):S?S.value=n:T.set(o,n),n}var x;(function(o){o.errToObj=(T)=>typeof T==="string"?{message:T}:T||{},o.toString=(T)=>typeof T==="string"?T:T===null||T===void 0?void 0:T.message})(x||(x={}));var kf,Wf;class GT{constructor(o,T,n,f){this._cachedPath=[],this.parent=o,this.data=T,this._path=n,this._key=f}get path(){if(!this._cachedPath.length)if(this._key instanceof Array)this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var uF=(o,T)=>{if(Jn(T))return{success:!0,data:T.value};else{if(!o.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new JT(o.common.issues);return this._error=n,this._error}}}};function u(o){if(!o)return{};let{errorMap:T,invalid_type_error:n,required_error:f,description:S}=o;if(T&&(n||f))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(T)return{errorMap:T,description:S};return{errorMap:($,F)=>{var J,t;let{message:R}=o;if($.code==="invalid_enum_value")return{message:R!==null&&R!==void 0?R:F.defaultError};if(typeof F.data==="undefined")return{message:(J=R!==null&&R!==void 0?R:f)!==null&&J!==void 0?J:F.defaultError};if($.code!=="invalid_type")return{message:F.defaultError};return{message:(t=R!==null&&R!==void 0?R:n)!==null&&t!==void 0?t:F.defaultError}},description:S}}class e{get description(){return this._def.description}_getType(o){return vT(o.data)}_getOrReturnCtx(o,T){return T||{common:o.parent.common,data:o.data,parsedType:vT(o.data),schemaErrorMap:this._def.errorMap,path:o.path,parent:o.parent}}_processInputParams(o){return{status:new uo,ctx:{common:o.parent.common,data:o.data,parsedType:vT(o.data),schemaErrorMap:this._def.errorMap,path:o.path,parent:o.parent}}}_parseSync(o){let T=this._parse(o);if(Of(T))throw new Error("Synchronous parse encountered promise.");return T}_parseAsync(o){let T=this._parse(o);return Promise.resolve(T)}parse(o,T){let n=this.safeParse(o,T);if(n.success)return n.data;throw n.error}safeParse(o,T){var n;let f={common:{issues:[],async:(n=T===null||T===void 0?void 0:T.async)!==null&&n!==void 0?n:!1,contextualErrorMap:T===null||T===void 0?void 0:T.errorMap},path:(T===null||T===void 0?void 0:T.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:o,parsedType:vT(o)},S=this._parseSync({data:o,path:f.path,parent:f});return uF(f,S)}"~validate"(o){var T,n;let f={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:o,parsedType:vT(o)};if(!this["~standard"].async)try{let S=this._parseSync({data:o,path:[],parent:f});return Jn(S)?{value:S.value}:{issues:f.common.issues}}catch(S){if((n=(T=S===null||S===void 0?void 0:S.message)===null||T===void 0?void 0:T.toLowerCase())===null||n===void 0?void 0:n.includes("encountered"))this["~standard"].async=!0;f.common={issues:[],async:!0}}return this._parseAsync({data:o,path:[],parent:f}).then((S)=>Jn(S)?{value:S.value}:{issues:f.common.issues})}async parseAsync(o,T){let n=await this.safeParseAsync(o,T);if(n.success)return n.data;throw n.error}async safeParseAsync(o,T){let n={common:{issues:[],contextualErrorMap:T===null||T===void 0?void 0:T.errorMap,async:!0},path:(T===null||T===void 0?void 0:T.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:o,parsedType:vT(o)},f=this._parse({data:o,path:n.path,parent:n}),S=await(Of(f)?f:Promise.resolve(f));return uF(n,S)}refine(o,T){let n=(f)=>{if(typeof T==="string"||typeof T==="undefined")return{message:T};else if(typeof T==="function")return T(f);else return T};return this._refinement((f,S)=>{let A=o(f),$=()=>S.addIssue({code:Y.custom,...n(f)});if(typeof Promise!=="undefined"&&A instanceof Promise)return A.then((F)=>{if(!F)return $(),!1;else return!0});if(!A)return $(),!1;else return!0})}refinement(o,T){return this._refinement((n,f)=>{if(!o(n))return f.addIssue(typeof T==="function"?T(n,f):T),!1;else return!0})}_refinement(o){return new WT({schema:this,typeName:g.ZodEffects,effect:{type:"refinement",refinement:o}})}superRefine(o){return this._refinement(o)}constructor(o){this.spa=this.safeParseAsync,this._def=o,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(T)=>this["~validate"](T)}}optional(){return ET.create(this,this._def)}nullable(){return rT.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return KT.create(this)}promise(){return yn.create(this,this._def)}or(o){return bn.create([this,o],this._def)}and(o){return xn.create(this,o,this._def)}transform(o){return new WT({...u(this._def),schema:this,typeName:g.ZodEffects,effect:{type:"transform",transform:o}})}default(o){let T=typeof o==="function"?o:()=>o;return new pn({...u(this._def),innerType:this,defaultValue:T,typeName:g.ZodDefault})}brand(){return new MS({typeName:g.ZodBranded,type:this,...u(this._def)})}catch(o){let T=typeof o==="function"?o:()=>o;return new cn({...u(this._def),innerType:this,catchValue:T,typeName:g.ZodCatch})}describe(o){return new this.constructor({...this._def,description:o})}pipe(o){return Ef.create(this,o)}readonly(){return Zn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var uM=/^c[^\s-]{8,}$/i,eM=/^[0-9a-z]+$/,sM=/^[0-9A-HJKMNP-TV-Z]{26}$/i,aM=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,o1=/^[a-z0-9_-]{21}$/i,T1=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,n1=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,f1=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,S1="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",mA,A1=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,$1=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,F1=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,J1=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,t1=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,R1=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,TJ="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",M1=new RegExp(`^${TJ}$`);function nJ(o){let T="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";if(o.precision)T=`${T}\\.\\d{${o.precision}}`;else if(o.precision==null)T=`${T}(\\.\\d+)?`;return T}function y1(o){return new RegExp(`^${nJ(o)}$`)}function fJ(o){let T=`${TJ}T${nJ(o)}`,n=[];if(n.push(o.local?"Z?":"Z"),o.offset)n.push("([+-]\\d{2}:?\\d{2})");return T=`${T}(${n.join("|")})`,new RegExp(`^${T}$`)}function k1(o,T){if((T==="v4"||!T)&&A1.test(o))return!0;if((T==="v6"||!T)&&F1.test(o))return!0;return!1}function W1(o,T){if(!T1.test(o))return!1;try{let[n]=o.split("."),f=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),S=JSON.parse(atob(f));if(typeof S!=="object"||S===null)return!1;if(!S.typ||!S.alg)return!1;if(T&&S.alg!==T)return!1;return!0}catch(n){return!1}}function O1(o,T){if((T==="v4"||!T)&&$1.test(o))return!0;if((T==="v6"||!T)&&J1.test(o))return!0;return!1}class HT extends e{_parse(o){if(this._def.coerce)o.data=String(o.data);if(this._getType(o)!==h.string){let S=this._getOrReturnCtx(o);return L(S,{code:Y.invalid_type,expected:h.string,received:S.parsedType}),d}let n=new uo,f=void 0;for(let S of this._def.checks)if(S.kind==="min"){if(o.data.length<S.value)f=this._getOrReturnCtx(o,f),L(f,{code:Y.too_small,minimum:S.value,type:"string",inclusive:!0,exact:!1,message:S.message}),n.dirty()}else if(S.kind==="max"){if(o.data.length>S.value)f=this._getOrReturnCtx(o,f),L(f,{code:Y.too_big,maximum:S.value,type:"string",inclusive:!0,exact:!1,message:S.message}),n.dirty()}else if(S.kind==="length"){let A=o.data.length>S.value,$=o.data.length<S.value;if(A||$){if(f=this._getOrReturnCtx(o,f),A)L(f,{code:Y.too_big,maximum:S.value,type:"string",inclusive:!0,exact:!0,message:S.message});else if($)L(f,{code:Y.too_small,minimum:S.value,type:"string",inclusive:!0,exact:!0,message:S.message});n.dirty()}}else if(S.kind==="email"){if(!f1.test(o.data))f=this._getOrReturnCtx(o,f),L(f,{validation:"email",code:Y.invalid_string,message:S.message}),n.dirty()}else if(S.kind==="emoji"){if(!mA)mA=new RegExp(S1,"u");if(!mA.test(o.data))f=this._getOrReturnCtx(o,f),L(f,{validation:"emoji",code:Y.invalid_string,message:S.message}),n.dirty()}else if(S.kind==="uuid"){if(!aM.test(o.data))f=this._getOrReturnCtx(o,f),L(f,{validation:"uuid",code:Y.invalid_string,message:S.message}),n.dirty()}else if(S.kind==="nanoid"){if(!o1.test(o.data))f=this._getOrReturnCtx(o,f),L(f,{validation:"nanoid",code:Y.invalid_string,message:S.message}),n.dirty()}else if(S.kind==="cuid"){if(!uM.test(o.data))f=this._getOrReturnCtx(o,f),L(f,{validation:"cuid",code:Y.invalid_string,message:S.message}),n.dirty()}else if(S.kind==="cuid2"){if(!eM.test(o.data))f=this._getOrReturnCtx(o,f),L(f,{validation:"cuid2",code:Y.invalid_string,message:S.message}),n.dirty()}else if(S.kind==="ulid"){if(!sM.test(o.data))f=this._getOrReturnCtx(o,f),L(f,{validation:"ulid",code:Y.invalid_string,message:S.message}),n.dirty()}else if(S.kind==="url")try{new URL(o.data)}catch(A){f=this._getOrReturnCtx(o,f),L(f,{validation:"url",code:Y.invalid_string,message:S.message}),n.dirty()}else if(S.kind==="regex"){if(S.regex.lastIndex=0,!S.regex.test(o.data))f=this._getOrReturnCtx(o,f),L(f,{validation:"regex",code:Y.invalid_string,message:S.message}),n.dirty()}else if(S.kind==="trim")o.data=o.data.trim();else if(S.kind==="includes"){if(!o.data.includes(S.value,S.position))f=this._getOrReturnCtx(o,f),L(f,{code:Y.invalid_string,validation:{includes:S.value,position:S.position},message:S.message}),n.dirty()}else if(S.kind==="toLowerCase")o.data=o.data.toLowerCase();else if(S.kind==="toUpperCase")o.data=o.data.toUpperCase();else if(S.kind==="startsWith"){if(!o.data.startsWith(S.value))f=this._getOrReturnCtx(o,f),L(f,{code:Y.invalid_string,validation:{startsWith:S.value},message:S.message}),n.dirty()}else if(S.kind==="endsWith"){if(!o.data.endsWith(S.value))f=this._getOrReturnCtx(o,f),L(f,{code:Y.invalid_string,validation:{endsWith:S.value},message:S.message}),n.dirty()}else if(S.kind==="datetime"){if(!fJ(S).test(o.data))f=this._getOrReturnCtx(o,f),L(f,{code:Y.invalid_string,validation:"datetime",message:S.message}),n.dirty()}else if(S.kind==="date"){if(!M1.test(o.data))f=this._getOrReturnCtx(o,f),L(f,{code:Y.invalid_string,validation:"date",message:S.message}),n.dirty()}else if(S.kind==="time"){if(!y1(S).test(o.data))f=this._getOrReturnCtx(o,f),L(f,{code:Y.invalid_string,validation:"time",message:S.message}),n.dirty()}else if(S.kind==="duration"){if(!n1.test(o.data))f=this._getOrReturnCtx(o,f),L(f,{validation:"duration",code:Y.invalid_string,message:S.message}),n.dirty()}else if(S.kind==="ip"){if(!k1(o.data,S.version))f=this._getOrReturnCtx(o,f),L(f,{validation:"ip",code:Y.invalid_string,message:S.message}),n.dirty()}else if(S.kind==="jwt"){if(!W1(o.data,S.alg))f=this._getOrReturnCtx(o,f),L(f,{validation:"jwt",code:Y.invalid_string,message:S.message}),n.dirty()}else if(S.kind==="cidr"){if(!O1(o.data,S.version))f=this._getOrReturnCtx(o,f),L(f,{validation:"cidr",code:Y.invalid_string,message:S.message}),n.dirty()}else if(S.kind==="base64"){if(!t1.test(o.data))f=this._getOrReturnCtx(o,f),L(f,{validation:"base64",code:Y.invalid_string,message:S.message}),n.dirty()}else if(S.kind==="base64url"){if(!R1.test(o.data))f=this._getOrReturnCtx(o,f),L(f,{validation:"base64url",code:Y.invalid_string,message:S.message}),n.dirty()}else Ao.assertNever(S);return{status:n.value,value:o.data}}_regex(o,T,n){return this.refinement((f)=>o.test(f),{validation:T,code:Y.invalid_string,...x.errToObj(n)})}_addCheck(o){return new HT({...this._def,checks:[...this._def.checks,o]})}email(o){return this._addCheck({kind:"email",...x.errToObj(o)})}url(o){return this._addCheck({kind:"url",...x.errToObj(o)})}emoji(o){return this._addCheck({kind:"emoji",...x.errToObj(o)})}uuid(o){return this._addCheck({kind:"uuid",...x.errToObj(o)})}nanoid(o){return this._addCheck({kind:"nanoid",...x.errToObj(o)})}cuid(o){return this._addCheck({kind:"cuid",...x.errToObj(o)})}cuid2(o){return this._addCheck({kind:"cuid2",...x.errToObj(o)})}ulid(o){return this._addCheck({kind:"ulid",...x.errToObj(o)})}base64(o){return this._addCheck({kind:"base64",...x.errToObj(o)})}base64url(o){return this._addCheck({kind:"base64url",...x.errToObj(o)})}jwt(o){return this._addCheck({kind:"jwt",...x.errToObj(o)})}ip(o){return this._addCheck({kind:"ip",...x.errToObj(o)})}cidr(o){return this._addCheck({kind:"cidr",...x.errToObj(o)})}datetime(o){var T,n;if(typeof o==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:o});return this._addCheck({kind:"datetime",precision:typeof(o===null||o===void 0?void 0:o.precision)==="undefined"?null:o===null||o===void 0?void 0:o.precision,offset:(T=o===null||o===void 0?void 0:o.offset)!==null&&T!==void 0?T:!1,local:(n=o===null||o===void 0?void 0:o.local)!==null&&n!==void 0?n:!1,...x.errToObj(o===null||o===void 0?void 0:o.message)})}date(o){return this._addCheck({kind:"date",message:o})}time(o){if(typeof o==="string")return this._addCheck({kind:"time",precision:null,message:o});return this._addCheck({kind:"time",precision:typeof(o===null||o===void 0?void 0:o.precision)==="undefined"?null:o===null||o===void 0?void 0:o.precision,...x.errToObj(o===null||o===void 0?void 0:o.message)})}duration(o){return this._addCheck({kind:"duration",...x.errToObj(o)})}regex(o,T){return this._addCheck({kind:"regex",regex:o,...x.errToObj(T)})}includes(o,T){return this._addCheck({kind:"includes",value:o,position:T===null||T===void 0?void 0:T.position,...x.errToObj(T===null||T===void 0?void 0:T.message)})}startsWith(o,T){return this._addCheck({kind:"startsWith",value:o,...x.errToObj(T)})}endsWith(o,T){return this._addCheck({kind:"endsWith",value:o,...x.errToObj(T)})}min(o,T){return this._addCheck({kind:"min",value:o,...x.errToObj(T)})}max(o,T){return this._addCheck({kind:"max",value:o,...x.errToObj(T)})}length(o,T){return this._addCheck({kind:"length",value:o,...x.errToObj(T)})}nonempty(o){return this.min(1,x.errToObj(o))}trim(){return new HT({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new HT({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new HT({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((o)=>o.kind==="datetime")}get isDate(){return!!this._def.checks.find((o)=>o.kind==="date")}get isTime(){return!!this._def.checks.find((o)=>o.kind==="time")}get isDuration(){return!!this._def.checks.find((o)=>o.kind==="duration")}get isEmail(){return!!this._def.checks.find((o)=>o.kind==="email")}get isURL(){return!!this._def.checks.find((o)=>o.kind==="url")}get isEmoji(){return!!this._def.checks.find((o)=>o.kind==="emoji")}get isUUID(){return!!this._def.checks.find((o)=>o.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((o)=>o.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((o)=>o.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((o)=>o.kind==="cuid2")}get isULID(){return!!this._def.checks.find((o)=>o.kind==="ulid")}get isIP(){return!!this._def.checks.find((o)=>o.kind==="ip")}get isCIDR(){return!!this._def.checks.find((o)=>o.kind==="cidr")}get isBase64(){return!!this._def.checks.find((o)=>o.kind==="base64")}get isBase64url(){return!!this._def.checks.find((o)=>o.kind==="base64url")}get minLength(){let o=null;for(let T of this._def.checks)if(T.kind==="min"){if(o===null||T.value>o)o=T.value}return o}get maxLength(){let o=null;for(let T of this._def.checks)if(T.kind==="max"){if(o===null||T.value<o)o=T.value}return o}}HT.create=(o)=>{var T;return new HT({checks:[],typeName:g.ZodString,coerce:(T=o===null||o===void 0?void 0:o.coerce)!==null&&T!==void 0?T:!1,...u(o)})};function w1(o,T){let n=(o.toString().split(".")[1]||"").length,f=(T.toString().split(".")[1]||"").length,S=n>f?n:f,A=parseInt(o.toFixed(S).replace(".","")),$=parseInt(T.toFixed(S).replace(".",""));return A%$/Math.pow(10,S)}class dT extends e{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(o){if(this._def.coerce)o.data=Number(o.data);if(this._getType(o)!==h.number){let S=this._getOrReturnCtx(o);return L(S,{code:Y.invalid_type,expected:h.number,received:S.parsedType}),d}let n=void 0,f=new uo;for(let S of this._def.checks)if(S.kind==="int"){if(!Ao.isInteger(o.data))n=this._getOrReturnCtx(o,n),L(n,{code:Y.invalid_type,expected:"integer",received:"float",message:S.message}),f.dirty()}else if(S.kind==="min"){if(S.inclusive?o.data<S.value:o.data<=S.value)n=this._getOrReturnCtx(o,n),L(n,{code:Y.too_small,minimum:S.value,type:"number",inclusive:S.inclusive,exact:!1,message:S.message}),f.dirty()}else if(S.kind==="max"){if(S.inclusive?o.data>S.value:o.data>=S.value)n=this._getOrReturnCtx(o,n),L(n,{code:Y.too_big,maximum:S.value,type:"number",inclusive:S.inclusive,exact:!1,message:S.message}),f.dirty()}else if(S.kind==="multipleOf"){if(w1(o.data,S.value)!==0)n=this._getOrReturnCtx(o,n),L(n,{code:Y.not_multiple_of,multipleOf:S.value,message:S.message}),f.dirty()}else if(S.kind==="finite"){if(!Number.isFinite(o.data))n=this._getOrReturnCtx(o,n),L(n,{code:Y.not_finite,message:S.message}),f.dirty()}else Ao.assertNever(S);return{status:f.value,value:o.data}}gte(o,T){return this.setLimit("min",o,!0,x.toString(T))}gt(o,T){return this.setLimit("min",o,!1,x.toString(T))}lte(o,T){return this.setLimit("max",o,!0,x.toString(T))}lt(o,T){return this.setLimit("max",o,!1,x.toString(T))}setLimit(o,T,n,f){return new dT({...this._def,checks:[...this._def.checks,{kind:o,value:T,inclusive:n,message:x.toString(f)}]})}_addCheck(o){return new dT({...this._def,checks:[...this._def.checks,o]})}int(o){return this._addCheck({kind:"int",message:x.toString(o)})}positive(o){return this._addCheck({kind:"min",value:0,inclusive:!1,message:x.toString(o)})}negative(o){return this._addCheck({kind:"max",value:0,inclusive:!1,message:x.toString(o)})}nonpositive(o){return this._addCheck({kind:"max",value:0,inclusive:!0,message:x.toString(o)})}nonnegative(o){return this._addCheck({kind:"min",value:0,inclusive:!0,message:x.toString(o)})}multipleOf(o,T){return this._addCheck({kind:"multipleOf",value:o,message:x.toString(T)})}finite(o){return this._addCheck({kind:"finite",message:x.toString(o)})}safe(o){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:x.toString(o)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:x.toString(o)})}get minValue(){let o=null;for(let T of this._def.checks)if(T.kind==="min"){if(o===null||T.value>o)o=T.value}return o}get maxValue(){let o=null;for(let T of this._def.checks)if(T.kind==="max"){if(o===null||T.value<o)o=T.value}return o}get isInt(){return!!this._def.checks.find((o)=>o.kind==="int"||o.kind==="multipleOf"&&Ao.isInteger(o.value))}get isFinite(){let o=null,T=null;for(let n of this._def.checks)if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;else if(n.kind==="min"){if(T===null||n.value>T)T=n.value}else if(n.kind==="max"){if(o===null||n.value<o)o=n.value}return Number.isFinite(T)&&Number.isFinite(o)}}dT.create=(o)=>{return new dT({checks:[],typeName:g.ZodNumber,coerce:(o===null||o===void 0?void 0:o.coerce)||!1,...u(o)})};class lT extends e{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(o){if(this._def.coerce)try{o.data=BigInt(o.data)}catch(S){return this._getInvalidInput(o)}if(this._getType(o)!==h.bigint)return this._getInvalidInput(o);let n=void 0,f=new uo;for(let S of this._def.checks)if(S.kind==="min"){if(S.inclusive?o.data<S.value:o.data<=S.value)n=this._getOrReturnCtx(o,n),L(n,{code:Y.too_small,type:"bigint",minimum:S.value,inclusive:S.inclusive,message:S.message}),f.dirty()}else if(S.kind==="max"){if(S.inclusive?o.data>S.value:o.data>=S.value)n=this._getOrReturnCtx(o,n),L(n,{code:Y.too_big,type:"bigint",maximum:S.value,inclusive:S.inclusive,message:S.message}),f.dirty()}else if(S.kind==="multipleOf"){if(o.data%S.value!==BigInt(0))n=this._getOrReturnCtx(o,n),L(n,{code:Y.not_multiple_of,multipleOf:S.value,message:S.message}),f.dirty()}else Ao.assertNever(S);return{status:f.value,value:o.data}}_getInvalidInput(o){let T=this._getOrReturnCtx(o);return L(T,{code:Y.invalid_type,expected:h.bigint,received:T.parsedType}),d}gte(o,T){return this.setLimit("min",o,!0,x.toString(T))}gt(o,T){return this.setLimit("min",o,!1,x.toString(T))}lte(o,T){return this.setLimit("max",o,!0,x.toString(T))}lt(o,T){return this.setLimit("max",o,!1,x.toString(T))}setLimit(o,T,n,f){return new lT({...this._def,checks:[...this._def.checks,{kind:o,value:T,inclusive:n,message:x.toString(f)}]})}_addCheck(o){return new lT({...this._def,checks:[...this._def.checks,o]})}positive(o){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:x.toString(o)})}negative(o){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:x.toString(o)})}nonpositive(o){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:x.toString(o)})}nonnegative(o){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:x.toString(o)})}multipleOf(o,T){return this._addCheck({kind:"multipleOf",value:o,message:x.toString(T)})}get minValue(){let o=null;for(let T of this._def.checks)if(T.kind==="min"){if(o===null||T.value>o)o=T.value}return o}get maxValue(){let o=null;for(let T of this._def.checks)if(T.kind==="max"){if(o===null||T.value<o)o=T.value}return o}}lT.create=(o)=>{var T;return new lT({checks:[],typeName:g.ZodBigInt,coerce:(T=o===null||o===void 0?void 0:o.coerce)!==null&&T!==void 0?T:!1,...u(o)})};class jn extends e{_parse(o){if(this._def.coerce)o.data=Boolean(o.data);if(this._getType(o)!==h.boolean){let n=this._getOrReturnCtx(o);return L(n,{code:Y.invalid_type,expected:h.boolean,received:n.parsedType}),d}return ao(o.data)}}jn.create=(o)=>{return new jn({typeName:g.ZodBoolean,coerce:(o===null||o===void 0?void 0:o.coerce)||!1,...u(o)})};class tn extends e{_parse(o){if(this._def.coerce)o.data=new Date(o.data);if(this._getType(o)!==h.date){let S=this._getOrReturnCtx(o);return L(S,{code:Y.invalid_type,expected:h.date,received:S.parsedType}),d}if(isNaN(o.data.getTime())){let S=this._getOrReturnCtx(o);return L(S,{code:Y.invalid_date}),d}let n=new uo,f=void 0;for(let S of this._def.checks)if(S.kind==="min"){if(o.data.getTime()<S.value)f=this._getOrReturnCtx(o,f),L(f,{code:Y.too_small,message:S.message,inclusive:!0,exact:!1,minimum:S.value,type:"date"}),n.dirty()}else if(S.kind==="max"){if(o.data.getTime()>S.value)f=this._getOrReturnCtx(o,f),L(f,{code:Y.too_big,message:S.message,inclusive:!0,exact:!1,maximum:S.value,type:"date"}),n.dirty()}else Ao.assertNever(S);return{status:n.value,value:new Date(o.data.getTime())}}_addCheck(o){return new tn({...this._def,checks:[...this._def.checks,o]})}min(o,T){return this._addCheck({kind:"min",value:o.getTime(),message:x.toString(T)})}max(o,T){return this._addCheck({kind:"max",value:o.getTime(),message:x.toString(T)})}get minDate(){let o=null;for(let T of this._def.checks)if(T.kind==="min"){if(o===null||T.value>o)o=T.value}return o!=null?new Date(o):null}get maxDate(){let o=null;for(let T of this._def.checks)if(T.kind==="max"){if(o===null||T.value<o)o=T.value}return o!=null?new Date(o):null}}tn.create=(o)=>{return new tn({checks:[],coerce:(o===null||o===void 0?void 0:o.coerce)||!1,typeName:g.ZodDate,...u(o)})};class wf extends e{_parse(o){if(this._getType(o)!==h.symbol){let n=this._getOrReturnCtx(o);return L(n,{code:Y.invalid_type,expected:h.symbol,received:n.parsedType}),d}return ao(o.data)}}wf.create=(o)=>{return new wf({typeName:g.ZodSymbol,...u(o)})};class hn extends e{_parse(o){if(this._getType(o)!==h.undefined){let n=this._getOrReturnCtx(o);return L(n,{code:Y.invalid_type,expected:h.undefined,received:n.parsedType}),d}return ao(o.data)}}hn.create=(o)=>{return new hn({typeName:g.ZodUndefined,...u(o)})};class Nn extends e{_parse(o){if(this._getType(o)!==h.null){let n=this._getOrReturnCtx(o);return L(n,{code:Y.invalid_type,expected:h.null,received:n.parsedType}),d}return ao(o.data)}}Nn.create=(o)=>{return new Nn({typeName:g.ZodNull,...u(o)})};class Rn extends e{constructor(){super(...arguments);this._any=!0}_parse(o){return ao(o.data)}}Rn.create=(o)=>{return new Rn({typeName:g.ZodAny,...u(o)})};class gT extends e{constructor(){super(...arguments);this._unknown=!0}_parse(o){return ao(o.data)}}gT.create=(o)=>{return new gT({typeName:g.ZodUnknown,...u(o)})};class BT extends e{_parse(o){let T=this._getOrReturnCtx(o);return L(T,{code:Y.invalid_type,expected:h.never,received:T.parsedType}),d}}BT.create=(o)=>{return new BT({typeName:g.ZodNever,...u(o)})};class _f extends e{_parse(o){if(this._getType(o)!==h.undefined){let n=this._getOrReturnCtx(o);return L(n,{code:Y.invalid_type,expected:h.void,received:n.parsedType}),d}return ao(o.data)}}_f.create=(o)=>{return new _f({typeName:g.ZodVoid,...u(o)})};class KT extends e{_parse(o){let{ctx:T,status:n}=this._processInputParams(o),f=this._def;if(T.parsedType!==h.array)return L(T,{code:Y.invalid_type,expected:h.array,received:T.parsedType}),d;if(f.exactLength!==null){let A=T.data.length>f.exactLength.value,$=T.data.length<f.exactLength.value;if(A||$)L(T,{code:A?Y.too_big:Y.too_small,minimum:$?f.exactLength.value:void 0,maximum:A?f.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:f.exactLength.message}),n.dirty()}if(f.minLength!==null){if(T.data.length<f.minLength.value)L(T,{code:Y.too_small,minimum:f.minLength.value,type:"array",inclusive:!0,exact:!1,message:f.minLength.message}),n.dirty()}if(f.maxLength!==null){if(T.data.length>f.maxLength.value)L(T,{code:Y.too_big,maximum:f.maxLength.value,type:"array",inclusive:!0,exact:!1,message:f.maxLength.message}),n.dirty()}if(T.common.async)return Promise.all([...T.data].map((A,$)=>{return f.type._parseAsync(new GT(T,A,T.path,$))})).then((A)=>{return uo.mergeArray(n,A)});let S=[...T.data].map((A,$)=>{return f.type._parseSync(new GT(T,A,T.path,$))});return uo.mergeArray(n,S)}get element(){return this._def.type}min(o,T){return new KT({...this._def,minLength:{value:o,message:x.toString(T)}})}max(o,T){return new KT({...this._def,maxLength:{value:o,message:x.toString(T)}})}length(o,T){return new KT({...this._def,exactLength:{value:o,message:x.toString(T)}})}nonempty(o){return this.min(1,o)}}KT.create=(o,T)=>{return new KT({type:o,minLength:null,maxLength:null,exactLength:null,typeName:g.ZodArray,...u(T)})};function mn(o){if(o instanceof zo){let T={};for(let n in o.shape){let f=o.shape[n];T[n]=ET.create(mn(f))}return new zo({...o._def,shape:()=>T})}else if(o instanceof KT)return new KT({...o._def,type:mn(o.element)});else if(o instanceof ET)return ET.create(mn(o.unwrap()));else if(o instanceof rT)return rT.create(mn(o.unwrap()));else if(o instanceof mT)return mT.create(o.items.map((T)=>mn(T)));else return o}class zo extends e{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let o=this._def.shape(),T=Ao.objectKeys(o);return this._cached={shape:o,keys:T}}_parse(o){if(this._getType(o)!==h.object){let J=this._getOrReturnCtx(o);return L(J,{code:Y.invalid_type,expected:h.object,received:J.parsedType}),d}let{status:n,ctx:f}=this._processInputParams(o),{shape:S,keys:A}=this._getCached(),$=[];if(!(this._def.catchall instanceof BT&&this._def.unknownKeys==="strip")){for(let J in f.data)if(!A.includes(J))$.push(J)}let F=[];for(let J of A){let t=S[J],R=f.data[J];F.push({key:{status:"valid",value:J},value:t._parse(new GT(f,R,f.path,J)),alwaysSet:J in f.data})}if(this._def.catchall instanceof BT){let J=this._def.unknownKeys;if(J==="passthrough")for(let t of $)F.push({key:{status:"valid",value:t},value:{status:"valid",value:f.data[t]}});else if(J==="strict"){if($.length>0)L(f,{code:Y.unrecognized_keys,keys:$}),n.dirty()}else if(J==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let J=this._def.catchall;for(let t of $){let R=f.data[t];F.push({key:{status:"valid",value:t},value:J._parse(new GT(f,R,f.path,t)),alwaysSet:t in f.data})}}if(f.common.async)return Promise.resolve().then(async()=>{let J=[];for(let t of F){let R=await t.key,W=await t.value;J.push({key:R,value:W,alwaysSet:t.alwaysSet})}return J}).then((J)=>{return uo.mergeObjectSync(n,J)});else return uo.mergeObjectSync(n,F)}get shape(){return this._def.shape()}strict(o){return x.errToObj,new zo({...this._def,unknownKeys:"strict",...o!==void 0?{errorMap:(T,n)=>{var f,S,A,$;let F=(A=(S=(f=this._def).errorMap)===null||S===void 0?void 0:S.call(f,T,n).message)!==null&&A!==void 0?A:n.defaultError;if(T.code==="unrecognized_keys")return{message:($=x.errToObj(o).message)!==null&&$!==void 0?$:F};return{message:F}}}:{}})}strip(){return new zo({...this._def,unknownKeys:"strip"})}passthrough(){return new zo({...this._def,unknownKeys:"passthrough"})}extend(o){return new zo({...this._def,shape:()=>({...this._def.shape(),...o})})}merge(o){return new zo({unknownKeys:o._def.unknownKeys,catchall:o._def.catchall,shape:()=>({...this._def.shape(),...o._def.shape()}),typeName:g.ZodObject})}setKey(o,T){return this.augment({[o]:T})}catchall(o){return new zo({...this._def,catchall:o})}pick(o){let T={};return Ao.objectKeys(o).forEach((n)=>{if(o[n]&&this.shape[n])T[n]=this.shape[n]}),new zo({...this._def,shape:()=>T})}omit(o){let T={};return Ao.objectKeys(this.shape).forEach((n)=>{if(!o[n])T[n]=this.shape[n]}),new zo({...this._def,shape:()=>T})}deepPartial(){return mn(this)}partial(o){let T={};return Ao.objectKeys(this.shape).forEach((n)=>{let f=this.shape[n];if(o&&!o[n])T[n]=f;else T[n]=f.optional()}),new zo({...this._def,shape:()=>T})}required(o){let T={};return Ao.objectKeys(this.shape).forEach((n)=>{if(o&&!o[n])T[n]=this.shape[n];else{let S=this.shape[n];while(S instanceof ET)S=S._def.innerType;T[n]=S}}),new zo({...this._def,shape:()=>T})}keyof(){return SJ(Ao.objectKeys(this.shape))}}zo.create=(o,T)=>{return new zo({shape:()=>o,unknownKeys:"strip",catchall:BT.create(),typeName:g.ZodObject,...u(T)})};zo.strictCreate=(o,T)=>{return new zo({shape:()=>o,unknownKeys:"strict",catchall:BT.create(),typeName:g.ZodObject,...u(T)})};zo.lazycreate=(o,T)=>{return new zo({shape:o,unknownKeys:"strip",catchall:BT.create(),typeName:g.ZodObject,...u(T)})};class bn extends e{_parse(o){let{ctx:T}=this._processInputParams(o),n=this._def.options;function f(S){for(let $ of S)if($.result.status==="valid")return $.result;for(let $ of S)if($.result.status==="dirty")return T.common.issues.push(...$.ctx.common.issues),$.result;let A=S.map(($)=>new JT($.ctx.common.issues));return L(T,{code:Y.invalid_union,unionErrors:A}),d}if(T.common.async)return Promise.all(n.map(async(S)=>{let A={...T,common:{...T.common,issues:[]},parent:null};return{result:await S._parseAsync({data:T.data,path:T.path,parent:A}),ctx:A}})).then(f);else{let S=void 0,A=[];for(let F of n){let J={...T,common:{...T.common,issues:[]},parent:null},t=F._parseSync({data:T.data,path:T.path,parent:J});if(t.status==="valid")return t;else if(t.status==="dirty"&&!S)S={result:t,ctx:J};if(J.common.issues.length)A.push(J.common.issues)}if(S)return T.common.issues.push(...S.ctx.common.issues),S.result;let $=A.map((F)=>new JT(F));return L(T,{code:Y.invalid_union,unionErrors:$}),d}}get options(){return this._def.options}}bn.create=(o,T)=>{return new bn({options:o,typeName:g.ZodUnion,...u(T)})};var xT=(o)=>{if(o instanceof vn)return xT(o.schema);else if(o instanceof WT)return xT(o.innerType());else if(o instanceof rn)return[o.value];else if(o instanceof uT)return o.options;else if(o instanceof qn)return Ao.objectValues(o.enum);else if(o instanceof pn)return xT(o._def.innerType);else if(o instanceof hn)return[void 0];else if(o instanceof Nn)return[null];else if(o instanceof ET)return[void 0,...xT(o.unwrap())];else if(o instanceof rT)return[null,...xT(o.unwrap())];else if(o instanceof MS)return xT(o.unwrap());else if(o instanceof Zn)return xT(o.unwrap());else if(o instanceof cn)return xT(o._def.innerType);else return[]};class RS extends e{_parse(o){let{ctx:T}=this._processInputParams(o);if(T.parsedType!==h.object)return L(T,{code:Y.invalid_type,expected:h.object,received:T.parsedType}),d;let n=this.discriminator,f=T.data[n],S=this.optionsMap.get(f);if(!S)return L(T,{code:Y.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),d;if(T.common.async)return S._parseAsync({data:T.data,path:T.path,parent:T});else return S._parseSync({data:T.data,path:T.path,parent:T})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(o,T,n){let f=new Map;for(let S of T){let A=xT(S.shape[o]);if(!A.length)throw new Error(`A discriminator value for key \`${o}\` could not be extracted from all schema options`);for(let $ of A){if(f.has($))throw new Error(`Discriminator property ${String(o)} has duplicate value ${String($)}`);f.set($,S)}}return new RS({typeName:g.ZodDiscriminatedUnion,discriminator:o,options:T,optionsMap:f,...u(n)})}}function jA(o,T){let n=vT(o),f=vT(T);if(o===T)return{valid:!0,data:o};else if(n===h.object&&f===h.object){let S=Ao.objectKeys(T),A=Ao.objectKeys(o).filter((F)=>S.indexOf(F)!==-1),$={...o,...T};for(let F of A){let J=jA(o[F],T[F]);if(!J.valid)return{valid:!1};$[F]=J.data}return{valid:!0,data:$}}else if(n===h.array&&f===h.array){if(o.length!==T.length)return{valid:!1};let S=[];for(let A=0;A<o.length;A++){let $=o[A],F=T[A],J=jA($,F);if(!J.valid)return{valid:!1};S.push(J.data)}return{valid:!0,data:S}}else if(n===h.date&&f===h.date&&+o===+T)return{valid:!0,data:o};else return{valid:!1}}class xn extends e{_parse(o){let{status:T,ctx:n}=this._processInputParams(o),f=(S,A)=>{if(CA(S)||CA(A))return d;let $=jA(S.value,A.value);if(!$.valid)return L(n,{code:Y.invalid_intersection_types}),d;if(IA(S)||IA(A))T.dirty();return{status:T.value,value:$.data}};if(n.common.async)return Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([S,A])=>f(S,A));else return f(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}xn.create=(o,T,n)=>{return new xn({left:o,right:T,typeName:g.ZodIntersection,...u(n)})};class mT extends e{_parse(o){let{status:T,ctx:n}=this._processInputParams(o);if(n.parsedType!==h.array)return L(n,{code:Y.invalid_type,expected:h.array,received:n.parsedType}),d;if(n.data.length<this._def.items.length)return L(n,{code:Y.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),d;if(!this._def.rest&&n.data.length>this._def.items.length)L(n,{code:Y.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),T.dirty();let S=[...n.data].map((A,$)=>{let F=this._def.items[$]||this._def.rest;if(!F)return null;return F._parse(new GT(n,A,n.path,$))}).filter((A)=>!!A);if(n.common.async)return Promise.all(S).then((A)=>{return uo.mergeArray(T,A)});else return uo.mergeArray(T,S)}get items(){return this._def.items}rest(o){return new mT({...this._def,rest:o})}}mT.create=(o,T)=>{if(!Array.isArray(o))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new mT({items:o,typeName:g.ZodTuple,rest:null,...u(T)})};class Xf extends e{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(o){let{status:T,ctx:n}=this._processInputParams(o);if(n.parsedType!==h.object)return L(n,{code:Y.invalid_type,expected:h.object,received:n.parsedType}),d;let f=[],S=this._def.keyType,A=this._def.valueType;for(let $ in n.data)f.push({key:S._parse(new GT(n,$,n.path,$)),value:A._parse(new GT(n,n.data[$],n.path,$)),alwaysSet:$ in n.data});if(n.common.async)return uo.mergeObjectAsync(T,f);else return uo.mergeObjectSync(T,f)}get element(){return this._def.valueType}static create(o,T,n){if(T instanceof e)return new Xf({keyType:o,valueType:T,typeName:g.ZodRecord,...u(n)});return new Xf({keyType:HT.create(),valueType:o,typeName:g.ZodRecord,...u(T)})}}class Hf extends e{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(o){let{status:T,ctx:n}=this._processInputParams(o);if(n.parsedType!==h.map)return L(n,{code:Y.invalid_type,expected:h.map,received:n.parsedType}),d;let f=this._def.keyType,S=this._def.valueType,A=[...n.data.entries()].map(([$,F],J)=>{return{key:f._parse(new GT(n,$,n.path,[J,"key"])),value:S._parse(new GT(n,F,n.path,[J,"value"]))}});if(n.common.async){let $=new Map;return Promise.resolve().then(async()=>{for(let F of A){let J=await F.key,t=await F.value;if(J.status==="aborted"||t.status==="aborted")return d;if(J.status==="dirty"||t.status==="dirty")T.dirty();$.set(J.value,t.value)}return{status:T.value,value:$}})}else{let $=new Map;for(let F of A){let{key:J,value:t}=F;if(J.status==="aborted"||t.status==="aborted")return d;if(J.status==="dirty"||t.status==="dirty")T.dirty();$.set(J.value,t.value)}return{status:T.value,value:$}}}}Hf.create=(o,T,n)=>{return new Hf({valueType:T,keyType:o,typeName:g.ZodMap,...u(n)})};class Mn extends e{_parse(o){let{status:T,ctx:n}=this._processInputParams(o);if(n.parsedType!==h.set)return L(n,{code:Y.invalid_type,expected:h.set,received:n.parsedType}),d;let f=this._def;if(f.minSize!==null){if(n.data.size<f.minSize.value)L(n,{code:Y.too_small,minimum:f.minSize.value,type:"set",inclusive:!0,exact:!1,message:f.minSize.message}),T.dirty()}if(f.maxSize!==null){if(n.data.size>f.maxSize.value)L(n,{code:Y.too_big,maximum:f.maxSize.value,type:"set",inclusive:!0,exact:!1,message:f.maxSize.message}),T.dirty()}let S=this._def.valueType;function A(F){let J=new Set;for(let t of F){if(t.status==="aborted")return d;if(t.status==="dirty")T.dirty();J.add(t.value)}return{status:T.value,value:J}}let $=[...n.data.values()].map((F,J)=>S._parse(new GT(n,F,n.path,J)));if(n.common.async)return Promise.all($).then((F)=>A(F));else return A($)}min(o,T){return new Mn({...this._def,minSize:{value:o,message:x.toString(T)}})}max(o,T){return new Mn({...this._def,maxSize:{value:o,message:x.toString(T)}})}size(o,T){return this.min(o,T).max(o,T)}nonempty(o){return this.min(1,o)}}Mn.create=(o,T)=>{return new Mn({valueType:o,minSize:null,maxSize:null,typeName:g.ZodSet,...u(T)})};class Cn extends e{constructor(){super(...arguments);this.validate=this.implement}_parse(o){let{ctx:T}=this._processInputParams(o);if(T.parsedType!==h.function)return L(T,{code:Y.invalid_type,expected:h.function,received:T.parsedType}),d;function n($,F){return JS({data:$,path:T.path,errorMaps:[T.common.contextualErrorMap,T.schemaErrorMap,FS(),In].filter((J)=>!!J),issueData:{code:Y.invalid_arguments,argumentsError:F}})}function f($,F){return JS({data:$,path:T.path,errorMaps:[T.common.contextualErrorMap,T.schemaErrorMap,FS(),In].filter((J)=>!!J),issueData:{code:Y.invalid_return_type,returnTypeError:F}})}let S={errorMap:T.common.contextualErrorMap},A=T.data;if(this._def.returns instanceof yn){let $=this;return ao(async function(...F){let J=new JT([]),t=await $._def.args.parseAsync(F,S).catch((O)=>{throw J.addIssue(n(F,O)),J}),R=await Reflect.apply(A,this,t);return await $._def.returns._def.type.parseAsync(R,S).catch((O)=>{throw J.addIssue(f(R,O)),J})})}else{let $=this;return ao(function(...F){let J=$._def.args.safeParse(F,S);if(!J.success)throw new JT([n(F,J.error)]);let t=Reflect.apply(A,this,J.data),R=$._def.returns.safeParse(t,S);if(!R.success)throw new JT([f(t,R.error)]);return R.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...o){return new Cn({...this._def,args:mT.create(o).rest(gT.create())})}returns(o){return new Cn({...this._def,returns:o})}implement(o){return this.parse(o)}strictImplement(o){return this.parse(o)}static create(o,T,n){return new Cn({args:o?o:mT.create([]).rest(gT.create()),returns:T||gT.create(),typeName:g.ZodFunction,...u(n)})}}class vn extends e{get schema(){return this._def.getter()}_parse(o){let{ctx:T}=this._processInputParams(o);return this._def.getter()._parse({data:T.data,path:T.path,parent:T})}}vn.create=(o,T)=>{return new vn({getter:o,typeName:g.ZodLazy,...u(T)})};class rn extends e{_parse(o){if(o.data!==this._def.value){let T=this._getOrReturnCtx(o);return L(T,{received:T.data,code:Y.invalid_literal,expected:this._def.value}),d}return{status:"valid",value:o.data}}get value(){return this._def.value}}rn.create=(o,T)=>{return new rn({value:o,typeName:g.ZodLiteral,...u(T)})};function SJ(o,T){return new uT({values:o,typeName:g.ZodEnum,...u(T)})}class uT extends e{constructor(){super(...arguments);kf.set(this,void 0)}_parse(o){if(typeof o.data!=="string"){let T=this._getOrReturnCtx(o),n=this._def.values;return L(T,{expected:Ao.joinValues(n),received:T.parsedType,code:Y.invalid_type}),d}if(!tS(this,kf,"f"))oJ(this,kf,new Set(this._def.values),"f");if(!tS(this,kf,"f").has(o.data)){let T=this._getOrReturnCtx(o),n=this._def.values;return L(T,{received:T.data,code:Y.invalid_enum_value,options:n}),d}return ao(o.data)}get options(){return this._def.values}get enum(){let o={};for(let T of this._def.values)o[T]=T;return o}get Values(){let o={};for(let T of this._def.values)o[T]=T;return o}get Enum(){let o={};for(let T of this._def.values)o[T]=T;return o}extract(o,T=this._def){return uT.create(o,{...this._def,...T})}exclude(o,T=this._def){return uT.create(this.options.filter((n)=>!o.includes(n)),{...this._def,...T})}}kf=new WeakMap;uT.create=SJ;class qn extends e{constructor(){super(...arguments);Wf.set(this,void 0)}_parse(o){let T=Ao.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(o);if(n.parsedType!==h.string&&n.parsedType!==h.number){let f=Ao.objectValues(T);return L(n,{expected:Ao.joinValues(f),received:n.parsedType,code:Y.invalid_type}),d}if(!tS(this,Wf,"f"))oJ(this,Wf,new Set(Ao.getValidEnumValues(this._def.values)),"f");if(!tS(this,Wf,"f").has(o.data)){let f=Ao.objectValues(T);return L(n,{received:n.data,code:Y.invalid_enum_value,options:f}),d}return ao(o.data)}get enum(){return this._def.values}}Wf=new WeakMap;qn.create=(o,T)=>{return new qn({values:o,typeName:g.ZodNativeEnum,...u(T)})};class yn extends e{unwrap(){return this._def.type}_parse(o){let{ctx:T}=this._processInputParams(o);if(T.parsedType!==h.promise&&T.common.async===!1)return L(T,{code:Y.invalid_type,expected:h.promise,received:T.parsedType}),d;let n=T.parsedType===h.promise?T.data:Promise.resolve(T.data);return ao(n.then((f)=>{return this._def.type.parseAsync(f,{path:T.path,errorMap:T.common.contextualErrorMap})}))}}yn.create=(o,T)=>{return new yn({type:o,typeName:g.ZodPromise,...u(T)})};class WT extends e{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===g.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(o){let{status:T,ctx:n}=this._processInputParams(o),f=this._def.effect||null,S={addIssue:(A)=>{if(L(n,A),A.fatal)T.abort();else T.dirty()},get path(){return n.path}};if(S.addIssue=S.addIssue.bind(S),f.type==="preprocess"){let A=f.transform(n.data,S);if(n.common.async)return Promise.resolve(A).then(async($)=>{if(T.value==="aborted")return d;let F=await this._def.schema._parseAsync({data:$,path:n.path,parent:n});if(F.status==="aborted")return d;if(F.status==="dirty")return Ln(F.value);if(T.value==="dirty")return Ln(F.value);return F});else{if(T.value==="aborted")return d;let $=this._def.schema._parseSync({data:A,path:n.path,parent:n});if($.status==="aborted")return d;if($.status==="dirty")return Ln($.value);if(T.value==="dirty")return Ln($.value);return $}}if(f.type==="refinement"){let A=($)=>{let F=f.refinement($,S);if(n.common.async)return Promise.resolve(F);if(F instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return $};if(n.common.async===!1){let $=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if($.status==="aborted")return d;if($.status==="dirty")T.dirty();return A($.value),{status:T.value,value:$.value}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(($)=>{if($.status==="aborted")return d;if($.status==="dirty")T.dirty();return A($.value).then(()=>{return{status:T.value,value:$.value}})})}if(f.type==="transform")if(n.common.async===!1){let A=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Jn(A))return A;let $=f.transform(A.value,S);if($ instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:T.value,value:$}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((A)=>{if(!Jn(A))return A;return Promise.resolve(f.transform(A.value,S)).then(($)=>({status:T.value,value:$}))});Ao.assertNever(f)}}WT.create=(o,T,n)=>{return new WT({schema:o,typeName:g.ZodEffects,effect:T,...u(n)})};WT.createWithPreprocess=(o,T,n)=>{return new WT({schema:T,effect:{type:"preprocess",transform:o},typeName:g.ZodEffects,...u(n)})};class ET extends e{_parse(o){if(this._getType(o)===h.undefined)return ao(void 0);return this._def.innerType._parse(o)}unwrap(){return this._def.innerType}}ET.create=(o,T)=>{return new ET({innerType:o,typeName:g.ZodOptional,...u(T)})};class rT extends e{_parse(o){if(this._getType(o)===h.null)return ao(null);return this._def.innerType._parse(o)}unwrap(){return this._def.innerType}}rT.create=(o,T)=>{return new rT({innerType:o,typeName:g.ZodNullable,...u(T)})};class pn extends e{_parse(o){let{ctx:T}=this._processInputParams(o),n=T.data;if(T.parsedType===h.undefined)n=this._def.defaultValue();return this._def.innerType._parse({data:n,path:T.path,parent:T})}removeDefault(){return this._def.innerType}}pn.create=(o,T)=>{return new pn({innerType:o,typeName:g.ZodDefault,defaultValue:typeof T.default==="function"?T.default:()=>T.default,...u(T)})};class cn extends e{_parse(o){let{ctx:T}=this._processInputParams(o),n={...T,common:{...T.common,issues:[]}},f=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});if(Of(f))return f.then((S)=>{return{status:"valid",value:S.status==="valid"?S.value:this._def.catchValue({get error(){return new JT(n.common.issues)},input:n.data})}});else return{status:"valid",value:f.status==="valid"?f.value:this._def.catchValue({get error(){return new JT(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}cn.create=(o,T)=>{return new cn({innerType:o,typeName:g.ZodCatch,catchValue:typeof T.catch==="function"?T.catch:()=>T.catch,...u(T)})};class Kf extends e{_parse(o){if(this._getType(o)!==h.nan){let n=this._getOrReturnCtx(o);return L(n,{code:Y.invalid_type,expected:h.nan,received:n.parsedType}),d}return{status:"valid",value:o.data}}}Kf.create=(o)=>{return new Kf({typeName:g.ZodNaN,...u(o)})};var _1=Symbol("zod_brand");class MS extends e{_parse(o){let{ctx:T}=this._processInputParams(o),n=T.data;return this._def.type._parse({data:n,path:T.path,parent:T})}unwrap(){return this._def.type}}class Ef extends e{_parse(o){let{status:T,ctx:n}=this._processInputParams(o);if(n.common.async)return(async()=>{let S=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});if(S.status==="aborted")return d;if(S.status==="dirty")return T.dirty(),Ln(S.value);else return this._def.out._parseAsync({data:S.value,path:n.path,parent:n})})();else{let f=this._def.in._parseSync({data:n.data,path:n.path,parent:n});if(f.status==="aborted")return d;if(f.status==="dirty")return T.dirty(),{status:"dirty",value:f.value};else return this._def.out._parseSync({data:f.value,path:n.path,parent:n})}}static create(o,T){return new Ef({in:o,out:T,typeName:g.ZodPipeline})}}class Zn extends e{_parse(o){let T=this._def.innerType._parse(o),n=(f)=>{if(Jn(f))f.value=Object.freeze(f.value);return f};return Of(T)?T.then((f)=>n(f)):n(T)}unwrap(){return this._def.innerType}}Zn.create=(o,T)=>{return new Zn({innerType:o,typeName:g.ZodReadonly,...u(T)})};function eF(o,T){let n=typeof o==="function"?o(T):typeof o==="string"?{message:o}:o;return typeof n==="string"?{message:n}:n}function AJ(o,T={},n){if(o)return Rn.create().superRefine((f,S)=>{var A,$;let F=o(f);if(F instanceof Promise)return F.then((J)=>{var t,R;if(!J){let W=eF(T,f),O=(R=(t=W.fatal)!==null&&t!==void 0?t:n)!==null&&R!==void 0?R:!0;S.addIssue({code:"custom",...W,fatal:O})}});if(!F){let J=eF(T,f),t=($=(A=J.fatal)!==null&&A!==void 0?A:n)!==null&&$!==void 0?$:!0;S.addIssue({code:"custom",...J,fatal:t})}return});return Rn.create()}var X1={object:zo.lazycreate},g;(function(o){o.ZodString="ZodString",o.ZodNumber="ZodNumber",o.ZodNaN="ZodNaN",o.ZodBigInt="ZodBigInt",o.ZodBoolean="ZodBoolean",o.ZodDate="ZodDate",o.ZodSymbol="ZodSymbol",o.ZodUndefined="ZodUndefined",o.ZodNull="ZodNull",o.ZodAny="ZodAny",o.ZodUnknown="ZodUnknown",o.ZodNever="ZodNever",o.ZodVoid="ZodVoid",o.ZodArray="ZodArray",o.ZodObject="ZodObject",o.ZodUnion="ZodUnion",o.ZodDiscriminatedUnion="ZodDiscriminatedUnion",o.ZodIntersection="ZodIntersection",o.ZodTuple="ZodTuple",o.ZodRecord="ZodRecord",o.ZodMap="ZodMap",o.ZodSet="ZodSet",o.ZodFunction="ZodFunction",o.ZodLazy="ZodLazy",o.ZodLiteral="ZodLiteral",o.ZodEnum="ZodEnum",o.ZodEffects="ZodEffects",o.ZodNativeEnum="ZodNativeEnum",o.ZodOptional="ZodOptional",o.ZodNullable="ZodNullable",o.ZodDefault="ZodDefault",o.ZodCatch="ZodCatch",o.ZodPromise="ZodPromise",o.ZodBranded="ZodBranded",o.ZodPipeline="ZodPipeline",o.ZodReadonly="ZodReadonly"})(g||(g={}));var H1=(o,T={message:`Input not instance of ${o.name}`})=>AJ((n)=>n instanceof o,T),$J=HT.create,FJ=dT.create,K1=Kf.create,E1=lT.create,JJ=jn.create,G1=tn.create,Y1=wf.create,z1=hn.create,D1=Nn.create,Q1=Rn.create,U1=gT.create,V1=BT.create,B1=_f.create,m1=KT.create,L1=zo.create,C1=zo.strictCreate,I1=bn.create,j1=RS.create,h1=xn.create,N1=mT.create,b1=Xf.create,x1=Hf.create,v1=Mn.create,r1=Cn.create,q1=vn.create,p1=rn.create,c1=uT.create,Z1=qn.create,P1=yn.create,sF=WT.create,i1=ET.create,g1=rT.create,d1=WT.createWithPreprocess,l1=Ef.create,u1=()=>$J().optional(),e1=()=>FJ().optional(),s1=()=>JJ().optional(),a1={string:(o)=>HT.create({...o,coerce:!0}),number:(o)=>dT.create({...o,coerce:!0}),boolean:(o)=>jn.create({...o,coerce:!0}),bigint:(o)=>lT.create({...o,coerce:!0}),date:(o)=>tn.create({...o,coerce:!0})},oy=d,Eo=Object.freeze({__proto__:null,defaultErrorMap:In,setErrorMap:dM,getErrorMap:FS,makeIssue:JS,EMPTY_PATH:lM,addIssueToContext:L,ParseStatus:uo,INVALID:d,DIRTY:Ln,OK:ao,isAborted:CA,isDirty:IA,isValid:Jn,isAsync:Of,get util(){return Ao},get objectUtil(){return LA},ZodParsedType:h,getParsedType:vT,ZodType:e,datetimeRegex:fJ,ZodString:HT,ZodNumber:dT,ZodBigInt:lT,ZodBoolean:jn,ZodDate:tn,ZodSymbol:wf,ZodUndefined:hn,ZodNull:Nn,ZodAny:Rn,ZodUnknown:gT,ZodNever:BT,ZodVoid:_f,ZodArray:KT,ZodObject:zo,ZodUnion:bn,ZodDiscriminatedUnion:RS,ZodIntersection:xn,ZodTuple:mT,ZodRecord:Xf,ZodMap:Hf,ZodSet:Mn,ZodFunction:Cn,ZodLazy:vn,ZodLiteral:rn,ZodEnum:uT,ZodNativeEnum:qn,ZodPromise:yn,ZodEffects:WT,ZodTransformer:WT,ZodOptional:ET,ZodNullable:rT,ZodDefault:pn,ZodCatch:cn,ZodNaN:Kf,BRAND:_1,ZodBranded:MS,ZodPipeline:Ef,ZodReadonly:Zn,custom:AJ,Schema:e,ZodSchema:e,late:X1,get ZodFirstPartyTypeKind(){return g},coerce:a1,any:Q1,array:m1,bigint:E1,boolean:JJ,date:G1,discriminatedUnion:j1,effect:sF,enum:c1,function:r1,instanceof:H1,intersection:h1,lazy:q1,literal:p1,map:x1,nan:K1,nativeEnum:Z1,never:V1,null:D1,nullable:g1,number:FJ,object:L1,oboolean:s1,onumber:e1,optional:i1,ostring:u1,pipeline:l1,preprocess:d1,promise:P1,record:b1,set:v1,strictObject:C1,string:$J,symbol:Y1,transformer:sF,tuple:N1,undefined:z1,union:I1,unknown:U1,void:B1,NEVER:oy,ZodIssueCode:Y,quotelessJson:gM,ZodError:JT});var Ty="__vite_start_time"in globalThis,ny=typeof window!=="undefined",JE="vitest"in globalThis,YT=lF({isServer:!Ty&&!ny,server:{CI:Eo.string().transform((o)=>!0).optional(),POSTGRES_USER:Eo.string(),POSTGRES_PASSWORD:Eo.string(),POSTGRES_DATABASE:Eo.string(),POSTGRES_HOST:Eo.string(),POSTGRES_PORT:Eo.string().transform((o)=>Number.parseInt(o,10)),BACKEND_PORT:Eo.string().transform((o)=>Number.parseInt(o,10)),RUN_WORKERS_FROM_SOURCE:Eo.union([Eo.literal("true"),Eo.literal("false")]).optional().transform((o)=>o==="true"),FRONTEND_PORT:Eo.string().transform((o)=>Number.parseInt(o,10)),FRONTEND_ORIGINS:Eo.string().transform((o)=>JSON.parse(o)).pipe(Eo.array(Eo.string())),OPENAI_API_KEY:Eo.string().optional()},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:Eo.string(),VITE_USE_SELF_SIGNED_CERTIFICATE:Eo.union([Eo.literal("true"),Eo.literal("false")]).optional().transform((o)=>o==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var RJ=hA(import.meta.dirname,"../dev"),MJ=YT.VITE_USE_SELF_SIGNED_CERTIFICATE?{cert:tJ(hA(RJ,"./cert.pem"),"utf-8"),key:tJ(hA(RJ,"./key.pem"),"utf-8")}:void 0;import Sk from"node:path";var y=Symbol.for("drizzle:entityKind"),WE=Symbol.for("drizzle:hasOwnEntityKind");function X(o,T){if(!o||typeof o!=="object")return!1;if(o instanceof T)return!0;if(!Object.prototype.hasOwnProperty.call(T,y))throw new Error(`Class "${T.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let n=Object.getPrototypeOf(o).constructor;if(n)while(n){if(y in n&&n[y]===T[y])return!0;n=Object.getPrototypeOf(n)}return!1}class Wo{constructor(o,T){this.table=o,this.config=T,this.name=T.name,this.keyAsName=T.keyAsName,this.notNull=T.notNull,this.default=T.default,this.defaultFn=T.defaultFn,this.onUpdateFn=T.onUpdateFn,this.hasDefault=T.hasDefault,this.primary=T.primaryKey,this.isUnique=T.isUnique,this.uniqueName=T.uniqueName,this.uniqueType=T.uniqueType,this.dataType=T.dataType,this.columnType=T.columnType,this.generated=T.generated,this.generatedIdentity=T.generatedIdentity}static[y]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(o){return o}mapToDriverValue(o){return o}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class NA{static[y]="ColumnBuilder";config;constructor(o,T,n){this.config={name:o,keyAsName:o==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:T,columnType:n,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(o){return this.config.default=o,this.config.hasDefault=!0,this}$defaultFn(o){return this.config.defaultFn=o,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(o){return this.config.onUpdateFn=o,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(o){if(this.config.name!=="")return;this.config.name=o}}var zT=Symbol.for("drizzle:Name");class bA{static[y]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(o,T){if(this.reference=()=>{let{name:n,columns:f,foreignColumns:S}=o();return{name:n,columns:f,foreignTable:S[0].table,foreignColumns:S}},T)this._onUpdate=T.onUpdate,this._onDelete=T.onDelete}onUpdate(o){return this._onUpdate=o===void 0?"no action":o,this}onDelete(o){return this._onDelete=o===void 0?"no action":o,this}build(o){return new yJ(o,this)}}class yJ{constructor(o,T){this.table=o,this.reference=T.reference,this.onUpdate=T._onUpdate,this.onDelete=T._onDelete}static[y]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:o,columns:T,foreignColumns:n}=this.reference(),f=T.map(($)=>$.name),S=n.map(($)=>$.name),A=[this.table[zT],...f,n[0].table[zT],...S];return o??`${A.join("_")}_fk`}}function yS(o,...T){return o(...T)}function kJ(o,T){return`${o[zT]}_${T.join("_")}_unique`}function WJ(o,T,n){for(let f=T;f<o.length;f++){let S=o[f];if(S==="\\"){f++;continue}if(S==='"')return[o.slice(T,f).replace(/\\/g,""),f+1];if(n)continue;if(S===","||S==="}")return[o.slice(T,f).replace(/\\/g,""),f]}return[o.slice(T).replace(/\\/g,""),o.length]}function OJ(o,T=0){let n=[],f=T,S=!1;while(f<o.length){let A=o[f];if(A===","){if(S||f===T)n.push("");S=!0,f++;continue}if(S=!1,A==="\\"){f+=2;continue}if(A==='"'){let[J,t]=WJ(o,f+1,!0);n.push(J),f=t;continue}if(A==="}")return[n,f+1];if(A==="{"){let[J,t]=OJ(o,f+1);n.push(J),f=t;continue}let[$,F]=WJ(o,f,!1);n.push($),f=F}return[n,f]}function wJ(o){let[T]=OJ(o,1);return T}function xA(o){return`{${o.map((T)=>{if(Array.isArray(T))return xA(T);if(typeof T==="string")return`"${T.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${T}`}).join(",")}}`}class N extends NA{foreignKeyConfigs=[];static[y]="PgColumnBuilder";array(o){return new XJ(this.config.name,this,o)}references(o,T={}){return this.foreignKeyConfigs.push({ref:o,actions:T}),this}unique(o,T){return this.config.isUnique=!0,this.config.uniqueName=o,this.config.uniqueType=T?.nulls,this}generatedAlwaysAs(o){return this.config.generated={as:o,type:"always",mode:"stored"},this}buildForeignKeys(o,T){return this.foreignKeyConfigs.map(({ref:n,actions:f})=>{return yS((S,A)=>{let $=new bA(()=>{let F=S();return{columns:[o],foreignColumns:[F]}});if(A.onUpdate)$.onUpdate(A.onUpdate);if(A.onDelete)$.onDelete(A.onDelete);return $.build(T)},n,f)})}buildExtraConfigColumn(o){return new _J(o,this.config)}}class V extends Wo{constructor(o,T){if(!T.uniqueName)T.uniqueName=kJ(o,[T.name]);super(o,T);this.table=o}static[y]="PgColumn"}class _J extends V{static[y]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(o){return this.indexConfig.opClass=o,this}}class Gf{static[y]="IndexedColumn";constructor(o,T,n,f){this.name=o,this.keyAsName=T,this.type=n,this.indexConfig=f}name;keyAsName;type;indexConfig}class XJ extends N{static[y]="PgArrayBuilder";constructor(o,T,n){super(o,"array","PgArray");this.config.baseBuilder=T,this.config.size=n}build(o){let T=this.config.baseBuilder.build(o);return new vA(o,this.config,T)}}class vA extends V{constructor(o,T,n,f){super(o,T);this.baseColumn=n,this.range=f,this.size=T.size}size;static[y]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(o){if(typeof o==="string")o=wJ(o);return o.map((T)=>this.baseColumn.mapFromDriverValue(T))}mapToDriverValue(o,T=!1){let n=o.map((f)=>f===null?null:X(this.baseColumn,vA)?this.baseColumn.mapToDriverValue(f,!0):this.baseColumn.mapToDriverValue(f));if(T)return n;return xA(n)}}var rA=Symbol.for("drizzle:isPgEnum");function HJ(o){return!!o&&typeof o==="function"&&rA in o&&o[rA]===!0}class KJ extends N{static[y]="PgEnumColumnBuilder";constructor(o,T){super(o,"string","PgEnumColumn");this.config.enum=T}build(o){return new EJ(o,this.config)}}class EJ extends V{static[y]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(o,T){super(o,T);this.enum=T.enum}getSQLType(){return this.enum.enumName}}function kS(o,T){return fy(o,T,void 0)}function fy(o,T,n){let f=Object.assign((S)=>new KJ(S??"",f),{enumName:o,enumValues:T,schema:n,[rA]:!0});return f}class No{static[y]="Subquery";constructor(o,T,n,f=!1){this._={brand:"Subquery",sql:o,selectedFields:T,alias:n,isWith:f}}}class Yf extends No{static[y]="WithSubquery"}var GJ="0.41.0";var qA,pA,Oo={startActiveSpan(o,T){if(!qA)return T();if(!pA)pA=qA.trace.getTracer("drizzle-orm",GJ);return yS((n,f)=>f.startActiveSpan(o,(S)=>{try{return T(S)}catch(A){throw S.setStatus({code:n.SpanStatusCode.ERROR,message:A instanceof Error?A.message:"Unknown error"}),A}finally{S.end()}}),qA,pA)}};var Xo=Symbol.for("drizzle:ViewBaseConfig");var WS=Symbol.for("drizzle:Schema"),OS=Symbol.for("drizzle:Columns"),YJ=Symbol.for("drizzle:ExtraConfigColumns"),cA=Symbol.for("drizzle:OriginalName"),ZA=Symbol.for("drizzle:BaseName"),zf=Symbol.for("drizzle:IsAlias"),zJ=Symbol.for("drizzle:ExtraConfigBuilder"),Sy=Symbol.for("drizzle:IsDrizzleTable");class I{static[y]="Table";static Symbol={Name:zT,Schema:WS,OriginalName:cA,Columns:OS,ExtraConfigColumns:YJ,BaseName:ZA,IsAlias:zf,ExtraConfigBuilder:zJ};[zT];[cA];[WS];[OS];[YJ];[ZA];[zf]=!1;[Sy]=!0;[zJ]=void 0;constructor(o,T,n){this[zT]=this[cA]=o,this[WS]=T,this[ZA]=n}}function vo(o){return o[zT]}function kn(o){return`${o[WS]??"public"}.${o[zT]}`}function PA(o){return o!==null&&o!==void 0&&typeof o.getSQL==="function"}function Ay(o){let T={sql:"",params:[]};for(let n of o)if(T.sql+=n.sql,T.params.push(...n.params),n.typings?.length){if(!T.typings)T.typings=[];T.typings.push(...n.typings)}return T}class bo{static[y]="StringChunk";value;constructor(o){this.value=Array.isArray(o)?o:[o]}getSQL(){return new j([this])}}class j{constructor(o){this.queryChunks=o}static[y]="SQL";decoder=QJ;shouldInlineParams=!1;append(o){return this.queryChunks.push(...o.queryChunks),this}toQuery(o){return Oo.startActiveSpan("drizzle.buildSQL",(T)=>{let n=this.buildQueryFromSourceParams(this.queryChunks,o);return T?.setAttributes({"drizzle.query.text":n.sql,"drizzle.query.params":JSON.stringify(n.params)}),n})}buildQueryFromSourceParams(o,T){let n=Object.assign({},T,{inlineParams:T.inlineParams||this.shouldInlineParams,paramStartIndex:T.paramStartIndex||{value:0}}),{casing:f,escapeName:S,escapeParam:A,prepareTyping:$,inlineParams:F,paramStartIndex:J}=n;return Ay(o.map((t)=>{if(X(t,bo))return{sql:t.value.join(""),params:[]};if(X(t,wS))return{sql:S(t.value),params:[]};if(t===void 0)return{sql:"",params:[]};if(Array.isArray(t)){let R=[new bo("(")];for(let[W,O]of t.entries())if(R.push(O),W<t.length-1)R.push(new bo(", "));return R.push(new bo(")")),this.buildQueryFromSourceParams(R,n)}if(X(t,j))return this.buildQueryFromSourceParams(t.queryChunks,{...n,inlineParams:F||t.shouldInlineParams});if(X(t,I)){let R=t[I.Symbol.Schema],W=t[I.Symbol.Name];return{sql:R===void 0||t[zf]?S(W):S(R)+"."+S(W),params:[]}}if(X(t,Wo)){let R=f.getColumnCasing(t);if(T.invokeSource==="indexes")return{sql:S(R),params:[]};let W=t.table[I.Symbol.Schema];return{sql:t.table[zf]||W===void 0?S(t.table[I.Symbol.Name])+"."+S(R):S(W)+"."+S(t.table[I.Symbol.Name])+"."+S(R),params:[]}}if(X(t,ST)){let R=t[Xo].schema,W=t[Xo].name;return{sql:R===void 0||t[Xo].isAlias?S(W):S(R)+"."+S(W),params:[]}}if(X(t,tT)){if(X(t.value,eT))return{sql:A(J.value++,t),params:[t],typings:["none"]};let R=t.value===null?null:t.encoder.mapToDriverValue(t.value);if(X(R,j))return this.buildQueryFromSourceParams([R],n);if(F)return{sql:this.mapInlineParam(R,n),params:[]};let W=["none"];if($)W=[$(t.encoder)];return{sql:A(J.value++,R),params:[R],typings:W}}if(X(t,eT))return{sql:A(J.value++,t),params:[t],typings:["none"]};if(X(t,j.Aliased)&&t.fieldAlias!==void 0)return{sql:S(t.fieldAlias),params:[]};if(X(t,No)){if(t._.isWith)return{sql:S(t._.alias),params:[]};return this.buildQueryFromSourceParams([new bo("("),t._.sql,new bo(") "),new wS(t._.alias)],n)}if(HJ(t)){if(t.schema)return{sql:S(t.schema)+"."+S(t.enumName),params:[]};return{sql:S(t.enumName),params:[]}}if(PA(t)){if(t.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([t.getSQL()],n);return this.buildQueryFromSourceParams([new bo("("),t.getSQL(),new bo(")")],n)}if(F)return{sql:this.mapInlineParam(t,n),params:[]};return{sql:A(J.value++,t),params:[t],typings:["none"]}}))}mapInlineParam(o,{escapeString:T}){if(o===null)return"null";if(typeof o==="number"||typeof o==="boolean")return o.toString();if(typeof o==="string")return T(o);if(typeof o==="object"){let n=o.toString();if(n==="[object Object]")return T(JSON.stringify(o));return T(n)}throw new Error("Unexpected param value: "+o)}getSQL(){return this}as(o){if(o===void 0)return this;return new j.Aliased(this,o)}mapWith(o){return this.decoder=typeof o==="function"?{mapFromDriverValue:o}:o,this}inlineParams(){return this.shouldInlineParams=!0,this}if(o){return o?this:void 0}}class wS{constructor(o){this.value=o}static[y]="Name";brand;getSQL(){return new j([this])}}function DJ(o){return typeof o==="object"&&o!==null&&"mapToDriverValue"in o&&typeof o.mapToDriverValue==="function"}var QJ={mapFromDriverValue:(o)=>o},UJ={mapToDriverValue:(o)=>o},n5={...QJ,...UJ};class tT{constructor(o,T=UJ){this.value=o,this.encoder=T}static[y]="Param";brand;getSQL(){return new j([this])}}function k(o,...T){let n=[];if(T.length>0||o.length>0&&o[0]!=="")n.push(new bo(o[0]));for(let[f,S]of T.entries())n.push(S,new bo(o[f+1]));return new j(n)}((o)=>{function T(){return new j([])}o.empty=T;function n(J){return new j(J)}o.fromList=n;function f(J){return new j([new bo(J)])}o.raw=f;function S(J,t){let R=[];for(let[W,O]of J.entries()){if(W>0&&t!==void 0)R.push(t);R.push(O)}return new j(R)}o.join=S;function A(J){return new wS(J)}o.identifier=A;function $(J){return new eT(J)}o.placeholder=$;function F(J,t){return new tT(J,t)}o.param=F})(k||(k={}));((o)=>{class T{constructor(n,f){this.sql=n,this.fieldAlias=f}static[y]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new T(this.sql,this.fieldAlias)}}o.Aliased=T})(j||(j={}));class eT{constructor(o){this.name=o}static[y]="Placeholder";getSQL(){return new j([this])}}function iA(o,T){return o.map((n)=>{if(X(n,eT)){if(!(n.name in T))throw new Error(`No value for placeholder "${n.name}" was provided`);return T[n.name]}if(X(n,tT)&&X(n.value,eT)){if(!(n.value.name in T))throw new Error(`No value for placeholder "${n.value.name}" was provided`);return n.encoder.mapToDriverValue(T[n.value.name])}return n})}var $y=Symbol.for("drizzle:IsDrizzleView");class ST{static[y]="View";[Xo];[$y]=!0;constructor({name:o,schema:T,selectedFields:n,query:f}){this[Xo]={name:o,originalName:o,schema:T,selectedFields:n,query:f,isExisting:!f,isAlias:!1}}getSQL(){return new j([this])}}Wo.prototype.getSQL=function(){return new j([this])};I.prototype.getSQL=function(){return new j([this])};No.prototype.getSQL=function(){return new j([this])};class Pn{constructor(o){this.table=o}static[y]="ColumnAliasProxyHandler";get(o,T){if(T==="table")return this.table;return o[T]}}class Df{constructor(o,T){this.alias=o,this.replaceOriginalName=T}static[y]="TableAliasProxyHandler";get(o,T){if(T===I.Symbol.IsAlias)return!0;if(T===I.Symbol.Name)return this.alias;if(this.replaceOriginalName&&T===I.Symbol.OriginalName)return this.alias;if(T===Xo)return{...o[Xo],name:this.alias,isAlias:!0};if(T===I.Symbol.Columns){let f=o[I.Symbol.Columns];if(!f)return f;let S={};return Object.keys(f).map((A)=>{S[A]=new Proxy(f[A],new Pn(new Proxy(o,this)))}),S}let n=o[T];if(X(n,Wo))return new Proxy(n,new Pn(new Proxy(o,this)));return n}}function _S(o,T){return new Proxy(o,new Df(T,!1))}function LT(o,T){return new Proxy(o,new Pn(new Proxy(o.table,new Df(T,!1))))}function gA(o,T){return new j.Aliased(Qf(o.sql,T),o.fieldAlias)}function Qf(o,T){return k.join(o.queryChunks.map((n)=>{if(X(n,Wo))return LT(n,T);if(X(n,j))return Qf(n,T);if(X(n,j.Aliased))return gA(n,T);return n}))}class XS extends Error{static[y]="DrizzleError";constructor({message:o,cause:T}){super(o);this.name="DrizzleError",this.cause=T}}class dA extends XS{static[y]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function AT(o,T){if(DJ(T)&&!PA(o)&&!X(o,tT)&&!X(o,eT)&&!X(o,Wo)&&!X(o,I)&&!X(o,ST))return new tT(o,T);return o}var HS=(o,T)=>{return k`${o} = ${AT(T,o)}`},VJ=(o,T)=>{return k`${o} <> ${AT(T,o)}`};function Uf(...o){let T=o.filter((n)=>n!==void 0);if(T.length===0)return;if(T.length===1)return new j(T);return new j([new bo("("),k.join(T,new bo(" and ")),new bo(")")])}function BJ(...o){let T=o.filter((n)=>n!==void 0);if(T.length===0)return;if(T.length===1)return new j(T);return new j([new bo("("),k.join(T,new bo(" or ")),new bo(")")])}function mJ(o){return k`not ${o}`}var LJ=(o,T)=>{return k`${o} > ${AT(T,o)}`},CJ=(o,T)=>{return k`${o} >= ${AT(T,o)}`},IJ=(o,T)=>{return k`${o} < ${AT(T,o)}`},jJ=(o,T)=>{return k`${o} <= ${AT(T,o)}`};function hJ(o,T){if(Array.isArray(T)){if(T.length===0)return k`false`;return k`${o} in ${T.map((n)=>AT(n,o))}`}return k`${o} in ${AT(T,o)}`}function NJ(o,T){if(Array.isArray(T)){if(T.length===0)return k`true`;return k`${o} not in ${T.map((n)=>AT(n,o))}`}return k`${o} not in ${AT(T,o)}`}function bJ(o){return k`${o} is null`}function xJ(o){return k`${o} is not null`}function vJ(o){return k`exists ${o}`}function rJ(o){return k`not exists ${o}`}function qJ(o,T,n){return k`${o} between ${AT(T,o)} and ${AT(n,o)}`}function pJ(o,T,n){return k`${o} not between ${AT(T,o)} and ${AT(n,o)}`}function cJ(o,T){return k`${o} like ${T}`}function ZJ(o,T){return k`${o} not like ${T}`}function PJ(o,T){return k`${o} ilike ${T}`}function iJ(o,T){return k`${o} not ilike ${T}`}function gJ(o){return k`${o} asc`}function dJ(o){return k`${o} desc`}class lJ{static[y]="ConsoleLogWriter";write(o){console.log(o)}}class lA{static[y]="DefaultLogger";writer;constructor(o){this.writer=o?.writer??new lJ}logQuery(o,T){let n=T.map((S)=>{try{return JSON.stringify(S)}catch{return String(S)}}),f=n.length?` -- params: [${n.join(", ")}]`:"";this.writer.write(`Query: ${o}${f}`)}}class uA{static[y]="NoopLogger";logQuery(){}}class oT{static[y]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(o){return this.then(void 0,o)}finally(o){return this.then((T)=>{return o?.(),T},(T)=>{throw o?.(),T})}then(o,T){return this.execute().then(o,T)}}function uJ(o,T,n){let f={},S=o.reduce((A,{path:$,field:F},J)=>{let t;if(X(F,Wo))t=F;else if(X(F,j))t=F.decoder;else t=F.sql.decoder;let R=A;for(let[W,O]of $.entries())if(W<$.length-1){if(!(O in R))R[O]={};R=R[O]}else{let _=T[J],Q=R[O]=_===null?null:t.mapFromDriverValue(_);if(n&&X(F,Wo)&&$.length===2){let H=$[0];if(!(H in f))f[H]=Q===null?vo(F.table):!1;else if(typeof f[H]==="string"&&f[H]!==vo(F.table))f[H]=!1}}return A},{});if(n&&Object.keys(f).length>0){for(let[A,$]of Object.entries(f))if(typeof $==="string"&&!n[$])S[A]=null}return S}function OT(o,T){return Object.entries(o).reduce((n,[f,S])=>{if(typeof f!=="string")return n;let A=T?[...T,f]:[f];if(X(S,Wo)||X(S,j)||X(S,j.Aliased))n.push({path:A,field:S});else if(X(S,I))n.push(...OT(S[I.Symbol.Columns],A));else n.push(...OT(S,A));return n},[])}function Vf(o,T){let n=Object.keys(o),f=Object.keys(T);if(n.length!==f.length)return!1;for(let[S,A]of n.entries())if(A!==f[S])return!1;return!0}function KS(o,T){let n=Object.entries(T).filter(([,f])=>f!==void 0).map(([f,S])=>{if(X(S,j)||X(S,Wo))return[f,S];else return[f,new tT(S,o[I.Symbol.Columns][f])]});if(n.length===0)throw new Error("No values to set");return Object.fromEntries(n)}function eJ(o,T){for(let n of T)for(let f of Object.getOwnPropertyNames(n.prototype)){if(f==="constructor")continue;Object.defineProperty(o.prototype,f,Object.getOwnPropertyDescriptor(n.prototype,f)||Object.create(null))}}function sJ(o){return o[I.Symbol.Columns]}function qT(o){return X(o,No)?o._.alias:X(o,ST)?o[Xo].name:X(o,j)?void 0:o[I.Symbol.IsAlias]?o[I.Symbol.Name]:o[I.Symbol.BaseName]}function So(o,T){return{name:typeof o==="string"&&o.length>0?o:"",config:typeof o==="object"?o:T}}function aJ(o){if(typeof o!=="object"||o===null)return!1;if(o.constructor.name!=="Object")return!1;if("logger"in o){let T=typeof o.logger;if(T!=="boolean"&&(T!=="object"||typeof o.logger.logQuery!=="function")&&T!=="undefined")return!1;return!0}if("schema"in o){let T=typeof o.schema;if(T!=="object"&&T!=="undefined")return!1;return!0}if("casing"in o){let T=typeof o.casing;if(T!=="string"&&T!=="undefined")return!1;return!0}if("mode"in o){if(o.mode!=="default"||o.mode!=="planetscale"||o.mode!==void 0)return!1;return!0}if("connection"in o){let T=typeof o.connection;if(T!=="string"&&T!=="object"&&T!=="undefined")return!1;return!0}if("client"in o){let T=typeof o.client;if(T!=="object"&&T!=="function"&&T!=="undefined")return!1;return!0}if(Object.keys(o).length===0)return!0;return!1}class sT extends N{static[y]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(o){if(o){let{name:T,...n}=o;this.config.generatedIdentity={type:"always",sequenceName:T,sequenceOptions:n}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(o){if(o){let{name:T,...n}=o;this.config.generatedIdentity={type:"byDefault",sequenceName:T,sequenceOptions:n}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class ot extends sT{static[y]="PgBigInt53Builder";constructor(o){super(o,"number","PgBigInt53")}build(o){return new Tt(o,this.config)}}class Tt extends V{static[y]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(o){if(typeof o==="number")return o;return Number(o)}}class nt extends sT{static[y]="PgBigInt64Builder";constructor(o){super(o,"bigint","PgBigInt64")}build(o){return new ft(o,this.config)}}class ft extends V{static[y]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(o){return BigInt(o)}}function St(o,T){let{name:n,config:f}=So(o,T);if(f.mode==="number")return new ot(n);return new nt(n)}class At extends N{static[y]="PgBigSerial53Builder";constructor(o){super(o,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(o){return new $t(o,this.config)}}class $t extends V{static[y]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(o){if(typeof o==="number")return o;return Number(o)}}class Ft extends N{static[y]="PgBigSerial64Builder";constructor(o){super(o,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(o){return new Jt(o,this.config)}}class Jt extends V{static[y]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(o){return BigInt(o)}}function tt(o,T){let{name:n,config:f}=So(o,T);if(f.mode==="number")return new At(n);return new Ft(n)}class Rt extends N{static[y]="PgBooleanBuilder";constructor(o){super(o,"boolean","PgBoolean")}build(o){return new Mt(o,this.config)}}class Mt extends V{static[y]="PgBoolean";getSQLType(){return"boolean"}}function Bf(o){return new Rt(o??"")}class yt extends N{static[y]="PgCharBuilder";constructor(o,T){super(o,"string","PgChar");this.config.length=T.length,this.config.enumValues=T.enum}build(o){return new kt(o,this.config)}}class kt extends V{static[y]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function Wt(o,T={}){let{name:n,config:f}=So(o,T);return new yt(n,f)}class Ot extends N{static[y]="PgCidrBuilder";constructor(o){super(o,"string","PgCidr")}build(o){return new wt(o,this.config)}}class wt extends V{static[y]="PgCidr";getSQLType(){return"cidr"}}function _t(o){return new Ot(o??"")}class Xt extends N{static[y]="PgCustomColumnBuilder";constructor(o,T,n){super(o,"custom","PgCustomColumn");this.config.fieldConfig=T,this.config.customTypeParams=n}build(o){return new Ht(o,this.config)}}class Ht extends V{static[y]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(o,T){super(o,T);this.sqlName=T.customTypeParams.dataType(T.fieldConfig),this.mapTo=T.customTypeParams.toDriver,this.mapFrom=T.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(o){return typeof this.mapFrom==="function"?this.mapFrom(o):o}mapToDriverValue(o){return typeof this.mapTo==="function"?this.mapTo(o):o}}function Kt(o){return(T,n)=>{let{name:f,config:S}=So(T,n);return new Xt(f,S,o)}}class pT extends N{static[y]="PgDateColumnBaseBuilder";defaultNow(){return this.default(k`now()`)}}class Et extends pT{static[y]="PgDateBuilder";constructor(o){super(o,"date","PgDate")}build(o){return new ES(o,this.config)}}class ES extends V{static[y]="PgDate";getSQLType(){return"date"}mapFromDriverValue(o){return new Date(o)}mapToDriverValue(o){return o.toISOString()}}class Gt extends pT{static[y]="PgDateStringBuilder";constructor(o){super(o,"string","PgDateString")}build(o){return new GS(o,this.config)}}class GS extends V{static[y]="PgDateString";getSQLType(){return"date"}}function Yt(o,T){let{name:n,config:f}=So(o,T);if(f?.mode==="date")return new Et(n);return new Gt(n)}class zt extends N{static[y]="PgDoublePrecisionBuilder";constructor(o){super(o,"number","PgDoublePrecision")}build(o){return new Dt(o,this.config)}}class Dt extends V{static[y]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(o){if(typeof o==="string")return Number.parseFloat(o);return o}}function Qt(o){return new zt(o??"")}class Ut extends N{static[y]="PgInetBuilder";constructor(o){super(o,"string","PgInet")}build(o){return new Vt(o,this.config)}}class Vt extends V{static[y]="PgInet";getSQLType(){return"inet"}}function Bt(o){return new Ut(o??"")}class mt extends sT{static[y]="PgIntegerBuilder";constructor(o){super(o,"number","PgInteger")}build(o){return new Lt(o,this.config)}}class Lt extends V{static[y]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(o){if(typeof o==="string")return Number.parseInt(o);return o}}function YS(o){return new mt(o??"")}class Ct extends N{static[y]="PgIntervalBuilder";constructor(o,T){super(o,"string","PgInterval");this.config.intervalConfig=T}build(o){return new It(o,this.config)}}class It extends V{static[y]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let o=this.fields?` ${this.fields}`:"",T=this.precision?`(${this.precision})`:"";return`interval${o}${T}`}}function jt(o,T={}){let{name:n,config:f}=So(o,T);return new Ct(n,f)}class ht extends N{static[y]="PgJsonBuilder";constructor(o){super(o,"json","PgJson")}build(o){return new zS(o,this.config)}}class zS extends V{static[y]="PgJson";constructor(o,T){super(o,T)}getSQLType(){return"json"}mapToDriverValue(o){return JSON.stringify(o)}mapFromDriverValue(o){if(typeof o==="string")try{return JSON.parse(o)}catch{return o}return o}}function Nt(o){return new ht(o??"")}class bt extends N{static[y]="PgJsonbBuilder";constructor(o){super(o,"json","PgJsonb")}build(o){return new DS(o,this.config)}}class DS extends V{static[y]="PgJsonb";constructor(o,T){super(o,T)}getSQLType(){return"jsonb"}mapToDriverValue(o){return JSON.stringify(o)}mapFromDriverValue(o){if(typeof o==="string")try{return JSON.parse(o)}catch{return o}return o}}function xt(o){return new bt(o??"")}class vt extends N{static[y]="PgLineBuilder";constructor(o){super(o,"array","PgLine")}build(o){return new rt(o,this.config)}}class rt extends V{static[y]="PgLine";getSQLType(){return"line"}mapFromDriverValue(o){let[T,n,f]=o.slice(1,-1).split(",");return[Number.parseFloat(T),Number.parseFloat(n),Number.parseFloat(f)]}mapToDriverValue(o){return`{${o[0]},${o[1]},${o[2]}}`}}class qt extends N{static[y]="PgLineABCBuilder";constructor(o){super(o,"json","PgLineABC")}build(o){return new pt(o,this.config)}}class pt extends V{static[y]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(o){let[T,n,f]=o.slice(1,-1).split(",");return{a:Number.parseFloat(T),b:Number.parseFloat(n),c:Number.parseFloat(f)}}mapToDriverValue(o){return`{${o.a},${o.b},${o.c}}`}}function ct(o,T){let{name:n,config:f}=So(o,T);if(!f?.mode||f.mode==="tuple")return new vt(n);return new qt(n)}class Zt extends N{static[y]="PgMacaddrBuilder";constructor(o){super(o,"string","PgMacaddr")}build(o){return new Pt(o,this.config)}}class Pt extends V{static[y]="PgMacaddr";getSQLType(){return"macaddr"}}function it(o){return new Zt(o??"")}class gt extends N{static[y]="PgMacaddr8Builder";constructor(o){super(o,"string","PgMacaddr8")}build(o){return new dt(o,this.config)}}class dt extends V{static[y]="PgMacaddr8";getSQLType(){return"macaddr8"}}function lt(o){return new gt(o??"")}class ut extends N{static[y]="PgNumericBuilder";constructor(o,T,n){super(o,"string","PgNumeric");this.config.precision=T,this.config.scale=n}build(o){return new QS(o,this.config)}}class QS extends V{static[y]="PgNumeric";precision;scale;constructor(o,T){super(o,T);this.precision=T.precision,this.scale=T.scale}mapFromDriverValue(o){if(typeof o==="string")return o;return String(o)}getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}class et extends N{static[y]="PgNumericNumberBuilder";constructor(o,T,n){super(o,"number","PgNumericNumber");this.config.precision=T,this.config.scale=n}build(o){return new st(o,this.config)}}class st extends V{static[y]="PgNumericNumber";precision;scale;constructor(o,T){super(o,T);this.precision=T.precision,this.scale=T.scale}mapFromDriverValue(o){if(typeof o==="number")return o;return Number(o)}mapToDriverValue=String;getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}class at extends N{static[y]="PgNumericBigIntBuilder";constructor(o,T,n){super(o,"bigint","PgNumericBigInt");this.config.precision=T,this.config.scale=n}build(o){return new oR(o,this.config)}}class oR extends V{static[y]="PgNumericBigInt";precision;scale;constructor(o,T){super(o,T);this.precision=T.precision,this.scale=T.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}function TR(o,T){let{name:n,config:f}=So(o,T),S=f?.mode;return S==="number"?new et(n,f?.precision,f?.scale):S==="bigint"?new at(n,f?.precision,f?.scale):new ut(n,f?.precision,f?.scale)}class nR extends N{static[y]="PgPointTupleBuilder";constructor(o){super(o,"array","PgPointTuple")}build(o){return new fR(o,this.config)}}class fR extends V{static[y]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(o){if(typeof o==="string"){let[T,n]=o.slice(1,-1).split(",");return[Number.parseFloat(T),Number.parseFloat(n)]}return[o.x,o.y]}mapToDriverValue(o){return`(${o[0]},${o[1]})`}}class SR extends N{static[y]="PgPointObjectBuilder";constructor(o){super(o,"json","PgPointObject")}build(o){return new AR(o,this.config)}}class AR extends V{static[y]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(o){if(typeof o==="string"){let[T,n]=o.slice(1,-1).split(",");return{x:Number.parseFloat(T),y:Number.parseFloat(n)}}return o}mapToDriverValue(o){return`(${o.x},${o.y})`}}function $R(o,T){let{name:n,config:f}=So(o,T);if(!f?.mode||f.mode==="tuple")return new nR(n);return new SR(n)}function Fy(o){let T=[];for(let n=0;n<o.length;n+=2)T.push(Number.parseInt(o.slice(n,n+2),16));return new Uint8Array(T)}function FR(o,T){let n=new ArrayBuffer(8),f=new DataView(n);for(let S=0;S<8;S++)f.setUint8(S,o[T+S]);return f.getFloat64(0,!0)}function eA(o){let T=Fy(o),n=0,f=T[n];n+=1;let S=new DataView(T.buffer),A=S.getUint32(n,f===1);n+=4;let $;if(A&536870912)$=S.getUint32(n,f===1),n+=4;if((A&65535)===1){let F=FR(T,n);n+=8;let J=FR(T,n);return n+=8,[F,J]}throw new Error("Unsupported geometry type")}class JR extends N{static[y]="PgGeometryBuilder";constructor(o){super(o,"array","PgGeometry")}build(o){return new tR(o,this.config)}}class tR extends V{static[y]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(o){return eA(o)}mapToDriverValue(o){return`point(${o[0]} ${o[1]})`}}class RR extends N{static[y]="PgGeometryObjectBuilder";constructor(o){super(o,"json","PgGeometryObject")}build(o){return new MR(o,this.config)}}class MR extends V{static[y]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(o){let T=eA(o);return{x:T[0],y:T[1]}}mapToDriverValue(o){return`point(${o.x} ${o.y})`}}function yR(o,T){let{name:n,config:f}=So(o,T);if(!f?.mode||f.mode==="tuple")return new JR(n);return new RR(n)}class kR extends N{static[y]="PgRealBuilder";constructor(o,T){super(o,"number","PgReal");this.config.length=T}build(o){return new WR(o,this.config)}}class WR extends V{static[y]="PgReal";constructor(o,T){super(o,T)}getSQLType(){return"real"}mapFromDriverValue=(o)=>{if(typeof o==="string")return Number.parseFloat(o);return o}}function OR(o){return new kR(o??"")}class wR extends N{static[y]="PgSerialBuilder";constructor(o){super(o,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(o){return new _R(o,this.config)}}class _R extends V{static[y]="PgSerial";getSQLType(){return"serial"}}function XR(o){return new wR(o??"")}class HR extends sT{static[y]="PgSmallIntBuilder";constructor(o){super(o,"number","PgSmallInt")}build(o){return new KR(o,this.config)}}class KR extends V{static[y]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(o)=>{if(typeof o==="string")return Number(o);return o}}function ER(o){return new HR(o??"")}class GR extends N{static[y]="PgSmallSerialBuilder";constructor(o){super(o,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(o){return new YR(o,this.config)}}class YR extends V{static[y]="PgSmallSerial";getSQLType(){return"smallserial"}}function zR(o){return new GR(o??"")}class DR extends N{static[y]="PgTextBuilder";constructor(o,T){super(o,"string","PgText");this.config.enumValues=T.enum}build(o){return new QR(o,this.config)}}class QR extends V{static[y]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function UR(o,T={}){let{name:n,config:f}=So(o,T);return new DR(n,f)}class VR extends pT{constructor(o,T,n){super(o,"string","PgTime");this.withTimezone=T,this.precision=n,this.config.withTimezone=T,this.config.precision=n}static[y]="PgTimeBuilder";build(o){return new US(o,this.config)}}class US extends V{static[y]="PgTime";withTimezone;precision;constructor(o,T){super(o,T);this.withTimezone=T.withTimezone,this.precision=T.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function BR(o,T={}){let{name:n,config:f}=So(o,T);return new VR(n,f.withTimezone??!1,f.precision)}class mR extends pT{static[y]="PgTimestampBuilder";constructor(o,T,n){super(o,"date","PgTimestamp");this.config.withTimezone=T,this.config.precision=n}build(o){return new VS(o,this.config)}}class VS extends V{static[y]="PgTimestamp";withTimezone;precision;constructor(o,T){super(o,T);this.withTimezone=T.withTimezone,this.precision=T.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(o)=>{return new Date(this.withTimezone?o:o+"+0000")};mapToDriverValue=(o)=>{return o.toISOString()}}class LR extends pT{static[y]="PgTimestampStringBuilder";constructor(o,T,n){super(o,"string","PgTimestampString");this.config.withTimezone=T,this.config.precision=n}build(o){return new BS(o,this.config)}}class BS extends V{static[y]="PgTimestampString";withTimezone;precision;constructor(o,T){super(o,T);this.withTimezone=T.withTimezone,this.precision=T.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function DT(o,T={}){let{name:n,config:f}=So(o,T);if(f?.mode==="string")return new LR(n,f.withTimezone??!1,f.precision);return new mR(n,f?.withTimezone??!1,f?.precision)}class CR extends N{static[y]="PgUUIDBuilder";constructor(o){super(o,"string","PgUUID")}defaultRandom(){return this.default(k`gen_random_uuid()`)}build(o){return new mS(o,this.config)}}class mS extends V{static[y]="PgUUID";getSQLType(){return"uuid"}}function RT(o){return new CR(o??"")}class IR extends N{static[y]="PgVarcharBuilder";constructor(o,T){super(o,"string","PgVarchar");this.config.length=T.length,this.config.enumValues=T.enum}build(o){return new jR(o,this.config)}}class jR extends V{static[y]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function po(o,T={}){let{name:n,config:f}=So(o,T);return new IR(n,f)}class hR extends N{static[y]="PgBinaryVectorBuilder";constructor(o,T){super(o,"string","PgBinaryVector");this.config.dimensions=T.dimensions}build(o){return new NR(o,this.config)}}class NR extends V{static[y]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function bR(o,T){let{name:n,config:f}=So(o,T);return new hR(n,f)}class xR extends N{static[y]="PgHalfVectorBuilder";constructor(o,T){super(o,"array","PgHalfVector");this.config.dimensions=T.dimensions}build(o){return new vR(o,this.config)}}class vR extends V{static[y]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(o){return JSON.stringify(o)}mapFromDriverValue(o){return o.slice(1,-1).split(",").map((T)=>Number.parseFloat(T))}}function rR(o,T){let{name:n,config:f}=So(o,T);return new xR(n,f)}class qR extends N{static[y]="PgSparseVectorBuilder";constructor(o,T){super(o,"string","PgSparseVector");this.config.dimensions=T.dimensions}build(o){return new pR(o,this.config)}}class pR extends V{static[y]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function cR(o,T){let{name:n,config:f}=So(o,T);return new qR(n,f)}class ZR extends N{static[y]="PgVectorBuilder";constructor(o,T){super(o,"array","PgVector");this.config.dimensions=T.dimensions}build(o){return new PR(o,this.config)}}class PR extends V{static[y]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(o){return JSON.stringify(o)}mapFromDriverValue(o){return o.slice(1,-1).split(",").map((T)=>Number.parseFloat(T))}}function iR(o,T){let{name:n,config:f}=So(o,T);return new ZR(n,f)}function gR(){return{bigint:St,bigserial:tt,boolean:Bf,char:Wt,cidr:_t,customType:Kt,date:Yt,doublePrecision:Qt,inet:Bt,integer:YS,interval:jt,json:Nt,jsonb:xt,line:ct,macaddr:it,macaddr8:lt,numeric:TR,point:$R,geometry:yR,real:OR,serial:XR,smallint:ER,smallserial:zR,text:UR,time:BR,timestamp:DT,uuid:RT,varchar:po,bit:bR,halfvec:rR,sparsevec:cR,vector:iR}}var sA=Symbol.for("drizzle:PgInlineForeignKeys"),dR=Symbol.for("drizzle:EnableRLS");class co extends I{static[y]="PgTable";static Symbol=Object.assign({},I.Symbol,{InlineForeignKeys:sA,EnableRLS:dR});[sA]=[];[dR]=!1;[I.Symbol.ExtraConfigBuilder]=void 0;[I.Symbol.ExtraConfigColumns]={}}function Jy(o,T,n,f,S=o){let A=new co(o,f,S),$=typeof T==="function"?T(gR()):T,F=Object.fromEntries(Object.entries($).map(([R,W])=>{let O=W;O.setName(R);let _=O.build(A);return A[sA].push(...O.buildForeignKeys(_,A)),[R,_]})),J=Object.fromEntries(Object.entries($).map(([R,W])=>{let O=W;O.setName(R);let _=O.buildExtraConfigColumn(A);return[R,_]})),t=Object.assign(A,F);if(t[I.Symbol.Columns]=F,t[I.Symbol.ExtraConfigColumns]=J,n)t[co.Symbol.ExtraConfigBuilder]=n;return Object.assign(t,{enableRLS:()=>{return t[co.Symbol.EnableRLS]=!0,t}})}var aT=(o,T,n)=>{return Jy(o,T,n,void 0)};function lR(...o){if(o[0].columns)return new mf(o[0].columns,o[0].name);return new mf(o)}class mf{static[y]="PgPrimaryKeyBuilder";columns;name;constructor(o,T){this.columns=o,this.name=T}build(o){return new uR(o,this.columns,this.name)}}class uR{constructor(o,T,n){this.table=o,this.columns=T,this.name=n}static[y]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[co.Symbol.Name]}_${this.columns.map((o)=>o.name).join("_")}_pk`}}class aA{constructor(o,T,n){this.sourceTable=o,this.referencedTable=T,this.relationName=n,this.referencedTableName=T[I.Symbol.Name]}static[y]="Relation";referencedTableName;fieldName}class eR{constructor(o,T){this.table=o,this.config=T}static[y]="Relations"}class on extends aA{constructor(o,T,n,f){super(o,T,n?.relationName);this.config=n,this.isNullable=f}static[y]="One";withFieldName(o){let T=new on(this.sourceTable,this.referencedTable,this.config,this.isNullable);return T.fieldName=o,T}}class Lf extends aA{constructor(o,T,n){super(o,T,n?.relationName);this.config=n}static[y]="Many";withFieldName(o){let T=new Lf(this.sourceTable,this.referencedTable,this.config);return T.fieldName=o,T}}function sR(){return{and:Uf,between:qJ,eq:HS,exists:vJ,gt:LJ,gte:CJ,ilike:PJ,inArray:hJ,isNull:bJ,isNotNull:xJ,like:cJ,lt:IJ,lte:jJ,ne:VJ,not:mJ,notBetween:pJ,notExists:rJ,notLike:ZJ,notIlike:iJ,notInArray:NJ,or:BJ,sql:k}}function aR(){return{sql:k,asc:gJ,desc:dJ}}function o0(o,T){if(Object.keys(o).length===1&&"default"in o&&!X(o.default,I))o=o.default;let n={},f={},S={};for(let[A,$]of Object.entries(o))if(X($,I)){let F=kn($),J=f[F];n[F]=A,S[A]={tsName:A,dbName:$[I.Symbol.Name],schema:$[I.Symbol.Schema],columns:$[I.Symbol.Columns],relations:J?.relations??{},primaryKey:J?.primaryKey??[]};for(let R of Object.values($[I.Symbol.Columns]))if(R.primary)S[A].primaryKey.push(R);let t=$[I.Symbol.ExtraConfigBuilder]?.($[I.Symbol.ExtraConfigColumns]);if(t){for(let R of Object.values(t))if(X(R,mf))S[A].primaryKey.push(...R.columns)}}else if(X($,eR)){let F=kn($.table),J=n[F],t=$.config(T($.table)),R;for(let[W,O]of Object.entries(t))if(J){let _=S[J];if(_.relations[W]=O,R)_.primaryKey.push(...R)}else{if(!(F in f))f[F]={relations:{},primaryKey:R};f[F].relations[W]=O}}return{tables:S,tableNamesMap:n}}function ty(o){return function T(n,f){return new on(o,n,f,f?.fields.reduce((S,A)=>S&&A.notNull,!0)??!1)}}function Ry(o){return function T(n,f){return new Lf(o,n,f)}}function T0(o,T,n){if(X(n,on)&&n.config)return{fields:n.config.fields,references:n.config.references};let f=T[kn(n.referencedTable)];if(!f)throw new Error(`Table "${n.referencedTable[I.Symbol.Name]}" not found in schema`);let S=o[f];if(!S)throw new Error(`Table "${f}" not found in schema`);let A=n.sourceTable,$=T[kn(A)];if(!$)throw new Error(`Table "${A[I.Symbol.Name]}" not found in schema`);let F=[];for(let J of Object.values(S.relations))if(n.relationName&&n!==J&&J.relationName===n.relationName||!n.relationName&&J.referencedTable===n.sourceTable)F.push(J);if(F.length>1)throw n.relationName?new Error(`There are multiple relations with name "${n.relationName}" in table "${f}"`):new Error(`There are multiple relations between "${f}" and "${n.sourceTable[I.Symbol.Name]}". Please specify relation name`);if(F[0]&&X(F[0],on)&&F[0].config)return{fields:F[0].config.references,references:F[0].config.fields};throw new Error(`There is not enough information to infer relation "${$}.${n.fieldName}"`)}function n0(o){return{one:ty(o),many:Ry(o)}}function LS(o,T,n,f,S=(A)=>A){let A={};for(let[$,F]of f.entries())if(F.isJson){let J=T.relations[F.tsKey],t=n[$],R=typeof t==="string"?JSON.parse(t):t;A[F.tsKey]=X(J,on)?R&&LS(o,o[F.relationTableTsKey],R,F.selection,S):R.map((W)=>LS(o,o[F.relationTableTsKey],W,F.selection,S))}else{let J=S(n[$]),t=F.field,R;if(X(t,Wo))R=t;else if(X(t,j))R=t.decoder;else R=t.sql.decoder;A[F.tsKey]=J===null?null:R.mapFromDriverValue(J)}return A}import jy from"node:os";import hy from"node:fs";var CS=new Map,o$=new Map,T$=Symbol("OriginError"),gn={};class wT extends Promise{constructor(o,T,n,f,S={}){let A,$;super((F,J)=>{A=F,$=J});this.tagged=Array.isArray(o.raw),this.strings=o,this.args=T,this.handler=n,this.canceller=f,this.options=S,this.state=null,this.statement=null,this.resolve=(F)=>(this.active=!1,A(F)),this.reject=(F)=>(this.active=!1,$(F)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[T$]=this.handler.debug?new Error:this.tagged&&My(this.strings)}get origin(){return(this.handler.debug?this[T$].stack:this.tagged&&o$.has(this.strings)?o$.get(this.strings):o$.set(this.strings,this[T$].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(o=1,T){if(this.options.simple=!1,typeof o==="function")T=o,o=1;if(this.cursorRows=o,typeof T==="function")return this.cursorFn=T,this;let n;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};n&&n();let f=new Promise((S,A)=>{this.cursorFn=($)=>{return S({value:$,done:!1}),new Promise((F)=>n=F)},this.resolve=()=>(this.active=!1,S({done:!0})),this.reject=($)=>(this.active=!1,A($))});return this.execute(),f},return(){return n&&n(gn),{done:!0}}})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw new Error(".stream has been renamed to .forEach")}forEach(o){return this.forEachFn=o,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}}function My(o){if(CS.has(o))return CS.get(o);let T=Error.stackTraceLimit;return Error.stackTraceLimit=4,CS.set(o,new Error),Error.stackTraceLimit=T,CS.get(o)}class dn extends Error{constructor(o){super(o.message);this.name=this.constructor.name,Object.assign(this,o)}}var Bo={connection:f0,postgres:S0,generic:A0,notSupported:$0};function f0(o,T,n){let{host:f,port:S}=n||T,A=Object.assign(new Error("write "+o+" "+(T.path||f+":"+S)),{code:o,errno:o,address:T.path||f},T.path?{}:{port:S});return Error.captureStackTrace(A,f0),A}function S0(o){let T=new dn(o);return Error.captureStackTrace(T,S0),T}function A0(o,T){let n=Object.assign(new Error(o+": "+T),{code:o});return Error.captureStackTrace(n,A0),n}function $0(o){let T=Object.assign(new Error(o+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:o});return Error.captureStackTrace(T,$0),T}var yy={string:{to:25,from:null,serialize:(o)=>""+o},number:{to:0,from:[21,23,26,700,701],serialize:(o)=>""+o,parse:(o)=>+o},json:{to:114,from:[114,3802],serialize:(o)=>JSON.stringify(o),parse:(o)=>JSON.parse(o)},boolean:{to:16,from:16,serialize:(o)=>o===!0?"t":"f",parse:(o)=>o==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(o)=>(o instanceof Date?o:new Date(o)).toISOString(),parse:(o)=>new Date(o)},bytea:{to:17,from:17,serialize:(o)=>"\\x"+Buffer.from(o).toString("hex"),parse:(o)=>Buffer.from(o.slice(2),"hex")}};class hS{then(){n$()}catch(){n$()}finally(){n$()}}class hf extends hS{constructor(o){super();this.value=xS(o)}}class CT extends hS{constructor(o,T,n){super();this.value=o,this.type=T,this.array=n}}class NS extends hS{constructor(o,T){super();this.first=o,this.rest=T}build(o,T,n,f){let S=ky.map(([A,$])=>({fn:$,i:o.search(A)})).sort((A,$)=>A.i-$.i).pop();return S.i===-1?F$(this.first,f):S.fn(this.first,this.rest,T,n,f)}}function bS(o,T,n,f){let S=o instanceof CT?o.value:o;if(S===void 0){if(o instanceof CT?o.value=f.transform.undefined:S=o=f.transform.undefined,S===void 0)throw Bo.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+n.push(o instanceof CT?(T.push(o.value),o.array?o.array[o.type||jS(o.value)]||o.type||R0(o.value):o.type):(T.push(o),jS(o)))}var J0=y0(yy);function A$(o,T,n,f,S,A){for(let $=1;$<o.strings.length;$++)T+=$$(T,n,f,S,A)+o.strings[$],n=o.args[$];return T}function $$(o,T,n,f,S){return T instanceof NS?T.build(o,n,f,S):T instanceof wT?S$(T,n,f,S):T instanceof hf?T.value:T&&T[0]instanceof wT?T.reduce((A,$)=>A+" "+S$($,n,f,S),""):bS(T,n,f,S)}function S$(o,T,n,f){return o.fragment=!0,A$(o,o.strings[0],o.args[0],T,n,f)}function t0(o,T,n,f,S){return o.map((A)=>"("+f.map(($)=>$$("values",A[$],T,n,S)).join(",")+")").join(",")}function F0(o,T,n,f,S){let A=Array.isArray(o[0]),$=T.length?T.flat():Object.keys(A?o[0]:o);return t0(A?o:[o],n,f,$,S)}function IS(o,T,n,f,S){if(typeof o==="string"&&(o=[o].concat(T)),Array.isArray(o))return F$(o,S);let A;return(T.length?T.flat():Object.keys(o)).map((F)=>{return A=o[F],(A instanceof wT?S$(A,n,f,S):A instanceof hf?A.value:bS(A,n,f,S))+" as "+xS(S.transform.column.to?S.transform.column.to(F):F)}).join(",")}var ky=Object.entries({values:F0,in:(...o)=>{let T=F0(...o);return T==="()"?"(null)":T},select:IS,as:IS,returning:IS,"\\(":IS,update(o,T,n,f,S){return(T.length?T.flat():Object.keys(o)).map((A)=>xS(S.transform.column.to?S.transform.column.to(A):A)+"="+$$("values",o[A],n,f,S))},insert(o,T,n,f,S){let A=T.length?T.flat():Object.keys(Array.isArray(o)?o[0]:o);return"("+F$(A,S)+")values"+t0(Array.isArray(o)?o:[o],n,f,A,S)}}).map(([o,T])=>[new RegExp("((?:^|[\\s(])"+o+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),T]);function n$(){throw Bo.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:Wy,parsers:Oy}=J0;function R0(o){if(Array.isArray(o))return R0(o[0]);return typeof o==="string"?1009:0}var M0=function(o){let T=y0(o||{});return{serializers:Object.assign({},Wy,T.serializers),parsers:Object.assign({},Oy,T.parsers)}};function y0(o){return Object.keys(o).reduce((T,n)=>{if(o[n].from&&[].concat(o[n].from).forEach((f)=>T.parsers[f]=o[n].parse),o[n].serialize)T.serializers[o[n].to]=o[n].serialize,o[n].from&&[].concat(o[n].from).forEach((f)=>T.serializers[f]=o[n].serialize);return T},{parsers:{},serializers:{}})}function F$(o,{transform:{column:T}}){return o.map((n)=>xS(T.to?T.to(n):n)).join(",")}var xS=function o(T){return'"'+T.replace(/"/g,'""').replace(/\./g,'"."')+'"'},jS=function o(T){return T instanceof CT?T.type:T instanceof Date?1184:T instanceof Uint8Array?17:T===!0||T===!1?16:typeof T==="bigint"?20:Array.isArray(T)?o(T[0]):0},wy=/\\/g,_y=/"/g;function Xy(o){return o.replace(wy,"\\\\").replace(_y,"\\\"")}var k0=function o(T,n,f,S){if(Array.isArray(T)===!1)return T;if(!T.length)return"{}";let A=T[0],$=S===1020?";":",";if(Array.isArray(A)&&!A.type)return"{"+T.map((F)=>o(F,n,f,S)).join($)+"}";return"{"+T.map((F)=>{if(F===void 0){if(F=f.transform.undefined,F===void 0)throw Bo.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return F===null?"null":'"'+Xy(n?n(F.type?F.value:F):""+F)+'"'}).join($)+"}"},f$={i:0,char:null,str:"",quoted:!1,last:0},W0=function o(T,n,f){return f$.i=f$.last=0,O0(f$,T,n,f)};function O0(o,T,n,f){let S=[],A=f===1020?";":",";for(;o.i<T.length;o.i++){if(o.char=T[o.i],o.quoted)if(o.char==="\\")o.str+=T[++o.i];else if(o.char==='"')S.push(n?n(o.str):o.str),o.str="",o.quoted=T[o.i+1]==='"',o.last=o.i+2;else o.str+=o.char;else if(o.char==='"')o.quoted=!0;else if(o.char==="{")o.last=++o.i,S.push(O0(o,T,n,f));else if(o.char==="}"){o.quoted=!1,o.last<o.i&&S.push(n?n(T.slice(o.last,o.i)):T.slice(o.last,o.i)),o.last=o.i+1;break}else if(o.char===A&&o.p!=="}"&&o.p!=='"')S.push(n?n(T.slice(o.last,o.i)):T.slice(o.last,o.i)),o.last=o.i+1;o.p=o.char}return o.last<o.i&&S.push(n?n(T.slice(o.last,o.i+1)):T.slice(o.last,o.i+1)),S}var Wn=(o)=>{let T=o[0];for(let n=1;n<o.length;n++)T+=o[n]==="_"?o[++n].toUpperCase():o[n];return T},On=(o)=>{let T=o[0].toUpperCase();for(let n=1;n<o.length;n++)T+=o[n]==="_"?o[++n].toUpperCase():o[n];return T},wn=(o)=>o.replace(/_/g,"-"),Cf=(o)=>o.replace(/([A-Z])/g,"_$1").toLowerCase(),If=(o)=>(o.slice(0,1)+o.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),jf=(o)=>o.replace(/-/g,"_");function J$(o){return function T(n,f){return typeof n==="object"&&n!==null&&(f.type===114||f.type===3802)?Array.isArray(n)?n.map((S)=>T(S,f)):Object.entries(n).reduce((S,[A,$])=>Object.assign(S,{[o(A)]:T($,f)}),{}):n}}Wn.column={from:Wn};Wn.value={from:J$(Wn)};Cf.column={to:Cf};var t$={...Wn};t$.column.to=Cf;On.column={from:On};On.value={from:J$(On)};If.column={to:If};var R$={...On};R$.column.to=If;wn.column={from:wn};wn.value={from:J$(wn)};jf.column={to:jf};var M$={...wn};M$.column.to=jf;import w0 from"node:net";import Gy from"node:tls";import Nf from"node:crypto";import y$ from"node:stream";import{performance as _0}from"node:perf_hooks";class _n extends Array{constructor(){super();Object.defineProperties(this,{count:{value:null,writable:!0},state:{value:null,writable:!0},command:{value:null,writable:!0},columns:{value:null,writable:!0},statement:{value:null,writable:!0}})}static get[Symbol.species](){return Array}}var MT=Hy;function Hy(o=[]){let T=o.slice(),n=0;return{get length(){return T.length-n},remove:(f)=>{let S=T.indexOf(f);return S===-1?null:(T.splice(S,1),f)},push:(f)=>(T.push(f),f),shift:()=>{let f=T[n++];if(n===T.length)n=0,T=[];else T[n-1]=void 0;return f}}}var eo=Buffer.allocUnsafe(256),Ky="BCcDdEFfHPpQSX".split("").reduce((o,T)=>{let n=T.charCodeAt(0);return o[T]=()=>{return eo[0]=n,yo.i=5,yo},o},{}),yo=Object.assign(Ey,Ky,{N:String.fromCharCode(0),i:0,inc(o){return yo.i+=o,yo},str(o){let T=Buffer.byteLength(o);return vS(T),yo.i+=eo.write(o,yo.i,T,"utf8"),yo},i16(o){return vS(2),eo.writeUInt16BE(o,yo.i),yo.i+=2,yo},i32(o,T){if(T||T===0)return eo.writeUInt32BE(o,T),yo;return vS(4),eo.writeUInt32BE(o,yo.i),yo.i+=4,yo},z(o){return vS(o),eo.fill(0,yo.i,yo.i+o),yo.i+=o,yo},raw(o){return eo=Buffer.concat([eo.subarray(0,yo.i),o]),yo.i=eo.length,yo},end(o=1){eo.writeUInt32BE(yo.i-o,o);let T=eo.subarray(0,yo.i);return yo.i=0,eo=Buffer.allocUnsafe(256),T}}),c=yo;function vS(o){if(eo.length-yo.i<o){let T=eo,n=T.length;eo=Buffer.allocUnsafe(n+(n>>1)+o),T.copy(eo)}}function Ey(){return yo.i=0,yo}var O$=K0,Yy=1,Tn=c().S().end(),X0=c().H().end(),zy=c().i32(8).i32(80877103).end(8),Dy=Buffer.concat([c().E().str(c.N).i32(0).end(),Tn]),Qy=c().D().str("S").str(c.N).end(),ln=()=>{},Uy=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),Vy={83:"severity_local",86:"severity",67:"code",77:"message",68:"detail",72:"hint",80:"position",112:"internal_position",113:"internal_query",87:"where",115:"schema_name",116:"table_name",99:"column_name",100:"data type_name",110:"constraint_name",70:"file",76:"line",82:"routine"};function K0(o,T={},{onopen:n=ln,onend:f=ln,onclose:S=ln}={}){let{ssl:A,max:$,user:F,host:J,port:t,database:R,parsers:W,transform:O,onnotice:_,onnotify:Q,onparameter:H,max_pipeline:m,keep_alive:b,backoff:r,target_session_attrs:P}=o,E=MT(),z=Yy++,U={pid:null,secret:null},D=W$(sS,o.idle_timeout),v=W$(sS,o.max_lifetime),l=W$(p0,o.connect_timeout),K=null,s,q=new _n,a=Buffer.alloc(0),ko=o.fetch_types,mo={},nT={},IT=Math.random().toString(36).slice(2),G=1,p=0,Fo=0,Go=0,Lo=0,To=0,wo=0,Vo=0,Yo=null,Ho=null,Zo=!1,_o=null,_T=null,Po=null,cT=null,Co=null,Ko=null,XT=null,QT=null,B=null,an=null,io={queue:T.closed,idleTimer:D,connect(M){Po=M||!0,p$()},terminate:Tf,execute:of,cancel:x0,end:sS,count:0,id:z};return T.closed&&T.closed.push(io),io;async function b0(){let M;try{M=o.socket?await Promise.resolve(o.socket(o)):new w0.Socket}catch(w){En(w);return}return M.on("error",En),M.on("close",c$),M.on("drain",r$),M}async function x0({pid:M,secret:w},Z,Jo){try{s=c().i32(16).i32(80877102).i32(M).i32(w).end(16),await q$(),K.once("error",Jo),K.once("close",Z)}catch(Do){Jo(Do)}}function of(M){if(Zo)return cf(M,Bo.connection("CONNECTION_DESTROYED",o));if(M.cancelled)return;try{return M.state=U,B?E.push(M):(B=M,B.active=!0),q0(M),ro(v0(M))&&!M.describeFirst&&!M.cursorFn&&E.length<m&&(!M.options.onexecute||M.options.onexecute(io))}catch(w){return E.length===0&&ro(Tn),UT(w),!0}}function v0(M){if(M.parameters.length>=65534)throw Bo.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return M.options.simple?c().Q().str(M.statement.string+c.N).end():M.describeFirst?Buffer.concat([b$(M),X0]):M.prepare?M.prepared?pf(M):Buffer.concat([b$(M),pf(M)]):r0(M)}function b$(M){return Buffer.concat([P$(M.statement.string,M.parameters,M.statement.types,M.statement.name),QM("S",M.statement.name)])}function pf(M){return Buffer.concat([DM(M.parameters,M.statement.types,M.statement.name,M.cursorName),M.cursorFn?i$("",M.cursorRows):Dy])}function r0(M){return Buffer.concat([P$(M.statement.string,M.parameters,M.statement.types),Qy,pf(M)])}function q0(M){let w=[],Z=[],Jo=A$(M,M.strings[0],M.args[0],w,Z,o);!M.tagged&&M.args.forEach((Do)=>bS(Do,w,Z,o)),M.prepare=o.prepare&&("prepare"in M.options?M.options.prepare:!0),M.string=Jo,M.signature=M.prepare&&Z+Jo,M.onlyDescribe&&delete nT[M.signature],M.parameters=M.parameters||w,M.prepared=M.prepare&&M.signature in nT,M.describeFirst=M.onlyDescribe||w.length&&!M.prepared,M.statement=M.prepared?nT[M.signature]:{string:Jo,types:Z,name:M.prepare?IT+G++:""},typeof o.debug==="function"&&o.debug(z,Jo,w,Z)}function ro(M,w){if(Ko=Ko?Buffer.concat([Ko,M]):Buffer.from(M),w||Ko.length>=1024)return x$(w);return Ho===null&&(Ho=setImmediate(x$)),!0}function x$(M){let w=K.write(Ko,M);return Ho!==null&&clearImmediate(Ho),Ko=Ho=null,w}function p0(){UT(Bo.connection("CONNECT_TIMEOUT",o,K)),K.destroy()}async function v$(){if(ro(zy),!await new Promise((w)=>K.once("data",(Z)=>w(Z[0]===83)))&&A==="prefer")return Kn();K.removeAllListeners(),K=Gy.connect({socket:K,servername:w0.isIP(K.host)?void 0:K.host,...A==="require"||A==="allow"||A==="prefer"?{rejectUnauthorized:!1}:A==="verify-full"?{}:typeof A==="object"?A:{}}),K.on("secureConnect",Kn),K.on("error",En),K.on("close",c$),K.on("drain",r$)}function r$(){!B&&n(io)}function eS(M){if(_o){if(_o.push(M),Fo-=M.length,Fo>=0)return}a=_o?Buffer.concat(_o,To-Fo):a.length===0?M:Buffer.concat([a,M],a.length+M.length);while(a.length>4){if(To=a.readUInt32BE(1),To>=a.length){Fo=To-a.length,_o=[a];break}try{c0(a.subarray(0,To+1))}catch(w){B&&(B.cursorFn||B.describeFirst)&&ro(Tn),UT(w)}a=a.subarray(To+1),Fo=0,_o=null}}async function q$(){if(Zo=!1,mo={},K||(K=await b0()),!K)return;if(l.start(),o.socket)return A?v$():Kn();if(K.on("connect",A?v$:Kn),o.path)return K.connect(o.path);K.ssl=A,K.connect(t[Go],J[Go]),K.host=J[Go],K.port=t[Go],Go=(Go+1)%t.length}function p$(){setTimeout(q$,p?p+wo-_0.now():0)}function Kn(){try{nT={},ko=o.fetch_types,IT=Math.random().toString(36).slice(2),G=1,v.start(),K.on("data",eS),b&&K.setKeepAlive&&K.setKeepAlive(!0,1000*b);let M=VM();ro(M)}catch(M){En(M)}}function En(M){if(io.queue===T.connecting&&o.host[Lo+1])return;UT(M);while(E.length)cf(E.shift(),M)}function UT(M){Co&&(Co.destroy(M),Co=null),B&&cf(B,M),Po&&(cf(Po,M),Po=null)}function cf(M,w){"query"in w||"parameters"in w||Object.defineProperties(w,{stack:{value:w.stack+M.origin.replace(/.*\n/,`
17
+ `),enumerable:o.debug},query:{value:M.string,enumerable:o.debug},parameters:{value:M.parameters,enumerable:o.debug},args:{value:M.args,enumerable:o.debug},types:{value:M.statement&&M.statement.types,enumerable:o.debug}}),M.reject(w)}function sS(){return cT||(!io.reserved&&f(io),!io.reserved&&!Po&&!B&&E.length===0?(Tf(),new Promise((M)=>K&&K.readyState!=="closed"?K.once("close",M):M())):cT=new Promise((M)=>XT=M))}function Tf(){if(Zo=!0,Co||B||Po||E.length)En(Bo.connection("CONNECTION_DESTROYED",o));if(clearImmediate(Ho),K)K.removeListener("data",eS),K.removeListener("connect",Kn),K.readyState==="open"&&K.end(c().X().end());XT&&(XT(),cT=XT=null)}async function c$(M){if(a=Buffer.alloc(0),Fo=0,_o=null,clearImmediate(Ho),K.removeListener("data",eS),K.removeListener("connect",Kn),D.cancel(),v.cancel(),l.cancel(),K.removeAllListeners(),K=null,Po)return p$();!M&&(B||E.length)&&En(Bo.connection("CONNECTION_CLOSED",o,K)),p=_0.now(),M&&o.shared.retries++,wo=(typeof r==="function"?r(o.shared.retries):r)*1000,S(io,Bo.connection("CONNECTION_CLOSED",o,K))}function c0(M,w=M[0]){(w===68?Z0:w===100?_M:w===65?MM:w===83?P0:w===90?i0:w===67?g0:w===50?Z$:w===49?d0:w===116?l0:w===84?u0:w===82?e0:w===110?fM:w===75?SM:w===69?tM:w===115?yM:w===51?kM:w===71?WM:w===78?HM:w===72?OM:w===99?XM:w===73?KM:w===86?EM:w===118?GM:w===87?wM:YM)(M)}function Z0(M){let w=7,Z,Jo,Do,go=B.isRaw?new Array(B.statement.columns.length):{};for(let so=0;so<B.statement.columns.length;so++)Jo=B.statement.columns[so],Z=M.readInt32BE(w),w+=4,Do=Z===-1?null:B.isRaw===!0?M.subarray(w,w+=Z):Jo.parser===void 0?M.toString("utf8",w,w+=Z):Jo.parser.array===!0?Jo.parser(M.toString("utf8",w+1,w+=Z)):Jo.parser(M.toString("utf8",w,w+=Z)),B.isRaw?go[so]=B.isRaw===!0?Do:O.value.from?O.value.from(Do,Jo):Do:go[Jo.name]=O.value.from?O.value.from(Do,Jo):Do;B.forEachFn?B.forEachFn(O.row.from?O.row.from(go):go,q):q[Vo++]=O.row.from?O.row.from(go):go}function P0(M){let[w,Z]=M.toString("utf8",5,M.length-1).split(c.N);if(mo[w]=Z,o.parameters[w]!==Z)o.parameters[w]=Z,H&&H(w,Z)}function i0(M){if(B&&B.options.simple&&B.resolve(_T||q),B=_T=null,q=new _n,l.cancel(),Po){if(P){if(!mo.in_hot_standby||!mo.default_transaction_read_only)return JM();else if(FM(P,mo))return Tf()}if(ko)return Po===!0&&(Po=null),AM();Po!==!0&&of(Po),o.shared.retries=Lo=0,Po=null;return}while(E.length&&(B=E.shift())&&(B.active=!0,B.cancelled))K0(o).cancel(B.state,B.cancelled.resolve,B.cancelled.reject);if(B)return;io.reserved?!io.reserved.release&&M[5]===73?cT?Tf():(io.reserved=null,n(io)):io.reserved():cT?Tf():n(io)}function g0(M){Vo=0;for(let w=M.length-1;w>0;w--){if(M[w]===32&&M[w+1]<58&&q.count===null)q.count=+M.toString("utf8",w+1,M.length-1);if(M[w-1]>=65){q.command=M.toString("utf8",5,w),q.state=U;break}}if(an&&(an(),an=null),q.command==="BEGIN"&&$!==1&&!io.reserved)return UT(Bo.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(B.options.simple)return Z$();if(B.cursorFn)q.count&&B.cursorFn(q),ro(Tn);B.resolve(q)}function d0(){B.parsing=!1}function Z$(){!q.statement&&(q.statement=B.statement),q.columns=B.statement.columns}function l0(M){let w=M.readUInt16BE(5);for(let Z=0;Z<w;++Z)!B.statement.types[Z]&&(B.statement.types[Z]=M.readUInt32BE(7+Z*4));B.prepare&&(nT[B.signature]=B.statement),B.describeFirst&&!B.onlyDescribe&&(ro(pf(B)),B.describeFirst=!1)}function u0(M){if(q.command)_T=_T||[q],_T.push(q=new _n),q.count=null,B.statement.columns=null;let w=M.readUInt16BE(5),Z=7,Jo;B.statement.columns=Array(w);for(let Do=0;Do<w;++Do){Jo=Z;while(M[Z++]!==0);let go=M.readUInt32BE(Z),so=M.readUInt16BE(Z+4),ZT=M.readUInt32BE(Z+6);B.statement.columns[Do]={name:O.column.from?O.column.from(M.toString("utf8",Jo,Z-1)):M.toString("utf8",Jo,Z-1),parser:W[ZT],table:go,number:so,type:ZT},Z+=18}if(q.statement=B.statement,B.onlyDescribe)return B.resolve(B.statement),ro(Tn)}async function e0(M,w=M.readUInt32BE(5)){(w===3?s0:w===5?a0:w===10?oM:w===11?TM:w===12?nM:w!==0?zM:ln)(M,w)}async function s0(){let M=await aS();ro(c().p().str(M).z(1).end())}async function a0(M){let w="md5"+await H0(Buffer.concat([Buffer.from(await H0(await aS()+F)),M.subarray(9)]));ro(c().p().str(w).z(1).end())}async function oM(){QT=(await Nf.randomBytes(18)).toString("base64"),c().p().str("SCRAM-SHA-256"+c.N);let M=c.i;ro(c.inc(4).str("n,,n=*,r="+QT).i32(c.i-M-4,M).end())}async function TM(M){let w=M.toString("utf8",9).split(",").reduce((so,ZT)=>(so[ZT[0]]=ZT.slice(2),so),{}),Z=await Nf.pbkdf2Sync(await aS(),Buffer.from(w.s,"base64"),parseInt(w.i),32,"sha256"),Jo=await rS(Z,"Client Key"),Do="n=*,r="+QT+",r="+w.r+",s="+w.s+",i="+w.i+",c=biws,r="+w.r;Yo=(await rS(await rS(Z,"Server Key"),Do)).toString("base64");let go="c=biws,r="+w.r+",p="+my(Jo,Buffer.from(await rS(await By(Jo),Do))).toString("base64");ro(c().p().str(go).end())}function nM(M){if(M.toString("utf8",9).split(c.N,1)[0].slice(2)===Yo)return;UT(Bo.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),K.destroy()}function aS(){return Promise.resolve(typeof o.pass==="function"?o.pass():o.pass)}function fM(){if(q.statement=B.statement,q.statement.columns=[],B.onlyDescribe)return B.resolve(B.statement),ro(Tn)}function SM(M){U.pid=M.readUInt32BE(5),U.secret=M.readUInt32BE(9)}async function AM(){ko=!1,(await new wT([`
18
18
  select b.oid, b.typarray
19
19
  from pg_catalog.pg_type a
20
20
  left join pg_catalog.pg_type b on b.oid = a.typelem
21
21
  where a.typcategory = 'A'
22
22
  group by b.oid, b.typarray
23
23
  order by b.oid
24
- `],[],af)).forEach(({oid:y,typarray:Z})=>TM(y,Z))}function TM(W,y){if(!!o.parsers[y]&&!!o.serializers[y])return;let Z=o.parsers[W];o.shared.typeArrayMap[W]=y,o.parsers[y]=(Jo)=>R1(Jo,Z,y),o.parsers[y].array=!0,o.serializers[y]=(Jo)=>J1(Jo,o.serializers[W],o,y)}function fM(W,y){return W==="read-write"&&y.default_transaction_read_only==="on"||W==="read-only"&&y.default_transaction_read_only==="off"||W==="primary"&&y.in_hot_standby==="on"||W==="standby"&&y.in_hot_standby==="off"||W==="prefer-standby"&&y.in_hot_standby==="off"&&o.host[Co]}function nM(){let W=new yT([`
24
+ `],[],of)).forEach(({oid:w,typarray:Z})=>$M(w,Z))}function $M(M,w){if(!!o.parsers[w]&&!!o.serializers[w])return;let Z=o.parsers[M];o.shared.typeArrayMap[M]=w,o.parsers[w]=(Jo)=>W0(Jo,Z,w),o.parsers[w].array=!0,o.serializers[w]=(Jo)=>k0(Jo,o.serializers[M],o,w)}function FM(M,w){return M==="read-write"&&w.default_transaction_read_only==="on"||M==="read-only"&&w.default_transaction_read_only==="off"||M==="primary"&&w.in_hot_standby==="on"||M==="standby"&&w.in_hot_standby==="off"||M==="prefer-standby"&&w.in_hot_standby==="off"&&o.host[Lo]}function JM(){let M=new wT([`
25
25
  show transaction_read_only;
26
26
  select pg_catalog.pg_is_in_recovery()
27
- `],[],af,null,{simple:!0});W.resolve=([[y],[Z]])=>{Lo.default_transaction_read_only=y.transaction_read_only,Lo.in_hot_standby=Z.pg_is_in_recovery?"on":"off"},W.execute()}function SM(W){B&&(B.cursorFn||B.describeFirst)&&ro(of);let y=Bo.postgres(W$(W));B&&B.retried?UT(B.retried):B&&B.prepared&&YO.has(y.routine)?AM(B,y):UT(y)}function AM(W,y){delete fT[W.signature],W.retried=y,af(W)}function $M(W){if(!D)return;let y=9;while(W[y++]!==0);D(W.toString("utf8",9,y-1),W.toString("utf8",y,W.length-1))}async function FM(){try{let W=await Promise.resolve(B.cursorFn(r));Vo=0,W===Pf?ro(YM(B.portal)):(r=new yf,ro(Z$("",B.cursorRows)))}catch(W){ro(of),B.reject(W)}}function JM(){r.count&&B.cursorFn(r),B.resolve(r)}function RM(){mo=new M$.Writable({autoDestroy:!0,write(W,y,Z){E.write(c().d().raw(W).end(),Z)},destroy(W,y){y(W),E.write(c().f().str(W+c.N).end()),mo=null},final(W){E.write(c().c().end()),sf=W}}),B.resolve(mo)}function MM(){mo=new M$.Readable({read(){E.resume()}}),B.resolve(mo)}function WM(){mo=new M$.Duplex({autoDestroy:!0,read(){E.resume()},write(W,y,Z){E.write(c().d().raw(W).end(),Z)},destroy(W,y){y(W),E.write(c().f().str(W+c.N).end()),mo=null},final(W){E.write(c().c().end()),sf=W}}),B.resolve(mo)}function OM(W){mo&&(mo.push(W.subarray(5))||E.pause())}function kM(){mo&&mo.push(null),mo=null}function _M(W){X?X(W$(W)):console.log(W$(W))}function wM(){}function yM(){UT(Bo.notSupported("FunctionCallResponse"))}function XM(){UT(Bo.notSupported("NegotiateProtocolVersion"))}function HM(W){console.error("Postgres.js : Unknown Message:",W[0])}function KM(W,y){console.error("Postgres.js : Unknown Auth:",y)}function EM(W,y,Z="",Jo=""){let Qo,go;return c().B().str(Jo+c.N).str(Z+c.N).i16(0).i16(W.length),W.forEach((so,ZT)=>{if(so===null)return c.i32(4294967295);go=y[ZT],W[ZT]=so=go in o.serializers?o.serializers[go](so):""+so,Qo=c.i,c.inc(4).str(so).i32(c.i-Qo-4,Qo)}),c.i16(0),c.end()}function c$(W,y,Z,Jo=""){return c().P().str(Jo+c.N).str(W+c.N).i16(y.length),y.forEach((Qo,go)=>c.i32(Z[go]||0)),c.end()}function GM(W,y=""){return c().D().str(W).str(y+c.N).end()}function Z$(W="",y=0){return Buffer.concat([c().E().str(W+c.N).i32(y).end(),k1])}function YM(W=""){return Buffer.concat([c().C().str("P").str(W+c.N).end(),c().S().end()])}function tM(){return s||c().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:F,database:M,client_encoding:"UTF8"},o.connection)).filter(([,W])=>W).map(([W,y])=>W+c.N+y).join(c.N)).z(2).end(0)}}function W$(o){let T={},f=5;for(let n=5;n<o.length-1;n++)if(o[n]===0)T[tO[o[f]]]=o.toString("utf8",f+1,n),f=n+1;return T}function _1(o){return Nn.createHash("md5").update(o).digest("hex")}function vS(o,T){return Nn.createHmac("sha256",o).update(T).digest()}function zO(o){return Nn.createHash("sha256").update(o).digest()}function QO(o,T){let f=Math.max(o.length,T.length),n=Buffer.allocUnsafe(f);for(let S=0;S<f;S++)n[S]=o[S]^T[S];return n}function O$(o,T){if(T=typeof T==="function"?T():T,!T)return{cancel:df,start:df};let f;return{cancel(){f&&(clearTimeout(f),f=null)},start(){f&&clearTimeout(f),f=setTimeout(n,T*1000,arguments)}};function n(S){o.apply(null,S),f=null}}var y1=()=>{};function _$(o,T){let f=new Map,n="postgresjs_"+Math.random().toString(36).slice(2),S={},A,$,F=!1,J=_.sql=o({...T,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...T.connection,replication:"database"},onclose:async function(){if(F)return;$=null,S.pid=S.secret=void 0,w(await X(J,n,T.publications)),f.forEach((K)=>K.forEach(({onsubscribe:L})=>L()))},no_subscribe:!0}),R=J.end,M=J.close;return J.end=async()=>{return F=!0,$&&await new Promise((K)=>($.once("close",K),$.end())),R()},J.close=async()=>{return $&&await new Promise((K)=>($.once("close",K),$.end())),M()},_;async function _(K,L,h=y1,q=y1){if(K=VO(K),!A)A=X(J,n,T.publications);let P={fn:L,onsubscribe:h},G=f.has(K)?f.get(K).add(P):f.set(K,new Set([P])).get(K),z=()=>{G.delete(P),G.size===0&&f.delete(K)};return A.then((U)=>{return w(U),h(),$&&$.on("error",q),{unsubscribe:z,state:S,sql:J}})}function w(K){$=K.stream,S.pid=K.state.pid,S.secret=K.state.secret}async function X(K,L,h){if(!h)throw new Error("Missing publication names");let q=await K.unsafe(`CREATE_REPLICATION_SLOT ${L} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[P]=q,G=await K.unsafe(`START_REPLICATION SLOT ${L} LOGICAL ${P.consistent_point} (proto_version '1', publication_names '${h}')`).writable(),z={lsn:Buffer.concat(P.consistent_point.split("/").map((E)=>Buffer.from(("00000000"+E).slice(-8),"hex")))};return G.on("data",Q),G.on("error",U),G.on("close",K.close),{stream:G,state:q.state};function U(E){console.error("Unexpected error during logical streaming - reconnecting",E)}function Q(E){if(E[0]===119)UO(E.subarray(25),z,K.options.parsers,v,T.transform);else if(E[0]===107&&E[17])z.lsn=E.subarray(1,9),l()}function v(E,s){let r=s.relation.schema+"."+s.relation.table;D("*",E,s),D("*:"+r,E,s),s.relation.keys.length&&D("*:"+r+"="+s.relation.keys.map((a)=>E[a.name]),E,s),D(s.command,E,s),D(s.command+":"+r,E,s),s.relation.keys.length&&D(s.command+":"+r+"="+s.relation.keys.map((a)=>E[a.name]),E,s)}function l(){let E=Buffer.alloc(34);E[0]=114,E.fill(z.lsn,1),E.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),G.write(E)}}function D(K,L,h){f.has(K)&&f.get(K).forEach(({fn:q})=>q(L,h,K))}}function DO(o){return new Date(Date.UTC(2000,0,1)+Number(o/BigInt(1000)))}function UO(o,T,f,n,S){let A=($,[F,J])=>($[F.charCodeAt(0)]=J,$);Object.entries({R:($)=>{let F=1,J=T[$.readUInt32BE(F)]={schema:$.toString("utf8",F+=4,F=$.indexOf(0,F))||"pg_catalog",table:$.toString("utf8",F+1,F=$.indexOf(0,F+1)),columns:Array($.readUInt16BE(F+=2)),keys:[]};F+=2;let R=0,M;while(F<$.length)M=J.columns[R++]={key:$[F++],name:S.column.from?S.column.from($.toString("utf8",F,F=$.indexOf(0,F))):$.toString("utf8",F,F=$.indexOf(0,F)),type:$.readUInt32BE(F+=1),parser:f[$.readUInt32BE(F)],atttypmod:$.readUInt32BE(F+=4)},M.key&&J.keys.push(M),F+=4},Y:()=>{},O:()=>{},B:($)=>{T.date=DO($.readBigInt64BE(9)),T.lsn=$.subarray(1,9)},I:($)=>{let F=1,J=T[$.readUInt32BE(F)],{row:R}=qS($,J.columns,F+=7,S);n(R,{command:"insert",relation:J})},D:($)=>{let F=1,J=T[$.readUInt32BE(F)];F+=4;let R=$[F]===75;n(R||$[F]===79?qS($,J.columns,F+=3,S).row:null,{command:"delete",relation:J,key:R})},U:($)=>{let F=1,J=T[$.readUInt32BE(F)];F+=4;let R=$[F]===75,M=R||$[F]===79?qS($,J.columns,F+=3,S):null;M&&(F=M.i);let{row:_}=qS($,J.columns,F+3,S);n(_,{command:"update",relation:J,key:R,old:M&&M.row})},T:()=>{},C:()=>{}}).reduce(A,{})[o[0]](o)}function qS(o,T,f,n){let S,A,$,F=n.raw?new Array(T.length):{};for(let J=0;J<T.length;J++)S=o[f++],A=T[J],$=S===110?null:S===117?void 0:A.parser===void 0?o.toString("utf8",f+4,f+=4+o.readUInt32BE(f)):A.parser.array===!0?A.parser(o.toString("utf8",f+5,f+=4+o.readUInt32BE(f))):A.parser(o.toString("utf8",f+4,f+=4+o.readUInt32BE(f))),n.raw?F[J]=n.raw===!0?$:n.value.from?n.value.from($,A):$:F[A.name]=n.value.from?n.value.from($,A):$;return{i:f,row:n.row.from?n.row.from(F):F}}function VO(o){let T=o.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!T)throw new Error("Malformed subscribe pattern: "+o);let[,f,n,S]=T;return(f||"*")+(n?":"+(n.indexOf(".")===-1?"public."+n:n):"")+(S?"="+S:"")}import X1 from"stream";function w$(o,T,f=393216){return new Promise(async(n,S)=>{await o.begin(async(A)=>{let $;!T&&([{oid:T}]=await A`select lo_creat(-1) as oid`);let[{fd:F}]=await A`select lo_open(${T}, ${f}) as fd`,J={writable:M,readable:R,close:()=>A`select lo_close(${F})`.then($),tell:()=>A`select lo_tell64(${F})`,read:(_)=>A`select loread(${F}, ${_}) as data`,write:(_)=>A`select lowrite(${F}, ${_})`,truncate:(_)=>A`select lo_truncate64(${F}, ${_})`,seek:(_,w=0)=>A`select lo_lseek64(${F}, ${_}, ${w})`,size:()=>A`
27
+ `],[],of,null,{simple:!0});M.resolve=([[w],[Z]])=>{mo.default_transaction_read_only=w.transaction_read_only,mo.in_hot_standby=Z.pg_is_in_recovery?"on":"off"},M.execute()}function tM(M){B&&(B.cursorFn||B.describeFirst)&&ro(Tn);let w=Bo.postgres(k$(M));B&&B.retried?UT(B.retried):B&&B.prepared&&Uy.has(w.routine)?RM(B,w):UT(w)}function RM(M,w){delete nT[M.signature],M.retried=w,of(M)}function MM(M){if(!Q)return;let w=9;while(M[w++]!==0);Q(M.toString("utf8",9,w-1),M.toString("utf8",w,M.length-1))}async function yM(){try{let M=await Promise.resolve(B.cursorFn(q));Vo=0,M===gn?ro(UM(B.portal)):(q=new _n,ro(i$("",B.cursorRows)))}catch(M){ro(Tn),B.reject(M)}}function kM(){q.count&&B.cursorFn(q),B.resolve(q)}function WM(){Co=new y$.Writable({autoDestroy:!0,write(M,w,Z){K.write(c().d().raw(M).end(),Z)},destroy(M,w){w(M),K.write(c().f().str(M+c.N).end()),Co=null},final(M){K.write(c().c().end()),an=M}}),B.resolve(Co)}function OM(){Co=new y$.Readable({read(){K.resume()}}),B.resolve(Co)}function wM(){Co=new y$.Duplex({autoDestroy:!0,read(){K.resume()},write(M,w,Z){K.write(c().d().raw(M).end(),Z)},destroy(M,w){w(M),K.write(c().f().str(M+c.N).end()),Co=null},final(M){K.write(c().c().end()),an=M}}),B.resolve(Co)}function _M(M){Co&&(Co.push(M.subarray(5))||K.pause())}function XM(){Co&&Co.push(null),Co=null}function HM(M){_?_(k$(M)):console.log(k$(M))}function KM(){}function EM(){UT(Bo.notSupported("FunctionCallResponse"))}function GM(){UT(Bo.notSupported("NegotiateProtocolVersion"))}function YM(M){console.error("Postgres.js : Unknown Message:",M[0])}function zM(M,w){console.error("Postgres.js : Unknown Auth:",w)}function DM(M,w,Z="",Jo=""){let Do,go;return c().B().str(Jo+c.N).str(Z+c.N).i16(0).i16(M.length),M.forEach((so,ZT)=>{if(so===null)return c.i32(4294967295);go=w[ZT],M[ZT]=so=go in o.serializers?o.serializers[go](so):""+so,Do=c.i,c.inc(4).str(so).i32(c.i-Do-4,Do)}),c.i16(0),c.end()}function P$(M,w,Z,Jo=""){return c().P().str(Jo+c.N).str(M+c.N).i16(w.length),w.forEach((Do,go)=>c.i32(Z[go]||0)),c.end()}function QM(M,w=""){return c().D().str(M).str(w+c.N).end()}function i$(M="",w=0){return Buffer.concat([c().E().str(M+c.N).i32(w).end(),X0])}function UM(M=""){return Buffer.concat([c().C().str("P").str(M+c.N).end(),c().S().end()])}function VM(){return s||c().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:F,database:R,client_encoding:"UTF8"},o.connection)).filter(([,M])=>M).map(([M,w])=>M+c.N+w).join(c.N)).z(2).end(0)}}function k$(o){let T={},n=5;for(let f=5;f<o.length-1;f++)if(o[f]===0)T[Vy[o[n]]]=o.toString("utf8",n+1,f),n=f+1;return T}function H0(o){return Nf.createHash("md5").update(o).digest("hex")}function rS(o,T){return Nf.createHmac("sha256",o).update(T).digest()}function By(o){return Nf.createHash("sha256").update(o).digest()}function my(o,T){let n=Math.max(o.length,T.length),f=Buffer.allocUnsafe(n);for(let S=0;S<n;S++)f[S]=o[S]^T[S];return f}function W$(o,T){if(T=typeof T==="function"?T():T,!T)return{cancel:ln,start:ln};let n;return{cancel(){n&&(clearTimeout(n),n=null)},start(){n&&clearTimeout(n),n=setTimeout(f,T*1000,arguments)}};function f(S){o.apply(null,S),n=null}}var E0=()=>{};function w$(o,T){let n=new Map,f="postgresjs_"+Math.random().toString(36).slice(2),S={},A,$,F=!1,J=W.sql=o({...T,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...T.connection,replication:"database"},onclose:async function(){if(F)return;$=null,S.pid=S.secret=void 0,O(await _(J,f,T.publications)),n.forEach((H)=>H.forEach(({onsubscribe:m})=>m()))},no_subscribe:!0}),t=J.end,R=J.close;return J.end=async()=>{return F=!0,$&&await new Promise((H)=>($.once("close",H),$.end())),t()},J.close=async()=>{return $&&await new Promise((H)=>($.once("close",H),$.end())),R()},W;async function W(H,m,b=E0,r=E0){if(H=Iy(H),!A)A=_(J,f,T.publications);let P={fn:m,onsubscribe:b},E=n.has(H)?n.get(H).add(P):n.set(H,new Set([P])).get(H),z=()=>{E.delete(P),E.size===0&&n.delete(H)};return A.then((U)=>{return O(U),b(),$&&$.on("error",r),{unsubscribe:z,state:S,sql:J}})}function O(H){$=H.stream,S.pid=H.state.pid,S.secret=H.state.secret}async function _(H,m,b){if(!b)throw new Error("Missing publication names");let r=await H.unsafe(`CREATE_REPLICATION_SLOT ${m} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[P]=r,E=await H.unsafe(`START_REPLICATION SLOT ${m} LOGICAL ${P.consistent_point} (proto_version '1', publication_names '${b}')`).writable(),z={lsn:Buffer.concat(P.consistent_point.split("/").map((K)=>Buffer.from(("00000000"+K).slice(-8),"hex")))};return E.on("data",D),E.on("error",U),E.on("close",H.close),{stream:E,state:r.state};function U(K){console.error("Unexpected error during logical streaming - reconnecting",K)}function D(K){if(K[0]===119)Cy(K.subarray(25),z,H.options.parsers,v,T.transform);else if(K[0]===107&&K[17])z.lsn=K.subarray(1,9),l()}function v(K,s){let q=s.relation.schema+"."+s.relation.table;Q("*",K,s),Q("*:"+q,K,s),s.relation.keys.length&&Q("*:"+q+"="+s.relation.keys.map((a)=>K[a.name]),K,s),Q(s.command,K,s),Q(s.command+":"+q,K,s),s.relation.keys.length&&Q(s.command+":"+q+"="+s.relation.keys.map((a)=>K[a.name]),K,s)}function l(){let K=Buffer.alloc(34);K[0]=114,K.fill(z.lsn,1),K.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),E.write(K)}}function Q(H,m,b){n.has(H)&&n.get(H).forEach(({fn:r})=>r(m,b,H))}}function Ly(o){return new Date(Date.UTC(2000,0,1)+Number(o/BigInt(1000)))}function Cy(o,T,n,f,S){let A=($,[F,J])=>($[F.charCodeAt(0)]=J,$);Object.entries({R:($)=>{let F=1,J=T[$.readUInt32BE(F)]={schema:$.toString("utf8",F+=4,F=$.indexOf(0,F))||"pg_catalog",table:$.toString("utf8",F+1,F=$.indexOf(0,F+1)),columns:Array($.readUInt16BE(F+=2)),keys:[]};F+=2;let t=0,R;while(F<$.length)R=J.columns[t++]={key:$[F++],name:S.column.from?S.column.from($.toString("utf8",F,F=$.indexOf(0,F))):$.toString("utf8",F,F=$.indexOf(0,F)),type:$.readUInt32BE(F+=1),parser:n[$.readUInt32BE(F)],atttypmod:$.readUInt32BE(F+=4)},R.key&&J.keys.push(R),F+=4},Y:()=>{},O:()=>{},B:($)=>{T.date=Ly($.readBigInt64BE(9)),T.lsn=$.subarray(1,9)},I:($)=>{let F=1,J=T[$.readUInt32BE(F)],{row:t}=qS($,J.columns,F+=7,S);f(t,{command:"insert",relation:J})},D:($)=>{let F=1,J=T[$.readUInt32BE(F)];F+=4;let t=$[F]===75;f(t||$[F]===79?qS($,J.columns,F+=3,S).row:null,{command:"delete",relation:J,key:t})},U:($)=>{let F=1,J=T[$.readUInt32BE(F)];F+=4;let t=$[F]===75,R=t||$[F]===79?qS($,J.columns,F+=3,S):null;R&&(F=R.i);let{row:W}=qS($,J.columns,F+3,S);f(W,{command:"update",relation:J,key:t,old:R&&R.row})},T:()=>{},C:()=>{}}).reduce(A,{})[o[0]](o)}function qS(o,T,n,f){let S,A,$,F=f.raw?new Array(T.length):{};for(let J=0;J<T.length;J++)S=o[n++],A=T[J],$=S===110?null:S===117?void 0:A.parser===void 0?o.toString("utf8",n+4,n+=4+o.readUInt32BE(n)):A.parser.array===!0?A.parser(o.toString("utf8",n+5,n+=4+o.readUInt32BE(n))):A.parser(o.toString("utf8",n+4,n+=4+o.readUInt32BE(n))),f.raw?F[J]=f.raw===!0?$:f.value.from?f.value.from($,A):$:F[A.name]=f.value.from?f.value.from($,A):$;return{i:n,row:f.row.from?f.row.from(F):F}}function Iy(o){let T=o.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!T)throw new Error("Malformed subscribe pattern: "+o);let[,n,f,S]=T;return(n||"*")+(f?":"+(f.indexOf(".")===-1?"public."+f:f):"")+(S?"="+S:"")}import G0 from"node:stream";function _$(o,T,n=393216){return new Promise(async(f,S)=>{await o.begin(async(A)=>{let $;!T&&([{oid:T}]=await A`select lo_creat(-1) as oid`);let[{fd:F}]=await A`select lo_open(${T}, ${n}) as fd`,J={writable:R,readable:t,close:()=>A`select lo_close(${F})`.then($),tell:()=>A`select lo_tell64(${F})`,read:(W)=>A`select loread(${F}, ${W}) as data`,write:(W)=>A`select lowrite(${F}, ${W})`,truncate:(W)=>A`select lo_truncate64(${F}, ${W})`,seek:(W,O=0)=>A`select lo_lseek64(${F}, ${W}, ${O})`,size:()=>A`
28
28
  select
29
29
  lo_lseek64(${F}, location, 0) as position,
30
30
  seek.size
@@ -34,10 +34,10 @@ ${$.trace}`:"No previous disposal trace was found."),n.type){case"atom_family":c
34
34
  tell.location
35
35
  from (select lo_tell64($1) as location) tell
36
36
  ) seek
37
- `};return n(J),new Promise(async(_)=>$=_);async function R({highWaterMark:_=16384,start:w=0,end:X=1/0}={}){let D=X-w;return w&&await J.seek(w),new X1.Readable({highWaterMark:_,async read(K){let L=K>D?K-D:K;D-=K;let[{data:h}]=await J.read(L);if(this.push(h),h.length<K)this.push(null)}})}async function M({highWaterMark:_=16384,start:w=0}={}){return w&&await J.seek(w),new X1.Writable({highWaterMark:_,write(X,D,K){J.write(X).then(()=>K(),K)}})}}).catch(S)})}Object.assign(rS,{PostgresError:gf,toPascal:_f,pascal:J$,toCamel:kf,camel:F$,toKebab:wf,kebab:R$,fromPascal:mn,fromCamel:Cn,fromKebab:In,BigInt:{to:20,from:[20],parse:(o)=>BigInt(o),serialize:(o)=>o.toString()}});var lf=rS;function rS(o,T){let f=CO(o,T),n=f.no_subscribe||_$(rS,{...f}),S=!1,A=WT(),$=WT(),F=WT(),J=WT(),R=WT(),M=WT(),_=WT(),w=WT(),X={connecting:$,reserved:F,closed:J,ended:R,open:M,busy:_,full:w},D=[...Array(f.max)].map(()=>k$(f,X,{onopen:fT,onend:Lo,onclose:IT})),K=L(v);return Object.assign(K,{get parameters(){return f.parameters},largeObject:w$.bind(null,K),subscribe:n,CLOSE:Pf,END:Pf,PostgresError:gf,options:f,reserve:P,listen:h,begin:G,close:r,end:s}),K;function L(Y){return Y.debug=f.debug,Object.entries(f.types).reduce((To,[yo,Vo])=>{return To[yo]=(to)=>new mT(to,Vo.to),To},p),Object.assign(Fo,{types:p,typed:p,unsafe:Yo,notify:q,array:Q,json:U,file:Co}),Fo;function p(To,yo){return new mT(To,yo)}function Fo(To,...yo){return To&&Array.isArray(To.raw)?new yT(To,yo,Y,E):typeof To==="string"&&!yo.length?new jn(f.transform.column.to?f.transform.column.to(To):To):new NS(To,yo)}function Yo(To,yo=[],Vo={}){return arguments.length===2&&!Array.isArray(yo)&&(Vo=yo,yo=[]),new yT([To],yo,Y,E,{prepare:!1,...Vo,simple:"simple"in Vo?Vo.simple:yo.length===0})}function Co(To,yo=[],Vo={}){return arguments.length===2&&!Array.isArray(yo)&&(Vo=yo,yo=[]),new yT([],yo,(Ko)=>{LO.readFile(To,"utf8",(Zo,Xo)=>{if(Zo)return Ko.reject(Zo);Ko.strings=[Xo],Y(Ko)})},E,{...Vo,simple:"simple"in Vo?Vo.simple:yo.length===0})}}async function h(Y,p,Fo){let Yo={fn:p,onlisten:Fo},Co=h.sql||(h.sql=rS({...f,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(h.channels).forEach(([Ko,{listeners:Zo}])=>{delete h.channels[Ko],Promise.all(Zo.map((Xo)=>h(Ko,Xo.fn,Xo.onlisten).catch(()=>{})))})},onnotify(Ko,Zo){Ko in h.channels&&h.channels[Ko].listeners.forEach((Xo)=>Xo.fn(Zo))}})),To=h.channels||(h.channels={});if(Y in To){To[Y].listeners.push(Yo);let Ko=await To[Y].result;return Yo.onlisten&&Yo.onlisten(),{state:Ko.state,unlisten:to}}To[Y]={result:Co`listen ${Co.unsafe('"'+Y.replace(/"/g,'""')+'"')}`,listeners:[Yo]};let Vo=await To[Y].result;return Yo.onlisten&&Yo.onlisten(),{state:Vo.state,unlisten:to};async function to(){if(Y in To===!1)return;if(To[Y].listeners=To[Y].listeners.filter((Ko)=>Ko!==Yo),To[Y].listeners.length)return;return delete To[Y],Co`unlisten ${Co.unsafe('"'+Y.replace(/"/g,'""')+'"')}`}}async function q(Y,p){return await K`select pg_notify(${Y}, ${""+p})`}async function P(){let Y=WT(),p=M.length?M.shift():await new Promise((Co)=>{A.push({reserve:Co}),J.length&&ko(J.shift())});z(p,F),p.reserved=()=>Y.length?p.execute(Y.shift()):z(p,F),p.reserved.release=!0;let Fo=L(Yo);return Fo.release=()=>{p.reserved=null,fT(p)},Fo;function Yo(Co){p.queue===w?Y.push(Co):p.execute(Co)||z(p,w)}}async function G(Y,p){!p&&(p=Y,Y="");let Fo=WT(),Yo=0,Co,To=null;try{return await K.unsafe("begin "+Y.replace(/[^a-z ]/ig,""),[],{onexecute:Vo}).execute(),await Promise.race([yo(Co,p),new Promise((to,Ko)=>Co.onclose=Ko)])}catch(to){throw to}async function yo(to,Ko,Zo){let Xo=L(mo);Xo.savepoint=cT,Xo.prepare=(Eo)=>To=Eo.replace(/[^a-z0-9$-_. ]/gi);let XT,Po;Zo&&await Xo`savepoint ${Xo(Zo)}`;try{if(Po=await new Promise((Eo,HT)=>{let DT=Ko(Xo);Promise.resolve(Array.isArray(DT)?Promise.all(DT):DT).then(Eo,HT)}),XT)throw XT}catch(Eo){throw await(Zo?Xo`rollback to ${Xo(Zo)}`:Xo`rollback`),Eo instanceof gf&&Eo.code==="25P02"&&XT||Eo}if(!Zo)To?await Xo`prepare transaction '${Xo.unsafe(To)}'`:await Xo`commit`;return Po;function cT(Eo,HT){if(Eo&&Array.isArray(Eo.raw))return cT((DT)=>DT.apply(DT,arguments));return arguments.length===1&&(HT=Eo,Eo=null),yo(to,HT,"s"+Yo+++(Eo?"_"+Eo:""))}function mo(Eo){Eo.catch((HT)=>XT||(XT=HT)),to.queue===w?Fo.push(Eo):to.execute(Eo)||z(to,w)}}function Vo(to){Co=to,z(to,F),to.reserved=()=>Fo.length?to.execute(Fo.shift()):z(to,F)}}function z(Y,p){return Y.queue.remove(Y),p.push(Y),Y.queue=p,p===M?Y.idleTimer.start():Y.idleTimer.cancel(),Y}function U(Y){return new mT(Y,3802)}function Q(Y,p){if(!Array.isArray(Y))return Q(Array.from(arguments));return new mT(Y,p||(Y.length?IS(Y)||25:0),f.shared.typeArrayMap)}function v(Y){if(S)return Y.reject(Bo.connection("CONNECTION_ENDED",f,f));if(M.length)return l(M.shift(),Y);if(J.length)return ko(J.shift(),Y);_.length?l(_.shift(),Y):A.push(Y)}function l(Y,p){return Y.execute(p)?z(Y,_):z(Y,w)}function E(Y){return new Promise((p,Fo)=>{Y.state?Y.active?k$(f).cancel(Y.state,p,Fo):Y.cancelled={resolve:p,reject:Fo}:(A.remove(Y),Y.cancelled=!0,Y.reject(Bo.generic("57014","canceling statement due to user request")),p())})}async function s({timeout:Y=null}={}){if(S)return S;await 1;let p;return S=Promise.race([new Promise((Fo)=>Y!==null&&(p=setTimeout(a,Y*1000,Fo))),Promise.all(D.map((Fo)=>Fo.end()).concat(h.sql?h.sql.end({timeout:0}):[],n.sql?n.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(p))}async function r(){await Promise.all(D.map((Y)=>Y.end()))}async function a(Y){await Promise.all(D.map((p)=>p.terminate()));while(A.length)A.shift().reject(Bo.connection("CONNECTION_DESTROYED",f));Y()}function ko(Y,p){return z(Y,$),Y.connect(p),Y}function Lo(Y){z(Y,R)}function fT(Y){if(A.length===0)return z(Y,M);let p=Math.ceil(A.length/($.length+1)),Fo=!0;while(Fo&&A.length&&p-- >0){let Yo=A.shift();if(Yo.reserve)return Yo.reserve(Y);Fo=Y.execute(Yo)}Fo?z(Y,_):z(Y,w)}function IT(Y,p){z(Y,J),Y.reserved=null,Y.onclose&&(Y.onclose(p),Y.onclose=null),f.onclose&&f.onclose(Y.id),A.length&&ko(Y,A.shift())}}function CO(o,T){if(o&&o.shared)return o;let f=process.env,n=(!o||typeof o==="string"?T:o)||{},{url:S,multihost:A}=hO(o),$=[...S.searchParams].reduce((w,[X,D])=>(w[X]=D,w),{}),F=n.hostname||n.host||A||S.hostname||f.PGHOST||"localhost",J=n.port||S.port||f.PGPORT||5432,R=n.user||n.username||S.username||f.PGUSERNAME||f.PGUSER||bO();n.no_prepare&&(n.prepare=!1),$.sslmode&&($.ssl=$.sslmode,delete $.sslmode),"timeout"in n&&(console.log("The timeout option is deprecated, use idle_timeout instead"),n.idle_timeout=n.timeout),$.sslrootcert==="system"&&($.ssl="verify-full");let M=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],_={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:jO,max_pipeline:100,backoff:IO,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(F)?F:F.split(",").map((w)=>w.split(":")[0]),port:Array.isArray(J)?J:F.split(",").map((w)=>parseInt(w.split(":")[1]||J)),path:n.path||F.indexOf("/")>-1&&F+"/.s.PGSQL."+J,database:n.database||n.db||(S.pathname||"").slice(1)||f.PGDATABASE||R,user:R,pass:n.pass||n.password||S.password||f.PGPASSWORD||"",...Object.entries(_).reduce((w,[X,D])=>{let K=X in n?n[X]:(X in $)?$[X]==="disable"||$[X]==="false"?!1:$[X]:f["PG"+X.toUpperCase()]||D;return w[X]=typeof K==="string"&&M.includes(X)?+K:K,w},{}),connection:{application_name:"postgres.js",...n.connection,...Object.entries($).reduce((w,[X,D])=>((X in _)||(w[X]=D),w),{})},types:n.types||{},target_session_attrs:mO(n,S,f),onnotice:n.onnotice,onnotify:n.onnotify,onclose:n.onclose,onparameter:n.onparameter,socket:n.socket,transform:NO(n.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...$1(n.types)}}function mO(o,T,f){let n=o.target_session_attrs||T.searchParams.get("target_session_attrs")||f.PGTARGETSESSIONATTRS;if(!n||["read-write","read-only","primary","standby","prefer-standby"].includes(n))return n;throw new Error("target_session_attrs "+n+" is not supported")}function IO(o){return(0.5+Math.random()/2)*Math.min(3**o/100,20)}function jO(){return 60*(30+Math.random()*30)}function NO(o){return{undefined:o.undefined,column:{from:typeof o.column==="function"?o.column:o.column&&o.column.from,to:o.column&&o.column.to},value:{from:typeof o.value==="function"?o.value:o.value&&o.value.from,to:o.value&&o.value.to},row:{from:typeof o.row==="function"?o.row:o.row&&o.row.from,to:o.row&&o.row.to}}}function hO(o){if(!o||typeof o!=="string")return{url:{searchParams:new Map}};let T=o;T=T.slice(T.indexOf("://")+3).split(/[?/]/)[0],T=decodeURIComponent(T.slice(T.indexOf("@")+1));let f=new URL(o.replace(T,T.split(",")[0]));return{url:{username:decodeURIComponent(f.username),password:decodeURIComponent(f.password),host:f.host,hostname:f.hostname,port:f.port,pathname:f.pathname,searchParams:f.searchParams},multihost:T.indexOf(",")>-1&&T}}function bO(){try{return BO.userInfo().username}catch(o){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class Do{static[O]="SelectionProxyHandler";config;constructor(o){this.config={...o}}get(o,T){if(T==="_")return{...o._,selectedFields:new Proxy(o._.selectedFields,this)};if(T===Ho)return{...o[Ho],selectedFields:new Proxy(o[Ho].selectedFields,this)};if(typeof T==="symbol")return o[T];let n=(H(o,bo)?o._.selectedFields:H(o,ST)?o[Ho].selectedFields:o)[T];if(H(n,j.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!n.isSelectionField)return n.sql;let S=n.clone();return S.isSelectionField=!0,S}if(H(n,j)){if(this.config.sqlBehavior==="sql")return n;throw new Error(`You tried to reference "${T}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(H(n,_o)){if(this.config.alias)return new Proxy(n,new Zf(new Proxy(n.table,new zn(this.config.alias,this.config.replaceOriginalName??!1))));return n}if(typeof n!=="object"||n===null)return n;return new Proxy(n,new Do(this.config))}}class pS extends oT{constructor(o,T,f,n){super();this.session=T,this.dialect=f,this.config={table:o,withList:n}}static[O]="PgDelete";config;where(o){return this.config.where=o,this}returning(o=this.config.table[I.Symbol.Columns]){return this.config.returningFields=o,this.config.returning=wT(o),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:o,...T}=this.dialect.sqlToQuery(this.getSQL());return T}_prepare(o){return wo.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,o,!0)})}prepare(o){return this._prepare(o)}authToken;setToken(o){return this.authToken=o,this}execute=(o)=>{return wo.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(o,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new Do({alias:qo(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}function xO(o){return(o.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((f)=>f.toLowerCase()).join("_")}function vO(o){return(o.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((f,n,S)=>{let A=S===0?n.toLowerCase():`${n[0].toUpperCase()}${n.slice(1)}`;return f+A},"")}function qO(o){return o}class y${static[O]="CasingCache";cache={};cachedTables={};convert;constructor(o){this.convert=o==="snake_case"?xO:o==="camelCase"?vO:qO}getColumnCasing(o){if(!o.keyAsName)return o.name;let T=o.table[I.Symbol.Schema]??"public",f=o.table[I.Symbol.OriginalName],n=`${T}.${f}.${o.name}`;if(!this.cache[n])this.cacheTable(o.table);return this.cache[n]}cacheTable(o){let T=o[I.Symbol.Schema]??"public",f=o[I.Symbol.OriginalName],n=`${T}.${f}`;if(!this.cachedTables[n]){for(let S of Object.values(o[I.Symbol.Columns])){let A=`${n}.${S.name}`;this.cache[A]=this.convert(S.name)}this.cachedTables[n]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class hn extends ST{static[O]="PgViewBase"}class Xf{static[O]="PgDialect";casing;constructor(o){this.casing=new y$(o?.casing)}async migrate(o,T,f){let n=typeof f==="string"?"__drizzle_migrations":f.migrationsTable??"__drizzle_migrations",S=typeof f==="string"?"drizzle":f.migrationsSchema??"drizzle",A=k`
38
- CREATE TABLE IF NOT EXISTS ${k.identifier(S)}.${k.identifier(n)} (
37
+ `};return f(J),new Promise(async(W)=>$=W);async function t({highWaterMark:W=16384,start:O=0,end:_=1/0}={}){let Q=_-O;return O&&await J.seek(O),new G0.Readable({highWaterMark:W,async read(H){let m=H>Q?H-Q:H;Q-=H;let[{data:b}]=await J.read(m);if(this.push(b),b.length<H)this.push(null)}})}async function R({highWaterMark:W=16384,start:O=0}={}){return O&&await J.seek(O),new G0.Writable({highWaterMark:W,write(_,Q,H){J.write(_).then(()=>H(),H)}})}}).catch(S)})}Object.assign(pS,{PostgresError:dn,toPascal:On,pascal:R$,toCamel:Wn,camel:t$,toKebab:wn,kebab:M$,fromPascal:If,fromCamel:Cf,fromKebab:jf,BigInt:{to:20,from:[20],parse:(o)=>BigInt(o),serialize:(o)=>o.toString()}});var un=pS;function pS(o,T){let n=Ny(o,T),f=n.no_subscribe||w$(pS,{...n}),S=!1,A=MT(),$=MT(),F=MT(),J=MT(),t=MT(),R=MT(),W=MT(),O=MT(),_={connecting:$,reserved:F,closed:J,ended:t,open:R,busy:W,full:O},Q=[...Array(n.max)].map(()=>O$(n,_,{onopen:nT,onend:mo,onclose:IT})),H=m(v);return Object.assign(H,{get parameters(){return n.parameters},largeObject:_$.bind(null,H),subscribe:f,CLOSE:gn,END:gn,PostgresError:dn,options:n,reserve:P,listen:b,begin:E,close:q,end:s}),H;function m(G){return G.debug=n.debug,Object.entries(n.types).reduce((To,[wo,Vo])=>{return To[wo]=(Yo)=>new CT(Yo,Vo.to),To},p),Object.assign(Fo,{types:p,typed:p,unsafe:Go,notify:r,array:D,json:U,file:Lo}),Fo;function p(To,wo){return new CT(To,wo)}function Fo(To,...wo){return To&&Array.isArray(To.raw)?new wT(To,wo,G,K):typeof To==="string"&&!wo.length?new hf(n.transform.column.to?n.transform.column.to(To):To):new NS(To,wo)}function Go(To,wo=[],Vo={}){return arguments.length===2&&!Array.isArray(wo)&&(Vo=wo,wo=[]),new wT([To],wo,G,K,{prepare:!1,...Vo,simple:"simple"in Vo?Vo.simple:wo.length===0})}function Lo(To,wo=[],Vo={}){return arguments.length===2&&!Array.isArray(wo)&&(Vo=wo,wo=[]),new wT([],wo,(Ho)=>{hy.readFile(To,"utf8",(Zo,_o)=>{if(Zo)return Ho.reject(Zo);Ho.strings=[_o],G(Ho)})},K,{...Vo,simple:"simple"in Vo?Vo.simple:wo.length===0})}}async function b(G,p,Fo){let Go={fn:p,onlisten:Fo},Lo=b.sql||(b.sql=pS({...n,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(b.channels).forEach(([Ho,{listeners:Zo}])=>{delete b.channels[Ho],Promise.all(Zo.map((_o)=>b(Ho,_o.fn,_o.onlisten).catch(()=>{})))})},onnotify(Ho,Zo){Ho in b.channels&&b.channels[Ho].listeners.forEach((_o)=>_o.fn(Zo))}})),To=b.channels||(b.channels={});if(G in To){To[G].listeners.push(Go);let Ho=await To[G].result;return Go.onlisten&&Go.onlisten(),{state:Ho.state,unlisten:Yo}}To[G]={result:Lo`listen ${Lo.unsafe('"'+G.replace(/"/g,'""')+'"')}`,listeners:[Go]};let Vo=await To[G].result;return Go.onlisten&&Go.onlisten(),{state:Vo.state,unlisten:Yo};async function Yo(){if(G in To===!1)return;if(To[G].listeners=To[G].listeners.filter((Ho)=>Ho!==Go),To[G].listeners.length)return;return delete To[G],Lo`unlisten ${Lo.unsafe('"'+G.replace(/"/g,'""')+'"')}`}}async function r(G,p){return await H`select pg_notify(${G}, ${""+p})`}async function P(){let G=MT(),p=R.length?R.shift():await new Promise((Lo)=>{A.push({reserve:Lo}),J.length&&ko(J.shift())});z(p,F),p.reserved=()=>G.length?p.execute(G.shift()):z(p,F),p.reserved.release=!0;let Fo=m(Go);return Fo.release=()=>{p.reserved=null,nT(p)},Fo;function Go(Lo){p.queue===O?G.push(Lo):p.execute(Lo)||z(p,O)}}async function E(G,p){!p&&(p=G,G="");let Fo=MT(),Go=0,Lo,To=null;try{return await H.unsafe("begin "+G.replace(/[^a-z ]/ig,""),[],{onexecute:Vo}).execute(),await Promise.race([wo(Lo,p),new Promise((Yo,Ho)=>Lo.onclose=Ho)])}catch(Yo){throw Yo}async function wo(Yo,Ho,Zo){let _o=m(Co);_o.savepoint=cT,_o.prepare=(Ko)=>To=Ko.replace(/[^a-z0-9$-_. ]/gi);let _T,Po;Zo&&await _o`savepoint ${_o(Zo)}`;try{if(Po=await new Promise((Ko,XT)=>{let QT=Ho(_o);Promise.resolve(Array.isArray(QT)?Promise.all(QT):QT).then(Ko,XT)}),_T)throw _T}catch(Ko){throw await(Zo?_o`rollback to ${_o(Zo)}`:_o`rollback`),Ko instanceof dn&&Ko.code==="25P02"&&_T||Ko}if(!Zo)To?await _o`prepare transaction '${_o.unsafe(To)}'`:await _o`commit`;return Po;function cT(Ko,XT){if(Ko&&Array.isArray(Ko.raw))return cT((QT)=>QT.apply(QT,arguments));return arguments.length===1&&(XT=Ko,Ko=null),wo(Yo,XT,"s"+Go+++(Ko?"_"+Ko:""))}function Co(Ko){Ko.catch((XT)=>_T||(_T=XT)),Yo.queue===O?Fo.push(Ko):Yo.execute(Ko)||z(Yo,O)}}function Vo(Yo){Lo=Yo,z(Yo,F),Yo.reserved=()=>Fo.length?Yo.execute(Fo.shift()):z(Yo,F)}}function z(G,p){return G.queue.remove(G),p.push(G),G.queue=p,p===R?G.idleTimer.start():G.idleTimer.cancel(),G}function U(G){return new CT(G,3802)}function D(G,p){if(!Array.isArray(G))return D(Array.from(arguments));return new CT(G,p||(G.length?jS(G)||25:0),n.shared.typeArrayMap)}function v(G){if(S)return G.reject(Bo.connection("CONNECTION_ENDED",n,n));if(R.length)return l(R.shift(),G);if(J.length)return ko(J.shift(),G);W.length?l(W.shift(),G):A.push(G)}function l(G,p){return G.execute(p)?z(G,W):z(G,O)}function K(G){return new Promise((p,Fo)=>{G.state?G.active?O$(n).cancel(G.state,p,Fo):G.cancelled={resolve:p,reject:Fo}:(A.remove(G),G.cancelled=!0,G.reject(Bo.generic("57014","canceling statement due to user request")),p())})}async function s({timeout:G=null}={}){if(S)return S;await 1;let p;return S=Promise.race([new Promise((Fo)=>G!==null&&(p=setTimeout(a,G*1000,Fo))),Promise.all(Q.map((Fo)=>Fo.end()).concat(b.sql?b.sql.end({timeout:0}):[],f.sql?f.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(p))}async function q(){await Promise.all(Q.map((G)=>G.end()))}async function a(G){await Promise.all(Q.map((p)=>p.terminate()));while(A.length)A.shift().reject(Bo.connection("CONNECTION_DESTROYED",n));G()}function ko(G,p){return z(G,$),G.connect(p),G}function mo(G){z(G,t)}function nT(G){if(A.length===0)return z(G,R);let p=Math.ceil(A.length/($.length+1)),Fo=!0;while(Fo&&A.length&&p-- >0){let Go=A.shift();if(Go.reserve)return Go.reserve(G);Fo=G.execute(Go)}Fo?z(G,W):z(G,O)}function IT(G,p){z(G,J),G.reserved=null,G.onclose&&(G.onclose(p),G.onclose=null),n.onclose&&n.onclose(G.id),A.length&&ko(G,A.shift())}}function Ny(o,T){if(o&&o.shared)return o;let n=process.env,f=(!o||typeof o==="string"?T:o)||{},{url:S,multihost:A}=qy(o),$=[...S.searchParams].reduce((O,[_,Q])=>(O[_]=Q,O),{}),F=f.hostname||f.host||A||S.hostname||n.PGHOST||"localhost",J=f.port||S.port||n.PGPORT||5432,t=f.user||f.username||S.username||n.PGUSERNAME||n.PGUSER||py();f.no_prepare&&(f.prepare=!1),$.sslmode&&($.ssl=$.sslmode,delete $.sslmode),"timeout"in f&&(console.log("The timeout option is deprecated, use idle_timeout instead"),f.idle_timeout=f.timeout),$.sslrootcert==="system"&&($.ssl="verify-full");let R=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],W={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:vy,max_pipeline:100,backoff:xy,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(F)?F:F.split(",").map((O)=>O.split(":")[0]),port:Array.isArray(J)?J:F.split(",").map((O)=>parseInt(O.split(":")[1]||J)),path:f.path||F.indexOf("/")>-1&&F+"/.s.PGSQL."+J,database:f.database||f.db||(S.pathname||"").slice(1)||n.PGDATABASE||t,user:t,pass:f.pass||f.password||S.password||n.PGPASSWORD||"",...Object.entries(W).reduce((O,[_,Q])=>{let H=_ in f?f[_]:(_ in $)?$[_]==="disable"||$[_]==="false"?!1:$[_]:n["PG"+_.toUpperCase()]||Q;return O[_]=typeof H==="string"&&R.includes(_)?+H:H,O},{}),connection:{application_name:"postgres.js",...f.connection,...Object.entries($).reduce((O,[_,Q])=>((_ in W)||(O[_]=Q),O),{})},types:f.types||{},target_session_attrs:by(f,S,n),onnotice:f.onnotice,onnotify:f.onnotify,onclose:f.onclose,onparameter:f.onparameter,socket:f.socket,transform:ry(f.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...M0(f.types)}}function by(o,T,n){let f=o.target_session_attrs||T.searchParams.get("target_session_attrs")||n.PGTARGETSESSIONATTRS;if(!f||["read-write","read-only","primary","standby","prefer-standby"].includes(f))return f;throw new Error("target_session_attrs "+f+" is not supported")}function xy(o){return(0.5+Math.random()/2)*Math.min(3**o/100,20)}function vy(){return 60*(30+Math.random()*30)}function ry(o){return{undefined:o.undefined,column:{from:typeof o.column==="function"?o.column:o.column&&o.column.from,to:o.column&&o.column.to},value:{from:typeof o.value==="function"?o.value:o.value&&o.value.from,to:o.value&&o.value.to},row:{from:typeof o.row==="function"?o.row:o.row&&o.row.from,to:o.row&&o.row.to}}}function qy(o){if(!o||typeof o!=="string")return{url:{searchParams:new Map}};let T=o;T=T.slice(T.indexOf("://")+3).split(/[?/]/)[0],T=decodeURIComponent(T.slice(T.indexOf("@")+1));let n=new URL(o.replace(T,T.split(",")[0]));return{url:{username:decodeURIComponent(n.username),password:decodeURIComponent(n.password),host:n.host,hostname:n.hostname,port:n.port,pathname:n.pathname,searchParams:n.searchParams},multihost:T.indexOf(",")>-1&&T}}function py(){try{return jy.userInfo().username}catch(o){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class Qo{static[y]="SelectionProxyHandler";config;constructor(o){this.config={...o}}get(o,T){if(T==="_")return{...o._,selectedFields:new Proxy(o._.selectedFields,this)};if(T===Xo)return{...o[Xo],selectedFields:new Proxy(o[Xo].selectedFields,this)};if(typeof T==="symbol")return o[T];let f=(X(o,No)?o._.selectedFields:X(o,ST)?o[Xo].selectedFields:o)[T];if(X(f,j.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!f.isSelectionField)return f.sql;let S=f.clone();return S.isSelectionField=!0,S}if(X(f,j)){if(this.config.sqlBehavior==="sql")return f;throw new Error(`You tried to reference "${T}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(X(f,Wo)){if(this.config.alias)return new Proxy(f,new Pn(new Proxy(f.table,new Df(this.config.alias,this.config.replaceOriginalName??!1))));return f}if(typeof f!=="object"||f===null)return f;return new Proxy(f,new Qo(this.config))}}class cS extends oT{constructor(o,T,n,f){super();this.session=T,this.dialect=n,this.config={table:o,withList:f}}static[y]="PgDelete";config;where(o){return this.config.where=o,this}returning(o=this.config.table[I.Symbol.Columns]){return this.config.returningFields=o,this.config.returning=OT(o),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:o,...T}=this.dialect.sqlToQuery(this.getSQL());return T}_prepare(o){return Oo.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,o,!0)})}prepare(o){return this._prepare(o)}authToken;setToken(o){return this.authToken=o,this}execute=(o)=>{return Oo.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(o,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new Qo({alias:vo(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}function cy(o){return(o.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((n)=>n.toLowerCase()).join("_")}function Zy(o){return(o.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((n,f,S)=>{let A=S===0?f.toLowerCase():`${f[0].toUpperCase()}${f.slice(1)}`;return n+A},"")}function Py(o){return o}class X${static[y]="CasingCache";cache={};cachedTables={};convert;constructor(o){this.convert=o==="snake_case"?cy:o==="camelCase"?Zy:Py}getColumnCasing(o){if(!o.keyAsName)return o.name;let T=o.table[I.Symbol.Schema]??"public",n=o.table[I.Symbol.OriginalName],f=`${T}.${n}.${o.name}`;if(!this.cache[f])this.cacheTable(o.table);return this.cache[f]}cacheTable(o){let T=o[I.Symbol.Schema]??"public",n=o[I.Symbol.OriginalName],f=`${T}.${n}`;if(!this.cachedTables[f]){for(let S of Object.values(o[I.Symbol.Columns])){let A=`${f}.${S.name}`;this.cache[A]=this.convert(S.name)}this.cachedTables[f]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class bf extends ST{static[y]="PgViewBase"}class Xn{static[y]="PgDialect";casing;constructor(o){this.casing=new X$(o?.casing)}async migrate(o,T,n){let f=typeof n==="string"?"__drizzle_migrations":n.migrationsTable??"__drizzle_migrations",S=typeof n==="string"?"drizzle":n.migrationsSchema??"drizzle",A=k`
38
+ CREATE TABLE IF NOT EXISTS ${k.identifier(S)}.${k.identifier(f)} (
39
39
  id SERIAL PRIMARY KEY,
40
40
  hash text NOT NULL,
41
41
  created_at bigint
42
42
  )
43
- `;await T.execute(k`CREATE SCHEMA IF NOT EXISTS ${k.identifier(S)}`),await T.execute(A);let F=(await T.all(k`select id, hash, created_at from ${k.identifier(S)}.${k.identifier(n)} order by created_at desc limit 1`))[0];await T.transaction(async(J)=>{for await(let R of o)if(!F||Number(F.created_at)<R.folderMillis){for(let M of R.sql)await J.execute(k.raw(M));await J.execute(k`insert into ${k.identifier(S)}.${k.identifier(n)} ("hash", "created_at") values(${R.hash}, ${R.folderMillis})`)}})}escapeName(o){return`"${o}"`}escapeParam(o){return`$${o+1}`}escapeString(o){return`'${o.replace(/'/g,"''")}'`}buildWithCTE(o){if(!o?.length)return;let T=[k`with `];for(let[f,n]of o.entries())if(T.push(k`${k.identifier(n._.alias)} as (${n._.sql})`),f<o.length-1)T.push(k`, `);return T.push(k` `),k.join(T)}buildDeleteQuery({table:o,where:T,returning:f,withList:n}){let S=this.buildWithCTE(n),A=f?k` returning ${this.buildSelection(f,{isSingleTable:!0})}`:void 0,$=T?k` where ${T}`:void 0;return k`${S}delete from ${o}${$}${A}`}buildUpdateSet(o,T){let f=o[I.Symbol.Columns],n=Object.keys(f).filter((A)=>T[A]!==void 0||f[A]?.onUpdateFn!==void 0),S=n.length;return k.join(n.flatMap((A,$)=>{let F=f[A],J=T[A]??k.param(F.onUpdateFn(),F),R=k`${k.identifier(this.casing.getColumnCasing(F))} = ${J}`;if($<S-1)return[R,k.raw(", ")];return[R]}))}buildUpdateQuery({table:o,set:T,where:f,returning:n,withList:S,from:A,joins:$}){let F=this.buildWithCTE(S),J=o[co.Symbol.Name],R=o[co.Symbol.Schema],M=o[co.Symbol.OriginalName],_=J===M?void 0:J,w=k`${R?k`${k.identifier(R)}.`:void 0}${k.identifier(M)}${_&&k` ${k.identifier(_)}`}`,X=this.buildUpdateSet(o,T),D=A&&k.join([k.raw(" from "),this.buildFromTable(A)]),K=this.buildJoins($),L=n?k` returning ${this.buildSelection(n,{isSingleTable:!A})}`:void 0,h=f?k` where ${f}`:void 0;return k`${F}update ${w} set ${X}${D}${K}${h}${L}`}buildSelection(o,{isSingleTable:T=!1}={}){let f=o.length,n=o.flatMap(({field:S},A)=>{let $=[];if(H(S,j.Aliased)&&S.isSelectionField)$.push(k.identifier(S.fieldAlias));else if(H(S,j.Aliased)||H(S,j)){let F=H(S,j.Aliased)?S.sql:S;if(T)$.push(new j(F.queryChunks.map((J)=>{if(H(J,V))return k.identifier(this.casing.getColumnCasing(J));return J})));else $.push(F);if(H(S,j.Aliased))$.push(k` as ${k.identifier(S.fieldAlias)}`)}else if(H(S,_o))if(T)$.push(k.identifier(this.casing.getColumnCasing(S)));else $.push(S);if(A<f-1)$.push(k`, `);return $});return k.join(n)}buildJoins(o){if(!o||o.length===0)return;let T=[];for(let[f,n]of o.entries()){if(f===0)T.push(k` `);let S=n.table,A=n.lateral?k` lateral`:void 0;if(H(S,co)){let $=S[co.Symbol.Name],F=S[co.Symbol.Schema],J=S[co.Symbol.OriginalName],R=$===J?void 0:n.alias;T.push(k`${k.raw(n.joinType)} join${A} ${F?k`${k.identifier(F)}.`:void 0}${k.identifier(J)}${R&&k` ${k.identifier(R)}`} on ${n.on}`)}else if(H(S,ST)){let $=S[Ho].name,F=S[Ho].schema,J=S[Ho].originalName,R=$===J?void 0:n.alias;T.push(k`${k.raw(n.joinType)} join${A} ${F?k`${k.identifier(F)}.`:void 0}${k.identifier(J)}${R&&k` ${k.identifier(R)}`} on ${n.on}`)}else T.push(k`${k.raw(n.joinType)} join${A} ${S} on ${n.on}`);if(f<o.length-1)T.push(k` `)}return k.join(T)}buildFromTable(o){if(H(o,I)&&o[I.Symbol.OriginalName]!==o[I.Symbol.Name]){let T=k`${k.identifier(o[I.Symbol.OriginalName])}`;if(o[I.Symbol.Schema])T=k`${k.identifier(o[I.Symbol.Schema])}.${T}`;return k`${T} ${k.identifier(o[I.Symbol.Name])}`}return o}buildSelectQuery({withList:o,fields:T,fieldsFlat:f,where:n,having:S,table:A,joins:$,orderBy:F,groupBy:J,limit:R,offset:M,lockingClause:_,distinct:w,setOperators:X}){let D=f??wT(T);for(let a of D)if(H(a.field,_o)&&qo(a.field.table)!==(H(A,bo)?A._.alias:H(A,hn)?A[Ho].name:H(A,j)?void 0:qo(A))&&!((ko)=>$?.some(({alias:Lo})=>Lo===(ko[I.Symbol.IsAlias]?qo(ko):ko[I.Symbol.BaseName])))(a.field.table)){let ko=qo(a.field.table);throw new Error(`Your "${a.path.join("->")}" field references a column "${ko}"."${a.field.name}", but the table "${ko}" is not part of the query! Did you forget to join it?`)}let K=!$||$.length===0,L=this.buildWithCTE(o),h;if(w)h=w===!0?k` distinct`:k` distinct on (${k.join(w.on,k`, `)})`;let q=this.buildSelection(D,{isSingleTable:K}),P=this.buildFromTable(A),G=this.buildJoins($),z=n?k` where ${n}`:void 0,U=S?k` having ${S}`:void 0,Q;if(F&&F.length>0)Q=k` order by ${k.join(F,k`, `)}`;let v;if(J&&J.length>0)v=k` group by ${k.join(J,k`, `)}`;let l=typeof R==="object"||typeof R==="number"&&R>=0?k` limit ${R}`:void 0,E=M?k` offset ${M}`:void 0,s=k.empty();if(_){let a=k` for ${k.raw(_.strength)}`;if(_.config.of)a.append(k` of ${k.join(Array.isArray(_.config.of)?_.config.of:[_.config.of],k`, `)}`);if(_.config.noWait)a.append(k` no wait`);else if(_.config.skipLocked)a.append(k` skip locked`);s.append(a)}let r=k`${L}select${h} ${q} from ${P}${G}${z}${v}${U}${Q}${l}${E}${s}`;if(X.length>0)return this.buildSetOperations(r,X);return r}buildSetOperations(o,T){let[f,...n]=T;if(!f)throw new Error("Cannot pass undefined values to any set operator");if(n.length===0)return this.buildSetOperationQuery({leftSelect:o,setOperator:f});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:o,setOperator:f}),n)}buildSetOperationQuery({leftSelect:o,setOperator:{type:T,isAll:f,rightSelect:n,limit:S,orderBy:A,offset:$}}){let F=k`(${o.getSQL()}) `,J=k`(${n.getSQL()})`,R;if(A&&A.length>0){let X=[];for(let D of A)if(H(D,V))X.push(k.identifier(D.name));else if(H(D,j)){for(let K=0;K<D.queryChunks.length;K++){let L=D.queryChunks[K];if(H(L,V))D.queryChunks[K]=k.identifier(L.name)}X.push(k`${D}`)}else X.push(k`${D}`);R=k` order by ${k.join(X,k`, `)} `}let M=typeof S==="object"||typeof S==="number"&&S>=0?k` limit ${S}`:void 0,_=k.raw(`${T} ${f?"all ":""}`),w=$?k` offset ${$}`:void 0;return k`${F}${_}${J}${R}${M}${w}`}buildInsertQuery({table:o,values:T,onConflict:f,returning:n,withList:S,select:A,overridingSystemValue_:$}){let F=[],J=o[I.Symbol.Columns],R=Object.entries(J).filter(([L,h])=>!h.shouldDisableInsert()),M=R.map(([,L])=>k.identifier(this.casing.getColumnCasing(L)));if(A){let L=T;if(H(L,j))F.push(L);else F.push(L.getSQL())}else{let L=T;F.push(k.raw("values "));for(let[h,q]of L.entries()){let P=[];for(let[G,z]of R){let U=q[G];if(U===void 0||H(U,RT)&&U.value===void 0)if(z.defaultFn!==void 0){let Q=z.defaultFn(),v=H(Q,j)?Q:k.param(Q,z);P.push(v)}else if(!z.default&&z.onUpdateFn!==void 0){let Q=z.onUpdateFn(),v=H(Q,j)?Q:k.param(Q,z);P.push(v)}else P.push(k`default`);else P.push(U)}if(F.push(P),h<L.length-1)F.push(k`, `)}}let _=this.buildWithCTE(S),w=k.join(F),X=n?k` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0,D=f?k` on conflict ${f}`:void 0,K=$===!0?k`overriding system value `:void 0;return k`${_}insert into ${o} ${M} ${K}${w}${D}${X}`}buildRefreshMaterializedViewQuery({view:o,concurrently:T,withNoData:f}){let n=T?k` concurrently`:void 0,S=f?k` with no data`:void 0;return k`refresh materialized view${n} ${o}${S}`}prepareTyping(o){if(H(o,zS)||H(o,tS))return"json";else if(H(o,QS))return"decimal";else if(H(o,DS))return"time";else if(H(o,US)||H(o,VS))return"timestamp";else if(H(o,ES)||H(o,GS))return"date";else if(H(o,BS))return"uuid";else return"none"}sqlToQuery(o,T){return o.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:T})}buildRelationalQueryWithoutPK({fullSchema:o,schema:T,tableNamesMap:f,table:n,tableConfig:S,queryConfig:A,tableAlias:$,nestedQueryRelation:F,joinOn:J}){let R=[],M,_,w=[],X,D=[];if(A===!0)R=Object.entries(S.columns).map(([h,q])=>({dbKey:q.name,tsKey:h,field:CT(q,$),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let L=Object.fromEntries(Object.entries(S.columns).map(([U,Q])=>[U,CT(Q,$)]));if(A.where){let U=typeof A.where==="function"?A.where(L,g0()):A.where;X=U&&Qn(U,$)}let h=[],q=[];if(A.columns){let U=!1;for(let[Q,v]of Object.entries(A.columns)){if(v===void 0)continue;if(Q in S.columns){if(!U&&v===!0)U=!0;q.push(Q)}}if(q.length>0)q=U?q.filter((Q)=>A.columns?.[Q]===!0):Object.keys(S.columns).filter((Q)=>!q.includes(Q))}else q=Object.keys(S.columns);for(let U of q){let Q=S.columns[U];h.push({tsKey:U,value:Q})}let P=[];if(A.with)P=Object.entries(A.with).filter((U)=>!!U[1]).map(([U,Q])=>({tsKey:U,queryConfig:Q,relation:S.relations[U]}));let G;if(A.extras){G=typeof A.extras==="function"?A.extras(L,{sql:k}):A.extras;for(let[U,Q]of Object.entries(G))h.push({tsKey:U,value:PA(Q,$)})}for(let{tsKey:U,value:Q}of h)R.push({dbKey:H(Q,j.Aliased)?Q.fieldAlias:S.columns[U].name,tsKey:U,field:H(Q,_o)?CT(Q,$):Q,relationTableTsKey:void 0,isJson:!1,selection:[]});let z=typeof A.orderBy==="function"?A.orderBy(L,d0()):A.orderBy??[];if(!Array.isArray(z))z=[z];w=z.map((U)=>{if(H(U,_o))return CT(U,$);return Qn(U,$)}),M=A.limit,_=A.offset;for(let{tsKey:U,queryConfig:Q,relation:v}of P){let l=u0(T,f,v),E=Of(v.referencedTable),s=f[E],r=`${$}_${U}`,a=Dn(...l.fields.map((fT,IT)=>HS(CT(l.references[IT],r),CT(fT,$)))),ko=this.buildRelationalQueryWithoutPK({fullSchema:o,schema:T,tableNamesMap:f,table:o[s],tableConfig:T[s],queryConfig:H(v,aT)?Q===!0?{limit:1}:{...Q,limit:1}:Q,tableAlias:r,joinOn:a,nestedQueryRelation:v}),Lo=k`${k.identifier(r)}.${k.identifier("data")}`.as(U);D.push({on:k`true`,table:new bo(ko.sql,{},r),alias:r,joinType:"left",lateral:!0}),R.push({dbKey:U,tsKey:U,field:Lo,relationTableTsKey:s,isJson:!0,selection:ko.selection})}}if(R.length===0)throw new XS({message:`No fields selected for table "${S.tsName}" ("${$}")`});let K;if(X=Dn(J,X),F){let L=k`json_build_array(${k.join(R.map(({field:P,tsKey:G,isJson:z})=>z?k`${k.identifier(`${$}_${G}`)}.${k.identifier("data")}`:H(P,j.Aliased)?P.sql:P),k`, `)})`;if(H(F,Ln))L=k`coalesce(json_agg(${L}${w.length>0?k` order by ${k.join(w,k`, `)}`:void 0}), '[]'::json)`;let h=[{dbKey:"data",tsKey:"data",field:L.as("data"),isJson:!0,relationTableTsKey:S.tsName,selection:R}];if(M!==void 0||_!==void 0||w.length>0)K=this.buildSelectQuery({table:yS(n,$),fields:{},fieldsFlat:[{path:[],field:k.raw("*")}],where:X,limit:M,offset:_,orderBy:w,setOperators:[]}),X=void 0,M=void 0,_=void 0,w=[];else K=yS(n,$);K=this.buildSelectQuery({table:H(K,co)?K:new bo(K,{},$),fields:{},fieldsFlat:h.map(({field:P})=>({path:[],field:H(P,_o)?CT(P,$):P})),joins:D,where:X,limit:M,offset:_,orderBy:w,setOperators:[]})}else K=this.buildSelectQuery({table:yS(n,$),fields:{},fieldsFlat:R.map(({field:L})=>({path:[],field:H(L,_o)?CT(L,$):L})),joins:D,where:X,limit:M,offset:_,orderBy:w,setOperators:[]});return{tableTsKey:S.tsName,sql:K,selection:R}}}class X${static[O]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class TT{static[O]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(o){if(this.fields=o.fields,this.session=o.session,this.dialect=o.dialect,o.withList)this.withList=o.withList;this.distinct=o.distinct}authToken;setToken(o){return this.authToken=o,this}from(o){let T=!!this.fields,f=o,n;if(this.fields)n=this.fields;else if(H(f,bo))n=Object.fromEntries(Object.keys(f._.selectedFields).map((S)=>[S,f[S]]));else if(H(f,hn))n=f[Ho].selectedFields;else if(H(f,j))n={};else n=eJ(f);return new H$({table:f,fields:n,isPartialSelect:T,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class H1 extends X${static[O]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:o,fields:T,isPartialSelect:f,session:n,dialect:S,withList:A,distinct:$}){super();this.config={withList:A,table:o,fields:{...T},distinct:$,setOperators:[]},this.isPartialSelect=f,this.session=n,this.dialect=S,this._={selectedFields:T},this.tableName=rT(o),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(o){return(T,f)=>{let n=this.tableName,S=rT(T);if(typeof S==="string"&&this.config.joins?.some((A)=>A.alias===S))throw new Error(`Alias "${S}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof n==="string")this.config.fields={[n]:this.config.fields};if(typeof S==="string"&&!H(T,j)){let A=H(T,bo)?T._.selectedFields:H(T,ST)?T[Ho].selectedFields:T[I.Symbol.Columns];this.config.fields[S]=A}}if(typeof f==="function")f=f(new Proxy(this.config.fields,new Do({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:f,table:T,joinType:o,alias:S}),typeof S==="string")switch(o){case"left":{this.joinsNotNullableMap[S]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([A])=>[A,!1])),this.joinsNotNullableMap[S]=!0;break}case"inner":{this.joinsNotNullableMap[S]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([A])=>[A,!1])),this.joinsNotNullableMap[S]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(o,T){return(f)=>{let n=typeof f==="function"?f(rO()):f;if(!Un(this.getSelectedFields(),n.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:o,isAll:T,rightSelect:n}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(o){return this.config.setOperators.push(...o),this}where(o){if(typeof o==="function")o=o(new Proxy(this.config.fields,new Do({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=o,this}having(o){if(typeof o==="function")o=o(new Proxy(this.config.fields,new Do({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=o,this}groupBy(...o){if(typeof o[0]==="function"){let T=o[0](new Proxy(this.config.fields,new Do({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(T)?T:[T]}else this.config.groupBy=o;return this}orderBy(...o){if(typeof o[0]==="function"){let T=o[0](new Proxy(this.config.fields,new Do({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),f=Array.isArray(T)?T:[T];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=f;else this.config.orderBy=f}else{let T=o;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=T;else this.config.orderBy=T}return this}limit(o){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=o;else this.config.limit=o;return this}offset(o){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=o;else this.config.offset=o;return this}for(o,T={}){return this.config.lockingClause={strength:o,config:T},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:o,...T}=this.dialect.sqlToQuery(this.getSQL());return T}as(o){return new Proxy(new bo(this.getSQL(),this.config.fields,o),new Do({alias:o,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new Do({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class H$ extends H1{static[O]="PgSelect";_prepare(o){let{session:T,config:f,dialect:n,joinsNotNullableMap:S,authToken:A}=this;if(!T)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return wo.startActiveSpan("drizzle.prepareQuery",()=>{let $=wT(f.fields),F=T.prepareQuery(n.sqlToQuery(this.getSQL()),$,o,!0);return F.joinsNotNullableMap=S,F.setToken(A)})}prepare(o){return this._prepare(o)}authToken;setToken(o){return this.authToken=o,this}execute=(o)=>{return wo.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(o,this.authToken)})}}uJ(H$,[oT]);function uf(o,T){return(f,n,...S)=>{let A=[n,...S].map(($)=>({type:o,isAll:T,rightSelect:$}));for(let $ of A)if(!Un(f.getSelectedFields(),$.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return f.addSetOperators(A)}}var rO=()=>({union:pO,unionAll:cO,intersect:ZO,intersectAll:PO,except:iO,exceptAll:gO}),pO=uf("union",!1),cO=uf("union",!0),ZO=uf("intersect",!1),PO=uf("intersect",!0),iO=uf("except",!1),gO=uf("except",!0);class bn{static[O]="PgQueryBuilder";dialect;dialectConfig;constructor(o){this.dialect=H(o,Xf)?o:void 0,this.dialectConfig=H(o,Xf)?void 0:o}$with=(o,T)=>{let f=this;return{as:(S)=>{if(typeof S==="function")S=S(f);return new Proxy(new Yn(S.getSQL(),T??("getSelectedFields"in S?S.getSelectedFields()??{}:{}),o,!0),new Do({alias:o,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...o){let T=this;function f(A){return new TT({fields:A??void 0,session:void 0,dialect:T.getDialect(),withList:o})}function n(A){return new TT({fields:A??void 0,session:void 0,dialect:T.getDialect(),distinct:!0})}function S(A,$){return new TT({fields:$??void 0,session:void 0,dialect:T.getDialect(),distinct:{on:A}})}return{select:f,selectDistinct:n,selectDistinctOn:S}}select(o){return new TT({fields:o??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(o){return new TT({fields:o??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(o,T){return new TT({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:o}})}getDialect(){if(!this.dialect)this.dialect=new Xf(this.dialectConfig);return this.dialect}}class cS{constructor(o,T,f,n,S){this.table=o,this.session=T,this.dialect=f,this.withList=n,this.overridingSystemValue_=S}static[O]="PgInsertBuilder";authToken;setToken(o){return this.authToken=o,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(o){if(o=Array.isArray(o)?o:[o],o.length===0)throw new Error("values() must be called with at least one value");let T=o.map((f)=>{let n={},S=this.table[I.Symbol.Columns];for(let A of Object.keys(f)){let $=f[A];n[A]=H($,j)?$:new RT($,S[A])}return n});return new K$(this.table,T,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(o){let T=typeof o==="function"?o(new bn):o;if(!H(T,j)&&!Un(this.table[_S],T._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new K$(this.table,T,this.session,this.dialect,this.withList,!0)}}class K$ extends oT{constructor(o,T,f,n,S,A,$){super();this.session=f,this.dialect=n,this.config={table:o,values:T,withList:S,select:A,overridingSystemValue_:$}}static[O]="PgInsert";config;returning(o=this.config.table[I.Symbol.Columns]){return this.config.returningFields=o,this.config.returning=wT(o),this}onConflictDoNothing(o={}){if(o.target===void 0)this.config.onConflict=k`do nothing`;else{let T="";T=Array.isArray(o.target)?o.target.map((n)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(n))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(o.target));let f=o.where?k` where ${o.where}`:void 0;this.config.onConflict=k`(${k.raw(T)})${f} do nothing`}return this}onConflictDoUpdate(o){if(o.where&&(o.targetWhere||o.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let T=o.where?k` where ${o.where}`:void 0,f=o.targetWhere?k` where ${o.targetWhere}`:void 0,n=o.setWhere?k` where ${o.setWhere}`:void 0,S=this.dialect.buildUpdateSet(this.config.table,KS(this.config.table,o.set)),A="";return A=Array.isArray(o.target)?o.target.map(($)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing($))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(o.target)),this.config.onConflict=k`(${k.raw(A)})${f} do update set ${S}${T}${n}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:o,...T}=this.dialect.sqlToQuery(this.getSQL());return T}_prepare(o){return wo.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,o,!0)})}prepare(o){return this._prepare(o)}authToken;setToken(o){return this.authToken=o,this}execute=(o)=>{return wo.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(o,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new Do({alias:qo(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class E$ extends oT{constructor(o,T,f){super();this.session=T,this.dialect=f,this.config={view:o}}static[O]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:o,...T}=this.dialect.sqlToQuery(this.getSQL());return T}_prepare(o){return wo.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,o,!0)})}prepare(o){return this._prepare(o)}authToken;setToken(o){return this.authToken=o,this}execute=(o)=>{return wo.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(o,this.authToken)})}}class ZS{constructor(o,T,f,n){this.table=o,this.session=T,this.dialect=f,this.withList=n}static[O]="PgUpdateBuilder";authToken;setToken(o){return this.authToken=o,this}set(o){return new K1(this.table,KS(this.table,o),this.session,this.dialect,this.withList).setToken(this.authToken)}}class K1 extends oT{constructor(o,T,f,n,S){super();this.session=f,this.dialect=n,this.config={set:T,table:o,withList:S,joins:[]},this.tableName=rT(o),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[O]="PgUpdate";config;tableName;joinsNotNullableMap;from(o){let T=o,f=rT(T);if(typeof f==="string")this.joinsNotNullableMap[f]=!0;return this.config.from=T,this}getTableLikeFields(o){if(H(o,co))return o[I.Symbol.Columns];else if(H(o,bo))return o._.selectedFields;return o[Ho].selectedFields}createJoin(o){return(T,f)=>{let n=rT(T);if(typeof n==="string"&&this.config.joins.some((S)=>S.alias===n))throw new Error(`Alias "${n}" is already used in this query`);if(typeof f==="function"){let S=this.config.from&&!H(this.config.from,j)?this.getTableLikeFields(this.config.from):void 0;f=f(new Proxy(this.config.table[I.Symbol.Columns],new Do({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),S&&new Proxy(S,new Do({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:f,table:T,joinType:o,alias:n}),typeof n==="string")switch(o){case"left":{this.joinsNotNullableMap[n]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([S])=>[S,!1])),this.joinsNotNullableMap[n]=!0;break}case"inner":{this.joinsNotNullableMap[n]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([S])=>[S,!1])),this.joinsNotNullableMap[n]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(o){return this.config.where=o,this}returning(o){if(!o){if(o=Object.assign({},this.config.table[I.Symbol.Columns]),this.config.from){let T=rT(this.config.from);if(typeof T==="string"&&this.config.from&&!H(this.config.from,j)){let f=this.getTableLikeFields(this.config.from);o[T]=f}for(let f of this.config.joins){let n=rT(f.table);if(typeof n==="string"&&!H(f.table,j)){let S=this.getTableLikeFields(f.table);o[n]=S}}}}return this.config.returningFields=o,this.config.returning=wT(o),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:o,...T}=this.dialect.sqlToQuery(this.getSQL());return T}_prepare(o){let T=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,o,!0);return T.joinsNotNullableMap=this.joinsNotNullableMap,T}prepare(o){return this._prepare(o)}authToken;setToken(o){return this.authToken=o,this}execute=(o)=>{return this._prepare().execute(o,this.authToken)};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new Do({alias:qo(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class xn extends j{constructor(o){super(xn.buildEmbeddedCount(o.source,o.filters).queryChunks);this.params=o,this.mapWith(Number),this.session=o.session,this.sql=xn.buildCount(o.source,o.filters)}sql;token;static[O]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(o,T){return k`(select count(*) from ${o}${k.raw(" where ").if(T)}${T})`}static buildCount(o,T){return k`select count(*) as count from ${o}${k.raw(" where ").if(T)}${T};`}setToken(o){return this.token=o,this}then(o,T){return Promise.resolve(this.session.count(this.sql,this.token)).then(o,T)}catch(o){return this.then(void 0,o)}finally(o){return this.then((T)=>{return o?.(),T},(T)=>{throw o?.(),T})}}class Y${constructor(o,T,f,n,S,A,$){this.fullSchema=o,this.schema=T,this.tableNamesMap=f,this.table=n,this.tableConfig=S,this.dialect=A,this.session=$}static[O]="PgRelationalQueryBuilder";findMany(o){return new G$(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,o?o:{},"many")}findFirst(o){return new G$(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,o?{...o,limit:1}:{limit:1},"first")}}class G$ extends oT{constructor(o,T,f,n,S,A,$,F,J){super();this.fullSchema=o,this.schema=T,this.tableNamesMap=f,this.table=n,this.tableConfig=S,this.dialect=A,this.session=$,this.config=F,this.mode=J}static[O]="PgRelationalQuery";_prepare(o){return wo.startActiveSpan("drizzle.prepareQuery",()=>{let{query:T,builtQuery:f}=this._toSQL();return this.session.prepareQuery(f,void 0,o,!0,(n,S)=>{let A=n.map(($)=>LS(this.schema,this.tableConfig,$,T.selection,S));if(this.mode==="first")return A[0];return A})})}prepare(o){return this._prepare(o)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let o=this._getQuery(),T=this.dialect.sqlToQuery(o.sql);return{query:o,builtQuery:T}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(o){return this.authToken=o,this}execute(){return wo.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class t$ extends oT{constructor(o,T,f,n){super();this.execute=o,this.sql=T,this.query=f,this.mapBatchResult=n}static[O]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(o,T){return T?this.mapBatchResult(o):o}_prepare(){return this}isResponseInArrayMode(){return!1}}class vn{constructor(o,T,f){if(this.dialect=o,this.session=T,this._=f?{schema:f.schema,fullSchema:f.fullSchema,tableNamesMap:f.tableNamesMap,session:T}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:T},this.query={},this._.schema)for(let[n,S]of Object.entries(this._.schema))this.query[n]=new Y$(f.fullSchema,this._.schema,this._.tableNamesMap,f.fullSchema[n],S,o,T)}static[O]="PgDatabase";query;$with=(o,T)=>{let f=this;return{as:(S)=>{if(typeof S==="function")S=S(new bn(f.dialect));return new Proxy(new Yn(S.getSQL(),T??("getSelectedFields"in S?S.getSelectedFields()??{}:{}),o,!0),new Do({alias:o,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(o,T){return new xn({source:o,filters:T,session:this.session})}with(...o){let T=this;function f(J){return new TT({fields:J??void 0,session:T.session,dialect:T.dialect,withList:o})}function n(J){return new TT({fields:J??void 0,session:T.session,dialect:T.dialect,withList:o,distinct:!0})}function S(J,R){return new TT({fields:R??void 0,session:T.session,dialect:T.dialect,withList:o,distinct:{on:J}})}function A(J){return new ZS(J,T.session,T.dialect,o)}function $(J){return new cS(J,T.session,T.dialect,o)}function F(J){return new pS(J,T.session,T.dialect,o)}return{select:f,selectDistinct:n,selectDistinctOn:S,update:A,insert:$,delete:F}}select(o){return new TT({fields:o??void 0,session:this.session,dialect:this.dialect})}selectDistinct(o){return new TT({fields:o??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(o,T){return new TT({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:{on:o}})}update(o){return new ZS(o,this.session,this.dialect)}insert(o){return new cS(o,this.session,this.dialect)}delete(o){return new pS(o,this.session,this.dialect)}refreshMaterializedView(o){return new E$(o,this.session,this.dialect)}authToken;execute(o){let T=typeof o==="string"?k.raw(o):o.getSQL(),f=this.dialect.sqlToQuery(T),n=this.session.prepareQuery(f,void 0,void 0,!1);return new t$(()=>n.execute(void 0,this.authToken),T,f,(S)=>n.mapResult(S,!0))}transaction(o,T){return this.session.transaction(o,T)}}class E1{constructor(o,T){this.unique=o,this.name=T}static[O]="PgIndexBuilderOn";on(...o){return new PS(o.map((T)=>{if(H(T,j))return T;T=T;let f=new Gn(T.name,!!T.keyAsName,T.columnType,T.indexConfig);return T.indexConfig=JSON.parse(JSON.stringify(T.defaultConfig)),f}),this.unique,!1,this.name)}onOnly(...o){return new PS(o.map((T)=>{if(H(T,j))return T;T=T;let f=new Gn(T.name,!!T.keyAsName,T.columnType,T.indexConfig);return T.indexConfig=T.defaultConfig,f}),this.unique,!0,this.name)}using(o,...T){return new PS(T.map((f)=>{if(H(f,j))return f;f=f;let n=new Gn(f.name,!!f.keyAsName,f.columnType,f.indexConfig);return f.indexConfig=JSON.parse(JSON.stringify(f.defaultConfig)),n}),this.unique,!0,this.name,o)}}class PS{static[O]="PgIndexBuilder";config;constructor(o,T,f,n,S="btree"){this.config={name:n,columns:o,unique:T,only:f,method:S}}concurrently(){return this.config.concurrently=!0,this}with(o){return this.config.with=o,this}where(o){return this.config.where=o,this}build(o){return new G1(this.config,o)}}class G1{static[O]="PgIndex";config;constructor(o,T){this.config={...o,table:T}}}function z$(o){return new E1(!0,o)}class Q${constructor(o){this.query=o}authToken;getQuery(){return this.query}mapResult(o,T){return o}setToken(o){return this.authToken=o,this}static[O]="PgPreparedQuery";joinsNotNullableMap}class D${constructor(o){this.dialect=o}static[O]="PgSession";execute(o,T){return wo.startActiveSpan("drizzle.operation",()=>{return wo.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(o),void 0,void 0,!1)}).setToken(T).execute(void 0,T)})}all(o){return this.prepareQuery(this.dialect.sqlToQuery(o),void 0,void 0,!1).all()}async count(o,T){let f=await this.execute(o,T);return Number(f[0].count)}}class U$ extends vn{constructor(o,T,f,n=0){super(o,T,f);this.schema=f,this.nestedIndex=n}static[O]="PgTransaction";rollback(){throw new iA}getTransactionConfigSQL(o){let T=[];if(o.isolationLevel)T.push(`isolation level ${o.isolationLevel}`);if(o.accessMode)T.push(o.accessMode);if(typeof o.deferrable==="boolean")T.push(o.deferrable?"deferrable":"not deferrable");return k.raw(T.join(" "))}setTransaction(o){return this.session.execute(k`set transaction ${this.getTransactionConfigSQL(o)}`)}}class Y1 extends Q${constructor(o,T,f,n,S,A,$){super({sql:T,params:f});this.client=o,this.queryString=T,this.params=f,this.logger=n,this.fields=S,this._isResponseInArrayMode=A,this.customResultMapper=$}static[O]="PostgresJsPreparedQuery";async execute(o={}){return wo.startActiveSpan("drizzle.execute",async(T)=>{let f=ZA(this.params,o);T?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(f)}),this.logger.logQuery(this.queryString,f);let{fields:n,queryString:S,client:A,joinsNotNullableMap:$,customResultMapper:F}=this;if(!n&&!F)return wo.startActiveSpan("drizzle.driver.execute",()=>{return A.unsafe(S,f)});let J=await wo.startActiveSpan("drizzle.driver.execute",()=>{return T?.setAttributes({"drizzle.query.text":S,"drizzle.query.params":JSON.stringify(f)}),A.unsafe(S,f).values()});return wo.startActiveSpan("drizzle.mapResponse",()=>{return F?F(J):J.map((R)=>lJ(n,R,$))})})}all(o={}){return wo.startActiveSpan("drizzle.execute",async(T)=>{let f=ZA(this.params,o);return T?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(f)}),this.logger.logQuery(this.queryString,f),wo.startActiveSpan("drizzle.driver.execute",()=>{return T?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(f)}),this.client.unsafe(this.queryString,f)})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class qn extends D${constructor(o,T,f,n={}){super(T);this.client=o,this.schema=f,this.options=n,this.logger=n.logger??new dA}static[O]="PostgresJsSession";logger;prepareQuery(o,T,f,n,S){return new Y1(this.client,o.sql,o.params,this.logger,T,n,S)}query(o,T){return this.logger.logQuery(o,T),this.client.unsafe(o,T).values()}queryObjects(o,T){return this.client.unsafe(o,T)}transaction(o,T){return this.client.begin(async(f)=>{let n=new qn(f,this.dialect,this.schema,this.options),S=new V$(this.dialect,n,this.schema);if(T)await S.setTransaction(T);return o(S)})}}class V$ extends U${constructor(o,T,f,n=0){super(o,T,f,n);this.session=T}static[O]="PostgresJsTransaction";transaction(o){return this.session.client.savepoint((T)=>{let f=new qn(T,this.dialect,this.schema,this.session.options),n=new V$(this.dialect,f,this.schema);return o(n)})}}class t1 extends vn{static[O]="PostgresJsDatabase"}function ef(o,T={}){let f=(J)=>J;for(let J of["1184","1082","1083","1114"])o.options.parsers[J]=f,o.options.serializers[J]=f;o.options.serializers["114"]=f,o.options.serializers["3802"]=f;let n=new Xf({casing:T.casing}),S;if(T.logger===!0)S=new gA;else if(T.logger!==!1)S=T.logger;let A;if(T.schema){let J=l0(T.schema,e0);A={fullSchema:T.schema,schema:J.tables,tableNamesMap:J.tableNamesMap}}let $=new qn(o,n,A,{logger:S}),F=new t1(n,$,A);return F.$client=o,F}function iS(...o){if(typeof o[0]==="string"){let T=lf(o[0]);return ef(T,o[1])}if(sJ(o[0])){let{connection:T,client:f,...n}=o[0];if(f)return ef(f,n);if(typeof T==="object"&&T.url!==void 0){let{url:A,...$}=T,F=lf(A,$);return ef(F,n)}let S=lf(T);return ef(S,n)}return ef(o[0],o[1])}((o)=>{function T(f){return ef({options:{parsers:{},serializers:{}}},f)}o.mock=T})(iS||(iS={}));var L$={};VM(L$,{users:()=>Hf,userChanges:()=>lO,untrackedUserColumnNames:()=>dO,twoFactorMethod:()=>V1,trackedUserColumnName:()=>U1,trackableUserColumnNames:()=>D1,role:()=>Q1,players:()=>B$,passwordResetAttempts:()=>eO,loginHistory:()=>uO,games:()=>gS,banishedIps:()=>sO});function z1(o){return k`lower(${o})`}var Q1=OS("role",["admin","user"]),Hf=sT("users",{id:MT().primaryKey().defaultRandom(),username:po({length:16}).notNull(),email:po({length:254}).notNull(),hash:po({length:64}).notNull(),salt:po({length:36}).notNull(),createdAt:QT({withTimezone:!0}).notNull().defaultNow(),createdIp:po({length:45}).notNull(),isActive:Vn().notNull().default(!1),verifiedAt:QT({withTimezone:!0}),userRole:Q1().default("user")},(o)=>[z$("usernameUniqueIndex").on(z1(o.username)),z$("emailUniqueIndex").on(z1(o.email))]),dO=["id","createdAt","createdIp","isActive","salt","verifiedAt"],D1=["username","email","hash","userRole"],U1=OS("trackedUserColumnName",D1),lO=sT("userChanges",{id:MT().primaryKey().defaultRandom(),userId:MT().notNull().references(()=>Hf.id),changedAt:QT({withTimezone:!0}).notNull().defaultNow(),changedIp:po({length:45}).notNull(),changedColumn:U1().notNull(),oldValue:po({length:255}),newValue:po({length:255})}),gS=sT("games",{id:MT().primaryKey().defaultRandom()}),B$=sT("players",{userId:MT().notNull().references(()=>Hf.id),gameId:MT().notNull().references(()=>gS.id),score:YS().notNull()},(o)=>[Z0({name:"players_userId_gameId_pk",columns:[o.userId,o.gameId]})]),uO=sT("loginHistory",{id:MT().primaryKey().defaultRandom(),userId:MT().references(()=>Hf.id),loginTime:QT({withTimezone:!0}).notNull().defaultNow(),ipAddress:po({length:45}).notNull(),userAgent:po({length:1024}),successful:Vn().notNull().default(!1)}),V1=OS("twoFactorMethod",["email","phone"]),eO=sT("passwordResetAttempts",{id:MT().primaryKey().defaultRandom(),userId:MT().notNull().references(()=>Hf.id),requestedIp:po({length:45}).notNull(),requestedAt:QT({withTimezone:!0}).notNull().defaultNow(),succeededIp:po({length:45}),succeededAt:QT({withTimezone:!0}),verificationMethod:V1().notNull()}),sO=sT("banishedIps",{ip:po({length:45}).primaryKey(),reason:po({length:2048}).notNull(),banishedAt:QT({withTimezone:!0}).notNull().defaultNow(),banishedUntil:QT({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class C${options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(aO.resolve(__dirname,"notify_update.sql"));let o=[qo(Hf),qo(gS),qo(B$)];await this.sql`SELECT create_notify_triggers(${this.sql.array(o)})`,await this.sql.listen("table_update",(T)=>{let f=T.split(","),n=f[0],S=f[1],A=`${n}("${S}")`;if(this.observers.has(A))this.observers.get(A).next(A)})}constructor(o=!1,T={host:tT.POSTGRES_HOST,port:tT.POSTGRES_PORT,user:tT.POSTGRES_USER,password:tT.POSTGRES_PASSWORD,database:tT.POSTGRES_DATABASE}){this.options=T,this.sql=lf(T),this.drizzle=iS(this.sql,{schema:L$,logger:o})}observe(o,T){if(!this.observers.has(o))this.observers.set(o,new oo);this.observers.get(o).subscribe("SINGLETON",T)}}var dS={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",306:"Switch Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",510:"Not Extended",511:"Network Authentication Required"},m$=P$(dS).map(([o])=>Go.literal(Number(o))),ok=Go.union([m$[0],m$[1],...m$]),B1=Go.tuple([ok,Go.string()]);var j$=new zA,{logger:$T}=j$;Object.assign(console,$T,{log:$T.info});$T.info("ready");var I$=C1(import.meta.dir,"..","app"),$z=new C$({logQuery(o,T){$T.info("\uD83D\uDCDD query",o,T)}});nk({hostname:"0.0.0.0",port:tT.FRONTEND_PORT??3333,...MJ??void 0,async fetch(o){try{let T=new Date,f=new URL(o.url);if($T.info(o.method,f.pathname),f.pathname==="/")return new Response(Bun.file(C1(I$,"index.html")));if(f.pathname==="/index.html")return Response.redirect("/");let n=Tk(I$,f.pathname),S=fk(n);if(!S.startsWith(I$))throw[403,"Access Denied"];if(!await L1(S).exists())return Response.redirect("/");return new Response(L1(S))}catch(T){let f=B1.safeParse(T);if(f.success){let[n,S]=f.data,$=`${dS[n]}. ${S}`;return $T.info(`\u274C ${n}: ${$}`),new Response($,{status:n})}if(T instanceof Error)$T.error(T.message);else{let n=Df(T);$T.error("frontend server threw",n)}return new Response(dS[500],{status:500})}}});function lS(){$T.info("\uD83D\uDEEC frontend server exiting"),process.exit(0)}process.on("SIGINT",()=>{$T.info("\u2757 received SIGINT; exiting gracefully"),lS()});process.on("SIGTERM",()=>{$T.info("\u2757 received SIGTERM; exiting gracefully"),lS()});process.on("exit",()=>{$T.info("\u2757 received exit; exiting gracefully"),lS()});j$.on("timeToStop",()=>{$T.info('\u2757 backend server received signal "timeToStop"; exiting gracefully'),lS()});$T.info(`\uD83D\uDEEB frontend server running at http://localhost:${tT.FRONTEND_PORT}/`);j$.emit("alive");
43
+ `;await T.execute(k`CREATE SCHEMA IF NOT EXISTS ${k.identifier(S)}`),await T.execute(A);let F=(await T.all(k`select id, hash, created_at from ${k.identifier(S)}.${k.identifier(f)} order by created_at desc limit 1`))[0];await T.transaction(async(J)=>{for await(let t of o)if(!F||Number(F.created_at)<t.folderMillis){for(let R of t.sql)await J.execute(k.raw(R));await J.execute(k`insert into ${k.identifier(S)}.${k.identifier(f)} ("hash", "created_at") values(${t.hash}, ${t.folderMillis})`)}})}escapeName(o){return`"${o}"`}escapeParam(o){return`$${o+1}`}escapeString(o){return`'${o.replace(/'/g,"''")}'`}buildWithCTE(o){if(!o?.length)return;let T=[k`with `];for(let[n,f]of o.entries())if(T.push(k`${k.identifier(f._.alias)} as (${f._.sql})`),n<o.length-1)T.push(k`, `);return T.push(k` `),k.join(T)}buildDeleteQuery({table:o,where:T,returning:n,withList:f}){let S=this.buildWithCTE(f),A=n?k` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0,$=T?k` where ${T}`:void 0;return k`${S}delete from ${o}${$}${A}`}buildUpdateSet(o,T){let n=o[I.Symbol.Columns],f=Object.keys(n).filter((A)=>T[A]!==void 0||n[A]?.onUpdateFn!==void 0),S=f.length;return k.join(f.flatMap((A,$)=>{let F=n[A],J=T[A]??k.param(F.onUpdateFn(),F),t=k`${k.identifier(this.casing.getColumnCasing(F))} = ${J}`;if($<S-1)return[t,k.raw(", ")];return[t]}))}buildUpdateQuery({table:o,set:T,where:n,returning:f,withList:S,from:A,joins:$}){let F=this.buildWithCTE(S),J=o[co.Symbol.Name],t=o[co.Symbol.Schema],R=o[co.Symbol.OriginalName],W=J===R?void 0:J,O=k`${t?k`${k.identifier(t)}.`:void 0}${k.identifier(R)}${W&&k` ${k.identifier(W)}`}`,_=this.buildUpdateSet(o,T),Q=A&&k.join([k.raw(" from "),this.buildFromTable(A)]),H=this.buildJoins($),m=f?k` returning ${this.buildSelection(f,{isSingleTable:!A})}`:void 0,b=n?k` where ${n}`:void 0;return k`${F}update ${O} set ${_}${Q}${H}${b}${m}`}buildSelection(o,{isSingleTable:T=!1}={}){let n=o.length,f=o.flatMap(({field:S},A)=>{let $=[];if(X(S,j.Aliased)&&S.isSelectionField)$.push(k.identifier(S.fieldAlias));else if(X(S,j.Aliased)||X(S,j)){let F=X(S,j.Aliased)?S.sql:S;if(T)$.push(new j(F.queryChunks.map((J)=>{if(X(J,V))return k.identifier(this.casing.getColumnCasing(J));return J})));else $.push(F);if(X(S,j.Aliased))$.push(k` as ${k.identifier(S.fieldAlias)}`)}else if(X(S,Wo))if(T)$.push(k.identifier(this.casing.getColumnCasing(S)));else $.push(S);if(A<n-1)$.push(k`, `);return $});return k.join(f)}buildJoins(o){if(!o||o.length===0)return;let T=[];for(let[n,f]of o.entries()){if(n===0)T.push(k` `);let S=f.table,A=f.lateral?k` lateral`:void 0;if(X(S,co)){let $=S[co.Symbol.Name],F=S[co.Symbol.Schema],J=S[co.Symbol.OriginalName],t=$===J?void 0:f.alias;T.push(k`${k.raw(f.joinType)} join${A} ${F?k`${k.identifier(F)}.`:void 0}${k.identifier(J)}${t&&k` ${k.identifier(t)}`} on ${f.on}`)}else if(X(S,ST)){let $=S[Xo].name,F=S[Xo].schema,J=S[Xo].originalName,t=$===J?void 0:f.alias;T.push(k`${k.raw(f.joinType)} join${A} ${F?k`${k.identifier(F)}.`:void 0}${k.identifier(J)}${t&&k` ${k.identifier(t)}`} on ${f.on}`)}else T.push(k`${k.raw(f.joinType)} join${A} ${S} on ${f.on}`);if(n<o.length-1)T.push(k` `)}return k.join(T)}buildFromTable(o){if(X(o,I)&&o[I.Symbol.IsAlias]){let T=k`${k.identifier(o[I.Symbol.OriginalName])}`;if(o[I.Symbol.Schema])T=k`${k.identifier(o[I.Symbol.Schema])}.${T}`;return k`${T} ${k.identifier(o[I.Symbol.Name])}`}return o}buildSelectQuery({withList:o,fields:T,fieldsFlat:n,where:f,having:S,table:A,joins:$,orderBy:F,groupBy:J,limit:t,offset:R,lockingClause:W,distinct:O,setOperators:_}){let Q=n??OT(T);for(let a of Q)if(X(a.field,Wo)&&vo(a.field.table)!==(X(A,No)?A._.alias:X(A,bf)?A[Xo].name:X(A,j)?void 0:vo(A))&&!((ko)=>$?.some(({alias:mo})=>mo===(ko[I.Symbol.IsAlias]?vo(ko):ko[I.Symbol.BaseName])))(a.field.table)){let ko=vo(a.field.table);throw new Error(`Your "${a.path.join("->")}" field references a column "${ko}"."${a.field.name}", but the table "${ko}" is not part of the query! Did you forget to join it?`)}let H=!$||$.length===0,m=this.buildWithCTE(o),b;if(O)b=O===!0?k` distinct`:k` distinct on (${k.join(O.on,k`, `)})`;let r=this.buildSelection(Q,{isSingleTable:H}),P=this.buildFromTable(A),E=this.buildJoins($),z=f?k` where ${f}`:void 0,U=S?k` having ${S}`:void 0,D;if(F&&F.length>0)D=k` order by ${k.join(F,k`, `)}`;let v;if(J&&J.length>0)v=k` group by ${k.join(J,k`, `)}`;let l=typeof t==="object"||typeof t==="number"&&t>=0?k` limit ${t}`:void 0,K=R?k` offset ${R}`:void 0,s=k.empty();if(W){let a=k` for ${k.raw(W.strength)}`;if(W.config.of)a.append(k` of ${k.join(Array.isArray(W.config.of)?W.config.of:[W.config.of],k`, `)}`);if(W.config.noWait)a.append(k` no wait`);else if(W.config.skipLocked)a.append(k` skip locked`);s.append(a)}let q=k`${m}select${b} ${r} from ${P}${E}${z}${v}${U}${D}${l}${K}${s}`;if(_.length>0)return this.buildSetOperations(q,_);return q}buildSetOperations(o,T){let[n,...f]=T;if(!n)throw new Error("Cannot pass undefined values to any set operator");if(f.length===0)return this.buildSetOperationQuery({leftSelect:o,setOperator:n});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:o,setOperator:n}),f)}buildSetOperationQuery({leftSelect:o,setOperator:{type:T,isAll:n,rightSelect:f,limit:S,orderBy:A,offset:$}}){let F=k`(${o.getSQL()}) `,J=k`(${f.getSQL()})`,t;if(A&&A.length>0){let _=[];for(let Q of A)if(X(Q,V))_.push(k.identifier(Q.name));else if(X(Q,j)){for(let H=0;H<Q.queryChunks.length;H++){let m=Q.queryChunks[H];if(X(m,V))Q.queryChunks[H]=k.identifier(m.name)}_.push(k`${Q}`)}else _.push(k`${Q}`);t=k` order by ${k.join(_,k`, `)} `}let R=typeof S==="object"||typeof S==="number"&&S>=0?k` limit ${S}`:void 0,W=k.raw(`${T} ${n?"all ":""}`),O=$?k` offset ${$}`:void 0;return k`${F}${W}${J}${t}${R}${O}`}buildInsertQuery({table:o,values:T,onConflict:n,returning:f,withList:S,select:A,overridingSystemValue_:$}){let F=[],J=o[I.Symbol.Columns],t=Object.entries(J).filter(([m,b])=>!b.shouldDisableInsert()),R=t.map(([,m])=>k.identifier(this.casing.getColumnCasing(m)));if(A){let m=T;if(X(m,j))F.push(m);else F.push(m.getSQL())}else{let m=T;F.push(k.raw("values "));for(let[b,r]of m.entries()){let P=[];for(let[E,z]of t){let U=r[E];if(U===void 0||X(U,tT)&&U.value===void 0)if(z.defaultFn!==void 0){let D=z.defaultFn(),v=X(D,j)?D:k.param(D,z);P.push(v)}else if(!z.default&&z.onUpdateFn!==void 0){let D=z.onUpdateFn(),v=X(D,j)?D:k.param(D,z);P.push(v)}else P.push(k`default`);else P.push(U)}if(F.push(P),b<m.length-1)F.push(k`, `)}}let W=this.buildWithCTE(S),O=k.join(F),_=f?k` returning ${this.buildSelection(f,{isSingleTable:!0})}`:void 0,Q=n?k` on conflict ${n}`:void 0,H=$===!0?k`overriding system value `:void 0;return k`${W}insert into ${o} ${R} ${H}${O}${Q}${_}`}buildRefreshMaterializedViewQuery({view:o,concurrently:T,withNoData:n}){let f=T?k` concurrently`:void 0,S=n?k` with no data`:void 0;return k`refresh materialized view${f} ${o}${S}`}prepareTyping(o){if(X(o,DS)||X(o,zS))return"json";else if(X(o,QS))return"decimal";else if(X(o,US))return"time";else if(X(o,VS)||X(o,BS))return"timestamp";else if(X(o,ES)||X(o,GS))return"date";else if(X(o,mS))return"uuid";else return"none"}sqlToQuery(o,T){return o.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:T})}buildRelationalQueryWithoutPK({fullSchema:o,schema:T,tableNamesMap:n,table:f,tableConfig:S,queryConfig:A,tableAlias:$,nestedQueryRelation:F,joinOn:J}){let t=[],R,W,O=[],_,Q=[];if(A===!0)t=Object.entries(S.columns).map(([b,r])=>({dbKey:r.name,tsKey:b,field:LT(r,$),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let m=Object.fromEntries(Object.entries(S.columns).map(([U,D])=>[U,LT(D,$)]));if(A.where){let U=typeof A.where==="function"?A.where(m,sR()):A.where;_=U&&Qf(U,$)}let b=[],r=[];if(A.columns){let U=!1;for(let[D,v]of Object.entries(A.columns)){if(v===void 0)continue;if(D in S.columns){if(!U&&v===!0)U=!0;r.push(D)}}if(r.length>0)r=U?r.filter((D)=>A.columns?.[D]===!0):Object.keys(S.columns).filter((D)=>!r.includes(D))}else r=Object.keys(S.columns);for(let U of r){let D=S.columns[U];b.push({tsKey:U,value:D})}let P=[];if(A.with)P=Object.entries(A.with).filter((U)=>!!U[1]).map(([U,D])=>({tsKey:U,queryConfig:D,relation:S.relations[U]}));let E;if(A.extras){E=typeof A.extras==="function"?A.extras(m,{sql:k}):A.extras;for(let[U,D]of Object.entries(E))b.push({tsKey:U,value:gA(D,$)})}for(let{tsKey:U,value:D}of b)t.push({dbKey:X(D,j.Aliased)?D.fieldAlias:S.columns[U].name,tsKey:U,field:X(D,Wo)?LT(D,$):D,relationTableTsKey:void 0,isJson:!1,selection:[]});let z=typeof A.orderBy==="function"?A.orderBy(m,aR()):A.orderBy??[];if(!Array.isArray(z))z=[z];O=z.map((U)=>{if(X(U,Wo))return LT(U,$);return Qf(U,$)}),R=A.limit,W=A.offset;for(let{tsKey:U,queryConfig:D,relation:v}of P){let l=T0(T,n,v),K=kn(v.referencedTable),s=n[K],q=`${$}_${U}`,a=Uf(...l.fields.map((nT,IT)=>HS(LT(l.references[IT],q),LT(nT,$)))),ko=this.buildRelationalQueryWithoutPK({fullSchema:o,schema:T,tableNamesMap:n,table:o[s],tableConfig:T[s],queryConfig:X(v,on)?D===!0?{limit:1}:{...D,limit:1}:D,tableAlias:q,joinOn:a,nestedQueryRelation:v}),mo=k`${k.identifier(q)}.${k.identifier("data")}`.as(U);Q.push({on:k`true`,table:new No(ko.sql,{},q),alias:q,joinType:"left",lateral:!0}),t.push({dbKey:U,tsKey:U,field:mo,relationTableTsKey:s,isJson:!0,selection:ko.selection})}}if(t.length===0)throw new XS({message:`No fields selected for table "${S.tsName}" ("${$}")`});let H;if(_=Uf(J,_),F){let m=k`json_build_array(${k.join(t.map(({field:P,tsKey:E,isJson:z})=>z?k`${k.identifier(`${$}_${E}`)}.${k.identifier("data")}`:X(P,j.Aliased)?P.sql:P),k`, `)})`;if(X(F,Lf))m=k`coalesce(json_agg(${m}${O.length>0?k` order by ${k.join(O,k`, `)}`:void 0}), '[]'::json)`;let b=[{dbKey:"data",tsKey:"data",field:m.as("data"),isJson:!0,relationTableTsKey:S.tsName,selection:t}];if(R!==void 0||W!==void 0||O.length>0)H=this.buildSelectQuery({table:_S(f,$),fields:{},fieldsFlat:[{path:[],field:k.raw("*")}],where:_,limit:R,offset:W,orderBy:O,setOperators:[]}),_=void 0,R=void 0,W=void 0,O=[];else H=_S(f,$);H=this.buildSelectQuery({table:X(H,co)?H:new No(H,{},$),fields:{},fieldsFlat:b.map(({field:P})=>({path:[],field:X(P,Wo)?LT(P,$):P})),joins:Q,where:_,limit:R,offset:W,orderBy:O,setOperators:[]})}else H=this.buildSelectQuery({table:_S(f,$),fields:{},fieldsFlat:t.map(({field:m})=>({path:[],field:X(m,Wo)?LT(m,$):m})),joins:Q,where:_,limit:R,offset:W,orderBy:O,setOperators:[]});return{tableTsKey:S.tsName,sql:H,selection:t}}}class H${static[y]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class TT{static[y]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(o){if(this.fields=o.fields,this.session=o.session,this.dialect=o.dialect,o.withList)this.withList=o.withList;this.distinct=o.distinct}authToken;setToken(o){return this.authToken=o,this}from(o){let T=!!this.fields,n=o,f;if(this.fields)f=this.fields;else if(X(n,No))f=Object.fromEntries(Object.keys(n._.selectedFields).map((S)=>[S,n[S]]));else if(X(n,bf))f=n[Xo].selectedFields;else if(X(n,j))f={};else f=sJ(n);return new K$({table:n,fields:f,isPartialSelect:T,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class Y0 extends H${static[y]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:o,fields:T,isPartialSelect:n,session:f,dialect:S,withList:A,distinct:$}){super();this.config={withList:A,table:o,fields:{...T},distinct:$,setOperators:[]},this.isPartialSelect=n,this.session=f,this.dialect=S,this._={selectedFields:T},this.tableName=qT(o),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(o){return(T,n)=>{let f=this.tableName,S=qT(T);if(typeof S==="string"&&this.config.joins?.some((A)=>A.alias===S))throw new Error(`Alias "${S}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof f==="string")this.config.fields={[f]:this.config.fields};if(typeof S==="string"&&!X(T,j)){let A=X(T,No)?T._.selectedFields:X(T,ST)?T[Xo].selectedFields:T[I.Symbol.Columns];this.config.fields[S]=A}}if(typeof n==="function")n=n(new Proxy(this.config.fields,new Qo({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:n,table:T,joinType:o,alias:S}),typeof S==="string")switch(o){case"left":{this.joinsNotNullableMap[S]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([A])=>[A,!1])),this.joinsNotNullableMap[S]=!0;break}case"inner":{this.joinsNotNullableMap[S]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([A])=>[A,!1])),this.joinsNotNullableMap[S]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(o,T){return(n)=>{let f=typeof n==="function"?n(iy()):n;if(!Vf(this.getSelectedFields(),f.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:o,isAll:T,rightSelect:f}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(o){return this.config.setOperators.push(...o),this}where(o){if(typeof o==="function")o=o(new Proxy(this.config.fields,new Qo({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=o,this}having(o){if(typeof o==="function")o=o(new Proxy(this.config.fields,new Qo({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=o,this}groupBy(...o){if(typeof o[0]==="function"){let T=o[0](new Proxy(this.config.fields,new Qo({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(T)?T:[T]}else this.config.groupBy=o;return this}orderBy(...o){if(typeof o[0]==="function"){let T=o[0](new Proxy(this.config.fields,new Qo({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),n=Array.isArray(T)?T:[T];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=n;else this.config.orderBy=n}else{let T=o;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=T;else this.config.orderBy=T}return this}limit(o){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=o;else this.config.limit=o;return this}offset(o){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=o;else this.config.offset=o;return this}for(o,T={}){return this.config.lockingClause={strength:o,config:T},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:o,...T}=this.dialect.sqlToQuery(this.getSQL());return T}as(o){return new Proxy(new No(this.getSQL(),this.config.fields,o),new Qo({alias:o,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new Qo({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class K$ extends Y0{static[y]="PgSelect";_prepare(o){let{session:T,config:n,dialect:f,joinsNotNullableMap:S,authToken:A}=this;if(!T)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return Oo.startActiveSpan("drizzle.prepareQuery",()=>{let $=OT(n.fields),F=T.prepareQuery(f.sqlToQuery(this.getSQL()),$,o,!0);return F.joinsNotNullableMap=S,F.setToken(A)})}prepare(o){return this._prepare(o)}authToken;setToken(o){return this.authToken=o,this}execute=(o)=>{return Oo.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(o,this.authToken)})}}eJ(K$,[oT]);function en(o,T){return(n,f,...S)=>{let A=[f,...S].map(($)=>({type:o,isAll:T,rightSelect:$}));for(let $ of A)if(!Vf(n.getSelectedFields(),$.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return n.addSetOperators(A)}}var iy=()=>({union:gy,unionAll:dy,intersect:ly,intersectAll:uy,except:ey,exceptAll:sy}),gy=en("union",!1),dy=en("union",!0),ly=en("intersect",!1),uy=en("intersect",!0),ey=en("except",!1),sy=en("except",!0);class xf{static[y]="PgQueryBuilder";dialect;dialectConfig;constructor(o){this.dialect=X(o,Xn)?o:void 0,this.dialectConfig=X(o,Xn)?void 0:o}$with=(o,T)=>{let n=this;return{as:(S)=>{if(typeof S==="function")S=S(n);return new Proxy(new Yf(S.getSQL(),T??("getSelectedFields"in S?S.getSelectedFields()??{}:{}),o,!0),new Qo({alias:o,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...o){let T=this;function n(A){return new TT({fields:A??void 0,session:void 0,dialect:T.getDialect(),withList:o})}function f(A){return new TT({fields:A??void 0,session:void 0,dialect:T.getDialect(),distinct:!0})}function S(A,$){return new TT({fields:$??void 0,session:void 0,dialect:T.getDialect(),distinct:{on:A}})}return{select:n,selectDistinct:f,selectDistinctOn:S}}select(o){return new TT({fields:o??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(o){return new TT({fields:o??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(o,T){return new TT({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:o}})}getDialect(){if(!this.dialect)this.dialect=new Xn(this.dialectConfig);return this.dialect}}class ZS{constructor(o,T,n,f,S){this.table=o,this.session=T,this.dialect=n,this.withList=f,this.overridingSystemValue_=S}static[y]="PgInsertBuilder";authToken;setToken(o){return this.authToken=o,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(o){if(o=Array.isArray(o)?o:[o],o.length===0)throw new Error("values() must be called with at least one value");let T=o.map((n)=>{let f={},S=this.table[I.Symbol.Columns];for(let A of Object.keys(n)){let $=n[A];f[A]=X($,j)?$:new tT($,S[A])}return f});return new E$(this.table,T,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(o){let T=typeof o==="function"?o(new xf):o;if(!X(T,j)&&!Vf(this.table[OS],T._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new E$(this.table,T,this.session,this.dialect,this.withList,!0)}}class E$ extends oT{constructor(o,T,n,f,S,A,$){super();this.session=n,this.dialect=f,this.config={table:o,values:T,withList:S,select:A,overridingSystemValue_:$}}static[y]="PgInsert";config;returning(o=this.config.table[I.Symbol.Columns]){return this.config.returningFields=o,this.config.returning=OT(o),this}onConflictDoNothing(o={}){if(o.target===void 0)this.config.onConflict=k`do nothing`;else{let T="";T=Array.isArray(o.target)?o.target.map((f)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(f))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(o.target));let n=o.where?k` where ${o.where}`:void 0;this.config.onConflict=k`(${k.raw(T)})${n} do nothing`}return this}onConflictDoUpdate(o){if(o.where&&(o.targetWhere||o.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let T=o.where?k` where ${o.where}`:void 0,n=o.targetWhere?k` where ${o.targetWhere}`:void 0,f=o.setWhere?k` where ${o.setWhere}`:void 0,S=this.dialect.buildUpdateSet(this.config.table,KS(this.config.table,o.set)),A="";return A=Array.isArray(o.target)?o.target.map(($)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing($))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(o.target)),this.config.onConflict=k`(${k.raw(A)})${n} do update set ${S}${T}${f}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:o,...T}=this.dialect.sqlToQuery(this.getSQL());return T}_prepare(o){return Oo.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,o,!0)})}prepare(o){return this._prepare(o)}authToken;setToken(o){return this.authToken=o,this}execute=(o)=>{return Oo.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(o,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new Qo({alias:vo(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class G$ extends oT{constructor(o,T,n){super();this.session=T,this.dialect=n,this.config={view:o}}static[y]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:o,...T}=this.dialect.sqlToQuery(this.getSQL());return T}_prepare(o){return Oo.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,o,!0)})}prepare(o){return this._prepare(o)}authToken;setToken(o){return this.authToken=o,this}execute=(o)=>{return Oo.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(o,this.authToken)})}}class PS{constructor(o,T,n,f){this.table=o,this.session=T,this.dialect=n,this.withList=f}static[y]="PgUpdateBuilder";authToken;setToken(o){return this.authToken=o,this}set(o){return new z0(this.table,KS(this.table,o),this.session,this.dialect,this.withList).setToken(this.authToken)}}class z0 extends oT{constructor(o,T,n,f,S){super();this.session=n,this.dialect=f,this.config={set:T,table:o,withList:S,joins:[]},this.tableName=qT(o),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[y]="PgUpdate";config;tableName;joinsNotNullableMap;from(o){let T=o,n=qT(T);if(typeof n==="string")this.joinsNotNullableMap[n]=!0;return this.config.from=T,this}getTableLikeFields(o){if(X(o,co))return o[I.Symbol.Columns];else if(X(o,No))return o._.selectedFields;return o[Xo].selectedFields}createJoin(o){return(T,n)=>{let f=qT(T);if(typeof f==="string"&&this.config.joins.some((S)=>S.alias===f))throw new Error(`Alias "${f}" is already used in this query`);if(typeof n==="function"){let S=this.config.from&&!X(this.config.from,j)?this.getTableLikeFields(this.config.from):void 0;n=n(new Proxy(this.config.table[I.Symbol.Columns],new Qo({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),S&&new Proxy(S,new Qo({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:n,table:T,joinType:o,alias:f}),typeof f==="string")switch(o){case"left":{this.joinsNotNullableMap[f]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([S])=>[S,!1])),this.joinsNotNullableMap[f]=!0;break}case"inner":{this.joinsNotNullableMap[f]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([S])=>[S,!1])),this.joinsNotNullableMap[f]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(o){return this.config.where=o,this}returning(o){if(!o){if(o=Object.assign({},this.config.table[I.Symbol.Columns]),this.config.from){let T=qT(this.config.from);if(typeof T==="string"&&this.config.from&&!X(this.config.from,j)){let n=this.getTableLikeFields(this.config.from);o[T]=n}for(let n of this.config.joins){let f=qT(n.table);if(typeof f==="string"&&!X(n.table,j)){let S=this.getTableLikeFields(n.table);o[f]=S}}}}return this.config.returningFields=o,this.config.returning=OT(o),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:o,...T}=this.dialect.sqlToQuery(this.getSQL());return T}_prepare(o){let T=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,o,!0);return T.joinsNotNullableMap=this.joinsNotNullableMap,T}prepare(o){return this._prepare(o)}authToken;setToken(o){return this.authToken=o,this}execute=(o)=>{return this._prepare().execute(o,this.authToken)};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new Qo({alias:vo(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class vf extends j{constructor(o){super(vf.buildEmbeddedCount(o.source,o.filters).queryChunks);this.params=o,this.mapWith(Number),this.session=o.session,this.sql=vf.buildCount(o.source,o.filters)}sql;token;static[y]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(o,T){return k`(select count(*) from ${o}${k.raw(" where ").if(T)}${T})`}static buildCount(o,T){return k`select count(*) as count from ${o}${k.raw(" where ").if(T)}${T};`}setToken(o){return this.token=o,this}then(o,T){return Promise.resolve(this.session.count(this.sql,this.token)).then(o,T)}catch(o){return this.then(void 0,o)}finally(o){return this.then((T)=>{return o?.(),T},(T)=>{throw o?.(),T})}}class z${constructor(o,T,n,f,S,A,$){this.fullSchema=o,this.schema=T,this.tableNamesMap=n,this.table=f,this.tableConfig=S,this.dialect=A,this.session=$}static[y]="PgRelationalQueryBuilder";findMany(o){return new Y$(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,o?o:{},"many")}findFirst(o){return new Y$(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,o?{...o,limit:1}:{limit:1},"first")}}class Y$ extends oT{constructor(o,T,n,f,S,A,$,F,J){super();this.fullSchema=o,this.schema=T,this.tableNamesMap=n,this.table=f,this.tableConfig=S,this.dialect=A,this.session=$,this.config=F,this.mode=J}static[y]="PgRelationalQuery";_prepare(o){return Oo.startActiveSpan("drizzle.prepareQuery",()=>{let{query:T,builtQuery:n}=this._toSQL();return this.session.prepareQuery(n,void 0,o,!0,(f,S)=>{let A=f.map(($)=>LS(this.schema,this.tableConfig,$,T.selection,S));if(this.mode==="first")return A[0];return A})})}prepare(o){return this._prepare(o)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let o=this._getQuery(),T=this.dialect.sqlToQuery(o.sql);return{query:o,builtQuery:T}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(o){return this.authToken=o,this}execute(){return Oo.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class D$ extends oT{constructor(o,T,n,f){super();this.execute=o,this.sql=T,this.query=n,this.mapBatchResult=f}static[y]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(o,T){return T?this.mapBatchResult(o):o}_prepare(){return this}isResponseInArrayMode(){return!1}}class rf{constructor(o,T,n){if(this.dialect=o,this.session=T,this._=n?{schema:n.schema,fullSchema:n.fullSchema,tableNamesMap:n.tableNamesMap,session:T}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:T},this.query={},this._.schema)for(let[f,S]of Object.entries(this._.schema))this.query[f]=new z$(n.fullSchema,this._.schema,this._.tableNamesMap,n.fullSchema[f],S,o,T)}static[y]="PgDatabase";query;$with=(o,T)=>{let n=this;return{as:(S)=>{if(typeof S==="function")S=S(new xf(n.dialect));return new Proxy(new Yf(S.getSQL(),T??("getSelectedFields"in S?S.getSelectedFields()??{}:{}),o,!0),new Qo({alias:o,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(o,T){return new vf({source:o,filters:T,session:this.session})}with(...o){let T=this;function n(J){return new TT({fields:J??void 0,session:T.session,dialect:T.dialect,withList:o})}function f(J){return new TT({fields:J??void 0,session:T.session,dialect:T.dialect,withList:o,distinct:!0})}function S(J,t){return new TT({fields:t??void 0,session:T.session,dialect:T.dialect,withList:o,distinct:{on:J}})}function A(J){return new PS(J,T.session,T.dialect,o)}function $(J){return new ZS(J,T.session,T.dialect,o)}function F(J){return new cS(J,T.session,T.dialect,o)}return{select:n,selectDistinct:f,selectDistinctOn:S,update:A,insert:$,delete:F}}select(o){return new TT({fields:o??void 0,session:this.session,dialect:this.dialect})}selectDistinct(o){return new TT({fields:o??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(o,T){return new TT({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:{on:o}})}update(o){return new PS(o,this.session,this.dialect)}insert(o){return new ZS(o,this.session,this.dialect)}delete(o){return new cS(o,this.session,this.dialect)}refreshMaterializedView(o){return new G$(o,this.session,this.dialect)}authToken;execute(o){let T=typeof o==="string"?k.raw(o):o.getSQL(),n=this.dialect.sqlToQuery(T),f=this.session.prepareQuery(n,void 0,void 0,!1);return new D$(()=>f.execute(void 0,this.authToken),T,n,(S)=>f.mapResult(S,!0))}transaction(o,T){return this.session.transaction(o,T)}}class D0{constructor(o,T){this.unique=o,this.name=T}static[y]="PgIndexBuilderOn";on(...o){return new iS(o.map((T)=>{if(X(T,j))return T;T=T;let n=new Gf(T.name,!!T.keyAsName,T.columnType,T.indexConfig);return T.indexConfig=JSON.parse(JSON.stringify(T.defaultConfig)),n}),this.unique,!1,this.name)}onOnly(...o){return new iS(o.map((T)=>{if(X(T,j))return T;T=T;let n=new Gf(T.name,!!T.keyAsName,T.columnType,T.indexConfig);return T.indexConfig=T.defaultConfig,n}),this.unique,!0,this.name)}using(o,...T){return new iS(T.map((n)=>{if(X(n,j))return n;n=n;let f=new Gf(n.name,!!n.keyAsName,n.columnType,n.indexConfig);return n.indexConfig=JSON.parse(JSON.stringify(n.defaultConfig)),f}),this.unique,!0,this.name,o)}}class iS{static[y]="PgIndexBuilder";config;constructor(o,T,n,f,S="btree"){this.config={name:f,columns:o,unique:T,only:n,method:S}}concurrently(){return this.config.concurrently=!0,this}with(o){return this.config.with=o,this}where(o){return this.config.where=o,this}build(o){return new Q0(this.config,o)}}class Q0{static[y]="PgIndex";config;constructor(o,T){this.config={...o,table:T}}}function Q$(o){return new D0(!0,o)}class U${constructor(o){this.query=o}authToken;getQuery(){return this.query}mapResult(o,T){return o}setToken(o){return this.authToken=o,this}static[y]="PgPreparedQuery";joinsNotNullableMap}class V${constructor(o){this.dialect=o}static[y]="PgSession";execute(o,T){return Oo.startActiveSpan("drizzle.operation",()=>{return Oo.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(o),void 0,void 0,!1)}).setToken(T).execute(void 0,T)})}all(o){return this.prepareQuery(this.dialect.sqlToQuery(o),void 0,void 0,!1).all()}async count(o,T){let n=await this.execute(o,T);return Number(n[0].count)}}class B$ extends rf{constructor(o,T,n,f=0){super(o,T,n);this.schema=n,this.nestedIndex=f}static[y]="PgTransaction";rollback(){throw new dA}getTransactionConfigSQL(o){let T=[];if(o.isolationLevel)T.push(`isolation level ${o.isolationLevel}`);if(o.accessMode)T.push(o.accessMode);if(typeof o.deferrable==="boolean")T.push(o.deferrable?"deferrable":"not deferrable");return k.raw(T.join(" "))}setTransaction(o){return this.session.execute(k`set transaction ${this.getTransactionConfigSQL(o)}`)}}class U0 extends U${constructor(o,T,n,f,S,A,$){super({sql:T,params:n});this.client=o,this.queryString=T,this.params=n,this.logger=f,this.fields=S,this._isResponseInArrayMode=A,this.customResultMapper=$}static[y]="PostgresJsPreparedQuery";async execute(o={}){return Oo.startActiveSpan("drizzle.execute",async(T)=>{let n=iA(this.params,o);T?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(n)}),this.logger.logQuery(this.queryString,n);let{fields:f,queryString:S,client:A,joinsNotNullableMap:$,customResultMapper:F}=this;if(!f&&!F)return Oo.startActiveSpan("drizzle.driver.execute",()=>{return A.unsafe(S,n)});let J=await Oo.startActiveSpan("drizzle.driver.execute",()=>{return T?.setAttributes({"drizzle.query.text":S,"drizzle.query.params":JSON.stringify(n)}),A.unsafe(S,n).values()});return Oo.startActiveSpan("drizzle.mapResponse",()=>{return F?F(J):J.map((t)=>uJ(f,t,$))})})}all(o={}){return Oo.startActiveSpan("drizzle.execute",async(T)=>{let n=iA(this.params,o);return T?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(n)}),this.logger.logQuery(this.queryString,n),Oo.startActiveSpan("drizzle.driver.execute",()=>{return T?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(n)}),this.client.unsafe(this.queryString,n)})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class qf extends V${constructor(o,T,n,f={}){super(T);this.client=o,this.schema=n,this.options=f,this.logger=f.logger??new uA}static[y]="PostgresJsSession";logger;prepareQuery(o,T,n,f,S){return new U0(this.client,o.sql,o.params,this.logger,T,f,S)}query(o,T){return this.logger.logQuery(o,T),this.client.unsafe(o,T).values()}queryObjects(o,T){return this.client.unsafe(o,T)}transaction(o,T){return this.client.begin(async(n)=>{let f=new qf(n,this.dialect,this.schema,this.options),S=new m$(this.dialect,f,this.schema);if(T)await S.setTransaction(T);return o(S)})}}class m$ extends B${constructor(o,T,n,f=0){super(o,T,n,f);this.session=T}static[y]="PostgresJsTransaction";transaction(o){return this.session.client.savepoint((T)=>{let n=new qf(T,this.dialect,this.schema,this.session.options),f=new m$(this.dialect,n,this.schema);return o(f)})}}class V0 extends rf{static[y]="PostgresJsDatabase"}function sn(o,T={}){let n=(J)=>J;for(let J of["1184","1082","1083","1114","1182","1185","1115","1231"])o.options.parsers[J]=n,o.options.serializers[J]=n;o.options.serializers["114"]=n,o.options.serializers["3802"]=n;let f=new Xn({casing:T.casing}),S;if(T.logger===!0)S=new lA;else if(T.logger!==!1)S=T.logger;let A;if(T.schema){let J=o0(T.schema,n0);A={fullSchema:T.schema,schema:J.tables,tableNamesMap:J.tableNamesMap}}let $=new qf(o,f,A,{logger:S}),F=new V0(f,$,A);return F.$client=o,F}function gS(...o){if(typeof o[0]==="string"){let T=un(o[0]);return sn(T,o[1])}if(aJ(o[0])){let{connection:T,client:n,...f}=o[0];if(n)return sn(n,f);if(typeof T==="object"&&T.url!==void 0){let{url:A,...$}=T,F=un(A,$);return sn(F,f)}let S=un(T);return sn(S,f)}return sn(o[0],o[1])}((o)=>{function T(n){return sn({options:{parsers:{},serializers:{}}},n)}o.mock=T})(gS||(gS={}));var C$={};IM(C$,{users:()=>Hn,userChanges:()=>ok,untrackedUserColumnNames:()=>ay,twoFactorMethod:()=>I0,trackedUserColumnName:()=>C0,trackableUserColumnNames:()=>L0,role:()=>m0,players:()=>L$,passwordResetAttempts:()=>nk,loginHistory:()=>Tk,games:()=>dS,banishedIps:()=>fk});function B0(o){return k`lower(${o})`}var m0=kS("role",["admin","user"]),Hn=aT("users",{id:RT().primaryKey().defaultRandom(),username:po({length:16}).notNull(),email:po({length:254}).notNull(),hash:po({length:64}).notNull(),salt:po({length:36}).notNull(),createdAt:DT({withTimezone:!0}).notNull().defaultNow(),createdIp:po({length:45}).notNull(),isActive:Bf().notNull().default(!1),verifiedAt:DT({withTimezone:!0}),userRole:m0().default("user")},(o)=>[Q$("usernameUniqueIndex").on(B0(o.username)),Q$("emailUniqueIndex").on(B0(o.email))]),ay=["id","createdAt","createdIp","isActive","salt","verifiedAt"],L0=["username","email","hash","userRole"],C0=kS("trackedUserColumnName",L0),ok=aT("userChanges",{id:RT().primaryKey().defaultRandom(),userId:RT().notNull().references(()=>Hn.id),changedAt:DT({withTimezone:!0}).notNull().defaultNow(),changedIp:po({length:45}).notNull(),changedColumn:C0().notNull(),oldValue:po({length:255}),newValue:po({length:255})}),dS=aT("games",{id:RT().primaryKey().defaultRandom()}),L$=aT("players",{userId:RT().notNull().references(()=>Hn.id),gameId:RT().notNull().references(()=>dS.id),score:YS().notNull()},(o)=>[lR({name:"players_userId_gameId_pk",columns:[o.userId,o.gameId]})]),Tk=aT("loginHistory",{id:RT().primaryKey().defaultRandom(),userId:RT().references(()=>Hn.id),loginTime:DT({withTimezone:!0}).notNull().defaultNow(),ipAddress:po({length:45}).notNull(),userAgent:po({length:1024}),successful:Bf().notNull().default(!1)}),I0=kS("twoFactorMethod",["email","phone"]),nk=aT("passwordResetAttempts",{id:RT().primaryKey().defaultRandom(),userId:RT().notNull().references(()=>Hn.id),requestedIp:po({length:45}).notNull(),requestedAt:DT({withTimezone:!0}).notNull().defaultNow(),succeededIp:po({length:45}),succeededAt:DT({withTimezone:!0}),verificationMethod:I0().notNull()}),fk=aT("banishedIps",{ip:po({length:45}).primaryKey(),reason:po({length:2048}).notNull(),banishedAt:DT({withTimezone:!0}).notNull().defaultNow(),banishedUntil:DT({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class I${options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(Sk.resolve(__dirname,"notify_update.sql"));let o=[vo(Hn),vo(dS),vo(L$)];await this.sql`SELECT create_notify_triggers(${this.sql.array(o)})`,await this.sql.listen("table_update",(T)=>{let n=T.split(","),f=n[0],S=n[1],A=`${f}("${S}")`;if(this.observers.has(A))this.observers.get(A).next(A)})}constructor(o=!1,T={host:YT.POSTGRES_HOST,port:YT.POSTGRES_PORT,user:YT.POSTGRES_USER,password:YT.POSTGRES_PASSWORD,database:YT.POSTGRES_DATABASE}){this.options=T,this.sql=un(T),this.drizzle=gS(this.sql,{schema:C$,logger:o})}observe(o,T){if(!this.observers.has(o))this.observers.set(o,new oo);this.observers.get(o).subscribe("SINGLETON",T)}}var lS={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",306:"Switch Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",510:"Not Extended",511:"Network Authentication Required"},j$=g$(lS).map(([o])=>Eo.literal(Number(o))),Ak=Eo.union([j$[0],j$[1],...j$]),j0=Eo.tuple([Ak,Eo.string()]);var N$=new QA,{logger:$T}=N$;Object.assign(console,$T,{log:$T.info});$T.info("ready");var h$=N0(import.meta.dir,"..","app"),Mz=new I$({logQuery(o,T){$T.info("\uD83D\uDCDD query",o,T)}});Jk({hostname:"0.0.0.0",port:YT.FRONTEND_PORT??3333,...MJ??void 0,async fetch(o){try{let T=new Date,n=new URL(o.url);if($T.info(o.method,n.pathname),n.pathname==="/")return new Response(Bun.file(N0(h$,"index.html")));if(n.pathname==="/index.html")return Response.redirect("/");let f=$k(h$,n.pathname),S=Fk(f);if(!S.startsWith(h$))throw[403,"Access Denied"];if(!await h0(S).exists())return Response.redirect("/");return new Response(h0(S))}catch(T){let n=j0.safeParse(T);if(n.success){let[f,S]=n.data,$=`${lS[f]}. ${S}`;return $T.info(`\u274C ${f}: ${$}`),new Response($,{status:f})}if(T instanceof Error)$T.error(T.message);else{let f=Un(T);$T.error("frontend server threw",f)}return new Response(lS[500],{status:500})}}});function uS(){$T.info("\uD83D\uDEEC frontend server exiting"),process.exit(0)}process.on("SIGINT",()=>{$T.info("\u2757 received SIGINT; exiting gracefully"),uS()});process.on("SIGTERM",()=>{$T.info("\u2757 received SIGTERM; exiting gracefully"),uS()});process.on("exit",()=>{$T.info("\u2757 received exit; exiting gracefully"),uS()});N$.on("timeToStop",()=>{$T.info('\u2757 backend server received signal "timeToStop"; exiting gracefully'),uS()});$T.info(`\uD83D\uDEEB frontend server running at http://localhost:${YT.FRONTEND_PORT}/`);N$.emit("alive");