tempest.games 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/app/assets/index-3KvDLshg.js +109 -0
- package/app/assets/index-B2F2ZwG-.css +1 -0
- package/app/index.html +2 -2
- package/bin/backend.bun.js +211 -211
- package/bin/frontend.bun.js +8 -8
- package/bin/setup-db.bun.js +50 -50
- package/package.json +4 -3
- package/app/assets/index-C6lk2a-1.css +0 -1
- package/app/assets/index-DA5ht2sU.js +0 -109
package/bin/frontend.bun.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
var x5=Object.create;var{getPrototypeOf:b5,defineProperty:l1,getOwnPropertyNames:h5}=Object;var p5=Object.prototype.hasOwnProperty;var
|
|
3
|
+
var x5=Object.create;var{getPrototypeOf:b5,defineProperty:l1,getOwnPropertyNames:h5}=Object;var p5=Object.prototype.hasOwnProperty;var JO=(T,F,_)=>{_=T!=null?x5(b5(T)):{};let W=F||!T||!T.__esModule?l1(_,"default",{value:T,enumerable:!0}):_;for(let J of h5(T))if(!p5.call(W,J))l1(W,J,{get:()=>T[J],enumerable:!0});return W};var $O=(T,F)=>()=>(F||T((F={exports:{}}).exports,F),F.exports);var g5=(T,F)=>{for(var _ in F)l1(T,_,{get:F[_],enumerable:!0,configurable:!0,set:(W)=>F[_]=()=>W})};var YO=(T,F)=>()=>(T&&(F=T(T=0)),F);var ZO=import.meta.require;import eH,{join as TO,normalize as FO,resolve as uA}from"path";var _F=(T)=>Array.isArray(T)?T:[T],jJ=(T,F)=>{let _=[[],[]];for(let W of T)if(F(W))_[0].push(W);else _[1].push(W);return _},KW=Array,u0=(T,F)=>T.includes(F),yJ=(T,F=0)=>[...new Array(T)].map((_,W)=>W+F),r=(T,F,_)=>{if(T===void 0)return F===void 0?[]:Array.isArray(F)?F:[F];if(_?.prepend)if(Array.isArray(F))T.unshift(...F);else T.unshift(F);else if(Array.isArray(F))T.push(...F);else T.push(F);return T},c0=(T,F)=>{if(F===void 0||F===null)return T??[];if(T===void 0||T===null)return _F(F);return T.concat(F)},PJ=(...T)=>T.reduce(c0,[]),x0=(T,F,_)=>{if(T===void 0)return Array.isArray(F)?F:[F];let W=_?.isEqual??((J,$)=>J===$);for(let J of _F(F))if(!T.some(($)=>W($,J)))T.push(J);return T},vJ=(T,F)=>T.reduce((_,W)=>{let J=W[F];return _[J]=r(_[J],W),_},{}),d0=(T,F,_)=>T.length===F.length&&T.every(_?.isEqual?(W,J)=>_.isEqual(W,F[J]):(W,J)=>W===F[J]);var eT=(T,F)=>fT(T)===F,fT=(T)=>{let F=typeof T;return F==="object"?T===null?"null":"object":F==="function"?"object":F},T0={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},xJ={...T0,function:"a function"};class bJ extends Error{}var a=(T)=>RF(T,bJ),RF=(T,F=Error)=>{throw new F(T)};class U_ extends Error{name="ParseError"}var z=(T)=>RF(T,U_),C0=(T)=>` ${T}`;var m=(T,F)=>{let _={},W=Array.isArray(T),J=!1;for(let[$,Y]of Object.entries(T).entries()){let Z=W?F($,Y[1]):F(...Y,$);J||=typeof Z[0]==="number";let A=Array.isArray(Z[0])||Z.length===0?Z:[Z];for(let[X,O]of A)if(typeof X==="object")_[X.group]=r(_[X.group],O);else _[X]=O}return J?Object.values(_):_};var i1=Object.entries;var qT=(T,F)=>(T in F),PF=(T,F)=>(F in T);class t1{constructor(T){Object.assign(this,T)}}var hJ=class{};class M_ extends hJ{}var m5=(T,F)=>{let _={},W={},J;for(J in T)if(J in F)_[J]=T[J];else W[J]=T[J];return[_,W]};var pJ=(T,F)=>m5(T,F)[1],b0=(T)=>Object.keys(T).length===0,wF=(T)=>[...Object.entries(T),...Object.getOwnPropertySymbols(T).map((F)=>[F,T[F]])],gJ=(T,F)=>Object.defineProperties(T,Object.getOwnPropertyDescriptors(F)),mJ=(T)=>{let F=Object.keys(T).sort(),_={};for(let W=0;W<F.length;W++)_[F[W]]=T[F[W]];return _};var H0=C0("represents an uninitialized value"),oJ=(T)=>Object.values(T).filter((F)=>{if(typeof F==="number")return!0;return typeof T[F]!=="number"});var n1={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},r1=globalThis.File??Blob,s1={ArrayBuffer,Blob,File:r1,FormData,Headers,Request,Response,URL},o5={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},KF={...n1,...s1,...o5,String,Number,Boolean},Q_=(T)=>{let F=Object.getPrototypeOf(T);while(F?.constructor&&(!qT(F.constructor.name,KF)||!(T instanceof KF[F.constructor.name])))F=Object.getPrototypeOf(F);let _=F?.constructor?.name;if(_===void 0||_==="Object")return;return _},z_=(T)=>typeof T==="object"&&T!==null?Q_(T)??"object":fT(T);var YT=Array.isArray,u5={Array:"an array",Function:"a function",Date:"a Date",RegExp:"a RegExp",Error:"an Error",Map:"a Map",Set:"a Set",String:"a String object",Number:"a Number object",Boolean:"a Boolean object",Promise:"a Promise",WeakMap:"a WeakMap",WeakSet:"a WeakSet"},c5={ArrayBuffer:"an ArrayBuffer instance",Blob:"a Blob instance",File:"a File instance",FormData:"a FormData instance",Headers:"a Headers instance",Request:"a Request instance",Response:"a Response instance",URL:"a URL instance"},d5={Int8Array:"an Int8Array",Uint8Array:"a Uint8Array",Uint8ClampedArray:"a Uint8ClampedArray",Int16Array:"an Int16Array",Uint16Array:"a Uint16Array",Int32Array:"an Int32Array",Uint32Array:"a Uint32Array",Float32Array:"a Float32Array",Float64Array:"a Float64Array",BigInt64Array:"a BigInt64Array",BigUint64Array:"a BigUint64Array"},uJ={...u5,...c5,...d5},E_=(T)=>{let F=Object(T).name??null;return F&&qT(F,KF)&&KF[F]===T?F:null};var a1=(T,F)=>{let _=T.prototype;while(_!==null){if(_===F.prototype)return!0;_=Object.getPrototypeOf(_)}return!1};var cJ=(T)=>dJ(T,new Map),dJ=(T,F)=>{if(typeof T!=="object"||T===null)return T;if(F?.has(T))return F.get(T);let _=E_(T.constructor);if(_==="Date")return new Date(T.getTime());if(_&&_!=="Array")return T;let W=Array.isArray(T)?T.slice():Object.create(Object.getPrototypeOf(T)),J=Object.getOwnPropertyDescriptors(T);if(F){F.set(T,W);for(let $ in J){let Y=J[$];if("get"in Y||"set"in Y)continue;Y.value=dJ(Y.value,F)}}return Object.defineProperties(W,J),W};var l5=(T)=>{let F=H0;return()=>F===H0?F=T():F},WF=(T)=>typeof T==="function"&&T.length===0;var lJ=class extends Function{constructor(...T){let F=T.slice(0,-1),_=T.at(-1);try{super(...F,_)}catch(W){return a(`Encountered an unexpected error while compiling your definition:
|
|
4
4
|
Message: ${W}
|
|
5
5
|
Source: (${T.slice(0,-1)}) => {
|
|
6
6
|
${T.at(-1)}
|
|
7
|
-
}`)}}};class k0{constructor(T,...[F]){return Object.assign(Object.setPrototypeOf(T.bind(F?.bind??this),this.constructor.prototype),F?.attach)}}var iJ=l5(()=>{try{return new Function("return false")()}catch{return!0}});var
|
|
8
|
-
`)[2]?.trim()||"").match(/\(?(.+?)(?::\d+:\d+)?\)?$/)?.[1]||"unknown").replace(/^file:\/\//,"")}catch{return"unknown"}},t5=globalThis.process?.env??{},nJ={fileName:i5,env:t5};var rJ=(T)=>T[0].toUpperCase()+T.slice(1);var e1=(T)=>new RegExp(n5(T),typeof T==="string"?"":T.flags);var n5=(T)=>{return`^(?:${typeof T==="string"?T:T.source})$`};var l0={negativeLookahead:(T)=>`(?!${T})`,nonCapturingGroup:(T)=>`(?:${T})`},R_="\\",JF={" ":1,"\n":1,"\t":1};var r5=/^-0\.?0*$/.source,aJ=/[1-9]\d*/.source,s5=/\.\d+/.source,a5=/\.\d*[1-9]/.source,eJ=(T)=>e1(l0.negativeLookahead(r5)+l0.nonCapturingGroup("-?"+l0.nonCapturingGroup(l0.nonCapturingGroup("0|"+aJ)+l0.nonCapturingGroup(T.decimalPattern)+"?")+(T.allowDecimalOnly?"|"+T.decimalPattern:"")+"?")),sJ=eJ({decimalPattern:a5,allowDecimalOnly:!1}),e5=sJ.test.bind(sJ),VW=eJ({decimalPattern:s5,allowDecimalOnly:!0}),
|
|
7
|
+
}`)}}};class k0{constructor(T,...[F]){return Object.assign(Object.setPrototypeOf(T.bind(F?.bind??this),this.constructor.prototype),F?.attach)}}var iJ=l5(()=>{try{return new Function("return false")()}catch{return!0}});var kO=C0("brand");var tJ=C0("arkInferred");var qO=C0("args");class uT{constructor(){}}var i5=()=>{try{return((new Error().stack?.split(`
|
|
8
|
+
`)[2]?.trim()||"").match(/\(?(.+?)(?::\d+:\d+)?\)?$/)?.[1]||"unknown").replace(/^file:\/\//,"")}catch{return"unknown"}},t5=globalThis.process?.env??{},nJ={fileName:i5,env:t5};var rJ=(T)=>T[0].toUpperCase()+T.slice(1);var e1=(T)=>new RegExp(n5(T),typeof T==="string"?"":T.flags);var n5=(T)=>{return`^(?:${typeof T==="string"?T:T.source})$`};var l0={negativeLookahead:(T)=>`(?!${T})`,nonCapturingGroup:(T)=>`(?:${T})`},R_="\\",JF={" ":1,"\n":1,"\t":1};var r5=/^-0\.?0*$/.source,aJ=/[1-9]\d*/.source,s5=/\.\d+/.source,a5=/\.\d*[1-9]/.source,eJ=(T)=>e1(l0.negativeLookahead(r5)+l0.nonCapturingGroup("-?"+l0.nonCapturingGroup(l0.nonCapturingGroup("0|"+aJ)+l0.nonCapturingGroup(T.decimalPattern)+"?")+(T.allowDecimalOnly?"|"+T.decimalPattern:"")+"?")),sJ=eJ({decimalPattern:a5,allowDecimalOnly:!1}),e5=sJ.test.bind(sJ),VW=eJ({decimalPattern:s5,allowDecimalOnly:!0}),hO=VW.test.bind(VW),TG=/^-?\d*\.?\d*$/,FG=(T)=>T.length!==0&&TG.test(T),w_=e1(l0.negativeLookahead("^-0$")+"-?"+l0.nonCapturingGroup(l0.nonCapturingGroup("0|"+aJ))),_G=w_.test.bind(w_),T2=/^-?\d+$/,WG=T2.test.bind(T2),T8={number:"a number",bigint:"a bigint",integer:"an integer"},F8=(T,F)=>`'${T}' was parsed as ${T8[F]} but could not be narrowed to a literal value. Avoid unnecessary leading or trailing zeros and other abnormal notation`,JG=(T,F)=>F==="number"?e5(T):_G(T),$G=(T,F)=>F==="number"?Number(T):Number.parseInt(T),YG=(T,F)=>F==="number"?FG(T):WG(T),_8=(T,F)=>F2(T,"number",F),W8=(T,F)=>F2(T,"number",{...F,strict:!0}),J8=(T,F)=>F2(T,"integer",F),F2=(T,F,_)=>{let W=$G(T,F);if(!Number.isNaN(W)){if(YG(T,F)){if(_?.strict)return JG(T,F)?W:z(F8(T,F));return W}}return _?.errorOnFail?z(_?.errorOnFail===!0?`Failed to parse ${T8[F]} from '${T}'`:_?.errorOnFail):void 0},$8=(T)=>{if(T[T.length-1]!=="n")return;let F=T.slice(0,-1),_;try{_=BigInt(F)}catch{return}if(w_.test(F))return _;if(T2.test(F))return z(F8(T,"bigint"))};var ZG="0.46.0",XG={version:ZG,filename:nJ.fileName(),FileConstructor:r1},VF=XG,Y8=new Map,_2=Object.create(null),K_=(T)=>{let F=Y8.get(T);if(F)return F;let _=AG(T);if(_2[_])_=`${_}${_2[_]++}`;else _2[_]=1;return VF[_]=T,Y8.set(T,_),_},$F=(T)=>/^[$A-Z_a-z][\w$]*$/.test(T),AG=(T)=>{switch(typeof T){case"object":{if(T===null)break;let F=Q_(T)??"object";return F[0].toLowerCase()+F.slice(1)}case"function":return $F(T.name)?T.name:"fn";case"symbol":return T.description&&$F(T.description)?T.description:"symbol"}return a(`Unexpected attempt to register serializable value of type ${fT(T)}`)};var V_=(T)=>typeof T==="string"?JSON.stringify(T):typeof T==="bigint"?`${T}n`:`${T}`;var Z8=(T,F={})=>D_(T,{onUndefined:"$ark.undefined",onBigInt:(_)=>`$ark.bigint-${_}`,...F},[]);var o=(T,F)=>{switch(fT(T)){case"object":let _=T,W=_.constructor.name;return W==="Object"||W==="Array"?F?.quoteKeys===!1?DW(_,F?.indent??0,""):JSON.stringify(D_(_,vF,[]),null,F?.indent):DW(_,F?.indent??0,"");case"symbol":return vF.onSymbol(T);default:return V_(T)}},DW=(T,F,_)=>{if(typeof T==="function")return vF.onFunction(T);if(typeof T!=="object"||T===null)return V_(T);let W=_+" ".repeat(F);if(Array.isArray(T)){if(T.length===0)return"[]";let $=T.map((Y)=>DW(Y,F,W)).join(`,
|
|
9
9
|
`+W);return F?`[
|
|
10
10
|
${W}${$}
|
|
11
11
|
${_}]`:`[${$}]`}let J=T.constructor.name;if(J==="Object"){let $=wF(T).map(([Y,Z])=>{let A=typeof Y==="symbol"?vF.onSymbol(Y):$F(Y)?Y:JSON.stringify(Y),X=DW(Z,F,W);return`${W}${A}: ${X}`});if($.length===0)return"{}";return F?`{
|
|
12
12
|
${$.join(`,
|
|
13
13
|
`)}
|
|
14
|
-
${_}}`:`{${$.join(", ")}}`}if(T instanceof Date)return DF(T);if("expression"in T&&typeof T.expression==="string")return T.expression;return J},vF={onCycle:()=>"(cycle)",onSymbol:(T)=>`Symbol(${K_(T)})`,onFunction:(T)=>`Function(${K_(T)})`},D_=(T,F,_)=>{switch(fT(T)){case"object":{let W=T;if("toJSON"in W&&typeof W.toJSON==="function")return W.toJSON();if(typeof W==="function")return vF.onFunction(W);if(_.includes(W))return"(cycle)";let J=[..._,W];if(Array.isArray(W))return W.map((Y)=>D_(Y,F,J));if(W instanceof Date)return W.toDateString();let $={};for(let Y in W)$[Y]=D_(W[Y],F,J);for(let Y of Object.getOwnPropertySymbols(W))$[F.onSymbol?.(Y)??Y.toString()]=D_(W[Y],F,J);return $}case"symbol":return vF.onSymbol(T);case"bigint":return F.onBigInt?.(T)??`${T}n`;case"undefined":return F.onUndefined??"undefined";case"string":return T.replaceAll("\\","\\\\");default:return T}},DF=(T)=>{let F=T.getFullYear(),_=T.getMonth(),W=T.getDate(),J=T.getHours(),$=T.getMinutes(),Y=T.getSeconds(),Z=T.getMilliseconds();if(_===0&&W===1&&J===0&&$===0&&Y===0&&Z===0)return`${F}`;let A=`${GG[_]} ${W}, ${F}`;if(J===0&&$===0&&Y===0&&Z===0)return A;let X=T.toLocaleTimeString(),O=X.endsWith(" AM")||X.endsWith(" PM")?X.slice(-3):"";if(O)X=X.slice(0,-O.length);if(Z)X+=`.${OG(Z,3)}`;else if(HG.test(X))X=X.slice(0,-3);return`${X+O}, ${A}`},GG=["January","February","March","April","May","June","July","August","September","October","November","December"],HG=/:\d\d:00$/,OG=(T,F)=>String(T).padStart(F,"0");var X8=(T,F,...[_])=>{let W=_?.stringifySymbol??o,J=T;switch(typeof F){case"string":J=$F(F)?T===""?F:`${T}.${F}`:`${T}[${JSON.stringify(F)}]`;break;case"number":J=`${T}[${F}]`;break;case"symbol":J=`${T}[${W(F)}]`;break;default:if(_?.stringifyNonKey)J=`${T}[${_.stringifyNonKey(F)}]`;else z(`${o(F)} must be a PropertyKey or stringifyNonKey must be passed to options`)}return J},i0=(T,...F)=>T.reduce((_,W)=>X8(_,W,...F),"");class L_ extends KW{cache={};constructor(...T){super();this.push(...T)}toJSON(){if(this.cache.json)return this.cache.json;this.cache.json=[];for(let T=0;T<this.length;T++)this.cache.json.push(typeof this[T]==="symbol"?o(this[T]):this[T]);return this.cache.json}stringify(){if(this.cache.stringify)return this.cache.stringify;return this.cache.stringify=i0(this)}stringifyAncestors(){if(this.cache.stringifyAncestors)return this.cache.stringifyAncestors;let T="",F=[T];for(let _ of this)T=X8(T,_),F.push(T);return this.cache.stringifyAncestors=F}}class W2{chars;i;def;constructor(T){this.def=T,this.chars=[...T],this.i=0}shift(){return this.chars[this.i++]??""}get lookahead(){return this.chars[this.i]??""}get nextLookahead(){return this.chars[this.i+1]??""}get length(){return this.chars.length}shiftUntil(T){let F="";while(this.lookahead){if(T(this,F))if(F[F.length-1]===R_)F=F.slice(0,-1);else break;F+=this.shift()}return F}shiftUntilLookahead(T){return typeof T==="string"?this.shiftUntil((F)=>F.lookahead===T):this.shiftUntil((F)=>(F.lookahead in T))}shiftUntilNonWhitespace(){return this.shiftUntil(()=>!(this.lookahead in JF))}jumpToIndex(T){this.i=T<0?this.length+T:T}jumpForward(T){this.i+=T}get location(){return this.i}get unscanned(){return this.chars.slice(this.i,this.length).join("")}get scanned(){return this.chars.slice(0,this.i).join("")}sliceChars(T,F){return this.chars.slice(T,F).join("")}lookaheadIs(T){return this.lookahead===T}lookaheadIsIn(T){return this.lookahead in T}}var
|
|
14
|
+
${_}}`:`{${$.join(", ")}}`}if(T instanceof Date)return DF(T);if("expression"in T&&typeof T.expression==="string")return T.expression;return J},vF={onCycle:()=>"(cycle)",onSymbol:(T)=>`Symbol(${K_(T)})`,onFunction:(T)=>`Function(${K_(T)})`},D_=(T,F,_)=>{switch(fT(T)){case"object":{let W=T;if("toJSON"in W&&typeof W.toJSON==="function")return W.toJSON();if(typeof W==="function")return vF.onFunction(W);if(_.includes(W))return"(cycle)";let J=[..._,W];if(Array.isArray(W))return W.map((Y)=>D_(Y,F,J));if(W instanceof Date)return W.toDateString();let $={};for(let Y in W)$[Y]=D_(W[Y],F,J);for(let Y of Object.getOwnPropertySymbols(W))$[F.onSymbol?.(Y)??Y.toString()]=D_(W[Y],F,J);return $}case"symbol":return vF.onSymbol(T);case"bigint":return F.onBigInt?.(T)??`${T}n`;case"undefined":return F.onUndefined??"undefined";case"string":return T.replaceAll("\\","\\\\");default:return T}},DF=(T)=>{let F=T.getFullYear(),_=T.getMonth(),W=T.getDate(),J=T.getHours(),$=T.getMinutes(),Y=T.getSeconds(),Z=T.getMilliseconds();if(_===0&&W===1&&J===0&&$===0&&Y===0&&Z===0)return`${F}`;let A=`${GG[_]} ${W}, ${F}`;if(J===0&&$===0&&Y===0&&Z===0)return A;let X=T.toLocaleTimeString(),O=X.endsWith(" AM")||X.endsWith(" PM")?X.slice(-3):"";if(O)X=X.slice(0,-O.length);if(Z)X+=`.${OG(Z,3)}`;else if(HG.test(X))X=X.slice(0,-3);return`${X+O}, ${A}`},GG=["January","February","March","April","May","June","July","August","September","October","November","December"],HG=/:\d\d:00$/,OG=(T,F)=>String(T).padStart(F,"0");var X8=(T,F,...[_])=>{let W=_?.stringifySymbol??o,J=T;switch(typeof F){case"string":J=$F(F)?T===""?F:`${T}.${F}`:`${T}[${JSON.stringify(F)}]`;break;case"number":J=`${T}[${F}]`;break;case"symbol":J=`${T}[${W(F)}]`;break;default:if(_?.stringifyNonKey)J=`${T}[${_.stringifyNonKey(F)}]`;else z(`${o(F)} must be a PropertyKey or stringifyNonKey must be passed to options`)}return J},i0=(T,...F)=>T.reduce((_,W)=>X8(_,W,...F),"");class L_ extends KW{cache={};constructor(...T){super();this.push(...T)}toJSON(){if(this.cache.json)return this.cache.json;this.cache.json=[];for(let T=0;T<this.length;T++)this.cache.json.push(typeof this[T]==="symbol"?o(this[T]):this[T]);return this.cache.json}stringify(){if(this.cache.stringify)return this.cache.stringify;return this.cache.stringify=i0(this)}stringifyAncestors(){if(this.cache.stringifyAncestors)return this.cache.stringifyAncestors;let T="",F=[T];for(let _ of this)T=X8(T,_),F.push(T);return this.cache.stringifyAncestors=F}}class W2{chars;i;def;constructor(T){this.def=T,this.chars=[...T],this.i=0}shift(){return this.chars[this.i++]??""}get lookahead(){return this.chars[this.i]??""}get nextLookahead(){return this.chars[this.i+1]??""}get length(){return this.chars.length}shiftUntil(T){let F="";while(this.lookahead){if(T(this,F))if(F[F.length-1]===R_)F=F.slice(0,-1);else break;F+=this.shift()}return F}shiftUntilLookahead(T){return typeof T==="string"?this.shiftUntil((F)=>F.lookahead===T):this.shiftUntil((F)=>(F.lookahead in T))}shiftUntilNonWhitespace(){return this.shiftUntil(()=>!(this.lookahead in JF))}jumpToIndex(T){this.i=T<0?this.length+T:T}jumpForward(T){this.i+=T}get location(){return this.i}get unscanned(){return this.chars.slice(this.i,this.length).join("")}get scanned(){return this.chars.slice(0,this.i).join("")}sliceChars(T,F){return this.chars.slice(T,F).join("")}lookaheadIs(T){return this.lookahead===T}lookaheadIsIn(T){return this.lookahead in T}}var AU=C0("implementedTraits");var J2="$ark",UG=2;while(J2 in globalThis)J2=`$ark${UG++}`;var A8=J2;globalThis[A8]=VF;var w=VF,MG=(T)=>`${A8}.${T}`,VT=(T)=>MG(K_(T));class LW extends M_{argNames;body="";constructor(...T){super();this.argNames=T;for(let F of T){if(F in this)throw new Error(`Arg name '${F}' would overwrite an existing property on FunctionBody`);this[F]=F}}indentation=0;indent(){return this.indentation+=4,this}dedent(){return this.indentation-=4,this}prop(T,F=!1){return $2(T,F)}index(T,F=!1){return G8(`${T}`,F)}line(T){return this.body+=`${" ".repeat(this.indentation)}${T}
|
|
15
15
|
`,this}const(T,F){return this.line(`const ${T} = ${F}`),this}let(T,F){return this.line(`let ${T} = ${F}`)}set(T,F){return this.line(`${T} = ${F}`)}if(T,F){return this.block(`if (${T})`,F)}elseIf(T,F){return this.block(`else if (${T})`,F)}else(T){return this.block("else",T)}for(T,F,_=0){return this.block(`for (let i = ${_}; ${T}; i++)`,F)}forIn(T,F){return this.block(`for (const k in ${T})`,F)}block(T,F,_=""){return this.line(`${T} {`),this.indent(),F(this),this.dedent(),this.line(`}${_}`)}return(T=""){return this.line(`return ${T}`)}write(T="anonymous",F=0){return`${T}(${this.argNames.join(", ")}) { ${F?this.body.split(`
|
|
16
16
|
`).map((_)=>" ".repeat(F)+`${_}`).join(`
|
|
17
|
-
`):this.body} }`}compile(){return new lJ(...this.argNames,this.body)}}var t0=(T)=>eT(T,"object")||typeof T==="symbol"?VT(T):V_(T),$2=(T,F=!1)=>{if(typeof T==="string"&&$F(T))return`${F?"?":""}.${T}`;return G8(QG(T),F)},QG=(T)=>typeof T==="symbol"?VT(T):JSON.stringify(T),G8=(T,F=!1)=>`${F?"?.":""}[${T}]`;class S_ extends LW{traversalKind;optimistic;constructor(T){super("data","ctx");this.traversalKind=T.kind,this.optimistic=T.optimistic===!0}invoke(T,F){let _=F?.arg??this.data,W=typeof T==="string"?!0:this.requiresContextFor(T),J=typeof T==="string"?T:T.id;if(W)return`${this.referenceToId(J,F)}(${_}, ${this.ctx})`;return`${this.referenceToId(J,F)}(${_})`}referenceToId(T,F){let _=F?.kind??this.traversalKind,W=`this.${T}${_}`;return F?.bind?`${W}.bind(${F?.bind})`:W}requiresContextFor(T){return this.traversalKind==="Apply"||T.allowsRequiresContext}initializeErrorCount(){return this.const("errorCount","ctx.currentErrorCount")}returnIfFail(){return this.if("ctx.currentErrorCount > errorCount",()=>this.return())}returnIfFailFast(){return this.if("ctx.failFast && ctx.currentErrorCount > errorCount",()=>this.return())}traverseKey(T,F,_){let W=this.requiresContextFor(_);if(W)this.line(`${this.ctx}.path.push(${T})`);if(this.check(_,{arg:F}),W)this.line(`${this.ctx}.path.pop()`);return this}check(T,F){return this.traversalKind==="Allows"?this.if(`!${this.invoke(T,F)}`,()=>this.return(!1)):this.line(this.invoke(T,F))}}var SW=(T)=>m(T,(F,_)=>[F,YT(_)?[..._]:_]),iT=C0("arkKind"),q=(T,F)=>T?.[iT]===F,OT=(T)=>q(T,"root")||q(T,"constraint");var H8=["unit","proto","domain"],xF=["required","optional","index","sequence"],Y2=["pattern","divisor","exactLength","max","min","maxLength","minLength","before","after"],IW=[...Y2,...xF,"structure","predicate"],bF=["alias","union","morph","unit","intersection","proto","domain"],zG=[...bF,...IW],NW=m(IW,(T,F)=>[F,1]),O8=m([...xF,"undeclared"],(T,F)=>[F,1]),U8=m(zG,(T,F)=>[F,T]),hF=(T)=>typeof T==="string"&&(T in U8);var pF=(T)=>U8[T],CW=(T)=>bF.slice(pF(T)+1),
|
|
17
|
+
`):this.body} }`}compile(){return new lJ(...this.argNames,this.body)}}var t0=(T)=>eT(T,"object")||typeof T==="symbol"?VT(T):V_(T),$2=(T,F=!1)=>{if(typeof T==="string"&&$F(T))return`${F?"?":""}.${T}`;return G8(QG(T),F)},QG=(T)=>typeof T==="symbol"?VT(T):JSON.stringify(T),G8=(T,F=!1)=>`${F?"?.":""}[${T}]`;class S_ extends LW{traversalKind;optimistic;constructor(T){super("data","ctx");this.traversalKind=T.kind,this.optimistic=T.optimistic===!0}invoke(T,F){let _=F?.arg??this.data,W=typeof T==="string"?!0:this.requiresContextFor(T),J=typeof T==="string"?T:T.id;if(W)return`${this.referenceToId(J,F)}(${_}, ${this.ctx})`;return`${this.referenceToId(J,F)}(${_})`}referenceToId(T,F){let _=F?.kind??this.traversalKind,W=`this.${T}${_}`;return F?.bind?`${W}.bind(${F?.bind})`:W}requiresContextFor(T){return this.traversalKind==="Apply"||T.allowsRequiresContext}initializeErrorCount(){return this.const("errorCount","ctx.currentErrorCount")}returnIfFail(){return this.if("ctx.currentErrorCount > errorCount",()=>this.return())}returnIfFailFast(){return this.if("ctx.failFast && ctx.currentErrorCount > errorCount",()=>this.return())}traverseKey(T,F,_){let W=this.requiresContextFor(_);if(W)this.line(`${this.ctx}.path.push(${T})`);if(this.check(_,{arg:F}),W)this.line(`${this.ctx}.path.pop()`);return this}check(T,F){return this.traversalKind==="Allows"?this.if(`!${this.invoke(T,F)}`,()=>this.return(!1)):this.line(this.invoke(T,F))}}var SW=(T)=>m(T,(F,_)=>[F,YT(_)?[..._]:_]),iT=C0("arkKind"),q=(T,F)=>T?.[iT]===F,OT=(T)=>q(T,"root")||q(T,"constraint");var H8=["unit","proto","domain"],xF=["required","optional","index","sequence"],Y2=["pattern","divisor","exactLength","max","min","maxLength","minLength","before","after"],IW=[...Y2,...xF,"structure","predicate"],bF=["alias","union","morph","unit","intersection","proto","domain"],zG=[...bF,...IW],NW=m(IW,(T,F)=>[F,1]),O8=m([...xF,"undeclared"],(T,F)=>[F,1]),U8=m(zG,(T,F)=>[F,T]),hF=(T)=>typeof T==="string"&&(T in U8);var pF=(T)=>U8[T],CW=(T)=>bF.slice(pF(T)+1),lU=[...CW("union"),"alias"],iU=[...CW("morph"),"alias"],E0=(T)=>{if(typeof T==="string"||typeof T==="boolean"||T===null)return T;if(typeof T==="number"){if(Number.isNaN(T))return"NaN";if(T===Number.POSITIVE_INFINITY)return"Infinity";if(T===Number.NEGATIVE_INFINITY)return"-Infinity";return T}return t0(T)},YF=(T)=>{let F="{ ";for(let[_,W]of Object.entries(T))F+=`${_}: ${t0(W)}, `;return F+" }"},c=(T)=>{let F=T;if(F.hasAssociatedError)F.defaults.expected??=(_)=>("description"in _)?_.description:F.defaults.description(_),F.defaults.actual??=(_)=>o(_),F.defaults.problem??=(_)=>`must be ${_.expected}${_.actual?` (was ${_.actual})`:""}`,F.defaults.message??=(_)=>{if(_.path.length===0)return _.problem;let W=`${_.propString} ${_.problem}`;if(W[0]==="[")return`value at ${W}`;return W};return F};class M8 extends Error{name="ToJsonSchemaError";code;context;constructor(T,F){super(o(F,{quoteKeys:!1,indent:4}));this.code=T,this.context=F}hasCode(T){return this.code===T}}var EG={dialect:"https://json-schema.org/draft/2020-12/schema",useRefs:!1,fallback:{arrayObject:(T)=>ET.throw("arrayObject",T),arrayPostfix:(T)=>ET.throw("arrayPostfix",T),defaultValue:(T)=>ET.throw("defaultValue",T),domain:(T)=>ET.throw("domain",T),morph:(T)=>ET.throw("morph",T),patternIntersection:(T)=>ET.throw("patternIntersection",T),predicate:(T)=>ET.throw("predicate",T),proto:(T)=>ET.throw("proto",T),symbolKey:(T)=>ET.throw("symbolKey",T),unit:(T)=>ET.throw("unit",T),date:(T)=>ET.throw("date",T)}},ET={Error:M8,throw:(...T)=>{throw new ET.Error(...T)},throwInternalOperandError:(T,F)=>a(`Unexpected JSON Schema input for ${T}: ${o(F)}`),defaultConfig:EG};w.config??={};var I_=(T,F)=>{if(!F)return T;let _={...T},W;for(W in F){let J={...T.keywords};if(W==="keywords"){for(let $ in F[W]){let Y=F.keywords[$];if(Y===void 0)continue;J[$]=typeof Y==="string"?{description:Y}:Y}_.keywords=J}else if(W==="toJsonSchema")_[W]=Z2(T.toJsonSchema,F.toJsonSchema);else if(hF(W))_[W]={...T[W],...F[W]};else _[W]=F[W]}return _},Z2=(T,F)=>{if(!T)return F??{};if(!F)return T;let _={...T},W;for(W in F)if(W==="fallback")_.fallback=RG(T.fallback,F.fallback);else _[W]=F[W];return _},RG=(T,F)=>{T=Q8(T),F=Q8(F);let _={},W;for(W in ET.defaultConfig.fallback)_[W]=F[W]??F.default??T[W]??T.default??ET.defaultConfig.fallback[W];return _},Q8=(T)=>typeof T==="function"?{default:T}:T??{};class ZF extends M_{[iT]="error";path;data;nodeConfig;input;ctx;constructor({prefixPath:T,relativePath:F,..._},W){super();this.input=_,this.ctx=W,gJ(this,_);let J=W.data;if(_.code==="union")_.errors=_.errors.flatMap((Y)=>{let Z=Y.hasCode("union")?Y.errors:[Y];if(!T&&!F)return Z;return Z.map((A)=>A.transform((X)=>({...X,path:PJ(T,X.path,F)})))});this.nodeConfig=W.config[this.code];let $=[..._.path??W.path];if(F)$.push(...F);if(T)$.unshift(...T);this.path=new L_(...$),this.data="data"in _?_.data:J}transform(T){return new ZF(T({data:this.data,path:this.path,...this.input}),this.ctx)}hasCode(T){return this.code===T}get propString(){return i0(this.path)}get expected(){if(this.input.expected)return this.input.expected;let T=this.meta?.expected??this.nodeConfig.expected;return typeof T==="function"?T(this.input):T}get actual(){if(this.input.actual)return this.input.actual;let T=this.meta?.actual??this.nodeConfig.actual;return typeof T==="function"?T(this.data):T}get problem(){if(this.input.problem)return this.input.problem;let T=this.meta?.problem??this.nodeConfig.problem;return typeof T==="function"?T(this):T}get message(){if(this.input.message)return this.input.message;let T=this.meta?.message??this.nodeConfig.message;return typeof T==="function"?T(this):T}get flat(){return this.hasCode("intersection")?[...this.errors]:[this]}toJSON(){return{data:this.data,path:this.path,...this.input,expected:this.expected,actual:this.actual,problem:this.problem,message:this.message}}toString(){return this.message}throw(){throw this}}class F0 extends KW{[iT]="errors";ctx;constructor(T){super();this.ctx=T}byPath=Object.create(null);get flatByPath(){return m(this.byPath,(T,F)=>[T,F.flat])}get flatProblemsByPath(){return m(this.byPath,(T,F)=>[T,F.flat.map((_)=>_.problem)])}byAncestorPath=Object.create(null);count=0;mutable=this;throw(){throw this.toTraversalError()}toTraversalError(){return new X2(this)}add(T){if(this.includes(T))return;this._add(T)}transform(T){let F=new F0(this.ctx);for(let _ of this)F.add(T(_));return F}merge(T){for(let F of T){if(this.includes(F))continue;this._add(new ZF({...F,path:[...this.ctx.path,...F.path]},this.ctx))}}affectsPath(T){if(this.length===0)return!1;return T.stringifyAncestors().some((F)=>(F in this.byPath))||T.stringify()in this.byAncestorPath}get summary(){return this.toString()}get issues(){return this}toJSON(){return[...this.map((T)=>T.toJSON())]}toString(){return this.join(`
|
|
18
18
|
`)}_add(T){let F=this.byPath[T.propString];if(F){if(F.hasCode("union")&&F.errors.length===0)return;let _=T.hasCode("union")&&T.errors.length===0?T:new ZF({code:"intersection",errors:F.hasCode("intersection")?[...F.errors,T]:[F,T]},this.ctx),W=this.indexOf(F);this.mutable[W===-1?this.length:W]=_,this.byPath[T.propString]=_,this.addAncestorPaths(T)}else this.byPath[T.propString]=T,this.addAncestorPaths(T),this.mutable.push(T);this.count++}addAncestorPaths(T){for(let F of T.path.stringifyAncestors())this.byAncestorPath[F]=r(this.byAncestorPath[F],T)}}class X2 extends Error{name="TraversalError";constructor(T){if(T.length===1)super(T.summary);else super(`
|
|
19
19
|
`+T.map((F)=>` \u2022 ${wG(F)}`).join(`
|
|
20
20
|
`));Object.defineProperty(this,"arkErrors",{value:T,enumerable:!1})}}var wG=(T)=>T.toString().split(`
|
|
@@ -44,9 +44,9 @@ Right: ${F}`;var L9=c({kind:"unit",hasAssociatedError:!0,keys:{unit:{preserveUnd
|
|
|
44
44
|
${Y},
|
|
45
45
|
`;if(!_.hasKind("union"))return Z;let A=new S_({kind:"Allows",optimistic:!0}).indent();_.compile(A);let X=A.write(`${_.id}Optimistic`);return`${Z}${X},
|
|
46
46
|
`},`{
|
|
47
|
-
`)+"}");class xW{config;resolvedConfig;name;get[iT](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(T,F){if(this.config=I_(w.config,F),this.resolvedConfig=I_(w.resolvedConfig,F),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(g2).length}`,this.name in g2)z(`A Scope already named ${this.name} already exists`);g2[this.name]=this;let _=Object.entries(T).map((W)=>this.preparseOwnAliasEntry(...W));for(let[W,J]of _){let $=W;if(W[0]==="#"){if($=W.slice(1),$ in this.aliases)z(G$($));this.aliases[$]=J}else{if($ in this.aliases)z(G$(W));this.aliases[$]=J,this.exportedNames.push($)}if(!q(J,"module")&&!q(J,"generic")&&!WF(J)){let Y=this.preparseOwnDefinitionFormat(J,{alias:$});this.resolutions[$]=q(Y,"root")?this.bindReference(Y):this.createParseContext(Y).id}}H$??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[H$.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=w.intrinsic?m(w.intrinsic,(W,J)=>W.startsWith("json")?[]:[W,this.bindReference(J)]):{}}cacheGetter(T,F){return Object.defineProperty(this,T,{value:F}),F}get internal(){return this}_json;get json(){if(!this._json)this.export();return this._json}defineSchema(T){return T}generic=(...T)=>{let F=this;return(_,W)=>new XF(T,W?new kW(_):_,F,F,W??null)};units=(T,F)=>{let _=[];for(let J of T)if(!_.includes(J))_.push(J);let W=_.map((J)=>this.node("unit",{unit:J},F));return this.node("union",W,{...F,prereduced:!0})};lazyResolutions=[];lazilyResolve(T,F){let _=this.node("alias",{reference:F??"synthetic",resolve:T},{prereduced:!0});if(!this.resolved)this.lazyResolutions.push(_);return _}schema=(T,F)=>this.finalize(this.parseSchema(T,F));parseSchema=(T,F)=>this.node(B_(T),T,F);preparseNode(T,F,_){let W=typeof T==="string"?T:B_(F,T);if(OT(F)&&F.kind===W)return F;if(W==="alias"&&!_?.prereduced){let{reference:Y}=v_.implementation.normalize(F,this);if(Y.startsWith("$")){let Z=this.resolveRoot(Y.slice(1));F=Z,W=Z.kind}}else if(W==="union"&&eT(F,"object")){let Y=o9(F);if(Y?.length===1)F=Y[0],W=B_(F)}if(OT(F)&&F.kind===W)return F;let $=cF[W].normalize?.(F,this)??F;if(OT($))return $.kind===W?$:u9(W,$.kind);return{..._,$:this,kind:W,def:$,prefix:_.alias??W}}bindReference(T){let F;if(OT(T))F=T.$===this?T:new T.constructor(T.attachments,this);else F=T.$===this?T:new XF(T.params,T.bodyDef,T.$,this,T.hkt);if(!this.resolved)Object.assign(this.referencesById,F.referencesById);return F}resolveRoot(T){return this.maybeResolveRoot(T)??z(u2(T))}maybeResolveRoot(T){let F=this.maybeResolve(T);if(q(F,"generic"))return;return F}maybeResolveSubalias(T){return m2(this.aliases,T)??m2(this.ambient,T)}get ambient(){return w.ambient}maybeResolve(T){let F=this.resolutions[T];if(F){if(typeof F!=="string")return this.bindReference(F);let W=tT[F];if(q(W,"root"))return this.resolutions[T]=W;if(q(W,"context")){if(W.phase==="resolving")return this.node("alias",{reference:`$${T}`},{prereduced:!0});if(W.phase==="resolved")return a(`Unexpected resolved context for was uncached by its scope: ${o(W)}`);W.phase="resolving";let J=this.bindReference(this.parseOwnDefinitionFormat(W.def,W));return W.phase="resolved",tT[J.id]=J,tT[W.id]=J,this.resolutions[T]=J}return a(`Unexpected nodesById entry for ${F}: ${o(W)}`)}let _=this.aliases[T]??this.ambient?.[T];if(!_)return this.maybeResolveSubalias(T);if(_=this.normalizeRootScopeValue(_),q(_,"generic"))return this.resolutions[T]=this.bindReference(_);if(q(_,"module")){if(!_.root)z(R$(T));return this.resolutions[T]=this.bindReference(_.root)}return this.resolutions[T]=this.parse(_,{alias:T})}createParseContext(T){let F=T.id??L2(T.prefix);return tT[F]=Object.assign(T,{[iT]:"context",$:this,id:F,phase:"unresolved"})}traversal(T){return new B0(T,this.resolvedConfig)}import(...T){return new iF(m(this.export(...T),(F,_)=>[`#${F}`,_]))}precompilation;_exportedResolutions;_exports;export(...T){if(!this._exports){this._exports={};for(let _ of this.exportedNames){let W=this.aliases[_];this._exports[_]=q(W,"module")?p2(W,this):O$(this.maybeResolve(_))}for(let _ of this.lazyResolutions)_.resolution;if(this._exportedResolutions=E$(this,this._exports),this._json=z$(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let _=Q$(this.references);this.precompilation=_.write(U$,4),M$(this.references,_)}this.resolved=!0}let F=T.length?T:this.exportedNames;return new iF(m(F,(_,W)=>[W,this._exports[W]]))}resolve(T){return this.export()[T]}node=(T,F,_={})=>{let W=this.preparseNode(T,F,_);if(OT(W))return this.bindReference(W);let J=this.createParseContext(W),$=S2(J),Y=this.bindReference($);return tT[J.id]=Y};parse=(T,F={})=>this.finalize(this.parseDefinition(T,F));parseDefinition(T,F={}){if(q(T,"root"))return this.bindReference(T);let _=this.preparseOwnDefinitionFormat(T,F);if(q(_,"root"))return this.bindReference(_);let W=this.createParseContext(_);tT[W.id]=W;let J=this.bindReference(this.parseOwnDefinitionFormat(T,W));if(J.isCyclic)J=h8(J,W.id);return tT[W.id]=J,J}finalize(T){if(O$(T),!T.precompilation&&!this.resolvedConfig.jitless)c9(T.references);return T}}class o2 extends xW{parseOwnDefinitionFormat(T,F){return S2(F)}preparseOwnDefinitionFormat(T,F){return this.preparseNode(B_(T),T,F)}preparseOwnAliasEntry(T,F){return[T,F]}normalizeRootScopeValue(T){return T}}var O$=(T)=>{let F=T.references.filter((_)=>_.hasKind("alias"));for(let _ of F){Object.assign(_.referencesById,_.resolution.referencesById);for(let W of T.references)if(_.id in W.referencesById)Object.assign(W.referencesById,_.referencesById)}return T},z$=(T)=>m(T,(F,_)=>[F,q(_,"root")||q(_,"generic")?_.json:q(_,"module")?z$(_):a(`Unexpected resolution ${o(_)}`)]),m2=(T,F)=>{let _=F.indexOf(".");if(_===-1)return;let W=F.slice(0,_),J=T[W];if(J===void 0)return;if(!q(J,"module"))return z(d9(W));let $=F.slice(_+1),Y=J[$];if(Y===void 0)return m2(J,$);if(q(Y,"root")||q(Y,"generic"))return Y;if(q(Y,"module"))return Y.root??z(R$(F));a(`Unexpected resolution for alias '${F}': ${o(Y)}`)},bW=(T,F)=>new o2(T,F),h_=new o2({});var E$=(T,F)=>{let _={};for(let W in F){let J=F[W];if(q(J,"module")){let $=E$(T,J),Y=m($,(Z,A)=>[`${W}.${Z}`,A]);Object.assign(_,Y)}else if(q(J,"root")||q(J,"generic"))_[W]=J;else a(`Unexpected scope resolution ${o(J)}`)}return _},u2=(T)=>`'${T}' is unresolvable`,d9=(T)=>`'${T}' must reference a module to be accessed using dot syntax`,R$=(T)=>`Reference to submodule '${T}' must specify an alias`;h_.export();var{schema:_T,node:tF,defineSchema:rR,generic:K0}=h_;var c2="^(?:0|[1-9]\\d*)$",l9=new RegExp(c2),eR=VT(l9);var w$=bW({bigint:"bigint",boolean:[{unit:!1},{unit:!0}],false:{unit:!1},never:[],null:{unit:null},number:"number",object:"object",string:"string",symbol:"symbol",true:{unit:!0},unknown:{},undefined:{unit:void 0},Array,Date},{prereducedAliases:!0}).export();w.intrinsic={...w$};var K$=bW({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:c2}},{prereducedAliases:!0}).export();Object.assign(w.intrinsic,K$);var i9=bW({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),v={...w$,...K$,...i9,emptyStructure:tF("structure",{},{prereduced:!0})};w.intrinsic={...v};var D$=(T)=>typeof T==="string"&&T[0]==="d"&&(T[1]==="'"||T[1]==='"')&&T.at(-1)===T[1],V$=(T)=>T.toString()!=="Invalid Date",L$=(T)=>T.slice(2,-1),d2=(T)=>`'${T}' could not be parsed by the Date constructor`,S$=(T,F)=>t9(T,F),t9=(T,F)=>{let _=new Date(T);if(V$(_))return _;let W=_8(T);if(W!==void 0){let J=new Date(W);if(V$(J))return J}return F?z(F===!0?d2(T):F):void 0};var l2=(T,F)=>{let _=T.scanner.shiftUntil(n9[N$[F]]);if(T.scanner.lookahead==="")return T.error(s9(_,F));if(T.scanner.shift(),F==="/"){try{new RegExp(_)}catch(W){z(String(W))}T.root=T.ctx.$.node("intersection",{domain:"string",pattern:_},{prereduced:!0})}else if(qT(F,i2))T.root=T.ctx.$.node("unit",{unit:_});else{let W=S$(_,d2(_));T.root=T.ctx.$.node("unit",{meta:_,unit:W})}},i2={"'":1,'"':1},I$={"/":1,"'":1,'"':1},N$={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},n9={"'":(T)=>T.lookahead==="'",'"':(T)=>T.lookahead==='"',"/":(T)=>T.lookahead==="/"},r9={'"':"double-quote","'":"single-quote","/":"forward slash"},s9=(T,F)=>`${F}${T} requires a closing ${r9[N$[F]]}`;var C$=(T)=>`Private type references should not include '#'. Use '${T}' instead.`,hW="Optional definitions like 'string?' are only valid as properties in an object or tuple",pW="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var k$={">":!0,">=":!0},B$={"<":!0,"<=":!0};var nF={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},f$=(T)=>`Unmatched )${T===""?"":` before ${T}`}`,gW=(T)=>`Missing ${T}`,q$=(T,F)=>`Left bounds are only valid when paired with right bounds (try ...${F}${T})`,mW=(T)=>`Left-bounded expressions must specify their limits using < or <= (was ${T})`,j$=(T,F,_,W)=>`An expression may have at most one left bound (parsed ${T}${nF[F]}, ${_}${nF[W]})`;var y$=(T,F,_)=>P$(T,F,_,[]),P$=(T,F,_,W)=>{let J=_.parseUntilFinalizer();if(W.push(J.root),J.finalizer===">"){if(W.length!==F.params.length)return _.error(t2(T,F.names,W.map(($)=>$.expression)));return W}if(J.finalizer===",")return P$(T,F,_,W);return J.error(gW(">"))},t2=(T,F,_)=>`${T}<${F.join(", ")}> requires exactly ${F.length} args (got ${_.length}${_.length===0?"":`: ${_.join(", ")}`})`;var n2=(T)=>{let F=T.scanner.shiftUntilNextTerminator();if(F==="keyof")T.addPrefix("keyof");else T.root=e9(T,F)},a9=(T,F,_)=>{if(_.scanner.shiftUntilNonWhitespace(),_.scanner.shift()!=="<")return _.error(t2(T,F.names,[]));let J=y$(T,F,_);return F(...J)},e9=(T,F)=>T7(T,F)??F7(T,F)??T.error(F===""?T.scanner.lookahead==="#"?C$(T.shiftedByOne().scanner.shiftUntilNextTerminator()):r2(T):u2(F)),T7=(T,F)=>{if(T.ctx.args?.[F]){let W=T.ctx.args[F];if(typeof W!=="string")return W;return T.ctx.$.node("alias",{reference:W},{prereduced:!0})}let _=T.ctx.$.maybeResolve(F);if(q(_,"root"))return _;if(_===void 0)return;if(q(_,"generic"))return a9(F,_,T);return z(`Unexpected resolution ${o(_)}`)},F7=(T,F)=>{let _=W8(F);if(_!==void 0)return T.ctx.$.node("unit",{unit:_});let W=$8(F);if(W!==void 0)return T.ctx.$.node("unit",{unit:W})},r2=(T)=>{let F=T.previousOperator();return F?s2(F,T.scanner.unscanned):_7(T.scanner.unscanned)},s2=(T,F="")=>`Token '${T}' requires a right operand${F?` before '${F}'`:""}`,_7=(T)=>`Expected an expression${T?` before '${T}'`:""}`;var a2=(T)=>T.scanner.lookahead===""?T.error(r2(T)):T.scanner.lookahead==="("?T.shiftedByOne().reduceGroupOpen():T.scanner.lookaheadIsIn(I$)?l2(T,T.scanner.shift()):T.scanner.lookaheadIsIn(JF)?a2(T.shiftedByOne()):T.scanner.lookahead==="d"?T.scanner.nextLookahead in i2?l2(T,`${T.scanner.shift()}${T.scanner.shift()}`):n2(T):n2(T);class r0 extends W2{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>(this.lookahead in r0.terminatingChars))}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...JF};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(T,F)=>T===">"?F[0]==="="?F[1]==="=":F.trimStart()===""||qT(F.trimStart()[0],r0.terminatingChars):T==="="?F[0]!=="=":T===","||T==="?"}var x$=(T,F)=>{let _=W7(T,F);if(T.root.hasKind("unit")){if(typeof T.root.unit==="number"){T.reduceLeftBound(T.root.unit,_),T.unsetRoot();return}if(T.root.unit instanceof Date){let W=`d'${T.root.description??T.root.unit.toISOString()}'`;T.unsetRoot(),T.reduceLeftBound(W,_);return}}return $7(T,_)},b$={"<":1,">":1,"=":1},W7=(T,F)=>T.scanner.lookaheadIs("=")?`${F}${T.scanner.shift()}`:F;var v$=(T,F,_,W)=>{if(_.extends(w.intrinsic.number)){if(typeof F!=="number")return z(e2(T,F,W));return T==="=="?["min","max"]:T[0]===">"?["min"]:["max"]}if(_.extends(w.intrinsic.lengthBoundable)){if(typeof F!=="number")return z(e2(T,F,W));return T==="=="?["exactLength"]:T[0]===">"?["minLength"]:["maxLength"]}if(_.extends(w.intrinsic.Date))return T==="=="?["after","before"]:T[0]===">"?["after"]:["before"];return z(I8(_.expression))},J7=(T)=>({rule:D$(T.limit)?L$(T.limit):T.limit,exclusive:T.comparator.length===1}),$7=(T,F)=>{let _=T.unsetRoot(),W=T.scanner.location;T.parseOperand();let J=T.unsetRoot(),$=T.scanner.sliceChars(W,T.scanner.location);if(T.root=_,!J.hasKind("unit")||typeof J.unit!=="number"&&!(J.unit instanceof Date))return T.error(e2(F,$,"right"));let Y=J.unit,Z=F.length===1,A=v$(F,typeof Y==="number"?Y:$,_,"right");for(let O of A)T.constrainRoot(O,F==="=="?{rule:Y}:{rule:Y,exclusive:Z});if(!T.branches.leftBound)return;if(!qT(F,B$))return T.error(mW(F));let X=v$(T.branches.leftBound.comparator,T.branches.leftBound.limit,_,"left");T.constrainRoot(X[0],J7(T.branches.leftBound)),T.branches.leftBound=null},e2=(T,F,_)=>`Comparator ${_==="left"?nF[T]:T} must be ${_==="left"?"preceded":"followed"} by a corresponding literal (was ${F})`;var h$=(T)=>{T.scanner.shiftUntilNonWhitespace();let F=T.scanner.shiftUntilNextTerminator();T.root=T.root.brand(F)};var g$=(T)=>{let F=T.scanner.shiftUntilNextTerminator(),_=J8(F,{errorOnFail:p$(F)});if(_===0)T.error(p$(0));T.root=T.root.constrain("divisor",_)},p$=(T)=>`% operator must be followed by a non-zero integer literal (was ${T})`;var T4=(T)=>{let F=T.scanner.shift();return F===""?T.finalize(""):F==="["?T.scanner.shift()==="]"?T.setRoot(T.root.array()):T.error(Y7):F==="|"?T.scanner.lookahead===">"?T.shiftedByOne().pushRootToBranch("|>"):T.pushRootToBranch(F):F==="&"?T.pushRootToBranch(F):F===")"?T.finalizeGroup():r0.lookaheadIsFinalizing(F,T.scanner.unscanned)?T.finalize(F):qT(F,b$)?x$(T,F):F==="%"?g$(T):F==="#"?h$(T):(F in JF)?T4(T):T.error(oW(F))},oW=(T,F="")=>`'${T}' is not allowed here${F&&` (should be ${F})`}`,Y7="Missing expected ']'";var m$=(T)=>{let F=T.unsetRoot();T.parseOperand();let _=T.unsetRoot();if(!_.hasKind("unit"))return T.error(Z7(_.expression));let W=_.unit instanceof Date?()=>new Date(_.unit):_.unit;return[F,"=",W]},Z7=(T)=>`Default value '${T}' must a literal value`;var F4=(T,F)=>{let _=F.$.maybeResolveRoot(T);if(_)return _;if(T.endsWith("[]")){let $=F.$.maybeResolveRoot(T.slice(0,-2));if($)return $.array()}let W=new rF(new r0(T),F),J=X7(W);if(W.finalizer===">")z(oW(">"));return J},X7=(T)=>{T.parseOperand();let F=p_(T).root;if(!F)return a(`Root was unexpectedly unset after parsing string '${T.scanner.scanned}'`);if(T.finalizer==="=")F=m$(T);else if(T.finalizer==="?")F=[F,"?"];if(T.scanner.shiftUntilNonWhitespace(),T.scanner.lookahead)z(oW(T.scanner.lookahead));return F},p_=(T)=>{while(T.finalizer===void 0)A7(T);return T},A7=(T)=>T.hasRoot()?T.parseOperator():T.parseOperand();class rF{root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(T,F){this.scanner=T,this.ctx=F}error(T){return z(T)}hasRoot(){return this.root!==void 0}setRoot(T){this.root=T}unsetRoot(){let T=this.root;return this.root=void 0,T}constrainRoot(...T){this.root=this.root.constrain(T[0],T[1])}finalize(T){if(this.groups.length)return this.error(gW(")"));this.finalizeBranches(),this.finalizer=T}reduceLeftBound(T,F){let _=nF[F];if(!qT(_,k$))return this.error(mW(F));if(this.branches.leftBound)return this.error(j$(this.branches.leftBound.limit,this.branches.leftBound.comparator,T,_));this.branches.leftBound={comparator:_,limit:T}}finalizeBranches(){if(this.assertRangeUnset(),this.branches.pipe){this.pushRootToBranch("|>"),this.root=this.branches.pipe;return}if(this.branches.union){this.pushRootToBranch("|"),this.root=this.branches.union;return}if(this.branches.intersection){this.pushRootToBranch("&"),this.root=this.branches.intersection;return}this.applyPrefixes()}finalizeGroup(){this.finalizeBranches();let T=this.groups.pop();if(!T)return this.error(f$(this.scanner.unscanned));this.branches=T}addPrefix(T){this.branches.prefixes.push(T)}applyPrefixes(){while(this.branches.prefixes.length){let T=this.branches.prefixes.pop();this.root=T==="keyof"?this.root.keyof():a(`Unexpected prefix '${T}'`)}}pushRootToBranch(T){this.assertRangeUnset(),this.applyPrefixes();let F=this.root;if(this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd(F)??F,T==="&")return;if(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,T==="|")return;this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null}parseUntilFinalizer(){return p_(new rF(this.scanner,this.ctx))}parseOperator(){return T4(this)}parseOperand(){return a2(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(q$(this.branches.leftBound.limit,this.branches.leftBound.comparator))}reduceGroupOpen(){this.groups.push(this.branches),this.branches={prefixes:[],leftBound:null,union:null,intersection:null,pipe:null}}previousOperator(){return this.branches.leftBound?.comparator??this.branches.prefixes.at(-1)??(this.branches.intersection?"&":this.branches.union?"|":this.branches.pipe?"|>":void 0)}shiftedByOne(){return this.scanner.shift(),this}}var G7="An empty string is not a valid generic parameter name",uW=(T,F,_)=>{T.shiftUntilNonWhitespace();let W=T.shiftUntilNextTerminator();if(W===""){if(T.lookahead===""&&F.length)return F;return z(G7)}return T.shiftUntilNonWhitespace(),H7(T,W,F,_)},o$="extends ",H7=(T,F,_,W)=>{if(T.shiftUntilNonWhitespace(),T.unscanned.startsWith(o$))T.jumpForward(o$.length);else{if(T.lookahead===",")T.shift();return _.push(F),uW(T,_,W)}let J=p_(new rF(T,W));return _.push([F,J.root]),uW(T,_,W)};class _4 extends k0{$;constructor(T){super((...F)=>new g_(T)(...F),{bind:T});this.$=T}in(T){return new g_(this.$,T===void 0?void 0:this.$.parse(T))}at(T,F){return new g_(this.$).at(T,F)}case(T,F){return new g_(this.$).case(T,F)}}class g_ extends k0{$;in;key;branches=[];constructor(T,F){super((_)=>this.caseEntries(Object.entries(_).map(([W,J])=>W==="default"?[W,J]:[this.$.parse(W),J])));this.$=T,this.in=F}at(T,F){if(this.key)z(U7);if(this.branches.length)z(O7);return this.key=T,F?this.match(F):this}case(T,F){return this.caseEntry(this.$.parse(T),F)}caseEntry(T,F){let W=(this.key?this.$.parse({[this.key]:T}):T).pipe(F);return this.branches.push(W),this}match(T){return this(T)}strings(T){return this.caseEntries(Object.entries(T).map(([F,_])=>F==="default"?[F,_]:[this.$.node("unit",{unit:F}),_]))}caseEntries(T){for(let F=0;F<T.length;F++){let[_,W]=T[F];if(_==="default"){if(F!==T.length-1)z("default may only be specified as the last key of a switch definition");return this.default(W)}if(typeof W!=="function")return z(`Value for case "${_}" must be a function (was ${fT(W)})`);this.caseEntry(_,W)}return this}default(T){if(typeof T==="function")this.case(v.unknown,T);let F={branches:this.branches,ordered:!0};if(T==="never"||T==="assert")F.meta={onFail:u$};let _=this.$.node("union",F);if(!this.in)return this.$.finalize(_);let W=this.in.pipe(_);if(T==="never"||T==="assert")W=W.configureReferences({onFail:u$},"self");return this.$.finalize(W)}}var u$=(T)=>T.throw(),O7="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",U7="At most one key matcher may be specified per expression";var cW=(T,F)=>{if(YT(T)){if(T[1]==="=")return[F.$.parseOwnDefinitionFormat(T[0],F),"=",T[2]];if(T[1]==="?")return[F.$.parseOwnDefinitionFormat(T[0],F),"?"]}return dW(T,F)},c$="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",d$="Only required keys may specify default values, e.g. { value: 'number = 0' }";var l$=(T,F)=>{let _,W={},J=wF(T);for(let[Y,Z]of J){let A=z7(Y);if(A.kind==="spread"){if(!b0(W))return z(Q7);let K=F.$.parseOwnDefinitionFormat(Z,F);if(K.equals(v.object))continue;if(!K.hasKind("intersection")||!K.basis?.equals(v.object))return z(E7(K.expression));_=K.structure;continue}if(A.kind==="undeclared"){if(Z!=="reject"&&Z!=="delete"&&Z!=="ignore")z(M7(Z));W.undeclared=Z;continue}let X=cW(Z,F),O=A;if(A.kind==="required"){if(!YT(X))W4(W,"required",{key:A.normalized,value:X},F);else W4(W,"optional",X[1]==="="?{key:A.normalized,value:X[0],default:X[2]}:{key:A.normalized,value:X[0]},F);continue}if(YT(X)){if(X[1]==="?")z(c$);if(X[1]==="=")z(d$)}if(A.kind==="optional"){W4(W,"optional",{key:A.normalized,value:X},F);continue}let M=F.$.parseOwnDefinitionFormat(O.normalized,F),E=vW(M,X,F.$);if(E.index)W.index=r(W.index,E.index);if(E.required)W.required=r(W.required,E.required)}let $=F.$.node("structure",W);return F.$.parseSchema({domain:"object",structure:_?.merge($)??$})},W4=(T,F,_,W)=>{T[F]=r(T[F],W.$.node(F,_))},M7=(T)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${o(T)})`,Q7="Spread operator may only be used as the first key in an object",z7=(T)=>typeof T==="symbol"?{kind:"required",normalized:T}:T.at(-1)==="?"?T.at(-2)===R_?{kind:"required",normalized:`${T.slice(0,-2)}?`}:{kind:"optional",normalized:T.slice(0,-1)}:T[0]==="["&&T.at(-1)==="]"?{kind:"index",normalized:T.slice(1,-1)}:T[0]===R_&&T[1]==="["&&T.at(-1)==="]"?{kind:"required",normalized:T.slice(1)}:T==="..."?{kind:"spread"}:T==="+"?{kind:"undeclared"}:{kind:"required",normalized:T==="\\..."?"...":T==="\\+"?"+":T},E7=(T)=>`Spread operand must resolve to an object literal type (was ${T})`;var t$=(T,F)=>C7(T)?a$[T[0]](T,F):I7(T)?s$[T[1]](T,F):null,R7=(T,F)=>F.$.parseOwnDefinitionFormat(T[1],F).keyof(),J4=(T,F)=>{if(T[2]===void 0)return z(s2(T[1],""));let _=F.$.parseOwnDefinitionFormat(T[0],F),W=F.$.parseOwnDefinitionFormat(T[2],F);if(T[1]==="|")return F.$.node("union",{branches:[_,W]});let J=T[1]==="&"?W0(_,W,F.$):k_(_,W,F.$);if(J instanceof I)return J.throw();return J},w7=(T,F)=>F.$.parseOwnDefinitionFormat(T[0],F).array(),K7=(T,F)=>{if(typeof T[2]!=="function")return z(n$("=>",T[2]));return F.$.parseOwnDefinitionFormat(T[0],F).pipe(T[2])},n$=(T,F)=>`${T===":"?"Narrow":"Morph"} expression requires a function following '${T}' (was ${typeof F})`,V7=(T,F)=>{if(typeof T[2]!=="function")return z(n$(":",T[2]));return F.$.parseOwnDefinitionFormat(T[0],F).constrain("predicate",T[2])},D7=(T,F)=>F.$.parseOwnDefinitionFormat(T[0],F).configureReferences(T[2],"shallow"),r$=(T)=>T,L7=r$({"[]":w7,"?":()=>z(hW)}),S7=r$({"|":J4,"&":J4,":":V7,"=>":K7,"|>":J4,"@":D7,"=":()=>z(pW)}),s$={...L7,...S7},I7=(T)=>s$[T[1]]!==void 0,N7=(T)=>T,a$=N7({keyof:R7,instanceof:(T,F)=>{if(typeof T[1]!=="function")return z(i$(z_(T[1])));let _=T.slice(1).map((W)=>typeof W==="function"?F.$.node("proto",{proto:W}):z(i$(z_(W))));return _.length===1?_[0]:F.$.node("union",{branches:_})},"===":(T,F)=>F.$.units(T.slice(1))}),C7=(T)=>a$[T[0]]!==void 0,i$=(T)=>`Expected a constructor following 'instanceof' operator (was ${T})`;var F6=(T,F)=>{let _=[{}],W=0;while(W<T.length){let J=!1;if(T[W]==="..."&&W<T.length-1)J=!0,W++;let $=cW(T[W],F),[Y,Z,A]=!YT($)?[$]:$;if(W++,J){if(!Y.extends(w.intrinsic.Array))return z(f7(Y.expression));_=_.flatMap((X)=>Y.distribute((O)=>B7(SW(X),O)))}else _=_.map((X)=>{if(Z==="?")return _6(X,Y);if(Z==="=")return k7(X,Y,A);return $4(X,Y)})}return F.$.parseSchema(_.map((J)=>b0(J)?{proto:Array,exactLength:0}:{proto:Array,sequence:J}))},$4=(T,F)=>{if(T.defaultables||T.optionals)return z(T.variadic?x2:q7);if(T.variadic)T.postfix=r(T.postfix,F);else T.prefix=r(T.prefix,F);return T},_6=(T,F)=>{if(T.variadic)return z(W6);return T.optionals=r(T.optionals,F),T},k7=(T,F,_)=>{if(T.variadic)return z(W6);if(T.optionals)return z(j7);return T.defaultables=r(T.defaultables,[[F,_]]),T},e$=(T,F)=>{if(T.postfix)z(T6);if(T.variadic){if(!T.variadic.equals(F))z(T6)}else T.variadic=F.internal;return T},B7=(T,F)=>{let _=F.select({method:"find",kind:"sequence"});if(!_)return e$(T,w.intrinsic.unknown);if(_.prefix)for(let W of _.prefix)$4(T,W);if(_.optionals)for(let W of _.optionals)_6(T,W);if(_.variadic)e$(T,_.variadic);if(_.postfix)for(let W of _.postfix)$4(T,W);return T},f7=(T)=>`Spread element must be an array (was ${T})`,T6="A tuple may have at most one variadic element",q7="A required element may not follow an optional element",W6="An optional element may not follow a variadic element";var j7="A defaultable element may not follow an optional element without a default";var y7={},dW=(T,F)=>{if(typeof T==="string"){if(F.args&&Object.keys(F.args).some((W)=>T.includes(W)))return F4(T,F);let _=y7[F.$.name]??={};return _[T]??=F4(T,F)}return eT(T,"object")?P7(T,F):z(Y4(fT(T)))},P7=(T,F)=>{let _=Q_(T);switch(_){case void 0:if(q(T,"root"))return T;return l$(T,F);case"Array":return v7(T,F);case"RegExp":return F.$.node("intersection",{domain:"string",pattern:T},{prereduced:!0});case"Function":{let W=WF(T)?T():T;if(q(W,"root"))return W;return z(Y4("Function"))}default:return z(Y4(_??o(T)))}},v7=(T,F)=>t$(T,F)??F6(T,F),Y4=(T)=>`Type definitions must be strings or objects (was ${T})`;class Z4 extends k0{constructor(T){let F=Object.assign({errors:F0,hkt:uT,$:T,raw:T.parse,module:T.constructor.module,scope:T.constructor.scope,define:T.define,match:T.match,generic:T.generic,schema:T.schema,keywords:T.ambient,unit:T.unit,enumerated:T.enumerated,instanceOf:T.instanceOf,valueOf:T.valueOf,or:T.or,and:T.and,merge:T.merge,pipe:T.pipe},T.ambientAttachments);super((..._)=>{if(_.length===1)return T.parse(_[0]);if(_.length===2&&typeof _[0]==="string"&&_[0][0]==="<"&&_[0].at(-1)===">"){let W=_[0].slice(1,-1),J=T.parseGenericParams(W,{});return new XF(J,_[1],T,T,null)}return T.parse(_)},{bind:T,attach:F})}}var sF=w;class lW extends xW{get ambientAttachments(){if(!sF.typeAttachments)return;return this.cacheGetter("ambientAttachments",m(sF.typeAttachments,(T,F)=>[T,this.bindReference(F)]))}preparseOwnAliasEntry(T,F){let _=T.indexOf("<");if(_===-1){if(q(F,"module")||q(F,"generic"))return[T,F];let $=this.name==="ark"?T:T==="root"?this.name:`${this.name}.${T}`,Y=this.resolvedConfig.keywords?.[$];if(Y)F=[F,"@",Y];return[T,F]}if(T.at(-1)!==">")z("'>' must be the last character of a generic declaration in a scope");let W=T.slice(0,_),J=T.slice(_+1,-1);return[W,()=>{let $=this.parseGenericParams(J,{alias:W});return D8($,F,this)}]}parseGenericParams(T,F){return uW(new r0(T),[],this.createParseContext({...F,def:T,prefix:"generic"}))}normalizeRootScopeValue(T){if(WF(T)&&!q(T,"generic"))return T();return T}preparseOwnDefinitionFormat(T,F){return{...F,def:T,prefix:F.alias??"type"}}parseOwnDefinitionFormat(T,F){if(!(F.alias&&(F.alias in this.aliases))&&!F.args)F.args={this:F.id};let W=dW(T,F);if(YT(W)){if(W[1]==="=")return z(pW);if(W[1]==="?")return z(hW)}return W}unit=(T)=>this.units([T]);valueOf=(T)=>this.units(oJ(T));enumerated=(...T)=>this.units(T);instanceOf=(T)=>this.node("proto",{proto:T},{prereduced:!0});or=(...T)=>this.schema(T.map((F)=>this.parse(F)));and=(...T)=>T.reduce((F,_)=>F.and(this.parse(_)),this.intrinsic.unknown);merge=(...T)=>T.reduce((F,_)=>F.merge(this.parse(_)),this.intrinsic.object);pipe=(...T)=>this.intrinsic.unknown.pipe(...T);match=new _4(this);declare=()=>({type:this.type});define(T){return T}type=new Z4(this);static scope=(T,F={})=>new lW(T,F);static module=(T,F={})=>this.scope(T,F).export()}var X4=Object.assign(lW.scope,{define:(T)=>T}),t=lW;class J6 extends uT{description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var x7=K0(["base",v.object],["props",v.object])((T)=>T.base.merge(T.props),J6),$6=t.module({Key:v.key,Merge:x7});class Y6 extends uT{}var b7=K0("element")((T)=>{let F=T.element.exclude(v.Array),_=F.array();return F.rawOr(_).pipe(_F).distribute((W)=>W.assertHasKind("morph").declareOut(_),_T)},Y6),Z6=t.module({root:v.Array,readonly:"root",index:v.nonNegativeIntegerString,liftFrom:b7},{name:"Array"});var A4=_T(["string",VF.FileConstructor]),h7=A4.rawOr(A4.array()),X6=_T({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:h7}}),A6=t.module({root:["instanceof",FormData],value:A4,parsed:X6,parse:_T({in:FormData,morphs:(T)=>{let F={};for(let[_,W]of T)if(_ in F){let J=F[_];if(typeof J==="string"||J instanceof VF.FileConstructor)F[_]=[J,W];else J.push(W)}else F[_]=W;return F},declaredOut:X6})},{name:"FormData"});var G6=t.module({Int8:["instanceof",Int8Array],Uint8:["instanceof",Uint8Array],Uint8Clamped:["instanceof",Uint8ClampedArray],Int16:["instanceof",Int16Array],Uint16:["instanceof",Uint16Array],Int32:["instanceof",Int32Array],Uint32:["instanceof",Uint32Array],Float32:["instanceof",Float32Array],Float64:["instanceof",Float64Array],BigInt64:["instanceof",BigInt64Array],BigUint64:["instanceof",BigUint64Array]},{name:"TypedArray"});var p7={Boolean:1,Number:1,String:1},H6=t.module({...m({...n1,...s1},(T,F)=>(T in p7)?[]:[T,["instanceof",F]]),Array:Z6,TypedArray:G6,FormData:A6});var g7=_T({domain:{domain:"number",meta:"a number representing a Unix timestamp"},divisor:{rule:1,meta:"an integer representing a Unix timestamp"},min:{rule:-8640000000000000,meta:"a Unix timestamp after -8640000000000000"},max:{rule:8640000000000000,meta:"a Unix timestamp before 8640000000000000"},meta:"an integer representing a safe Unix timestamp"}),m7=_T({domain:"number",divisor:1}),iW=t.module({root:v.number,integer:m7,epoch:g7,safe:_T({domain:{domain:"number",numberAllowsNaN:!1},min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER}),NaN:["===",Number.NaN],Infinity:["===",Number.POSITIVE_INFINITY],NegativeInfinity:["===",Number.NEGATIVE_INFINITY]},{name:"number"});var RT=(T,F,_)=>{let W={domain:"string",pattern:{rule:T.source,flags:T.flags,meta:F}};if(_)W.meta={format:_};return tF("intersection",W)},O6=RT(w_,"a well-formed integer string"),S6=t.module({root:O6,parse:_T({in:O6,morphs:(T,F)=>{let _=Number.parseInt(T);return Number.isSafeInteger(_)?_:F.error("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")},declaredOut:v.integer})},{name:"string.integer"}),o7=RT(/^[\dA-Fa-f]+$/,"hex characters only"),u7=t.module({root:RT(/^(?:[\d+/A-Za-z]{4})*(?:[\d+/A-Za-z]{2}==|[\d+/A-Za-z]{3}=)?$/,"base64-encoded"),url:RT(/^(?:[\w-]{4})*(?:[\w-]{2}(?:==|%3D%3D)?|[\w-]{3}(?:=|%3D)?)?$/,"base64url-encoded")},{name:"string.base64"}),U6=RT(/^[A-Z].*$/,"capitalized"),c7=t.module({root:_T({in:"string",morphs:(T)=>T.charAt(0).toUpperCase()+T.slice(1),declaredOut:U6}),preformatted:U6},{name:"string.capitalize"}),d7=(T)=>{let F=T.replaceAll(/[ -]+/g,""),_=0,W,J,$=!1;for(let Y=F.length-1;Y>=0;Y--){if(W=F.substring(Y,Y+1),J=Number.parseInt(W,10),$)J*=2,_+=J>=10?J%10+1:J;else _+=J;$=!$}return!!(_%10===0?F:!1)},l7=/^(?:4\d{12}(?:\d{3,6})?|5[1-5]\d{14}|(222[1-9]|22[3-9]\d|2[3-6]\d{2}|27[01]\d|2720)\d{12}|6(?:011|5\d\d)\d{12,15}|3[47]\d{13}|3(?:0[0-5]|[68]\d)\d{11}|(?:2131|1800|35\d{3})\d{11}|6[27]\d{14}|^(81\d{14,17}))$/,i7=_T({domain:"string",pattern:{meta:"a credit card number",rule:l7.source},predicate:{meta:"a credit card number",predicate:d7}});var t7=/^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))(T((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([,.]\d+(?!:))?)?(\17[0-5]\d([,.]\d+)?)?([Zz]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;var n7=(T)=>!Number.isNaN(new Date(T).valueOf()),M6=_T({domain:"string",predicate:{meta:"a parsable date",predicate:n7}}).assertHasKind("intersection"),Q6=S6.root.internal.narrow((T,F)=>{let _=Number.parseInt(T),W=iW.epoch(_);if(W instanceof F0)return F.errors.merge(W),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),r7=t.module({root:Q6,parse:_T({in:Q6,morphs:(T)=>new Date(T),declaredOut:v.Date})},{name:"string.date.epoch"}),z6=RT(t7,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),s7=t.module({root:z6,parse:_T({in:z6,morphs:(T)=>new Date(T),declaredOut:v.Date})},{name:"string.date.iso"}),a7=t.module({root:M6,parse:_T({declaredIn:M6,in:"string",morphs:(T,F)=>{let _=new Date(T);if(Number.isNaN(_.valueOf()))return F.error("a parsable date");return _},declaredOut:v.Date}),iso:s7,epoch:r7},{name:"string.date"}),e7=RT(/^[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z]{2,}$/,"an email address","email"),E6="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",AF=`(${E6}[.]){3}${E6}`,T3=new RegExp(`^${AF}$`),NT="(?:[0-9a-fA-F]{1,4})",F3=new RegExp(`^((?:${NT}:){7}(?:${NT}|:)|(?:${NT}:){6}(?:${AF}|:${NT}|:)|(?:${NT}:){5}(?::${AF}|(:${NT}){1,2}|:)|(?:${NT}:){4}(?:(:${NT}){0,1}:${AF}|(:${NT}){1,3}|:)|(?:${NT}:){3}(?:(:${NT}){0,2}:${AF}|(:${NT}){1,4}|:)|(?:${NT}:){2}(?:(:${NT}){0,3}:${AF}|(:${NT}){1,5}|:)|(?:${NT}:){1}(?:(:${NT}){0,4}:${AF}|(:${NT}){1,6}|:)|(?::((?::${NT}){0,5}:${AF}|(?::${NT}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),_3=t.module({root:["v4 | v6","@","an IP address"],v4:RT(T3,"an IPv4 address","ipv4"),v6:RT(F3,"an IPv6 address","ipv6")},{name:"string.ip"}),aF="a JSON string",I6=(T)=>{if(!(T instanceof SyntaxError))throw T;return`must be ${aF} (${T})`},W3=_T({meta:aF,domain:"string",predicate:{meta:aF,predicate:(T,F)=>{try{return JSON.parse(T),!0}catch(_){return F.reject({code:"predicate",expected:aF,problem:I6(_)})}}}}),J3=(T,F)=>{if(T.length===0)return F.error({code:"predicate",expected:aF,actual:"empty"});try{return JSON.parse(T)}catch(_){return F.error({code:"predicate",expected:aF,problem:I6(_)})}},$3=t.module({root:W3,parse:_T({meta:"safe JSON string parser",in:"string",morphs:J3,declaredOut:v.jsonObject})},{name:"string.json"}),R6=RT(/^[a-z]*$/,"only lowercase letters"),Y3=t.module({root:_T({in:"string",morphs:(T)=>T.toLowerCase(),declaredOut:R6}),preformatted:R6},{name:"string.lower"}),N6=["NFC","NFD","NFKC","NFKD"],m_=m(N6,(T,F)=>[F,_T({domain:"string",predicate:(_)=>_.normalize(F)===_,meta:`${F}-normalized unicode`})]),tW=m(N6,(T,F)=>[F,_T({in:"string",morphs:(_)=>_.normalize(F),declaredOut:m_[F]})]),Z3=t.module({root:tW.NFC,preformatted:m_.NFC},{name:"string.normalize.NFC"}),X3=t.module({root:tW.NFD,preformatted:m_.NFD},{name:"string.normalize.NFD"}),A3=t.module({root:tW.NFKC,preformatted:m_.NFKC},{name:"string.normalize.NFKC"}),G3=t.module({root:tW.NFKD,preformatted:m_.NFKD},{name:"string.normalize.NFKD"}),H3=t.module({root:"NFC",NFC:Z3,NFD:X3,NFKC:A3,NFKD:G3},{name:"string.normalize"}),w6=RT(VW,"a well-formed numeric string"),O3=t.module({root:w6,parse:_T({in:w6,morphs:(T)=>Number.parseFloat(T),declaredOut:v.number})},{name:"string.numeric"}),K6="a regex pattern",U3=_T({domain:"string",predicate:{meta:K6,predicate:(T,F)=>{try{return new RegExp(T),!0}catch(_){return F.reject({code:"predicate",expected:K6,problem:String(_)})}}},meta:{format:"regex"}}),M3=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[A-Za-z-][\dA-Za-z-]*)(?:\.(?:0|[1-9]\d*|\d*[A-Za-z-][\dA-Za-z-]*))*))?(?:\+([\dA-Za-z-]+(?:\.[\dA-Za-z-]+)*))?$/,Q3=RT(M3,"a semantic version (see https://semver.org/)"),V6=RT(/^\S.*\S$|^\S?$/,"trimmed"),z3=t.module({root:_T({in:"string",morphs:(T)=>T.trim(),declaredOut:V6}),preformatted:V6},{name:"string.trim"}),D6=RT(/^[A-Z]*$/,"only uppercase letters"),E3=t.module({root:_T({in:"string",morphs:(T)=>T.toUpperCase(),declaredOut:D6}),preformatted:D6},{name:"string.upper"}),R3=(T)=>{if(URL.canParse)return URL.canParse(T);try{return new URL(T),!0}catch{return!1}},L6=_T({domain:"string",predicate:{meta:"a URL string",predicate:R3},meta:{format:"uri"}}),w3=t.module({root:L6,parse:_T({declaredIn:L6,in:"string",morphs:(T,F)=>{try{return new URL(T)}catch{return F.error("a URL string")}},declaredOut:_T(URL)})},{name:"string.url"}),K3=t.module({root:["versioned | nil | max","@",{description:"a UUID",format:"uuid"}],"#nil":"'00000000-0000-0000-0000-000000000000'","#max":"'ffffffff-ffff-ffff-ffff-ffffffffffff'","#versioned":/[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}/i,v1:RT(/^[\da-f]{8}-[\da-f]{4}-1[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv1"),v2:RT(/^[\da-f]{8}-[\da-f]{4}-2[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv2"),v3:RT(/^[\da-f]{8}-[\da-f]{4}-3[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv3"),v4:RT(/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv4"),v5:RT(/^[\da-f]{8}-[\da-f]{4}-5[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv5"),v6:RT(/^[\da-f]{8}-[\da-f]{4}-6[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv6"),v7:RT(/^[\da-f]{8}-[\da-f]{4}-7[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv7"),v8:RT(/^[\da-f]{8}-[\da-f]{4}-8[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv8")},{name:"string.uuid"}),C6=t.module({root:v.string,alpha:RT(/^[A-Za-z]*$/,"only letters"),alphanumeric:RT(/^[\dA-Za-z]*$/,"only letters and digits 0-9"),hex:o7,base64:u7,capitalize:c7,creditCard:i7,date:a7,digits:RT(/^\d*$/,"only digits 0-9"),email:e7,integer:S6,ip:_3,json:$3,lower:Y3,normalize:H3,numeric:O3,regex:U3,semver:Q3,trim:z3,upper:E3,url:w3,uuid:K3},{name:"string"});var k6=t.module({bigint:v.bigint,boolean:v.boolean,false:v.false,never:v.never,null:v.null,number:v.number,object:v.object,string:v.string,symbol:v.symbol,true:v.true,unknown:v.unknown,undefined:v.undefined}),B6=t.module({root:v.unknown,any:v.unknown},{name:"unknown"}),V3=t.module({root:v.jsonObject,stringify:tF("morph",{in:v.jsonObject,morphs:(T)=>JSON.stringify(T),declaredOut:v.string})},{name:"object.json"}),f6=t.module({root:v.object,json:V3},{name:"object"});class q6 extends uT{description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var D3=K0(["K",v.key],"V")((T)=>({domain:"object",index:{signature:T.K,value:T.V}}),q6);class j6 extends uT{description='pick a set of properties from an object like `Pick(User, "name | age")`'}var L3=K0(["T",v.object],["K",v.key])((T)=>T.T.pick(T.K),j6);class y6 extends uT{description='omit a set of properties from an object like `Omit(User, "age")`'}var S3=K0(["T",v.object],["K",v.key])((T)=>T.T.omit(T.K),y6);class P6 extends uT{description="make all named properties of an object optional like `Partial(User)`"}var I3=K0(["T",v.object])((T)=>T.T.partial(),P6);class v6 extends uT{description="make all named properties of an object required like `Required(User)`"}var N3=K0(["T",v.object])((T)=>T.T.required(),v6);class x6 extends uT{description='exclude branches of a union like `Exclude("boolean", "true")`'}var C3=K0("T","U")((T)=>T.T.exclude(T.U),x6);class b6 extends uT{description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var k3=K0("T","U")((T)=>T.T.extract(T.U),b6),h6=t.module({Exclude:C3,Extract:k3,Omit:S3,Partial:I3,Pick:L3,Record:D3,Required:N3});var GF=X4({...k6,...h6,...H6,...$6,string:C6,number:iW,object:f6,unknown:B6},{prereducedAliases:!0,name:"ark"}),jT=GF.export();Object.assign(sF.ambient,jT);sF.typeAttachments={string:jT.string.root,number:jT.number.root,bigint:jT.bigint,boolean:jT.boolean,symbol:jT.symbol,undefined:jT.undefined,null:jT.null,object:jT.object.root,unknown:jT.unknown.root,false:jT.false,true:jT.true,never:jT.never,arrayIndex:jT.Array.index,Key:jT.Key,Record:jT.Record,Array:jT.Array.root,Date:jT.Date};var J0=Object.assign(GF.type,sF.typeAttachments),B3=GF.match,f3=GF.generic,VD=GF.schema,q3=GF.define,j3=GF.declare;class o_ extends Promise{fate;resolve;reject;done=!1;constructor(T){let F,_;super((W,J)=>{F=W,_=J});this.resolve=F,this.reject=_,this.use(T instanceof Promise?T:new Promise(T))}pass(T,F){if(T===this.fate)this.resolve(F),this.done=!0}fail(T,F){if(T===this.fate)this.reject(F),this.done=!0}use(T){if(T instanceof Promise){let F=T;this.fate=F,F.then((_)=>{this.pass(F,_)},(_)=>{this.fail(F,_)})}else this.resolve(T),this.fate=void 0}}var pD=(T,F,_=g6.STORE)=>{return p6(_,{key:`${T.key}:JSON`,get:({get:W})=>F.toJson(W(T)),set:({set:W},J)=>{W(T,F.fromJson(J))}})};function oD(T,F,_){return G4(T,{key:`${F.key}:JSON`,get:(J)=>({get:$})=>{let Y=$(F,J);return _.toJson(Y)},set:(J)=>({set:$},Y)=>{$(F,J,_.fromJson(Y))}},["mutable","json"])}var u_=(T)=>JSON.parse(T),nT=(T)=>JSON.stringify(T),cD=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];function i(T){while(T.child!==null)T=T.child;return T}class nW{_buffer;_index=0;constructor(T){let F;if(typeof T==="number")F=T;else F=T.length;this._buffer=Array.from({length:F})}get buffer(){return this._buffer}get index(){return this._index}add(T){this._buffer[this._index]=T,this._index=(this._index+1)%this._buffer.length}copy(){let T=new nW([...this._buffer]);return T._index=this._index,T}}var y3={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function m6(T,F){let _=nT(F),W=`${T.key}(${_})`,J=y3[T.type],$={key:W,type:J};return Object.assign($,{family:{key:T.key,subKey:_}}),Object.assign($,{counterfeit:!0}),$}function c_(T){let F={key:T.key,type:T.type};if("family"in T)F.family=T.family;return F}var H4=(T)=>(F,_,W,J,...$)=>{console[T](`${F} ${_} "${W}" ${J}`,...$)},P3={error:H4("error"),info:H4("info"),warn:H4("warn")};class O4{logLevel;filter;logger;constructor(T,F,_=P3){this.logLevel=T,this.filter=F,this.logger=_}error=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel!==null)this.logger.error(...T)};info=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel==="info")this.logger.info(...T)};warn=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel!=="error"&&this.logLevel!==null)this.logger.warn(...T)}}class p0{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(T,F)=>`${T}:${F}`;warn;getRelatedKeys(T){return this.relations.get(T)}addRelation(T,F){let _=this.relations.get(T),W=this.relations.get(F);if(_)_.add(F);else _=new Set([F]),this.relations.set(T,_);if(W)W.add(T);else W=new Set([T]),this.relations.set(F,W)}deleteRelation(T,F){let _=this.relations.get(T);if(_){if(_.delete(F),_.size===0)this.relations.delete(T);let W=this.relations.get(F);if(W){if(W.delete(T),W.size===0)this.relations.delete(F)}}}replaceRelationsUnsafely(T,F){this.relations.set(T,new Set(F));for(let _ of F){let W=new Set().add(T);this.relations.set(_,W)}}replaceRelationsSafely(T,F){let _=this.relations.get(T),W=this.isAType?.(T)?T:void 0,J=W===void 0?T:void 0;if(_)for(let $ of _){W??=$,J??=$;let Y=this.relations.get($);if(Y){if(Y.size===1)this.relations.delete($);else Y.delete(T);this.contents.delete(this.makeContentKey(W,J))}}this.relations.set(T,new Set(F));for(let $ of F){let Y=this.relations.get($);if(Y)Y.add(T);else Y=new Set().add(T),this.relations.set($,Y)}}getContentInternal(T){return this.contents.get(T)}setContent(T,F){this.contents.set(T,F)}deleteContent(T){this.contents.delete(T)}constructor(T,F){if(this.a=T.between[0],this.b=T.between[1],this.cardinality=T.cardinality,!F?.externalStore)this.relations=new Map(T.relations?.map(([_,W])=>[_,new Set(W)])),this.contents=new Map(T.contents);if(this.isAType=F?.isAType??null,this.isBType=F?.isBType??null,this.isContent=F?.isContent??null,F?.makeContentKey)this.makeContentKey=F.makeContentKey;if(F?.externalStore){let _=F.externalStore;if(this.has=(W,J)=>_.has(W,J),this.addRelation=(W,J)=>{_.addRelation(W,J)},this.deleteRelation=(W,J)=>{_.deleteRelation(W,J)},this.replaceRelationsSafely=(W,J)=>{_.replaceRelationsSafely(W,J)},this.replaceRelationsUnsafely=(W,J)=>{_.replaceRelationsUnsafely(W,J)},this.getRelatedKeys=(W)=>_.getRelatedKeys(W),_.getContent)this.getContentInternal=(W)=>{return _.getContent(W)},this.setContent=(W,J)=>{_.setContent(W,J)},this.deleteContent=(W)=>{_.deleteContent(W)};for(let[W,J]of T.relations??[]){let $=this.isAType?.(W)?W:void 0,Y=$===void 0?W:void 0;for(let Z of J)$??=Z,Y??=Z,this.addRelation($,Y)}for(let[W,J]of T.contents??[])this.setContent(W,J)}if(F?.warn)this.warn=F.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([T,F])=>[T,[...F]]),contents:[...this.contents.entries()]}}set(...T){let F,_,W;switch(T.length){case 1:{let J=T[0];F=J[this.a],_=J[this.b],W=void 0;break}case 2:{let J=T[0];if(typeof J==="string")[F,_]=T;else F=J[this.a],_=J[this.b],W=T[1];break}default:{F=T[0],_=T[1],W=T[2];break}}switch(this.cardinality){case"1:1":{let J=this.getRelatedKey(F);if(J&&J!==_)this.delete(F,J)}case"1:n":{let J=this.getRelatedKey(_);if(J&&J!==F)this.delete(J,_)}break;case"n:n":}if(W){let J=this.makeContentKey(F,_);this.setContent(J,W)}return this.addRelation(F,_),this}delete(T,F){F=typeof F==="string"?F:T[this.b];let _=typeof T==="string"?T:T[this.a];if(_===void 0&&typeof F==="string"){let W=this.getRelatedKeys(F);if(W)for(let J of W)this.delete(J,F)}if(typeof _==="string"&&F===void 0){let W=this.getRelatedKeys(_);if(W)for(let J of W)this.delete(_,J)}if(typeof _==="string"&&typeof F==="string"){this.deleteRelation(_,F);let W=this.makeContentKey(_,F);this.deleteContent(W)}return this}getRelatedKey(T){let F=this.getRelatedKeys(T);if(F){if(F.size>1)this.warn?.(`${F.size} related keys were found for key "${T}": (${[...F].map((W)=>`"${W}"`).join(", ")}). Only one related key was expected.`);let _;for(let W of F){_=W;break}return _}}replaceRelations(T,F,_){let W=!Array.isArray(F),J=W?Object.keys(F):F;if(_?.reckless)this.replaceRelationsUnsafely(T,J);else this.replaceRelationsSafely(T,J);if(W)for(let $ of J){let Y=this.makeContentKey(T,$),Z=F[$];this.setContent(Y,Z)}return this}getContent(T,F){let _=this.makeContentKey(T,F);return this.getContentInternal(_)}getRelationEntries(T){let F=T[this.a],_=T[this.b];if(F!==void 0&&_===void 0){let W=this.getRelatedKeys(F);if(W)return[...W].map((J)=>{return[J,this.getContent(F,J)]})}if(F===void 0&&_!==void 0){let W=this.getRelatedKeys(_);if(W)return[...W].map((J)=>{return[J,this.getContent(J,_)]})}return[]}has(T,F){if(F)return this.getRelatedKeys(T)?.has(F)??!1;return this.relations.has(T)}}class ZT{Subscriber;subscribers=new Map;subscribe(T,F){return this.subscribers.set(T,F),()=>{this.unsubscribe(T)}}unsubscribe(T){this.subscribers.delete(T)}next(T){let F=this.subscribers.values();for(let _ of F)_(T)}}class U4 extends ZT{state;constructor(T){super();this.state=T}next(T){this.state=T,super.next(T)}}function eF(T){return"epoch"in T.transactionMeta}function U0(T){return"phase"in T.transactionMeta}function o6(T){return T[0].toUpperCase()+T.slice(1)}function rW(T){return T.type.split("_").map(o6).join(" ")}class d_ extends Error{constructor(T,F){super(`${rW(T)} ${nT(T.key)} not found in store "${F.config.name}".`)}}var sW=(T)=>(F)=>T instanceof Function?T(F):T;var HF=(T,F)=>{if(T.valueMap.has(F.key))return T.logger.info("\uD83D\uDCD6",F.type,F.key,"reading cached value"),u6(F,T);switch(F.type){case"selector":case"readonly_selector":return T.logger.info("\uD83E\uDDEE",F.type,F.key,"computing value"),F.get();case"atom":case"mutable_atom":{let _=F.default,W;if(_ instanceof Function)W=_();else W=_;return T.logger.info("\uD83D\uDC81","atom",F.key,"could not find cached value; using default",W),W}}};var c6=(T,F)=>{if(T.operation.open){let _=performance.now();return T.logger.info("\u2757",F.type,F.key,`deferring setState at T-${_} until setState for "${T.operation.token.key}" is done`),_}T.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:F},T.logger.info("\u2B55",F.type,F.key,`operation start in store "${T.config.name}"${!U0(T)?"":` ${T.transactionMeta.phase} "${T.transactionMeta.update.key}"`}`)},d6=(T)=>{if(T.operation.open)T.logger.info("\uD83D\uDD34",T.operation.token.type,T.operation.token.key,`operation done in store "${T.config.name}"`);T.operation={open:!1},T.on.operationClose.next(T.operation)},l6=(T,F)=>{if(!T.operation.open)return T.logger.error("\uD83D\uDC1E","unknown",F,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return T.operation.done.has(F)},T_=(T,F)=>{if(!T.operation.open){T.logger.error("\uD83D\uDC1E","unknown",F,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}T.operation.done.add(F)};var i6=(T,F,_)=>{switch(F.type){case"mutable_atom":T.logger.info("\uD83D\uDCE2",F.type,F.key,"is now (",_.newValue,") subscribers:",F.subject.subscribers);break;case"atom":case"selector":case"readonly_selector":T.logger.info("\uD83D\uDCE2",F.type,F.key,"went (",_.oldValue,"->",_.newValue,") subscribers:",F.subject.subscribers)}F.subject.next(_)};var M4=(T,F)=>{let _=i(T),W=_.selectorAtoms.getRelatedKeys(F.key);if(_.logger.info("\uD83E\uDDF9",F.type,F.key,W?`evicting ${W.size} states downstream:`:"no downstream states",W??"to evict"),W){if(_.operation.open)_.logger.info("\uD83E\uDDF9",F.type,F.key,`[ ${[..._.operation.done].join(", ")} ] already done`);for(let J of W){if(l6(_,J))continue;t6(J,_),T_(_,J)}}};var n6=(T,F,_)=>{let W=HF(T,F),J=W;if(F.type==="mutable_atom"&&U0(T)){let{parent:Y}=T;J=l_(T,F,Y)}if(J=sW(_)(J),T.logger.info("\uD83D\uDCDD","atom",F.key,"set to",J),J=g0(T,F.key,J,F.subject),s6(T,F.key))a6(T,F.key);T_(T,F.key),M4(T,F);let $={oldValue:W,newValue:J};if(!U0(T)){i6(T,F,$);return}if(T.on.transactionApplying.state===null){let{key:Y}=F;if(r6($.newValue))return;let Z={type:"atom_update",key:Y,...$};if(F.family)Z.family=F.family;T.transactionMeta.update.updates.push(Z),T.logger.info("\uD83D\uDCC1","atom",Y,"stowed (",$.oldValue,"->",$.newValue,")")}else if(F.key.startsWith("*")){let Y=F.key.slice(1),Z=T.atoms.get(Y),A=T.valueMap.get(Y);if(Z.type==="mutable_atom"&&U0(T)){let{parent:O}=T;A=l_(T,Z,O)}if(A.do($.newValue)===null)M4(T,Z)}};var aW=(T,F,_)=>{switch(F.type){case"atom":case"mutable_atom":n6(T,F,_);break;case"selector":F.set(_);break}};var eW=(T,F)=>i(T).atoms.has(F),v3=(T,F)=>i(T).selectors.has(F),x3=(T,F)=>i(T).readonlySelectors.has(F),e6=(T,F)=>eW(T,F)||v3(T,F)||x3(T,F);var T1=(T,F)=>{return i(F).selectorGraph.getRelationEntries({downstreamSelectorKey:T}).filter(([W,{source:J}])=>J!==T).map(([W,{source:J}])=>J).filter((W)=>e6(F,W))};var Q4=(T,F,_)=>{let W=[],J=T1(T,_);while(J.length>0){let $=J.shift();if(F.has($))continue;if(F.add($),!eW(_,$))J.push(...T1($,_));else if(!W.includes($))W.push($)}return W},TY=(T,F)=>{let _=T.key,W=T1(_,F),J=new Set;return W.flatMap(($)=>eW(F,$)?$:Q4($,J,F))};var FY=(T,F,_,W)=>{let J=i(W);if(F.type==="atom"||F.type==="mutable_atom")J.selectorAtoms.set({selectorKey:T,atomKey:F.key}),W.logger.info("\uD83D\uDD0D","selector",T,`discovers root atom "${F.key}"`);else{let $=Q4(F.key,_,W);W.logger.info("\uD83D\uDD0D","selector",T,`discovers root atoms: [ ${$.map((Y)=>`"${Y}"`).join(", ")} ]`);for(let Y of $)J.selectorAtoms=J.selectorAtoms.set({selectorKey:T,atomKey:Y})}_.add(F.key)};var F1=(T,F,_)=>({get:(...W)=>{let J=i(_),$;if(W.length===2){let[A,X]=W;$=M0(_,A,X)}else[$]=W;let Y=$0(_,$),Z=HF(_,Y);return _.logger.info("\uD83D\uDD0C","selector",T,`registers dependency ( "${$.key}" =`,Z,")"),J.selectorGraph.set({upstreamSelectorKey:$.key,downstreamSelectorKey:T},{source:$.key}),FY(T,$,F,_),Z},set:(...W)=>{let J,$;if(W.length===2)J=W[0],$=W[1];else{let A=W[0],X=W[1];$=W[2],J=M0(_,A,X)}let Y=i(_),Z=$0(Y,J);aW(Y,Z,$)},find:(...W)=>M0(_,...W),json:(W)=>F_(_,W)});var z4=(T,F,_)=>{let W=i(T),J=new ZT,$=new Set,{get:Y,find:Z,json:A}=F1(F.key,$,W),X=()=>{let K=F.get({get:Y,find:Z,json:A});return g0(i(T),F.key,K,J),$.clear(),K},O={...F,subject:J,install:(K)=>z4(K,F,_),get:X,type:"readonly_selector",..._&&{family:_}};W.readonlySelectors.set(F.key,O);let M=X();T.logger.info("\u2728",O.type,O.key,"=",M);let E={key:F.key,type:"readonly_selector"};if(_)E.family=_;return E};var i_=(T,F,_)=>{let W=i(T),J=new ZT,$=new Set,Y=F1(F.key,$,W),{find:Z,get:A,json:X}=Y,O={find:Z,get:A,json:X},M=(P=F.get,f=i(T))=>{let y=P(O);return g0(f,F.key,y,J),$.clear(),y},K={...F,subject:J,install:(P)=>i_(P,F,_),get:M,set:(P)=>{let f=i(T),y=M(F.get,f),h=sW(P)(y);if(T.logger.info("\uD83D\uDCDD","selector",F.key,"set (",y,"->",h,")"),g0(f,F.key,h,J),T_(f,F.key),eF(f))J.next({newValue:h,oldValue:y});F.set(Y,h)},type:"selector",..._&&{family:_}};W.selectors.set(F.key,K);let j=M();T.logger.info("\u2728",K.type,K.key,"=",j);let S={key:F.key,type:"selector"};if(_)S.family=_;return S};function p6(T,F){if("set"in F){let J=i_(T,F,void 0);return T.on.selectorCreation.next(J),J}let W=z4(T,F,void 0);return T.on.selectorCreation.next(W),W}function G4(T,F,_){let W={key:F.key,type:"selector_family"},J=T.families.get(F.key);if(J)T.logger.error("\u2757","selector_family",F.key,`Overwriting an existing ${rW(J)} "${J.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new ZT,Z=Object.assign((A)=>{let X=nT(A),O={key:F.key,subKey:X},M=`${F.key}(${X})`,E=i(T),K=i_(E,{key:M,get:F.get(A),set:F.set(A)},O);return $.next({type:"state_creation",token:K}),K},W,{internalRoles:_,subject:$,install:(A)=>G4(A,F),default:(A)=>{return F.get(A)({get:(...O)=>t_(T,...O),find:(...O)=>M0(T,...O),json:(O)=>F_(T,O)})}});return T.families.set(F.key,Z),W}function _Y(T,F,_){let W=T.families.get(F.key);if(W===void 0)throw new d_(F,T);let J=W(_),$=i(T);if(J.family){if(eF($))switch(J.type){case"atom":case"mutable_atom":T.on.atomCreation.next(J);break;case"selector":case"readonly_selector":T.on.selectorCreation.next(J);break}else if(U0($)&&$.on.transactionApplying.state===null)$.transactionMeta.update.updates.push({type:"state_creation",token:J})}return J}function WY(T,F,_){let W=nT(_),J=`${F.key}(${W})`,$=i(T),Y;switch(F.type){case"atom_family":case"mutable_atom_family":Y=$.atoms.get(J);break;case"selector_family":Y=$.selectors.get(J);break;case"readonly_selector_family":Y=$.readonlySelectors.get(J);break}if(Y)return c_(Y);return Y}function M0(T,F,_){let W=WY(T,F,_);if(W)return W;let J=nT(_),$=T.molecules.get(J);if(!$&&T.config.lifespan==="immortal"){let Y=m6(F,_);return T.logger.error("\u274C",Y.type,Y.key,`was not found in store "${T.config.name}"; returned a counterfeit token.`),Y}if(W=_Y(T,F,_),$)i(T).moleculeData.set(J,F.key);return W}function JY(T,F){if(F.family){let _=T.families.get(F.family.key);if(_)return _}}function OF(T,...F){let _,W,J,$;if(F.length===2){if(_=F[0],$=F[1],W=JY(T,_)??null,W)J=_.family?u_(_.family.subKey):null,_=M0(T,W,J)}else W=F[0],J=F[1],$=F[2],_=M0(T,W,J);if("counterfeit"in _&&"family"in _){let A=_.family.subKey,X=T.disposalTraces.buffer.find((O)=>O?.key===A);T.logger.error("\u274C",_.type,_.key,`could not be set because it was not found in the store "${T.config.name}".`,X?`This state was previously disposed:
|
|
47
|
+
`)+"}");class xW{config;resolvedConfig;name;get[iT](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(T,F){if(this.config=I_(w.config,F),this.resolvedConfig=I_(w.resolvedConfig,F),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(g2).length}`,this.name in g2)z(`A Scope already named ${this.name} already exists`);g2[this.name]=this;let _=Object.entries(T).map((W)=>this.preparseOwnAliasEntry(...W));for(let[W,J]of _){let $=W;if(W[0]==="#"){if($=W.slice(1),$ in this.aliases)z(G$($));this.aliases[$]=J}else{if($ in this.aliases)z(G$(W));this.aliases[$]=J,this.exportedNames.push($)}if(!q(J,"module")&&!q(J,"generic")&&!WF(J)){let Y=this.preparseOwnDefinitionFormat(J,{alias:$});this.resolutions[$]=q(Y,"root")?this.bindReference(Y):this.createParseContext(Y).id}}H$??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[H$.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=w.intrinsic?m(w.intrinsic,(W,J)=>W.startsWith("json")?[]:[W,this.bindReference(J)]):{}}cacheGetter(T,F){return Object.defineProperty(this,T,{value:F}),F}get internal(){return this}_json;get json(){if(!this._json)this.export();return this._json}defineSchema(T){return T}generic=(...T)=>{let F=this;return(_,W)=>new XF(T,W?new kW(_):_,F,F,W??null)};units=(T,F)=>{let _=[];for(let J of T)if(!_.includes(J))_.push(J);let W=_.map((J)=>this.node("unit",{unit:J},F));return this.node("union",W,{...F,prereduced:!0})};lazyResolutions=[];lazilyResolve(T,F){let _=this.node("alias",{reference:F??"synthetic",resolve:T},{prereduced:!0});if(!this.resolved)this.lazyResolutions.push(_);return _}schema=(T,F)=>this.finalize(this.parseSchema(T,F));parseSchema=(T,F)=>this.node(B_(T),T,F);preparseNode(T,F,_){let W=typeof T==="string"?T:B_(F,T);if(OT(F)&&F.kind===W)return F;if(W==="alias"&&!_?.prereduced){let{reference:Y}=v_.implementation.normalize(F,this);if(Y.startsWith("$")){let Z=this.resolveRoot(Y.slice(1));F=Z,W=Z.kind}}else if(W==="union"&&eT(F,"object")){let Y=o9(F);if(Y?.length===1)F=Y[0],W=B_(F)}if(OT(F)&&F.kind===W)return F;let $=cF[W].normalize?.(F,this)??F;if(OT($))return $.kind===W?$:u9(W,$.kind);return{..._,$:this,kind:W,def:$,prefix:_.alias??W}}bindReference(T){let F;if(OT(T))F=T.$===this?T:new T.constructor(T.attachments,this);else F=T.$===this?T:new XF(T.params,T.bodyDef,T.$,this,T.hkt);if(!this.resolved)Object.assign(this.referencesById,F.referencesById);return F}resolveRoot(T){return this.maybeResolveRoot(T)??z(u2(T))}maybeResolveRoot(T){let F=this.maybeResolve(T);if(q(F,"generic"))return;return F}maybeResolveSubalias(T){return m2(this.aliases,T)??m2(this.ambient,T)}get ambient(){return w.ambient}maybeResolve(T){let F=this.resolutions[T];if(F){if(typeof F!=="string")return this.bindReference(F);let W=tT[F];if(q(W,"root"))return this.resolutions[T]=W;if(q(W,"context")){if(W.phase==="resolving")return this.node("alias",{reference:`$${T}`},{prereduced:!0});if(W.phase==="resolved")return a(`Unexpected resolved context for was uncached by its scope: ${o(W)}`);W.phase="resolving";let J=this.bindReference(this.parseOwnDefinitionFormat(W.def,W));return W.phase="resolved",tT[J.id]=J,tT[W.id]=J,this.resolutions[T]=J}return a(`Unexpected nodesById entry for ${F}: ${o(W)}`)}let _=this.aliases[T]??this.ambient?.[T];if(!_)return this.maybeResolveSubalias(T);if(_=this.normalizeRootScopeValue(_),q(_,"generic"))return this.resolutions[T]=this.bindReference(_);if(q(_,"module")){if(!_.root)z(R$(T));return this.resolutions[T]=this.bindReference(_.root)}return this.resolutions[T]=this.parse(_,{alias:T})}createParseContext(T){let F=T.id??L2(T.prefix);return tT[F]=Object.assign(T,{[iT]:"context",$:this,id:F,phase:"unresolved"})}traversal(T){return new B0(T,this.resolvedConfig)}import(...T){return new iF(m(this.export(...T),(F,_)=>[`#${F}`,_]))}precompilation;_exportedResolutions;_exports;export(...T){if(!this._exports){this._exports={};for(let _ of this.exportedNames){let W=this.aliases[_];this._exports[_]=q(W,"module")?p2(W,this):O$(this.maybeResolve(_))}for(let _ of this.lazyResolutions)_.resolution;if(this._exportedResolutions=E$(this,this._exports),this._json=z$(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let _=Q$(this.references);this.precompilation=_.write(U$,4),M$(this.references,_)}this.resolved=!0}let F=T.length?T:this.exportedNames;return new iF(m(F,(_,W)=>[W,this._exports[W]]))}resolve(T){return this.export()[T]}node=(T,F,_={})=>{let W=this.preparseNode(T,F,_);if(OT(W))return this.bindReference(W);let J=this.createParseContext(W),$=S2(J),Y=this.bindReference($);return tT[J.id]=Y};parse=(T,F={})=>this.finalize(this.parseDefinition(T,F));parseDefinition(T,F={}){if(q(T,"root"))return this.bindReference(T);let _=this.preparseOwnDefinitionFormat(T,F);if(q(_,"root"))return this.bindReference(_);let W=this.createParseContext(_);tT[W.id]=W;let J=this.bindReference(this.parseOwnDefinitionFormat(T,W));if(J.isCyclic)J=h8(J,W.id);return tT[W.id]=J,J}finalize(T){if(O$(T),!T.precompilation&&!this.resolvedConfig.jitless)c9(T.references);return T}}class o2 extends xW{parseOwnDefinitionFormat(T,F){return S2(F)}preparseOwnDefinitionFormat(T,F){return this.preparseNode(B_(T),T,F)}preparseOwnAliasEntry(T,F){return[T,F]}normalizeRootScopeValue(T){return T}}var O$=(T)=>{let F=T.references.filter((_)=>_.hasKind("alias"));for(let _ of F){Object.assign(_.referencesById,_.resolution.referencesById);for(let W of T.references)if(_.id in W.referencesById)Object.assign(W.referencesById,_.referencesById)}return T},z$=(T)=>m(T,(F,_)=>[F,q(_,"root")||q(_,"generic")?_.json:q(_,"module")?z$(_):a(`Unexpected resolution ${o(_)}`)]),m2=(T,F)=>{let _=F.indexOf(".");if(_===-1)return;let W=F.slice(0,_),J=T[W];if(J===void 0)return;if(!q(J,"module"))return z(d9(W));let $=F.slice(_+1),Y=J[$];if(Y===void 0)return m2(J,$);if(q(Y,"root")||q(Y,"generic"))return Y;if(q(Y,"module"))return Y.root??z(R$(F));a(`Unexpected resolution for alias '${F}': ${o(Y)}`)},bW=(T,F)=>new o2(T,F),h_=new o2({});var E$=(T,F)=>{let _={};for(let W in F){let J=F[W];if(q(J,"module")){let $=E$(T,J),Y=m($,(Z,A)=>[`${W}.${Z}`,A]);Object.assign(_,Y)}else if(q(J,"root")||q(J,"generic"))_[W]=J;else a(`Unexpected scope resolution ${o(J)}`)}return _},u2=(T)=>`'${T}' is unresolvable`,d9=(T)=>`'${T}' must reference a module to be accessed using dot syntax`,R$=(T)=>`Reference to submodule '${T}' must specify an alias`;h_.export();var{schema:_T,node:tF,defineSchema:aR,generic:K0}=h_;var c2="^(?:0|[1-9]\\d*)$",l9=new RegExp(c2),Fw=VT(l9);var w$=bW({bigint:"bigint",boolean:[{unit:!1},{unit:!0}],false:{unit:!1},never:[],null:{unit:null},number:"number",object:"object",string:"string",symbol:"symbol",true:{unit:!0},unknown:{},undefined:{unit:void 0},Array,Date},{prereducedAliases:!0}).export();w.intrinsic={...w$};var K$=bW({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:c2}},{prereducedAliases:!0}).export();Object.assign(w.intrinsic,K$);var i9=bW({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),v={...w$,...K$,...i9,emptyStructure:tF("structure",{},{prereduced:!0})};w.intrinsic={...v};var D$=(T)=>typeof T==="string"&&T[0]==="d"&&(T[1]==="'"||T[1]==='"')&&T.at(-1)===T[1],V$=(T)=>T.toString()!=="Invalid Date",L$=(T)=>T.slice(2,-1),d2=(T)=>`'${T}' could not be parsed by the Date constructor`,S$=(T,F)=>t9(T,F),t9=(T,F)=>{let _=new Date(T);if(V$(_))return _;let W=_8(T);if(W!==void 0){let J=new Date(W);if(V$(J))return J}return F?z(F===!0?d2(T):F):void 0};var l2=(T,F)=>{let _=T.scanner.shiftUntil(n9[N$[F]]);if(T.scanner.lookahead==="")return T.error(s9(_,F));if(T.scanner.shift(),F==="/"){try{new RegExp(_)}catch(W){z(String(W))}T.root=T.ctx.$.node("intersection",{domain:"string",pattern:_},{prereduced:!0})}else if(qT(F,i2))T.root=T.ctx.$.node("unit",{unit:_});else{let W=S$(_,d2(_));T.root=T.ctx.$.node("unit",{meta:_,unit:W})}},i2={"'":1,'"':1},I$={"/":1,"'":1,'"':1},N$={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},n9={"'":(T)=>T.lookahead==="'",'"':(T)=>T.lookahead==='"',"/":(T)=>T.lookahead==="/"},r9={'"':"double-quote","'":"single-quote","/":"forward slash"},s9=(T,F)=>`${F}${T} requires a closing ${r9[N$[F]]}`;var C$=(T)=>`Private type references should not include '#'. Use '${T}' instead.`,hW="Optional definitions like 'string?' are only valid as properties in an object or tuple",pW="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var k$={">":!0,">=":!0},B$={"<":!0,"<=":!0};var nF={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},f$=(T)=>`Unmatched )${T===""?"":` before ${T}`}`,gW=(T)=>`Missing ${T}`,q$=(T,F)=>`Left bounds are only valid when paired with right bounds (try ...${F}${T})`,mW=(T)=>`Left-bounded expressions must specify their limits using < or <= (was ${T})`,j$=(T,F,_,W)=>`An expression may have at most one left bound (parsed ${T}${nF[F]}, ${_}${nF[W]})`;var y$=(T,F,_)=>P$(T,F,_,[]),P$=(T,F,_,W)=>{let J=_.parseUntilFinalizer();if(W.push(J.root),J.finalizer===">"){if(W.length!==F.params.length)return _.error(t2(T,F.names,W.map(($)=>$.expression)));return W}if(J.finalizer===",")return P$(T,F,_,W);return J.error(gW(">"))},t2=(T,F,_)=>`${T}<${F.join(", ")}> requires exactly ${F.length} args (got ${_.length}${_.length===0?"":`: ${_.join(", ")}`})`;var n2=(T)=>{let F=T.scanner.shiftUntilNextTerminator();if(F==="keyof")T.addPrefix("keyof");else T.root=e9(T,F)},a9=(T,F,_)=>{if(_.scanner.shiftUntilNonWhitespace(),_.scanner.shift()!=="<")return _.error(t2(T,F.names,[]));let J=y$(T,F,_);return F(...J)},e9=(T,F)=>T7(T,F)??F7(T,F)??T.error(F===""?T.scanner.lookahead==="#"?C$(T.shiftedByOne().scanner.shiftUntilNextTerminator()):r2(T):u2(F)),T7=(T,F)=>{if(T.ctx.args?.[F]){let W=T.ctx.args[F];if(typeof W!=="string")return W;return T.ctx.$.node("alias",{reference:W},{prereduced:!0})}let _=T.ctx.$.maybeResolve(F);if(q(_,"root"))return _;if(_===void 0)return;if(q(_,"generic"))return a9(F,_,T);return z(`Unexpected resolution ${o(_)}`)},F7=(T,F)=>{let _=W8(F);if(_!==void 0)return T.ctx.$.node("unit",{unit:_});let W=$8(F);if(W!==void 0)return T.ctx.$.node("unit",{unit:W})},r2=(T)=>{let F=T.previousOperator();return F?s2(F,T.scanner.unscanned):_7(T.scanner.unscanned)},s2=(T,F="")=>`Token '${T}' requires a right operand${F?` before '${F}'`:""}`,_7=(T)=>`Expected an expression${T?` before '${T}'`:""}`;var a2=(T)=>T.scanner.lookahead===""?T.error(r2(T)):T.scanner.lookahead==="("?T.shiftedByOne().reduceGroupOpen():T.scanner.lookaheadIsIn(I$)?l2(T,T.scanner.shift()):T.scanner.lookaheadIsIn(JF)?a2(T.shiftedByOne()):T.scanner.lookahead==="d"?T.scanner.nextLookahead in i2?l2(T,`${T.scanner.shift()}${T.scanner.shift()}`):n2(T):n2(T);class r0 extends W2{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>(this.lookahead in r0.terminatingChars))}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...JF};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(T,F)=>T===">"?F[0]==="="?F[1]==="=":F.trimStart()===""||qT(F.trimStart()[0],r0.terminatingChars):T==="="?F[0]!=="=":T===","||T==="?"}var x$=(T,F)=>{let _=W7(T,F);if(T.root.hasKind("unit")){if(typeof T.root.unit==="number"){T.reduceLeftBound(T.root.unit,_),T.unsetRoot();return}if(T.root.unit instanceof Date){let W=`d'${T.root.description??T.root.unit.toISOString()}'`;T.unsetRoot(),T.reduceLeftBound(W,_);return}}return $7(T,_)},b$={"<":1,">":1,"=":1},W7=(T,F)=>T.scanner.lookaheadIs("=")?`${F}${T.scanner.shift()}`:F;var v$=(T,F,_,W)=>{if(_.extends(w.intrinsic.number)){if(typeof F!=="number")return z(e2(T,F,W));return T==="=="?["min","max"]:T[0]===">"?["min"]:["max"]}if(_.extends(w.intrinsic.lengthBoundable)){if(typeof F!=="number")return z(e2(T,F,W));return T==="=="?["exactLength"]:T[0]===">"?["minLength"]:["maxLength"]}if(_.extends(w.intrinsic.Date))return T==="=="?["after","before"]:T[0]===">"?["after"]:["before"];return z(I8(_.expression))},J7=(T)=>({rule:D$(T.limit)?L$(T.limit):T.limit,exclusive:T.comparator.length===1}),$7=(T,F)=>{let _=T.unsetRoot(),W=T.scanner.location;T.parseOperand();let J=T.unsetRoot(),$=T.scanner.sliceChars(W,T.scanner.location);if(T.root=_,!J.hasKind("unit")||typeof J.unit!=="number"&&!(J.unit instanceof Date))return T.error(e2(F,$,"right"));let Y=J.unit,Z=F.length===1,A=v$(F,typeof Y==="number"?Y:$,_,"right");for(let O of A)T.constrainRoot(O,F==="=="?{rule:Y}:{rule:Y,exclusive:Z});if(!T.branches.leftBound)return;if(!qT(F,B$))return T.error(mW(F));let X=v$(T.branches.leftBound.comparator,T.branches.leftBound.limit,_,"left");T.constrainRoot(X[0],J7(T.branches.leftBound)),T.branches.leftBound=null},e2=(T,F,_)=>`Comparator ${_==="left"?nF[T]:T} must be ${_==="left"?"preceded":"followed"} by a corresponding literal (was ${F})`;var h$=(T)=>{T.scanner.shiftUntilNonWhitespace();let F=T.scanner.shiftUntilNextTerminator();T.root=T.root.brand(F)};var g$=(T)=>{let F=T.scanner.shiftUntilNextTerminator(),_=J8(F,{errorOnFail:p$(F)});if(_===0)T.error(p$(0));T.root=T.root.constrain("divisor",_)},p$=(T)=>`% operator must be followed by a non-zero integer literal (was ${T})`;var T4=(T)=>{let F=T.scanner.shift();return F===""?T.finalize(""):F==="["?T.scanner.shift()==="]"?T.setRoot(T.root.array()):T.error(Y7):F==="|"?T.scanner.lookahead===">"?T.shiftedByOne().pushRootToBranch("|>"):T.pushRootToBranch(F):F==="&"?T.pushRootToBranch(F):F===")"?T.finalizeGroup():r0.lookaheadIsFinalizing(F,T.scanner.unscanned)?T.finalize(F):qT(F,b$)?x$(T,F):F==="%"?g$(T):F==="#"?h$(T):(F in JF)?T4(T):T.error(oW(F))},oW=(T,F="")=>`'${T}' is not allowed here${F&&` (should be ${F})`}`,Y7="Missing expected ']'";var m$=(T)=>{let F=T.unsetRoot();T.parseOperand();let _=T.unsetRoot();if(!_.hasKind("unit"))return T.error(Z7(_.expression));let W=_.unit instanceof Date?()=>new Date(_.unit):_.unit;return[F,"=",W]},Z7=(T)=>`Default value '${T}' must a literal value`;var F4=(T,F)=>{let _=F.$.maybeResolveRoot(T);if(_)return _;if(T.endsWith("[]")){let $=F.$.maybeResolveRoot(T.slice(0,-2));if($)return $.array()}let W=new rF(new r0(T),F),J=X7(W);if(W.finalizer===">")z(oW(">"));return J},X7=(T)=>{T.parseOperand();let F=p_(T).root;if(!F)return a(`Root was unexpectedly unset after parsing string '${T.scanner.scanned}'`);if(T.finalizer==="=")F=m$(T);else if(T.finalizer==="?")F=[F,"?"];if(T.scanner.shiftUntilNonWhitespace(),T.scanner.lookahead)z(oW(T.scanner.lookahead));return F},p_=(T)=>{while(T.finalizer===void 0)A7(T);return T},A7=(T)=>T.hasRoot()?T.parseOperator():T.parseOperand();class rF{root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(T,F){this.scanner=T,this.ctx=F}error(T){return z(T)}hasRoot(){return this.root!==void 0}setRoot(T){this.root=T}unsetRoot(){let T=this.root;return this.root=void 0,T}constrainRoot(...T){this.root=this.root.constrain(T[0],T[1])}finalize(T){if(this.groups.length)return this.error(gW(")"));this.finalizeBranches(),this.finalizer=T}reduceLeftBound(T,F){let _=nF[F];if(!qT(_,k$))return this.error(mW(F));if(this.branches.leftBound)return this.error(j$(this.branches.leftBound.limit,this.branches.leftBound.comparator,T,_));this.branches.leftBound={comparator:_,limit:T}}finalizeBranches(){if(this.assertRangeUnset(),this.branches.pipe){this.pushRootToBranch("|>"),this.root=this.branches.pipe;return}if(this.branches.union){this.pushRootToBranch("|"),this.root=this.branches.union;return}if(this.branches.intersection){this.pushRootToBranch("&"),this.root=this.branches.intersection;return}this.applyPrefixes()}finalizeGroup(){this.finalizeBranches();let T=this.groups.pop();if(!T)return this.error(f$(this.scanner.unscanned));this.branches=T}addPrefix(T){this.branches.prefixes.push(T)}applyPrefixes(){while(this.branches.prefixes.length){let T=this.branches.prefixes.pop();this.root=T==="keyof"?this.root.keyof():a(`Unexpected prefix '${T}'`)}}pushRootToBranch(T){this.assertRangeUnset(),this.applyPrefixes();let F=this.root;if(this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd(F)??F,T==="&")return;if(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,T==="|")return;this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null}parseUntilFinalizer(){return p_(new rF(this.scanner,this.ctx))}parseOperator(){return T4(this)}parseOperand(){return a2(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(q$(this.branches.leftBound.limit,this.branches.leftBound.comparator))}reduceGroupOpen(){this.groups.push(this.branches),this.branches={prefixes:[],leftBound:null,union:null,intersection:null,pipe:null}}previousOperator(){return this.branches.leftBound?.comparator??this.branches.prefixes.at(-1)??(this.branches.intersection?"&":this.branches.union?"|":this.branches.pipe?"|>":void 0)}shiftedByOne(){return this.scanner.shift(),this}}var G7="An empty string is not a valid generic parameter name",uW=(T,F,_)=>{T.shiftUntilNonWhitespace();let W=T.shiftUntilNextTerminator();if(W===""){if(T.lookahead===""&&F.length)return F;return z(G7)}return T.shiftUntilNonWhitespace(),H7(T,W,F,_)},o$="extends ",H7=(T,F,_,W)=>{if(T.shiftUntilNonWhitespace(),T.unscanned.startsWith(o$))T.jumpForward(o$.length);else{if(T.lookahead===",")T.shift();return _.push(F),uW(T,_,W)}let J=p_(new rF(T,W));return _.push([F,J.root]),uW(T,_,W)};class _4 extends k0{$;constructor(T){super((...F)=>new g_(T)(...F),{bind:T});this.$=T}in(T){return new g_(this.$,T===void 0?void 0:this.$.parse(T))}at(T,F){return new g_(this.$).at(T,F)}case(T,F){return new g_(this.$).case(T,F)}}class g_ extends k0{$;in;key;branches=[];constructor(T,F){super((_)=>this.caseEntries(Object.entries(_).map(([W,J])=>W==="default"?[W,J]:[this.$.parse(W),J])));this.$=T,this.in=F}at(T,F){if(this.key)z(U7);if(this.branches.length)z(O7);return this.key=T,F?this.match(F):this}case(T,F){return this.caseEntry(this.$.parse(T),F)}caseEntry(T,F){let W=(this.key?this.$.parse({[this.key]:T}):T).pipe(F);return this.branches.push(W),this}match(T){return this(T)}strings(T){return this.caseEntries(Object.entries(T).map(([F,_])=>F==="default"?[F,_]:[this.$.node("unit",{unit:F}),_]))}caseEntries(T){for(let F=0;F<T.length;F++){let[_,W]=T[F];if(_==="default"){if(F!==T.length-1)z("default may only be specified as the last key of a switch definition");return this.default(W)}if(typeof W!=="function")return z(`Value for case "${_}" must be a function (was ${fT(W)})`);this.caseEntry(_,W)}return this}default(T){if(typeof T==="function")this.case(v.unknown,T);let F={branches:this.branches,ordered:!0};if(T==="never"||T==="assert")F.meta={onFail:u$};let _=this.$.node("union",F);if(!this.in)return this.$.finalize(_);let W=this.in.pipe(_);if(T==="never"||T==="assert")W=W.configureReferences({onFail:u$},"self");return this.$.finalize(W)}}var u$=(T)=>T.throw(),O7="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",U7="At most one key matcher may be specified per expression";var cW=(T,F)=>{if(YT(T)){if(T[1]==="=")return[F.$.parseOwnDefinitionFormat(T[0],F),"=",T[2]];if(T[1]==="?")return[F.$.parseOwnDefinitionFormat(T[0],F),"?"]}return dW(T,F)},c$="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",d$="Only required keys may specify default values, e.g. { value: 'number = 0' }";var l$=(T,F)=>{let _,W={},J=wF(T);for(let[Y,Z]of J){let A=z7(Y);if(A.kind==="spread"){if(!b0(W))return z(Q7);let K=F.$.parseOwnDefinitionFormat(Z,F);if(K.equals(v.object))continue;if(!K.hasKind("intersection")||!K.basis?.equals(v.object))return z(E7(K.expression));_=K.structure;continue}if(A.kind==="undeclared"){if(Z!=="reject"&&Z!=="delete"&&Z!=="ignore")z(M7(Z));W.undeclared=Z;continue}let X=cW(Z,F),O=A;if(A.kind==="required"){if(!YT(X))W4(W,"required",{key:A.normalized,value:X},F);else W4(W,"optional",X[1]==="="?{key:A.normalized,value:X[0],default:X[2]}:{key:A.normalized,value:X[0]},F);continue}if(YT(X)){if(X[1]==="?")z(c$);if(X[1]==="=")z(d$)}if(A.kind==="optional"){W4(W,"optional",{key:A.normalized,value:X},F);continue}let M=F.$.parseOwnDefinitionFormat(O.normalized,F),E=vW(M,X,F.$);if(E.index)W.index=r(W.index,E.index);if(E.required)W.required=r(W.required,E.required)}let $=F.$.node("structure",W);return F.$.parseSchema({domain:"object",structure:_?.merge($)??$})},W4=(T,F,_,W)=>{T[F]=r(T[F],W.$.node(F,_))},M7=(T)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${o(T)})`,Q7="Spread operator may only be used as the first key in an object",z7=(T)=>typeof T==="symbol"?{kind:"required",normalized:T}:T.at(-1)==="?"?T.at(-2)===R_?{kind:"required",normalized:`${T.slice(0,-2)}?`}:{kind:"optional",normalized:T.slice(0,-1)}:T[0]==="["&&T.at(-1)==="]"?{kind:"index",normalized:T.slice(1,-1)}:T[0]===R_&&T[1]==="["&&T.at(-1)==="]"?{kind:"required",normalized:T.slice(1)}:T==="..."?{kind:"spread"}:T==="+"?{kind:"undeclared"}:{kind:"required",normalized:T==="\\..."?"...":T==="\\+"?"+":T},E7=(T)=>`Spread operand must resolve to an object literal type (was ${T})`;var t$=(T,F)=>C7(T)?a$[T[0]](T,F):I7(T)?s$[T[1]](T,F):null,R7=(T,F)=>F.$.parseOwnDefinitionFormat(T[1],F).keyof(),J4=(T,F)=>{if(T[2]===void 0)return z(s2(T[1],""));let _=F.$.parseOwnDefinitionFormat(T[0],F),W=F.$.parseOwnDefinitionFormat(T[2],F);if(T[1]==="|")return F.$.node("union",{branches:[_,W]});let J=T[1]==="&"?W0(_,W,F.$):k_(_,W,F.$);if(J instanceof I)return J.throw();return J},w7=(T,F)=>F.$.parseOwnDefinitionFormat(T[0],F).array(),K7=(T,F)=>{if(typeof T[2]!=="function")return z(n$("=>",T[2]));return F.$.parseOwnDefinitionFormat(T[0],F).pipe(T[2])},n$=(T,F)=>`${T===":"?"Narrow":"Morph"} expression requires a function following '${T}' (was ${typeof F})`,V7=(T,F)=>{if(typeof T[2]!=="function")return z(n$(":",T[2]));return F.$.parseOwnDefinitionFormat(T[0],F).constrain("predicate",T[2])},D7=(T,F)=>F.$.parseOwnDefinitionFormat(T[0],F).configureReferences(T[2],"shallow"),r$=(T)=>T,L7=r$({"[]":w7,"?":()=>z(hW)}),S7=r$({"|":J4,"&":J4,":":V7,"=>":K7,"|>":J4,"@":D7,"=":()=>z(pW)}),s$={...L7,...S7},I7=(T)=>s$[T[1]]!==void 0,N7=(T)=>T,a$=N7({keyof:R7,instanceof:(T,F)=>{if(typeof T[1]!=="function")return z(i$(z_(T[1])));let _=T.slice(1).map((W)=>typeof W==="function"?F.$.node("proto",{proto:W}):z(i$(z_(W))));return _.length===1?_[0]:F.$.node("union",{branches:_})},"===":(T,F)=>F.$.units(T.slice(1))}),C7=(T)=>a$[T[0]]!==void 0,i$=(T)=>`Expected a constructor following 'instanceof' operator (was ${T})`;var F6=(T,F)=>{let _=[{}],W=0;while(W<T.length){let J=!1;if(T[W]==="..."&&W<T.length-1)J=!0,W++;let $=cW(T[W],F),[Y,Z,A]=!YT($)?[$]:$;if(W++,J){if(!Y.extends(w.intrinsic.Array))return z(f7(Y.expression));_=_.flatMap((X)=>Y.distribute((O)=>B7(SW(X),O)))}else _=_.map((X)=>{if(Z==="?")return _6(X,Y);if(Z==="=")return k7(X,Y,A);return $4(X,Y)})}return F.$.parseSchema(_.map((J)=>b0(J)?{proto:Array,exactLength:0}:{proto:Array,sequence:J}))},$4=(T,F)=>{if(T.defaultables||T.optionals)return z(T.variadic?x2:q7);if(T.variadic)T.postfix=r(T.postfix,F);else T.prefix=r(T.prefix,F);return T},_6=(T,F)=>{if(T.variadic)return z(W6);return T.optionals=r(T.optionals,F),T},k7=(T,F,_)=>{if(T.variadic)return z(W6);if(T.optionals)return z(j7);return T.defaultables=r(T.defaultables,[[F,_]]),T},e$=(T,F)=>{if(T.postfix)z(T6);if(T.variadic){if(!T.variadic.equals(F))z(T6)}else T.variadic=F.internal;return T},B7=(T,F)=>{let _=F.select({method:"find",kind:"sequence"});if(!_)return e$(T,w.intrinsic.unknown);if(_.prefix)for(let W of _.prefix)$4(T,W);if(_.optionals)for(let W of _.optionals)_6(T,W);if(_.variadic)e$(T,_.variadic);if(_.postfix)for(let W of _.postfix)$4(T,W);return T},f7=(T)=>`Spread element must be an array (was ${T})`,T6="A tuple may have at most one variadic element",q7="A required element may not follow an optional element",W6="An optional element may not follow a variadic element";var j7="A defaultable element may not follow an optional element without a default";var y7={},dW=(T,F)=>{if(typeof T==="string"){if(F.args&&Object.keys(F.args).some((W)=>T.includes(W)))return F4(T,F);let _=y7[F.$.name]??={};return _[T]??=F4(T,F)}return eT(T,"object")?P7(T,F):z(Y4(fT(T)))},P7=(T,F)=>{let _=Q_(T);switch(_){case void 0:if(q(T,"root"))return T;return l$(T,F);case"Array":return v7(T,F);case"RegExp":return F.$.node("intersection",{domain:"string",pattern:T},{prereduced:!0});case"Function":{let W=WF(T)?T():T;if(q(W,"root"))return W;return z(Y4("Function"))}default:return z(Y4(_??o(T)))}},v7=(T,F)=>t$(T,F)??F6(T,F),Y4=(T)=>`Type definitions must be strings or objects (was ${T})`;class Z4 extends k0{constructor(T){let F=Object.assign({errors:F0,hkt:uT,$:T,raw:T.parse,module:T.constructor.module,scope:T.constructor.scope,define:T.define,match:T.match,generic:T.generic,schema:T.schema,keywords:T.ambient,unit:T.unit,enumerated:T.enumerated,instanceOf:T.instanceOf,valueOf:T.valueOf,or:T.or,and:T.and,merge:T.merge,pipe:T.pipe},T.ambientAttachments);super((..._)=>{if(_.length===1)return T.parse(_[0]);if(_.length===2&&typeof _[0]==="string"&&_[0][0]==="<"&&_[0].at(-1)===">"){let W=_[0].slice(1,-1),J=T.parseGenericParams(W,{});return new XF(J,_[1],T,T,null)}return T.parse(_)},{bind:T,attach:F})}}var sF=w;class lW extends xW{get ambientAttachments(){if(!sF.typeAttachments)return;return this.cacheGetter("ambientAttachments",m(sF.typeAttachments,(T,F)=>[T,this.bindReference(F)]))}preparseOwnAliasEntry(T,F){let _=T.indexOf("<");if(_===-1){if(q(F,"module")||q(F,"generic"))return[T,F];let $=this.name==="ark"?T:T==="root"?this.name:`${this.name}.${T}`,Y=this.resolvedConfig.keywords?.[$];if(Y)F=[F,"@",Y];return[T,F]}if(T.at(-1)!==">")z("'>' must be the last character of a generic declaration in a scope");let W=T.slice(0,_),J=T.slice(_+1,-1);return[W,()=>{let $=this.parseGenericParams(J,{alias:W});return D8($,F,this)}]}parseGenericParams(T,F){return uW(new r0(T),[],this.createParseContext({...F,def:T,prefix:"generic"}))}normalizeRootScopeValue(T){if(WF(T)&&!q(T,"generic"))return T();return T}preparseOwnDefinitionFormat(T,F){return{...F,def:T,prefix:F.alias??"type"}}parseOwnDefinitionFormat(T,F){if(!(F.alias&&(F.alias in this.aliases))&&!F.args)F.args={this:F.id};let W=dW(T,F);if(YT(W)){if(W[1]==="=")return z(pW);if(W[1]==="?")return z(hW)}return W}unit=(T)=>this.units([T]);valueOf=(T)=>this.units(oJ(T));enumerated=(...T)=>this.units(T);instanceOf=(T)=>this.node("proto",{proto:T},{prereduced:!0});or=(...T)=>this.schema(T.map((F)=>this.parse(F)));and=(...T)=>T.reduce((F,_)=>F.and(this.parse(_)),this.intrinsic.unknown);merge=(...T)=>T.reduce((F,_)=>F.merge(this.parse(_)),this.intrinsic.object);pipe=(...T)=>this.intrinsic.unknown.pipe(...T);match=new _4(this);declare=()=>({type:this.type});define(T){return T}type=new Z4(this);static scope=(T,F={})=>new lW(T,F);static module=(T,F={})=>this.scope(T,F).export()}var X4=Object.assign(lW.scope,{define:(T)=>T}),t=lW;class J6 extends uT{description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var x7=K0(["base",v.object],["props",v.object])((T)=>T.base.merge(T.props),J6),$6=t.module({Key:v.key,Merge:x7});class Y6 extends uT{}var b7=K0("element")((T)=>{let F=T.element.exclude(v.Array),_=F.array();return F.rawOr(_).pipe(_F).distribute((W)=>W.assertHasKind("morph").declareOut(_),_T)},Y6),Z6=t.module({root:v.Array,readonly:"root",index:v.nonNegativeIntegerString,liftFrom:b7},{name:"Array"});var A4=_T(["string",VF.FileConstructor]),h7=A4.rawOr(A4.array()),X6=_T({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:h7}}),A6=t.module({root:["instanceof",FormData],value:A4,parsed:X6,parse:_T({in:FormData,morphs:(T)=>{let F={};for(let[_,W]of T)if(_ in F){let J=F[_];if(typeof J==="string"||J instanceof VF.FileConstructor)F[_]=[J,W];else J.push(W)}else F[_]=W;return F},declaredOut:X6})},{name:"FormData"});var G6=t.module({Int8:["instanceof",Int8Array],Uint8:["instanceof",Uint8Array],Uint8Clamped:["instanceof",Uint8ClampedArray],Int16:["instanceof",Int16Array],Uint16:["instanceof",Uint16Array],Int32:["instanceof",Int32Array],Uint32:["instanceof",Uint32Array],Float32:["instanceof",Float32Array],Float64:["instanceof",Float64Array],BigInt64:["instanceof",BigInt64Array],BigUint64:["instanceof",BigUint64Array]},{name:"TypedArray"});var p7={Boolean:1,Number:1,String:1},H6=t.module({...m({...n1,...s1},(T,F)=>(T in p7)?[]:[T,["instanceof",F]]),Array:Z6,TypedArray:G6,FormData:A6});var g7=_T({domain:{domain:"number",meta:"a number representing a Unix timestamp"},divisor:{rule:1,meta:"an integer representing a Unix timestamp"},min:{rule:-8640000000000000,meta:"a Unix timestamp after -8640000000000000"},max:{rule:8640000000000000,meta:"a Unix timestamp before 8640000000000000"},meta:"an integer representing a safe Unix timestamp"}),m7=_T({domain:"number",divisor:1}),iW=t.module({root:v.number,integer:m7,epoch:g7,safe:_T({domain:{domain:"number",numberAllowsNaN:!1},min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER}),NaN:["===",Number.NaN],Infinity:["===",Number.POSITIVE_INFINITY],NegativeInfinity:["===",Number.NEGATIVE_INFINITY]},{name:"number"});var RT=(T,F,_)=>{let W={domain:"string",pattern:{rule:T.source,flags:T.flags,meta:F}};if(_)W.meta={format:_};return tF("intersection",W)},O6=RT(w_,"a well-formed integer string"),S6=t.module({root:O6,parse:_T({in:O6,morphs:(T,F)=>{let _=Number.parseInt(T);return Number.isSafeInteger(_)?_:F.error("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")},declaredOut:v.integer})},{name:"string.integer"}),o7=RT(/^[\dA-Fa-f]+$/,"hex characters only"),u7=t.module({root:RT(/^(?:[\d+/A-Za-z]{4})*(?:[\d+/A-Za-z]{2}==|[\d+/A-Za-z]{3}=)?$/,"base64-encoded"),url:RT(/^(?:[\w-]{4})*(?:[\w-]{2}(?:==|%3D%3D)?|[\w-]{3}(?:=|%3D)?)?$/,"base64url-encoded")},{name:"string.base64"}),U6=RT(/^[A-Z].*$/,"capitalized"),c7=t.module({root:_T({in:"string",morphs:(T)=>T.charAt(0).toUpperCase()+T.slice(1),declaredOut:U6}),preformatted:U6},{name:"string.capitalize"}),d7=(T)=>{let F=T.replaceAll(/[ -]+/g,""),_=0,W,J,$=!1;for(let Y=F.length-1;Y>=0;Y--){if(W=F.substring(Y,Y+1),J=Number.parseInt(W,10),$)J*=2,_+=J>=10?J%10+1:J;else _+=J;$=!$}return!!(_%10===0?F:!1)},l7=/^(?:4\d{12}(?:\d{3,6})?|5[1-5]\d{14}|(222[1-9]|22[3-9]\d|2[3-6]\d{2}|27[01]\d|2720)\d{12}|6(?:011|5\d\d)\d{12,15}|3[47]\d{13}|3(?:0[0-5]|[68]\d)\d{11}|(?:2131|1800|35\d{3})\d{11}|6[27]\d{14}|^(81\d{14,17}))$/,i7=_T({domain:"string",pattern:{meta:"a credit card number",rule:l7.source},predicate:{meta:"a credit card number",predicate:d7}});var t7=/^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))(T((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([,.]\d+(?!:))?)?(\17[0-5]\d([,.]\d+)?)?([Zz]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;var n7=(T)=>!Number.isNaN(new Date(T).valueOf()),M6=_T({domain:"string",predicate:{meta:"a parsable date",predicate:n7}}).assertHasKind("intersection"),Q6=S6.root.internal.narrow((T,F)=>{let _=Number.parseInt(T),W=iW.epoch(_);if(W instanceof F0)return F.errors.merge(W),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),r7=t.module({root:Q6,parse:_T({in:Q6,morphs:(T)=>new Date(T),declaredOut:v.Date})},{name:"string.date.epoch"}),z6=RT(t7,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),s7=t.module({root:z6,parse:_T({in:z6,morphs:(T)=>new Date(T),declaredOut:v.Date})},{name:"string.date.iso"}),a7=t.module({root:M6,parse:_T({declaredIn:M6,in:"string",morphs:(T,F)=>{let _=new Date(T);if(Number.isNaN(_.valueOf()))return F.error("a parsable date");return _},declaredOut:v.Date}),iso:s7,epoch:r7},{name:"string.date"}),e7=RT(/^[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z]{2,}$/,"an email address","email"),E6="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",AF=`(${E6}[.]){3}${E6}`,T3=new RegExp(`^${AF}$`),NT="(?:[0-9a-fA-F]{1,4})",F3=new RegExp(`^((?:${NT}:){7}(?:${NT}|:)|(?:${NT}:){6}(?:${AF}|:${NT}|:)|(?:${NT}:){5}(?::${AF}|(:${NT}){1,2}|:)|(?:${NT}:){4}(?:(:${NT}){0,1}:${AF}|(:${NT}){1,3}|:)|(?:${NT}:){3}(?:(:${NT}){0,2}:${AF}|(:${NT}){1,4}|:)|(?:${NT}:){2}(?:(:${NT}){0,3}:${AF}|(:${NT}){1,5}|:)|(?:${NT}:){1}(?:(:${NT}){0,4}:${AF}|(:${NT}){1,6}|:)|(?::((?::${NT}){0,5}:${AF}|(?::${NT}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),_3=t.module({root:["v4 | v6","@","an IP address"],v4:RT(T3,"an IPv4 address","ipv4"),v6:RT(F3,"an IPv6 address","ipv6")},{name:"string.ip"}),aF="a JSON string",I6=(T)=>{if(!(T instanceof SyntaxError))throw T;return`must be ${aF} (${T})`},W3=_T({meta:aF,domain:"string",predicate:{meta:aF,predicate:(T,F)=>{try{return JSON.parse(T),!0}catch(_){return F.reject({code:"predicate",expected:aF,problem:I6(_)})}}}}),J3=(T,F)=>{if(T.length===0)return F.error({code:"predicate",expected:aF,actual:"empty"});try{return JSON.parse(T)}catch(_){return F.error({code:"predicate",expected:aF,problem:I6(_)})}},$3=t.module({root:W3,parse:_T({meta:"safe JSON string parser",in:"string",morphs:J3,declaredOut:v.jsonObject})},{name:"string.json"}),R6=RT(/^[a-z]*$/,"only lowercase letters"),Y3=t.module({root:_T({in:"string",morphs:(T)=>T.toLowerCase(),declaredOut:R6}),preformatted:R6},{name:"string.lower"}),N6=["NFC","NFD","NFKC","NFKD"],m_=m(N6,(T,F)=>[F,_T({domain:"string",predicate:(_)=>_.normalize(F)===_,meta:`${F}-normalized unicode`})]),tW=m(N6,(T,F)=>[F,_T({in:"string",morphs:(_)=>_.normalize(F),declaredOut:m_[F]})]),Z3=t.module({root:tW.NFC,preformatted:m_.NFC},{name:"string.normalize.NFC"}),X3=t.module({root:tW.NFD,preformatted:m_.NFD},{name:"string.normalize.NFD"}),A3=t.module({root:tW.NFKC,preformatted:m_.NFKC},{name:"string.normalize.NFKC"}),G3=t.module({root:tW.NFKD,preformatted:m_.NFKD},{name:"string.normalize.NFKD"}),H3=t.module({root:"NFC",NFC:Z3,NFD:X3,NFKC:A3,NFKD:G3},{name:"string.normalize"}),w6=RT(VW,"a well-formed numeric string"),O3=t.module({root:w6,parse:_T({in:w6,morphs:(T)=>Number.parseFloat(T),declaredOut:v.number})},{name:"string.numeric"}),K6="a regex pattern",U3=_T({domain:"string",predicate:{meta:K6,predicate:(T,F)=>{try{return new RegExp(T),!0}catch(_){return F.reject({code:"predicate",expected:K6,problem:String(_)})}}},meta:{format:"regex"}}),M3=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[A-Za-z-][\dA-Za-z-]*)(?:\.(?:0|[1-9]\d*|\d*[A-Za-z-][\dA-Za-z-]*))*))?(?:\+([\dA-Za-z-]+(?:\.[\dA-Za-z-]+)*))?$/,Q3=RT(M3,"a semantic version (see https://semver.org/)"),V6=RT(/^\S.*\S$|^\S?$/,"trimmed"),z3=t.module({root:_T({in:"string",morphs:(T)=>T.trim(),declaredOut:V6}),preformatted:V6},{name:"string.trim"}),D6=RT(/^[A-Z]*$/,"only uppercase letters"),E3=t.module({root:_T({in:"string",morphs:(T)=>T.toUpperCase(),declaredOut:D6}),preformatted:D6},{name:"string.upper"}),R3=(T)=>{if(URL.canParse)return URL.canParse(T);try{return new URL(T),!0}catch{return!1}},L6=_T({domain:"string",predicate:{meta:"a URL string",predicate:R3},meta:{format:"uri"}}),w3=t.module({root:L6,parse:_T({declaredIn:L6,in:"string",morphs:(T,F)=>{try{return new URL(T)}catch{return F.error("a URL string")}},declaredOut:_T(URL)})},{name:"string.url"}),K3=t.module({root:["versioned | nil | max","@",{description:"a UUID",format:"uuid"}],"#nil":"'00000000-0000-0000-0000-000000000000'","#max":"'ffffffff-ffff-ffff-ffff-ffffffffffff'","#versioned":/[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}/i,v1:RT(/^[\da-f]{8}-[\da-f]{4}-1[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv1"),v2:RT(/^[\da-f]{8}-[\da-f]{4}-2[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv2"),v3:RT(/^[\da-f]{8}-[\da-f]{4}-3[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv3"),v4:RT(/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv4"),v5:RT(/^[\da-f]{8}-[\da-f]{4}-5[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv5"),v6:RT(/^[\da-f]{8}-[\da-f]{4}-6[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv6"),v7:RT(/^[\da-f]{8}-[\da-f]{4}-7[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv7"),v8:RT(/^[\da-f]{8}-[\da-f]{4}-8[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv8")},{name:"string.uuid"}),C6=t.module({root:v.string,alpha:RT(/^[A-Za-z]*$/,"only letters"),alphanumeric:RT(/^[\dA-Za-z]*$/,"only letters and digits 0-9"),hex:o7,base64:u7,capitalize:c7,creditCard:i7,date:a7,digits:RT(/^\d*$/,"only digits 0-9"),email:e7,integer:S6,ip:_3,json:$3,lower:Y3,normalize:H3,numeric:O3,regex:U3,semver:Q3,trim:z3,upper:E3,url:w3,uuid:K3},{name:"string"});var k6=t.module({bigint:v.bigint,boolean:v.boolean,false:v.false,never:v.never,null:v.null,number:v.number,object:v.object,string:v.string,symbol:v.symbol,true:v.true,unknown:v.unknown,undefined:v.undefined}),B6=t.module({root:v.unknown,any:v.unknown},{name:"unknown"}),V3=t.module({root:v.jsonObject,stringify:tF("morph",{in:v.jsonObject,morphs:(T)=>JSON.stringify(T),declaredOut:v.string})},{name:"object.json"}),f6=t.module({root:v.object,json:V3},{name:"object"});class q6 extends uT{description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var D3=K0(["K",v.key],"V")((T)=>({domain:"object",index:{signature:T.K,value:T.V}}),q6);class j6 extends uT{description='pick a set of properties from an object like `Pick(User, "name | age")`'}var L3=K0(["T",v.object],["K",v.key])((T)=>T.T.pick(T.K),j6);class y6 extends uT{description='omit a set of properties from an object like `Omit(User, "age")`'}var S3=K0(["T",v.object],["K",v.key])((T)=>T.T.omit(T.K),y6);class P6 extends uT{description="make all named properties of an object optional like `Partial(User)`"}var I3=K0(["T",v.object])((T)=>T.T.partial(),P6);class v6 extends uT{description="make all named properties of an object required like `Required(User)`"}var N3=K0(["T",v.object])((T)=>T.T.required(),v6);class x6 extends uT{description='exclude branches of a union like `Exclude("boolean", "true")`'}var C3=K0("T","U")((T)=>T.T.exclude(T.U),x6);class b6 extends uT{description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var k3=K0("T","U")((T)=>T.T.extract(T.U),b6),h6=t.module({Exclude:C3,Extract:k3,Omit:S3,Partial:I3,Pick:L3,Record:D3,Required:N3});var GF=X4({...k6,...h6,...H6,...$6,string:C6,number:iW,object:f6,unknown:B6},{prereducedAliases:!0,name:"ark"}),jT=GF.export();Object.assign(sF.ambient,jT);sF.typeAttachments={string:jT.string.root,number:jT.number.root,bigint:jT.bigint,boolean:jT.boolean,symbol:jT.symbol,undefined:jT.undefined,null:jT.null,object:jT.object.root,unknown:jT.unknown.root,false:jT.false,true:jT.true,never:jT.never,arrayIndex:jT.Array.index,Key:jT.Key,Record:jT.Record,Array:jT.Array.root,Date:jT.Date};var J0=Object.assign(GF.type,sF.typeAttachments),B3=GF.match,f3=GF.generic,LD=GF.schema,q3=GF.define,j3=GF.declare;class o_ extends Promise{fate;resolve;reject;done=!1;constructor(T){let F,_;super((W,J)=>{F=W,_=J});this.resolve=F,this.reject=_,this.use(T instanceof Promise?T:new Promise(T))}pass(T,F){if(T===this.fate)this.resolve(F),this.done=!0}fail(T,F){if(T===this.fate)this.reject(F),this.done=!0}use(T){if(T instanceof Promise){let F=T;this.fate=F,F.then((_)=>{this.pass(F,_)},(_)=>{this.fail(F,_)})}else this.resolve(T),this.fate=void 0}}var mD=(T,F,_=g6.STORE)=>{return p6(_,{key:`${T.key}:JSON`,get:({get:W})=>F.toJson(W(T)),set:({set:W},J)=>{W(T,F.fromJson(J))}})};function cD(T,F,_){return G4(T,{key:`${F.key}:JSON`,get:(J)=>({get:$})=>{let Y=$(F,J);return _.toJson(Y)},set:(J)=>({set:$},Y)=>{$(F,J,_.fromJson(Y))}},["mutable","json"])}var u_=(T)=>JSON.parse(T),nT=(T)=>JSON.stringify(T),lD=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];function i(T){while(T.child!==null)T=T.child;return T}class nW{_buffer;_index=0;constructor(T){let F;if(typeof T==="number")F=T;else F=T.length;this._buffer=Array.from({length:F})}get buffer(){return this._buffer}get index(){return this._index}add(T){this._buffer[this._index]=T,this._index=(this._index+1)%this._buffer.length}copy(){let T=new nW([...this._buffer]);return T._index=this._index,T}}var y3={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function m6(T,F){let _=nT(F),W=`${T.key}(${_})`,J=y3[T.type],$={key:W,type:J};return Object.assign($,{family:{key:T.key,subKey:_}}),Object.assign($,{counterfeit:!0}),$}function c_(T){let F={key:T.key,type:T.type};if("family"in T)F.family=T.family;return F}var H4=(T)=>(F,_,W,J,...$)=>{console[T](`${F} ${_} "${W}" ${J}`,...$)},P3={error:H4("error"),info:H4("info"),warn:H4("warn")};class O4{logLevel;filter;logger;constructor(T,F,_=P3){this.logLevel=T,this.filter=F,this.logger=_}error=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel!==null)this.logger.error(...T)};info=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel==="info")this.logger.info(...T)};warn=(...T)=>{if((this.filter?.(...T)??!0)&&this.logLevel!=="error"&&this.logLevel!==null)this.logger.warn(...T)}}class p0{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(T,F)=>`${T}:${F}`;warn;getRelatedKeys(T){return this.relations.get(T)}addRelation(T,F){let _=this.relations.get(T),W=this.relations.get(F);if(_)_.add(F);else _=new Set([F]),this.relations.set(T,_);if(W)W.add(T);else W=new Set([T]),this.relations.set(F,W)}deleteRelation(T,F){let _=this.relations.get(T);if(_){if(_.delete(F),_.size===0)this.relations.delete(T);let W=this.relations.get(F);if(W){if(W.delete(T),W.size===0)this.relations.delete(F)}}}replaceRelationsUnsafely(T,F){this.relations.set(T,new Set(F));for(let _ of F){let W=new Set().add(T);this.relations.set(_,W)}}replaceRelationsSafely(T,F){let _=this.relations.get(T),W=this.isAType?.(T)?T:void 0,J=W===void 0?T:void 0;if(_)for(let $ of _){W??=$,J??=$;let Y=this.relations.get($);if(Y){if(Y.size===1)this.relations.delete($);else Y.delete(T);this.contents.delete(this.makeContentKey(W,J))}}this.relations.set(T,new Set(F));for(let $ of F){let Y=this.relations.get($);if(Y)Y.add(T);else Y=new Set().add(T),this.relations.set($,Y)}}getContentInternal(T){return this.contents.get(T)}setContent(T,F){this.contents.set(T,F)}deleteContent(T){this.contents.delete(T)}constructor(T,F){if(this.a=T.between[0],this.b=T.between[1],this.cardinality=T.cardinality,!F?.externalStore)this.relations=new Map(T.relations?.map(([_,W])=>[_,new Set(W)])),this.contents=new Map(T.contents);if(this.isAType=F?.isAType??null,this.isBType=F?.isBType??null,this.isContent=F?.isContent??null,F?.makeContentKey)this.makeContentKey=F.makeContentKey;if(F?.externalStore){let _=F.externalStore;if(this.has=(W,J)=>_.has(W,J),this.addRelation=(W,J)=>{_.addRelation(W,J)},this.deleteRelation=(W,J)=>{_.deleteRelation(W,J)},this.replaceRelationsSafely=(W,J)=>{_.replaceRelationsSafely(W,J)},this.replaceRelationsUnsafely=(W,J)=>{_.replaceRelationsUnsafely(W,J)},this.getRelatedKeys=(W)=>_.getRelatedKeys(W),_.getContent)this.getContentInternal=(W)=>{return _.getContent(W)},this.setContent=(W,J)=>{_.setContent(W,J)},this.deleteContent=(W)=>{_.deleteContent(W)};for(let[W,J]of T.relations??[]){let $=this.isAType?.(W)?W:void 0,Y=$===void 0?W:void 0;for(let Z of J)$??=Z,Y??=Z,this.addRelation($,Y)}for(let[W,J]of T.contents??[])this.setContent(W,J)}if(F?.warn)this.warn=F.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([T,F])=>[T,[...F]]),contents:[...this.contents.entries()]}}set(...T){let F,_,W;switch(T.length){case 1:{let J=T[0];F=J[this.a],_=J[this.b],W=void 0;break}case 2:{let J=T[0];if(typeof J==="string")[F,_]=T;else F=J[this.a],_=J[this.b],W=T[1];break}default:{F=T[0],_=T[1],W=T[2];break}}switch(this.cardinality){case"1:1":{let J=this.getRelatedKey(F);if(J&&J!==_)this.delete(F,J)}case"1:n":{let J=this.getRelatedKey(_);if(J&&J!==F)this.delete(J,_)}break;case"n:n":}if(W){let J=this.makeContentKey(F,_);this.setContent(J,W)}return this.addRelation(F,_),this}delete(T,F){F=typeof F==="string"?F:T[this.b];let _=typeof T==="string"?T:T[this.a];if(_===void 0&&typeof F==="string"){let W=this.getRelatedKeys(F);if(W)for(let J of W)this.delete(J,F)}if(typeof _==="string"&&F===void 0){let W=this.getRelatedKeys(_);if(W)for(let J of W)this.delete(_,J)}if(typeof _==="string"&&typeof F==="string"){this.deleteRelation(_,F);let W=this.makeContentKey(_,F);this.deleteContent(W)}return this}getRelatedKey(T){let F=this.getRelatedKeys(T);if(F){if(F.size>1)this.warn?.(`${F.size} related keys were found for key "${T}": (${[...F].map((W)=>`"${W}"`).join(", ")}). Only one related key was expected.`);let _;for(let W of F){_=W;break}return _}}replaceRelations(T,F,_){let W=!Array.isArray(F),J=W?Object.keys(F):F;if(_?.reckless)this.replaceRelationsUnsafely(T,J);else this.replaceRelationsSafely(T,J);if(W)for(let $ of J){let Y=this.makeContentKey(T,$),Z=F[$];this.setContent(Y,Z)}return this}getContent(T,F){let _=this.makeContentKey(T,F);return this.getContentInternal(_)}getRelationEntries(T){let F=T[this.a],_=T[this.b];if(F!==void 0&&_===void 0){let W=this.getRelatedKeys(F);if(W)return[...W].map((J)=>{return[J,this.getContent(F,J)]})}if(F===void 0&&_!==void 0){let W=this.getRelatedKeys(_);if(W)return[...W].map((J)=>{return[J,this.getContent(J,_)]})}return[]}has(T,F){if(F)return this.getRelatedKeys(T)?.has(F)??!1;return this.relations.has(T)}}class ZT{Subscriber;subscribers=new Map;subscribe(T,F){return this.subscribers.set(T,F),()=>{this.unsubscribe(T)}}unsubscribe(T){this.subscribers.delete(T)}next(T){let F=this.subscribers.values();for(let _ of F)_(T)}}class U4 extends ZT{state;constructor(T){super();this.state=T}next(T){this.state=T,super.next(T)}}function eF(T){return"epoch"in T.transactionMeta}function U0(T){return"phase"in T.transactionMeta}function o6(T){return T[0].toUpperCase()+T.slice(1)}function rW(T){return T.type.split("_").map(o6).join(" ")}class d_ extends Error{constructor(T,F){super(`${rW(T)} ${nT(T.key)} not found in store "${F.config.name}".`)}}var sW=(T)=>(F)=>T instanceof Function?T(F):T;var HF=(T,F)=>{if(T.valueMap.has(F.key))return T.logger.info("\uD83D\uDCD6",F.type,F.key,"reading cached value"),u6(F,T);switch(F.type){case"selector":case"readonly_selector":return T.logger.info("\uD83E\uDDEE",F.type,F.key,"computing value"),F.get();case"atom":case"mutable_atom":{let _=F.default,W;if(_ instanceof Function)W=_();else W=_;return T.logger.info("\uD83D\uDC81","atom",F.key,"could not find cached value; using default",W),W}}};var c6=(T,F)=>{if(T.operation.open){let _=performance.now();return T.logger.info("\u2757",F.type,F.key,`deferring setState at T-${_} until setState for "${T.operation.token.key}" is done`),_}T.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:F},T.logger.info("\u2B55",F.type,F.key,`operation start in store "${T.config.name}"${!U0(T)?"":` ${T.transactionMeta.phase} "${T.transactionMeta.update.key}"`}`)},d6=(T)=>{if(T.operation.open)T.logger.info("\uD83D\uDD34",T.operation.token.type,T.operation.token.key,`operation done in store "${T.config.name}"`);T.operation={open:!1},T.on.operationClose.next(T.operation)},l6=(T,F)=>{if(!T.operation.open)return T.logger.error("\uD83D\uDC1E","unknown",F,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return T.operation.done.has(F)},T_=(T,F)=>{if(!T.operation.open){T.logger.error("\uD83D\uDC1E","unknown",F,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}T.operation.done.add(F)};var i6=(T,F,_)=>{switch(F.type){case"mutable_atom":T.logger.info("\uD83D\uDCE2",F.type,F.key,"is now (",_.newValue,") subscribers:",F.subject.subscribers);break;case"atom":case"selector":case"readonly_selector":T.logger.info("\uD83D\uDCE2",F.type,F.key,"went (",_.oldValue,"->",_.newValue,") subscribers:",F.subject.subscribers)}F.subject.next(_)};var M4=(T,F)=>{let _=i(T),W=_.selectorAtoms.getRelatedKeys(F.key);if(_.logger.info("\uD83E\uDDF9",F.type,F.key,W?`evicting ${W.size} states downstream:`:"no downstream states",W??"to evict"),W){if(_.operation.open)_.logger.info("\uD83E\uDDF9",F.type,F.key,`[ ${[..._.operation.done].join(", ")} ] already done`);for(let J of W){if(l6(_,J))continue;t6(J,_),T_(_,J)}}};var n6=(T,F,_)=>{let W=HF(T,F),J=W;if(F.type==="mutable_atom"&&U0(T)){let{parent:Y}=T;J=l_(T,F,Y)}if(J=sW(_)(J),T.logger.info("\uD83D\uDCDD","atom",F.key,"set to",J),J=g0(T,F.key,J,F.subject),s6(T,F.key))a6(T,F.key);T_(T,F.key),M4(T,F);let $={oldValue:W,newValue:J};if(!U0(T)){i6(T,F,$);return}if(T.on.transactionApplying.state===null){let{key:Y}=F;if(r6($.newValue))return;let Z={type:"atom_update",key:Y,...$};if(F.family)Z.family=F.family;T.transactionMeta.update.updates.push(Z),T.logger.info("\uD83D\uDCC1","atom",Y,"stowed (",$.oldValue,"->",$.newValue,")")}else if(F.key.startsWith("*")){let Y=F.key.slice(1),Z=T.atoms.get(Y),A=T.valueMap.get(Y);if(Z.type==="mutable_atom"&&U0(T)){let{parent:O}=T;A=l_(T,Z,O)}if(A.do($.newValue)===null)M4(T,Z)}};var aW=(T,F,_)=>{switch(F.type){case"atom":case"mutable_atom":n6(T,F,_);break;case"selector":F.set(_);break}};var eW=(T,F)=>i(T).atoms.has(F),v3=(T,F)=>i(T).selectors.has(F),x3=(T,F)=>i(T).readonlySelectors.has(F),e6=(T,F)=>eW(T,F)||v3(T,F)||x3(T,F);var T1=(T,F)=>{return i(F).selectorGraph.getRelationEntries({downstreamSelectorKey:T}).filter(([W,{source:J}])=>J!==T).map(([W,{source:J}])=>J).filter((W)=>e6(F,W))};var Q4=(T,F,_)=>{let W=[],J=T1(T,_);while(J.length>0){let $=J.shift();if(F.has($))continue;if(F.add($),!eW(_,$))J.push(...T1($,_));else if(!W.includes($))W.push($)}return W},TY=(T,F)=>{let _=T.key,W=T1(_,F),J=new Set;return W.flatMap(($)=>eW(F,$)?$:Q4($,J,F))};var FY=(T,F,_,W)=>{let J=i(W);if(F.type==="atom"||F.type==="mutable_atom")J.selectorAtoms.set({selectorKey:T,atomKey:F.key}),W.logger.info("\uD83D\uDD0D","selector",T,`discovers root atom "${F.key}"`);else{let $=Q4(F.key,_,W);W.logger.info("\uD83D\uDD0D","selector",T,`discovers root atoms: [ ${$.map((Y)=>`"${Y}"`).join(", ")} ]`);for(let Y of $)J.selectorAtoms=J.selectorAtoms.set({selectorKey:T,atomKey:Y})}_.add(F.key)};var F1=(T,F,_)=>({get:(...W)=>{let J=i(_),$;if(W.length===2){let[A,X]=W;$=M0(_,A,X)}else[$]=W;let Y=$0(_,$),Z=HF(_,Y);return _.logger.info("\uD83D\uDD0C","selector",T,`registers dependency ( "${$.key}" =`,Z,")"),J.selectorGraph.set({upstreamSelectorKey:$.key,downstreamSelectorKey:T},{source:$.key}),FY(T,$,F,_),Z},set:(...W)=>{let J,$;if(W.length===2)J=W[0],$=W[1];else{let A=W[0],X=W[1];$=W[2],J=M0(_,A,X)}let Y=i(_),Z=$0(Y,J);aW(Y,Z,$)},find:(...W)=>M0(_,...W),json:(W)=>F_(_,W)});var z4=(T,F,_)=>{let W=i(T),J=new ZT,$=new Set,{get:Y,find:Z,json:A}=F1(F.key,$,W),X=()=>{let K=F.get({get:Y,find:Z,json:A});return g0(i(T),F.key,K,J),$.clear(),K},O={...F,subject:J,install:(K)=>z4(K,F,_),get:X,type:"readonly_selector",..._&&{family:_}};W.readonlySelectors.set(F.key,O);let M=X();T.logger.info("\u2728",O.type,O.key,"=",M);let E={key:F.key,type:"readonly_selector"};if(_)E.family=_;return E};var i_=(T,F,_)=>{let W=i(T),J=new ZT,$=new Set,Y=F1(F.key,$,W),{find:Z,get:A,json:X}=Y,O={find:Z,get:A,json:X},M=(P=F.get,f=i(T))=>{let y=P(O);return g0(f,F.key,y,J),$.clear(),y},K={...F,subject:J,install:(P)=>i_(P,F,_),get:M,set:(P)=>{let f=i(T),y=M(F.get,f),h=sW(P)(y);if(T.logger.info("\uD83D\uDCDD","selector",F.key,"set (",y,"->",h,")"),g0(f,F.key,h,J),T_(f,F.key),eF(f))J.next({newValue:h,oldValue:y});F.set(Y,h)},type:"selector",..._&&{family:_}};W.selectors.set(F.key,K);let j=M();T.logger.info("\u2728",K.type,K.key,"=",j);let S={key:F.key,type:"selector"};if(_)S.family=_;return S};function p6(T,F){if("set"in F){let J=i_(T,F,void 0);return T.on.selectorCreation.next(J),J}let W=z4(T,F,void 0);return T.on.selectorCreation.next(W),W}function G4(T,F,_){let W={key:F.key,type:"selector_family"},J=T.families.get(F.key);if(J)T.logger.error("\u2757","selector_family",F.key,`Overwriting an existing ${rW(J)} "${J.key}" in store "${T.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new ZT,Z=Object.assign((A)=>{let X=nT(A),O={key:F.key,subKey:X},M=`${F.key}(${X})`,E=i(T),K=i_(E,{key:M,get:F.get(A),set:F.set(A)},O);return $.next({type:"state_creation",token:K}),K},W,{internalRoles:_,subject:$,install:(A)=>G4(A,F),default:(A)=>{return F.get(A)({get:(...O)=>t_(T,...O),find:(...O)=>M0(T,...O),json:(O)=>F_(T,O)})}});return T.families.set(F.key,Z),W}function _Y(T,F,_){let W=T.families.get(F.key);if(W===void 0)throw new d_(F,T);let J=W(_),$=i(T);if(J.family){if(eF($))switch(J.type){case"atom":case"mutable_atom":T.on.atomCreation.next(J);break;case"selector":case"readonly_selector":T.on.selectorCreation.next(J);break}else if(U0($)&&$.on.transactionApplying.state===null)$.transactionMeta.update.updates.push({type:"state_creation",token:J})}return J}function WY(T,F,_){let W=nT(_),J=`${F.key}(${W})`,$=i(T),Y;switch(F.type){case"atom_family":case"mutable_atom_family":Y=$.atoms.get(J);break;case"selector_family":Y=$.selectors.get(J);break;case"readonly_selector_family":Y=$.readonlySelectors.get(J);break}if(Y)return c_(Y);return Y}function M0(T,F,_){let W=WY(T,F,_);if(W)return W;let J=nT(_),$=T.molecules.get(J);if(!$&&T.config.lifespan==="immortal"){let Y=m6(F,_);return T.logger.error("\u274C",Y.type,Y.key,`was not found in store "${T.config.name}"; returned a counterfeit token.`),Y}if(W=_Y(T,F,_),$)i(T).moleculeData.set(J,F.key);return W}function JY(T,F){if(F.family){let _=T.families.get(F.family.key);if(_)return _}}function OF(T,...F){let _,W,J,$;if(F.length===2){if(_=F[0],$=F[1],W=JY(T,_)??null,W)J=_.family?u_(_.family.subKey):null,_=M0(T,W,J)}else W=F[0],J=F[1],$=F[2],_=M0(T,W,J);if("counterfeit"in _&&"family"in _){let A=_.family.subKey,X=T.disposalTraces.buffer.find((O)=>O?.key===A);T.logger.error("\u274C",_.type,_.key,`could not be set because it was not found in the store "${T.config.name}".`,X?`This state was previously disposed:
|
|
48
48
|
${X.trace}`:"No previous disposal trace was found.");return}let Y=c6(T,_);if(Y){let A=T.on.operationClose.subscribe(`waiting to set "${_.key}" at T-${Y}`,()=>{A(),T.logger.info("\uD83D\uDFE2",_.type,_.key,`resuming deferred setState from T-${Y}`),OF(T,_,$)});return}let Z=$0(T,_);aW(T,Z,$),d6(T)}function t_(T,...F){let _,W,J;if(F.length===1)_=F[0];else W=F[0],J=F[1],_=M0(T,W,J);if("counterfeit"in _&&"family"in _){W=T.families.get(_.family.key);let $=_.family.subKey,Y=T.disposalTraces.buffer.find((Z)=>Z?.key===$);switch(T.logger.error("\u274C",_.type,_.key,`could not be retrieved because it was not found in the store "${T.config.name}".`,Y?`This state was previously disposed:
|
|
49
|
-
${Y.trace}`:"No previous disposal trace was found."),W.type){case"atom_family":case"mutable_atom_family":return T.defaults.get(W.key);case"selector_family":case"readonly_selector_family":{if(T.defaults.has(W.key))return T.defaults.get(_.family.key);let Z=$0(T,W).default($);return T.defaults.set(W.key,Z),Z}}}return HF(T,$0(T,_))}class $Y{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new p0({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new p0({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new p0({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new p0({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new nW(100);molecules=new Map;moleculeJoins=new p0({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeGraph=new p0({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeData=new p0({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});miscResources=new Map;on={atomCreation:new ZT,atomDisposal:new ZT,selectorCreation:new ZT,selectorDisposal:new ZT,timelineCreation:new ZT,transactionCreation:new ZT,transactionApplying:new U4(null),operationClose:new ZT,moleculeCreation:new ZT,moleculeDisposal:new ZT};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new O4("warn",(T,F,_)=>!ZY(_))];logger={error:(...T)=>{for(let F of this.loggers)F.error(...T)},info:(...T)=>{for(let F of this.loggers)F.info(...T)},warn:(...T)=>{for(let F of this.loggers)F.warn(...T)}};constructor(T,F=null){if(this.config={...F?.config,...T},F!==null){if(this.valueMap=new Map(F?.valueMap),this.operation={...F?.operation},eF(F))this.transactionMeta={epoch:new Map(F?.transactionMeta.epoch),actionContinuities:new p0(F?.transactionMeta.actionContinuities.toJSON())};for(let[,W]of F.families){if(W.internalRoles?.includes("mutable")||W.internalRoles?.includes("join"))continue;W.install(this)}let _=new Set;for(let[,W]of F.atoms){if(_.has(W.key))continue;if(W.install(this),W.type==="mutable_atom"){let J=F_(F,W),$=YY(W);_.add(J.key),_.add($.key)}}for(let[,W]of F.readonlySelectors)W.install(this);for(let[,W]of F.selectors){if(_.has(W.key))continue;W.install(this)}for(let[,W]of F.transactions)W.install(this);for(let[,W]of F.timelines)W.install(this)}}}var g6={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new $Y({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function $0(T,F){let _,W=T;while(W!==null){switch(F.type){case"atom":case"mutable_atom":_=W.atoms.get(F.key);break;case"selector":_=W.selectors.get(F.key);break;case"readonly_selector":_=W.readonlySelectors.get(F.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":_=W.families.get(F.key);break;case"timeline":_=W.timelines.get(F.key);break;case"transaction":_=W.transactions.get(F.key);break}if(_)return _;W=W.child}throw new d_(F,T)}var XY=(T,F)=>{let _=i(T);if(_.operation.open)return _.operation.prev.get(F.key);return _.valueMap.get(F.key)};var E4=(T,F)=>{let _=i(T);return TY(F,T).map((J)=>{let $=_.atoms.get(J);if($===void 0)throw new Error(`Atom "${J}", a dependency of selector "${F.key}", not found in store "${T.config.name}".`);return $.subject.subscribe(`${F.type}:${F.key}`,(Y)=>{T.logger.info("\uD83D\uDCE2",F.type,F.key,"root",J,"went",Y.oldValue,"->",Y.newValue);let Z=XY(_,F),A=HF(_,F);T.logger.info("\u2728",F.type,F.key,"went",Z,"->",A),F.subject.next({newValue:A,oldValue:Z})})})};function n_(T,F,_,W){function J(M){if(T.operation.open){let E=T.on.operationClose.subscribe(`state subscription ${_}`,()=>{E(),W(M)})}else W(M)}let $=$0(T,F);T.logger.info("\uD83D\uDC40",$.type,$.key,`Adding subscription "${_}"`);let Y=$.type==="selector"||$.type==="readonly_selector",Z=null,A=J;if(Y)Z=E4(T,$),A=(M)=>{if(Z)Z.length=0,Z.push(...E4(T,$));J(M)};let X=$.subject.subscribe(_,A);return()=>{if(T.logger.info("\uD83D\uDE48",$.type,$.key,`Removing subscription "${_}"`),X(),Z)for(let M of Z)M()}}var AY=(T,F,_,W)=>{let J=$0(T,F);T.logger.info("\uD83D\uDC40","timeline",F.key,`Adding subscription "${_}"`);let $=J.subject.subscribe(_,W);return()=>{T.logger.info("\uD83D\uDE48","timeline",F.key,`Removing subscription "${_}" from timeline`),$()}};class R4{initializeState(T,F){let _=`*${T.key}`;F.atoms.delete(_),F.valueMap.delete(_);let W=T.family?{key:`*${T.family.key}`,subKey:T.family.subKey}:void 0,J=w4(F,{key:_,default:null},W);if(F.parent?.valueMap.has(_)){let $=F.parent.valueMap.get(_);F.valueMap.set(_,$)}return J}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(T,F,_){let W=`tracker:${_.config.name}:${U0(_)?_.transactionMeta.update.key:"main"}:${T.key}`,J=t_(_,T);this.unsubscribeFromInnerValue=J.subscribe(W,($)=>{OF(_,F,$)}),this.unsubscribeFromState=n_(_,T,W,($)=>{if($.newValue!==$.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=$.newValue.subscribe(W,(Y)=>{OF(_,F,Y)})})}updateCore(T,F,_){let W=`tracker:${_.config.name}:${U0(_)?_.transactionMeta.update.key:"main"}:${T.key}`;n_(_,F,W,({newValue:J,oldValue:$})=>{let Y=_.timelineTopics.getRelatedKey(F.key);if(Y){if(_.timelines.get(Y)?.timeTraveling){let X=AY(_,{key:Y,type:"timeline"},W,(O)=>{X(),OF(_,T,(M)=>{if(O==="redo"&&J)M.do(J);else if(O==="undo"&&$)M.undo($);return M})});return}}let Z=_.on.operationClose.subscribe(W,()=>{Z();let A=t_(_,T),X=J===null?-1:A.getUpdateNumber(J),O=X-A.cacheUpdateNumber;if(J&&O===1)OF(_,T,(M)=>(M.do(J),M));else _.logger.info("\u274C","mutable_atom",T.key,`could not be updated. Expected update number ${A.cacheUpdateNumber+1}, but got ${X}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(T,F){this.mutableState=T;let _=i(F);this.latestUpdateState=this.initializeState(T,_),this.observeCore(T,this.latestUpdateState,_),this.updateCore(T,this.latestUpdateState,_),_.trackers.set(T.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),_.trackers.delete(T.key)}}}var F_=(T,F)=>{if(F.family){let W=i(T),$={key:`${F.family.key}:JSON`,type:"selector_family"},Y=$0(W,$),Z=JSON.parse(F.family.subKey);return M0(T,Y,Z)}return{type:"selector",key:`${F.key}:JSON`}};var YY=(T)=>{let _={type:"atom",key:`*${T.key}`};if(T.family)_.family={key:`*${T.family.key}`,subKey:T.family.subKey};return _};function r6(T){return typeof T==="object"&&T!==null&&"do"in T&&"undo"in T&&"subscribe"in T}function l_(T,F,_){let W=_.valueMap.get(F.key),J=T.valueMap.get(F.key);if(W!==J)return J;if(W===void 0)return F.default();_.logger.info("\uD83D\uDCC3","atom",F.key,"copying");let $=F.toJson(W),Y=F.fromJson($);return T.valueMap.set(F.key,Y),new R4(F,_),Y}function g0(T,F,_,W){let J=T.valueMap.get(F);if(J instanceof o_)J.use(_);if(_ instanceof Promise){let $=new o_(_);return T.valueMap.set(F,$),$.then((Y)=>{g0(T,F,Y,W),W.next({newValue:Y,oldValue:$})}).catch((Y)=>{T.logger.error("\uD83D\uDCA5","state",F,"rejected:",Y)}),$}return T.valueMap.set(F,_),_}var u6=(T,F)=>{let _=F.valueMap.get(T.key);if(T.type==="mutable_atom"&&U0(F)){let{parent:W}=F;_=l_(F,T,W)}return _},t6=(T,F)=>{let _=F.valueMap.get(T);if(_ instanceof o_){let W=_,J=F.selectors.get(T)??F.readonlySelectors.get(T);if(J)W.use(J.get());return}if(F.operation.open)F.operation.prev.set(T,_);F.valueMap.delete(T),F.logger.info("\uD83D\uDDD1","state",T,"evicted")};var s6=(T,F)=>{return i(T).atomsThatAreDefault.has(F)},GY=(T,F)=>{let _=i(T);_.atomsThatAreDefault=new Set(_.atomsThatAreDefault).add(F)},a6=(T,F)=>{let _=i(T);_.atomsThatAreDefault=new Set(i(T).atomsThatAreDefault),_.atomsThatAreDefault.delete(F)};function w4(T,F,_){T.logger.info("\uD83D\uDD28","atom",F.key,`creating in store "${T.config.name}"`);let W=i(T),J=W.atoms.get(F.key);if(J&&J.type==="atom")return T.logger.error("\u274C","atom",F.key,"Tried to create atom, but it already exists in the store."),c_(J);let $=new ZT,Y={...F,type:"atom",install:(X)=>{return X.logger.info("\uD83D\uDEE0\uFE0F","atom",F.key,`installing in store "${X.config.name}"`),w4(X,F,_)},subject:$};if(_)Y.family=_;let Z=F.default;if(F.default instanceof Function)Z=F.default();W.atoms.set(Y.key,Y),GY(T,F.key),g0(W,F.key,Z,$);let A=c_(Y);if(F.effects){let X=0,O=[];for(let M of F.effects){let E=M({setSelf:(K)=>{OF(T,A,K)},onSet:(K)=>n_(T,A,`effect[${X}]`,K)});if(E)O.push(E);++X}Y.cleanup=()=>{for(let M of O)M()}}return A}class __ extends Set{mode="record";subject=new ZT;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(T,F=0){super(T);if(T instanceof __)this.parent=T,this.cacheUpdateNumber=T.cacheUpdateNumber;if(F)this.cacheLimit=F,this.cache=new Array(F),this.subscribe("auto cache",(_)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=_})}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(T){let F=new __(T.members,T.cacheLimit);return F.cache=T.cache,F.cacheIdx=T.cacheIdx,F.cacheUpdateNumber=T.cacheUpdateNumber,F}add(T){let F=super.add(T);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${nT(T)}`);return F}clear(){let T=this.mode==="record"?[...this]:null;if(super.clear(),T)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(T)}`)}delete(T){let F=super.delete(T);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${nT(T)}`);return F}parent=null;child=null;transactionUpdates=null;transaction(T){this.mode="transaction",this.transactionUpdates=[],this.child=new __(this);let F=this.child._subscribe("transaction",(_)=>{this.transactionUpdates?.push(_)});try{if(T(this.child)){for(let W of this.transactionUpdates)this.doStep(W);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(_){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",_),_}finally{F(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(T,F){return this.subject.subscribe(T,F)}subscribe(T,F){return this.subject.subscribe(T,(_)=>{F(`${this.cacheUpdateNumber}=${_}`)})}emit(T){this.subject.next(T)}doStep(T){let F=T.indexOf(":"),_=T.substring(0,F),W=T.substring(F+1);switch(_){case"add":this.add(JSON.parse(W));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(W));break;case"tx":for(let J of W.split(";"))this.doStep(J)}}getUpdateNumber(T){let F=T.indexOf("=");return Number(T.substring(0,F))}do(T){let F=T.indexOf("="),_=Number(T.substring(0,F)),W=_-this.cacheUpdateNumber;if(W>0){if(W===1){this.mode="playback";let $=T.substring(F+1);return this.doStep($),this.mode="record",this.cacheUpdateNumber=_,null}return this.cacheUpdateNumber+1}if(Math.abs(W)<this.cacheLimit){let $=this.cacheIdx+W;if(this.cache[$]===T)return null;this.mode="playback";let Z=!1;while(!Z){this.cacheIdx%=this.cacheLimit;let X=this.cache[this.cacheIdx];if(this.cacheIdx--,!X)return"OUT_OF_RANGE";this.undo(X),Z=this.cacheIdx===$-1}let A=T.substring(F+1);return this.doStep(A),this.mode="record",this.cacheUpdateNumber=_,null}return"OUT_OF_RANGE"}undoStep(T){let F=T.indexOf(":"),_=T.substring(0,F),W=T.substring(F+1);switch(_){case"add":this.delete(JSON.parse(W));break;case"del":this.add(JSON.parse(W));break;case"clear":{let J=JSON.parse(W);for(let $ of J)this.add($);break}case"tx":{let J=W.split(";");for(let $=J.length-1;$>=0;$--)this.undoStep(J[$])}}}undo(T){let F=T.indexOf("=");if(Number(T.substring(0,F))===this.cacheUpdateNumber){this.mode="playback";let W=T.substring(F+1);return this.undoStep(W),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}function ZY(T){return T.startsWith("\uD83D\uDD0D ")}class _1{supported;constructor(T){this.supported=T}refine(T){for(let[F,_]of Object.entries(this.supported))try{if(_(T)===!0&&_!==Boolean)return{type:F,data:T}}catch(W){try{if(T instanceof _)return{type:F,data:T}}catch(J){}}return null}}var b3=new _1({number:(T)=>typeof T==="number",string:(T)=>typeof T==="string",boolean:(T)=>typeof T==="boolean",null:(T)=>T===null});function h3(T){if(!T)return!1;return Object.getPrototypeOf(T)===Object.prototype}var p3=new _1({object:h3,array:(T)=>Array.isArray(T)}),g3=new _1({...b3.supported,...p3.supported}),HY=(T)=>{if(T===void 0)return"undefined";let F=g3.refine(T);if(F)return F.type;return Object.getPrototypeOf(T).constructor.name};class W1{listeners;globalListeners;handleEvent(T,...F){for(let W of this.globalListeners)W(T,...F);let _=this.listeners.get(T);if(_)for(let W of _)W(...F)}id="no_id_retrieved";emit;constructor(T){this.emit=T,this.listeners=new Map,this.globalListeners=new Set}on(T,F){let _=this.listeners.get(T);if(_)_.add(F);else this.listeners.set(T,new Set([F]));return this}onAny(T){return this.globalListeners.add(T),this}off(T,F){let _=this.listeners.get(T);if(_)if(F)_.delete(F);else this.listeners.delete(T);return this}offAny(T){return this.globalListeners.delete(T),this}}class OY extends W1{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(T){super((...F)=>{return this.out.next(F),this});this.id=T,this.in=new ZT,this.out=new ZT,this.in.subscribe("socket",(F)=>{this.handleEvent(...F)})}dispose(){for(let T of this.disposalFunctions)T()}}class K4 extends W1{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...T){this.process.stderr.write(nT(T.map((F)=>F instanceof __?`{ ${F.toJSON().members.join(" | ")} }`:F))+"\x03")}logger={info:(...T)=>{this.log("i",...T)},warn:(...T)=>{this.log("w",...T)},error:(...T)=>{this.log("e",...T)}};constructor(){super((T,...F)=>{let _=JSON.stringify([T,...F]);return this.process.stdout.write(_+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(T)=>{let F=T.toString();this.unprocessedEvents.push(...F.split("\x03"));let _=this.unprocessedEvents.shift();this.incompleteData+=_??"";try{let W=u_(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",W),this.handleEvent(...W);while(this.unprocessedEvents.length>0){let J=this.unprocessedEvents.shift();if(J){if(this.unprocessedEvents.length===0)this.incompleteData=J;let $=u_(J);this.handleEvent(...$)}}this.incompleteData=""}catch(W){if(W instanceof Error)this.logger.error("\u2757",W.message,W.cause,W.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(T)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${T}`)}),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",(T)=>{this.logger.info("\uD83D\uDC64","user",T,"joined");let F=new OY(`user:${T}`);this.relays.set(T,F),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let _ of this.relayServices){let W=_(F);if(W)F.disposalFunctions.push(W)}this.on(`user:${T}`,(..._)=>{F.in.next(_)}),F.out.subscribe("socket",(_)=>{this.emit(..._)})}),this.on("user-leaves",(T)=>{let F=this.relays.get(T);if(this.off(`relay:${T}`),F)F.dispose(),this.relays.delete(T)}),process.stdout.write("ALIVE")}relay(T){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(T)}}var{file:oA,serve:FO}=globalThis.Bun;import{readFileSync as QY}from"fs";import{createServer as c3}from"http";import{createServer as d3}from"https";import{resolve as D4}from"path";function UY(T,F){if(T instanceof Promise)throw new Error(F)}function m3(T,F){let _={},W=[];for(let J in T){let $=T[J]["~standard"].validate(F[J]);if(UY($,`Validation must be synchronous, but ${J} returned a Promise.`),$.issues){W.push(...$.issues.map((Y)=>({...Y,path:[J,...Y.path??[]]})));continue}_[J]=$.value}if(W.length)return{issues:W};return{value:_}}function V4(T){let F=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[y,h]of Object.entries(F))if(h==="")delete F[y]}if(!!T.skipValidation)return F;let J=typeof T.client==="object"?T.client:{},$=typeof T.server==="object"?T.server:{},Y=typeof T.shared==="object"?T.shared:{},Z=T.isServer??(typeof window==="undefined"||("Deno"in window)),A=Z?{...$,...Y,...J}:{...J,...Y},X=T.createFinalSchema?.(A,Z)["~standard"].validate(F)??m3(A,F);UY(X,"Validation must be synchronous");let O=T.onValidationError??((y)=>{throw console.error("\u274C Invalid environment variables:",y),new Error("Invalid environment variables")}),M=T.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(X.issues)return O(X.issues);let E=(y)=>{if(!T.clientPrefix)return!0;return!y.startsWith(T.clientPrefix)&&!(y in Y)},K=(y)=>{return Z||!E(y)},j=(y)=>{return y==="__esModule"||y==="$$typeof"},S=(T.extends??[]).reduce((y,h)=>{return Object.assign(y,h)},{}),P=Object.assign(S,X.value);return new Proxy(P,{get(y,h){if(typeof h!=="string")return;if(j(h))return;if(!K(h))return M(h);return Reflect.get(y,h)}})}var o3="__vite_start_time"in globalThis,u3=typeof window!=="undefined",JN="vitest"in globalThis,s0=J0("string"),MY=J0('"true" | "false" | undefined'),q0=V4({isServer:!o3&&!u3,server:{CI:J0("string | undefined").pipe(Boolean),POSTGRES_USER:s0,POSTGRES_PASSWORD:s0,POSTGRES_DATABASE:s0,POSTGRES_HOST:s0,POSTGRES_PORT:s0.pipe((T)=>Number.parseInt(T,10)),BACKEND_PORT:s0.pipe((T)=>Number.parseInt(T,10)),RUN_WORKERS_FROM_SOURCE:MY.pipe((T)=>T==="true"),FRONTEND_PORT:s0.pipe((T)=>Number.parseInt(T,10)),FRONTEND_ORIGINS:s0.pipe.try((T)=>JSON.parse(T),J0("string[]")),API_KEY_OPENAI:J0("string | undefined"),API_KEY_RESEND:J0("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:s0,VITE_DEV_FRONTEND_HOST:J0("string | undefined"),VITE_DEV_HTTPS:MY.pipe((T)=>T==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var zY=D4(import.meta.dirname,"../dev"),J1=q0.VITE_DEV_HTTPS?{cert:QY(D4(zY,"./cert.pem"),"utf-8"),key:QY(D4(zY,"./key.pem"),"utf-8")}:void 0;function HN(T){if(J1)return d3(J1,T);return c3({},T)}import nH from"path";var H=Symbol.for("drizzle:entityKind"),UN=Symbol.for("drizzle:hasOwnEntityKind");function R(T,F){if(!T||typeof T!=="object")return!1;if(T instanceof F)return!0;if(!Object.prototype.hasOwnProperty.call(F,H))throw new Error(`Class "${F.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 _=Object.getPrototypeOf(T).constructor;if(_)while(_){if(H in _&&_[H]===F[H])return!0;_=Object.getPrototypeOf(_)}return!1}class XT{constructor(T,F){this.table=T,this.config=F,this.name=F.name,this.keyAsName=F.keyAsName,this.notNull=F.notNull,this.default=F.default,this.defaultFn=F.defaultFn,this.onUpdateFn=F.onUpdateFn,this.hasDefault=F.hasDefault,this.primary=F.primaryKey,this.isUnique=F.isUnique,this.uniqueName=F.uniqueName,this.uniqueType=F.uniqueType,this.dataType=F.dataType,this.columnType=F.columnType,this.generated=F.generated,this.generatedIdentity=F.generatedIdentity}static[H]="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(T){return T}mapToDriverValue(T){return T}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class L4{static[H]="ColumnBuilder";config;constructor(T,F,_){this.config={name:T,keyAsName:T==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:F,columnType:_,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(T){return this.config.default=T,this.config.hasDefault=!0,this}$defaultFn(T){return this.config.defaultFn=T,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(T){return this.config.onUpdateFn=T,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(T){if(this.config.name!=="")return;this.config.name=T}}var j0=Symbol.for("drizzle:Name");class S4{static[H]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(T,F){if(this.reference=()=>{let{name:_,columns:W,foreignColumns:J}=T();return{name:_,columns:W,foreignTable:J[0].table,foreignColumns:J}},F)this._onUpdate=F.onUpdate,this._onDelete=F.onDelete}onUpdate(T){return this._onUpdate=T===void 0?"no action":T,this}onDelete(T){return this._onDelete=T===void 0?"no action":T,this}build(T){return new EY(T,this)}}class EY{constructor(T,F){this.table=T,this.reference=F.reference,this.onUpdate=F._onUpdate,this.onDelete=F._onDelete}static[H]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:T,columns:F,foreignColumns:_}=this.reference(),W=F.map((Y)=>Y.name),J=_.map((Y)=>Y.name),$=[this.table[j0],...W,_[0].table[j0],...J];return T??`${$.join("_")}_fk`}}function $1(T,...F){return T(...F)}function RY(T,F){return`${T[j0]}_${F.join("_")}_unique`}function wY(T,F,_){for(let W=F;W<T.length;W++){let J=T[W];if(J==="\\"){W++;continue}if(J==='"')return[T.slice(F,W).replace(/\\/g,""),W+1];if(_)continue;if(J===","||J==="}")return[T.slice(F,W).replace(/\\/g,""),W]}return[T.slice(F).replace(/\\/g,""),T.length]}function KY(T,F=0){let _=[],W=F,J=!1;while(W<T.length){let $=T[W];if($===","){if(J||W===F)_.push("");J=!0,W++;continue}if(J=!1,$==="\\"){W+=2;continue}if($==='"'){let[A,X]=wY(T,W+1,!0);_.push(A),W=X;continue}if($==="}")return[_,W+1];if($==="{"){let[A,X]=KY(T,W+1);_.push(A),W=X;continue}let[Y,Z]=wY(T,W,!1);_.push(Y),W=Z}return[_,W]}function VY(T){let[F]=KY(T,1);return F}function I4(T){return`{${T.map((F)=>{if(Array.isArray(F))return I4(F);if(typeof F==="string")return`"${F.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${F}`}).join(",")}}`}class B extends L4{foreignKeyConfigs=[];static[H]="PgColumnBuilder";array(T){return new LY(this.config.name,this,T)}references(T,F={}){return this.foreignKeyConfigs.push({ref:T,actions:F}),this}unique(T,F){return this.config.isUnique=!0,this.config.uniqueName=T,this.config.uniqueType=F?.nulls,this}generatedAlwaysAs(T){return this.config.generated={as:T,type:"always",mode:"stored"},this}buildForeignKeys(T,F){return this.foreignKeyConfigs.map(({ref:_,actions:W})=>{return $1((J,$)=>{let Y=new S4(()=>{let Z=J();return{columns:[T],foreignColumns:[Z]}});if($.onUpdate)Y.onUpdate($.onUpdate);if($.onDelete)Y.onDelete($.onDelete);return Y.build(F)},_,W)})}buildExtraConfigColumn(T){return new DY(T,this.config)}}class L extends XT{constructor(T,F){if(!F.uniqueName)F.uniqueName=RY(T,[F.name]);super(T,F);this.table=T}static[H]="PgColumn"}class DY extends L{static[H]="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(T){return this.indexConfig.opClass=T,this}}class r_{static[H]="IndexedColumn";constructor(T,F,_,W){this.name=T,this.keyAsName=F,this.type=_,this.indexConfig=W}name;keyAsName;type;indexConfig}class LY extends B{static[H]="PgArrayBuilder";constructor(T,F,_){super(T,"array","PgArray");this.config.baseBuilder=F,this.config.size=_}build(T){let F=this.config.baseBuilder.build(T);return new N4(T,this.config,F)}}class N4 extends L{constructor(T,F,_,W){super(T,F);this.baseColumn=_,this.range=W,this.size=F.size}size;static[H]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(T){if(typeof T==="string")T=VY(T);return T.map((F)=>this.baseColumn.mapFromDriverValue(F))}mapToDriverValue(T,F=!1){let _=T.map((W)=>W===null?null:R(this.baseColumn,N4)?this.baseColumn.mapToDriverValue(W,!0):this.baseColumn.mapToDriverValue(W));if(F)return _;return I4(_)}}class SY extends B{static[H]="PgEnumObjectColumnBuilder";constructor(T,F){super(T,"string","PgEnumObjectColumn");this.config.enum=F}build(T){return new IY(T,this.config)}}class IY extends L{static[H]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(T,F){super(T,F);this.enum=F.enum}getSQLType(){return this.enum.enumName}}var Y1=Symbol.for("drizzle:isPgEnum");function NY(T){return!!T&&typeof T==="function"&&Y1 in T&&T[Y1]===!0}class CY extends B{static[H]="PgEnumColumnBuilder";constructor(T,F){super(T,"string","PgEnumColumn");this.config.enum=F}build(T){return new kY(T,this.config)}}class kY extends L{static[H]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(T,F){super(T,F);this.enum=F.enum}getSQLType(){return this.enum.enumName}}function s_(T,F){return Array.isArray(F)?l3(T,[...F],void 0):i3(T,F,void 0)}function l3(T,F,_){let W=Object.assign((J)=>new CY(J??"",W),{enumName:T,enumValues:F,schema:_,[Y1]:!0});return W}function i3(T,F,_){let W=Object.assign((J)=>new SY(J??"",W),{enumName:T,enumValues:Object.values(F),schema:_,[Y1]:!0});return W}class yT{static[H]="Subquery";constructor(T,F,_,W=!1){this._={brand:"Subquery",sql:T,selectedFields:F,alias:_,isWith:W}}}class a_ extends yT{static[H]="WithSubquery"}var BY="0.43.1";var C4,k4,AT={startActiveSpan(T,F){if(!C4)return F();if(!k4)k4=C4.trace.getTracer("drizzle-orm",BY);return $1((_,W)=>W.startActiveSpan(T,(J)=>{try{return F(J)}catch($){throw J.setStatus({code:_.SpanStatusCode.ERROR,message:$ instanceof Error?$.message:"Unknown error"}),$}finally{J.end()}}),C4,k4)}};var MT=Symbol.for("drizzle:ViewBaseConfig");var Z1=Symbol.for("drizzle:Schema"),X1=Symbol.for("drizzle:Columns"),fY=Symbol.for("drizzle:ExtraConfigColumns"),B4=Symbol.for("drizzle:OriginalName"),f4=Symbol.for("drizzle:BaseName"),e_=Symbol.for("drizzle:IsAlias"),qY=Symbol.for("drizzle:ExtraConfigBuilder"),t3=Symbol.for("drizzle:IsDrizzleTable");class C{static[H]="Table";static Symbol={Name:j0,Schema:Z1,OriginalName:B4,Columns:X1,ExtraConfigColumns:fY,BaseName:f4,IsAlias:e_,ExtraConfigBuilder:qY};[j0];[B4];[Z1];[X1];[fY];[f4];[e_]=!1;[t3]=!0;[qY]=void 0;constructor(T,F,_){this[j0]=this[B4]=T,this[Z1]=F,this[f4]=_}}function vT(T){return T[j0]}function SF(T){return`${T[Z1]??"public"}.${T[j0]}`}function q4(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function n3(T){let F={sql:"",params:[]};for(let _ of T)if(F.sql+=_.sql,F.params.push(..._.params),_.typings?.length){if(!F.typings)F.typings=[];F.typings.push(..._.typings)}return F}class PT{static[H]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new k([this])}}class k{constructor(T){this.queryChunks=T}static[H]="SQL";decoder=yY;shouldInlineParams=!1;append(T){return this.queryChunks.push(...T.queryChunks),this}toQuery(T){return AT.startActiveSpan("drizzle.buildSQL",(F)=>{let _=this.buildQueryFromSourceParams(this.queryChunks,T);return F?.setAttributes({"drizzle.query.text":_.sql,"drizzle.query.params":JSON.stringify(_.params)}),_})}buildQueryFromSourceParams(T,F){let _=Object.assign({},F,{inlineParams:F.inlineParams||this.shouldInlineParams,paramStartIndex:F.paramStartIndex||{value:0}}),{casing:W,escapeName:J,escapeParam:$,prepareTyping:Y,inlineParams:Z,paramStartIndex:A}=_;return n3(T.map((X)=>{if(R(X,PT))return{sql:X.value.join(""),params:[]};if(R(X,A1))return{sql:J(X.value),params:[]};if(X===void 0)return{sql:"",params:[]};if(Array.isArray(X)){let O=[new PT("(")];for(let[M,E]of X.entries())if(O.push(E),M<X.length-1)O.push(new PT(", "));return O.push(new PT(")")),this.buildQueryFromSourceParams(O,_)}if(R(X,k))return this.buildQueryFromSourceParams(X.queryChunks,{..._,inlineParams:Z||X.shouldInlineParams});if(R(X,C)){let O=X[C.Symbol.Schema],M=X[C.Symbol.Name];return{sql:O===void 0||X[e_]?J(M):J(O)+"."+J(M),params:[]}}if(R(X,XT)){let O=W.getColumnCasing(X);if(F.invokeSource==="indexes")return{sql:J(O),params:[]};let M=X.table[C.Symbol.Schema];return{sql:X.table[e_]||M===void 0?J(X.table[C.Symbol.Name])+"."+J(O):J(M)+"."+J(X.table[C.Symbol.Name])+"."+J(O),params:[]}}if(R(X,Y0)){let O=X[MT].schema,M=X[MT].name;return{sql:O===void 0||X[MT].isAlias?J(M):J(O)+"."+J(M),params:[]}}if(R(X,Q0)){if(R(X.value,UF))return{sql:$(A.value++,X),params:[X],typings:["none"]};let O=X.value===null?null:X.encoder.mapToDriverValue(X.value);if(R(O,k))return this.buildQueryFromSourceParams([O],_);if(Z)return{sql:this.mapInlineParam(O,_),params:[]};let M=["none"];if(Y)M=[Y(X.encoder)];return{sql:$(A.value++,O),params:[O],typings:M}}if(R(X,UF))return{sql:$(A.value++,X),params:[X],typings:["none"]};if(R(X,k.Aliased)&&X.fieldAlias!==void 0)return{sql:J(X.fieldAlias),params:[]};if(R(X,yT)){if(X._.isWith)return{sql:J(X._.alias),params:[]};return this.buildQueryFromSourceParams([new PT("("),X._.sql,new PT(") "),new A1(X._.alias)],_)}if(NY(X)){if(X.schema)return{sql:J(X.schema)+"."+J(X.enumName),params:[]};return{sql:J(X.enumName),params:[]}}if(q4(X)){if(X.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([X.getSQL()],_);return this.buildQueryFromSourceParams([new PT("("),X.getSQL(),new PT(")")],_)}if(Z)return{sql:this.mapInlineParam(X,_),params:[]};return{sql:$(A.value++,X),params:[X],typings:["none"]}}))}mapInlineParam(T,{escapeString:F}){if(T===null)return"null";if(typeof T==="number"||typeof T==="boolean")return T.toString();if(typeof T==="string")return F(T);if(typeof T==="object"){let _=T.toString();if(_==="[object Object]")return F(JSON.stringify(T));return F(_)}throw new Error("Unexpected param value: "+T)}getSQL(){return this}as(T){if(T===void 0)return this;return new k.Aliased(this,T)}mapWith(T){return this.decoder=typeof T==="function"?{mapFromDriverValue:T}:T,this}inlineParams(){return this.shouldInlineParams=!0,this}if(T){return T?this:void 0}}class A1{constructor(T){this.value=T}static[H]="Name";brand;getSQL(){return new k([this])}}function jY(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var yY={mapFromDriverValue:(T)=>T},PY={mapToDriverValue:(T)=>T},FC={...yY,...PY};class Q0{constructor(T,F=PY){this.value=T,this.encoder=F}static[H]="Param";brand;getSQL(){return new k([this])}}function U(T,...F){let _=[];if(F.length>0||T.length>0&&T[0]!=="")_.push(new PT(T[0]));for(let[W,J]of F.entries())_.push(J,new PT(T[W+1]));return new k(_)}((T)=>{function F(){return new k([])}T.empty=F;function _(A){return new k(A)}T.fromList=_;function W(A){return new k([new PT(A)])}T.raw=W;function J(A,X){let O=[];for(let[M,E]of A.entries()){if(M>0&&X!==void 0)O.push(X);O.push(E)}return new k(O)}T.join=J;function $(A){return new A1(A)}T.identifier=$;function Y(A){return new UF(A)}T.placeholder=Y;function Z(A,X){return new Q0(A,X)}T.param=Z})(U||(U={}));((T)=>{class F{constructor(_,W){this.sql=_,this.fieldAlias=W}static[H]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new F(this.sql,this.fieldAlias)}}T.Aliased=F})(k||(k={}));class UF{constructor(T){this.name=T}static[H]="Placeholder";getSQL(){return new k([this])}}function j4(T,F){return T.map((_)=>{if(R(_,UF)){if(!(_.name in F))throw new Error(`No value for placeholder "${_.name}" was provided`);return F[_.name]}if(R(_,Q0)&&R(_.value,UF)){if(!(_.value.name in F))throw new Error(`No value for placeholder "${_.value.name}" was provided`);return _.encoder.mapToDriverValue(F[_.value.name])}return _})}var r3=Symbol.for("drizzle:IsDrizzleView");class Y0{static[H]="View";[MT];[r3]=!0;constructor({name:T,schema:F,selectedFields:_,query:W}){this[MT]={name:T,originalName:T,schema:F,selectedFields:_,query:W,isExisting:!W,isAlias:!1}}getSQL(){return new k([this])}}XT.prototype.getSQL=function(){return new k([this])};C.prototype.getSQL=function(){return new k([this])};yT.prototype.getSQL=function(){return new k([this])};class W_{constructor(T){this.table=T}static[H]="ColumnAliasProxyHandler";get(T,F){if(F==="table")return this.table;return T[F]}}class TW{constructor(T,F){this.alias=T,this.replaceOriginalName=F}static[H]="TableAliasProxyHandler";get(T,F){if(F===C.Symbol.IsAlias)return!0;if(F===C.Symbol.Name)return this.alias;if(this.replaceOriginalName&&F===C.Symbol.OriginalName)return this.alias;if(F===MT)return{...T[MT],name:this.alias,isAlias:!0};if(F===C.Symbol.Columns){let W=T[C.Symbol.Columns];if(!W)return W;let J={};return Object.keys(W).map(($)=>{J[$]=new Proxy(W[$],new W_(new Proxy(T,this)))}),J}let _=T[F];if(R(_,XT))return new Proxy(_,new W_(new Proxy(T,this)));return _}}function G1(T,F){return new Proxy(T,new TW(F,!1))}function m0(T,F){return new Proxy(T,new W_(new Proxy(T.table,new TW(F,!1))))}function y4(T,F){return new k.Aliased(FW(T.sql,F),T.fieldAlias)}function FW(T,F){return U.join(T.queryChunks.map((_)=>{if(R(_,XT))return m0(_,F);if(R(_,k))return FW(_,F);if(R(_,k.Aliased))return y4(_,F);return _}))}class H1 extends Error{static[H]="DrizzleError";constructor({message:T,cause:F}){super(T);this.name="DrizzleError",this.cause=F}}class P4 extends H1{static[H]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class vY{static[H]="ConsoleLogWriter";write(T){console.log(T)}}class v4{static[H]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new vY}logQuery(T,F){let _=F.map((J)=>{try{return JSON.stringify(J)}catch{return String(J)}}),W=_.length?` -- params: [${_.join(", ")}]`:"";this.writer.write(`Query: ${T}${W}`)}}class x4{static[H]="NoopLogger";logQuery(){}}class rT{static[H]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(T){return this.then(void 0,T)}finally(T){return this.then((F)=>{return T?.(),F},(F)=>{throw T?.(),F})}then(T,F){return this.execute().then(T,F)}}function xY(T,F,_){let W={},J=T.reduce(($,{path:Y,field:Z},A)=>{let X;if(R(Z,XT))X=Z;else if(R(Z,k))X=Z.decoder;else X=Z.sql.decoder;let O=$;for(let[M,E]of Y.entries())if(M<Y.length-1){if(!(E in O))O[E]={};O=O[E]}else{let K=F[A],j=O[E]=K===null?null:X.mapFromDriverValue(K);if(_&&R(Z,XT)&&Y.length===2){let S=Y[0];if(!(S in W))W[S]=j===null?vT(Z.table):!1;else if(typeof W[S]==="string"&&W[S]!==vT(Z.table))W[S]=!1}}return $},{});if(_&&Object.keys(W).length>0){for(let[$,Y]of Object.entries(W))if(typeof Y==="string"&&!_[Y])J[$]=null}return J}function V0(T,F){return Object.entries(T).reduce((_,[W,J])=>{if(typeof W!=="string")return _;let $=F?[...F,W]:[W];if(R(J,XT)||R(J,k)||R(J,k.Aliased))_.push({path:$,field:J});else if(R(J,C))_.push(...V0(J[C.Symbol.Columns],$));else _.push(...V0(J,$));return _},[])}function _W(T,F){let _=Object.keys(T),W=Object.keys(F);if(_.length!==W.length)return!1;for(let[J,$]of _.entries())if($!==W[J])return!1;return!0}function O1(T,F){let _=Object.entries(F).filter(([,W])=>W!==void 0).map(([W,J])=>{if(R(J,k)||R(J,XT))return[W,J];else return[W,new Q0(J,T[C.Symbol.Columns][W])]});if(_.length===0)throw new Error("No values to set");return Object.fromEntries(_)}function bY(T,F){for(let _ of F)for(let W of Object.getOwnPropertyNames(_.prototype)){if(W==="constructor")continue;Object.defineProperty(T.prototype,W,Object.getOwnPropertyDescriptor(_.prototype,W)||Object.create(null))}}function hY(T){return T[C.Symbol.Columns]}function a0(T){return R(T,yT)?T._.alias:R(T,Y0)?T[MT].name:R(T,k)?void 0:T[C.Symbol.IsAlias]?T[C.Symbol.Name]:T[C.Symbol.BaseName]}function s(T,F){return{name:typeof T==="string"&&T.length>0?T:"",config:typeof T==="object"?T:F}}function pY(T){if(typeof T!=="object"||T===null)return!1;if(T.constructor.name!=="Object")return!1;if("logger"in T){let F=typeof T.logger;if(F!=="boolean"&&(F!=="object"||typeof T.logger.logQuery!=="function")&&F!=="undefined")return!1;return!0}if("schema"in T){let F=typeof T.schema;if(F!=="object"&&F!=="undefined")return!1;return!0}if("casing"in T){let F=typeof T.casing;if(F!=="string"&&F!=="undefined")return!1;return!0}if("mode"in T){if(T.mode!=="default"||T.mode!=="planetscale"||T.mode!==void 0)return!1;return!0}if("connection"in T){let F=typeof T.connection;if(F!=="string"&&F!=="object"&&F!=="undefined")return!1;return!0}if("client"in T){let F=typeof T.client;if(F!=="object"&&F!=="function"&&F!=="undefined")return!1;return!0}if(Object.keys(T).length===0)return!0;return!1}class MF extends B{static[H]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(T){if(T){let{name:F,..._}=T;this.config.generatedIdentity={type:"always",sequenceName:F,sequenceOptions:_}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(T){if(T){let{name:F,..._}=T;this.config.generatedIdentity={type:"byDefault",sequenceName:F,sequenceOptions:_}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class gY extends MF{static[H]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new mY(T,this.config)}}class mY extends L{static[H]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class oY extends MF{static[H]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new uY(T,this.config)}}class uY extends L{static[H]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function cY(T,F){let{name:_,config:W}=s(T,F);if(W.mode==="number")return new gY(_);return new oY(_)}class dY extends B{static[H]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new lY(T,this.config)}}class lY extends L{static[H]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class iY extends B{static[H]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new tY(T,this.config)}}class tY extends L{static[H]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function nY(T,F){let{name:_,config:W}=s(T,F);if(W.mode==="number")return new dY(_);return new iY(_)}class rY extends B{static[H]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new sY(T,this.config)}}class sY extends L{static[H]="PgBoolean";getSQLType(){return"boolean"}}function WW(T){return new rY(T??"")}class aY extends B{static[H]="PgCharBuilder";constructor(T,F){super(T,"string","PgChar");this.config.length=F.length,this.config.enumValues=F.enum}build(T){return new eY(T,this.config)}}class eY extends L{static[H]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function TZ(T,F={}){let{name:_,config:W}=s(T,F);return new aY(_,W)}class FZ extends B{static[H]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new _Z(T,this.config)}}class _Z extends L{static[H]="PgCidr";getSQLType(){return"cidr"}}function WZ(T){return new FZ(T??"")}class JZ extends B{static[H]="PgCustomColumnBuilder";constructor(T,F,_){super(T,"custom","PgCustomColumn");this.config.fieldConfig=F,this.config.customTypeParams=_}build(T){return new $Z(T,this.config)}}class $Z extends L{static[H]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(T,F){super(T,F);this.sqlName=F.customTypeParams.dataType(F.fieldConfig),this.mapTo=F.customTypeParams.toDriver,this.mapFrom=F.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(T){return typeof this.mapFrom==="function"?this.mapFrom(T):T}mapToDriverValue(T){return typeof this.mapTo==="function"?this.mapTo(T):T}}function YZ(T){return(F,_)=>{let{name:W,config:J}=s(F,_);return new JZ(W,J,T)}}class e0 extends B{static[H]="PgDateColumnBaseBuilder";defaultNow(){return this.default(U`now()`)}}class ZZ extends e0{static[H]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new U1(T,this.config)}}class U1 extends L{static[H]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class XZ extends e0{static[H]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new M1(T,this.config)}}class M1 extends L{static[H]="PgDateString";getSQLType(){return"date"}}function AZ(T,F){let{name:_,config:W}=s(T,F);if(W?.mode==="date")return new ZZ(_);return new XZ(_)}class GZ extends B{static[H]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new HZ(T,this.config)}}class HZ extends L{static[H]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function OZ(T){return new GZ(T??"")}class UZ extends B{static[H]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new MZ(T,this.config)}}class MZ extends L{static[H]="PgInet";getSQLType(){return"inet"}}function QZ(T){return new UZ(T??"")}class zZ extends MF{static[H]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new EZ(T,this.config)}}class EZ extends L{static[H]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function JW(T){return new zZ(T??"")}class RZ extends B{static[H]="PgIntervalBuilder";constructor(T,F){super(T,"string","PgInterval");this.config.intervalConfig=F}build(T){return new wZ(T,this.config)}}class wZ extends L{static[H]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let T=this.fields?` ${this.fields}`:"",F=this.precision?`(${this.precision})`:"";return`interval${T}${F}`}}function KZ(T,F={}){let{name:_,config:W}=s(T,F);return new RZ(_,W)}class VZ extends B{static[H]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new Q1(T,this.config)}}class Q1 extends L{static[H]="PgJson";constructor(T,F){super(T,F)}getSQLType(){return"json"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function DZ(T){return new VZ(T??"")}class LZ extends B{static[H]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new z1(T,this.config)}}class z1 extends L{static[H]="PgJsonb";constructor(T,F){super(T,F)}getSQLType(){return"jsonb"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function SZ(T){return new LZ(T??"")}class IZ extends B{static[H]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new NZ(T,this.config)}}class NZ extends L{static[H]="PgLine";getSQLType(){return"line"}mapFromDriverValue(T){let[F,_,W]=T.slice(1,-1).split(",");return[Number.parseFloat(F),Number.parseFloat(_),Number.parseFloat(W)]}mapToDriverValue(T){return`{${T[0]},${T[1]},${T[2]}}`}}class CZ extends B{static[H]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new kZ(T,this.config)}}class kZ extends L{static[H]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(T){let[F,_,W]=T.slice(1,-1).split(",");return{a:Number.parseFloat(F),b:Number.parseFloat(_),c:Number.parseFloat(W)}}mapToDriverValue(T){return`{${T.a},${T.b},${T.c}}`}}function BZ(T,F){let{name:_,config:W}=s(T,F);if(!W?.mode||W.mode==="tuple")return new IZ(_);return new CZ(_)}class fZ extends B{static[H]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new qZ(T,this.config)}}class qZ extends L{static[H]="PgMacaddr";getSQLType(){return"macaddr"}}function jZ(T){return new fZ(T??"")}class yZ extends B{static[H]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new PZ(T,this.config)}}class PZ extends L{static[H]="PgMacaddr8";getSQLType(){return"macaddr8"}}function vZ(T){return new yZ(T??"")}class xZ extends B{static[H]="PgNumericBuilder";constructor(T,F,_){super(T,"string","PgNumeric");this.config.precision=F,this.config.scale=_}build(T){return new E1(T,this.config)}}class E1 extends L{static[H]="PgNumeric";precision;scale;constructor(T,F){super(T,F);this.precision=F.precision,this.scale=F.scale}mapFromDriverValue(T){if(typeof T==="string")return T;return String(T)}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 bZ extends B{static[H]="PgNumericNumberBuilder";constructor(T,F,_){super(T,"number","PgNumericNumber");this.config.precision=F,this.config.scale=_}build(T){return new hZ(T,this.config)}}class hZ extends L{static[H]="PgNumericNumber";precision;scale;constructor(T,F){super(T,F);this.precision=F.precision,this.scale=F.scale}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}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 pZ extends B{static[H]="PgNumericBigIntBuilder";constructor(T,F,_){super(T,"bigint","PgNumericBigInt");this.config.precision=F,this.config.scale=_}build(T){return new gZ(T,this.config)}}class gZ extends L{static[H]="PgNumericBigInt";precision;scale;constructor(T,F){super(T,F);this.precision=F.precision,this.scale=F.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 mZ(T,F){let{name:_,config:W}=s(T,F),J=W?.mode;return J==="number"?new bZ(_,W?.precision,W?.scale):J==="bigint"?new pZ(_,W?.precision,W?.scale):new xZ(_,W?.precision,W?.scale)}class oZ extends B{static[H]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new uZ(T,this.config)}}class uZ extends L{static[H]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[F,_]=T.slice(1,-1).split(",");return[Number.parseFloat(F),Number.parseFloat(_)]}return[T.x,T.y]}mapToDriverValue(T){return`(${T[0]},${T[1]})`}}class cZ extends B{static[H]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new dZ(T,this.config)}}class dZ extends L{static[H]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[F,_]=T.slice(1,-1).split(",");return{x:Number.parseFloat(F),y:Number.parseFloat(_)}}return T}mapToDriverValue(T){return`(${T.x},${T.y})`}}function lZ(T,F){let{name:_,config:W}=s(T,F);if(!W?.mode||W.mode==="tuple")return new oZ(_);return new cZ(_)}function s3(T){let F=[];for(let _=0;_<T.length;_+=2)F.push(Number.parseInt(T.slice(_,_+2),16));return new Uint8Array(F)}function iZ(T,F){let _=new ArrayBuffer(8),W=new DataView(_);for(let J=0;J<8;J++)W.setUint8(J,T[F+J]);return W.getFloat64(0,!0)}function b4(T){let F=s3(T),_=0,W=F[_];_+=1;let J=new DataView(F.buffer),$=J.getUint32(_,W===1);_+=4;let Y;if($&536870912)Y=J.getUint32(_,W===1),_+=4;if(($&65535)===1){let Z=iZ(F,_);_+=8;let A=iZ(F,_);return _+=8,[Z,A]}throw new Error("Unsupported geometry type")}class tZ extends B{static[H]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new nZ(T,this.config)}}class nZ extends L{static[H]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return b4(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class rZ extends B{static[H]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new sZ(T,this.config)}}class sZ extends L{static[H]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let F=b4(T);return{x:F[0],y:F[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function aZ(T,F){let{name:_,config:W}=s(T,F);if(!W?.mode||W.mode==="tuple")return new tZ(_);return new rZ(_)}class eZ extends B{static[H]="PgRealBuilder";constructor(T,F){super(T,"number","PgReal");this.config.length=F}build(T){return new TX(T,this.config)}}class TX extends L{static[H]="PgReal";constructor(T,F){super(T,F)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function FX(T){return new eZ(T??"")}class _X extends B{static[H]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new WX(T,this.config)}}class WX extends L{static[H]="PgSerial";getSQLType(){return"serial"}}function JX(T){return new _X(T??"")}class $X extends MF{static[H]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new YX(T,this.config)}}class YX extends L{static[H]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function ZX(T){return new $X(T??"")}class XX extends B{static[H]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new AX(T,this.config)}}class AX extends L{static[H]="PgSmallSerial";getSQLType(){return"smallserial"}}function GX(T){return new XX(T??"")}class HX extends B{static[H]="PgTextBuilder";constructor(T,F){super(T,"string","PgText");this.config.enumValues=F.enum}build(T){return new OX(T,this.config)}}class OX extends L{static[H]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function UX(T,F={}){let{name:_,config:W}=s(T,F);return new HX(_,W)}class MX extends e0{constructor(T,F,_){super(T,"string","PgTime");this.withTimezone=F,this.precision=_,this.config.withTimezone=F,this.config.precision=_}static[H]="PgTimeBuilder";build(T){return new R1(T,this.config)}}class R1 extends L{static[H]="PgTime";withTimezone;precision;constructor(T,F){super(T,F);this.withTimezone=F.withTimezone,this.precision=F.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function QX(T,F={}){let{name:_,config:W}=s(T,F);return new MX(_,W.withTimezone??!1,W.precision)}class zX extends e0{static[H]="PgTimestampBuilder";constructor(T,F,_){super(T,"date","PgTimestamp");this.config.withTimezone=F,this.config.precision=_}build(T){return new w1(T,this.config)}}class w1 extends L{static[H]="PgTimestamp";withTimezone;precision;constructor(T,F){super(T,F);this.withTimezone=F.withTimezone,this.precision=F.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(T)=>{return new Date(this.withTimezone?T:T+"+0000")};mapToDriverValue=(T)=>{return T.toISOString()}}class EX extends e0{static[H]="PgTimestampStringBuilder";constructor(T,F,_){super(T,"string","PgTimestampString");this.config.withTimezone=F,this.config.precision=_}build(T){return new K1(T,this.config)}}class K1 extends L{static[H]="PgTimestampString";withTimezone;precision;constructor(T,F){super(T,F);this.withTimezone=F.withTimezone,this.precision=F.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function y0(T,F={}){let{name:_,config:W}=s(T,F);if(W?.mode==="string")return new EX(_,W.withTimezone??!1,W.precision);return new zX(_,W?.withTimezone??!1,W?.precision)}class RX extends B{static[H]="PgUUIDBuilder";constructor(T){super(T,"string","PgUUID")}defaultRandom(){return this.default(U`gen_random_uuid()`)}build(T){return new V1(T,this.config)}}class V1 extends L{static[H]="PgUUID";getSQLType(){return"uuid"}}function D0(T){return new RX(T??"")}class wX extends B{static[H]="PgVarcharBuilder";constructor(T,F){super(T,"string","PgVarchar");this.config.length=F.length,this.config.enumValues=F.enum}build(T){return new KX(T,this.config)}}class KX extends L{static[H]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function sT(T,F={}){let{name:_,config:W}=s(T,F);return new wX(_,W)}class VX extends B{static[H]="PgBinaryVectorBuilder";constructor(T,F){super(T,"string","PgBinaryVector");this.config.dimensions=F.dimensions}build(T){return new DX(T,this.config)}}class DX extends L{static[H]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function LX(T,F){let{name:_,config:W}=s(T,F);return new VX(_,W)}class SX extends B{static[H]="PgHalfVectorBuilder";constructor(T,F){super(T,"array","PgHalfVector");this.config.dimensions=F.dimensions}build(T){return new IX(T,this.config)}}class IX extends L{static[H]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map((F)=>Number.parseFloat(F))}}function NX(T,F){let{name:_,config:W}=s(T,F);return new SX(_,W)}class CX extends B{static[H]="PgSparseVectorBuilder";constructor(T,F){super(T,"string","PgSparseVector");this.config.dimensions=F.dimensions}build(T){return new kX(T,this.config)}}class kX extends L{static[H]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function BX(T,F){let{name:_,config:W}=s(T,F);return new CX(_,W)}class fX extends B{static[H]="PgVectorBuilder";constructor(T,F){super(T,"array","PgVector");this.config.dimensions=F.dimensions}build(T){return new qX(T,this.config)}}class qX extends L{static[H]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map((F)=>Number.parseFloat(F))}}function jX(T,F){let{name:_,config:W}=s(T,F);return new fX(_,W)}function yX(){return{bigint:cY,bigserial:nY,boolean:WW,char:TZ,cidr:WZ,customType:YZ,date:AZ,doublePrecision:OZ,inet:QZ,integer:JW,interval:KZ,json:DZ,jsonb:SZ,line:BZ,macaddr:jZ,macaddr8:vZ,numeric:mZ,point:lZ,geometry:aZ,real:FX,serial:JX,smallint:ZX,smallserial:GX,text:UX,time:QX,timestamp:y0,uuid:D0,varchar:sT,bit:LX,halfvec:NX,sparsevec:BX,vector:jX}}var h4=Symbol.for("drizzle:PgInlineForeignKeys"),PX=Symbol.for("drizzle:EnableRLS");class hT extends C{static[H]="PgTable";static Symbol=Object.assign({},C.Symbol,{InlineForeignKeys:h4,EnableRLS:PX});[h4]=[];[PX]=!1;[C.Symbol.ExtraConfigBuilder]=void 0;[C.Symbol.ExtraConfigColumns]={}}function a3(T,F,_,W,J=T){let $=new hT(T,W,J),Y=typeof F==="function"?F(yX()):F,Z=Object.fromEntries(Object.entries(Y).map(([O,M])=>{let E=M;E.setName(O);let K=E.build($);return $[h4].push(...E.buildForeignKeys(K,$)),[O,K]})),A=Object.fromEntries(Object.entries(Y).map(([O,M])=>{let E=M;E.setName(O);let K=E.buildExtraConfigColumn($);return[O,K]})),X=Object.assign($,Z);if(X[C.Symbol.Columns]=Z,X[C.Symbol.ExtraConfigColumns]=A,_)X[hT.Symbol.ExtraConfigBuilder]=_;return Object.assign(X,{enableRLS:()=>{return X[hT.Symbol.EnableRLS]=!0,X}})}var QF=(T,F,_)=>{return a3(T,F,_,void 0)};function vX(...T){if(T[0].columns)return new $W(T[0].columns,T[0].name);return new $W(T)}class $W{static[H]="PgPrimaryKeyBuilder";columns;name;constructor(T,F){this.columns=T,this.name=F}build(T){return new xX(T,this.columns,this.name)}}class xX{constructor(T,F,_){this.table=T,this.columns=F,this.name=_}static[H]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[hT.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}function Z0(T,F){if(jY(F)&&!q4(T)&&!R(T,Q0)&&!R(T,UF)&&!R(T,XT)&&!R(T,C)&&!R(T,Y0))return new Q0(T,F);return T}var D1=(T,F)=>{return U`${T} = ${Z0(F,T)}`},bX=(T,F)=>{return U`${T} <> ${Z0(F,T)}`};function YW(...T){let F=T.filter((_)=>_!==void 0);if(F.length===0)return;if(F.length===1)return new k(F);return new k([new PT("("),U.join(F,new PT(" and ")),new PT(")")])}function hX(...T){let F=T.filter((_)=>_!==void 0);if(F.length===0)return;if(F.length===1)return new k(F);return new k([new PT("("),U.join(F,new PT(" or ")),new PT(")")])}function pX(T){return U`not ${T}`}var gX=(T,F)=>{return U`${T} > ${Z0(F,T)}`},mX=(T,F)=>{return U`${T} >= ${Z0(F,T)}`},oX=(T,F)=>{return U`${T} < ${Z0(F,T)}`},uX=(T,F)=>{return U`${T} <= ${Z0(F,T)}`};function cX(T,F){if(Array.isArray(F)){if(F.length===0)return U`false`;return U`${T} in ${F.map((_)=>Z0(_,T))}`}return U`${T} in ${Z0(F,T)}`}function dX(T,F){if(Array.isArray(F)){if(F.length===0)return U`true`;return U`${T} not in ${F.map((_)=>Z0(_,T))}`}return U`${T} not in ${Z0(F,T)}`}function lX(T){return U`${T} is null`}function iX(T){return U`${T} is not null`}function tX(T){return U`exists ${T}`}function nX(T){return U`not exists ${T}`}function rX(T,F,_){return U`${T} between ${Z0(F,T)} and ${Z0(_,T)}`}function sX(T,F,_){return U`${T} not between ${Z0(F,T)} and ${Z0(_,T)}`}function aX(T,F){return U`${T} like ${F}`}function eX(T,F){return U`${T} not like ${F}`}function TA(T,F){return U`${T} ilike ${F}`}function FA(T,F){return U`${T} not ilike ${F}`}function _A(T){return U`${T} asc`}function WA(T){return U`${T} desc`}class p4{constructor(T,F,_){this.sourceTable=T,this.referencedTable=F,this.relationName=_,this.referencedTableName=F[C.Symbol.Name]}static[H]="Relation";referencedTableName;fieldName}class JA{constructor(T,F){this.table=T,this.config=F}static[H]="Relations"}class zF extends p4{constructor(T,F,_,W){super(T,F,_?.relationName);this.config=_,this.isNullable=W}static[H]="One";withFieldName(T){let F=new zF(this.sourceTable,this.referencedTable,this.config,this.isNullable);return F.fieldName=T,F}}class ZW extends p4{constructor(T,F,_){super(T,F,_?.relationName);this.config=_}static[H]="Many";withFieldName(T){let F=new ZW(this.sourceTable,this.referencedTable,this.config);return F.fieldName=T,F}}function $A(){return{and:YW,between:rX,eq:D1,exists:tX,gt:gX,gte:mX,ilike:TA,inArray:cX,isNull:lX,isNotNull:iX,like:aX,lt:oX,lte:uX,ne:bX,not:pX,notBetween:sX,notExists:nX,notLike:eX,notIlike:FA,notInArray:dX,or:hX,sql:U}}function YA(){return{sql:U,asc:_A,desc:WA}}function ZA(T,F){if(Object.keys(T).length===1&&"default"in T&&!R(T.default,C))T=T.default;let _={},W={},J={};for(let[$,Y]of Object.entries(T))if(R(Y,C)){let Z=SF(Y),A=W[Z];_[Z]=$,J[$]={tsName:$,dbName:Y[C.Symbol.Name],schema:Y[C.Symbol.Schema],columns:Y[C.Symbol.Columns],relations:A?.relations??{},primaryKey:A?.primaryKey??[]};for(let O of Object.values(Y[C.Symbol.Columns]))if(O.primary)J[$].primaryKey.push(O);let X=Y[C.Symbol.ExtraConfigBuilder]?.(Y[C.Symbol.ExtraConfigColumns]);if(X){for(let O of Object.values(X))if(R(O,$W))J[$].primaryKey.push(...O.columns)}}else if(R(Y,JA)){let Z=SF(Y.table),A=_[Z],X=Y.config(F(Y.table)),O;for(let[M,E]of Object.entries(X))if(A){let K=J[A];if(K.relations[M]=E,O)K.primaryKey.push(...O)}else{if(!(Z in W))W[Z]={relations:{},primaryKey:O};W[Z].relations[M]=E}}return{tables:J,tableNamesMap:_}}function e3(T){return function F(_,W){return new zF(T,_,W,W?.fields.reduce((J,$)=>J&&$.notNull,!0)??!1)}}function TH(T){return function F(_,W){return new ZW(T,_,W)}}function XA(T,F,_){if(R(_,zF)&&_.config)return{fields:_.config.fields,references:_.config.references};let W=F[SF(_.referencedTable)];if(!W)throw new Error(`Table "${_.referencedTable[C.Symbol.Name]}" not found in schema`);let J=T[W];if(!J)throw new Error(`Table "${W}" not found in schema`);let $=_.sourceTable,Y=F[SF($)];if(!Y)throw new Error(`Table "${$[C.Symbol.Name]}" not found in schema`);let Z=[];for(let A of Object.values(J.relations))if(_.relationName&&_!==A&&A.relationName===_.relationName||!_.relationName&&A.referencedTable===_.sourceTable)Z.push(A);if(Z.length>1)throw _.relationName?new Error(`There are multiple relations with name "${_.relationName}" in table "${W}"`):new Error(`There are multiple relations between "${W}" and "${_.sourceTable[C.Symbol.Name]}". Please specify relation name`);if(Z[0]&&R(Z[0],zF)&&Z[0].config)return{fields:Z[0].config.references,references:Z[0].config.fields};throw new Error(`There is not enough information to infer relation "${Y}.${_.fieldName}"`)}function AA(T){return{one:e3(T),many:TH(T)}}function L1(T,F,_,W,J=($)=>$){let $={};for(let[Y,Z]of W.entries())if(Z.isJson){let A=F.relations[Z.tsKey],X=_[Y],O=typeof X==="string"?JSON.parse(X):X;$[Z.tsKey]=R(A,zF)?O&&L1(T,T[Z.relationTableTsKey],O,Z.selection,J):O.map((M)=>L1(T,T[Z.relationTableTsKey],M,Z.selection,J))}else{let A=J(_[Y]),X=Z.field,O;if(R(X,XT))O=X;else if(R(X,k))O=X.decoder;else O=X.sql.decoder;$[Z.tsKey]=A===null?null:O.mapFromDriverValue(A)}return $}import SH from"os";import IH from"fs";var S1=new Map,g4=new Map,m4=Symbol("OriginError"),J_={};class L0 extends Promise{constructor(T,F,_,W,J={}){let $,Y;super((Z,A)=>{$=Z,Y=A});this.tagged=Array.isArray(T.raw),this.strings=T,this.args=F,this.handler=_,this.canceller=W,this.options=J,this.state=null,this.statement=null,this.resolve=(Z)=>(this.active=!1,$(Z)),this.reject=(Z)=>(this.active=!1,Y(Z)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[m4]=this.handler.debug?new Error:this.tagged&&FH(this.strings)}get origin(){return(this.handler.debug?this[m4].stack:this.tagged&&g4.has(this.strings)?g4.get(this.strings):g4.set(this.strings,this[m4].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(T=1,F){if(this.options.simple=!1,typeof T==="function")F=T,T=1;if(this.cursorRows=T,typeof F==="function")return this.cursorFn=F,this;let _;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};_&&_();let W=new Promise((J,$)=>{this.cursorFn=(Y)=>{return J({value:Y,done:!1}),new Promise((Z)=>_=Z)},this.resolve=()=>(this.active=!1,J({done:!0})),this.reject=(Y)=>(this.active=!1,$(Y))});return this.execute(),W},return(){return _&&_(J_),{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(T){return this.forEachFn=T,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 FH(T){if(S1.has(T))return S1.get(T);let F=Error.stackTraceLimit;return Error.stackTraceLimit=4,S1.set(T,new Error),Error.stackTraceLimit=F,S1.get(T)}class $_ extends Error{constructor(T){super(T.message);this.name=this.constructor.name,Object.assign(this,T)}}var CT={connection:GA,postgres:HA,generic:OA,notSupported:UA};function GA(T,F,_){let{host:W,port:J}=_||F,$=Object.assign(new Error("write "+T+" "+(F.path||W+":"+J)),{code:T,errno:T,address:F.path||W},F.path?{}:{port:J});return Error.captureStackTrace($,GA),$}function HA(T){let F=new $_(T);return Error.captureStackTrace(F,HA),F}function OA(T,F){let _=Object.assign(new Error(T+": "+F),{code:T});return Error.captureStackTrace(_,OA),_}function UA(T){let F=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace(F,UA),F}var _H={string:{to:25,from:null,serialize:(T)=>""+T},number:{to:0,from:[21,23,26,700,701],serialize:(T)=>""+T,parse:(T)=>+T},json:{to:114,from:[114,3802],serialize:(T)=>JSON.stringify(T),parse:(T)=>JSON.parse(T)},boolean:{to:16,from:16,serialize:(T)=>T===!0?"t":"f",parse:(T)=>T==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(T)=>(T instanceof Date?T:new Date(T)).toISOString(),parse:(T)=>new Date(T)},bytea:{to:17,from:17,serialize:(T)=>"\\x"+Buffer.from(T).toString("hex"),parse:(T)=>Buffer.from(T.slice(2),"hex")}};class C1{then(){o4()}catch(){o4()}finally(){o4()}}class HW extends C1{constructor(T){super();this.value=f1(T)}}class o0 extends C1{constructor(T,F,_){super();this.value=T,this.type=F,this.array=_}}class k1 extends C1{constructor(T,F){super();this.first=T,this.rest=F}build(T,F,_,W){let J=WH.map(([$,Y])=>({fn:Y,i:T.search($)})).sort(($,Y)=>$.i-Y.i).pop();return J.i===-1?i4(this.first,W):J.fn(this.first,this.rest,F,_,W)}}function B1(T,F,_,W){let J=T instanceof o0?T.value:T;if(J===void 0){if(T instanceof o0?T.value=W.transform.undefined:J=T=W.transform.undefined,J===void 0)throw CT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+_.push(T instanceof o0?(F.push(T.value),T.array?T.array[T.type||N1(T.value)]||T.type||EA(T.value):T.type):(F.push(T),N1(T)))}var QA=wA(_H);function d4(T,F,_,W,J,$){for(let Y=1;Y<T.strings.length;Y++)F+=l4(F,_,W,J,$)+T.strings[Y],_=T.args[Y];return F}function l4(T,F,_,W,J){return F instanceof k1?F.build(T,_,W,J):F instanceof L0?c4(F,_,W,J):F instanceof HW?F.value:F&&F[0]instanceof L0?F.reduce(($,Y)=>$+" "+c4(Y,_,W,J),""):B1(F,_,W,J)}function c4(T,F,_,W){return T.fragment=!0,d4(T,T.strings[0],T.args[0],F,_,W)}function zA(T,F,_,W,J){return T.map(($)=>"("+W.map((Y)=>l4("values",$[Y],F,_,J)).join(",")+")").join(",")}function MA(T,F,_,W,J){let $=Array.isArray(T[0]),Y=F.length?F.flat():Object.keys($?T[0]:T);return zA($?T:[T],_,W,Y,J)}function I1(T,F,_,W,J){if(typeof T==="string"&&(T=[T].concat(F)),Array.isArray(T))return i4(T,J);let $;return(F.length?F.flat():Object.keys(T)).map((Z)=>{return $=T[Z],($ instanceof L0?c4($,_,W,J):$ instanceof HW?$.value:B1($,_,W,J))+" as "+f1(J.transform.column.to?J.transform.column.to(Z):Z)}).join(",")}var WH=Object.entries({values:MA,in:(...T)=>{let F=MA(...T);return F==="()"?"(null)":F},select:I1,as:I1,returning:I1,"\\(":I1,update(T,F,_,W,J){return(F.length?F.flat():Object.keys(T)).map(($)=>f1(J.transform.column.to?J.transform.column.to($):$)+"="+l4("values",T[$],_,W,J))},insert(T,F,_,W,J){let $=F.length?F.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+i4($,J)+")values"+zA(Array.isArray(T)?T:[T],_,W,$,J)}}).map(([T,F])=>[new RegExp("((?:^|[\\s(])"+T+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),F]);function o4(){throw CT.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:JH,parsers:$H}=QA;function EA(T){if(Array.isArray(T))return EA(T[0]);return typeof T==="string"?1009:0}var RA=function(T){let F=wA(T||{});return{serializers:Object.assign({},JH,F.serializers),parsers:Object.assign({},$H,F.parsers)}};function wA(T){return Object.keys(T).reduce((F,_)=>{if(T[_].from&&[].concat(T[_].from).forEach((W)=>F.parsers[W]=T[_].parse),T[_].serialize)F.serializers[T[_].to]=T[_].serialize,T[_].from&&[].concat(T[_].from).forEach((W)=>F.serializers[W]=T[_].serialize);return F},{parsers:{},serializers:{}})}function i4(T,{transform:{column:F}}){return T.map((_)=>f1(F.to?F.to(_):_)).join(",")}var f1=function T(F){return'"'+F.replace(/"/g,'""').replace(/\./g,'"."')+'"'},N1=function T(F){return F instanceof o0?F.type:F instanceof Date?1184:F instanceof Uint8Array?17:F===!0||F===!1?16:typeof F==="bigint"?20:Array.isArray(F)?T(F[0]):0},YH=/\\/g,ZH=/"/g;function XH(T){return T.replace(YH,"\\\\").replace(ZH,"\\\"")}var KA=function T(F,_,W,J){if(Array.isArray(F)===!1)return F;if(!F.length)return"{}";let $=F[0],Y=J===1020?";":",";if(Array.isArray($)&&!$.type)return"{"+F.map((Z)=>T(Z,_,W,J)).join(Y)+"}";return"{"+F.map((Z)=>{if(Z===void 0){if(Z=W.transform.undefined,Z===void 0)throw CT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return Z===null?"null":'"'+XH(_?_(Z.type?Z.value:Z):""+Z)+'"'}).join(Y)+"}"},u4={i:0,char:null,str:"",quoted:!1,last:0},VA=function T(F,_,W){return u4.i=u4.last=0,DA(u4,F,_,W)};function DA(T,F,_,W){let J=[],$=W===1020?";":",";for(;T.i<F.length;T.i++){if(T.char=F[T.i],T.quoted)if(T.char==="\\")T.str+=F[++T.i];else if(T.char==='"')J.push(_?_(T.str):T.str),T.str="",T.quoted=F[T.i+1]==='"',T.last=T.i+2;else T.str+=T.char;else if(T.char==='"')T.quoted=!0;else if(T.char==="{")T.last=++T.i,J.push(DA(T,F,_,W));else if(T.char==="}"){T.quoted=!1,T.last<T.i&&J.push(_?_(F.slice(T.last,T.i)):F.slice(T.last,T.i)),T.last=T.i+1;break}else if(T.char===$&&T.p!=="}"&&T.p!=='"')J.push(_?_(F.slice(T.last,T.i)):F.slice(T.last,T.i)),T.last=T.i+1;T.p=T.char}return T.last<T.i&&J.push(_?_(F.slice(T.last,T.i+1)):F.slice(T.last,T.i+1)),J}var IF=(T)=>{let F=T[0];for(let _=1;_<T.length;_++)F+=T[_]==="_"?T[++_].toUpperCase():T[_];return F},NF=(T)=>{let F=T[0].toUpperCase();for(let _=1;_<T.length;_++)F+=T[_]==="_"?T[++_].toUpperCase():T[_];return F},CF=(T)=>T.replace(/_/g,"-"),XW=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),AW=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),GW=(T)=>T.replace(/-/g,"_");function t4(T){return function F(_,W){return typeof _==="object"&&_!==null&&(W.type===114||W.type===3802)?Array.isArray(_)?_.map((J)=>F(J,W)):Object.entries(_).reduce((J,[$,Y])=>Object.assign(J,{[T($)]:F(Y,W)}),{}):_}}IF.column={from:IF};IF.value={from:t4(IF)};XW.column={to:XW};var n4={...IF};n4.column.to=XW;NF.column={from:NF};NF.value={from:t4(NF)};AW.column={to:AW};var r4={...NF};r4.column.to=AW;CF.column={from:CF};CF.value={from:t4(CF)};GW.column={to:GW};var s4={...CF};s4.column.to=GW;import LA from"net";import OH from"tls";import OW from"crypto";import a4 from"stream";import{performance as SA}from"perf_hooks";class kF 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 z0=AH;function AH(T=[]){let F=T.slice(),_=0;return{get length(){return F.length-_},remove:(W)=>{let J=F.indexOf(W);return J===-1?null:(F.splice(J,1),W)},push:(W)=>(F.push(W),W),shift:()=>{let W=F[_++];if(_===F.length)_=0,F=[];else F[_-1]=void 0;return W}}}var dT=Buffer.allocUnsafe(256),GH="BCcDdEFfHPpQSX".split("").reduce((T,F)=>{let _=F.charCodeAt(0);return T[F]=()=>{return dT[0]=_,JT.i=5,JT},T},{}),JT=Object.assign(HH,GH,{N:String.fromCharCode(0),i:0,inc(T){return JT.i+=T,JT},str(T){let F=Buffer.byteLength(T);return q1(F),JT.i+=dT.write(T,JT.i,F,"utf8"),JT},i16(T){return q1(2),dT.writeUInt16BE(T,JT.i),JT.i+=2,JT},i32(T,F){if(F||F===0)return dT.writeUInt32BE(T,F),JT;return q1(4),dT.writeUInt32BE(T,JT.i),JT.i+=4,JT},z(T){return q1(T),dT.fill(0,JT.i,JT.i+T),JT.i+=T,JT},raw(T){return dT=Buffer.concat([dT.subarray(0,JT.i),T]),JT.i=dT.length,JT},end(T=1){dT.writeUInt32BE(JT.i-T,T);let F=dT.subarray(0,JT.i);return JT.i=0,dT=Buffer.allocUnsafe(256),F}}),x=JT;function q1(T){if(dT.length-JT.i<T){let F=dT,_=F.length;dT=Buffer.allocUnsafe(_+(_>>1)+T),F.copy(dT)}}function HH(){return JT.i=0,JT}var FJ=CA,UH=1,EF=x().S().end(),IA=x().H().end(),MH=x().i32(8).i32(80877103).end(8),QH=Buffer.concat([x().E().str(x.N).i32(0).end(),EF]),zH=x().D().str("S").str(x.N).end(),Y_=()=>{},EH=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),RH={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 CA(T,F={},{onopen:_=Y_,onend:W=Y_,onclose:J=Y_}={}){let{ssl:$,max:Y,user:Z,host:A,port:X,database:O,parsers:M,transform:E,onnotice:K,onnotify:j,onparameter:S,max_pipeline:P,keep_alive:f,backoff:y,target_session_attrs:h}=T,TT=z0(),u=UH++,g={pid:null,secret:null},d=TJ(c1,T.idle_timeout),ST=TJ(c1,T.max_lifetime),A0=TJ(nA,T.connect_timeout),D=null,$T,l=new kF,e=Buffer.alloc(0),xT=T.fetch_types,G0={},S0={},qF=Math.random().toString(36).slice(2),V=1,p=0,WT=0,wT=0,kT=0,n=0,GT=0,IT=0,KT=null,QT=null,pT=!1,HT=null,I0=null,gT=null,TF=null,BT=null,zT=null,N0=null,P0=null,N=null,G_=null,mT={queue:F.closed,idleTimer:d,connect(G){gT=G||!0,CJ()},terminate:O_,execute:H_,cancel:dA,end:c1,count:0,id:u};return F.closed&&F.closed.push(mT),mT;async function cA(){let G;try{G=T.socket?await Promise.resolve(T.socket(T)):new LA.Socket}catch(Q){yF(Q);return}return G.on("error",yF),G.on("close",kJ),G.on("drain",IJ),G}async function dA({pid:G,secret:Q},b,FT){try{$T=x().i32(16).i32(80877102).i32(G).i32(Q).end(16),await NJ(),D.once("error",FT),D.once("close",b)}catch(DT){FT(DT)}}function H_(G){if(pT)return wW(G,CT.connection("CONNECTION_DESTROYED",T));if(G.cancelled)return;try{return G.state=g,N?TT.push(G):(N=G,N.active=!0),tA(G),bT(lA(G))&&!G.describeFirst&&!G.cursorFn&&TT.length<P&&(!G.options.onexecute||G.options.onexecute(mT))}catch(Q){return TT.length===0&&bT(EF),v0(Q),!0}}function lA(G){if(G.parameters.length>=65534)throw CT.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return G.options.simple?x().Q().str(G.statement.string+x.N).end():G.describeFirst?Buffer.concat([DJ(G),IA]):G.prepare?G.prepared?RW(G):Buffer.concat([DJ(G),RW(G)]):iA(G)}function DJ(G){return Buffer.concat([fJ(G.statement.string,G.parameters,G.statement.types,G.statement.name),y5("S",G.statement.name)])}function RW(G){return Buffer.concat([j5(G.parameters,G.statement.types,G.statement.name,G.cursorName),G.cursorFn?qJ("",G.cursorRows):QH])}function iA(G){return Buffer.concat([fJ(G.statement.string,G.parameters,G.statement.types),zH,RW(G)])}function tA(G){let Q=[],b=[],FT=d4(G,G.strings[0],G.args[0],Q,b,T);!G.tagged&&G.args.forEach((DT)=>B1(DT,Q,b,T)),G.prepare=T.prepare&&("prepare"in G.options?G.options.prepare:!0),G.string=FT,G.signature=G.prepare&&b+FT,G.onlyDescribe&&delete S0[G.signature],G.parameters=G.parameters||Q,G.prepared=G.prepare&&G.signature in S0,G.describeFirst=G.onlyDescribe||Q.length&&!G.prepared,G.statement=G.prepared?S0[G.signature]:{string:FT,types:b,name:G.prepare?qF+V++:""},typeof T.debug==="function"&&T.debug(u,FT,Q,b)}function bT(G,Q){if(zT=zT?Buffer.concat([zT,G]):Buffer.from(G),Q||zT.length>=1024)return LJ(Q);return QT===null&&(QT=setImmediate(LJ)),!0}function LJ(G){let Q=D.write(zT,G);return QT!==null&&clearImmediate(QT),zT=QT=null,Q}function nA(){v0(CT.connection("CONNECT_TIMEOUT",T,D)),D.destroy()}async function SJ(){if(bT(MH),!await new Promise((Q)=>D.once("data",(b)=>Q(b[0]===83)))&&$==="prefer")return jF();D.removeAllListeners(),D=OH.connect({socket:D,servername:LA.isIP(D.host)?void 0:D.host,...$==="require"||$==="allow"||$==="prefer"?{rejectUnauthorized:!1}:$==="verify-full"?{}:typeof $==="object"?$:{}}),D.on("secureConnect",jF),D.on("error",yF),D.on("close",kJ),D.on("drain",IJ)}function IJ(){!N&&_(mT)}function u1(G){if(HT){if(HT.push(G),WT-=G.length,WT>=0)return}e=HT?Buffer.concat(HT,n-WT):e.length===0?G:Buffer.concat([e,G],e.length+G.length);while(e.length>4){if(n=e.readUInt32BE(1),n>=e.length){WT=n-e.length,HT=[e];break}try{rA(e.subarray(0,n+1))}catch(Q){N&&(N.cursorFn||N.describeFirst)&&bT(EF),v0(Q)}e=e.subarray(n+1),WT=0,HT=null}}async function NJ(){if(pT=!1,G0={},D||(D=await cA()),!D)return;if(A0.start(),T.socket)return $?SJ():jF();if(D.on("connect",$?SJ:jF),T.path)return D.connect(T.path);D.ssl=$,D.connect(X[wT],A[wT]),D.host=A[wT],D.port=X[wT],wT=(wT+1)%X.length}function CJ(){setTimeout(NJ,p?p+GT-SA.now():0)}function jF(){try{S0={},xT=T.fetch_types,qF=Math.random().toString(36).slice(2),V=1,ST.start(),D.on("data",u1),f&&D.setKeepAlive&&D.setKeepAlive(!0,1000*f);let G=v5();bT(G)}catch(G){yF(G)}}function yF(G){if(mT.queue===F.connecting&&T.host[kT+1])return;v0(G);while(TT.length)wW(TT.shift(),G)}function v0(G){BT&&(BT.destroy(G),BT=null),N&&wW(N,G),gT&&(wW(gT,G),gT=null)}function wW(G,Q){"query"in Q||"parameters"in Q||Object.defineProperties(Q,{stack:{value:Q.stack+G.origin.replace(/.*\n/,`
|
|
49
|
+
${Y.trace}`:"No previous disposal trace was found."),W.type){case"atom_family":case"mutable_atom_family":return T.defaults.get(W.key);case"selector_family":case"readonly_selector_family":{if(T.defaults.has(W.key))return T.defaults.get(_.family.key);let Z=$0(T,W).default($);return T.defaults.set(W.key,Z),Z}}}return HF(T,$0(T,_))}class $Y{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new p0({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new p0({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new p0({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new p0({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new nW(100);molecules=new Map;moleculeJoins=new p0({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeGraph=new p0({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});moleculeData=new p0({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...T)=>T.sort().join(":")});miscResources=new Map;on={atomCreation:new ZT,atomDisposal:new ZT,selectorCreation:new ZT,selectorDisposal:new ZT,timelineCreation:new ZT,transactionCreation:new ZT,transactionApplying:new U4(null),operationClose:new ZT,moleculeCreation:new ZT,moleculeDisposal:new ZT};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new O4("warn",(T,F,_)=>!ZY(_))];logger={error:(...T)=>{for(let F of this.loggers)F.error(...T)},info:(...T)=>{for(let F of this.loggers)F.info(...T)},warn:(...T)=>{for(let F of this.loggers)F.warn(...T)}};constructor(T,F=null){if(this.config={...F?.config,...T},F!==null){if(this.valueMap=new Map(F?.valueMap),this.operation={...F?.operation},eF(F))this.transactionMeta={epoch:new Map(F?.transactionMeta.epoch),actionContinuities:new p0(F?.transactionMeta.actionContinuities.toJSON())};for(let[,W]of F.families){if(W.internalRoles?.includes("mutable")||W.internalRoles?.includes("join"))continue;W.install(this)}let _=new Set;for(let[,W]of F.atoms){if(_.has(W.key))continue;if(W.install(this),W.type==="mutable_atom"){let J=F_(F,W),$=YY(W);_.add(J.key),_.add($.key)}}for(let[,W]of F.readonlySelectors)W.install(this);for(let[,W]of F.selectors){if(_.has(W.key))continue;W.install(this)}for(let[,W]of F.transactions)W.install(this);for(let[,W]of F.timelines)W.install(this)}}}var g6={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new $Y({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function $0(T,F){let _,W=T;while(W!==null){switch(F.type){case"atom":case"mutable_atom":_=W.atoms.get(F.key);break;case"selector":_=W.selectors.get(F.key);break;case"readonly_selector":_=W.readonlySelectors.get(F.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":_=W.families.get(F.key);break;case"timeline":_=W.timelines.get(F.key);break;case"transaction":_=W.transactions.get(F.key);break}if(_)return _;W=W.child}throw new d_(F,T)}var XY=(T,F)=>{let _=i(T);if(_.operation.open)return _.operation.prev.get(F.key);return _.valueMap.get(F.key)};var E4=(T,F)=>{let _=i(T);return TY(F,T).map((J)=>{let $=_.atoms.get(J);if($===void 0)throw new Error(`Atom "${J}", a dependency of selector "${F.key}", not found in store "${T.config.name}".`);return $.subject.subscribe(`${F.type}:${F.key}`,(Y)=>{T.logger.info("\uD83D\uDCE2",F.type,F.key,"root",J,"went",Y.oldValue,"->",Y.newValue);let Z=XY(_,F),A=HF(_,F);T.logger.info("\u2728",F.type,F.key,"went",Z,"->",A),F.subject.next({newValue:A,oldValue:Z})})})};function n_(T,F,_,W){function J(M){if(T.operation.open){let E=T.on.operationClose.subscribe(`state subscription ${_}`,()=>{E(),W(M)})}else W(M)}let $=$0(T,F);T.logger.info("\uD83D\uDC40",$.type,$.key,`Adding subscription "${_}"`);let Y=$.type==="selector"||$.type==="readonly_selector",Z=null,A=J;if(Y)Z=E4(T,$),A=(M)=>{if(Z)Z.length=0,Z.push(...E4(T,$));J(M)};let X=$.subject.subscribe(_,A);return()=>{if(T.logger.info("\uD83D\uDE48",$.type,$.key,`Removing subscription "${_}"`),X(),Z)for(let M of Z)M()}}var AY=(T,F,_,W)=>{let J=$0(T,F);T.logger.info("\uD83D\uDC40","timeline",F.key,`Adding subscription "${_}"`);let $=J.subject.subscribe(_,W);return()=>{T.logger.info("\uD83D\uDE48","timeline",F.key,`Removing subscription "${_}" from timeline`),$()}};class R4{initializeState(T,F){let _=`*${T.key}`;F.atoms.delete(_),F.valueMap.delete(_);let W=T.family?{key:`*${T.family.key}`,subKey:T.family.subKey}:void 0,J=w4(F,{key:_,default:null},W);if(F.parent?.valueMap.has(_)){let $=F.parent.valueMap.get(_);F.valueMap.set(_,$)}return J}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(T,F,_){let W=`tracker:${_.config.name}:${U0(_)?_.transactionMeta.update.key:"main"}:${T.key}`,J=t_(_,T);this.unsubscribeFromInnerValue=J.subscribe(W,($)=>{OF(_,F,$)}),this.unsubscribeFromState=n_(_,T,W,($)=>{if($.newValue!==$.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=$.newValue.subscribe(W,(Y)=>{OF(_,F,Y)})})}updateCore(T,F,_){let W=`tracker:${_.config.name}:${U0(_)?_.transactionMeta.update.key:"main"}:${T.key}`;n_(_,F,W,({newValue:J,oldValue:$})=>{let Y=_.timelineTopics.getRelatedKey(F.key);if(Y){if(_.timelines.get(Y)?.timeTraveling){let X=AY(_,{key:Y,type:"timeline"},W,(O)=>{X(),OF(_,T,(M)=>{if(O==="redo"&&J)M.do(J);else if(O==="undo"&&$)M.undo($);return M})});return}}let Z=_.on.operationClose.subscribe(W,()=>{Z();let A=t_(_,T),X=J===null?-1:A.getUpdateNumber(J),O=X-A.cacheUpdateNumber;if(J&&O===1)OF(_,T,(M)=>(M.do(J),M));else _.logger.info("\u274C","mutable_atom",T.key,`could not be updated. Expected update number ${A.cacheUpdateNumber+1}, but got ${X}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(T,F){this.mutableState=T;let _=i(F);this.latestUpdateState=this.initializeState(T,_),this.observeCore(T,this.latestUpdateState,_),this.updateCore(T,this.latestUpdateState,_),_.trackers.set(T.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),_.trackers.delete(T.key)}}}var F_=(T,F)=>{if(F.family){let W=i(T),$={key:`${F.family.key}:JSON`,type:"selector_family"},Y=$0(W,$),Z=JSON.parse(F.family.subKey);return M0(T,Y,Z)}return{type:"selector",key:`${F.key}:JSON`}};var YY=(T)=>{let _={type:"atom",key:`*${T.key}`};if(T.family)_.family={key:`*${T.family.key}`,subKey:T.family.subKey};return _};function r6(T){return typeof T==="object"&&T!==null&&"do"in T&&"undo"in T&&"subscribe"in T}function l_(T,F,_){let W=_.valueMap.get(F.key),J=T.valueMap.get(F.key);if(W!==J)return J;if(W===void 0)return F.default();_.logger.info("\uD83D\uDCC3","atom",F.key,"copying");let $=F.toJson(W),Y=F.fromJson($);return T.valueMap.set(F.key,Y),new R4(F,_),Y}function g0(T,F,_,W){let J=T.valueMap.get(F);if(J instanceof o_)J.use(_);if(_ instanceof Promise){let $=new o_(_);return T.valueMap.set(F,$),$.then((Y)=>{g0(T,F,Y,W),W.next({newValue:Y,oldValue:$})}).catch((Y)=>{T.logger.error("\uD83D\uDCA5","state",F,"rejected:",Y)}),$}return T.valueMap.set(F,_),_}var u6=(T,F)=>{let _=F.valueMap.get(T.key);if(T.type==="mutable_atom"&&U0(F)){let{parent:W}=F;_=l_(F,T,W)}return _},t6=(T,F)=>{let _=F.valueMap.get(T);if(_ instanceof o_){let W=_,J=F.selectors.get(T)??F.readonlySelectors.get(T);if(J)W.use(J.get());return}if(F.operation.open)F.operation.prev.set(T,_);F.valueMap.delete(T),F.logger.info("\uD83D\uDDD1","state",T,"evicted")};var s6=(T,F)=>{return i(T).atomsThatAreDefault.has(F)},GY=(T,F)=>{let _=i(T);_.atomsThatAreDefault=new Set(_.atomsThatAreDefault).add(F)},a6=(T,F)=>{let _=i(T);_.atomsThatAreDefault=new Set(i(T).atomsThatAreDefault),_.atomsThatAreDefault.delete(F)};function w4(T,F,_){T.logger.info("\uD83D\uDD28","atom",F.key,`creating in store "${T.config.name}"`);let W=i(T),J=W.atoms.get(F.key);if(J&&J.type==="atom")return T.logger.error("\u274C","atom",F.key,"Tried to create atom, but it already exists in the store."),c_(J);let $=new ZT,Y={...F,type:"atom",install:(X)=>{return X.logger.info("\uD83D\uDEE0\uFE0F","atom",F.key,`installing in store "${X.config.name}"`),w4(X,F,_)},subject:$};if(_)Y.family=_;let Z=F.default;if(F.default instanceof Function)Z=F.default();W.atoms.set(Y.key,Y),GY(T,F.key),g0(W,F.key,Z,$);let A=c_(Y);if(F.effects){let X=0,O=[];for(let M of F.effects){let E=M({setSelf:(K)=>{OF(T,A,K)},onSet:(K)=>n_(T,A,`effect[${X}]`,K)});if(E)O.push(E);++X}Y.cleanup=()=>{for(let M of O)M()}}return A}class __ extends Set{mode="record";subject=new ZT;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(T,F=0){super(T);if(T instanceof __)this.parent=T,this.cacheUpdateNumber=T.cacheUpdateNumber;if(F)this.cacheLimit=F,this.cache=new Array(F),this.subscribe("auto cache",(_)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=_})}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(T){let F=new __(T.members,T.cacheLimit);return F.cache=T.cache,F.cacheIdx=T.cacheIdx,F.cacheUpdateNumber=T.cacheUpdateNumber,F}add(T){let F=super.add(T);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${nT(T)}`);return F}clear(){let T=this.mode==="record"?[...this]:null;if(super.clear(),T)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(T)}`)}delete(T){let F=super.delete(T);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${nT(T)}`);return F}parent=null;child=null;transactionUpdates=null;transaction(T){this.mode="transaction",this.transactionUpdates=[],this.child=new __(this);let F=this.child._subscribe("transaction",(_)=>{this.transactionUpdates?.push(_)});try{if(T(this.child)){for(let W of this.transactionUpdates)this.doStep(W);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(_){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",_),_}finally{F(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(T,F){return this.subject.subscribe(T,F)}subscribe(T,F){return this.subject.subscribe(T,(_)=>{F(`${this.cacheUpdateNumber}=${_}`)})}emit(T){this.subject.next(T)}doStep(T){let F=T.indexOf(":"),_=T.substring(0,F),W=T.substring(F+1);switch(_){case"add":this.add(JSON.parse(W));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(W));break;case"tx":for(let J of W.split(";"))this.doStep(J)}}getUpdateNumber(T){let F=T.indexOf("=");return Number(T.substring(0,F))}do(T){let F=T.indexOf("="),_=Number(T.substring(0,F)),W=_-this.cacheUpdateNumber;if(W>0){if(W===1){this.mode="playback";let $=T.substring(F+1);return this.doStep($),this.mode="record",this.cacheUpdateNumber=_,null}return this.cacheUpdateNumber+1}if(Math.abs(W)<this.cacheLimit){let $=this.cacheIdx+W;if(this.cache[$]===T)return null;this.mode="playback";let Z=!1;while(!Z){this.cacheIdx%=this.cacheLimit;let X=this.cache[this.cacheIdx];if(this.cacheIdx--,!X)return"OUT_OF_RANGE";this.undo(X),Z=this.cacheIdx===$-1}let A=T.substring(F+1);return this.doStep(A),this.mode="record",this.cacheUpdateNumber=_,null}return"OUT_OF_RANGE"}undoStep(T){let F=T.indexOf(":"),_=T.substring(0,F),W=T.substring(F+1);switch(_){case"add":this.delete(JSON.parse(W));break;case"del":this.add(JSON.parse(W));break;case"clear":{let J=JSON.parse(W);for(let $ of J)this.add($);break}case"tx":{let J=W.split(";");for(let $=J.length-1;$>=0;$--)this.undoStep(J[$])}}}undo(T){let F=T.indexOf("=");if(Number(T.substring(0,F))===this.cacheUpdateNumber){this.mode="playback";let W=T.substring(F+1);return this.undoStep(W),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}function ZY(T){return T.startsWith("\uD83D\uDD0D ")}class _1{supported;constructor(T){this.supported=T}refine(T){for(let[F,_]of Object.entries(this.supported))try{if(_(T)===!0&&_!==Boolean)return{type:F,data:T}}catch(W){try{if(T instanceof _)return{type:F,data:T}}catch(J){}}return null}}var b3=new _1({number:(T)=>typeof T==="number",string:(T)=>typeof T==="string",boolean:(T)=>typeof T==="boolean",null:(T)=>T===null});function h3(T){if(!T)return!1;return Object.getPrototypeOf(T)===Object.prototype}var p3=new _1({object:h3,array:(T)=>Array.isArray(T)}),g3=new _1({...b3.supported,...p3.supported}),HY=(T)=>{if(T===void 0)return"undefined";let F=g3.refine(T);if(F)return F.type;return Object.getPrototypeOf(T).constructor.name};class W1{listeners;globalListeners;handleEvent(T,...F){for(let W of this.globalListeners)W(T,...F);let _=this.listeners.get(T);if(_)for(let W of _)W(...F)}id="no_id_retrieved";emit;constructor(T){this.emit=T,this.listeners=new Map,this.globalListeners=new Set}on(T,F){let _=this.listeners.get(T);if(_)_.add(F);else this.listeners.set(T,new Set([F]));return this}onAny(T){return this.globalListeners.add(T),this}off(T,F){let _=this.listeners.get(T);if(_)if(F)_.delete(F);else this.listeners.delete(T);return this}offAny(T){return this.globalListeners.delete(T),this}}class OY extends W1{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(T){super((...F)=>{return this.out.next(F),this});this.id=T,this.in=new ZT,this.out=new ZT,this.in.subscribe("socket",(F)=>{this.handleEvent(...F)})}dispose(){for(let T of this.disposalFunctions)T()}}class K4 extends W1{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...T){this.process.stderr.write(nT(T.map((F)=>F instanceof __?`{ ${F.toJSON().members.join(" | ")} }`:F))+"\x03")}logger={info:(...T)=>{this.log("i",...T)},warn:(...T)=>{this.log("w",...T)},error:(...T)=>{this.log("e",...T)}};constructor(){super((T,...F)=>{let _=JSON.stringify([T,...F]);return this.process.stdout.write(_+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(T)=>{let F=T.toString();this.unprocessedEvents.push(...F.split("\x03"));let _=this.unprocessedEvents.shift();this.incompleteData+=_??"";try{let W=u_(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",W),this.handleEvent(...W);while(this.unprocessedEvents.length>0){let J=this.unprocessedEvents.shift();if(J){if(this.unprocessedEvents.length===0)this.incompleteData=J;let $=u_(J);this.handleEvent(...$)}}this.incompleteData=""}catch(W){if(W instanceof Error)this.logger.error("\u2757",W.message,W.cause,W.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(T)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${T}`)}),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",(T)=>{this.logger.info("\uD83D\uDC64","user",T,"joined");let F=new OY(`user:${T}`);this.relays.set(T,F),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let _ of this.relayServices){let W=_(F);if(W)F.disposalFunctions.push(W)}this.on(`user:${T}`,(..._)=>{F.in.next(_)}),F.out.subscribe("socket",(_)=>{this.emit(..._)})}),this.on("user-leaves",(T)=>{let F=this.relays.get(T);if(this.off(`relay:${T}`),F)F.dispose(),this.relays.delete(T)}),process.stdout.write("ALIVE")}relay(T){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(T)}}var{file:oA,serve:_O}=globalThis.Bun;import{readFileSync as QY}from"fs";import{createServer as c3}from"http";import{createServer as d3}from"https";import{resolve as D4}from"path";function UY(T,F){if(T instanceof Promise)throw new Error(F)}function m3(T,F){let _={},W=[];for(let J in T){let $=T[J]["~standard"].validate(F[J]);if(UY($,`Validation must be synchronous, but ${J} returned a Promise.`),$.issues){W.push(...$.issues.map((Y)=>({...Y,path:[J,...Y.path??[]]})));continue}_[J]=$.value}if(W.length)return{issues:W};return{value:_}}function V4(T){let F=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[y,h]of Object.entries(F))if(h==="")delete F[y]}if(!!T.skipValidation)return F;let J=typeof T.client==="object"?T.client:{},$=typeof T.server==="object"?T.server:{},Y=typeof T.shared==="object"?T.shared:{},Z=T.isServer??(typeof window==="undefined"||("Deno"in window)),A=Z?{...$,...Y,...J}:{...J,...Y},X=T.createFinalSchema?.(A,Z)["~standard"].validate(F)??m3(A,F);UY(X,"Validation must be synchronous");let O=T.onValidationError??((y)=>{throw console.error("\u274C Invalid environment variables:",y),new Error("Invalid environment variables")}),M=T.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(X.issues)return O(X.issues);let E=(y)=>{if(!T.clientPrefix)return!0;return!y.startsWith(T.clientPrefix)&&!(y in Y)},K=(y)=>{return Z||!E(y)},j=(y)=>{return y==="__esModule"||y==="$$typeof"},S=(T.extends??[]).reduce((y,h)=>{return Object.assign(y,h)},{}),P=Object.assign(S,X.value);return new Proxy(P,{get(y,h){if(typeof h!=="string")return;if(j(h))return;if(!K(h))return M(h);return Reflect.get(y,h)}})}var o3="__vite_start_time"in globalThis,u3=typeof window!=="undefined",YN="vitest"in globalThis,s0=J0("string"),MY=J0('"true" | "false" | undefined'),q0=V4({isServer:!o3&&!u3,server:{CI:J0("string | undefined").pipe(Boolean),POSTGRES_USER:s0,POSTGRES_PASSWORD:s0,POSTGRES_DATABASE:s0,POSTGRES_HOST:s0,POSTGRES_PORT:s0.pipe((T)=>Number.parseInt(T,10)),BACKEND_PORT:s0.pipe((T)=>Number.parseInt(T,10)),RUN_WORKERS_FROM_SOURCE:MY.pipe((T)=>T==="true"),FRONTEND_PORT:s0.pipe((T)=>Number.parseInt(T,10)),FRONTEND_ORIGINS:s0.pipe.try((T)=>JSON.parse(T),J0("string[]")),API_KEY_OPENAI:J0("string | undefined"),API_KEY_RESEND:J0("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:s0,VITE_DEV_FRONTEND_HOST:J0("string | undefined"),VITE_DEV_HTTPS:MY.pipe((T)=>T==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var zY=D4(import.meta.dirname,"../dev"),J1=q0.VITE_DEV_HTTPS?{cert:QY(D4(zY,"./cert.pem"),"utf-8"),key:QY(D4(zY,"./key.pem"),"utf-8")}:void 0;function UN(T){if(J1)return d3(J1,T);return c3({},T)}import nH from"path";var H=Symbol.for("drizzle:entityKind"),QN=Symbol.for("drizzle:hasOwnEntityKind");function R(T,F){if(!T||typeof T!=="object")return!1;if(T instanceof F)return!0;if(!Object.prototype.hasOwnProperty.call(F,H))throw new Error(`Class "${F.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 _=Object.getPrototypeOf(T).constructor;if(_)while(_){if(H in _&&_[H]===F[H])return!0;_=Object.getPrototypeOf(_)}return!1}class XT{constructor(T,F){this.table=T,this.config=F,this.name=F.name,this.keyAsName=F.keyAsName,this.notNull=F.notNull,this.default=F.default,this.defaultFn=F.defaultFn,this.onUpdateFn=F.onUpdateFn,this.hasDefault=F.hasDefault,this.primary=F.primaryKey,this.isUnique=F.isUnique,this.uniqueName=F.uniqueName,this.uniqueType=F.uniqueType,this.dataType=F.dataType,this.columnType=F.columnType,this.generated=F.generated,this.generatedIdentity=F.generatedIdentity}static[H]="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(T){return T}mapToDriverValue(T){return T}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class L4{static[H]="ColumnBuilder";config;constructor(T,F,_){this.config={name:T,keyAsName:T==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:F,columnType:_,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(T){return this.config.default=T,this.config.hasDefault=!0,this}$defaultFn(T){return this.config.defaultFn=T,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(T){return this.config.onUpdateFn=T,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(T){if(this.config.name!=="")return;this.config.name=T}}var j0=Symbol.for("drizzle:Name");class S4{static[H]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(T,F){if(this.reference=()=>{let{name:_,columns:W,foreignColumns:J}=T();return{name:_,columns:W,foreignTable:J[0].table,foreignColumns:J}},F)this._onUpdate=F.onUpdate,this._onDelete=F.onDelete}onUpdate(T){return this._onUpdate=T===void 0?"no action":T,this}onDelete(T){return this._onDelete=T===void 0?"no action":T,this}build(T){return new EY(T,this)}}class EY{constructor(T,F){this.table=T,this.reference=F.reference,this.onUpdate=F._onUpdate,this.onDelete=F._onDelete}static[H]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:T,columns:F,foreignColumns:_}=this.reference(),W=F.map((Y)=>Y.name),J=_.map((Y)=>Y.name),$=[this.table[j0],...W,_[0].table[j0],...J];return T??`${$.join("_")}_fk`}}function $1(T,...F){return T(...F)}function RY(T,F){return`${T[j0]}_${F.join("_")}_unique`}function wY(T,F,_){for(let W=F;W<T.length;W++){let J=T[W];if(J==="\\"){W++;continue}if(J==='"')return[T.slice(F,W).replace(/\\/g,""),W+1];if(_)continue;if(J===","||J==="}")return[T.slice(F,W).replace(/\\/g,""),W]}return[T.slice(F).replace(/\\/g,""),T.length]}function KY(T,F=0){let _=[],W=F,J=!1;while(W<T.length){let $=T[W];if($===","){if(J||W===F)_.push("");J=!0,W++;continue}if(J=!1,$==="\\"){W+=2;continue}if($==='"'){let[A,X]=wY(T,W+1,!0);_.push(A),W=X;continue}if($==="}")return[_,W+1];if($==="{"){let[A,X]=KY(T,W+1);_.push(A),W=X;continue}let[Y,Z]=wY(T,W,!1);_.push(Y),W=Z}return[_,W]}function VY(T){let[F]=KY(T,1);return F}function I4(T){return`{${T.map((F)=>{if(Array.isArray(F))return I4(F);if(typeof F==="string")return`"${F.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${F}`}).join(",")}}`}class B extends L4{foreignKeyConfigs=[];static[H]="PgColumnBuilder";array(T){return new LY(this.config.name,this,T)}references(T,F={}){return this.foreignKeyConfigs.push({ref:T,actions:F}),this}unique(T,F){return this.config.isUnique=!0,this.config.uniqueName=T,this.config.uniqueType=F?.nulls,this}generatedAlwaysAs(T){return this.config.generated={as:T,type:"always",mode:"stored"},this}buildForeignKeys(T,F){return this.foreignKeyConfigs.map(({ref:_,actions:W})=>{return $1((J,$)=>{let Y=new S4(()=>{let Z=J();return{columns:[T],foreignColumns:[Z]}});if($.onUpdate)Y.onUpdate($.onUpdate);if($.onDelete)Y.onDelete($.onDelete);return Y.build(F)},_,W)})}buildExtraConfigColumn(T){return new DY(T,this.config)}}class L extends XT{constructor(T,F){if(!F.uniqueName)F.uniqueName=RY(T,[F.name]);super(T,F);this.table=T}static[H]="PgColumn"}class DY extends L{static[H]="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(T){return this.indexConfig.opClass=T,this}}class r_{static[H]="IndexedColumn";constructor(T,F,_,W){this.name=T,this.keyAsName=F,this.type=_,this.indexConfig=W}name;keyAsName;type;indexConfig}class LY extends B{static[H]="PgArrayBuilder";constructor(T,F,_){super(T,"array","PgArray");this.config.baseBuilder=F,this.config.size=_}build(T){let F=this.config.baseBuilder.build(T);return new N4(T,this.config,F)}}class N4 extends L{constructor(T,F,_,W){super(T,F);this.baseColumn=_,this.range=W,this.size=F.size}size;static[H]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(T){if(typeof T==="string")T=VY(T);return T.map((F)=>this.baseColumn.mapFromDriverValue(F))}mapToDriverValue(T,F=!1){let _=T.map((W)=>W===null?null:R(this.baseColumn,N4)?this.baseColumn.mapToDriverValue(W,!0):this.baseColumn.mapToDriverValue(W));if(F)return _;return I4(_)}}class SY extends B{static[H]="PgEnumObjectColumnBuilder";constructor(T,F){super(T,"string","PgEnumObjectColumn");this.config.enum=F}build(T){return new IY(T,this.config)}}class IY extends L{static[H]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(T,F){super(T,F);this.enum=F.enum}getSQLType(){return this.enum.enumName}}var Y1=Symbol.for("drizzle:isPgEnum");function NY(T){return!!T&&typeof T==="function"&&Y1 in T&&T[Y1]===!0}class CY extends B{static[H]="PgEnumColumnBuilder";constructor(T,F){super(T,"string","PgEnumColumn");this.config.enum=F}build(T){return new kY(T,this.config)}}class kY extends L{static[H]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(T,F){super(T,F);this.enum=F.enum}getSQLType(){return this.enum.enumName}}function s_(T,F){return Array.isArray(F)?l3(T,[...F],void 0):i3(T,F,void 0)}function l3(T,F,_){let W=Object.assign((J)=>new CY(J??"",W),{enumName:T,enumValues:F,schema:_,[Y1]:!0});return W}function i3(T,F,_){let W=Object.assign((J)=>new SY(J??"",W),{enumName:T,enumValues:Object.values(F),schema:_,[Y1]:!0});return W}class yT{static[H]="Subquery";constructor(T,F,_,W=!1){this._={brand:"Subquery",sql:T,selectedFields:F,alias:_,isWith:W}}}class a_ extends yT{static[H]="WithSubquery"}var BY="0.43.1";var C4,k4,AT={startActiveSpan(T,F){if(!C4)return F();if(!k4)k4=C4.trace.getTracer("drizzle-orm",BY);return $1((_,W)=>W.startActiveSpan(T,(J)=>{try{return F(J)}catch($){throw J.setStatus({code:_.SpanStatusCode.ERROR,message:$ instanceof Error?$.message:"Unknown error"}),$}finally{J.end()}}),C4,k4)}};var MT=Symbol.for("drizzle:ViewBaseConfig");var Z1=Symbol.for("drizzle:Schema"),X1=Symbol.for("drizzle:Columns"),fY=Symbol.for("drizzle:ExtraConfigColumns"),B4=Symbol.for("drizzle:OriginalName"),f4=Symbol.for("drizzle:BaseName"),e_=Symbol.for("drizzle:IsAlias"),qY=Symbol.for("drizzle:ExtraConfigBuilder"),t3=Symbol.for("drizzle:IsDrizzleTable");class C{static[H]="Table";static Symbol={Name:j0,Schema:Z1,OriginalName:B4,Columns:X1,ExtraConfigColumns:fY,BaseName:f4,IsAlias:e_,ExtraConfigBuilder:qY};[j0];[B4];[Z1];[X1];[fY];[f4];[e_]=!1;[t3]=!0;[qY]=void 0;constructor(T,F,_){this[j0]=this[B4]=T,this[Z1]=F,this[f4]=_}}function vT(T){return T[j0]}function SF(T){return`${T[Z1]??"public"}.${T[j0]}`}function q4(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function n3(T){let F={sql:"",params:[]};for(let _ of T)if(F.sql+=_.sql,F.params.push(..._.params),_.typings?.length){if(!F.typings)F.typings=[];F.typings.push(..._.typings)}return F}class PT{static[H]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new k([this])}}class k{constructor(T){this.queryChunks=T}static[H]="SQL";decoder=yY;shouldInlineParams=!1;append(T){return this.queryChunks.push(...T.queryChunks),this}toQuery(T){return AT.startActiveSpan("drizzle.buildSQL",(F)=>{let _=this.buildQueryFromSourceParams(this.queryChunks,T);return F?.setAttributes({"drizzle.query.text":_.sql,"drizzle.query.params":JSON.stringify(_.params)}),_})}buildQueryFromSourceParams(T,F){let _=Object.assign({},F,{inlineParams:F.inlineParams||this.shouldInlineParams,paramStartIndex:F.paramStartIndex||{value:0}}),{casing:W,escapeName:J,escapeParam:$,prepareTyping:Y,inlineParams:Z,paramStartIndex:A}=_;return n3(T.map((X)=>{if(R(X,PT))return{sql:X.value.join(""),params:[]};if(R(X,A1))return{sql:J(X.value),params:[]};if(X===void 0)return{sql:"",params:[]};if(Array.isArray(X)){let O=[new PT("(")];for(let[M,E]of X.entries())if(O.push(E),M<X.length-1)O.push(new PT(", "));return O.push(new PT(")")),this.buildQueryFromSourceParams(O,_)}if(R(X,k))return this.buildQueryFromSourceParams(X.queryChunks,{..._,inlineParams:Z||X.shouldInlineParams});if(R(X,C)){let O=X[C.Symbol.Schema],M=X[C.Symbol.Name];return{sql:O===void 0||X[e_]?J(M):J(O)+"."+J(M),params:[]}}if(R(X,XT)){let O=W.getColumnCasing(X);if(F.invokeSource==="indexes")return{sql:J(O),params:[]};let M=X.table[C.Symbol.Schema];return{sql:X.table[e_]||M===void 0?J(X.table[C.Symbol.Name])+"."+J(O):J(M)+"."+J(X.table[C.Symbol.Name])+"."+J(O),params:[]}}if(R(X,Y0)){let O=X[MT].schema,M=X[MT].name;return{sql:O===void 0||X[MT].isAlias?J(M):J(O)+"."+J(M),params:[]}}if(R(X,Q0)){if(R(X.value,UF))return{sql:$(A.value++,X),params:[X],typings:["none"]};let O=X.value===null?null:X.encoder.mapToDriverValue(X.value);if(R(O,k))return this.buildQueryFromSourceParams([O],_);if(Z)return{sql:this.mapInlineParam(O,_),params:[]};let M=["none"];if(Y)M=[Y(X.encoder)];return{sql:$(A.value++,O),params:[O],typings:M}}if(R(X,UF))return{sql:$(A.value++,X),params:[X],typings:["none"]};if(R(X,k.Aliased)&&X.fieldAlias!==void 0)return{sql:J(X.fieldAlias),params:[]};if(R(X,yT)){if(X._.isWith)return{sql:J(X._.alias),params:[]};return this.buildQueryFromSourceParams([new PT("("),X._.sql,new PT(") "),new A1(X._.alias)],_)}if(NY(X)){if(X.schema)return{sql:J(X.schema)+"."+J(X.enumName),params:[]};return{sql:J(X.enumName),params:[]}}if(q4(X)){if(X.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([X.getSQL()],_);return this.buildQueryFromSourceParams([new PT("("),X.getSQL(),new PT(")")],_)}if(Z)return{sql:this.mapInlineParam(X,_),params:[]};return{sql:$(A.value++,X),params:[X],typings:["none"]}}))}mapInlineParam(T,{escapeString:F}){if(T===null)return"null";if(typeof T==="number"||typeof T==="boolean")return T.toString();if(typeof T==="string")return F(T);if(typeof T==="object"){let _=T.toString();if(_==="[object Object]")return F(JSON.stringify(T));return F(_)}throw new Error("Unexpected param value: "+T)}getSQL(){return this}as(T){if(T===void 0)return this;return new k.Aliased(this,T)}mapWith(T){return this.decoder=typeof T==="function"?{mapFromDriverValue:T}:T,this}inlineParams(){return this.shouldInlineParams=!0,this}if(T){return T?this:void 0}}class A1{constructor(T){this.value=T}static[H]="Name";brand;getSQL(){return new k([this])}}function jY(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var yY={mapFromDriverValue:(T)=>T},PY={mapToDriverValue:(T)=>T},WC={...yY,...PY};class Q0{constructor(T,F=PY){this.value=T,this.encoder=F}static[H]="Param";brand;getSQL(){return new k([this])}}function U(T,...F){let _=[];if(F.length>0||T.length>0&&T[0]!=="")_.push(new PT(T[0]));for(let[W,J]of F.entries())_.push(J,new PT(T[W+1]));return new k(_)}((T)=>{function F(){return new k([])}T.empty=F;function _(A){return new k(A)}T.fromList=_;function W(A){return new k([new PT(A)])}T.raw=W;function J(A,X){let O=[];for(let[M,E]of A.entries()){if(M>0&&X!==void 0)O.push(X);O.push(E)}return new k(O)}T.join=J;function $(A){return new A1(A)}T.identifier=$;function Y(A){return new UF(A)}T.placeholder=Y;function Z(A,X){return new Q0(A,X)}T.param=Z})(U||(U={}));((T)=>{class F{constructor(_,W){this.sql=_,this.fieldAlias=W}static[H]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new F(this.sql,this.fieldAlias)}}T.Aliased=F})(k||(k={}));class UF{constructor(T){this.name=T}static[H]="Placeholder";getSQL(){return new k([this])}}function j4(T,F){return T.map((_)=>{if(R(_,UF)){if(!(_.name in F))throw new Error(`No value for placeholder "${_.name}" was provided`);return F[_.name]}if(R(_,Q0)&&R(_.value,UF)){if(!(_.value.name in F))throw new Error(`No value for placeholder "${_.value.name}" was provided`);return _.encoder.mapToDriverValue(F[_.value.name])}return _})}var r3=Symbol.for("drizzle:IsDrizzleView");class Y0{static[H]="View";[MT];[r3]=!0;constructor({name:T,schema:F,selectedFields:_,query:W}){this[MT]={name:T,originalName:T,schema:F,selectedFields:_,query:W,isExisting:!W,isAlias:!1}}getSQL(){return new k([this])}}XT.prototype.getSQL=function(){return new k([this])};C.prototype.getSQL=function(){return new k([this])};yT.prototype.getSQL=function(){return new k([this])};class W_{constructor(T){this.table=T}static[H]="ColumnAliasProxyHandler";get(T,F){if(F==="table")return this.table;return T[F]}}class TW{constructor(T,F){this.alias=T,this.replaceOriginalName=F}static[H]="TableAliasProxyHandler";get(T,F){if(F===C.Symbol.IsAlias)return!0;if(F===C.Symbol.Name)return this.alias;if(this.replaceOriginalName&&F===C.Symbol.OriginalName)return this.alias;if(F===MT)return{...T[MT],name:this.alias,isAlias:!0};if(F===C.Symbol.Columns){let W=T[C.Symbol.Columns];if(!W)return W;let J={};return Object.keys(W).map(($)=>{J[$]=new Proxy(W[$],new W_(new Proxy(T,this)))}),J}let _=T[F];if(R(_,XT))return new Proxy(_,new W_(new Proxy(T,this)));return _}}function G1(T,F){return new Proxy(T,new TW(F,!1))}function m0(T,F){return new Proxy(T,new W_(new Proxy(T.table,new TW(F,!1))))}function y4(T,F){return new k.Aliased(FW(T.sql,F),T.fieldAlias)}function FW(T,F){return U.join(T.queryChunks.map((_)=>{if(R(_,XT))return m0(_,F);if(R(_,k))return FW(_,F);if(R(_,k.Aliased))return y4(_,F);return _}))}class H1 extends Error{static[H]="DrizzleError";constructor({message:T,cause:F}){super(T);this.name="DrizzleError",this.cause=F}}class P4 extends H1{static[H]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class vY{static[H]="ConsoleLogWriter";write(T){console.log(T)}}class v4{static[H]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new vY}logQuery(T,F){let _=F.map((J)=>{try{return JSON.stringify(J)}catch{return String(J)}}),W=_.length?` -- params: [${_.join(", ")}]`:"";this.writer.write(`Query: ${T}${W}`)}}class x4{static[H]="NoopLogger";logQuery(){}}class rT{static[H]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(T){return this.then(void 0,T)}finally(T){return this.then((F)=>{return T?.(),F},(F)=>{throw T?.(),F})}then(T,F){return this.execute().then(T,F)}}function xY(T,F,_){let W={},J=T.reduce(($,{path:Y,field:Z},A)=>{let X;if(R(Z,XT))X=Z;else if(R(Z,k))X=Z.decoder;else X=Z.sql.decoder;let O=$;for(let[M,E]of Y.entries())if(M<Y.length-1){if(!(E in O))O[E]={};O=O[E]}else{let K=F[A],j=O[E]=K===null?null:X.mapFromDriverValue(K);if(_&&R(Z,XT)&&Y.length===2){let S=Y[0];if(!(S in W))W[S]=j===null?vT(Z.table):!1;else if(typeof W[S]==="string"&&W[S]!==vT(Z.table))W[S]=!1}}return $},{});if(_&&Object.keys(W).length>0){for(let[$,Y]of Object.entries(W))if(typeof Y==="string"&&!_[Y])J[$]=null}return J}function V0(T,F){return Object.entries(T).reduce((_,[W,J])=>{if(typeof W!=="string")return _;let $=F?[...F,W]:[W];if(R(J,XT)||R(J,k)||R(J,k.Aliased))_.push({path:$,field:J});else if(R(J,C))_.push(...V0(J[C.Symbol.Columns],$));else _.push(...V0(J,$));return _},[])}function _W(T,F){let _=Object.keys(T),W=Object.keys(F);if(_.length!==W.length)return!1;for(let[J,$]of _.entries())if($!==W[J])return!1;return!0}function O1(T,F){let _=Object.entries(F).filter(([,W])=>W!==void 0).map(([W,J])=>{if(R(J,k)||R(J,XT))return[W,J];else return[W,new Q0(J,T[C.Symbol.Columns][W])]});if(_.length===0)throw new Error("No values to set");return Object.fromEntries(_)}function bY(T,F){for(let _ of F)for(let W of Object.getOwnPropertyNames(_.prototype)){if(W==="constructor")continue;Object.defineProperty(T.prototype,W,Object.getOwnPropertyDescriptor(_.prototype,W)||Object.create(null))}}function hY(T){return T[C.Symbol.Columns]}function a0(T){return R(T,yT)?T._.alias:R(T,Y0)?T[MT].name:R(T,k)?void 0:T[C.Symbol.IsAlias]?T[C.Symbol.Name]:T[C.Symbol.BaseName]}function s(T,F){return{name:typeof T==="string"&&T.length>0?T:"",config:typeof T==="object"?T:F}}function pY(T){if(typeof T!=="object"||T===null)return!1;if(T.constructor.name!=="Object")return!1;if("logger"in T){let F=typeof T.logger;if(F!=="boolean"&&(F!=="object"||typeof T.logger.logQuery!=="function")&&F!=="undefined")return!1;return!0}if("schema"in T){let F=typeof T.schema;if(F!=="object"&&F!=="undefined")return!1;return!0}if("casing"in T){let F=typeof T.casing;if(F!=="string"&&F!=="undefined")return!1;return!0}if("mode"in T){if(T.mode!=="default"||T.mode!=="planetscale"||T.mode!==void 0)return!1;return!0}if("connection"in T){let F=typeof T.connection;if(F!=="string"&&F!=="object"&&F!=="undefined")return!1;return!0}if("client"in T){let F=typeof T.client;if(F!=="object"&&F!=="function"&&F!=="undefined")return!1;return!0}if(Object.keys(T).length===0)return!0;return!1}class MF extends B{static[H]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(T){if(T){let{name:F,..._}=T;this.config.generatedIdentity={type:"always",sequenceName:F,sequenceOptions:_}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(T){if(T){let{name:F,..._}=T;this.config.generatedIdentity={type:"byDefault",sequenceName:F,sequenceOptions:_}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class gY extends MF{static[H]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new mY(T,this.config)}}class mY extends L{static[H]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class oY extends MF{static[H]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new uY(T,this.config)}}class uY extends L{static[H]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function cY(T,F){let{name:_,config:W}=s(T,F);if(W.mode==="number")return new gY(_);return new oY(_)}class dY extends B{static[H]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new lY(T,this.config)}}class lY extends L{static[H]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class iY extends B{static[H]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new tY(T,this.config)}}class tY extends L{static[H]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function nY(T,F){let{name:_,config:W}=s(T,F);if(W.mode==="number")return new dY(_);return new iY(_)}class rY extends B{static[H]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new sY(T,this.config)}}class sY extends L{static[H]="PgBoolean";getSQLType(){return"boolean"}}function WW(T){return new rY(T??"")}class aY extends B{static[H]="PgCharBuilder";constructor(T,F){super(T,"string","PgChar");this.config.length=F.length,this.config.enumValues=F.enum}build(T){return new eY(T,this.config)}}class eY extends L{static[H]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function TZ(T,F={}){let{name:_,config:W}=s(T,F);return new aY(_,W)}class FZ extends B{static[H]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new _Z(T,this.config)}}class _Z extends L{static[H]="PgCidr";getSQLType(){return"cidr"}}function WZ(T){return new FZ(T??"")}class JZ extends B{static[H]="PgCustomColumnBuilder";constructor(T,F,_){super(T,"custom","PgCustomColumn");this.config.fieldConfig=F,this.config.customTypeParams=_}build(T){return new $Z(T,this.config)}}class $Z extends L{static[H]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(T,F){super(T,F);this.sqlName=F.customTypeParams.dataType(F.fieldConfig),this.mapTo=F.customTypeParams.toDriver,this.mapFrom=F.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(T){return typeof this.mapFrom==="function"?this.mapFrom(T):T}mapToDriverValue(T){return typeof this.mapTo==="function"?this.mapTo(T):T}}function YZ(T){return(F,_)=>{let{name:W,config:J}=s(F,_);return new JZ(W,J,T)}}class e0 extends B{static[H]="PgDateColumnBaseBuilder";defaultNow(){return this.default(U`now()`)}}class ZZ extends e0{static[H]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new U1(T,this.config)}}class U1 extends L{static[H]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class XZ extends e0{static[H]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new M1(T,this.config)}}class M1 extends L{static[H]="PgDateString";getSQLType(){return"date"}}function AZ(T,F){let{name:_,config:W}=s(T,F);if(W?.mode==="date")return new ZZ(_);return new XZ(_)}class GZ extends B{static[H]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new HZ(T,this.config)}}class HZ extends L{static[H]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function OZ(T){return new GZ(T??"")}class UZ extends B{static[H]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new MZ(T,this.config)}}class MZ extends L{static[H]="PgInet";getSQLType(){return"inet"}}function QZ(T){return new UZ(T??"")}class zZ extends MF{static[H]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new EZ(T,this.config)}}class EZ extends L{static[H]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function JW(T){return new zZ(T??"")}class RZ extends B{static[H]="PgIntervalBuilder";constructor(T,F){super(T,"string","PgInterval");this.config.intervalConfig=F}build(T){return new wZ(T,this.config)}}class wZ extends L{static[H]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let T=this.fields?` ${this.fields}`:"",F=this.precision?`(${this.precision})`:"";return`interval${T}${F}`}}function KZ(T,F={}){let{name:_,config:W}=s(T,F);return new RZ(_,W)}class VZ extends B{static[H]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new Q1(T,this.config)}}class Q1 extends L{static[H]="PgJson";constructor(T,F){super(T,F)}getSQLType(){return"json"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function DZ(T){return new VZ(T??"")}class LZ extends B{static[H]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new z1(T,this.config)}}class z1 extends L{static[H]="PgJsonb";constructor(T,F){super(T,F)}getSQLType(){return"jsonb"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function SZ(T){return new LZ(T??"")}class IZ extends B{static[H]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new NZ(T,this.config)}}class NZ extends L{static[H]="PgLine";getSQLType(){return"line"}mapFromDriverValue(T){let[F,_,W]=T.slice(1,-1).split(",");return[Number.parseFloat(F),Number.parseFloat(_),Number.parseFloat(W)]}mapToDriverValue(T){return`{${T[0]},${T[1]},${T[2]}}`}}class CZ extends B{static[H]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new kZ(T,this.config)}}class kZ extends L{static[H]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(T){let[F,_,W]=T.slice(1,-1).split(",");return{a:Number.parseFloat(F),b:Number.parseFloat(_),c:Number.parseFloat(W)}}mapToDriverValue(T){return`{${T.a},${T.b},${T.c}}`}}function BZ(T,F){let{name:_,config:W}=s(T,F);if(!W?.mode||W.mode==="tuple")return new IZ(_);return new CZ(_)}class fZ extends B{static[H]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new qZ(T,this.config)}}class qZ extends L{static[H]="PgMacaddr";getSQLType(){return"macaddr"}}function jZ(T){return new fZ(T??"")}class yZ extends B{static[H]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new PZ(T,this.config)}}class PZ extends L{static[H]="PgMacaddr8";getSQLType(){return"macaddr8"}}function vZ(T){return new yZ(T??"")}class xZ extends B{static[H]="PgNumericBuilder";constructor(T,F,_){super(T,"string","PgNumeric");this.config.precision=F,this.config.scale=_}build(T){return new E1(T,this.config)}}class E1 extends L{static[H]="PgNumeric";precision;scale;constructor(T,F){super(T,F);this.precision=F.precision,this.scale=F.scale}mapFromDriverValue(T){if(typeof T==="string")return T;return String(T)}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 bZ extends B{static[H]="PgNumericNumberBuilder";constructor(T,F,_){super(T,"number","PgNumericNumber");this.config.precision=F,this.config.scale=_}build(T){return new hZ(T,this.config)}}class hZ extends L{static[H]="PgNumericNumber";precision;scale;constructor(T,F){super(T,F);this.precision=F.precision,this.scale=F.scale}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}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 pZ extends B{static[H]="PgNumericBigIntBuilder";constructor(T,F,_){super(T,"bigint","PgNumericBigInt");this.config.precision=F,this.config.scale=_}build(T){return new gZ(T,this.config)}}class gZ extends L{static[H]="PgNumericBigInt";precision;scale;constructor(T,F){super(T,F);this.precision=F.precision,this.scale=F.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 mZ(T,F){let{name:_,config:W}=s(T,F),J=W?.mode;return J==="number"?new bZ(_,W?.precision,W?.scale):J==="bigint"?new pZ(_,W?.precision,W?.scale):new xZ(_,W?.precision,W?.scale)}class oZ extends B{static[H]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new uZ(T,this.config)}}class uZ extends L{static[H]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[F,_]=T.slice(1,-1).split(",");return[Number.parseFloat(F),Number.parseFloat(_)]}return[T.x,T.y]}mapToDriverValue(T){return`(${T[0]},${T[1]})`}}class cZ extends B{static[H]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new dZ(T,this.config)}}class dZ extends L{static[H]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[F,_]=T.slice(1,-1).split(",");return{x:Number.parseFloat(F),y:Number.parseFloat(_)}}return T}mapToDriverValue(T){return`(${T.x},${T.y})`}}function lZ(T,F){let{name:_,config:W}=s(T,F);if(!W?.mode||W.mode==="tuple")return new oZ(_);return new cZ(_)}function s3(T){let F=[];for(let _=0;_<T.length;_+=2)F.push(Number.parseInt(T.slice(_,_+2),16));return new Uint8Array(F)}function iZ(T,F){let _=new ArrayBuffer(8),W=new DataView(_);for(let J=0;J<8;J++)W.setUint8(J,T[F+J]);return W.getFloat64(0,!0)}function b4(T){let F=s3(T),_=0,W=F[_];_+=1;let J=new DataView(F.buffer),$=J.getUint32(_,W===1);_+=4;let Y;if($&536870912)Y=J.getUint32(_,W===1),_+=4;if(($&65535)===1){let Z=iZ(F,_);_+=8;let A=iZ(F,_);return _+=8,[Z,A]}throw new Error("Unsupported geometry type")}class tZ extends B{static[H]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new nZ(T,this.config)}}class nZ extends L{static[H]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return b4(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class rZ extends B{static[H]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new sZ(T,this.config)}}class sZ extends L{static[H]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let F=b4(T);return{x:F[0],y:F[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function aZ(T,F){let{name:_,config:W}=s(T,F);if(!W?.mode||W.mode==="tuple")return new tZ(_);return new rZ(_)}class eZ extends B{static[H]="PgRealBuilder";constructor(T,F){super(T,"number","PgReal");this.config.length=F}build(T){return new TX(T,this.config)}}class TX extends L{static[H]="PgReal";constructor(T,F){super(T,F)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function FX(T){return new eZ(T??"")}class _X extends B{static[H]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new WX(T,this.config)}}class WX extends L{static[H]="PgSerial";getSQLType(){return"serial"}}function JX(T){return new _X(T??"")}class $X extends MF{static[H]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new YX(T,this.config)}}class YX extends L{static[H]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function ZX(T){return new $X(T??"")}class XX extends B{static[H]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new AX(T,this.config)}}class AX extends L{static[H]="PgSmallSerial";getSQLType(){return"smallserial"}}function GX(T){return new XX(T??"")}class HX extends B{static[H]="PgTextBuilder";constructor(T,F){super(T,"string","PgText");this.config.enumValues=F.enum}build(T){return new OX(T,this.config)}}class OX extends L{static[H]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function UX(T,F={}){let{name:_,config:W}=s(T,F);return new HX(_,W)}class MX extends e0{constructor(T,F,_){super(T,"string","PgTime");this.withTimezone=F,this.precision=_,this.config.withTimezone=F,this.config.precision=_}static[H]="PgTimeBuilder";build(T){return new R1(T,this.config)}}class R1 extends L{static[H]="PgTime";withTimezone;precision;constructor(T,F){super(T,F);this.withTimezone=F.withTimezone,this.precision=F.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function QX(T,F={}){let{name:_,config:W}=s(T,F);return new MX(_,W.withTimezone??!1,W.precision)}class zX extends e0{static[H]="PgTimestampBuilder";constructor(T,F,_){super(T,"date","PgTimestamp");this.config.withTimezone=F,this.config.precision=_}build(T){return new w1(T,this.config)}}class w1 extends L{static[H]="PgTimestamp";withTimezone;precision;constructor(T,F){super(T,F);this.withTimezone=F.withTimezone,this.precision=F.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(T)=>{return new Date(this.withTimezone?T:T+"+0000")};mapToDriverValue=(T)=>{return T.toISOString()}}class EX extends e0{static[H]="PgTimestampStringBuilder";constructor(T,F,_){super(T,"string","PgTimestampString");this.config.withTimezone=F,this.config.precision=_}build(T){return new K1(T,this.config)}}class K1 extends L{static[H]="PgTimestampString";withTimezone;precision;constructor(T,F){super(T,F);this.withTimezone=F.withTimezone,this.precision=F.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function y0(T,F={}){let{name:_,config:W}=s(T,F);if(W?.mode==="string")return new EX(_,W.withTimezone??!1,W.precision);return new zX(_,W?.withTimezone??!1,W?.precision)}class RX extends B{static[H]="PgUUIDBuilder";constructor(T){super(T,"string","PgUUID")}defaultRandom(){return this.default(U`gen_random_uuid()`)}build(T){return new V1(T,this.config)}}class V1 extends L{static[H]="PgUUID";getSQLType(){return"uuid"}}function D0(T){return new RX(T??"")}class wX extends B{static[H]="PgVarcharBuilder";constructor(T,F){super(T,"string","PgVarchar");this.config.length=F.length,this.config.enumValues=F.enum}build(T){return new KX(T,this.config)}}class KX extends L{static[H]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function sT(T,F={}){let{name:_,config:W}=s(T,F);return new wX(_,W)}class VX extends B{static[H]="PgBinaryVectorBuilder";constructor(T,F){super(T,"string","PgBinaryVector");this.config.dimensions=F.dimensions}build(T){return new DX(T,this.config)}}class DX extends L{static[H]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function LX(T,F){let{name:_,config:W}=s(T,F);return new VX(_,W)}class SX extends B{static[H]="PgHalfVectorBuilder";constructor(T,F){super(T,"array","PgHalfVector");this.config.dimensions=F.dimensions}build(T){return new IX(T,this.config)}}class IX extends L{static[H]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map((F)=>Number.parseFloat(F))}}function NX(T,F){let{name:_,config:W}=s(T,F);return new SX(_,W)}class CX extends B{static[H]="PgSparseVectorBuilder";constructor(T,F){super(T,"string","PgSparseVector");this.config.dimensions=F.dimensions}build(T){return new kX(T,this.config)}}class kX extends L{static[H]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function BX(T,F){let{name:_,config:W}=s(T,F);return new CX(_,W)}class fX extends B{static[H]="PgVectorBuilder";constructor(T,F){super(T,"array","PgVector");this.config.dimensions=F.dimensions}build(T){return new qX(T,this.config)}}class qX extends L{static[H]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map((F)=>Number.parseFloat(F))}}function jX(T,F){let{name:_,config:W}=s(T,F);return new fX(_,W)}function yX(){return{bigint:cY,bigserial:nY,boolean:WW,char:TZ,cidr:WZ,customType:YZ,date:AZ,doublePrecision:OZ,inet:QZ,integer:JW,interval:KZ,json:DZ,jsonb:SZ,line:BZ,macaddr:jZ,macaddr8:vZ,numeric:mZ,point:lZ,geometry:aZ,real:FX,serial:JX,smallint:ZX,smallserial:GX,text:UX,time:QX,timestamp:y0,uuid:D0,varchar:sT,bit:LX,halfvec:NX,sparsevec:BX,vector:jX}}var h4=Symbol.for("drizzle:PgInlineForeignKeys"),PX=Symbol.for("drizzle:EnableRLS");class hT extends C{static[H]="PgTable";static Symbol=Object.assign({},C.Symbol,{InlineForeignKeys:h4,EnableRLS:PX});[h4]=[];[PX]=!1;[C.Symbol.ExtraConfigBuilder]=void 0;[C.Symbol.ExtraConfigColumns]={}}function a3(T,F,_,W,J=T){let $=new hT(T,W,J),Y=typeof F==="function"?F(yX()):F,Z=Object.fromEntries(Object.entries(Y).map(([O,M])=>{let E=M;E.setName(O);let K=E.build($);return $[h4].push(...E.buildForeignKeys(K,$)),[O,K]})),A=Object.fromEntries(Object.entries(Y).map(([O,M])=>{let E=M;E.setName(O);let K=E.buildExtraConfigColumn($);return[O,K]})),X=Object.assign($,Z);if(X[C.Symbol.Columns]=Z,X[C.Symbol.ExtraConfigColumns]=A,_)X[hT.Symbol.ExtraConfigBuilder]=_;return Object.assign(X,{enableRLS:()=>{return X[hT.Symbol.EnableRLS]=!0,X}})}var QF=(T,F,_)=>{return a3(T,F,_,void 0)};function vX(...T){if(T[0].columns)return new $W(T[0].columns,T[0].name);return new $W(T)}class $W{static[H]="PgPrimaryKeyBuilder";columns;name;constructor(T,F){this.columns=T,this.name=F}build(T){return new xX(T,this.columns,this.name)}}class xX{constructor(T,F,_){this.table=T,this.columns=F,this.name=_}static[H]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[hT.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}function Z0(T,F){if(jY(F)&&!q4(T)&&!R(T,Q0)&&!R(T,UF)&&!R(T,XT)&&!R(T,C)&&!R(T,Y0))return new Q0(T,F);return T}var D1=(T,F)=>{return U`${T} = ${Z0(F,T)}`},bX=(T,F)=>{return U`${T} <> ${Z0(F,T)}`};function YW(...T){let F=T.filter((_)=>_!==void 0);if(F.length===0)return;if(F.length===1)return new k(F);return new k([new PT("("),U.join(F,new PT(" and ")),new PT(")")])}function hX(...T){let F=T.filter((_)=>_!==void 0);if(F.length===0)return;if(F.length===1)return new k(F);return new k([new PT("("),U.join(F,new PT(" or ")),new PT(")")])}function pX(T){return U`not ${T}`}var gX=(T,F)=>{return U`${T} > ${Z0(F,T)}`},mX=(T,F)=>{return U`${T} >= ${Z0(F,T)}`},oX=(T,F)=>{return U`${T} < ${Z0(F,T)}`},uX=(T,F)=>{return U`${T} <= ${Z0(F,T)}`};function cX(T,F){if(Array.isArray(F)){if(F.length===0)return U`false`;return U`${T} in ${F.map((_)=>Z0(_,T))}`}return U`${T} in ${Z0(F,T)}`}function dX(T,F){if(Array.isArray(F)){if(F.length===0)return U`true`;return U`${T} not in ${F.map((_)=>Z0(_,T))}`}return U`${T} not in ${Z0(F,T)}`}function lX(T){return U`${T} is null`}function iX(T){return U`${T} is not null`}function tX(T){return U`exists ${T}`}function nX(T){return U`not exists ${T}`}function rX(T,F,_){return U`${T} between ${Z0(F,T)} and ${Z0(_,T)}`}function sX(T,F,_){return U`${T} not between ${Z0(F,T)} and ${Z0(_,T)}`}function aX(T,F){return U`${T} like ${F}`}function eX(T,F){return U`${T} not like ${F}`}function TA(T,F){return U`${T} ilike ${F}`}function FA(T,F){return U`${T} not ilike ${F}`}function _A(T){return U`${T} asc`}function WA(T){return U`${T} desc`}class p4{constructor(T,F,_){this.sourceTable=T,this.referencedTable=F,this.relationName=_,this.referencedTableName=F[C.Symbol.Name]}static[H]="Relation";referencedTableName;fieldName}class JA{constructor(T,F){this.table=T,this.config=F}static[H]="Relations"}class zF extends p4{constructor(T,F,_,W){super(T,F,_?.relationName);this.config=_,this.isNullable=W}static[H]="One";withFieldName(T){let F=new zF(this.sourceTable,this.referencedTable,this.config,this.isNullable);return F.fieldName=T,F}}class ZW extends p4{constructor(T,F,_){super(T,F,_?.relationName);this.config=_}static[H]="Many";withFieldName(T){let F=new ZW(this.sourceTable,this.referencedTable,this.config);return F.fieldName=T,F}}function $A(){return{and:YW,between:rX,eq:D1,exists:tX,gt:gX,gte:mX,ilike:TA,inArray:cX,isNull:lX,isNotNull:iX,like:aX,lt:oX,lte:uX,ne:bX,not:pX,notBetween:sX,notExists:nX,notLike:eX,notIlike:FA,notInArray:dX,or:hX,sql:U}}function YA(){return{sql:U,asc:_A,desc:WA}}function ZA(T,F){if(Object.keys(T).length===1&&"default"in T&&!R(T.default,C))T=T.default;let _={},W={},J={};for(let[$,Y]of Object.entries(T))if(R(Y,C)){let Z=SF(Y),A=W[Z];_[Z]=$,J[$]={tsName:$,dbName:Y[C.Symbol.Name],schema:Y[C.Symbol.Schema],columns:Y[C.Symbol.Columns],relations:A?.relations??{},primaryKey:A?.primaryKey??[]};for(let O of Object.values(Y[C.Symbol.Columns]))if(O.primary)J[$].primaryKey.push(O);let X=Y[C.Symbol.ExtraConfigBuilder]?.(Y[C.Symbol.ExtraConfigColumns]);if(X){for(let O of Object.values(X))if(R(O,$W))J[$].primaryKey.push(...O.columns)}}else if(R(Y,JA)){let Z=SF(Y.table),A=_[Z],X=Y.config(F(Y.table)),O;for(let[M,E]of Object.entries(X))if(A){let K=J[A];if(K.relations[M]=E,O)K.primaryKey.push(...O)}else{if(!(Z in W))W[Z]={relations:{},primaryKey:O};W[Z].relations[M]=E}}return{tables:J,tableNamesMap:_}}function e3(T){return function F(_,W){return new zF(T,_,W,W?.fields.reduce((J,$)=>J&&$.notNull,!0)??!1)}}function TH(T){return function F(_,W){return new ZW(T,_,W)}}function XA(T,F,_){if(R(_,zF)&&_.config)return{fields:_.config.fields,references:_.config.references};let W=F[SF(_.referencedTable)];if(!W)throw new Error(`Table "${_.referencedTable[C.Symbol.Name]}" not found in schema`);let J=T[W];if(!J)throw new Error(`Table "${W}" not found in schema`);let $=_.sourceTable,Y=F[SF($)];if(!Y)throw new Error(`Table "${$[C.Symbol.Name]}" not found in schema`);let Z=[];for(let A of Object.values(J.relations))if(_.relationName&&_!==A&&A.relationName===_.relationName||!_.relationName&&A.referencedTable===_.sourceTable)Z.push(A);if(Z.length>1)throw _.relationName?new Error(`There are multiple relations with name "${_.relationName}" in table "${W}"`):new Error(`There are multiple relations between "${W}" and "${_.sourceTable[C.Symbol.Name]}". Please specify relation name`);if(Z[0]&&R(Z[0],zF)&&Z[0].config)return{fields:Z[0].config.references,references:Z[0].config.fields};throw new Error(`There is not enough information to infer relation "${Y}.${_.fieldName}"`)}function AA(T){return{one:e3(T),many:TH(T)}}function L1(T,F,_,W,J=($)=>$){let $={};for(let[Y,Z]of W.entries())if(Z.isJson){let A=F.relations[Z.tsKey],X=_[Y],O=typeof X==="string"?JSON.parse(X):X;$[Z.tsKey]=R(A,zF)?O&&L1(T,T[Z.relationTableTsKey],O,Z.selection,J):O.map((M)=>L1(T,T[Z.relationTableTsKey],M,Z.selection,J))}else{let A=J(_[Y]),X=Z.field,O;if(R(X,XT))O=X;else if(R(X,k))O=X.decoder;else O=X.sql.decoder;$[Z.tsKey]=A===null?null:O.mapFromDriverValue(A)}return $}import SH from"os";import IH from"fs";var S1=new Map,g4=new Map,m4=Symbol("OriginError"),J_={};class L0 extends Promise{constructor(T,F,_,W,J={}){let $,Y;super((Z,A)=>{$=Z,Y=A});this.tagged=Array.isArray(T.raw),this.strings=T,this.args=F,this.handler=_,this.canceller=W,this.options=J,this.state=null,this.statement=null,this.resolve=(Z)=>(this.active=!1,$(Z)),this.reject=(Z)=>(this.active=!1,Y(Z)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[m4]=this.handler.debug?new Error:this.tagged&&FH(this.strings)}get origin(){return(this.handler.debug?this[m4].stack:this.tagged&&g4.has(this.strings)?g4.get(this.strings):g4.set(this.strings,this[m4].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(T=1,F){if(this.options.simple=!1,typeof T==="function")F=T,T=1;if(this.cursorRows=T,typeof F==="function")return this.cursorFn=F,this;let _;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};_&&_();let W=new Promise((J,$)=>{this.cursorFn=(Y)=>{return J({value:Y,done:!1}),new Promise((Z)=>_=Z)},this.resolve=()=>(this.active=!1,J({done:!0})),this.reject=(Y)=>(this.active=!1,$(Y))});return this.execute(),W},return(){return _&&_(J_),{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(T){return this.forEachFn=T,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 FH(T){if(S1.has(T))return S1.get(T);let F=Error.stackTraceLimit;return Error.stackTraceLimit=4,S1.set(T,new Error),Error.stackTraceLimit=F,S1.get(T)}class $_ extends Error{constructor(T){super(T.message);this.name=this.constructor.name,Object.assign(this,T)}}var CT={connection:GA,postgres:HA,generic:OA,notSupported:UA};function GA(T,F,_){let{host:W,port:J}=_||F,$=Object.assign(new Error("write "+T+" "+(F.path||W+":"+J)),{code:T,errno:T,address:F.path||W},F.path?{}:{port:J});return Error.captureStackTrace($,GA),$}function HA(T){let F=new $_(T);return Error.captureStackTrace(F,HA),F}function OA(T,F){let _=Object.assign(new Error(T+": "+F),{code:T});return Error.captureStackTrace(_,OA),_}function UA(T){let F=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace(F,UA),F}var _H={string:{to:25,from:null,serialize:(T)=>""+T},number:{to:0,from:[21,23,26,700,701],serialize:(T)=>""+T,parse:(T)=>+T},json:{to:114,from:[114,3802],serialize:(T)=>JSON.stringify(T),parse:(T)=>JSON.parse(T)},boolean:{to:16,from:16,serialize:(T)=>T===!0?"t":"f",parse:(T)=>T==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(T)=>(T instanceof Date?T:new Date(T)).toISOString(),parse:(T)=>new Date(T)},bytea:{to:17,from:17,serialize:(T)=>"\\x"+Buffer.from(T).toString("hex"),parse:(T)=>Buffer.from(T.slice(2),"hex")}};class C1{then(){o4()}catch(){o4()}finally(){o4()}}class HW extends C1{constructor(T){super();this.value=f1(T)}}class o0 extends C1{constructor(T,F,_){super();this.value=T,this.type=F,this.array=_}}class k1 extends C1{constructor(T,F){super();this.first=T,this.rest=F}build(T,F,_,W){let J=WH.map(([$,Y])=>({fn:Y,i:T.search($)})).sort(($,Y)=>$.i-Y.i).pop();return J.i===-1?i4(this.first,W):J.fn(this.first,this.rest,F,_,W)}}function B1(T,F,_,W){let J=T instanceof o0?T.value:T;if(J===void 0){if(T instanceof o0?T.value=W.transform.undefined:J=T=W.transform.undefined,J===void 0)throw CT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+_.push(T instanceof o0?(F.push(T.value),T.array?T.array[T.type||N1(T.value)]||T.type||EA(T.value):T.type):(F.push(T),N1(T)))}var QA=wA(_H);function d4(T,F,_,W,J,$){for(let Y=1;Y<T.strings.length;Y++)F+=l4(F,_,W,J,$)+T.strings[Y],_=T.args[Y];return F}function l4(T,F,_,W,J){return F instanceof k1?F.build(T,_,W,J):F instanceof L0?c4(F,_,W,J):F instanceof HW?F.value:F&&F[0]instanceof L0?F.reduce(($,Y)=>$+" "+c4(Y,_,W,J),""):B1(F,_,W,J)}function c4(T,F,_,W){return T.fragment=!0,d4(T,T.strings[0],T.args[0],F,_,W)}function zA(T,F,_,W,J){return T.map(($)=>"("+W.map((Y)=>l4("values",$[Y],F,_,J)).join(",")+")").join(",")}function MA(T,F,_,W,J){let $=Array.isArray(T[0]),Y=F.length?F.flat():Object.keys($?T[0]:T);return zA($?T:[T],_,W,Y,J)}function I1(T,F,_,W,J){if(typeof T==="string"&&(T=[T].concat(F)),Array.isArray(T))return i4(T,J);let $;return(F.length?F.flat():Object.keys(T)).map((Z)=>{return $=T[Z],($ instanceof L0?c4($,_,W,J):$ instanceof HW?$.value:B1($,_,W,J))+" as "+f1(J.transform.column.to?J.transform.column.to(Z):Z)}).join(",")}var WH=Object.entries({values:MA,in:(...T)=>{let F=MA(...T);return F==="()"?"(null)":F},select:I1,as:I1,returning:I1,"\\(":I1,update(T,F,_,W,J){return(F.length?F.flat():Object.keys(T)).map(($)=>f1(J.transform.column.to?J.transform.column.to($):$)+"="+l4("values",T[$],_,W,J))},insert(T,F,_,W,J){let $=F.length?F.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+i4($,J)+")values"+zA(Array.isArray(T)?T:[T],_,W,$,J)}}).map(([T,F])=>[new RegExp("((?:^|[\\s(])"+T+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),F]);function o4(){throw CT.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:JH,parsers:$H}=QA;function EA(T){if(Array.isArray(T))return EA(T[0]);return typeof T==="string"?1009:0}var RA=function(T){let F=wA(T||{});return{serializers:Object.assign({},JH,F.serializers),parsers:Object.assign({},$H,F.parsers)}};function wA(T){return Object.keys(T).reduce((F,_)=>{if(T[_].from&&[].concat(T[_].from).forEach((W)=>F.parsers[W]=T[_].parse),T[_].serialize)F.serializers[T[_].to]=T[_].serialize,T[_].from&&[].concat(T[_].from).forEach((W)=>F.serializers[W]=T[_].serialize);return F},{parsers:{},serializers:{}})}function i4(T,{transform:{column:F}}){return T.map((_)=>f1(F.to?F.to(_):_)).join(",")}var f1=function T(F){return'"'+F.replace(/"/g,'""').replace(/\./g,'"."')+'"'},N1=function T(F){return F instanceof o0?F.type:F instanceof Date?1184:F instanceof Uint8Array?17:F===!0||F===!1?16:typeof F==="bigint"?20:Array.isArray(F)?T(F[0]):0},YH=/\\/g,ZH=/"/g;function XH(T){return T.replace(YH,"\\\\").replace(ZH,"\\\"")}var KA=function T(F,_,W,J){if(Array.isArray(F)===!1)return F;if(!F.length)return"{}";let $=F[0],Y=J===1020?";":",";if(Array.isArray($)&&!$.type)return"{"+F.map((Z)=>T(Z,_,W,J)).join(Y)+"}";return"{"+F.map((Z)=>{if(Z===void 0){if(Z=W.transform.undefined,Z===void 0)throw CT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return Z===null?"null":'"'+XH(_?_(Z.type?Z.value:Z):""+Z)+'"'}).join(Y)+"}"},u4={i:0,char:null,str:"",quoted:!1,last:0},VA=function T(F,_,W){return u4.i=u4.last=0,DA(u4,F,_,W)};function DA(T,F,_,W){let J=[],$=W===1020?";":",";for(;T.i<F.length;T.i++){if(T.char=F[T.i],T.quoted)if(T.char==="\\")T.str+=F[++T.i];else if(T.char==='"')J.push(_?_(T.str):T.str),T.str="",T.quoted=F[T.i+1]==='"',T.last=T.i+2;else T.str+=T.char;else if(T.char==='"')T.quoted=!0;else if(T.char==="{")T.last=++T.i,J.push(DA(T,F,_,W));else if(T.char==="}"){T.quoted=!1,T.last<T.i&&J.push(_?_(F.slice(T.last,T.i)):F.slice(T.last,T.i)),T.last=T.i+1;break}else if(T.char===$&&T.p!=="}"&&T.p!=='"')J.push(_?_(F.slice(T.last,T.i)):F.slice(T.last,T.i)),T.last=T.i+1;T.p=T.char}return T.last<T.i&&J.push(_?_(F.slice(T.last,T.i+1)):F.slice(T.last,T.i+1)),J}var IF=(T)=>{let F=T[0];for(let _=1;_<T.length;_++)F+=T[_]==="_"?T[++_].toUpperCase():T[_];return F},NF=(T)=>{let F=T[0].toUpperCase();for(let _=1;_<T.length;_++)F+=T[_]==="_"?T[++_].toUpperCase():T[_];return F},CF=(T)=>T.replace(/_/g,"-"),XW=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),AW=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),GW=(T)=>T.replace(/-/g,"_");function t4(T){return function F(_,W){return typeof _==="object"&&_!==null&&(W.type===114||W.type===3802)?Array.isArray(_)?_.map((J)=>F(J,W)):Object.entries(_).reduce((J,[$,Y])=>Object.assign(J,{[T($)]:F(Y,W)}),{}):_}}IF.column={from:IF};IF.value={from:t4(IF)};XW.column={to:XW};var n4={...IF};n4.column.to=XW;NF.column={from:NF};NF.value={from:t4(NF)};AW.column={to:AW};var r4={...NF};r4.column.to=AW;CF.column={from:CF};CF.value={from:t4(CF)};GW.column={to:GW};var s4={...CF};s4.column.to=GW;import LA from"net";import OH from"tls";import OW from"crypto";import a4 from"stream";import{performance as SA}from"perf_hooks";class kF 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 z0=AH;function AH(T=[]){let F=T.slice(),_=0;return{get length(){return F.length-_},remove:(W)=>{let J=F.indexOf(W);return J===-1?null:(F.splice(J,1),W)},push:(W)=>(F.push(W),W),shift:()=>{let W=F[_++];if(_===F.length)_=0,F=[];else F[_-1]=void 0;return W}}}var dT=Buffer.allocUnsafe(256),GH="BCcDdEFfHPpQSX".split("").reduce((T,F)=>{let _=F.charCodeAt(0);return T[F]=()=>{return dT[0]=_,JT.i=5,JT},T},{}),JT=Object.assign(HH,GH,{N:String.fromCharCode(0),i:0,inc(T){return JT.i+=T,JT},str(T){let F=Buffer.byteLength(T);return q1(F),JT.i+=dT.write(T,JT.i,F,"utf8"),JT},i16(T){return q1(2),dT.writeUInt16BE(T,JT.i),JT.i+=2,JT},i32(T,F){if(F||F===0)return dT.writeUInt32BE(T,F),JT;return q1(4),dT.writeUInt32BE(T,JT.i),JT.i+=4,JT},z(T){return q1(T),dT.fill(0,JT.i,JT.i+T),JT.i+=T,JT},raw(T){return dT=Buffer.concat([dT.subarray(0,JT.i),T]),JT.i=dT.length,JT},end(T=1){dT.writeUInt32BE(JT.i-T,T);let F=dT.subarray(0,JT.i);return JT.i=0,dT=Buffer.allocUnsafe(256),F}}),x=JT;function q1(T){if(dT.length-JT.i<T){let F=dT,_=F.length;dT=Buffer.allocUnsafe(_+(_>>1)+T),F.copy(dT)}}function HH(){return JT.i=0,JT}var FJ=CA,UH=1,EF=x().S().end(),IA=x().H().end(),MH=x().i32(8).i32(80877103).end(8),QH=Buffer.concat([x().E().str(x.N).i32(0).end(),EF]),zH=x().D().str("S").str(x.N).end(),Y_=()=>{},EH=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),RH={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 CA(T,F={},{onopen:_=Y_,onend:W=Y_,onclose:J=Y_}={}){let{ssl:$,max:Y,user:Z,host:A,port:X,database:O,parsers:M,transform:E,onnotice:K,onnotify:j,onparameter:S,max_pipeline:P,keep_alive:f,backoff:y,target_session_attrs:h}=T,TT=z0(),u=UH++,g={pid:null,secret:null},d=TJ(c1,T.idle_timeout),ST=TJ(c1,T.max_lifetime),A0=TJ(nA,T.connect_timeout),D=null,$T,l=new kF,e=Buffer.alloc(0),xT=T.fetch_types,G0={},S0={},qF=Math.random().toString(36).slice(2),V=1,p=0,WT=0,wT=0,kT=0,n=0,GT=0,IT=0,KT=null,QT=null,pT=!1,HT=null,I0=null,gT=null,TF=null,BT=null,zT=null,N0=null,P0=null,N=null,G_=null,mT={queue:F.closed,idleTimer:d,connect(G){gT=G||!0,CJ()},terminate:O_,execute:H_,cancel:dA,end:c1,count:0,id:u};return F.closed&&F.closed.push(mT),mT;async function cA(){let G;try{G=T.socket?await Promise.resolve(T.socket(T)):new LA.Socket}catch(Q){yF(Q);return}return G.on("error",yF),G.on("close",kJ),G.on("drain",IJ),G}async function dA({pid:G,secret:Q},b,FT){try{$T=x().i32(16).i32(80877102).i32(G).i32(Q).end(16),await NJ(),D.once("error",FT),D.once("close",b)}catch(DT){FT(DT)}}function H_(G){if(pT)return wW(G,CT.connection("CONNECTION_DESTROYED",T));if(G.cancelled)return;try{return G.state=g,N?TT.push(G):(N=G,N.active=!0),tA(G),bT(lA(G))&&!G.describeFirst&&!G.cursorFn&&TT.length<P&&(!G.options.onexecute||G.options.onexecute(mT))}catch(Q){return TT.length===0&&bT(EF),v0(Q),!0}}function lA(G){if(G.parameters.length>=65534)throw CT.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return G.options.simple?x().Q().str(G.statement.string+x.N).end():G.describeFirst?Buffer.concat([DJ(G),IA]):G.prepare?G.prepared?RW(G):Buffer.concat([DJ(G),RW(G)]):iA(G)}function DJ(G){return Buffer.concat([fJ(G.statement.string,G.parameters,G.statement.types,G.statement.name),y5("S",G.statement.name)])}function RW(G){return Buffer.concat([j5(G.parameters,G.statement.types,G.statement.name,G.cursorName),G.cursorFn?qJ("",G.cursorRows):QH])}function iA(G){return Buffer.concat([fJ(G.statement.string,G.parameters,G.statement.types),zH,RW(G)])}function tA(G){let Q=[],b=[],FT=d4(G,G.strings[0],G.args[0],Q,b,T);!G.tagged&&G.args.forEach((DT)=>B1(DT,Q,b,T)),G.prepare=T.prepare&&("prepare"in G.options?G.options.prepare:!0),G.string=FT,G.signature=G.prepare&&b+FT,G.onlyDescribe&&delete S0[G.signature],G.parameters=G.parameters||Q,G.prepared=G.prepare&&G.signature in S0,G.describeFirst=G.onlyDescribe||Q.length&&!G.prepared,G.statement=G.prepared?S0[G.signature]:{string:FT,types:b,name:G.prepare?qF+V++:""},typeof T.debug==="function"&&T.debug(u,FT,Q,b)}function bT(G,Q){if(zT=zT?Buffer.concat([zT,G]):Buffer.from(G),Q||zT.length>=1024)return LJ(Q);return QT===null&&(QT=setImmediate(LJ)),!0}function LJ(G){let Q=D.write(zT,G);return QT!==null&&clearImmediate(QT),zT=QT=null,Q}function nA(){v0(CT.connection("CONNECT_TIMEOUT",T,D)),D.destroy()}async function SJ(){if(bT(MH),!await new Promise((Q)=>D.once("data",(b)=>Q(b[0]===83)))&&$==="prefer")return jF();D.removeAllListeners(),D=OH.connect({socket:D,servername:LA.isIP(D.host)?void 0:D.host,...$==="require"||$==="allow"||$==="prefer"?{rejectUnauthorized:!1}:$==="verify-full"?{}:typeof $==="object"?$:{}}),D.on("secureConnect",jF),D.on("error",yF),D.on("close",kJ),D.on("drain",IJ)}function IJ(){!N&&_(mT)}function u1(G){if(HT){if(HT.push(G),WT-=G.length,WT>=0)return}e=HT?Buffer.concat(HT,n-WT):e.length===0?G:Buffer.concat([e,G],e.length+G.length);while(e.length>4){if(n=e.readUInt32BE(1),n>=e.length){WT=n-e.length,HT=[e];break}try{rA(e.subarray(0,n+1))}catch(Q){N&&(N.cursorFn||N.describeFirst)&&bT(EF),v0(Q)}e=e.subarray(n+1),WT=0,HT=null}}async function NJ(){if(pT=!1,G0={},D||(D=await cA()),!D)return;if(A0.start(),T.socket)return $?SJ():jF();if(D.on("connect",$?SJ:jF),T.path)return D.connect(T.path);D.ssl=$,D.connect(X[wT],A[wT]),D.host=A[wT],D.port=X[wT],wT=(wT+1)%X.length}function CJ(){setTimeout(NJ,p?p+GT-SA.now():0)}function jF(){try{S0={},xT=T.fetch_types,qF=Math.random().toString(36).slice(2),V=1,ST.start(),D.on("data",u1),f&&D.setKeepAlive&&D.setKeepAlive(!0,1000*f);let G=v5();bT(G)}catch(G){yF(G)}}function yF(G){if(mT.queue===F.connecting&&T.host[kT+1])return;v0(G);while(TT.length)wW(TT.shift(),G)}function v0(G){BT&&(BT.destroy(G),BT=null),N&&wW(N,G),gT&&(wW(gT,G),gT=null)}function wW(G,Q){"query"in Q||"parameters"in Q||Object.defineProperties(Q,{stack:{value:Q.stack+G.origin.replace(/.*\n/,`
|
|
50
50
|
`),enumerable:T.debug},query:{value:G.string,enumerable:T.debug},parameters:{value:G.parameters,enumerable:T.debug},args:{value:G.args,enumerable:T.debug},types:{value:G.statement&&G.statement.types,enumerable:T.debug}}),G.reject(Q)}function c1(){return TF||(!mT.reserved&&W(mT),!mT.reserved&&!gT&&!N&&TT.length===0?(O_(),new Promise((G)=>D&&D.readyState!=="closed"?D.once("close",G):G())):TF=new Promise((G)=>N0=G))}function O_(){if(pT=!0,BT||N||gT||TT.length)yF(CT.connection("CONNECTION_DESTROYED",T));if(clearImmediate(QT),D)D.removeListener("data",u1),D.removeListener("connect",jF),D.readyState==="open"&&D.end(x().X().end());N0&&(N0(),TF=N0=null)}async function kJ(G){if(e=Buffer.alloc(0),WT=0,HT=null,clearImmediate(QT),D.removeListener("data",u1),D.removeListener("connect",jF),d.cancel(),ST.cancel(),A0.cancel(),D.removeAllListeners(),D=null,gT)return CJ();!G&&(N||TT.length)&&yF(CT.connection("CONNECTION_CLOSED",T,D)),p=SA.now(),G&&T.shared.retries++,GT=(typeof y==="function"?y(T.shared.retries):y)*1000,J(mT,CT.connection("CONNECTION_CLOSED",T,D))}function rA(G,Q=G[0]){(Q===68?sA:Q===100?S5:Q===65?R5:Q===83?aA:Q===90?eA:Q===67?T5:Q===50?BJ:Q===49?F5:Q===116?_5:Q===84?W5:Q===82?J5:Q===110?G5:Q===75?H5:Q===69?z5:Q===115?w5:Q===51?K5:Q===71?V5:Q===78?N5:Q===72?D5:Q===99?I5:Q===73?C5:Q===86?k5:Q===118?B5:Q===87?L5:f5)(G)}function sA(G){let Q=7,b,FT,DT,oT=N.isRaw?new Array(N.statement.columns.length):{};for(let lT=0;lT<N.statement.columns.length;lT++)FT=N.statement.columns[lT],b=G.readInt32BE(Q),Q+=4,DT=b===-1?null:N.isRaw===!0?G.subarray(Q,Q+=b):FT.parser===void 0?G.toString("utf8",Q,Q+=b):FT.parser.array===!0?FT.parser(G.toString("utf8",Q+1,Q+=b)):FT.parser(G.toString("utf8",Q,Q+=b)),N.isRaw?oT[lT]=N.isRaw===!0?DT:E.value.from?E.value.from(DT,FT):DT:oT[FT.name]=E.value.from?E.value.from(DT,FT):DT;N.forEachFn?N.forEachFn(E.row.from?E.row.from(oT):oT,l):l[IT++]=E.row.from?E.row.from(oT):oT}function aA(G){let[Q,b]=G.toString("utf8",5,G.length-1).split(x.N);if(G0[Q]=b,T.parameters[Q]!==b)T.parameters[Q]=b,S&&S(Q,b)}function eA(G){if(N&&N.options.simple&&N.resolve(I0||l),N=I0=null,l=new kF,A0.cancel(),gT){if(h){if(!G0.in_hot_standby||!G0.default_transaction_read_only)return Q5();else if(M5(h,G0))return O_()}if(xT)return gT===!0&&(gT=null),O5();gT!==!0&&H_(gT),T.shared.retries=kT=0,gT=null;return}while(TT.length&&(N=TT.shift())&&(N.active=!0,N.cancelled))CA(T).cancel(N.state,N.cancelled.resolve,N.cancelled.reject);if(N)return;mT.reserved?!mT.reserved.release&&G[5]===73?TF?O_():(mT.reserved=null,_(mT)):mT.reserved():TF?O_():_(mT)}function T5(G){IT=0;for(let Q=G.length-1;Q>0;Q--){if(G[Q]===32&&G[Q+1]<58&&l.count===null)l.count=+G.toString("utf8",Q+1,G.length-1);if(G[Q-1]>=65){l.command=G.toString("utf8",5,Q),l.state=g;break}}if(G_&&(G_(),G_=null),l.command==="BEGIN"&&Y!==1&&!mT.reserved)return v0(CT.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(N.options.simple)return BJ();if(N.cursorFn)l.count&&N.cursorFn(l),bT(EF);N.resolve(l)}function F5(){N.parsing=!1}function BJ(){!l.statement&&(l.statement=N.statement),l.columns=N.statement.columns}function _5(G){let Q=G.readUInt16BE(5);for(let b=0;b<Q;++b)!N.statement.types[b]&&(N.statement.types[b]=G.readUInt32BE(7+b*4));N.prepare&&(S0[N.signature]=N.statement),N.describeFirst&&!N.onlyDescribe&&(bT(RW(N)),N.describeFirst=!1)}function W5(G){if(l.command)I0=I0||[l],I0.push(l=new kF),l.count=null,N.statement.columns=null;let Q=G.readUInt16BE(5),b=7,FT;N.statement.columns=Array(Q);for(let DT=0;DT<Q;++DT){FT=b;while(G[b++]!==0);let oT=G.readUInt32BE(b),lT=G.readUInt16BE(b+4),FF=G.readUInt32BE(b+6);N.statement.columns[DT]={name:E.column.from?E.column.from(G.toString("utf8",FT,b-1)):G.toString("utf8",FT,b-1),parser:M[FF],table:oT,number:lT,type:FF},b+=18}if(l.statement=N.statement,N.onlyDescribe)return N.resolve(N.statement),bT(EF)}async function J5(G,Q=G.readUInt32BE(5)){(Q===3?$5:Q===5?Y5:Q===10?Z5:Q===11?X5:Q===12?A5:Q!==0?q5:Y_)(G,Q)}async function $5(){let G=await d1();bT(x().p().str(G).z(1).end())}async function Y5(G){let Q="md5"+await NA(Buffer.concat([Buffer.from(await NA(await d1()+Z)),G.subarray(9)]));bT(x().p().str(Q).z(1).end())}async function Z5(){P0=(await OW.randomBytes(18)).toString("base64"),x().p().str("SCRAM-SHA-256"+x.N);let G=x.i;bT(x.inc(4).str("n,,n=*,r="+P0).i32(x.i-G-4,G).end())}async function X5(G){let Q=G.toString("utf8",9).split(",").reduce((lT,FF)=>(lT[FF[0]]=FF.slice(2),lT),{}),b=await OW.pbkdf2Sync(await d1(),Buffer.from(Q.s,"base64"),parseInt(Q.i),32,"sha256"),FT=await j1(b,"Client Key"),DT="n=*,r="+P0+",r="+Q.r+",s="+Q.s+",i="+Q.i+",c=biws,r="+Q.r;KT=(await j1(await j1(b,"Server Key"),DT)).toString("base64");let oT="c=biws,r="+Q.r+",p="+KH(FT,Buffer.from(await j1(await wH(FT),DT))).toString("base64");bT(x().p().str(oT).end())}function A5(G){if(G.toString("utf8",9).split(x.N,1)[0].slice(2)===KT)return;v0(CT.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),D.destroy()}function d1(){return Promise.resolve(typeof T.pass==="function"?T.pass():T.pass)}function G5(){if(l.statement=N.statement,l.statement.columns=[],N.onlyDescribe)return N.resolve(N.statement),bT(EF)}function H5(G){g.pid=G.readUInt32BE(5),g.secret=G.readUInt32BE(9)}async function O5(){xT=!1,(await new L0([`
|
|
51
51
|
select b.oid, b.typarray
|
|
52
52
|
from pg_catalog.pg_type a
|
|
@@ -73,4 +73,4 @@ ${Y.trace}`:"No previous disposal trace was found."),W.type){case"atom_family":c
|
|
|
73
73
|
hash text NOT NULL,
|
|
74
74
|
created_at bigint
|
|
75
75
|
)
|
|
76
|
-
`;await F.execute(U`CREATE SCHEMA IF NOT EXISTS ${U.identifier(J)}`),await F.execute($);let Z=(await F.all(U`select id, hash, created_at from ${U.identifier(J)}.${U.identifier(W)} order by created_at desc limit 1`))[0];await F.transaction(async(A)=>{for await(let X of T)if(!Z||Number(Z.created_at)<X.folderMillis){for(let O of X.sql)await A.execute(U.raw(O));await A.execute(U`insert into ${U.identifier(J)}.${U.identifier(W)} ("hash", "created_at") values(${X.hash}, ${X.folderMillis})`)}})}escapeName(T){return`"${T}"`}escapeParam(T){return`$${T+1}`}escapeString(T){return`'${T.replace(/'/g,"''")}'`}buildWithCTE(T){if(!T?.length)return;let F=[U`with `];for(let[_,W]of T.entries())if(F.push(U`${U.identifier(W._.alias)} as (${W._.sql})`),_<T.length-1)F.push(U`, `);return F.push(U` `),U.join(F)}buildDeleteQuery({table:T,where:F,returning:_,withList:W}){let J=this.buildWithCTE(W),$=_?U` returning ${this.buildSelection(_,{isSingleTable:!0})}`:void 0,Y=F?U` where ${F}`:void 0;return U`${J}delete from ${T}${Y}${$}`}buildUpdateSet(T,F){let _=T[C.Symbol.Columns],W=Object.keys(_).filter(($)=>F[$]!==void 0||_[$]?.onUpdateFn!==void 0),J=W.length;return U.join(W.flatMap(($,Y)=>{let Z=_[$],A=F[$]??U.param(Z.onUpdateFn(),Z),X=U`${U.identifier(this.casing.getColumnCasing(Z))} = ${A}`;if(Y<J-1)return[X,U.raw(", ")];return[X]}))}buildUpdateQuery({table:T,set:F,where:_,returning:W,withList:J,from:$,joins:Y}){let Z=this.buildWithCTE(J),A=T[hT.Symbol.Name],X=T[hT.Symbol.Schema],O=T[hT.Symbol.OriginalName],M=A===O?void 0:A,E=U`${X?U`${U.identifier(X)}.`:void 0}${U.identifier(O)}${M&&U` ${U.identifier(M)}`}`,K=this.buildUpdateSet(T,F),j=$&&U.join([U.raw(" from "),this.buildFromTable($)]),S=this.buildJoins(Y),P=W?U` returning ${this.buildSelection(W,{isSingleTable:!$})}`:void 0,f=_?U` where ${_}`:void 0;return U`${Z}update ${E} set ${K}${j}${S}${f}${P}`}buildSelection(T,{isSingleTable:F=!1}={}){let _=T.length,W=T.flatMap(({field:J},$)=>{let Y=[];if(R(J,k.Aliased)&&J.isSelectionField)Y.push(U.identifier(J.fieldAlias));else if(R(J,k.Aliased)||R(J,k)){let Z=R(J,k.Aliased)?J.sql:J;if(F)Y.push(new k(Z.queryChunks.map((A)=>{if(R(A,L))return U.identifier(this.casing.getColumnCasing(A));return A})));else Y.push(Z);if(R(J,k.Aliased))Y.push(U` as ${U.identifier(J.fieldAlias)}`)}else if(R(J,XT))if(F)Y.push(U.identifier(this.casing.getColumnCasing(J)));else Y.push(J);if($<_-1)Y.push(U`, `);return Y});return U.join(W)}buildJoins(T){if(!T||T.length===0)return;let F=[];for(let[_,W]of T.entries()){if(_===0)F.push(U` `);let J=W.table,$=W.lateral?U` lateral`:void 0,Y=W.on?U` on ${W.on}`:void 0;if(R(J,hT)){let Z=J[hT.Symbol.Name],A=J[hT.Symbol.Schema],X=J[hT.Symbol.OriginalName],O=Z===X?void 0:W.alias;F.push(U`${U.raw(W.joinType)} join${$} ${A?U`${U.identifier(A)}.`:void 0}${U.identifier(X)}${O&&U` ${U.identifier(O)}`}${Y}`)}else if(R(J,Y0)){let Z=J[MT].name,A=J[MT].schema,X=J[MT].originalName,O=Z===X?void 0:W.alias;F.push(U`${U.raw(W.joinType)} join${$} ${A?U`${U.identifier(A)}.`:void 0}${U.identifier(X)}${O&&U` ${U.identifier(O)}`}${Y}`)}else F.push(U`${U.raw(W.joinType)} join${$} ${J}${Y}`);if(_<T.length-1)F.push(U` `)}return U.join(F)}buildFromTable(T){if(R(T,C)&&T[C.Symbol.IsAlias]){let F=U`${U.identifier(T[C.Symbol.OriginalName])}`;if(T[C.Symbol.Schema])F=U`${U.identifier(T[C.Symbol.Schema])}.${F}`;return U`${F} ${U.identifier(T[C.Symbol.Name])}`}return T}buildSelectQuery({withList:T,fields:F,fieldsFlat:_,where:W,having:J,table:$,joins:Y,orderBy:Z,groupBy:A,limit:X,offset:O,lockingClause:M,distinct:E,setOperators:K}){let j=_??V0(F);for(let e of j)if(R(e.field,XT)&&vT(e.field.table)!==(R($,yT)?$._.alias:R($,UW)?$[MT].name:R($,k)?void 0:vT($))&&!((xT)=>Y?.some(({alias:G0})=>G0===(xT[C.Symbol.IsAlias]?vT(xT):xT[C.Symbol.BaseName])))(e.field.table)){let xT=vT(e.field.table);throw new Error(`Your "${e.path.join("->")}" field references a column "${xT}"."${e.field.name}", but the table "${xT}" is not part of the query! Did you forget to join it?`)}let S=!Y||Y.length===0,P=this.buildWithCTE(T),f;if(E)f=E===!0?U` distinct`:U` distinct on (${U.join(E.on,U`, `)})`;let y=this.buildSelection(j,{isSingleTable:S}),h=this.buildFromTable($),TT=this.buildJoins(Y),u=W?U` where ${W}`:void 0,g=J?U` having ${J}`:void 0,d;if(Z&&Z.length>0)d=U` order by ${U.join(Z,U`, `)}`;let ST;if(A&&A.length>0)ST=U` group by ${U.join(A,U`, `)}`;let A0=typeof X==="object"||typeof X==="number"&&X>=0?U` limit ${X}`:void 0,D=O?U` offset ${O}`:void 0,$T=U.empty();if(M){let e=U` for ${U.raw(M.strength)}`;if(M.config.of)e.append(U` of ${U.join(Array.isArray(M.config.of)?M.config.of:[M.config.of],U`, `)}`);if(M.config.noWait)e.append(U` nowait`);else if(M.config.skipLocked)e.append(U` skip locked`);$T.append(e)}let l=U`${P}select${f} ${y} from ${h}${TT}${u}${ST}${g}${d}${A0}${D}${$T}`;if(K.length>0)return this.buildSetOperations(l,K);return l}buildSetOperations(T,F){let[_,...W]=F;if(!_)throw new Error("Cannot pass undefined values to any set operator");if(W.length===0)return this.buildSetOperationQuery({leftSelect:T,setOperator:_});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:T,setOperator:_}),W)}buildSetOperationQuery({leftSelect:T,setOperator:{type:F,isAll:_,rightSelect:W,limit:J,orderBy:$,offset:Y}}){let Z=U`(${T.getSQL()}) `,A=U`(${W.getSQL()})`,X;if($&&$.length>0){let K=[];for(let j of $)if(R(j,L))K.push(U.identifier(j.name));else if(R(j,k)){for(let S=0;S<j.queryChunks.length;S++){let P=j.queryChunks[S];if(R(P,L))j.queryChunks[S]=U.identifier(P.name)}K.push(U`${j}`)}else K.push(U`${j}`);X=U` order by ${U.join(K,U`, `)} `}let O=typeof J==="object"||typeof J==="number"&&J>=0?U` limit ${J}`:void 0,M=U.raw(`${F} ${_?"all ":""}`),E=Y?U` offset ${Y}`:void 0;return U`${Z}${M}${A}${X}${O}${E}`}buildInsertQuery({table:T,values:F,onConflict:_,returning:W,withList:J,select:$,overridingSystemValue_:Y}){let Z=[],A=T[C.Symbol.Columns],X=Object.entries(A).filter(([P,f])=>!f.shouldDisableInsert()),O=X.map(([,P])=>U.identifier(this.casing.getColumnCasing(P)));if($){let P=F;if(R(P,k))Z.push(P);else Z.push(P.getSQL())}else{let P=F;Z.push(U.raw("values "));for(let[f,y]of P.entries()){let h=[];for(let[TT,u]of X){let g=y[TT];if(g===void 0||R(g,Q0)&&g.value===void 0)if(u.defaultFn!==void 0){let d=u.defaultFn(),ST=R(d,k)?d:U.param(d,u);h.push(ST)}else if(!u.default&&u.onUpdateFn!==void 0){let d=u.onUpdateFn(),ST=R(d,k)?d:U.param(d,u);h.push(ST)}else h.push(U`default`);else h.push(g)}if(Z.push(h),f<P.length-1)Z.push(U`, `)}}let M=this.buildWithCTE(J),E=U.join(Z),K=W?U` returning ${this.buildSelection(W,{isSingleTable:!0})}`:void 0,j=_?U` on conflict ${_}`:void 0,S=Y===!0?U`overriding system value `:void 0;return U`${M}insert into ${T} ${O} ${S}${E}${j}${K}`}buildRefreshMaterializedViewQuery({view:T,concurrently:F,withNoData:_}){let W=F?U` concurrently`:void 0,J=_?U` with no data`:void 0;return U`refresh materialized view${W} ${T}${J}`}prepareTyping(T){if(R(T,z1)||R(T,Q1))return"json";else if(R(T,E1))return"decimal";else if(R(T,R1))return"time";else if(R(T,w1)||R(T,K1))return"timestamp";else if(R(T,U1)||R(T,M1))return"date";else if(R(T,V1))return"uuid";else return"none"}sqlToQuery(T,F){return T.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:F})}buildRelationalQueryWithoutPK({fullSchema:T,schema:F,tableNamesMap:_,table:W,tableConfig:J,queryConfig:$,tableAlias:Y,nestedQueryRelation:Z,joinOn:A}){let X=[],O,M,E=[],K,j=[];if($===!0)X=Object.entries(J.columns).map(([f,y])=>({dbKey:y.name,tsKey:f,field:m0(y,Y),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let P=Object.fromEntries(Object.entries(J.columns).map(([g,d])=>[g,m0(d,Y)]));if($.where){let g=typeof $.where==="function"?$.where(P,$A()):$.where;K=g&&FW(g,Y)}let f=[],y=[];if($.columns){let g=!1;for(let[d,ST]of Object.entries($.columns)){if(ST===void 0)continue;if(d in J.columns){if(!g&&ST===!0)g=!0;y.push(d)}}if(y.length>0)y=g?y.filter((d)=>$.columns?.[d]===!0):Object.keys(J.columns).filter((d)=>!y.includes(d))}else y=Object.keys(J.columns);for(let g of y){let d=J.columns[g];f.push({tsKey:g,value:d})}let h=[];if($.with)h=Object.entries($.with).filter((g)=>!!g[1]).map(([g,d])=>({tsKey:g,queryConfig:d,relation:J.relations[g]}));let TT;if($.extras){TT=typeof $.extras==="function"?$.extras(P,{sql:U}):$.extras;for(let[g,d]of Object.entries(TT))f.push({tsKey:g,value:y4(d,Y)})}for(let{tsKey:g,value:d}of f)X.push({dbKey:R(d,k.Aliased)?d.fieldAlias:J.columns[g].name,tsKey:g,field:R(d,XT)?m0(d,Y):d,relationTableTsKey:void 0,isJson:!1,selection:[]});let u=typeof $.orderBy==="function"?$.orderBy(P,YA()):$.orderBy??[];if(!Array.isArray(u))u=[u];E=u.map((g)=>{if(R(g,XT))return m0(g,Y);return FW(g,Y)}),O=$.limit,M=$.offset;for(let{tsKey:g,queryConfig:d,relation:ST}of h){let A0=XA(F,_,ST),D=SF(ST.referencedTable),$T=_[D],l=`${Y}_${g}`,e=YW(...A0.fields.map((S0,qF)=>D1(m0(A0.references[qF],l),m0(S0,Y)))),xT=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:F,tableNamesMap:_,table:T[$T],tableConfig:F[$T],queryConfig:R(ST,zF)?d===!0?{limit:1}:{...d,limit:1}:d,tableAlias:l,joinOn:e,nestedQueryRelation:ST}),G0=U`${U.identifier(l)}.${U.identifier("data")}`.as(g);j.push({on:U`true`,table:new yT(xT.sql,{},l),alias:l,joinType:"left",lateral:!0}),X.push({dbKey:g,tsKey:g,field:G0,relationTableTsKey:$T,isJson:!0,selection:xT.selection})}}if(X.length===0)throw new H1({message:`No fields selected for table "${J.tsName}" ("${Y}")`});let S;if(K=YW(A,K),Z){let P=U`json_build_array(${U.join(X.map(({field:h,tsKey:TT,isJson:u})=>u?U`${U.identifier(`${Y}_${TT}`)}.${U.identifier("data")}`:R(h,k.Aliased)?h.sql:h),U`, `)})`;if(R(Z,ZW))P=U`coalesce(json_agg(${P}${E.length>0?U` order by ${U.join(E,U`, `)}`:void 0}), '[]'::json)`;let f=[{dbKey:"data",tsKey:"data",field:P.as("data"),isJson:!0,relationTableTsKey:J.tsName,selection:X}];if(O!==void 0||M!==void 0||E.length>0)S=this.buildSelectQuery({table:G1(W,Y),fields:{},fieldsFlat:[{path:[],field:U.raw("*")}],where:K,limit:O,offset:M,orderBy:E,setOperators:[]}),K=void 0,O=void 0,M=void 0,E=[];else S=G1(W,Y);S=this.buildSelectQuery({table:R(S,hT)?S:new yT(S,{},Y),fields:{},fieldsFlat:f.map(({field:h})=>({path:[],field:R(h,XT)?m0(h,Y):h})),joins:j,where:K,limit:O,offset:M,orderBy:E,setOperators:[]})}else S=this.buildSelectQuery({table:G1(W,Y),fields:{},fieldsFlat:X.map(({field:P})=>({path:[],field:R(P,XT)?m0(P,Y):P})),joins:j,where:K,limit:O,offset:M,orderBy:E,setOperators:[]});return{tableTsKey:J.tsName,sql:S,selection:X}}}class $J{static[H]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class aT{static[H]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(T){if(this.fields=T.fields,this.session=T.session,this.dialect=T.dialect,T.withList)this.withList=T.withList;this.distinct=T.distinct}authToken;setToken(T){return this.authToken=T,this}from(T){let F=!!this.fields,_=T,W;if(this.fields)W=this.fields;else if(R(_,yT))W=Object.fromEntries(Object.keys(_._.selectedFields).map((J)=>[J,_[J]]));else if(R(_,UW))W=_[MT].selectedFields;else if(R(_,k))W={};else W=hY(_);return new YJ({table:_,fields:W,isPartialSelect:F,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class fA extends $J{static[H]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:F,isPartialSelect:_,session:W,dialect:J,withList:$,distinct:Y}){super();this.config={withList:$,table:T,fields:{...F},distinct:Y,setOperators:[]},this.isPartialSelect=_,this.session=W,this.dialect=J,this._={selectedFields:F},this.tableName=a0(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T,F){return(_,W)=>{let J=this.tableName,$=a0(_);if(typeof $==="string"&&this.config.joins?.some((Y)=>Y.alias===$))throw new Error(`Alias "${$}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof J==="string")this.config.fields={[J]:this.config.fields};if(typeof $==="string"&&!R(_,k)){let Y=R(_,yT)?_._.selectedFields:R(_,Y0)?_[MT].selectedFields:_[C.Symbol.Columns];this.config.fields[$]=Y}}if(typeof W==="function")W=W(new Proxy(this.config.fields,new LT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:W,table:_,joinType:T,alias:$,lateral:F}),typeof $==="string")switch(T){case"left":{this.joinsNotNullableMap[$]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([Y])=>[Y,!1])),this.joinsNotNullableMap[$]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[$]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([Y])=>[Y,!1])),this.joinsNotNullableMap[$]=!1;break}}return this}}leftJoin=this.createJoin("left",!1);leftJoinLateral=this.createJoin("left",!0);rightJoin=this.createJoin("right",!1);innerJoin=this.createJoin("inner",!1);innerJoinLateral=this.createJoin("inner",!0);fullJoin=this.createJoin("full",!1);crossJoin=this.createJoin("cross",!1);crossJoinLateral=this.createJoin("cross",!0);createSetOperator(T,F){return(_)=>{let W=typeof _==="function"?_(xH()):_;if(!_W(this.getSelectedFields(),W.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:T,isAll:F,rightSelect:W}),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(T){return this.config.setOperators.push(...T),this}where(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new LT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=T,this}having(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new LT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=T,this}groupBy(...T){if(typeof T[0]==="function"){let F=T[0](new Proxy(this.config.fields,new LT({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(F)?F:[F]}else this.config.groupBy=T;return this}orderBy(...T){if(typeof T[0]==="function"){let F=T[0](new Proxy(this.config.fields,new LT({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),_=Array.isArray(F)?F:[F];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=_;else this.config.orderBy=_}else{let F=T;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=F;else this.config.orderBy=F}return this}limit(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=T;else this.config.limit=T;return this}offset(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=T;else this.config.offset=T;return this}for(T,F={}){return this.config.lockingClause={strength:T,config:F},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:T,...F}=this.dialect.sqlToQuery(this.getSQL());return F}as(T){return new Proxy(new yT(this.getSQL(),this.config.fields,T),new LT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new LT({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class YJ extends fA{static[H]="PgSelect";_prepare(T){let{session:F,config:_,dialect:W,joinsNotNullableMap:J,authToken:$}=this;if(!F)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return AT.startActiveSpan("drizzle.prepareQuery",()=>{let Y=V0(_.fields),Z=F.prepareQuery(W.sqlToQuery(this.getSQL()),Y,T,!0);return Z.joinsNotNullableMap=J,Z.setToken($)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return AT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}bY(YJ,[rT]);function X_(T,F){return(_,W,...J)=>{let $=[W,...J].map((Y)=>({type:T,isAll:F,rightSelect:Y}));for(let Y of $)if(!_W(_.getSelectedFields(),Y.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return _.addSetOperators($)}}var xH=()=>({union:bH,unionAll:hH,intersect:pH,intersectAll:gH,except:mH,exceptAll:oH}),bH=X_("union",!1),hH=X_("union",!0),pH=X_("intersect",!1),gH=X_("intersect",!0),mH=X_("except",!1),oH=X_("except",!0);class MW{static[H]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=R(T,BF)?T:void 0,this.dialectConfig=R(T,BF)?void 0:T}$with=(T,F)=>{let _=this;return{as:(J)=>{if(typeof J==="function")J=J(_);return new Proxy(new a_(J.getSQL(),F??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),T,!0),new LT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...T){let F=this;function _($){return new aT({fields:$??void 0,session:void 0,dialect:F.getDialect(),withList:T})}function W($){return new aT({fields:$??void 0,session:void 0,dialect:F.getDialect(),distinct:!0})}function J($,Y){return new aT({fields:Y??void 0,session:void 0,dialect:F.getDialect(),distinct:{on:$}})}return{select:_,selectDistinct:W,selectDistinctOn:J}}select(T){return new aT({fields:T??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(T){return new aT({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(T,F){return new aT({fields:F??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:T}})}getDialect(){if(!this.dialect)this.dialect=new BF(this.dialectConfig);return this.dialect}}class x1{constructor(T,F,_,W,J){this.table=T,this.session=F,this.dialect=_,this.withList=W,this.overridingSystemValue_=J}static[H]="PgInsertBuilder";authToken;setToken(T){return this.authToken=T,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(T){if(T=Array.isArray(T)?T:[T],T.length===0)throw new Error("values() must be called with at least one value");let F=T.map((_)=>{let W={},J=this.table[C.Symbol.Columns];for(let $ of Object.keys(_)){let Y=_[$];W[$]=R(Y,k)?Y:new Q0(Y,J[$])}return W});return new ZJ(this.table,F,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(T){let F=typeof T==="function"?T(new MW):T;if(!R(F,k)&&!_W(this.table[X1],F._.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 ZJ(this.table,F,this.session,this.dialect,this.withList,!0)}}class ZJ extends rT{constructor(T,F,_,W,J,$,Y){super();this.session=_,this.dialect=W,this.config={table:T,values:F,withList:J,select:$,overridingSystemValue_:Y}}static[H]="PgInsert";config;returning(T=this.config.table[C.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=V0(T),this}onConflictDoNothing(T={}){if(T.target===void 0)this.config.onConflict=U`do nothing`;else{let F="";F=Array.isArray(T.target)?T.target.map((W)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(W))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target));let _=T.where?U` where ${T.where}`:void 0;this.config.onConflict=U`(${U.raw(F)})${_} do nothing`}return this}onConflictDoUpdate(T){if(T.where&&(T.targetWhere||T.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 F=T.where?U` where ${T.where}`:void 0,_=T.targetWhere?U` where ${T.targetWhere}`:void 0,W=T.setWhere?U` where ${T.setWhere}`:void 0,J=this.dialect.buildUpdateSet(this.config.table,O1(this.config.table,T.set)),$="";return $=Array.isArray(T.target)?T.target.map((Y)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target)),this.config.onConflict=U`(${U.raw($)})${_} do update set ${J}${F}${W}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:T,...F}=this.dialect.sqlToQuery(this.getSQL());return F}_prepare(T){return AT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return AT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new LT({alias:vT(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class XJ extends rT{constructor(T,F,_){super();this.session=F,this.dialect=_,this.config={view:T}}static[H]="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:T,...F}=this.dialect.sqlToQuery(this.getSQL());return F}_prepare(T){return AT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return AT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}class b1{constructor(T,F,_,W){this.table=T,this.session=F,this.dialect=_,this.withList=W}static[H]="PgUpdateBuilder";authToken;setToken(T){return this.authToken=T,this}set(T){return new qA(this.table,O1(this.table,T),this.session,this.dialect,this.withList).setToken(this.authToken)}}class qA extends rT{constructor(T,F,_,W,J){super();this.session=_,this.dialect=W,this.config={set:F,table:T,withList:J,joins:[]},this.tableName=a0(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[H]="PgUpdate";config;tableName;joinsNotNullableMap;from(T){let F=T,_=a0(F);if(typeof _==="string")this.joinsNotNullableMap[_]=!0;return this.config.from=F,this}getTableLikeFields(T){if(R(T,hT))return T[C.Symbol.Columns];else if(R(T,yT))return T._.selectedFields;return T[MT].selectedFields}createJoin(T){return(F,_)=>{let W=a0(F);if(typeof W==="string"&&this.config.joins.some((J)=>J.alias===W))throw new Error(`Alias "${W}" is already used in this query`);if(typeof _==="function"){let J=this.config.from&&!R(this.config.from,k)?this.getTableLikeFields(this.config.from):void 0;_=_(new Proxy(this.config.table[C.Symbol.Columns],new LT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),J&&new Proxy(J,new LT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:_,table:F,joinType:T,alias:W}),typeof W==="string")switch(T){case"left":{this.joinsNotNullableMap[W]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([J])=>[J,!1])),this.joinsNotNullableMap[W]=!0;break}case"inner":{this.joinsNotNullableMap[W]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([J])=>[J,!1])),this.joinsNotNullableMap[W]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(T){return this.config.where=T,this}returning(T){if(!T){if(T=Object.assign({},this.config.table[C.Symbol.Columns]),this.config.from){let F=a0(this.config.from);if(typeof F==="string"&&this.config.from&&!R(this.config.from,k)){let _=this.getTableLikeFields(this.config.from);T[F]=_}for(let _ of this.config.joins){let W=a0(_.table);if(typeof W==="string"&&!R(_.table,k)){let J=this.getTableLikeFields(_.table);T[W]=J}}}}return this.config.returningFields=T,this.config.returning=V0(T),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:T,...F}=this.dialect.sqlToQuery(this.getSQL());return F}_prepare(T){let F=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0);return F.joinsNotNullableMap=this.joinsNotNullableMap,F}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return this._prepare().execute(T,this.authToken)};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new LT({alias:vT(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class QW extends k{constructor(T){super(QW.buildEmbeddedCount(T.source,T.filters).queryChunks);this.params=T,this.mapWith(Number),this.session=T.session,this.sql=QW.buildCount(T.source,T.filters)}sql;token;static[H]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(T,F){return U`(select count(*) from ${T}${U.raw(" where ").if(F)}${F})`}static buildCount(T,F){return U`select count(*) as count from ${T}${U.raw(" where ").if(F)}${F};`}setToken(T){return this.token=T,this}then(T,F){return Promise.resolve(this.session.count(this.sql,this.token)).then(T,F)}catch(T){return this.then(void 0,T)}finally(T){return this.then((F)=>{return T?.(),F},(F)=>{throw T?.(),F})}}class GJ{constructor(T,F,_,W,J,$,Y){this.fullSchema=T,this.schema=F,this.tableNamesMap=_,this.table=W,this.tableConfig=J,this.dialect=$,this.session=Y}static[H]="PgRelationalQueryBuilder";findMany(T){return new AJ(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?T:{},"many")}findFirst(T){return new AJ(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?{...T,limit:1}:{limit:1},"first")}}class AJ extends rT{constructor(T,F,_,W,J,$,Y,Z,A){super();this.fullSchema=T,this.schema=F,this.tableNamesMap=_,this.table=W,this.tableConfig=J,this.dialect=$,this.session=Y,this.config=Z,this.mode=A}static[H]="PgRelationalQuery";_prepare(T){return AT.startActiveSpan("drizzle.prepareQuery",()=>{let{query:F,builtQuery:_}=this._toSQL();return this.session.prepareQuery(_,void 0,T,!0,(W,J)=>{let $=W.map((Y)=>L1(this.schema,this.tableConfig,Y,F.selection,J));if(this.mode==="first")return $[0];return $})})}prepare(T){return this._prepare(T)}_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 T=this._getQuery(),F=this.dialect.sqlToQuery(T.sql);return{query:T,builtQuery:F}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(T){return this.authToken=T,this}execute(){return AT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class HJ extends rT{constructor(T,F,_,W){super();this.execute=T,this.sql=F,this.query=_,this.mapBatchResult=W}static[H]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(T,F){return F?this.mapBatchResult(T):T}_prepare(){return this}isResponseInArrayMode(){return!1}}class zW{constructor(T,F,_){if(this.dialect=T,this.session=F,this._=_?{schema:_.schema,fullSchema:_.fullSchema,tableNamesMap:_.tableNamesMap,session:F}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:F},this.query={},this._.schema)for(let[W,J]of Object.entries(this._.schema))this.query[W]=new GJ(_.fullSchema,this._.schema,this._.tableNamesMap,_.fullSchema[W],J,T,F)}static[H]="PgDatabase";query;$with=(T,F)=>{let _=this;return{as:(J)=>{if(typeof J==="function")J=J(new MW(_.dialect));return new Proxy(new a_(J.getSQL(),F??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),T,!0),new LT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(T,F){return new QW({source:T,filters:F,session:this.session})}with(...T){let F=this;function _(A){return new aT({fields:A??void 0,session:F.session,dialect:F.dialect,withList:T})}function W(A){return new aT({fields:A??void 0,session:F.session,dialect:F.dialect,withList:T,distinct:!0})}function J(A,X){return new aT({fields:X??void 0,session:F.session,dialect:F.dialect,withList:T,distinct:{on:A}})}function $(A){return new b1(A,F.session,F.dialect,T)}function Y(A){return new x1(A,F.session,F.dialect,T)}function Z(A){return new v1(A,F.session,F.dialect,T)}return{select:_,selectDistinct:W,selectDistinctOn:J,update:$,insert:Y,delete:Z}}select(T){return new aT({fields:T??void 0,session:this.session,dialect:this.dialect})}selectDistinct(T){return new aT({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(T,F){return new aT({fields:F??void 0,session:this.session,dialect:this.dialect,distinct:{on:T}})}update(T){return new b1(T,this.session,this.dialect)}insert(T){return new x1(T,this.session,this.dialect)}delete(T){return new v1(T,this.session,this.dialect)}refreshMaterializedView(T){return new XJ(T,this.session,this.dialect)}authToken;execute(T){let F=typeof T==="string"?U.raw(T):T.getSQL(),_=this.dialect.sqlToQuery(F),W=this.session.prepareQuery(_,void 0,void 0,!1);return new HJ(()=>W.execute(void 0,this.authToken),F,_,(J)=>W.mapResult(J,!0))}transaction(T,F){return this.session.transaction(T,F)}}class jA{constructor(T,F){this.unique=T,this.name=F}static[H]="PgIndexBuilderOn";on(...T){return new h1(T.map((F)=>{if(R(F,k))return F;F=F;let _=new r_(F.name,!!F.keyAsName,F.columnType,F.indexConfig);return F.indexConfig=JSON.parse(JSON.stringify(F.defaultConfig)),_}),this.unique,!1,this.name)}onOnly(...T){return new h1(T.map((F)=>{if(R(F,k))return F;F=F;let _=new r_(F.name,!!F.keyAsName,F.columnType,F.indexConfig);return F.indexConfig=F.defaultConfig,_}),this.unique,!0,this.name)}using(T,...F){return new h1(F.map((_)=>{if(R(_,k))return _;_=_;let W=new r_(_.name,!!_.keyAsName,_.columnType,_.indexConfig);return _.indexConfig=JSON.parse(JSON.stringify(_.defaultConfig)),W}),this.unique,!0,this.name,T)}}class h1{static[H]="PgIndexBuilder";config;constructor(T,F,_,W,J="btree"){this.config={name:W,columns:T,unique:F,only:_,method:J}}concurrently(){return this.config.concurrently=!0,this}with(T){return this.config.with=T,this}where(T){return this.config.where=T,this}build(T){return new yA(this.config,T)}}class yA{static[H]="PgIndex";config;constructor(T,F){this.config={...T,table:F}}}function OJ(T){return new jA(!0,T)}class UJ{constructor(T){this.query=T}authToken;getQuery(){return this.query}mapResult(T,F){return T}setToken(T){return this.authToken=T,this}static[H]="PgPreparedQuery";joinsNotNullableMap}class MJ{constructor(T){this.dialect=T}static[H]="PgSession";execute(T,F){return AT.startActiveSpan("drizzle.operation",()=>{return AT.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1)}).setToken(F).execute(void 0,F)})}all(T){return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1).all()}async count(T,F){let _=await this.execute(T,F);return Number(_[0].count)}}class QJ extends zW{constructor(T,F,_,W=0){super(T,F,_);this.schema=_,this.nestedIndex=W}static[H]="PgTransaction";rollback(){throw new P4}getTransactionConfigSQL(T){let F=[];if(T.isolationLevel)F.push(`isolation level ${T.isolationLevel}`);if(T.accessMode)F.push(T.accessMode);if(typeof T.deferrable==="boolean")F.push(T.deferrable?"deferrable":"not deferrable");return U.raw(F.join(" "))}setTransaction(T){return this.session.execute(U`set transaction ${this.getTransactionConfigSQL(T)}`)}}class PA extends UJ{constructor(T,F,_,W,J,$,Y){super({sql:F,params:_});this.client=T,this.queryString=F,this.params=_,this.logger=W,this.fields=J,this._isResponseInArrayMode=$,this.customResultMapper=Y}static[H]="PostgresJsPreparedQuery";async execute(T={}){return AT.startActiveSpan("drizzle.execute",async(F)=>{let _=j4(this.params,T);F?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(_)}),this.logger.logQuery(this.queryString,_);let{fields:W,queryString:J,client:$,joinsNotNullableMap:Y,customResultMapper:Z}=this;if(!W&&!Z)return AT.startActiveSpan("drizzle.driver.execute",()=>{return $.unsafe(J,_)});let A=await AT.startActiveSpan("drizzle.driver.execute",()=>{return F?.setAttributes({"drizzle.query.text":J,"drizzle.query.params":JSON.stringify(_)}),$.unsafe(J,_).values()});return AT.startActiveSpan("drizzle.mapResponse",()=>{return Z?Z(A):A.map((X)=>xY(W,X,Y))})})}all(T={}){return AT.startActiveSpan("drizzle.execute",async(F)=>{let _=j4(this.params,T);return F?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(_)}),this.logger.logQuery(this.queryString,_),AT.startActiveSpan("drizzle.driver.execute",()=>{return F?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(_)}),this.client.unsafe(this.queryString,_)})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class EW extends MJ{constructor(T,F,_,W={}){super(F);this.client=T,this.schema=_,this.options=W,this.logger=W.logger??new x4}static[H]="PostgresJsSession";logger;prepareQuery(T,F,_,W,J){return new PA(this.client,T.sql,T.params,this.logger,F,W,J)}query(T,F){return this.logger.logQuery(T,F),this.client.unsafe(T,F).values()}queryObjects(T,F){return this.client.unsafe(T,F)}transaction(T,F){return this.client.begin(async(_)=>{let W=new EW(_,this.dialect,this.schema,this.options),J=new zJ(this.dialect,W,this.schema);if(F)await J.setTransaction(F);return T(J)})}}class zJ extends QJ{constructor(T,F,_,W=0){super(T,F,_,W);this.session=F}static[H]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint((F)=>{let _=new EW(F,this.dialect,this.schema,this.session.options),W=new zJ(this.dialect,_,this.schema);return T(W)})}}class vA extends zW{static[H]="PostgresJsDatabase"}function A_(T,F={}){let _=(A)=>A;for(let A of["1184","1082","1083","1114","1182","1185","1115","1231"])T.options.parsers[A]=_,T.options.serializers[A]=_;T.options.serializers["114"]=_,T.options.serializers["3802"]=_;let W=new BF({casing:F.casing}),J;if(F.logger===!0)J=new v4;else if(F.logger!==!1)J=F.logger;let $;if(F.schema){let A=ZA(F.schema,AA);$={fullSchema:F.schema,schema:A.tables,tableNamesMap:A.tableNamesMap}}let Y=new EW(T,W,$,{logger:J}),Z=new vA(W,Y,$);return Z.$client=T,Z}function p1(...T){if(typeof T[0]==="string"){let F=Z_(T[0]);return A_(F,T[1])}if(pY(T[0])){let{connection:F,client:_,...W}=T[0];if(_)return A_(_,W);if(typeof F==="object"&&F.url!==void 0){let{url:$,...Y}=F,Z=Z_($,Y);return A_(Z,W)}let J=Z_(F);return A_(J,W)}return A_(T[0],T[1])}((T)=>{function F(_){return A_({options:{parsers:{},serializers:{}}},_)}T.mock=F})(p1||(p1={}));var RJ={};g5(RJ,{users:()=>fF,untrackedUserColumnNames:()=>uH,twoFactorMethod:()=>gA,trackedUserColumnName:()=>cH,trackableUserColumnNames:()=>hA,signInHistory:()=>lH,role:()=>bA,players:()=>EJ,passwordResetAttempts:()=>iH,games:()=>g1,banishedIps:()=>tH,accountActions:()=>dH,accountAction:()=>pA});function xA(T){return U`lower(${T})`}var bA=s_("role",["admin","user"]),fF=QF("users",{id:D0().primaryKey().defaultRandom(),username:sT({length:16}).notNull(),emailOffered:sT({length:254}).notNull(),emailVerified:sT({length:254}),password:sT({length:254}),createdAt:y0({withTimezone:!0}).notNull().defaultNow(),createdIp:sT({length:45}).notNull(),isActive:WW().notNull().default(!1),verifiedAt:y0({withTimezone:!0}),userRole:bA().default("user")},(T)=>[OJ("usernameUniqueIndex").on(xA(T.username)),OJ("emailVerifiedUniqueIndex").on(xA(T.emailVerified))]),uH=["id","createdAt","createdIp","isActive","verifiedAt"],hA=["username","emailOffered","emailVerified","password","userRole"],cH=s_("trackedUserColumnName",hA),pA=s_("accountAction",["cooldown","confirmEmail","signIn","resetPassword"]),dH=QF("accountActions",{userId:D0().references(()=>fF.id).primaryKey(),action:pA().notNull(),code:sT({length:254}).notNull(),wrongCodeCount:JW().notNull().default(0),expiresAt:y0({withTimezone:!0}).notNull()}),g1=QF("games",{id:D0().primaryKey().defaultRandom()}),EJ=QF("players",{userId:D0().notNull().references(()=>fF.id,{onDelete:"cascade"}),gameId:D0().notNull().references(()=>g1.id,{onDelete:"cascade"}),score:JW().notNull()},(T)=>[vX({name:"players_userId_gameId_pk",columns:[T.userId,T.gameId]})]),lH=QF("signInHistory",{id:D0().primaryKey().defaultRandom(),userId:D0().references(()=>fF.id,{onDelete:"cascade"}),signInTime:y0({withTimezone:!0}).notNull().defaultNow(),ipAddress:sT({length:45}).notNull(),userAgent:sT({length:1024}),successful:WW().notNull().default(!1)}),gA=s_("twoFactorMethod",["email","phone"]),iH=QF("passwordResetAttempts",{id:D0().primaryKey().defaultRandom(),userId:D0().notNull().references(()=>fF.id,{onDelete:"cascade"}),requestedIp:sT({length:45}).notNull(),requestedAt:y0({withTimezone:!0}).notNull().defaultNow(),succeededIp:sT({length:45}),succeededAt:y0({withTimezone:!0}),verificationMethod:gA().notNull()}),tH=QF("banishedIps",{ip:sT({length:45}).primaryKey(),reason:sT({length:2048}).notNull(),banishedAt:y0({withTimezone:!0}).notNull().defaultNow(),banishedUntil:y0({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class wJ{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(nH.resolve(__dirname,"notify_update.sql"));let T=[vT(fF),vT(g1),vT(EJ)];await this.sql`SELECT create_notify_triggers(${this.sql.array(T)})`,await this.sql.listen("table_update",(F)=>{let _=F.split(","),W=_[0],J=_[1],$=`${W}("${J}")`;if(this.observers.has($))this.observers.get($).next($)})}constructor(T=!1,F={host:q0.POSTGRES_HOST,port:q0.POSTGRES_PORT,user:q0.POSTGRES_USER,password:q0.POSTGRES_PASSWORD,database:q0.POSTGRES_DATABASE}){this.options=F,this.sql=Z_(F),this.drizzle=p1(this.sql,{schema:RJ,logger:T})}observe(T,F){if(!this.observers.has(T))this.observers.set(T,new ZT);this.observers.get(T).subscribe("SINGLETON",F)}}var m1={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"'};function rH(T){return Number.parseInt(T,10)}var sH=J0(m1),aH=sH.keyof().pipe((T)=>rH(T)),mA=J0([aH,"string"]);var VJ=new K4,{logger:X0}=VJ;Object.assign(console,X0,{log:X0.info});X0.info("ready");var KJ=uA(import.meta.dir,"..","app"),HP=new wJ({logQuery(T,F){X0.info("\uD83D\uDCDD query",T,F)}});FO({hostname:"0.0.0.0",port:q0.FRONTEND_PORT??3333,...J1??void 0,async fetch(T){try{let F=new Date,_=new URL(T.url);if(X0.info(T.method,_.pathname),_.pathname==="/")return new Response(Bun.file(uA(KJ,"index.html")));if(_.pathname==="/index.html")return Response.redirect("/");let W=eH(KJ,_.pathname),J=TO(W);if(!J.startsWith(KJ))throw[403,"Access Denied"];if(!await oA(J).exists())return Response.redirect("/");return new Response(oA(J))}catch(F){let _=mA(F);if(_ instanceof J0.errors===!1){let[W,J]=_,Y=`${m1[W]}. ${J}`;return X0.info(`\u274C ${W}: ${Y}`),new Response(Y,{status:W})}if(F instanceof Error)X0.error(F.message);else{let W=HY(F);X0.error("frontend server threw",W)}return new Response(m1[500],{status:500})}}});function o1(){X0.info("\uD83D\uDEEC frontend server exiting"),process.exit(0)}process.on("SIGINT",()=>{X0.info("\u2757 received SIGINT; exiting gracefully"),o1()});process.on("SIGTERM",()=>{X0.info("\u2757 received SIGTERM; exiting gracefully"),o1()});process.on("exit",()=>{X0.info("\u2757 received exit; exiting gracefully"),o1()});VJ.on("timeToStop",()=>{X0.info('\u2757 backend server received signal "timeToStop"; exiting gracefully'),o1()});X0.info(`\uD83D\uDEEB frontend server running at http://localhost:${q0.FRONTEND_PORT}/`);VJ.emit("alive");
|
|
76
|
+
`;await F.execute(U`CREATE SCHEMA IF NOT EXISTS ${U.identifier(J)}`),await F.execute($);let Z=(await F.all(U`select id, hash, created_at from ${U.identifier(J)}.${U.identifier(W)} order by created_at desc limit 1`))[0];await F.transaction(async(A)=>{for await(let X of T)if(!Z||Number(Z.created_at)<X.folderMillis){for(let O of X.sql)await A.execute(U.raw(O));await A.execute(U`insert into ${U.identifier(J)}.${U.identifier(W)} ("hash", "created_at") values(${X.hash}, ${X.folderMillis})`)}})}escapeName(T){return`"${T}"`}escapeParam(T){return`$${T+1}`}escapeString(T){return`'${T.replace(/'/g,"''")}'`}buildWithCTE(T){if(!T?.length)return;let F=[U`with `];for(let[_,W]of T.entries())if(F.push(U`${U.identifier(W._.alias)} as (${W._.sql})`),_<T.length-1)F.push(U`, `);return F.push(U` `),U.join(F)}buildDeleteQuery({table:T,where:F,returning:_,withList:W}){let J=this.buildWithCTE(W),$=_?U` returning ${this.buildSelection(_,{isSingleTable:!0})}`:void 0,Y=F?U` where ${F}`:void 0;return U`${J}delete from ${T}${Y}${$}`}buildUpdateSet(T,F){let _=T[C.Symbol.Columns],W=Object.keys(_).filter(($)=>F[$]!==void 0||_[$]?.onUpdateFn!==void 0),J=W.length;return U.join(W.flatMap(($,Y)=>{let Z=_[$],A=F[$]??U.param(Z.onUpdateFn(),Z),X=U`${U.identifier(this.casing.getColumnCasing(Z))} = ${A}`;if(Y<J-1)return[X,U.raw(", ")];return[X]}))}buildUpdateQuery({table:T,set:F,where:_,returning:W,withList:J,from:$,joins:Y}){let Z=this.buildWithCTE(J),A=T[hT.Symbol.Name],X=T[hT.Symbol.Schema],O=T[hT.Symbol.OriginalName],M=A===O?void 0:A,E=U`${X?U`${U.identifier(X)}.`:void 0}${U.identifier(O)}${M&&U` ${U.identifier(M)}`}`,K=this.buildUpdateSet(T,F),j=$&&U.join([U.raw(" from "),this.buildFromTable($)]),S=this.buildJoins(Y),P=W?U` returning ${this.buildSelection(W,{isSingleTable:!$})}`:void 0,f=_?U` where ${_}`:void 0;return U`${Z}update ${E} set ${K}${j}${S}${f}${P}`}buildSelection(T,{isSingleTable:F=!1}={}){let _=T.length,W=T.flatMap(({field:J},$)=>{let Y=[];if(R(J,k.Aliased)&&J.isSelectionField)Y.push(U.identifier(J.fieldAlias));else if(R(J,k.Aliased)||R(J,k)){let Z=R(J,k.Aliased)?J.sql:J;if(F)Y.push(new k(Z.queryChunks.map((A)=>{if(R(A,L))return U.identifier(this.casing.getColumnCasing(A));return A})));else Y.push(Z);if(R(J,k.Aliased))Y.push(U` as ${U.identifier(J.fieldAlias)}`)}else if(R(J,XT))if(F)Y.push(U.identifier(this.casing.getColumnCasing(J)));else Y.push(J);if($<_-1)Y.push(U`, `);return Y});return U.join(W)}buildJoins(T){if(!T||T.length===0)return;let F=[];for(let[_,W]of T.entries()){if(_===0)F.push(U` `);let J=W.table,$=W.lateral?U` lateral`:void 0,Y=W.on?U` on ${W.on}`:void 0;if(R(J,hT)){let Z=J[hT.Symbol.Name],A=J[hT.Symbol.Schema],X=J[hT.Symbol.OriginalName],O=Z===X?void 0:W.alias;F.push(U`${U.raw(W.joinType)} join${$} ${A?U`${U.identifier(A)}.`:void 0}${U.identifier(X)}${O&&U` ${U.identifier(O)}`}${Y}`)}else if(R(J,Y0)){let Z=J[MT].name,A=J[MT].schema,X=J[MT].originalName,O=Z===X?void 0:W.alias;F.push(U`${U.raw(W.joinType)} join${$} ${A?U`${U.identifier(A)}.`:void 0}${U.identifier(X)}${O&&U` ${U.identifier(O)}`}${Y}`)}else F.push(U`${U.raw(W.joinType)} join${$} ${J}${Y}`);if(_<T.length-1)F.push(U` `)}return U.join(F)}buildFromTable(T){if(R(T,C)&&T[C.Symbol.IsAlias]){let F=U`${U.identifier(T[C.Symbol.OriginalName])}`;if(T[C.Symbol.Schema])F=U`${U.identifier(T[C.Symbol.Schema])}.${F}`;return U`${F} ${U.identifier(T[C.Symbol.Name])}`}return T}buildSelectQuery({withList:T,fields:F,fieldsFlat:_,where:W,having:J,table:$,joins:Y,orderBy:Z,groupBy:A,limit:X,offset:O,lockingClause:M,distinct:E,setOperators:K}){let j=_??V0(F);for(let e of j)if(R(e.field,XT)&&vT(e.field.table)!==(R($,yT)?$._.alias:R($,UW)?$[MT].name:R($,k)?void 0:vT($))&&!((xT)=>Y?.some(({alias:G0})=>G0===(xT[C.Symbol.IsAlias]?vT(xT):xT[C.Symbol.BaseName])))(e.field.table)){let xT=vT(e.field.table);throw new Error(`Your "${e.path.join("->")}" field references a column "${xT}"."${e.field.name}", but the table "${xT}" is not part of the query! Did you forget to join it?`)}let S=!Y||Y.length===0,P=this.buildWithCTE(T),f;if(E)f=E===!0?U` distinct`:U` distinct on (${U.join(E.on,U`, `)})`;let y=this.buildSelection(j,{isSingleTable:S}),h=this.buildFromTable($),TT=this.buildJoins(Y),u=W?U` where ${W}`:void 0,g=J?U` having ${J}`:void 0,d;if(Z&&Z.length>0)d=U` order by ${U.join(Z,U`, `)}`;let ST;if(A&&A.length>0)ST=U` group by ${U.join(A,U`, `)}`;let A0=typeof X==="object"||typeof X==="number"&&X>=0?U` limit ${X}`:void 0,D=O?U` offset ${O}`:void 0,$T=U.empty();if(M){let e=U` for ${U.raw(M.strength)}`;if(M.config.of)e.append(U` of ${U.join(Array.isArray(M.config.of)?M.config.of:[M.config.of],U`, `)}`);if(M.config.noWait)e.append(U` nowait`);else if(M.config.skipLocked)e.append(U` skip locked`);$T.append(e)}let l=U`${P}select${f} ${y} from ${h}${TT}${u}${ST}${g}${d}${A0}${D}${$T}`;if(K.length>0)return this.buildSetOperations(l,K);return l}buildSetOperations(T,F){let[_,...W]=F;if(!_)throw new Error("Cannot pass undefined values to any set operator");if(W.length===0)return this.buildSetOperationQuery({leftSelect:T,setOperator:_});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:T,setOperator:_}),W)}buildSetOperationQuery({leftSelect:T,setOperator:{type:F,isAll:_,rightSelect:W,limit:J,orderBy:$,offset:Y}}){let Z=U`(${T.getSQL()}) `,A=U`(${W.getSQL()})`,X;if($&&$.length>0){let K=[];for(let j of $)if(R(j,L))K.push(U.identifier(j.name));else if(R(j,k)){for(let S=0;S<j.queryChunks.length;S++){let P=j.queryChunks[S];if(R(P,L))j.queryChunks[S]=U.identifier(P.name)}K.push(U`${j}`)}else K.push(U`${j}`);X=U` order by ${U.join(K,U`, `)} `}let O=typeof J==="object"||typeof J==="number"&&J>=0?U` limit ${J}`:void 0,M=U.raw(`${F} ${_?"all ":""}`),E=Y?U` offset ${Y}`:void 0;return U`${Z}${M}${A}${X}${O}${E}`}buildInsertQuery({table:T,values:F,onConflict:_,returning:W,withList:J,select:$,overridingSystemValue_:Y}){let Z=[],A=T[C.Symbol.Columns],X=Object.entries(A).filter(([P,f])=>!f.shouldDisableInsert()),O=X.map(([,P])=>U.identifier(this.casing.getColumnCasing(P)));if($){let P=F;if(R(P,k))Z.push(P);else Z.push(P.getSQL())}else{let P=F;Z.push(U.raw("values "));for(let[f,y]of P.entries()){let h=[];for(let[TT,u]of X){let g=y[TT];if(g===void 0||R(g,Q0)&&g.value===void 0)if(u.defaultFn!==void 0){let d=u.defaultFn(),ST=R(d,k)?d:U.param(d,u);h.push(ST)}else if(!u.default&&u.onUpdateFn!==void 0){let d=u.onUpdateFn(),ST=R(d,k)?d:U.param(d,u);h.push(ST)}else h.push(U`default`);else h.push(g)}if(Z.push(h),f<P.length-1)Z.push(U`, `)}}let M=this.buildWithCTE(J),E=U.join(Z),K=W?U` returning ${this.buildSelection(W,{isSingleTable:!0})}`:void 0,j=_?U` on conflict ${_}`:void 0,S=Y===!0?U`overriding system value `:void 0;return U`${M}insert into ${T} ${O} ${S}${E}${j}${K}`}buildRefreshMaterializedViewQuery({view:T,concurrently:F,withNoData:_}){let W=F?U` concurrently`:void 0,J=_?U` with no data`:void 0;return U`refresh materialized view${W} ${T}${J}`}prepareTyping(T){if(R(T,z1)||R(T,Q1))return"json";else if(R(T,E1))return"decimal";else if(R(T,R1))return"time";else if(R(T,w1)||R(T,K1))return"timestamp";else if(R(T,U1)||R(T,M1))return"date";else if(R(T,V1))return"uuid";else return"none"}sqlToQuery(T,F){return T.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:F})}buildRelationalQueryWithoutPK({fullSchema:T,schema:F,tableNamesMap:_,table:W,tableConfig:J,queryConfig:$,tableAlias:Y,nestedQueryRelation:Z,joinOn:A}){let X=[],O,M,E=[],K,j=[];if($===!0)X=Object.entries(J.columns).map(([f,y])=>({dbKey:y.name,tsKey:f,field:m0(y,Y),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let P=Object.fromEntries(Object.entries(J.columns).map(([g,d])=>[g,m0(d,Y)]));if($.where){let g=typeof $.where==="function"?$.where(P,$A()):$.where;K=g&&FW(g,Y)}let f=[],y=[];if($.columns){let g=!1;for(let[d,ST]of Object.entries($.columns)){if(ST===void 0)continue;if(d in J.columns){if(!g&&ST===!0)g=!0;y.push(d)}}if(y.length>0)y=g?y.filter((d)=>$.columns?.[d]===!0):Object.keys(J.columns).filter((d)=>!y.includes(d))}else y=Object.keys(J.columns);for(let g of y){let d=J.columns[g];f.push({tsKey:g,value:d})}let h=[];if($.with)h=Object.entries($.with).filter((g)=>!!g[1]).map(([g,d])=>({tsKey:g,queryConfig:d,relation:J.relations[g]}));let TT;if($.extras){TT=typeof $.extras==="function"?$.extras(P,{sql:U}):$.extras;for(let[g,d]of Object.entries(TT))f.push({tsKey:g,value:y4(d,Y)})}for(let{tsKey:g,value:d}of f)X.push({dbKey:R(d,k.Aliased)?d.fieldAlias:J.columns[g].name,tsKey:g,field:R(d,XT)?m0(d,Y):d,relationTableTsKey:void 0,isJson:!1,selection:[]});let u=typeof $.orderBy==="function"?$.orderBy(P,YA()):$.orderBy??[];if(!Array.isArray(u))u=[u];E=u.map((g)=>{if(R(g,XT))return m0(g,Y);return FW(g,Y)}),O=$.limit,M=$.offset;for(let{tsKey:g,queryConfig:d,relation:ST}of h){let A0=XA(F,_,ST),D=SF(ST.referencedTable),$T=_[D],l=`${Y}_${g}`,e=YW(...A0.fields.map((S0,qF)=>D1(m0(A0.references[qF],l),m0(S0,Y)))),xT=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:F,tableNamesMap:_,table:T[$T],tableConfig:F[$T],queryConfig:R(ST,zF)?d===!0?{limit:1}:{...d,limit:1}:d,tableAlias:l,joinOn:e,nestedQueryRelation:ST}),G0=U`${U.identifier(l)}.${U.identifier("data")}`.as(g);j.push({on:U`true`,table:new yT(xT.sql,{},l),alias:l,joinType:"left",lateral:!0}),X.push({dbKey:g,tsKey:g,field:G0,relationTableTsKey:$T,isJson:!0,selection:xT.selection})}}if(X.length===0)throw new H1({message:`No fields selected for table "${J.tsName}" ("${Y}")`});let S;if(K=YW(A,K),Z){let P=U`json_build_array(${U.join(X.map(({field:h,tsKey:TT,isJson:u})=>u?U`${U.identifier(`${Y}_${TT}`)}.${U.identifier("data")}`:R(h,k.Aliased)?h.sql:h),U`, `)})`;if(R(Z,ZW))P=U`coalesce(json_agg(${P}${E.length>0?U` order by ${U.join(E,U`, `)}`:void 0}), '[]'::json)`;let f=[{dbKey:"data",tsKey:"data",field:P.as("data"),isJson:!0,relationTableTsKey:J.tsName,selection:X}];if(O!==void 0||M!==void 0||E.length>0)S=this.buildSelectQuery({table:G1(W,Y),fields:{},fieldsFlat:[{path:[],field:U.raw("*")}],where:K,limit:O,offset:M,orderBy:E,setOperators:[]}),K=void 0,O=void 0,M=void 0,E=[];else S=G1(W,Y);S=this.buildSelectQuery({table:R(S,hT)?S:new yT(S,{},Y),fields:{},fieldsFlat:f.map(({field:h})=>({path:[],field:R(h,XT)?m0(h,Y):h})),joins:j,where:K,limit:O,offset:M,orderBy:E,setOperators:[]})}else S=this.buildSelectQuery({table:G1(W,Y),fields:{},fieldsFlat:X.map(({field:P})=>({path:[],field:R(P,XT)?m0(P,Y):P})),joins:j,where:K,limit:O,offset:M,orderBy:E,setOperators:[]});return{tableTsKey:J.tsName,sql:S,selection:X}}}class $J{static[H]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class aT{static[H]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(T){if(this.fields=T.fields,this.session=T.session,this.dialect=T.dialect,T.withList)this.withList=T.withList;this.distinct=T.distinct}authToken;setToken(T){return this.authToken=T,this}from(T){let F=!!this.fields,_=T,W;if(this.fields)W=this.fields;else if(R(_,yT))W=Object.fromEntries(Object.keys(_._.selectedFields).map((J)=>[J,_[J]]));else if(R(_,UW))W=_[MT].selectedFields;else if(R(_,k))W={};else W=hY(_);return new YJ({table:_,fields:W,isPartialSelect:F,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class fA extends $J{static[H]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:F,isPartialSelect:_,session:W,dialect:J,withList:$,distinct:Y}){super();this.config={withList:$,table:T,fields:{...F},distinct:Y,setOperators:[]},this.isPartialSelect=_,this.session=W,this.dialect=J,this._={selectedFields:F},this.tableName=a0(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T,F){return(_,W)=>{let J=this.tableName,$=a0(_);if(typeof $==="string"&&this.config.joins?.some((Y)=>Y.alias===$))throw new Error(`Alias "${$}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof J==="string")this.config.fields={[J]:this.config.fields};if(typeof $==="string"&&!R(_,k)){let Y=R(_,yT)?_._.selectedFields:R(_,Y0)?_[MT].selectedFields:_[C.Symbol.Columns];this.config.fields[$]=Y}}if(typeof W==="function")W=W(new Proxy(this.config.fields,new LT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:W,table:_,joinType:T,alias:$,lateral:F}),typeof $==="string")switch(T){case"left":{this.joinsNotNullableMap[$]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([Y])=>[Y,!1])),this.joinsNotNullableMap[$]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[$]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([Y])=>[Y,!1])),this.joinsNotNullableMap[$]=!1;break}}return this}}leftJoin=this.createJoin("left",!1);leftJoinLateral=this.createJoin("left",!0);rightJoin=this.createJoin("right",!1);innerJoin=this.createJoin("inner",!1);innerJoinLateral=this.createJoin("inner",!0);fullJoin=this.createJoin("full",!1);crossJoin=this.createJoin("cross",!1);crossJoinLateral=this.createJoin("cross",!0);createSetOperator(T,F){return(_)=>{let W=typeof _==="function"?_(xH()):_;if(!_W(this.getSelectedFields(),W.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:T,isAll:F,rightSelect:W}),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(T){return this.config.setOperators.push(...T),this}where(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new LT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=T,this}having(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new LT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=T,this}groupBy(...T){if(typeof T[0]==="function"){let F=T[0](new Proxy(this.config.fields,new LT({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(F)?F:[F]}else this.config.groupBy=T;return this}orderBy(...T){if(typeof T[0]==="function"){let F=T[0](new Proxy(this.config.fields,new LT({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),_=Array.isArray(F)?F:[F];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=_;else this.config.orderBy=_}else{let F=T;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=F;else this.config.orderBy=F}return this}limit(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=T;else this.config.limit=T;return this}offset(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=T;else this.config.offset=T;return this}for(T,F={}){return this.config.lockingClause={strength:T,config:F},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:T,...F}=this.dialect.sqlToQuery(this.getSQL());return F}as(T){return new Proxy(new yT(this.getSQL(),this.config.fields,T),new LT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new LT({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class YJ extends fA{static[H]="PgSelect";_prepare(T){let{session:F,config:_,dialect:W,joinsNotNullableMap:J,authToken:$}=this;if(!F)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return AT.startActiveSpan("drizzle.prepareQuery",()=>{let Y=V0(_.fields),Z=F.prepareQuery(W.sqlToQuery(this.getSQL()),Y,T,!0);return Z.joinsNotNullableMap=J,Z.setToken($)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return AT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}bY(YJ,[rT]);function X_(T,F){return(_,W,...J)=>{let $=[W,...J].map((Y)=>({type:T,isAll:F,rightSelect:Y}));for(let Y of $)if(!_W(_.getSelectedFields(),Y.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return _.addSetOperators($)}}var xH=()=>({union:bH,unionAll:hH,intersect:pH,intersectAll:gH,except:mH,exceptAll:oH}),bH=X_("union",!1),hH=X_("union",!0),pH=X_("intersect",!1),gH=X_("intersect",!0),mH=X_("except",!1),oH=X_("except",!0);class MW{static[H]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=R(T,BF)?T:void 0,this.dialectConfig=R(T,BF)?void 0:T}$with=(T,F)=>{let _=this;return{as:(J)=>{if(typeof J==="function")J=J(_);return new Proxy(new a_(J.getSQL(),F??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),T,!0),new LT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...T){let F=this;function _($){return new aT({fields:$??void 0,session:void 0,dialect:F.getDialect(),withList:T})}function W($){return new aT({fields:$??void 0,session:void 0,dialect:F.getDialect(),distinct:!0})}function J($,Y){return new aT({fields:Y??void 0,session:void 0,dialect:F.getDialect(),distinct:{on:$}})}return{select:_,selectDistinct:W,selectDistinctOn:J}}select(T){return new aT({fields:T??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(T){return new aT({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(T,F){return new aT({fields:F??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:T}})}getDialect(){if(!this.dialect)this.dialect=new BF(this.dialectConfig);return this.dialect}}class x1{constructor(T,F,_,W,J){this.table=T,this.session=F,this.dialect=_,this.withList=W,this.overridingSystemValue_=J}static[H]="PgInsertBuilder";authToken;setToken(T){return this.authToken=T,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(T){if(T=Array.isArray(T)?T:[T],T.length===0)throw new Error("values() must be called with at least one value");let F=T.map((_)=>{let W={},J=this.table[C.Symbol.Columns];for(let $ of Object.keys(_)){let Y=_[$];W[$]=R(Y,k)?Y:new Q0(Y,J[$])}return W});return new ZJ(this.table,F,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(T){let F=typeof T==="function"?T(new MW):T;if(!R(F,k)&&!_W(this.table[X1],F._.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 ZJ(this.table,F,this.session,this.dialect,this.withList,!0)}}class ZJ extends rT{constructor(T,F,_,W,J,$,Y){super();this.session=_,this.dialect=W,this.config={table:T,values:F,withList:J,select:$,overridingSystemValue_:Y}}static[H]="PgInsert";config;returning(T=this.config.table[C.Symbol.Columns]){return this.config.returningFields=T,this.config.returning=V0(T),this}onConflictDoNothing(T={}){if(T.target===void 0)this.config.onConflict=U`do nothing`;else{let F="";F=Array.isArray(T.target)?T.target.map((W)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(W))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target));let _=T.where?U` where ${T.where}`:void 0;this.config.onConflict=U`(${U.raw(F)})${_} do nothing`}return this}onConflictDoUpdate(T){if(T.where&&(T.targetWhere||T.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 F=T.where?U` where ${T.where}`:void 0,_=T.targetWhere?U` where ${T.targetWhere}`:void 0,W=T.setWhere?U` where ${T.setWhere}`:void 0,J=this.dialect.buildUpdateSet(this.config.table,O1(this.config.table,T.set)),$="";return $=Array.isArray(T.target)?T.target.map((Y)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(T.target)),this.config.onConflict=U`(${U.raw($)})${_} do update set ${J}${F}${W}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:T,...F}=this.dialect.sqlToQuery(this.getSQL());return F}_prepare(T){return AT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return AT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new LT({alias:vT(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class XJ extends rT{constructor(T,F,_){super();this.session=F,this.dialect=_,this.config={view:T}}static[H]="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:T,...F}=this.dialect.sqlToQuery(this.getSQL());return F}_prepare(T){return AT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,T,!0)})}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return AT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T,this.authToken)})}}class b1{constructor(T,F,_,W){this.table=T,this.session=F,this.dialect=_,this.withList=W}static[H]="PgUpdateBuilder";authToken;setToken(T){return this.authToken=T,this}set(T){return new qA(this.table,O1(this.table,T),this.session,this.dialect,this.withList).setToken(this.authToken)}}class qA extends rT{constructor(T,F,_,W,J){super();this.session=_,this.dialect=W,this.config={set:F,table:T,withList:J,joins:[]},this.tableName=a0(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[H]="PgUpdate";config;tableName;joinsNotNullableMap;from(T){let F=T,_=a0(F);if(typeof _==="string")this.joinsNotNullableMap[_]=!0;return this.config.from=F,this}getTableLikeFields(T){if(R(T,hT))return T[C.Symbol.Columns];else if(R(T,yT))return T._.selectedFields;return T[MT].selectedFields}createJoin(T){return(F,_)=>{let W=a0(F);if(typeof W==="string"&&this.config.joins.some((J)=>J.alias===W))throw new Error(`Alias "${W}" is already used in this query`);if(typeof _==="function"){let J=this.config.from&&!R(this.config.from,k)?this.getTableLikeFields(this.config.from):void 0;_=_(new Proxy(this.config.table[C.Symbol.Columns],new LT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),J&&new Proxy(J,new LT({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:_,table:F,joinType:T,alias:W}),typeof W==="string")switch(T){case"left":{this.joinsNotNullableMap[W]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([J])=>[J,!1])),this.joinsNotNullableMap[W]=!0;break}case"inner":{this.joinsNotNullableMap[W]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([J])=>[J,!1])),this.joinsNotNullableMap[W]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(T){return this.config.where=T,this}returning(T){if(!T){if(T=Object.assign({},this.config.table[C.Symbol.Columns]),this.config.from){let F=a0(this.config.from);if(typeof F==="string"&&this.config.from&&!R(this.config.from,k)){let _=this.getTableLikeFields(this.config.from);T[F]=_}for(let _ of this.config.joins){let W=a0(_.table);if(typeof W==="string"&&!R(_.table,k)){let J=this.getTableLikeFields(_.table);T[W]=J}}}}return this.config.returningFields=T,this.config.returning=V0(T),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:T,...F}=this.dialect.sqlToQuery(this.getSQL());return F}_prepare(T){let F=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0);return F.joinsNotNullableMap=this.joinsNotNullableMap,F}prepare(T){return this._prepare(T)}authToken;setToken(T){return this.authToken=T,this}execute=(T)=>{return this._prepare().execute(T,this.authToken)};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new LT({alias:vT(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class QW extends k{constructor(T){super(QW.buildEmbeddedCount(T.source,T.filters).queryChunks);this.params=T,this.mapWith(Number),this.session=T.session,this.sql=QW.buildCount(T.source,T.filters)}sql;token;static[H]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(T,F){return U`(select count(*) from ${T}${U.raw(" where ").if(F)}${F})`}static buildCount(T,F){return U`select count(*) as count from ${T}${U.raw(" where ").if(F)}${F};`}setToken(T){return this.token=T,this}then(T,F){return Promise.resolve(this.session.count(this.sql,this.token)).then(T,F)}catch(T){return this.then(void 0,T)}finally(T){return this.then((F)=>{return T?.(),F},(F)=>{throw T?.(),F})}}class GJ{constructor(T,F,_,W,J,$,Y){this.fullSchema=T,this.schema=F,this.tableNamesMap=_,this.table=W,this.tableConfig=J,this.dialect=$,this.session=Y}static[H]="PgRelationalQueryBuilder";findMany(T){return new AJ(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?T:{},"many")}findFirst(T){return new AJ(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?{...T,limit:1}:{limit:1},"first")}}class AJ extends rT{constructor(T,F,_,W,J,$,Y,Z,A){super();this.fullSchema=T,this.schema=F,this.tableNamesMap=_,this.table=W,this.tableConfig=J,this.dialect=$,this.session=Y,this.config=Z,this.mode=A}static[H]="PgRelationalQuery";_prepare(T){return AT.startActiveSpan("drizzle.prepareQuery",()=>{let{query:F,builtQuery:_}=this._toSQL();return this.session.prepareQuery(_,void 0,T,!0,(W,J)=>{let $=W.map((Y)=>L1(this.schema,this.tableConfig,Y,F.selection,J));if(this.mode==="first")return $[0];return $})})}prepare(T){return this._prepare(T)}_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 T=this._getQuery(),F=this.dialect.sqlToQuery(T.sql);return{query:T,builtQuery:F}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(T){return this.authToken=T,this}execute(){return AT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class HJ extends rT{constructor(T,F,_,W){super();this.execute=T,this.sql=F,this.query=_,this.mapBatchResult=W}static[H]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(T,F){return F?this.mapBatchResult(T):T}_prepare(){return this}isResponseInArrayMode(){return!1}}class zW{constructor(T,F,_){if(this.dialect=T,this.session=F,this._=_?{schema:_.schema,fullSchema:_.fullSchema,tableNamesMap:_.tableNamesMap,session:F}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:F},this.query={},this._.schema)for(let[W,J]of Object.entries(this._.schema))this.query[W]=new GJ(_.fullSchema,this._.schema,this._.tableNamesMap,_.fullSchema[W],J,T,F)}static[H]="PgDatabase";query;$with=(T,F)=>{let _=this;return{as:(J)=>{if(typeof J==="function")J=J(new MW(_.dialect));return new Proxy(new a_(J.getSQL(),F??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),T,!0),new LT({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(T,F){return new QW({source:T,filters:F,session:this.session})}with(...T){let F=this;function _(A){return new aT({fields:A??void 0,session:F.session,dialect:F.dialect,withList:T})}function W(A){return new aT({fields:A??void 0,session:F.session,dialect:F.dialect,withList:T,distinct:!0})}function J(A,X){return new aT({fields:X??void 0,session:F.session,dialect:F.dialect,withList:T,distinct:{on:A}})}function $(A){return new b1(A,F.session,F.dialect,T)}function Y(A){return new x1(A,F.session,F.dialect,T)}function Z(A){return new v1(A,F.session,F.dialect,T)}return{select:_,selectDistinct:W,selectDistinctOn:J,update:$,insert:Y,delete:Z}}select(T){return new aT({fields:T??void 0,session:this.session,dialect:this.dialect})}selectDistinct(T){return new aT({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(T,F){return new aT({fields:F??void 0,session:this.session,dialect:this.dialect,distinct:{on:T}})}update(T){return new b1(T,this.session,this.dialect)}insert(T){return new x1(T,this.session,this.dialect)}delete(T){return new v1(T,this.session,this.dialect)}refreshMaterializedView(T){return new XJ(T,this.session,this.dialect)}authToken;execute(T){let F=typeof T==="string"?U.raw(T):T.getSQL(),_=this.dialect.sqlToQuery(F),W=this.session.prepareQuery(_,void 0,void 0,!1);return new HJ(()=>W.execute(void 0,this.authToken),F,_,(J)=>W.mapResult(J,!0))}transaction(T,F){return this.session.transaction(T,F)}}class jA{constructor(T,F){this.unique=T,this.name=F}static[H]="PgIndexBuilderOn";on(...T){return new h1(T.map((F)=>{if(R(F,k))return F;F=F;let _=new r_(F.name,!!F.keyAsName,F.columnType,F.indexConfig);return F.indexConfig=JSON.parse(JSON.stringify(F.defaultConfig)),_}),this.unique,!1,this.name)}onOnly(...T){return new h1(T.map((F)=>{if(R(F,k))return F;F=F;let _=new r_(F.name,!!F.keyAsName,F.columnType,F.indexConfig);return F.indexConfig=F.defaultConfig,_}),this.unique,!0,this.name)}using(T,...F){return new h1(F.map((_)=>{if(R(_,k))return _;_=_;let W=new r_(_.name,!!_.keyAsName,_.columnType,_.indexConfig);return _.indexConfig=JSON.parse(JSON.stringify(_.defaultConfig)),W}),this.unique,!0,this.name,T)}}class h1{static[H]="PgIndexBuilder";config;constructor(T,F,_,W,J="btree"){this.config={name:W,columns:T,unique:F,only:_,method:J}}concurrently(){return this.config.concurrently=!0,this}with(T){return this.config.with=T,this}where(T){return this.config.where=T,this}build(T){return new yA(this.config,T)}}class yA{static[H]="PgIndex";config;constructor(T,F){this.config={...T,table:F}}}function OJ(T){return new jA(!0,T)}class UJ{constructor(T){this.query=T}authToken;getQuery(){return this.query}mapResult(T,F){return T}setToken(T){return this.authToken=T,this}static[H]="PgPreparedQuery";joinsNotNullableMap}class MJ{constructor(T){this.dialect=T}static[H]="PgSession";execute(T,F){return AT.startActiveSpan("drizzle.operation",()=>{return AT.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1)}).setToken(F).execute(void 0,F)})}all(T){return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1).all()}async count(T,F){let _=await this.execute(T,F);return Number(_[0].count)}}class QJ extends zW{constructor(T,F,_,W=0){super(T,F,_);this.schema=_,this.nestedIndex=W}static[H]="PgTransaction";rollback(){throw new P4}getTransactionConfigSQL(T){let F=[];if(T.isolationLevel)F.push(`isolation level ${T.isolationLevel}`);if(T.accessMode)F.push(T.accessMode);if(typeof T.deferrable==="boolean")F.push(T.deferrable?"deferrable":"not deferrable");return U.raw(F.join(" "))}setTransaction(T){return this.session.execute(U`set transaction ${this.getTransactionConfigSQL(T)}`)}}class PA extends UJ{constructor(T,F,_,W,J,$,Y){super({sql:F,params:_});this.client=T,this.queryString=F,this.params=_,this.logger=W,this.fields=J,this._isResponseInArrayMode=$,this.customResultMapper=Y}static[H]="PostgresJsPreparedQuery";async execute(T={}){return AT.startActiveSpan("drizzle.execute",async(F)=>{let _=j4(this.params,T);F?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(_)}),this.logger.logQuery(this.queryString,_);let{fields:W,queryString:J,client:$,joinsNotNullableMap:Y,customResultMapper:Z}=this;if(!W&&!Z)return AT.startActiveSpan("drizzle.driver.execute",()=>{return $.unsafe(J,_)});let A=await AT.startActiveSpan("drizzle.driver.execute",()=>{return F?.setAttributes({"drizzle.query.text":J,"drizzle.query.params":JSON.stringify(_)}),$.unsafe(J,_).values()});return AT.startActiveSpan("drizzle.mapResponse",()=>{return Z?Z(A):A.map((X)=>xY(W,X,Y))})})}all(T={}){return AT.startActiveSpan("drizzle.execute",async(F)=>{let _=j4(this.params,T);return F?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(_)}),this.logger.logQuery(this.queryString,_),AT.startActiveSpan("drizzle.driver.execute",()=>{return F?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(_)}),this.client.unsafe(this.queryString,_)})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class EW extends MJ{constructor(T,F,_,W={}){super(F);this.client=T,this.schema=_,this.options=W,this.logger=W.logger??new x4}static[H]="PostgresJsSession";logger;prepareQuery(T,F,_,W,J){return new PA(this.client,T.sql,T.params,this.logger,F,W,J)}query(T,F){return this.logger.logQuery(T,F),this.client.unsafe(T,F).values()}queryObjects(T,F){return this.client.unsafe(T,F)}transaction(T,F){return this.client.begin(async(_)=>{let W=new EW(_,this.dialect,this.schema,this.options),J=new zJ(this.dialect,W,this.schema);if(F)await J.setTransaction(F);return T(J)})}}class zJ extends QJ{constructor(T,F,_,W=0){super(T,F,_,W);this.session=F}static[H]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint((F)=>{let _=new EW(F,this.dialect,this.schema,this.session.options),W=new zJ(this.dialect,_,this.schema);return T(W)})}}class vA extends zW{static[H]="PostgresJsDatabase"}function A_(T,F={}){let _=(A)=>A;for(let A of["1184","1082","1083","1114","1182","1185","1115","1231"])T.options.parsers[A]=_,T.options.serializers[A]=_;T.options.serializers["114"]=_,T.options.serializers["3802"]=_;let W=new BF({casing:F.casing}),J;if(F.logger===!0)J=new v4;else if(F.logger!==!1)J=F.logger;let $;if(F.schema){let A=ZA(F.schema,AA);$={fullSchema:F.schema,schema:A.tables,tableNamesMap:A.tableNamesMap}}let Y=new EW(T,W,$,{logger:J}),Z=new vA(W,Y,$);return Z.$client=T,Z}function p1(...T){if(typeof T[0]==="string"){let F=Z_(T[0]);return A_(F,T[1])}if(pY(T[0])){let{connection:F,client:_,...W}=T[0];if(_)return A_(_,W);if(typeof F==="object"&&F.url!==void 0){let{url:$,...Y}=F,Z=Z_($,Y);return A_(Z,W)}let J=Z_(F);return A_(J,W)}return A_(T[0],T[1])}((T)=>{function F(_){return A_({options:{parsers:{},serializers:{}}},_)}T.mock=F})(p1||(p1={}));var RJ={};g5(RJ,{users:()=>fF,untrackedUserColumnNames:()=>uH,twoFactorMethod:()=>gA,trackedUserColumnName:()=>cH,trackableUserColumnNames:()=>hA,signInHistory:()=>lH,role:()=>bA,players:()=>EJ,passwordResetAttempts:()=>iH,games:()=>g1,banishedIps:()=>tH,accountActions:()=>dH,accountAction:()=>pA});function xA(T){return U`lower(${T})`}var bA=s_("role",["admin","user"]),fF=QF("users",{id:D0().primaryKey().defaultRandom(),username:sT({length:16}).notNull(),emailOffered:sT({length:254}).notNull(),emailVerified:sT({length:254}),password:sT({length:254}),createdAt:y0({withTimezone:!0}).notNull().defaultNow(),createdIp:sT({length:45}).notNull(),isActive:WW().notNull().default(!1),verifiedAt:y0({withTimezone:!0}),userRole:bA().default("user")},(T)=>[OJ("usernameUniqueIndex").on(xA(T.username)),OJ("emailVerifiedUniqueIndex").on(xA(T.emailVerified))]),uH=["id","createdAt","createdIp","isActive","verifiedAt"],hA=["username","emailOffered","emailVerified","password","userRole"],cH=s_("trackedUserColumnName",hA),pA=s_("accountAction",["cooldown","confirmEmail","signIn","resetPassword"]),dH=QF("accountActions",{userId:D0().references(()=>fF.id).primaryKey(),action:pA().notNull(),code:sT({length:254}).notNull(),wrongCodeCount:JW().notNull().default(0),expiresAt:y0({withTimezone:!0}).notNull()}),g1=QF("games",{id:D0().primaryKey().defaultRandom()}),EJ=QF("players",{userId:D0().notNull().references(()=>fF.id,{onDelete:"cascade"}),gameId:D0().notNull().references(()=>g1.id,{onDelete:"cascade"}),score:JW().notNull()},(T)=>[vX({name:"players_userId_gameId_pk",columns:[T.userId,T.gameId]})]),lH=QF("signInHistory",{id:D0().primaryKey().defaultRandom(),userId:D0().references(()=>fF.id,{onDelete:"cascade"}),signInTime:y0({withTimezone:!0}).notNull().defaultNow(),ipAddress:sT({length:45}).notNull(),userAgent:sT({length:1024}),successful:WW().notNull().default(!1)}),gA=s_("twoFactorMethod",["email","phone"]),iH=QF("passwordResetAttempts",{id:D0().primaryKey().defaultRandom(),userId:D0().notNull().references(()=>fF.id,{onDelete:"cascade"}),requestedIp:sT({length:45}).notNull(),requestedAt:y0({withTimezone:!0}).notNull().defaultNow(),succeededIp:sT({length:45}),succeededAt:y0({withTimezone:!0}),verificationMethod:gA().notNull()}),tH=QF("banishedIps",{ip:sT({length:45}).primaryKey(),reason:sT({length:2048}).notNull(),banishedAt:y0({withTimezone:!0}).notNull().defaultNow(),banishedUntil:y0({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class wJ{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(nH.resolve(__dirname,"notify_update.sql"));let T=[vT(fF),vT(g1),vT(EJ)];await this.sql`SELECT create_notify_triggers(${this.sql.array(T)})`,await this.sql.listen("table_update",(F)=>{let _=F.split(","),W=_[0],J=_[1],$=`${W}("${J}")`;if(this.observers.has($))this.observers.get($).next($)})}constructor(T=!1,F={host:q0.POSTGRES_HOST,port:q0.POSTGRES_PORT,user:q0.POSTGRES_USER,password:q0.POSTGRES_PASSWORD,database:q0.POSTGRES_DATABASE}){this.options=F,this.sql=Z_(F),this.drizzle=p1(this.sql,{schema:RJ,logger:T})}observe(T,F){if(!this.observers.has(T))this.observers.set(T,new ZT);this.observers.get(T).subscribe("SINGLETON",F)}}var m1={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"'};function rH(T){return Number.parseInt(T,10)}var sH=J0(m1),aH=sH.keyof().pipe((T)=>rH(T)),mA=J0([aH,"string"]);var VJ=new K4,{logger:X0}=VJ;Object.assign(console,X0,{log:X0.info});X0.info("ready");var KJ=uA(import.meta.dir,"..","app"),UP=new wJ({logQuery(T,F){X0.info("\uD83D\uDCDD query",T,F)}});_O({hostname:"0.0.0.0",port:q0.FRONTEND_PORT??3333,...J1??void 0,async fetch(T){try{let F=new Date,_=new URL(T.url);if(X0.info(T.method,_.pathname),_.pathname==="/")return new Response(Bun.file(uA(KJ,"index.html")));if(_.pathname==="/index.html")return Response.redirect("/");let W=TO(KJ,_.pathname),J=FO(W);if(!J.startsWith(KJ))throw[403,"Access Denied"];if(!await oA(J).exists())return Response.redirect("/");return new Response(oA(J))}catch(F){let _=mA(F);if(_ instanceof J0.errors===!1){let[W,J]=_,Y=`${m1[W]}. ${J}`;return X0.info(`\u274C ${W}: ${Y}`),new Response(Y,{status:W})}if(F instanceof Error)X0.error(F.message);else{let W=HY(F);X0.error("frontend server threw",W)}return new Response(m1[500],{status:500})}}});function o1(){X0.info("\uD83D\uDEEC frontend server exiting"),process.exit(0)}process.on("SIGINT",()=>{X0.info("\u2757 received SIGINT; exiting gracefully"),o1()});process.on("SIGTERM",()=>{X0.info("\u2757 received SIGTERM; exiting gracefully"),o1()});process.on("exit",()=>{X0.info("\u2757 received exit; exiting gracefully"),o1()});VJ.on("timeToStop",()=>{X0.info('\u2757 backend server received signal "timeToStop"; exiting gracefully'),o1()});var{version:WO}=await Bun.file(eH.resolve(import.meta.dir,"../package.json")).json();X0.info(`\uD83D\uDEEB frontend v${WO} running at http://localhost:${q0.FRONTEND_PORT}/`);VJ.emit("alive");
|