tempest.games 0.2.56 → 0.2.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var hH=Object.create;var{getPrototypeOf:kH,defineProperty:DY,getOwnPropertyNames:bH}=Object;var yH=Object.prototype.hasOwnProperty;var uE=(Y,Z,X)=>{X=Y!=null?hH(kH(Y)):{};let _=Z||!Y||!Y.__esModule?DY(X,"default",{value:Y,enumerable:!0}):X;for(let G of bH(Y))if(!yH.call(_,G))DY(_,G,{get:()=>Y[G],enumerable:!0});return _};var dE=(Y,Z)=>()=>(Z||Y((Z={exports:{}}).exports,Z),Z.exports);var gH=(Y,Z)=>{for(var X in Z)DY(Y,X,{get:Z[X],enumerable:!0,configurable:!0,set:(_)=>Z[X]=()=>_})};var cE=(Y,Z)=>()=>(Y&&(Z=Y(Y=0)),Z);var lE=import.meta.require;import bE,{join as yE,normalize as gE,resolve as uW}from"path";var F4=(Y)=>Array.isArray(Y)?Y:[Y],MX=(Y,Z)=>{let X=[[],[]];for(let _ of Y)if(Z(_))X[0].push(_);else X[1].push(_);return X},p8=Array,s1=(Y,Z)=>Y.includes(Z),AX=(Y,Z=0)=>[...new Array(Y)].map((X,_)=>_+Z),Z0=(Y,Z,X)=>{if(Y===void 0)return Z===void 0?[]:Array.isArray(Z)?Z:[Z];if(X?.prepend)if(Array.isArray(Z))Y.unshift(...Z);else Y.unshift(Z);else if(Array.isArray(Z))Y.push(...Z);else Y.push(Z);return Y},t1=(Y,Z)=>{if(Z===void 0||Z===null)return Y??[];if(Y===void 0||Y===null)return F4(Z);return Y.concat(Z)},RX=(...Y)=>Y.reduce(t1,[]),c1=(Y,Z,X)=>{if(Y===void 0)return Array.isArray(Z)?Z:[Z];let _=X?.isEqual??((G,$)=>G===$);for(let G of F4(Z))if(!Y.some(($)=>_($,G)))Y.push(G);return Y},wX=(Y,Z)=>Y.reduce((X,_)=>{let G=_[Z];return X[G]=Z0(X[G],_),X},{}),a1=(Y,Z,X)=>Y.length===Z.length&&Y.every(X?.isEqual?(_,G)=>X.isEqual(_,Z[G]):(_,G)=>_===Z[G]);var W1=(Y,Z)=>y0(Y)===Z,y0=(Y)=>{let Z=typeof Y;return Z==="object"?Y===null?"null":"object":Z==="function"?"object":Z},H1={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},NX={...H1,function:"a function"};class IX extends Error{}var _0=(Y)=>C4(Y,IX),C4=(Y,Z=Error)=>{throw new Z(Y)};class q2 extends Error{name="ParseError"}var A=(Y)=>C4(Y,q2),S1=(Y)=>` ${Y}`;var o=(Y,Z)=>{let X={},_=Array.isArray(Y),G=!1;for(let[$,W]of Object.entries(Y).entries()){let H=_?Z($,W[1]):Z(...W,$);G||=typeof H[0]==="number";let Q=Array.isArray(H[0])||H.length===0?H:[H];for(let[J,z]of Q)if(typeof J==="object")X[J.group]=Z0(X[J.group],z);else X[J]=z}return G?Object.values(X):X};var LY=Object.entries;var g0=(Y,Z)=>(Y in Z),n4=(Y,Z)=>(Z in Y);class MY{constructor(Y){Object.assign(this,Y)}}var KX=class{};class j2 extends KX{}var pH=(Y,Z)=>{let X={},_={},G;for(G in Y)if(G in Z)X[G]=Y[G];else _[G]=Y[G];return[X,_]};var BX=(Y,Z)=>pH(Y,Z)[1],l1=(Y)=>Object.keys(Y).length===0,q4=(Y)=>[...Object.entries(Y),...Object.getOwnPropertySymbols(Y).map((Z)=>[Z,Y[Z]])],TX=(Y,Z)=>Object.defineProperties(Y,Object.getOwnPropertyDescriptors(Z)),CX=(Y)=>{let Z=Object.keys(Y).sort(),X={};for(let _=0;_<Z.length;_++)X[Z[_]]=Y[Z[_]];return X};var L1=S1("represents an uninitialized value"),qX=(Y)=>Object.values(Y).filter((Z)=>{if(typeof Z==="number")return!0;return typeof Y[Z]!=="number"});var AY={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},RY=globalThis.File??Blob,wY={ArrayBuffer,Blob,File:RY,FormData,Headers,Request,Response,URL},mH={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},j4={...AY,...wY,...mH,String,Number,Boolean},P2=(Y)=>{let Z=Object.getPrototypeOf(Y);while(Z?.constructor&&(!g0(Z.constructor.name,j4)||!(Y instanceof j4[Z.constructor.name])))Z=Object.getPrototypeOf(Z);let X=Z?.constructor?.name;if(X===void 0||X==="Object")return;return X},S2=(Y)=>typeof Y==="object"&&Y!==null?P2(Y)??"object":y0(Y);var U0=Array.isArray,uH={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"},dH={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"},cH={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"},jX={...uH,...dH,...cH},v2=(Y)=>{let Z=Object(Y).name??null;return Z&&g0(Z,j4)&&j4[Z]===Y?Z:null};var NY=(Y,Z)=>{let X=Y.prototype;while(X!==null){if(X===Z.prototype)return!0;X=Object.getPrototypeOf(X)}return!1};var PX=(Y)=>SX(Y,new Map),SX=(Y,Z)=>{if(typeof Y!=="object"||Y===null)return Y;if(Z?.has(Y))return Z.get(Y);let X=v2(Y.constructor);if(X==="Date")return new Date(Y.getTime());if(X&&X!=="Array")return Y;let _=Array.isArray(Y)?Y.slice():Object.create(Object.getPrototypeOf(Y)),G=Object.getOwnPropertyDescriptors(Y);if(Z){Z.set(Y,_);for(let $ in G){let W=G[$];if("get"in W||"set"in W)continue;W.value=SX(W.value,Z)}}return Object.defineProperties(_,G),_};var lH=(Y)=>{let Z=L1;return()=>Z===L1?Z=Y():Z},E4=(Y)=>typeof Y==="function"&&Y.length===0;var vX=class extends Function{constructor(...Y){let Z=Y.slice(0,-1),X=Y.at(-1);try{super(...Z,X)}catch(_){return _0(`Encountered an unexpected error while compiling your definition:
3
+ var hH=Object.create;var{getPrototypeOf:kH,defineProperty:DY,getOwnPropertyNames:bH}=Object;var yH=Object.prototype.hasOwnProperty;var uE=(Y,Z,X)=>{X=Y!=null?hH(kH(Y)):{};let _=Z||!Y||!Y.__esModule?DY(X,"default",{value:Y,enumerable:!0}):X;for(let G of bH(Y))if(!yH.call(_,G))DY(_,G,{get:()=>Y[G],enumerable:!0});return _};var dE=(Y,Z)=>()=>(Z||Y((Z={exports:{}}).exports,Z),Z.exports);var gH=(Y,Z)=>{for(var X in Z)DY(Y,X,{get:Z[X],enumerable:!0,configurable:!0,set:(_)=>Z[X]=()=>_})};var cE=(Y,Z)=>()=>(Y&&(Z=Y(Y=0)),Z);var lE=import.meta.require;import bE,{join as yE,normalize as gE,resolve as uW}from"path";var F4=(Y)=>Array.isArray(Y)?Y:[Y],MX=(Y,Z)=>{let X=[[],[]];for(let _ of Y)if(Z(_))X[0].push(_);else X[1].push(_);return X},p8=Array,s1=(Y,Z)=>Y.includes(Z),AX=(Y,Z=0)=>[...Array(Y)].map((X,_)=>_+Z),Z0=(Y,Z,X)=>{if(Y===void 0)return Z===void 0?[]:Array.isArray(Z)?Z:[Z];if(X?.prepend)if(Array.isArray(Z))Y.unshift(...Z);else Y.unshift(Z);else if(Array.isArray(Z))Y.push(...Z);else Y.push(Z);return Y},t1=(Y,Z)=>{if(Z===void 0||Z===null)return Y??[];if(Y===void 0||Y===null)return F4(Z);return Y.concat(Z)},RX=(...Y)=>Y.reduce(t1,[]),c1=(Y,Z,X)=>{if(Y===void 0)return Array.isArray(Z)?Z:[Z];let _=X?.isEqual??((G,$)=>G===$);for(let G of F4(Z))if(!Y.some(($)=>_($,G)))Y.push(G);return Y},wX=(Y,Z)=>Y.reduce((X,_)=>{let G=_[Z];return X[G]=Z0(X[G],_),X},{}),a1=(Y,Z,X)=>Y.length===Z.length&&Y.every(X?.isEqual?(_,G)=>X.isEqual(_,Z[G]):(_,G)=>_===Z[G]);var W1=(Y,Z)=>y0(Y)===Z,y0=(Y)=>{let Z=typeof Y;return Z==="object"?Y===null?"null":"object":Z==="function"?"object":Z},H1={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},NX={...H1,function:"a function"};class IX extends Error{}var _0=(Y)=>C4(Y,IX),C4=(Y,Z=Error)=>{throw new Z(Y)};class q2 extends Error{name="ParseError"}var A=(Y)=>C4(Y,q2),S1=(Y)=>` ${Y}`;var o=(Y,Z)=>{let X={},_=Array.isArray(Y),G=!1;for(let[$,W]of Object.entries(Y).entries()){let H=_?Z($,W[1]):Z(...W,$);G||=typeof H[0]==="number";let Q=Array.isArray(H[0])||H.length===0?H:[H];for(let[J,z]of Q)if(typeof J==="object")X[J.group]=Z0(X[J.group],z);else X[J]=z}return G?Object.values(X):X};var LY=Object.entries;var g0=(Y,Z)=>(Y in Z),n4=(Y,Z)=>(Z in Y);class MY{constructor(Y){Object.assign(this,Y)}}var KX=class{};class j2 extends KX{}var pH=(Y,Z)=>{let X={},_={},G;for(G in Y)if(G in Z)X[G]=Y[G];else _[G]=Y[G];return[X,_]};var BX=(Y,Z)=>pH(Y,Z)[1],l1=(Y)=>Object.keys(Y).length===0,q4=(Y)=>[...Object.entries(Y),...Object.getOwnPropertySymbols(Y).map((Z)=>[Z,Y[Z]])],TX=(Y,Z)=>Object.defineProperties(Y,Object.getOwnPropertyDescriptors(Z)),CX=(Y)=>{let Z=Object.keys(Y).sort(),X={};for(let _=0;_<Z.length;_++)X[Z[_]]=Y[Z[_]];return X};var L1=S1("represents an uninitialized value"),qX=(Y)=>Object.values(Y).filter((Z)=>{if(typeof Z==="number")return!0;return typeof Y[Z]!=="number"});var AY={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},RY=globalThis.File??Blob,wY={ArrayBuffer,Blob,File:RY,FormData,Headers,Request,Response,URL},mH={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},j4={...AY,...wY,...mH,String,Number,Boolean},P2=(Y)=>{let Z=Object.getPrototypeOf(Y);while(Z?.constructor&&(!g0(Z.constructor.name,j4)||!(Y instanceof j4[Z.constructor.name])))Z=Object.getPrototypeOf(Z);let X=Z?.constructor?.name;if(X===void 0||X==="Object")return;return X},S2=(Y)=>typeof Y==="object"&&Y!==null?P2(Y)??"object":y0(Y);var U0=Array.isArray,uH={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"},dH={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"},cH={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"},jX={...uH,...dH,...cH},v2=(Y)=>{let Z=Object(Y).name??null;return Z&&g0(Z,j4)&&j4[Z]===Y?Z:null};var NY=(Y,Z)=>{let X=Y.prototype;while(X!==null){if(X===Z.prototype)return!0;X=Object.getPrototypeOf(X)}return!1};var PX=(Y)=>SX(Y,new Map),SX=(Y,Z)=>{if(typeof Y!=="object"||Y===null)return Y;if(Z?.has(Y))return Z.get(Y);let X=v2(Y.constructor);if(X==="Date")return new Date(Y.getTime());if(X&&X!=="Array")return Y;let _=Array.isArray(Y)?Y.slice():Object.create(Object.getPrototypeOf(Y)),G=Object.getOwnPropertyDescriptors(Y);if(Z){Z.set(Y,_);for(let $ in G){let W=G[$];if("get"in W||"set"in W)continue;W.value=SX(W.value,Z)}}return Object.defineProperties(_,G),_};var lH=(Y)=>{let Z=L1;return()=>Z===L1?Z=Y():Z},E4=(Y)=>typeof Y==="function"&&Y.length===0;var vX=class extends Function{constructor(...Y){let Z=Y.slice(0,-1),X=Y.at(-1);try{super(...Z,X)}catch(_){return _0(`Encountered an unexpected error while compiling your definition:
4
4
  Message: ${_}
5
5
  Source: (${Y.slice(0,-1)}) => {
6
6
  ${Y.at(-1)}
7
- }`)}}};class v1{constructor(Y,...[Z]){return Object.assign(Object.setPrototypeOf(Y.bind(Z?.bind??this),this.constructor.prototype),Z?.attach)}}var xX=lH(()=>{try{return new Function("return false")()}catch{return!0}});var FV=S1("brand");var fX=S1("arkInferred");var OV=S1("args");class r0{constructor(){}}var oH=()=>{try{return((new Error().stack?.split(`
7
+ }`)}}};class v1{constructor(Y,...[Z]){return Object.assign(Object.setPrototypeOf(Y.bind(Z?.bind??this),this.constructor.prototype),Z?.attach)}}var xX=lH(()=>{try{return Function("return false")()}catch{return!0}});var FV=S1("brand");var fX=S1("arkInferred");var OV=S1("args");class r0{constructor(){}}var oH=()=>{try{return((Error().stack?.split(`
8
8
  `)[2]?.trim()||"").match(/\(?(.+?)(?::\d+:\d+)?\)?$/)?.[1]||"unknown").replace(/^file:\/\//,"")}catch{return"unknown"}},iH=globalThis.process?.env??{},hX={fileName:oH,env:iH};var kX=(Y)=>Y[0].toUpperCase()+Y.slice(1);var IY=(Y)=>new RegExp(nH(Y),typeof Y==="string"?"":Y.flags);var nH=(Y)=>{return`^(?:${typeof Y==="string"?Y:Y.source})$`};var e1={negativeLookahead:(Y)=>`(?!${Y})`,nonCapturingGroup:(Y)=>`(?:${Y})`},x2="\\",V4={" ":1,"\n":1,"\t":1};var rH=/^-0\.?0*$/.source,yX=/[1-9]\d*/.source,sH=/\.\d+/.source,tH=/\.\d*[1-9]/.source,gX=(Y)=>IY(e1.negativeLookahead(rH)+e1.nonCapturingGroup("-?"+e1.nonCapturingGroup(e1.nonCapturingGroup("0|"+yX)+e1.nonCapturingGroup(Y.decimalPattern)+"?")+(Y.allowDecimalOnly?"|"+Y.decimalPattern:"")+"?")),bX=gX({decimalPattern:tH,allowDecimalOnly:!1}),aH=bX.test.bind(bX),m8=gX({decimalPattern:sH,allowDecimalOnly:!0}),NV=m8.test.bind(m8),eH=/^-?\d*\.?\d*$/,YJ=(Y)=>Y.length!==0&&eH.test(Y),f2=IY(e1.negativeLookahead("^-0$")+"-?"+e1.nonCapturingGroup(e1.nonCapturingGroup("0|"+yX))),ZJ=f2.test.bind(f2),KY=/^-?\d+$/,XJ=KY.test.bind(KY),pX={number:"a number",bigint:"a bigint",integer:"an integer"},mX=(Y,Z)=>`'${Y}' was parsed as ${pX[Z]} but could not be narrowed to a literal value. Avoid unnecessary leading or trailing zeros and other abnormal notation`,_J=(Y,Z)=>Z==="number"?aH(Y):ZJ(Y),GJ=(Y,Z)=>Z==="number"?Number(Y):Number.parseInt(Y),$J=(Y,Z)=>Z==="number"?YJ(Y):XJ(Y),uX=(Y,Z)=>BY(Y,"number",Z),dX=(Y,Z)=>BY(Y,"number",{...Z,strict:!0}),cX=(Y,Z)=>BY(Y,"integer",Z),BY=(Y,Z,X)=>{let _=GJ(Y,Z);if(!Number.isNaN(_)){if($J(Y,Z)){if(X?.strict)return _J(Y,Z)?_:A(mX(Y,Z));return _}}return X?.errorOnFail?A(X?.errorOnFail===!0?`Failed to parse ${pX[Z]} from '${Y}'`:X?.errorOnFail):void 0},lX=(Y)=>{if(Y[Y.length-1]!=="n")return;let Z=Y.slice(0,-1),X;try{X=BigInt(Z)}catch{return}if(f2.test(Z))return X;if(KY.test(Z))return A(mX(Y,"bigint"))};var WJ="0.49.0",HJ={version:WJ,filename:hX.fileName(),FileConstructor:RY},P4=HJ,oX=new Map,TY=Object.create(null),h2=(Y)=>{let Z=oX.get(Y);if(Z)return Z;let X=JJ(Y);if(TY[X])X=`${X}${TY[X]++}`;else TY[X]=1;return P4[X]=Y,oX.set(Y,X),X},O4=(Y)=>/^[$A-Z_a-z][\w$]*$/.test(Y),JJ=(Y)=>{switch(typeof Y){case"object":{if(Y===null)break;let Z=P2(Y)??"object";return Z[0].toLowerCase()+Z.slice(1)}case"function":return O4(Y.name)?Y.name:"fn";case"symbol":return Y.description&&O4(Y.description)?Y.description:"symbol"}return _0(`Unexpected attempt to register serializable value of type ${y0(Y)}`)};var k2=(Y)=>typeof Y==="string"?JSON.stringify(Y):typeof Y==="bigint"?`${Y}n`:`${Y}`;var iX=(Y,Z={})=>b2(Y,{onUndefined:"$ark.undefined",onBigInt:(X)=>`$ark.bigint-${X}`,...Z},[]);var i=(Y,Z)=>{switch(y0(Y)){case"object":let X=Y,_=X.constructor.name;return _==="Object"||_==="Array"?Z?.quoteKeys===!1?u8(X,Z?.indent??0,""):JSON.stringify(b2(X,r4,[]),null,Z?.indent):u8(X,Z?.indent??0,"");case"symbol":return r4.onSymbol(Y);default:return k2(Y)}},u8=(Y,Z,X)=>{if(typeof Y==="function")return r4.onFunction(Y);if(typeof Y!=="object"||Y===null)return k2(Y);let _=X+" ".repeat(Z);if(Array.isArray(Y)){if(Y.length===0)return"[]";let $=Y.map((W)=>u8(W,Z,_)).join(`,
9
9
  `+_);return Z?`[
10
10
  ${_}${$}
11
11
  ${X}]`:`[${$}]`}let G=Y.constructor.name;if(G==="Object"){let $=q4(Y).map(([W,H])=>{let Q=typeof W==="symbol"?r4.onSymbol(W):O4(W)?W:JSON.stringify(W),J=u8(H,Z,_);return`${_}${Q}: ${J}`});if($.length===0)return"{}";return Z?`{
12
12
  ${$.join(`,
13
13
  `)}
14
- ${X}}`:`{${$.join(", ")}}`}if(Y instanceof Date)return S4(Y);if("expression"in Y&&typeof Y.expression==="string")return Y.expression;return G},r4={onCycle:()=>"(cycle)",onSymbol:(Y)=>`Symbol(${h2(Y)})`,onFunction:(Y)=>`Function(${h2(Y)})`},b2=(Y,Z,X)=>{switch(y0(Y)){case"object":{let _=Y;if("toJSON"in _&&typeof _.toJSON==="function")return _.toJSON();if(typeof _==="function")return r4.onFunction(_);if(X.includes(_))return"(cycle)";let G=[...X,_];if(Array.isArray(_))return _.map((W)=>b2(W,Z,G));if(_ instanceof Date)return _.toDateString();let $={};for(let W in _)$[W]=b2(_[W],Z,G);for(let W of Object.getOwnPropertySymbols(_))$[Z.onSymbol?.(W)??W.toString()]=b2(_[W],Z,G);return $}case"symbol":return r4.onSymbol(Y);case"bigint":return Z.onBigInt?.(Y)??`${Y}n`;case"undefined":return Z.onUndefined??"undefined";case"string":return Y.replaceAll("\\","\\\\");default:return Y}},S4=(Y)=>{let Z=Y.getFullYear(),X=Y.getMonth(),_=Y.getDate(),G=Y.getHours(),$=Y.getMinutes(),W=Y.getSeconds(),H=Y.getMilliseconds();if(X===0&&_===1&&G===0&&$===0&&W===0&&H===0)return`${Z}`;let Q=`${QJ[X]} ${_}, ${Z}`;if(G===0&&$===0&&W===0&&H===0)return Q;let J=Y.toLocaleTimeString(),z=J.endsWith(" AM")||J.endsWith(" PM")?J.slice(-3):"";if(z)J=J.slice(0,-z.length);if(H)J+=`.${UJ(H,3)}`;else if(zJ.test(J))J=J.slice(0,-3);return`${J+z}, ${Q}`},QJ=["January","February","March","April","May","June","July","August","September","October","November","December"],zJ=/:\d\d:00$/,UJ=(Y,Z)=>String(Y).padStart(Z,"0");var nX=(Y,Z,...[X])=>{let _=X?.stringifySymbol??i,G=Y;switch(typeof Z){case"string":G=O4(Z)?Y===""?Z:`${Y}.${Z}`:`${Y}[${JSON.stringify(Z)}]`;break;case"number":G=`${Y}[${Z}]`;break;case"symbol":G=`${Y}[${_(Z)}]`;break;default:if(X?.stringifyNonKey)G=`${Y}[${X.stringifyNonKey(Z)}]`;else A(`${i(Z)} must be a PropertyKey or stringifyNonKey must be passed to options`)}return G},Y4=(Y,...Z)=>Y.reduce((X,_)=>nX(X,_,...Z),"");class y2 extends p8{cache={};constructor(...Y){super();this.push(...Y)}toJSON(){if(this.cache.json)return this.cache.json;this.cache.json=[];for(let Y=0;Y<this.length;Y++)this.cache.json.push(typeof this[Y]==="symbol"?i(this[Y]):this[Y]);return this.cache.json}stringify(){if(this.cache.stringify)return this.cache.stringify;return this.cache.stringify=Y4(this)}stringifyAncestors(){if(this.cache.stringifyAncestors)return this.cache.stringifyAncestors;let Y="",Z=[Y];for(let X of this)Y=nX(Y,X),Z.push(Y);return this.cache.stringifyAncestors=Z}}class CY{chars;i;def;constructor(Y){this.def=Y,this.chars=[...Y],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(Y){let Z="";while(this.lookahead){if(Y(this,Z))if(Z[Z.length-1]===x2)Z=Z.slice(0,-1);else break;Z+=this.shift()}return Z}shiftUntilLookahead(Y){return typeof Y==="string"?this.shiftUntil((Z)=>Z.lookahead===Y):this.shiftUntil((Z)=>(Z.lookahead in Y))}shiftUntilNonWhitespace(){return this.shiftUntil(()=>!(this.lookahead in V4))}jumpToIndex(Y){this.i=Y<0?this.length+Y:Y}jumpForward(Y){this.i+=Y}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(Y,Z){return this.chars.slice(Y,Z).join("")}lookaheadIs(Y){return this.lookahead===Y}lookaheadIsIn(Y){return this.lookahead in Y}}var iV=S1("implementedTraits");var qY="$ark",FJ=2;while(qY in globalThis)qY=`$ark${FJ++}`;var rX=qY;globalThis[rX]=P4;var I=P4,EJ=(Y)=>`${rX}.${Y}`,T0=(Y)=>EJ(h2(Y));class d8 extends j2{argNames;body="";constructor(...Y){super();this.argNames=Y;for(let Z of Y){if(Z in this)throw new Error(`Arg name '${Z}' would overwrite an existing property on FunctionBody`);this[Z]=Z}}indentation=0;indent(){return this.indentation+=4,this}dedent(){return this.indentation-=4,this}prop(Y,Z=!1){return jY(Y,Z)}index(Y,Z=!1){return sX(`${Y}`,Z)}line(Y){return this.body+=`${" ".repeat(this.indentation)}${Y}
14
+ ${X}}`:`{${$.join(", ")}}`}if(Y instanceof Date)return S4(Y);if("expression"in Y&&typeof Y.expression==="string")return Y.expression;return G},r4={onCycle:()=>"(cycle)",onSymbol:(Y)=>`Symbol(${h2(Y)})`,onFunction:(Y)=>`Function(${h2(Y)})`},b2=(Y,Z,X)=>{switch(y0(Y)){case"object":{let _=Y;if("toJSON"in _&&typeof _.toJSON==="function")return _.toJSON();if(typeof _==="function")return r4.onFunction(_);if(X.includes(_))return"(cycle)";let G=[...X,_];if(Array.isArray(_))return _.map((W)=>b2(W,Z,G));if(_ instanceof Date)return _.toDateString();let $={};for(let W in _)$[W]=b2(_[W],Z,G);for(let W of Object.getOwnPropertySymbols(_))$[Z.onSymbol?.(W)??W.toString()]=b2(_[W],Z,G);return $}case"symbol":return r4.onSymbol(Y);case"bigint":return Z.onBigInt?.(Y)??`${Y}n`;case"undefined":return Z.onUndefined??"undefined";case"string":return Y.replaceAll("\\","\\\\");default:return Y}},S4=(Y)=>{let Z=Y.getFullYear(),X=Y.getMonth(),_=Y.getDate(),G=Y.getHours(),$=Y.getMinutes(),W=Y.getSeconds(),H=Y.getMilliseconds();if(X===0&&_===1&&G===0&&$===0&&W===0&&H===0)return`${Z}`;let Q=`${QJ[X]} ${_}, ${Z}`;if(G===0&&$===0&&W===0&&H===0)return Q;let J=Y.toLocaleTimeString(),z=J.endsWith(" AM")||J.endsWith(" PM")?J.slice(-3):"";if(z)J=J.slice(0,-z.length);if(H)J+=`.${UJ(H,3)}`;else if(zJ.test(J))J=J.slice(0,-3);return`${J+z}, ${Q}`},QJ=["January","February","March","April","May","June","July","August","September","October","November","December"],zJ=/:\d\d:00$/,UJ=(Y,Z)=>String(Y).padStart(Z,"0");var nX=(Y,Z,...[X])=>{let _=X?.stringifySymbol??i,G=Y;switch(typeof Z){case"string":G=O4(Z)?Y===""?Z:`${Y}.${Z}`:`${Y}[${JSON.stringify(Z)}]`;break;case"number":G=`${Y}[${Z}]`;break;case"symbol":G=`${Y}[${_(Z)}]`;break;default:if(X?.stringifyNonKey)G=`${Y}[${X.stringifyNonKey(Z)}]`;else A(`${i(Z)} must be a PropertyKey or stringifyNonKey must be passed to options`)}return G},Y4=(Y,...Z)=>Y.reduce((X,_)=>nX(X,_,...Z),"");class y2 extends p8{cache={};constructor(...Y){super();this.push(...Y)}toJSON(){if(this.cache.json)return this.cache.json;this.cache.json=[];for(let Y=0;Y<this.length;Y++)this.cache.json.push(typeof this[Y]==="symbol"?i(this[Y]):this[Y]);return this.cache.json}stringify(){if(this.cache.stringify)return this.cache.stringify;return this.cache.stringify=Y4(this)}stringifyAncestors(){if(this.cache.stringifyAncestors)return this.cache.stringifyAncestors;let Y="",Z=[Y];for(let X of this)Y=nX(Y,X),Z.push(Y);return this.cache.stringifyAncestors=Z}}class CY{chars;i;def;constructor(Y){this.def=Y,this.chars=[...Y],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(Y){let Z="";while(this.lookahead){if(Y(this,Z))if(Z[Z.length-1]===x2)Z=Z.slice(0,-1);else break;Z+=this.shift()}return Z}shiftUntilLookahead(Y){return typeof Y==="string"?this.shiftUntil((Z)=>Z.lookahead===Y):this.shiftUntil((Z)=>(Z.lookahead in Y))}shiftUntilNonWhitespace(){return this.shiftUntil(()=>!(this.lookahead in V4))}jumpToIndex(Y){this.i=Y<0?this.length+Y:Y}jumpForward(Y){this.i+=Y}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(Y,Z){return this.chars.slice(Y,Z).join("")}lookaheadIs(Y){return this.lookahead===Y}lookaheadIsIn(Y){return this.lookahead in Y}}var iV=S1("implementedTraits");var qY="$ark",FJ=2;while(qY in globalThis)qY=`$ark${FJ++}`;var rX=qY;globalThis[rX]=P4;var I=P4,EJ=(Y)=>`${rX}.${Y}`,T0=(Y)=>EJ(h2(Y));class d8 extends j2{argNames;body="";constructor(...Y){super();this.argNames=Y;for(let Z of Y){if(Z in this)throw Error(`Arg name '${Z}' would overwrite an existing property on FunctionBody`);this[Z]=Z}}indentation=0;indent(){return this.indentation+=4,this}dedent(){return this.indentation-=4,this}prop(Y,Z=!1){return jY(Y,Z)}index(Y,Z=!1){return sX(`${Y}`,Z)}line(Y){return this.body+=`${" ".repeat(this.indentation)}${Y}
15
15
  `,this}const(Y,Z){return this.line(`const ${Y} = ${Z}`),this}let(Y,Z){return this.line(`let ${Y} = ${Z}`)}set(Y,Z){return this.line(`${Y} = ${Z}`)}if(Y,Z){return this.block(`if (${Y})`,Z)}elseIf(Y,Z){return this.block(`else if (${Y})`,Z)}else(Y){return this.block("else",Y)}for(Y,Z,X=0){return this.block(`for (let i = ${X}; ${Y}; i++)`,Z)}forIn(Y,Z){return this.block(`for (const k in ${Y})`,Z)}block(Y,Z,X=""){return this.line(`${Y} {`),this.indent(),Z(this),this.dedent(),this.line(`}${X}`)}return(Y=""){return this.line(`return ${Y}`)}write(Y="anonymous",Z=0){return`${Y}(${this.argNames.join(", ")}) { ${Z?this.body.split(`
16
16
  `).map((X)=>" ".repeat(Z)+`${X}`).join(`
17
17
  `):this.body} }`}compile(){return new vX(...this.argNames,this.body)}}var Z4=(Y)=>W1(Y,"object")||typeof Y==="symbol"?T0(Y):k2(Y),jY=(Y,Z=!1)=>{if(typeof Y==="string"&&O4(Y))return`${Z?"?":""}.${Y}`;return sX(VJ(Y),Z)},VJ=(Y)=>typeof Y==="symbol"?T0(Y):JSON.stringify(Y),sX=(Y,Z=!1)=>`${Z?"?.":""}[${Y}]`;class g2 extends d8{traversalKind;optimistic;constructor(Y){super("data","ctx");this.traversalKind=Y.kind,this.optimistic=Y.optimistic===!0}invoke(Y,Z){let X=Z?.arg??this.data,_=typeof Y==="string"?!0:this.requiresContextFor(Y),G=typeof Y==="string"?Y:Y.id;if(_)return`${this.referenceToId(G,Z)}(${X}, ${this.ctx})`;return`${this.referenceToId(G,Z)}(${X})`}referenceToId(Y,Z){let X=Z?.kind??this.traversalKind,_=`this.${Y}${X}`;return Z?.bind?`${_}.bind(${Z?.bind})`:_}requiresContextFor(Y){return this.traversalKind==="Apply"||Y.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(Y,Z,X){let _=this.requiresContextFor(X);if(_)this.line(`${this.ctx}.path.push(${Y})`);if(this.check(X,{arg:Z}),_)this.line(`${this.ctx}.path.pop()`);return this}check(Y,Z){return this.traversalKind==="Allows"?this.if(`!${this.invoke(Y,Z)}`,()=>this.return(!1)):this.line(this.invoke(Y,Z))}}var c8=(Y)=>o(Y,(Z,X)=>[Z,U0(X)?[...X]:X]),Y1=S1("arkKind"),y=(Y,Z)=>Y?.[Y1]===Z,D0=(Y)=>y(Y,"root")||y(Y,"constraint");var tX=["unit","proto","domain"],s4=["required","optional","index","sequence"],PY=["pattern","divisor","exactLength","max","min","maxLength","minLength","before","after"],l8=[...PY,...s4,"structure","predicate"],t4=["alias","union","morph","unit","intersection","proto","domain"],OJ=[...t4,...l8],o8=o(l8,(Y,Z)=>[Z,1]),aX=o([...s4,"undeclared"],(Y,Z)=>[Z,1]),eX=o(OJ,(Y,Z)=>[Z,Y]),a4=(Y)=>typeof Y==="string"&&(Y in eX);var e4=(Y)=>eX[Y],i8=(Y)=>t4.slice(e4(Y)+1),PO=[...i8("union"),"alias"],SO=[...i8("morph"),"alias"],w1=(Y)=>{if(typeof Y==="string"||typeof Y==="boolean"||Y===null)return Y;if(typeof Y==="number"){if(Number.isNaN(Y))return"NaN";if(Y===Number.POSITIVE_INFINITY)return"Infinity";if(Y===Number.NEGATIVE_INFINITY)return"-Infinity";return Y}return Z4(Y)},D4=(Y)=>{let Z="{ ";for(let[X,_]of Object.entries(Y))Z+=`${X}: ${Z4(_)}, `;return Z+" }"},r=(Y)=>{let Z=Y;if(Z.hasAssociatedError)Z.defaults.expected??=(X)=>("description"in X)?X.description:Z.defaults.description(X),Z.defaults.actual??=(X)=>i(X),Z.defaults.problem??=(X)=>`must be ${X.expected}${X.actual?` (was ${X.actual})`:""}`,Z.defaults.message??=(X)=>{if(X.path.length===0)return X.problem;let _=`${X.propString} ${X.problem}`;if(_[0]==="[")return`value at ${_}`;return _};return Z};class Y_ extends Error{name="ToJsonSchemaError";code;context;constructor(Y,Z){super(i(Z,{quoteKeys:!1,indent:4}));this.code=Y,this.context=Z}hasCode(Y){return this.code===Y}}var DJ={dialect:"https://json-schema.org/draft/2020-12/schema",useRefs:!1,fallback:{arrayObject:(Y)=>w0.throw("arrayObject",Y),arrayPostfix:(Y)=>w0.throw("arrayPostfix",Y),defaultValue:(Y)=>w0.throw("defaultValue",Y),domain:(Y)=>w0.throw("domain",Y),morph:(Y)=>w0.throw("morph",Y),patternIntersection:(Y)=>w0.throw("patternIntersection",Y),predicate:(Y)=>w0.throw("predicate",Y),proto:(Y)=>w0.throw("proto",Y),symbolKey:(Y)=>w0.throw("symbolKey",Y),unit:(Y)=>w0.throw("unit",Y),date:(Y)=>w0.throw("date",Y)}},w0={Error:Y_,throw:(...Y)=>{throw new w0.Error(...Y)},throwInternalOperandError:(Y,Z)=>_0(`Unexpected JSON Schema input for ${Y}: ${i(Z)}`),defaultConfig:DJ};I.config??={};var p2=(Y,Z)=>{if(!Z)return Y;let X={...Y},_;for(_ in Z){let G={...Y.keywords};if(_==="keywords"){for(let $ in Z[_]){let W=Z.keywords[$];if(W===void 0)continue;G[$]=typeof W==="string"?{description:W}:W}X.keywords=G}else if(_==="toJsonSchema")X[_]=SY(Y.toJsonSchema,Z.toJsonSchema);else if(a4(_))X[_]={...Y[_],...Z[_]};else X[_]=Z[_]}return X},SY=(Y,Z)=>{if(!Y)return Z??{};if(!Z)return Y;let X={...Y},_;for(_ in Z)if(_==="fallback")X.fallback=LJ(Y.fallback,Z.fallback);else X[_]=Z[_];return X},LJ=(Y,Z)=>{Y=Z_(Y),Z=Z_(Z);let X={},_;for(_ in w0.defaultConfig.fallback)X[_]=Z[_]??Z.default??Y[_]??Y.default??w0.defaultConfig.fallback[_];return X},Z_=(Y)=>typeof Y==="function"?{default:Y}:Y??{};class L4 extends j2{[Y1]="error";path;data;nodeConfig;input;ctx;constructor({prefixPath:Y,relativePath:Z,...X},_){super();this.input=X,this.ctx=_,TX(this,X);let G=_.data;if(X.code==="union")X.errors=X.errors.flatMap((W)=>{let H=W.hasCode("union")?W.errors:[W];if(!Y&&!Z)return H;return H.map((Q)=>Q.transform((J)=>({...J,path:RX(Y,J.path,Z)})))});this.nodeConfig=_.config[this.code];let $=[...X.path??_.path];if(Z)$.push(...Z);if(Y)$.unshift(...Y);this.path=new y2(...$),this.data="data"in X?X.data:G}transform(Y){return new L4(Y({data:this.data,path:this.path,...this.input}),this.ctx)}hasCode(Y){return this.code===Y}get propString(){return Y4(this.path)}get expected(){if(this.input.expected)return this.input.expected;let Y=this.meta?.expected??this.nodeConfig.expected;return typeof Y==="function"?Y(this.input):Y}get actual(){if(this.input.actual)return this.input.actual;let Y=this.meta?.actual??this.nodeConfig.actual;return typeof Y==="function"?Y(this.data):Y}get problem(){if(this.input.problem)return this.input.problem;let Y=this.meta?.problem??this.nodeConfig.problem;return typeof Y==="function"?Y(this):Y}get message(){if(this.input.message)return this.input.message;let Y=this.meta?.message??this.nodeConfig.message;return typeof Y==="function"?Y(this):Y}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 J1 extends p8{[Y1]="errors";ctx;constructor(Y){super();this.ctx=Y}byPath=Object.create(null);get flatByPath(){return o(this.byPath,(Y,Z)=>[Y,Z.flat])}get flatProblemsByPath(){return o(this.byPath,(Y,Z)=>[Y,Z.flat.map((X)=>X.problem)])}byAncestorPath=Object.create(null);count=0;mutable=this;throw(){throw this.toTraversalError()}toTraversalError(){return new vY(this)}add(Y){if(this.includes(Y))return;this._add(Y)}transform(Y){let Z=new J1(this.ctx);for(let X of this)Z.add(Y(X));return Z}merge(Y){for(let Z of Y){if(this.includes(Z))continue;this._add(new L4({...Z,path:[...this.ctx.path,...Z.path]},this.ctx))}}affectsPath(Y){if(this.length===0)return!1;return Y.stringifyAncestors().some((Z)=>(Z in this.byPath))||Y.stringify()in this.byAncestorPath}get summary(){return this.toString()}get issues(){return this}toJSON(){return[...this.map((Y)=>Y.toJSON())]}toString(){return this.join(`
@@ -44,27 +44,27 @@ Right: ${Z}`;var NQ=r({kind:"unit",hasAssociatedError:!0,keys:{unit:{preserveUnd
44
44
  ${W},
45
45
  `;if(!X.hasKind("union"))return H;let Q=new g2({kind:"Allows",optimistic:!0}).indent();X.compile(Q);let J=Q.write(`${X.id}Optimistic`);return`${H}${J},
46
46
  `},`{
47
- `)+"}");class X6{config;resolvedConfig;name;get[Y1](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(Y,Z){if(this.config=p2(I.config,Z),this.resolvedConfig=p2(I.resolvedConfig,Z),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(zZ).length}`,this.name in zZ)A(`A Scope already named ${this.name} already exists`);zZ[this.name]=this;let X=Object.entries(Y).map((_)=>this.preparseOwnAliasEntry(..._));for(let[_,G]of X){let $=_;if(_[0]==="#"){if($=_.slice(1),$ in this.aliases)A(s_($));this.aliases[$]=G}else{if($ in this.aliases)A(s_(_));this.aliases[$]=G,this.exportedNames.push($)}if(!y(G,"module")&&!y(G,"generic")&&!E4(G)){let W=this.preparseOwnDefinitionFormat(G,{alias:$});this.resolutions[$]=y(W,"root")?this.bindReference(W):this.createParseContext(W).id}}t_??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[t_.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=I.intrinsic?o(I.intrinsic,(_,G)=>_.startsWith("json")?[]:[_,this.bindReference(G)]):{}}cacheGetter(Y,Z){return Object.defineProperty(this,Y,{value:Z}),Z}get internal(){return this}_json;get json(){if(!this._json)this.export();return this._json}defineSchema(Y){return Y}generic=(...Y)=>{let Z=this;return(X,_)=>new M4(Y,_?new n8(X):X,Z,Z,_??null)};units=(Y,Z)=>{let X=[];for(let G of Y)if(!X.includes(G))X.push(G);let _=X.map((G)=>this.node("unit",{unit:G},Z));return this.node("union",_,{...Z,prereduced:!0})};lazyResolutions=[];lazilyResolve(Y,Z){let X=this.node("alias",{reference:Z??"synthetic",resolve:Y},{prereduced:!0});if(!this.resolved)this.lazyResolutions.push(X);return X}schema=(Y,Z)=>this.finalize(this.parseSchema(Y,Z));parseSchema=(Y,Z)=>this.node(c2(Y),Y,Z);preparseNode(Y,Z,X){let _=typeof Y==="string"?Y:c2(Z,Y);if(D0(Z)&&Z.kind===_)return Z;if(_==="alias"&&!X?.prereduced){let{reference:W}=s2.implementation.normalize(Z,this);if(W.startsWith("$")){let H=this.resolveRoot(W.slice(1));Z=H,_=H.kind}}else if(_==="union"&&W1(Z,"object")){let W=mQ(Z);if(W?.length===1)Z=W[0],_=c2(Z)}if(D0(Z)&&Z.kind===_)return Z;let $=G2[_].normalize?.(Z,this)??Z;if(D0($))return $.kind===_?$:uQ(_,$.kind);return{...X,$:this,kind:_,def:$,prefix:X.alias??_}}bindReference(Y){let Z;if(D0(Y))Z=Y.$===this?Y:new Y.constructor(Y.attachments,this);else Z=Y.$===this?Y:new M4(Y.params,Y.bodyDef,Y.$,this,Y.hkt);if(!this.resolved)Object.assign(this.referencesById,Z.referencesById);return Z}resolveRoot(Y){return this.maybeResolveRoot(Y)??A(EZ(Y))}maybeResolveRoot(Y){let Z=this.maybeResolve(Y);if(y(Z,"generic"))return;return Z}maybeResolveSubalias(Y){return UZ(this.aliases,Y)??UZ(this.ambient,Y)}get ambient(){return I.ambient}maybeResolve(Y){let Z=this.resolutions[Y];if(Z){if(typeof Z!=="string")return this.bindReference(Z);let _=Z1[Z];if(y(_,"root"))return this.resolutions[Y]=_;if(y(_,"context")){if(_.phase==="resolving")return this.node("alias",{reference:`$${Y}`},{prereduced:!0});if(_.phase==="resolved")return _0(`Unexpected resolved context for was uncached by its scope: ${i(_)}`);_.phase="resolving";let G=this.bindReference(this.parseOwnDefinitionFormat(_.def,_));return _.phase="resolved",Z1[G.id]=G,Z1[_.id]=G,this.resolutions[Y]=G}return _0(`Unexpected nodesById entry for ${Z}: ${i(_)}`)}let X=this.aliases[Y]??this.ambient?.[Y];if(!X)return this.maybeResolveSubalias(Y);if(X=this.normalizeRootScopeValue(X),y(X,"generic"))return this.resolutions[Y]=this.bindReference(X);if(y(X,"module")){if(!X.root)A(GG(Y));return this.resolutions[Y]=this.bindReference(X.root)}return this.resolutions[Y]=this.parse(X,{alias:Y})}createParseContext(Y){let Z=Y.id??iY(Y.prefix);return Z1[Z]=Object.assign(Y,{[Y1]:"context",$:this,id:Z,phase:"unresolved"})}traversal(Y){return new x1(Y,this.resolvedConfig)}import(...Y){return new H2(o(this.export(...Y),(Z,X)=>[`#${Z}`,X]))}precompilation;_exportedResolutions;_exports;export(...Y){if(!this._exports){this._exports={};for(let X of this.exportedNames){let _=this.aliases[X];this._exports[X]=y(_,"module")?QZ(_,this):a_(this.maybeResolve(X))}for(let X of this.lazyResolutions)X.resolution;if(this._exportedResolutions=_G(this,this._exports),this._json=XG(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let X=ZG(this.references);this.precompilation=X.write(e_,4),YG(this.references,X)}this.resolved=!0}let Z=Y.length?Y:this.exportedNames;return new H2(o(Z,(X,_)=>[_,this._exports[_]]))}resolve(Y){return this.export()[Y]}node=(Y,Z,X={})=>{let _=this.preparseNode(Y,Z,X);if(D0(_))return this.bindReference(_);let G=this.createParseContext(_),$=nY(G),W=this.bindReference($);return Z1[G.id]=W};parse=(Y,Z={})=>this.finalize(this.parseDefinition(Y,Z));parseDefinition(Y,Z={}){if(y(Y,"root"))return this.bindReference(Y);let X=this.preparseOwnDefinitionFormat(Y,Z);if(y(X,"root"))return this.bindReference(X);let _=this.createParseContext(X);Z1[_.id]=_;let G=this.bindReference(this.parseOwnDefinitionFormat(Y,_));if(G.isCyclic)G=K_(G,_.id);return Z1[_.id]=G,G}finalize(Y){if(a_(Y),!Y.precompilation&&!this.resolvedConfig.jitless)dQ(Y.references);return Y}}class FZ extends X6{parseOwnDefinitionFormat(Y,Z){return nY(Z)}preparseOwnDefinitionFormat(Y,Z){return this.preparseNode(c2(Y),Y,Z)}preparseOwnAliasEntry(Y,Z){return[Y,Z]}normalizeRootScopeValue(Y){return Y}}var a_=(Y)=>{let Z=Y.references.filter((X)=>X.hasKind("alias"));for(let X of Z){Object.assign(X.referencesById,X.resolution.referencesById);for(let _ of Y.references)if(X.id in _.referencesById)Object.assign(_.referencesById,X.referencesById)}return Y},XG=(Y)=>o(Y,(Z,X)=>[Z,y(X,"root")||y(X,"generic")?X.json:y(X,"module")?XG(X):_0(`Unexpected resolution ${i(X)}`)]),UZ=(Y,Z)=>{let X=Z.indexOf(".");if(X===-1)return;let _=Z.slice(0,X),G=Y[_];if(G===void 0)return;if(!y(G,"module"))return A(cQ(_));let $=Z.slice(X+1),W=G[$];if(W===void 0)return UZ(G,$);if(y(W,"root")||y(W,"generic"))return W;if(y(W,"module"))return W.root??A(GG(Z));_0(`Unexpected resolution for alias '${Z}': ${i(W)}`)},_6=(Y,Z)=>new FZ(Y,Z),e2=new FZ({});var _G=(Y,Z)=>{let X={};for(let _ in Z){let G=Z[_];if(y(G,"module")){let $=_G(Y,G),W=o($,(H,Q)=>[`${_}.${H}`,Q]);Object.assign(X,W)}else if(y(G,"root")||y(G,"generic"))X[_]=G;else _0(`Unexpected scope resolution ${i(G)}`)}return X},EZ=(Y)=>`'${Y}' is unresolvable`,cQ=(Y)=>`'${Y}' must reference a module to be accessed using dot syntax`,GG=(Y)=>`Reference to submodule '${Y}' must specify an alias`;e2.export();var{schema:J0,node:J2,defineSchema:kR,generic:K1}=e2;var VZ="^(?:0|[1-9]\\d*)$",lQ=new RegExp(VZ),gR=T0(lQ);var $G=_6({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();I.intrinsic={...$G};var WG=_6({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:VZ}},{prereducedAliases:!0}).export();Object.assign(I.intrinsic,WG);var oQ=_6({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),u={...$G,...WG,...oQ,emptyStructure:J2("structure",{},{prereduced:!0})};I.intrinsic={...u};var JG=(Y)=>typeof Y==="string"&&Y[0]==="d"&&(Y[1]==="'"||Y[1]==='"')&&Y.at(-1)===Y[1],HG=(Y)=>Y.toString()!=="Invalid Date",QG=(Y)=>Y.slice(2,-1),OZ=(Y)=>`'${Y}' could not be parsed by the Date constructor`,zG=(Y,Z)=>iQ(Y,Z),iQ=(Y,Z)=>{let X=new Date(Y);if(HG(X))return X;let _=uX(Y);if(_!==void 0){let G=new Date(_);if(HG(G))return G}return Z?A(Z===!0?OZ(Y):Z):void 0};var DZ=(Y,Z)=>{let X=Y.scanner.shiftUntil(nQ[FG[Z]]);if(Y.scanner.lookahead==="")return Y.error(sQ(X,Z));if(Y.scanner.shift(),Z==="/"){try{new RegExp(X)}catch(_){A(String(_))}Y.root=Y.ctx.$.node("intersection",{domain:"string",pattern:X},{prereduced:!0})}else if(g0(Z,LZ))Y.root=Y.ctx.$.node("unit",{unit:X});else{let _=zG(X,OZ(X));Y.root=Y.ctx.$.node("unit",{meta:X,unit:_})}},LZ={"'":1,'"':1},UG={"/":1,"'":1,'"':1},FG={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},nQ={"'":(Y)=>Y.lookahead==="'",'"':(Y)=>Y.lookahead==='"',"/":(Y)=>Y.lookahead==="/"},rQ={'"':"double-quote","'":"single-quote","/":"forward slash"},sQ=(Y,Z)=>`${Z}${Y} requires a closing ${rQ[FG[Z]]}`;var EG=(Y)=>`Private type references should not include '#'. Use '${Y}' instead.`,G6="Optional definitions like 'string?' are only valid as properties in an object or tuple",$6="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var VG={">":!0,">=":!0},OG={"<":!0,"<=":!0};var Q2={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},DG=(Y)=>`Unmatched )${Y===""?"":` before ${Y}`}`,W6=(Y)=>`Missing ${Y}`,LG=(Y,Z)=>`Left bounds are only valid when paired with right bounds (try ...${Z}${Y})`,H6=(Y)=>`Left-bounded expressions must specify their limits using < or <= (was ${Y})`,MG=(Y,Z,X,_)=>`An expression may have at most one left bound (parsed ${Y}${Q2[Z]}, ${X}${Q2[_]})`;var AG=(Y,Z,X)=>RG(Y,Z,X,[]),RG=(Y,Z,X,_)=>{let G=X.parseUntilFinalizer();if(_.push(G.root),G.finalizer===">"){if(_.length!==Z.params.length)return X.error(MZ(Y,Z.names,_.map(($)=>$.expression)));return _}if(G.finalizer===",")return RG(Y,Z,X,_);return G.error(W6(">"))},MZ=(Y,Z,X)=>`${Y}<${Z.join(", ")}> requires exactly ${Z.length} args (got ${X.length}${X.length===0?"":`: ${X.join(", ")}`})`;var AZ=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator();if(Z==="keyof")Y.addPrefix("keyof");else Y.root=aQ(Y,Z)},tQ=(Y,Z,X)=>{if(X.scanner.shiftUntilNonWhitespace(),X.scanner.shift()!=="<")return X.error(MZ(Y,Z.names,[]));let G=AG(Y,Z,X);return Z(...G)},aQ=(Y,Z)=>eQ(Y,Z)??Yz(Y,Z)??Y.error(Z===""?Y.scanner.lookahead==="#"?EG(Y.shiftedByOne().scanner.shiftUntilNextTerminator()):RZ(Y):EZ(Z)),eQ=(Y,Z)=>{if(Y.ctx.args?.[Z]){let _=Y.ctx.args[Z];if(typeof _!=="string")return _;return Y.ctx.$.node("alias",{reference:_},{prereduced:!0})}let X=Y.ctx.$.maybeResolve(Z);if(y(X,"root"))return X;if(X===void 0)return;if(y(X,"generic"))return tQ(Z,X,Y);return A(`Unexpected resolution ${i(X)}`)},Yz=(Y,Z)=>{let X=dX(Z);if(X!==void 0)return Y.ctx.$.node("unit",{unit:X});let _=lX(Z);if(_!==void 0)return Y.ctx.$.node("unit",{unit:_})},RZ=(Y)=>{let Z=Y.previousOperator();return Z?wZ(Z,Y.scanner.unscanned):Zz(Y.scanner.unscanned)},wZ=(Y,Z="")=>`Token '${Y}' requires a right operand${Z?` before '${Z}'`:""}`,Zz=(Y)=>`Expected an expression${Y?` before '${Y}'`:""}`;var NZ=(Y)=>Y.scanner.lookahead===""?Y.error(RZ(Y)):Y.scanner.lookahead==="("?Y.shiftedByOne().reduceGroupOpen():Y.scanner.lookaheadIsIn(UG)?DZ(Y,Y.scanner.shift()):Y.scanner.lookaheadIsIn(V4)?NZ(Y.shiftedByOne()):Y.scanner.lookahead==="d"?Y.scanner.nextLookahead in LZ?DZ(Y,`${Y.scanner.shift()}${Y.scanner.shift()}`):AZ(Y):AZ(Y);class _4 extends CY{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>(this.lookahead in _4.terminatingChars))}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...V4};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(Y,Z)=>Y===">"?Z[0]==="="?Z[1]==="=":Z.trimStart()===""||g0(Z.trimStart()[0],_4.terminatingChars):Y==="="?Z[0]!=="=":Y===","||Y==="?"}var NG=(Y,Z)=>{let X=Xz(Y,Z);if(Y.root.hasKind("unit")){if(typeof Y.root.unit==="number"){Y.reduceLeftBound(Y.root.unit,X),Y.unsetRoot();return}if(Y.root.unit instanceof Date){let _=`d'${Y.root.description??Y.root.unit.toISOString()}'`;Y.unsetRoot(),Y.reduceLeftBound(_,X);return}}return Gz(Y,X)},IG={"<":1,">":1,"=":1},Xz=(Y,Z)=>Y.scanner.lookaheadIs("=")?`${Z}${Y.scanner.shift()}`:Z;var wG=(Y,Z,X,_)=>{if(X.extends(I.intrinsic.number)){if(typeof Z!=="number")return A(IZ(Y,Z,_));return Y==="=="?["min","max"]:Y[0]===">"?["min"]:["max"]}if(X.extends(I.intrinsic.lengthBoundable)){if(typeof Z!=="number")return A(IZ(Y,Z,_));return Y==="=="?["exactLength"]:Y[0]===">"?["minLength"]:["maxLength"]}if(X.extends(I.intrinsic.Date))return Y==="=="?["after","before"]:Y[0]===">"?["after"]:["before"];return A(U_(X.expression))},_z=(Y)=>({rule:JG(Y.limit)?QG(Y.limit):Y.limit,exclusive:Y.comparator.length===1}),Gz=(Y,Z)=>{let X=Y.unsetRoot(),_=Y.scanner.location;Y.parseOperand();let G=Y.unsetRoot(),$=Y.scanner.sliceChars(_,Y.scanner.location);if(Y.root=X,!G.hasKind("unit")||typeof G.unit!=="number"&&!(G.unit instanceof Date))return Y.error(IZ(Z,$,"right"));let W=G.unit,H=Z.length===1,Q=wG(Z,typeof W==="number"?W:$,X,"right");for(let z of Q)Y.constrainRoot(z,Z==="=="?{rule:W}:{rule:W,exclusive:H});if(!Y.branches.leftBound)return;if(!g0(Z,OG))return Y.error(H6(Z));let J=wG(Y.branches.leftBound.comparator,Y.branches.leftBound.limit,X,"left");Y.constrainRoot(J[0],_z(Y.branches.leftBound)),Y.branches.leftBound=null},IZ=(Y,Z,X)=>`Comparator ${X==="left"?Q2[Y]:Y} must be ${X==="left"?"preceded":"followed"} by a corresponding literal (was ${Z})`;var KG=(Y)=>{Y.scanner.shiftUntilNonWhitespace();let Z=Y.scanner.shiftUntilNextTerminator();Y.root=Y.root.brand(Z)};var TG=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator(),X=cX(Z,{errorOnFail:BG(Z)});if(X===0)Y.error(BG(0));Y.root=Y.root.constrain("divisor",X)},BG=(Y)=>`% operator must be followed by a non-zero integer literal (was ${Y})`;var KZ=(Y)=>{let Z=Y.scanner.shift();return Z===""?Y.finalize(""):Z==="["?Y.scanner.shift()==="]"?Y.setRoot(Y.root.array()):Y.error($z):Z==="|"?Y.scanner.lookahead===">"?Y.shiftedByOne().pushRootToBranch("|>"):Y.pushRootToBranch(Z):Z==="&"?Y.pushRootToBranch(Z):Z===")"?Y.finalizeGroup():_4.lookaheadIsFinalizing(Z,Y.scanner.unscanned)?Y.finalize(Z):g0(Z,IG)?NG(Y,Z):Z==="%"?TG(Y):Z==="#"?KG(Y):(Z in V4)?KZ(Y):Y.error(J6(Z))},J6=(Y,Z="")=>`'${Y}' is not allowed here${Z&&` (should be ${Z})`}`,$z="Missing expected ']'";var CG=(Y)=>{let Z=Y.unsetRoot();Y.parseOperand();let X=Y.unsetRoot();if(!X.hasKind("unit"))return Y.error(Wz(X.expression));let _=X.unit instanceof Date?()=>new Date(X.unit):X.unit;return[Z,"=",_]},Wz=(Y)=>`Default value '${Y}' must a literal value`;var BZ=(Y,Z)=>{let X=Z.$.maybeResolveRoot(Y);if(X)return X;if(Y.endsWith("[]")){let $=Z.$.maybeResolveRoot(Y.slice(0,-2));if($)return $.array()}let _=new z2(new _4(Y),Z),G=Hz(_);if(_.finalizer===">")A(J6(">"));return G},Hz=(Y)=>{Y.parseOperand();let Z=Y8(Y).root;if(!Z)return _0(`Root was unexpectedly unset after parsing string '${Y.scanner.scanned}'`);if(Y.finalizer==="=")Z=CG(Y);else if(Y.finalizer==="?")Z=[Z,"?"];if(Y.scanner.shiftUntilNonWhitespace(),Y.scanner.lookahead)A(J6(Y.scanner.lookahead));return Z},Y8=(Y)=>{while(Y.finalizer===void 0)Jz(Y);return Y},Jz=(Y)=>Y.hasRoot()?Y.parseOperator():Y.parseOperand();class z2{root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(Y,Z){this.scanner=Y,this.ctx=Z}error(Y){return A(Y)}hasRoot(){return this.root!==void 0}setRoot(Y){this.root=Y}unsetRoot(){let Y=this.root;return this.root=void 0,Y}constrainRoot(...Y){this.root=this.root.constrain(Y[0],Y[1])}finalize(Y){if(this.groups.length)return this.error(W6(")"));this.finalizeBranches(),this.finalizer=Y}reduceLeftBound(Y,Z){let X=Q2[Z];if(!g0(X,VG))return this.error(H6(Z));if(this.branches.leftBound)return this.error(MG(this.branches.leftBound.limit,this.branches.leftBound.comparator,Y,X));this.branches.leftBound={comparator:X,limit:Y}}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 Y=this.groups.pop();if(!Y)return this.error(DG(this.scanner.unscanned));this.branches=Y}addPrefix(Y){this.branches.prefixes.push(Y)}applyPrefixes(){while(this.branches.prefixes.length){let Y=this.branches.prefixes.pop();this.root=Y==="keyof"?this.root.keyof():_0(`Unexpected prefix '${Y}'`)}}pushRootToBranch(Y){this.assertRangeUnset(),this.applyPrefixes();let Z=this.root;if(this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd(Z)??Z,Y==="&")return;if(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,Y==="|")return;this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null}parseUntilFinalizer(){return Y8(new z2(this.scanner,this.ctx))}parseOperator(){return KZ(this)}parseOperand(){return NZ(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(LG(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 Qz="An empty string is not a valid generic parameter name",Q6=(Y,Z,X)=>{Y.shiftUntilNonWhitespace();let _=Y.shiftUntilNextTerminator();if(_===""){if(Y.lookahead===""&&Z.length)return Z;return A(Qz)}return Y.shiftUntilNonWhitespace(),zz(Y,_,Z,X)},qG="extends ",zz=(Y,Z,X,_)=>{if(Y.shiftUntilNonWhitespace(),Y.unscanned.startsWith(qG))Y.jumpForward(qG.length);else{if(Y.lookahead===",")Y.shift();return X.push(Z),Q6(Y,X,_)}let G=Y8(new z2(Y,_));return X.push([Z,G.root]),Q6(Y,X,_)};class TZ extends v1{$;constructor(Y){super((...Z)=>new Z8(Y)(...Z),{bind:Y});this.$=Y}in(Y){return new Z8(this.$,Y===void 0?void 0:this.$.parse(Y))}at(Y,Z){return new Z8(this.$).at(Y,Z)}case(Y,Z){return new Z8(this.$).case(Y,Z)}}class Z8 extends v1{$;in;key;branches=[];constructor(Y,Z){super((X)=>this.caseEntries(Object.entries(X).map(([_,G])=>_==="default"?[_,G]:[this.$.parse(_),G])));this.$=Y,this.in=Z}at(Y,Z){if(this.key)A(Fz);if(this.branches.length)A(Uz);return this.key=Y,Z?this.match(Z):this}case(Y,Z){return this.caseEntry(this.$.parse(Y),Z)}caseEntry(Y,Z){let _=(this.key?this.$.parse({[this.key]:Y}):Y).pipe(Z);return this.branches.push(_),this}match(Y){return this(Y)}strings(Y){return this.caseEntries(Object.entries(Y).map(([Z,X])=>Z==="default"?[Z,X]:[this.$.node("unit",{unit:Z}),X]))}caseEntries(Y){for(let Z=0;Z<Y.length;Z++){let[X,_]=Y[Z];if(X==="default"){if(Z!==Y.length-1)A("default may only be specified as the last key of a switch definition");return this.default(_)}if(typeof _!=="function")return A(`Value for case "${X}" must be a function (was ${y0(_)})`);this.caseEntry(X,_)}return this}default(Y){if(typeof Y==="function")this.case(u.unknown,Y);let Z={branches:this.branches,ordered:!0};if(Y==="never"||Y==="assert")Z.meta={onFail:jG};let X=this.$.node("union",Z);if(!this.in)return this.$.finalize(X);let _=this.in.pipe(X);if(Y==="never"||Y==="assert")_=_.configureReferences({onFail:jG},"self");return this.$.finalize(_)}}var jG=(Y)=>Y.throw(),Uz="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",Fz="At most one key matcher may be specified per expression";var z6=(Y,Z)=>{if(U0(Y)){if(Y[1]==="=")return[Z.$.parseOwnDefinitionFormat(Y[0],Z),"=",Y[2]];if(Y[1]==="?")return[Z.$.parseOwnDefinitionFormat(Y[0],Z),"?"]}return U6(Y,Z)},PG="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",SG="Only required keys may specify default values, e.g. { value: 'number = 0' }";var vG=(Y,Z)=>{let X,_={},G=q4(Y);for(let[W,H]of G){let Q=Oz(W);if(Q.kind==="spread"){if(!l1(_))return A(Vz);let L=Z.$.parseOwnDefinitionFormat(H,Z);if(L.equals(u.object))continue;if(!L.hasKind("intersection")||!L.basis?.equals(u.object))return A(Dz(L.expression));X=L.structure;continue}if(Q.kind==="undeclared"){if(H!=="reject"&&H!=="delete"&&H!=="ignore")A(Ez(H));_.undeclared=H;continue}let J=z6(H,Z),z=Q;if(Q.kind==="required"){if(!U0(J))CZ(_,"required",{key:Q.normalized,value:J},Z);else CZ(_,"optional",J[1]==="="?{key:Q.normalized,value:J[0],default:J[2]}:{key:Q.normalized,value:J[0]},Z);continue}if(U0(J)){if(J[1]==="?")A(PG);if(J[1]==="=")A(SG)}if(Q.kind==="optional"){CZ(_,"optional",{key:Q.normalized,value:J},Z);continue}let F=Z.$.parseOwnDefinitionFormat(z.normalized,Z),O=Z6(F,J,Z.$);if(O.index)_.index=Z0(_.index,O.index);if(O.required)_.required=Z0(_.required,O.required)}let $=Z.$.node("structure",_);return Z.$.parseSchema({domain:"object",structure:X?.merge($)??$})},CZ=(Y,Z,X,_)=>{Y[Z]=Z0(Y[Z],_.$.node(Z,X))},Ez=(Y)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${i(Y)})`,Vz="Spread operator may only be used as the first key in an object",Oz=(Y)=>typeof Y==="symbol"?{kind:"required",normalized:Y}:Y.at(-1)==="?"?Y.at(-2)===x2?{kind:"required",normalized:`${Y.slice(0,-2)}?`}:{kind:"optional",normalized:Y.slice(0,-1)}:Y[0]==="["&&Y.at(-1)==="]"?{kind:"index",normalized:Y.slice(1,-1)}:Y[0]===x2&&Y[1]==="["&&Y.at(-1)==="]"?{kind:"required",normalized:Y.slice(1)}:Y==="..."?{kind:"spread"}:Y==="+"?{kind:"undeclared"}:{kind:"required",normalized:Y==="\\..."?"...":Y==="\\+"?"+":Y},Dz=(Y)=>`Spread operand must resolve to an object literal type (was ${Y})`;var fG=(Y,Z)=>Tz(Y)?yG[Y[0]](Y,Z):Kz(Y)?bG[Y[1]](Y,Z):null,Lz=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[1],Z).keyof(),qZ=(Y,Z)=>{if(Y[2]===void 0)return A(wZ(Y[1],""));let X=Z.$.parseOwnDefinitionFormat(Y[0],Z),_=Z.$.parseOwnDefinitionFormat(Y[2],Z);if(Y[1]==="|")return Z.$.node("union",{branches:[X,_]});let G=Y[1]==="&"?z1(X,_,Z.$):d2(X,_,Z.$);if(G instanceof S)return G.throw();return G},Mz=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).array(),Az=(Y,Z)=>{if(typeof Y[2]!=="function")return A(hG("=>",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).pipe(Y[2])},hG=(Y,Z)=>`${Y===":"?"Narrow":"Morph"} expression requires a function following '${Y}' (was ${typeof Z})`,Rz=(Y,Z)=>{if(typeof Y[2]!=="function")return A(hG(":",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).constrain("predicate",Y[2])},wz=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).configureReferences(Y[2],"shallow"),kG=(Y)=>Y,Nz=kG({"[]":Mz,"?":()=>A(G6)}),Iz=kG({"|":qZ,"&":qZ,":":Rz,"=>":Az,"|>":qZ,"@":wz,"=":()=>A($6)}),bG={...Nz,...Iz},Kz=(Y)=>bG[Y[1]]!==void 0,Bz=(Y)=>Y,yG=Bz({keyof:Lz,instanceof:(Y,Z)=>{if(typeof Y[1]!=="function")return A(xG(S2(Y[1])));let X=Y.slice(1).map((_)=>typeof _==="function"?Z.$.node("proto",{proto:_}):A(xG(S2(_))));return X.length===1?X[0]:Z.$.node("union",{branches:X})},"===":(Y,Z)=>Z.$.units(Y.slice(1))}),Tz=(Y)=>yG[Y[0]]!==void 0,xG=(Y)=>`Expected a constructor following 'instanceof' operator (was ${Y})`;var mG=(Y,Z)=>{let X=[{}],_=0;while(_<Y.length){let G=!1;if(Y[_]==="..."&&_<Y.length-1)G=!0,_++;let $=z6(Y[_],Z),[W,H,Q]=!U0($)?[$]:$;if(_++,G){if(!W.extends(I.intrinsic.Array))return A(jz(W.expression));X=X.flatMap((J)=>W.distribute((z)=>qz(c8(J),z)))}else X=X.map((J)=>{if(H==="?")return uG(J,W);if(H==="=")return Cz(J,W,Q);return jZ(J,W)})}return Z.$.parseSchema(X.map((G)=>l1(G)?{proto:Array,exactLength:0}:{proto:Array,sequence:G}))},jZ=(Y,Z)=>{if(Y.defaultables||Y.optionals)return A(Y.variadic?WZ:Pz);if(Y.variadic)Y.postfix=Z0(Y.postfix,Z);else Y.prefix=Z0(Y.prefix,Z);return Y},uG=(Y,Z)=>{if(Y.variadic)return A(dG);return Y.optionals=Z0(Y.optionals,Z),Y},Cz=(Y,Z,X)=>{if(Y.variadic)return A(dG);if(Y.optionals)return A(Sz);return Y.defaultables=Z0(Y.defaultables,[[Z,X]]),Y},gG=(Y,Z)=>{if(Y.postfix)A(pG);if(Y.variadic){if(!Y.variadic.equals(Z))A(pG)}else Y.variadic=Z.internal;return Y},qz=(Y,Z)=>{let X=Z.select({method:"find",kind:"sequence"});if(!X)return gG(Y,I.intrinsic.unknown);if(X.prefix)for(let _ of X.prefix)jZ(Y,_);if(X.optionals)for(let _ of X.optionals)uG(Y,_);if(X.variadic)gG(Y,X.variadic);if(X.postfix)for(let _ of X.postfix)jZ(Y,_);return Y},jz=(Y)=>`Spread element must be an array (was ${Y})`,pG="A tuple may have at most one variadic element",Pz="A required element may not follow an optional element",dG="An optional element may not follow a variadic element";var Sz="A defaultable element may not follow an optional element without a default";var vz={},U6=(Y,Z)=>{if(typeof Y==="string"){if(Z.args&&Object.keys(Z.args).some((_)=>Y.includes(_)))return BZ(Y,Z);let X=vz[Z.$.name]??={};return X[Y]??=BZ(Y,Z)}return W1(Y,"object")?xz(Y,Z):A(PZ(y0(Y)))},xz=(Y,Z)=>{let X=P2(Y);switch(X){case void 0:if(y(Y,"root"))return Y;return vG(Y,Z);case"Array":return fz(Y,Z);case"RegExp":return Z.$.node("intersection",{domain:"string",pattern:Y},{prereduced:!0});case"Function":{let _=E4(Y)?Y():Y;if(y(_,"root"))return _;return A(PZ("Function"))}default:return A(PZ(X??i(Y)))}},fz=(Y,Z)=>fG(Y,Z)??mG(Y,Z),PZ=(Y)=>`Type definitions must be strings or objects (was ${Y})`;class SZ extends v1{constructor(Y){let Z=Object.assign({errors:J1,hkt:r0,$:Y,raw:Y.parse,module:Y.constructor.module,scope:Y.constructor.scope,define:Y.define,match:Y.match,generic:Y.generic,schema:Y.schema,keywords:Y.ambient,unit:Y.unit,enumerated:Y.enumerated,instanceOf:Y.instanceOf,valueOf:Y.valueOf,or:Y.or,and:Y.and,merge:Y.merge,pipe:Y.pipe},Y.ambientAttachments);super((...X)=>{if(X.length===1)return Y.parse(X[0]);if(X.length===2&&typeof X[0]==="string"&&X[0][0]==="<"&&X[0].at(-1)===">"){let _=X[0].slice(1,-1),G=Y.parseGenericParams(_,{});return new M4(G,X[1],Y,Y,null)}return Y.parse(X)},{bind:Y,attach:Z})}}var U2=I;class F6 extends X6{get ambientAttachments(){if(!U2.typeAttachments)return;return this.cacheGetter("ambientAttachments",o(U2.typeAttachments,(Y,Z)=>[Y,this.bindReference(Z)]))}preparseOwnAliasEntry(Y,Z){let X=Y.indexOf("<");if(X===-1){if(y(Z,"module")||y(Z,"generic"))return[Y,Z];let $=this.name==="ark"?Y:Y==="root"?this.name:`${this.name}.${Y}`,W=this.resolvedConfig.keywords?.[$];if(W)Z=[Z,"@",W];return[Y,Z]}if(Y.at(-1)!==">")A("'>' must be the last character of a generic declaration in a scope");let _=Y.slice(0,X),G=Y.slice(X+1,-1);return[_,()=>{let $=this.parseGenericParams(G,{alias:_});return J_($,Z,this)}]}parseGenericParams(Y,Z){return Q6(new _4(Y),[],this.createParseContext({...Z,def:Y,prefix:"generic"}))}normalizeRootScopeValue(Y){if(E4(Y)&&!y(Y,"generic"))return Y();return Y}preparseOwnDefinitionFormat(Y,Z){return{...Z,def:Y,prefix:Z.alias??"type"}}parseOwnDefinitionFormat(Y,Z){if(!(Z.alias&&(Z.alias in this.aliases))&&!Z.args)Z.args={this:Z.id};let _=U6(Y,Z);if(U0(_)){if(_[1]==="=")return A($6);if(_[1]==="?")return A(G6)}return _}unit=(Y)=>this.units([Y]);valueOf=(Y)=>this.units(qX(Y));enumerated=(...Y)=>this.units(Y);instanceOf=(Y)=>this.node("proto",{proto:Y},{prereduced:!0});or=(...Y)=>this.schema(Y.map((Z)=>this.parse(Z)));and=(...Y)=>Y.reduce((Z,X)=>Z.and(this.parse(X)),this.intrinsic.unknown);merge=(...Y)=>Y.reduce((Z,X)=>Z.merge(this.parse(X)),this.intrinsic.object);pipe=(...Y)=>this.intrinsic.unknown.pipe(...Y);match=new TZ(this);declare=()=>({type:this.type});define(Y){return Y}type=new SZ(this);static scope=(Y,Z={})=>new F6(Y,Z);static module=(Y,Z={})=>this.scope(Y,Z).export()}var vZ=Object.assign(F6.scope,{define:(Y)=>Y}),e=F6;class cG extends r0{description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var hz=K1(["base",u.object],["props",u.object])((Y)=>Y.base.merge(Y.props),cG),lG=e.module({Key:u.key,Merge:hz});class oG extends r0{}var kz=K1("element")((Y)=>{let Z=Y.element.exclude(u.Array),X=Z.array();return Z.rawOr(X).pipe(F4).distribute((_)=>_.assertHasKind("morph").declareOut(X),J0)},oG),iG=e.module({root:u.Array,readonly:"root",index:u.nonNegativeIntegerString,liftFrom:kz},{name:"Array"});var xZ=J0(["string",P4.FileConstructor]),bz=xZ.rawOr(xZ.array()),nG=J0({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:bz}}),rG=e.module({root:["instanceof",FormData],value:xZ,parsed:nG,parse:J0({in:FormData,morphs:(Y)=>{let Z={};for(let[X,_]of Y)if(X in Z){let G=Z[X];if(typeof G==="string"||G instanceof P4.FileConstructor)Z[X]=[G,_];else G.push(_)}else Z[X]=_;return Z},declaredOut:nG})},{name:"FormData"});var sG=e.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 yz={Boolean:1,Number:1,String:1},tG=e.module({...o({...AY,...wY},(Y,Z)=>(Y in yz)?[]:[Y,["instanceof",Z]]),Array:iG,TypedArray:sG,FormData:rG});var gz=J0({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"}),pz=J0({domain:"number",divisor:1}),E6=e.module({root:u.number,integer:pz,epoch:gz,safe:J0({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 N0=(Y,Z,X)=>{let _={domain:"string",pattern:{rule:Y.source,flags:Y.flags,meta:Z}};if(X)_.meta={format:X};return J2("intersection",_)},aG=N0(f2,"a well-formed integer string"),z9=e.module({root:aG,parse:J0({in:aG,morphs:(Y,Z)=>{let X=Number.parseInt(Y);return Number.isSafeInteger(X)?X:Z.error("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")},declaredOut:u.integer})},{name:"string.integer"}),mz=N0(/^[\dA-Fa-f]+$/,"hex characters only"),uz=e.module({root:N0(/^(?:[\d+/A-Za-z]{4})*(?:[\d+/A-Za-z]{2}==|[\d+/A-Za-z]{3}=)?$/,"base64-encoded"),url:N0(/^(?:[\w-]{4})*(?:[\w-]{2}(?:==|%3D%3D)?|[\w-]{3}(?:=|%3D)?)?$/,"base64url-encoded")},{name:"string.base64"}),eG=N0(/^[A-Z].*$/,"capitalized"),dz=e.module({root:J0({in:"string",morphs:(Y)=>Y.charAt(0).toUpperCase()+Y.slice(1),declaredOut:eG}),preformatted:eG},{name:"string.capitalize"}),cz=(Y)=>{let Z=Y.replaceAll(/[ -]+/g,""),X=0,_,G,$=!1;for(let W=Z.length-1;W>=0;W--){if(_=Z.substring(W,W+1),G=Number.parseInt(_,10),$)G*=2,X+=G>=10?G%10+1:G;else X+=G;$=!$}return!!(X%10===0?Z:!1)},lz=/^(?: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}))$/,oz=J0({domain:"string",pattern:{meta:"a credit card number",rule:lz.source},predicate:{meta:"a credit card number",predicate:cz}});var iz=/^([+-]?\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 nz=(Y)=>!Number.isNaN(new Date(Y).valueOf()),Y9=J0({domain:"string",predicate:{meta:"a parsable date",predicate:nz}}).assertHasKind("intersection"),Z9=z9.root.internal.narrow((Y,Z)=>{let X=Number.parseInt(Y),_=E6.epoch(X);if(_ instanceof J1)return Z.errors.merge(_),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),rz=e.module({root:Z9,parse:J0({in:Z9,morphs:(Y)=>new Date(Y),declaredOut:u.Date})},{name:"string.date.epoch"}),X9=N0(iz,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),sz=e.module({root:X9,parse:J0({in:X9,morphs:(Y)=>new Date(Y),declaredOut:u.Date})},{name:"string.date.iso"}),tz=e.module({root:Y9,parse:J0({declaredIn:Y9,in:"string",morphs:(Y,Z)=>{let X=new Date(Y);if(Number.isNaN(X.valueOf()))return Z.error("a parsable date");return X},declaredOut:u.Date}),iso:sz,epoch:rz},{name:"string.date"}),az=N0(/^[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z]{2,}$/,"an email address","email"),_9="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",A4=`(${_9}[.]){3}${_9}`,ez=new RegExp(`^${A4}$`),x0="(?:[0-9a-fA-F]{1,4})",YU=new RegExp(`^((?:${x0}:){7}(?:${x0}|:)|(?:${x0}:){6}(?:${A4}|:${x0}|:)|(?:${x0}:){5}(?::${A4}|(:${x0}){1,2}|:)|(?:${x0}:){4}(?:(:${x0}){0,1}:${A4}|(:${x0}){1,3}|:)|(?:${x0}:){3}(?:(:${x0}){0,2}:${A4}|(:${x0}){1,4}|:)|(?:${x0}:){2}(?:(:${x0}){0,3}:${A4}|(:${x0}){1,5}|:)|(?:${x0}:){1}(?:(:${x0}){0,4}:${A4}|(:${x0}){1,6}|:)|(?::((?::${x0}){0,5}:${A4}|(?::${x0}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),ZU=e.module({root:["v4 | v6","@","an IP address"],v4:N0(ez,"an IPv4 address","ipv4"),v6:N0(YU,"an IPv6 address","ipv6")},{name:"string.ip"}),F2="a JSON string",U9=(Y)=>{if(!(Y instanceof SyntaxError))throw Y;return`must be ${F2} (${Y})`},XU=J0({meta:F2,domain:"string",predicate:{meta:F2,predicate:(Y,Z)=>{try{return JSON.parse(Y),!0}catch(X){return Z.reject({code:"predicate",expected:F2,problem:U9(X)})}}}}),_U=(Y,Z)=>{if(Y.length===0)return Z.error({code:"predicate",expected:F2,actual:"empty"});try{return JSON.parse(Y)}catch(X){return Z.error({code:"predicate",expected:F2,problem:U9(X)})}},GU=e.module({root:XU,parse:J0({meta:"safe JSON string parser",in:"string",morphs:_U,declaredOut:u.jsonObject})},{name:"string.json"}),G9=N0(/^[a-z]*$/,"only lowercase letters"),$U=e.module({root:J0({in:"string",morphs:(Y)=>Y.toLowerCase(),declaredOut:G9}),preformatted:G9},{name:"string.lower"}),F9=["NFC","NFD","NFKC","NFKD"],X8=o(F9,(Y,Z)=>[Z,J0({domain:"string",predicate:(X)=>X.normalize(Z)===X,meta:`${Z}-normalized unicode`})]),V6=o(F9,(Y,Z)=>[Z,J0({in:"string",morphs:(X)=>X.normalize(Z),declaredOut:X8[Z]})]),WU=e.module({root:V6.NFC,preformatted:X8.NFC},{name:"string.normalize.NFC"}),HU=e.module({root:V6.NFD,preformatted:X8.NFD},{name:"string.normalize.NFD"}),JU=e.module({root:V6.NFKC,preformatted:X8.NFKC},{name:"string.normalize.NFKC"}),QU=e.module({root:V6.NFKD,preformatted:X8.NFKD},{name:"string.normalize.NFKD"}),zU=e.module({root:"NFC",NFC:WU,NFD:HU,NFKC:JU,NFKD:QU},{name:"string.normalize"}),$9=N0(m8,"a well-formed numeric string"),UU=e.module({root:$9,parse:J0({in:$9,morphs:(Y)=>Number.parseFloat(Y),declaredOut:u.number})},{name:"string.numeric"}),W9="a regex pattern",FU=J0({domain:"string",predicate:{meta:W9,predicate:(Y,Z)=>{try{return new RegExp(Y),!0}catch(X){return Z.reject({code:"predicate",expected:W9,problem:String(X)})}}},meta:{format:"regex"}}),EU=/^(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-]+)*))?$/,VU=N0(EU,"a semantic version (see https://semver.org/)"),H9=N0(/^\S.*\S$|^\S?$/,"trimmed"),OU=e.module({root:J0({in:"string",morphs:(Y)=>Y.trim(),declaredOut:H9}),preformatted:H9},{name:"string.trim"}),J9=N0(/^[A-Z]*$/,"only uppercase letters"),DU=e.module({root:J0({in:"string",morphs:(Y)=>Y.toUpperCase(),declaredOut:J9}),preformatted:J9},{name:"string.upper"}),LU=(Y)=>{if(URL.canParse)return URL.canParse(Y);try{return new URL(Y),!0}catch{return!1}},Q9=J0({domain:"string",predicate:{meta:"a URL string",predicate:LU},meta:{format:"uri"}}),MU=e.module({root:Q9,parse:J0({declaredIn:Q9,in:"string",morphs:(Y,Z)=>{try{return new URL(Y)}catch{return Z.error("a URL string")}},declaredOut:J0(URL)})},{name:"string.url"}),AU=e.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:N0(/^[\da-f]{8}-[\da-f]{4}-1[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv1"),v2:N0(/^[\da-f]{8}-[\da-f]{4}-2[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv2"),v3:N0(/^[\da-f]{8}-[\da-f]{4}-3[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv3"),v4:N0(/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv4"),v5:N0(/^[\da-f]{8}-[\da-f]{4}-5[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv5"),v6:N0(/^[\da-f]{8}-[\da-f]{4}-6[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv6"),v7:N0(/^[\da-f]{8}-[\da-f]{4}-7[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv7"),v8:N0(/^[\da-f]{8}-[\da-f]{4}-8[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv8")},{name:"string.uuid"}),E9=e.module({root:u.string,alpha:N0(/^[A-Za-z]*$/,"only letters"),alphanumeric:N0(/^[\dA-Za-z]*$/,"only letters and digits 0-9"),hex:mz,base64:uz,capitalize:dz,creditCard:oz,date:tz,digits:N0(/^\d*$/,"only digits 0-9"),email:az,integer:z9,ip:ZU,json:GU,lower:$U,normalize:zU,numeric:UU,regex:FU,semver:VU,trim:OU,upper:DU,url:MU,uuid:AU},{name:"string"});var V9=e.module({bigint:u.bigint,boolean:u.boolean,false:u.false,never:u.never,null:u.null,number:u.number,object:u.object,string:u.string,symbol:u.symbol,true:u.true,unknown:u.unknown,undefined:u.undefined}),O9=e.module({root:u.unknown,any:u.unknown},{name:"unknown"}),RU=e.module({root:u.jsonObject,stringify:J2("morph",{in:u.jsonObject,morphs:(Y)=>JSON.stringify(Y),declaredOut:u.string})},{name:"object.json"}),D9=e.module({root:u.object,json:RU},{name:"object"});class L9 extends r0{description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var wU=K1(["K",u.key],"V")((Y)=>({domain:"object",index:{signature:Y.K,value:Y.V}}),L9);class M9 extends r0{description='pick a set of properties from an object like `Pick(User, "name | age")`'}var NU=K1(["T",u.object],["K",u.key])((Y)=>Y.T.pick(Y.K),M9);class A9 extends r0{description='omit a set of properties from an object like `Omit(User, "age")`'}var IU=K1(["T",u.object],["K",u.key])((Y)=>Y.T.omit(Y.K),A9);class R9 extends r0{description="make all named properties of an object optional like `Partial(User)`"}var KU=K1(["T",u.object])((Y)=>Y.T.partial(),R9);class w9 extends r0{description="make all named properties of an object required like `Required(User)`"}var BU=K1(["T",u.object])((Y)=>Y.T.required(),w9);class N9 extends r0{description='exclude branches of a union like `Exclude("boolean", "true")`'}var TU=K1("T","U")((Y)=>Y.T.exclude(Y.U),N9);class I9 extends r0{description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var CU=K1("T","U")((Y)=>Y.T.extract(Y.U),I9),K9=e.module({Exclude:TU,Extract:CU,Omit:IU,Partial:KU,Pick:NU,Record:wU,Required:BU});var R4=vZ({...V9,...K9,...tG,...lG,string:E9,number:E6,object:D9,unknown:O9},{prereducedAliases:!0,name:"ark"}),p0=R4.export();Object.assign(U2.ambient,p0);U2.typeAttachments={string:p0.string.root,number:p0.number.root,bigint:p0.bigint,boolean:p0.boolean,symbol:p0.symbol,undefined:p0.undefined,null:p0.null,object:p0.object.root,unknown:p0.unknown.root,false:p0.false,true:p0.true,never:p0.never,arrayIndex:p0.Array.index,Key:p0.Key,Record:p0.Record,Array:p0.Array.root,Date:p0.Date};var U1=Object.assign(R4.type,U2.typeAttachments),qU=R4.match,jU=R4.generic,HK=R4.schema,PU=R4.define,SU=R4.declare;function E2(Y){return w6(F1.STORE,Y,void 0)}function V2(Y){return O2(F1.STORE,Y)}function hZ(...Y){return h1(F1.STORE,...Y)}function O6(Y,Z){return x9(F1.STORE,Y,Z)}function B9(Y){return f9(Y,F1.STORE)}var G4={atom_family:"atom family",atom:"atom",continuity:"continuity",key:"key",mutable_atom_family:"atom family [m]",mutable_atom:"atom [m]",readonly_held_selector_family:"selector family [h]",readonly_held_selector:"selector [h]",readonly_pure_selector_family:"selector family",readonly_pure_selector:"selector",state:"state",timeline:"timeline",transaction:"transaction",unknown:"unknown",writable_held_selector_family:"selector family [wh]",writable_held_selector:"selector [wh]",writable_pure_selector_family:"selector family [w]",writable_pure_selector:"selector [w]"};var fZ=(Y)=>(Z,X,_,G,...$)=>{console[Y](`${Z} ${G4[X]} \`${_}\` ${G}`,...$)},vU={error:fZ("error"),info:fZ("info"),warn:fZ("warn")},T9=class{logLevel;filter;logger;constructor(Y,Z,X=vU){this.logLevel=Y,this.filter=Z,this.logger=X}error=(...Y)=>{if(this.logLevel!==null){let Z=this.filter?.(...Y)??!0;if(Z===!0)this.logger.error(...Y);else if(Z)this.logger.error(...Z)}};info=(...Y)=>{if(this.logLevel==="info"){let Z=this.filter?.(...Y)??!0;if(Z===!0)this.logger.info(...Y);else if(Z)this.logger.info(...Z)}};warn=(...Y)=>{if(this.logLevel!=="error"&&this.logLevel!==null){let Z=this.filter?.(...Y)??!0;if(Z===!0)this.logger.warn(...Y);else if(Z)this.logger.warn(...Z)}}};var C9=class{store;deallocateTX;claimTX;constructor(Y=F1.STORE){this.store=Y,this.deallocateTX=j9(Y),this.claimTX=P9(Y),q9(Y,"root")}allocate(Y,Z,X){A6(this.store,Y,Z,X)}deallocate(Y){M6(this.store,this.deallocateTX,kZ())(Y)}claim(Y,Z,X){_8(this.store,Y,Z,X)}};function D6(Y){return bZ(F1.STORE,Y)}function L6(Y){return G8(F1.STORE,Y)}function X1(Y){return JSON.parse(Y)}var $0=(Y)=>JSON.stringify(Y),vK=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var h9=class Y extends Set{mode="record";subject=new G0;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(Z,X=0){super(Z);if(Z instanceof Y)this.parent=Z,this.cacheUpdateNumber=Z.cacheUpdateNumber;if(X)this.cacheLimit=X,this.cache=new Array(X),this.subscribe("auto cache",(_)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=_})}READONLY_VIEW=this;toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(Z){let X=new Y(Z.members,Z.cacheLimit);return X.cache=Z.cache,X.cacheIdx=Z.cacheIdx,X.cacheUpdateNumber=Z.cacheUpdateNumber,X}add(Z){let X=super.add(Z);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${$0(Z)}`);return X}clear(){let Z=this.mode==="record"?[...this]:null;if(super.clear(),Z)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(Z)}`)}delete(Z){let X=super.delete(Z);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${$0(Z)}`);return X}parent=null;child=null;transactionUpdates=null;transaction(Z){this.mode="transaction",this.transactionUpdates=[],this.child=new Y(this);let X=this.child._subscribe("transaction",(_)=>{this.transactionUpdates?.push(_)});try{if(Z(this.child)){for(let _ of this.transactionUpdates)this.doStep(_);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(_){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",_),_}finally{X(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(Z,X){return this.subject.subscribe(Z,X)}subscribe(Z,X){return this.subject.subscribe(Z,(_)=>{X(`${this.cacheUpdateNumber}=${_}`)})}emit(Z){this.subject.next(Z)}doStep(Z){let X=Z.indexOf(":"),_=Z.substring(0,X),G=Z.substring(X+1);switch(_){case"add":this.add(JSON.parse(G));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(G));break;case"tx":for(let $ of G.split(";"))this.doStep($)}}getUpdateNumber(Z){let X=Z.indexOf("=");return Number(Z.substring(0,X))}do(Z){let X=Z.indexOf("="),_=Number(Z.substring(0,X)),G=_-this.cacheUpdateNumber;if(G>0||Number.isNaN(G)){if(G===1||Number.isNaN(G)){this.mode="playback";let $=Z.substring(X+1);return this.doStep($),this.mode="record",this.cacheUpdateNumber=_,null}return this.cacheUpdateNumber+1}if(Math.abs(G)<this.cacheLimit){let $=this.cacheIdx+G;if(this.cache[$]===Z)return null;this.mode="playback";let W=!1;while(!W){this.cacheIdx%=this.cacheLimit;let Q=this.cache[this.cacheIdx];if(this.cacheIdx--,!Q)return"OUT_OF_RANGE";this.undo(Q),W=this.cacheIdx===$-1}let H=Z.substring(X+1);return this.doStep(H),this.mode="record",this.cacheUpdateNumber=_,null}return"OUT_OF_RANGE"}undoStep(Z){let X=Z.indexOf(":"),_=Z.substring(0,X),G=Z.substring(X+1);switch(_){case"add":this.delete(JSON.parse(G));break;case"del":this.add(JSON.parse(G));break;case"clear":{let $=JSON.parse(G);for(let W of $)this.add(W);break}case"tx":{let $=G.split(";");for(let W=$.length-1;W>=0;W--)this.undoStep($[W])}}}undo(Z){let X=Z.indexOf("=");if(Number(Z.substring(0,X))===this.cacheUpdateNumber){this.mode="playback";let _=Z.substring(X+1);return this.undoStep(_),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}};function kZ(Y=Math.random){return Y().toString(36).slice(2)}function Y0(Y){while(Y.child!==null)Y=Y.child;return Y}function fU(Y){while(Y.parent!==null)Y=Y.parent;return Y}var hU=/^\[object (?:Async|Generator|AsyncGenerator)?Function\]$/;function H8(Y){let Z=Object.prototype.toString.call(Y);return hU.test(Z)}function mZ(Y,Z){if(H8(Y))return Y(Z);return Y}var uZ=class extends Promise{fate;resolve;reject;done=!1;constructor(Y){let Z,X;super((_,G)=>{Z=_,X=G});this.resolve=Z,this.reject=X,this.use(Y instanceof Promise?Y:new Promise(Y))}pass(Y,Z){if(Y===this.fate)this.resolve(Z),this.done=!0}fail(Y,Z){if(Y===this.fate)this.reject(Z),this.done=!0}use(Y){if(this===Y)return;if(Y instanceof Promise){let Z=Y;this.fate=Z,Z.then((X)=>{this.pass(Z,X)},(X)=>{this.fail(Z,X)})}else this.resolve(Y),this.fate=void 0}},G0=class{Subscriber;subscribers=new Map;subscribe(Y,Z){return this.subscribers.set(Y,Z),()=>{this.unsubscribe(Y)}}unsubscribe(Y){this.subscribers.delete(Y)}next(Y){let Z=this.subscribers.values();for(let X of Z)X(Y)}},kU=class extends G0{state;constructor(Y){super();this.state=Y}next(Y){this.state=Y,super.next(Y)}},bU=class Y{_buffer;_index=0;constructor(Z){let X;if(typeof Z==="number")X=Z;else X=Z.length;this._buffer=Array.from({length:X})}get buffer(){return this._buffer}get index(){return this._index}add(Z){this._buffer[this._index]=Z,this._index=(this._index+1)%this._buffer.length}copy(){let Z=new Y([...this._buffer]);return Z._index=this._index,Z}};function y1(Y){let Z={key:Y.key,type:Y.type};if("family"in Y)Z.family=Y.family;return Z}var b1=class extends Map{deleted=new Set;changed=new Set;source;constructor(Y){super();this.source=Y}get(Y){if(super.has(Y))return super.get(Y);if(!this.deleted.has(Y)&&this.source.has(Y))return this.source.get(Y)}set(Y,Z){if(this.deleted.delete(Y),this.source.has(Y))this.changed.add(Y);return super.set(Y,Z)}hasOwn(Y){return super.has(Y)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){if(this.source.has(Y))this.deleted.add(Y),this.changed.delete(Y);return super.delete(Y)}clear(){this.deleted=new Set(this.source.keys()),this.changed.clear(),super.clear()}*[Symbol.iterator](){yield*super[Symbol.iterator]();for(let[Y,Z]of this.source)if(!this.deleted.has(Y)&&!this.changed.has(Y))yield[Y,Z]}*entries(){yield*this[Symbol.iterator]()}*keys(){yield*super.keys();for(let Y of this.source.keys())if(!this.deleted.has(Y)&&!this.changed.has(Y))yield Y}*values(){for(let[,Y]of this[Symbol.iterator]())yield Y}forEach(Y){for(let[Z,X]of this[Symbol.iterator]())Y(X,Z,this)}get size(){return super.size+this.source.size-this.changed.size-this.deleted.size}},p9=class extends Set{deleted=new Set;source;constructor(Y){super();this.source=Y}add(Y){if(this.source.has(Y))return this.deleted.delete(Y),this;return super.add(Y)}hasOwn(Y){return super.has(Y)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){if(this.source.has(Y))return this.deleted.add(Y),!0;return super.delete(Y)}clear(){this.deleted=new Set(this.source),super.clear()}*[Symbol.iterator](){yield*super[Symbol.iterator]();for(let Y of this.source)if(!this.deleted.has(Y))yield Y}*iterateOwn(){yield*super[Symbol.iterator]()}get size(){return super.size+this.source.size-this.deleted.size}},yU=class extends Map{deleted=new Set;source;constructor(Y){super();this.source=Y}get(Y){if(super.has(Y))return super.get(Y);if(!this.deleted.has(Y)&&this.source.has(Y)){let Z=this.source.get(Y),X=new p9(Z);return super.set(Y,X),X}}set(Y,Z){return this.deleted.delete(Y),super.set(Y,Z)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){return this.deleted.add(Y),super.delete(Y)}},$4=class Y{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(Z,X)=>`${Z}:${X}`;warn;getRelatedKeys(Z){return this.relations.get(Z)}addRelation(Z,X){let _=this.relations.get(Z),G=this.relations.get(X);if(_)_.add(X);else _=new Set([X]),this.relations.set(Z,_);if(G)G.add(Z);else G=new Set([Z]),this.relations.set(X,G)}deleteRelation(Z,X){let _=this.relations.get(Z);if(_){if(_.delete(X),_.size===0)this.relations.delete(Z);let G=this.relations.get(X);if(G){if(G.delete(Z),G.size===0)this.relations.delete(X)}}}replaceRelationsUnsafely(Z,X){this.relations.set(Z,new Set(X));for(let _ of X){let G=new Set().add(Z);this.relations.set(_,G)}}replaceRelationsSafely(Z,X){let _=this.relations.get(Z),G=this.isAType?.(Z)?Z:void 0,$=G===void 0?Z:void 0;if(_)for(let W of _){G??=W,$??=W;let H=this.relations.get(W);if(H){if(H.size===1)this.relations.delete(W);else H.delete(Z);this.contents.delete(this.makeContentKey(G,$))}}this.relations.set(Z,new Set(X));for(let W of X){let H=this.relations.get(W);if(H)H.add(Z);else H=new Set().add(Z),this.relations.set(W,H)}}getContentInternal(Z){return this.contents.get(Z)}setContent(Z,X){this.contents.set(Z,X)}deleteContent(Z){this.contents.delete(Z)}constructor(Z,X){if(this.a=Z.between[0],this.b=Z.between[1],this.cardinality=Z.cardinality,this.isAType=X?.isAType??null,this.isBType=X?.isBType??null,this.isContent=X?.isContent??null,X?.makeContentKey)this.makeContentKey=X.makeContentKey;if(!X?.externalStore){let _=X?.source;if(_===void 0)this.relations=new Map(Z.relations?.map(([G,$])=>[G,new Set($)])),this.contents=new Map(Z.contents);if(_)this.relations=new yU(_.relations),this.contents=new b1(_.contents)}if(X?.externalStore){let _=X.externalStore;if(this.has=(G,$)=>_.has(G,$),this.addRelation=(G,$)=>{_.addRelation(G,$)},this.deleteRelation=(G,$)=>{_.deleteRelation(G,$)},this.replaceRelationsSafely=(G,$)=>{_.replaceRelationsSafely(G,$)},this.replaceRelationsUnsafely=(G,$)=>{_.replaceRelationsUnsafely(G,$)},this.getRelatedKeys=(G)=>_.getRelatedKeys(G),_.getContent)this.getContentInternal=(G)=>{return _.getContent(G)},this.setContent=(G,$)=>{_.setContent(G,$)},this.deleteContent=(G)=>{_.deleteContent(G)};for(let[G,$]of Z.relations??[]){let W=this.isAType?.(G)?G:void 0,H=W===void 0?G:void 0;for(let Q of $)W??=Q,H??=Q,this.addRelation(W,H)}for(let[G,$]of Z.contents??[])this.setContent(G,$)}if(X?.warn)this.warn=X.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([Z,X])=>[Z,[...X]]),contents:[...this.contents.entries()]}}set(...Z){let X,_,G;switch(Z.length){case 1:{let $=Z[0];X=$[this.a],_=$[this.b],G=void 0;break}case 2:{let $=Z[0];if(typeof $==="string")[X,_]=Z;else X=$[this.a],_=$[this.b],G=Z[1];break}default:X=Z[0],_=Z[1],G=Z[2];break}switch(this.cardinality){case"1:1":{let $=this.getRelatedKey(X);if($&&$!==_)this.delete(X,$)}case"1:n":{let $=this.getRelatedKey(_);if($&&$!==X)this.delete($,_)}break;case"n:n":}if(G){let $=this.makeContentKey(X,_);this.setContent($,G)}return this.addRelation(X,_),this}delete(Z,X){X=typeof X==="string"?X:Z[this.b];let _=typeof Z==="string"?Z:Z[this.a];if(_===void 0&&typeof X==="string"){let G=this.getRelatedKeys(X);if(G)for(let $ of G)this.delete($,X)}else if(typeof _==="string"&&X===void 0){let G=this.getRelatedKeys(_);if(G)for(let $ of G)this.delete(_,$)}else if(typeof _==="string"&&typeof X==="string"){this.deleteRelation(_,X);let G=this.makeContentKey(_,X);this.deleteContent(G)}return this}getRelatedKey(Z){let X=this.getRelatedKeys(Z);if(X){if(X.size>1)this.warn?.(`${X.size} related keys were found for key "${Z}": (${[...X].map((G)=>`"${G}"`).join(", ")}). Only one related key was expected.`);let _;for(let G of X){_=G;break}return _}}replaceRelations(Z,X,_){let G=!Array.isArray(X),$=G?Object.keys(X):X;if(_?.reckless)this.replaceRelationsUnsafely(Z,$);else this.replaceRelationsSafely(Z,$);if(G)for(let W of $){let H=this.makeContentKey(Z,W),Q=X[W];this.setContent(H,Q)}return this}getContent(Z,X){let _=this.makeContentKey(Z,X);return this.getContentInternal(_)}getRelationEntries(Z){let X=Z[this.a],_=Z[this.b];if(X!==void 0&&_===void 0){let G=this.getRelatedKeys(X);if(G)return[...G].map(($)=>{return[$,this.getContent(X,$)]})}if(X===void 0&&_!==void 0){let G=this.getRelatedKeys(_);if(G)return[...G].map(($)=>{return[$,this.getContent($,_)]})}return[]}has(Z,X){if(X)return this.getRelatedKeys(Z)?.has(X)??!1;return this.relations.has(Z)}overlay(){let Z={source:this,makeContentKey:this.makeContentKey};if(this.isAType)Z.isAType=this.isAType;if(this.isBType)Z.isBType=this.isBType;if(this.isContent)Z.isContent=this.isContent;if(this.warn)Z.warn=this.warn;return new Y({between:[this.a,this.b],cardinality:this.cardinality},Z)}incorporate(Z){let{relations:X,contents:_}=Z;for(let[G,$]of X)if($ instanceof p9){let{source:W}=$;for(let H of $.iterateOwn())W.add(H)}else this.relations.set(G,$);for(let G of X.deleted)this.relations.delete(G);for(let[G,$]of _)this.contents.set(G,$);for(let G of _.deleted)this.contents.delete(G)}};function L2(Y){return Y.startsWith("\uD83D\uDD0D ")}var gU=(Y)=>{Y.logger.info("\uD83E\uDE82","transaction",Y.transactionMeta.update.token.key,"Aborting transaction"),Y.parent.child=null};function M6(Y,Z,X){return(..._)=>{return P0(Y,Z).run(_,X)}}function pU(Y,Z,X){let{token:_,update:{newValue:G,oldValue:$}}=Z;k1(Y,_,X==="newValue"?G:$)}function mU(Y){let{stack:Z}=Y;if(Z)return`
47
+ `)+"}");class X6{config;resolvedConfig;name;get[Y1](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(Y,Z){if(this.config=p2(I.config,Z),this.resolvedConfig=p2(I.resolvedConfig,Z),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(zZ).length}`,this.name in zZ)A(`A Scope already named ${this.name} already exists`);zZ[this.name]=this;let X=Object.entries(Y).map((_)=>this.preparseOwnAliasEntry(..._));for(let[_,G]of X){let $=_;if(_[0]==="#"){if($=_.slice(1),$ in this.aliases)A(s_($));this.aliases[$]=G}else{if($ in this.aliases)A(s_(_));this.aliases[$]=G,this.exportedNames.push($)}if(!y(G,"module")&&!y(G,"generic")&&!E4(G)){let W=this.preparseOwnDefinitionFormat(G,{alias:$});this.resolutions[$]=y(W,"root")?this.bindReference(W):this.createParseContext(W).id}}t_??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[t_.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=I.intrinsic?o(I.intrinsic,(_,G)=>_.startsWith("json")?[]:[_,this.bindReference(G)]):{}}cacheGetter(Y,Z){return Object.defineProperty(this,Y,{value:Z}),Z}get internal(){return this}_json;get json(){if(!this._json)this.export();return this._json}defineSchema(Y){return Y}generic=(...Y)=>{let Z=this;return(X,_)=>new M4(Y,_?new n8(X):X,Z,Z,_??null)};units=(Y,Z)=>{let X=[];for(let G of Y)if(!X.includes(G))X.push(G);let _=X.map((G)=>this.node("unit",{unit:G},Z));return this.node("union",_,{...Z,prereduced:!0})};lazyResolutions=[];lazilyResolve(Y,Z){let X=this.node("alias",{reference:Z??"synthetic",resolve:Y},{prereduced:!0});if(!this.resolved)this.lazyResolutions.push(X);return X}schema=(Y,Z)=>this.finalize(this.parseSchema(Y,Z));parseSchema=(Y,Z)=>this.node(c2(Y),Y,Z);preparseNode(Y,Z,X){let _=typeof Y==="string"?Y:c2(Z,Y);if(D0(Z)&&Z.kind===_)return Z;if(_==="alias"&&!X?.prereduced){let{reference:W}=s2.implementation.normalize(Z,this);if(W.startsWith("$")){let H=this.resolveRoot(W.slice(1));Z=H,_=H.kind}}else if(_==="union"&&W1(Z,"object")){let W=mQ(Z);if(W?.length===1)Z=W[0],_=c2(Z)}if(D0(Z)&&Z.kind===_)return Z;let $=G2[_].normalize?.(Z,this)??Z;if(D0($))return $.kind===_?$:uQ(_,$.kind);return{...X,$:this,kind:_,def:$,prefix:X.alias??_}}bindReference(Y){let Z;if(D0(Y))Z=Y.$===this?Y:new Y.constructor(Y.attachments,this);else Z=Y.$===this?Y:new M4(Y.params,Y.bodyDef,Y.$,this,Y.hkt);if(!this.resolved)Object.assign(this.referencesById,Z.referencesById);return Z}resolveRoot(Y){return this.maybeResolveRoot(Y)??A(EZ(Y))}maybeResolveRoot(Y){let Z=this.maybeResolve(Y);if(y(Z,"generic"))return;return Z}maybeResolveSubalias(Y){return UZ(this.aliases,Y)??UZ(this.ambient,Y)}get ambient(){return I.ambient}maybeResolve(Y){let Z=this.resolutions[Y];if(Z){if(typeof Z!=="string")return this.bindReference(Z);let _=Z1[Z];if(y(_,"root"))return this.resolutions[Y]=_;if(y(_,"context")){if(_.phase==="resolving")return this.node("alias",{reference:`$${Y}`},{prereduced:!0});if(_.phase==="resolved")return _0(`Unexpected resolved context for was uncached by its scope: ${i(_)}`);_.phase="resolving";let G=this.bindReference(this.parseOwnDefinitionFormat(_.def,_));return _.phase="resolved",Z1[G.id]=G,Z1[_.id]=G,this.resolutions[Y]=G}return _0(`Unexpected nodesById entry for ${Z}: ${i(_)}`)}let X=this.aliases[Y]??this.ambient?.[Y];if(!X)return this.maybeResolveSubalias(Y);if(X=this.normalizeRootScopeValue(X),y(X,"generic"))return this.resolutions[Y]=this.bindReference(X);if(y(X,"module")){if(!X.root)A(GG(Y));return this.resolutions[Y]=this.bindReference(X.root)}return this.resolutions[Y]=this.parse(X,{alias:Y})}createParseContext(Y){let Z=Y.id??iY(Y.prefix);return Z1[Z]=Object.assign(Y,{[Y1]:"context",$:this,id:Z,phase:"unresolved"})}traversal(Y){return new x1(Y,this.resolvedConfig)}import(...Y){return new H2(o(this.export(...Y),(Z,X)=>[`#${Z}`,X]))}precompilation;_exportedResolutions;_exports;export(...Y){if(!this._exports){this._exports={};for(let X of this.exportedNames){let _=this.aliases[X];this._exports[X]=y(_,"module")?QZ(_,this):a_(this.maybeResolve(X))}for(let X of this.lazyResolutions)X.resolution;if(this._exportedResolutions=_G(this,this._exports),this._json=XG(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let X=ZG(this.references);this.precompilation=X.write(e_,4),YG(this.references,X)}this.resolved=!0}let Z=Y.length?Y:this.exportedNames;return new H2(o(Z,(X,_)=>[_,this._exports[_]]))}resolve(Y){return this.export()[Y]}node=(Y,Z,X={})=>{let _=this.preparseNode(Y,Z,X);if(D0(_))return this.bindReference(_);let G=this.createParseContext(_),$=nY(G),W=this.bindReference($);return Z1[G.id]=W};parse=(Y,Z={})=>this.finalize(this.parseDefinition(Y,Z));parseDefinition(Y,Z={}){if(y(Y,"root"))return this.bindReference(Y);let X=this.preparseOwnDefinitionFormat(Y,Z);if(y(X,"root"))return this.bindReference(X);let _=this.createParseContext(X);Z1[_.id]=_;let G=this.bindReference(this.parseOwnDefinitionFormat(Y,_));if(G.isCyclic)G=K_(G,_.id);return Z1[_.id]=G,G}finalize(Y){if(a_(Y),!Y.precompilation&&!this.resolvedConfig.jitless)dQ(Y.references);return Y}}class FZ extends X6{parseOwnDefinitionFormat(Y,Z){return nY(Z)}preparseOwnDefinitionFormat(Y,Z){return this.preparseNode(c2(Y),Y,Z)}preparseOwnAliasEntry(Y,Z){return[Y,Z]}normalizeRootScopeValue(Y){return Y}}var a_=(Y)=>{let Z=Y.references.filter((X)=>X.hasKind("alias"));for(let X of Z){Object.assign(X.referencesById,X.resolution.referencesById);for(let _ of Y.references)if(X.id in _.referencesById)Object.assign(_.referencesById,X.referencesById)}return Y},XG=(Y)=>o(Y,(Z,X)=>[Z,y(X,"root")||y(X,"generic")?X.json:y(X,"module")?XG(X):_0(`Unexpected resolution ${i(X)}`)]),UZ=(Y,Z)=>{let X=Z.indexOf(".");if(X===-1)return;let _=Z.slice(0,X),G=Y[_];if(G===void 0)return;if(!y(G,"module"))return A(cQ(_));let $=Z.slice(X+1),W=G[$];if(W===void 0)return UZ(G,$);if(y(W,"root")||y(W,"generic"))return W;if(y(W,"module"))return W.root??A(GG(Z));_0(`Unexpected resolution for alias '${Z}': ${i(W)}`)},_6=(Y,Z)=>new FZ(Y,Z),e2=new FZ({});var _G=(Y,Z)=>{let X={};for(let _ in Z){let G=Z[_];if(y(G,"module")){let $=_G(Y,G),W=o($,(H,Q)=>[`${_}.${H}`,Q]);Object.assign(X,W)}else if(y(G,"root")||y(G,"generic"))X[_]=G;else _0(`Unexpected scope resolution ${i(G)}`)}return X},EZ=(Y)=>`'${Y}' is unresolvable`,cQ=(Y)=>`'${Y}' must reference a module to be accessed using dot syntax`,GG=(Y)=>`Reference to submodule '${Y}' must specify an alias`;e2.export();var{schema:J0,node:J2,defineSchema:kR,generic:K1}=e2;var VZ="^(?:0|[1-9]\\d*)$",lQ=new RegExp(VZ),gR=T0(lQ);var $G=_6({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();I.intrinsic={...$G};var WG=_6({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:VZ}},{prereducedAliases:!0}).export();Object.assign(I.intrinsic,WG);var oQ=_6({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),u={...$G,...WG,...oQ,emptyStructure:J2("structure",{},{prereduced:!0})};I.intrinsic={...u};var JG=(Y)=>typeof Y==="string"&&Y[0]==="d"&&(Y[1]==="'"||Y[1]==='"')&&Y.at(-1)===Y[1],HG=(Y)=>Y.toString()!=="Invalid Date",QG=(Y)=>Y.slice(2,-1),OZ=(Y)=>`'${Y}' could not be parsed by the Date constructor`,zG=(Y,Z)=>iQ(Y,Z),iQ=(Y,Z)=>{let X=new Date(Y);if(HG(X))return X;let _=uX(Y);if(_!==void 0){let G=new Date(_);if(HG(G))return G}return Z?A(Z===!0?OZ(Y):Z):void 0};var DZ=(Y,Z)=>{let X=Y.scanner.shiftUntil(nQ[FG[Z]]);if(Y.scanner.lookahead==="")return Y.error(sQ(X,Z));if(Y.scanner.shift(),Z==="/"){try{new RegExp(X)}catch(_){A(String(_))}Y.root=Y.ctx.$.node("intersection",{domain:"string",pattern:X},{prereduced:!0})}else if(g0(Z,LZ))Y.root=Y.ctx.$.node("unit",{unit:X});else{let _=zG(X,OZ(X));Y.root=Y.ctx.$.node("unit",{meta:X,unit:_})}},LZ={"'":1,'"':1},UG={"/":1,"'":1,'"':1},FG={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},nQ={"'":(Y)=>Y.lookahead==="'",'"':(Y)=>Y.lookahead==='"',"/":(Y)=>Y.lookahead==="/"},rQ={'"':"double-quote","'":"single-quote","/":"forward slash"},sQ=(Y,Z)=>`${Z}${Y} requires a closing ${rQ[FG[Z]]}`;var EG=(Y)=>`Private type references should not include '#'. Use '${Y}' instead.`,G6="Optional definitions like 'string?' are only valid as properties in an object or tuple",$6="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var VG={">":!0,">=":!0},OG={"<":!0,"<=":!0};var Q2={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},DG=(Y)=>`Unmatched )${Y===""?"":` before ${Y}`}`,W6=(Y)=>`Missing ${Y}`,LG=(Y,Z)=>`Left bounds are only valid when paired with right bounds (try ...${Z}${Y})`,H6=(Y)=>`Left-bounded expressions must specify their limits using < or <= (was ${Y})`,MG=(Y,Z,X,_)=>`An expression may have at most one left bound (parsed ${Y}${Q2[Z]}, ${X}${Q2[_]})`;var AG=(Y,Z,X)=>RG(Y,Z,X,[]),RG=(Y,Z,X,_)=>{let G=X.parseUntilFinalizer();if(_.push(G.root),G.finalizer===">"){if(_.length!==Z.params.length)return X.error(MZ(Y,Z.names,_.map(($)=>$.expression)));return _}if(G.finalizer===",")return RG(Y,Z,X,_);return G.error(W6(">"))},MZ=(Y,Z,X)=>`${Y}<${Z.join(", ")}> requires exactly ${Z.length} args (got ${X.length}${X.length===0?"":`: ${X.join(", ")}`})`;var AZ=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator();if(Z==="keyof")Y.addPrefix("keyof");else Y.root=aQ(Y,Z)},tQ=(Y,Z,X)=>{if(X.scanner.shiftUntilNonWhitespace(),X.scanner.shift()!=="<")return X.error(MZ(Y,Z.names,[]));let G=AG(Y,Z,X);return Z(...G)},aQ=(Y,Z)=>eQ(Y,Z)??Yz(Y,Z)??Y.error(Z===""?Y.scanner.lookahead==="#"?EG(Y.shiftedByOne().scanner.shiftUntilNextTerminator()):RZ(Y):EZ(Z)),eQ=(Y,Z)=>{if(Y.ctx.args?.[Z]){let _=Y.ctx.args[Z];if(typeof _!=="string")return _;return Y.ctx.$.node("alias",{reference:_},{prereduced:!0})}let X=Y.ctx.$.maybeResolve(Z);if(y(X,"root"))return X;if(X===void 0)return;if(y(X,"generic"))return tQ(Z,X,Y);return A(`Unexpected resolution ${i(X)}`)},Yz=(Y,Z)=>{let X=dX(Z);if(X!==void 0)return Y.ctx.$.node("unit",{unit:X});let _=lX(Z);if(_!==void 0)return Y.ctx.$.node("unit",{unit:_})},RZ=(Y)=>{let Z=Y.previousOperator();return Z?wZ(Z,Y.scanner.unscanned):Zz(Y.scanner.unscanned)},wZ=(Y,Z="")=>`Token '${Y}' requires a right operand${Z?` before '${Z}'`:""}`,Zz=(Y)=>`Expected an expression${Y?` before '${Y}'`:""}`;var NZ=(Y)=>Y.scanner.lookahead===""?Y.error(RZ(Y)):Y.scanner.lookahead==="("?Y.shiftedByOne().reduceGroupOpen():Y.scanner.lookaheadIsIn(UG)?DZ(Y,Y.scanner.shift()):Y.scanner.lookaheadIsIn(V4)?NZ(Y.shiftedByOne()):Y.scanner.lookahead==="d"?Y.scanner.nextLookahead in LZ?DZ(Y,`${Y.scanner.shift()}${Y.scanner.shift()}`):AZ(Y):AZ(Y);class _4 extends CY{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>(this.lookahead in _4.terminatingChars))}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...V4};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(Y,Z)=>Y===">"?Z[0]==="="?Z[1]==="=":Z.trimStart()===""||g0(Z.trimStart()[0],_4.terminatingChars):Y==="="?Z[0]!=="=":Y===","||Y==="?"}var NG=(Y,Z)=>{let X=Xz(Y,Z);if(Y.root.hasKind("unit")){if(typeof Y.root.unit==="number"){Y.reduceLeftBound(Y.root.unit,X),Y.unsetRoot();return}if(Y.root.unit instanceof Date){let _=`d'${Y.root.description??Y.root.unit.toISOString()}'`;Y.unsetRoot(),Y.reduceLeftBound(_,X);return}}return Gz(Y,X)},IG={"<":1,">":1,"=":1},Xz=(Y,Z)=>Y.scanner.lookaheadIs("=")?`${Z}${Y.scanner.shift()}`:Z;var wG=(Y,Z,X,_)=>{if(X.extends(I.intrinsic.number)){if(typeof Z!=="number")return A(IZ(Y,Z,_));return Y==="=="?["min","max"]:Y[0]===">"?["min"]:["max"]}if(X.extends(I.intrinsic.lengthBoundable)){if(typeof Z!=="number")return A(IZ(Y,Z,_));return Y==="=="?["exactLength"]:Y[0]===">"?["minLength"]:["maxLength"]}if(X.extends(I.intrinsic.Date))return Y==="=="?["after","before"]:Y[0]===">"?["after"]:["before"];return A(U_(X.expression))},_z=(Y)=>({rule:JG(Y.limit)?QG(Y.limit):Y.limit,exclusive:Y.comparator.length===1}),Gz=(Y,Z)=>{let X=Y.unsetRoot(),_=Y.scanner.location;Y.parseOperand();let G=Y.unsetRoot(),$=Y.scanner.sliceChars(_,Y.scanner.location);if(Y.root=X,!G.hasKind("unit")||typeof G.unit!=="number"&&!(G.unit instanceof Date))return Y.error(IZ(Z,$,"right"));let W=G.unit,H=Z.length===1,Q=wG(Z,typeof W==="number"?W:$,X,"right");for(let z of Q)Y.constrainRoot(z,Z==="=="?{rule:W}:{rule:W,exclusive:H});if(!Y.branches.leftBound)return;if(!g0(Z,OG))return Y.error(H6(Z));let J=wG(Y.branches.leftBound.comparator,Y.branches.leftBound.limit,X,"left");Y.constrainRoot(J[0],_z(Y.branches.leftBound)),Y.branches.leftBound=null},IZ=(Y,Z,X)=>`Comparator ${X==="left"?Q2[Y]:Y} must be ${X==="left"?"preceded":"followed"} by a corresponding literal (was ${Z})`;var KG=(Y)=>{Y.scanner.shiftUntilNonWhitespace();let Z=Y.scanner.shiftUntilNextTerminator();Y.root=Y.root.brand(Z)};var TG=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator(),X=cX(Z,{errorOnFail:BG(Z)});if(X===0)Y.error(BG(0));Y.root=Y.root.constrain("divisor",X)},BG=(Y)=>`% operator must be followed by a non-zero integer literal (was ${Y})`;var KZ=(Y)=>{let Z=Y.scanner.shift();return Z===""?Y.finalize(""):Z==="["?Y.scanner.shift()==="]"?Y.setRoot(Y.root.array()):Y.error($z):Z==="|"?Y.scanner.lookahead===">"?Y.shiftedByOne().pushRootToBranch("|>"):Y.pushRootToBranch(Z):Z==="&"?Y.pushRootToBranch(Z):Z===")"?Y.finalizeGroup():_4.lookaheadIsFinalizing(Z,Y.scanner.unscanned)?Y.finalize(Z):g0(Z,IG)?NG(Y,Z):Z==="%"?TG(Y):Z==="#"?KG(Y):(Z in V4)?KZ(Y):Y.error(J6(Z))},J6=(Y,Z="")=>`'${Y}' is not allowed here${Z&&` (should be ${Z})`}`,$z="Missing expected ']'";var CG=(Y)=>{let Z=Y.unsetRoot();Y.parseOperand();let X=Y.unsetRoot();if(!X.hasKind("unit"))return Y.error(Wz(X.expression));let _=X.unit instanceof Date?()=>new Date(X.unit):X.unit;return[Z,"=",_]},Wz=(Y)=>`Default value '${Y}' must a literal value`;var BZ=(Y,Z)=>{let X=Z.$.maybeResolveRoot(Y);if(X)return X;if(Y.endsWith("[]")){let $=Z.$.maybeResolveRoot(Y.slice(0,-2));if($)return $.array()}let _=new z2(new _4(Y),Z),G=Hz(_);if(_.finalizer===">")A(J6(">"));return G},Hz=(Y)=>{Y.parseOperand();let Z=Y8(Y).root;if(!Z)return _0(`Root was unexpectedly unset after parsing string '${Y.scanner.scanned}'`);if(Y.finalizer==="=")Z=CG(Y);else if(Y.finalizer==="?")Z=[Z,"?"];if(Y.scanner.shiftUntilNonWhitespace(),Y.scanner.lookahead)A(J6(Y.scanner.lookahead));return Z},Y8=(Y)=>{while(Y.finalizer===void 0)Jz(Y);return Y},Jz=(Y)=>Y.hasRoot()?Y.parseOperator():Y.parseOperand();class z2{root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(Y,Z){this.scanner=Y,this.ctx=Z}error(Y){return A(Y)}hasRoot(){return this.root!==void 0}setRoot(Y){this.root=Y}unsetRoot(){let Y=this.root;return this.root=void 0,Y}constrainRoot(...Y){this.root=this.root.constrain(Y[0],Y[1])}finalize(Y){if(this.groups.length)return this.error(W6(")"));this.finalizeBranches(),this.finalizer=Y}reduceLeftBound(Y,Z){let X=Q2[Z];if(!g0(X,VG))return this.error(H6(Z));if(this.branches.leftBound)return this.error(MG(this.branches.leftBound.limit,this.branches.leftBound.comparator,Y,X));this.branches.leftBound={comparator:X,limit:Y}}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 Y=this.groups.pop();if(!Y)return this.error(DG(this.scanner.unscanned));this.branches=Y}addPrefix(Y){this.branches.prefixes.push(Y)}applyPrefixes(){while(this.branches.prefixes.length){let Y=this.branches.prefixes.pop();this.root=Y==="keyof"?this.root.keyof():_0(`Unexpected prefix '${Y}'`)}}pushRootToBranch(Y){this.assertRangeUnset(),this.applyPrefixes();let Z=this.root;if(this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd(Z)??Z,Y==="&")return;if(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,Y==="|")return;this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null}parseUntilFinalizer(){return Y8(new z2(this.scanner,this.ctx))}parseOperator(){return KZ(this)}parseOperand(){return NZ(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(LG(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 Qz="An empty string is not a valid generic parameter name",Q6=(Y,Z,X)=>{Y.shiftUntilNonWhitespace();let _=Y.shiftUntilNextTerminator();if(_===""){if(Y.lookahead===""&&Z.length)return Z;return A(Qz)}return Y.shiftUntilNonWhitespace(),zz(Y,_,Z,X)},qG="extends ",zz=(Y,Z,X,_)=>{if(Y.shiftUntilNonWhitespace(),Y.unscanned.startsWith(qG))Y.jumpForward(qG.length);else{if(Y.lookahead===",")Y.shift();return X.push(Z),Q6(Y,X,_)}let G=Y8(new z2(Y,_));return X.push([Z,G.root]),Q6(Y,X,_)};class TZ extends v1{$;constructor(Y){super((...Z)=>new Z8(Y)(...Z),{bind:Y});this.$=Y}in(Y){return new Z8(this.$,Y===void 0?void 0:this.$.parse(Y))}at(Y,Z){return new Z8(this.$).at(Y,Z)}case(Y,Z){return new Z8(this.$).case(Y,Z)}}class Z8 extends v1{$;in;key;branches=[];constructor(Y,Z){super((X)=>this.caseEntries(Object.entries(X).map(([_,G])=>_==="default"?[_,G]:[this.$.parse(_),G])));this.$=Y,this.in=Z}at(Y,Z){if(this.key)A(Fz);if(this.branches.length)A(Uz);return this.key=Y,Z?this.match(Z):this}case(Y,Z){return this.caseEntry(this.$.parse(Y),Z)}caseEntry(Y,Z){let _=(this.key?this.$.parse({[this.key]:Y}):Y).pipe(Z);return this.branches.push(_),this}match(Y){return this(Y)}strings(Y){return this.caseEntries(Object.entries(Y).map(([Z,X])=>Z==="default"?[Z,X]:[this.$.node("unit",{unit:Z}),X]))}caseEntries(Y){for(let Z=0;Z<Y.length;Z++){let[X,_]=Y[Z];if(X==="default"){if(Z!==Y.length-1)A("default may only be specified as the last key of a switch definition");return this.default(_)}if(typeof _!=="function")return A(`Value for case "${X}" must be a function (was ${y0(_)})`);this.caseEntry(X,_)}return this}default(Y){if(typeof Y==="function")this.case(u.unknown,Y);let Z={branches:this.branches,ordered:!0};if(Y==="never"||Y==="assert")Z.meta={onFail:jG};let X=this.$.node("union",Z);if(!this.in)return this.$.finalize(X);let _=this.in.pipe(X);if(Y==="never"||Y==="assert")_=_.configureReferences({onFail:jG},"self");return this.$.finalize(_)}}var jG=(Y)=>Y.throw(),Uz="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",Fz="At most one key matcher may be specified per expression";var z6=(Y,Z)=>{if(U0(Y)){if(Y[1]==="=")return[Z.$.parseOwnDefinitionFormat(Y[0],Z),"=",Y[2]];if(Y[1]==="?")return[Z.$.parseOwnDefinitionFormat(Y[0],Z),"?"]}return U6(Y,Z)},PG="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",SG="Only required keys may specify default values, e.g. { value: 'number = 0' }";var vG=(Y,Z)=>{let X,_={},G=q4(Y);for(let[W,H]of G){let Q=Oz(W);if(Q.kind==="spread"){if(!l1(_))return A(Vz);let L=Z.$.parseOwnDefinitionFormat(H,Z);if(L.equals(u.object))continue;if(!L.hasKind("intersection")||!L.basis?.equals(u.object))return A(Dz(L.expression));X=L.structure;continue}if(Q.kind==="undeclared"){if(H!=="reject"&&H!=="delete"&&H!=="ignore")A(Ez(H));_.undeclared=H;continue}let J=z6(H,Z),z=Q;if(Q.kind==="required"){if(!U0(J))CZ(_,"required",{key:Q.normalized,value:J},Z);else CZ(_,"optional",J[1]==="="?{key:Q.normalized,value:J[0],default:J[2]}:{key:Q.normalized,value:J[0]},Z);continue}if(U0(J)){if(J[1]==="?")A(PG);if(J[1]==="=")A(SG)}if(Q.kind==="optional"){CZ(_,"optional",{key:Q.normalized,value:J},Z);continue}let F=Z.$.parseOwnDefinitionFormat(z.normalized,Z),O=Z6(F,J,Z.$);if(O.index)_.index=Z0(_.index,O.index);if(O.required)_.required=Z0(_.required,O.required)}let $=Z.$.node("structure",_);return Z.$.parseSchema({domain:"object",structure:X?.merge($)??$})},CZ=(Y,Z,X,_)=>{Y[Z]=Z0(Y[Z],_.$.node(Z,X))},Ez=(Y)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${i(Y)})`,Vz="Spread operator may only be used as the first key in an object",Oz=(Y)=>typeof Y==="symbol"?{kind:"required",normalized:Y}:Y.at(-1)==="?"?Y.at(-2)===x2?{kind:"required",normalized:`${Y.slice(0,-2)}?`}:{kind:"optional",normalized:Y.slice(0,-1)}:Y[0]==="["&&Y.at(-1)==="]"?{kind:"index",normalized:Y.slice(1,-1)}:Y[0]===x2&&Y[1]==="["&&Y.at(-1)==="]"?{kind:"required",normalized:Y.slice(1)}:Y==="..."?{kind:"spread"}:Y==="+"?{kind:"undeclared"}:{kind:"required",normalized:Y==="\\..."?"...":Y==="\\+"?"+":Y},Dz=(Y)=>`Spread operand must resolve to an object literal type (was ${Y})`;var fG=(Y,Z)=>Tz(Y)?yG[Y[0]](Y,Z):Kz(Y)?bG[Y[1]](Y,Z):null,Lz=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[1],Z).keyof(),qZ=(Y,Z)=>{if(Y[2]===void 0)return A(wZ(Y[1],""));let X=Z.$.parseOwnDefinitionFormat(Y[0],Z),_=Z.$.parseOwnDefinitionFormat(Y[2],Z);if(Y[1]==="|")return Z.$.node("union",{branches:[X,_]});let G=Y[1]==="&"?z1(X,_,Z.$):d2(X,_,Z.$);if(G instanceof S)return G.throw();return G},Mz=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).array(),Az=(Y,Z)=>{if(typeof Y[2]!=="function")return A(hG("=>",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).pipe(Y[2])},hG=(Y,Z)=>`${Y===":"?"Narrow":"Morph"} expression requires a function following '${Y}' (was ${typeof Z})`,Rz=(Y,Z)=>{if(typeof Y[2]!=="function")return A(hG(":",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).constrain("predicate",Y[2])},wz=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).configureReferences(Y[2],"shallow"),kG=(Y)=>Y,Nz=kG({"[]":Mz,"?":()=>A(G6)}),Iz=kG({"|":qZ,"&":qZ,":":Rz,"=>":Az,"|>":qZ,"@":wz,"=":()=>A($6)}),bG={...Nz,...Iz},Kz=(Y)=>bG[Y[1]]!==void 0,Bz=(Y)=>Y,yG=Bz({keyof:Lz,instanceof:(Y,Z)=>{if(typeof Y[1]!=="function")return A(xG(S2(Y[1])));let X=Y.slice(1).map((_)=>typeof _==="function"?Z.$.node("proto",{proto:_}):A(xG(S2(_))));return X.length===1?X[0]:Z.$.node("union",{branches:X})},"===":(Y,Z)=>Z.$.units(Y.slice(1))}),Tz=(Y)=>yG[Y[0]]!==void 0,xG=(Y)=>`Expected a constructor following 'instanceof' operator (was ${Y})`;var mG=(Y,Z)=>{let X=[{}],_=0;while(_<Y.length){let G=!1;if(Y[_]==="..."&&_<Y.length-1)G=!0,_++;let $=z6(Y[_],Z),[W,H,Q]=!U0($)?[$]:$;if(_++,G){if(!W.extends(I.intrinsic.Array))return A(jz(W.expression));X=X.flatMap((J)=>W.distribute((z)=>qz(c8(J),z)))}else X=X.map((J)=>{if(H==="?")return uG(J,W);if(H==="=")return Cz(J,W,Q);return jZ(J,W)})}return Z.$.parseSchema(X.map((G)=>l1(G)?{proto:Array,exactLength:0}:{proto:Array,sequence:G}))},jZ=(Y,Z)=>{if(Y.defaultables||Y.optionals)return A(Y.variadic?WZ:Pz);if(Y.variadic)Y.postfix=Z0(Y.postfix,Z);else Y.prefix=Z0(Y.prefix,Z);return Y},uG=(Y,Z)=>{if(Y.variadic)return A(dG);return Y.optionals=Z0(Y.optionals,Z),Y},Cz=(Y,Z,X)=>{if(Y.variadic)return A(dG);if(Y.optionals)return A(Sz);return Y.defaultables=Z0(Y.defaultables,[[Z,X]]),Y},gG=(Y,Z)=>{if(Y.postfix)A(pG);if(Y.variadic){if(!Y.variadic.equals(Z))A(pG)}else Y.variadic=Z.internal;return Y},qz=(Y,Z)=>{let X=Z.select({method:"find",kind:"sequence"});if(!X)return gG(Y,I.intrinsic.unknown);if(X.prefix)for(let _ of X.prefix)jZ(Y,_);if(X.optionals)for(let _ of X.optionals)uG(Y,_);if(X.variadic)gG(Y,X.variadic);if(X.postfix)for(let _ of X.postfix)jZ(Y,_);return Y},jz=(Y)=>`Spread element must be an array (was ${Y})`,pG="A tuple may have at most one variadic element",Pz="A required element may not follow an optional element",dG="An optional element may not follow a variadic element";var Sz="A defaultable element may not follow an optional element without a default";var vz={},U6=(Y,Z)=>{if(typeof Y==="string"){if(Z.args&&Object.keys(Z.args).some((_)=>Y.includes(_)))return BZ(Y,Z);let X=vz[Z.$.name]??={};return X[Y]??=BZ(Y,Z)}return W1(Y,"object")?xz(Y,Z):A(PZ(y0(Y)))},xz=(Y,Z)=>{let X=P2(Y);switch(X){case void 0:if(y(Y,"root"))return Y;return vG(Y,Z);case"Array":return fz(Y,Z);case"RegExp":return Z.$.node("intersection",{domain:"string",pattern:Y},{prereduced:!0});case"Function":{let _=E4(Y)?Y():Y;if(y(_,"root"))return _;return A(PZ("Function"))}default:return A(PZ(X??i(Y)))}},fz=(Y,Z)=>fG(Y,Z)??mG(Y,Z),PZ=(Y)=>`Type definitions must be strings or objects (was ${Y})`;class SZ extends v1{constructor(Y){let Z=Object.assign({errors:J1,hkt:r0,$:Y,raw:Y.parse,module:Y.constructor.module,scope:Y.constructor.scope,define:Y.define,match:Y.match,generic:Y.generic,schema:Y.schema,keywords:Y.ambient,unit:Y.unit,enumerated:Y.enumerated,instanceOf:Y.instanceOf,valueOf:Y.valueOf,or:Y.or,and:Y.and,merge:Y.merge,pipe:Y.pipe},Y.ambientAttachments);super((...X)=>{if(X.length===1)return Y.parse(X[0]);if(X.length===2&&typeof X[0]==="string"&&X[0][0]==="<"&&X[0].at(-1)===">"){let _=X[0].slice(1,-1),G=Y.parseGenericParams(_,{});return new M4(G,X[1],Y,Y,null)}return Y.parse(X)},{bind:Y,attach:Z})}}var U2=I;class F6 extends X6{get ambientAttachments(){if(!U2.typeAttachments)return;return this.cacheGetter("ambientAttachments",o(U2.typeAttachments,(Y,Z)=>[Y,this.bindReference(Z)]))}preparseOwnAliasEntry(Y,Z){let X=Y.indexOf("<");if(X===-1){if(y(Z,"module")||y(Z,"generic"))return[Y,Z];let $=this.name==="ark"?Y:Y==="root"?this.name:`${this.name}.${Y}`,W=this.resolvedConfig.keywords?.[$];if(W)Z=[Z,"@",W];return[Y,Z]}if(Y.at(-1)!==">")A("'>' must be the last character of a generic declaration in a scope");let _=Y.slice(0,X),G=Y.slice(X+1,-1);return[_,()=>{let $=this.parseGenericParams(G,{alias:_});return J_($,Z,this)}]}parseGenericParams(Y,Z){return Q6(new _4(Y),[],this.createParseContext({...Z,def:Y,prefix:"generic"}))}normalizeRootScopeValue(Y){if(E4(Y)&&!y(Y,"generic"))return Y();return Y}preparseOwnDefinitionFormat(Y,Z){return{...Z,def:Y,prefix:Z.alias??"type"}}parseOwnDefinitionFormat(Y,Z){if(!(Z.alias&&(Z.alias in this.aliases))&&!Z.args)Z.args={this:Z.id};let _=U6(Y,Z);if(U0(_)){if(_[1]==="=")return A($6);if(_[1]==="?")return A(G6)}return _}unit=(Y)=>this.units([Y]);valueOf=(Y)=>this.units(qX(Y));enumerated=(...Y)=>this.units(Y);instanceOf=(Y)=>this.node("proto",{proto:Y},{prereduced:!0});or=(...Y)=>this.schema(Y.map((Z)=>this.parse(Z)));and=(...Y)=>Y.reduce((Z,X)=>Z.and(this.parse(X)),this.intrinsic.unknown);merge=(...Y)=>Y.reduce((Z,X)=>Z.merge(this.parse(X)),this.intrinsic.object);pipe=(...Y)=>this.intrinsic.unknown.pipe(...Y);match=new TZ(this);declare=()=>({type:this.type});define(Y){return Y}type=new SZ(this);static scope=(Y,Z={})=>new F6(Y,Z);static module=(Y,Z={})=>this.scope(Y,Z).export()}var vZ=Object.assign(F6.scope,{define:(Y)=>Y}),e=F6;class cG extends r0{description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var hz=K1(["base",u.object],["props",u.object])((Y)=>Y.base.merge(Y.props),cG),lG=e.module({Key:u.key,Merge:hz});class oG extends r0{}var kz=K1("element")((Y)=>{let Z=Y.element.exclude(u.Array),X=Z.array();return Z.rawOr(X).pipe(F4).distribute((_)=>_.assertHasKind("morph").declareOut(X),J0)},oG),iG=e.module({root:u.Array,readonly:"root",index:u.nonNegativeIntegerString,liftFrom:kz},{name:"Array"});var xZ=J0(["string",P4.FileConstructor]),bz=xZ.rawOr(xZ.array()),nG=J0({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:bz}}),rG=e.module({root:["instanceof",FormData],value:xZ,parsed:nG,parse:J0({in:FormData,morphs:(Y)=>{let Z={};for(let[X,_]of Y)if(X in Z){let G=Z[X];if(typeof G==="string"||G instanceof P4.FileConstructor)Z[X]=[G,_];else G.push(_)}else Z[X]=_;return Z},declaredOut:nG})},{name:"FormData"});var sG=e.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 yz={Boolean:1,Number:1,String:1},tG=e.module({...o({...AY,...wY},(Y,Z)=>(Y in yz)?[]:[Y,["instanceof",Z]]),Array:iG,TypedArray:sG,FormData:rG});var gz=J0({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"}),pz=J0({domain:"number",divisor:1}),E6=e.module({root:u.number,integer:pz,epoch:gz,safe:J0({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 N0=(Y,Z,X)=>{let _={domain:"string",pattern:{rule:Y.source,flags:Y.flags,meta:Z}};if(X)_.meta={format:X};return J2("intersection",_)},aG=N0(f2,"a well-formed integer string"),z9=e.module({root:aG,parse:J0({in:aG,morphs:(Y,Z)=>{let X=Number.parseInt(Y);return Number.isSafeInteger(X)?X:Z.error("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")},declaredOut:u.integer})},{name:"string.integer"}),mz=N0(/^[\dA-Fa-f]+$/,"hex characters only"),uz=e.module({root:N0(/^(?:[\d+/A-Za-z]{4})*(?:[\d+/A-Za-z]{2}==|[\d+/A-Za-z]{3}=)?$/,"base64-encoded"),url:N0(/^(?:[\w-]{4})*(?:[\w-]{2}(?:==|%3D%3D)?|[\w-]{3}(?:=|%3D)?)?$/,"base64url-encoded")},{name:"string.base64"}),eG=N0(/^[A-Z].*$/,"capitalized"),dz=e.module({root:J0({in:"string",morphs:(Y)=>Y.charAt(0).toUpperCase()+Y.slice(1),declaredOut:eG}),preformatted:eG},{name:"string.capitalize"}),cz=(Y)=>{let Z=Y.replaceAll(/[ -]+/g,""),X=0,_,G,$=!1;for(let W=Z.length-1;W>=0;W--){if(_=Z.substring(W,W+1),G=Number.parseInt(_,10),$)G*=2,X+=G>=10?G%10+1:G;else X+=G;$=!$}return!!(X%10===0?Z:!1)},lz=/^(?: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}))$/,oz=J0({domain:"string",pattern:{meta:"a credit card number",rule:lz.source},predicate:{meta:"a credit card number",predicate:cz}});var iz=/^([+-]?\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 nz=(Y)=>!Number.isNaN(new Date(Y).valueOf()),Y9=J0({domain:"string",predicate:{meta:"a parsable date",predicate:nz}}).assertHasKind("intersection"),Z9=z9.root.internal.narrow((Y,Z)=>{let X=Number.parseInt(Y),_=E6.epoch(X);if(_ instanceof J1)return Z.errors.merge(_),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),rz=e.module({root:Z9,parse:J0({in:Z9,morphs:(Y)=>new Date(Y),declaredOut:u.Date})},{name:"string.date.epoch"}),X9=N0(iz,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),sz=e.module({root:X9,parse:J0({in:X9,morphs:(Y)=>new Date(Y),declaredOut:u.Date})},{name:"string.date.iso"}),tz=e.module({root:Y9,parse:J0({declaredIn:Y9,in:"string",morphs:(Y,Z)=>{let X=new Date(Y);if(Number.isNaN(X.valueOf()))return Z.error("a parsable date");return X},declaredOut:u.Date}),iso:sz,epoch:rz},{name:"string.date"}),az=N0(/^[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z]{2,}$/,"an email address","email"),_9="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",A4=`(${_9}[.]){3}${_9}`,ez=new RegExp(`^${A4}$`),x0="(?:[0-9a-fA-F]{1,4})",YU=new RegExp(`^((?:${x0}:){7}(?:${x0}|:)|(?:${x0}:){6}(?:${A4}|:${x0}|:)|(?:${x0}:){5}(?::${A4}|(:${x0}){1,2}|:)|(?:${x0}:){4}(?:(:${x0}){0,1}:${A4}|(:${x0}){1,3}|:)|(?:${x0}:){3}(?:(:${x0}){0,2}:${A4}|(:${x0}){1,4}|:)|(?:${x0}:){2}(?:(:${x0}){0,3}:${A4}|(:${x0}){1,5}|:)|(?:${x0}:){1}(?:(:${x0}){0,4}:${A4}|(:${x0}){1,6}|:)|(?::((?::${x0}){0,5}:${A4}|(?::${x0}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),ZU=e.module({root:["v4 | v6","@","an IP address"],v4:N0(ez,"an IPv4 address","ipv4"),v6:N0(YU,"an IPv6 address","ipv6")},{name:"string.ip"}),F2="a JSON string",U9=(Y)=>{if(!(Y instanceof SyntaxError))throw Y;return`must be ${F2} (${Y})`},XU=J0({meta:F2,domain:"string",predicate:{meta:F2,predicate:(Y,Z)=>{try{return JSON.parse(Y),!0}catch(X){return Z.reject({code:"predicate",expected:F2,problem:U9(X)})}}}}),_U=(Y,Z)=>{if(Y.length===0)return Z.error({code:"predicate",expected:F2,actual:"empty"});try{return JSON.parse(Y)}catch(X){return Z.error({code:"predicate",expected:F2,problem:U9(X)})}},GU=e.module({root:XU,parse:J0({meta:"safe JSON string parser",in:"string",morphs:_U,declaredOut:u.jsonObject})},{name:"string.json"}),G9=N0(/^[a-z]*$/,"only lowercase letters"),$U=e.module({root:J0({in:"string",morphs:(Y)=>Y.toLowerCase(),declaredOut:G9}),preformatted:G9},{name:"string.lower"}),F9=["NFC","NFD","NFKC","NFKD"],X8=o(F9,(Y,Z)=>[Z,J0({domain:"string",predicate:(X)=>X.normalize(Z)===X,meta:`${Z}-normalized unicode`})]),V6=o(F9,(Y,Z)=>[Z,J0({in:"string",morphs:(X)=>X.normalize(Z),declaredOut:X8[Z]})]),WU=e.module({root:V6.NFC,preformatted:X8.NFC},{name:"string.normalize.NFC"}),HU=e.module({root:V6.NFD,preformatted:X8.NFD},{name:"string.normalize.NFD"}),JU=e.module({root:V6.NFKC,preformatted:X8.NFKC},{name:"string.normalize.NFKC"}),QU=e.module({root:V6.NFKD,preformatted:X8.NFKD},{name:"string.normalize.NFKD"}),zU=e.module({root:"NFC",NFC:WU,NFD:HU,NFKC:JU,NFKD:QU},{name:"string.normalize"}),$9=N0(m8,"a well-formed numeric string"),UU=e.module({root:$9,parse:J0({in:$9,morphs:(Y)=>Number.parseFloat(Y),declaredOut:u.number})},{name:"string.numeric"}),W9="a regex pattern",FU=J0({domain:"string",predicate:{meta:W9,predicate:(Y,Z)=>{try{return new RegExp(Y),!0}catch(X){return Z.reject({code:"predicate",expected:W9,problem:String(X)})}}},meta:{format:"regex"}}),EU=/^(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-]+)*))?$/,VU=N0(EU,"a semantic version (see https://semver.org/)"),H9=N0(/^\S.*\S$|^\S?$/,"trimmed"),OU=e.module({root:J0({in:"string",morphs:(Y)=>Y.trim(),declaredOut:H9}),preformatted:H9},{name:"string.trim"}),J9=N0(/^[A-Z]*$/,"only uppercase letters"),DU=e.module({root:J0({in:"string",morphs:(Y)=>Y.toUpperCase(),declaredOut:J9}),preformatted:J9},{name:"string.upper"}),LU=(Y)=>{if(URL.canParse)return URL.canParse(Y);try{return new URL(Y),!0}catch{return!1}},Q9=J0({domain:"string",predicate:{meta:"a URL string",predicate:LU},meta:{format:"uri"}}),MU=e.module({root:Q9,parse:J0({declaredIn:Q9,in:"string",morphs:(Y,Z)=>{try{return new URL(Y)}catch{return Z.error("a URL string")}},declaredOut:J0(URL)})},{name:"string.url"}),AU=e.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:N0(/^[\da-f]{8}-[\da-f]{4}-1[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv1"),v2:N0(/^[\da-f]{8}-[\da-f]{4}-2[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv2"),v3:N0(/^[\da-f]{8}-[\da-f]{4}-3[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv3"),v4:N0(/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv4"),v5:N0(/^[\da-f]{8}-[\da-f]{4}-5[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv5"),v6:N0(/^[\da-f]{8}-[\da-f]{4}-6[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv6"),v7:N0(/^[\da-f]{8}-[\da-f]{4}-7[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv7"),v8:N0(/^[\da-f]{8}-[\da-f]{4}-8[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv8")},{name:"string.uuid"}),E9=e.module({root:u.string,alpha:N0(/^[A-Za-z]*$/,"only letters"),alphanumeric:N0(/^[\dA-Za-z]*$/,"only letters and digits 0-9"),hex:mz,base64:uz,capitalize:dz,creditCard:oz,date:tz,digits:N0(/^\d*$/,"only digits 0-9"),email:az,integer:z9,ip:ZU,json:GU,lower:$U,normalize:zU,numeric:UU,regex:FU,semver:VU,trim:OU,upper:DU,url:MU,uuid:AU},{name:"string"});var V9=e.module({bigint:u.bigint,boolean:u.boolean,false:u.false,never:u.never,null:u.null,number:u.number,object:u.object,string:u.string,symbol:u.symbol,true:u.true,unknown:u.unknown,undefined:u.undefined}),O9=e.module({root:u.unknown,any:u.unknown},{name:"unknown"}),RU=e.module({root:u.jsonObject,stringify:J2("morph",{in:u.jsonObject,morphs:(Y)=>JSON.stringify(Y),declaredOut:u.string})},{name:"object.json"}),D9=e.module({root:u.object,json:RU},{name:"object"});class L9 extends r0{description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var wU=K1(["K",u.key],"V")((Y)=>({domain:"object",index:{signature:Y.K,value:Y.V}}),L9);class M9 extends r0{description='pick a set of properties from an object like `Pick(User, "name | age")`'}var NU=K1(["T",u.object],["K",u.key])((Y)=>Y.T.pick(Y.K),M9);class A9 extends r0{description='omit a set of properties from an object like `Omit(User, "age")`'}var IU=K1(["T",u.object],["K",u.key])((Y)=>Y.T.omit(Y.K),A9);class R9 extends r0{description="make all named properties of an object optional like `Partial(User)`"}var KU=K1(["T",u.object])((Y)=>Y.T.partial(),R9);class w9 extends r0{description="make all named properties of an object required like `Required(User)`"}var BU=K1(["T",u.object])((Y)=>Y.T.required(),w9);class N9 extends r0{description='exclude branches of a union like `Exclude("boolean", "true")`'}var TU=K1("T","U")((Y)=>Y.T.exclude(Y.U),N9);class I9 extends r0{description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var CU=K1("T","U")((Y)=>Y.T.extract(Y.U),I9),K9=e.module({Exclude:TU,Extract:CU,Omit:IU,Partial:KU,Pick:NU,Record:wU,Required:BU});var R4=vZ({...V9,...K9,...tG,...lG,string:E9,number:E6,object:D9,unknown:O9},{prereducedAliases:!0,name:"ark"}),p0=R4.export();Object.assign(U2.ambient,p0);U2.typeAttachments={string:p0.string.root,number:p0.number.root,bigint:p0.bigint,boolean:p0.boolean,symbol:p0.symbol,undefined:p0.undefined,null:p0.null,object:p0.object.root,unknown:p0.unknown.root,false:p0.false,true:p0.true,never:p0.never,arrayIndex:p0.Array.index,Key:p0.Key,Record:p0.Record,Array:p0.Array.root,Date:p0.Date};var U1=Object.assign(R4.type,U2.typeAttachments),qU=R4.match,jU=R4.generic,HK=R4.schema,PU=R4.define,SU=R4.declare;function E2(Y){return w6(F1.STORE,Y,void 0)}function V2(Y){return O2(F1.STORE,Y)}function hZ(...Y){return h1(F1.STORE,...Y)}function O6(Y,Z){return x9(F1.STORE,Y,Z)}function B9(Y){return f9(Y,F1.STORE)}var G4={atom_family:"atom family",atom:"atom",continuity:"continuity",key:"key",mutable_atom_family:"atom family [m]",mutable_atom:"atom [m]",readonly_held_selector_family:"selector family [h]",readonly_held_selector:"selector [h]",readonly_pure_selector_family:"selector family",readonly_pure_selector:"selector",state:"state",timeline:"timeline",transaction:"transaction",unknown:"unknown",writable_held_selector_family:"selector family [wh]",writable_held_selector:"selector [wh]",writable_pure_selector_family:"selector family [w]",writable_pure_selector:"selector [w]"};var fZ=(Y)=>(Z,X,_,G,...$)=>{console[Y](`${Z} ${G4[X]} \`${_}\` ${G}`,...$)},vU={error:fZ("error"),info:fZ("info"),warn:fZ("warn")},T9=class{logLevel;filter;logger;constructor(Y,Z,X=vU){this.logLevel=Y,this.filter=Z,this.logger=X}error=(...Y)=>{if(this.logLevel!==null){let Z=this.filter?.(...Y)??!0;if(Z===!0)this.logger.error(...Y);else if(Z)this.logger.error(...Z)}};info=(...Y)=>{if(this.logLevel==="info"){let Z=this.filter?.(...Y)??!0;if(Z===!0)this.logger.info(...Y);else if(Z)this.logger.info(...Z)}};warn=(...Y)=>{if(this.logLevel!=="error"&&this.logLevel!==null){let Z=this.filter?.(...Y)??!0;if(Z===!0)this.logger.warn(...Y);else if(Z)this.logger.warn(...Z)}}};var C9=class{store;deallocateTX;claimTX;constructor(Y=F1.STORE){this.store=Y,this.deallocateTX=j9(Y),this.claimTX=P9(Y),q9(Y,"root")}allocate(Y,Z,X){A6(this.store,Y,Z,X)}deallocate(Y){M6(this.store,this.deallocateTX,kZ())(Y)}claim(Y,Z,X){_8(this.store,Y,Z,X)}};function D6(Y){return bZ(F1.STORE,Y)}function L6(Y){return G8(F1.STORE,Y)}function X1(Y){return JSON.parse(Y)}var $0=(Y)=>JSON.stringify(Y),vK=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var h9=class Y extends Set{mode="record";subject=new G0;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(Z,X=0){super(Z);if(Z instanceof Y)this.parent=Z,this.cacheUpdateNumber=Z.cacheUpdateNumber;if(X)this.cacheLimit=X,this.cache=Array(X),this.subscribe("auto cache",(_)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=_})}READONLY_VIEW=this;toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(Z){let X=new Y(Z.members,Z.cacheLimit);return X.cache=Z.cache,X.cacheIdx=Z.cacheIdx,X.cacheUpdateNumber=Z.cacheUpdateNumber,X}add(Z){let X=super.add(Z);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${$0(Z)}`);return X}clear(){let Z=this.mode==="record"?[...this]:null;if(super.clear(),Z)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(Z)}`)}delete(Z){let X=super.delete(Z);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${$0(Z)}`);return X}parent=null;child=null;transactionUpdates=null;transaction(Z){this.mode="transaction",this.transactionUpdates=[],this.child=new Y(this);let X=this.child._subscribe("transaction",(_)=>{this.transactionUpdates?.push(_)});try{if(Z(this.child)){for(let _ of this.transactionUpdates)this.doStep(_);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(_){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",_),_}finally{X(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(Z,X){return this.subject.subscribe(Z,X)}subscribe(Z,X){return this.subject.subscribe(Z,(_)=>{X(`${this.cacheUpdateNumber}=${_}`)})}emit(Z){this.subject.next(Z)}doStep(Z){let X=Z.indexOf(":"),_=Z.substring(0,X),G=Z.substring(X+1);switch(_){case"add":this.add(JSON.parse(G));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(G));break;case"tx":for(let $ of G.split(";"))this.doStep($)}}getUpdateNumber(Z){let X=Z.indexOf("=");return Number(Z.substring(0,X))}do(Z){let X=Z.indexOf("="),_=Number(Z.substring(0,X)),G=_-this.cacheUpdateNumber;if(G>0||Number.isNaN(G)){if(G===1||Number.isNaN(G)){this.mode="playback";let $=Z.substring(X+1);return this.doStep($),this.mode="record",this.cacheUpdateNumber=_,null}return this.cacheUpdateNumber+1}if(Math.abs(G)<this.cacheLimit){let $=this.cacheIdx+G;if(this.cache[$]===Z)return null;this.mode="playback";let W=!1;while(!W){this.cacheIdx%=this.cacheLimit;let Q=this.cache[this.cacheIdx];if(this.cacheIdx--,!Q)return"OUT_OF_RANGE";this.undo(Q),W=this.cacheIdx===$-1}let H=Z.substring(X+1);return this.doStep(H),this.mode="record",this.cacheUpdateNumber=_,null}return"OUT_OF_RANGE"}undoStep(Z){let X=Z.indexOf(":"),_=Z.substring(0,X),G=Z.substring(X+1);switch(_){case"add":this.delete(JSON.parse(G));break;case"del":this.add(JSON.parse(G));break;case"clear":{let $=JSON.parse(G);for(let W of $)this.add(W);break}case"tx":{let $=G.split(";");for(let W=$.length-1;W>=0;W--)this.undoStep($[W])}}}undo(Z){let X=Z.indexOf("=");if(Number(Z.substring(0,X))===this.cacheUpdateNumber){this.mode="playback";let _=Z.substring(X+1);return this.undoStep(_),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}};function kZ(Y=Math.random){return Y().toString(36).slice(2)}function Y0(Y){while(Y.child!==null)Y=Y.child;return Y}function fU(Y){while(Y.parent!==null)Y=Y.parent;return Y}var hU=/^\[object (?:Async|Generator|AsyncGenerator)?Function\]$/;function H8(Y){let Z=Object.prototype.toString.call(Y);return hU.test(Z)}function mZ(Y,Z){if(H8(Y))return Y(Z);return Y}var uZ=class extends Promise{fate;resolve;reject;done=!1;constructor(Y){let Z,X;super((_,G)=>{Z=_,X=G});this.resolve=Z,this.reject=X,this.use(Y instanceof Promise?Y:new Promise(Y))}pass(Y,Z){if(Y===this.fate)this.resolve(Z),this.done=!0}fail(Y,Z){if(Y===this.fate)this.reject(Z),this.done=!0}use(Y){if(this===Y)return;if(Y instanceof Promise){let Z=Y;this.fate=Z,Z.then((X)=>{this.pass(Z,X)},(X)=>{this.fail(Z,X)})}else this.resolve(Y),this.fate=void 0}},G0=class{Subscriber;subscribers=new Map;subscribe(Y,Z){return this.subscribers.set(Y,Z),()=>{this.unsubscribe(Y)}}unsubscribe(Y){this.subscribers.delete(Y)}next(Y){let Z=this.subscribers.values();for(let X of Z)X(Y)}},kU=class extends G0{state;constructor(Y){super();this.state=Y}next(Y){this.state=Y,super.next(Y)}},bU=class Y{_buffer;_index=0;constructor(Z){let X;if(typeof Z==="number")X=Z;else X=Z.length;this._buffer=Array.from({length:X})}get buffer(){return this._buffer}get index(){return this._index}add(Z){this._buffer[this._index]=Z,this._index=(this._index+1)%this._buffer.length}copy(){let Z=new Y([...this._buffer]);return Z._index=this._index,Z}};function y1(Y){let Z={key:Y.key,type:Y.type};if("family"in Y)Z.family=Y.family;return Z}var b1=class extends Map{deleted=new Set;changed=new Set;source;constructor(Y){super();this.source=Y}get(Y){if(super.has(Y))return super.get(Y);if(!this.deleted.has(Y)&&this.source.has(Y))return this.source.get(Y)}set(Y,Z){if(this.deleted.delete(Y),this.source.has(Y))this.changed.add(Y);return super.set(Y,Z)}hasOwn(Y){return super.has(Y)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){if(this.source.has(Y))this.deleted.add(Y),this.changed.delete(Y);return super.delete(Y)}clear(){this.deleted=new Set(this.source.keys()),this.changed.clear(),super.clear()}*[Symbol.iterator](){yield*super[Symbol.iterator]();for(let[Y,Z]of this.source)if(!this.deleted.has(Y)&&!this.changed.has(Y))yield[Y,Z]}*entries(){yield*this[Symbol.iterator]()}*keys(){yield*super.keys();for(let Y of this.source.keys())if(!this.deleted.has(Y)&&!this.changed.has(Y))yield Y}*values(){for(let[,Y]of this[Symbol.iterator]())yield Y}forEach(Y){for(let[Z,X]of this[Symbol.iterator]())Y(X,Z,this)}get size(){return super.size+this.source.size-this.changed.size-this.deleted.size}},p9=class extends Set{deleted=new Set;source;constructor(Y){super();this.source=Y}add(Y){if(this.source.has(Y))return this.deleted.delete(Y),this;return super.add(Y)}hasOwn(Y){return super.has(Y)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){if(this.source.has(Y))return this.deleted.add(Y),!0;return super.delete(Y)}clear(){this.deleted=new Set(this.source),super.clear()}*[Symbol.iterator](){yield*super[Symbol.iterator]();for(let Y of this.source)if(!this.deleted.has(Y))yield Y}*iterateOwn(){yield*super[Symbol.iterator]()}get size(){return super.size+this.source.size-this.deleted.size}},yU=class extends Map{deleted=new Set;source;constructor(Y){super();this.source=Y}get(Y){if(super.has(Y))return super.get(Y);if(!this.deleted.has(Y)&&this.source.has(Y)){let Z=this.source.get(Y),X=new p9(Z);return super.set(Y,X),X}}set(Y,Z){return this.deleted.delete(Y),super.set(Y,Z)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){return this.deleted.add(Y),super.delete(Y)}},$4=class Y{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(Z,X)=>`${Z}:${X}`;warn;getRelatedKeys(Z){return this.relations.get(Z)}addRelation(Z,X){let _=this.relations.get(Z),G=this.relations.get(X);if(_)_.add(X);else _=new Set([X]),this.relations.set(Z,_);if(G)G.add(Z);else G=new Set([Z]),this.relations.set(X,G)}deleteRelation(Z,X){let _=this.relations.get(Z);if(_){if(_.delete(X),_.size===0)this.relations.delete(Z);let G=this.relations.get(X);if(G){if(G.delete(Z),G.size===0)this.relations.delete(X)}}}replaceRelationsUnsafely(Z,X){this.relations.set(Z,new Set(X));for(let _ of X){let G=new Set().add(Z);this.relations.set(_,G)}}replaceRelationsSafely(Z,X){let _=this.relations.get(Z),G=this.isAType?.(Z)?Z:void 0,$=G===void 0?Z:void 0;if(_)for(let W of _){G??=W,$??=W;let H=this.relations.get(W);if(H){if(H.size===1)this.relations.delete(W);else H.delete(Z);this.contents.delete(this.makeContentKey(G,$))}}this.relations.set(Z,new Set(X));for(let W of X){let H=this.relations.get(W);if(H)H.add(Z);else H=new Set().add(Z),this.relations.set(W,H)}}getContentInternal(Z){return this.contents.get(Z)}setContent(Z,X){this.contents.set(Z,X)}deleteContent(Z){this.contents.delete(Z)}constructor(Z,X){if(this.a=Z.between[0],this.b=Z.between[1],this.cardinality=Z.cardinality,this.isAType=X?.isAType??null,this.isBType=X?.isBType??null,this.isContent=X?.isContent??null,X?.makeContentKey)this.makeContentKey=X.makeContentKey;if(!X?.externalStore){let _=X?.source;if(_===void 0)this.relations=new Map(Z.relations?.map(([G,$])=>[G,new Set($)])),this.contents=new Map(Z.contents);if(_)this.relations=new yU(_.relations),this.contents=new b1(_.contents)}if(X?.externalStore){let _=X.externalStore;if(this.has=(G,$)=>_.has(G,$),this.addRelation=(G,$)=>{_.addRelation(G,$)},this.deleteRelation=(G,$)=>{_.deleteRelation(G,$)},this.replaceRelationsSafely=(G,$)=>{_.replaceRelationsSafely(G,$)},this.replaceRelationsUnsafely=(G,$)=>{_.replaceRelationsUnsafely(G,$)},this.getRelatedKeys=(G)=>_.getRelatedKeys(G),_.getContent)this.getContentInternal=(G)=>{return _.getContent(G)},this.setContent=(G,$)=>{_.setContent(G,$)},this.deleteContent=(G)=>{_.deleteContent(G)};for(let[G,$]of Z.relations??[]){let W=this.isAType?.(G)?G:void 0,H=W===void 0?G:void 0;for(let Q of $)W??=Q,H??=Q,this.addRelation(W,H)}for(let[G,$]of Z.contents??[])this.setContent(G,$)}if(X?.warn)this.warn=X.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([Z,X])=>[Z,[...X]]),contents:[...this.contents.entries()]}}set(...Z){let X,_,G;switch(Z.length){case 1:{let $=Z[0];X=$[this.a],_=$[this.b],G=void 0;break}case 2:{let $=Z[0];if(typeof $==="string")[X,_]=Z;else X=$[this.a],_=$[this.b],G=Z[1];break}default:X=Z[0],_=Z[1],G=Z[2];break}switch(this.cardinality){case"1:1":{let $=this.getRelatedKey(X);if($&&$!==_)this.delete(X,$)}case"1:n":{let $=this.getRelatedKey(_);if($&&$!==X)this.delete($,_)}break;case"n:n":}if(G){let $=this.makeContentKey(X,_);this.setContent($,G)}return this.addRelation(X,_),this}delete(Z,X){X=typeof X==="string"?X:Z[this.b];let _=typeof Z==="string"?Z:Z[this.a];if(_===void 0&&typeof X==="string"){let G=this.getRelatedKeys(X);if(G)for(let $ of G)this.delete($,X)}else if(typeof _==="string"&&X===void 0){let G=this.getRelatedKeys(_);if(G)for(let $ of G)this.delete(_,$)}else if(typeof _==="string"&&typeof X==="string"){this.deleteRelation(_,X);let G=this.makeContentKey(_,X);this.deleteContent(G)}return this}getRelatedKey(Z){let X=this.getRelatedKeys(Z);if(X){if(X.size>1)this.warn?.(`${X.size} related keys were found for key "${Z}": (${[...X].map((G)=>`"${G}"`).join(", ")}). Only one related key was expected.`);let _;for(let G of X){_=G;break}return _}}replaceRelations(Z,X,_){let G=!Array.isArray(X),$=G?Object.keys(X):X;if(_?.reckless)this.replaceRelationsUnsafely(Z,$);else this.replaceRelationsSafely(Z,$);if(G)for(let W of $){let H=this.makeContentKey(Z,W),Q=X[W];this.setContent(H,Q)}return this}getContent(Z,X){let _=this.makeContentKey(Z,X);return this.getContentInternal(_)}getRelationEntries(Z){let X=Z[this.a],_=Z[this.b];if(X!==void 0&&_===void 0){let G=this.getRelatedKeys(X);if(G)return[...G].map(($)=>{return[$,this.getContent(X,$)]})}if(X===void 0&&_!==void 0){let G=this.getRelatedKeys(_);if(G)return[...G].map(($)=>{return[$,this.getContent($,_)]})}return[]}has(Z,X){if(X)return this.getRelatedKeys(Z)?.has(X)??!1;return this.relations.has(Z)}overlay(){let Z={source:this,makeContentKey:this.makeContentKey};if(this.isAType)Z.isAType=this.isAType;if(this.isBType)Z.isBType=this.isBType;if(this.isContent)Z.isContent=this.isContent;if(this.warn)Z.warn=this.warn;return new Y({between:[this.a,this.b],cardinality:this.cardinality},Z)}incorporate(Z){let{relations:X,contents:_}=Z;for(let[G,$]of X)if($ instanceof p9){let{source:W}=$;for(let H of $.iterateOwn())W.add(H)}else this.relations.set(G,$);for(let G of X.deleted)this.relations.delete(G);for(let[G,$]of _)this.contents.set(G,$);for(let G of _.deleted)this.contents.delete(G)}};function L2(Y){return Y.startsWith("\uD83D\uDD0D ")}var gU=(Y)=>{Y.logger.info("\uD83E\uDE82","transaction",Y.transactionMeta.update.token.key,"Aborting transaction"),Y.parent.child=null};function M6(Y,Z,X){return(..._)=>{return P0(Y,Z).run(_,X)}}function pU(Y,Z,X){let{token:_,update:{newValue:G,oldValue:$}}=Z;k1(Y,_,X==="newValue"?G:$)}function mU(Y){let{stack:Z}=Y;if(Z)return`
48
48
  `+Z.split(`
49
49
  `)?.slice(1)?.join(`
50
50
  `);return""}function q9(Y,Z){let X={key:Z,stringKey:$0(Z),dependsOn:"any"};return Y.molecules.set($0(Z),X),Z}function A6(Y,Z,X,_="any"){let G=Z,$=$0(X),W=[],H=Y0(Y);if(Array.isArray(G))for(let J of G){let z=$0(J);if(H.molecules.get(z))Y.moleculeGraph.set(z,$,{source:z});else W.push(z)}else{let J=$0(G);if(H.molecules.get(J))Y.moleculeGraph.set(J,$,{source:J});else W.push(J)}if(W.length===0)H.molecules.set($,{key:X,stringKey:$,dependsOn:_});let Q={type:"molecule_creation",key:X,provenance:G,timestamp:Date.now()};if(E1(H)&&H.transactionMeta.phase==="building")H.transactionMeta.update.subEvents.push(Q);else H.on.moleculeCreation.next(Q);for(let J of W){let z=Y.disposalTraces.buffer.find((F)=>F?.key===J);Y.logger.error("\u274C","key",X,"allocation failed:",`Could not allocate to ${J} in store "${Y.config.name}".`,z?`
51
51
  ${J} was most recently disposed
52
52
  ${z.trace}`:`No previous disposal trace for ${J} was found.`)}return X}function j9(Y){return G8(Y,{key:"[Internal] deallocate",do:(Z,X)=>{K6(Y0(Y),X)}})}function K6(Y,Z){let X=$0(Z),_=Y.molecules.get(X);if(!_){let O=Y.disposalTraces.buffer.find((L)=>L?.key===X);Y.logger.error("\u274C","key",Z,"deallocation failed:",`Could not find allocation for ${X} in store "${Y.config.name}".`,O?`
53
53
  This state was most recently deallocated
54
- ${O.trace}`:`No previous disposal trace for ${X} was found.`);return}let G=Y.moleculeJoins.getRelatedKeys(X);if(G)for(let O of G){let L=Y.joins.get(O);if(L)L.relations.delete(Z)}Y.moleculeJoins.delete(X);let $=[],W=[],H=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:X});if(H)for(let[O,{source:L}]of H)if(L===X){let w=X1(O);K6(Y,w)}else $.push(L);let Q=Y.moleculeData.getRelatedKeys(_.stringKey);if(Q)for(let O of Q){let L=Y.families.get(O),w=h1(Y,L,Z);W.push([L.key,w]),$8(Y,L,Z)}let J={type:"molecule_disposal",key:_.key,values:W,provenance:$,timestamp:Date.now()};Y.molecules.delete(X);let z=E1(Y)&&Y.transactionMeta.phase==="building";if(z)Y.transactionMeta.update.subEvents.push(J);if(Y.moleculeGraph.delete(_.stringKey),Y.moleculeJoins.delete(_.stringKey),Y.moleculeData.delete(_.stringKey),!z)Y.on.moleculeDisposal.next(J);Y.molecules.delete(_.stringKey);let F=mU(new Error);Y.disposalTraces.add({key:X,trace:F})}function P9(Y){return G8(Y,{key:"[Internal] claim",do:(Z,X,_,G)=>{_8(Y,X,_,G)}})}function _8(Y,Z,X,_){let G=$0(X),$=Y0(Y),W=$.molecules.get(G);if(!W){let F=Y.disposalTraces.buffer.find((O)=>O?.key===G);return Y.logger.error("\u274C","key",G,"claim failed:",`Could not allocate to ${G} in store "${Y.config.name}".`,F?`
54
+ ${O.trace}`:`No previous disposal trace for ${X} was found.`);return}let G=Y.moleculeJoins.getRelatedKeys(X);if(G)for(let O of G){let L=Y.joins.get(O);if(L)L.relations.delete(Z)}Y.moleculeJoins.delete(X);let $=[],W=[],H=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:X});if(H)for(let[O,{source:L}]of H)if(L===X){let w=X1(O);K6(Y,w)}else $.push(L);let Q=Y.moleculeData.getRelatedKeys(_.stringKey);if(Q)for(let O of Q){let L=Y.families.get(O),w=h1(Y,L,Z);W.push([L.key,w]),$8(Y,L,Z)}let J={type:"molecule_disposal",key:_.key,values:W,provenance:$,timestamp:Date.now()};Y.molecules.delete(X);let z=E1(Y)&&Y.transactionMeta.phase==="building";if(z)Y.transactionMeta.update.subEvents.push(J);if(Y.moleculeGraph.delete(_.stringKey),Y.moleculeJoins.delete(_.stringKey),Y.moleculeData.delete(_.stringKey),!z)Y.on.moleculeDisposal.next(J);Y.molecules.delete(_.stringKey);let F=mU(Error());Y.disposalTraces.add({key:X,trace:F})}function P9(Y){return G8(Y,{key:"[Internal] claim",do:(Z,X,_,G)=>{_8(Y,X,_,G)}})}function _8(Y,Z,X,_){let G=$0(X),$=Y0(Y),W=$.molecules.get(G);if(!W){let F=Y.disposalTraces.buffer.find((O)=>O?.key===G);return Y.logger.error("\u274C","key",G,"claim failed:",`Could not allocate to ${G} in store "${Y.config.name}".`,F?`
55
55
  ${G} was most recently disposed
56
56
  ${F.trace}`:`No previous disposal trace for ${G} was found.`),X}let H=$0(Z),Q=$.molecules.get(H);if(!Q){let F=Y.disposalTraces.buffer.find((O)=>O?.key===H);return Y.logger.error("\u274C","key",X,"claim failed:",`Could not allocate to ${H} in store "${Y.config.name}".`,F?`
57
57
  ${H} was most recently disposed
58
58
  ${F.trace}`:`No previous disposal trace for ${H} was found.`),X}let J=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:W.stringKey}).filter(([,{source:F}])=>F!==G).map(([F])=>X1(F));if(_)$.moleculeGraph.delete(G);$.moleculeGraph.set({upstreamMoleculeKey:Q.stringKey,downstreamMoleculeKey:W.stringKey},{source:Q.stringKey});let z={type:"molecule_transfer",key:W.key,exclusive:Boolean(_),from:J,to:[Q.key],timestamp:Date.now()};if(E1($)&&$.transactionMeta.phase==="building")$.transactionMeta.update.subEvents.push(z);return X}function uU(Y,Z,X){switch(X){case"newValue":m9(Y,Z);break;case"oldValue":$8(Y,Z.token);break}}function dU(Y,Z,X){switch(X){case"newValue":$8(Y,Z.token);break;case"oldValue":if(m9(Y,Z),Z.subType==="atom")Y.valueMap.set(Z.token.key,Z.value);break}}function m9(Y,Z){let{token:X}=Z;if(Z.subType==="writable"&&Z.value)k1(Y,X,Z.value);else h1(Y,X)}function cU(Y,Z,X){switch(X){case"newValue":A6(Y,Z.provenance,Z.key);break;case"oldValue":K6(Y,Z.key);break}}function lU(Y,Z,X){switch(X){case"newValue":K6(Y,Z.key);break;case"oldValue":{let _=Z.provenance.map(X1);A6(Y,_,Z.key);for(let[G,$]of Z.values){let W=Y.families.get(G);if(W){h1(Y,W,Z.key);let H=`${G}(${$0(Z.key)})`;Y.valueMap.set(H,$)}}}break}}function oU(Y,Z,X){switch(X){case"newValue":for(let _ of Z.to)_8(Y,_,Z.key,Z.exclusive?"exclusive":void 0);break;case"oldValue":{let _="exclusive";for(let G of Z.from)_8(Y,G,Z.key,_),_=void 0}break}}function u9(Y,Z,X){let _=X==="newValue"?Z.subEvents:[...Z.subEvents].reverse();for(let G of _)switch(G.type){case"atom_update":pU(Y,G,X);break;case"state_creation":uU(Y,G,X);break;case"state_disposal":dU(Y,G,X);break;case"molecule_creation":cU(Y,G,X);break;case"molecule_disposal":lU(Y,G,X);break;case"molecule_transfer":oU(Y,G,X);break;case"transaction_outcome":u9(Y,G,X);break}}function D2(Y){return"epoch"in Y.transactionMeta}function E1(Y){return"phase"in Y.transactionMeta}function d9(Y,Z){return Y.transactionMeta.actionContinuities.getRelatedKey(Z)}function iU(Y,Z){return Y.transactionMeta.epoch.get(Z)}function nU(Y,Z){let X=d9(Y,Z);if(X===void 0)return;return iU(Y,X)}function rU(Y,Z,X){let _=d9(Y,Z);if(_!==void 0)Y.transactionMeta.epoch.set(_,X)}function sU(Y,Z){let X=Y0(Y),{parent:_}=X;X.transactionMeta.phase="applying",X.transactionMeta.update.output=Z,_.child=null,_.on.transactionApplying.next(X.transactionMeta);let{subEvents:G}=X.transactionMeta.update;if(Y.logger.info("\uD83D\uDEC4","transaction",X.transactionMeta.update.token.key,`applying ${G.length} subEvents:`,G),u9(_,X.transactionMeta.update,"newValue"),D2(_))rU(_,X.transactionMeta.update.token.key,X.transactionMeta.update.epoch),P0(Y,{key:X.transactionMeta.update.token.key,type:"transaction"})?.subject.next(X.transactionMeta.update),Y.logger.info("\uD83D\uDEEC","transaction",X.transactionMeta.update.token.key,"applied");else if(E1(_))_.transactionMeta.update.subEvents.push(X.transactionMeta.update);_.on.transactionApplying.next(null)}function tU(Y){return{store:Y}}var aU=(Y,Z,X,_)=>{let G=Y0(Y),$={parent:G,child:null,on:G.on,loggers:G.loggers,logger:G.logger,config:G.config,atoms:new b1(G.atoms),atomsThatAreDefault:new Set(G.atomsThatAreDefault),families:new b1(G.families),joins:new b1(G.joins),operation:{open:!1},readonlySelectors:new b1(G.readonlySelectors),timelines:new b1(G.timelines),timelineTopics:G.timelineTopics.overlay(),trackers:new Map,transactions:new b1(G.transactions),selectorAtoms:G.selectorAtoms.overlay(),selectorGraph:G.selectorGraph.overlay(),writableSelectors:new b1(G.writableSelectors),valueMap:new b1(G.valueMap),defaults:G.defaults,disposalTraces:Y.disposalTraces.copy(),molecules:new b1(G.molecules),moleculeGraph:G.moleculeGraph.overlay(),moleculeData:G.moleculeData.overlay(),moleculeJoins:G.moleculeJoins.overlay(),miscResources:new b1(G.miscResources)},W=nU(Y,Z.key),H={phase:"building",update:{type:"transaction_outcome",token:Z,id:_,epoch:W===void 0?NaN:W+1,timestamp:Date.now(),subEvents:[],params:X,output:void 0},toolkit:{get:(...J)=>h1(Q,...J),set:(...J)=>{k1(Q,...J)},reset:(...J)=>{R6(Q,...J)},run:(J,z=kZ())=>M6(Q,J,z),find:(...J)=>j0(Y,...J),json:(J)=>k4(Q,J),dispose:(...J)=>{$8(Q,...J)},env:()=>tU(Q)}},Q=Object.assign($,{transactionMeta:H});return G.child=Q,Y.logger.info("\uD83D\uDEEB","transaction",Z.key,"building with params:",X),Q};function G8(Y,Z){let{key:X}=Z,_=Y.transactions.has(X),G={key:X,type:"transaction",run:(W,H)=>{let Q=y1(G),J=aU(Y,Q,W,H);try{let{toolkit:z}=J.transactionMeta,F=Z.do(z,...W);return sU(J,F),F}catch(z){throw gU(J),Y.logger.warn("\uD83D\uDCA5","transaction",X,"caught:",z),z}},install:(W)=>G8(W,Z),subject:new G0};Y0(Y).transactions.set(X,G);let $=y1(G);if(!_)Y.on.transactionCreation.next($);return $}var S9=class{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;writableSelectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new $4({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new $4({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new $4({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new $4({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new bU(100);molecules=new Map;moleculeJoins=new $4({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeGraph=new $4({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeData=new $4({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});miscResources=new Map;on={atomCreation:new G0,atomDisposal:new G0,selectorCreation:new G0,selectorDisposal:new G0,timelineCreation:new G0,transactionCreation:new G0,transactionApplying:new kU(null),operationClose:new G0,moleculeCreation:new G0,moleculeDisposal:new G0};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new T9("warn",(Y,Z,X)=>!L2(X))];logger={error:(...Y)=>{for(let Z of this.loggers)Z.error(...Y)},info:(...Y)=>{for(let Z of this.loggers)Z.info(...Y)},warn:(...Y)=>{for(let Z of this.loggers)Z.warn(...Y)}};constructor(Y,Z=null){if(this.config={...Z?.config,...Y},Z!==null){if(this.operation={...Z?.operation},D2(Z))this.transactionMeta={epoch:new Map(Z?.transactionMeta.epoch),actionContinuities:new $4(Z?.transactionMeta.actionContinuities.toJSON())};for(let[,_]of Z.families){if(_.internalRoles?.includes("mutable")||_.internalRoles?.includes("join"))continue;_.install(this)}let X=new Set;for(let[,_]of Z.atoms){if(X.has(_.key))continue;if(_.install(this),_.type==="mutable_atom"){let G=k4(Z,_),$=Y5(_);X.add(G.key),X.add($.key)}}for(let[,_]of Z.readonlySelectors)_.install(this);for(let[,_]of Z.writableSelectors){if(X.has(_.key))continue;_.install(this)}for(let[,_]of Z.transactions)_.install(this);for(let[,_]of Z.timelines)_.install(this)}}},F1={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new S9({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};var eU=class extends Error{constructor(Y,Z){super(`${G4[Y.type]} ${$0(Y.key)} not found in store "${Z.config.name}".`)}};function P0(Y,Z){let X,_=Y;while(_!==null){switch(Z.type){case"atom":case"mutable_atom":X=_.atoms.get(Z.key);break;case"writable_pure_selector":case"writable_held_selector":X=_.writableSelectors.get(Z.key);break;case"readonly_pure_selector":case"readonly_held_selector":X=_.readonlySelectors.get(Z.key);break;case"atom_family":case"mutable_atom_family":case"writable_pure_selector_family":case"readonly_pure_selector_family":case"writable_held_selector_family":case"readonly_held_selector_family":X=_.families.get(Z.key);break;case"timeline":X=_.timelines.get(Z.key);break;case"transaction":X=_.transactions.get(Z.key);break}if(X)return X;_=_.child}throw new eU(Z,Y)}function c9(Y,Z,X,_){let G=Y.disposalTraces.buffer.find(($)=>$?.key===$0(_));switch(Y.logger.error("\u274C",Z.type,Z.key,"gets a fallback value because key",_,"is not allocated",G?`This key was previously disposed:
59
- ${G.trace}`:"(no previous disposal trace found)"),X.type){case"mutable_atom_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=new X.class;return Y.defaults.set(X.key,$),$.READONLY_VIEW}case"atom_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=X.default,W=$(_);return Y.defaults.set(X.key,W),W}case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=X.default(_);return Y.defaults.set(X.key,$),$}}}function N6(Y,Z){let{type:X,key:_,catch:G}=Z;switch(X){case"readonly_pure_selector":case"writable_pure_selector":{let $;Y.logger.info("\uD83E\uDDEE",X,_,"computing value");try{if($=Z.getFrom(Y),$ instanceof Promise)return $.catch((W)=>{if(Y.logger.error("\uD83D\uDCA5",X,_,"rejected:",W),G){for(let H of G)if(W instanceof H)return W}throw W})}catch(W){if(Y.logger.error("\uD83D\uDCA5",X,_,"rejected:",W),G){for(let H of G)if(W instanceof H)return B1(Y,Z,W)}throw W}return B1(Y,Z,$)}case"atom":{let $;if(H8(Z.default))try{if($=Z.default(),$ instanceof Promise)$=$.catch((W)=>{if(Y.logger.error("\uD83D\uDCA5",X,_,"rejected:",W),G){for(let H of G)if(W instanceof H)return W}throw W})}catch(W){if(Y.logger.error("\uD83D\uDCA5",X,_,"rejected:",W),G){for(let H of G)if(W instanceof H)return $=B1(Y,Z,W),Y.logger.info("\u2728",Z.type,_,"computed default",$),$}throw W}else $=Z.default,Y.logger.info("\u2728",Z.type,_,"using static default",$);return B1(Y,Z,$)}}}function h4(Y,Z,X){if(Y.valueMap.has(Z.key))return FF(Y,Z,X);Y.logger.info("\u2754",Z.type,Z.key,"value not found in cache");let{key:_}=Z;switch(Z.type){case"readonly_held_selector":case"writable_held_selector":return Y.logger.info("\uD83E\uDDEE",Z.type,_,"computing value"),Z.getFrom(Y);case"writable_pure_selector":case"readonly_pure_selector":case"atom":return N6(Y,Z);case"mutable_atom":{let G=new Z.class;return Y.logger.info("\u2728",Z.type,_,"created new instance",G),B1(Y,Z,G)}}}function oZ(Y,Z){return P0(Y,{key:Z.family.key,type:`${Z.type}_family`})}var k9={atom_family:"atom",molecule_family:"molecule",mutable_atom_family:"mutable_atom",readonly_held_selector_family:"readonly_held_selector",readonly_pure_selector_family:"readonly_pure_selector",writable_held_selector_family:"writable_held_selector",writable_pure_selector_family:"writable_pure_selector"},J8=Symbol("MUST_CREATE"),YF=Symbol("DO_NOT_CREATE");function Q8(Y,Z,X,_){let G=$0(_),$=Z.molecules.get(G);if(!$&&Z.config.lifespan==="immortal"){let{type:H,key:Q}=X;Z.logger.warn("\uD83D\uDCA3","key",G,"was used to mint a counterfeit token for",H,`"${Q}"`);let J=`${Q}(${G})`,z=k9[H];return{counterfeit:!0,key:J,type:z,family:{key:Q,subKey:G}}}let W;if(Y===J8){if(Z.logger.info("\uD83D\uDC6A",X.type,X.key,"adds member",typeof _==="string"?`\`${_}\``:_),W=X.create(_),$)Z.moleculeData.set(G,X.key)}else{let{type:H,key:Q}=X,J=`${Q}(${G})`,z=k9[H];return{key:J,type:z,family:{key:Q,subKey:G}}}return W}function iZ(Y,...Z){let X,_,G,$,W;if(Z.length===1){if(W=Z[0],"family"in W){let Q=oZ(Y,W);if(G=P0(Y,Q),$=X1(W.family.subKey),X=z8(Y,Q,$),"counterfeit"in W)return{token:W,family:G,subKey:$,isNew:!1};if(!X)_=Q8(J8,Y,Q,$),W=_;else W=X}}else if(G=P0(Y,Z[0]),$=Z[1],X=z8(Y,G,$),!X)_=Q8(J8,Y,G,$),W=_;else W=X;let H="counterfeit"in W;if(Boolean(_)&&H===!1&&G){let Q;switch(W.type){case"readonly_pure_selector":case"readonly_held_selector":Q="readable";break;case"atom":case"mutable_atom":case"writable_pure_selector":case"writable_held_selector":Q="writable";break}let J={type:"state_creation",subType:Q,token:W,timestamp:Date.now()};G.subject.next(J);let z=Y0(Y);if(W.family){if(D2(z))switch(W.type){case"atom":case"mutable_atom":Y.on.atomCreation.next(W);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":Y.on.selectorCreation.next(W);break}else if(E1(z)&&z.on.transactionApplying.state===null)z.transactionMeta.update.subEvents.push(J)}}return{token:W,family:G,subKey:$,isNew:Boolean(_)}}function h1(Y,...Z){let{token:X,family:_,subKey:G}=iZ(Y,...Z);if("counterfeit"in X&&_&&G)return c9(Y,X,_,G);let $=P0(Y,X);return h4(Y,$)}function z8(Y,Z,X){let _=$0(X),G=`${Z.key}(${_})`,$=Y0(Y),W;switch(Z.type){case"atom_family":case"mutable_atom_family":W=$.atoms.get(G);break;case"writable_held_selector_family":case"writable_pure_selector_family":W=$.writableSelectors.get(G);break;case"readonly_held_selector_family":case"readonly_pure_selector_family":W=$.readonlySelectors.get(G);break}if(W)return y1(W);return W}function j0(Y,Z,X){let _=P0(Y,Z),G=z8(Y,Z,X);if(G)return G;return Q8(YF,Y,_,X)}function f4(Y,Z,X){let _=Z.key,G="readonly_pure_selector_family",$={key:_,type:"readonly_pure_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","readonly_pure_selector_family",_,`Overwriting an existing ${G4[W.type]} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new G0,J={...$,create:(z)=>{let F=$0(z),O={key:_,subKey:F},L=`${_}(${F})`,w=Y0(Y),R={key:L,get:Z.get(z)};if(Z.catch)R.catch=Z.catch;return sZ(w,R,O)},internalRoles:X,subject:H,install:(z)=>f4(z,Z),default:(z)=>{return Z.get(z)({get:(...F)=>h1(Y,...F),find:(...F)=>j0(Y,...F),json:(F)=>k4(Y,F)})}};return Y.families.set(_,J),$}function O2(Y,Z,X){let _={key:Z.key,type:"atom_family"},G=Y.families.get(Z.key);if(G)Y.logger.error("\u2757","atom_family",Z.key,`Overwriting an existing ${G4[G.type]} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new G0,H={..._,create:(Q)=>{let J=$0(Q),z={key:Z.key,subKey:J},F=`${Z.key}(${J})`,O=Y0(Y),L=Z.default,w={key:F,default:H8(L)?()=>L(Q):L};if(Z.effects)w.effects=Z.effects(Q);if(Z.catch)w.catch=Z.catch;return x4(O,w,z)},default:Z.default,subject:$,install:(Q)=>O2(Q,Z),internalRoles:X};if(Y.families.set(Z.key,H),H8(Z.default)===!1)Y.defaults.set(Z.key,Z.default);return _}function l9(Y,Z,X){let _=Z.key,G="readonly_held_selector_family",$={key:_,type:"readonly_held_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","readonly_held_selector_family",_,`Overwriting an existing ${G4[W.type]} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new G0,J={...$,create:(z)=>{let F=$0(z),O={key:_,subKey:F},L=`${_}(${F})`,w=Y0(Y);return rZ(w,{key:L,const:Z.const(z),get:Z.get(z)},O)},internalRoles:X,subject:H,install:(z)=>l9(z,Z),default:Z.const};return Y.families.set(_,J),$}function o9(Y,Z,X){let _=Z.key,G="writable_held_selector_family",$={key:_,type:"writable_held_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","writable_held_selector_family",_,`Overwriting an existing ${G4[W.type]} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new G0,J={...$,create:(z)=>{let F=$0(z),O={key:_,subKey:F},L=`${_}(${F})`,w=Y0(Y);return tZ(w,{key:L,const:Z.const(z),get:Z.get(z),set:Z.set(z)},O)},internalRoles:X,subject:H,install:(z)=>o9(z,Z),default:Z.const};return Y.families.set(_,J),$}function nZ(Y,Z,X){let _=Z.key,G="writable_pure_selector_family",$={key:_,type:"writable_pure_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","writable_pure_selector_family",_,`Overwriting an existing ${G4[W.type]} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new G0,J={...$,create:(z)=>{let F=$0(z),O={key:_,subKey:F},L=`${_}(${F})`,w=Y0(Y),R={key:L,get:Z.get(z),set:Z.set(z)};if(Z.catch)R.catch=Z.catch;return aZ(w,R,O)},internalRoles:X,subject:H,install:(z)=>nZ(z,Z),default:(z)=>{return Z.get(z)({get:(...F)=>h1(Y,...F),find:(...F)=>j0(Y,...F),json:(F)=>k4(Y,F)})}};return Y.families.set(_,J),$}function bZ(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X)return o9(Y,Z,void 0);if(_)return l9(Y,Z,void 0);if(X)return nZ(Y,Z);return f4(Y,Z)}function $8(Y,...Z){let X;if(Z.length===1)X=Z[0];else{let _=Z[0],G=Z[1];X=j0(Y,_,G)}try{P0(Y,X)}catch(_){Y.logger.error("\u274C",X.type,X.key,`could not be disposed because it was not found in the store "${Y.config.name}".`);return}switch(X.type){case"atom":case"mutable_atom":Y7(Y,X);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":JF(Y,X);break}}function i9(Y,Z){if(Y.operation.open){let X=performance.now();return Y.logger.info("\uD83D\uDEAB",Z.type,Z.key,`deferring setState at T-${X} until setState for "${Y.operation.token.key}" is done`),X}return Y.operation={open:!0,done:new Set,prev:new Map,timestamp:Date.now(),token:Z,subEvents:[]},Y.logger.info("\u2B55",Z.type,Z.key,`operation start in store "${Y.config.name}"${E1(Y)?` ${Y.transactionMeta.phase} "${Y.transactionMeta.update.token.key}"`:""}`),Y}function n9(Y){if(Y.operation.open)Y.logger.info("\uD83D\uDD34",Y.operation.token.type,Y.operation.token.key,`operation done in store "${Y.config.name}"`);Y.operation={open:!1},Y.on.operationClose.next(Y.operation)}var r9=(Y,Z)=>{if(!Y.operation.open)return Y.logger.error("\uD83D\uDC1E","unknown",Z,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return Y.operation.done.has(Z)},B6=(Y,Z)=>{if(!Y.operation.open){Y.logger.error("\uD83D\uDC1E","unknown",Z,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}Y.operation.done.add(Z)};function dZ(Y,Z,{oldValue:X,newValue:_},G,$){let W=y1(Z);if(G&&$){Z.subject.next({newValue:_});let F={checkpoint:!0,type:"state_creation",subType:"writable",token:W,timestamp:Date.now(),value:_};Y.operation.subEvents.push(F),$.subject.next(F);let O=Y0(Y);if(W.family){if(D2(O))switch(W.type){case"atom":case"mutable_atom":Y.on.atomCreation.next(W);break;case"writable_pure_selector":case"writable_held_selector":Y.on.selectorCreation.next(W);break}else if(E1(O)&&O.on.transactionApplying.state===null)O.transactionMeta.update.subEvents.push(F)}return}let{key:H,subject:Q,type:J}=Z,z={oldValue:pZ(X)?X.READONLY_VIEW:X,newValue:pZ(_)?_.READONLY_VIEW:_};if(D2(Y)){switch(J){case"mutable_atom":Y.logger.info("\uD83D\uDCE2",J,H,"is now (",_,") subscribers:",Q.subscribers.keys());break;case"atom":case"writable_pure_selector":case"writable_held_selector":Y.logger.info("\uD83D\uDCE2",J,H,"went (",X,"->",_,") subscribers:",Q.subscribers.keys())}Q.next(z)}if(E1(Y)&&(J==="mutable_atom"||J==="atom")){if(Y.on.transactionApplying.state===null){if(pZ(_))return;let{timestamp:F}=Y.operation,O={type:"atom_update",token:W,timestamp:F,update:z};Y.transactionMeta.update.subEvents.push(O),Y.logger.info("\uD83D\uDCC1","atom",H,"stowed (",X,"->",_,")");return}if(X5(Z,"tracker:signal")){let F=H.slice(1),O=Y.atoms.get(F);if(h4(Y,O,"mut").do(z.newValue)===null===!0)Z5(Y,O)}}}var cZ=(Y,Z,X)=>{let _=h4(Y,Z,"mut"),G=mZ(X,_);return Y.logger.info("\u2B50","atom",Z.key,"setting value",G),G=B1(Y,Z,G),B6(Y,Z.key),Z5(Y,Z),{oldValue:_,newValue:G}};function gZ(Y,Z){switch(Z.type){case"mutable_atom":return cZ(Y,Z,new Z.class);case"atom":{let X;if(H8(Z.default))X=N6(Y,Z);else X=Z.default;return cZ(Y,Z,X)}}}function ZF(Y,Z){let X;switch(Z.type){case"atom":case"mutable_atom":X=gZ(Y,Z);break;case"writable_held_selector":{let _=U8(Y,Z.key);for(let $ of _.values()){let W=gZ(Y,$);dZ(Y,Z,W,!1)}let G=Z.getFrom(Y);X={oldValue:G,newValue:G}}break;case"writable_pure_selector":{let _=N6(Y,Z),G=U8(Y,Z.key);for(let W of G.values()){let H=gZ(Y,W);dZ(Y,Z,H,!1)}let $=N6(Y,Z);X={oldValue:_,newValue:$}}break}return X}function k1(Y,...Z){E8(I6,Y,...Z)}var lZ=Symbol("RESET");function R6(Y,...Z){let X=[...Z,lZ];k1(Y,...X)}function XF(Y,Z,X){let _,G,$,{type:W,key:H}=Z;switch(Z.type){case"writable_pure_selector":_=h4(Y,Z,"mut"),G=mZ(X,_),G=B1(Y,Z,G);break;case"writable_held_selector":$=Z.const,mZ(X,$),_=$,G=$}return Y.logger.info("\u2B50",W,H,"setting to",G),B6(Y,H),Z.setSelf(G),{oldValue:_,newValue:G}}var _F=(Y,Z,X)=>{let _;switch(Z.type){case"atom":case"mutable_atom":_=cZ(Y,Z,X);break;case"writable_pure_selector":case"writable_held_selector":_=XF(Y,Z,X);break}return _},I6=Symbol("OWN_OP"),s9=Symbol("JOIN_OP");function E8(Y,Z,...X){let _,G,$,W,H,Q;if(X.length===2){if($=X[0],Q=X[1],"family"in $)if(W=oZ(Z,$),H=X1($.family.subKey),_=z8(Z,W,H),!_)$=G=Q8(J8,Z,W,H);else $=_}else if(W=P0(Z,X[0]),H=X[1],Q=X[2],_=z8(Z,W,H),!_)$=G=Q8(J8,Z,W,H);else $=_;let J=Q===lZ?"reset":"set",z;if(Y===I6){let L=i9(Z,$);if(typeof L==="number"){let w=L,R=Z.on.operationClose.subscribe(`waiting to ${J} "${$.key}" at T-${w}`,function b(){R(),Z.logger.info("\uD83D\uDFE2",$.type,$.key,"resuming deferred",J,`from T-${w}`),E8(Y,Z,$,Q)});return}z=L}else z=Z;if("counterfeit"in $&&"family"in $){let L=$.family.subKey,w=Z.disposalTraces.buffer.find((R)=>R?.key===L);Z.logger.error("\u274C",$.type,$.key,"could not be",J,"because key",L,"is not allocated.",w?`this key was previously disposed:${w.trace}`:"(no previous disposal trace found)");return}let F=P0(z,$),O;if(Q===lZ)O=ZF(z,F);else O=_F(z,F,Q);if(dZ(z,F,O,Boolean(G),W),Y===I6)n9(z)}var t9=(Y,Z)=>Y0(Y).atoms.has(Z),GF=(Y,Z)=>Y0(Y).writableSelectors.has(Z),$F=(Y,Z)=>Y0(Y).readonlySelectors.has(Z),WF=(Y,Z)=>t9(Y,Z)||GF(Y,Z)||$F(Y,Z);function b9(Y,Z){return Y0(Y).selectorGraph.getRelationEntries({downstreamSelectorKey:Z}).filter(([X,{source:_}])=>_!==Z).map(([X,{source:_}])=>_).filter((X)=>WF(Y,X))}function U8(Y,Z,X=new Set){let _=b9(Y,Z),G=new Map;while(_.length>0){let $=_.pop();if(X.has($))continue;if(X.add($),t9(Y,$)){let W=Y.atoms.get($);G.set(W.key,W)}else _.push(...b9(Y,$))}return G}function HF(Y,Z,X,_,G){let $=Y0(Y),{type:W,key:H}=_;if(W==="atom"||W==="mutable_atom")$.selectorAtoms.set({selectorKey:X,atomKey:H}),Y.logger.info("\uD83D\uDD0D",Z,X,`discovers root atom "${H}"`);else{let Q=U8(Y,H,G);Y.logger.info("\uD83D\uDD0D",Z,X,`discovers root atoms: [ ${[...Q.values()].map((J)=>`"${J.key}"`).join(", ")} ]`);for(let{key:J}of Q.values())$.selectorAtoms=$.selectorAtoms.set({selectorKey:X,atomKey:J})}G.add(H)}function T6(Y,Z,X,_){return{get:(...G)=>{let $=Y0(Y),{token:W,family:H,subKey:Q}=iZ(Y,...G),J;if("counterfeit"in W&&H&&Q)J=c9(Y,W,H,Q);else{let z=P0(Y,W);J=h4(Y,z)}return Y.logger.info("\uD83D\uDD0C",Z,X,`registers dependency ( "${W.key}" =`,J,")"),$.selectorGraph.set({upstreamSelectorKey:W.key,downstreamSelectorKey:X},{source:W.key}),HF(Y,Z,X,W,_),J},set:(...G)=>{let $=Y0(Y);E8(s9,$,...G)},find:(...G)=>j0(Y,...G),json:(G)=>k4(Y,G)}}function rZ(Y,Z,X){let _=Y0(Y),G=new G0,$=new Set,{key:W,const:H}=Z,Q="readonly_held_selector";Y.logger.info("\uD83D\uDD28","readonly_held_selector",W,"is being created");let{get:J,find:z,json:F}=T6(_,"readonly_held_selector",W,$),L={...Z,type:"readonly_held_selector",subject:G,getFrom:(R)=>{let b=R.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[x,{source:h}]of b)if(h!==W)R.selectorGraph.delete(x,W);return R.selectorAtoms.delete(W),Z.get({get:J,find:z,json:F},H),B1(R,L,H),Y.logger.info("\u2728","readonly_held_selector",W,"=",H),$.clear(),H},install:(R)=>rZ(R,Z,X)};if(X)L.family=X;_.readonlySelectors.set(W,L);let w={key:W,type:"readonly_held_selector"};if(X)w.family=X;return w}function sZ(Y,Z,X){let _=Y0(Y),G=new G0,$=new Set,W=Z.key,H="readonly_pure_selector";Y.logger.info("\uD83D\uDD28","readonly_pure_selector",W,"is being created");let{get:Q,find:J,json:z}=T6(_,"readonly_pure_selector",W,$),O={...Z,type:"readonly_pure_selector",subject:G,getFrom:()=>{let w=Y0(Y),R=w.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[h,{source:g}]of R)if(g!==W)w.selectorGraph.delete(h,W);w.selectorAtoms.delete(W);let b=Z.get({get:Q,find:J,json:z}),x=B1(w,O,b);return Y.logger.info("\u2728","readonly_pure_selector",W,"=",x),$.clear(),x},install:(w)=>sZ(w,Z,X)};if(X)O.family=X;_.readonlySelectors.set(W,O);let L={key:W,type:"readonly_pure_selector"};if(X)L.family=X;return L}function tZ(Y,Z,X){let _=Y0(Y),G=new G0,$=new Set,{key:W,const:H}=Z,Q="writable_held_selector";Y.logger.info("\uD83D\uDD28","writable_held_selector",W,"is being created");let J=T6(_,"writable_held_selector",W,$),{find:z,get:F,json:O}=J,L={find:z,get:F,json:O},b={...Z,type:"writable_held_selector",subject:G,getFrom:(h)=>{let g=h.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[B,{source:K}]of g)if(K!==W)h.selectorGraph.delete(B,W);return h.selectorAtoms.delete(W),Z.get(L,H),B1(h,b,H),Y.logger.info("\u2728","writable_held_selector",W,"=",H),$.clear(),H},setSelf:()=>{Z.set(J,H)},install:(h)=>tZ(h,Z,X)};if(X)b.family=X;_.writableSelectors.set(W,b);let x={key:W,type:"writable_held_selector"};if(X)x.family=X;return x}function aZ(Y,Z,X){let _=Y0(Y),G=new G0,$=new Set,W=Z.key,H="writable_pure_selector";Y.logger.info("\uD83D\uDD28","writable_pure_selector",W,"is being created");let Q=T6(_,"writable_pure_selector",W,$),{find:J,get:z,json:F}=Q,O={find:J,get:z,json:F},R={...Z,type:"writable_pure_selector",subject:G,getFrom:(x)=>{let h=x.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[K,{source:C}]of h)if(C!==W)x.selectorGraph.delete(K,W);x.selectorAtoms.delete(W);let g=Z.get(O),B=B1(x,R,g);return Y.logger.info("\u2728","writable_pure_selector",W,"=",B),$.clear(),B},setSelf:(x)=>{Z.set(Q,x)},install:(x)=>aZ(x,Z,X)};if(X)R.family=X;_.writableSelectors.set(W,R);let b={key:W,type:"writable_pure_selector"};if(X)b.family=X;return b}function v9(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X){let $=tZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(_){let $=rZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(X){let $=aZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}let G=sZ(Y,Z,void 0);return Y.on.selectorCreation.next(G),G}function JF(Y,Z){let X=Y0(Y),{key:_,type:G,family:$}=Z;if(!$)Y.logger.error("\u274C",G,_,"Standalone selectors cannot be disposed.");else{if(X.molecules.get($.subKey))X.moleculeData.delete($.subKey,$.key);let W;switch(Z.type){case"writable_held_selector":X.writableSelectors.delete(_),W={key:$.key,type:"writable_held_selector_family"},P0(Y,W).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"writable_pure_selector":X.writableSelectors.delete(_),W={key:$.key,type:"writable_pure_selector_family"},P0(Y,W).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"readonly_held_selector":X.readonlySelectors.delete(_),W={key:$.key,type:"readonly_held_selector_family"},P0(Y,W).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"readonly_pure_selector":X.readonlySelectors.delete(_),W={key:$.key,type:"readonly_pure_selector_family"},P0(Y,W).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break}if(X.valueMap.delete(_),X.selectorAtoms.delete(_),X.selectorGraph.delete(_),X.moleculeData.delete($.key,$.subKey),Y.logger.info("\uD83D\uDD25",Z.type,_,"deleted"),E1(X)&&X.transactionMeta.phase==="building")X.transactionMeta.update.subEvents.push({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});else Y.on.selectorDisposal.next(Z)}}var QF=(Y,Z)=>{let X=Y0(Y);if(X.operation.open)return X.operation.prev.get(Z.key);return X.valueMap.get(Z.key)},y9=(Y,Z,X)=>{return X.subject.subscribe(`${Z.type}:${Z.key}`,(_)=>{Y.logger.info("\uD83D\uDCE2",Z.type,Z.key,"root",X.key,"went",_.oldValue,"->",_.newValue);let G=QF(Y,Z),$=h4(Y,Z);Y.logger.info("\u2728",Z.type,Z.key,"went",G,"->",$),Z.subject.next({newValue:$,oldValue:G})})};function F8(Y,Z,X,_){function G(F){if(Y.operation.open){if($?.type==="atom"&&X5($,"tracker:signal")&&"*"+Y.operation.token.key===Z.key&&"inboundTracker"in _)return;let O=Y.on.operationClose.subscribe(`state subscription ${X}`,()=>{O(),_(F)})}else _(F)}iZ(Y,Z);let $=P0(Y,Z);Y.logger.info("\uD83D\uDC40",$.type,$.key,`Adding subscription "${X}"`);let W=$.type==="writable_pure_selector"||$.type==="readonly_pure_selector",H=new Map,Q=G;if(W){h4(Y,$);for(let[F,O]of U8(Y,$.key))H.set(F,y9(Y,$,O));Q=function F(O){let L=U8(Y,$.key);for(let[w,R]of H)if(L.get(w))L.delete(w);else R(),H.delete(w);for(let[w,R]of L)H.set(w,y9(Y,$,R));G(O)}}let J=$.subject.subscribe(X,Q);return()=>{Y.logger.info("\uD83D\uDE48",$.type,$.key,`Removing subscription "${X}"`),J();for(let F of H.values())F()}}var zF=(Y,Z,X,_)=>{let G=P0(Y,Z);Y.logger.info("\uD83D\uDC40","timeline",Z.key,`Adding subscription "${X}"`);let $=G.subject.subscribe(X,_);return()=>{Y.logger.info("\uD83D\uDE48","timeline",Z.key,`Removing subscription "${X}" from timeline`),$()}};var eZ=class{initializeSignalAtom(Y,Z){let X=`*${Y.key}`;Z.atoms.delete(X),Z.valueMap.delete(X);let _=Y.family?{key:`*${Y.family.key}`,subKey:Y.family.subKey}:void 0,G=x4(Z,{key:X,default:null},_,["tracker:signal"]);if(Z.parent?.valueMap.has(X)){let $=Z.parent.valueMap.get(X);Z.valueMap.set(X,$)}return G}unsubscribeFromInnerValue;unsubscribeFromState;captureSignalsFromCore(Y,Z,X){let _=Y.key,G=X.config.name,$=E1(X)?X.transactionMeta.update.token.key:"main",W=`tracker-from-core:${G}:${$}:${_}`,H=(Q)=>{E8(s9,X,Z,Q)};this.unsubscribeFromInnerValue=h1(X,Y).subscribe(W,H),this.unsubscribeFromState=F8(X,Y,W,function Q(J){if(J.newValue!==J.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=J.newValue.subscribe(W,H)}.bind(this))}supplySignalsToCore(Y,Z,X){let _=Y.key,G=X.config.name,$=E1(X)?X.transactionMeta.update.token.key:"main",W=`tracker-to-core:${G}:${$}:${_}`;F8(X,Z,W,Object.assign(function H({newValue:Q,oldValue:J}){let z=X.timelineTopics.getRelatedKey(Z.key);if(z&&X.timelines.get(z)?.timeTraveling){let F=zF(X,{key:z,type:"timeline"},W,function O(L){F(),k1(X,Y,(w)=>{if(L==="redo"&&Q)w.do(Q);else if(L==="undo"&&J)w.undo(J);return w})});return}k1(X,Y,(F)=>(F.do(Q),F))},{inboundTracker:!0}))}mutableAtomToken;latestSignalToken;[Symbol.dispose];constructor(Y,Z){let X=Y0(Z),_=this.initializeSignalAtom(Y,X);this.mutableAtomToken=Y,this.latestSignalToken=_,this.captureSignalsFromCore(Y,_,X),this.supplySignalsToCore(Y,_,X),X.trackers.set(Y.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),X.trackers.delete(Y.key)}}};function w6(Y,Z,X){Y.logger.info("\uD83D\uDD28","atom",Z.key,`creating in store "${Y.config.name}"`);let _=Y0(Y),{key:G}=Z,$=_.atoms.get(G),W="mutable_atom";if($&&$.type===W)return Y.logger.error("\u274C",W,G,"Tried to create atom, but it already exists in the store."),y1($);let H=new G0,Q={...Z,type:W,install:(z)=>{return z.logger.info("\uD83D\uDEE0\uFE0F","atom",G,`installing in store "${z.config.name}"`),w6(z,Z,X)},subject:H};if(X)Q.family=X;_.atoms.set(Q.key,Q);let J=y1(Q);if(Z.effects){let z=0,F=[];for(let O of Z.effects){let L=O({resetSelf:()=>{R6(Y,J)},setSelf:(w)=>{k1(Y,J,w)},onSet:(w)=>F8(Y,J,`effect[${z}]`,w)});if(L)F.push(L);++z}Q.cleanup=()=>{for(let O of F)O()}}if(new eZ(J,Y),!X)v9(Y,{key:`${G}:JSON`,get:({get:z})=>z(J).toJSON(),set:({set:z},F)=>{z(J,Z.class.fromJSON(F))}});return Y.on.atomCreation.next(J),J}var UF=class{trackers=new Map;latestSignalAtoms;mutableAtoms;constructor(Y,Z){let X=O2(Z,{key:`*${Y.key}`,default:null},["mutable","updates"]);this.latestSignalAtoms=P0(Z,X),this.mutableAtoms=Y;let _=(G)=>{let{type:$,token:W}=G;if(W.family){let H=X1(W.family.subKey);switch($){case"state_creation":this.trackers.set(H,new eZ(W,Z));break;case"state_disposal":{let Q=this.trackers.get(H);if(Q)Q[Symbol.dispose](),this.trackers.delete(H)}}}};this.mutableAtoms.subject.subscribe(`store=${Z.config.name}::tracker-atom-family`,_)}};function yZ(Y,Z,X){let _={key:Z.key,type:"mutable_atom_family"},G=Y.families.get(Z.key);if(G)Y.logger.error("\u2757","mutable_atom_family",Z.key,`Overwriting an existing ${G4[G.type]} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new G0,H={..._,create:(Q)=>{let J=$0(Q),z={key:Z.key,subKey:J},F=`${Z.key}(${J})`,O=Y0(Y),L={key:F,class:Z.class};if(Z.effects)L.effects=Z.effects(Q);return w6(O,L,z)},class:Z.class,subject:$,install:(Q)=>yZ(Q,Z),internalRoles:X};return Y.families.set(Z.key,H),nZ(Y,{key:`${Z.key}:JSON`,get:(Q)=>({get:J})=>J(_,Q).toJSON(),set:(Q)=>({set:J},z)=>{J(_,Q,Z.class.fromJSON(z))}},["mutable","json"]),new UF(H,Y),_}var g9=(Y,Z)=>{let X=Y0(Z),_=`${Y.key}:JSON`;return X.families.get(_)},k4=(Y,Z)=>{if(Z.family){let X=Y0(Y),_={key:`${Z.family.key}:JSON`,type:"writable_pure_selector_family"},G=P0(X,_),$=X1(Z.family.subKey);return j0(Y,G,$)}return{type:"writable_pure_selector",key:`${Z.key}:JSON`}};var Y5=(Y)=>{let Z={type:"atom",key:`*${Y.key}`};if(Y.family)Z.family={key:`*${Y.family.key}`,subKey:Y.family.subKey};return Z};function pZ(Y){return typeof Y==="object"&&Y!==null&&"do"in Y&&"undo"in Y&&"subscribe"in Y&&"READONLY_VIEW"in Y&&"toJSON"in Y}function B1(Y,Z,X){let{key:_,subject:G,type:$}=Z,W=Y.valueMap.get(_);if(W instanceof uZ&&!W.done){let H=W;if(X instanceof Promise)return H.use(X),H;return Y.valueMap.set(_,X),X}if(X instanceof Promise){let H=new uZ(X);return Y.valueMap.set(_,H),H.then(function Q(J){if(Y.valueMap.get(_)===H){switch(i9(Y,Z),B1(Y,Z,J),$){case"atom":Z5(Y,Z);break;case"readonly_pure_selector":case"writable_pure_selector":e9(Y,_);break}n9(Y),G.next({newValue:J,oldValue:H})}}).catch((Q)=>{Y.logger.error("\uD83D\uDCA5",Z.type,_,"rejected:",Q)}),H}return Y.logger.info("\uD83D\uDCDD",Z.type,Z.key,"writing to cache",X),Y.valueMap.set(_,X),X}function FF(Y,Z,X){Y.logger.info("\uD83D\uDCD6",Z.type,Z.key,"reading cached value");let _=Y.valueMap.get(Z.key);if(X==="mut"&&Z.type==="mutable_atom"&&E1(Y)){let G=Z,{parent:$}=Y;if(Y.valueMap.hasOwn(G.key))return _;let W=$.valueMap.get(G.key);Y.logger.info("\uD83D\uDCC3","atom",G.key,"copying");let H=W.toJSON(),Q=G.class.fromJSON(H);Y.valueMap.set(G.key,Q),new eZ(G,$),_=Q}return _}function a9(Y,Z){let X=Y.valueMap.get(Z);if(X instanceof uZ){let _=Y.writableSelectors.get(Z)??Y.readonlySelectors.get(Z);if(_)_.getFrom(Y);return}if(Y.operation.open)Y.operation.prev.set(Z,X);Y.valueMap.delete(Z),Y.logger.info("\uD83D\uDDD1","state",Z,"evicted")}function Z5(Y,Z){let X=Y0(Y),{key:_,type:G}=Z,$=X.selectorAtoms.getRelatedKeys(_);if(X.logger.info("\uD83E\uDDF9",G,_,$?`evicting ${$.size} states downstream:`:"no downstream states",$??"to evict"),$){if(X.operation.open)X.logger.info("\uD83E\uDDF9",G,_,`[ ${[...X.operation.done].join(", ")} ] already done`);for(let W of $){if(r9(X,W))continue;a9(X,W),B6(X,W)}}}function e9(Y,Z){let X=Y0(Y),_=X.selectorGraph.getRelationEntries({upstreamSelectorKey:Z}).filter(([G,{source:$}])=>$===Z);for(let[G]of _){if(r9(X,G))continue;a9(X,G),B6(X,G),e9(Y,G)}}function x4(Y,Z,X,_){let{key:$}=Z;Y.logger.info("\uD83D\uDD28","atom",$,"is being created");let W=Y0(Y),H=W.atoms.get($);if(H&&H.type==="atom")return Y.logger.error("\u274C","atom",$,"Tried to create atom, but it already exists in the store."),y1(H);let Q=new G0,J={...Z,type:"atom",install:(F)=>{return F.logger.info("\uD83D\uDEE0\uFE0F","atom",$,`installing in store "${F.config.name}"`),x4(F,Z,X)},subject:Q};if(X)J.family=X;if(_)J.internalRoles=_;W.atoms.set($,J);let z=y1(J);if(Z.effects){let F=0,O=[];for(let L of Z.effects){let w=L({resetSelf:()=>{R6(Y,z)},setSelf:(R)=>{k1(Y,z,R)},onSet:(R)=>F8(Y,z,`effect[${F}]`,R)});if(w)O.push(w);++F}J.cleanup=()=>{for(let L of O)L()}}return Y.on.atomCreation.next(z),z}function X5(Y,Z){if("internalRoles"in Y===!1)return!1;return Y.internalRoles.includes(Z)}function Y7(Y,Z){let X=Y0(Y),{key:_,family:G}=Z,$=P0(X,Z);if(!G)Y.logger.error("\u274C","atom",_,"Standalone atoms cannot be disposed.");else{$.cleanup?.();let W=Y.valueMap.get($.key),H=oZ(Y,Z),Q=P0(Y,H).subject,J={type:"state_disposal",subType:"atom",token:Z,value:W,timestamp:Date.now()};Q.next(J);let z=E1(X);if(X.atoms.delete(_),X.valueMap.delete(_),X.selectorAtoms.delete(_),X.atomsThatAreDefault.delete(_),X.moleculeData.delete(G.key,G.subKey),Y.timelineTopics.delete(_),Z.type==="mutable_atom"){let F=Y5(Z);Y7(Y,F),Y.trackers.delete(_)}if(Y.logger.info("\uD83D\uDD25","atom",_,"deleted"),z&&X.transactionMeta.phase==="building"){let F=X.transactionMeta.update.subEvents.at(-1),O=F?.type==="molecule_disposal"&&F.values.some(([w])=>w===$.family?.key),L=X5($,"tracker:signal");if(!O&&!L)X.transactionMeta.update.subEvents.push(J)}else Y.on.atomDisposal.next(Z)}}function K0(Y){return Y[0].toUpperCase()+Y.slice(1)}var Z7=class{toolkit;options;defaultContent;relations;states;core;transact(Y,Z){let X=this.toolkit;this.toolkit=Y,Z(this),this.toolkit=X}store;realm;[Symbol.dispose](){}constructor(Y,Z,X=F1.STORE){this.store=X,this.realm=new C9(X),this.options=Y,this.defaultContent=Z,this.store.miscResources.set(`join:${Y.key}`,this),this.realm.allocate("root",Y.key),this.toolkit={get:(...B)=>h1(X,...B),set:(...B)=>{k1(X,...B)},find:(...B)=>j0(X,...B),json:(B)=>k4(X,B)};let _=Y.between[0],G=Y.between[1],$=yZ(X,{key:`${Y.key}/relatedKeys`,class:h9},["join","relations"]);this.core={relatedKeysAtoms:$};let W=({get:B},K)=>B($,K),H=({set:B},K,C)=>{if(!this.store.molecules.has($0(K)))this.realm.allocate(Y.key,K);B($,K,(q)=>q.add(C)),B($,C,(q)=>q.add(K))},Q=({set:B},K,C)=>{B($,K,(N)=>{return N.delete(C),N}),B($,C,(N)=>{return N.delete(K),N});let[q,c]=[K,C].sort(),n=`${q}:${c}`;this.store.moleculeJoins.delete(n)},J=(B,K,C)=>{let{find:q,get:c,set:n}=B,N=q($,K),s=c(N);for(let p of s){if(C.includes(p))continue;n($,p,(t)=>{return t.delete(K),t})}n(N,(p)=>{return p.transaction((t)=>{t.clear();for(let I0 of C){let h0=W(B,I0),$1=h0.has(K);if(this.relations.cardinality==="1:n"){let r1=[];for(let T of h0){if(T===K)continue;let m=W(B,T);if(m.delete(I0),m.size===0)r1.push(T)}if(!$1&&h0.size>0)h0.clear();for(let T of r1){let[m,W0]=[I0,T].sort(),V0=`${m}:${W0}`;X.moleculeJoins.delete(V0)}}if(!$1)h0.add(K);t.add(I0)}return!0}),p})},z=(B,K,C)=>{let{set:q}=B;q($,K,(c)=>{return c.transaction((n)=>{for(let N of C)n.add(N);return!0}),c});for(let c of C)q($,c,(n)=>{return n.add(K),n});return!0},F=(B,K,C)=>{let q=W(B,K);return C?q.has(C):q.size>0},O={getRelatedKeys:(B)=>W(this.toolkit,B),addRelation:(B,K)=>{this.store.moleculeJoins.set(`"${B}"`,Y.key),this.store.moleculeJoins.set(`"${K}"`,Y.key),H(this.toolkit,B,K)},deleteRelation:(B,K)=>{Q(this.toolkit,B,K)},replaceRelationsSafely:(B,K)=>{J(this.toolkit,B,K)},replaceRelationsUnsafely:(B,K)=>{z(this.toolkit,B,K)},has:(B,K)=>F(this.toolkit,B,K)},L,w;if(Z){w=O2(X,{key:`${Y.key}/content`,default:Z},["join","content"]);let B=({get:C},q)=>C(w,q),K=({set:C},q,c)=>{C(w,q,c)};L=Object.assign(O,{getContent:(C)=>{return B(this.toolkit,C)},setContent:(C,q)=>{K(this.toolkit,C,q)},deleteContent:(C)=>{}})}else L=O;let R=new $4(Y,{externalStore:L,isAType:Y.isAType,isBType:Y.isBType,makeContentKey:(...B)=>{let[K,C]=B,[q,c]=B.sort(),n=`${q}:${c}`,N=X.molecules.get($0(K)),s=X.molecules.get($0(C));if(!N)this.realm.allocate(Y.key,K);if(!s)this.realm.allocate(Y.key,C);return this.realm.allocate(K,n,"all"),this.realm.claim(C,n),this.store.moleculeJoins.set(n,Y.key),n}}),b=()=>f4(X,{key:`${Y.key}/singleRelatedKey`,get:(B)=>({get:K})=>{let C=K($,B);for(let q of C)return q;return null}},["join","keys"]),x=()=>{return f4(X,{key:`${Y.key}/multipleRelatedKeys`,get:(B)=>({get:K})=>{let C=g9($,X);return K(C,B).members}},["join","keys"])},h=()=>f4(X,{key:`${Y.key}/singleRelatedEntry`,get:(B)=>({get:K})=>{let C=K($,B);for(let q of C){let c=R.isAType?.(B)?B:void 0,n=c===void 0?B:void 0;c??=q,n??=q;let N=R.makeContentKey(c,n),s=K(w,N);return[q,s]}return null}},["join","entries"]),g=()=>f4(X,{key:`${Y.key}/multipleRelatedEntries`,get:(B)=>({get:K})=>{let C=g9($,X);return K(C,B).members.map((q)=>{let c=R.isAType?.(B)?B:void 0,n=c===void 0?B:void 0;c??=q,n??=q;let N=R.makeContentKey(c,n),s=K(w,N);return[q,s]})}},["join","entries"]);switch(Y.cardinality){case"1:1":{let B=b(),K=`${_}KeyOf${K0(G)}`,C=`${G}KeyOf${K0(_)}`,q={[K]:B,[C]:B},c;if(Z){let n=h(),N=`${_}EntryOf${K0(G)}`,s=`${G}EntryOf${K0(_)}`,p={[N]:n,[s]:n};c=Object.assign(q,p)}else c=q;this.relations=R,this.states=c;break}case"1:n":{let B=b(),K=x(),C=`${_}KeyOf${K0(G)}`,q=`${G}KeysOf${K0(_)}`,c={[C]:B,[q]:K},n;if(Z){let N=h(),s=g(),p=`${_}EntryOf${K0(G)}`,t=`${G}EntriesOf${K0(_)}`,I0={[p]:N,[t]:s};n=Object.assign(c,I0)}else n=c;this.relations=R,this.states=n;break}case"n:n":{let B=x(),K=`${_}KeysOf${K0(G)}`,C=`${G}KeysOf${K0(_)}`,q={[K]:B,[C]:B},c;if(Z){let n=g(),N=`${_}EntriesOf${K0(G)}`,s=`${G}EntriesOf${K0(_)}`,p={[N]:n,[s]:n};c=Object.assign(q,p)}else c=q;this.relations=R,this.states=c}}}};function x9(Y,Z,X){return Y.joins.set(Z.key,new Z7(Z,X,Y)),{key:Z.key,type:"join",a:Z.between[0],b:Z.between[1],cardinality:Z.cardinality}}function _5(Y,Z){let X=Z.joins.get(Y.key);if(X===void 0){let _=F1.STORE.joins.get(Y.key);if(_===void 0)throw new Error(`Join "${Y.key}" not found in store "${Z.config.name}"`);let G=fU(Z);X=new Z7(_.options,_.defaultContent,G),Z.joins.set(Y.key,X)}return X}function W8(Y,Z,X){let _=_5(Y,X),G=Y0(X);if(E1(G)){let{toolkit:$}=G.transactionMeta;_.transact($,({relations:W})=>{Z(W)})}else Z(_.relations)}function xU(Y,Z,X){let _=_5(Y,X),G;switch(Y.cardinality){case"1:1":{let $=`${Y.a}KeyOf${K0(Y.b)}`,W=`${Y.b}KeyOf${K0(Y.a)}`;G={get[$](){let Q=_.states[$];return j0(X,Q,Z)},get[W](){let Q=_.states[W];return j0(X,Q,Z)}};let H=`${Y.a}EntryOf${K0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntryOf${K0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return j0(X,J,Z)},get[Q](){let J=_.states[Q];return j0(X,J,Z)}})}break}case"1:n":{let $=`${Y.a}KeyOf${K0(Y.b)}`,W=`${Y.b}KeysOf${K0(Y.a)}`;G={get[$](){let Q=_.states[$];return j0(X,Q,Z)},get[W](){let Q=_.states[W];return j0(X,Q,Z)}};let H=`${Y.a}EntryOf${K0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntriesOf${K0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return j0(X,J,Z)},get[Q](){let J=_.states[Q];return j0(X,J,Z)}})}break}case"n:n":{let $=`${Y.a}KeysOf${K0(Y.b)}`,W=`${Y.b}KeysOf${K0(Y.a)}`;G={get[$](){let Q=_.states[$];return j0(X,Q,Z)},get[W](){let Q=_.states[W];return j0(X,Q,Z)}};let H=`${Y.a}EntriesOf${K0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntriesOf${K0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return j0(X,J,Z)},get[Q](){let J=_.states[Q];return j0(X,J,Z)}})}}}return G}function f9(Y,Z){return _5(Y,Z).core.relatedKeysAtoms}var EF=(Y)=>{return x4(Y,{key:"\uD83D\uDD0D Atom Token Index",default:()=>{let Z=new Map;for(let[X,_]of Y.atoms){if(L2(X))continue;let G=y1(_);if(_.family){let $=Z.get(_.family.key);if(!$||!("familyMembers"in $))$={key:_.family.key,familyMembers:new Map},Z.set(_.family.key,$);$.familyMembers.set(_.family.subKey,G)}else Z.set(X,G)}return Z},effects:[({setSelf:Z})=>{Y.on.atomCreation.subscribe("introspection",(X)=>{if(L2(X.key))return;Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W===void 0||!("familyMembers"in W))W={key:G,familyMembers:new Map},_.set(G,W);W.familyMembers.set($,X)}else _.set(X.key,X);return new Map(_)})}),Y.on.atomDisposal.subscribe("introspection",(X)=>{Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W&&"familyMembers"in W){if(W.familyMembers.delete($),W.familyMembers.size===0)_.delete(G)}}return new Map(_)})})}]},void 0)},VF=(Y)=>{return x4(Y,{key:"\uD83D\uDD0D Selector Token Index",default:()=>{let Z=new Map;for(let X of[Y.readonlySelectors,Y.writableSelectors])for(let[_,G]of X){if(L2(_))continue;let $=y1(G);if(G.family){let W=Z.get(G.family.key);if(!W||!("familyMembers"in W))W={key:G.family.key,familyMembers:new Map},Z.set(G.family.key,W);W.familyMembers.set(G.family.subKey,$)}else Z.set(_,$)}return Z},effects:[({setSelf:Z})=>{Y.on.selectorCreation.subscribe("introspection",(X)=>{if(L2(X.key))return;Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W===void 0||!("familyMembers"in W))W={key:G,familyMembers:new Map},_.set(G,W);W.familyMembers.set($,X)}else _.set(X.key,X);return new Map(_)})}),Y.on.selectorDisposal.subscribe("introspection",(X)=>{Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W&&"familyMembers"in W){if(W.familyMembers.delete($),W.familyMembers.size===0)_.delete(G)}}else _.delete(X.key);return new Map(_)})})}]},void 0)};var G5=class{supported;constructor(Y){this.supported=Y}refine(Y){for(let[Z,X]of Object.entries(this.supported))try{if(X(Y)===!0&&X!==Boolean)return{type:Z,data:Y}}catch(_){try{if(Y instanceof X)return{type:Z,data:Y}}catch(G){}}return null}},_7=new G5({number:(Y)=>typeof Y==="number",string:(Y)=>typeof Y==="string",boolean:(Y)=>typeof Y==="boolean",null:(Y)=>Y===null});function G7(Y){if(!Y)return!1;return Object.getPrototypeOf(Y)===Object.prototype}var $7=new G5({object:G7,array:(Y)=>Array.isArray(Y)}),OF=new G5({..._7.supported,...$7.supported}),C6=(Y)=>{if(Y===void 0)return"undefined";let Z=OF.refine(Y);if(Z)return Z.type;return Object.getPrototypeOf(Y).constructor.name};var YB=class Y{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(Z=F1.STORE){this.store=Z,this.atomIndex=EF(this.store),this.selectorIndex=VF(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(Z=Y.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let X=hZ(this.atomIndex),_=hZ(this.selectorIndex),G=[...X.values()].filter((Q)=>("familyMembers"in Q)),$=[..._.values()].filter((Q)=>("familyMembers"in Q)),W=performance.now(),H=[];if(Z.atomFamilies)for(let Q of G){let J=Q.familyMembers.values();for(let z of J){let F=this.statesCreatedAt.get(z.key)??this.auditorCreatedAt,O=W-F;H.push([z,O])}}if(Z.selectorFamilies)for(let Q of $){let J=Q.familyMembers.values();for(let z of J){let F=this.statesCreatedAt.get(z.key)??this.auditorCreatedAt,O=W-F;H.push([z,O])}}return H}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}},X7=(Y,Z)=>{let X=(_,G)=>{let W=((Q,J)=>{let z=Z(Q,J);if(z)return z;return null})(_,G);if(W?.jobComplete??W?.pathComplete)return W;let H=Array.isArray(G)?G.map((Q,J)=>[J,Q]):G7(G)?Object.entries(G):[];for(let[Q,J]of H){let z=X([..._,Q],J);if(z?.jobComplete)return z}return{}};X([],Y)};function DF(Y,Z){return{summary:`${Y<Z?"+":"-"}${Math.abs(Y-Z)} (${Y} \u2192 ${Z})`}}function LF(Y,Z){return{summary:`${Y.length<Z.length?"+":"-"}${Math.abs(Y.length-Z.length)} ("${Y}" \u2192 "${Z}")`}}function MF(Y,Z){return{summary:`${Y} \u2192 ${Z}`}}function W7(Y,Z,X){let _="",G=[],$=[],W=[];return X7(Y,(H,Q)=>{let J;for(J of H){let z=Z[J];if(z===void 0)$.push([J,JSON.stringify(Q)]);else{let F=X(Q,z);if(F.summary!=="No Change")W.push([J,F])}}}),X7(Z,(H,Q)=>{let J;for(J of H)if(Y[J]===void 0)G.push([J,JSON.stringify(Q)])}),_=`\uFF5E${W.length} \uFF0B${G.length} \uFF0D${$.length}`,{summary:_,added:G,removed:$,changed:W}}function AF(Y,Z,X){return W7(Y,Z,X)}var RF=class{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(Y,Z,X){this.leafRefinery=Y,this.treeRefinery=Z,this.leafDiffers={},this.treeDiffers={};for(let _ of Object.keys(Y.supported)){let G=X[_];this.leafDiffers[_]=G}for(let _ of Object.keys(Z.supported)){let G=X[_];this.treeDiffers[_]=G}}diff(Y,Z){if(Y===Z)return{summary:"No Change"};let X=this.leafRefinery.refine(Y)??this.treeRefinery.refine(Y),_=this.leafRefinery.refine(Z)??this.treeRefinery.refine(Z);if(X!==null&&_!==null){if(X.type===_.type){if(X.type in this.leafDiffers)return this.leafDiffers[X.type](X.data,_.data);if(X.type in this.treeDiffers)return this.treeDiffers[X.type](X.data,_.data,(W,H)=>this.diff(W,H))}}let G=C6(Y),$=C6(Z);if(G===$)return{summary:`${G} \u2192 ${$}`};return{summary:`Type change: ${G} \u2192 ${$}`}}},ZB=new RF(_7,$7,{number:DF,string:LF,boolean:MF,null:()=>({summary:"No Change"}),object:W7,array:AF});var b4=class Y extends Set{mode="record";subject=new G0;constructor(Z){super(Z);if(Z instanceof Y);}READONLY_VIEW=this;toJSON(){return{members:[...this]}}static fromJSON(Z){return new Y(Z.members)}add(Z){let X=super.add(Z);if(this.mode==="record")this.emit(`add:${$0(Z)}`);return X}clear(){let Z=this.mode==="record"?[...this]:null;if(super.clear(),Z)this.emit(`clear:${$0(Z)}`)}delete(Z){let X=super.delete(Z);if(this.mode==="record")this.emit(`del:${$0(Z)}`);return X}subscribe(Z,X){return this.subject.subscribe(Z,X)}emit(Z){this.subject.next(Z)}doStep(Z){let X=Z.indexOf(":"),_=Z.substring(0,X),G=Z.substring(X+1);switch(_){case"add":this.add(JSON.parse(G));break;case"del":this.delete(JSON.parse(G));break;case"clear":this.clear()}}do(Z){return this.mode="playback",this.doStep(Z),this.mode="record",null}undoStep(Z){let X=Z.indexOf(":"),_=Z.substring(0,X),G=Z.substring(X+1);switch(_){case"add":this.delete(JSON.parse(G));break;case"del":this.add(JSON.parse(G));break;case"clear":{let $=JSON.parse(G);for(let W of $)this.add(W)}}}undo(Z){return this.mode="playback",this.undoStep(Z),this.mode="record",null}};var wF=V2({key:"mutex",default:!1}),NF=class extends Map{set(Y,Z){if(this.has(Y))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:Y,value:Z}),this;return super.set(Y,Z)}},zB=class Y{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(Z){this.key=Z}static existing=new NF;static create(Z,X){let _=new Y(Z),{type:G,globals:$,actions:W,perspectives:H}=X(_),Q={type:G,key:Z,globals:$,actions:W,perspectives:H};return Y.existing.set(Z,Q),Q}add(...Z){switch(Z[0].type){case"atom":case"mutable_atom":this.globals.push(...Z);break;case"transaction":this.actions.push(...Z);break;case"atom_family":case"mutable_atom_family":{let[X,_]=Z;this.perspectives.push({type:"realtime_perspective",resourceAtoms:X,viewAtoms:_})}break}return this}};var UB=E2({key:"usersInRoomIndex",class:b4}),H7=E2({key:"roomIndex",class:b4}),IF={enteredAtEpoch:0},V8=O6({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(Y)=>typeof Y==="string",isBType:(Y)=>typeof Y==="string"},IF),FB=D6({key:"usersInMyRoomView",get:(Y)=>({find:Z})=>{let X=B9(V8);return[Z(X,Y)]}});var NB=V2({key:"redactor",default:{occlude:(Y)=>Y}}),IB=V2({key:"unacknowledgedUpdates",default:()=>[]});var $5=class{listeners;globalListeners;handleEvent(...Y){let[Z,...X]=Y;for(let G of this.globalListeners)G(Z,...X);let _=this.listeners.get(Z);if(_)for(let G of _)G(...X)}id="no_id_retrieved";emit;constructor(Y){this.emit=Y,this.listeners=new Map,this.globalListeners=new Set}on(Y,Z){let X=this.listeners.get(Y);if(X)X.add(Z);else this.listeners.set(Y,new Set([Z]));return this}onAny(Y){return this.globalListeners.add(Y),this}off(Y,Z){let X=this.listeners.get(Y);if(X)if(Z)X.delete(Z);else this.listeners.delete(Y);return this}offAny(Y){return this.globalListeners.delete(Y),this}},KB=class extends $5{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";proc;key;logger;handleLog(Y){if(Array.isArray(Y)){let[Z,...X]=Y;switch(Z){case"i":this.logger.info(...X);break;case"w":this.logger.warn(...X);break;case"e":this.logger.error(...X);break}}}constructor(Y,Z,X){super((_,...G)=>{let $=JSON.stringify([_,...G])+"\x03",W=(H)=>{if(H.code==="EPIPE")console.error("EPIPE error during write",this.proc.stdin);this.proc.stdin.removeListener("error",W)};return this.proc.stdin.once("error",W),this.proc.stdin.write($),this});if(this.proc=Y,this.key=Z,this.logger=X??{info:(..._)=>{console.info(this.id,this.key,..._)},warn:(..._)=>{console.warn(this.id,this.key,..._)},error:(..._)=>{console.error(this.id,this.key,..._)}},this.proc.stdout.on("data",(_)=>{let G=_.toString();if(G==="ALIVE"){this.logger.info(G);return}let $=G.split("\x03"),W=$[0];$[0]=this.incompleteData+W;let H=0;for(let Q of $){if(Q==="")continue;try{let J=X1(Q);this.handleEvent(...J),this.incompleteData=""}catch(J){if(J instanceof Error)console.error(["\u274C Malformed data received from child process","",Q,"",J.message].join(`
59
+ ${G.trace}`:"(no previous disposal trace found)"),X.type){case"mutable_atom_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=new X.class;return Y.defaults.set(X.key,$),$.READONLY_VIEW}case"atom_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=X.default,W=$(_);return Y.defaults.set(X.key,W),W}case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=X.default(_);return Y.defaults.set(X.key,$),$}}}function N6(Y,Z){let{type:X,key:_,catch:G}=Z;switch(X){case"readonly_pure_selector":case"writable_pure_selector":{let $;Y.logger.info("\uD83E\uDDEE",X,_,"computing value");try{if($=Z.getFrom(Y),$ instanceof Promise)return $.catch((W)=>{if(Y.logger.error("\uD83D\uDCA5",X,_,"rejected:",W),G){for(let H of G)if(W instanceof H)return W}throw W})}catch(W){if(Y.logger.error("\uD83D\uDCA5",X,_,"rejected:",W),G){for(let H of G)if(W instanceof H)return B1(Y,Z,W)}throw W}return B1(Y,Z,$)}case"atom":{let $;if(H8(Z.default))try{if($=Z.default(),$ instanceof Promise)$=$.catch((W)=>{if(Y.logger.error("\uD83D\uDCA5",X,_,"rejected:",W),G){for(let H of G)if(W instanceof H)return W}throw W})}catch(W){if(Y.logger.error("\uD83D\uDCA5",X,_,"rejected:",W),G){for(let H of G)if(W instanceof H)return $=B1(Y,Z,W),Y.logger.info("\u2728",Z.type,_,"computed default",$),$}throw W}else $=Z.default,Y.logger.info("\u2728",Z.type,_,"using static default",$);return B1(Y,Z,$)}}}function h4(Y,Z,X){if(Y.valueMap.has(Z.key))return FF(Y,Z,X);Y.logger.info("\u2754",Z.type,Z.key,"value not found in cache");let{key:_}=Z;switch(Z.type){case"readonly_held_selector":case"writable_held_selector":return Y.logger.info("\uD83E\uDDEE",Z.type,_,"computing value"),Z.getFrom(Y);case"writable_pure_selector":case"readonly_pure_selector":case"atom":return N6(Y,Z);case"mutable_atom":{let G=new Z.class;return Y.logger.info("\u2728",Z.type,_,"created new instance",G),B1(Y,Z,G)}}}function oZ(Y,Z){return P0(Y,{key:Z.family.key,type:`${Z.type}_family`})}var k9={atom_family:"atom",molecule_family:"molecule",mutable_atom_family:"mutable_atom",readonly_held_selector_family:"readonly_held_selector",readonly_pure_selector_family:"readonly_pure_selector",writable_held_selector_family:"writable_held_selector",writable_pure_selector_family:"writable_pure_selector"},J8=Symbol("MUST_CREATE"),YF=Symbol("DO_NOT_CREATE");function Q8(Y,Z,X,_){let G=$0(_),$=Z.molecules.get(G);if(!$&&Z.config.lifespan==="immortal"){let{type:H,key:Q}=X;Z.logger.warn("\uD83D\uDCA3","key",G,"was used to mint a counterfeit token for",H,`"${Q}"`);let J=`${Q}(${G})`,z=k9[H];return{counterfeit:!0,key:J,type:z,family:{key:Q,subKey:G}}}let W;if(Y===J8){if(Z.logger.info("\uD83D\uDC6A",X.type,X.key,"adds member",typeof _==="string"?`\`${_}\``:_),W=X.create(_),$)Z.moleculeData.set(G,X.key)}else{let{type:H,key:Q}=X,J=`${Q}(${G})`,z=k9[H];return{key:J,type:z,family:{key:Q,subKey:G}}}return W}function iZ(Y,...Z){let X,_,G,$,W;if(Z.length===1){if(W=Z[0],"family"in W){let Q=oZ(Y,W);if(G=P0(Y,Q),$=X1(W.family.subKey),X=z8(Y,Q,$),"counterfeit"in W)return{token:W,family:G,subKey:$,isNew:!1};if(!X)_=Q8(J8,Y,Q,$),W=_;else W=X}}else if(G=P0(Y,Z[0]),$=Z[1],X=z8(Y,G,$),!X)_=Q8(J8,Y,G,$),W=_;else W=X;let H="counterfeit"in W;if(Boolean(_)&&H===!1&&G){let Q;switch(W.type){case"readonly_pure_selector":case"readonly_held_selector":Q="readable";break;case"atom":case"mutable_atom":case"writable_pure_selector":case"writable_held_selector":Q="writable";break}let J={type:"state_creation",subType:Q,token:W,timestamp:Date.now()};G.subject.next(J);let z=Y0(Y);if(W.family){if(D2(z))switch(W.type){case"atom":case"mutable_atom":Y.on.atomCreation.next(W);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":Y.on.selectorCreation.next(W);break}else if(E1(z)&&z.on.transactionApplying.state===null)z.transactionMeta.update.subEvents.push(J)}}return{token:W,family:G,subKey:$,isNew:Boolean(_)}}function h1(Y,...Z){let{token:X,family:_,subKey:G}=iZ(Y,...Z);if("counterfeit"in X&&_&&G)return c9(Y,X,_,G);let $=P0(Y,X);return h4(Y,$)}function z8(Y,Z,X){let _=$0(X),G=`${Z.key}(${_})`,$=Y0(Y),W;switch(Z.type){case"atom_family":case"mutable_atom_family":W=$.atoms.get(G);break;case"writable_held_selector_family":case"writable_pure_selector_family":W=$.writableSelectors.get(G);break;case"readonly_held_selector_family":case"readonly_pure_selector_family":W=$.readonlySelectors.get(G);break}if(W)return y1(W);return W}function j0(Y,Z,X){let _=P0(Y,Z),G=z8(Y,Z,X);if(G)return G;return Q8(YF,Y,_,X)}function f4(Y,Z,X){let _=Z.key,G="readonly_pure_selector_family",$={key:_,type:"readonly_pure_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","readonly_pure_selector_family",_,`Overwriting an existing ${G4[W.type]} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new G0,J={...$,create:(z)=>{let F=$0(z),O={key:_,subKey:F},L=`${_}(${F})`,w=Y0(Y),R={key:L,get:Z.get(z)};if(Z.catch)R.catch=Z.catch;return sZ(w,R,O)},internalRoles:X,subject:H,install:(z)=>f4(z,Z),default:(z)=>{return Z.get(z)({get:(...F)=>h1(Y,...F),find:(...F)=>j0(Y,...F),json:(F)=>k4(Y,F)})}};return Y.families.set(_,J),$}function O2(Y,Z,X){let _={key:Z.key,type:"atom_family"},G=Y.families.get(Z.key);if(G)Y.logger.error("\u2757","atom_family",Z.key,`Overwriting an existing ${G4[G.type]} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new G0,H={..._,create:(Q)=>{let J=$0(Q),z={key:Z.key,subKey:J},F=`${Z.key}(${J})`,O=Y0(Y),L=Z.default,w={key:F,default:H8(L)?()=>L(Q):L};if(Z.effects)w.effects=Z.effects(Q);if(Z.catch)w.catch=Z.catch;return x4(O,w,z)},default:Z.default,subject:$,install:(Q)=>O2(Q,Z),internalRoles:X};if(Y.families.set(Z.key,H),H8(Z.default)===!1)Y.defaults.set(Z.key,Z.default);return _}function l9(Y,Z,X){let _=Z.key,G="readonly_held_selector_family",$={key:_,type:"readonly_held_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","readonly_held_selector_family",_,`Overwriting an existing ${G4[W.type]} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new G0,J={...$,create:(z)=>{let F=$0(z),O={key:_,subKey:F},L=`${_}(${F})`,w=Y0(Y);return rZ(w,{key:L,const:Z.const(z),get:Z.get(z)},O)},internalRoles:X,subject:H,install:(z)=>l9(z,Z),default:Z.const};return Y.families.set(_,J),$}function o9(Y,Z,X){let _=Z.key,G="writable_held_selector_family",$={key:_,type:"writable_held_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","writable_held_selector_family",_,`Overwriting an existing ${G4[W.type]} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new G0,J={...$,create:(z)=>{let F=$0(z),O={key:_,subKey:F},L=`${_}(${F})`,w=Y0(Y);return tZ(w,{key:L,const:Z.const(z),get:Z.get(z),set:Z.set(z)},O)},internalRoles:X,subject:H,install:(z)=>o9(z,Z),default:Z.const};return Y.families.set(_,J),$}function nZ(Y,Z,X){let _=Z.key,G="writable_pure_selector_family",$={key:_,type:"writable_pure_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","writable_pure_selector_family",_,`Overwriting an existing ${G4[W.type]} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new G0,J={...$,create:(z)=>{let F=$0(z),O={key:_,subKey:F},L=`${_}(${F})`,w=Y0(Y),R={key:L,get:Z.get(z),set:Z.set(z)};if(Z.catch)R.catch=Z.catch;return aZ(w,R,O)},internalRoles:X,subject:H,install:(z)=>nZ(z,Z),default:(z)=>{return Z.get(z)({get:(...F)=>h1(Y,...F),find:(...F)=>j0(Y,...F),json:(F)=>k4(Y,F)})}};return Y.families.set(_,J),$}function bZ(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X)return o9(Y,Z,void 0);if(_)return l9(Y,Z,void 0);if(X)return nZ(Y,Z);return f4(Y,Z)}function $8(Y,...Z){let X;if(Z.length===1)X=Z[0];else{let _=Z[0],G=Z[1];X=j0(Y,_,G)}try{P0(Y,X)}catch(_){Y.logger.error("\u274C",X.type,X.key,`could not be disposed because it was not found in the store "${Y.config.name}".`);return}switch(X.type){case"atom":case"mutable_atom":Y7(Y,X);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":JF(Y,X);break}}function i9(Y,Z){if(Y.operation.open){let X=performance.now();return Y.logger.info("\uD83D\uDEAB",Z.type,Z.key,`deferring setState at T-${X} until setState for "${Y.operation.token.key}" is done`),X}return Y.operation={open:!0,done:new Set,prev:new Map,timestamp:Date.now(),token:Z,subEvents:[]},Y.logger.info("\u2B55",Z.type,Z.key,`operation start in store "${Y.config.name}"${E1(Y)?` ${Y.transactionMeta.phase} "${Y.transactionMeta.update.token.key}"`:""}`),Y}function n9(Y){if(Y.operation.open)Y.logger.info("\uD83D\uDD34",Y.operation.token.type,Y.operation.token.key,`operation done in store "${Y.config.name}"`);Y.operation={open:!1},Y.on.operationClose.next(Y.operation)}var r9=(Y,Z)=>{if(!Y.operation.open)return Y.logger.error("\uD83D\uDC1E","unknown",Z,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return Y.operation.done.has(Z)},B6=(Y,Z)=>{if(!Y.operation.open){Y.logger.error("\uD83D\uDC1E","unknown",Z,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}Y.operation.done.add(Z)};function dZ(Y,Z,{oldValue:X,newValue:_},G,$){let W=y1(Z);if(G&&$){Z.subject.next({newValue:_});let F={checkpoint:!0,type:"state_creation",subType:"writable",token:W,timestamp:Date.now(),value:_};Y.operation.subEvents.push(F),$.subject.next(F);let O=Y0(Y);if(W.family){if(D2(O))switch(W.type){case"atom":case"mutable_atom":Y.on.atomCreation.next(W);break;case"writable_pure_selector":case"writable_held_selector":Y.on.selectorCreation.next(W);break}else if(E1(O)&&O.on.transactionApplying.state===null)O.transactionMeta.update.subEvents.push(F)}return}let{key:H,subject:Q,type:J}=Z,z={oldValue:pZ(X)?X.READONLY_VIEW:X,newValue:pZ(_)?_.READONLY_VIEW:_};if(D2(Y)){switch(J){case"mutable_atom":Y.logger.info("\uD83D\uDCE2",J,H,"is now (",_,") subscribers:",Q.subscribers.keys());break;case"atom":case"writable_pure_selector":case"writable_held_selector":Y.logger.info("\uD83D\uDCE2",J,H,"went (",X,"->",_,") subscribers:",Q.subscribers.keys())}Q.next(z)}if(E1(Y)&&(J==="mutable_atom"||J==="atom")){if(Y.on.transactionApplying.state===null){if(pZ(_))return;let{timestamp:F}=Y.operation,O={type:"atom_update",token:W,timestamp:F,update:z};Y.transactionMeta.update.subEvents.push(O),Y.logger.info("\uD83D\uDCC1","atom",H,"stowed (",X,"->",_,")");return}if(X5(Z,"tracker:signal")){let F=H.slice(1),O=Y.atoms.get(F);if(h4(Y,O,"mut").do(z.newValue)===null===!0)Z5(Y,O)}}}var cZ=(Y,Z,X)=>{let _=h4(Y,Z,"mut"),G=mZ(X,_);return Y.logger.info("\u2B50","atom",Z.key,"setting value",G),G=B1(Y,Z,G),B6(Y,Z.key),Z5(Y,Z),{oldValue:_,newValue:G}};function gZ(Y,Z){switch(Z.type){case"mutable_atom":return cZ(Y,Z,new Z.class);case"atom":{let X;if(H8(Z.default))X=N6(Y,Z);else X=Z.default;return cZ(Y,Z,X)}}}function ZF(Y,Z){let X;switch(Z.type){case"atom":case"mutable_atom":X=gZ(Y,Z);break;case"writable_held_selector":{let _=U8(Y,Z.key);for(let $ of _.values()){let W=gZ(Y,$);dZ(Y,Z,W,!1)}let G=Z.getFrom(Y);X={oldValue:G,newValue:G}}break;case"writable_pure_selector":{let _=N6(Y,Z),G=U8(Y,Z.key);for(let W of G.values()){let H=gZ(Y,W);dZ(Y,Z,H,!1)}let $=N6(Y,Z);X={oldValue:_,newValue:$}}break}return X}function k1(Y,...Z){E8(I6,Y,...Z)}var lZ=Symbol("RESET");function R6(Y,...Z){let X=[...Z,lZ];k1(Y,...X)}function XF(Y,Z,X){let _,G,$,{type:W,key:H}=Z;switch(Z.type){case"writable_pure_selector":_=h4(Y,Z,"mut"),G=mZ(X,_),G=B1(Y,Z,G);break;case"writable_held_selector":$=Z.const,mZ(X,$),_=$,G=$}return Y.logger.info("\u2B50",W,H,"setting to",G),B6(Y,H),Z.setSelf(G),{oldValue:_,newValue:G}}var _F=(Y,Z,X)=>{let _;switch(Z.type){case"atom":case"mutable_atom":_=cZ(Y,Z,X);break;case"writable_pure_selector":case"writable_held_selector":_=XF(Y,Z,X);break}return _},I6=Symbol("OWN_OP"),s9=Symbol("JOIN_OP");function E8(Y,Z,...X){let _,G,$,W,H,Q;if(X.length===2){if($=X[0],Q=X[1],"family"in $)if(W=oZ(Z,$),H=X1($.family.subKey),_=z8(Z,W,H),!_)$=G=Q8(J8,Z,W,H);else $=_}else if(W=P0(Z,X[0]),H=X[1],Q=X[2],_=z8(Z,W,H),!_)$=G=Q8(J8,Z,W,H);else $=_;let J=Q===lZ?"reset":"set",z;if(Y===I6){let L=i9(Z,$);if(typeof L==="number"){let w=L,R=Z.on.operationClose.subscribe(`waiting to ${J} "${$.key}" at T-${w}`,function(){R(),Z.logger.info("\uD83D\uDFE2",$.type,$.key,"resuming deferred",J,`from T-${w}`),E8(Y,Z,$,Q)});return}z=L}else z=Z;if("counterfeit"in $&&"family"in $){let L=$.family.subKey,w=Z.disposalTraces.buffer.find((R)=>R?.key===L);Z.logger.error("\u274C",$.type,$.key,"could not be",J,"because key",L,"is not allocated.",w?`this key was previously disposed:${w.trace}`:"(no previous disposal trace found)");return}let F=P0(z,$),O;if(Q===lZ)O=ZF(z,F);else O=_F(z,F,Q);if(dZ(z,F,O,Boolean(G),W),Y===I6)n9(z)}var t9=(Y,Z)=>Y0(Y).atoms.has(Z),GF=(Y,Z)=>Y0(Y).writableSelectors.has(Z),$F=(Y,Z)=>Y0(Y).readonlySelectors.has(Z),WF=(Y,Z)=>t9(Y,Z)||GF(Y,Z)||$F(Y,Z);function b9(Y,Z){return Y0(Y).selectorGraph.getRelationEntries({downstreamSelectorKey:Z}).filter(([X,{source:_}])=>_!==Z).map(([X,{source:_}])=>_).filter((X)=>WF(Y,X))}function U8(Y,Z,X=new Set){let _=b9(Y,Z),G=new Map;while(_.length>0){let $=_.pop();if(X.has($))continue;if(X.add($),t9(Y,$)){let W=Y.atoms.get($);G.set(W.key,W)}else _.push(...b9(Y,$))}return G}function HF(Y,Z,X,_,G){let $=Y0(Y),{type:W,key:H}=_;if(W==="atom"||W==="mutable_atom")$.selectorAtoms.set({selectorKey:X,atomKey:H}),Y.logger.info("\uD83D\uDD0D",Z,X,`discovers root atom "${H}"`);else{let Q=U8(Y,H,G);Y.logger.info("\uD83D\uDD0D",Z,X,`discovers root atoms: [ ${[...Q.values()].map((J)=>`"${J.key}"`).join(", ")} ]`);for(let{key:J}of Q.values())$.selectorAtoms=$.selectorAtoms.set({selectorKey:X,atomKey:J})}G.add(H)}function T6(Y,Z,X,_){return{get:(...G)=>{let $=Y0(Y),{token:W,family:H,subKey:Q}=iZ(Y,...G),J;if("counterfeit"in W&&H&&Q)J=c9(Y,W,H,Q);else{let z=P0(Y,W);J=h4(Y,z)}return Y.logger.info("\uD83D\uDD0C",Z,X,`registers dependency ( "${W.key}" =`,J,")"),$.selectorGraph.set({upstreamSelectorKey:W.key,downstreamSelectorKey:X},{source:W.key}),HF(Y,Z,X,W,_),J},set:(...G)=>{let $=Y0(Y);E8(s9,$,...G)},find:(...G)=>j0(Y,...G),json:(G)=>k4(Y,G)}}function rZ(Y,Z,X){let _=Y0(Y),G=new G0,$=new Set,{key:W,const:H}=Z,Q="readonly_held_selector";Y.logger.info("\uD83D\uDD28","readonly_held_selector",W,"is being created");let{get:J,find:z,json:F}=T6(_,"readonly_held_selector",W,$),L={...Z,type:"readonly_held_selector",subject:G,getFrom:(R)=>{let b=R.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[x,{source:h}]of b)if(h!==W)R.selectorGraph.delete(x,W);return R.selectorAtoms.delete(W),Z.get({get:J,find:z,json:F},H),B1(R,L,H),Y.logger.info("\u2728","readonly_held_selector",W,"=",H),$.clear(),H},install:(R)=>rZ(R,Z,X)};if(X)L.family=X;_.readonlySelectors.set(W,L);let w={key:W,type:"readonly_held_selector"};if(X)w.family=X;return w}function sZ(Y,Z,X){let _=Y0(Y),G=new G0,$=new Set,W=Z.key,H="readonly_pure_selector";Y.logger.info("\uD83D\uDD28","readonly_pure_selector",W,"is being created");let{get:Q,find:J,json:z}=T6(_,"readonly_pure_selector",W,$),O={...Z,type:"readonly_pure_selector",subject:G,getFrom:()=>{let w=Y0(Y),R=w.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[h,{source:g}]of R)if(g!==W)w.selectorGraph.delete(h,W);w.selectorAtoms.delete(W);let b=Z.get({get:Q,find:J,json:z}),x=B1(w,O,b);return Y.logger.info("\u2728","readonly_pure_selector",W,"=",x),$.clear(),x},install:(w)=>sZ(w,Z,X)};if(X)O.family=X;_.readonlySelectors.set(W,O);let L={key:W,type:"readonly_pure_selector"};if(X)L.family=X;return L}function tZ(Y,Z,X){let _=Y0(Y),G=new G0,$=new Set,{key:W,const:H}=Z,Q="writable_held_selector";Y.logger.info("\uD83D\uDD28","writable_held_selector",W,"is being created");let J=T6(_,"writable_held_selector",W,$),{find:z,get:F,json:O}=J,L={find:z,get:F,json:O},b={...Z,type:"writable_held_selector",subject:G,getFrom:(h)=>{let g=h.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[B,{source:K}]of g)if(K!==W)h.selectorGraph.delete(B,W);return h.selectorAtoms.delete(W),Z.get(L,H),B1(h,b,H),Y.logger.info("\u2728","writable_held_selector",W,"=",H),$.clear(),H},setSelf:()=>{Z.set(J,H)},install:(h)=>tZ(h,Z,X)};if(X)b.family=X;_.writableSelectors.set(W,b);let x={key:W,type:"writable_held_selector"};if(X)x.family=X;return x}function aZ(Y,Z,X){let _=Y0(Y),G=new G0,$=new Set,W=Z.key,H="writable_pure_selector";Y.logger.info("\uD83D\uDD28","writable_pure_selector",W,"is being created");let Q=T6(_,"writable_pure_selector",W,$),{find:J,get:z,json:F}=Q,O={find:J,get:z,json:F},R={...Z,type:"writable_pure_selector",subject:G,getFrom:(x)=>{let h=x.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[K,{source:C}]of h)if(C!==W)x.selectorGraph.delete(K,W);x.selectorAtoms.delete(W);let g=Z.get(O),B=B1(x,R,g);return Y.logger.info("\u2728","writable_pure_selector",W,"=",B),$.clear(),B},setSelf:(x)=>{Z.set(Q,x)},install:(x)=>aZ(x,Z,X)};if(X)R.family=X;_.writableSelectors.set(W,R);let b={key:W,type:"writable_pure_selector"};if(X)b.family=X;return b}function v9(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X){let $=tZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(_){let $=rZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(X){let $=aZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}let G=sZ(Y,Z,void 0);return Y.on.selectorCreation.next(G),G}function JF(Y,Z){let X=Y0(Y),{key:_,type:G,family:$}=Z;if(!$)Y.logger.error("\u274C",G,_,"Standalone selectors cannot be disposed.");else{if(X.molecules.get($.subKey))X.moleculeData.delete($.subKey,$.key);let W;switch(Z.type){case"writable_held_selector":X.writableSelectors.delete(_),W={key:$.key,type:"writable_held_selector_family"},P0(Y,W).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"writable_pure_selector":X.writableSelectors.delete(_),W={key:$.key,type:"writable_pure_selector_family"},P0(Y,W).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"readonly_held_selector":X.readonlySelectors.delete(_),W={key:$.key,type:"readonly_held_selector_family"},P0(Y,W).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"readonly_pure_selector":X.readonlySelectors.delete(_),W={key:$.key,type:"readonly_pure_selector_family"},P0(Y,W).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break}if(X.valueMap.delete(_),X.selectorAtoms.delete(_),X.selectorGraph.delete(_),X.moleculeData.delete($.key,$.subKey),Y.logger.info("\uD83D\uDD25",Z.type,_,"deleted"),E1(X)&&X.transactionMeta.phase==="building")X.transactionMeta.update.subEvents.push({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});else Y.on.selectorDisposal.next(Z)}}var QF=(Y,Z)=>{let X=Y0(Y);if(X.operation.open)return X.operation.prev.get(Z.key);return X.valueMap.get(Z.key)},y9=(Y,Z,X)=>{return X.subject.subscribe(`${Z.type}:${Z.key}`,(_)=>{Y.logger.info("\uD83D\uDCE2",Z.type,Z.key,"root",X.key,"went",_.oldValue,"->",_.newValue);let G=QF(Y,Z),$=h4(Y,Z);Y.logger.info("\u2728",Z.type,Z.key,"went",G,"->",$),Z.subject.next({newValue:$,oldValue:G})})};function F8(Y,Z,X,_){function G(F){if(Y.operation.open){if($?.type==="atom"&&X5($,"tracker:signal")&&"*"+Y.operation.token.key===Z.key&&"inboundTracker"in _)return;let O=Y.on.operationClose.subscribe(`state subscription ${X}`,()=>{O(),_(F)})}else _(F)}iZ(Y,Z);let $=P0(Y,Z);Y.logger.info("\uD83D\uDC40",$.type,$.key,`Adding subscription "${X}"`);let W=$.type==="writable_pure_selector"||$.type==="readonly_pure_selector",H=new Map,Q=G;if(W){h4(Y,$);for(let[F,O]of U8(Y,$.key))H.set(F,y9(Y,$,O));Q=function(O){let L=U8(Y,$.key);for(let[w,R]of H)if(L.get(w))L.delete(w);else R(),H.delete(w);for(let[w,R]of L)H.set(w,y9(Y,$,R));G(O)}}let J=$.subject.subscribe(X,Q);return()=>{Y.logger.info("\uD83D\uDE48",$.type,$.key,`Removing subscription "${X}"`),J();for(let F of H.values())F()}}var zF=(Y,Z,X,_)=>{let G=P0(Y,Z);Y.logger.info("\uD83D\uDC40","timeline",Z.key,`Adding subscription "${X}"`);let $=G.subject.subscribe(X,_);return()=>{Y.logger.info("\uD83D\uDE48","timeline",Z.key,`Removing subscription "${X}" from timeline`),$()}};var eZ=class{initializeSignalAtom(Y,Z){let X=`*${Y.key}`;Z.atoms.delete(X),Z.valueMap.delete(X);let _=Y.family?{key:`*${Y.family.key}`,subKey:Y.family.subKey}:void 0,G=x4(Z,{key:X,default:null},_,["tracker:signal"]);if(Z.parent?.valueMap.has(X)){let $=Z.parent.valueMap.get(X);Z.valueMap.set(X,$)}return G}unsubscribeFromInnerValue;unsubscribeFromState;captureSignalsFromCore(Y,Z,X){let _=Y.key,G=X.config.name,$=E1(X)?X.transactionMeta.update.token.key:"main",W=`tracker-from-core:${G}:${$}:${_}`,H=(Q)=>{E8(s9,X,Z,Q)};this.unsubscribeFromInnerValue=h1(X,Y).subscribe(W,H),this.unsubscribeFromState=F8(X,Y,W,function(J){if(J.newValue!==J.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=J.newValue.subscribe(W,H)}.bind(this))}supplySignalsToCore(Y,Z,X){let _=Y.key,G=X.config.name,$=E1(X)?X.transactionMeta.update.token.key:"main",W=`tracker-to-core:${G}:${$}:${_}`;F8(X,Z,W,Object.assign(function({newValue:Q,oldValue:J}){let z=X.timelineTopics.getRelatedKey(Z.key);if(z&&X.timelines.get(z)?.timeTraveling){let F=zF(X,{key:z,type:"timeline"},W,function(L){F(),k1(X,Y,(w)=>{if(L==="redo"&&Q)w.do(Q);else if(L==="undo"&&J)w.undo(J);return w})});return}k1(X,Y,(F)=>(F.do(Q),F))},{inboundTracker:!0}))}mutableAtomToken;latestSignalToken;[Symbol.dispose];constructor(Y,Z){let X=Y0(Z),_=this.initializeSignalAtom(Y,X);this.mutableAtomToken=Y,this.latestSignalToken=_,this.captureSignalsFromCore(Y,_,X),this.supplySignalsToCore(Y,_,X),X.trackers.set(Y.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),X.trackers.delete(Y.key)}}};function w6(Y,Z,X){Y.logger.info("\uD83D\uDD28","atom",Z.key,`creating in store "${Y.config.name}"`);let _=Y0(Y),{key:G}=Z,$=_.atoms.get(G),W="mutable_atom";if($&&$.type===W)return Y.logger.error("\u274C",W,G,"Tried to create atom, but it already exists in the store."),y1($);let H=new G0,Q={...Z,type:W,install:(z)=>{return z.logger.info("\uD83D\uDEE0\uFE0F","atom",G,`installing in store "${z.config.name}"`),w6(z,Z,X)},subject:H};if(X)Q.family=X;_.atoms.set(Q.key,Q);let J=y1(Q);if(Z.effects){let z=0,F=[];for(let O of Z.effects){let L=O({resetSelf:()=>{R6(Y,J)},setSelf:(w)=>{k1(Y,J,w)},onSet:(w)=>F8(Y,J,`effect[${z}]`,w)});if(L)F.push(L);++z}Q.cleanup=()=>{for(let O of F)O()}}if(new eZ(J,Y),!X)v9(Y,{key:`${G}:JSON`,get:({get:z})=>z(J).toJSON(),set:({set:z},F)=>{z(J,Z.class.fromJSON(F))}});return Y.on.atomCreation.next(J),J}var UF=class{trackers=new Map;latestSignalAtoms;mutableAtoms;constructor(Y,Z){let X=O2(Z,{key:`*${Y.key}`,default:null},["mutable","updates"]);this.latestSignalAtoms=P0(Z,X),this.mutableAtoms=Y;let _=(G)=>{let{type:$,token:W}=G;if(W.family){let H=X1(W.family.subKey);switch($){case"state_creation":this.trackers.set(H,new eZ(W,Z));break;case"state_disposal":{let Q=this.trackers.get(H);if(Q)Q[Symbol.dispose](),this.trackers.delete(H)}}}};this.mutableAtoms.subject.subscribe(`store=${Z.config.name}::tracker-atom-family`,_)}};function yZ(Y,Z,X){let _={key:Z.key,type:"mutable_atom_family"},G=Y.families.get(Z.key);if(G)Y.logger.error("\u2757","mutable_atom_family",Z.key,`Overwriting an existing ${G4[G.type]} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new G0,H={..._,create:(Q)=>{let J=$0(Q),z={key:Z.key,subKey:J},F=`${Z.key}(${J})`,O=Y0(Y),L={key:F,class:Z.class};if(Z.effects)L.effects=Z.effects(Q);return w6(O,L,z)},class:Z.class,subject:$,install:(Q)=>yZ(Q,Z),internalRoles:X};return Y.families.set(Z.key,H),nZ(Y,{key:`${Z.key}:JSON`,get:(Q)=>({get:J})=>J(_,Q).toJSON(),set:(Q)=>({set:J},z)=>{J(_,Q,Z.class.fromJSON(z))}},["mutable","json"]),new UF(H,Y),_}var g9=(Y,Z)=>{let X=Y0(Z),_=`${Y.key}:JSON`;return X.families.get(_)},k4=(Y,Z)=>{if(Z.family){let X=Y0(Y),_={key:`${Z.family.key}:JSON`,type:"writable_pure_selector_family"},G=P0(X,_),$=X1(Z.family.subKey);return j0(Y,G,$)}return{type:"writable_pure_selector",key:`${Z.key}:JSON`}};var Y5=(Y)=>{let Z={type:"atom",key:`*${Y.key}`};if(Y.family)Z.family={key:`*${Y.family.key}`,subKey:Y.family.subKey};return Z};function pZ(Y){return typeof Y==="object"&&Y!==null&&"do"in Y&&"undo"in Y&&"subscribe"in Y&&"READONLY_VIEW"in Y&&"toJSON"in Y}function B1(Y,Z,X){let{key:_,subject:G,type:$}=Z,W=Y.valueMap.get(_);if(W instanceof uZ&&!W.done){let H=W;if(X instanceof Promise)return H.use(X),H;return Y.valueMap.set(_,X),X}if(X instanceof Promise){let H=new uZ(X);return Y.valueMap.set(_,H),H.then(function(J){if(Y.valueMap.get(_)===H){switch(i9(Y,Z),B1(Y,Z,J),$){case"atom":Z5(Y,Z);break;case"readonly_pure_selector":case"writable_pure_selector":e9(Y,_);break}n9(Y),G.next({newValue:J,oldValue:H})}}).catch((Q)=>{Y.logger.error("\uD83D\uDCA5",Z.type,_,"rejected:",Q)}),H}return Y.logger.info("\uD83D\uDCDD",Z.type,Z.key,"writing to cache",X),Y.valueMap.set(_,X),X}function FF(Y,Z,X){Y.logger.info("\uD83D\uDCD6",Z.type,Z.key,"reading cached value");let _=Y.valueMap.get(Z.key);if(X==="mut"&&Z.type==="mutable_atom"&&E1(Y)){let G=Z,{parent:$}=Y;if(Y.valueMap.hasOwn(G.key))return _;let W=$.valueMap.get(G.key);Y.logger.info("\uD83D\uDCC3","atom",G.key,"copying");let H=W.toJSON(),Q=G.class.fromJSON(H);Y.valueMap.set(G.key,Q),new eZ(G,$),_=Q}return _}function a9(Y,Z){let X=Y.valueMap.get(Z);if(X instanceof uZ){let _=Y.writableSelectors.get(Z)??Y.readonlySelectors.get(Z);if(_)_.getFrom(Y);return}if(Y.operation.open)Y.operation.prev.set(Z,X);Y.valueMap.delete(Z),Y.logger.info("\uD83D\uDDD1","state",Z,"evicted")}function Z5(Y,Z){let X=Y0(Y),{key:_,type:G}=Z,$=X.selectorAtoms.getRelatedKeys(_);if(X.logger.info("\uD83E\uDDF9",G,_,$?`evicting ${$.size} states downstream:`:"no downstream states",$??"to evict"),$){if(X.operation.open)X.logger.info("\uD83E\uDDF9",G,_,`[ ${[...X.operation.done].join(", ")} ] already done`);for(let W of $){if(r9(X,W))continue;a9(X,W),B6(X,W)}}}function e9(Y,Z){let X=Y0(Y),_=X.selectorGraph.getRelationEntries({upstreamSelectorKey:Z}).filter(([G,{source:$}])=>$===Z);for(let[G]of _){if(r9(X,G))continue;a9(X,G),B6(X,G),e9(Y,G)}}function x4(Y,Z,X,_){let{key:$}=Z;Y.logger.info("\uD83D\uDD28","atom",$,"is being created");let W=Y0(Y),H=W.atoms.get($);if(H&&H.type==="atom")return Y.logger.error("\u274C","atom",$,"Tried to create atom, but it already exists in the store."),y1(H);let Q=new G0,J={...Z,type:"atom",install:(F)=>{return F.logger.info("\uD83D\uDEE0\uFE0F","atom",$,`installing in store "${F.config.name}"`),x4(F,Z,X)},subject:Q};if(X)J.family=X;if(_)J.internalRoles=_;W.atoms.set($,J);let z=y1(J);if(Z.effects){let F=0,O=[];for(let L of Z.effects){let w=L({resetSelf:()=>{R6(Y,z)},setSelf:(R)=>{k1(Y,z,R)},onSet:(R)=>F8(Y,z,`effect[${F}]`,R)});if(w)O.push(w);++F}J.cleanup=()=>{for(let L of O)L()}}return Y.on.atomCreation.next(z),z}function X5(Y,Z){if("internalRoles"in Y===!1)return!1;return Y.internalRoles.includes(Z)}function Y7(Y,Z){let X=Y0(Y),{key:_,family:G}=Z,$=P0(X,Z);if(!G)Y.logger.error("\u274C","atom",_,"Standalone atoms cannot be disposed.");else{$.cleanup?.();let W=Y.valueMap.get($.key),H=oZ(Y,Z),Q=P0(Y,H).subject,J={type:"state_disposal",subType:"atom",token:Z,value:W,timestamp:Date.now()};Q.next(J);let z=E1(X);if(X.atoms.delete(_),X.valueMap.delete(_),X.selectorAtoms.delete(_),X.atomsThatAreDefault.delete(_),X.moleculeData.delete(G.key,G.subKey),Y.timelineTopics.delete(_),Z.type==="mutable_atom"){let F=Y5(Z);Y7(Y,F),Y.trackers.delete(_)}if(Y.logger.info("\uD83D\uDD25","atom",_,"deleted"),z&&X.transactionMeta.phase==="building"){let F=X.transactionMeta.update.subEvents.at(-1),O=F?.type==="molecule_disposal"&&F.values.some(([w])=>w===$.family?.key),L=X5($,"tracker:signal");if(!O&&!L)X.transactionMeta.update.subEvents.push(J)}else Y.on.atomDisposal.next(Z)}}function K0(Y){return Y[0].toUpperCase()+Y.slice(1)}var Z7=class{toolkit;options;defaultContent;relations;states;core;transact(Y,Z){let X=this.toolkit;this.toolkit=Y,Z(this),this.toolkit=X}store;realm;[Symbol.dispose](){}constructor(Y,Z,X=F1.STORE){this.store=X,this.realm=new C9(X),this.options=Y,this.defaultContent=Z,this.store.miscResources.set(`join:${Y.key}`,this),this.realm.allocate("root",Y.key),this.toolkit={get:(...B)=>h1(X,...B),set:(...B)=>{k1(X,...B)},find:(...B)=>j0(X,...B),json:(B)=>k4(X,B)};let _=Y.between[0],G=Y.between[1],$=yZ(X,{key:`${Y.key}/relatedKeys`,class:h9},["join","relations"]);this.core={relatedKeysAtoms:$};let W=({get:B},K)=>B($,K),H=({set:B},K,C)=>{if(!this.store.molecules.has($0(K)))this.realm.allocate(Y.key,K);B($,K,(q)=>q.add(C)),B($,C,(q)=>q.add(K))},Q=({set:B},K,C)=>{B($,K,(N)=>{return N.delete(C),N}),B($,C,(N)=>{return N.delete(K),N});let[q,c]=[K,C].sort(),n=`${q}:${c}`;this.store.moleculeJoins.delete(n)},J=(B,K,C)=>{let{find:q,get:c,set:n}=B,N=q($,K),s=c(N);for(let p of s){if(C.includes(p))continue;n($,p,(t)=>{return t.delete(K),t})}n(N,(p)=>{return p.transaction((t)=>{t.clear();for(let I0 of C){let h0=W(B,I0),$1=h0.has(K);if(this.relations.cardinality==="1:n"){let r1=[];for(let T of h0){if(T===K)continue;let m=W(B,T);if(m.delete(I0),m.size===0)r1.push(T)}if(!$1&&h0.size>0)h0.clear();for(let T of r1){let[m,W0]=[I0,T].sort(),V0=`${m}:${W0}`;X.moleculeJoins.delete(V0)}}if(!$1)h0.add(K);t.add(I0)}return!0}),p})},z=(B,K,C)=>{let{set:q}=B;q($,K,(c)=>{return c.transaction((n)=>{for(let N of C)n.add(N);return!0}),c});for(let c of C)q($,c,(n)=>{return n.add(K),n});return!0},F=(B,K,C)=>{let q=W(B,K);return C?q.has(C):q.size>0},O={getRelatedKeys:(B)=>W(this.toolkit,B),addRelation:(B,K)=>{this.store.moleculeJoins.set(`"${B}"`,Y.key),this.store.moleculeJoins.set(`"${K}"`,Y.key),H(this.toolkit,B,K)},deleteRelation:(B,K)=>{Q(this.toolkit,B,K)},replaceRelationsSafely:(B,K)=>{J(this.toolkit,B,K)},replaceRelationsUnsafely:(B,K)=>{z(this.toolkit,B,K)},has:(B,K)=>F(this.toolkit,B,K)},L,w;if(Z){w=O2(X,{key:`${Y.key}/content`,default:Z},["join","content"]);let B=({get:C},q)=>C(w,q),K=({set:C},q,c)=>{C(w,q,c)};L=Object.assign(O,{getContent:(C)=>{return B(this.toolkit,C)},setContent:(C,q)=>{K(this.toolkit,C,q)},deleteContent:(C)=>{}})}else L=O;let R=new $4(Y,{externalStore:L,isAType:Y.isAType,isBType:Y.isBType,makeContentKey:(...B)=>{let[K,C]=B,[q,c]=B.sort(),n=`${q}:${c}`,N=X.molecules.get($0(K)),s=X.molecules.get($0(C));if(!N)this.realm.allocate(Y.key,K);if(!s)this.realm.allocate(Y.key,C);return this.realm.allocate(K,n,"all"),this.realm.claim(C,n),this.store.moleculeJoins.set(n,Y.key),n}}),b=()=>f4(X,{key:`${Y.key}/singleRelatedKey`,get:(B)=>({get:K})=>{let C=K($,B);for(let q of C)return q;return null}},["join","keys"]),x=()=>{return f4(X,{key:`${Y.key}/multipleRelatedKeys`,get:(B)=>({get:K})=>{let C=g9($,X);return K(C,B).members}},["join","keys"])},h=()=>f4(X,{key:`${Y.key}/singleRelatedEntry`,get:(B)=>({get:K})=>{let C=K($,B);for(let q of C){let c=R.isAType?.(B)?B:void 0,n=c===void 0?B:void 0;c??=q,n??=q;let N=R.makeContentKey(c,n),s=K(w,N);return[q,s]}return null}},["join","entries"]),g=()=>f4(X,{key:`${Y.key}/multipleRelatedEntries`,get:(B)=>({get:K})=>{let C=g9($,X);return K(C,B).members.map((q)=>{let c=R.isAType?.(B)?B:void 0,n=c===void 0?B:void 0;c??=q,n??=q;let N=R.makeContentKey(c,n),s=K(w,N);return[q,s]})}},["join","entries"]);switch(Y.cardinality){case"1:1":{let B=b(),K=`${_}KeyOf${K0(G)}`,C=`${G}KeyOf${K0(_)}`,q={[K]:B,[C]:B},c;if(Z){let n=h(),N=`${_}EntryOf${K0(G)}`,s=`${G}EntryOf${K0(_)}`,p={[N]:n,[s]:n};c=Object.assign(q,p)}else c=q;this.relations=R,this.states=c;break}case"1:n":{let B=b(),K=x(),C=`${_}KeyOf${K0(G)}`,q=`${G}KeysOf${K0(_)}`,c={[C]:B,[q]:K},n;if(Z){let N=h(),s=g(),p=`${_}EntryOf${K0(G)}`,t=`${G}EntriesOf${K0(_)}`,I0={[p]:N,[t]:s};n=Object.assign(c,I0)}else n=c;this.relations=R,this.states=n;break}case"n:n":{let B=x(),K=`${_}KeysOf${K0(G)}`,C=`${G}KeysOf${K0(_)}`,q={[K]:B,[C]:B},c;if(Z){let n=g(),N=`${_}EntriesOf${K0(G)}`,s=`${G}EntriesOf${K0(_)}`,p={[N]:n,[s]:n};c=Object.assign(q,p)}else c=q;this.relations=R,this.states=c}}}};function x9(Y,Z,X){return Y.joins.set(Z.key,new Z7(Z,X,Y)),{key:Z.key,type:"join",a:Z.between[0],b:Z.between[1],cardinality:Z.cardinality}}function _5(Y,Z){let X=Z.joins.get(Y.key);if(X===void 0){let _=F1.STORE.joins.get(Y.key);if(_===void 0)throw Error(`Join "${Y.key}" not found in store "${Z.config.name}"`);let G=fU(Z);X=new Z7(_.options,_.defaultContent,G),Z.joins.set(Y.key,X)}return X}function W8(Y,Z,X){let _=_5(Y,X),G=Y0(X);if(E1(G)){let{toolkit:$}=G.transactionMeta;_.transact($,({relations:W})=>{Z(W)})}else Z(_.relations)}function xU(Y,Z,X){let _=_5(Y,X),G;switch(Y.cardinality){case"1:1":{let $=`${Y.a}KeyOf${K0(Y.b)}`,W=`${Y.b}KeyOf${K0(Y.a)}`;G={get[$](){let Q=_.states[$];return j0(X,Q,Z)},get[W](){let Q=_.states[W];return j0(X,Q,Z)}};let H=`${Y.a}EntryOf${K0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntryOf${K0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return j0(X,J,Z)},get[Q](){let J=_.states[Q];return j0(X,J,Z)}})}break}case"1:n":{let $=`${Y.a}KeyOf${K0(Y.b)}`,W=`${Y.b}KeysOf${K0(Y.a)}`;G={get[$](){let Q=_.states[$];return j0(X,Q,Z)},get[W](){let Q=_.states[W];return j0(X,Q,Z)}};let H=`${Y.a}EntryOf${K0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntriesOf${K0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return j0(X,J,Z)},get[Q](){let J=_.states[Q];return j0(X,J,Z)}})}break}case"n:n":{let $=`${Y.a}KeysOf${K0(Y.b)}`,W=`${Y.b}KeysOf${K0(Y.a)}`;G={get[$](){let Q=_.states[$];return j0(X,Q,Z)},get[W](){let Q=_.states[W];return j0(X,Q,Z)}};let H=`${Y.a}EntriesOf${K0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntriesOf${K0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return j0(X,J,Z)},get[Q](){let J=_.states[Q];return j0(X,J,Z)}})}}}return G}function f9(Y,Z){return _5(Y,Z).core.relatedKeysAtoms}var EF=(Y)=>{return x4(Y,{key:"\uD83D\uDD0D Atom Token Index",default:()=>{let Z=new Map;for(let[X,_]of Y.atoms){if(L2(X))continue;let G=y1(_);if(_.family){let $=Z.get(_.family.key);if(!$||!("familyMembers"in $))$={key:_.family.key,familyMembers:new Map},Z.set(_.family.key,$);$.familyMembers.set(_.family.subKey,G)}else Z.set(X,G)}return Z},effects:[({setSelf:Z})=>{Y.on.atomCreation.subscribe("introspection",(X)=>{if(L2(X.key))return;Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W===void 0||!("familyMembers"in W))W={key:G,familyMembers:new Map},_.set(G,W);W.familyMembers.set($,X)}else _.set(X.key,X);return new Map(_)})}),Y.on.atomDisposal.subscribe("introspection",(X)=>{Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W&&"familyMembers"in W){if(W.familyMembers.delete($),W.familyMembers.size===0)_.delete(G)}}return new Map(_)})})}]},void 0)},VF=(Y)=>{return x4(Y,{key:"\uD83D\uDD0D Selector Token Index",default:()=>{let Z=new Map;for(let X of[Y.readonlySelectors,Y.writableSelectors])for(let[_,G]of X){if(L2(_))continue;let $=y1(G);if(G.family){let W=Z.get(G.family.key);if(!W||!("familyMembers"in W))W={key:G.family.key,familyMembers:new Map},Z.set(G.family.key,W);W.familyMembers.set(G.family.subKey,$)}else Z.set(_,$)}return Z},effects:[({setSelf:Z})=>{Y.on.selectorCreation.subscribe("introspection",(X)=>{if(L2(X.key))return;Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W===void 0||!("familyMembers"in W))W={key:G,familyMembers:new Map},_.set(G,W);W.familyMembers.set($,X)}else _.set(X.key,X);return new Map(_)})}),Y.on.selectorDisposal.subscribe("introspection",(X)=>{Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W&&"familyMembers"in W){if(W.familyMembers.delete($),W.familyMembers.size===0)_.delete(G)}}else _.delete(X.key);return new Map(_)})})}]},void 0)};var G5=class{supported;constructor(Y){this.supported=Y}refine(Y){for(let[Z,X]of Object.entries(this.supported))try{if(X(Y)===!0&&X!==Boolean)return{type:Z,data:Y}}catch(_){try{if(Y instanceof X)return{type:Z,data:Y}}catch(G){}}return null}},_7=new G5({number:(Y)=>typeof Y==="number",string:(Y)=>typeof Y==="string",boolean:(Y)=>typeof Y==="boolean",null:(Y)=>Y===null});function G7(Y){if(!Y)return!1;return Object.getPrototypeOf(Y)===Object.prototype}var $7=new G5({object:G7,array:(Y)=>Array.isArray(Y)}),OF=new G5({..._7.supported,...$7.supported}),C6=(Y)=>{if(Y===void 0)return"undefined";let Z=OF.refine(Y);if(Z)return Z.type;return Object.getPrototypeOf(Y).constructor.name};var YB=class Y{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(Z=F1.STORE){this.store=Z,this.atomIndex=EF(this.store),this.selectorIndex=VF(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(Z=Y.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw Error("This Auditor has been disposed");let X=hZ(this.atomIndex),_=hZ(this.selectorIndex),G=[...X.values()].filter((Q)=>("familyMembers"in Q)),$=[..._.values()].filter((Q)=>("familyMembers"in Q)),W=performance.now(),H=[];if(Z.atomFamilies)for(let Q of G){let J=Q.familyMembers.values();for(let z of J){let F=this.statesCreatedAt.get(z.key)??this.auditorCreatedAt,O=W-F;H.push([z,O])}}if(Z.selectorFamilies)for(let Q of $){let J=Q.familyMembers.values();for(let z of J){let F=this.statesCreatedAt.get(z.key)??this.auditorCreatedAt,O=W-F;H.push([z,O])}}return H}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}},X7=(Y,Z)=>{let X=(_,G)=>{let W=((Q,J)=>{let z=Z(Q,J);if(z)return z;return null})(_,G);if(W?.jobComplete??W?.pathComplete)return W;let H=Array.isArray(G)?G.map((Q,J)=>[J,Q]):G7(G)?Object.entries(G):[];for(let[Q,J]of H){let z=X([..._,Q],J);if(z?.jobComplete)return z}return{}};X([],Y)};function DF(Y,Z){return{summary:`${Y<Z?"+":"-"}${Math.abs(Y-Z)} (${Y} \u2192 ${Z})`}}function LF(Y,Z){return{summary:`${Y.length<Z.length?"+":"-"}${Math.abs(Y.length-Z.length)} ("${Y}" \u2192 "${Z}")`}}function MF(Y,Z){return{summary:`${Y} \u2192 ${Z}`}}function W7(Y,Z,X){let _="",G=[],$=[],W=[];return X7(Y,(H,Q)=>{let J;for(J of H){let z=Z[J];if(z===void 0)$.push([J,JSON.stringify(Q)]);else{let F=X(Q,z);if(F.summary!=="No Change")W.push([J,F])}}}),X7(Z,(H,Q)=>{let J;for(J of H)if(Y[J]===void 0)G.push([J,JSON.stringify(Q)])}),_=`\uFF5E${W.length} \uFF0B${G.length} \uFF0D${$.length}`,{summary:_,added:G,removed:$,changed:W}}function AF(Y,Z,X){return W7(Y,Z,X)}var RF=class{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(Y,Z,X){this.leafRefinery=Y,this.treeRefinery=Z,this.leafDiffers={},this.treeDiffers={};for(let _ of Object.keys(Y.supported)){let G=X[_];this.leafDiffers[_]=G}for(let _ of Object.keys(Z.supported)){let G=X[_];this.treeDiffers[_]=G}}diff(Y,Z){if(Y===Z)return{summary:"No Change"};let X=this.leafRefinery.refine(Y)??this.treeRefinery.refine(Y),_=this.leafRefinery.refine(Z)??this.treeRefinery.refine(Z);if(X!==null&&_!==null){if(X.type===_.type){if(X.type in this.leafDiffers)return this.leafDiffers[X.type](X.data,_.data);if(X.type in this.treeDiffers)return this.treeDiffers[X.type](X.data,_.data,(W,H)=>this.diff(W,H))}}let G=C6(Y),$=C6(Z);if(G===$)return{summary:`${G} \u2192 ${$}`};return{summary:`Type change: ${G} \u2192 ${$}`}}},ZB=new RF(_7,$7,{number:DF,string:LF,boolean:MF,null:()=>({summary:"No Change"}),object:W7,array:AF});var b4=class Y extends Set{mode="record";subject=new G0;constructor(Z){super(Z);if(Z instanceof Y);}READONLY_VIEW=this;toJSON(){return{members:[...this]}}static fromJSON(Z){return new Y(Z.members)}add(Z){let X=super.add(Z);if(this.mode==="record")this.emit(`add:${$0(Z)}`);return X}clear(){let Z=this.mode==="record"?[...this]:null;if(super.clear(),Z)this.emit(`clear:${$0(Z)}`)}delete(Z){let X=super.delete(Z);if(this.mode==="record")this.emit(`del:${$0(Z)}`);return X}subscribe(Z,X){return this.subject.subscribe(Z,X)}emit(Z){this.subject.next(Z)}doStep(Z){let X=Z.indexOf(":"),_=Z.substring(0,X),G=Z.substring(X+1);switch(_){case"add":this.add(JSON.parse(G));break;case"del":this.delete(JSON.parse(G));break;case"clear":this.clear()}}do(Z){return this.mode="playback",this.doStep(Z),this.mode="record",null}undoStep(Z){let X=Z.indexOf(":"),_=Z.substring(0,X),G=Z.substring(X+1);switch(_){case"add":this.delete(JSON.parse(G));break;case"del":this.add(JSON.parse(G));break;case"clear":{let $=JSON.parse(G);for(let W of $)this.add(W)}}}undo(Z){return this.mode="playback",this.undoStep(Z),this.mode="record",null}};var wF=V2({key:"mutex",default:!1}),NF=class extends Map{set(Y,Z){if(this.has(Y))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:Y,value:Z}),this;return super.set(Y,Z)}},zB=class Y{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(Z){this.key=Z}static existing=new NF;static create(Z,X){let _=new Y(Z),{type:G,globals:$,actions:W,perspectives:H}=X(_),Q={type:G,key:Z,globals:$,actions:W,perspectives:H};return Y.existing.set(Z,Q),Q}add(...Z){switch(Z[0].type){case"atom":case"mutable_atom":this.globals.push(...Z);break;case"transaction":this.actions.push(...Z);break;case"atom_family":case"mutable_atom_family":{let[X,_]=Z;this.perspectives.push({type:"realtime_perspective",resourceAtoms:X,viewAtoms:_})}break}return this}};var UB=E2({key:"usersInRoomIndex",class:b4}),H7=E2({key:"roomIndex",class:b4}),IF={enteredAtEpoch:0},V8=O6({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(Y)=>typeof Y==="string",isBType:(Y)=>typeof Y==="string"},IF),FB=D6({key:"usersInMyRoomView",get:(Y)=>({find:Z})=>{let X=B9(V8);return[Z(X,Y)]}});var NB=V2({key:"redactor",default:{occlude:(Y)=>Y}}),IB=V2({key:"unacknowledgedUpdates",default:()=>[]});var $5=class{listeners;globalListeners;handleEvent(...Y){let[Z,...X]=Y;for(let G of this.globalListeners)G(Z,...X);let _=this.listeners.get(Z);if(_)for(let G of _)G(...X)}id="no_id_retrieved";emit;constructor(Y){this.emit=Y,this.listeners=new Map,this.globalListeners=new Set}on(Y,Z){let X=this.listeners.get(Y);if(X)X.add(Z);else this.listeners.set(Y,new Set([Z]));return this}onAny(Y){return this.globalListeners.add(Y),this}off(Y,Z){let X=this.listeners.get(Y);if(X)if(Z)X.delete(Z);else this.listeners.delete(Y);return this}offAny(Y){return this.globalListeners.delete(Y),this}},KB=class extends $5{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";proc;key;logger;handleLog(Y){if(Array.isArray(Y)){let[Z,...X]=Y;switch(Z){case"i":this.logger.info(...X);break;case"w":this.logger.warn(...X);break;case"e":this.logger.error(...X);break}}}constructor(Y,Z,X){super((_,...G)=>{let $=JSON.stringify([_,...G])+"\x03",W=(H)=>{if(H.code==="EPIPE")console.error("EPIPE error during write",this.proc.stdin);this.proc.stdin.removeListener("error",W)};return this.proc.stdin.once("error",W),this.proc.stdin.write($),this});if(this.proc=Y,this.key=Z,this.logger=X??{info:(..._)=>{console.info(this.id,this.key,..._)},warn:(..._)=>{console.warn(this.id,this.key,..._)},error:(..._)=>{console.error(this.id,this.key,..._)}},this.proc.stdout.on("data",(_)=>{let G=_.toString();if(G==="ALIVE"){this.logger.info(G);return}let $=G.split("\x03"),W=$[0];$[0]=this.incompleteData+W;let H=0;for(let Q of $){if(Q==="")continue;try{let J=X1(Q);this.handleEvent(...J),this.incompleteData=""}catch(J){if(J instanceof Error)console.error(["\u274C Malformed data received from child process","",Q,"",J.message].join(`
60
60
  \u274C `));try{if(H===0){this.incompleteData=Q;let z=X1(W);this.handleEvent(...z),this.incompleteData=""}else this.incompleteData+=Q}catch(z){if(z instanceof Error)console.error(["\u274C Malformed data received from child process","",W,"",z.message].join(`
61
61
  \u274C `))}}++H}}),this.proc.stderr.on("data",(_)=>{let G=_.toString().split("\x03"),$=G[0];G[0]=this.incompleteData+$;let W=0;for(let H of G){if(H==="")continue;try{let Q=X1(H);this.handleLog(Q),this.incompleteData=""}catch(Q){if(Q instanceof Error)console.error(["\u274C Malformed log received from child process","",H,"",Q.message].join(`
62
62
  \u274C `));try{if(W===0){this.incompleteData=H;let J=X1($);this.handleLog(J),this.incompleteData=""}else this.incompleteData+=H}catch(J){if(J instanceof Error)console.error(["\u274C Malformed log received from child process...","",$,"",J.message].join(`
63
63
  \u274C `))}}++W}}),Y.pid)this.id=Y.pid.toString()}},KF=class extends $5{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(Y){super((...Z)=>{return this.out.next(Z),this});this.id=Y,this.in=new G0,this.out=new G0,this.in.subscribe("socket",(Z)=>{this.handleEvent(...Z)})}dispose(){for(let Y of this.disposalFunctions)Y()}},Q7=class extends $5{incompleteData="";unprocessedEvents=[];relays;relayServices;proc;id="#####";log(...Y){this.proc.stderr.write($0(Y.map((Z)=>Z instanceof b4?`{ ${Z.toJSON().members.join(" | ")} }`:Z))+"\x03")}logger={info:(...Y)=>{this.log("i",...Y)},warn:(...Y)=>{this.log("w",...Y)},error:(...Y)=>{this.log("e",...Y)}};constructor(Y){super((Z,...X)=>{let _=JSON.stringify([Z,...X]);return this.proc.stdout.write(_+"\x03"),this});if(this.proc=Y,this.proc.stdin.resume(),this.relays=new Map,this.relayServices=[],this.proc.stdin.on("data",(Z)=>{let X=Z.toString().split("\x03"),_=X[0];X[0]=this.incompleteData+_;let G=0;for(let $ of X){if($==="")continue;try{let W=X1($);this.logger.info("\uD83C\uDFB0","received",W),this.handleEvent(...W),this.incompleteData=""}catch(W){if(W instanceof Error)this.logger.error(["received malformed data from parent process:","",$,"",W.message].join(`
64
64
  \u274C `));try{if(G===0){this.incompleteData=$;let H=X1(_);this.logger.info("\uD83C\uDFB0","received",H),this.handleEvent(...H),this.incompleteData=""}else this.incompleteData+=$}catch(H){if(H instanceof Error)this.logger.error(["received malformed data from parent process:","",_,"",H.message].join(`
65
- \u274C `))}}++G}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),this.proc.exit(0)}),this.proc.pid)this.id=this.proc.pid?.toString();this.on("user-joins",(Z)=>{this.logger.info("\uD83D\uDC64","user",Z,"joined");let X=`user::${Z}`,_=new KF(X);this.relays.set(Z,_),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let G of this.relayServices){let $=G(_,X);if($)_.disposalFunctions.push($)}this.on(X,(...G)=>{_.in.next(G)}),_.out.subscribe("socket",(G)=>{this.emit(...G)})}),this.on("user-leaves",(Z)=>{let X=this.relays.get(Z);if(this.off(`relay:${Z}`),X)X.dispose(),this.relays.delete(Z)}),this.proc.stdout.write("ALIVE")}receiveRelay(Y){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(Y)}};var J7=new Map;var BB=L6({key:"joinRoom",do:(Y,Z,X,_)=>{let G={enteredAtEpoch:_};return W8(V8,($)=>{$.set({room:Z,user:X},G)},Y.env().store),G}}),TB=L6({key:"leaveRoom",do:({env:Y},Z,X)=>{W8(V8,(_)=>{_.delete({room:Z,user:X})},Y().store)}}),CB=L6({key:"destroyRoom",do:({set:Y,env:Z},X)=>{W8(V8,(G)=>{G.delete({room:X})},Z().store),Y(H7,(G)=>(G.delete(X),G));let _=J7.get(X);if(_)_.emit("exit"),J7.delete(X)}}),qB=V2({key:"sockets",default:null}),jB=E2({key:"socketsIndex",class:b4}),PB=E2({key:"usersIndex",class:b4}),SB=O6({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(Y)=>Y.startsWith("user::"),isBType:(Y)=>Y.startsWith("socket::")}),vB=D6({key:"userMutualSituationalAwarenessIndexes",get:(Y)=>()=>{return[Y]}});var{file:mW,serve:pE}=globalThis.Bun;import{readFileSync as F7}from"fs";import{createServer as qF}from"http";import{createServer as jF}from"https";import{resolve as H5}from"path";function z7(Y,Z){if(Y instanceof Promise)throw new Error(Z)}function BF(Y,Z){let X={},_=[];for(let G in Y){let $=Y[G]["~standard"].validate(Z[G]);if(z7($,`Validation must be synchronous, but ${G} returned a Promise.`),$.issues){_.push(...$.issues.map((W)=>({...W,message:W.message,path:[G,...W.path??[]]})));continue}X[G]=$.value}if(_.length)return{issues:_};return{value:X}}function W5(Y){let Z=Y.runtimeEnvStrict??Y.runtimeEnv??process.env;if(Y.emptyStringAsUndefined??!1){for(let[h,g]of Object.entries(Z))if(g==="")delete Z[h]}if(!!Y.skipValidation)return Z;let G=typeof Y.client==="object"?Y.client:{},$=typeof Y.server==="object"?Y.server:{},W=typeof Y.shared==="object"?Y.shared:{},H=Y.isServer??(typeof window==="undefined"||("Deno"in window)),Q=H?{...$,...W,...G}:{...G,...W},J=Y.createFinalSchema?.(Q,H)["~standard"].validate(Z)??BF(Q,Z);z7(J,"Validation must be synchronous");let z=Y.onValidationError??((h)=>{throw console.error("\u274C Invalid environment variables:",h),new Error("Invalid environment variables")}),F=Y.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(J.issues)return z(J.issues);let O=(h)=>{if(!Y.clientPrefix)return!0;return!h.startsWith(Y.clientPrefix)&&!(h in W)},L=(h)=>{return H||!O(h)},w=(h)=>{return h==="__esModule"||h==="$$typeof"},R=(Y.extends??[]).reduce((h,g)=>{return Object.assign(h,g)},{}),b=Object.assign(R,J.value);return new Proxy(b,{get(h,g){if(typeof g!=="string")return;if(w(g))return;if(!L(g))return F(g);return Reflect.get(h,g)}})}var TF="__vite_start_time"in globalThis,CF=typeof window!=="undefined",dB="vitest"in globalThis,W4=U1("string"),U7=U1('"true" | "false" | undefined'),g1=W5({isServer:!TF&&!CF,server:{CI:U1("string | undefined").pipe(Boolean),POSTGRES_USER:W4,POSTGRES_PASSWORD:W4,POSTGRES_DATABASE:W4,POSTGRES_HOST:W4,POSTGRES_PORT:W4.pipe((Y)=>Number.parseInt(Y,10)),BACKEND_PORT:W4.pipe((Y)=>Number.parseInt(Y,10)),RUN_WORKERS_FROM_SOURCE:U7.pipe((Y)=>Y==="true"),FRONTEND_PORT:W4.pipe((Y)=>Number.parseInt(Y,10)),FRONTEND_ORIGINS:W4.pipe.try((Y)=>JSON.parse(Y),U1("string[]")),API_KEY_OPENAI:U1("string | undefined"),API_KEY_RESEND:U1("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:W4,VITE_DEV_FRONTEND_HOST:U1("string | undefined"),VITE_DEV_HTTPS:U7.pipe((Y)=>Y==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var E7=H5(import.meta.dirname,"../dev"),q6=g1.VITE_DEV_HTTPS?{cert:F7(H5(E7,"./cert.pem"),"utf-8"),key:F7(H5(E7,"./key.pem"),"utf-8")}:void 0;function sB(Y){if(q6)return jF(q6,Y);return qF({},Y)}import xE from"path";var E=Symbol.for("drizzle:entityKind");function M(Y,Z){if(!Y||typeof Y!=="object")return!1;if(Y instanceof Z)return!0;if(!Object.prototype.hasOwnProperty.call(Z,E))throw new Error(`Class "${Z.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 X=Object.getPrototypeOf(Y).constructor;if(X)while(X){if(E in X&&X[E]===Z[E])return!0;X=Object.getPrototypeOf(X)}return!1}class F0{constructor(Y,Z){this.table=Y,this.config=Z,this.name=Z.name,this.keyAsName=Z.keyAsName,this.notNull=Z.notNull,this.default=Z.default,this.defaultFn=Z.defaultFn,this.onUpdateFn=Z.onUpdateFn,this.hasDefault=Z.hasDefault,this.primary=Z.primaryKey,this.isUnique=Z.isUnique,this.uniqueName=Z.uniqueName,this.uniqueType=Z.uniqueType,this.dataType=Z.dataType,this.columnType=Z.columnType,this.generated=Z.generated,this.generatedIdentity=Z.generatedIdentity}static[E]="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(Y){return Y}mapToDriverValue(Y){return Y}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class J5{static[E]="ColumnBuilder";config;constructor(Y,Z,X){this.config={name:Y,keyAsName:Y==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:Z,columnType:X,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(Y){return this.config.default=Y,this.config.hasDefault=!0,this}$defaultFn(Y){return this.config.defaultFn=Y,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(Y){return this.config.onUpdateFn=Y,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(Y){if(this.config.name!=="")return;this.config.name=Y}}var p1=Symbol.for("drizzle:Name");class Q5{static[E]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(Y,Z){if(this.reference=()=>{let{name:X,columns:_,foreignColumns:G}=Y();return{name:X,columns:_,foreignTable:G[0].table,foreignColumns:G}},Z)this._onUpdate=Z.onUpdate,this._onDelete=Z.onDelete}onUpdate(Y){return this._onUpdate=Y===void 0?"no action":Y,this}onDelete(Y){return this._onDelete=Y===void 0?"no action":Y,this}build(Y){return new V7(Y,this)}}class V7{constructor(Y,Z){this.table=Y,this.reference=Z.reference,this.onUpdate=Z._onUpdate,this.onDelete=Z._onDelete}static[E]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:Y,columns:Z,foreignColumns:X}=this.reference(),_=Z.map((W)=>W.name),G=X.map((W)=>W.name),$=[this.table[p1],..._,X[0].table[p1],...G];return Y??`${$.join("_")}_fk`}}function j6(Y,...Z){return Y(...Z)}function O7(Y,Z){return`${Y[p1]}_${Z.join("_")}_unique`}function D7(Y,Z,X){for(let _=Z;_<Y.length;_++){let G=Y[_];if(G==="\\"){_++;continue}if(G==='"')return[Y.slice(Z,_).replace(/\\/g,""),_+1];if(X)continue;if(G===","||G==="}")return[Y.slice(Z,_).replace(/\\/g,""),_]}return[Y.slice(Z).replace(/\\/g,""),Y.length]}function L7(Y,Z=0){let X=[],_=Z,G=!1;while(_<Y.length){let $=Y[_];if($===","){if(G||_===Z)X.push("");G=!0,_++;continue}if(G=!1,$==="\\"){_+=2;continue}if($==='"'){let[Q,J]=D7(Y,_+1,!0);X.push(Q),_=J;continue}if($==="}")return[X,_+1];if($==="{"){let[Q,J]=L7(Y,_+1);X.push(Q),_=J;continue}let[W,H]=D7(Y,_,!1);X.push(W),_=H}return[X,_]}function M7(Y){let[Z]=L7(Y,1);return Z}function z5(Y){return`{${Y.map((Z)=>{if(Array.isArray(Z))return z5(Z);if(typeof Z==="string")return`"${Z.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${Z}`}).join(",")}}`}class k extends J5{foreignKeyConfigs=[];static[E]="PgColumnBuilder";array(Y){return new R7(this.config.name,this,Y)}references(Y,Z={}){return this.foreignKeyConfigs.push({ref:Y,actions:Z}),this}unique(Y,Z){return this.config.isUnique=!0,this.config.uniqueName=Y,this.config.uniqueType=Z?.nulls,this}generatedAlwaysAs(Y){return this.config.generated={as:Y,type:"always",mode:"stored"},this}buildForeignKeys(Y,Z){return this.foreignKeyConfigs.map(({ref:X,actions:_})=>{return j6((G,$)=>{let W=new Q5(()=>{let H=G();return{columns:[Y],foreignColumns:[H]}});if($.onUpdate)W.onUpdate($.onUpdate);if($.onDelete)W.onDelete($.onDelete);return W.build(Z)},X,_)})}buildExtraConfigColumn(Y){return new A7(Y,this.config)}}class j extends F0{constructor(Y,Z){if(!Z.uniqueName)Z.uniqueName=O7(Y,[Z.name]);super(Y,Z);this.table=Y}static[E]="PgColumn"}class A7 extends j{static[E]="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(Y){return this.indexConfig.opClass=Y,this}}class O8{static[E]="IndexedColumn";constructor(Y,Z,X,_){this.name=Y,this.keyAsName=Z,this.type=X,this.indexConfig=_}name;keyAsName;type;indexConfig}class R7 extends k{static[E]="PgArrayBuilder";constructor(Y,Z,X){super(Y,"array","PgArray");this.config.baseBuilder=Z,this.config.size=X}build(Y){let Z=this.config.baseBuilder.build(Y);return new U5(Y,this.config,Z)}}class U5 extends j{constructor(Y,Z,X,_){super(Y,Z);this.baseColumn=X,this.range=_,this.size=Z.size}size;static[E]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(Y){if(typeof Y==="string")Y=M7(Y);return Y.map((Z)=>this.baseColumn.mapFromDriverValue(Z))}mapToDriverValue(Y,Z=!1){let X=Y.map((_)=>_===null?null:M(this.baseColumn,U5)?this.baseColumn.mapToDriverValue(_,!0):this.baseColumn.mapToDriverValue(_));if(Z)return X;return z5(X)}}class w7 extends k{static[E]="PgEnumObjectColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumObjectColumn");this.config.enum=Z}build(Y){return new N7(Y,this.config)}}class N7 extends j{static[E]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}var P6=Symbol.for("drizzle:isPgEnum");function I7(Y){return!!Y&&typeof Y==="function"&&P6 in Y&&Y[P6]===!0}class K7 extends k{static[E]="PgEnumColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumColumn");this.config.enum=Z}build(Y){return new B7(Y,this.config)}}class B7 extends j{static[E]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}function D8(Y,Z){return Array.isArray(Z)?PF(Y,[...Z],void 0):SF(Y,Z,void 0)}function PF(Y,Z,X){let _=Object.assign((G)=>new K7(G??"",_),{enumName:Y,enumValues:Z,schema:X,[P6]:!0});return _}function SF(Y,Z,X){let _=Object.assign((G)=>new w7(G??"",_),{enumName:Y,enumValues:Object.values(Z),schema:X,[P6]:!0});return _}class S0{static[E]="Subquery";constructor(Y,Z,X,_=!1,G=[]){this._={brand:"Subquery",sql:Y,selectedFields:Z,alias:X,isWith:_,usedTables:G}}}class L8 extends S0{static[E]="WithSubquery"}var T7="0.44.5";var F5,E5,E0={startActiveSpan(Y,Z){if(!F5)return Z();if(!E5)E5=F5.trace.getTracer("drizzle-orm",T7);return j6((X,_)=>_.startActiveSpan(Y,(G)=>{try{return Z(G)}catch($){throw G.setStatus({code:X.SpanStatusCode.ERROR,message:$ instanceof Error?$.message:"Unknown error"}),$}finally{G.end()}}),F5,E5)}};var M0=Symbol.for("drizzle:ViewBaseConfig");var y4=Symbol.for("drizzle:Schema"),S6=Symbol.for("drizzle:Columns"),C7=Symbol.for("drizzle:ExtraConfigColumns"),V5=Symbol.for("drizzle:OriginalName"),O5=Symbol.for("drizzle:BaseName"),M8=Symbol.for("drizzle:IsAlias"),q7=Symbol.for("drizzle:ExtraConfigBuilder"),vF=Symbol.for("drizzle:IsDrizzleTable");class P{static[E]="Table";static Symbol={Name:p1,Schema:y4,OriginalName:V5,Columns:S6,ExtraConfigColumns:C7,BaseName:O5,IsAlias:M8,ExtraConfigBuilder:q7};[p1];[V5];[y4];[S6];[C7];[O5];[M8]=!1;[vF]=!0;[q7]=void 0;constructor(Y,Z,X){this[p1]=this[V5]=Y,this[y4]=Z,this[O5]=X}}function d0(Y){return Y[p1]}function g4(Y){return`${Y[y4]??"public"}.${Y[p1]}`}function D5(Y){return Y!==null&&Y!==void 0&&typeof Y.getSQL==="function"}function xF(Y){let Z={sql:"",params:[]};for(let X of Y)if(Z.sql+=X.sql,Z.params.push(...X.params),X.typings?.length){if(!Z.typings)Z.typings=[];Z.typings.push(...X.typings)}return Z}class m0{static[E]="StringChunk";value;constructor(Y){this.value=Array.isArray(Y)?Y:[Y]}getSQL(){return new f([this])}}class f{constructor(Y){this.queryChunks=Y;for(let Z of Y)if(M(Z,P)){let X=Z[P.Symbol.Schema];this.usedTables.push(X===void 0?Z[P.Symbol.Name]:X+"."+Z[P.Symbol.Name])}}static[E]="SQL";decoder=P7;shouldInlineParams=!1;usedTables=[];append(Y){return this.queryChunks.push(...Y.queryChunks),this}toQuery(Y){return E0.startActiveSpan("drizzle.buildSQL",(Z)=>{let X=this.buildQueryFromSourceParams(this.queryChunks,Y);return Z?.setAttributes({"drizzle.query.text":X.sql,"drizzle.query.params":JSON.stringify(X.params)}),X})}buildQueryFromSourceParams(Y,Z){let X=Object.assign({},Z,{inlineParams:Z.inlineParams||this.shouldInlineParams,paramStartIndex:Z.paramStartIndex||{value:0}}),{casing:_,escapeName:G,escapeParam:$,prepareTyping:W,inlineParams:H,paramStartIndex:Q}=X;return xF(Y.map((J)=>{if(M(J,m0))return{sql:J.value.join(""),params:[]};if(M(J,v6))return{sql:G(J.value),params:[]};if(J===void 0)return{sql:"",params:[]};if(Array.isArray(J)){let z=[new m0("(")];for(let[F,O]of J.entries())if(z.push(O),F<J.length-1)z.push(new m0(", "));return z.push(new m0(")")),this.buildQueryFromSourceParams(z,X)}if(M(J,f))return this.buildQueryFromSourceParams(J.queryChunks,{...X,inlineParams:H||J.shouldInlineParams});if(M(J,P)){let z=J[P.Symbol.Schema],F=J[P.Symbol.Name];return{sql:z===void 0||J[M8]?G(F):G(z)+"."+G(F),params:[]}}if(M(J,F0)){let z=_.getColumnCasing(J);if(Z.invokeSource==="indexes")return{sql:G(z),params:[]};let F=J.table[P.Symbol.Schema];return{sql:J.table[M8]||F===void 0?G(J.table[P.Symbol.Name])+"."+G(z):G(F)+"."+G(J.table[P.Symbol.Name])+"."+G(z),params:[]}}if(M(J,V1)){let z=J[M0].schema,F=J[M0].name;return{sql:z===void 0||J[M0].isAlias?G(F):G(z)+"."+G(F),params:[]}}if(M(J,A1)){if(M(J.value,w4))return{sql:$(Q.value++,J),params:[J],typings:["none"]};let z=J.value===null?null:J.encoder.mapToDriverValue(J.value);if(M(z,f))return this.buildQueryFromSourceParams([z],X);if(H)return{sql:this.mapInlineParam(z,X),params:[]};let F=["none"];if(W)F=[W(J.encoder)];return{sql:$(Q.value++,z),params:[z],typings:F}}if(M(J,w4))return{sql:$(Q.value++,J),params:[J],typings:["none"]};if(M(J,f.Aliased)&&J.fieldAlias!==void 0)return{sql:G(J.fieldAlias),params:[]};if(M(J,S0)){if(J._.isWith)return{sql:G(J._.alias),params:[]};return this.buildQueryFromSourceParams([new m0("("),J._.sql,new m0(") "),new v6(J._.alias)],X)}if(I7(J)){if(J.schema)return{sql:G(J.schema)+"."+G(J.enumName),params:[]};return{sql:G(J.enumName),params:[]}}if(D5(J)){if(J.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([J.getSQL()],X);return this.buildQueryFromSourceParams([new m0("("),J.getSQL(),new m0(")")],X)}if(H)return{sql:this.mapInlineParam(J,X),params:[]};return{sql:$(Q.value++,J),params:[J],typings:["none"]}}))}mapInlineParam(Y,{escapeString:Z}){if(Y===null)return"null";if(typeof Y==="number"||typeof Y==="boolean")return Y.toString();if(typeof Y==="string")return Z(Y);if(typeof Y==="object"){let X=Y.toString();if(X==="[object Object]")return Z(JSON.stringify(Y));return Z(X)}throw new Error("Unexpected param value: "+Y)}getSQL(){return this}as(Y){if(Y===void 0)return this;return new f.Aliased(this,Y)}mapWith(Y){return this.decoder=typeof Y==="function"?{mapFromDriverValue:Y}:Y,this}inlineParams(){return this.shouldInlineParams=!0,this}if(Y){return Y?this:void 0}}class v6{constructor(Y){this.value=Y}static[E]="Name";brand;getSQL(){return new f([this])}}function j7(Y){return typeof Y==="object"&&Y!==null&&"mapToDriverValue"in Y&&typeof Y.mapToDriverValue==="function"}var P7={mapFromDriverValue:(Y)=>Y},S7={mapToDriverValue:(Y)=>Y},gT={...P7,...S7};class A1{constructor(Y,Z=S7){this.value=Y,this.encoder=Z}static[E]="Param";brand;getSQL(){return new f([this])}}function V(Y,...Z){let X=[];if(Z.length>0||Y.length>0&&Y[0]!=="")X.push(new m0(Y[0]));for(let[_,G]of Z.entries())X.push(G,new m0(Y[_+1]));return new f(X)}((Y)=>{function Z(){return new f([])}Y.empty=Z;function X(Q){return new f(Q)}Y.fromList=X;function _(Q){return new f([new m0(Q)])}Y.raw=_;function G(Q,J){let z=[];for(let[F,O]of Q.entries()){if(F>0&&J!==void 0)z.push(J);z.push(O)}return new f(z)}Y.join=G;function $(Q){return new v6(Q)}Y.identifier=$;function W(Q){return new w4(Q)}Y.placeholder=W;function H(Q,J){return new A1(Q,J)}Y.param=H})(V||(V={}));((Y)=>{class Z{constructor(X,_){this.sql=X,this.fieldAlias=_}static[E]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new Z(this.sql,this.fieldAlias)}}Y.Aliased=Z})(f||(f={}));class w4{constructor(Y){this.name=Y}static[E]="Placeholder";getSQL(){return new f([this])}}function L5(Y,Z){return Y.map((X)=>{if(M(X,w4)){if(!(X.name in Z))throw new Error(`No value for placeholder "${X.name}" was provided`);return Z[X.name]}if(M(X,A1)&&M(X.value,w4)){if(!(X.value.name in Z))throw new Error(`No value for placeholder "${X.value.name}" was provided`);return X.encoder.mapToDriverValue(Z[X.value.name])}return X})}var fF=Symbol.for("drizzle:IsDrizzleView");class V1{static[E]="View";[M0];[fF]=!0;constructor({name:Y,schema:Z,selectedFields:X,query:_}){this[M0]={name:Y,originalName:Y,schema:Z,selectedFields:X,query:_,isExisting:!_,isAlias:!1}}getSQL(){return new f([this])}}F0.prototype.getSQL=function(){return new f([this])};P.prototype.getSQL=function(){return new f([this])};S0.prototype.getSQL=function(){return new f([this])};class M2{constructor(Y){this.table=Y}static[E]="ColumnAliasProxyHandler";get(Y,Z){if(Z==="table")return this.table;return Y[Z]}}class A8{constructor(Y,Z){this.alias=Y,this.replaceOriginalName=Z}static[E]="TableAliasProxyHandler";get(Y,Z){if(Z===P.Symbol.IsAlias)return!0;if(Z===P.Symbol.Name)return this.alias;if(this.replaceOriginalName&&Z===P.Symbol.OriginalName)return this.alias;if(Z===M0)return{...Y[M0],name:this.alias,isAlias:!0};if(Z===P.Symbol.Columns){let _=Y[P.Symbol.Columns];if(!_)return _;let G={};return Object.keys(_).map(($)=>{G[$]=new Proxy(_[$],new M2(new Proxy(Y,this)))}),G}let X=Y[Z];if(M(X,F0))return new Proxy(X,new M2(new Proxy(Y,this)));return X}}function x6(Y,Z){return new Proxy(Y,new A8(Z,!1))}function i1(Y,Z){return new Proxy(Y,new M2(new Proxy(Y.table,new A8(Z,!1))))}function M5(Y,Z){return new f.Aliased(R8(Y.sql,Z),Y.fieldAlias)}function R8(Y,Z){return V.join(Y.queryChunks.map((X)=>{if(M(X,F0))return i1(X,Z);if(M(X,f))return R8(X,Z);if(M(X,f.Aliased))return M5(X,Z);return X}))}class f6 extends Error{static[E]="DrizzleError";constructor({message:Y,cause:Z}){super(Y);this.name="DrizzleError",this.cause=Z}}class H4 extends Error{constructor(Y,Z,X){super(`Failed query: ${Y}
66
- params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrace(this,H4),X)this.cause=X}}class A5 extends f6{static[E]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class v7{static[E]="ConsoleLogWriter";write(Y){console.log(Y)}}class R5{static[E]="DefaultLogger";writer;constructor(Y){this.writer=Y?.writer??new v7}logQuery(Y,Z){let X=Z.map((G)=>{try{return JSON.stringify(G)}catch{return String(G)}}),_=X.length?` -- params: [${X.join(", ")}]`:"";this.writer.write(`Query: ${Y}${_}`)}}class w5{static[E]="NoopLogger";logQuery(){}}class _1{static[E]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(Y){return this.then(void 0,Y)}finally(Y){return this.then((Z)=>{return Y?.(),Z},(Z)=>{throw Y?.(),Z})}then(Y,Z){return this.execute().then(Y,Z)}}function x7(Y,Z,X){let _={},G=Y.reduce(($,{path:W,field:H},Q)=>{let J;if(M(H,F0))J=H;else if(M(H,f))J=H.decoder;else J=H.sql.decoder;let z=$;for(let[F,O]of W.entries())if(F<W.length-1){if(!(O in z))z[O]={};z=z[O]}else{let L=Z[Q],w=z[O]=L===null?null:J.mapFromDriverValue(L);if(X&&M(H,F0)&&W.length===2){let R=W[0];if(!(R in _))_[R]=w===null?d0(H.table):!1;else if(typeof _[R]==="string"&&_[R]!==d0(H.table))_[R]=!1}}return $},{});if(X&&Object.keys(_).length>0){for(let[$,W]of Object.entries(_))if(typeof W==="string"&&!X[W])G[$]=null}return G}function T1(Y,Z){return Object.entries(Y).reduce((X,[_,G])=>{if(typeof _!=="string")return X;let $=Z?[...Z,_]:[_];if(M(G,F0)||M(G,f)||M(G,f.Aliased))X.push({path:$,field:G});else if(M(G,P))X.push(...T1(G[P.Symbol.Columns],$));else X.push(...T1(G,$));return X},[])}function w8(Y,Z){let X=Object.keys(Y),_=Object.keys(Z);if(X.length!==_.length)return!1;for(let[G,$]of X.entries())if($!==_[G])return!1;return!0}function h6(Y,Z){let X=Object.entries(Z).filter(([,_])=>_!==void 0).map(([_,G])=>{if(M(G,f)||M(G,F0))return[_,G];else return[_,new A1(G,Y[P.Symbol.Columns][_])]});if(X.length===0)throw new Error("No values to set");return Object.fromEntries(X)}function f7(Y,Z){for(let X of Z)for(let _ of Object.getOwnPropertyNames(X.prototype)){if(_==="constructor")continue;Object.defineProperty(Y.prototype,_,Object.getOwnPropertyDescriptor(X.prototype,_)||Object.create(null))}}function h7(Y){return Y[P.Symbol.Columns]}function J4(Y){return M(Y,S0)?Y._.alias:M(Y,V1)?Y[M0].name:M(Y,f)?void 0:Y[P.Symbol.IsAlias]?Y[P.Symbol.Name]:Y[P.Symbol.BaseName]}function X0(Y,Z){return{name:typeof Y==="string"&&Y.length>0?Y:"",config:typeof Y==="object"?Y:Z}}function k7(Y){if(typeof Y!=="object"||Y===null)return!1;if(Y.constructor.name!=="Object")return!1;if("logger"in Y){let Z=typeof Y.logger;if(Z!=="boolean"&&(Z!=="object"||typeof Y.logger.logQuery!=="function")&&Z!=="undefined")return!1;return!0}if("schema"in Y){let Z=typeof Y.schema;if(Z!=="object"&&Z!=="undefined")return!1;return!0}if("casing"in Y){let Z=typeof Y.casing;if(Z!=="string"&&Z!=="undefined")return!1;return!0}if("mode"in Y){if(Y.mode!=="default"||Y.mode!=="planetscale"||Y.mode!==void 0)return!1;return!0}if("connection"in Y){let Z=typeof Y.connection;if(Z!=="string"&&Z!=="object"&&Z!=="undefined")return!1;return!0}if("client"in Y){let Z=typeof Y.client;if(Z!=="object"&&Z!=="function"&&Z!=="undefined")return!1;return!0}if(Object.keys(Y).length===0)return!0;return!1}class N4 extends k{static[E]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(Y){if(Y){let{name:Z,...X}=Y;this.config.generatedIdentity={type:"always",sequenceName:Z,sequenceOptions:X}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(Y){if(Y){let{name:Z,...X}=Y;this.config.generatedIdentity={type:"byDefault",sequenceName:Z,sequenceOptions:X}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class b7 extends N4{static[E]="PgBigInt53Builder";constructor(Y){super(Y,"number","PgBigInt53")}build(Y){return new y7(Y,this.config)}}class y7 extends j{static[E]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class g7 extends N4{static[E]="PgBigInt64Builder";constructor(Y){super(Y,"bigint","PgBigInt64")}build(Y){return new p7(Y,this.config)}}class p7 extends j{static[E]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(Y){return BigInt(Y)}}function m7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new b7(X);return new g7(X)}class u7 extends k{static[E]="PgBigSerial53Builder";constructor(Y){super(Y,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new d7(Y,this.config)}}class d7 extends j{static[E]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class c7 extends k{static[E]="PgBigSerial64Builder";constructor(Y){super(Y,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(Y){return new l7(Y,this.config)}}class l7 extends j{static[E]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(Y){return BigInt(Y)}}function o7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new u7(X);return new c7(X)}class i7 extends k{static[E]="PgBooleanBuilder";constructor(Y){super(Y,"boolean","PgBoolean")}build(Y){return new n7(Y,this.config)}}class n7 extends j{static[E]="PgBoolean";getSQLType(){return"boolean"}}function N8(Y){return new i7(Y??"")}class r7 extends k{static[E]="PgCharBuilder";constructor(Y,Z){super(Y,"string","PgChar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new s7(Y,this.config)}}class s7 extends j{static[E]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function t7(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new r7(X,_)}class a7 extends k{static[E]="PgCidrBuilder";constructor(Y){super(Y,"string","PgCidr")}build(Y){return new e7(Y,this.config)}}class e7 extends j{static[E]="PgCidr";getSQLType(){return"cidr"}}function Y$(Y){return new a7(Y??"")}class Z$ extends k{static[E]="PgCustomColumnBuilder";constructor(Y,Z,X){super(Y,"custom","PgCustomColumn");this.config.fieldConfig=Z,this.config.customTypeParams=X}build(Y){return new X$(Y,this.config)}}class X$ extends j{static[E]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(Y,Z){super(Y,Z);this.sqlName=Z.customTypeParams.dataType(Z.fieldConfig),this.mapTo=Z.customTypeParams.toDriver,this.mapFrom=Z.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(Y){return typeof this.mapFrom==="function"?this.mapFrom(Y):Y}mapToDriverValue(Y){return typeof this.mapTo==="function"?this.mapTo(Y):Y}}function _$(Y){return(Z,X)=>{let{name:_,config:G}=X0(Z,X);return new Z$(_,G,Y)}}class Q4 extends k{static[E]="PgDateColumnBaseBuilder";defaultNow(){return this.default(V`now()`)}}class G$ extends Q4{static[E]="PgDateBuilder";constructor(Y){super(Y,"date","PgDate")}build(Y){return new k6(Y,this.config)}}class k6 extends j{static[E]="PgDate";getSQLType(){return"date"}mapFromDriverValue(Y){return new Date(Y)}mapToDriverValue(Y){return Y.toISOString()}}class $$ extends Q4{static[E]="PgDateStringBuilder";constructor(Y){super(Y,"string","PgDateString")}build(Y){return new b6(Y,this.config)}}class b6 extends j{static[E]="PgDateString";getSQLType(){return"date"}}function W$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="date")return new G$(X);return new $$(X)}class H$ extends k{static[E]="PgDoublePrecisionBuilder";constructor(Y){super(Y,"number","PgDoublePrecision")}build(Y){return new J$(Y,this.config)}}class J$ extends j{static[E]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function Q$(Y){return new H$(Y??"")}class z$ extends k{static[E]="PgInetBuilder";constructor(Y){super(Y,"string","PgInet")}build(Y){return new U$(Y,this.config)}}class U$ extends j{static[E]="PgInet";getSQLType(){return"inet"}}function F$(Y){return new z$(Y??"")}class E$ extends N4{static[E]="PgIntegerBuilder";constructor(Y){super(Y,"number","PgInteger")}build(Y){return new V$(Y,this.config)}}class V$ extends j{static[E]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseInt(Y);return Y}}function I8(Y){return new E$(Y??"")}class O$ extends k{static[E]="PgIntervalBuilder";constructor(Y,Z){super(Y,"string","PgInterval");this.config.intervalConfig=Z}build(Y){return new D$(Y,this.config)}}class D$ extends j{static[E]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let Y=this.fields?` ${this.fields}`:"",Z=this.precision?`(${this.precision})`:"";return`interval${Y}${Z}`}}function L$(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new O$(X,_)}class M$ extends k{static[E]="PgJsonBuilder";constructor(Y){super(Y,"json","PgJson")}build(Y){return new y6(Y,this.config)}}class y6 extends j{static[E]="PgJson";constructor(Y,Z){super(Y,Z)}getSQLType(){return"json"}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}}function A$(Y){return new M$(Y??"")}class R$ extends k{static[E]="PgJsonbBuilder";constructor(Y){super(Y,"json","PgJsonb")}build(Y){return new g6(Y,this.config)}}class g6 extends j{static[E]="PgJsonb";constructor(Y,Z){super(Y,Z)}getSQLType(){return"jsonb"}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}}function w$(Y){return new R$(Y??"")}class N$ extends k{static[E]="PgLineBuilder";constructor(Y){super(Y,"array","PgLine")}build(Y){return new I$(Y,this.config)}}class I$ extends j{static[E]="PgLine";getSQLType(){return"line"}mapFromDriverValue(Y){let[Z,X,_]=Y.slice(1,-1).split(",");return[Number.parseFloat(Z),Number.parseFloat(X),Number.parseFloat(_)]}mapToDriverValue(Y){return`{${Y[0]},${Y[1]},${Y[2]}}`}}class K$ extends k{static[E]="PgLineABCBuilder";constructor(Y){super(Y,"json","PgLineABC")}build(Y){return new B$(Y,this.config)}}class B$ extends j{static[E]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(Y){let[Z,X,_]=Y.slice(1,-1).split(",");return{a:Number.parseFloat(Z),b:Number.parseFloat(X),c:Number.parseFloat(_)}}mapToDriverValue(Y){return`{${Y.a},${Y.b},${Y.c}}`}}function T$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new N$(X);return new K$(X)}class C$ extends k{static[E]="PgMacaddrBuilder";constructor(Y){super(Y,"string","PgMacaddr")}build(Y){return new q$(Y,this.config)}}class q$ extends j{static[E]="PgMacaddr";getSQLType(){return"macaddr"}}function j$(Y){return new C$(Y??"")}class P$ extends k{static[E]="PgMacaddr8Builder";constructor(Y){super(Y,"string","PgMacaddr8")}build(Y){return new S$(Y,this.config)}}class S$ extends j{static[E]="PgMacaddr8";getSQLType(){return"macaddr8"}}function v$(Y){return new P$(Y??"")}class x$ extends k{static[E]="PgNumericBuilder";constructor(Y,Z,X){super(Y,"string","PgNumeric");this.config.precision=Z,this.config.scale=X}build(Y){return new p6(Y,this.config)}}class p6 extends j{static[E]="PgNumeric";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue(Y){if(typeof Y==="string")return Y;return String(Y)}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 f$ extends k{static[E]="PgNumericNumberBuilder";constructor(Y,Z,X){super(Y,"number","PgNumericNumber");this.config.precision=Z,this.config.scale=X}build(Y){return new h$(Y,this.config)}}class h$ extends j{static[E]="PgNumericNumber";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}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 k$ extends k{static[E]="PgNumericBigIntBuilder";constructor(Y,Z,X){super(Y,"bigint","PgNumericBigInt");this.config.precision=Z,this.config.scale=X}build(Y){return new b$(Y,this.config)}}class b$ extends j{static[E]="PgNumericBigInt";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.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 y$(Y,Z){let{name:X,config:_}=X0(Y,Z),G=_?.mode;return G==="number"?new f$(X,_?.precision,_?.scale):G==="bigint"?new k$(X,_?.precision,_?.scale):new x$(X,_?.precision,_?.scale)}class g$ extends k{static[E]="PgPointTupleBuilder";constructor(Y){super(Y,"array","PgPointTuple")}build(Y){return new p$(Y,this.config)}}class p$ extends j{static[E]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(Y){if(typeof Y==="string"){let[Z,X]=Y.slice(1,-1).split(",");return[Number.parseFloat(Z),Number.parseFloat(X)]}return[Y.x,Y.y]}mapToDriverValue(Y){return`(${Y[0]},${Y[1]})`}}class m$ extends k{static[E]="PgPointObjectBuilder";constructor(Y){super(Y,"json","PgPointObject")}build(Y){return new u$(Y,this.config)}}class u$ extends j{static[E]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(Y){if(typeof Y==="string"){let[Z,X]=Y.slice(1,-1).split(",");return{x:Number.parseFloat(Z),y:Number.parseFloat(X)}}return Y}mapToDriverValue(Y){return`(${Y.x},${Y.y})`}}function d$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new g$(X);return new m$(X)}function hF(Y){let Z=[];for(let X=0;X<Y.length;X+=2)Z.push(Number.parseInt(Y.slice(X,X+2),16));return new Uint8Array(Z)}function c$(Y,Z){let X=new ArrayBuffer(8),_=new DataView(X);for(let G=0;G<8;G++)_.setUint8(G,Y[Z+G]);return _.getFloat64(0,!0)}function N5(Y){let Z=hF(Y),X=0,_=Z[X];X+=1;let G=new DataView(Z.buffer),$=G.getUint32(X,_===1);X+=4;let W;if($&536870912)W=G.getUint32(X,_===1),X+=4;if(($&65535)===1){let H=c$(Z,X);X+=8;let Q=c$(Z,X);return X+=8,[H,Q]}throw new Error("Unsupported geometry type")}class l$ extends k{static[E]="PgGeometryBuilder";constructor(Y){super(Y,"array","PgGeometry")}build(Y){return new o$(Y,this.config)}}class o$ extends j{static[E]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){return N5(Y)}mapToDriverValue(Y){return`point(${Y[0]} ${Y[1]})`}}class i$ extends k{static[E]="PgGeometryObjectBuilder";constructor(Y){super(Y,"json","PgGeometryObject")}build(Y){return new n$(Y,this.config)}}class n$ extends j{static[E]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){let Z=N5(Y);return{x:Z[0],y:Z[1]}}mapToDriverValue(Y){return`point(${Y.x} ${Y.y})`}}function r$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new l$(X);return new i$(X)}class s$ extends k{static[E]="PgRealBuilder";constructor(Y,Z){super(Y,"number","PgReal");this.config.length=Z}build(Y){return new t$(Y,this.config)}}class t$ extends j{static[E]="PgReal";constructor(Y,Z){super(Y,Z)}getSQLType(){return"real"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function a$(Y){return new s$(Y??"")}class e$ extends k{static[E]="PgSerialBuilder";constructor(Y){super(Y,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new Y3(Y,this.config)}}class Y3 extends j{static[E]="PgSerial";getSQLType(){return"serial"}}function Z3(Y){return new e$(Y??"")}class X3 extends N4{static[E]="PgSmallIntBuilder";constructor(Y){super(Y,"number","PgSmallInt")}build(Y){return new _3(Y,this.config)}}class _3 extends j{static[E]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number(Y);return Y}}function G3(Y){return new X3(Y??"")}class $3 extends k{static[E]="PgSmallSerialBuilder";constructor(Y){super(Y,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new W3(Y,this.config)}}class W3 extends j{static[E]="PgSmallSerial";getSQLType(){return"smallserial"}}function H3(Y){return new $3(Y??"")}class J3 extends k{static[E]="PgTextBuilder";constructor(Y,Z){super(Y,"string","PgText");this.config.enumValues=Z.enum}build(Y){return new Q3(Y,this.config)}}class Q3 extends j{static[E]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function z3(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new J3(X,_)}class U3 extends Q4{constructor(Y,Z,X){super(Y,"string","PgTime");this.withTimezone=Z,this.precision=X,this.config.withTimezone=Z,this.config.precision=X}static[E]="PgTimeBuilder";build(Y){return new m6(Y,this.config)}}class m6 extends j{static[E]="PgTime";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function F3(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new U3(X,_.withTimezone??!1,_.precision)}class E3 extends Q4{static[E]="PgTimestampBuilder";constructor(Y,Z,X){super(Y,"date","PgTimestamp");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new u6(Y,this.config)}}class u6 extends j{static[E]="PgTimestamp";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(Y)=>{return new Date(this.withTimezone?Y:Y+"+0000")};mapToDriverValue=(Y)=>{return Y.toISOString()}}class V3 extends Q4{static[E]="PgTimestampStringBuilder";constructor(Y,Z,X){super(Y,"string","PgTimestampString");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new d6(Y,this.config)}}class d6 extends j{static[E]="PgTimestampString";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function O3(Y,Z={}){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="string")return new V3(X,_.withTimezone??!1,_.precision);return new E3(X,_?.withTimezone??!1,_?.precision)}class D3 extends k{static[E]="PgUUIDBuilder";constructor(Y){super(Y,"string","PgUUID")}defaultRandom(){return this.default(V`gen_random_uuid()`)}build(Y){return new c6(Y,this.config)}}class c6 extends j{static[E]="PgUUID";getSQLType(){return"uuid"}}function C1(Y){return new D3(Y??"")}class L3 extends k{static[E]="PgVarcharBuilder";constructor(Y,Z){super(Y,"string","PgVarchar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new M3(Y,this.config)}}class M3 extends j{static[E]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function t0(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new L3(X,_)}class A3 extends k{static[E]="PgBinaryVectorBuilder";constructor(Y,Z){super(Y,"string","PgBinaryVector");this.config.dimensions=Z.dimensions}build(Y){return new R3(Y,this.config)}}class R3 extends j{static[E]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function w3(Y,Z){let{name:X,config:_}=X0(Y,Z);return new A3(X,_)}class N3 extends k{static[E]="PgHalfVectorBuilder";constructor(Y,Z){super(Y,"array","PgHalfVector");this.config.dimensions=Z.dimensions}build(Y){return new I3(Y,this.config)}}class I3 extends j{static[E]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){return Y.slice(1,-1).split(",").map((Z)=>Number.parseFloat(Z))}}function K3(Y,Z){let{name:X,config:_}=X0(Y,Z);return new N3(X,_)}class B3 extends k{static[E]="PgSparseVectorBuilder";constructor(Y,Z){super(Y,"string","PgSparseVector");this.config.dimensions=Z.dimensions}build(Y){return new T3(Y,this.config)}}class T3 extends j{static[E]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function C3(Y,Z){let{name:X,config:_}=X0(Y,Z);return new B3(X,_)}class q3 extends k{static[E]="PgVectorBuilder";constructor(Y,Z){super(Y,"array","PgVector");this.config.dimensions=Z.dimensions}build(Y){return new j3(Y,this.config)}}class j3 extends j{static[E]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){return Y.slice(1,-1).split(",").map((Z)=>Number.parseFloat(Z))}}function P3(Y,Z){let{name:X,config:_}=X0(Y,Z);return new q3(X,_)}function S3(){return{bigint:m7,bigserial:o7,boolean:N8,char:t7,cidr:Y$,customType:_$,date:W$,doublePrecision:Q$,inet:F$,integer:I8,interval:L$,json:A$,jsonb:w$,line:T$,macaddr:j$,macaddr8:v$,numeric:y$,point:d$,geometry:r$,real:a$,serial:Z3,smallint:G3,smallserial:H3,text:z3,time:F3,timestamp:O3,uuid:C1,varchar:t0,bit:w3,halfvec:K3,sparsevec:C3,vector:P3}}var I5=Symbol.for("drizzle:PgInlineForeignKeys"),v3=Symbol.for("drizzle:EnableRLS");class u0 extends P{static[E]="PgTable";static Symbol=Object.assign({},P.Symbol,{InlineForeignKeys:I5,EnableRLS:v3});[I5]=[];[v3]=!1;[P.Symbol.ExtraConfigBuilder]=void 0;[P.Symbol.ExtraConfigColumns]={}}function kF(Y,Z,X,_,G=Y){let $=new u0(Y,_,G),W=typeof Z==="function"?Z(S3()):Z,H=Object.fromEntries(Object.entries(W).map(([z,F])=>{let O=F;O.setName(z);let L=O.build($);return $[I5].push(...O.buildForeignKeys(L,$)),[z,L]})),Q=Object.fromEntries(Object.entries(W).map(([z,F])=>{let O=F;O.setName(z);let L=O.buildExtraConfigColumn($);return[z,L]})),J=Object.assign($,H);if(J[P.Symbol.Columns]=H,J[P.Symbol.ExtraConfigColumns]=Q,X)J[u0.Symbol.ExtraConfigBuilder]=X;return Object.assign(J,{enableRLS:()=>{return J[u0.Symbol.EnableRLS]=!0,J}})}var I4=(Y,Z,X)=>{return kF(Y,Z,X,void 0)};function x3(...Y){if(Y[0].columns)return new K8(Y[0].columns,Y[0].name);return new K8(Y)}class K8{static[E]="PgPrimaryKeyBuilder";columns;name;constructor(Y,Z){this.columns=Y,this.name=Z}build(Y){return new f3(Y,this.columns,this.name)}}class f3{constructor(Y,Z,X){this.table=Y,this.columns=Z,this.name=X}static[E]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[u0.Symbol.Name]}_${this.columns.map((Y)=>Y.name).join("_")}_pk`}}function O1(Y,Z){if(j7(Z)&&!D5(Y)&&!M(Y,A1)&&!M(Y,w4)&&!M(Y,F0)&&!M(Y,P)&&!M(Y,V1))return new A1(Y,Z);return Y}var l6=(Y,Z)=>{return V`${Y} = ${O1(Z,Y)}`},h3=(Y,Z)=>{return V`${Y} <> ${O1(Z,Y)}`};function B8(...Y){let Z=Y.filter((X)=>X!==void 0);if(Z.length===0)return;if(Z.length===1)return new f(Z);return new f([new m0("("),V.join(Z,new m0(" and ")),new m0(")")])}function k3(...Y){let Z=Y.filter((X)=>X!==void 0);if(Z.length===0)return;if(Z.length===1)return new f(Z);return new f([new m0("("),V.join(Z,new m0(" or ")),new m0(")")])}function b3(Y){return V`not ${Y}`}var y3=(Y,Z)=>{return V`${Y} > ${O1(Z,Y)}`},g3=(Y,Z)=>{return V`${Y} >= ${O1(Z,Y)}`},p3=(Y,Z)=>{return V`${Y} < ${O1(Z,Y)}`},m3=(Y,Z)=>{return V`${Y} <= ${O1(Z,Y)}`};function u3(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return V`false`;return V`${Y} in ${Z.map((X)=>O1(X,Y))}`}return V`${Y} in ${O1(Z,Y)}`}function d3(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return V`true`;return V`${Y} not in ${Z.map((X)=>O1(X,Y))}`}return V`${Y} not in ${O1(Z,Y)}`}function c3(Y){return V`${Y} is null`}function l3(Y){return V`${Y} is not null`}function o3(Y){return V`exists ${Y}`}function i3(Y){return V`not exists ${Y}`}function n3(Y,Z,X){return V`${Y} between ${O1(Z,Y)} and ${O1(X,Y)}`}function r3(Y,Z,X){return V`${Y} not between ${O1(Z,Y)} and ${O1(X,Y)}`}function s3(Y,Z){return V`${Y} like ${Z}`}function t3(Y,Z){return V`${Y} not like ${Z}`}function a3(Y,Z){return V`${Y} ilike ${Z}`}function e3(Y,Z){return V`${Y} not ilike ${Z}`}function YW(Y){return V`${Y} asc`}function ZW(Y){return V`${Y} desc`}class K5{constructor(Y,Z,X){this.sourceTable=Y,this.referencedTable=Z,this.relationName=X,this.referencedTableName=Z[P.Symbol.Name]}static[E]="Relation";referencedTableName;fieldName}class XW{constructor(Y,Z){this.table=Y,this.config=Z}static[E]="Relations"}class K4 extends K5{constructor(Y,Z,X,_){super(Y,Z,X?.relationName);this.config=X,this.isNullable=_}static[E]="One";withFieldName(Y){let Z=new K4(this.sourceTable,this.referencedTable,this.config,this.isNullable);return Z.fieldName=Y,Z}}class T8 extends K5{constructor(Y,Z,X){super(Y,Z,X?.relationName);this.config=X}static[E]="Many";withFieldName(Y){let Z=new T8(this.sourceTable,this.referencedTable,this.config);return Z.fieldName=Y,Z}}function _W(){return{and:B8,between:n3,eq:l6,exists:o3,gt:y3,gte:g3,ilike:a3,inArray:u3,isNull:c3,isNotNull:l3,like:s3,lt:p3,lte:m3,ne:h3,not:b3,notBetween:r3,notExists:i3,notLike:t3,notIlike:e3,notInArray:d3,or:k3,sql:V}}function GW(){return{sql:V,asc:YW,desc:ZW}}function $W(Y,Z){if(Object.keys(Y).length===1&&"default"in Y&&!M(Y.default,P))Y=Y.default;let X={},_={},G={};for(let[$,W]of Object.entries(Y))if(M(W,P)){let H=g4(W),Q=_[H];X[H]=$,G[$]={tsName:$,dbName:W[P.Symbol.Name],schema:W[P.Symbol.Schema],columns:W[P.Symbol.Columns],relations:Q?.relations??{},primaryKey:Q?.primaryKey??[]};for(let z of Object.values(W[P.Symbol.Columns]))if(z.primary)G[$].primaryKey.push(z);let J=W[P.Symbol.ExtraConfigBuilder]?.(W[P.Symbol.ExtraConfigColumns]);if(J){for(let z of Object.values(J))if(M(z,K8))G[$].primaryKey.push(...z.columns)}}else if(M(W,XW)){let H=g4(W.table),Q=X[H],J=W.config(Z(W.table)),z;for(let[F,O]of Object.entries(J))if(Q){let L=G[Q];if(L.relations[F]=O,z)L.primaryKey.push(...z)}else{if(!(H in _))_[H]={relations:{},primaryKey:z};_[H].relations[F]=O}}return{tables:G,tableNamesMap:X}}function bF(Y){return function Z(X,_){return new K4(Y,X,_,_?.fields.reduce((G,$)=>G&&$.notNull,!0)??!1)}}function yF(Y){return function Z(X,_){return new T8(Y,X,_)}}function WW(Y,Z,X){if(M(X,K4)&&X.config)return{fields:X.config.fields,references:X.config.references};let _=Z[g4(X.referencedTable)];if(!_)throw new Error(`Table "${X.referencedTable[P.Symbol.Name]}" not found in schema`);let G=Y[_];if(!G)throw new Error(`Table "${_}" not found in schema`);let $=X.sourceTable,W=Z[g4($)];if(!W)throw new Error(`Table "${$[P.Symbol.Name]}" not found in schema`);let H=[];for(let Q of Object.values(G.relations))if(X.relationName&&X!==Q&&Q.relationName===X.relationName||!X.relationName&&Q.referencedTable===X.sourceTable)H.push(Q);if(H.length>1)throw X.relationName?new Error(`There are multiple relations with name "${X.relationName}" in table "${_}"`):new Error(`There are multiple relations between "${_}" and "${X.sourceTable[P.Symbol.Name]}". Please specify relation name`);if(H[0]&&M(H[0],K4)&&H[0].config)return{fields:H[0].config.references,references:H[0].config.fields};throw new Error(`There is not enough information to infer relation "${W}.${X.fieldName}"`)}function HW(Y){return{one:bF(Y),many:yF(Y)}}function o6(Y,Z,X,_,G=($)=>$){let $={};for(let[W,H]of _.entries())if(H.isJson){let Q=Z.relations[H.tsKey],J=X[W],z=typeof J==="string"?JSON.parse(J):J;$[H.tsKey]=M(Q,K4)?z&&o6(Y,Y[H.relationTableTsKey],z,H.selection,G):z.map((F)=>o6(Y,Y[H.relationTableTsKey],F,H.selection,G))}else{let Q=G(X[W]),J=H.field,z;if(M(J,F0))z=J;else if(M(J,f))z=J.decoder;else z=J.sql.decoder;$[H.tsKey]=Q===null?null:z.mapFromDriverValue(Q)}return $}import JE from"os";import QE from"fs";var i6=new Map,B5=new Map,T5=Symbol("OriginError"),A2={};class q1 extends Promise{constructor(Y,Z,X,_,G={}){let $,W;super((H,Q)=>{$=H,W=Q});this.tagged=Array.isArray(Y.raw),this.strings=Y,this.args=Z,this.handler=X,this.canceller=_,this.options=G,this.state=null,this.statement=null,this.resolve=(H)=>(this.active=!1,$(H)),this.reject=(H)=>(this.active=!1,W(H)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[T5]=this.handler.debug?new Error:this.tagged&&gF(this.strings)}get origin(){return(this.handler.debug?this[T5].stack:this.tagged&&B5.has(this.strings)?B5.get(this.strings):B5.set(this.strings,this[T5].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(Y=1,Z){if(this.options.simple=!1,typeof Y==="function")Z=Y,Y=1;if(this.cursorRows=Y,typeof Z==="function")return this.cursorFn=Z,this;let X;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};X&&X();let _=new Promise((G,$)=>{this.cursorFn=(W)=>{return G({value:W,done:!1}),new Promise((H)=>X=H)},this.resolve=()=>(this.active=!1,G({done:!0})),this.reject=(W)=>(this.active=!1,$(W))});return this.execute(),_},return(){return X&&X(A2),{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(Y){return this.forEachFn=Y,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 gF(Y){if(i6.has(Y))return i6.get(Y);let Z=Error.stackTraceLimit;return Error.stackTraceLimit=4,i6.set(Y,new Error),Error.stackTraceLimit=Z,i6.get(Y)}class R2 extends Error{constructor(Y){super(Y.message);this.name=this.constructor.name,Object.assign(this,Y)}}var f0={connection:JW,postgres:QW,generic:zW,notSupported:UW};function JW(Y,Z,X){let{host:_,port:G}=X||Z,$=Object.assign(new Error("write "+Y+" "+(Z.path||_+":"+G)),{code:Y,errno:Y,address:Z.path||_},Z.path?{}:{port:G});return Error.captureStackTrace($,JW),$}function QW(Y){let Z=new R2(Y);return Error.captureStackTrace(Z,QW),Z}function zW(Y,Z){let X=Object.assign(new Error(Y+": "+Z),{code:Y});return Error.captureStackTrace(X,zW),X}function UW(Y){let Z=Object.assign(new Error(Y+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:Y});return Error.captureStackTrace(Z,UW),Z}var pF={string:{to:25,from:null,serialize:(Y)=>""+Y},number:{to:0,from:[21,23,26,700,701],serialize:(Y)=>""+Y,parse:(Y)=>+Y},json:{to:114,from:[114,3802],serialize:(Y)=>JSON.stringify(Y),parse:(Y)=>JSON.parse(Y)},boolean:{to:16,from:16,serialize:(Y)=>Y===!0?"t":"f",parse:(Y)=>Y==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(Y)=>(Y instanceof Date?Y:new Date(Y)).toISOString(),parse:(Y)=>new Date(Y)},bytea:{to:17,from:17,serialize:(Y)=>"\\x"+Buffer.from(Y).toString("hex"),parse:(Y)=>Buffer.from(Y.slice(2),"hex")}};class s6{then(){C5()}catch(){C5()}finally(){C5()}}class P8 extends s6{constructor(Y){super();this.value=e6(Y)}}class n1 extends s6{constructor(Y,Z,X){super();this.value=Y,this.type=Z,this.array=X}}class t6 extends s6{constructor(Y,Z){super();this.first=Y,this.rest=Z}build(Y,Z,X,_){let G=mF.map(([$,W])=>({fn:W,i:Y.search($)})).sort(($,W)=>$.i-W.i).pop();return G.i===-1?v5(this.first,_):G.fn(this.first,this.rest,Z,X,_)}}function a6(Y,Z,X,_){let G=Y instanceof n1?Y.value:Y;if(G===void 0){if(Y instanceof n1?Y.value=_.transform.undefined:G=Y=_.transform.undefined,G===void 0)throw f0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+X.push(Y instanceof n1?(Z.push(Y.value),Y.array?Y.array[Y.type||r6(Y.value)]||Y.type||OW(Y.value):Y.type):(Z.push(Y),r6(Y)))}var EW=LW(pF);function P5(Y,Z,X,_,G,$){for(let W=1;W<Y.strings.length;W++)Z+=S5(Z,X,_,G,$)+Y.strings[W],X=Y.args[W];return Z}function S5(Y,Z,X,_,G){return Z instanceof t6?Z.build(Y,X,_,G):Z instanceof q1?j5(Z,X,_,G):Z instanceof P8?Z.value:Z&&Z[0]instanceof q1?Z.reduce(($,W)=>$+" "+j5(W,X,_,G),""):a6(Z,X,_,G)}function j5(Y,Z,X,_){return Y.fragment=!0,P5(Y,Y.strings[0],Y.args[0],Z,X,_)}function VW(Y,Z,X,_,G){return Y.map(($)=>"("+_.map((W)=>S5("values",$[W],Z,X,G)).join(",")+")").join(",")}function FW(Y,Z,X,_,G){let $=Array.isArray(Y[0]),W=Z.length?Z.flat():Object.keys($?Y[0]:Y);return VW($?Y:[Y],X,_,W,G)}function n6(Y,Z,X,_,G){if(typeof Y==="string"&&(Y=[Y].concat(Z)),Array.isArray(Y))return v5(Y,G);let $;return(Z.length?Z.flat():Object.keys(Y)).map((H)=>{return $=Y[H],($ instanceof q1?j5($,X,_,G):$ instanceof P8?$.value:a6($,X,_,G))+" as "+e6(G.transform.column.to?G.transform.column.to(H):H)}).join(",")}var mF=Object.entries({values:FW,in:(...Y)=>{let Z=FW(...Y);return Z==="()"?"(null)":Z},select:n6,as:n6,returning:n6,"\\(":n6,update(Y,Z,X,_,G){return(Z.length?Z.flat():Object.keys(Y)).map(($)=>e6(G.transform.column.to?G.transform.column.to($):$)+"="+S5("values",Y[$],X,_,G))},insert(Y,Z,X,_,G){let $=Z.length?Z.flat():Object.keys(Array.isArray(Y)?Y[0]:Y);return"("+v5($,G)+")values"+VW(Array.isArray(Y)?Y:[Y],X,_,$,G)}}).map(([Y,Z])=>[new RegExp("((?:^|[\\s(])"+Y+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),Z]);function C5(){throw f0.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:uF,parsers:dF}=EW;function OW(Y){if(Array.isArray(Y))return OW(Y[0]);return typeof Y==="string"?1009:0}var DW=function(Y){let Z=LW(Y||{});return{serializers:Object.assign({},uF,Z.serializers),parsers:Object.assign({},dF,Z.parsers)}};function LW(Y){return Object.keys(Y).reduce((Z,X)=>{if(Y[X].from&&[].concat(Y[X].from).forEach((_)=>Z.parsers[_]=Y[X].parse),Y[X].serialize)Z.serializers[Y[X].to]=Y[X].serialize,Y[X].from&&[].concat(Y[X].from).forEach((_)=>Z.serializers[_]=Y[X].serialize);return Z},{parsers:{},serializers:{}})}function v5(Y,{transform:{column:Z}}){return Y.map((X)=>e6(Z.to?Z.to(X):X)).join(",")}var e6=function Y(Z){return'"'+Z.replace(/"/g,'""').replace(/\./g,'"."')+'"'},r6=function Y(Z){return Z instanceof n1?Z.type:Z instanceof Date?1184:Z instanceof Uint8Array?17:Z===!0||Z===!1?16:typeof Z==="bigint"?20:Array.isArray(Z)?Y(Z[0]):0},cF=/\\/g,lF=/"/g;function oF(Y){return Y.replace(cF,"\\\\").replace(lF,"\\\"")}var MW=function Y(Z,X,_,G){if(Array.isArray(Z)===!1)return Z;if(!Z.length)return"{}";let $=Z[0],W=G===1020?";":",";if(Array.isArray($)&&!$.type)return"{"+Z.map((H)=>Y(H,X,_,G)).join(W)+"}";return"{"+Z.map((H)=>{if(H===void 0){if(H=_.transform.undefined,H===void 0)throw f0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return H===null?"null":'"'+oF(X?X(H.type?H.value:H):""+H)+'"'}).join(W)+"}"},q5={i:0,char:null,str:"",quoted:!1,last:0},AW=function Y(Z,X,_){return q5.i=q5.last=0,RW(q5,Z,X,_)};function RW(Y,Z,X,_){let G=[],$=_===1020?";":",";for(;Y.i<Z.length;Y.i++){if(Y.char=Z[Y.i],Y.quoted)if(Y.char==="\\")Y.str+=Z[++Y.i];else if(Y.char==='"')G.push(X?X(Y.str):Y.str),Y.str="",Y.quoted=Z[Y.i+1]==='"',Y.last=Y.i+2;else Y.str+=Y.char;else if(Y.char==='"')Y.quoted=!0;else if(Y.char==="{")Y.last=++Y.i,G.push(RW(Y,Z,X,_));else if(Y.char==="}"){Y.quoted=!1,Y.last<Y.i&&G.push(X?X(Z.slice(Y.last,Y.i)):Z.slice(Y.last,Y.i)),Y.last=Y.i+1;break}else if(Y.char===$&&Y.p!=="}"&&Y.p!=='"')G.push(X?X(Z.slice(Y.last,Y.i)):Z.slice(Y.last,Y.i)),Y.last=Y.i+1;Y.p=Y.char}return Y.last<Y.i&&G.push(X?X(Z.slice(Y.last,Y.i+1)):Z.slice(Y.last,Y.i+1)),G}var p4=(Y)=>{let Z=Y[0];for(let X=1;X<Y.length;X++)Z+=Y[X]==="_"?Y[++X].toUpperCase():Y[X];return Z},m4=(Y)=>{let Z=Y[0].toUpperCase();for(let X=1;X<Y.length;X++)Z+=Y[X]==="_"?Y[++X].toUpperCase():Y[X];return Z},u4=(Y)=>Y.replace(/_/g,"-"),C8=(Y)=>Y.replace(/([A-Z])/g,"_$1").toLowerCase(),q8=(Y)=>(Y.slice(0,1)+Y.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),j8=(Y)=>Y.replace(/-/g,"_");function x5(Y){return function Z(X,_){return typeof X==="object"&&X!==null&&(_.type===114||_.type===3802)?Array.isArray(X)?X.map((G)=>Z(G,_)):Object.entries(X).reduce((G,[$,W])=>Object.assign(G,{[Y($)]:Z(W,_)}),{}):X}}p4.column={from:p4};p4.value={from:x5(p4)};C8.column={to:C8};var f5={...p4};f5.column.to=C8;m4.column={from:m4};m4.value={from:x5(m4)};q8.column={to:q8};var h5={...m4};h5.column.to=q8;u4.column={from:u4};u4.value={from:x5(u4)};j8.column={to:j8};var k5={...u4};k5.column.to=j8;import wW from"net";import sF from"tls";import S8 from"crypto";import b5 from"stream";import{performance as NW}from"perf_hooks";class d4 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 R1=iF;function iF(Y=[]){let Z=Y.slice(),X=0;return{get length(){return Z.length-X},remove:(_)=>{let G=Z.indexOf(_);return G===-1?null:(Z.splice(G,1),_)},push:(_)=>(Z.push(_),_),shift:()=>{let _=Z[X++];if(X===Z.length)X=0,Z=[];else Z[X-1]=void 0;return _}}}var a0=Buffer.allocUnsafe(256),nF="BCcDdEFfHPpQSX".split("").reduce((Y,Z)=>{let X=Z.charCodeAt(0);return Y[Z]=()=>{return a0[0]=X,z0.i=5,z0},Y},{}),z0=Object.assign(rF,nF,{N:String.fromCharCode(0),i:0,inc(Y){return z0.i+=Y,z0},str(Y){let Z=Buffer.byteLength(Y);return YY(Z),z0.i+=a0.write(Y,z0.i,Z,"utf8"),z0},i16(Y){return YY(2),a0.writeUInt16BE(Y,z0.i),z0.i+=2,z0},i32(Y,Z){if(Z||Z===0)return a0.writeUInt32BE(Y,Z),z0;return YY(4),a0.writeUInt32BE(Y,z0.i),z0.i+=4,z0},z(Y){return YY(Y),a0.fill(0,z0.i,z0.i+Y),z0.i+=Y,z0},raw(Y){return a0=Buffer.concat([a0.subarray(0,z0.i),Y]),z0.i=a0.length,z0},end(Y=1){a0.writeUInt32BE(z0.i-Y,Y);let Z=a0.subarray(0,z0.i);return z0.i=0,a0=Buffer.allocUnsafe(256),Z}}),d=z0;function YY(Y){if(a0.length-z0.i<Y){let Z=a0,X=Z.length;a0=Buffer.allocUnsafe(X+(X>>1)+Y),Z.copy(a0)}}function rF(){return z0.i=0,z0}var p5=BW,tF=1,B4=d().S().end(),IW=d().H().end(),aF=d().i32(8).i32(80877103).end(8),eF=Buffer.concat([d().E().str(d.N).i32(0).end(),B4]),YE=d().D().str("S").str(d.N).end(),w2=()=>{},ZE=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),XE={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 BW(Y,Z={},{onopen:X=w2,onend:_=w2,onclose:G=w2}={}){let{ssl:$,max:W,user:H,host:Q,port:J,database:z,parsers:F,transform:O,onnotice:L,onnotify:w,onparameter:R,max_pipeline:b,keep_alive:x,backoff:h,target_session_attrs:g}=Y,B=R1(),K=tF++,C={pid:null,secret:null},q=g5(VY,Y.idle_timeout),c=g5(VY,Y.max_lifetime),n=g5(nW,Y.connect_timeout),N=null,s,p=new d4,t=Buffer.alloc(0),I0=Y.fetch_types,h0={},$1={},r1=Math.random().toString(36).slice(2),T=1,m=0,W0=0,V0=0,k0=0,a=0,Q0=0,v0=0,B0=null,A0=null,o0=!1,O0=null,j1=null,c0=null,z4=null,b0=null,R0=null,P1=null,u1=null,v=null,B2=null,i0={queue:Z.closed,idleTimer:q,connect(U){c0=U,EX()},terminate:C2,execute:T2,cancel:cW,end:VY,count:0,id:K};return Z.closed&&Z.closed.push(i0),i0;async function dW(){let U;try{U=Y.socket?await Promise.resolve(Y.socket(Y)):new wW.Socket}catch(D){i4(D);return}return U.on("error",i4),U.on("close",VX),U.on("drain",UX),U}async function cW({pid:U,secret:D},l,H0){try{s=d().i32(16).i32(80877102).i32(U).i32(D).end(16),await FX(),N.once("error",H0),N.once("close",l)}catch(C0){H0(C0)}}function T2(U){if(o0)return g8(U,f0.connection("CONNECTION_DESTROYED",Y));if(U.cancelled)return;try{return U.state=C,v?B.push(U):(v=U,v.active=!0),iW(U),l0(lW(U))&&!U.describeFirst&&!U.cursorFn&&B.length<b&&(!U.options.onexecute||U.options.onexecute(i0))}catch(D){return B.length===0&&l0(B4),d1(D),!0}}function lW(U){if(U.parameters.length>=65534)throw f0.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return U.options.simple?d().Q().str(U.statement.string+d.N).end():U.describeFirst?Buffer.concat([JX(U),IW]):U.prepare?U.prepared?y8(U):Buffer.concat([JX(U),y8(U)]):oW(U)}function JX(U){return Buffer.concat([DX(U.statement.string,U.parameters,U.statement.types,U.statement.name),vH("S",U.statement.name)])}function y8(U){return Buffer.concat([SH(U.parameters,U.statement.types,U.statement.name,U.cursorName),U.cursorFn?LX("",U.cursorRows):eF])}function oW(U){return Buffer.concat([DX(U.statement.string,U.parameters,U.statement.types),YE,y8(U)])}function iW(U){let D=[],l=[],H0=P5(U,U.strings[0],U.args[0],D,l,Y);!U.tagged&&U.args.forEach((C0)=>a6(C0,D,l,Y)),U.prepare=Y.prepare&&("prepare"in U.options?U.options.prepare:!0),U.string=H0,U.signature=U.prepare&&l+H0,U.onlyDescribe&&delete $1[U.signature],U.parameters=U.parameters||D,U.prepared=U.prepare&&U.signature in $1,U.describeFirst=U.onlyDescribe||D.length&&!U.prepared,U.statement=U.prepared?$1[U.signature]:{string:H0,types:l,name:U.prepare?r1+T++:""},typeof Y.debug==="function"&&Y.debug(K,H0,D,l)}function l0(U,D){if(R0=R0?Buffer.concat([R0,U]):Buffer.from(U),D||R0.length>=1024)return QX(D);return A0===null&&(A0=setImmediate(QX)),!0}function QX(U){let D=N.write(R0,U);return A0!==null&&clearImmediate(A0),R0=A0=null,D}function nW(){d1(f0.connection("CONNECT_TIMEOUT",Y,N)),N.destroy()}async function zX(){if(l0(aF),!await new Promise((D)=>N.once("data",(l)=>D(l[0]===83)))&&$==="prefer")return o4();N.removeAllListeners(),N=sF.connect({socket:N,servername:wW.isIP(N.host)?void 0:N.host,...$==="require"||$==="allow"||$==="prefer"?{rejectUnauthorized:!1}:$==="verify-full"?{}:typeof $==="object"?$:{}}),N.on("secureConnect",o4),N.on("error",i4),N.on("close",VX),N.on("drain",UX)}function UX(){!v&&X(i0)}function EY(U){if(O0){if(O0.push(U),W0-=U.length,W0>0)return}t=O0?Buffer.concat(O0,a-W0):t.length===0?U:Buffer.concat([t,U],t.length+U.length);while(t.length>4){if(a=t.readUInt32BE(1),a>=t.length){W0=a-t.length,O0=[t];break}try{rW(t.subarray(0,a+1))}catch(D){v&&(v.cursorFn||v.describeFirst)&&l0(B4),d1(D)}t=t.subarray(a+1),W0=0,O0=null}}async function FX(){if(o0=!1,h0={},N||(N=await dW()),!N)return;if(n.start(),Y.socket)return $?zX():o4();if(N.on("connect",$?zX:o4),Y.path)return N.connect(Y.path);N.ssl=$,N.connect(J[V0],Q[V0]),N.host=Q[V0],N.port=J[V0],V0=(V0+1)%J.length}function EX(){setTimeout(FX,m?m+Q0-NW.now():0)}function o4(){try{$1={},I0=Y.fetch_types,r1=Math.random().toString(36).slice(2),T=1,c.start(),N.on("data",EY),x&&N.setKeepAlive&&N.setKeepAlive(!0,1000*x);let U=fH();l0(U)}catch(U){i4(U)}}function i4(U){if(i0.queue===Z.connecting&&Y.host[k0+1])return;d1(U);while(B.length)g8(B.shift(),U)}function d1(U){b0&&(b0.destroy(U),b0=null),v&&g8(v,U),c0&&(g8(c0,U),c0=null)}function g8(U,D){if(U.reserve)return U.reject(D);if(!D||typeof D!=="object")D=new Error(D);"query"in D||"parameters"in D||Object.defineProperties(D,{stack:{value:D.stack+U.origin.replace(/.*\n/,`
67
- `),enumerable:Y.debug},query:{value:U.string,enumerable:Y.debug},parameters:{value:U.parameters,enumerable:Y.debug},args:{value:U.args,enumerable:Y.debug},types:{value:U.statement&&U.statement.types,enumerable:Y.debug}}),U.reject(D)}function VY(){return z4||(!i0.reserved&&_(i0),!i0.reserved&&!c0&&!v&&B.length===0?(C2(),new Promise((U)=>N&&N.readyState!=="closed"?N.once("close",U):U())):z4=new Promise((U)=>P1=U))}function C2(){if(o0=!0,b0||v||c0||B.length)i4(f0.connection("CONNECTION_DESTROYED",Y));if(clearImmediate(A0),N)N.removeListener("data",EY),N.removeListener("connect",o4),N.readyState==="open"&&N.end(d().X().end());P1&&(P1(),z4=P1=null)}async function VX(U){if(t=Buffer.alloc(0),W0=0,O0=null,clearImmediate(A0),N.removeListener("data",EY),N.removeListener("connect",o4),q.cancel(),c.cancel(),n.cancel(),N.removeAllListeners(),N=null,c0)return EX();!U&&(v||B.length)&&i4(f0.connection("CONNECTION_CLOSED",Y,N)),m=NW.now(),U&&Y.shared.retries++,Q0=(typeof h==="function"?h(Y.shared.retries):h)*1000,G(i0,f0.connection("CONNECTION_CLOSED",Y,N))}function rW(U,D=U[0]){(D===68?sW:D===100?IH:D===65?LH:D===83?tW:D===90?aW:D===67?eW:D===50?OX:D===49?YH:D===116?ZH:D===84?XH:D===82?_H:D===110?QH:D===75?zH:D===69?OH:D===115?MH:D===51?AH:D===71?RH:D===78?BH:D===72?wH:D===99?KH:D===73?TH:D===86?CH:D===118?qH:D===87?NH:jH)(U)}function sW(U){let D=7,l,H0,C0,n0=v.isRaw?new Array(v.statement.columns.length):{};for(let e0=0;e0<v.statement.columns.length;e0++)H0=v.statement.columns[e0],l=U.readInt32BE(D),D+=4,C0=l===-1?null:v.isRaw===!0?U.subarray(D,D+=l):H0.parser===void 0?U.toString("utf8",D,D+=l):H0.parser.array===!0?H0.parser(U.toString("utf8",D+1,D+=l)):H0.parser(U.toString("utf8",D,D+=l)),v.isRaw?n0[e0]=v.isRaw===!0?C0:O.value.from?O.value.from(C0,H0):C0:n0[H0.name]=O.value.from?O.value.from(C0,H0):C0;v.forEachFn?v.forEachFn(O.row.from?O.row.from(n0):n0,p):p[v0++]=O.row.from?O.row.from(n0):n0}function tW(U){let[D,l]=U.toString("utf8",5,U.length-1).split(d.N);if(h0[D]=l,Y.parameters[D]!==l)Y.parameters[D]=l,R&&R(D,l)}function aW(U){if(v&&v.options.simple&&v.resolve(j1||p),v=j1=null,p=new d4,n.cancel(),c0){if(g){if(!h0.in_hot_standby||!h0.default_transaction_read_only)return VH();else if(EH(g,h0))return C2()}if(I0)return c0.reserve&&(c0=null),UH();c0&&!c0.reserve&&T2(c0),Y.shared.retries=k0=0,c0=null;return}while(B.length&&(v=B.shift())&&(v.active=!0,v.cancelled))BW(Y).cancel(v.state,v.cancelled.resolve,v.cancelled.reject);if(v)return;i0.reserved?!i0.reserved.release&&U[5]===73?z4?C2():(i0.reserved=null,X(i0)):i0.reserved():z4?C2():X(i0)}function eW(U){v0=0;for(let D=U.length-1;D>0;D--){if(U[D]===32&&U[D+1]<58&&p.count===null)p.count=+U.toString("utf8",D+1,U.length-1);if(U[D-1]>=65){p.command=U.toString("utf8",5,D),p.state=C;break}}if(B2&&(B2(),B2=null),p.command==="BEGIN"&&W!==1&&!i0.reserved)return d1(f0.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(v.options.simple)return OX();if(v.cursorFn)p.count&&v.cursorFn(p),l0(B4);v.resolve(p)}function YH(){v.parsing=!1}function OX(){!p.statement&&(p.statement=v.statement),p.columns=v.statement.columns}function ZH(U){let D=U.readUInt16BE(5);for(let l=0;l<D;++l)!v.statement.types[l]&&(v.statement.types[l]=U.readUInt32BE(7+l*4));v.prepare&&($1[v.signature]=v.statement),v.describeFirst&&!v.onlyDescribe&&(l0(y8(v)),v.describeFirst=!1)}function XH(U){if(p.command)j1=j1||[p],j1.push(p=new d4),p.count=null,v.statement.columns=null;let D=U.readUInt16BE(5),l=7,H0;v.statement.columns=Array(D);for(let C0=0;C0<D;++C0){H0=l;while(U[l++]!==0);let n0=U.readUInt32BE(l),e0=U.readUInt16BE(l+4),U4=U.readUInt32BE(l+6);v.statement.columns[C0]={name:O.column.from?O.column.from(U.toString("utf8",H0,l-1)):U.toString("utf8",H0,l-1),parser:F[U4],table:n0,number:e0,type:U4},l+=18}if(p.statement=v.statement,v.onlyDescribe)return v.resolve(v.statement),l0(B4)}async function _H(U,D=U.readUInt32BE(5)){(D===3?GH:D===5?$H:D===10?WH:D===11?HH:D===12?JH:D!==0?PH:w2)(U,D)}async function GH(){let U=await OY();l0(d().p().str(U).z(1).end())}async function $H(U){let D="md5"+await KW(Buffer.concat([Buffer.from(await KW(await OY()+H)),U.subarray(9)]));l0(d().p().str(D).z(1).end())}async function WH(){u1=(await S8.randomBytes(18)).toString("base64"),d().p().str("SCRAM-SHA-256"+d.N);let U=d.i;l0(d.inc(4).str("n,,n=*,r="+u1).i32(d.i-U-4,U).end())}async function HH(U){let D=U.toString("utf8",9).split(",").reduce((e0,U4)=>(e0[U4[0]]=U4.slice(2),e0),{}),l=await S8.pbkdf2Sync(await OY(),Buffer.from(D.s,"base64"),parseInt(D.i),32,"sha256"),H0=await ZY(l,"Client Key"),C0="n=*,r="+u1+",r="+D.r+",s="+D.s+",i="+D.i+",c=biws,r="+D.r;B0=(await ZY(await ZY(l,"Server Key"),C0)).toString("base64");let n0="c=biws,r="+D.r+",p="+GE(H0,Buffer.from(await ZY(await _E(H0),C0))).toString("base64");l0(d().p().str(n0).end())}function JH(U){if(U.toString("utf8",9).split(d.N,1)[0].slice(2)===B0)return;d1(f0.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),N.destroy()}function OY(){return Promise.resolve(typeof Y.pass==="function"?Y.pass():Y.pass)}function QH(){if(p.statement=v.statement,p.statement.columns=[],v.onlyDescribe)return v.resolve(v.statement),l0(B4)}function zH(U){C.pid=U.readUInt32BE(5),C.secret=U.readUInt32BE(9)}async function UH(){I0=!1,(await new q1([`
65
+ \u274C `))}}++G}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),this.proc.exit(0)}),this.proc.pid)this.id=this.proc.pid?.toString();this.on("user-joins",(Z)=>{this.logger.info("\uD83D\uDC64","user",Z,"joined");let X=`user::${Z}`,_=new KF(X);this.relays.set(Z,_),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let G of this.relayServices){let $=G(_,X);if($)_.disposalFunctions.push($)}this.on(X,(...G)=>{_.in.next(G)}),_.out.subscribe("socket",(G)=>{this.emit(...G)})}),this.on("user-leaves",(Z)=>{let X=this.relays.get(Z);if(this.off(`relay:${Z}`),X)X.dispose(),this.relays.delete(Z)}),this.proc.stdout.write("ALIVE")}receiveRelay(Y){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(Y)}};var J7=new Map;var BB=L6({key:"joinRoom",do:(Y,Z,X,_)=>{let G={enteredAtEpoch:_};return W8(V8,($)=>{$.set({room:Z,user:X},G)},Y.env().store),G}}),TB=L6({key:"leaveRoom",do:({env:Y},Z,X)=>{W8(V8,(_)=>{_.delete({room:Z,user:X})},Y().store)}}),CB=L6({key:"destroyRoom",do:({set:Y,env:Z},X)=>{W8(V8,(G)=>{G.delete({room:X})},Z().store),Y(H7,(G)=>(G.delete(X),G));let _=J7.get(X);if(_)_.emit("exit"),J7.delete(X)}}),qB=V2({key:"sockets",default:null}),jB=E2({key:"socketsIndex",class:b4}),PB=E2({key:"usersIndex",class:b4}),SB=O6({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(Y)=>Y.startsWith("user::"),isBType:(Y)=>Y.startsWith("socket::")}),vB=D6({key:"userMutualSituationalAwarenessIndexes",get:(Y)=>()=>{return[Y]}});var{file:mW,serve:pE}=globalThis.Bun;import{readFileSync as F7}from"fs";import{createServer as qF}from"http";import{createServer as jF}from"https";import{resolve as H5}from"path";function z7(Y,Z){if(Y instanceof Promise)throw Error(Z)}function BF(Y,Z){let X={},_=[];for(let G in Y){let $=Y[G]["~standard"].validate(Z[G]);if(z7($,`Validation must be synchronous, but ${G} returned a Promise.`),$.issues){_.push(...$.issues.map((W)=>({...W,message:W.message,path:[G,...W.path??[]]})));continue}X[G]=$.value}if(_.length)return{issues:_};return{value:X}}function W5(Y){let Z=Y.runtimeEnvStrict??Y.runtimeEnv??process.env;if(Y.emptyStringAsUndefined??!1){for(let[h,g]of Object.entries(Z))if(g==="")delete Z[h]}if(!!Y.skipValidation)return Z;let G=typeof Y.client==="object"?Y.client:{},$=typeof Y.server==="object"?Y.server:{},W=typeof Y.shared==="object"?Y.shared:{},H=Y.isServer??(typeof window>"u"||("Deno"in window)),Q=H?{...$,...W,...G}:{...G,...W},J=Y.createFinalSchema?.(Q,H)["~standard"].validate(Z)??BF(Q,Z);z7(J,"Validation must be synchronous");let z=Y.onValidationError??((h)=>{throw console.error("\u274C Invalid environment variables:",h),Error("Invalid environment variables")}),F=Y.onInvalidAccess??(()=>{throw Error("\u274C Attempted to access a server-side environment variable on the client")});if(J.issues)return z(J.issues);let O=(h)=>{if(!Y.clientPrefix)return!0;return!h.startsWith(Y.clientPrefix)&&!(h in W)},L=(h)=>{return H||!O(h)},w=(h)=>{return h==="__esModule"||h==="$$typeof"},R=(Y.extends??[]).reduce((h,g)=>{return Object.assign(h,g)},{}),b=Object.assign(R,J.value);return new Proxy(b,{get(h,g){if(typeof g!=="string")return;if(w(g))return;if(!L(g))return F(g);return Reflect.get(h,g)}})}var TF="__vite_start_time"in globalThis,CF=typeof window<"u",dB="vitest"in globalThis,W4=U1("string"),U7=U1('"true" | "false" | undefined'),g1=W5({isServer:!TF&&!CF,server:{CI:U1("string | undefined").pipe(Boolean),POSTGRES_USER:W4,POSTGRES_PASSWORD:W4,POSTGRES_DATABASE:W4,POSTGRES_HOST:W4,POSTGRES_PORT:W4.pipe((Y)=>Number.parseInt(Y,10)),BACKEND_PORT:W4.pipe((Y)=>Number.parseInt(Y,10)),RUN_WORKERS_FROM_SOURCE:U7.pipe((Y)=>Y==="true"),FRONTEND_PORT:W4.pipe((Y)=>Number.parseInt(Y,10)),FRONTEND_ORIGINS:W4.pipe.try((Y)=>JSON.parse(Y),U1("string[]")),API_KEY_OPENAI:U1("string | undefined"),API_KEY_RESEND:U1("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:W4,VITE_DEV_FRONTEND_HOST:U1("string | undefined"),VITE_DEV_HTTPS:U7.pipe((Y)=>Y==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var E7=H5(import.meta.dirname,"../dev"),q6=g1.VITE_DEV_HTTPS?{cert:F7(H5(E7,"./cert.pem"),"utf-8"),key:F7(H5(E7,"./key.pem"),"utf-8")}:void 0;function sB(Y){if(q6)return jF(q6,Y);return qF({},Y)}import xE from"path";var E=Symbol.for("drizzle:entityKind");function M(Y,Z){if(!Y||typeof Y!=="object")return!1;if(Y instanceof Z)return!0;if(!Object.prototype.hasOwnProperty.call(Z,E))throw Error(`Class "${Z.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 X=Object.getPrototypeOf(Y).constructor;if(X)while(X){if(E in X&&X[E]===Z[E])return!0;X=Object.getPrototypeOf(X)}return!1}class F0{constructor(Y,Z){this.table=Y,this.config=Z,this.name=Z.name,this.keyAsName=Z.keyAsName,this.notNull=Z.notNull,this.default=Z.default,this.defaultFn=Z.defaultFn,this.onUpdateFn=Z.onUpdateFn,this.hasDefault=Z.hasDefault,this.primary=Z.primaryKey,this.isUnique=Z.isUnique,this.uniqueName=Z.uniqueName,this.uniqueType=Z.uniqueType,this.dataType=Z.dataType,this.columnType=Z.columnType,this.generated=Z.generated,this.generatedIdentity=Z.generatedIdentity}static[E]="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(Y){return Y}mapToDriverValue(Y){return Y}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class J5{static[E]="ColumnBuilder";config;constructor(Y,Z,X){this.config={name:Y,keyAsName:Y==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:Z,columnType:X,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(Y){return this.config.default=Y,this.config.hasDefault=!0,this}$defaultFn(Y){return this.config.defaultFn=Y,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(Y){return this.config.onUpdateFn=Y,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(Y){if(this.config.name!=="")return;this.config.name=Y}}var p1=Symbol.for("drizzle:Name");class Q5{static[E]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(Y,Z){if(this.reference=()=>{let{name:X,columns:_,foreignColumns:G}=Y();return{name:X,columns:_,foreignTable:G[0].table,foreignColumns:G}},Z)this._onUpdate=Z.onUpdate,this._onDelete=Z.onDelete}onUpdate(Y){return this._onUpdate=Y===void 0?"no action":Y,this}onDelete(Y){return this._onDelete=Y===void 0?"no action":Y,this}build(Y){return new V7(Y,this)}}class V7{constructor(Y,Z){this.table=Y,this.reference=Z.reference,this.onUpdate=Z._onUpdate,this.onDelete=Z._onDelete}static[E]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:Y,columns:Z,foreignColumns:X}=this.reference(),_=Z.map((W)=>W.name),G=X.map((W)=>W.name),$=[this.table[p1],..._,X[0].table[p1],...G];return Y??`${$.join("_")}_fk`}}function j6(Y,...Z){return Y(...Z)}function O7(Y,Z){return`${Y[p1]}_${Z.join("_")}_unique`}function D7(Y,Z,X){for(let _=Z;_<Y.length;_++){let G=Y[_];if(G==="\\"){_++;continue}if(G==='"')return[Y.slice(Z,_).replace(/\\/g,""),_+1];if(X)continue;if(G===","||G==="}")return[Y.slice(Z,_).replace(/\\/g,""),_]}return[Y.slice(Z).replace(/\\/g,""),Y.length]}function L7(Y,Z=0){let X=[],_=Z,G=!1;while(_<Y.length){let $=Y[_];if($===","){if(G||_===Z)X.push("");G=!0,_++;continue}if(G=!1,$==="\\"){_+=2;continue}if($==='"'){let[Q,J]=D7(Y,_+1,!0);X.push(Q),_=J;continue}if($==="}")return[X,_+1];if($==="{"){let[Q,J]=L7(Y,_+1);X.push(Q),_=J;continue}let[W,H]=D7(Y,_,!1);X.push(W),_=H}return[X,_]}function M7(Y){let[Z]=L7(Y,1);return Z}function z5(Y){return`{${Y.map((Z)=>{if(Array.isArray(Z))return z5(Z);if(typeof Z==="string")return`"${Z.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${Z}`}).join(",")}}`}class k extends J5{foreignKeyConfigs=[];static[E]="PgColumnBuilder";array(Y){return new R7(this.config.name,this,Y)}references(Y,Z={}){return this.foreignKeyConfigs.push({ref:Y,actions:Z}),this}unique(Y,Z){return this.config.isUnique=!0,this.config.uniqueName=Y,this.config.uniqueType=Z?.nulls,this}generatedAlwaysAs(Y){return this.config.generated={as:Y,type:"always",mode:"stored"},this}buildForeignKeys(Y,Z){return this.foreignKeyConfigs.map(({ref:X,actions:_})=>{return j6((G,$)=>{let W=new Q5(()=>{let H=G();return{columns:[Y],foreignColumns:[H]}});if($.onUpdate)W.onUpdate($.onUpdate);if($.onDelete)W.onDelete($.onDelete);return W.build(Z)},X,_)})}buildExtraConfigColumn(Y){return new A7(Y,this.config)}}class j extends F0{constructor(Y,Z){if(!Z.uniqueName)Z.uniqueName=O7(Y,[Z.name]);super(Y,Z);this.table=Y}static[E]="PgColumn"}class A7 extends j{static[E]="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(Y){return this.indexConfig.opClass=Y,this}}class O8{static[E]="IndexedColumn";constructor(Y,Z,X,_){this.name=Y,this.keyAsName=Z,this.type=X,this.indexConfig=_}name;keyAsName;type;indexConfig}class R7 extends k{static[E]="PgArrayBuilder";constructor(Y,Z,X){super(Y,"array","PgArray");this.config.baseBuilder=Z,this.config.size=X}build(Y){let Z=this.config.baseBuilder.build(Y);return new U5(Y,this.config,Z)}}class U5 extends j{constructor(Y,Z,X,_){super(Y,Z);this.baseColumn=X,this.range=_,this.size=Z.size}size;static[E]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(Y){if(typeof Y==="string")Y=M7(Y);return Y.map((Z)=>this.baseColumn.mapFromDriverValue(Z))}mapToDriverValue(Y,Z=!1){let X=Y.map((_)=>_===null?null:M(this.baseColumn,U5)?this.baseColumn.mapToDriverValue(_,!0):this.baseColumn.mapToDriverValue(_));if(Z)return X;return z5(X)}}class w7 extends k{static[E]="PgEnumObjectColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumObjectColumn");this.config.enum=Z}build(Y){return new N7(Y,this.config)}}class N7 extends j{static[E]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}var P6=Symbol.for("drizzle:isPgEnum");function I7(Y){return!!Y&&typeof Y==="function"&&P6 in Y&&Y[P6]===!0}class K7 extends k{static[E]="PgEnumColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumColumn");this.config.enum=Z}build(Y){return new B7(Y,this.config)}}class B7 extends j{static[E]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}function D8(Y,Z){return Array.isArray(Z)?PF(Y,[...Z],void 0):SF(Y,Z,void 0)}function PF(Y,Z,X){let _=Object.assign((G)=>new K7(G??"",_),{enumName:Y,enumValues:Z,schema:X,[P6]:!0});return _}function SF(Y,Z,X){let _=Object.assign((G)=>new w7(G??"",_),{enumName:Y,enumValues:Object.values(Z),schema:X,[P6]:!0});return _}class S0{static[E]="Subquery";constructor(Y,Z,X,_=!1,G=[]){this._={brand:"Subquery",sql:Y,selectedFields:Z,alias:X,isWith:_,usedTables:G}}}class L8 extends S0{static[E]="WithSubquery"}var T7="0.44.5";var F5,E5,E0={startActiveSpan(Y,Z){if(!F5)return Z();if(!E5)E5=F5.trace.getTracer("drizzle-orm",T7);return j6((X,_)=>_.startActiveSpan(Y,(G)=>{try{return Z(G)}catch($){throw G.setStatus({code:X.SpanStatusCode.ERROR,message:$ instanceof Error?$.message:"Unknown error"}),$}finally{G.end()}}),F5,E5)}};var M0=Symbol.for("drizzle:ViewBaseConfig");var y4=Symbol.for("drizzle:Schema"),S6=Symbol.for("drizzle:Columns"),C7=Symbol.for("drizzle:ExtraConfigColumns"),V5=Symbol.for("drizzle:OriginalName"),O5=Symbol.for("drizzle:BaseName"),M8=Symbol.for("drizzle:IsAlias"),q7=Symbol.for("drizzle:ExtraConfigBuilder"),vF=Symbol.for("drizzle:IsDrizzleTable");class P{static[E]="Table";static Symbol={Name:p1,Schema:y4,OriginalName:V5,Columns:S6,ExtraConfigColumns:C7,BaseName:O5,IsAlias:M8,ExtraConfigBuilder:q7};[p1];[V5];[y4];[S6];[C7];[O5];[M8]=!1;[vF]=!0;[q7]=void 0;constructor(Y,Z,X){this[p1]=this[V5]=Y,this[y4]=Z,this[O5]=X}}function d0(Y){return Y[p1]}function g4(Y){return`${Y[y4]??"public"}.${Y[p1]}`}function D5(Y){return Y!==null&&Y!==void 0&&typeof Y.getSQL==="function"}function xF(Y){let Z={sql:"",params:[]};for(let X of Y)if(Z.sql+=X.sql,Z.params.push(...X.params),X.typings?.length){if(!Z.typings)Z.typings=[];Z.typings.push(...X.typings)}return Z}class m0{static[E]="StringChunk";value;constructor(Y){this.value=Array.isArray(Y)?Y:[Y]}getSQL(){return new f([this])}}class f{constructor(Y){this.queryChunks=Y;for(let Z of Y)if(M(Z,P)){let X=Z[P.Symbol.Schema];this.usedTables.push(X===void 0?Z[P.Symbol.Name]:X+"."+Z[P.Symbol.Name])}}static[E]="SQL";decoder=P7;shouldInlineParams=!1;usedTables=[];append(Y){return this.queryChunks.push(...Y.queryChunks),this}toQuery(Y){return E0.startActiveSpan("drizzle.buildSQL",(Z)=>{let X=this.buildQueryFromSourceParams(this.queryChunks,Y);return Z?.setAttributes({"drizzle.query.text":X.sql,"drizzle.query.params":JSON.stringify(X.params)}),X})}buildQueryFromSourceParams(Y,Z){let X=Object.assign({},Z,{inlineParams:Z.inlineParams||this.shouldInlineParams,paramStartIndex:Z.paramStartIndex||{value:0}}),{casing:_,escapeName:G,escapeParam:$,prepareTyping:W,inlineParams:H,paramStartIndex:Q}=X;return xF(Y.map((J)=>{if(M(J,m0))return{sql:J.value.join(""),params:[]};if(M(J,v6))return{sql:G(J.value),params:[]};if(J===void 0)return{sql:"",params:[]};if(Array.isArray(J)){let z=[new m0("(")];for(let[F,O]of J.entries())if(z.push(O),F<J.length-1)z.push(new m0(", "));return z.push(new m0(")")),this.buildQueryFromSourceParams(z,X)}if(M(J,f))return this.buildQueryFromSourceParams(J.queryChunks,{...X,inlineParams:H||J.shouldInlineParams});if(M(J,P)){let z=J[P.Symbol.Schema],F=J[P.Symbol.Name];return{sql:z===void 0||J[M8]?G(F):G(z)+"."+G(F),params:[]}}if(M(J,F0)){let z=_.getColumnCasing(J);if(Z.invokeSource==="indexes")return{sql:G(z),params:[]};let F=J.table[P.Symbol.Schema];return{sql:J.table[M8]||F===void 0?G(J.table[P.Symbol.Name])+"."+G(z):G(F)+"."+G(J.table[P.Symbol.Name])+"."+G(z),params:[]}}if(M(J,V1)){let z=J[M0].schema,F=J[M0].name;return{sql:z===void 0||J[M0].isAlias?G(F):G(z)+"."+G(F),params:[]}}if(M(J,A1)){if(M(J.value,w4))return{sql:$(Q.value++,J),params:[J],typings:["none"]};let z=J.value===null?null:J.encoder.mapToDriverValue(J.value);if(M(z,f))return this.buildQueryFromSourceParams([z],X);if(H)return{sql:this.mapInlineParam(z,X),params:[]};let F=["none"];if(W)F=[W(J.encoder)];return{sql:$(Q.value++,z),params:[z],typings:F}}if(M(J,w4))return{sql:$(Q.value++,J),params:[J],typings:["none"]};if(M(J,f.Aliased)&&J.fieldAlias!==void 0)return{sql:G(J.fieldAlias),params:[]};if(M(J,S0)){if(J._.isWith)return{sql:G(J._.alias),params:[]};return this.buildQueryFromSourceParams([new m0("("),J._.sql,new m0(") "),new v6(J._.alias)],X)}if(I7(J)){if(J.schema)return{sql:G(J.schema)+"."+G(J.enumName),params:[]};return{sql:G(J.enumName),params:[]}}if(D5(J)){if(J.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([J.getSQL()],X);return this.buildQueryFromSourceParams([new m0("("),J.getSQL(),new m0(")")],X)}if(H)return{sql:this.mapInlineParam(J,X),params:[]};return{sql:$(Q.value++,J),params:[J],typings:["none"]}}))}mapInlineParam(Y,{escapeString:Z}){if(Y===null)return"null";if(typeof Y==="number"||typeof Y==="boolean")return Y.toString();if(typeof Y==="string")return Z(Y);if(typeof Y==="object"){let X=Y.toString();if(X==="[object Object]")return Z(JSON.stringify(Y));return Z(X)}throw Error("Unexpected param value: "+Y)}getSQL(){return this}as(Y){if(Y===void 0)return this;return new f.Aliased(this,Y)}mapWith(Y){return this.decoder=typeof Y==="function"?{mapFromDriverValue:Y}:Y,this}inlineParams(){return this.shouldInlineParams=!0,this}if(Y){return Y?this:void 0}}class v6{constructor(Y){this.value=Y}static[E]="Name";brand;getSQL(){return new f([this])}}function j7(Y){return typeof Y==="object"&&Y!==null&&"mapToDriverValue"in Y&&typeof Y.mapToDriverValue==="function"}var P7={mapFromDriverValue:(Y)=>Y},S7={mapToDriverValue:(Y)=>Y},gT={...P7,...S7};class A1{constructor(Y,Z=S7){this.value=Y,this.encoder=Z}static[E]="Param";brand;getSQL(){return new f([this])}}function V(Y,...Z){let X=[];if(Z.length>0||Y.length>0&&Y[0]!=="")X.push(new m0(Y[0]));for(let[_,G]of Z.entries())X.push(G,new m0(Y[_+1]));return new f(X)}((Y)=>{function Z(){return new f([])}Y.empty=Z;function X(Q){return new f(Q)}Y.fromList=X;function _(Q){return new f([new m0(Q)])}Y.raw=_;function G(Q,J){let z=[];for(let[F,O]of Q.entries()){if(F>0&&J!==void 0)z.push(J);z.push(O)}return new f(z)}Y.join=G;function $(Q){return new v6(Q)}Y.identifier=$;function W(Q){return new w4(Q)}Y.placeholder=W;function H(Q,J){return new A1(Q,J)}Y.param=H})(V||(V={}));((Y)=>{class Z{constructor(X,_){this.sql=X,this.fieldAlias=_}static[E]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new Z(this.sql,this.fieldAlias)}}Y.Aliased=Z})(f||(f={}));class w4{constructor(Y){this.name=Y}static[E]="Placeholder";getSQL(){return new f([this])}}function L5(Y,Z){return Y.map((X)=>{if(M(X,w4)){if(!(X.name in Z))throw Error(`No value for placeholder "${X.name}" was provided`);return Z[X.name]}if(M(X,A1)&&M(X.value,w4)){if(!(X.value.name in Z))throw Error(`No value for placeholder "${X.value.name}" was provided`);return X.encoder.mapToDriverValue(Z[X.value.name])}return X})}var fF=Symbol.for("drizzle:IsDrizzleView");class V1{static[E]="View";[M0];[fF]=!0;constructor({name:Y,schema:Z,selectedFields:X,query:_}){this[M0]={name:Y,originalName:Y,schema:Z,selectedFields:X,query:_,isExisting:!_,isAlias:!1}}getSQL(){return new f([this])}}F0.prototype.getSQL=function(){return new f([this])};P.prototype.getSQL=function(){return new f([this])};S0.prototype.getSQL=function(){return new f([this])};class M2{constructor(Y){this.table=Y}static[E]="ColumnAliasProxyHandler";get(Y,Z){if(Z==="table")return this.table;return Y[Z]}}class A8{constructor(Y,Z){this.alias=Y,this.replaceOriginalName=Z}static[E]="TableAliasProxyHandler";get(Y,Z){if(Z===P.Symbol.IsAlias)return!0;if(Z===P.Symbol.Name)return this.alias;if(this.replaceOriginalName&&Z===P.Symbol.OriginalName)return this.alias;if(Z===M0)return{...Y[M0],name:this.alias,isAlias:!0};if(Z===P.Symbol.Columns){let _=Y[P.Symbol.Columns];if(!_)return _;let G={};return Object.keys(_).map(($)=>{G[$]=new Proxy(_[$],new M2(new Proxy(Y,this)))}),G}let X=Y[Z];if(M(X,F0))return new Proxy(X,new M2(new Proxy(Y,this)));return X}}function x6(Y,Z){return new Proxy(Y,new A8(Z,!1))}function i1(Y,Z){return new Proxy(Y,new M2(new Proxy(Y.table,new A8(Z,!1))))}function M5(Y,Z){return new f.Aliased(R8(Y.sql,Z),Y.fieldAlias)}function R8(Y,Z){return V.join(Y.queryChunks.map((X)=>{if(M(X,F0))return i1(X,Z);if(M(X,f))return R8(X,Z);if(M(X,f.Aliased))return M5(X,Z);return X}))}class f6 extends Error{static[E]="DrizzleError";constructor({message:Y,cause:Z}){super(Y);this.name="DrizzleError",this.cause=Z}}class H4 extends Error{constructor(Y,Z,X){super(`Failed query: ${Y}
66
+ params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrace(this,H4),X)this.cause=X}}class A5 extends f6{static[E]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class v7{static[E]="ConsoleLogWriter";write(Y){console.log(Y)}}class R5{static[E]="DefaultLogger";writer;constructor(Y){this.writer=Y?.writer??new v7}logQuery(Y,Z){let X=Z.map((G)=>{try{return JSON.stringify(G)}catch{return String(G)}}),_=X.length?` -- params: [${X.join(", ")}]`:"";this.writer.write(`Query: ${Y}${_}`)}}class w5{static[E]="NoopLogger";logQuery(){}}class _1{static[E]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(Y){return this.then(void 0,Y)}finally(Y){return this.then((Z)=>{return Y?.(),Z},(Z)=>{throw Y?.(),Z})}then(Y,Z){return this.execute().then(Y,Z)}}function x7(Y,Z,X){let _={},G=Y.reduce(($,{path:W,field:H},Q)=>{let J;if(M(H,F0))J=H;else if(M(H,f))J=H.decoder;else J=H.sql.decoder;let z=$;for(let[F,O]of W.entries())if(F<W.length-1){if(!(O in z))z[O]={};z=z[O]}else{let L=Z[Q],w=z[O]=L===null?null:J.mapFromDriverValue(L);if(X&&M(H,F0)&&W.length===2){let R=W[0];if(!(R in _))_[R]=w===null?d0(H.table):!1;else if(typeof _[R]==="string"&&_[R]!==d0(H.table))_[R]=!1}}return $},{});if(X&&Object.keys(_).length>0){for(let[$,W]of Object.entries(_))if(typeof W==="string"&&!X[W])G[$]=null}return G}function T1(Y,Z){return Object.entries(Y).reduce((X,[_,G])=>{if(typeof _!=="string")return X;let $=Z?[...Z,_]:[_];if(M(G,F0)||M(G,f)||M(G,f.Aliased))X.push({path:$,field:G});else if(M(G,P))X.push(...T1(G[P.Symbol.Columns],$));else X.push(...T1(G,$));return X},[])}function w8(Y,Z){let X=Object.keys(Y),_=Object.keys(Z);if(X.length!==_.length)return!1;for(let[G,$]of X.entries())if($!==_[G])return!1;return!0}function h6(Y,Z){let X=Object.entries(Z).filter(([,_])=>_!==void 0).map(([_,G])=>{if(M(G,f)||M(G,F0))return[_,G];else return[_,new A1(G,Y[P.Symbol.Columns][_])]});if(X.length===0)throw Error("No values to set");return Object.fromEntries(X)}function f7(Y,Z){for(let X of Z)for(let _ of Object.getOwnPropertyNames(X.prototype)){if(_==="constructor")continue;Object.defineProperty(Y.prototype,_,Object.getOwnPropertyDescriptor(X.prototype,_)||Object.create(null))}}function h7(Y){return Y[P.Symbol.Columns]}function J4(Y){return M(Y,S0)?Y._.alias:M(Y,V1)?Y[M0].name:M(Y,f)?void 0:Y[P.Symbol.IsAlias]?Y[P.Symbol.Name]:Y[P.Symbol.BaseName]}function X0(Y,Z){return{name:typeof Y==="string"&&Y.length>0?Y:"",config:typeof Y==="object"?Y:Z}}function k7(Y){if(typeof Y!=="object"||Y===null)return!1;if(Y.constructor.name!=="Object")return!1;if("logger"in Y){let Z=typeof Y.logger;if(Z!=="boolean"&&(Z!=="object"||typeof Y.logger.logQuery!=="function")&&Z!=="undefined")return!1;return!0}if("schema"in Y){let Z=typeof Y.schema;if(Z!=="object"&&Z!=="undefined")return!1;return!0}if("casing"in Y){let Z=typeof Y.casing;if(Z!=="string"&&Z!=="undefined")return!1;return!0}if("mode"in Y){if(Y.mode!=="default"||Y.mode!=="planetscale"||Y.mode!==void 0)return!1;return!0}if("connection"in Y){let Z=typeof Y.connection;if(Z!=="string"&&Z!=="object"&&Z!=="undefined")return!1;return!0}if("client"in Y){let Z=typeof Y.client;if(Z!=="object"&&Z!=="function"&&Z!=="undefined")return!1;return!0}if(Object.keys(Y).length===0)return!0;return!1}class N4 extends k{static[E]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(Y){if(Y){let{name:Z,...X}=Y;this.config.generatedIdentity={type:"always",sequenceName:Z,sequenceOptions:X}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(Y){if(Y){let{name:Z,...X}=Y;this.config.generatedIdentity={type:"byDefault",sequenceName:Z,sequenceOptions:X}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class b7 extends N4{static[E]="PgBigInt53Builder";constructor(Y){super(Y,"number","PgBigInt53")}build(Y){return new y7(Y,this.config)}}class y7 extends j{static[E]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class g7 extends N4{static[E]="PgBigInt64Builder";constructor(Y){super(Y,"bigint","PgBigInt64")}build(Y){return new p7(Y,this.config)}}class p7 extends j{static[E]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(Y){return BigInt(Y)}}function m7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new b7(X);return new g7(X)}class u7 extends k{static[E]="PgBigSerial53Builder";constructor(Y){super(Y,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new d7(Y,this.config)}}class d7 extends j{static[E]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class c7 extends k{static[E]="PgBigSerial64Builder";constructor(Y){super(Y,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(Y){return new l7(Y,this.config)}}class l7 extends j{static[E]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(Y){return BigInt(Y)}}function o7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new u7(X);return new c7(X)}class i7 extends k{static[E]="PgBooleanBuilder";constructor(Y){super(Y,"boolean","PgBoolean")}build(Y){return new n7(Y,this.config)}}class n7 extends j{static[E]="PgBoolean";getSQLType(){return"boolean"}}function N8(Y){return new i7(Y??"")}class r7 extends k{static[E]="PgCharBuilder";constructor(Y,Z){super(Y,"string","PgChar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new s7(Y,this.config)}}class s7 extends j{static[E]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function t7(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new r7(X,_)}class a7 extends k{static[E]="PgCidrBuilder";constructor(Y){super(Y,"string","PgCidr")}build(Y){return new e7(Y,this.config)}}class e7 extends j{static[E]="PgCidr";getSQLType(){return"cidr"}}function Y$(Y){return new a7(Y??"")}class Z$ extends k{static[E]="PgCustomColumnBuilder";constructor(Y,Z,X){super(Y,"custom","PgCustomColumn");this.config.fieldConfig=Z,this.config.customTypeParams=X}build(Y){return new X$(Y,this.config)}}class X$ extends j{static[E]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(Y,Z){super(Y,Z);this.sqlName=Z.customTypeParams.dataType(Z.fieldConfig),this.mapTo=Z.customTypeParams.toDriver,this.mapFrom=Z.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(Y){return typeof this.mapFrom==="function"?this.mapFrom(Y):Y}mapToDriverValue(Y){return typeof this.mapTo==="function"?this.mapTo(Y):Y}}function _$(Y){return(Z,X)=>{let{name:_,config:G}=X0(Z,X);return new Z$(_,G,Y)}}class Q4 extends k{static[E]="PgDateColumnBaseBuilder";defaultNow(){return this.default(V`now()`)}}class G$ extends Q4{static[E]="PgDateBuilder";constructor(Y){super(Y,"date","PgDate")}build(Y){return new k6(Y,this.config)}}class k6 extends j{static[E]="PgDate";getSQLType(){return"date"}mapFromDriverValue(Y){return new Date(Y)}mapToDriverValue(Y){return Y.toISOString()}}class $$ extends Q4{static[E]="PgDateStringBuilder";constructor(Y){super(Y,"string","PgDateString")}build(Y){return new b6(Y,this.config)}}class b6 extends j{static[E]="PgDateString";getSQLType(){return"date"}}function W$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="date")return new G$(X);return new $$(X)}class H$ extends k{static[E]="PgDoublePrecisionBuilder";constructor(Y){super(Y,"number","PgDoublePrecision")}build(Y){return new J$(Y,this.config)}}class J$ extends j{static[E]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function Q$(Y){return new H$(Y??"")}class z$ extends k{static[E]="PgInetBuilder";constructor(Y){super(Y,"string","PgInet")}build(Y){return new U$(Y,this.config)}}class U$ extends j{static[E]="PgInet";getSQLType(){return"inet"}}function F$(Y){return new z$(Y??"")}class E$ extends N4{static[E]="PgIntegerBuilder";constructor(Y){super(Y,"number","PgInteger")}build(Y){return new V$(Y,this.config)}}class V$ extends j{static[E]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseInt(Y);return Y}}function I8(Y){return new E$(Y??"")}class O$ extends k{static[E]="PgIntervalBuilder";constructor(Y,Z){super(Y,"string","PgInterval");this.config.intervalConfig=Z}build(Y){return new D$(Y,this.config)}}class D$ extends j{static[E]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let Y=this.fields?` ${this.fields}`:"",Z=this.precision?`(${this.precision})`:"";return`interval${Y}${Z}`}}function L$(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new O$(X,_)}class M$ extends k{static[E]="PgJsonBuilder";constructor(Y){super(Y,"json","PgJson")}build(Y){return new y6(Y,this.config)}}class y6 extends j{static[E]="PgJson";constructor(Y,Z){super(Y,Z)}getSQLType(){return"json"}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}}function A$(Y){return new M$(Y??"")}class R$ extends k{static[E]="PgJsonbBuilder";constructor(Y){super(Y,"json","PgJsonb")}build(Y){return new g6(Y,this.config)}}class g6 extends j{static[E]="PgJsonb";constructor(Y,Z){super(Y,Z)}getSQLType(){return"jsonb"}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}}function w$(Y){return new R$(Y??"")}class N$ extends k{static[E]="PgLineBuilder";constructor(Y){super(Y,"array","PgLine")}build(Y){return new I$(Y,this.config)}}class I$ extends j{static[E]="PgLine";getSQLType(){return"line"}mapFromDriverValue(Y){let[Z,X,_]=Y.slice(1,-1).split(",");return[Number.parseFloat(Z),Number.parseFloat(X),Number.parseFloat(_)]}mapToDriverValue(Y){return`{${Y[0]},${Y[1]},${Y[2]}}`}}class K$ extends k{static[E]="PgLineABCBuilder";constructor(Y){super(Y,"json","PgLineABC")}build(Y){return new B$(Y,this.config)}}class B$ extends j{static[E]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(Y){let[Z,X,_]=Y.slice(1,-1).split(",");return{a:Number.parseFloat(Z),b:Number.parseFloat(X),c:Number.parseFloat(_)}}mapToDriverValue(Y){return`{${Y.a},${Y.b},${Y.c}}`}}function T$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new N$(X);return new K$(X)}class C$ extends k{static[E]="PgMacaddrBuilder";constructor(Y){super(Y,"string","PgMacaddr")}build(Y){return new q$(Y,this.config)}}class q$ extends j{static[E]="PgMacaddr";getSQLType(){return"macaddr"}}function j$(Y){return new C$(Y??"")}class P$ extends k{static[E]="PgMacaddr8Builder";constructor(Y){super(Y,"string","PgMacaddr8")}build(Y){return new S$(Y,this.config)}}class S$ extends j{static[E]="PgMacaddr8";getSQLType(){return"macaddr8"}}function v$(Y){return new P$(Y??"")}class x$ extends k{static[E]="PgNumericBuilder";constructor(Y,Z,X){super(Y,"string","PgNumeric");this.config.precision=Z,this.config.scale=X}build(Y){return new p6(Y,this.config)}}class p6 extends j{static[E]="PgNumeric";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue(Y){if(typeof Y==="string")return Y;return String(Y)}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 f$ extends k{static[E]="PgNumericNumberBuilder";constructor(Y,Z,X){super(Y,"number","PgNumericNumber");this.config.precision=Z,this.config.scale=X}build(Y){return new h$(Y,this.config)}}class h$ extends j{static[E]="PgNumericNumber";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}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 k$ extends k{static[E]="PgNumericBigIntBuilder";constructor(Y,Z,X){super(Y,"bigint","PgNumericBigInt");this.config.precision=Z,this.config.scale=X}build(Y){return new b$(Y,this.config)}}class b$ extends j{static[E]="PgNumericBigInt";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.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 y$(Y,Z){let{name:X,config:_}=X0(Y,Z),G=_?.mode;return G==="number"?new f$(X,_?.precision,_?.scale):G==="bigint"?new k$(X,_?.precision,_?.scale):new x$(X,_?.precision,_?.scale)}class g$ extends k{static[E]="PgPointTupleBuilder";constructor(Y){super(Y,"array","PgPointTuple")}build(Y){return new p$(Y,this.config)}}class p$ extends j{static[E]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(Y){if(typeof Y==="string"){let[Z,X]=Y.slice(1,-1).split(",");return[Number.parseFloat(Z),Number.parseFloat(X)]}return[Y.x,Y.y]}mapToDriverValue(Y){return`(${Y[0]},${Y[1]})`}}class m$ extends k{static[E]="PgPointObjectBuilder";constructor(Y){super(Y,"json","PgPointObject")}build(Y){return new u$(Y,this.config)}}class u$ extends j{static[E]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(Y){if(typeof Y==="string"){let[Z,X]=Y.slice(1,-1).split(",");return{x:Number.parseFloat(Z),y:Number.parseFloat(X)}}return Y}mapToDriverValue(Y){return`(${Y.x},${Y.y})`}}function d$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new g$(X);return new m$(X)}function hF(Y){let Z=[];for(let X=0;X<Y.length;X+=2)Z.push(Number.parseInt(Y.slice(X,X+2),16));return new Uint8Array(Z)}function c$(Y,Z){let X=new ArrayBuffer(8),_=new DataView(X);for(let G=0;G<8;G++)_.setUint8(G,Y[Z+G]);return _.getFloat64(0,!0)}function N5(Y){let Z=hF(Y),X=0,_=Z[X];X+=1;let G=new DataView(Z.buffer),$=G.getUint32(X,_===1);X+=4;let W;if($&536870912)W=G.getUint32(X,_===1),X+=4;if(($&65535)===1){let H=c$(Z,X);X+=8;let Q=c$(Z,X);return X+=8,[H,Q]}throw Error("Unsupported geometry type")}class l$ extends k{static[E]="PgGeometryBuilder";constructor(Y){super(Y,"array","PgGeometry")}build(Y){return new o$(Y,this.config)}}class o$ extends j{static[E]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){return N5(Y)}mapToDriverValue(Y){return`point(${Y[0]} ${Y[1]})`}}class i$ extends k{static[E]="PgGeometryObjectBuilder";constructor(Y){super(Y,"json","PgGeometryObject")}build(Y){return new n$(Y,this.config)}}class n$ extends j{static[E]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){let Z=N5(Y);return{x:Z[0],y:Z[1]}}mapToDriverValue(Y){return`point(${Y.x} ${Y.y})`}}function r$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new l$(X);return new i$(X)}class s$ extends k{static[E]="PgRealBuilder";constructor(Y,Z){super(Y,"number","PgReal");this.config.length=Z}build(Y){return new t$(Y,this.config)}}class t$ extends j{static[E]="PgReal";constructor(Y,Z){super(Y,Z)}getSQLType(){return"real"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function a$(Y){return new s$(Y??"")}class e$ extends k{static[E]="PgSerialBuilder";constructor(Y){super(Y,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new Y3(Y,this.config)}}class Y3 extends j{static[E]="PgSerial";getSQLType(){return"serial"}}function Z3(Y){return new e$(Y??"")}class X3 extends N4{static[E]="PgSmallIntBuilder";constructor(Y){super(Y,"number","PgSmallInt")}build(Y){return new _3(Y,this.config)}}class _3 extends j{static[E]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number(Y);return Y}}function G3(Y){return new X3(Y??"")}class $3 extends k{static[E]="PgSmallSerialBuilder";constructor(Y){super(Y,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new W3(Y,this.config)}}class W3 extends j{static[E]="PgSmallSerial";getSQLType(){return"smallserial"}}function H3(Y){return new $3(Y??"")}class J3 extends k{static[E]="PgTextBuilder";constructor(Y,Z){super(Y,"string","PgText");this.config.enumValues=Z.enum}build(Y){return new Q3(Y,this.config)}}class Q3 extends j{static[E]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function z3(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new J3(X,_)}class U3 extends Q4{constructor(Y,Z,X){super(Y,"string","PgTime");this.withTimezone=Z,this.precision=X,this.config.withTimezone=Z,this.config.precision=X}static[E]="PgTimeBuilder";build(Y){return new m6(Y,this.config)}}class m6 extends j{static[E]="PgTime";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function F3(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new U3(X,_.withTimezone??!1,_.precision)}class E3 extends Q4{static[E]="PgTimestampBuilder";constructor(Y,Z,X){super(Y,"date","PgTimestamp");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new u6(Y,this.config)}}class u6 extends j{static[E]="PgTimestamp";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(Y)=>{return new Date(this.withTimezone?Y:Y+"+0000")};mapToDriverValue=(Y)=>{return Y.toISOString()}}class V3 extends Q4{static[E]="PgTimestampStringBuilder";constructor(Y,Z,X){super(Y,"string","PgTimestampString");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new d6(Y,this.config)}}class d6 extends j{static[E]="PgTimestampString";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function O3(Y,Z={}){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="string")return new V3(X,_.withTimezone??!1,_.precision);return new E3(X,_?.withTimezone??!1,_?.precision)}class D3 extends k{static[E]="PgUUIDBuilder";constructor(Y){super(Y,"string","PgUUID")}defaultRandom(){return this.default(V`gen_random_uuid()`)}build(Y){return new c6(Y,this.config)}}class c6 extends j{static[E]="PgUUID";getSQLType(){return"uuid"}}function C1(Y){return new D3(Y??"")}class L3 extends k{static[E]="PgVarcharBuilder";constructor(Y,Z){super(Y,"string","PgVarchar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new M3(Y,this.config)}}class M3 extends j{static[E]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function t0(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new L3(X,_)}class A3 extends k{static[E]="PgBinaryVectorBuilder";constructor(Y,Z){super(Y,"string","PgBinaryVector");this.config.dimensions=Z.dimensions}build(Y){return new R3(Y,this.config)}}class R3 extends j{static[E]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function w3(Y,Z){let{name:X,config:_}=X0(Y,Z);return new A3(X,_)}class N3 extends k{static[E]="PgHalfVectorBuilder";constructor(Y,Z){super(Y,"array","PgHalfVector");this.config.dimensions=Z.dimensions}build(Y){return new I3(Y,this.config)}}class I3 extends j{static[E]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){return Y.slice(1,-1).split(",").map((Z)=>Number.parseFloat(Z))}}function K3(Y,Z){let{name:X,config:_}=X0(Y,Z);return new N3(X,_)}class B3 extends k{static[E]="PgSparseVectorBuilder";constructor(Y,Z){super(Y,"string","PgSparseVector");this.config.dimensions=Z.dimensions}build(Y){return new T3(Y,this.config)}}class T3 extends j{static[E]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function C3(Y,Z){let{name:X,config:_}=X0(Y,Z);return new B3(X,_)}class q3 extends k{static[E]="PgVectorBuilder";constructor(Y,Z){super(Y,"array","PgVector");this.config.dimensions=Z.dimensions}build(Y){return new j3(Y,this.config)}}class j3 extends j{static[E]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){return Y.slice(1,-1).split(",").map((Z)=>Number.parseFloat(Z))}}function P3(Y,Z){let{name:X,config:_}=X0(Y,Z);return new q3(X,_)}function S3(){return{bigint:m7,bigserial:o7,boolean:N8,char:t7,cidr:Y$,customType:_$,date:W$,doublePrecision:Q$,inet:F$,integer:I8,interval:L$,json:A$,jsonb:w$,line:T$,macaddr:j$,macaddr8:v$,numeric:y$,point:d$,geometry:r$,real:a$,serial:Z3,smallint:G3,smallserial:H3,text:z3,time:F3,timestamp:O3,uuid:C1,varchar:t0,bit:w3,halfvec:K3,sparsevec:C3,vector:P3}}var I5=Symbol.for("drizzle:PgInlineForeignKeys"),v3=Symbol.for("drizzle:EnableRLS");class u0 extends P{static[E]="PgTable";static Symbol=Object.assign({},P.Symbol,{InlineForeignKeys:I5,EnableRLS:v3});[I5]=[];[v3]=!1;[P.Symbol.ExtraConfigBuilder]=void 0;[P.Symbol.ExtraConfigColumns]={}}function kF(Y,Z,X,_,G=Y){let $=new u0(Y,_,G),W=typeof Z==="function"?Z(S3()):Z,H=Object.fromEntries(Object.entries(W).map(([z,F])=>{let O=F;O.setName(z);let L=O.build($);return $[I5].push(...O.buildForeignKeys(L,$)),[z,L]})),Q=Object.fromEntries(Object.entries(W).map(([z,F])=>{let O=F;O.setName(z);let L=O.buildExtraConfigColumn($);return[z,L]})),J=Object.assign($,H);if(J[P.Symbol.Columns]=H,J[P.Symbol.ExtraConfigColumns]=Q,X)J[u0.Symbol.ExtraConfigBuilder]=X;return Object.assign(J,{enableRLS:()=>{return J[u0.Symbol.EnableRLS]=!0,J}})}var I4=(Y,Z,X)=>{return kF(Y,Z,X,void 0)};function x3(...Y){if(Y[0].columns)return new K8(Y[0].columns,Y[0].name);return new K8(Y)}class K8{static[E]="PgPrimaryKeyBuilder";columns;name;constructor(Y,Z){this.columns=Y,this.name=Z}build(Y){return new f3(Y,this.columns,this.name)}}class f3{constructor(Y,Z,X){this.table=Y,this.columns=Z,this.name=X}static[E]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[u0.Symbol.Name]}_${this.columns.map((Y)=>Y.name).join("_")}_pk`}}function O1(Y,Z){if(j7(Z)&&!D5(Y)&&!M(Y,A1)&&!M(Y,w4)&&!M(Y,F0)&&!M(Y,P)&&!M(Y,V1))return new A1(Y,Z);return Y}var l6=(Y,Z)=>{return V`${Y} = ${O1(Z,Y)}`},h3=(Y,Z)=>{return V`${Y} <> ${O1(Z,Y)}`};function B8(...Y){let Z=Y.filter((X)=>X!==void 0);if(Z.length===0)return;if(Z.length===1)return new f(Z);return new f([new m0("("),V.join(Z,new m0(" and ")),new m0(")")])}function k3(...Y){let Z=Y.filter((X)=>X!==void 0);if(Z.length===0)return;if(Z.length===1)return new f(Z);return new f([new m0("("),V.join(Z,new m0(" or ")),new m0(")")])}function b3(Y){return V`not ${Y}`}var y3=(Y,Z)=>{return V`${Y} > ${O1(Z,Y)}`},g3=(Y,Z)=>{return V`${Y} >= ${O1(Z,Y)}`},p3=(Y,Z)=>{return V`${Y} < ${O1(Z,Y)}`},m3=(Y,Z)=>{return V`${Y} <= ${O1(Z,Y)}`};function u3(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return V`false`;return V`${Y} in ${Z.map((X)=>O1(X,Y))}`}return V`${Y} in ${O1(Z,Y)}`}function d3(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return V`true`;return V`${Y} not in ${Z.map((X)=>O1(X,Y))}`}return V`${Y} not in ${O1(Z,Y)}`}function c3(Y){return V`${Y} is null`}function l3(Y){return V`${Y} is not null`}function o3(Y){return V`exists ${Y}`}function i3(Y){return V`not exists ${Y}`}function n3(Y,Z,X){return V`${Y} between ${O1(Z,Y)} and ${O1(X,Y)}`}function r3(Y,Z,X){return V`${Y} not between ${O1(Z,Y)} and ${O1(X,Y)}`}function s3(Y,Z){return V`${Y} like ${Z}`}function t3(Y,Z){return V`${Y} not like ${Z}`}function a3(Y,Z){return V`${Y} ilike ${Z}`}function e3(Y,Z){return V`${Y} not ilike ${Z}`}function YW(Y){return V`${Y} asc`}function ZW(Y){return V`${Y} desc`}class K5{constructor(Y,Z,X){this.sourceTable=Y,this.referencedTable=Z,this.relationName=X,this.referencedTableName=Z[P.Symbol.Name]}static[E]="Relation";referencedTableName;fieldName}class XW{constructor(Y,Z){this.table=Y,this.config=Z}static[E]="Relations"}class K4 extends K5{constructor(Y,Z,X,_){super(Y,Z,X?.relationName);this.config=X,this.isNullable=_}static[E]="One";withFieldName(Y){let Z=new K4(this.sourceTable,this.referencedTable,this.config,this.isNullable);return Z.fieldName=Y,Z}}class T8 extends K5{constructor(Y,Z,X){super(Y,Z,X?.relationName);this.config=X}static[E]="Many";withFieldName(Y){let Z=new T8(this.sourceTable,this.referencedTable,this.config);return Z.fieldName=Y,Z}}function _W(){return{and:B8,between:n3,eq:l6,exists:o3,gt:y3,gte:g3,ilike:a3,inArray:u3,isNull:c3,isNotNull:l3,like:s3,lt:p3,lte:m3,ne:h3,not:b3,notBetween:r3,notExists:i3,notLike:t3,notIlike:e3,notInArray:d3,or:k3,sql:V}}function GW(){return{sql:V,asc:YW,desc:ZW}}function $W(Y,Z){if(Object.keys(Y).length===1&&"default"in Y&&!M(Y.default,P))Y=Y.default;let X={},_={},G={};for(let[$,W]of Object.entries(Y))if(M(W,P)){let H=g4(W),Q=_[H];X[H]=$,G[$]={tsName:$,dbName:W[P.Symbol.Name],schema:W[P.Symbol.Schema],columns:W[P.Symbol.Columns],relations:Q?.relations??{},primaryKey:Q?.primaryKey??[]};for(let z of Object.values(W[P.Symbol.Columns]))if(z.primary)G[$].primaryKey.push(z);let J=W[P.Symbol.ExtraConfigBuilder]?.(W[P.Symbol.ExtraConfigColumns]);if(J){for(let z of Object.values(J))if(M(z,K8))G[$].primaryKey.push(...z.columns)}}else if(M(W,XW)){let H=g4(W.table),Q=X[H],J=W.config(Z(W.table)),z;for(let[F,O]of Object.entries(J))if(Q){let L=G[Q];if(L.relations[F]=O,z)L.primaryKey.push(...z)}else{if(!(H in _))_[H]={relations:{},primaryKey:z};_[H].relations[F]=O}}return{tables:G,tableNamesMap:X}}function bF(Y){return function(X,_){return new K4(Y,X,_,_?.fields.reduce((G,$)=>G&&$.notNull,!0)??!1)}}function yF(Y){return function(X,_){return new T8(Y,X,_)}}function WW(Y,Z,X){if(M(X,K4)&&X.config)return{fields:X.config.fields,references:X.config.references};let _=Z[g4(X.referencedTable)];if(!_)throw Error(`Table "${X.referencedTable[P.Symbol.Name]}" not found in schema`);let G=Y[_];if(!G)throw Error(`Table "${_}" not found in schema`);let $=X.sourceTable,W=Z[g4($)];if(!W)throw Error(`Table "${$[P.Symbol.Name]}" not found in schema`);let H=[];for(let Q of Object.values(G.relations))if(X.relationName&&X!==Q&&Q.relationName===X.relationName||!X.relationName&&Q.referencedTable===X.sourceTable)H.push(Q);if(H.length>1)throw X.relationName?Error(`There are multiple relations with name "${X.relationName}" in table "${_}"`):Error(`There are multiple relations between "${_}" and "${X.sourceTable[P.Symbol.Name]}". Please specify relation name`);if(H[0]&&M(H[0],K4)&&H[0].config)return{fields:H[0].config.references,references:H[0].config.fields};throw Error(`There is not enough information to infer relation "${W}.${X.fieldName}"`)}function HW(Y){return{one:bF(Y),many:yF(Y)}}function o6(Y,Z,X,_,G=($)=>$){let $={};for(let[W,H]of _.entries())if(H.isJson){let Q=Z.relations[H.tsKey],J=X[W],z=typeof J==="string"?JSON.parse(J):J;$[H.tsKey]=M(Q,K4)?z&&o6(Y,Y[H.relationTableTsKey],z,H.selection,G):z.map((F)=>o6(Y,Y[H.relationTableTsKey],F,H.selection,G))}else{let Q=G(X[W]),J=H.field,z;if(M(J,F0))z=J;else if(M(J,f))z=J.decoder;else z=J.sql.decoder;$[H.tsKey]=Q===null?null:z.mapFromDriverValue(Q)}return $}import JE from"os";import QE from"fs";var i6=new Map,B5=new Map,T5=Symbol("OriginError"),A2={};class q1 extends Promise{constructor(Y,Z,X,_,G={}){let $,W;super((H,Q)=>{$=H,W=Q});this.tagged=Array.isArray(Y.raw),this.strings=Y,this.args=Z,this.handler=X,this.canceller=_,this.options=G,this.state=null,this.statement=null,this.resolve=(H)=>(this.active=!1,$(H)),this.reject=(H)=>(this.active=!1,W(H)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[T5]=this.handler.debug?Error():this.tagged&&gF(this.strings)}get origin(){return(this.handler.debug?this[T5].stack:this.tagged&&B5.has(this.strings)?B5.get(this.strings):B5.set(this.strings,this[T5].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(Y=1,Z){if(this.options.simple=!1,typeof Y==="function")Z=Y,Y=1;if(this.cursorRows=Y,typeof Z==="function")return this.cursorFn=Z,this;let X;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};X&&X();let _=new Promise((G,$)=>{this.cursorFn=(W)=>{return G({value:W,done:!1}),new Promise((H)=>X=H)},this.resolve=()=>(this.active=!1,G({done:!0})),this.reject=(W)=>(this.active=!1,$(W))});return this.execute(),_},return(){return X&&X(A2),{done:!0}}})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw Error(".stream has been renamed to .forEach")}forEach(Y){return this.forEachFn=Y,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 gF(Y){if(i6.has(Y))return i6.get(Y);let Z=Error.stackTraceLimit;return Error.stackTraceLimit=4,i6.set(Y,Error()),Error.stackTraceLimit=Z,i6.get(Y)}class R2 extends Error{constructor(Y){super(Y.message);this.name=this.constructor.name,Object.assign(this,Y)}}var f0={connection:JW,postgres:QW,generic:zW,notSupported:UW};function JW(Y,Z,X){let{host:_,port:G}=X||Z,$=Object.assign(Error("write "+Y+" "+(Z.path||_+":"+G)),{code:Y,errno:Y,address:Z.path||_},Z.path?{}:{port:G});return Error.captureStackTrace($,JW),$}function QW(Y){let Z=new R2(Y);return Error.captureStackTrace(Z,QW),Z}function zW(Y,Z){let X=Object.assign(Error(Y+": "+Z),{code:Y});return Error.captureStackTrace(X,zW),X}function UW(Y){let Z=Object.assign(Error(Y+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:Y});return Error.captureStackTrace(Z,UW),Z}var pF={string:{to:25,from:null,serialize:(Y)=>""+Y},number:{to:0,from:[21,23,26,700,701],serialize:(Y)=>""+Y,parse:(Y)=>+Y},json:{to:114,from:[114,3802],serialize:(Y)=>JSON.stringify(Y),parse:(Y)=>JSON.parse(Y)},boolean:{to:16,from:16,serialize:(Y)=>Y===!0?"t":"f",parse:(Y)=>Y==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(Y)=>(Y instanceof Date?Y:new Date(Y)).toISOString(),parse:(Y)=>new Date(Y)},bytea:{to:17,from:17,serialize:(Y)=>"\\x"+Buffer.from(Y).toString("hex"),parse:(Y)=>Buffer.from(Y.slice(2),"hex")}};class s6{then(){C5()}catch(){C5()}finally(){C5()}}class P8 extends s6{constructor(Y){super();this.value=e6(Y)}}class n1 extends s6{constructor(Y,Z,X){super();this.value=Y,this.type=Z,this.array=X}}class t6 extends s6{constructor(Y,Z){super();this.first=Y,this.rest=Z}build(Y,Z,X,_){let G=mF.map(([$,W])=>({fn:W,i:Y.search($)})).sort(($,W)=>$.i-W.i).pop();return G.i===-1?v5(this.first,_):G.fn(this.first,this.rest,Z,X,_)}}function a6(Y,Z,X,_){let G=Y instanceof n1?Y.value:Y;if(G===void 0){if(Y instanceof n1?Y.value=_.transform.undefined:G=Y=_.transform.undefined,G===void 0)throw f0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+X.push(Y instanceof n1?(Z.push(Y.value),Y.array?Y.array[Y.type||r6(Y.value)]||Y.type||OW(Y.value):Y.type):(Z.push(Y),r6(Y)))}var EW=LW(pF);function P5(Y,Z,X,_,G,$){for(let W=1;W<Y.strings.length;W++)Z+=S5(Z,X,_,G,$)+Y.strings[W],X=Y.args[W];return Z}function S5(Y,Z,X,_,G){return Z instanceof t6?Z.build(Y,X,_,G):Z instanceof q1?j5(Z,X,_,G):Z instanceof P8?Z.value:Z&&Z[0]instanceof q1?Z.reduce(($,W)=>$+" "+j5(W,X,_,G),""):a6(Z,X,_,G)}function j5(Y,Z,X,_){return Y.fragment=!0,P5(Y,Y.strings[0],Y.args[0],Z,X,_)}function VW(Y,Z,X,_,G){return Y.map(($)=>"("+_.map((W)=>S5("values",$[W],Z,X,G)).join(",")+")").join(",")}function FW(Y,Z,X,_,G){let $=Array.isArray(Y[0]),W=Z.length?Z.flat():Object.keys($?Y[0]:Y);return VW($?Y:[Y],X,_,W,G)}function n6(Y,Z,X,_,G){if(typeof Y==="string"&&(Y=[Y].concat(Z)),Array.isArray(Y))return v5(Y,G);let $;return(Z.length?Z.flat():Object.keys(Y)).map((H)=>{return $=Y[H],($ instanceof q1?j5($,X,_,G):$ instanceof P8?$.value:a6($,X,_,G))+" as "+e6(G.transform.column.to?G.transform.column.to(H):H)}).join(",")}var mF=Object.entries({values:FW,in:(...Y)=>{let Z=FW(...Y);return Z==="()"?"(null)":Z},select:n6,as:n6,returning:n6,"\\(":n6,update(Y,Z,X,_,G){return(Z.length?Z.flat():Object.keys(Y)).map(($)=>e6(G.transform.column.to?G.transform.column.to($):$)+"="+S5("values",Y[$],X,_,G))},insert(Y,Z,X,_,G){let $=Z.length?Z.flat():Object.keys(Array.isArray(Y)?Y[0]:Y);return"("+v5($,G)+")values"+VW(Array.isArray(Y)?Y:[Y],X,_,$,G)}}).map(([Y,Z])=>[new RegExp("((?:^|[\\s(])"+Y+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),Z]);function C5(){throw f0.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:uF,parsers:dF}=EW;function OW(Y){if(Array.isArray(Y))return OW(Y[0]);return typeof Y==="string"?1009:0}var DW=function(Y){let Z=LW(Y||{});return{serializers:Object.assign({},uF,Z.serializers),parsers:Object.assign({},dF,Z.parsers)}};function LW(Y){return Object.keys(Y).reduce((Z,X)=>{if(Y[X].from&&[].concat(Y[X].from).forEach((_)=>Z.parsers[_]=Y[X].parse),Y[X].serialize)Z.serializers[Y[X].to]=Y[X].serialize,Y[X].from&&[].concat(Y[X].from).forEach((_)=>Z.serializers[_]=Y[X].serialize);return Z},{parsers:{},serializers:{}})}function v5(Y,{transform:{column:Z}}){return Y.map((X)=>e6(Z.to?Z.to(X):X)).join(",")}var e6=function(Z){return'"'+Z.replace(/"/g,'""').replace(/\./g,'"."')+'"'},r6=function Y(Z){return Z instanceof n1?Z.type:Z instanceof Date?1184:Z instanceof Uint8Array?17:Z===!0||Z===!1?16:typeof Z==="bigint"?20:Array.isArray(Z)?Y(Z[0]):0},cF=/\\/g,lF=/"/g;function oF(Y){return Y.replace(cF,"\\\\").replace(lF,"\\\"")}var MW=function Y(Z,X,_,G){if(Array.isArray(Z)===!1)return Z;if(!Z.length)return"{}";let $=Z[0],W=G===1020?";":",";if(Array.isArray($)&&!$.type)return"{"+Z.map((H)=>Y(H,X,_,G)).join(W)+"}";return"{"+Z.map((H)=>{if(H===void 0){if(H=_.transform.undefined,H===void 0)throw f0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return H===null?"null":'"'+oF(X?X(H.type?H.value:H):""+H)+'"'}).join(W)+"}"},q5={i:0,char:null,str:"",quoted:!1,last:0},AW=function(Z,X,_){return q5.i=q5.last=0,RW(q5,Z,X,_)};function RW(Y,Z,X,_){let G=[],$=_===1020?";":",";for(;Y.i<Z.length;Y.i++){if(Y.char=Z[Y.i],Y.quoted)if(Y.char==="\\")Y.str+=Z[++Y.i];else if(Y.char==='"')G.push(X?X(Y.str):Y.str),Y.str="",Y.quoted=Z[Y.i+1]==='"',Y.last=Y.i+2;else Y.str+=Y.char;else if(Y.char==='"')Y.quoted=!0;else if(Y.char==="{")Y.last=++Y.i,G.push(RW(Y,Z,X,_));else if(Y.char==="}"){Y.quoted=!1,Y.last<Y.i&&G.push(X?X(Z.slice(Y.last,Y.i)):Z.slice(Y.last,Y.i)),Y.last=Y.i+1;break}else if(Y.char===$&&Y.p!=="}"&&Y.p!=='"')G.push(X?X(Z.slice(Y.last,Y.i)):Z.slice(Y.last,Y.i)),Y.last=Y.i+1;Y.p=Y.char}return Y.last<Y.i&&G.push(X?X(Z.slice(Y.last,Y.i+1)):Z.slice(Y.last,Y.i+1)),G}var p4=(Y)=>{let Z=Y[0];for(let X=1;X<Y.length;X++)Z+=Y[X]==="_"?Y[++X].toUpperCase():Y[X];return Z},m4=(Y)=>{let Z=Y[0].toUpperCase();for(let X=1;X<Y.length;X++)Z+=Y[X]==="_"?Y[++X].toUpperCase():Y[X];return Z},u4=(Y)=>Y.replace(/_/g,"-"),C8=(Y)=>Y.replace(/([A-Z])/g,"_$1").toLowerCase(),q8=(Y)=>(Y.slice(0,1)+Y.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),j8=(Y)=>Y.replace(/-/g,"_");function x5(Y){return function Z(X,_){return typeof X==="object"&&X!==null&&(_.type===114||_.type===3802)?Array.isArray(X)?X.map((G)=>Z(G,_)):Object.entries(X).reduce((G,[$,W])=>Object.assign(G,{[Y($)]:Z(W,_)}),{}):X}}p4.column={from:p4};p4.value={from:x5(p4)};C8.column={to:C8};var f5={...p4};f5.column.to=C8;m4.column={from:m4};m4.value={from:x5(m4)};q8.column={to:q8};var h5={...m4};h5.column.to=q8;u4.column={from:u4};u4.value={from:x5(u4)};j8.column={to:j8};var k5={...u4};k5.column.to=j8;import wW from"net";import sF from"tls";import S8 from"crypto";import b5 from"stream";import{performance as NW}from"perf_hooks";class d4 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 R1=iF;function iF(Y=[]){let Z=Y.slice(),X=0;return{get length(){return Z.length-X},remove:(_)=>{let G=Z.indexOf(_);return G===-1?null:(Z.splice(G,1),_)},push:(_)=>(Z.push(_),_),shift:()=>{let _=Z[X++];if(X===Z.length)X=0,Z=[];else Z[X-1]=void 0;return _}}}var a0=Buffer.allocUnsafe(256),nF="BCcDdEFfHPpQSX".split("").reduce((Y,Z)=>{let X=Z.charCodeAt(0);return Y[Z]=()=>{return a0[0]=X,z0.i=5,z0},Y},{}),z0=Object.assign(rF,nF,{N:String.fromCharCode(0),i:0,inc(Y){return z0.i+=Y,z0},str(Y){let Z=Buffer.byteLength(Y);return YY(Z),z0.i+=a0.write(Y,z0.i,Z,"utf8"),z0},i16(Y){return YY(2),a0.writeUInt16BE(Y,z0.i),z0.i+=2,z0},i32(Y,Z){if(Z||Z===0)return a0.writeUInt32BE(Y,Z),z0;return YY(4),a0.writeUInt32BE(Y,z0.i),z0.i+=4,z0},z(Y){return YY(Y),a0.fill(0,z0.i,z0.i+Y),z0.i+=Y,z0},raw(Y){return a0=Buffer.concat([a0.subarray(0,z0.i),Y]),z0.i=a0.length,z0},end(Y=1){a0.writeUInt32BE(z0.i-Y,Y);let Z=a0.subarray(0,z0.i);return z0.i=0,a0=Buffer.allocUnsafe(256),Z}}),d=z0;function YY(Y){if(a0.length-z0.i<Y){let Z=a0,X=Z.length;a0=Buffer.allocUnsafe(X+(X>>1)+Y),Z.copy(a0)}}function rF(){return z0.i=0,z0}var p5=BW,tF=1,B4=d().S().end(),IW=d().H().end(),aF=d().i32(8).i32(80877103).end(8),eF=Buffer.concat([d().E().str(d.N).i32(0).end(),B4]),YE=d().D().str("S").str(d.N).end(),w2=()=>{},ZE=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),XE={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 BW(Y,Z={},{onopen:X=w2,onend:_=w2,onclose:G=w2}={}){let{ssl:$,max:W,user:H,host:Q,port:J,database:z,parsers:F,transform:O,onnotice:L,onnotify:w,onparameter:R,max_pipeline:b,keep_alive:x,backoff:h,target_session_attrs:g}=Y,B=R1(),K=tF++,C={pid:null,secret:null},q=g5(VY,Y.idle_timeout),c=g5(VY,Y.max_lifetime),n=g5(nW,Y.connect_timeout),N=null,s,p=new d4,t=Buffer.alloc(0),I0=Y.fetch_types,h0={},$1={},r1=Math.random().toString(36).slice(2),T=1,m=0,W0=0,V0=0,k0=0,a=0,Q0=0,v0=0,B0=null,A0=null,o0=!1,O0=null,j1=null,c0=null,z4=null,b0=null,R0=null,P1=null,u1=null,v=null,B2=null,i0={queue:Z.closed,idleTimer:q,connect(U){c0=U,EX()},terminate:C2,execute:T2,cancel:cW,end:VY,count:0,id:K};return Z.closed&&Z.closed.push(i0),i0;async function dW(){let U;try{U=Y.socket?await Promise.resolve(Y.socket(Y)):new wW.Socket}catch(D){i4(D);return}return U.on("error",i4),U.on("close",VX),U.on("drain",UX),U}async function cW({pid:U,secret:D},l,H0){try{s=d().i32(16).i32(80877102).i32(U).i32(D).end(16),await FX(),N.once("error",H0),N.once("close",l)}catch(C0){H0(C0)}}function T2(U){if(o0)return g8(U,f0.connection("CONNECTION_DESTROYED",Y));if(U.cancelled)return;try{return U.state=C,v?B.push(U):(v=U,v.active=!0),iW(U),l0(lW(U))&&!U.describeFirst&&!U.cursorFn&&B.length<b&&(!U.options.onexecute||U.options.onexecute(i0))}catch(D){return B.length===0&&l0(B4),d1(D),!0}}function lW(U){if(U.parameters.length>=65534)throw f0.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return U.options.simple?d().Q().str(U.statement.string+d.N).end():U.describeFirst?Buffer.concat([JX(U),IW]):U.prepare?U.prepared?y8(U):Buffer.concat([JX(U),y8(U)]):oW(U)}function JX(U){return Buffer.concat([DX(U.statement.string,U.parameters,U.statement.types,U.statement.name),vH("S",U.statement.name)])}function y8(U){return Buffer.concat([SH(U.parameters,U.statement.types,U.statement.name,U.cursorName),U.cursorFn?LX("",U.cursorRows):eF])}function oW(U){return Buffer.concat([DX(U.statement.string,U.parameters,U.statement.types),YE,y8(U)])}function iW(U){let D=[],l=[],H0=P5(U,U.strings[0],U.args[0],D,l,Y);!U.tagged&&U.args.forEach((C0)=>a6(C0,D,l,Y)),U.prepare=Y.prepare&&("prepare"in U.options?U.options.prepare:!0),U.string=H0,U.signature=U.prepare&&l+H0,U.onlyDescribe&&delete $1[U.signature],U.parameters=U.parameters||D,U.prepared=U.prepare&&U.signature in $1,U.describeFirst=U.onlyDescribe||D.length&&!U.prepared,U.statement=U.prepared?$1[U.signature]:{string:H0,types:l,name:U.prepare?r1+T++:""},typeof Y.debug==="function"&&Y.debug(K,H0,D,l)}function l0(U,D){if(R0=R0?Buffer.concat([R0,U]):Buffer.from(U),D||R0.length>=1024)return QX(D);return A0===null&&(A0=setImmediate(QX)),!0}function QX(U){let D=N.write(R0,U);return A0!==null&&clearImmediate(A0),R0=A0=null,D}function nW(){d1(f0.connection("CONNECT_TIMEOUT",Y,N)),N.destroy()}async function zX(){if(l0(aF),!await new Promise((D)=>N.once("data",(l)=>D(l[0]===83)))&&$==="prefer")return o4();N.removeAllListeners(),N=sF.connect({socket:N,servername:wW.isIP(N.host)?void 0:N.host,...$==="require"||$==="allow"||$==="prefer"?{rejectUnauthorized:!1}:$==="verify-full"?{}:typeof $==="object"?$:{}}),N.on("secureConnect",o4),N.on("error",i4),N.on("close",VX),N.on("drain",UX)}function UX(){!v&&X(i0)}function EY(U){if(O0){if(O0.push(U),W0-=U.length,W0>0)return}t=O0?Buffer.concat(O0,a-W0):t.length===0?U:Buffer.concat([t,U],t.length+U.length);while(t.length>4){if(a=t.readUInt32BE(1),a>=t.length){W0=a-t.length,O0=[t];break}try{rW(t.subarray(0,a+1))}catch(D){v&&(v.cursorFn||v.describeFirst)&&l0(B4),d1(D)}t=t.subarray(a+1),W0=0,O0=null}}async function FX(){if(o0=!1,h0={},N||(N=await dW()),!N)return;if(n.start(),Y.socket)return $?zX():o4();if(N.on("connect",$?zX:o4),Y.path)return N.connect(Y.path);N.ssl=$,N.connect(J[V0],Q[V0]),N.host=Q[V0],N.port=J[V0],V0=(V0+1)%J.length}function EX(){setTimeout(FX,m?m+Q0-NW.now():0)}function o4(){try{$1={},I0=Y.fetch_types,r1=Math.random().toString(36).slice(2),T=1,c.start(),N.on("data",EY),x&&N.setKeepAlive&&N.setKeepAlive(!0,1000*x);let U=fH();l0(U)}catch(U){i4(U)}}function i4(U){if(i0.queue===Z.connecting&&Y.host[k0+1])return;d1(U);while(B.length)g8(B.shift(),U)}function d1(U){b0&&(b0.destroy(U),b0=null),v&&g8(v,U),c0&&(g8(c0,U),c0=null)}function g8(U,D){if(U.reserve)return U.reject(D);if(!D||typeof D!=="object")D=Error(D);"query"in D||"parameters"in D||Object.defineProperties(D,{stack:{value:D.stack+U.origin.replace(/.*\n/,`
67
+ `),enumerable:Y.debug},query:{value:U.string,enumerable:Y.debug},parameters:{value:U.parameters,enumerable:Y.debug},args:{value:U.args,enumerable:Y.debug},types:{value:U.statement&&U.statement.types,enumerable:Y.debug}}),U.reject(D)}function VY(){return z4||(!i0.reserved&&_(i0),!i0.reserved&&!c0&&!v&&B.length===0?(C2(),new Promise((U)=>N&&N.readyState!=="closed"?N.once("close",U):U())):z4=new Promise((U)=>P1=U))}function C2(){if(o0=!0,b0||v||c0||B.length)i4(f0.connection("CONNECTION_DESTROYED",Y));if(clearImmediate(A0),N)N.removeListener("data",EY),N.removeListener("connect",o4),N.readyState==="open"&&N.end(d().X().end());P1&&(P1(),z4=P1=null)}async function VX(U){if(t=Buffer.alloc(0),W0=0,O0=null,clearImmediate(A0),N.removeListener("data",EY),N.removeListener("connect",o4),q.cancel(),c.cancel(),n.cancel(),N.removeAllListeners(),N=null,c0)return EX();!U&&(v||B.length)&&i4(f0.connection("CONNECTION_CLOSED",Y,N)),m=NW.now(),U&&Y.shared.retries++,Q0=(typeof h==="function"?h(Y.shared.retries):h)*1000,G(i0,f0.connection("CONNECTION_CLOSED",Y,N))}function rW(U,D=U[0]){(D===68?sW:D===100?IH:D===65?LH:D===83?tW:D===90?aW:D===67?eW:D===50?OX:D===49?YH:D===116?ZH:D===84?XH:D===82?_H:D===110?QH:D===75?zH:D===69?OH:D===115?MH:D===51?AH:D===71?RH:D===78?BH:D===72?wH:D===99?KH:D===73?TH:D===86?CH:D===118?qH:D===87?NH:jH)(U)}function sW(U){let D=7,l,H0,C0,n0=v.isRaw?Array(v.statement.columns.length):{};for(let e0=0;e0<v.statement.columns.length;e0++)H0=v.statement.columns[e0],l=U.readInt32BE(D),D+=4,C0=l===-1?null:v.isRaw===!0?U.subarray(D,D+=l):H0.parser===void 0?U.toString("utf8",D,D+=l):H0.parser.array===!0?H0.parser(U.toString("utf8",D+1,D+=l)):H0.parser(U.toString("utf8",D,D+=l)),v.isRaw?n0[e0]=v.isRaw===!0?C0:O.value.from?O.value.from(C0,H0):C0:n0[H0.name]=O.value.from?O.value.from(C0,H0):C0;v.forEachFn?v.forEachFn(O.row.from?O.row.from(n0):n0,p):p[v0++]=O.row.from?O.row.from(n0):n0}function tW(U){let[D,l]=U.toString("utf8",5,U.length-1).split(d.N);if(h0[D]=l,Y.parameters[D]!==l)Y.parameters[D]=l,R&&R(D,l)}function aW(U){if(v&&v.options.simple&&v.resolve(j1||p),v=j1=null,p=new d4,n.cancel(),c0){if(g){if(!h0.in_hot_standby||!h0.default_transaction_read_only)return VH();else if(EH(g,h0))return C2()}if(I0)return c0.reserve&&(c0=null),UH();c0&&!c0.reserve&&T2(c0),Y.shared.retries=k0=0,c0=null;return}while(B.length&&(v=B.shift())&&(v.active=!0,v.cancelled))BW(Y).cancel(v.state,v.cancelled.resolve,v.cancelled.reject);if(v)return;i0.reserved?!i0.reserved.release&&U[5]===73?z4?C2():(i0.reserved=null,X(i0)):i0.reserved():z4?C2():X(i0)}function eW(U){v0=0;for(let D=U.length-1;D>0;D--){if(U[D]===32&&U[D+1]<58&&p.count===null)p.count=+U.toString("utf8",D+1,U.length-1);if(U[D-1]>=65){p.command=U.toString("utf8",5,D),p.state=C;break}}if(B2&&(B2(),B2=null),p.command==="BEGIN"&&W!==1&&!i0.reserved)return d1(f0.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(v.options.simple)return OX();if(v.cursorFn)p.count&&v.cursorFn(p),l0(B4);v.resolve(p)}function YH(){v.parsing=!1}function OX(){!p.statement&&(p.statement=v.statement),p.columns=v.statement.columns}function ZH(U){let D=U.readUInt16BE(5);for(let l=0;l<D;++l)!v.statement.types[l]&&(v.statement.types[l]=U.readUInt32BE(7+l*4));v.prepare&&($1[v.signature]=v.statement),v.describeFirst&&!v.onlyDescribe&&(l0(y8(v)),v.describeFirst=!1)}function XH(U){if(p.command)j1=j1||[p],j1.push(p=new d4),p.count=null,v.statement.columns=null;let D=U.readUInt16BE(5),l=7,H0;v.statement.columns=Array(D);for(let C0=0;C0<D;++C0){H0=l;while(U[l++]!==0);let n0=U.readUInt32BE(l),e0=U.readUInt16BE(l+4),U4=U.readUInt32BE(l+6);v.statement.columns[C0]={name:O.column.from?O.column.from(U.toString("utf8",H0,l-1)):U.toString("utf8",H0,l-1),parser:F[U4],table:n0,number:e0,type:U4},l+=18}if(p.statement=v.statement,v.onlyDescribe)return v.resolve(v.statement),l0(B4)}async function _H(U,D=U.readUInt32BE(5)){(D===3?GH:D===5?$H:D===10?WH:D===11?HH:D===12?JH:D!==0?PH:w2)(U,D)}async function GH(){let U=await OY();l0(d().p().str(U).z(1).end())}async function $H(U){let D="md5"+await KW(Buffer.concat([Buffer.from(await KW(await OY()+H)),U.subarray(9)]));l0(d().p().str(D).z(1).end())}async function WH(){u1=(await S8.randomBytes(18)).toString("base64"),d().p().str("SCRAM-SHA-256"+d.N);let U=d.i;l0(d.inc(4).str("n,,n=*,r="+u1).i32(d.i-U-4,U).end())}async function HH(U){let D=U.toString("utf8",9).split(",").reduce((e0,U4)=>(e0[U4[0]]=U4.slice(2),e0),{}),l=await S8.pbkdf2Sync(await OY(),Buffer.from(D.s,"base64"),parseInt(D.i),32,"sha256"),H0=await ZY(l,"Client Key"),C0="n=*,r="+u1+",r="+D.r+",s="+D.s+",i="+D.i+",c=biws,r="+D.r;B0=(await ZY(await ZY(l,"Server Key"),C0)).toString("base64");let n0="c=biws,r="+D.r+",p="+GE(H0,Buffer.from(await ZY(await _E(H0),C0))).toString("base64");l0(d().p().str(n0).end())}function JH(U){if(U.toString("utf8",9).split(d.N,1)[0].slice(2)===B0)return;d1(f0.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),N.destroy()}function OY(){return Promise.resolve(typeof Y.pass==="function"?Y.pass():Y.pass)}function QH(){if(p.statement=v.statement,p.statement.columns=[],v.onlyDescribe)return v.resolve(v.statement),l0(B4)}function zH(U){C.pid=U.readUInt32BE(5),C.secret=U.readUInt32BE(9)}async function UH(){I0=!1,(await new q1([`
68
68
  select b.oid, b.typarray
69
69
  from pg_catalog.pg_type a
70
70
  left join pg_catalog.pg_type b on b.oid = a.typelem
@@ -74,7 +74,7 @@ params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrac
74
74
  `],[],T2)).forEach(({oid:D,typarray:l})=>FH(D,l))}function FH(U,D){if(!!Y.parsers[D]&&!!Y.serializers[D])return;let l=Y.parsers[U];Y.shared.typeArrayMap[U]=D,Y.parsers[D]=(H0)=>AW(H0,l,D),Y.parsers[D].array=!0,Y.serializers[D]=(H0)=>MW(H0,Y.serializers[U],Y,D)}function EH(U,D){return U==="read-write"&&D.default_transaction_read_only==="on"||U==="read-only"&&D.default_transaction_read_only==="off"||U==="primary"&&D.in_hot_standby==="on"||U==="standby"&&D.in_hot_standby==="off"||U==="prefer-standby"&&D.in_hot_standby==="off"&&Y.host[k0]}function VH(){let U=new q1([`
75
75
  show transaction_read_only;
76
76
  select pg_catalog.pg_is_in_recovery()
77
- `],[],T2,null,{simple:!0});U.resolve=([[D],[l]])=>{h0.default_transaction_read_only=D.transaction_read_only,h0.in_hot_standby=l.pg_is_in_recovery?"on":"off"},U.execute()}function OH(U){v&&(v.cursorFn||v.describeFirst)&&l0(B4);let D=f0.postgres(y5(U));v&&v.retried?d1(v.retried):v&&v.prepared&&ZE.has(D.routine)?DH(v,D):d1(D)}function DH(U,D){delete $1[U.signature],U.retried=D,T2(U)}function LH(U){if(!w)return;let D=9;while(U[D++]!==0);w(U.toString("utf8",9,D-1),U.toString("utf8",D,U.length-1))}async function MH(){try{let U=await Promise.resolve(v.cursorFn(p));v0=0,U===A2?l0(xH(v.portal)):(p=new d4,l0(LX("",v.cursorRows)))}catch(U){l0(B4),v.reject(U)}}function AH(){p.count&&v.cursorFn(p),v.resolve(p)}function RH(){b0=new b5.Writable({autoDestroy:!0,write(U,D,l){N.write(d().d().raw(U).end(),l)},destroy(U,D){D(U),N.write(d().f().str(U+d.N).end()),b0=null},final(U){N.write(d().c().end()),B2=U}}),v.resolve(b0)}function wH(){b0=new b5.Readable({read(){N.resume()}}),v.resolve(b0)}function NH(){b0=new b5.Duplex({autoDestroy:!0,read(){N.resume()},write(U,D,l){N.write(d().d().raw(U).end(),l)},destroy(U,D){D(U),N.write(d().f().str(U+d.N).end()),b0=null},final(U){N.write(d().c().end()),B2=U}}),v.resolve(b0)}function IH(U){b0&&(b0.push(U.subarray(5))||N.pause())}function KH(){b0&&b0.push(null),b0=null}function BH(U){L?L(y5(U)):console.log(y5(U))}function TH(){}function CH(){d1(f0.notSupported("FunctionCallResponse"))}function qH(){d1(f0.notSupported("NegotiateProtocolVersion"))}function jH(U){console.error("Postgres.js : Unknown Message:",U[0])}function PH(U,D){console.error("Postgres.js : Unknown Auth:",D)}function SH(U,D,l="",H0=""){let C0,n0;return d().B().str(H0+d.N).str(l+d.N).i16(0).i16(U.length),U.forEach((e0,U4)=>{if(e0===null)return d.i32(4294967295);n0=D[U4],U[U4]=e0=n0 in Y.serializers?Y.serializers[n0](e0):""+e0,C0=d.i,d.inc(4).str(e0).i32(d.i-C0-4,C0)}),d.i16(0),d.end()}function DX(U,D,l,H0=""){return d().P().str(H0+d.N).str(U+d.N).i16(D.length),D.forEach((C0,n0)=>d.i32(l[n0]||0)),d.end()}function vH(U,D=""){return d().D().str(U).str(D+d.N).end()}function LX(U="",D=0){return Buffer.concat([d().E().str(U+d.N).i32(D).end(),IW])}function xH(U=""){return Buffer.concat([d().C().str("P").str(U+d.N).end(),d().S().end()])}function fH(){return s||d().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:H,database:z,client_encoding:"UTF8"},Y.connection)).filter(([,U])=>U).map(([U,D])=>U+d.N+D).join(d.N)).z(2).end(0)}}function y5(Y){let Z={},X=5;for(let _=5;_<Y.length-1;_++)if(Y[_]===0)Z[XE[Y[X]]]=Y.toString("utf8",X+1,_),X=_+1;return Z}function KW(Y){return S8.createHash("md5").update(Y).digest("hex")}function ZY(Y,Z){return S8.createHmac("sha256",Y).update(Z).digest()}function _E(Y){return S8.createHash("sha256").update(Y).digest()}function GE(Y,Z){let X=Math.max(Y.length,Z.length),_=Buffer.allocUnsafe(X);for(let G=0;G<X;G++)_[G]=Y[G]^Z[G];return _}function g5(Y,Z){if(Z=typeof Z==="function"?Z():Z,!Z)return{cancel:w2,start:w2};let X;return{cancel(){X&&(clearTimeout(X),X=null)},start(){X&&clearTimeout(X),X=setTimeout(_,Z*1000,arguments)}};function _(G){Y.apply(null,G),X=null}}var TW=()=>{};function m5(Y,Z){let X=new Map,_="postgresjs_"+Math.random().toString(36).slice(2),G={},$,W,H=!1,Q=F.sql=Y({...Z,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...Z.connection,replication:"database"},onclose:async function(){if(H)return;W=null,G.pid=G.secret=void 0,O(await L(Q,_,Z.publications)),X.forEach((R)=>R.forEach(({onsubscribe:b})=>b()))},no_subscribe:!0}),J=Q.end,z=Q.close;return Q.end=async()=>{return H=!0,W&&await new Promise((R)=>(W.once("close",R),W.end())),J()},Q.close=async()=>{return W&&await new Promise((R)=>(W.once("close",R),W.end())),z()},F;async function F(R,b,x=TW,h=TW){if(R=HE(R),!$)$=L(Q,_,Z.publications);let g={fn:b,onsubscribe:x},B=X.has(R)?X.get(R).add(g):X.set(R,new Set([g])).get(R),K=()=>{B.delete(g),B.size===0&&X.delete(R)};return $.then((C)=>{return O(C),x(),W&&W.on("error",h),{unsubscribe:K,state:G,sql:Q}})}function O(R){W=R.stream,G.pid=R.state.pid,G.secret=R.state.secret}async function L(R,b,x){if(!x)throw new Error("Missing publication names");let h=await R.unsafe(`CREATE_REPLICATION_SLOT ${b} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[g]=h,B=await R.unsafe(`START_REPLICATION SLOT ${b} LOGICAL ${g.consistent_point} (proto_version '1', publication_names '${x}')`).writable(),K={lsn:Buffer.concat(g.consistent_point.split("/").map((N)=>Buffer.from(("00000000"+N).slice(-8),"hex")))};return B.on("data",q),B.on("error",C),B.on("close",R.close),{stream:B,state:h.state};function C(N){console.error("Unexpected error during logical streaming - reconnecting",N)}function q(N){if(N[0]===119)WE(N.subarray(25),K,R.options.parsers,c,Z.transform);else if(N[0]===107&&N[17])K.lsn=N.subarray(1,9),n()}function c(N,s){let p=s.relation.schema+"."+s.relation.table;w("*",N,s),w("*:"+p,N,s),s.relation.keys.length&&w("*:"+p+"="+s.relation.keys.map((t)=>N[t.name]),N,s),w(s.command,N,s),w(s.command+":"+p,N,s),s.relation.keys.length&&w(s.command+":"+p+"="+s.relation.keys.map((t)=>N[t.name]),N,s)}function n(){let N=Buffer.alloc(34);N[0]=114,N.fill(K.lsn,1),N.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),B.write(N)}}function w(R,b,x){X.has(R)&&X.get(R).forEach(({fn:h})=>h(b,x,R))}}function $E(Y){return new Date(Date.UTC(2000,0,1)+Number(Y/BigInt(1000)))}function WE(Y,Z,X,_,G){let $=(W,[H,Q])=>(W[H.charCodeAt(0)]=Q,W);Object.entries({R:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)]={schema:W.toString("utf8",H+=4,H=W.indexOf(0,H))||"pg_catalog",table:W.toString("utf8",H+1,H=W.indexOf(0,H+1)),columns:Array(W.readUInt16BE(H+=2)),keys:[]};H+=2;let J=0,z;while(H<W.length)z=Q.columns[J++]={key:W[H++],name:G.column.from?G.column.from(W.toString("utf8",H,H=W.indexOf(0,H))):W.toString("utf8",H,H=W.indexOf(0,H)),type:W.readUInt32BE(H+=1),parser:X[W.readUInt32BE(H)],atttypmod:W.readUInt32BE(H+=4)},z.key&&Q.keys.push(z),H+=4},Y:()=>{},O:()=>{},B:(W)=>{Z.date=$E(W.readBigInt64BE(9)),Z.lsn=W.subarray(1,9)},I:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)],{row:J}=XY(W,Q.columns,H+=7,G);_(J,{command:"insert",relation:Q})},D:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)];H+=4;let J=W[H]===75;_(J||W[H]===79?XY(W,Q.columns,H+=3,G).row:null,{command:"delete",relation:Q,key:J})},U:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)];H+=4;let J=W[H]===75,z=J||W[H]===79?XY(W,Q.columns,H+=3,G):null;z&&(H=z.i);let{row:F}=XY(W,Q.columns,H+3,G);_(F,{command:"update",relation:Q,key:J,old:z&&z.row})},T:()=>{},C:()=>{}}).reduce($,{})[Y[0]](Y)}function XY(Y,Z,X,_){let G,$,W,H=_.raw?new Array(Z.length):{};for(let Q=0;Q<Z.length;Q++)G=Y[X++],$=Z[Q],W=G===110?null:G===117?void 0:$.parser===void 0?Y.toString("utf8",X+4,X+=4+Y.readUInt32BE(X)):$.parser.array===!0?$.parser(Y.toString("utf8",X+5,X+=4+Y.readUInt32BE(X))):$.parser(Y.toString("utf8",X+4,X+=4+Y.readUInt32BE(X))),_.raw?H[Q]=_.raw===!0?W:_.value.from?_.value.from(W,$):W:H[$.name]=_.value.from?_.value.from(W,$):W;return{i:X,row:_.row.from?_.row.from(H):H}}function HE(Y){let Z=Y.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!Z)throw new Error("Malformed subscribe pattern: "+Y);let[,X,_,G]=Z;return(X||"*")+(_?":"+(_.indexOf(".")===-1?"public."+_:_):"")+(G?"="+G:"")}import CW from"stream";function u5(Y,Z,X=393216){return new Promise(async(_,G)=>{await Y.begin(async($)=>{let W;!Z&&([{oid:Z}]=await $`select lo_creat(-1) as oid`);let[{fd:H}]=await $`select lo_open(${Z}, ${X}) as fd`,Q={writable:z,readable:J,close:()=>$`select lo_close(${H})`.then(W),tell:()=>$`select lo_tell64(${H})`,read:(F)=>$`select loread(${H}, ${F}) as data`,write:(F)=>$`select lowrite(${H}, ${F})`,truncate:(F)=>$`select lo_truncate64(${H}, ${F})`,seek:(F,O=0)=>$`select lo_lseek64(${H}, ${F}, ${O})`,size:()=>$`
77
+ `],[],T2,null,{simple:!0});U.resolve=([[D],[l]])=>{h0.default_transaction_read_only=D.transaction_read_only,h0.in_hot_standby=l.pg_is_in_recovery?"on":"off"},U.execute()}function OH(U){v&&(v.cursorFn||v.describeFirst)&&l0(B4);let D=f0.postgres(y5(U));v&&v.retried?d1(v.retried):v&&v.prepared&&ZE.has(D.routine)?DH(v,D):d1(D)}function DH(U,D){delete $1[U.signature],U.retried=D,T2(U)}function LH(U){if(!w)return;let D=9;while(U[D++]!==0);w(U.toString("utf8",9,D-1),U.toString("utf8",D,U.length-1))}async function MH(){try{let U=await Promise.resolve(v.cursorFn(p));v0=0,U===A2?l0(xH(v.portal)):(p=new d4,l0(LX("",v.cursorRows)))}catch(U){l0(B4),v.reject(U)}}function AH(){p.count&&v.cursorFn(p),v.resolve(p)}function RH(){b0=new b5.Writable({autoDestroy:!0,write(U,D,l){N.write(d().d().raw(U).end(),l)},destroy(U,D){D(U),N.write(d().f().str(U+d.N).end()),b0=null},final(U){N.write(d().c().end()),B2=U}}),v.resolve(b0)}function wH(){b0=new b5.Readable({read(){N.resume()}}),v.resolve(b0)}function NH(){b0=new b5.Duplex({autoDestroy:!0,read(){N.resume()},write(U,D,l){N.write(d().d().raw(U).end(),l)},destroy(U,D){D(U),N.write(d().f().str(U+d.N).end()),b0=null},final(U){N.write(d().c().end()),B2=U}}),v.resolve(b0)}function IH(U){b0&&(b0.push(U.subarray(5))||N.pause())}function KH(){b0&&b0.push(null),b0=null}function BH(U){L?L(y5(U)):console.log(y5(U))}function TH(){}function CH(){d1(f0.notSupported("FunctionCallResponse"))}function qH(){d1(f0.notSupported("NegotiateProtocolVersion"))}function jH(U){console.error("Postgres.js : Unknown Message:",U[0])}function PH(U,D){console.error("Postgres.js : Unknown Auth:",D)}function SH(U,D,l="",H0=""){let C0,n0;return d().B().str(H0+d.N).str(l+d.N).i16(0).i16(U.length),U.forEach((e0,U4)=>{if(e0===null)return d.i32(4294967295);n0=D[U4],U[U4]=e0=n0 in Y.serializers?Y.serializers[n0](e0):""+e0,C0=d.i,d.inc(4).str(e0).i32(d.i-C0-4,C0)}),d.i16(0),d.end()}function DX(U,D,l,H0=""){return d().P().str(H0+d.N).str(U+d.N).i16(D.length),D.forEach((C0,n0)=>d.i32(l[n0]||0)),d.end()}function vH(U,D=""){return d().D().str(U).str(D+d.N).end()}function LX(U="",D=0){return Buffer.concat([d().E().str(U+d.N).i32(D).end(),IW])}function xH(U=""){return Buffer.concat([d().C().str("P").str(U+d.N).end(),d().S().end()])}function fH(){return s||d().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:H,database:z,client_encoding:"UTF8"},Y.connection)).filter(([,U])=>U).map(([U,D])=>U+d.N+D).join(d.N)).z(2).end(0)}}function y5(Y){let Z={},X=5;for(let _=5;_<Y.length-1;_++)if(Y[_]===0)Z[XE[Y[X]]]=Y.toString("utf8",X+1,_),X=_+1;return Z}function KW(Y){return S8.createHash("md5").update(Y).digest("hex")}function ZY(Y,Z){return S8.createHmac("sha256",Y).update(Z).digest()}function _E(Y){return S8.createHash("sha256").update(Y).digest()}function GE(Y,Z){let X=Math.max(Y.length,Z.length),_=Buffer.allocUnsafe(X);for(let G=0;G<X;G++)_[G]=Y[G]^Z[G];return _}function g5(Y,Z){if(Z=typeof Z==="function"?Z():Z,!Z)return{cancel:w2,start:w2};let X;return{cancel(){X&&(clearTimeout(X),X=null)},start(){X&&clearTimeout(X),X=setTimeout(_,Z*1000,arguments)}};function _(G){Y.apply(null,G),X=null}}var TW=()=>{};function m5(Y,Z){let X=new Map,_="postgresjs_"+Math.random().toString(36).slice(2),G={},$,W,H=!1,Q=F.sql=Y({...Z,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...Z.connection,replication:"database"},onclose:async function(){if(H)return;W=null,G.pid=G.secret=void 0,O(await L(Q,_,Z.publications)),X.forEach((R)=>R.forEach(({onsubscribe:b})=>b()))},no_subscribe:!0}),J=Q.end,z=Q.close;return Q.end=async()=>{return H=!0,W&&await new Promise((R)=>(W.once("close",R),W.end())),J()},Q.close=async()=>{return W&&await new Promise((R)=>(W.once("close",R),W.end())),z()},F;async function F(R,b,x=TW,h=TW){if(R=HE(R),!$)$=L(Q,_,Z.publications);let g={fn:b,onsubscribe:x},B=X.has(R)?X.get(R).add(g):X.set(R,new Set([g])).get(R),K=()=>{B.delete(g),B.size===0&&X.delete(R)};return $.then((C)=>{return O(C),x(),W&&W.on("error",h),{unsubscribe:K,state:G,sql:Q}})}function O(R){W=R.stream,G.pid=R.state.pid,G.secret=R.state.secret}async function L(R,b,x){if(!x)throw Error("Missing publication names");let h=await R.unsafe(`CREATE_REPLICATION_SLOT ${b} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[g]=h,B=await R.unsafe(`START_REPLICATION SLOT ${b} LOGICAL ${g.consistent_point} (proto_version '1', publication_names '${x}')`).writable(),K={lsn:Buffer.concat(g.consistent_point.split("/").map((N)=>Buffer.from(("00000000"+N).slice(-8),"hex")))};return B.on("data",q),B.on("error",C),B.on("close",R.close),{stream:B,state:h.state};function C(N){console.error("Unexpected error during logical streaming - reconnecting",N)}function q(N){if(N[0]===119)WE(N.subarray(25),K,R.options.parsers,c,Z.transform);else if(N[0]===107&&N[17])K.lsn=N.subarray(1,9),n()}function c(N,s){let p=s.relation.schema+"."+s.relation.table;w("*",N,s),w("*:"+p,N,s),s.relation.keys.length&&w("*:"+p+"="+s.relation.keys.map((t)=>N[t.name]),N,s),w(s.command,N,s),w(s.command+":"+p,N,s),s.relation.keys.length&&w(s.command+":"+p+"="+s.relation.keys.map((t)=>N[t.name]),N,s)}function n(){let N=Buffer.alloc(34);N[0]=114,N.fill(K.lsn,1),N.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),B.write(N)}}function w(R,b,x){X.has(R)&&X.get(R).forEach(({fn:h})=>h(b,x,R))}}function $E(Y){return new Date(Date.UTC(2000,0,1)+Number(Y/BigInt(1000)))}function WE(Y,Z,X,_,G){let $=(W,[H,Q])=>(W[H.charCodeAt(0)]=Q,W);Object.entries({R:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)]={schema:W.toString("utf8",H+=4,H=W.indexOf(0,H))||"pg_catalog",table:W.toString("utf8",H+1,H=W.indexOf(0,H+1)),columns:Array(W.readUInt16BE(H+=2)),keys:[]};H+=2;let J=0,z;while(H<W.length)z=Q.columns[J++]={key:W[H++],name:G.column.from?G.column.from(W.toString("utf8",H,H=W.indexOf(0,H))):W.toString("utf8",H,H=W.indexOf(0,H)),type:W.readUInt32BE(H+=1),parser:X[W.readUInt32BE(H)],atttypmod:W.readUInt32BE(H+=4)},z.key&&Q.keys.push(z),H+=4},Y:()=>{},O:()=>{},B:(W)=>{Z.date=$E(W.readBigInt64BE(9)),Z.lsn=W.subarray(1,9)},I:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)],{row:J}=XY(W,Q.columns,H+=7,G);_(J,{command:"insert",relation:Q})},D:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)];H+=4;let J=W[H]===75;_(J||W[H]===79?XY(W,Q.columns,H+=3,G).row:null,{command:"delete",relation:Q,key:J})},U:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)];H+=4;let J=W[H]===75,z=J||W[H]===79?XY(W,Q.columns,H+=3,G):null;z&&(H=z.i);let{row:F}=XY(W,Q.columns,H+3,G);_(F,{command:"update",relation:Q,key:J,old:z&&z.row})},T:()=>{},C:()=>{}}).reduce($,{})[Y[0]](Y)}function XY(Y,Z,X,_){let G,$,W,H=_.raw?Array(Z.length):{};for(let Q=0;Q<Z.length;Q++)G=Y[X++],$=Z[Q],W=G===110?null:G===117?void 0:$.parser===void 0?Y.toString("utf8",X+4,X+=4+Y.readUInt32BE(X)):$.parser.array===!0?$.parser(Y.toString("utf8",X+5,X+=4+Y.readUInt32BE(X))):$.parser(Y.toString("utf8",X+4,X+=4+Y.readUInt32BE(X))),_.raw?H[Q]=_.raw===!0?W:_.value.from?_.value.from(W,$):W:H[$.name]=_.value.from?_.value.from(W,$):W;return{i:X,row:_.row.from?_.row.from(H):H}}function HE(Y){let Z=Y.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!Z)throw Error("Malformed subscribe pattern: "+Y);let[,X,_,G]=Z;return(X||"*")+(_?":"+(_.indexOf(".")===-1?"public."+_:_):"")+(G?"="+G:"")}import CW from"stream";function u5(Y,Z,X=393216){return new Promise(async(_,G)=>{await Y.begin(async($)=>{let W;!Z&&([{oid:Z}]=await $`select lo_creat(-1) as oid`);let[{fd:H}]=await $`select lo_open(${Z}, ${X}) as fd`,Q={writable:z,readable:J,close:()=>$`select lo_close(${H})`.then(W),tell:()=>$`select lo_tell64(${H})`,read:(F)=>$`select loread(${H}, ${F}) as data`,write:(F)=>$`select lowrite(${H}, ${F})`,truncate:(F)=>$`select lo_truncate64(${H}, ${F})`,seek:(F,O=0)=>$`select lo_lseek64(${H}, ${F}, ${O})`,size:()=>$`
78
78
  select
79
79
  lo_lseek64(${H}, location, 0) as position,
80
80
  seek.size
@@ -84,10 +84,10 @@ params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrac
84
84
  tell.location
85
85
  from (select lo_tell64($1) as location) tell
86
86
  ) seek
87
- `};return _(Q),new Promise(async(F)=>W=F);async function J({highWaterMark:F=16384,start:O=0,end:L=1/0}={}){let w=L-O;return O&&await Q.seek(O),new CW.Readable({highWaterMark:F,async read(R){let b=R>w?R-w:R;w-=R;let[{data:x}]=await Q.read(b);if(this.push(x),x.length<R)this.push(null)}})}async function z({highWaterMark:F=16384,start:O=0}={}){return O&&await Q.seek(O),new CW.Writable({highWaterMark:F,write(L,w,R){Q.write(L).then(()=>R(),R)}})}}).catch(G)})}Object.assign(_Y,{PostgresError:R2,toPascal:m4,pascal:h5,toCamel:p4,camel:f5,toKebab:u4,kebab:k5,fromPascal:q8,fromCamel:C8,fromKebab:j8,BigInt:{to:20,from:[20],parse:(Y)=>BigInt(Y),serialize:(Y)=>Y.toString()}});var N2=_Y;function _Y(Y,Z){let X=zE(Y,Z),_=X.no_subscribe||m5(_Y,{...X}),G=!1,$=R1(),W=R1(),H=R1(),Q=R1(),J=R1(),z=R1(),F=R1(),O=R1(),L={connecting:W,reserved:H,closed:Q,ended:J,open:z,busy:F,full:O},w=[...Array(X.max)].map(()=>p5(X,L,{onopen:$1,onend:h0,onclose:r1})),R=b(c);return Object.assign(R,{get parameters(){return X.parameters},largeObject:u5.bind(null,R),subscribe:_,CLOSE:A2,END:A2,PostgresError:R2,options:X,reserve:g,listen:x,begin:B,close:p,end:s}),R;function b(T){return T.debug=X.debug,Object.entries(X.types).reduce((a,[Q0,v0])=>{return a[Q0]=(B0)=>new n1(B0,v0.to),a},m),Object.assign(W0,{types:m,typed:m,unsafe:V0,notify:h,array:q,json:C,file:k0}),W0;function m(a,Q0){return new n1(a,Q0)}function W0(a,...Q0){return a&&Array.isArray(a.raw)?new q1(a,Q0,T,N):typeof a==="string"&&!Q0.length?new P8(X.transform.column.to?X.transform.column.to(a):a):new t6(a,Q0)}function V0(a,Q0=[],v0={}){return arguments.length===2&&!Array.isArray(Q0)&&(v0=Q0,Q0=[]),new q1([a],Q0,T,N,{prepare:!1,...v0,simple:"simple"in v0?v0.simple:Q0.length===0})}function k0(a,Q0=[],v0={}){return arguments.length===2&&!Array.isArray(Q0)&&(v0=Q0,Q0=[]),new q1([],Q0,(A0)=>{QE.readFile(a,"utf8",(o0,O0)=>{if(o0)return A0.reject(o0);A0.strings=[O0],T(A0)})},N,{...v0,simple:"simple"in v0?v0.simple:Q0.length===0})}}async function x(T,m,W0){let V0={fn:m,onlisten:W0},k0=x.sql||(x.sql=_Y({...X,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(x.channels).forEach(([A0,{listeners:o0}])=>{delete x.channels[A0],Promise.all(o0.map((O0)=>x(A0,O0.fn,O0.onlisten).catch(()=>{})))})},onnotify(A0,o0){A0 in x.channels&&x.channels[A0].listeners.forEach((O0)=>O0.fn(o0))}})),a=x.channels||(x.channels={});if(T in a){a[T].listeners.push(V0);let A0=await a[T].result;return V0.onlisten&&V0.onlisten(),{state:A0.state,unlisten:B0}}a[T]={result:k0`listen ${k0.unsafe('"'+T.replace(/"/g,'""')+'"')}`,listeners:[V0]};let v0=await a[T].result;return V0.onlisten&&V0.onlisten(),{state:v0.state,unlisten:B0};async function B0(){if(T in a===!1)return;if(a[T].listeners=a[T].listeners.filter((A0)=>A0!==V0),a[T].listeners.length)return;return delete a[T],k0`unlisten ${k0.unsafe('"'+T.replace(/"/g,'""')+'"')}`}}async function h(T,m){return await R`select pg_notify(${T}, ${""+m})`}async function g(){let T=R1(),m=z.length?z.shift():await new Promise((k0,a)=>{let Q0={reserve:k0,reject:a};$.push(Q0),Q.length&&I0(Q.shift(),Q0)});K(m,H),m.reserved=()=>T.length?m.execute(T.shift()):K(m,H),m.reserved.release=!0;let W0=b(V0);return W0.release=()=>{m.reserved=null,$1(m)},W0;function V0(k0){m.queue===O?T.push(k0):m.execute(k0)||K(m,O)}}async function B(T,m){!m&&(m=T,T="");let W0=R1(),V0=0,k0,a=null;try{return await R.unsafe("begin "+T.replace(/[^a-z ]/ig,""),[],{onexecute:v0}).execute(),await Promise.race([Q0(k0,m),new Promise((B0,A0)=>k0.onclose=A0)])}catch(B0){throw B0}async function Q0(B0,A0,o0){let O0=b(b0);O0.savepoint=z4,O0.prepare=(R0)=>a=R0.replace(/[^a-z0-9$-_. ]/gi);let j1,c0;o0&&await O0`savepoint ${O0(o0)}`;try{if(c0=await new Promise((R0,P1)=>{let u1=A0(O0);Promise.resolve(Array.isArray(u1)?Promise.all(u1):u1).then(R0,P1)}),j1)throw j1}catch(R0){throw await(o0?O0`rollback to ${O0(o0)}`:O0`rollback`),R0 instanceof R2&&R0.code==="25P02"&&j1||R0}if(!o0)a?await O0`prepare transaction '${O0.unsafe(a)}'`:await O0`commit`;return c0;function z4(R0,P1){if(R0&&Array.isArray(R0.raw))return z4((u1)=>u1.apply(u1,arguments));return arguments.length===1&&(P1=R0,R0=null),Q0(B0,P1,"s"+V0+++(R0?"_"+R0:""))}function b0(R0){R0.catch((P1)=>j1||(j1=P1)),B0.queue===O?W0.push(R0):B0.execute(R0)||K(B0,O)}}function v0(B0){k0=B0,K(B0,H),B0.reserved=()=>W0.length?B0.execute(W0.shift()):K(B0,H)}}function K(T,m){return T.queue.remove(T),m.push(T),T.queue=m,m===z?T.idleTimer.start():T.idleTimer.cancel(),T}function C(T){return new n1(T,3802)}function q(T,m){if(!Array.isArray(T))return q(Array.from(arguments));return new n1(T,m||(T.length?r6(T)||25:0),X.shared.typeArrayMap)}function c(T){if(G)return T.reject(f0.connection("CONNECTION_ENDED",X,X));if(z.length)return n(z.shift(),T);if(Q.length)return I0(Q.shift(),T);F.length?n(F.shift(),T):$.push(T)}function n(T,m){return T.execute(m)?K(T,F):K(T,O)}function N(T){return new Promise((m,W0)=>{T.state?T.active?p5(X).cancel(T.state,m,W0):T.cancelled={resolve:m,reject:W0}:($.remove(T),T.cancelled=!0,T.reject(f0.generic("57014","canceling statement due to user request")),m())})}async function s({timeout:T=null}={}){if(G)return G;await 1;let m;return G=Promise.race([new Promise((W0)=>T!==null&&(m=setTimeout(t,T*1000,W0))),Promise.all(w.map((W0)=>W0.end()).concat(x.sql?x.sql.end({timeout:0}):[],_.sql?_.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(m))}async function p(){await Promise.all(w.map((T)=>T.end()))}async function t(T){await Promise.all(w.map((m)=>m.terminate()));while($.length)$.shift().reject(f0.connection("CONNECTION_DESTROYED",X));T()}function I0(T,m){return K(T,W),T.connect(m),T}function h0(T){K(T,J)}function $1(T){if($.length===0)return K(T,z);let m=Math.ceil($.length/(W.length+1)),W0=!0;while(W0&&$.length&&m-- >0){let V0=$.shift();if(V0.reserve)return V0.reserve(T);W0=T.execute(V0)}W0?K(T,F):K(T,O)}function r1(T,m){K(T,Q),T.reserved=null,T.onclose&&(T.onclose(m),T.onclose=null),X.onclose&&X.onclose(T.id),$.length&&I0(T,$.shift())}}function zE(Y,Z){if(Y&&Y.shared)return Y;let X=process.env,_=(!Y||typeof Y==="string"?Z:Y)||{},{url:G,multihost:$}=OE(Y),W=[...G.searchParams].reduce((O,[L,w])=>(O[L]=w,O),{}),H=_.hostname||_.host||$||G.hostname||X.PGHOST||"localhost",Q=_.port||G.port||X.PGPORT||5432,J=_.user||_.username||G.username||X.PGUSERNAME||X.PGUSER||DE();_.no_prepare&&(_.prepare=!1),W.sslmode&&(W.ssl=W.sslmode,delete W.sslmode),"timeout"in _&&(console.log("The timeout option is deprecated, use idle_timeout instead"),_.idle_timeout=_.timeout),W.sslrootcert==="system"&&(W.ssl="verify-full");let z=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],F={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:EE,max_pipeline:100,backoff:FE,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(H)?H:H.split(",").map((O)=>O.split(":")[0]),port:Array.isArray(Q)?Q:H.split(",").map((O)=>parseInt(O.split(":")[1]||Q)),path:_.path||H.indexOf("/")>-1&&H+"/.s.PGSQL."+Q,database:_.database||_.db||(G.pathname||"").slice(1)||X.PGDATABASE||J,user:J,pass:_.pass||_.password||G.password||X.PGPASSWORD||"",...Object.entries(F).reduce((O,[L,w])=>{let R=L in _?_[L]:(L in W)?W[L]==="disable"||W[L]==="false"?!1:W[L]:X["PG"+L.toUpperCase()]||w;return O[L]=typeof R==="string"&&z.includes(L)?+R:R,O},{}),connection:{application_name:X.PGAPPNAME||"postgres.js",..._.connection,...Object.entries(W).reduce((O,[L,w])=>((L in F)||(O[L]=w),O),{})},types:_.types||{},target_session_attrs:UE(_,G,X),onnotice:_.onnotice,onnotify:_.onnotify,onclose:_.onclose,onparameter:_.onparameter,socket:_.socket,transform:VE(_.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...DW(_.types)}}function UE(Y,Z,X){let _=Y.target_session_attrs||Z.searchParams.get("target_session_attrs")||X.PGTARGETSESSIONATTRS;if(!_||["read-write","read-only","primary","standby","prefer-standby"].includes(_))return _;throw new Error("target_session_attrs "+_+" is not supported")}function FE(Y){return(0.5+Math.random()/2)*Math.min(3**Y/100,20)}function EE(){return 60*(30+Math.random()*30)}function VE(Y){return{undefined:Y.undefined,column:{from:typeof Y.column==="function"?Y.column:Y.column&&Y.column.from,to:Y.column&&Y.column.to},value:{from:typeof Y.value==="function"?Y.value:Y.value&&Y.value.from,to:Y.value&&Y.value.to},row:{from:typeof Y.row==="function"?Y.row:Y.row&&Y.row.from,to:Y.row&&Y.row.to}}}function OE(Y){if(!Y||typeof Y!=="string")return{url:{searchParams:new Map}};let Z=Y;Z=Z.slice(Z.indexOf("://")+3).split(/[?/]/)[0],Z=decodeURIComponent(Z.slice(Z.indexOf("@")+1));let X=new URL(Y.replace(Z,Z.split(",")[0]));return{url:{username:decodeURIComponent(X.username),password:decodeURIComponent(X.password),host:X.host,hostname:X.hostname,port:X.port,pathname:X.pathname,searchParams:X.searchParams},multihost:Z.indexOf(",")>-1&&Z}}function DE(){try{return JE.userInfo().username}catch(Y){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class q0{static[E]="SelectionProxyHandler";config;constructor(Y){this.config={...Y}}get(Y,Z){if(Z==="_")return{...Y._,selectedFields:new Proxy(Y._.selectedFields,this)};if(Z===M0)return{...Y[M0],selectedFields:new Proxy(Y[M0].selectedFields,this)};if(typeof Z==="symbol")return Y[Z];let _=(M(Y,S0)?Y._.selectedFields:M(Y,V1)?Y[M0].selectedFields:Y)[Z];if(M(_,f.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!_.isSelectionField)return _.sql;let G=_.clone();return G.isSelectionField=!0,G}if(M(_,f)){if(this.config.sqlBehavior==="sql")return _;throw new Error(`You tried to reference "${Z}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(M(_,F0)){if(this.config.alias)return new Proxy(_,new M2(new Proxy(_.table,new A8(this.config.alias,this.config.replaceOriginalName??!1))));return _}if(typeof _!=="object"||_===null)return _;return new Proxy(_,new q0(this.config))}}class qW{constructor(Y,Z){this.unique=Y,this.name=Z}static[E]="PgIndexBuilderOn";on(...Y){return new GY(Y.map((Z)=>{if(M(Z,f))return Z;Z=Z;let X=new O8(Z.name,!!Z.keyAsName,Z.columnType,Z.indexConfig);return Z.indexConfig=JSON.parse(JSON.stringify(Z.defaultConfig)),X}),this.unique,!1,this.name)}onOnly(...Y){return new GY(Y.map((Z)=>{if(M(Z,f))return Z;Z=Z;let X=new O8(Z.name,!!Z.keyAsName,Z.columnType,Z.indexConfig);return Z.indexConfig=Z.defaultConfig,X}),this.unique,!0,this.name)}using(Y,...Z){return new GY(Z.map((X)=>{if(M(X,f))return X;X=X;let _=new O8(X.name,!!X.keyAsName,X.columnType,X.indexConfig);return X.indexConfig=JSON.parse(JSON.stringify(X.defaultConfig)),_}),this.unique,!0,this.name,Y)}}class GY{static[E]="PgIndexBuilder";config;constructor(Y,Z,X,_,G="btree"){this.config={name:_,columns:Y,unique:Z,only:X,method:G}}concurrently(){return this.config.concurrently=!0,this}with(Y){return this.config.with=Y,this}where(Y){return this.config.where=Y,this}build(Y){return new jW(this.config,Y)}}class jW{static[E]="PgIndex";config;constructor(Y,Z){this.config={...Y,table:Z}}}function d5(Y){return new qW(!0,Y)}function LE(Y){return(Y.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((X)=>X.toLowerCase()).join("_")}function ME(Y){return(Y.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((X,_,G)=>{let $=G===0?_.toLowerCase():`${_[0].toUpperCase()}${_.slice(1)}`;return X+$},"")}function AE(Y){return Y}class c5{static[E]="CasingCache";cache={};cachedTables={};convert;constructor(Y){this.convert=Y==="snake_case"?LE:Y==="camelCase"?ME:AE}getColumnCasing(Y){if(!Y.keyAsName)return Y.name;let Z=Y.table[P.Symbol.Schema]??"public",X=Y.table[P.Symbol.OriginalName],_=`${Z}.${X}.${Y.name}`;if(!this.cache[_])this.cacheTable(Y.table);return this.cache[_]}cacheTable(Y){let Z=Y[P.Symbol.Schema]??"public",X=Y[P.Symbol.OriginalName],_=`${Z}.${X}`;if(!this.cachedTables[_]){for(let G of Object.values(Y[P.Symbol.Columns])){let $=`${_}.${G.name}`;this.cache[$]=this.convert(G.name)}this.cachedTables[_]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class v8 extends V1{static[E]="PgViewBase"}class c4{static[E]="PgDialect";casing;constructor(Y){this.casing=new c5(Y?.casing)}async migrate(Y,Z,X){let _=typeof X==="string"?"__drizzle_migrations":X.migrationsTable??"__drizzle_migrations",G=typeof X==="string"?"drizzle":X.migrationsSchema??"drizzle",$=V`
87
+ `};return _(Q),new Promise(async(F)=>W=F);async function J({highWaterMark:F=16384,start:O=0,end:L=1/0}={}){let w=L-O;return O&&await Q.seek(O),new CW.Readable({highWaterMark:F,async read(R){let b=R>w?R-w:R;w-=R;let[{data:x}]=await Q.read(b);if(this.push(x),x.length<R)this.push(null)}})}async function z({highWaterMark:F=16384,start:O=0}={}){return O&&await Q.seek(O),new CW.Writable({highWaterMark:F,write(L,w,R){Q.write(L).then(()=>R(),R)}})}}).catch(G)})}Object.assign(_Y,{PostgresError:R2,toPascal:m4,pascal:h5,toCamel:p4,camel:f5,toKebab:u4,kebab:k5,fromPascal:q8,fromCamel:C8,fromKebab:j8,BigInt:{to:20,from:[20],parse:(Y)=>BigInt(Y),serialize:(Y)=>Y.toString()}});var N2=_Y;function _Y(Y,Z){let X=zE(Y,Z),_=X.no_subscribe||m5(_Y,{...X}),G=!1,$=R1(),W=R1(),H=R1(),Q=R1(),J=R1(),z=R1(),F=R1(),O=R1(),L={connecting:W,reserved:H,closed:Q,ended:J,open:z,busy:F,full:O},w=[...Array(X.max)].map(()=>p5(X,L,{onopen:$1,onend:h0,onclose:r1})),R=b(c);return Object.assign(R,{get parameters(){return X.parameters},largeObject:u5.bind(null,R),subscribe:_,CLOSE:A2,END:A2,PostgresError:R2,options:X,reserve:g,listen:x,begin:B,close:p,end:s}),R;function b(T){return T.debug=X.debug,Object.entries(X.types).reduce((a,[Q0,v0])=>{return a[Q0]=(B0)=>new n1(B0,v0.to),a},m),Object.assign(W0,{types:m,typed:m,unsafe:V0,notify:h,array:q,json:C,file:k0}),W0;function m(a,Q0){return new n1(a,Q0)}function W0(a,...Q0){return a&&Array.isArray(a.raw)?new q1(a,Q0,T,N):typeof a==="string"&&!Q0.length?new P8(X.transform.column.to?X.transform.column.to(a):a):new t6(a,Q0)}function V0(a,Q0=[],v0={}){return arguments.length===2&&!Array.isArray(Q0)&&(v0=Q0,Q0=[]),new q1([a],Q0,T,N,{prepare:!1,...v0,simple:"simple"in v0?v0.simple:Q0.length===0})}function k0(a,Q0=[],v0={}){return arguments.length===2&&!Array.isArray(Q0)&&(v0=Q0,Q0=[]),new q1([],Q0,(A0)=>{QE.readFile(a,"utf8",(o0,O0)=>{if(o0)return A0.reject(o0);A0.strings=[O0],T(A0)})},N,{...v0,simple:"simple"in v0?v0.simple:Q0.length===0})}}async function x(T,m,W0){let V0={fn:m,onlisten:W0},k0=x.sql||(x.sql=_Y({...X,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(x.channels).forEach(([A0,{listeners:o0}])=>{delete x.channels[A0],Promise.all(o0.map((O0)=>x(A0,O0.fn,O0.onlisten).catch(()=>{})))})},onnotify(A0,o0){A0 in x.channels&&x.channels[A0].listeners.forEach((O0)=>O0.fn(o0))}})),a=x.channels||(x.channels={});if(T in a){a[T].listeners.push(V0);let A0=await a[T].result;return V0.onlisten&&V0.onlisten(),{state:A0.state,unlisten:B0}}a[T]={result:k0`listen ${k0.unsafe('"'+T.replace(/"/g,'""')+'"')}`,listeners:[V0]};let v0=await a[T].result;return V0.onlisten&&V0.onlisten(),{state:v0.state,unlisten:B0};async function B0(){if(T in a===!1)return;if(a[T].listeners=a[T].listeners.filter((A0)=>A0!==V0),a[T].listeners.length)return;return delete a[T],k0`unlisten ${k0.unsafe('"'+T.replace(/"/g,'""')+'"')}`}}async function h(T,m){return await R`select pg_notify(${T}, ${""+m})`}async function g(){let T=R1(),m=z.length?z.shift():await new Promise((k0,a)=>{let Q0={reserve:k0,reject:a};$.push(Q0),Q.length&&I0(Q.shift(),Q0)});K(m,H),m.reserved=()=>T.length?m.execute(T.shift()):K(m,H),m.reserved.release=!0;let W0=b(V0);return W0.release=()=>{m.reserved=null,$1(m)},W0;function V0(k0){m.queue===O?T.push(k0):m.execute(k0)||K(m,O)}}async function B(T,m){!m&&(m=T,T="");let W0=R1(),V0=0,k0,a=null;try{return await R.unsafe("begin "+T.replace(/[^a-z ]/ig,""),[],{onexecute:v0}).execute(),await Promise.race([Q0(k0,m),new Promise((B0,A0)=>k0.onclose=A0)])}catch(B0){throw B0}async function Q0(B0,A0,o0){let O0=b(b0);O0.savepoint=z4,O0.prepare=(R0)=>a=R0.replace(/[^a-z0-9$-_. ]/gi);let j1,c0;o0&&await O0`savepoint ${O0(o0)}`;try{if(c0=await new Promise((R0,P1)=>{let u1=A0(O0);Promise.resolve(Array.isArray(u1)?Promise.all(u1):u1).then(R0,P1)}),j1)throw j1}catch(R0){throw await(o0?O0`rollback to ${O0(o0)}`:O0`rollback`),R0 instanceof R2&&R0.code==="25P02"&&j1||R0}if(!o0)a?await O0`prepare transaction '${O0.unsafe(a)}'`:await O0`commit`;return c0;function z4(R0,P1){if(R0&&Array.isArray(R0.raw))return z4((u1)=>u1.apply(u1,arguments));return arguments.length===1&&(P1=R0,R0=null),Q0(B0,P1,"s"+V0+++(R0?"_"+R0:""))}function b0(R0){R0.catch((P1)=>j1||(j1=P1)),B0.queue===O?W0.push(R0):B0.execute(R0)||K(B0,O)}}function v0(B0){k0=B0,K(B0,H),B0.reserved=()=>W0.length?B0.execute(W0.shift()):K(B0,H)}}function K(T,m){return T.queue.remove(T),m.push(T),T.queue=m,m===z?T.idleTimer.start():T.idleTimer.cancel(),T}function C(T){return new n1(T,3802)}function q(T,m){if(!Array.isArray(T))return q(Array.from(arguments));return new n1(T,m||(T.length?r6(T)||25:0),X.shared.typeArrayMap)}function c(T){if(G)return T.reject(f0.connection("CONNECTION_ENDED",X,X));if(z.length)return n(z.shift(),T);if(Q.length)return I0(Q.shift(),T);F.length?n(F.shift(),T):$.push(T)}function n(T,m){return T.execute(m)?K(T,F):K(T,O)}function N(T){return new Promise((m,W0)=>{T.state?T.active?p5(X).cancel(T.state,m,W0):T.cancelled={resolve:m,reject:W0}:($.remove(T),T.cancelled=!0,T.reject(f0.generic("57014","canceling statement due to user request")),m())})}async function s({timeout:T=null}={}){if(G)return G;await 1;let m;return G=Promise.race([new Promise((W0)=>T!==null&&(m=setTimeout(t,T*1000,W0))),Promise.all(w.map((W0)=>W0.end()).concat(x.sql?x.sql.end({timeout:0}):[],_.sql?_.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(m))}async function p(){await Promise.all(w.map((T)=>T.end()))}async function t(T){await Promise.all(w.map((m)=>m.terminate()));while($.length)$.shift().reject(f0.connection("CONNECTION_DESTROYED",X));T()}function I0(T,m){return K(T,W),T.connect(m),T}function h0(T){K(T,J)}function $1(T){if($.length===0)return K(T,z);let m=Math.ceil($.length/(W.length+1)),W0=!0;while(W0&&$.length&&m-- >0){let V0=$.shift();if(V0.reserve)return V0.reserve(T);W0=T.execute(V0)}W0?K(T,F):K(T,O)}function r1(T,m){K(T,Q),T.reserved=null,T.onclose&&(T.onclose(m),T.onclose=null),X.onclose&&X.onclose(T.id),$.length&&I0(T,$.shift())}}function zE(Y,Z){if(Y&&Y.shared)return Y;let X=process.env,_=(!Y||typeof Y==="string"?Z:Y)||{},{url:G,multihost:$}=OE(Y),W=[...G.searchParams].reduce((O,[L,w])=>(O[L]=w,O),{}),H=_.hostname||_.host||$||G.hostname||X.PGHOST||"localhost",Q=_.port||G.port||X.PGPORT||5432,J=_.user||_.username||G.username||X.PGUSERNAME||X.PGUSER||DE();_.no_prepare&&(_.prepare=!1),W.sslmode&&(W.ssl=W.sslmode,delete W.sslmode),"timeout"in _&&(console.log("The timeout option is deprecated, use idle_timeout instead"),_.idle_timeout=_.timeout),W.sslrootcert==="system"&&(W.ssl="verify-full");let z=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],F={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:EE,max_pipeline:100,backoff:FE,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(H)?H:H.split(",").map((O)=>O.split(":")[0]),port:Array.isArray(Q)?Q:H.split(",").map((O)=>parseInt(O.split(":")[1]||Q)),path:_.path||H.indexOf("/")>-1&&H+"/.s.PGSQL."+Q,database:_.database||_.db||(G.pathname||"").slice(1)||X.PGDATABASE||J,user:J,pass:_.pass||_.password||G.password||X.PGPASSWORD||"",...Object.entries(F).reduce((O,[L,w])=>{let R=L in _?_[L]:(L in W)?W[L]==="disable"||W[L]==="false"?!1:W[L]:X["PG"+L.toUpperCase()]||w;return O[L]=typeof R==="string"&&z.includes(L)?+R:R,O},{}),connection:{application_name:X.PGAPPNAME||"postgres.js",..._.connection,...Object.entries(W).reduce((O,[L,w])=>((L in F)||(O[L]=w),O),{})},types:_.types||{},target_session_attrs:UE(_,G,X),onnotice:_.onnotice,onnotify:_.onnotify,onclose:_.onclose,onparameter:_.onparameter,socket:_.socket,transform:VE(_.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...DW(_.types)}}function UE(Y,Z,X){let _=Y.target_session_attrs||Z.searchParams.get("target_session_attrs")||X.PGTARGETSESSIONATTRS;if(!_||["read-write","read-only","primary","standby","prefer-standby"].includes(_))return _;throw Error("target_session_attrs "+_+" is not supported")}function FE(Y){return(0.5+Math.random()/2)*Math.min(3**Y/100,20)}function EE(){return 60*(30+Math.random()*30)}function VE(Y){return{undefined:Y.undefined,column:{from:typeof Y.column==="function"?Y.column:Y.column&&Y.column.from,to:Y.column&&Y.column.to},value:{from:typeof Y.value==="function"?Y.value:Y.value&&Y.value.from,to:Y.value&&Y.value.to},row:{from:typeof Y.row==="function"?Y.row:Y.row&&Y.row.from,to:Y.row&&Y.row.to}}}function OE(Y){if(!Y||typeof Y!=="string")return{url:{searchParams:new Map}};let Z=Y;Z=Z.slice(Z.indexOf("://")+3).split(/[?/]/)[0],Z=decodeURIComponent(Z.slice(Z.indexOf("@")+1));let X=new URL(Y.replace(Z,Z.split(",")[0]));return{url:{username:decodeURIComponent(X.username),password:decodeURIComponent(X.password),host:X.host,hostname:X.hostname,port:X.port,pathname:X.pathname,searchParams:X.searchParams},multihost:Z.indexOf(",")>-1&&Z}}function DE(){try{return JE.userInfo().username}catch(Y){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class q0{static[E]="SelectionProxyHandler";config;constructor(Y){this.config={...Y}}get(Y,Z){if(Z==="_")return{...Y._,selectedFields:new Proxy(Y._.selectedFields,this)};if(Z===M0)return{...Y[M0],selectedFields:new Proxy(Y[M0].selectedFields,this)};if(typeof Z==="symbol")return Y[Z];let _=(M(Y,S0)?Y._.selectedFields:M(Y,V1)?Y[M0].selectedFields:Y)[Z];if(M(_,f.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!_.isSelectionField)return _.sql;let G=_.clone();return G.isSelectionField=!0,G}if(M(_,f)){if(this.config.sqlBehavior==="sql")return _;throw Error(`You tried to reference "${Z}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(M(_,F0)){if(this.config.alias)return new Proxy(_,new M2(new Proxy(_.table,new A8(this.config.alias,this.config.replaceOriginalName??!1))));return _}if(typeof _!=="object"||_===null)return _;return new Proxy(_,new q0(this.config))}}class qW{constructor(Y,Z){this.unique=Y,this.name=Z}static[E]="PgIndexBuilderOn";on(...Y){return new GY(Y.map((Z)=>{if(M(Z,f))return Z;Z=Z;let X=new O8(Z.name,!!Z.keyAsName,Z.columnType,Z.indexConfig);return Z.indexConfig=JSON.parse(JSON.stringify(Z.defaultConfig)),X}),this.unique,!1,this.name)}onOnly(...Y){return new GY(Y.map((Z)=>{if(M(Z,f))return Z;Z=Z;let X=new O8(Z.name,!!Z.keyAsName,Z.columnType,Z.indexConfig);return Z.indexConfig=Z.defaultConfig,X}),this.unique,!0,this.name)}using(Y,...Z){return new GY(Z.map((X)=>{if(M(X,f))return X;X=X;let _=new O8(X.name,!!X.keyAsName,X.columnType,X.indexConfig);return X.indexConfig=JSON.parse(JSON.stringify(X.defaultConfig)),_}),this.unique,!0,this.name,Y)}}class GY{static[E]="PgIndexBuilder";config;constructor(Y,Z,X,_,G="btree"){this.config={name:_,columns:Y,unique:Z,only:X,method:G}}concurrently(){return this.config.concurrently=!0,this}with(Y){return this.config.with=Y,this}where(Y){return this.config.where=Y,this}build(Y){return new jW(this.config,Y)}}class jW{static[E]="PgIndex";config;constructor(Y,Z){this.config={...Y,table:Z}}}function d5(Y){return new qW(!0,Y)}function LE(Y){return(Y.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((X)=>X.toLowerCase()).join("_")}function ME(Y){return(Y.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((X,_,G)=>{let $=G===0?_.toLowerCase():`${_[0].toUpperCase()}${_.slice(1)}`;return X+$},"")}function AE(Y){return Y}class c5{static[E]="CasingCache";cache={};cachedTables={};convert;constructor(Y){this.convert=Y==="snake_case"?LE:Y==="camelCase"?ME:AE}getColumnCasing(Y){if(!Y.keyAsName)return Y.name;let Z=Y.table[P.Symbol.Schema]??"public",X=Y.table[P.Symbol.OriginalName],_=`${Z}.${X}.${Y.name}`;if(!this.cache[_])this.cacheTable(Y.table);return this.cache[_]}cacheTable(Y){let Z=Y[P.Symbol.Schema]??"public",X=Y[P.Symbol.OriginalName],_=`${Z}.${X}`;if(!this.cachedTables[_]){for(let G of Object.values(Y[P.Symbol.Columns])){let $=`${_}.${G.name}`;this.cache[$]=this.convert(G.name)}this.cachedTables[_]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class v8 extends V1{static[E]="PgViewBase"}class c4{static[E]="PgDialect";casing;constructor(Y){this.casing=new c5(Y?.casing)}async migrate(Y,Z,X){let _=typeof X==="string"?"__drizzle_migrations":X.migrationsTable??"__drizzle_migrations",G=typeof X==="string"?"drizzle":X.migrationsSchema??"drizzle",$=V`
88
88
  CREATE TABLE IF NOT EXISTS ${V.identifier(G)}.${V.identifier(_)} (
89
89
  id SERIAL PRIMARY KEY,
90
90
  hash text NOT NULL,
91
91
  created_at bigint
92
92
  )
93
- `;await Z.execute(V`CREATE SCHEMA IF NOT EXISTS ${V.identifier(G)}`),await Z.execute($);let H=(await Z.all(V`select id, hash, created_at from ${V.identifier(G)}.${V.identifier(_)} order by created_at desc limit 1`))[0];await Z.transaction(async(Q)=>{for await(let J of Y)if(!H||Number(H.created_at)<J.folderMillis){for(let z of J.sql)await Q.execute(V.raw(z));await Q.execute(V`insert into ${V.identifier(G)}.${V.identifier(_)} ("hash", "created_at") values(${J.hash}, ${J.folderMillis})`)}})}escapeName(Y){return`"${Y}"`}escapeParam(Y){return`$${Y+1}`}escapeString(Y){return`'${Y.replace(/'/g,"''")}'`}buildWithCTE(Y){if(!Y?.length)return;let Z=[V`with `];for(let[X,_]of Y.entries())if(Z.push(V`${V.identifier(_._.alias)} as (${_._.sql})`),X<Y.length-1)Z.push(V`, `);return Z.push(V` `),V.join(Z)}buildDeleteQuery({table:Y,where:Z,returning:X,withList:_}){let G=this.buildWithCTE(_),$=X?V` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,W=Z?V` where ${Z}`:void 0;return V`${G}delete from ${Y}${W}${$}`}buildUpdateSet(Y,Z){let X=Y[P.Symbol.Columns],_=Object.keys(X).filter(($)=>Z[$]!==void 0||X[$]?.onUpdateFn!==void 0),G=_.length;return V.join(_.flatMap(($,W)=>{let H=X[$],Q=Z[$]??V.param(H.onUpdateFn(),H),J=V`${V.identifier(this.casing.getColumnCasing(H))} = ${Q}`;if(W<G-1)return[J,V.raw(", ")];return[J]}))}buildUpdateQuery({table:Y,set:Z,where:X,returning:_,withList:G,from:$,joins:W}){let H=this.buildWithCTE(G),Q=Y[u0.Symbol.Name],J=Y[u0.Symbol.Schema],z=Y[u0.Symbol.OriginalName],F=Q===z?void 0:Q,O=V`${J?V`${V.identifier(J)}.`:void 0}${V.identifier(z)}${F&&V` ${V.identifier(F)}`}`,L=this.buildUpdateSet(Y,Z),w=$&&V.join([V.raw(" from "),this.buildFromTable($)]),R=this.buildJoins(W),b=_?V` returning ${this.buildSelection(_,{isSingleTable:!$})}`:void 0,x=X?V` where ${X}`:void 0;return V`${H}update ${O} set ${L}${w}${R}${x}${b}`}buildSelection(Y,{isSingleTable:Z=!1}={}){let X=Y.length,_=Y.flatMap(({field:G},$)=>{let W=[];if(M(G,f.Aliased)&&G.isSelectionField)W.push(V.identifier(G.fieldAlias));else if(M(G,f.Aliased)||M(G,f)){let H=M(G,f.Aliased)?G.sql:G;if(Z)W.push(new f(H.queryChunks.map((Q)=>{if(M(Q,j))return V.identifier(this.casing.getColumnCasing(Q));return Q})));else W.push(H);if(M(G,f.Aliased))W.push(V` as ${V.identifier(G.fieldAlias)}`)}else if(M(G,F0))if(Z)W.push(V.identifier(this.casing.getColumnCasing(G)));else W.push(G);if($<X-1)W.push(V`, `);return W});return V.join(_)}buildJoins(Y){if(!Y||Y.length===0)return;let Z=[];for(let[X,_]of Y.entries()){if(X===0)Z.push(V` `);let G=_.table,$=_.lateral?V` lateral`:void 0,W=_.on?V` on ${_.on}`:void 0;if(M(G,u0)){let H=G[u0.Symbol.Name],Q=G[u0.Symbol.Schema],J=G[u0.Symbol.OriginalName],z=H===J?void 0:_.alias;Z.push(V`${V.raw(_.joinType)} join${$} ${Q?V`${V.identifier(Q)}.`:void 0}${V.identifier(J)}${z&&V` ${V.identifier(z)}`}${W}`)}else if(M(G,V1)){let H=G[M0].name,Q=G[M0].schema,J=G[M0].originalName,z=H===J?void 0:_.alias;Z.push(V`${V.raw(_.joinType)} join${$} ${Q?V`${V.identifier(Q)}.`:void 0}${V.identifier(J)}${z&&V` ${V.identifier(z)}`}${W}`)}else Z.push(V`${V.raw(_.joinType)} join${$} ${G}${W}`);if(X<Y.length-1)Z.push(V` `)}return V.join(Z)}buildFromTable(Y){if(M(Y,P)&&Y[P.Symbol.IsAlias]){let Z=V`${V.identifier(Y[P.Symbol.OriginalName])}`;if(Y[P.Symbol.Schema])Z=V`${V.identifier(Y[P.Symbol.Schema])}.${Z}`;return V`${Z} ${V.identifier(Y[P.Symbol.Name])}`}return Y}buildSelectQuery({withList:Y,fields:Z,fieldsFlat:X,where:_,having:G,table:$,joins:W,orderBy:H,groupBy:Q,limit:J,offset:z,lockingClause:F,distinct:O,setOperators:L}){let w=X??T1(Z);for(let t of w)if(M(t.field,F0)&&d0(t.field.table)!==(M($,S0)?$._.alias:M($,v8)?$[M0].name:M($,f)?void 0:d0($))&&!((I0)=>W?.some(({alias:h0})=>h0===(I0[P.Symbol.IsAlias]?d0(I0):I0[P.Symbol.BaseName])))(t.field.table)){let I0=d0(t.field.table);throw new Error(`Your "${t.path.join("->")}" field references a column "${I0}"."${t.field.name}", but the table "${I0}" is not part of the query! Did you forget to join it?`)}let R=!W||W.length===0,b=this.buildWithCTE(Y),x;if(O)x=O===!0?V` distinct`:V` distinct on (${V.join(O.on,V`, `)})`;let h=this.buildSelection(w,{isSingleTable:R}),g=this.buildFromTable($),B=this.buildJoins(W),K=_?V` where ${_}`:void 0,C=G?V` having ${G}`:void 0,q;if(H&&H.length>0)q=V` order by ${V.join(H,V`, `)}`;let c;if(Q&&Q.length>0)c=V` group by ${V.join(Q,V`, `)}`;let n=typeof J==="object"||typeof J==="number"&&J>=0?V` limit ${J}`:void 0,N=z?V` offset ${z}`:void 0,s=V.empty();if(F){let t=V` for ${V.raw(F.strength)}`;if(F.config.of)t.append(V` of ${V.join(Array.isArray(F.config.of)?F.config.of:[F.config.of],V`, `)}`);if(F.config.noWait)t.append(V` nowait`);else if(F.config.skipLocked)t.append(V` skip locked`);s.append(t)}let p=V`${b}select${x} ${h} from ${g}${B}${K}${c}${C}${q}${n}${N}${s}`;if(L.length>0)return this.buildSetOperations(p,L);return p}buildSetOperations(Y,Z){let[X,..._]=Z;if(!X)throw new Error("Cannot pass undefined values to any set operator");if(_.length===0)return this.buildSetOperationQuery({leftSelect:Y,setOperator:X});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:Y,setOperator:X}),_)}buildSetOperationQuery({leftSelect:Y,setOperator:{type:Z,isAll:X,rightSelect:_,limit:G,orderBy:$,offset:W}}){let H=V`(${Y.getSQL()}) `,Q=V`(${_.getSQL()})`,J;if($&&$.length>0){let L=[];for(let w of $)if(M(w,j))L.push(V.identifier(w.name));else if(M(w,f)){for(let R=0;R<w.queryChunks.length;R++){let b=w.queryChunks[R];if(M(b,j))w.queryChunks[R]=V.identifier(b.name)}L.push(V`${w}`)}else L.push(V`${w}`);J=V` order by ${V.join(L,V`, `)} `}let z=typeof G==="object"||typeof G==="number"&&G>=0?V` limit ${G}`:void 0,F=V.raw(`${Z} ${X?"all ":""}`),O=W?V` offset ${W}`:void 0;return V`${H}${F}${Q}${J}${z}${O}`}buildInsertQuery({table:Y,values:Z,onConflict:X,returning:_,withList:G,select:$,overridingSystemValue_:W}){let H=[],Q=Y[P.Symbol.Columns],J=Object.entries(Q).filter(([b,x])=>!x.shouldDisableInsert()),z=J.map(([,b])=>V.identifier(this.casing.getColumnCasing(b)));if($){let b=Z;if(M(b,f))H.push(b);else H.push(b.getSQL())}else{let b=Z;H.push(V.raw("values "));for(let[x,h]of b.entries()){let g=[];for(let[B,K]of J){let C=h[B];if(C===void 0||M(C,A1)&&C.value===void 0)if(K.defaultFn!==void 0){let q=K.defaultFn(),c=M(q,f)?q:V.param(q,K);g.push(c)}else if(!K.default&&K.onUpdateFn!==void 0){let q=K.onUpdateFn(),c=M(q,f)?q:V.param(q,K);g.push(c)}else g.push(V`default`);else g.push(C)}if(H.push(g),x<b.length-1)H.push(V`, `)}}let F=this.buildWithCTE(G),O=V.join(H),L=_?V` returning ${this.buildSelection(_,{isSingleTable:!0})}`:void 0,w=X?V` on conflict ${X}`:void 0,R=W===!0?V`overriding system value `:void 0;return V`${F}insert into ${Y} ${z} ${R}${O}${w}${L}`}buildRefreshMaterializedViewQuery({view:Y,concurrently:Z,withNoData:X}){let _=Z?V` concurrently`:void 0,G=X?V` with no data`:void 0;return V`refresh materialized view${_} ${Y}${G}`}prepareTyping(Y){if(M(Y,g6)||M(Y,y6))return"json";else if(M(Y,p6))return"decimal";else if(M(Y,m6))return"time";else if(M(Y,u6)||M(Y,d6))return"timestamp";else if(M(Y,k6)||M(Y,b6))return"date";else if(M(Y,c6))return"uuid";else return"none"}sqlToQuery(Y,Z){return Y.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:Z})}buildRelationalQueryWithoutPK({fullSchema:Y,schema:Z,tableNamesMap:X,table:_,tableConfig:G,queryConfig:$,tableAlias:W,nestedQueryRelation:H,joinOn:Q}){let J=[],z,F,O=[],L,w=[];if($===!0)J=Object.entries(G.columns).map(([x,h])=>({dbKey:h.name,tsKey:x,field:i1(h,W),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let b=Object.fromEntries(Object.entries(G.columns).map(([C,q])=>[C,i1(q,W)]));if($.where){let C=typeof $.where==="function"?$.where(b,_W()):$.where;L=C&&R8(C,W)}let x=[],h=[];if($.columns){let C=!1;for(let[q,c]of Object.entries($.columns)){if(c===void 0)continue;if(q in G.columns){if(!C&&c===!0)C=!0;h.push(q)}}if(h.length>0)h=C?h.filter((q)=>$.columns?.[q]===!0):Object.keys(G.columns).filter((q)=>!h.includes(q))}else h=Object.keys(G.columns);for(let C of h){let q=G.columns[C];x.push({tsKey:C,value:q})}let g=[];if($.with)g=Object.entries($.with).filter((C)=>!!C[1]).map(([C,q])=>({tsKey:C,queryConfig:q,relation:G.relations[C]}));let B;if($.extras){B=typeof $.extras==="function"?$.extras(b,{sql:V}):$.extras;for(let[C,q]of Object.entries(B))x.push({tsKey:C,value:M5(q,W)})}for(let{tsKey:C,value:q}of x)J.push({dbKey:M(q,f.Aliased)?q.fieldAlias:G.columns[C].name,tsKey:C,field:M(q,F0)?i1(q,W):q,relationTableTsKey:void 0,isJson:!1,selection:[]});let K=typeof $.orderBy==="function"?$.orderBy(b,GW()):$.orderBy??[];if(!Array.isArray(K))K=[K];O=K.map((C)=>{if(M(C,F0))return i1(C,W);return R8(C,W)}),z=$.limit,F=$.offset;for(let{tsKey:C,queryConfig:q,relation:c}of g){let n=WW(Z,X,c),N=g4(c.referencedTable),s=X[N],p=`${W}_${C}`,t=B8(...n.fields.map(($1,r1)=>l6(i1(n.references[r1],p),i1($1,W)))),I0=this.buildRelationalQueryWithoutPK({fullSchema:Y,schema:Z,tableNamesMap:X,table:Y[s],tableConfig:Z[s],queryConfig:M(c,K4)?q===!0?{limit:1}:{...q,limit:1}:q,tableAlias:p,joinOn:t,nestedQueryRelation:c}),h0=V`${V.identifier(p)}.${V.identifier("data")}`.as(C);w.push({on:V`true`,table:new S0(I0.sql,{},p),alias:p,joinType:"left",lateral:!0}),J.push({dbKey:C,tsKey:C,field:h0,relationTableTsKey:s,isJson:!0,selection:I0.selection})}}if(J.length===0)throw new f6({message:`No fields selected for table "${G.tsName}" ("${W}")`});let R;if(L=B8(Q,L),H){let b=V`json_build_array(${V.join(J.map(({field:g,tsKey:B,isJson:K})=>K?V`${V.identifier(`${W}_${B}`)}.${V.identifier("data")}`:M(g,f.Aliased)?g.sql:g),V`, `)})`;if(M(H,T8))b=V`coalesce(json_agg(${b}${O.length>0?V` order by ${V.join(O,V`, `)}`:void 0}), '[]'::json)`;let x=[{dbKey:"data",tsKey:"data",field:b.as("data"),isJson:!0,relationTableTsKey:G.tsName,selection:J}];if(z!==void 0||F!==void 0||O.length>0)R=this.buildSelectQuery({table:x6(_,W),fields:{},fieldsFlat:[{path:[],field:V.raw("*")}],where:L,limit:z,offset:F,orderBy:O,setOperators:[]}),L=void 0,z=void 0,F=void 0,O=[];else R=x6(_,W);R=this.buildSelectQuery({table:M(R,u0)?R:new S0(R,{},W),fields:{},fieldsFlat:x.map(({field:g})=>({path:[],field:M(g,F0)?i1(g,W):g})),joins:w,where:L,limit:z,offset:F,orderBy:O,setOperators:[]})}else R=this.buildSelectQuery({table:x6(_,W),fields:{},fieldsFlat:J.map(({field:b})=>({path:[],field:M(b,F0)?i1(b,W):b})),joins:w,where:L,limit:z,offset:F,orderBy:O,setOperators:[]});return{tableTsKey:G.tsName,sql:R,selection:J}}}class l5{static[E]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class G1{static[E]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(Y){if(this.fields=Y.fields,this.session=Y.session,this.dialect=Y.dialect,Y.withList)this.withList=Y.withList;this.distinct=Y.distinct}authToken;setToken(Y){return this.authToken=Y,this}from(Y){let Z=!!this.fields,X=Y,_;if(this.fields)_=this.fields;else if(M(X,S0))_=Object.fromEntries(Object.keys(X._.selectedFields).map((G)=>[G,X[G]]));else if(M(X,v8))_=X[M0].selectedFields;else if(M(X,f))_={};else _=h7(X);return new o5({table:X,fields:_,isPartialSelect:Z,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class PW extends l5{static[E]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:Y,fields:Z,isPartialSelect:X,session:_,dialect:G,withList:$,distinct:W}){super();this.config={withList:$,table:Y,fields:{...Z},distinct:W,setOperators:[]},this.isPartialSelect=X,this.session=_,this.dialect=G,this._={selectedFields:Z,config:this.config},this.tableName=J4(Y),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{};for(let H of m1(Y))this.usedTables.add(H)}getUsedTables(){return[...this.usedTables]}createJoin(Y,Z){return(X,_)=>{let G=this.tableName,$=J4(X);for(let W of m1(X))this.usedTables.add(W);if(typeof $==="string"&&this.config.joins?.some((W)=>W.alias===$))throw new Error(`Alias "${$}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof G==="string")this.config.fields={[G]:this.config.fields};if(typeof $==="string"&&!M(X,f)){let W=M(X,S0)?X._.selectedFields:M(X,V1)?X[M0].selectedFields:X[P.Symbol.Columns];this.config.fields[$]=W}}if(typeof _==="function")_=_(new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:_,table:X,joinType:Y,alias:$,lateral:Z}),typeof $==="string")switch(Y){case"left":{this.joinsNotNullableMap[$]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([W])=>[W,!1])),this.joinsNotNullableMap[$]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[$]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([W])=>[W,!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(Y,Z){return(X)=>{let _=typeof X==="function"?X(RE()):X;if(!w8(this.getSelectedFields(),_.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:Y,isAll:Z,rightSelect:_}),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(Y){return this.config.setOperators.push(...Y),this}where(Y){if(typeof Y==="function")Y=Y(new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=Y,this}having(Y){if(typeof Y==="function")Y=Y(new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=Y,this}groupBy(...Y){if(typeof Y[0]==="function"){let Z=Y[0](new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(Z)?Z:[Z]}else this.config.groupBy=Y;return this}orderBy(...Y){if(typeof Y[0]==="function"){let Z=Y[0](new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),X=Array.isArray(Z)?Z:[Z];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=X;else this.config.orderBy=X}else{let Z=Y;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=Z;else this.config.orderBy=Z}return this}limit(Y){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=Y;else this.config.limit=Y;return this}offset(Y){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=Y;else this.config.offset=Y;return this}for(Y,Z={}){return this.config.lockingClause={strength:Y,config:Z},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}as(Y){let Z=[];if(Z.push(...m1(this.config.table)),this.config.joins)for(let X of this.config.joins)Z.push(...m1(X.table));return new Proxy(new S0(this.getSQL(),this.config.fields,Y,!1,[...new Set(Z)]),new q0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new q0({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}$withCache(Y){return this.cacheConfig=Y===void 0?{config:{},enable:!0,autoInvalidate:!0}:Y===!1?{enable:!1}:{enable:!0,autoInvalidate:!0,...Y},this}}class o5 extends PW{static[E]="PgSelect";_prepare(Y){let{session:Z,config:X,dialect:_,joinsNotNullableMap:G,authToken:$,cacheConfig:W,usedTables:H}=this;if(!Z)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");let{fields:Q}=X;return E0.startActiveSpan("drizzle.prepareQuery",()=>{let J=T1(Q),z=Z.prepareQuery(_.sqlToQuery(this.getSQL()),J,Y,!0,void 0,{type:"select",tables:[...H]},W);return z.joinsNotNullableMap=G,z.setToken($)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}f7(o5,[_1]);function I2(Y,Z){return(X,_,...G)=>{let $=[_,...G].map((W)=>({type:Y,isAll:Z,rightSelect:W}));for(let W of $)if(!w8(X.getSelectedFields(),W.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return X.addSetOperators($)}}var RE=()=>({union:wE,unionAll:NE,intersect:IE,intersectAll:KE,except:BE,exceptAll:TE}),wE=I2("union",!1),NE=I2("union",!0),IE=I2("intersect",!1),KE=I2("intersect",!0),BE=I2("except",!1),TE=I2("except",!0);class x8{static[E]="PgQueryBuilder";dialect;dialectConfig;constructor(Y){this.dialect=M(Y,c4)?Y:void 0,this.dialectConfig=M(Y,c4)?void 0:Y}$with=(Y,Z)=>{let X=this;return{as:(G)=>{if(typeof G==="function")G=G(X);return new Proxy(new L8(G.getSQL(),Z??("getSelectedFields"in G?G.getSelectedFields()??{}:{}),Y,!0),new q0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...Y){let Z=this;function X($){return new G1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),withList:Y})}function _($){return new G1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),distinct:!0})}function G($,W){return new G1({fields:W??void 0,session:void 0,dialect:Z.getDialect(),distinct:{on:$}})}return{select:X,selectDistinct:_,selectDistinctOn:G}}select(Y){return new G1({fields:Y??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(Y){return new G1({fields:Y??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(Y,Z){return new G1({fields:Z??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:Y}})}getDialect(){if(!this.dialect)this.dialect=new c4(this.dialectConfig);return this.dialect}}function m1(Y){if(M(Y,u0))return[Y[y4]?`${Y[y4]}.${Y[P.Symbol.BaseName]}`:Y[P.Symbol.BaseName]];if(M(Y,S0))return Y._.usedTables??[];if(M(Y,f))return Y.usedTables??[];return[]}class $Y extends _1{constructor(Y,Z,X,_){super();this.session=Z,this.dialect=X,this.config={table:Y,withList:_}}static[E]="PgDelete";config;cacheConfig;where(Y){return this.config.where=Y,this}returning(Y=this.config.table[P.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=T1(Y),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return E0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"delete",tables:m1(this.config.table)},this.cacheConfig)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new q0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class WY{constructor(Y,Z,X,_,G){this.table=Y,this.session=Z,this.dialect=X,this.withList=_,this.overridingSystemValue_=G}static[E]="PgInsertBuilder";authToken;setToken(Y){return this.authToken=Y,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(Y){if(Y=Array.isArray(Y)?Y:[Y],Y.length===0)throw new Error("values() must be called with at least one value");let Z=Y.map((X)=>{let _={},G=this.table[P.Symbol.Columns];for(let $ of Object.keys(X)){let W=X[$];_[$]=M(W,f)?W:new A1(W,G[$])}return _});return new i5(this.table,Z,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(Y){let Z=typeof Y==="function"?Y(new x8):Y;if(!M(Z,f)&&!w8(this.table[S6],Z._.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 i5(this.table,Z,this.session,this.dialect,this.withList,!0)}}class i5 extends _1{constructor(Y,Z,X,_,G,$,W){super();this.session=X,this.dialect=_,this.config={table:Y,values:Z,withList:G,select:$,overridingSystemValue_:W}}static[E]="PgInsert";config;cacheConfig;returning(Y=this.config.table[P.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=T1(Y),this}onConflictDoNothing(Y={}){if(Y.target===void 0)this.config.onConflict=V`do nothing`;else{let Z="";Z=Array.isArray(Y.target)?Y.target.map((_)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(_))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y.target));let X=Y.where?V` where ${Y.where}`:void 0;this.config.onConflict=V`(${V.raw(Z)})${X} do nothing`}return this}onConflictDoUpdate(Y){if(Y.where&&(Y.targetWhere||Y.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 Z=Y.where?V` where ${Y.where}`:void 0,X=Y.targetWhere?V` where ${Y.targetWhere}`:void 0,_=Y.setWhere?V` where ${Y.setWhere}`:void 0,G=this.dialect.buildUpdateSet(this.config.table,h6(this.config.table,Y.set)),$="";return $=Array.isArray(Y.target)?Y.target.map((W)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(W))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y.target)),this.config.onConflict=V`(${V.raw($)})${X} do update set ${G}${Z}${_}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return E0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"insert",tables:m1(this.config.table)},this.cacheConfig)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new q0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class n5 extends _1{constructor(Y,Z,X){super();this.session=Z,this.dialect=X,this.config={view:Y}}static[E]="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:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return E0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,Y,!0)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}class HY{constructor(Y,Z,X,_){this.table=Y,this.session=Z,this.dialect=X,this.withList=_}static[E]="PgUpdateBuilder";authToken;setToken(Y){return this.authToken=Y,this}set(Y){return new SW(this.table,h6(this.table,Y),this.session,this.dialect,this.withList).setToken(this.authToken)}}class SW extends _1{constructor(Y,Z,X,_,G){super();this.session=X,this.dialect=_,this.config={set:Z,table:Y,withList:G,joins:[]},this.tableName=J4(Y),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[E]="PgUpdate";config;tableName;joinsNotNullableMap;cacheConfig;from(Y){let Z=Y,X=J4(Z);if(typeof X==="string")this.joinsNotNullableMap[X]=!0;return this.config.from=Z,this}getTableLikeFields(Y){if(M(Y,u0))return Y[P.Symbol.Columns];else if(M(Y,S0))return Y._.selectedFields;return Y[M0].selectedFields}createJoin(Y){return(Z,X)=>{let _=J4(Z);if(typeof _==="string"&&this.config.joins.some((G)=>G.alias===_))throw new Error(`Alias "${_}" is already used in this query`);if(typeof X==="function"){let G=this.config.from&&!M(this.config.from,f)?this.getTableLikeFields(this.config.from):void 0;X=X(new Proxy(this.config.table[P.Symbol.Columns],new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),G&&new Proxy(G,new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:X,table:Z,joinType:Y,alias:_}),typeof _==="string")switch(Y){case"left":{this.joinsNotNullableMap[_]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([G])=>[G,!1])),this.joinsNotNullableMap[_]=!0;break}case"inner":{this.joinsNotNullableMap[_]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([G])=>[G,!1])),this.joinsNotNullableMap[_]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(Y){return this.config.where=Y,this}returning(Y){if(!Y){if(Y=Object.assign({},this.config.table[P.Symbol.Columns]),this.config.from){let Z=J4(this.config.from);if(typeof Z==="string"&&this.config.from&&!M(this.config.from,f)){let X=this.getTableLikeFields(this.config.from);Y[Z]=X}for(let X of this.config.joins){let _=J4(X.table);if(typeof _==="string"&&!M(X.table,f)){let G=this.getTableLikeFields(X.table);Y[_]=G}}}}return this.config.returningFields=Y,this.config.returning=T1(Y),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){let Z=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"insert",tables:m1(this.config.table)},this.cacheConfig);return Z.joinsNotNullableMap=this.joinsNotNullableMap,Z}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return this._prepare().execute(Y,this.authToken)};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new q0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class f8 extends f{constructor(Y){super(f8.buildEmbeddedCount(Y.source,Y.filters).queryChunks);this.params=Y,this.mapWith(Number),this.session=Y.session,this.sql=f8.buildCount(Y.source,Y.filters)}sql;token;static[E]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(Y,Z){return V`(select count(*) from ${Y}${V.raw(" where ").if(Z)}${Z})`}static buildCount(Y,Z){return V`select count(*) as count from ${Y}${V.raw(" where ").if(Z)}${Z};`}setToken(Y){return this.token=Y,this}then(Y,Z){return Promise.resolve(this.session.count(this.sql,this.token)).then(Y,Z)}catch(Y){return this.then(void 0,Y)}finally(Y){return this.then((Z)=>{return Y?.(),Z},(Z)=>{throw Y?.(),Z})}}class s5{constructor(Y,Z,X,_,G,$,W){this.fullSchema=Y,this.schema=Z,this.tableNamesMap=X,this.table=_,this.tableConfig=G,this.dialect=$,this.session=W}static[E]="PgRelationalQueryBuilder";findMany(Y){return new r5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?Y:{},"many")}findFirst(Y){return new r5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?{...Y,limit:1}:{limit:1},"first")}}class r5 extends _1{constructor(Y,Z,X,_,G,$,W,H,Q){super();this.fullSchema=Y,this.schema=Z,this.tableNamesMap=X,this.table=_,this.tableConfig=G,this.dialect=$,this.session=W,this.config=H,this.mode=Q}static[E]="PgRelationalQuery";_prepare(Y){return E0.startActiveSpan("drizzle.prepareQuery",()=>{let{query:Z,builtQuery:X}=this._toSQL();return this.session.prepareQuery(X,void 0,Y,!0,(_,G)=>{let $=_.map((W)=>o6(this.schema,this.tableConfig,W,Z.selection,G));if(this.mode==="first")return $[0];return $})})}prepare(Y){return this._prepare(Y)}_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 Y=this._getQuery(),Z=this.dialect.sqlToQuery(Y.sql);return{query:Y,builtQuery:Z}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(Y){return this.authToken=Y,this}execute(){return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class t5 extends _1{constructor(Y,Z,X,_){super();this.execute=Y,this.sql=Z,this.query=X,this.mapBatchResult=_}static[E]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(Y,Z){return Z?this.mapBatchResult(Y):Y}_prepare(){return this}isResponseInArrayMode(){return!1}}class h8{constructor(Y,Z,X){if(this.dialect=Y,this.session=Z,this._=X?{schema:X.schema,fullSchema:X.fullSchema,tableNamesMap:X.tableNamesMap,session:Z}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:Z},this.query={},this._.schema)for(let[_,G]of Object.entries(this._.schema))this.query[_]=new s5(X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[_],G,Y,Z);this.$cache={invalidate:async(_)=>{}}}static[E]="PgDatabase";query;$with=(Y,Z)=>{let X=this;return{as:(G)=>{if(typeof G==="function")G=G(new x8(X.dialect));return new Proxy(new L8(G.getSQL(),Z??("getSelectedFields"in G?G.getSelectedFields()??{}:{}),Y,!0),new q0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(Y,Z){return new f8({source:Y,filters:Z,session:this.session})}$cache;with(...Y){let Z=this;function X(Q){return new G1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y})}function _(Q){return new G1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:!0})}function G(Q,J){return new G1({fields:J??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:{on:Q}})}function $(Q){return new HY(Q,Z.session,Z.dialect,Y)}function W(Q){return new WY(Q,Z.session,Z.dialect,Y)}function H(Q){return new $Y(Q,Z.session,Z.dialect,Y)}return{select:X,selectDistinct:_,selectDistinctOn:G,update:$,insert:W,delete:H}}select(Y){return new G1({fields:Y??void 0,session:this.session,dialect:this.dialect})}selectDistinct(Y){return new G1({fields:Y??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(Y,Z){return new G1({fields:Z??void 0,session:this.session,dialect:this.dialect,distinct:{on:Y}})}update(Y){return new HY(Y,this.session,this.dialect)}insert(Y){return new WY(Y,this.session,this.dialect)}delete(Y){return new $Y(Y,this.session,this.dialect)}refreshMaterializedView(Y){return new n5(Y,this.session,this.dialect)}authToken;execute(Y){let Z=typeof Y==="string"?V.raw(Y):Y.getSQL(),X=this.dialect.sqlToQuery(Z),_=this.session.prepareQuery(X,void 0,void 0,!1);return new t5(()=>_.execute(void 0,this.authToken),Z,X,(G)=>_.mapResult(G,!0))}transaction(Y,Z){return this.session.transaction(Y,Z)}}class vW{static[E]="Cache"}class k8 extends vW{strategy(){return"all"}static[E]="NoopCache";async get(Y){return}async put(Y,Z,X,_){}async onMutate(Y){}}async function a5(Y,Z){let X=`${Y}-${JSON.stringify(Z)}`,G=new TextEncoder().encode(X),$=await crypto.subtle.digest("SHA-256",G);return[...new Uint8Array($)].map((Q)=>Q.toString(16).padStart(2,"0")).join("")}class e5{constructor(Y,Z,X,_){if(this.query=Y,this.cache=Z,this.queryMetadata=X,this.cacheConfig=_,Z&&Z.strategy()==="all"&&_===void 0)this.cacheConfig={enable:!0,autoInvalidate:!0};if(!this.cacheConfig?.enable)this.cacheConfig=void 0}authToken;getQuery(){return this.query}mapResult(Y,Z){return Y}setToken(Y){return this.authToken=Y,this}static[E]="PgPreparedQuery";joinsNotNullableMap;async queryWithCache(Y,Z,X){if(this.cache===void 0||M(this.cache,k8)||this.queryMetadata===void 0)try{return await X()}catch(_){throw new H4(Y,Z,_)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await X()}catch(_){throw new H4(Y,Z,_)}if((this.queryMetadata.type==="insert"||this.queryMetadata.type==="update"||this.queryMetadata.type==="delete")&&this.queryMetadata.tables.length>0)try{let[_]=await Promise.all([X(),this.cache.onMutate({tables:this.queryMetadata.tables})]);return _}catch(_){throw new H4(Y,Z,_)}if(!this.cacheConfig)try{return await X()}catch(_){throw new H4(Y,Z,_)}if(this.queryMetadata.type==="select"){let _=await this.cache.get(this.cacheConfig.tag??await a5(Y,Z),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(_===void 0){let G;try{G=await X()}catch($){throw new H4(Y,Z,$)}return await this.cache.put(this.cacheConfig.tag??await a5(Y,Z),G,this.cacheConfig.autoInvalidate?this.queryMetadata.tables:[],this.cacheConfig.tag!==void 0,this.cacheConfig.config),G}return _}try{return await X()}catch(_){throw new H4(Y,Z,_)}}}class YX{constructor(Y){this.dialect=Y}static[E]="PgSession";execute(Y,Z){return E0.startActiveSpan("drizzle.operation",()=>{return E0.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(Y),void 0,void 0,!1)}).setToken(Z).execute(void 0,Z)})}all(Y){return this.prepareQuery(this.dialect.sqlToQuery(Y),void 0,void 0,!1).all()}async count(Y,Z){let X=await this.execute(Y,Z);return Number(X[0].count)}}class ZX extends h8{constructor(Y,Z,X,_=0){super(Y,Z,X);this.schema=X,this.nestedIndex=_}static[E]="PgTransaction";rollback(){throw new A5}getTransactionConfigSQL(Y){let Z=[];if(Y.isolationLevel)Z.push(`isolation level ${Y.isolationLevel}`);if(Y.accessMode)Z.push(Y.accessMode);if(typeof Y.deferrable==="boolean")Z.push(Y.deferrable?"deferrable":"not deferrable");return V.raw(Z.join(" "))}setTransaction(Y){return this.session.execute(V`set transaction ${this.getTransactionConfigSQL(Y)}`)}}class xW extends e5{constructor(Y,Z,X,_,G,$,W,H,Q,J){super({sql:Z,params:X},G,$,W);this.client=Y,this.queryString=Z,this.params=X,this.logger=_,this.fields=H,this._isResponseInArrayMode=Q,this.customResultMapper=J}static[E]="PostgresJsPreparedQuery";async execute(Y={}){return E0.startActiveSpan("drizzle.execute",async(Z)=>{let X=L5(this.params,Y);Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X);let{fields:_,queryString:G,client:$,joinsNotNullableMap:W,customResultMapper:H}=this;if(!_&&!H)return E0.startActiveSpan("drizzle.driver.execute",()=>{return this.queryWithCache(G,X,async()=>{return await $.unsafe(G,X)})});let Q=await E0.startActiveSpan("drizzle.driver.execute",()=>{return Z?.setAttributes({"drizzle.query.text":G,"drizzle.query.params":JSON.stringify(X)}),this.queryWithCache(G,X,async()=>{return await $.unsafe(G,X).values()})});return E0.startActiveSpan("drizzle.mapResponse",()=>{return H?H(Q):Q.map((J)=>x7(_,J,W))})})}all(Y={}){return E0.startActiveSpan("drizzle.execute",async(Z)=>{let X=L5(this.params,Y);return Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X),E0.startActiveSpan("drizzle.driver.execute",()=>{return Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.queryWithCache(this.queryString,X,async()=>{return this.client.unsafe(this.queryString,X)})})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class b8 extends YX{constructor(Y,Z,X,_={}){super(Z);this.client=Y,this.schema=X,this.options=_,this.logger=_.logger??new w5,this.cache=_.cache??new k8}static[E]="PostgresJsSession";logger;cache;prepareQuery(Y,Z,X,_,G,$,W){return new xW(this.client,Y.sql,Y.params,this.logger,this.cache,$,W,Z,_,G)}query(Y,Z){return this.logger.logQuery(Y,Z),this.client.unsafe(Y,Z).values()}queryObjects(Y,Z){return this.client.unsafe(Y,Z)}transaction(Y,Z){return this.client.begin(async(X)=>{let _=new b8(X,this.dialect,this.schema,this.options),G=new XX(this.dialect,_,this.schema);if(Z)await G.setTransaction(Z);return Y(G)})}}class XX extends ZX{constructor(Y,Z,X,_=0){super(Y,Z,X,_);this.session=Z}static[E]="PostgresJsTransaction";transaction(Y){return this.session.client.savepoint((Z)=>{let X=new b8(Z,this.dialect,this.schema,this.session.options),_=new XX(this.dialect,X,this.schema);return Y(_)})}}class fW extends h8{static[E]="PostgresJsDatabase"}function K2(Y,Z={}){let X=(Q)=>Q;for(let Q of["1184","1082","1083","1114","1182","1185","1115","1231"])Y.options.parsers[Q]=X,Y.options.serializers[Q]=X;Y.options.serializers["114"]=X,Y.options.serializers["3802"]=X;let _=new c4({casing:Z.casing}),G;if(Z.logger===!0)G=new R5;else if(Z.logger!==!1)G=Z.logger;let $;if(Z.schema){let Q=$W(Z.schema,HW);$={fullSchema:Z.schema,schema:Q.tables,tableNamesMap:Q.tableNamesMap}}let W=new b8(Y,_,$,{logger:G,cache:Z.cache}),H=new fW(_,W,$);if(H.$client=Y,H.$cache=Z.cache,H.$cache)H.$cache.invalidate=Z.cache?.onMutate;return H}function JY(...Y){if(typeof Y[0]==="string"){let Z=N2(Y[0]);return K2(Z,Y[1])}if(k7(Y[0])){let{connection:Z,client:X,..._}=Y[0];if(X)return K2(X,_);if(typeof Z==="object"&&Z.url!==void 0){let{url:$,...W}=Z,H=N2($,W);return K2(H,_)}let G=N2(Z);return K2(G,_)}return K2(Y[0],Y[1])}((Y)=>{function Z(X){return K2({options:{parsers:{},serializers:{}}},X)}Y.mock=Z})(JY||(JY={}));var GX={};gH(GX,{users:()=>l4,untrackedUserColumnNames:()=>CE,twoFactorMethod:()=>gW,trackedUserColumnName:()=>qE,trackableUserColumnNames:()=>bW,signInHistory:()=>PE,role:()=>kW,players:()=>_X,passwordResetAttempts:()=>SE,games:()=>zY,banishedIps:()=>vE,accountActions:()=>jE,accountAction:()=>yW});function T4(){return t0({length:24}).$type()}function hW(Y){return V`lower(${Y})`}var QY=V`TO_CHAR(NOW() AT TIME ZONE 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"')`,kW=D8("role",["admin","user"]),l4=I4("users",{id:C1().primaryKey().defaultRandom(),username:t0({length:16}).notNull(),emailOffered:t0({length:254}).notNull(),emailVerified:t0({length:254}),password:t0({length:254}),createdAtIso:T4().notNull().default(QY),createdIp:t0({length:45}).notNull(),isActive:N8().notNull().default(!1),verifiedAtIso:T4(),userRole:kW().default("user")},(Y)=>[d5("usernameUniqueIndex").on(hW(Y.username)),d5("emailVerifiedUniqueIndex").on(hW(Y.emailVerified))]),CE=["id","createdAtIso","createdIp","isActive","verifiedAtIso"],bW=["username","emailOffered","emailVerified","password","userRole"],qE=D8("trackedUserColumnName",bW),yW=D8("accountAction",["cooldown","confirmEmail","signIn","resetPassword"]),jE=I4("accountActions",{userId:C1().references(()=>l4.id).primaryKey(),action:yW().notNull(),code:t0({length:254}).notNull(),wrongCodeCount:I8().notNull().default(0),expiresAtIso:T4().notNull()}),zY=I4("games",{id:C1().primaryKey().defaultRandom()}),_X=I4("players",{userId:C1().notNull().references(()=>l4.id,{onDelete:"cascade"}),gameId:C1().notNull().references(()=>zY.id,{onDelete:"cascade"}),score:I8().notNull()},(Y)=>[x3({name:"players_userId_gameId_pk",columns:[Y.userId,Y.gameId]})]),PE=I4("signInHistory",{id:C1().primaryKey().defaultRandom(),userId:C1().references(()=>l4.id,{onDelete:"cascade"}),signInTimeIso:T4().notNull().default(QY),ipAddress:t0({length:45}).notNull(),userAgent:t0({length:1024}),successful:N8().notNull().default(!1)}),gW=D8("twoFactorMethod",["email","phone"]),SE=I4("passwordResetAttempts",{id:C1().primaryKey().defaultRandom(),userId:C1().notNull().references(()=>l4.id,{onDelete:"cascade"}),requestedIp:t0({length:45}).notNull(),requestedAtIso:T4().notNull().default(QY),succeededIp:t0({length:45}),succeededAtIso:T4(),verificationMethod:gW().notNull()}),vE=I4("banishedIps",{ip:t0({length:45}).primaryKey(),reason:t0({length:2048}).notNull(),banishedAtIso:T4().notNull().default(QY),banishedUntilIso:T4()});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class $X{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(xE.resolve(__dirname,"notify_update.sql"));let Y=[d0(l4),d0(zY),d0(_X)];await this.sql`SELECT create_notify_triggers(${this.sql.array(Y)})`,await this.sql.listen("table_update",(Z)=>{let X=Z.split(","),_=X[0],G=X[1],$=`${_}("${G}")`;if(this.observers.has($))this.observers.get($).next($)})}constructor(Y=!1,Z={host:g1.POSTGRES_HOST,port:g1.POSTGRES_PORT,user:g1.POSTGRES_USER,password:g1.POSTGRES_PASSWORD,database:g1.POSTGRES_DATABASE}){this.options=Z,this.sql=N2(Z),this.drizzle=JY(this.sql,{schema:GX,logger:Y})}observe(Y,Z){if(!this.observers.has(Y))this.observers.set(Y,new G0);this.observers.get(Y).subscribe("SINGLETON",Z)}}var UY={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 fE(Y){return Number.parseInt(Y,10)}var hE=U1(UY),kE=hE.keyof().pipe((Y)=>fE(Y)),pW=U1([kE,"string"]);var HX=new Q7(process),{logger:D1}=HX;Object.assign(console,D1,{log:D1.info});D1.info("ready");var WX=uW(import.meta.dir,"..","app"),Jf=new $X({logQuery(Y,Z){D1.info("\uD83D\uDCDD query",Y,Z)}});pE({hostname:"0.0.0.0",port:g1.FRONTEND_PORT??3333,...q6??void 0,async fetch(Y){try{let Z=new Date,X=new URL(Y.url);if(D1.info(Y.method,X.pathname),X.pathname==="/")return new Response(Bun.file(uW(WX,"index.html")));if(X.pathname==="/index.html")return Response.redirect("/");let _=yE(WX,X.pathname),G=gE(_);if(!G.startsWith(WX))throw[403,"Access Denied"];if(!await mW(G).exists())return Response.redirect("/");return new Response(mW(G))}catch(Z){let X=pW(Z);if(X instanceof U1.errors===!1){let[_,G]=X,W=`${UY[_]}. ${G}`;return D1.info(`\u274C ${_}: ${W}`),new Response(W,{status:_})}if(Z instanceof Error)D1.error(Z.message);else{let _=C6(Z);D1.error("frontend server threw",_)}return new Response(UY[500],{status:500})}}});function FY(){D1.info("\uD83D\uDEEC frontend server exiting"),process.exit(0)}process.on("SIGINT",()=>{D1.info("\u2757 received SIGINT; exiting gracefully"),FY()});process.on("SIGTERM",()=>{D1.info("\u2757 received SIGTERM; exiting gracefully"),FY()});process.on("exit",()=>{D1.info("\u2757 received exit; exiting gracefully"),FY()});HX.on("timeToStop",()=>{D1.info('\u2757 backend server received signal "timeToStop"; exiting gracefully'),FY()});var{version:mE}=await Bun.file(bE.resolve(import.meta.dir,"../package.json")).json();D1.info(`\uD83D\uDEEB frontend v${mE} running at http://localhost:${g1.FRONTEND_PORT}/`);HX.emit("alive");
93
+ `;await Z.execute(V`CREATE SCHEMA IF NOT EXISTS ${V.identifier(G)}`),await Z.execute($);let H=(await Z.all(V`select id, hash, created_at from ${V.identifier(G)}.${V.identifier(_)} order by created_at desc limit 1`))[0];await Z.transaction(async(Q)=>{for await(let J of Y)if(!H||Number(H.created_at)<J.folderMillis){for(let z of J.sql)await Q.execute(V.raw(z));await Q.execute(V`insert into ${V.identifier(G)}.${V.identifier(_)} ("hash", "created_at") values(${J.hash}, ${J.folderMillis})`)}})}escapeName(Y){return`"${Y}"`}escapeParam(Y){return`$${Y+1}`}escapeString(Y){return`'${Y.replace(/'/g,"''")}'`}buildWithCTE(Y){if(!Y?.length)return;let Z=[V`with `];for(let[X,_]of Y.entries())if(Z.push(V`${V.identifier(_._.alias)} as (${_._.sql})`),X<Y.length-1)Z.push(V`, `);return Z.push(V` `),V.join(Z)}buildDeleteQuery({table:Y,where:Z,returning:X,withList:_}){let G=this.buildWithCTE(_),$=X?V` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,W=Z?V` where ${Z}`:void 0;return V`${G}delete from ${Y}${W}${$}`}buildUpdateSet(Y,Z){let X=Y[P.Symbol.Columns],_=Object.keys(X).filter(($)=>Z[$]!==void 0||X[$]?.onUpdateFn!==void 0),G=_.length;return V.join(_.flatMap(($,W)=>{let H=X[$],Q=Z[$]??V.param(H.onUpdateFn(),H),J=V`${V.identifier(this.casing.getColumnCasing(H))} = ${Q}`;if(W<G-1)return[J,V.raw(", ")];return[J]}))}buildUpdateQuery({table:Y,set:Z,where:X,returning:_,withList:G,from:$,joins:W}){let H=this.buildWithCTE(G),Q=Y[u0.Symbol.Name],J=Y[u0.Symbol.Schema],z=Y[u0.Symbol.OriginalName],F=Q===z?void 0:Q,O=V`${J?V`${V.identifier(J)}.`:void 0}${V.identifier(z)}${F&&V` ${V.identifier(F)}`}`,L=this.buildUpdateSet(Y,Z),w=$&&V.join([V.raw(" from "),this.buildFromTable($)]),R=this.buildJoins(W),b=_?V` returning ${this.buildSelection(_,{isSingleTable:!$})}`:void 0,x=X?V` where ${X}`:void 0;return V`${H}update ${O} set ${L}${w}${R}${x}${b}`}buildSelection(Y,{isSingleTable:Z=!1}={}){let X=Y.length,_=Y.flatMap(({field:G},$)=>{let W=[];if(M(G,f.Aliased)&&G.isSelectionField)W.push(V.identifier(G.fieldAlias));else if(M(G,f.Aliased)||M(G,f)){let H=M(G,f.Aliased)?G.sql:G;if(Z)W.push(new f(H.queryChunks.map((Q)=>{if(M(Q,j))return V.identifier(this.casing.getColumnCasing(Q));return Q})));else W.push(H);if(M(G,f.Aliased))W.push(V` as ${V.identifier(G.fieldAlias)}`)}else if(M(G,F0))if(Z)W.push(V.identifier(this.casing.getColumnCasing(G)));else W.push(G);if($<X-1)W.push(V`, `);return W});return V.join(_)}buildJoins(Y){if(!Y||Y.length===0)return;let Z=[];for(let[X,_]of Y.entries()){if(X===0)Z.push(V` `);let G=_.table,$=_.lateral?V` lateral`:void 0,W=_.on?V` on ${_.on}`:void 0;if(M(G,u0)){let H=G[u0.Symbol.Name],Q=G[u0.Symbol.Schema],J=G[u0.Symbol.OriginalName],z=H===J?void 0:_.alias;Z.push(V`${V.raw(_.joinType)} join${$} ${Q?V`${V.identifier(Q)}.`:void 0}${V.identifier(J)}${z&&V` ${V.identifier(z)}`}${W}`)}else if(M(G,V1)){let H=G[M0].name,Q=G[M0].schema,J=G[M0].originalName,z=H===J?void 0:_.alias;Z.push(V`${V.raw(_.joinType)} join${$} ${Q?V`${V.identifier(Q)}.`:void 0}${V.identifier(J)}${z&&V` ${V.identifier(z)}`}${W}`)}else Z.push(V`${V.raw(_.joinType)} join${$} ${G}${W}`);if(X<Y.length-1)Z.push(V` `)}return V.join(Z)}buildFromTable(Y){if(M(Y,P)&&Y[P.Symbol.IsAlias]){let Z=V`${V.identifier(Y[P.Symbol.OriginalName])}`;if(Y[P.Symbol.Schema])Z=V`${V.identifier(Y[P.Symbol.Schema])}.${Z}`;return V`${Z} ${V.identifier(Y[P.Symbol.Name])}`}return Y}buildSelectQuery({withList:Y,fields:Z,fieldsFlat:X,where:_,having:G,table:$,joins:W,orderBy:H,groupBy:Q,limit:J,offset:z,lockingClause:F,distinct:O,setOperators:L}){let w=X??T1(Z);for(let t of w)if(M(t.field,F0)&&d0(t.field.table)!==(M($,S0)?$._.alias:M($,v8)?$[M0].name:M($,f)?void 0:d0($))&&!((I0)=>W?.some(({alias:h0})=>h0===(I0[P.Symbol.IsAlias]?d0(I0):I0[P.Symbol.BaseName])))(t.field.table)){let I0=d0(t.field.table);throw Error(`Your "${t.path.join("->")}" field references a column "${I0}"."${t.field.name}", but the table "${I0}" is not part of the query! Did you forget to join it?`)}let R=!W||W.length===0,b=this.buildWithCTE(Y),x;if(O)x=O===!0?V` distinct`:V` distinct on (${V.join(O.on,V`, `)})`;let h=this.buildSelection(w,{isSingleTable:R}),g=this.buildFromTable($),B=this.buildJoins(W),K=_?V` where ${_}`:void 0,C=G?V` having ${G}`:void 0,q;if(H&&H.length>0)q=V` order by ${V.join(H,V`, `)}`;let c;if(Q&&Q.length>0)c=V` group by ${V.join(Q,V`, `)}`;let n=typeof J==="object"||typeof J==="number"&&J>=0?V` limit ${J}`:void 0,N=z?V` offset ${z}`:void 0,s=V.empty();if(F){let t=V` for ${V.raw(F.strength)}`;if(F.config.of)t.append(V` of ${V.join(Array.isArray(F.config.of)?F.config.of:[F.config.of],V`, `)}`);if(F.config.noWait)t.append(V` nowait`);else if(F.config.skipLocked)t.append(V` skip locked`);s.append(t)}let p=V`${b}select${x} ${h} from ${g}${B}${K}${c}${C}${q}${n}${N}${s}`;if(L.length>0)return this.buildSetOperations(p,L);return p}buildSetOperations(Y,Z){let[X,..._]=Z;if(!X)throw Error("Cannot pass undefined values to any set operator");if(_.length===0)return this.buildSetOperationQuery({leftSelect:Y,setOperator:X});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:Y,setOperator:X}),_)}buildSetOperationQuery({leftSelect:Y,setOperator:{type:Z,isAll:X,rightSelect:_,limit:G,orderBy:$,offset:W}}){let H=V`(${Y.getSQL()}) `,Q=V`(${_.getSQL()})`,J;if($&&$.length>0){let L=[];for(let w of $)if(M(w,j))L.push(V.identifier(w.name));else if(M(w,f)){for(let R=0;R<w.queryChunks.length;R++){let b=w.queryChunks[R];if(M(b,j))w.queryChunks[R]=V.identifier(b.name)}L.push(V`${w}`)}else L.push(V`${w}`);J=V` order by ${V.join(L,V`, `)} `}let z=typeof G==="object"||typeof G==="number"&&G>=0?V` limit ${G}`:void 0,F=V.raw(`${Z} ${X?"all ":""}`),O=W?V` offset ${W}`:void 0;return V`${H}${F}${Q}${J}${z}${O}`}buildInsertQuery({table:Y,values:Z,onConflict:X,returning:_,withList:G,select:$,overridingSystemValue_:W}){let H=[],Q=Y[P.Symbol.Columns],J=Object.entries(Q).filter(([b,x])=>!x.shouldDisableInsert()),z=J.map(([,b])=>V.identifier(this.casing.getColumnCasing(b)));if($){let b=Z;if(M(b,f))H.push(b);else H.push(b.getSQL())}else{let b=Z;H.push(V.raw("values "));for(let[x,h]of b.entries()){let g=[];for(let[B,K]of J){let C=h[B];if(C===void 0||M(C,A1)&&C.value===void 0)if(K.defaultFn!==void 0){let q=K.defaultFn(),c=M(q,f)?q:V.param(q,K);g.push(c)}else if(!K.default&&K.onUpdateFn!==void 0){let q=K.onUpdateFn(),c=M(q,f)?q:V.param(q,K);g.push(c)}else g.push(V`default`);else g.push(C)}if(H.push(g),x<b.length-1)H.push(V`, `)}}let F=this.buildWithCTE(G),O=V.join(H),L=_?V` returning ${this.buildSelection(_,{isSingleTable:!0})}`:void 0,w=X?V` on conflict ${X}`:void 0,R=W===!0?V`overriding system value `:void 0;return V`${F}insert into ${Y} ${z} ${R}${O}${w}${L}`}buildRefreshMaterializedViewQuery({view:Y,concurrently:Z,withNoData:X}){let _=Z?V` concurrently`:void 0,G=X?V` with no data`:void 0;return V`refresh materialized view${_} ${Y}${G}`}prepareTyping(Y){if(M(Y,g6)||M(Y,y6))return"json";else if(M(Y,p6))return"decimal";else if(M(Y,m6))return"time";else if(M(Y,u6)||M(Y,d6))return"timestamp";else if(M(Y,k6)||M(Y,b6))return"date";else if(M(Y,c6))return"uuid";else return"none"}sqlToQuery(Y,Z){return Y.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:Z})}buildRelationalQueryWithoutPK({fullSchema:Y,schema:Z,tableNamesMap:X,table:_,tableConfig:G,queryConfig:$,tableAlias:W,nestedQueryRelation:H,joinOn:Q}){let J=[],z,F,O=[],L,w=[];if($===!0)J=Object.entries(G.columns).map(([x,h])=>({dbKey:h.name,tsKey:x,field:i1(h,W),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let b=Object.fromEntries(Object.entries(G.columns).map(([C,q])=>[C,i1(q,W)]));if($.where){let C=typeof $.where==="function"?$.where(b,_W()):$.where;L=C&&R8(C,W)}let x=[],h=[];if($.columns){let C=!1;for(let[q,c]of Object.entries($.columns)){if(c===void 0)continue;if(q in G.columns){if(!C&&c===!0)C=!0;h.push(q)}}if(h.length>0)h=C?h.filter((q)=>$.columns?.[q]===!0):Object.keys(G.columns).filter((q)=>!h.includes(q))}else h=Object.keys(G.columns);for(let C of h){let q=G.columns[C];x.push({tsKey:C,value:q})}let g=[];if($.with)g=Object.entries($.with).filter((C)=>!!C[1]).map(([C,q])=>({tsKey:C,queryConfig:q,relation:G.relations[C]}));let B;if($.extras){B=typeof $.extras==="function"?$.extras(b,{sql:V}):$.extras;for(let[C,q]of Object.entries(B))x.push({tsKey:C,value:M5(q,W)})}for(let{tsKey:C,value:q}of x)J.push({dbKey:M(q,f.Aliased)?q.fieldAlias:G.columns[C].name,tsKey:C,field:M(q,F0)?i1(q,W):q,relationTableTsKey:void 0,isJson:!1,selection:[]});let K=typeof $.orderBy==="function"?$.orderBy(b,GW()):$.orderBy??[];if(!Array.isArray(K))K=[K];O=K.map((C)=>{if(M(C,F0))return i1(C,W);return R8(C,W)}),z=$.limit,F=$.offset;for(let{tsKey:C,queryConfig:q,relation:c}of g){let n=WW(Z,X,c),N=g4(c.referencedTable),s=X[N],p=`${W}_${C}`,t=B8(...n.fields.map(($1,r1)=>l6(i1(n.references[r1],p),i1($1,W)))),I0=this.buildRelationalQueryWithoutPK({fullSchema:Y,schema:Z,tableNamesMap:X,table:Y[s],tableConfig:Z[s],queryConfig:M(c,K4)?q===!0?{limit:1}:{...q,limit:1}:q,tableAlias:p,joinOn:t,nestedQueryRelation:c}),h0=V`${V.identifier(p)}.${V.identifier("data")}`.as(C);w.push({on:V`true`,table:new S0(I0.sql,{},p),alias:p,joinType:"left",lateral:!0}),J.push({dbKey:C,tsKey:C,field:h0,relationTableTsKey:s,isJson:!0,selection:I0.selection})}}if(J.length===0)throw new f6({message:`No fields selected for table "${G.tsName}" ("${W}")`});let R;if(L=B8(Q,L),H){let b=V`json_build_array(${V.join(J.map(({field:g,tsKey:B,isJson:K})=>K?V`${V.identifier(`${W}_${B}`)}.${V.identifier("data")}`:M(g,f.Aliased)?g.sql:g),V`, `)})`;if(M(H,T8))b=V`coalesce(json_agg(${b}${O.length>0?V` order by ${V.join(O,V`, `)}`:void 0}), '[]'::json)`;let x=[{dbKey:"data",tsKey:"data",field:b.as("data"),isJson:!0,relationTableTsKey:G.tsName,selection:J}];if(z!==void 0||F!==void 0||O.length>0)R=this.buildSelectQuery({table:x6(_,W),fields:{},fieldsFlat:[{path:[],field:V.raw("*")}],where:L,limit:z,offset:F,orderBy:O,setOperators:[]}),L=void 0,z=void 0,F=void 0,O=[];else R=x6(_,W);R=this.buildSelectQuery({table:M(R,u0)?R:new S0(R,{},W),fields:{},fieldsFlat:x.map(({field:g})=>({path:[],field:M(g,F0)?i1(g,W):g})),joins:w,where:L,limit:z,offset:F,orderBy:O,setOperators:[]})}else R=this.buildSelectQuery({table:x6(_,W),fields:{},fieldsFlat:J.map(({field:b})=>({path:[],field:M(b,F0)?i1(b,W):b})),joins:w,where:L,limit:z,offset:F,orderBy:O,setOperators:[]});return{tableTsKey:G.tsName,sql:R,selection:J}}}class l5{static[E]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class G1{static[E]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(Y){if(this.fields=Y.fields,this.session=Y.session,this.dialect=Y.dialect,Y.withList)this.withList=Y.withList;this.distinct=Y.distinct}authToken;setToken(Y){return this.authToken=Y,this}from(Y){let Z=!!this.fields,X=Y,_;if(this.fields)_=this.fields;else if(M(X,S0))_=Object.fromEntries(Object.keys(X._.selectedFields).map((G)=>[G,X[G]]));else if(M(X,v8))_=X[M0].selectedFields;else if(M(X,f))_={};else _=h7(X);return new o5({table:X,fields:_,isPartialSelect:Z,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class PW extends l5{static[E]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:Y,fields:Z,isPartialSelect:X,session:_,dialect:G,withList:$,distinct:W}){super();this.config={withList:$,table:Y,fields:{...Z},distinct:W,setOperators:[]},this.isPartialSelect=X,this.session=_,this.dialect=G,this._={selectedFields:Z,config:this.config},this.tableName=J4(Y),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{};for(let H of m1(Y))this.usedTables.add(H)}getUsedTables(){return[...this.usedTables]}createJoin(Y,Z){return(X,_)=>{let G=this.tableName,$=J4(X);for(let W of m1(X))this.usedTables.add(W);if(typeof $==="string"&&this.config.joins?.some((W)=>W.alias===$))throw Error(`Alias "${$}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof G==="string")this.config.fields={[G]:this.config.fields};if(typeof $==="string"&&!M(X,f)){let W=M(X,S0)?X._.selectedFields:M(X,V1)?X[M0].selectedFields:X[P.Symbol.Columns];this.config.fields[$]=W}}if(typeof _==="function")_=_(new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:_,table:X,joinType:Y,alias:$,lateral:Z}),typeof $==="string")switch(Y){case"left":{this.joinsNotNullableMap[$]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([W])=>[W,!1])),this.joinsNotNullableMap[$]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[$]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([W])=>[W,!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(Y,Z){return(X)=>{let _=typeof X==="function"?X(RE()):X;if(!w8(this.getSelectedFields(),_.getSelectedFields()))throw 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:Y,isAll:Z,rightSelect:_}),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(Y){return this.config.setOperators.push(...Y),this}where(Y){if(typeof Y==="function")Y=Y(new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=Y,this}having(Y){if(typeof Y==="function")Y=Y(new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=Y,this}groupBy(...Y){if(typeof Y[0]==="function"){let Z=Y[0](new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(Z)?Z:[Z]}else this.config.groupBy=Y;return this}orderBy(...Y){if(typeof Y[0]==="function"){let Z=Y[0](new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),X=Array.isArray(Z)?Z:[Z];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=X;else this.config.orderBy=X}else{let Z=Y;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=Z;else this.config.orderBy=Z}return this}limit(Y){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=Y;else this.config.limit=Y;return this}offset(Y){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=Y;else this.config.offset=Y;return this}for(Y,Z={}){return this.config.lockingClause={strength:Y,config:Z},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}as(Y){let Z=[];if(Z.push(...m1(this.config.table)),this.config.joins)for(let X of this.config.joins)Z.push(...m1(X.table));return new Proxy(new S0(this.getSQL(),this.config.fields,Y,!1,[...new Set(Z)]),new q0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new q0({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}$withCache(Y){return this.cacheConfig=Y===void 0?{config:{},enable:!0,autoInvalidate:!0}:Y===!1?{enable:!1}:{enable:!0,autoInvalidate:!0,...Y},this}}class o5 extends PW{static[E]="PgSelect";_prepare(Y){let{session:Z,config:X,dialect:_,joinsNotNullableMap:G,authToken:$,cacheConfig:W,usedTables:H}=this;if(!Z)throw Error("Cannot execute a query on a query builder. Please use a database instance instead.");let{fields:Q}=X;return E0.startActiveSpan("drizzle.prepareQuery",()=>{let J=T1(Q),z=Z.prepareQuery(_.sqlToQuery(this.getSQL()),J,Y,!0,void 0,{type:"select",tables:[...H]},W);return z.joinsNotNullableMap=G,z.setToken($)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}f7(o5,[_1]);function I2(Y,Z){return(X,_,...G)=>{let $=[_,...G].map((W)=>({type:Y,isAll:Z,rightSelect:W}));for(let W of $)if(!w8(X.getSelectedFields(),W.rightSelect.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return X.addSetOperators($)}}var RE=()=>({union:wE,unionAll:NE,intersect:IE,intersectAll:KE,except:BE,exceptAll:TE}),wE=I2("union",!1),NE=I2("union",!0),IE=I2("intersect",!1),KE=I2("intersect",!0),BE=I2("except",!1),TE=I2("except",!0);class x8{static[E]="PgQueryBuilder";dialect;dialectConfig;constructor(Y){this.dialect=M(Y,c4)?Y:void 0,this.dialectConfig=M(Y,c4)?void 0:Y}$with=(Y,Z)=>{let X=this;return{as:(G)=>{if(typeof G==="function")G=G(X);return new Proxy(new L8(G.getSQL(),Z??("getSelectedFields"in G?G.getSelectedFields()??{}:{}),Y,!0),new q0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...Y){let Z=this;function X($){return new G1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),withList:Y})}function _($){return new G1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),distinct:!0})}function G($,W){return new G1({fields:W??void 0,session:void 0,dialect:Z.getDialect(),distinct:{on:$}})}return{select:X,selectDistinct:_,selectDistinctOn:G}}select(Y){return new G1({fields:Y??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(Y){return new G1({fields:Y??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(Y,Z){return new G1({fields:Z??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:Y}})}getDialect(){if(!this.dialect)this.dialect=new c4(this.dialectConfig);return this.dialect}}function m1(Y){if(M(Y,u0))return[Y[y4]?`${Y[y4]}.${Y[P.Symbol.BaseName]}`:Y[P.Symbol.BaseName]];if(M(Y,S0))return Y._.usedTables??[];if(M(Y,f))return Y.usedTables??[];return[]}class $Y extends _1{constructor(Y,Z,X,_){super();this.session=Z,this.dialect=X,this.config={table:Y,withList:_}}static[E]="PgDelete";config;cacheConfig;where(Y){return this.config.where=Y,this}returning(Y=this.config.table[P.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=T1(Y),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return E0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"delete",tables:m1(this.config.table)},this.cacheConfig)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new q0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class WY{constructor(Y,Z,X,_,G){this.table=Y,this.session=Z,this.dialect=X,this.withList=_,this.overridingSystemValue_=G}static[E]="PgInsertBuilder";authToken;setToken(Y){return this.authToken=Y,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(Y){if(Y=Array.isArray(Y)?Y:[Y],Y.length===0)throw Error("values() must be called with at least one value");let Z=Y.map((X)=>{let _={},G=this.table[P.Symbol.Columns];for(let $ of Object.keys(X)){let W=X[$];_[$]=M(W,f)?W:new A1(W,G[$])}return _});return new i5(this.table,Z,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(Y){let Z=typeof Y==="function"?Y(new x8):Y;if(!M(Z,f)&&!w8(this.table[S6],Z._.selectedFields))throw Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new i5(this.table,Z,this.session,this.dialect,this.withList,!0)}}class i5 extends _1{constructor(Y,Z,X,_,G,$,W){super();this.session=X,this.dialect=_,this.config={table:Y,values:Z,withList:G,select:$,overridingSystemValue_:W}}static[E]="PgInsert";config;cacheConfig;returning(Y=this.config.table[P.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=T1(Y),this}onConflictDoNothing(Y={}){if(Y.target===void 0)this.config.onConflict=V`do nothing`;else{let Z="";Z=Array.isArray(Y.target)?Y.target.map((_)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(_))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y.target));let X=Y.where?V` where ${Y.where}`:void 0;this.config.onConflict=V`(${V.raw(Z)})${X} do nothing`}return this}onConflictDoUpdate(Y){if(Y.where&&(Y.targetWhere||Y.setWhere))throw Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let Z=Y.where?V` where ${Y.where}`:void 0,X=Y.targetWhere?V` where ${Y.targetWhere}`:void 0,_=Y.setWhere?V` where ${Y.setWhere}`:void 0,G=this.dialect.buildUpdateSet(this.config.table,h6(this.config.table,Y.set)),$="";return $=Array.isArray(Y.target)?Y.target.map((W)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(W))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y.target)),this.config.onConflict=V`(${V.raw($)})${X} do update set ${G}${Z}${_}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return E0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"insert",tables:m1(this.config.table)},this.cacheConfig)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new q0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class n5 extends _1{constructor(Y,Z,X){super();this.session=Z,this.dialect=X,this.config={view:Y}}static[E]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return E0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,Y,!0)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}class HY{constructor(Y,Z,X,_){this.table=Y,this.session=Z,this.dialect=X,this.withList=_}static[E]="PgUpdateBuilder";authToken;setToken(Y){return this.authToken=Y,this}set(Y){return new SW(this.table,h6(this.table,Y),this.session,this.dialect,this.withList).setToken(this.authToken)}}class SW extends _1{constructor(Y,Z,X,_,G){super();this.session=X,this.dialect=_,this.config={set:Z,table:Y,withList:G,joins:[]},this.tableName=J4(Y),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[E]="PgUpdate";config;tableName;joinsNotNullableMap;cacheConfig;from(Y){let Z=Y,X=J4(Z);if(typeof X==="string")this.joinsNotNullableMap[X]=!0;return this.config.from=Z,this}getTableLikeFields(Y){if(M(Y,u0))return Y[P.Symbol.Columns];else if(M(Y,S0))return Y._.selectedFields;return Y[M0].selectedFields}createJoin(Y){return(Z,X)=>{let _=J4(Z);if(typeof _==="string"&&this.config.joins.some((G)=>G.alias===_))throw Error(`Alias "${_}" is already used in this query`);if(typeof X==="function"){let G=this.config.from&&!M(this.config.from,f)?this.getTableLikeFields(this.config.from):void 0;X=X(new Proxy(this.config.table[P.Symbol.Columns],new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),G&&new Proxy(G,new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:X,table:Z,joinType:Y,alias:_}),typeof _==="string")switch(Y){case"left":{this.joinsNotNullableMap[_]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([G])=>[G,!1])),this.joinsNotNullableMap[_]=!0;break}case"inner":{this.joinsNotNullableMap[_]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([G])=>[G,!1])),this.joinsNotNullableMap[_]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(Y){return this.config.where=Y,this}returning(Y){if(!Y){if(Y=Object.assign({},this.config.table[P.Symbol.Columns]),this.config.from){let Z=J4(this.config.from);if(typeof Z==="string"&&this.config.from&&!M(this.config.from,f)){let X=this.getTableLikeFields(this.config.from);Y[Z]=X}for(let X of this.config.joins){let _=J4(X.table);if(typeof _==="string"&&!M(X.table,f)){let G=this.getTableLikeFields(X.table);Y[_]=G}}}}return this.config.returningFields=Y,this.config.returning=T1(Y),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){let Z=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"insert",tables:m1(this.config.table)},this.cacheConfig);return Z.joinsNotNullableMap=this.joinsNotNullableMap,Z}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return this._prepare().execute(Y,this.authToken)};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new q0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class f8 extends f{constructor(Y){super(f8.buildEmbeddedCount(Y.source,Y.filters).queryChunks);this.params=Y,this.mapWith(Number),this.session=Y.session,this.sql=f8.buildCount(Y.source,Y.filters)}sql;token;static[E]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(Y,Z){return V`(select count(*) from ${Y}${V.raw(" where ").if(Z)}${Z})`}static buildCount(Y,Z){return V`select count(*) as count from ${Y}${V.raw(" where ").if(Z)}${Z};`}setToken(Y){return this.token=Y,this}then(Y,Z){return Promise.resolve(this.session.count(this.sql,this.token)).then(Y,Z)}catch(Y){return this.then(void 0,Y)}finally(Y){return this.then((Z)=>{return Y?.(),Z},(Z)=>{throw Y?.(),Z})}}class s5{constructor(Y,Z,X,_,G,$,W){this.fullSchema=Y,this.schema=Z,this.tableNamesMap=X,this.table=_,this.tableConfig=G,this.dialect=$,this.session=W}static[E]="PgRelationalQueryBuilder";findMany(Y){return new r5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?Y:{},"many")}findFirst(Y){return new r5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?{...Y,limit:1}:{limit:1},"first")}}class r5 extends _1{constructor(Y,Z,X,_,G,$,W,H,Q){super();this.fullSchema=Y,this.schema=Z,this.tableNamesMap=X,this.table=_,this.tableConfig=G,this.dialect=$,this.session=W,this.config=H,this.mode=Q}static[E]="PgRelationalQuery";_prepare(Y){return E0.startActiveSpan("drizzle.prepareQuery",()=>{let{query:Z,builtQuery:X}=this._toSQL();return this.session.prepareQuery(X,void 0,Y,!0,(_,G)=>{let $=_.map((W)=>o6(this.schema,this.tableConfig,W,Z.selection,G));if(this.mode==="first")return $[0];return $})})}prepare(Y){return this._prepare(Y)}_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 Y=this._getQuery(),Z=this.dialect.sqlToQuery(Y.sql);return{query:Y,builtQuery:Z}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(Y){return this.authToken=Y,this}execute(){return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class t5 extends _1{constructor(Y,Z,X,_){super();this.execute=Y,this.sql=Z,this.query=X,this.mapBatchResult=_}static[E]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(Y,Z){return Z?this.mapBatchResult(Y):Y}_prepare(){return this}isResponseInArrayMode(){return!1}}class h8{constructor(Y,Z,X){if(this.dialect=Y,this.session=Z,this._=X?{schema:X.schema,fullSchema:X.fullSchema,tableNamesMap:X.tableNamesMap,session:Z}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:Z},this.query={},this._.schema)for(let[_,G]of Object.entries(this._.schema))this.query[_]=new s5(X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[_],G,Y,Z);this.$cache={invalidate:async(_)=>{}}}static[E]="PgDatabase";query;$with=(Y,Z)=>{let X=this;return{as:(G)=>{if(typeof G==="function")G=G(new x8(X.dialect));return new Proxy(new L8(G.getSQL(),Z??("getSelectedFields"in G?G.getSelectedFields()??{}:{}),Y,!0),new q0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(Y,Z){return new f8({source:Y,filters:Z,session:this.session})}$cache;with(...Y){let Z=this;function X(Q){return new G1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y})}function _(Q){return new G1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:!0})}function G(Q,J){return new G1({fields:J??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:{on:Q}})}function $(Q){return new HY(Q,Z.session,Z.dialect,Y)}function W(Q){return new WY(Q,Z.session,Z.dialect,Y)}function H(Q){return new $Y(Q,Z.session,Z.dialect,Y)}return{select:X,selectDistinct:_,selectDistinctOn:G,update:$,insert:W,delete:H}}select(Y){return new G1({fields:Y??void 0,session:this.session,dialect:this.dialect})}selectDistinct(Y){return new G1({fields:Y??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(Y,Z){return new G1({fields:Z??void 0,session:this.session,dialect:this.dialect,distinct:{on:Y}})}update(Y){return new HY(Y,this.session,this.dialect)}insert(Y){return new WY(Y,this.session,this.dialect)}delete(Y){return new $Y(Y,this.session,this.dialect)}refreshMaterializedView(Y){return new n5(Y,this.session,this.dialect)}authToken;execute(Y){let Z=typeof Y==="string"?V.raw(Y):Y.getSQL(),X=this.dialect.sqlToQuery(Z),_=this.session.prepareQuery(X,void 0,void 0,!1);return new t5(()=>_.execute(void 0,this.authToken),Z,X,(G)=>_.mapResult(G,!0))}transaction(Y,Z){return this.session.transaction(Y,Z)}}class vW{static[E]="Cache"}class k8 extends vW{strategy(){return"all"}static[E]="NoopCache";async get(Y){return}async put(Y,Z,X,_){}async onMutate(Y){}}async function a5(Y,Z){let X=`${Y}-${JSON.stringify(Z)}`,G=new TextEncoder().encode(X),$=await crypto.subtle.digest("SHA-256",G);return[...new Uint8Array($)].map((Q)=>Q.toString(16).padStart(2,"0")).join("")}class e5{constructor(Y,Z,X,_){if(this.query=Y,this.cache=Z,this.queryMetadata=X,this.cacheConfig=_,Z&&Z.strategy()==="all"&&_===void 0)this.cacheConfig={enable:!0,autoInvalidate:!0};if(!this.cacheConfig?.enable)this.cacheConfig=void 0}authToken;getQuery(){return this.query}mapResult(Y,Z){return Y}setToken(Y){return this.authToken=Y,this}static[E]="PgPreparedQuery";joinsNotNullableMap;async queryWithCache(Y,Z,X){if(this.cache===void 0||M(this.cache,k8)||this.queryMetadata===void 0)try{return await X()}catch(_){throw new H4(Y,Z,_)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await X()}catch(_){throw new H4(Y,Z,_)}if((this.queryMetadata.type==="insert"||this.queryMetadata.type==="update"||this.queryMetadata.type==="delete")&&this.queryMetadata.tables.length>0)try{let[_]=await Promise.all([X(),this.cache.onMutate({tables:this.queryMetadata.tables})]);return _}catch(_){throw new H4(Y,Z,_)}if(!this.cacheConfig)try{return await X()}catch(_){throw new H4(Y,Z,_)}if(this.queryMetadata.type==="select"){let _=await this.cache.get(this.cacheConfig.tag??await a5(Y,Z),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(_===void 0){let G;try{G=await X()}catch($){throw new H4(Y,Z,$)}return await this.cache.put(this.cacheConfig.tag??await a5(Y,Z),G,this.cacheConfig.autoInvalidate?this.queryMetadata.tables:[],this.cacheConfig.tag!==void 0,this.cacheConfig.config),G}return _}try{return await X()}catch(_){throw new H4(Y,Z,_)}}}class YX{constructor(Y){this.dialect=Y}static[E]="PgSession";execute(Y,Z){return E0.startActiveSpan("drizzle.operation",()=>{return E0.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(Y),void 0,void 0,!1)}).setToken(Z).execute(void 0,Z)})}all(Y){return this.prepareQuery(this.dialect.sqlToQuery(Y),void 0,void 0,!1).all()}async count(Y,Z){let X=await this.execute(Y,Z);return Number(X[0].count)}}class ZX extends h8{constructor(Y,Z,X,_=0){super(Y,Z,X);this.schema=X,this.nestedIndex=_}static[E]="PgTransaction";rollback(){throw new A5}getTransactionConfigSQL(Y){let Z=[];if(Y.isolationLevel)Z.push(`isolation level ${Y.isolationLevel}`);if(Y.accessMode)Z.push(Y.accessMode);if(typeof Y.deferrable==="boolean")Z.push(Y.deferrable?"deferrable":"not deferrable");return V.raw(Z.join(" "))}setTransaction(Y){return this.session.execute(V`set transaction ${this.getTransactionConfigSQL(Y)}`)}}class xW extends e5{constructor(Y,Z,X,_,G,$,W,H,Q,J){super({sql:Z,params:X},G,$,W);this.client=Y,this.queryString=Z,this.params=X,this.logger=_,this.fields=H,this._isResponseInArrayMode=Q,this.customResultMapper=J}static[E]="PostgresJsPreparedQuery";async execute(Y={}){return E0.startActiveSpan("drizzle.execute",async(Z)=>{let X=L5(this.params,Y);Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X);let{fields:_,queryString:G,client:$,joinsNotNullableMap:W,customResultMapper:H}=this;if(!_&&!H)return E0.startActiveSpan("drizzle.driver.execute",()=>{return this.queryWithCache(G,X,async()=>{return await $.unsafe(G,X)})});let Q=await E0.startActiveSpan("drizzle.driver.execute",()=>{return Z?.setAttributes({"drizzle.query.text":G,"drizzle.query.params":JSON.stringify(X)}),this.queryWithCache(G,X,async()=>{return await $.unsafe(G,X).values()})});return E0.startActiveSpan("drizzle.mapResponse",()=>{return H?H(Q):Q.map((J)=>x7(_,J,W))})})}all(Y={}){return E0.startActiveSpan("drizzle.execute",async(Z)=>{let X=L5(this.params,Y);return Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X),E0.startActiveSpan("drizzle.driver.execute",()=>{return Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.queryWithCache(this.queryString,X,async()=>{return this.client.unsafe(this.queryString,X)})})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class b8 extends YX{constructor(Y,Z,X,_={}){super(Z);this.client=Y,this.schema=X,this.options=_,this.logger=_.logger??new w5,this.cache=_.cache??new k8}static[E]="PostgresJsSession";logger;cache;prepareQuery(Y,Z,X,_,G,$,W){return new xW(this.client,Y.sql,Y.params,this.logger,this.cache,$,W,Z,_,G)}query(Y,Z){return this.logger.logQuery(Y,Z),this.client.unsafe(Y,Z).values()}queryObjects(Y,Z){return this.client.unsafe(Y,Z)}transaction(Y,Z){return this.client.begin(async(X)=>{let _=new b8(X,this.dialect,this.schema,this.options),G=new XX(this.dialect,_,this.schema);if(Z)await G.setTransaction(Z);return Y(G)})}}class XX extends ZX{constructor(Y,Z,X,_=0){super(Y,Z,X,_);this.session=Z}static[E]="PostgresJsTransaction";transaction(Y){return this.session.client.savepoint((Z)=>{let X=new b8(Z,this.dialect,this.schema,this.session.options),_=new XX(this.dialect,X,this.schema);return Y(_)})}}class fW extends h8{static[E]="PostgresJsDatabase"}function K2(Y,Z={}){let X=(Q)=>Q;for(let Q of["1184","1082","1083","1114","1182","1185","1115","1231"])Y.options.parsers[Q]=X,Y.options.serializers[Q]=X;Y.options.serializers["114"]=X,Y.options.serializers["3802"]=X;let _=new c4({casing:Z.casing}),G;if(Z.logger===!0)G=new R5;else if(Z.logger!==!1)G=Z.logger;let $;if(Z.schema){let Q=$W(Z.schema,HW);$={fullSchema:Z.schema,schema:Q.tables,tableNamesMap:Q.tableNamesMap}}let W=new b8(Y,_,$,{logger:G,cache:Z.cache}),H=new fW(_,W,$);if(H.$client=Y,H.$cache=Z.cache,H.$cache)H.$cache.invalidate=Z.cache?.onMutate;return H}function JY(...Y){if(typeof Y[0]==="string"){let Z=N2(Y[0]);return K2(Z,Y[1])}if(k7(Y[0])){let{connection:Z,client:X,..._}=Y[0];if(X)return K2(X,_);if(typeof Z==="object"&&Z.url!==void 0){let{url:$,...W}=Z,H=N2($,W);return K2(H,_)}let G=N2(Z);return K2(G,_)}return K2(Y[0],Y[1])}((Y)=>{function Z(X){return K2({options:{parsers:{},serializers:{}}},X)}Y.mock=Z})(JY||(JY={}));var GX={};gH(GX,{users:()=>l4,untrackedUserColumnNames:()=>CE,twoFactorMethod:()=>gW,trackedUserColumnName:()=>qE,trackableUserColumnNames:()=>bW,signInHistory:()=>PE,role:()=>kW,players:()=>_X,passwordResetAttempts:()=>SE,games:()=>zY,banishedIps:()=>vE,accountActions:()=>jE,accountAction:()=>yW});function T4(){return t0({length:24}).$type()}function hW(Y){return V`lower(${Y})`}var QY=V`TO_CHAR(NOW() AT TIME ZONE 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"')`,kW=D8("role",["admin","user"]),l4=I4("users",{id:C1().primaryKey().defaultRandom(),username:t0({length:16}).notNull(),emailOffered:t0({length:254}).notNull(),emailVerified:t0({length:254}),password:t0({length:254}),createdAtIso:T4().notNull().default(QY),createdIp:t0({length:45}).notNull(),isActive:N8().notNull().default(!1),verifiedAtIso:T4(),userRole:kW().default("user")},(Y)=>[d5("usernameUniqueIndex").on(hW(Y.username)),d5("emailVerifiedUniqueIndex").on(hW(Y.emailVerified))]),CE=["id","createdAtIso","createdIp","isActive","verifiedAtIso"],bW=["username","emailOffered","emailVerified","password","userRole"],qE=D8("trackedUserColumnName",bW),yW=D8("accountAction",["cooldown","confirmEmail","signIn","resetPassword"]),jE=I4("accountActions",{userId:C1().references(()=>l4.id).primaryKey(),action:yW().notNull(),code:t0({length:254}).notNull(),wrongCodeCount:I8().notNull().default(0),expiresAtIso:T4().notNull()}),zY=I4("games",{id:C1().primaryKey().defaultRandom()}),_X=I4("players",{userId:C1().notNull().references(()=>l4.id,{onDelete:"cascade"}),gameId:C1().notNull().references(()=>zY.id,{onDelete:"cascade"}),score:I8().notNull()},(Y)=>[x3({name:"players_userId_gameId_pk",columns:[Y.userId,Y.gameId]})]),PE=I4("signInHistory",{id:C1().primaryKey().defaultRandom(),userId:C1().references(()=>l4.id,{onDelete:"cascade"}),signInTimeIso:T4().notNull().default(QY),ipAddress:t0({length:45}).notNull(),userAgent:t0({length:1024}),successful:N8().notNull().default(!1)}),gW=D8("twoFactorMethod",["email","phone"]),SE=I4("passwordResetAttempts",{id:C1().primaryKey().defaultRandom(),userId:C1().notNull().references(()=>l4.id,{onDelete:"cascade"}),requestedIp:t0({length:45}).notNull(),requestedAtIso:T4().notNull().default(QY),succeededIp:t0({length:45}),succeededAtIso:T4(),verificationMethod:gW().notNull()}),vE=I4("banishedIps",{ip:t0({length:45}).primaryKey(),reason:t0({length:2048}).notNull(),banishedAtIso:T4().notNull().default(QY),banishedUntilIso:T4()});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class $X{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(xE.resolve(__dirname,"notify_update.sql"));let Y=[d0(l4),d0(zY),d0(_X)];await this.sql`SELECT create_notify_triggers(${this.sql.array(Y)})`,await this.sql.listen("table_update",(Z)=>{let X=Z.split(","),_=X[0],G=X[1],$=`${_}("${G}")`;if(this.observers.has($))this.observers.get($).next($)})}constructor(Y=!1,Z={host:g1.POSTGRES_HOST,port:g1.POSTGRES_PORT,user:g1.POSTGRES_USER,password:g1.POSTGRES_PASSWORD,database:g1.POSTGRES_DATABASE}){this.options=Z,this.sql=N2(Z),this.drizzle=JY(this.sql,{schema:GX,logger:Y})}observe(Y,Z){if(!this.observers.has(Y))this.observers.set(Y,new G0);this.observers.get(Y).subscribe("SINGLETON",Z)}}var UY={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 fE(Y){return Number.parseInt(Y,10)}var hE=U1(UY),kE=hE.keyof().pipe((Y)=>fE(Y)),pW=U1([kE,"string"]);var HX=new Q7(process),{logger:D1}=HX;Object.assign(console,D1,{log:D1.info});D1.info("ready");var WX=uW(import.meta.dir,"..","app"),Jf=new $X({logQuery(Y,Z){D1.info("\uD83D\uDCDD query",Y,Z)}});pE({hostname:"0.0.0.0",port:g1.FRONTEND_PORT??3333,...q6??void 0,async fetch(Y){try{let Z=new Date,X=new URL(Y.url);if(D1.info(Y.method,X.pathname),X.pathname==="/")return new Response(Bun.file(uW(WX,"index.html")));if(X.pathname==="/index.html")return Response.redirect("/");let _=yE(WX,X.pathname),G=gE(_);if(!G.startsWith(WX))throw[403,"Access Denied"];if(!await mW(G).exists())return Response.redirect("/");return new Response(mW(G))}catch(Z){let X=pW(Z);if(X instanceof U1.errors===!1){let[_,G]=X,W=`${UY[_]}. ${G}`;return D1.info(`\u274C ${_}: ${W}`),new Response(W,{status:_})}if(Z instanceof Error)D1.error(Z.message);else{let _=C6(Z);D1.error("frontend server threw",_)}return new Response(UY[500],{status:500})}}});function FY(){D1.info("\uD83D\uDEEC frontend server exiting"),process.exit(0)}process.on("SIGINT",()=>{D1.info("\u2757 received SIGINT; exiting gracefully"),FY()});process.on("SIGTERM",()=>{D1.info("\u2757 received SIGTERM; exiting gracefully"),FY()});process.on("exit",()=>{D1.info("\u2757 received exit; exiting gracefully"),FY()});HX.on("timeToStop",()=>{D1.info('\u2757 backend server received signal "timeToStop"; exiting gracefully'),FY()});var{version:mE}=await Bun.file(bE.resolve(import.meta.dir,"../package.json")).json();D1.info(`\uD83D\uDEEB frontend v${mE} running at http://localhost:${g1.FRONTEND_PORT}/`);HX.emit("alive");