tempest.games 0.2.38 → 0.2.39

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,75 +1,75 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var wH=Object.create;var{getPrototypeOf:RH,defineProperty:JY,getOwnPropertyNames:NH}=Object;var IH=Object.prototype.hasOwnProperty;var PE=(Y,Z,X)=>{X=Y!=null?wH(RH(Y)):{};let _=Z||!Y||!Y.__esModule?JY(X,"default",{value:Y,enumerable:!0}):X;for(let G of NH(Y))if(!IH.call(_,G))JY(_,G,{get:()=>Y[G],enumerable:!0});return _};var vE=(Y,Z)=>()=>(Z||Y((Z={exports:{}}).exports,Z),Z.exports);var TH=(Y,Z)=>{for(var X in Z)JY(Y,X,{get:Z[X],enumerable:!0,configurable:!0,set:(_)=>Z[X]=()=>_})};var xE=(Y,Z)=>()=>(Y&&(Z=Y(Y=0)),Z);var fE=import.meta.require;import BE,{join as CE,normalize as qE,resolve as C3}from"path";var F4=(Y)=>Array.isArray(Y)?Y:[Y],WX=(Y,Z)=>{let X=[[],[]];for(let _ of Y)if(Z(_))X[0].push(_);else X[1].push(_);return X},b8=Array,s1=(Y,Z)=>Y.includes(Z),HX=(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)},JX=(...Y)=>Y.reduce(t1,[]),m1=(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},QX=(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 J1=(Y,Z)=>b0(Y)===Z,b0=(Y)=>{let Z=typeof Y;return Z==="object"?Y===null?"null":"object":Z==="function"?"object":Z},Q1={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},UX={...Q1,function:"a function"};class zX extends Error{}var _0=(Y)=>q4(Y,zX),q4=(Y,Z=Error)=>{throw new Z(Y)};class j2 extends Error{name="ParseError"}var w=(Y)=>q4(Y,j2),v1=(Y)=>` ${Y}`;var i=(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,U]of Q)if(typeof J==="object")X[J.group]=Z0(X[J.group],U);else X[J]=U}return G?Object.values(X):X};var QY=Object.entries;var y0=(Y,Z)=>(Y in Z),r4=(Y,Z)=>(Z in Y);class UY{constructor(Y){Object.assign(this,Y)}}var FX=class{};class S2 extends FX{}var KH=(Y,Z)=>{let X={},_={},G;for(G in Y)if(G in Z)X[G]=Y[G];else _[G]=Y[G];return[X,_]};var EX=(Y,Z)=>KH(Y,Z)[1],u1=(Y)=>Object.keys(Y).length===0,j4=(Y)=>[...Object.entries(Y),...Object.getOwnPropertySymbols(Y).map((Z)=>[Z,Y[Z]])],OX=(Y,Z)=>Object.defineProperties(Y,Object.getOwnPropertyDescriptors(Z)),VX=(Y)=>{let Z=Object.keys(Y).sort(),X={};for(let _=0;_<Z.length;_++)X[Z[_]]=Y[Z[_]];return X};var M1=v1("represents an uninitialized value"),DX=(Y)=>Object.values(Y).filter((Z)=>{if(typeof Z==="number")return!0;return typeof Y[Z]!=="number"});var zY={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},FY=globalThis.File??Blob,EY={ArrayBuffer,Blob,File:FY,FormData,Headers,Request,Response,URL},BH={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},S4={...zY,...EY,...BH,String,Number,Boolean},P2=(Y)=>{let Z=Object.getPrototypeOf(Y);while(Z?.constructor&&(!y0(Z.constructor.name,S4)||!(Y instanceof S4[Z.constructor.name])))Z=Object.getPrototypeOf(Z);let X=Z?.constructor?.name;if(X===void 0||X==="Object")return;return X},v2=(Y)=>typeof Y==="object"&&Y!==null?P2(Y)??"object":b0(Y);var E0=Array.isArray,CH={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"},qH={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"},jH={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"},LX={...CH,...qH,...jH},x2=(Y)=>{let Z=Object(Y).name??null;return Z&&y0(Z,S4)&&S4[Z]===Y?Z:null};var OY=(Y,Z)=>{let X=Y.prototype;while(X!==null){if(X===Z.prototype)return!0;X=Object.getPrototypeOf(X)}return!1};var MX=(Y)=>AX(Y,new Map),AX=(Y,Z)=>{if(typeof Y!=="object"||Y===null)return Y;if(Z?.has(Y))return Z.get(Y);let X=x2(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=AX(W.value,Z)}}return Object.defineProperties(_,G),_};var SH=(Y)=>{let Z=M1;return()=>Z===M1?Z=Y():Z},E4=(Y)=>typeof Y==="function"&&Y.length===0;var wX=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 TH=Object.create;var{getPrototypeOf:KH,defineProperty:JY,getOwnPropertyNames:BH}=Object;var CH=Object.prototype.hasOwnProperty;var fE=(Y,Z,X)=>{X=Y!=null?TH(KH(Y)):{};let _=Z||!Y||!Y.__esModule?JY(X,"default",{value:Y,enumerable:!0}):X;for(let G of BH(Y))if(!CH.call(_,G))JY(_,G,{get:()=>Y[G],enumerable:!0});return _};var hE=(Y,Z)=>()=>(Z||Y((Z={exports:{}}).exports,Z),Z.exports);var qH=(Y,Z)=>{for(var X in Z)JY(Y,X,{get:Z[X],enumerable:!0,configurable:!0,set:(_)=>Z[X]=()=>_})};var kE=(Y,Z)=>()=>(Y&&(Z=Y(Y=0)),Z);var bE=import.meta.require;import jE,{join as SE,normalize as PE,resolve as P3}from"path";var F4=(Y)=>Array.isArray(Y)?Y:[Y],QX=(Y,Z)=>{let X=[[],[]];for(let _ of Y)if(Z(_))X[0].push(_);else X[1].push(_);return X},k8=Array,s1=(Y,Z)=>Y.includes(Z),UX=(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)},zX=(...Y)=>Y.reduce(t1,[]),u1=(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},FX=(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 J1=(Y,Z)=>b0(Y)===Z,b0=(Y)=>{let Z=typeof Y;return Z==="object"?Y===null?"null":"object":Z==="function"?"object":Z},Q1={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},EX={...Q1,function:"a function"};class OX extends Error{}var _0=(Y)=>C4(Y,OX),C4=(Y,Z=Error)=>{throw new Z(Y)};class j2 extends Error{name="ParseError"}var R=(Y)=>C4(Y,j2),v1=(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,U]of Q)if(typeof J==="object")X[J.group]=Z0(X[J.group],U);else X[J]=U}return G?Object.values(X):X};var QY=Object.entries;var y0=(Y,Z)=>(Y in Z),r4=(Y,Z)=>(Z in Y);class UY{constructor(Y){Object.assign(this,Y)}}var VX=class{};class S2 extends VX{}var jH=(Y,Z)=>{let X={},_={},G;for(G in Y)if(G in Z)X[G]=Y[G];else _[G]=Y[G];return[X,_]};var DX=(Y,Z)=>jH(Y,Z)[1],d1=(Y)=>Object.keys(Y).length===0,q4=(Y)=>[...Object.entries(Y),...Object.getOwnPropertySymbols(Y).map((Z)=>[Z,Y[Z]])],LX=(Y,Z)=>Object.defineProperties(Y,Object.getOwnPropertyDescriptors(Z)),MX=(Y)=>{let Z=Object.keys(Y).sort(),X={};for(let _=0;_<Z.length;_++)X[Z[_]]=Y[Z[_]];return X};var M1=v1("represents an uninitialized value"),AX=(Y)=>Object.values(Y).filter((Z)=>{if(typeof Z==="number")return!0;return typeof Y[Z]!=="number"});var zY={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},FY=globalThis.File??Blob,EY={ArrayBuffer,Blob,File:FY,FormData,Headers,Request,Response,URL},SH={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},j4={...zY,...EY,...SH,String,Number,Boolean},P2=(Y)=>{let Z=Object.getPrototypeOf(Y);while(Z?.constructor&&(!y0(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},v2=(Y)=>typeof Y==="object"&&Y!==null?P2(Y)??"object":b0(Y);var F0=Array.isArray,PH={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"},vH={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"},xH={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"},wX={...PH,...vH,...xH},x2=(Y)=>{let Z=Object(Y).name??null;return Z&&y0(Z,j4)&&j4[Z]===Y?Z:null};var OY=(Y,Z)=>{let X=Y.prototype;while(X!==null){if(X===Z.prototype)return!0;X=Object.getPrototypeOf(X)}return!1};var RX=(Y)=>NX(Y,new Map),NX=(Y,Z)=>{if(typeof Y!=="object"||Y===null)return Y;if(Z?.has(Y))return Z.get(Y);let X=x2(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=NX(W.value,Z)}}return Object.defineProperties(_,G),_};var fH=(Y)=>{let Z=M1;return()=>Z===M1?Z=Y():Z},E4=(Y)=>typeof Y==="function"&&Y.length===0;var IX=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 x1{constructor(Y,...[Z]){return Object.assign(Object.setPrototypeOf(Y.bind(Z?.bind??this),this.constructor.prototype),Z?.attach)}}var RX=SH(()=>{try{return new Function("return false")()}catch{return!0}});var ZO=v1("brand");var NX=v1("arkInferred");var GO=v1("args");class s0{constructor(){}}var PH=()=>{try{return((new Error().stack?.split(`
8
- `)[2]?.trim()||"").match(/\(?(.+?)(?::\d+:\d+)?\)?$/)?.[1]||"unknown").replace(/^file:\/\//,"")}catch{return"unknown"}},vH=globalThis.process?.env??{},IX={fileName:PH,env:vH};var TX=(Y)=>Y[0].toUpperCase()+Y.slice(1);var VY=(Y)=>new RegExp(xH(Y),typeof Y==="string"?"":Y.flags);var xH=(Y)=>{return`^(?:${typeof Y==="string"?Y:Y.source})$`};var e1={negativeLookahead:(Y)=>`(?!${Y})`,nonCapturingGroup:(Y)=>`(?:${Y})`},f2="\\",O4={" ":1,"\n":1,"\t":1};var fH=/^-0\.?0*$/.source,BX=/[1-9]\d*/.source,hH=/\.\d+/.source,kH=/\.\d*[1-9]/.source,CX=(Y)=>VY(e1.negativeLookahead(fH)+e1.nonCapturingGroup("-?"+e1.nonCapturingGroup(e1.nonCapturingGroup("0|"+BX)+e1.nonCapturingGroup(Y.decimalPattern)+"?")+(Y.allowDecimalOnly?"|"+Y.decimalPattern:"")+"?")),KX=CX({decimalPattern:kH,allowDecimalOnly:!1}),bH=KX.test.bind(KX),y8=CX({decimalPattern:hH,allowDecimalOnly:!0}),zO=y8.test.bind(y8),yH=/^-?\d*\.?\d*$/,gH=(Y)=>Y.length!==0&&yH.test(Y),h2=VY(e1.negativeLookahead("^-0$")+"-?"+e1.nonCapturingGroup(e1.nonCapturingGroup("0|"+BX))),pH=h2.test.bind(h2),DY=/^-?\d+$/,mH=DY.test.bind(DY),qX={number:"a number",bigint:"a bigint",integer:"an integer"},jX=(Y,Z)=>`'${Y}' was parsed as ${qX[Z]} but could not be narrowed to a literal value. Avoid unnecessary leading or trailing zeros and other abnormal notation`,uH=(Y,Z)=>Z==="number"?bH(Y):pH(Y),dH=(Y,Z)=>Z==="number"?Number(Y):Number.parseInt(Y),cH=(Y,Z)=>Z==="number"?gH(Y):mH(Y),SX=(Y,Z)=>LY(Y,"number",Z),PX=(Y,Z)=>LY(Y,"number",{...Z,strict:!0}),vX=(Y,Z)=>LY(Y,"integer",Z),LY=(Y,Z,X)=>{let _=dH(Y,Z);if(!Number.isNaN(_)){if(cH(Y,Z)){if(X?.strict)return uH(Y,Z)?_:w(jX(Y,Z));return _}}return X?.errorOnFail?w(X?.errorOnFail===!0?`Failed to parse ${qX[Z]} from '${Y}'`:X?.errorOnFail):void 0},xX=(Y)=>{if(Y[Y.length-1]!=="n")return;let Z=Y.slice(0,-1),X;try{X=BigInt(Z)}catch{return}if(h2.test(Z))return X;if(DY.test(Z))return w(jX(Y,"bigint"))};var lH="0.46.0",oH={version:lH,filename:IX.fileName(),FileConstructor:FY},P4=oH,fX=new Map,MY=Object.create(null),k2=(Y)=>{let Z=fX.get(Y);if(Z)return Z;let X=iH(Y);if(MY[X])X=`${X}${MY[X]++}`;else MY[X]=1;return P4[X]=Y,fX.set(Y,X),X},V4=(Y)=>/^[$A-Z_a-z][\w$]*$/.test(Y),iH=(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 V4(Y.name)?Y.name:"fn";case"symbol":return Y.description&&V4(Y.description)?Y.description:"symbol"}return _0(`Unexpected attempt to register serializable value of type ${b0(Y)}`)};var b2=(Y)=>typeof Y==="string"?JSON.stringify(Y):typeof Y==="bigint"?`${Y}n`:`${Y}`;var hX=(Y,Z={})=>y2(Y,{onUndefined:"$ark.undefined",onBigInt:(X)=>`$ark.bigint-${X}`,...Z},[]);var r=(Y,Z)=>{switch(b0(Y)){case"object":let X=Y,_=X.constructor.name;return _==="Object"||_==="Array"?Z?.quoteKeys===!1?g8(X,Z?.indent??0,""):JSON.stringify(y2(X,n4,[]),null,Z?.indent):g8(X,Z?.indent??0,"");case"symbol":return n4.onSymbol(Y);default:return b2(Y)}},g8=(Y,Z,X)=>{if(typeof Y==="function")return n4.onFunction(Y);if(typeof Y!=="object"||Y===null)return b2(Y);let _=X+" ".repeat(Z);if(Array.isArray(Y)){if(Y.length===0)return"[]";let $=Y.map((W)=>g8(W,Z,_)).join(`,
7
+ }`)}}};class x1{constructor(Y,...[Z]){return Object.assign(Object.setPrototypeOf(Y.bind(Z?.bind??this),this.constructor.prototype),Z?.attach)}}var TX=fH(()=>{try{return new Function("return false")()}catch{return!0}});var GO=v1("brand");var KX=v1("arkInferred");var HO=v1("args");class s0{constructor(){}}var hH=()=>{try{return((new Error().stack?.split(`
8
+ `)[2]?.trim()||"").match(/\(?(.+?)(?::\d+:\d+)?\)?$/)?.[1]||"unknown").replace(/^file:\/\//,"")}catch{return"unknown"}},kH=globalThis.process?.env??{},BX={fileName:hH,env:kH};var CX=(Y)=>Y[0].toUpperCase()+Y.slice(1);var VY=(Y)=>new RegExp(bH(Y),typeof Y==="string"?"":Y.flags);var bH=(Y)=>{return`^(?:${typeof Y==="string"?Y:Y.source})$`};var e1={negativeLookahead:(Y)=>`(?!${Y})`,nonCapturingGroup:(Y)=>`(?:${Y})`},f2="\\",O4={" ":1,"\n":1,"\t":1};var yH=/^-0\.?0*$/.source,jX=/[1-9]\d*/.source,gH=/\.\d+/.source,pH=/\.\d*[1-9]/.source,SX=(Y)=>VY(e1.negativeLookahead(yH)+e1.nonCapturingGroup("-?"+e1.nonCapturingGroup(e1.nonCapturingGroup("0|"+jX)+e1.nonCapturingGroup(Y.decimalPattern)+"?")+(Y.allowDecimalOnly?"|"+Y.decimalPattern:"")+"?")),qX=SX({decimalPattern:pH,allowDecimalOnly:!1}),mH=qX.test.bind(qX),b8=SX({decimalPattern:gH,allowDecimalOnly:!0}),OO=b8.test.bind(b8),uH=/^-?\d*\.?\d*$/,dH=(Y)=>Y.length!==0&&uH.test(Y),h2=VY(e1.negativeLookahead("^-0$")+"-?"+e1.nonCapturingGroup(e1.nonCapturingGroup("0|"+jX))),cH=h2.test.bind(h2),DY=/^-?\d+$/,lH=DY.test.bind(DY),PX={number:"a number",bigint:"a bigint",integer:"an integer"},vX=(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`,oH=(Y,Z)=>Z==="number"?mH(Y):cH(Y),iH=(Y,Z)=>Z==="number"?Number(Y):Number.parseInt(Y),rH=(Y,Z)=>Z==="number"?dH(Y):lH(Y),xX=(Y,Z)=>LY(Y,"number",Z),fX=(Y,Z)=>LY(Y,"number",{...Z,strict:!0}),hX=(Y,Z)=>LY(Y,"integer",Z),LY=(Y,Z,X)=>{let _=iH(Y,Z);if(!Number.isNaN(_)){if(rH(Y,Z)){if(X?.strict)return oH(Y,Z)?_:R(vX(Y,Z));return _}}return X?.errorOnFail?R(X?.errorOnFail===!0?`Failed to parse ${PX[Z]} from '${Y}'`:X?.errorOnFail):void 0},kX=(Y)=>{if(Y[Y.length-1]!=="n")return;let Z=Y.slice(0,-1),X;try{X=BigInt(Z)}catch{return}if(h2.test(Z))return X;if(DY.test(Z))return R(vX(Y,"bigint"))};var nH="0.46.0",sH={version:nH,filename:BX.fileName(),FileConstructor:FY},S4=sH,bX=new Map,MY=Object.create(null),k2=(Y)=>{let Z=bX.get(Y);if(Z)return Z;let X=tH(Y);if(MY[X])X=`${X}${MY[X]++}`;else MY[X]=1;return S4[X]=Y,bX.set(Y,X),X},V4=(Y)=>/^[$A-Z_a-z][\w$]*$/.test(Y),tH=(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 V4(Y.name)?Y.name:"fn";case"symbol":return Y.description&&V4(Y.description)?Y.description:"symbol"}return _0(`Unexpected attempt to register serializable value of type ${b0(Y)}`)};var b2=(Y)=>typeof Y==="string"?JSON.stringify(Y):typeof Y==="bigint"?`${Y}n`:`${Y}`;var yX=(Y,Z={})=>y2(Y,{onUndefined:"$ark.undefined",onBigInt:(X)=>`$ark.bigint-${X}`,...Z},[]);var i=(Y,Z)=>{switch(b0(Y)){case"object":let X=Y,_=X.constructor.name;return _==="Object"||_==="Array"?Z?.quoteKeys===!1?y8(X,Z?.indent??0,""):JSON.stringify(y2(X,n4,[]),null,Z?.indent):y8(X,Z?.indent??0,"");case"symbol":return n4.onSymbol(Y);default:return b2(Y)}},y8=(Y,Z,X)=>{if(typeof Y==="function")return n4.onFunction(Y);if(typeof Y!=="object"||Y===null)return b2(Y);let _=X+" ".repeat(Z);if(Array.isArray(Y)){if(Y.length===0)return"[]";let $=Y.map((W)=>y8(W,Z,_)).join(`,
9
9
  `+_);return Z?`[
10
10
  ${_}${$}
11
- ${X}]`:`[${$}]`}let G=Y.constructor.name;if(G==="Object"){let $=j4(Y).map(([W,H])=>{let Q=typeof W==="symbol"?n4.onSymbol(W):V4(W)?W:JSON.stringify(W),J=g8(H,Z,_);return`${_}${Q}: ${J}`});if($.length===0)return"{}";return Z?`{
11
+ ${X}]`:`[${$}]`}let G=Y.constructor.name;if(G==="Object"){let $=q4(Y).map(([W,H])=>{let Q=typeof W==="symbol"?n4.onSymbol(W):V4(W)?W:JSON.stringify(W),J=y8(H,Z,_);return`${_}${Q}: ${J}`});if($.length===0)return"{}";return Z?`{
12
12
  ${$.join(`,
13
13
  `)}
14
- ${X}}`:`{${$.join(", ")}}`}if(Y instanceof Date)return v4(Y);if("expression"in Y&&typeof Y.expression==="string")return Y.expression;return G},n4={onCycle:()=>"(cycle)",onSymbol:(Y)=>`Symbol(${k2(Y)})`,onFunction:(Y)=>`Function(${k2(Y)})`},y2=(Y,Z,X)=>{switch(b0(Y)){case"object":{let _=Y;if("toJSON"in _&&typeof _.toJSON==="function")return _.toJSON();if(typeof _==="function")return n4.onFunction(_);if(X.includes(_))return"(cycle)";let G=[...X,_];if(Array.isArray(_))return _.map((W)=>y2(W,Z,G));if(_ instanceof Date)return _.toDateString();let $={};for(let W in _)$[W]=y2(_[W],Z,G);for(let W of Object.getOwnPropertySymbols(_))$[Z.onSymbol?.(W)??W.toString()]=y2(_[W],Z,G);return $}case"symbol":return n4.onSymbol(Y);case"bigint":return Z.onBigInt?.(Y)??`${Y}n`;case"undefined":return Z.onUndefined??"undefined";case"string":return Y.replaceAll("\\","\\\\");default:return Y}},v4=(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=`${rH[X]} ${_}, ${Z}`;if(G===0&&$===0&&W===0&&H===0)return Q;let J=Y.toLocaleTimeString(),U=J.endsWith(" AM")||J.endsWith(" PM")?J.slice(-3):"";if(U)J=J.slice(0,-U.length);if(H)J+=`.${sH(H,3)}`;else if(nH.test(J))J=J.slice(0,-3);return`${J+U}, ${Q}`},rH=["January","February","March","April","May","June","July","August","September","October","November","December"],nH=/:\d\d:00$/,sH=(Y,Z)=>String(Y).padStart(Z,"0");var kX=(Y,Z,...[X])=>{let _=X?.stringifySymbol??r,G=Y;switch(typeof Z){case"string":G=V4(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 w(`${r(Z)} must be a PropertyKey or stringifyNonKey must be passed to options`)}return G},Y4=(Y,...Z)=>Y.reduce((X,_)=>kX(X,_,...Z),"");class g2 extends b8{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"?r(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=kX(Y,X),Z.push(Y);return this.cache.stringifyAncestors=Z}}class AY{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]===f2)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 O4))}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 kO=v1("implementedTraits");var wY="$ark",tH=2;while(wY in globalThis)wY=`$ark${tH++}`;var bX=wY;globalThis[bX]=P4;var T=P4,aH=(Y)=>`${bX}.${Y}`,C0=(Y)=>aH(k2(Y));class p8 extends S2{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 RY(Y,Z)}index(Y,Z=!1){return yX(`${Y}`,Z)}line(Y){return this.body+=`${" ".repeat(this.indentation)}${Y}
14
+ ${X}}`:`{${$.join(", ")}}`}if(Y instanceof Date)return P4(Y);if("expression"in Y&&typeof Y.expression==="string")return Y.expression;return G},n4={onCycle:()=>"(cycle)",onSymbol:(Y)=>`Symbol(${k2(Y)})`,onFunction:(Y)=>`Function(${k2(Y)})`},y2=(Y,Z,X)=>{switch(b0(Y)){case"object":{let _=Y;if("toJSON"in _&&typeof _.toJSON==="function")return _.toJSON();if(typeof _==="function")return n4.onFunction(_);if(X.includes(_))return"(cycle)";let G=[...X,_];if(Array.isArray(_))return _.map((W)=>y2(W,Z,G));if(_ instanceof Date)return _.toDateString();let $={};for(let W in _)$[W]=y2(_[W],Z,G);for(let W of Object.getOwnPropertySymbols(_))$[Z.onSymbol?.(W)??W.toString()]=y2(_[W],Z,G);return $}case"symbol":return n4.onSymbol(Y);case"bigint":return Z.onBigInt?.(Y)??`${Y}n`;case"undefined":return Z.onUndefined??"undefined";case"string":return Y.replaceAll("\\","\\\\");default:return Y}},P4=(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=`${aH[X]} ${_}, ${Z}`;if(G===0&&$===0&&W===0&&H===0)return Q;let J=Y.toLocaleTimeString(),U=J.endsWith(" AM")||J.endsWith(" PM")?J.slice(-3):"";if(U)J=J.slice(0,-U.length);if(H)J+=`.${YJ(H,3)}`;else if(eH.test(J))J=J.slice(0,-3);return`${J+U}, ${Q}`},aH=["January","February","March","April","May","June","July","August","September","October","November","December"],eH=/:\d\d:00$/,YJ=(Y,Z)=>String(Y).padStart(Z,"0");var gX=(Y,Z,...[X])=>{let _=X?.stringifySymbol??i,G=Y;switch(typeof Z){case"string":G=V4(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 R(`${i(Z)} must be a PropertyKey or stringifyNonKey must be passed to options`)}return G},Y4=(Y,...Z)=>Y.reduce((X,_)=>gX(X,_,...Z),"");class g2 extends k8{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=gX(Y,X),Z.push(Y);return this.cache.stringifyAncestors=Z}}class AY{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]===f2)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 O4))}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 gO=v1("implementedTraits");var wY="$ark",ZJ=2;while(wY in globalThis)wY=`$ark${ZJ++}`;var pX=wY;globalThis[pX]=S4;var N=S4,XJ=(Y)=>`${pX}.${Y}`,C0=(Y)=>XJ(k2(Y));class g8 extends S2{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 RY(Y,Z)}index(Y,Z=!1){return mX(`${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
- `):this.body} }`}compile(){return new wX(...this.argNames,this.body)}}var Z4=(Y)=>J1(Y,"object")||typeof Y==="symbol"?C0(Y):b2(Y),RY=(Y,Z=!1)=>{if(typeof Y==="string"&&V4(Y))return`${Z?"?":""}.${Y}`;return yX(eH(Y),Z)},eH=(Y)=>typeof Y==="symbol"?C0(Y):JSON.stringify(Y),yX=(Y,Z=!1)=>`${Z?"?.":""}[${Y}]`;class p2 extends p8{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 m8=(Y)=>i(Y,(Z,X)=>[Z,E0(X)?[...X]:X]),Z1=v1("arkKind"),g=(Y,Z)=>Y?.[Z1]===Z,L0=(Y)=>g(Y,"root")||g(Y,"constraint");var gX=["unit","proto","domain"],s4=["required","optional","index","sequence"],NY=["pattern","divisor","exactLength","max","min","maxLength","minLength","before","after"],u8=[...NY,...s4,"structure","predicate"],t4=["alias","union","morph","unit","intersection","proto","domain"],YJ=[...t4,...u8],d8=i(u8,(Y,Z)=>[Z,1]),pX=i([...s4,"undeclared"],(Y,Z)=>[Z,1]),mX=i(YJ,(Y,Z)=>[Z,Y]),a4=(Y)=>typeof Y==="string"&&(Y in mX);var e4=(Y)=>mX[Y],c8=(Y)=>t4.slice(e4(Y)+1),AV=[...c8("union"),"alias"],wV=[...c8("morph"),"alias"],I1=(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+" }"},n=(Y)=>{let Z=Y;if(Z.hasAssociatedError)Z.defaults.expected??=(X)=>("description"in X)?X.description:Z.defaults.description(X),Z.defaults.actual??=(X)=>r(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 uX extends Error{name="ToJsonSchemaError";code;context;constructor(Y,Z){super(r(Z,{quoteKeys:!1,indent:4}));this.code=Y,this.context=Z}hasCode(Y){return this.code===Y}}var ZJ={dialect:"https://json-schema.org/draft/2020-12/schema",useRefs:!1,fallback:{arrayObject:(Y)=>N0.throw("arrayObject",Y),arrayPostfix:(Y)=>N0.throw("arrayPostfix",Y),defaultValue:(Y)=>N0.throw("defaultValue",Y),domain:(Y)=>N0.throw("domain",Y),morph:(Y)=>N0.throw("morph",Y),patternIntersection:(Y)=>N0.throw("patternIntersection",Y),predicate:(Y)=>N0.throw("predicate",Y),proto:(Y)=>N0.throw("proto",Y),symbolKey:(Y)=>N0.throw("symbolKey",Y),unit:(Y)=>N0.throw("unit",Y),date:(Y)=>N0.throw("date",Y)}},N0={Error:uX,throw:(...Y)=>{throw new N0.Error(...Y)},throwInternalOperandError:(Y,Z)=>_0(`Unexpected JSON Schema input for ${Y}: ${r(Z)}`),defaultConfig:ZJ};T.config??={};var m2=(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[_]=IY(Y.toJsonSchema,Z.toJsonSchema);else if(a4(_))X[_]={...Y[_],...Z[_]};else X[_]=Z[_]}return X},IY=(Y,Z)=>{if(!Y)return Z??{};if(!Z)return Y;let X={...Y},_;for(_ in Z)if(_==="fallback")X.fallback=XJ(Y.fallback,Z.fallback);else X[_]=Z[_];return X},XJ=(Y,Z)=>{Y=dX(Y),Z=dX(Z);let X={},_;for(_ in N0.defaultConfig.fallback)X[_]=Z[_]??Z.default??Y[_]??Y.default??N0.defaultConfig.fallback[_];return X},dX=(Y)=>typeof Y==="function"?{default:Y}:Y??{};class L4 extends S2{[Z1]="error";path;data;nodeConfig;input;ctx;constructor({prefixPath:Y,relativePath:Z,...X},_){super();this.input=X,this.ctx=_,OX(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:JX(Y,J.path,Z)})))});this.nodeConfig=_.config[this.code];let $=[...X.path??_.path];if(Z)$.push(...Z);if(Y)$.unshift(...Y);this.path=new g2(...$),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 U1 extends b8{[Z1]="errors";ctx;constructor(Y){super();this.ctx=Y}byPath=Object.create(null);get flatByPath(){return i(this.byPath,(Y,Z)=>[Y,Z.flat])}get flatProblemsByPath(){return i(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 TY(this)}add(Y){if(this.includes(Y))return;this._add(Y)}transform(Y){let Z=new U1(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(`
17
+ `):this.body} }`}compile(){return new IX(...this.argNames,this.body)}}var Z4=(Y)=>J1(Y,"object")||typeof Y==="symbol"?C0(Y):b2(Y),RY=(Y,Z=!1)=>{if(typeof Y==="string"&&V4(Y))return`${Z?"?":""}.${Y}`;return mX(_J(Y),Z)},_J=(Y)=>typeof Y==="symbol"?C0(Y):JSON.stringify(Y),mX=(Y,Z=!1)=>`${Z?"?.":""}[${Y}]`;class p2 extends g8{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 p8=(Y)=>o(Y,(Z,X)=>[Z,F0(X)?[...X]:X]),Z1=v1("arkKind"),y=(Y,Z)=>Y?.[Z1]===Z,D0=(Y)=>y(Y,"root")||y(Y,"constraint");var uX=["unit","proto","domain"],s4=["required","optional","index","sequence"],NY=["pattern","divisor","exactLength","max","min","maxLength","minLength","before","after"],m8=[...NY,...s4,"structure","predicate"],t4=["alias","union","morph","unit","intersection","proto","domain"],GJ=[...t4,...m8],u8=o(m8,(Y,Z)=>[Z,1]),dX=o([...s4,"undeclared"],(Y,Z)=>[Z,1]),cX=o(GJ,(Y,Z)=>[Z,Y]),a4=(Y)=>typeof Y==="string"&&(Y in cX);var e4=(Y)=>cX[Y],d8=(Y)=>t4.slice(e4(Y)+1),NV=[...d8("union"),"alias"],IV=[...d8("morph"),"alias"],N1=(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 lX 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 $J={dialect:"https://json-schema.org/draft/2020-12/schema",useRefs:!1,fallback:{arrayObject:(Y)=>N0.throw("arrayObject",Y),arrayPostfix:(Y)=>N0.throw("arrayPostfix",Y),defaultValue:(Y)=>N0.throw("defaultValue",Y),domain:(Y)=>N0.throw("domain",Y),morph:(Y)=>N0.throw("morph",Y),patternIntersection:(Y)=>N0.throw("patternIntersection",Y),predicate:(Y)=>N0.throw("predicate",Y),proto:(Y)=>N0.throw("proto",Y),symbolKey:(Y)=>N0.throw("symbolKey",Y),unit:(Y)=>N0.throw("unit",Y),date:(Y)=>N0.throw("date",Y)}},N0={Error:lX,throw:(...Y)=>{throw new N0.Error(...Y)},throwInternalOperandError:(Y,Z)=>_0(`Unexpected JSON Schema input for ${Y}: ${i(Z)}`),defaultConfig:$J};N.config??={};var m2=(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[_]=IY(Y.toJsonSchema,Z.toJsonSchema);else if(a4(_))X[_]={...Y[_],...Z[_]};else X[_]=Z[_]}return X},IY=(Y,Z)=>{if(!Y)return Z??{};if(!Z)return Y;let X={...Y},_;for(_ in Z)if(_==="fallback")X.fallback=WJ(Y.fallback,Z.fallback);else X[_]=Z[_];return X},WJ=(Y,Z)=>{Y=oX(Y),Z=oX(Z);let X={},_;for(_ in N0.defaultConfig.fallback)X[_]=Z[_]??Z.default??Y[_]??Y.default??N0.defaultConfig.fallback[_];return X},oX=(Y)=>typeof Y==="function"?{default:Y}:Y??{};class L4 extends S2{[Z1]="error";path;data;nodeConfig;input;ctx;constructor({prefixPath:Y,relativePath:Z,...X},_){super();this.input=X,this.ctx=_,LX(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:zX(Y,J.path,Z)})))});this.nodeConfig=_.config[this.code];let $=[...X.path??_.path];if(Z)$.push(...Z);if(Y)$.unshift(...Y);this.path=new g2(...$),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 U1 extends k8{[Z1]="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 TY(this)}add(Y){if(this.includes(Y))return;this._add(Y)}transform(Y){let Z=new U1(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(`
18
18
  `)}_add(Y){let Z=this.byPath[Y.propString];if(Z){if(Z.hasCode("union")&&Z.errors.length===0)return;let X=Y.hasCode("union")&&Y.errors.length===0?Y:new L4({code:"intersection",errors:Z.hasCode("intersection")?[...Z.errors,Y]:[Z,Y]},this.ctx),_=this.indexOf(Z);this.mutable[_===-1?this.length:_]=X,this.byPath[Y.propString]=X,this.addAncestorPaths(Y)}else this.byPath[Y.propString]=Y,this.addAncestorPaths(Y),this.mutable.push(Y);this.count++}addAncestorPaths(Y){for(let Z of Y.path.stringifyAncestors())this.byAncestorPath[Z]=Z0(this.byAncestorPath[Z],Y)}}class TY extends Error{name="TraversalError";constructor(Y){if(Y.length===1)super(Y.summary);else super(`
19
- `+Y.map((Z)=>` \u2022 ${_J(Z)}`).join(`
20
- `));Object.defineProperty(this,"arkErrors",{value:Y,enumerable:!1})}}var _J=(Y)=>Y.toString().split(`
19
+ `+Y.map((Z)=>` \u2022 ${HJ(Z)}`).join(`
20
+ `));Object.defineProperty(this,"arkErrors",{value:Y,enumerable:!1})}}var HJ=(Y)=>Y.toString().split(`
21
21
  `).join(`
22
- `);class f1{path=[];errors=new U1(this);root;config;queuedMorphs=[];branches=[];seen={};constructor(Y,Z){this.root=Y,this.config=Z}get data(){let Y=this.root;for(let Z of this.path)Y=Y?.[Z];return Y}get propString(){return Y4(this.path)}reject(Y){return this.error(Y),!1}mustBe(Y){return this.error(Y),!1}error(Y){let Z=typeof Y==="object"?Y.code?Y:{...Y,code:"predicate"}:{code:"predicate",expected:Y};return this.errorFromContext(Z)}hasError(){return this.currentErrorCount!==0}get currentBranch(){return this.branches.at(-1)}queueMorphs(Y){let Z={path:new g2(...this.path),morphs:Y};if(this.currentBranch)this.currentBranch.queuedMorphs.push(Z);else this.queuedMorphs.push(Z)}finalize(Y){if(this.queuedMorphs.length){if(typeof this.root==="object"&&this.root!==null&&this.config.clone)this.root=this.config.clone(this.root);this.applyQueuedMorphs()}if(this.hasError())return Y?Y(this.errors):this.errors;return this.root}get currentErrorCount(){return this.currentBranch?this.currentBranch.error?1:0:this.errors.count}get failFast(){return this.branches.length!==0}pushBranch(){this.branches.push({error:void 0,queuedMorphs:[]})}popBranch(){return this.branches.pop()}get external(){return this}errorFromNodeContext(Y){return this.errorFromContext(Y)}errorFromContext(Y){let Z=new L4(Y,this);if(this.currentBranch)this.currentBranch.error=Z;else this.errors.add(Z);return Z}applyQueuedMorphs(){while(this.queuedMorphs.length){let Y=this.queuedMorphs;this.queuedMorphs=[];for(let{path:Z,morphs:X}of Y){if(this.errors.affectsPath(Z))continue;this.applyMorphsAtPath(Z,X)}}}applyMorphsAtPath(Y,Z){let X=Y.at(-1),_;if(X!==void 0){_=this.root;for(let G=0;G<Y.length-1;G++)_=_[Y[G]]}this.path=[...Y];for(let G of Z){let $=L0(G),W=G(_===void 0?this.root:_[X],this);if(W instanceof L4){this.errors.add(W);break}if(W instanceof U1){if(!$)this.errors.merge(W);break}if(_===void 0)this.root=W;else _[X]=W;this.applyQueuedMorphs()}}}var z1=(Y,Z,X)=>{if(!X)return Z();X.path.push(Y);let _=Z();return X.path.pop(),_};class d2 extends x1{attachments;$;onFail;includesTransform;includesContextualPredicate;isCyclic;allowsRequiresContext;rootApplyStrategy;contextFreeMorph;rootApply;referencesById;shallowReferences;flatRefs;flatMorphs;allows;get shallowMorphs(){return[]}constructor(Y,Z){super((_,G,$=this.onFail)=>{if(G)return this.traverseApply(_,G),G.hasError()?G.errors:G.data;return this.rootApply(_,$)},{attach:Y});this.attachments=Y,this.$=Z,this.onFail=this.meta.onFail??this.$.resolvedConfig.onFail,this.includesTransform=this.hasKind("morph")||this.hasKind("structure")&&this.structuralMorph!==void 0,this.includesContextualPredicate=this.hasKind("predicate")&&this.inner.predicate.length!==1,this.isCyclic=this.kind==="alias",this.referencesById={[this.id]:this},this.shallowReferences=this.hasKind("structure")?[this,...this.children]:this.children.reduce((_,G)=>HJ(_,G.shallowReferences),[this]);let X=this.isStructural();this.flatRefs=[],this.flatMorphs=[];for(let _=0;_<this.children.length;_++){if(this.includesTransform||=this.children[_].includesTransform,this.includesContextualPredicate||=this.children[_].includesContextualPredicate,this.isCyclic||=this.children[_].isCyclic,!X){let G=this.children[_].flatRefs;for(let $=0;$<G.length;$++){let W=G[$];if(!this.flatRefs.some((H)=>lX(H,W))){this.flatRefs.push(W);for(let H of W.node.branches)if(H.hasKind("morph")||H.hasKind("intersection")&&H.structure?.structuralMorph!==void 0)this.flatMorphs.push({path:W.path,propString:W.propString,node:H})}}}Object.assign(this.referencesById,this.children[_].referencesById)}this.flatRefs.sort((_,G)=>_.path.length>G.path.length?1:_.path.length<G.path.length?-1:_.propString>G.propString?1:_.propString<G.propString?-1:_.node.expression<G.node.expression?-1:1),this.allowsRequiresContext=this.includesContextualPredicate||this.isCyclic,this.rootApplyStrategy=!this.allowsRequiresContext&&this.flatMorphs.length===0?this.shallowMorphs.length===0?"allows":this.shallowMorphs.every((_)=>_.length===1||_.name==="$arkStructuralMorph")?this.hasKind("union")?this.branches.some((_)=>_.shallowMorphs.length>1)?"contextual":"branchedOptimistic":this.shallowMorphs.length>1?"contextual":"optimistic":"contextual":"contextual",this.rootApply=this.createRootApply(),this.allows=this.allowsRequiresContext?(_)=>this.traverseAllows(_,new f1(_,this.$.resolvedConfig)):(_)=>this.traverseAllows(_)}createRootApply(){switch(this.rootApplyStrategy){case"allows":return(Z,X)=>{if(this.allows(Z))return Z;let _=new f1(Z,this.$.resolvedConfig);return this.traverseApply(Z,_),_.finalize(X)};case"contextual":return(Z,X)=>{let _=new f1(Z,this.$.resolvedConfig);return this.traverseApply(Z,_),_.finalize(X)};case"optimistic":this.contextFreeMorph=this.shallowMorphs[0];let Y=this.$.resolvedConfig.clone;return(Z,X)=>{if(this.allows(Z))return this.contextFreeMorph(Y&&(typeof Z==="object"&&Z!==null||typeof Z==="function")?Y(Z):Z);let _=new f1(Z,this.$.resolvedConfig);return this.traverseApply(Z,_),_.finalize(X)};case"branchedOptimistic":return this.createBranchedOptimisticRootApply();default:return this.rootApplyStrategy,_0(`Unexpected rootApplyStrategy ${this.rootApplyStrategy}`)}}compiledMeta=WJ(this.metaJson);cacheGetter(Y,Z){return Object.defineProperty(this,Y,{value:Z}),Z}get description(){return this.cacheGetter("description",this.meta?.description??this.$.resolvedConfig[this.kind].description(this))}get references(){return Object.values(this.referencesById)}precedence=e4(this.kind);precompilation;assert=(Y,Z)=>this(Y,Z,(X)=>X.throw());traverse(Y,Z){return this(Y,Z,null)}get in(){return this.cacheGetter("in",this.getIo("in"))}get out(){return this.cacheGetter("out",this.getIo("out"))}getIo(Y){if(!this.includesTransform)return this;let Z={};for(let[X,_]of this.innerEntries){let G=this.impl.keys[X];if(G.reduceIo)G.reduceIo(Y,Z,_);else if(G.child){let $=_;Z[X]=E0($)?$.map((W)=>W[Y]):$[Y]}else Z[X]=_}return this.$.node(this.kind,Z)}toJSON(){return this.json}toString(){return`Type<${this.expression}>`}equals(Y){let Z=L0(Y)?Y:this.$.parseDefinition(Y);return this.innerHash===Z.innerHash}ifEquals(Y){return this.equals(Y)?this:void 0}hasKind(Y){return this.kind===Y}assertHasKind(Y){if(this.kind!==Y)q4(`${this.kind} node was not of asserted kind ${Y}`);return this}hasKindIn(...Y){return Y.includes(this.kind)}assertHasKindIn(...Y){if(!s1(Y,this.kind))q4(`${this.kind} node was not one of asserted kinds ${Y}`);return this}isBasis(){return s1(gX,this.kind)}isConstraint(){return s1(u8,this.kind)}isStructural(){return s1(s4,this.kind)}isRefinement(){return s1(NY,this.kind)}isRoot(){return s1(t4,this.kind)}isUnknown(){return this.hasKind("intersection")&&this.children.length===0}isNever(){return this.hasKind("union")&&this.children.length===0}hasUnit(Y){return this.hasKind("unit")&&this.allows(Y)}hasOpenIntersection(){return this.impl.intersectionIsOpen}get nestableExpression(){return this.expression}select(Y){let Z=u2.normalize(Y);return this._select(Z)}_select(Y){let Z=u2.applyBoundary[Y.boundary??"references"](this);if(Y.kind)Z=Z.filter((X)=>X.kind===Y.kind);if(Y.where)Z=Z.filter(Y.where);return u2.applyMethod[Y.method??"filter"](Z,this,Y)}transform(Y,Z){return this._transform(Y,this._createTransformContext(Z))}_createTransformContext(Y){return{root:this,selected:void 0,seen:{},path:[],parseOptions:{prereduced:Y?.prereduced??!1},undeclaredKeyHandling:void 0,...Y}}_transform(Y,Z){let X=Z.bindScope??this.$;if(Z.seen[this.id])return this.$.lazilyResolve(Z.seen[this.id]);if(Z.shouldTransform?.(this,Z)===!1)return this;let _;if(Z.seen[this.id]=()=>_,this.hasKind("structure")&&this.undeclared!==Z.undeclaredKeyHandling)Z={...Z,undeclaredKeyHandling:this.undeclared};let G=i(this.inner,(J,U)=>{if(!this.impl.keys[J].child)return[J,U];let E=U;if(!E0(E)){let L=E._transform(Y,Z);return L?[J,L]:[]}if(E.length===0)return[J,U];let V=E.flatMap((L)=>{return L._transform(Y,Z)??[]});return V.length?[J,V]:[]});delete Z.seen[this.id];let $=Object.assign(G,{meta:this.meta}),W=Z.selected&&!Z.selected.includes(this)?$:Y(this.kind,$,Z);if(W===null)return null;if(L0(W))return _=W;let H=Object.keys(W);if((H.length===0||H.length===1&&H[0]==="meta")&&!u1(this.inner))return null;if((this.kind==="required"||this.kind==="optional"||this.kind==="index")&&!("value"in W))return Z.undeclaredKeyHandling?{...W,value:T.intrinsic.unknown}:null;if(this.kind==="morph")W.in??=T.intrinsic.unknown;return _=X.node(this.kind,W,Z.parseOptions)}configureReferences(Y,Z="references"){let X=u2.normalize(Z),_=typeof Y==="string"?(H,Q)=>({...Q,meta:{...Q.meta,description:Y}}):typeof Y==="function"?(H,Q)=>({...Q,meta:Y(Q.meta)}):(H,Q)=>({...Q,meta:{...Q.meta,...Y}});if(X.boundary==="self")return this.$.node(this.kind,_(this.kind,{...this.inner,meta:this.meta}));let G=this._select(X),$=G&&F4(G),W=X.boundary==="child"?(H,Q)=>Q.root.children.includes(H):X.boundary==="shallow"?(H)=>H.kind!=="structure":()=>!0;return this.$.finalize(this.transform(_,{shouldTransform:W,selected:$}))}}var u2={applyBoundary:{self:(Y)=>[Y],child:(Y)=>[...Y.children],shallow:(Y)=>[...Y.shallowReferences],references:(Y)=>[...Y.references]},applyMethod:{filter:(Y)=>Y,assertFilter:(Y,Z,X)=>{if(Y.length===0)q4(cX(Z,X));return Y},find:(Y)=>Y[0],assertFind:(Y,Z,X)=>{if(Y.length===0)q4(cX(Z,X));return Y[0]}},normalize:(Y)=>typeof Y==="function"?{boundary:"references",method:"filter",where:Y}:typeof Y==="string"?y0(Y,u2.applyBoundary)?{method:"filter",boundary:Y}:{boundary:"references",method:"filter",kind:Y}:{boundary:"references",method:"filter",...Y}},cX=(Y,Z)=>`${Y} had no references matching ${r(Z)}.`,GJ=(Y)=>Y4(Y,{stringifyNonKey:(Z)=>Z.expression}),$J=/"(\$ark\.[^"]+)"/g,WJ=(Y)=>JSON.stringify(Y).replaceAll($J,"$1"),h1=(Y,Z)=>({path:Y,node:Z,propString:GJ(Y)}),lX=(Y,Z)=>Y.propString===Z.propString&&Y.node.equals(Z.node),KY=(Y,Z)=>m1(Y,Z,{isEqual:lX}),HJ=(Y,Z)=>m1(Y,Z,{isEqual:(X,_)=>X.equals(_)});class P extends Array{static init(Y,Z,X,_){return new P({kind:Y,l:Z,r:X,path:_?.path??[],optional:_?.optional??!1})}add(Y,Z,X,_){return this.push({kind:Y,l:Z,r:X,path:_?.path??[],optional:_?.optional??!1}),this}get summary(){return this.describeReasons()}describeReasons(){if(this.length===1){let{path:Y,l:Z,r:X}=this[0],_=Y4(Y);return CY(`Intersection${_&&` at ${_}`} of ${oX(Z,X)}`)}return`The following intersections result in unsatisfiable types:
23
- \u2022 ${this.map(({path:Y,l:Z,r:X})=>`${Y}: ${oX(Z,X)}`).join(`
24
- \u2022 `)}`}throw(){return w(this.describeReasons())}invert(){let Y=this.map((Z)=>({...Z,l:Z.r,r:Z.l}));if(!(Y instanceof P))return new P(...Y);return Y}withPrefixKey(Y,Z){return this.map((X)=>({...X,path:[Y,...X.path],optional:X.optional||Z==="optional"}))}toNeverIfDisjoint(){return T.intrinsic.never}}var oX=(Y,Z)=>`${BY(Y)} and ${BY(Z)}`,BY=(Y)=>L0(Y)?Y.expression:E0(Y)?Y.map(BY).join(" | ")||"never":String(Y),CY=(Y)=>`${Y} results in an unsatisfiable type`;var Y2={},F1=(Y,Z,X)=>M0(Y,Z,{$:X,invert:!1,pipe:!1}),c2=(Y,Z,X)=>M0(Y,Z,{$:X,invert:!1,pipe:!0}),M0=(Y,Z,X)=>{let _=X.pipe?"|>":"&",G=`${Y.hash}${_}${Z.hash}`;if(Y2[G]!==void 0)return Y2[G];if(!X.pipe){let H=`${Z.hash}${_}${Y.hash}`;if(Y2[H]!==void 0){let Q=Y2[H],J=Q instanceof P?Q.invert():Q;return Y2[G]=J,J}}let $=!X.pipe||!Y.includesTransform&&!Z.includesTransform;if($&&Y.equals(Z))return Y;let W=$?qY(Y,Z,X):Y.hasKindIn(...t4)?JJ(Y,Z,X):qY(Y,Z,X);if(L0(W)){if(Y.equals(W))W=Y;else if(Z.equals(W))W=Z}return Y2[G]=W,W},qY=(Y,Z,X)=>{let _=Y.precedence<Z.precedence?Y.kind:Z.kind,G=Y.impl.intersections[Z.kind]??Z.impl.intersections[Y.kind];if(G===void 0)return null;else if(_===Y.kind)return G(Y,Z,X);else{let $=G(Z,Y,{...X,invert:!X.invert});if($ instanceof P)$=$.invert();return $}},JJ=(Y,Z,X)=>Y.includesTransform||Z.includesTransform?X.invert?iX(Z,Y,X):iX(Y,Z,X):qY(Y,Z,X),iX=(Y,Z,X)=>Y.distribute((_)=>QJ(_,Z,X),(_)=>{let G=_.filter(L0);if(G.length===0)return P.init("union",Y.branches,Z.branches);if(G.length<Y.branches.length||!Y.branches.every((H,Q)=>H.in.equals(G[Q].in)))return X.$.parseSchema(G);let $;if(G.length===1){let H=G[0];if(!$)return H;return X.$.node("morph",{...H.inner,in:H.in.configure($,"self")})}let W={branches:G};if($)W.meta=$;return X.$.parseSchema(W)}),QJ=(Y,Z,X)=>{if(Y.hasKind("morph")){let G=[...Y.morphs];if(Y.lastMorphIfNode){let $=M0(Y.lastMorphIfNode,Z,X);if($ instanceof P)return $;G[G.length-1]=$}else G.push(Z);return X.$.node("morph",{morphs:G,in:Y.inner.in})}if(Z.hasKind("morph")){let G=M0(Y,Z.in,X);if(G instanceof P)return G;return X.$.node("morph",{morphs:[Z],in:G})}return X.$.node("morph",{morphs:[Z],in:Y})};class T1 extends d2{constructor(Y,Z){super(Y,Z);Object.defineProperty(this,Z1,{value:"constraint",enumerable:!1})}impliedSiblings;intersect(Y){return F1(this,Y,this.$)}}class X4 extends T1{traverseApply=(Y,Z)=>{if(!this.traverseAllows(Y,Z))Z.errorFromNodeContext(this.errorContext)};compile(Y){if(Y.traversalKind==="Allows")Y.return(this.compiledCondition);else Y.if(this.compiledNegation,()=>Y.line(`${Y.ctx}.errorFromNodeContext(${this.compiledErrorContext})`))}get errorContext(){return{code:this.kind,description:this.description,meta:this.meta,...this.inner}}get compiledErrorContext(){return D4(this.errorContext)}}var t0=(Y)=>(Z,X)=>{if(E0(Z)){if(Z.length===0)return;let G=Z.map(($)=>X.$.node(Y,$));if(Y==="predicate")return G;return G.sort(($,W)=>$.hash<W.hash?-1:1)}let _=X.$.node(Y,Z);return _.hasOpenIntersection()?[_]:_},Z2=(Y)=>{let Z=Y.r.shift();if(!Z){let _=Y.l.length===0&&Y.kind==="structure"?T.intrinsic.unknown.internal:Y.ctx.$.node(Y.kind,Object.assign(Y.baseInner,UJ(Y.l)),{prereduced:!0});for(let G of Y.roots){if(_ instanceof P)return _;_=M0(G,_,Y.ctx)}return _}let X=!1;for(let _=0;_<Y.l.length;_++){let G=M0(Y.l[_],Z,Y.ctx);if(G===null)continue;if(G instanceof P)return G;if(!X){if(G.isRoot())return Y.roots.push(G),Y.l.splice(_),Z2(Y);Y.l[_]=G,X=!0}else if(!Y.l.includes(G))return _0(`Unexpectedly encountered multiple distinct intersection results for refinement ${G}`)}if(!X)Y.l.push(Z);if(Y.kind==="intersection"){if(Z.impliedSiblings)for(let _ of Z.impliedSiblings)m1(Y.r,_)}return Z2(Y)},X2=(Y)=>{return Object.entries(Y).flatMap(([X,_])=>(X in d8)?_:[]).sort((X,_)=>X.precedence<_.precedence?-1:X.precedence>_.precedence?1:X.kind==="predicate"&&_.kind==="predicate"?0:X.hash<_.hash?-1:1)},UJ=(Y)=>{let Z={};for(let X of Y)if(X.hasOpenIntersection())Z[X.kind]=Z0(Z[X.kind],X);else{if(Z[X.kind])return _0(`Unexpected intersection of closed refinements of kind ${X.kind}`);Z[X.kind]=X}return Z},rX=(...Y)=>w(nX(...Y)),nX=(Y,Z,X)=>{let _=X.hasKind("morph")?"a morph":X.isUnknown()?"unknown":X.exclude(Z).defaultShortDescription;return`${TX(Y)} operand must be ${Z.description} (was ${_})`};var sX=(Y,Z,X)=>new M4(Y,Z,X,X,null);class l8 extends x1{}class M4 extends x1{[Z1]="generic";paramDefs;bodyDef;$;arg$;baseInstantiation;hkt;description;constructor(Y,Z,X,_,G){super((...$)=>{let W=i(this.names,(H,Q)=>{let J=this.arg$.parse($[H]);if(!J.extends(this.constraints[H]))w(zJ(Q,this.constraints[H].expression,J.expression));return[Q,J]});if(this.defIsLazy()){let H=this.bodyDef(W);return this.$.parse(H)}return this.$.parse(Z,{args:W})});this.paramDefs=Y,this.bodyDef=Z,this.$=X,this.arg$=_,this.hkt=G,this.description=G?new G().description??`a generic type for ${G.constructor.name}`:"a generic type",this.baseInstantiation=this(...this.constraints)}defIsLazy(){return this.bodyDef instanceof l8}cacheGetter(Y,Z){return Object.defineProperty(this,Y,{value:Z}),Z}get json(){return this.cacheGetter("json",{params:this.params.map((Y)=>Y[1].isUnknown()?Y[0]:[Y[0],Y[1].json]),body:hX(this.bodyDef)})}get params(){return this.cacheGetter("params",this.paramDefs.map((Y)=>typeof Y==="string"?[Y,T.intrinsic.unknown]:[Y[0],this.$.parse(Y[1])]))}get names(){return this.cacheGetter("names",this.params.map((Y)=>Y[0]))}get constraints(){return this.cacheGetter("constraints",this.params.map((Y)=>Y[1]))}get internal(){return this}get referencesById(){return this.baseInstantiation.internal.referencesById}get references(){return this.baseInstantiation.internal.references}}var zJ=(Y,Z,X)=>`${Y} must be assignable to ${Z} (was ${X})`;var FJ=n({kind:"predicate",hasAssociatedError:!0,collapsibleKey:"predicate",keys:{predicate:{}},normalize:(Y)=>typeof Y==="function"?{predicate:Y}:Y,defaults:{description:(Y)=>`valid according to ${Y.predicate.name||"an anonymous predicate"}`},intersectionIsOpen:!0,intersections:{predicate:()=>null}});class tX extends T1{serializedPredicate=C0(this.predicate);compiledCondition=`${this.serializedPredicate}(data, ctx)`;compiledNegation=`!${this.compiledCondition}`;impliedBasis=null;expression=this.serializedPredicate;traverseAllows=this.predicate;errorContext={code:"predicate",description:this.description,meta:this.meta};compiledErrorContext=D4(this.errorContext);traverseApply=(Y,Z)=>{if(!this.predicate(Y,Z.external)&&!Z.hasError())Z.errorFromNodeContext(this.errorContext)};compile(Y){if(Y.traversalKind==="Allows"){Y.return(this.compiledCondition);return}Y.if(`${this.compiledNegation} && !ctx.hasError()`,()=>Y.line(`ctx.errorFromNodeContext(${this.compiledErrorContext})`))}reduceJsonSchema(Y,Z){return Z.fallback.predicate({code:"predicate",base:Y,predicate:this.predicate})}}var jY={implementation:FJ,Node:tX};var EJ=n({kind:"divisor",collapsibleKey:"rule",keys:{rule:{parse:(Y)=>Number.isInteger(Y)?Y:w(OJ(Y))}},normalize:(Y)=>typeof Y==="number"?{rule:Y}:Y,hasAssociatedError:!0,defaults:{description:(Y)=>Y.rule===1?"an integer":Y.rule===2?"even":`a multiple of ${Y.rule}`},intersections:{divisor:(Y,Z,X)=>X.$.node("divisor",{rule:Math.abs(Y.rule*Z.rule/VJ(Y.rule,Z.rule))})},obviatesBasisDescription:!0});class aX extends X4{traverseAllows=(Y)=>Y%this.rule===0;compiledCondition=`data % ${this.rule} === 0`;compiledNegation=`data % ${this.rule} !== 0`;impliedBasis=T.intrinsic.number.internal;expression=`% ${this.rule}`;reduceJsonSchema(Y){if(Y.type="integer",this.rule===1)return Y;return Y.multipleOf=this.rule,Y}}var SY={implementation:EJ,Node:aX};var OJ=(Y)=>`divisor must be an integer (was ${Y})`,VJ=(Y,Z)=>{let X,_=Y,G=Z;while(G!==0)X=G,G=_%G,_=X;return _};class A1 extends X4{boundOperandKind=AJ[this.kind];compiledActual=this.boundOperandKind==="value"?"data":this.boundOperandKind==="length"?"data.length":"data.valueOf()";comparator=wJ(this.kind,this.exclusive);numericLimit=this.rule.valueOf();expression=`${this.comparator} ${this.rule}`;compiledCondition=`${this.compiledActual} ${this.comparator} ${this.numericLimit}`;compiledNegation=`${this.compiledActual} ${DJ[this.comparator]} ${this.numericLimit}`;stringLimit=this.boundOperandKind==="date"?RJ(this.numericLimit):`${this.numericLimit}`;limitKind=this.comparator["0"]==="<"?"upper":"lower";isStricterThan(Y){return(this.limitKind==="upper"?this.numericLimit<Y.numericLimit:this.numericLimit>Y.numericLimit)||this.numericLimit===Y.numericLimit&&this.exclusive===!0&&!Y.exclusive}overlapsRange(Y){if(this.isStricterThan(Y))return!1;if(this.numericLimit===Y.numericLimit&&(this.exclusive||Y.exclusive))return!1;return!0}overlapIsUnit(Y){return this.numericLimit===Y.numericLimit&&!this.exclusive&&!Y.exclusive}}var DJ={"<":">=","<=":">",">":"<=",">=":"<"},LJ={min:"max",minLength:"maxLength",after:"before"},o8={parse:(Y)=>Y||void 0},i8=(Y)=>(Z)=>{if(typeof Z==="number")return{rule:Z};let{exclusive:X,..._}=Z;return X?{..._,rule:Y==="minLength"?_.rule+1:_.rule-1}:_},r8=(Y)=>(Z)=>{if(typeof Z==="number"||typeof Z==="string"||Z instanceof Date)return{rule:Z};let{exclusive:X,..._}=Z;if(!X)return _;let G=typeof _.rule==="number"?_.rule:typeof _.rule==="string"?new Date(_.rule).valueOf():_.rule.valueOf();return X?{..._,rule:Y==="after"?G+1:G-1}:_},n8=(Y)=>typeof Y==="string"||typeof Y==="number"?new Date(Y):Y,MJ=(Y,Z)=>`${Y} bound must be a positive integer (was ${Z})`,_2=(Y)=>(Z)=>{if(!Number.isInteger(Z)||Z<0)w(MJ(Y,Z));return Z},AJ={min:"value",max:"value",minLength:"length",maxLength:"length",after:"date",before:"date"},wJ=(Y,Z)=>`${y0(Y,LJ)?">":"<"}${Z?"":"="}`,RJ=(Y)=>typeof Y==="string"?Y:new Date(Y).toLocaleString(),eX=(Y)=>`Bounded expression ${Y} must be exactly one of number, string, Array, or Date`;var NJ=n({kind:"after",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:n8,serialize:(Y)=>Y.toISOString()}},normalize:r8("after"),defaults:{description:(Y)=>`${Y.collapsibleLimitString} or later`,actual:v4},intersections:{after:(Y,Z)=>Y.isStricterThan(Z)?Y:Z}});class Y_ extends A1{impliedBasis=T.intrinsic.Date.internal;collapsibleLimitString=v4(this.rule);traverseAllows=(Y)=>Y>=this.rule;reduceJsonSchema(Y,Z){return Z.fallback.date({code:"date",base:Y,after:this.rule})}}var PY={implementation:NJ,Node:Y_};var IJ=n({kind:"before",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:n8,serialize:(Y)=>Y.toISOString()}},normalize:r8("before"),defaults:{description:(Y)=>`${Y.collapsibleLimitString} or earlier`,actual:v4},intersections:{before:(Y,Z)=>Y.isStricterThan(Z)?Y:Z,after:(Y,Z,X)=>Y.overlapsRange(Z)?Y.overlapIsUnit(Z)?X.$.node("unit",{unit:Y.rule}):null:P.init("range",Y,Z)}});class Z_ extends A1{collapsibleLimitString=v4(this.rule);traverseAllows=(Y)=>Y<=this.rule;impliedBasis=T.intrinsic.Date.internal;reduceJsonSchema(Y,Z){return Z.fallback.date({code:"date",base:Y,before:this.rule})}}var vY={implementation:IJ,Node:Z_};var TJ=n({kind:"exactLength",collapsibleKey:"rule",keys:{rule:{parse:_2("exactLength")}},normalize:(Y)=>typeof Y==="number"?{rule:Y}:Y,hasAssociatedError:!0,defaults:{description:(Y)=>`exactly length ${Y.rule}`,actual:(Y)=>`${Y.length}`},intersections:{exactLength:(Y,Z,X)=>P.init("unit",X.$.node("unit",{unit:Y.rule}),X.$.node("unit",{unit:Z.rule}),{path:["length"]}),minLength:(Y,Z)=>Y.rule>=Z.rule?Y:P.init("range",Y,Z),maxLength:(Y,Z)=>Y.rule<=Z.rule?Y:P.init("range",Y,Z)}});class X_ extends X4{traverseAllows=(Y)=>Y.length===this.rule;compiledCondition=`data.length === ${this.rule}`;compiledNegation=`data.length !== ${this.rule}`;impliedBasis=T.intrinsic.lengthBoundable.internal;expression=`== ${this.rule}`;reduceJsonSchema(Y){switch(Y.type){case"string":return Y.minLength=this.rule,Y.maxLength=this.rule,Y;case"array":return Y.minItems=this.rule,Y.maxItems=this.rule,Y;default:return N0.throwInternalOperandError("exactLength",Y)}}}var xY={implementation:TJ,Node:X_};var KJ=n({kind:"max",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:o8},normalize:(Y)=>typeof Y==="number"?{rule:Y}:Y,defaults:{description:(Y)=>{if(Y.rule===0)return Y.exclusive?"negative":"non-positive";return`${Y.exclusive?"less than":"at most"} ${Y.rule}`}},intersections:{max:(Y,Z)=>Y.isStricterThan(Z)?Y:Z,min:(Y,Z,X)=>Y.overlapsRange(Z)?Y.overlapIsUnit(Z)?X.$.node("unit",{unit:Y.rule}):null:P.init("range",Y,Z)},obviatesBasisDescription:!0});class __ extends A1{impliedBasis=T.intrinsic.number.internal;traverseAllows=this.exclusive?(Y)=>Y<this.rule:(Y)=>Y<=this.rule;reduceJsonSchema(Y){if(this.exclusive)Y.exclusiveMaximum=this.rule;else Y.maximum=this.rule;return Y}}var fY={implementation:KJ,Node:__};var BJ=n({kind:"maxLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:_2("maxLength")}},reduce:(Y,Z)=>Y.rule===0?Z.node("exactLength",Y):void 0,normalize:i8("maxLength"),defaults:{description:(Y)=>`at most length ${Y.rule}`,actual:(Y)=>`${Y.length}`},intersections:{maxLength:(Y,Z)=>Y.isStricterThan(Z)?Y:Z,minLength:(Y,Z,X)=>Y.overlapsRange(Z)?Y.overlapIsUnit(Z)?X.$.node("exactLength",{rule:Y.rule}):null:P.init("range",Y,Z)}});class G_ extends A1{impliedBasis=T.intrinsic.lengthBoundable.internal;traverseAllows=(Y)=>Y.length<=this.rule;reduceJsonSchema(Y){switch(Y.type){case"string":return Y.maxLength=this.rule,Y;case"array":return Y.maxItems=this.rule,Y;default:return N0.throwInternalOperandError("maxLength",Y)}}}var hY={implementation:BJ,Node:G_};var CJ=n({kind:"min",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:o8},normalize:(Y)=>typeof Y==="number"?{rule:Y}:Y,defaults:{description:(Y)=>{if(Y.rule===0)return Y.exclusive?"positive":"non-negative";return`${Y.exclusive?"more than":"at least"} ${Y.rule}`}},intersections:{min:(Y,Z)=>Y.isStricterThan(Z)?Y:Z},obviatesBasisDescription:!0});class $_ extends A1{impliedBasis=T.intrinsic.number.internal;traverseAllows=this.exclusive?(Y)=>Y>this.rule:(Y)=>Y>=this.rule;reduceJsonSchema(Y){if(this.exclusive)Y.exclusiveMinimum=this.rule;else Y.minimum=this.rule;return Y}}var kY={implementation:CJ,Node:$_};var qJ=n({kind:"minLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:_2("minLength")}},reduce:(Y)=>Y.rule===0?T.intrinsic.unknown:void 0,normalize:i8("minLength"),defaults:{description:(Y)=>Y.rule===1?"non-empty":`at least length ${Y.rule}`,actual:(Y)=>Y.length===0?"":`${Y.length}`},intersections:{minLength:(Y,Z)=>Y.isStricterThan(Z)?Y:Z}});class W_ extends A1{impliedBasis=T.intrinsic.lengthBoundable.internal;traverseAllows=(Y)=>Y.length>=this.rule;reduceJsonSchema(Y){switch(Y.type){case"string":return Y.minLength=this.rule,Y;case"array":return Y.minItems=this.rule,Y;default:return N0.throwInternalOperandError("minLength",Y)}}}var bY={implementation:qJ,Node:W_};var H_={min:kY.implementation,max:fY.implementation,minLength:bY.implementation,maxLength:hY.implementation,exactLength:xY.implementation,after:PY.implementation,before:vY.implementation},J_={min:kY.Node,max:fY.Node,minLength:bY.Node,maxLength:hY.Node,exactLength:xY.Node,after:PY.Node,before:vY.Node};var jJ=n({kind:"pattern",collapsibleKey:"rule",keys:{rule:{},flags:{}},normalize:(Y)=>typeof Y==="string"?{rule:Y}:Y instanceof RegExp?Y.flags?{rule:Y.source,flags:Y.flags}:{rule:Y.source}:Y,obviatesBasisDescription:!0,obviatesBasisExpression:!0,hasAssociatedError:!0,intersectionIsOpen:!0,defaults:{description:(Y)=>`matched by ${Y.rule}`},intersections:{pattern:()=>null}});class Q_ extends X4{instance=new RegExp(this.rule,this.flags);expression=`${this.instance}`;traverseAllows=this.instance.test.bind(this.instance);compiledCondition=`${this.expression}.test(data)`;compiledNegation=`!${this.compiledCondition}`;impliedBasis=T.intrinsic.string.internal;reduceJsonSchema(Y,Z){if(Y.pattern)return Z.fallback.patternIntersection({code:"patternIntersection",base:Y,pattern:this.rule});return Y.pattern=this.rule,Y}}var yY={implementation:jJ,Node:Q_};var l2=(Y,Z)=>{let X=SJ(Y);if(Z&&!Z.includes(X))return w(`Root of kind ${X} should be one of ${Z}`);return X},SJ=(Y)=>{if(g(Y,"root"))return Y.kind;if(typeof Y==="string")return Y[0]==="$"?"alias":(Y in Q1)?"domain":"proto";if(typeof Y==="function")return"proto";if(typeof Y!=="object"||Y===null)return w(U_(Y));if("morphs"in Y)return"morph";if("branches"in Y||E0(Y))return"union";if("unit"in Y)return"unit";if("reference"in Y)return"alias";let Z=Object.keys(Y);if(Z.length===0||Z.some((X)=>(X in d8)))return"intersection";if("proto"in Y)return"proto";if("domain"in Y)return"domain";return w(U_(Y))},U_=(Y)=>`${r(Y)} is not a valid type schema`,z_={},PJ=(Y)=>E0(Y)?Y.map((Z)=>Z.collapsibleJson):Y.collapsibleJson,X1={};T.nodesByRegisteredId=X1;var gY=(Y)=>{return z_[Y]??=0,`${Y}${++z_[Y]}`},pY=(Y)=>{let Z=G2[Y.kind],X=Z.applyConfig?.(Y.def,Y.$.resolvedConfig)??Y.def,_={},{meta:G,...$}=X,W=G===void 0?{}:typeof G==="string"?{description:G}:G,H=QY($).sort(([J],[U])=>a4(J)?a4(U)?e4(J)-e4(U):1:a4(U)?-1:J<U?-1:1).filter(([J,U])=>{if(J.startsWith("meta.")){let E=J.slice(5);return W[E]=U,!1}return!0});for(let J of H){let U=J[0],E=Z.keys[U];if(!E)return w(`Key ${U} is not valid on ${Y.kind} schema`);let V=E.parse?E.parse(J[1],Y):J[1];if(V!==M1&&(V!==void 0||E.preserveUndefined))_[U]=V}if(Z.reduce&&!Y.prereduced){let J=Z.reduce(_,Y.$);if(J){if(J instanceof P)return J.throw();return vJ(J,W)}}return mY({id:Y.id,kind:Y.kind,inner:_,meta:W,$:Y.$})},mY=({id:Y,kind:Z,inner:X,meta:_,$:G,ignoreCache:$})=>{let W=G2[Z],H=QY(X),Q=[],J={};for(let[k,h]of H){let f=W.keys[k],I=f.serialize??(f.child?PJ:I1);if(J[k]=I(h),f.child===!0){let N=h;if(E0(N))Q.push(...N);else Q.push(N)}else if(typeof f.child==="function")Q.push(...f.child(h))}if(W.finalizeInnerJson)J=W.finalizeInnerJson(J);let U={...J},E={};if(!u1(_))E=i(_,(k,h)=>[k,k==="examples"?h:I1(h)]),U.meta=s8(E,"description",!0);J=s8(J,W.collapsibleKey,!1);let V=JSON.stringify({kind:Z,...J});U=s8(U,W.collapsibleKey,!1);let L=s8(U,W.collapsibleKey,!0),R=JSON.stringify({kind:Z,...U});if(G.nodesByHash[R]&&!$)return G.nodesByHash[R];let M={id:Y,kind:Z,impl:W,inner:X,innerEntries:H,innerJson:J,innerHash:V,meta:_,metaJson:E,json:U,hash:R,collapsibleJson:L,children:Q};if(Z!=="intersection"){for(let k in X)if(k!=="in"&&k!=="out")M[k]=X[k]}let y=new E_[Z](M,G);return G.nodesByHash[R]=y},F_=(Y,Z)=>{if(Y.id===Z)return Y;if(L0(X1[Z]))_0(`Unexpected attempt to overwrite node id ${Z}`);return mY({id:Z,kind:Y.kind,inner:Y.inner,meta:Y.meta,$:Y.$,ignoreCache:!0})},vJ=(Y,Z,X)=>{if(X&&L0(X1[X]))_0(`Unexpected attempt to overwrite node id ${X}`);return mY({id:X??gY(Z.alias??Y.kind),kind:Y.kind,inner:Y.inner,meta:Z,$:Y.$})},s8=(Y,Z,X)=>{let _=Object.keys(Y);if(_.length===1&&_[0]===Z){let G=Y[Z];if(X)return G;if(J1(G,"object")&&(Object.keys(G).length===1||Array.isArray(G)))return G}return Y};var o2=(Y,Z,X)=>{if(Y.key!==Z.key)return null;let _=Y.key,G=M0(Y.value,Z.value,X),$=Y.required||Z.required?"required":"optional";if(G instanceof P)if($==="optional")G=T.intrinsic.never.internal;else return G.withPrefixKey(Y.key,Y.required&&Z.required?"required":"optional");if($==="required")return X.$.node("required",{key:_,value:G});let W=Y.hasDefault()?Z.hasDefault()?Y.default===Z.default?Y.default:w(uY(Y.default,Z.default)):Y.default:Z.hasDefault()?Z.default:M1;return X.$.node("optional",{key:_,value:G,default:W})};class i2 extends T1{required=this.kind==="required";optional=this.kind==="optional";impliedBasis=T.intrinsic.object.internal;serializedKey=Z4(this.key);compiledKey=typeof this.key==="string"?this.key:this.serializedKey;flatRefs=Z0(this.value.flatRefs.map((Y)=>h1([this.key,...Y.path],Y.node)),h1([this.key],this.value));_transform(Y,Z){Z.path.push(this.key);let X=super._transform(Y,Z);return Z.path.pop(),X}hasDefault(){return"default"in this.inner}traverseAllows=(Y,Z)=>{if(this.key in Y)return z1(this.key,()=>this.value.traverseAllows(Y[this.key],Z),Z);return this.optional};traverseApply=(Y,Z)=>{if(this.key in Y)z1(this.key,()=>this.value.traverseApply(Y[this.key],Z),Z);else if(this.hasKind("required"))Z.errorFromNodeContext(this.errorContext)};compile(Y){if(Y.if(`${this.serializedKey} in data`,()=>Y.traverseKey(this.serializedKey,`data${Y.prop(this.key)}`,this.value)),this.hasKind("required"))Y.else(()=>Y.traversalKind==="Apply"?Y.line(`ctx.errorFromNodeContext(${this.compiledErrorContext})`):Y.return(!1));if(Y.traversalKind==="Allows")Y.return(!0)}}var uY=(Y,Z)=>`Invalid intersection of default values ${r(Y)} & ${r(Z)}`;var xJ=n({kind:"optional",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{key:{},value:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y)},default:{preserveUndefined:!0}},normalize:(Y)=>Y,reduce:(Y,Z)=>{if(Z.resolvedConfig.exactOptionalPropertyTypes===!1){if(!Y.value.allows(void 0))return Z.node("optional",{...Y,value:Y.value.or(d.undefined)},{prereduced:!0})}},defaults:{description:(Y)=>`${Y.compiledKey}?: ${Y.value.description}`},intersections:{optional:o2}});class O_ extends i2{constructor(...Y){super(...Y);if("default"in this.inner)n2(this.value,this.inner.default,this.key)}get outProp(){if(!this.hasDefault())return this;let{default:Y,...Z}=this.inner;return this.cacheGetter("outProp",this.$.node("required",Z,{prereduced:!0}))}expression=this.hasDefault()?`${this.compiledKey}: ${this.value.expression} = ${r(this.inner.default)}`:`${this.compiledKey}?: ${this.value.expression}`;defaultValueMorph=hJ(this);defaultValueMorphRef=this.defaultValueMorph&&C0(this.defaultValueMorph)}var r2={implementation:xJ,Node:O_},fJ={},hJ=(Y)=>{if(!Y.hasDefault())return;let Z=`{${Y.compiledKey}: ${Y.value.id} = ${I1(Y.default)}}`;return fJ[Z]??=dY(Y.key,Y.value,Y.default)},dY=(Y,Z,X)=>{if(typeof X==="function")return Z.includesTransform?(G,$)=>{return z1(Y,()=>Z(G[Y]=X(),$),$),G}:(G)=>{return G[Y]=X(),G};let _=Z.includesTransform?Z.assert(X):X;return J1(_,"object")?(G,$)=>{return z1(Y,()=>Z(G[Y]=X,$),$),G}:(G)=>{return G[Y]=_,G}},n2=(Y,Z,X)=>{let _=E4(Z);if(J1(Z,"object")&&!_)w(kJ(X));let G=Y.in(_?Z():Z);if(G instanceof U1){if(X===null)w(`Default ${G.summary}`);let $=G.transform((W)=>W.transform((H)=>({...H,prefixPath:[X]})));w(`Default for ${$.summary}`)}return Z},kJ=(Y)=>{return`Non-primitive default ${Y===null?"":typeof Y==="number"?`for value at [${Y}] `:`for ${Z4(Y)} `}must be specified as a function like () => ({my: 'object'})`};class K1 extends d2{constructor(Y,Z){super(Y,Z);Object.defineProperty(this,Z1,{value:"root",enumerable:!1})}get internal(){return this}get "~standard"(){return{vendor:"arktype",version:1,validate:(Y)=>{let Z=this(Y);if(Z instanceof U1)return Z;return{value:Z}}}}as(){return this}brand(Y){if(Y==="")return w(bJ);return this}readonly(){return this}branches=this.hasKind("union")?this.inner.branches:[this];distribute(Y,Z){let X=this.branches.map(Y);return Z?.(X)??X}get shortDescription(){return this.meta.description??this.defaultShortDescription}toJsonSchema(Y={}){let Z=IY(this.$.resolvedConfig.toJsonSchema,Y);Z.useRefs||=this.isCyclic;let X=typeof Z.dialect==="string"?{$schema:Z.dialect}:{};if(Object.assign(X,this.toJsonSchemaRecurse(Z)),Z.useRefs)X.$defs=i(this.references,(_,G)=>G.isRoot()&&!G.alwaysExpandJsonSchema?[G.id,G.toResolvedJsonSchema(Z)]:[]);return X}toJsonSchemaRecurse(Y){if(Y.useRefs&&!this.alwaysExpandJsonSchema)return{$ref:`#/$defs/${this.id}`};return this.toResolvedJsonSchema(Y)}get alwaysExpandJsonSchema(){return this.isBasis()||this.kind==="alias"||this.hasKind("union")&&this.isBoolean}toResolvedJsonSchema(Y){let Z=this.innerToJsonSchema(Y);return Object.assign(Z,this.metaJson)}intersect(Y){let Z=this.$.parseDefinition(Y),X=this.rawIntersect(Z);if(X instanceof P)return X;return this.$.finalize(X)}rawIntersect(Y){return F1(this,Y,this.$)}toNeverIfDisjoint(){return this}and(Y){let Z=this.intersect(Y);return Z instanceof P?Z.throw():Z}rawAnd(Y){let Z=this.rawIntersect(Y);return Z instanceof P?Z.throw():Z}or(Y){let Z=this.$.parseDefinition(Y);return this.$.finalize(this.rawOr(Z))}rawOr(Y){let Z=[...this.branches,...Y.branches];return this.$.node("union",Z)}map(Y){return this.$.schema(this.applyStructuralOperation("map",[Y]))}pick(...Y){return this.$.schema(this.applyStructuralOperation("pick",Y))}omit(...Y){return this.$.schema(this.applyStructuralOperation("omit",Y))}required(){return this.$.schema(this.applyStructuralOperation("required",[]))}partial(){return this.$.schema(this.applyStructuralOperation("partial",[]))}_keyof;keyof(){if(this._keyof)return this._keyof;let Y=this.applyStructuralOperation("keyof",[]).reduce((Z,X)=>Z.intersect(X).toNeverIfDisjoint(),T.intrinsic.unknown.internal);if(Y.branches.length===0)w(CY(`keyof ${this.expression}`));return this._keyof=this.$.finalize(Y)}get props(){if(this.branches.length!==1)return w(yJ(this.expression));return[...this.applyStructuralOperation("props",[])[0]]}merge(Y){let Z=this.$.parseDefinition(Y);return this.$.schema(Z.distribute((X)=>this.applyStructuralOperation("merge",[V_(X)??w(D_("merge",X.expression))])))}applyStructuralOperation(Y,Z){return this.distribute((X)=>{if(X.equals(T.intrinsic.object)&&Y!=="merge")return X;let _=V_(X);if(!_)w(D_(Y,X.expression));if(Y==="keyof")return _.keyof();if(Y==="get")return _.get(...Z);if(Y==="props")return _.props;let G=Y==="required"?"require":Y==="partial"?"optionalize":Y;return this.$.node("intersection",{...X.inner,structure:_[G](...Z)})})}get(...Y){if(Y[0]===void 0)return this;return this.$.schema(this.applyStructuralOperation("get",Y))}extract(Y){let Z=this.$.parseDefinition(Y);return this.$.schema(this.branches.filter((X)=>X.extends(Z)))}exclude(Y){let Z=this.$.parseDefinition(Y);return this.$.schema(this.branches.filter((X)=>!X.extends(Z)))}array(){return this.$.schema(this.isUnknown()?{proto:Array}:{proto:Array,sequence:this},{prereduced:!0})}overlaps(Y){return!(this.intersect(Y)instanceof P)}extends(Y){let Z=this.intersect(Y);return!(Z instanceof P)&&this.equals(Z)}ifExtends(Y){return this.extends(Y)?this:void 0}subsumes(Y){return this.$.parseDefinition(Y).extends(this)}configure(Y,Z="shallow"){return this.configureReferences(Y,Z)}describe(Y,Z="shallow"){return this.configure({description:Y},Z)}optional(){return[this,"?"]}default(Y){return n2(this,Y,null),[this,"=",Y]}from(Y){return this.assert(Y)}_pipe(...Y){let Z=Y.reduce((X,_)=>X.rawPipeOnce(_),this);return this.$.finalize(Z)}tryPipe(...Y){let Z=Y.reduce((X,_)=>X.rawPipeOnce(g(_,"root")?_:(G,$)=>{try{return _(G,$)}catch(W){return $.error({code:"predicate",predicate:_,actual:`aborted due to error:
22
+ `);class f1{path=[];errors=new U1(this);root;config;queuedMorphs=[];branches=[];seen={};constructor(Y,Z){this.root=Y,this.config=Z}get data(){let Y=this.root;for(let Z of this.path)Y=Y?.[Z];return Y}get propString(){return Y4(this.path)}reject(Y){return this.error(Y),!1}mustBe(Y){return this.error(Y),!1}error(Y){let Z=typeof Y==="object"?Y.code?Y:{...Y,code:"predicate"}:{code:"predicate",expected:Y};return this.errorFromContext(Z)}hasError(){return this.currentErrorCount!==0}get currentBranch(){return this.branches.at(-1)}queueMorphs(Y){let Z={path:new g2(...this.path),morphs:Y};if(this.currentBranch)this.currentBranch.queuedMorphs.push(Z);else this.queuedMorphs.push(Z)}finalize(Y){if(this.queuedMorphs.length){if(typeof this.root==="object"&&this.root!==null&&this.config.clone)this.root=this.config.clone(this.root);this.applyQueuedMorphs()}if(this.hasError())return Y?Y(this.errors):this.errors;return this.root}get currentErrorCount(){return this.currentBranch?this.currentBranch.error?1:0:this.errors.count}get failFast(){return this.branches.length!==0}pushBranch(){this.branches.push({error:void 0,queuedMorphs:[]})}popBranch(){return this.branches.pop()}get external(){return this}errorFromNodeContext(Y){return this.errorFromContext(Y)}errorFromContext(Y){let Z=new L4(Y,this);if(this.currentBranch)this.currentBranch.error=Z;else this.errors.add(Z);return Z}applyQueuedMorphs(){while(this.queuedMorphs.length){let Y=this.queuedMorphs;this.queuedMorphs=[];for(let{path:Z,morphs:X}of Y){if(this.errors.affectsPath(Z))continue;this.applyMorphsAtPath(Z,X)}}}applyMorphsAtPath(Y,Z){let X=Y.at(-1),_;if(X!==void 0){_=this.root;for(let G=0;G<Y.length-1;G++)_=_[Y[G]]}this.path=[...Y];for(let G of Z){let $=D0(G),W=G(_===void 0?this.root:_[X],this);if(W instanceof L4){this.errors.add(W);break}if(W instanceof U1){if(!$)this.errors.merge(W);break}if(_===void 0)this.root=W;else _[X]=W;this.applyQueuedMorphs()}}}var z1=(Y,Z,X)=>{if(!X)return Z();X.path.push(Y);let _=Z();return X.path.pop(),_};class d2 extends x1{attachments;$;onFail;includesTransform;includesContextualPredicate;isCyclic;allowsRequiresContext;rootApplyStrategy;contextFreeMorph;rootApply;referencesById;shallowReferences;flatRefs;flatMorphs;allows;get shallowMorphs(){return[]}constructor(Y,Z){super((_,G,$=this.onFail)=>{if(G)return this.traverseApply(_,G),G.hasError()?G.errors:G.data;return this.rootApply(_,$)},{attach:Y});this.attachments=Y,this.$=Z,this.onFail=this.meta.onFail??this.$.resolvedConfig.onFail,this.includesTransform=this.hasKind("morph")||this.hasKind("structure")&&this.structuralMorph!==void 0,this.includesContextualPredicate=this.hasKind("predicate")&&this.inner.predicate.length!==1,this.isCyclic=this.kind==="alias",this.referencesById={[this.id]:this},this.shallowReferences=this.hasKind("structure")?[this,...this.children]:this.children.reduce((_,G)=>zJ(_,G.shallowReferences),[this]);let X=this.isStructural();this.flatRefs=[],this.flatMorphs=[];for(let _=0;_<this.children.length;_++){if(this.includesTransform||=this.children[_].includesTransform,this.includesContextualPredicate||=this.children[_].includesContextualPredicate,this.isCyclic||=this.children[_].isCyclic,!X){let G=this.children[_].flatRefs;for(let $=0;$<G.length;$++){let W=G[$];if(!this.flatRefs.some((H)=>rX(H,W))){this.flatRefs.push(W);for(let H of W.node.branches)if(H.hasKind("morph")||H.hasKind("intersection")&&H.structure?.structuralMorph!==void 0)this.flatMorphs.push({path:W.path,propString:W.propString,node:H})}}}Object.assign(this.referencesById,this.children[_].referencesById)}this.flatRefs.sort((_,G)=>_.path.length>G.path.length?1:_.path.length<G.path.length?-1:_.propString>G.propString?1:_.propString<G.propString?-1:_.node.expression<G.node.expression?-1:1),this.allowsRequiresContext=this.includesContextualPredicate||this.isCyclic,this.rootApplyStrategy=!this.allowsRequiresContext&&this.flatMorphs.length===0?this.shallowMorphs.length===0?"allows":this.shallowMorphs.every((_)=>_.length===1||_.name==="$arkStructuralMorph")?this.hasKind("union")?this.branches.some((_)=>_.shallowMorphs.length>1)?"contextual":"branchedOptimistic":this.shallowMorphs.length>1?"contextual":"optimistic":"contextual":"contextual",this.rootApply=this.createRootApply(),this.allows=this.allowsRequiresContext?(_)=>this.traverseAllows(_,new f1(_,this.$.resolvedConfig)):(_)=>this.traverseAllows(_)}createRootApply(){switch(this.rootApplyStrategy){case"allows":return(Z,X)=>{if(this.allows(Z))return Z;let _=new f1(Z,this.$.resolvedConfig);return this.traverseApply(Z,_),_.finalize(X)};case"contextual":return(Z,X)=>{let _=new f1(Z,this.$.resolvedConfig);return this.traverseApply(Z,_),_.finalize(X)};case"optimistic":this.contextFreeMorph=this.shallowMorphs[0];let Y=this.$.resolvedConfig.clone;return(Z,X)=>{if(this.allows(Z))return this.contextFreeMorph(Y&&(typeof Z==="object"&&Z!==null||typeof Z==="function")?Y(Z):Z);let _=new f1(Z,this.$.resolvedConfig);return this.traverseApply(Z,_),_.finalize(X)};case"branchedOptimistic":return this.createBranchedOptimisticRootApply();default:return this.rootApplyStrategy,_0(`Unexpected rootApplyStrategy ${this.rootApplyStrategy}`)}}compiledMeta=UJ(this.metaJson);cacheGetter(Y,Z){return Object.defineProperty(this,Y,{value:Z}),Z}get description(){return this.cacheGetter("description",this.meta?.description??this.$.resolvedConfig[this.kind].description(this))}get references(){return Object.values(this.referencesById)}precedence=e4(this.kind);precompilation;assert=(Y,Z)=>this(Y,Z,(X)=>X.throw());traverse(Y,Z){return this(Y,Z,null)}get in(){return this.cacheGetter("in",this.getIo("in"))}get out(){return this.cacheGetter("out",this.getIo("out"))}getIo(Y){if(!this.includesTransform)return this;let Z={};for(let[X,_]of this.innerEntries){let G=this.impl.keys[X];if(G.reduceIo)G.reduceIo(Y,Z,_);else if(G.child){let $=_;Z[X]=F0($)?$.map((W)=>W[Y]):$[Y]}else Z[X]=_}return this.$.node(this.kind,Z)}toJSON(){return this.json}toString(){return`Type<${this.expression}>`}equals(Y){let Z=D0(Y)?Y:this.$.parseDefinition(Y);return this.innerHash===Z.innerHash}ifEquals(Y){return this.equals(Y)?this:void 0}hasKind(Y){return this.kind===Y}assertHasKind(Y){if(this.kind!==Y)C4(`${this.kind} node was not of asserted kind ${Y}`);return this}hasKindIn(...Y){return Y.includes(this.kind)}assertHasKindIn(...Y){if(!s1(Y,this.kind))C4(`${this.kind} node was not one of asserted kinds ${Y}`);return this}isBasis(){return s1(uX,this.kind)}isConstraint(){return s1(m8,this.kind)}isStructural(){return s1(s4,this.kind)}isRefinement(){return s1(NY,this.kind)}isRoot(){return s1(t4,this.kind)}isUnknown(){return this.hasKind("intersection")&&this.children.length===0}isNever(){return this.hasKind("union")&&this.children.length===0}hasUnit(Y){return this.hasKind("unit")&&this.allows(Y)}hasOpenIntersection(){return this.impl.intersectionIsOpen}get nestableExpression(){return this.expression}select(Y){let Z=u2.normalize(Y);return this._select(Z)}_select(Y){let Z=u2.applyBoundary[Y.boundary??"references"](this);if(Y.kind)Z=Z.filter((X)=>X.kind===Y.kind);if(Y.where)Z=Z.filter(Y.where);return u2.applyMethod[Y.method??"filter"](Z,this,Y)}transform(Y,Z){return this._transform(Y,this._createTransformContext(Z))}_createTransformContext(Y){return{root:this,selected:void 0,seen:{},path:[],parseOptions:{prereduced:Y?.prereduced??!1},undeclaredKeyHandling:void 0,...Y}}_transform(Y,Z){let X=Z.bindScope??this.$;if(Z.seen[this.id])return this.$.lazilyResolve(Z.seen[this.id]);if(Z.shouldTransform?.(this,Z)===!1)return this;let _;if(Z.seen[this.id]=()=>_,this.hasKind("structure")&&this.undeclared!==Z.undeclaredKeyHandling)Z={...Z,undeclaredKeyHandling:this.undeclared};let G=o(this.inner,(J,U)=>{if(!this.impl.keys[J].child)return[J,U];let E=U;if(!F0(E)){let L=E._transform(Y,Z);return L?[J,L]:[]}if(E.length===0)return[J,U];let V=E.flatMap((L)=>{return L._transform(Y,Z)??[]});return V.length?[J,V]:[]});delete Z.seen[this.id];let $=Object.assign(G,{meta:this.meta}),W=Z.selected&&!Z.selected.includes(this)?$:Y(this.kind,$,Z);if(W===null)return null;if(D0(W))return _=W;let H=Object.keys(W);if((H.length===0||H.length===1&&H[0]==="meta")&&!d1(this.inner))return null;if((this.kind==="required"||this.kind==="optional"||this.kind==="index")&&!("value"in W))return Z.undeclaredKeyHandling?{...W,value:N.intrinsic.unknown}:null;if(this.kind==="morph")W.in??=N.intrinsic.unknown;return _=X.node(this.kind,W,Z.parseOptions)}configureReferences(Y,Z="references"){let X=u2.normalize(Z),_=typeof Y==="string"?(H,Q)=>({...Q,meta:{...Q.meta,description:Y}}):typeof Y==="function"?(H,Q)=>({...Q,meta:Y(Q.meta)}):(H,Q)=>({...Q,meta:{...Q.meta,...Y}});if(X.boundary==="self")return this.$.node(this.kind,_(this.kind,{...this.inner,meta:this.meta}));let G=this._select(X),$=G&&F4(G),W=X.boundary==="child"?(H,Q)=>Q.root.children.includes(H):X.boundary==="shallow"?(H)=>H.kind!=="structure":()=>!0;return this.$.finalize(this.transform(_,{shouldTransform:W,selected:$}))}}var u2={applyBoundary:{self:(Y)=>[Y],child:(Y)=>[...Y.children],shallow:(Y)=>[...Y.shallowReferences],references:(Y)=>[...Y.references]},applyMethod:{filter:(Y)=>Y,assertFilter:(Y,Z,X)=>{if(Y.length===0)C4(iX(Z,X));return Y},find:(Y)=>Y[0],assertFind:(Y,Z,X)=>{if(Y.length===0)C4(iX(Z,X));return Y[0]}},normalize:(Y)=>typeof Y==="function"?{boundary:"references",method:"filter",where:Y}:typeof Y==="string"?y0(Y,u2.applyBoundary)?{method:"filter",boundary:Y}:{boundary:"references",method:"filter",kind:Y}:{boundary:"references",method:"filter",...Y}},iX=(Y,Z)=>`${Y} had no references matching ${i(Z)}.`,JJ=(Y)=>Y4(Y,{stringifyNonKey:(Z)=>Z.expression}),QJ=/"(\$ark\.[^"]+)"/g,UJ=(Y)=>JSON.stringify(Y).replaceAll(QJ,"$1"),h1=(Y,Z)=>({path:Y,node:Z,propString:JJ(Y)}),rX=(Y,Z)=>Y.propString===Z.propString&&Y.node.equals(Z.node),KY=(Y,Z)=>u1(Y,Z,{isEqual:rX}),zJ=(Y,Z)=>u1(Y,Z,{isEqual:(X,_)=>X.equals(_)});class P extends Array{static init(Y,Z,X,_){return new P({kind:Y,l:Z,r:X,path:_?.path??[],optional:_?.optional??!1})}add(Y,Z,X,_){return this.push({kind:Y,l:Z,r:X,path:_?.path??[],optional:_?.optional??!1}),this}get summary(){return this.describeReasons()}describeReasons(){if(this.length===1){let{path:Y,l:Z,r:X}=this[0],_=Y4(Y);return CY(`Intersection${_&&` at ${_}`} of ${nX(Z,X)}`)}return`The following intersections result in unsatisfiable types:
23
+ \u2022 ${this.map(({path:Y,l:Z,r:X})=>`${Y}: ${nX(Z,X)}`).join(`
24
+ \u2022 `)}`}throw(){return R(this.describeReasons())}invert(){let Y=this.map((Z)=>({...Z,l:Z.r,r:Z.l}));if(!(Y instanceof P))return new P(...Y);return Y}withPrefixKey(Y,Z){return this.map((X)=>({...X,path:[Y,...X.path],optional:X.optional||Z==="optional"}))}toNeverIfDisjoint(){return N.intrinsic.never}}var nX=(Y,Z)=>`${BY(Y)} and ${BY(Z)}`,BY=(Y)=>D0(Y)?Y.expression:F0(Y)?Y.map(BY).join(" | ")||"never":String(Y),CY=(Y)=>`${Y} results in an unsatisfiable type`;var Y2={},F1=(Y,Z,X)=>L0(Y,Z,{$:X,invert:!1,pipe:!1}),c2=(Y,Z,X)=>L0(Y,Z,{$:X,invert:!1,pipe:!0}),L0=(Y,Z,X)=>{let _=X.pipe?"|>":"&",G=`${Y.hash}${_}${Z.hash}`;if(Y2[G]!==void 0)return Y2[G];if(!X.pipe){let H=`${Z.hash}${_}${Y.hash}`;if(Y2[H]!==void 0){let Q=Y2[H],J=Q instanceof P?Q.invert():Q;return Y2[G]=J,J}}let $=!X.pipe||!Y.includesTransform&&!Z.includesTransform;if($&&Y.equals(Z))return Y;let W=$?qY(Y,Z,X):Y.hasKindIn(...t4)?FJ(Y,Z,X):qY(Y,Z,X);if(D0(W)){if(Y.equals(W))W=Y;else if(Z.equals(W))W=Z}return Y2[G]=W,W},qY=(Y,Z,X)=>{let _=Y.precedence<Z.precedence?Y.kind:Z.kind,G=Y.impl.intersections[Z.kind]??Z.impl.intersections[Y.kind];if(G===void 0)return null;else if(_===Y.kind)return G(Y,Z,X);else{let $=G(Z,Y,{...X,invert:!X.invert});if($ instanceof P)$=$.invert();return $}},FJ=(Y,Z,X)=>Y.includesTransform||Z.includesTransform?X.invert?sX(Z,Y,X):sX(Y,Z,X):qY(Y,Z,X),sX=(Y,Z,X)=>Y.distribute((_)=>EJ(_,Z,X),(_)=>{let G=_.filter(D0);if(G.length===0)return P.init("union",Y.branches,Z.branches);if(G.length<Y.branches.length||!Y.branches.every((H,Q)=>H.in.equals(G[Q].in)))return X.$.parseSchema(G);let $;if(G.length===1){let H=G[0];if(!$)return H;return X.$.node("morph",{...H.inner,in:H.in.configure($,"self")})}let W={branches:G};if($)W.meta=$;return X.$.parseSchema(W)}),EJ=(Y,Z,X)=>{if(Y.hasKind("morph")){let G=[...Y.morphs];if(Y.lastMorphIfNode){let $=L0(Y.lastMorphIfNode,Z,X);if($ instanceof P)return $;G[G.length-1]=$}else G.push(Z);return X.$.node("morph",{morphs:G,in:Y.inner.in})}if(Z.hasKind("morph")){let G=L0(Y,Z.in,X);if(G instanceof P)return G;return X.$.node("morph",{morphs:[Z],in:G})}return X.$.node("morph",{morphs:[Z],in:Y})};class I1 extends d2{constructor(Y,Z){super(Y,Z);Object.defineProperty(this,Z1,{value:"constraint",enumerable:!1})}impliedSiblings;intersect(Y){return F1(this,Y,this.$)}}class X4 extends I1{traverseApply=(Y,Z)=>{if(!this.traverseAllows(Y,Z))Z.errorFromNodeContext(this.errorContext)};compile(Y){if(Y.traversalKind==="Allows")Y.return(this.compiledCondition);else Y.if(this.compiledNegation,()=>Y.line(`${Y.ctx}.errorFromNodeContext(${this.compiledErrorContext})`))}get errorContext(){return{code:this.kind,description:this.description,meta:this.meta,...this.inner}}get compiledErrorContext(){return D4(this.errorContext)}}var t0=(Y)=>(Z,X)=>{if(F0(Z)){if(Z.length===0)return;let G=Z.map(($)=>X.$.node(Y,$));if(Y==="predicate")return G;return G.sort(($,W)=>$.hash<W.hash?-1:1)}let _=X.$.node(Y,Z);return _.hasOpenIntersection()?[_]:_},Z2=(Y)=>{let Z=Y.r.shift();if(!Z){let _=Y.l.length===0&&Y.kind==="structure"?N.intrinsic.unknown.internal:Y.ctx.$.node(Y.kind,Object.assign(Y.baseInner,OJ(Y.l)),{prereduced:!0});for(let G of Y.roots){if(_ instanceof P)return _;_=L0(G,_,Y.ctx)}return _}let X=!1;for(let _=0;_<Y.l.length;_++){let G=L0(Y.l[_],Z,Y.ctx);if(G===null)continue;if(G instanceof P)return G;if(!X){if(G.isRoot())return Y.roots.push(G),Y.l.splice(_),Z2(Y);Y.l[_]=G,X=!0}else if(!Y.l.includes(G))return _0(`Unexpectedly encountered multiple distinct intersection results for refinement ${G}`)}if(!X)Y.l.push(Z);if(Y.kind==="intersection"){if(Z.impliedSiblings)for(let _ of Z.impliedSiblings)u1(Y.r,_)}return Z2(Y)},X2=(Y)=>{return Object.entries(Y).flatMap(([X,_])=>(X in u8)?_:[]).sort((X,_)=>X.precedence<_.precedence?-1:X.precedence>_.precedence?1:X.kind==="predicate"&&_.kind==="predicate"?0:X.hash<_.hash?-1:1)},OJ=(Y)=>{let Z={};for(let X of Y)if(X.hasOpenIntersection())Z[X.kind]=Z0(Z[X.kind],X);else{if(Z[X.kind])return _0(`Unexpected intersection of closed refinements of kind ${X.kind}`);Z[X.kind]=X}return Z},tX=(...Y)=>R(aX(...Y)),aX=(Y,Z,X)=>{let _=X.hasKind("morph")?"a morph":X.isUnknown()?"unknown":X.exclude(Z).defaultShortDescription;return`${CX(Y)} operand must be ${Z.description} (was ${_})`};var eX=(Y,Z,X)=>new M4(Y,Z,X,X,null);class c8 extends x1{}class M4 extends x1{[Z1]="generic";paramDefs;bodyDef;$;arg$;baseInstantiation;hkt;description;constructor(Y,Z,X,_,G){super((...$)=>{let W=o(this.names,(H,Q)=>{let J=this.arg$.parse($[H]);if(!J.extends(this.constraints[H]))R(VJ(Q,this.constraints[H].expression,J.expression));return[Q,J]});if(this.defIsLazy()){let H=this.bodyDef(W);return this.$.parse(H)}return this.$.parse(Z,{args:W})});this.paramDefs=Y,this.bodyDef=Z,this.$=X,this.arg$=_,this.hkt=G,this.description=G?new G().description??`a generic type for ${G.constructor.name}`:"a generic type",this.baseInstantiation=this(...this.constraints)}defIsLazy(){return this.bodyDef instanceof c8}cacheGetter(Y,Z){return Object.defineProperty(this,Y,{value:Z}),Z}get json(){return this.cacheGetter("json",{params:this.params.map((Y)=>Y[1].isUnknown()?Y[0]:[Y[0],Y[1].json]),body:yX(this.bodyDef)})}get params(){return this.cacheGetter("params",this.paramDefs.map((Y)=>typeof Y==="string"?[Y,N.intrinsic.unknown]:[Y[0],this.$.parse(Y[1])]))}get names(){return this.cacheGetter("names",this.params.map((Y)=>Y[0]))}get constraints(){return this.cacheGetter("constraints",this.params.map((Y)=>Y[1]))}get internal(){return this}get referencesById(){return this.baseInstantiation.internal.referencesById}get references(){return this.baseInstantiation.internal.references}}var VJ=(Y,Z,X)=>`${Y} must be assignable to ${Z} (was ${X})`;var DJ=r({kind:"predicate",hasAssociatedError:!0,collapsibleKey:"predicate",keys:{predicate:{}},normalize:(Y)=>typeof Y==="function"?{predicate:Y}:Y,defaults:{description:(Y)=>`valid according to ${Y.predicate.name||"an anonymous predicate"}`},intersectionIsOpen:!0,intersections:{predicate:()=>null}});class Y_ extends I1{serializedPredicate=C0(this.predicate);compiledCondition=`${this.serializedPredicate}(data, ctx)`;compiledNegation=`!${this.compiledCondition}`;impliedBasis=null;expression=this.serializedPredicate;traverseAllows=this.predicate;errorContext={code:"predicate",description:this.description,meta:this.meta};compiledErrorContext=D4(this.errorContext);traverseApply=(Y,Z)=>{if(!this.predicate(Y,Z.external)&&!Z.hasError())Z.errorFromNodeContext(this.errorContext)};compile(Y){if(Y.traversalKind==="Allows"){Y.return(this.compiledCondition);return}Y.if(`${this.compiledNegation} && !ctx.hasError()`,()=>Y.line(`ctx.errorFromNodeContext(${this.compiledErrorContext})`))}reduceJsonSchema(Y,Z){return Z.fallback.predicate({code:"predicate",base:Y,predicate:this.predicate})}}var jY={implementation:DJ,Node:Y_};var LJ=r({kind:"divisor",collapsibleKey:"rule",keys:{rule:{parse:(Y)=>Number.isInteger(Y)?Y:R(MJ(Y))}},normalize:(Y)=>typeof Y==="number"?{rule:Y}:Y,hasAssociatedError:!0,defaults:{description:(Y)=>Y.rule===1?"an integer":Y.rule===2?"even":`a multiple of ${Y.rule}`},intersections:{divisor:(Y,Z,X)=>X.$.node("divisor",{rule:Math.abs(Y.rule*Z.rule/AJ(Y.rule,Z.rule))})},obviatesBasisDescription:!0});class Z_ extends X4{traverseAllows=(Y)=>Y%this.rule===0;compiledCondition=`data % ${this.rule} === 0`;compiledNegation=`data % ${this.rule} !== 0`;impliedBasis=N.intrinsic.number.internal;expression=`% ${this.rule}`;reduceJsonSchema(Y){if(Y.type="integer",this.rule===1)return Y;return Y.multipleOf=this.rule,Y}}var SY={implementation:LJ,Node:Z_};var MJ=(Y)=>`divisor must be an integer (was ${Y})`,AJ=(Y,Z)=>{let X,_=Y,G=Z;while(G!==0)X=G,G=_%G,_=X;return _};class A1 extends X4{boundOperandKind=IJ[this.kind];compiledActual=this.boundOperandKind==="value"?"data":this.boundOperandKind==="length"?"data.length":"data.valueOf()";comparator=TJ(this.kind,this.exclusive);numericLimit=this.rule.valueOf();expression=`${this.comparator} ${this.rule}`;compiledCondition=`${this.compiledActual} ${this.comparator} ${this.numericLimit}`;compiledNegation=`${this.compiledActual} ${wJ[this.comparator]} ${this.numericLimit}`;stringLimit=this.boundOperandKind==="date"?KJ(this.numericLimit):`${this.numericLimit}`;limitKind=this.comparator["0"]==="<"?"upper":"lower";isStricterThan(Y){return(this.limitKind==="upper"?this.numericLimit<Y.numericLimit:this.numericLimit>Y.numericLimit)||this.numericLimit===Y.numericLimit&&this.exclusive===!0&&!Y.exclusive}overlapsRange(Y){if(this.isStricterThan(Y))return!1;if(this.numericLimit===Y.numericLimit&&(this.exclusive||Y.exclusive))return!1;return!0}overlapIsUnit(Y){return this.numericLimit===Y.numericLimit&&!this.exclusive&&!Y.exclusive}}var wJ={"<":">=","<=":">",">":"<=",">=":"<"},RJ={min:"max",minLength:"maxLength",after:"before"},l8={parse:(Y)=>Y||void 0},o8=(Y)=>(Z)=>{if(typeof Z==="number")return{rule:Z};let{exclusive:X,..._}=Z;return X?{..._,rule:Y==="minLength"?_.rule+1:_.rule-1}:_},i8=(Y)=>(Z)=>{if(typeof Z==="number"||typeof Z==="string"||Z instanceof Date)return{rule:Z};let{exclusive:X,..._}=Z;if(!X)return _;let G=typeof _.rule==="number"?_.rule:typeof _.rule==="string"?new Date(_.rule).valueOf():_.rule.valueOf();return X?{..._,rule:Y==="after"?G+1:G-1}:_},r8=(Y)=>typeof Y==="string"||typeof Y==="number"?new Date(Y):Y,NJ=(Y,Z)=>`${Y} bound must be a positive integer (was ${Z})`,_2=(Y)=>(Z)=>{if(!Number.isInteger(Z)||Z<0)R(NJ(Y,Z));return Z},IJ={min:"value",max:"value",minLength:"length",maxLength:"length",after:"date",before:"date"},TJ=(Y,Z)=>`${y0(Y,RJ)?">":"<"}${Z?"":"="}`,KJ=(Y)=>typeof Y==="string"?Y:new Date(Y).toLocaleString(),X_=(Y)=>`Bounded expression ${Y} must be exactly one of number, string, Array, or Date`;var BJ=r({kind:"after",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:r8,serialize:(Y)=>Y.toISOString()}},normalize:i8("after"),defaults:{description:(Y)=>`${Y.collapsibleLimitString} or later`,actual:P4},intersections:{after:(Y,Z)=>Y.isStricterThan(Z)?Y:Z}});class __ extends A1{impliedBasis=N.intrinsic.Date.internal;collapsibleLimitString=P4(this.rule);traverseAllows=(Y)=>Y>=this.rule;reduceJsonSchema(Y,Z){return Z.fallback.date({code:"date",base:Y,after:this.rule})}}var PY={implementation:BJ,Node:__};var CJ=r({kind:"before",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:r8,serialize:(Y)=>Y.toISOString()}},normalize:i8("before"),defaults:{description:(Y)=>`${Y.collapsibleLimitString} or earlier`,actual:P4},intersections:{before:(Y,Z)=>Y.isStricterThan(Z)?Y:Z,after:(Y,Z,X)=>Y.overlapsRange(Z)?Y.overlapIsUnit(Z)?X.$.node("unit",{unit:Y.rule}):null:P.init("range",Y,Z)}});class G_ extends A1{collapsibleLimitString=P4(this.rule);traverseAllows=(Y)=>Y<=this.rule;impliedBasis=N.intrinsic.Date.internal;reduceJsonSchema(Y,Z){return Z.fallback.date({code:"date",base:Y,before:this.rule})}}var vY={implementation:CJ,Node:G_};var qJ=r({kind:"exactLength",collapsibleKey:"rule",keys:{rule:{parse:_2("exactLength")}},normalize:(Y)=>typeof Y==="number"?{rule:Y}:Y,hasAssociatedError:!0,defaults:{description:(Y)=>`exactly length ${Y.rule}`,actual:(Y)=>`${Y.length}`},intersections:{exactLength:(Y,Z,X)=>P.init("unit",X.$.node("unit",{unit:Y.rule}),X.$.node("unit",{unit:Z.rule}),{path:["length"]}),minLength:(Y,Z)=>Y.rule>=Z.rule?Y:P.init("range",Y,Z),maxLength:(Y,Z)=>Y.rule<=Z.rule?Y:P.init("range",Y,Z)}});class $_ extends X4{traverseAllows=(Y)=>Y.length===this.rule;compiledCondition=`data.length === ${this.rule}`;compiledNegation=`data.length !== ${this.rule}`;impliedBasis=N.intrinsic.lengthBoundable.internal;expression=`== ${this.rule}`;reduceJsonSchema(Y){switch(Y.type){case"string":return Y.minLength=this.rule,Y.maxLength=this.rule,Y;case"array":return Y.minItems=this.rule,Y.maxItems=this.rule,Y;default:return N0.throwInternalOperandError("exactLength",Y)}}}var xY={implementation:qJ,Node:$_};var jJ=r({kind:"max",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:l8},normalize:(Y)=>typeof Y==="number"?{rule:Y}:Y,defaults:{description:(Y)=>{if(Y.rule===0)return Y.exclusive?"negative":"non-positive";return`${Y.exclusive?"less than":"at most"} ${Y.rule}`}},intersections:{max:(Y,Z)=>Y.isStricterThan(Z)?Y:Z,min:(Y,Z,X)=>Y.overlapsRange(Z)?Y.overlapIsUnit(Z)?X.$.node("unit",{unit:Y.rule}):null:P.init("range",Y,Z)},obviatesBasisDescription:!0});class W_ extends A1{impliedBasis=N.intrinsic.number.internal;traverseAllows=this.exclusive?(Y)=>Y<this.rule:(Y)=>Y<=this.rule;reduceJsonSchema(Y){if(this.exclusive)Y.exclusiveMaximum=this.rule;else Y.maximum=this.rule;return Y}}var fY={implementation:jJ,Node:W_};var SJ=r({kind:"maxLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:_2("maxLength")}},reduce:(Y,Z)=>Y.rule===0?Z.node("exactLength",Y):void 0,normalize:o8("maxLength"),defaults:{description:(Y)=>`at most length ${Y.rule}`,actual:(Y)=>`${Y.length}`},intersections:{maxLength:(Y,Z)=>Y.isStricterThan(Z)?Y:Z,minLength:(Y,Z,X)=>Y.overlapsRange(Z)?Y.overlapIsUnit(Z)?X.$.node("exactLength",{rule:Y.rule}):null:P.init("range",Y,Z)}});class H_ extends A1{impliedBasis=N.intrinsic.lengthBoundable.internal;traverseAllows=(Y)=>Y.length<=this.rule;reduceJsonSchema(Y){switch(Y.type){case"string":return Y.maxLength=this.rule,Y;case"array":return Y.maxItems=this.rule,Y;default:return N0.throwInternalOperandError("maxLength",Y)}}}var hY={implementation:SJ,Node:H_};var PJ=r({kind:"min",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:l8},normalize:(Y)=>typeof Y==="number"?{rule:Y}:Y,defaults:{description:(Y)=>{if(Y.rule===0)return Y.exclusive?"positive":"non-negative";return`${Y.exclusive?"more than":"at least"} ${Y.rule}`}},intersections:{min:(Y,Z)=>Y.isStricterThan(Z)?Y:Z},obviatesBasisDescription:!0});class J_ extends A1{impliedBasis=N.intrinsic.number.internal;traverseAllows=this.exclusive?(Y)=>Y>this.rule:(Y)=>Y>=this.rule;reduceJsonSchema(Y){if(this.exclusive)Y.exclusiveMinimum=this.rule;else Y.minimum=this.rule;return Y}}var kY={implementation:PJ,Node:J_};var vJ=r({kind:"minLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:_2("minLength")}},reduce:(Y)=>Y.rule===0?N.intrinsic.unknown:void 0,normalize:o8("minLength"),defaults:{description:(Y)=>Y.rule===1?"non-empty":`at least length ${Y.rule}`,actual:(Y)=>Y.length===0?"":`${Y.length}`},intersections:{minLength:(Y,Z)=>Y.isStricterThan(Z)?Y:Z}});class Q_ extends A1{impliedBasis=N.intrinsic.lengthBoundable.internal;traverseAllows=(Y)=>Y.length>=this.rule;reduceJsonSchema(Y){switch(Y.type){case"string":return Y.minLength=this.rule,Y;case"array":return Y.minItems=this.rule,Y;default:return N0.throwInternalOperandError("minLength",Y)}}}var bY={implementation:vJ,Node:Q_};var U_={min:kY.implementation,max:fY.implementation,minLength:bY.implementation,maxLength:hY.implementation,exactLength:xY.implementation,after:PY.implementation,before:vY.implementation},z_={min:kY.Node,max:fY.Node,minLength:bY.Node,maxLength:hY.Node,exactLength:xY.Node,after:PY.Node,before:vY.Node};var xJ=r({kind:"pattern",collapsibleKey:"rule",keys:{rule:{},flags:{}},normalize:(Y)=>typeof Y==="string"?{rule:Y}:Y instanceof RegExp?Y.flags?{rule:Y.source,flags:Y.flags}:{rule:Y.source}:Y,obviatesBasisDescription:!0,obviatesBasisExpression:!0,hasAssociatedError:!0,intersectionIsOpen:!0,defaults:{description:(Y)=>`matched by ${Y.rule}`},intersections:{pattern:()=>null}});class F_ extends X4{instance=new RegExp(this.rule,this.flags);expression=`${this.instance}`;traverseAllows=this.instance.test.bind(this.instance);compiledCondition=`${this.expression}.test(data)`;compiledNegation=`!${this.compiledCondition}`;impliedBasis=N.intrinsic.string.internal;reduceJsonSchema(Y,Z){if(Y.pattern)return Z.fallback.patternIntersection({code:"patternIntersection",base:Y,pattern:this.rule});return Y.pattern=this.rule,Y}}var yY={implementation:xJ,Node:F_};var l2=(Y,Z)=>{let X=fJ(Y);if(Z&&!Z.includes(X))return R(`Root of kind ${X} should be one of ${Z}`);return X},fJ=(Y)=>{if(y(Y,"root"))return Y.kind;if(typeof Y==="string")return Y[0]==="$"?"alias":(Y in Q1)?"domain":"proto";if(typeof Y==="function")return"proto";if(typeof Y!=="object"||Y===null)return R(E_(Y));if("morphs"in Y)return"morph";if("branches"in Y||F0(Y))return"union";if("unit"in Y)return"unit";if("reference"in Y)return"alias";let Z=Object.keys(Y);if(Z.length===0||Z.some((X)=>(X in u8)))return"intersection";if("proto"in Y)return"proto";if("domain"in Y)return"domain";return R(E_(Y))},E_=(Y)=>`${i(Y)} is not a valid type schema`,O_={},hJ=(Y)=>F0(Y)?Y.map((Z)=>Z.collapsibleJson):Y.collapsibleJson,X1={};N.nodesByRegisteredId=X1;var gY=(Y)=>{return O_[Y]??=0,`${Y}${++O_[Y]}`},pY=(Y)=>{let Z=G2[Y.kind],X=Z.applyConfig?.(Y.def,Y.$.resolvedConfig)??Y.def,_={},{meta:G,...$}=X,W=G===void 0?{}:typeof G==="string"?{description:G}:G,H=QY($).sort(([J],[U])=>a4(J)?a4(U)?e4(J)-e4(U):1:a4(U)?-1:J<U?-1:1).filter(([J,U])=>{if(J.startsWith("meta.")){let E=J.slice(5);return W[E]=U,!1}return!0});for(let J of H){let U=J[0],E=Z.keys[U];if(!E)return R(`Key ${U} is not valid on ${Y.kind} schema`);let V=E.parse?E.parse(J[1],Y):J[1];if(V!==M1&&(V!==void 0||E.preserveUndefined))_[U]=V}if(Z.reduce&&!Y.prereduced){let J=Z.reduce(_,Y.$);if(J){if(J instanceof P)return J.throw();return kJ(J,W)}}return mY({id:Y.id,kind:Y.kind,inner:_,meta:W,$:Y.$})},mY=({id:Y,kind:Z,inner:X,meta:_,$:G,ignoreCache:$})=>{let W=G2[Z],H=QY(X),Q=[],J={};for(let[h,x]of H){let m=W.keys[h],K=m.serialize??(m.child?hJ:N1);if(J[h]=K(x),m.child===!0){let I=x;if(F0(I))Q.push(...I);else Q.push(I)}else if(typeof m.child==="function")Q.push(...m.child(x))}if(W.finalizeInnerJson)J=W.finalizeInnerJson(J);let U={...J},E={};if(!d1(_))E=o(_,(h,x)=>[h,h==="examples"?x:N1(x)]),U.meta=n8(E,"description",!0);J=n8(J,W.collapsibleKey,!1);let V=JSON.stringify({kind:Z,...J});U=n8(U,W.collapsibleKey,!1);let L=n8(U,W.collapsibleKey,!0),w=JSON.stringify({kind:Z,...U});if(G.nodesByHash[w]&&!$)return G.nodesByHash[w];let M={id:Y,kind:Z,impl:W,inner:X,innerEntries:H,innerJson:J,innerHash:V,meta:_,metaJson:E,json:U,hash:w,collapsibleJson:L,children:Q};if(Z!=="intersection"){for(let h in X)if(h!=="in"&&h!=="out")M[h]=X[h]}let k=new D_[Z](M,G);return G.nodesByHash[w]=k},V_=(Y,Z)=>{if(Y.id===Z)return Y;if(D0(X1[Z]))_0(`Unexpected attempt to overwrite node id ${Z}`);return mY({id:Z,kind:Y.kind,inner:Y.inner,meta:Y.meta,$:Y.$,ignoreCache:!0})},kJ=(Y,Z,X)=>{if(X&&D0(X1[X]))_0(`Unexpected attempt to overwrite node id ${X}`);return mY({id:X??gY(Z.alias??Y.kind),kind:Y.kind,inner:Y.inner,meta:Z,$:Y.$})},n8=(Y,Z,X)=>{let _=Object.keys(Y);if(_.length===1&&_[0]===Z){let G=Y[Z];if(X)return G;if(J1(G,"object")&&(Object.keys(G).length===1||Array.isArray(G)))return G}return Y};var o2=(Y,Z,X)=>{if(Y.key!==Z.key)return null;let _=Y.key,G=L0(Y.value,Z.value,X),$=Y.required||Z.required?"required":"optional";if(G instanceof P)if($==="optional")G=N.intrinsic.never.internal;else return G.withPrefixKey(Y.key,Y.required&&Z.required?"required":"optional");if($==="required")return X.$.node("required",{key:_,value:G});let W=Y.hasDefault()?Z.hasDefault()?Y.default===Z.default?Y.default:R(uY(Y.default,Z.default)):Y.default:Z.hasDefault()?Z.default:M1;return X.$.node("optional",{key:_,value:G,default:W})};class i2 extends I1{required=this.kind==="required";optional=this.kind==="optional";impliedBasis=N.intrinsic.object.internal;serializedKey=Z4(this.key);compiledKey=typeof this.key==="string"?this.key:this.serializedKey;flatRefs=Z0(this.value.flatRefs.map((Y)=>h1([this.key,...Y.path],Y.node)),h1([this.key],this.value));_transform(Y,Z){Z.path.push(this.key);let X=super._transform(Y,Z);return Z.path.pop(),X}hasDefault(){return"default"in this.inner}traverseAllows=(Y,Z)=>{if(this.key in Y)return z1(this.key,()=>this.value.traverseAllows(Y[this.key],Z),Z);return this.optional};traverseApply=(Y,Z)=>{if(this.key in Y)z1(this.key,()=>this.value.traverseApply(Y[this.key],Z),Z);else if(this.hasKind("required"))Z.errorFromNodeContext(this.errorContext)};compile(Y){if(Y.if(`${this.serializedKey} in data`,()=>Y.traverseKey(this.serializedKey,`data${Y.prop(this.key)}`,this.value)),this.hasKind("required"))Y.else(()=>Y.traversalKind==="Apply"?Y.line(`ctx.errorFromNodeContext(${this.compiledErrorContext})`):Y.return(!1));if(Y.traversalKind==="Allows")Y.return(!0)}}var uY=(Y,Z)=>`Invalid intersection of default values ${i(Y)} & ${i(Z)}`;var bJ=r({kind:"optional",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{key:{},value:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y)},default:{preserveUndefined:!0}},normalize:(Y)=>Y,reduce:(Y,Z)=>{if(Z.resolvedConfig.exactOptionalPropertyTypes===!1){if(!Y.value.allows(void 0))return Z.node("optional",{...Y,value:Y.value.or(d.undefined)},{prereduced:!0})}},defaults:{description:(Y)=>`${Y.compiledKey}?: ${Y.value.description}`},intersections:{optional:o2}});class L_ extends i2{constructor(...Y){super(...Y);if("default"in this.inner)n2(this.value,this.inner.default,this.key)}get outProp(){if(!this.hasDefault())return this;let{default:Y,...Z}=this.inner;return this.cacheGetter("outProp",this.$.node("required",Z,{prereduced:!0}))}expression=this.hasDefault()?`${this.compiledKey}: ${this.value.expression} = ${i(this.inner.default)}`:`${this.compiledKey}?: ${this.value.expression}`;defaultValueMorph=gJ(this);defaultValueMorphRef=this.defaultValueMorph&&C0(this.defaultValueMorph)}var r2={implementation:bJ,Node:L_},yJ={},gJ=(Y)=>{if(!Y.hasDefault())return;let Z=`{${Y.compiledKey}: ${Y.value.id} = ${N1(Y.default)}}`;return yJ[Z]??=dY(Y.key,Y.value,Y.default)},dY=(Y,Z,X)=>{if(typeof X==="function")return Z.includesTransform?(G,$)=>{return z1(Y,()=>Z(G[Y]=X(),$),$),G}:(G)=>{return G[Y]=X(),G};let _=Z.includesTransform?Z.assert(X):X;return J1(_,"object")?(G,$)=>{return z1(Y,()=>Z(G[Y]=X,$),$),G}:(G)=>{return G[Y]=_,G}},n2=(Y,Z,X)=>{let _=E4(Z);if(J1(Z,"object")&&!_)R(pJ(X));let G=Y.in(_?Z():Z);if(G instanceof U1){if(X===null)R(`Default ${G.summary}`);let $=G.transform((W)=>W.transform((H)=>({...H,prefixPath:[X]})));R(`Default for ${$.summary}`)}return Z},pJ=(Y)=>{return`Non-primitive default ${Y===null?"":typeof Y==="number"?`for value at [${Y}] `:`for ${Z4(Y)} `}must be specified as a function like () => ({my: 'object'})`};class T1 extends d2{constructor(Y,Z){super(Y,Z);Object.defineProperty(this,Z1,{value:"root",enumerable:!1})}get internal(){return this}get "~standard"(){return{vendor:"arktype",version:1,validate:(Y)=>{let Z=this(Y);if(Z instanceof U1)return Z;return{value:Z}}}}as(){return this}brand(Y){if(Y==="")return R(mJ);return this}readonly(){return this}branches=this.hasKind("union")?this.inner.branches:[this];distribute(Y,Z){let X=this.branches.map(Y);return Z?.(X)??X}get shortDescription(){return this.meta.description??this.defaultShortDescription}toJsonSchema(Y={}){let Z=IY(this.$.resolvedConfig.toJsonSchema,Y);Z.useRefs||=this.isCyclic;let X=typeof Z.dialect==="string"?{$schema:Z.dialect}:{};if(Object.assign(X,this.toJsonSchemaRecurse(Z)),Z.useRefs)X.$defs=o(this.references,(_,G)=>G.isRoot()&&!G.alwaysExpandJsonSchema?[G.id,G.toResolvedJsonSchema(Z)]:[]);return X}toJsonSchemaRecurse(Y){if(Y.useRefs&&!this.alwaysExpandJsonSchema)return{$ref:`#/$defs/${this.id}`};return this.toResolvedJsonSchema(Y)}get alwaysExpandJsonSchema(){return this.isBasis()||this.kind==="alias"||this.hasKind("union")&&this.isBoolean}toResolvedJsonSchema(Y){let Z=this.innerToJsonSchema(Y);return Object.assign(Z,this.metaJson)}intersect(Y){let Z=this.$.parseDefinition(Y),X=this.rawIntersect(Z);if(X instanceof P)return X;return this.$.finalize(X)}rawIntersect(Y){return F1(this,Y,this.$)}toNeverIfDisjoint(){return this}and(Y){let Z=this.intersect(Y);return Z instanceof P?Z.throw():Z}rawAnd(Y){let Z=this.rawIntersect(Y);return Z instanceof P?Z.throw():Z}or(Y){let Z=this.$.parseDefinition(Y);return this.$.finalize(this.rawOr(Z))}rawOr(Y){let Z=[...this.branches,...Y.branches];return this.$.node("union",Z)}map(Y){return this.$.schema(this.applyStructuralOperation("map",[Y]))}pick(...Y){return this.$.schema(this.applyStructuralOperation("pick",Y))}omit(...Y){return this.$.schema(this.applyStructuralOperation("omit",Y))}required(){return this.$.schema(this.applyStructuralOperation("required",[]))}partial(){return this.$.schema(this.applyStructuralOperation("partial",[]))}_keyof;keyof(){if(this._keyof)return this._keyof;let Y=this.applyStructuralOperation("keyof",[]).reduce((Z,X)=>Z.intersect(X).toNeverIfDisjoint(),N.intrinsic.unknown.internal);if(Y.branches.length===0)R(CY(`keyof ${this.expression}`));return this._keyof=this.$.finalize(Y)}get props(){if(this.branches.length!==1)return R(uJ(this.expression));return[...this.applyStructuralOperation("props",[])[0]]}merge(Y){let Z=this.$.parseDefinition(Y);return this.$.schema(Z.distribute((X)=>this.applyStructuralOperation("merge",[M_(X)??R(A_("merge",X.expression))])))}applyStructuralOperation(Y,Z){return this.distribute((X)=>{if(X.equals(N.intrinsic.object)&&Y!=="merge")return X;let _=M_(X);if(!_)R(A_(Y,X.expression));if(Y==="keyof")return _.keyof();if(Y==="get")return _.get(...Z);if(Y==="props")return _.props;let G=Y==="required"?"require":Y==="partial"?"optionalize":Y;return this.$.node("intersection",{...X.inner,structure:_[G](...Z)})})}get(...Y){if(Y[0]===void 0)return this;return this.$.schema(this.applyStructuralOperation("get",Y))}extract(Y){let Z=this.$.parseDefinition(Y);return this.$.schema(this.branches.filter((X)=>X.extends(Z)))}exclude(Y){let Z=this.$.parseDefinition(Y);return this.$.schema(this.branches.filter((X)=>!X.extends(Z)))}array(){return this.$.schema(this.isUnknown()?{proto:Array}:{proto:Array,sequence:this},{prereduced:!0})}overlaps(Y){return!(this.intersect(Y)instanceof P)}extends(Y){let Z=this.intersect(Y);return!(Z instanceof P)&&this.equals(Z)}ifExtends(Y){return this.extends(Y)?this:void 0}subsumes(Y){return this.$.parseDefinition(Y).extends(this)}configure(Y,Z="shallow"){return this.configureReferences(Y,Z)}describe(Y,Z="shallow"){return this.configure({description:Y},Z)}optional(){return[this,"?"]}default(Y){return n2(this,Y,null),[this,"=",Y]}from(Y){return this.assert(Y)}_pipe(...Y){let Z=Y.reduce((X,_)=>X.rawPipeOnce(_),this);return this.$.finalize(Z)}tryPipe(...Y){let Z=Y.reduce((X,_)=>X.rawPipeOnce(y(_,"root")?_:(G,$)=>{try{return _(G,$)}catch(W){return $.error({code:"predicate",predicate:_,actual:`aborted due to error:
25
25
  ${W}
26
- `})}}),this);return this.$.finalize(Z)}pipe=Object.assign(this._pipe.bind(this),{try:this.tryPipe.bind(this)});to(Y){return this.$.finalize(this.toNode(this.$.parseDefinition(Y)))}toNode(Y){let Z=c2(this,Y,this.$);if(Z instanceof P)return Z.throw();return Z}rawPipeOnce(Y){if(g(Y,"root"))return this.toNode(Y);return this.distribute((Z)=>Z.hasKind("morph")?this.$.node("morph",{in:Z.inner.in,morphs:[...Z.morphs,Y]}):this.$.node("morph",{in:Z,morphs:[Y]}),this.$.parseSchema)}narrow(Y){return this.constrainOut("predicate",Y)}constrain(Y,Z){return this._constrain("root",Y,Z)}constrainIn(Y,Z){return this._constrain("in",Y,Z)}constrainOut(Y,Z){return this._constrain("out",Y,Z)}_constrain(Y,Z,X){let _=this.$.node(Z,X);if(_.isRoot())return _.isUnknown()?this:_0(`Unexpected constraint node ${_}`);let G=Y==="root"?this:this[Y];if(G.hasKind("morph")||_.impliedBasis&&!G.extends(_.impliedBasis))return rX(Z,_.impliedBasis,this);let $=this.$.node("intersection",{[_.kind]:_}),W=Y==="out"?c2(this,$,this.$):F1(this,$,this.$);if(W instanceof P)W.throw();return this.$.finalize(W)}onUndeclaredKey(Y){let Z=typeof Y==="string"?Y:Y.rule,X=typeof Y==="string"?!1:Y.deep;return this.$.finalize(this.transform((_,G)=>_==="structure"?Z==="ignore"?EX(G,{undeclared:1}):{...G,undeclared:Z}:G,X?void 0:{shouldTransform:(_)=>!s1(s4,_.kind)}))}hasEqualMorphs(Y){if(!this.includesTransform&&!Y.includesTransform)return!0;if(!a1(this.shallowMorphs,Y.shallowMorphs))return!1;if(!a1(this.flatMorphs,Y.flatMorphs,{isEqual:(Z,X)=>Z.propString===X.propString&&(Z.node.hasKind("morph")&&X.node.hasKind("morph")?Z.node.hasEqualMorphs(X.node):Z.node.hasKind("intersection")&&X.node.hasKind("intersection")?Z.node.structure?.structuralMorphRef===X.node.structure?.structuralMorphRef:!1)}))return!1;return!0}onDeepUndeclaredKey(Y){return this.onUndeclaredKey({rule:Y,deep:!0})}filter(Y){return this.constrainIn("predicate",Y)}divisibleBy(Y){return this.constrain("divisor",Y)}matching(Y){return this.constrain("pattern",Y)}atLeast(Y){return this.constrain("min",Y)}atMost(Y){return this.constrain("max",Y)}moreThan(Y){return this.constrain("min",$2(Y))}lessThan(Y){return this.constrain("max",$2(Y))}atLeastLength(Y){return this.constrain("minLength",Y)}atMostLength(Y){return this.constrain("maxLength",Y)}moreThanLength(Y){return this.constrain("minLength",$2(Y))}lessThanLength(Y){return this.constrain("maxLength",$2(Y))}exactlyLength(Y){return this.constrain("exactLength",Y)}atOrAfter(Y){return this.constrain("after",Y)}atOrBefore(Y){return this.constrain("before",Y)}laterThan(Y){return this.constrain("after",$2(Y))}earlierThan(Y){return this.constrain("before",$2(Y))}}var bJ="Expected a non-empty brand name after #",$2=(Y)=>typeof Y==="object"&&!(Y instanceof Date)?{...Y,exclusive:!0}:{rule:Y,exclusive:!0},s2=(Y,Z)=>g(Z,"root")?g(Y,"root")?Y.extends(Z):Z.allows(Y):g(Y,"root")?Y.hasUnit(Z):Z===Y,V_=(Y)=>{if(Y.hasKind("morph"))return null;if(Y.hasKind("intersection"))return Y.inner.structure??(Y.basis?.domain==="object"?Y.$.bindReference(T.intrinsic.emptyStructure):null);if(Y.isBasis()&&Y.domain==="object")return Y.$.bindReference(T.intrinsic.emptyStructure);return null},yJ=(Y)=>`Props cannot be extracted from a union. Use .distribute to extract props from each branch instead. Received:
27
- ${Y}`,D_=(Y,Z)=>`${Y} operand must be an object (was ${Z})`;var d1=(Y,Z)=>i(c8(Y),(X,_)=>[_,Z]);var gJ=(Y)=>typeof Y==="string"?{reference:Y}:Y,L_=(Y)=>Y instanceof P?T.intrinsic.never.internal:Y,pJ=n({kind:"alias",hasAssociatedError:!1,collapsibleKey:"reference",keys:{reference:{serialize:(Y)=>Y.startsWith("$")?Y:`$ark.${Y}`},resolve:{}},normalize:gJ,defaults:{description:(Y)=>Y.reference},intersections:{alias:(Y,Z,X)=>X.$.lazilyResolve(()=>L_(M0(Y.resolution,Z.resolution,X)),`${Y.reference}${X.pipe?"=>":"&"}${Z.reference}`),...d1("alias",(Y,Z,X)=>{if(Z.isUnknown())return Y;if(Z.isNever())return Z;if(Z.isBasis()&&!Z.overlaps(T.intrinsic.object))return P.init("assignability",T.intrinsic.object,Z);return X.$.lazilyResolve(()=>L_(M0(Y.resolution,Z,X)),`${Y.reference}${X.pipe?"=>":"&"}${Z.id}`)})}});class M_ extends K1{expression=this.reference;structure=void 0;get resolution(){let Y=this._resolve();return X1[this.id]=Y}_resolve(){if(this.resolve)return this.resolve();if(this.reference[0]==="$")return this.$.resolveRoot(this.reference.slice(1));let Y=this.reference,Z=X1[Y],X=[];while(g(Z,"context")){if(X.includes(Z.id))return w(mJ(Z.id,X));X.push(Z.id),Z=X1[Z.id]}if(!g(Z,"root"))return _0(`Unexpected resolution for reference ${this.reference}
26
+ `})}}),this);return this.$.finalize(Z)}pipe=Object.assign(this._pipe.bind(this),{try:this.tryPipe.bind(this)});to(Y){return this.$.finalize(this.toNode(this.$.parseDefinition(Y)))}toNode(Y){let Z=c2(this,Y,this.$);if(Z instanceof P)return Z.throw();return Z}rawPipeOnce(Y){if(y(Y,"root"))return this.toNode(Y);return this.distribute((Z)=>Z.hasKind("morph")?this.$.node("morph",{in:Z.inner.in,morphs:[...Z.morphs,Y]}):this.$.node("morph",{in:Z,morphs:[Y]}),this.$.parseSchema)}narrow(Y){return this.constrainOut("predicate",Y)}constrain(Y,Z){return this._constrain("root",Y,Z)}constrainIn(Y,Z){return this._constrain("in",Y,Z)}constrainOut(Y,Z){return this._constrain("out",Y,Z)}_constrain(Y,Z,X){let _=this.$.node(Z,X);if(_.isRoot())return _.isUnknown()?this:_0(`Unexpected constraint node ${_}`);let G=Y==="root"?this:this[Y];if(G.hasKind("morph")||_.impliedBasis&&!G.extends(_.impliedBasis))return tX(Z,_.impliedBasis,this);let $=this.$.node("intersection",{[_.kind]:_}),W=Y==="out"?c2(this,$,this.$):F1(this,$,this.$);if(W instanceof P)W.throw();return this.$.finalize(W)}onUndeclaredKey(Y){let Z=typeof Y==="string"?Y:Y.rule,X=typeof Y==="string"?!1:Y.deep;return this.$.finalize(this.transform((_,G)=>_==="structure"?Z==="ignore"?DX(G,{undeclared:1}):{...G,undeclared:Z}:G,X?void 0:{shouldTransform:(_)=>!s1(s4,_.kind)}))}hasEqualMorphs(Y){if(!this.includesTransform&&!Y.includesTransform)return!0;if(!a1(this.shallowMorphs,Y.shallowMorphs))return!1;if(!a1(this.flatMorphs,Y.flatMorphs,{isEqual:(Z,X)=>Z.propString===X.propString&&(Z.node.hasKind("morph")&&X.node.hasKind("morph")?Z.node.hasEqualMorphs(X.node):Z.node.hasKind("intersection")&&X.node.hasKind("intersection")?Z.node.structure?.structuralMorphRef===X.node.structure?.structuralMorphRef:!1)}))return!1;return!0}onDeepUndeclaredKey(Y){return this.onUndeclaredKey({rule:Y,deep:!0})}filter(Y){return this.constrainIn("predicate",Y)}divisibleBy(Y){return this.constrain("divisor",Y)}matching(Y){return this.constrain("pattern",Y)}atLeast(Y){return this.constrain("min",Y)}atMost(Y){return this.constrain("max",Y)}moreThan(Y){return this.constrain("min",$2(Y))}lessThan(Y){return this.constrain("max",$2(Y))}atLeastLength(Y){return this.constrain("minLength",Y)}atMostLength(Y){return this.constrain("maxLength",Y)}moreThanLength(Y){return this.constrain("minLength",$2(Y))}lessThanLength(Y){return this.constrain("maxLength",$2(Y))}exactlyLength(Y){return this.constrain("exactLength",Y)}atOrAfter(Y){return this.constrain("after",Y)}atOrBefore(Y){return this.constrain("before",Y)}laterThan(Y){return this.constrain("after",$2(Y))}earlierThan(Y){return this.constrain("before",$2(Y))}}var mJ="Expected a non-empty brand name after #",$2=(Y)=>typeof Y==="object"&&!(Y instanceof Date)?{...Y,exclusive:!0}:{rule:Y,exclusive:!0},s2=(Y,Z)=>y(Z,"root")?y(Y,"root")?Y.extends(Z):Z.allows(Y):y(Y,"root")?Y.hasUnit(Z):Z===Y,M_=(Y)=>{if(Y.hasKind("morph"))return null;if(Y.hasKind("intersection"))return Y.inner.structure??(Y.basis?.domain==="object"?Y.$.bindReference(N.intrinsic.emptyStructure):null);if(Y.isBasis()&&Y.domain==="object")return Y.$.bindReference(N.intrinsic.emptyStructure);return null},uJ=(Y)=>`Props cannot be extracted from a union. Use .distribute to extract props from each branch instead. Received:
27
+ ${Y}`,A_=(Y,Z)=>`${Y} operand must be an object (was ${Z})`;var c1=(Y,Z)=>o(d8(Y),(X,_)=>[_,Z]);var dJ=(Y)=>typeof Y==="string"?{reference:Y}:Y,w_=(Y)=>Y instanceof P?N.intrinsic.never.internal:Y,cJ=r({kind:"alias",hasAssociatedError:!1,collapsibleKey:"reference",keys:{reference:{serialize:(Y)=>Y.startsWith("$")?Y:`$ark.${Y}`},resolve:{}},normalize:dJ,defaults:{description:(Y)=>Y.reference},intersections:{alias:(Y,Z,X)=>X.$.lazilyResolve(()=>w_(L0(Y.resolution,Z.resolution,X)),`${Y.reference}${X.pipe?"=>":"&"}${Z.reference}`),...c1("alias",(Y,Z,X)=>{if(Z.isUnknown())return Y;if(Z.isNever())return Z;if(Z.isBasis()&&!Z.overlaps(N.intrinsic.object))return P.init("assignability",N.intrinsic.object,Z);return X.$.lazilyResolve(()=>w_(L0(Y.resolution,Z,X)),`${Y.reference}${X.pipe?"=>":"&"}${Z.id}`)})}});class R_ extends T1{expression=this.reference;structure=void 0;get resolution(){let Y=this._resolve();return X1[this.id]=Y}_resolve(){if(this.resolve)return this.resolve();if(this.reference[0]==="$")return this.$.resolveRoot(this.reference.slice(1));let Y=this.reference,Z=X1[Y],X=[];while(y(Z,"context")){if(X.includes(Z.id))return R(lJ(Z.id,X));X.push(Z.id),Z=X1[Z.id]}if(!y(Z,"root"))return _0(`Unexpected resolution for reference ${this.reference}
28
28
  Seen: [${X.join("->")}]
29
- Resolution: ${r(Z)}`);return Z}get resolutionId(){if(this.reference.includes("&")||this.reference.includes("=>"))return this.resolution.id;if(this.reference[0]!=="$")return this.reference;let Y=this.reference.slice(1),Z=this.$.resolutions[Y];if(typeof Z==="string")return Z;if(g(Z,"root"))return Z.id;return _0(`Unexpected resolution for reference ${this.reference}: ${r(Z)}`)}get defaultShortDescription(){return Q1.object}innerToJsonSchema(Y){return this.resolution.toJsonSchemaRecurse(Y)}traverseAllows=(Y,Z)=>{let X=Z.seen[this.reference];if(X?.includes(Y))return!0;return Z.seen[this.reference]=Z0(X,Y),this.resolution.traverseAllows(Y,Z)};traverseApply=(Y,Z)=>{let X=Z.seen[this.reference];if(X?.includes(Y))return;Z.seen[this.reference]=Z0(X,Y),this.resolution.traverseApply(Y,Z)};compile(Y){let Z=this.resolutionId;Y.if(`ctx.seen.${Z} && ctx.seen.${Z}.includes(data)`,()=>Y.return(!0)),Y.if(`!ctx.seen.${Z}`,()=>Y.line(`ctx.seen.${Z} = []`)),Y.line(`ctx.seen.${Z}.push(data)`),Y.return(Y.invoke(Z))}}var mJ=(Y,Z)=>`Alias '${Y}' has a shallow resolution cycle: ${[...Z,Y].join("->")}`,t2={implementation:pJ,Node:M_};class x4 extends K1{traverseApply=(Y,Z)=>{if(!this.traverseAllows(Y,Z))Z.errorFromNodeContext(this.errorContext)};get errorContext(){return{code:this.kind,description:this.description,meta:this.meta,...this.inner}}get compiledErrorContext(){return D4(this.errorContext)}compile(Y){if(Y.traversalKind==="Allows")Y.return(this.compiledCondition);else Y.if(this.compiledNegation,()=>Y.line(`${Y.ctx}.errorFromNodeContext(${this.compiledErrorContext})`))}}var uJ=n({kind:"domain",hasAssociatedError:!0,collapsibleKey:"domain",keys:{domain:{},numberAllowsNaN:{}},normalize:(Y)=>typeof Y==="string"?{domain:Y}:r4(Y,"numberAllowsNaN")&&Y.domain!=="number"?w(t8.writeBadAllowNanMessage(Y.domain)):Y,applyConfig:(Y,Z)=>Y.numberAllowsNaN===void 0&&Y.domain==="number"&&Z.numberAllowsNaN?{...Y,numberAllowsNaN:!0}:Y,defaults:{description:(Y)=>Q1[Y.domain],actual:(Y)=>Number.isNaN(Y)?"NaN":Q1[b0(Y)]},intersections:{domain:(Y,Z)=>Y.domain==="number"&&Z.domain==="number"?Y.numberAllowsNaN?Z:Y:P.init("domain",Y,Z)}});class A_ extends x4{requiresNaNCheck=this.domain==="number"&&!this.numberAllowsNaN;traverseAllows=this.requiresNaNCheck?(Y)=>typeof Y==="number"&&!Number.isNaN(Y):(Y)=>b0(Y)===this.domain;compiledCondition=this.domain==="object"?'((typeof data === "object" && data !== null) || typeof data === "function")':`typeof data === "${this.domain}"${this.requiresNaNCheck?" && !Number.isNaN(data)":""}`;compiledNegation=this.domain==="object"?'((typeof data !== "object" || data === null) && typeof data !== "function")':`typeof data !== "${this.domain}"${this.requiresNaNCheck?" || Number.isNaN(data)":""}`;expression=this.numberAllowsNaN?"number | NaN":this.domain;get nestableExpression(){return this.numberAllowsNaN?`(${this.expression})`:this.expression}get defaultShortDescription(){return Q1[this.domain]}innerToJsonSchema(Y){if(this.domain==="bigint"||this.domain==="symbol")return Y.fallback.domain({code:"domain",base:{},domain:this.domain});return{type:this.domain}}}var t8={implementation:uJ,Node:A_,writeBadAllowNanMessage:(Y)=>`numberAllowsNaN may only be specified with domain "number" (was ${Y})`};var dJ=n({kind:"intersection",hasAssociatedError:!0,normalize:(Y)=>{if(L0(Y))return Y;let{structure:Z,...X}=Y,_=!!Z,G=Z??{},$=i(X,(W,H)=>{if(y0(W,pX)){if(_)w(`Flattened structure key ${W} cannot be specified alongside a root 'structure' key.`);return G[W]=H,[]}return[W,H]});if(g(G,"constraint")||!u1(G))$.structure=G;return $},finalizeInnerJson:({structure:Y,...Z})=>J1(Y,"object")?{...Y,...Z}:Z,keys:{domain:{child:!0,parse:(Y,Z)=>Z.$.node("domain",Y)},proto:{child:!0,parse:(Y,Z)=>Z.$.node("proto",Y)},structure:{child:!0,parse:(Y,Z)=>Z.$.node("structure",Y),serialize:(Y)=>{if(!Y.sequence?.minLength)return Y.collapsibleJson;let{sequence:Z,...X}=Y.collapsibleJson,{minVariadicLength:_,...G}=Z,$=G.variadic&&Object.keys(G).length===1?G.variadic:G;return{...X,sequence:$}}},divisor:{child:!0,parse:t0("divisor")},max:{child:!0,parse:t0("max")},min:{child:!0,parse:t0("min")},maxLength:{child:!0,parse:t0("maxLength")},minLength:{child:!0,parse:t0("minLength")},exactLength:{child:!0,parse:t0("exactLength")},before:{child:!0,parse:t0("before")},after:{child:!0,parse:t0("after")},pattern:{child:!0,parse:t0("pattern")},predicate:{child:!0,parse:t0("predicate")}},reduce:(Y,Z)=>w_({},Y,{$:Z,invert:!1,pipe:!1}),defaults:{description:(Y)=>{if(Y.children.length===0)return"unknown";if(Y.structure)return Y.structure.description;let Z=[];if(Y.basis&&!Y.refinements.some((X)=>X.impl.obviatesBasisDescription))Z.push(Y.basis.description);if(Y.refinements.length){let X=Y.refinements.toSorted((_,G)=>_.kind==="min"&&G.kind==="max"?-1:0).map((_)=>_.description);Z.push(...X)}if(Y.inner.predicate)Z.push(...Y.inner.predicate.map((X)=>X.description));return Z.join(" and ")},expected:(Y)=>` \u25E6 ${Y.errors.map((Z)=>Z.expected).join(`
29
+ Resolution: ${i(Z)}`);return Z}get resolutionId(){if(this.reference.includes("&")||this.reference.includes("=>"))return this.resolution.id;if(this.reference[0]!=="$")return this.reference;let Y=this.reference.slice(1),Z=this.$.resolutions[Y];if(typeof Z==="string")return Z;if(y(Z,"root"))return Z.id;return _0(`Unexpected resolution for reference ${this.reference}: ${i(Z)}`)}get defaultShortDescription(){return Q1.object}innerToJsonSchema(Y){return this.resolution.toJsonSchemaRecurse(Y)}traverseAllows=(Y,Z)=>{let X=Z.seen[this.reference];if(X?.includes(Y))return!0;return Z.seen[this.reference]=Z0(X,Y),this.resolution.traverseAllows(Y,Z)};traverseApply=(Y,Z)=>{let X=Z.seen[this.reference];if(X?.includes(Y))return;Z.seen[this.reference]=Z0(X,Y),this.resolution.traverseApply(Y,Z)};compile(Y){let Z=this.resolutionId;Y.if(`ctx.seen.${Z} && ctx.seen.${Z}.includes(data)`,()=>Y.return(!0)),Y.if(`!ctx.seen.${Z}`,()=>Y.line(`ctx.seen.${Z} = []`)),Y.line(`ctx.seen.${Z}.push(data)`),Y.return(Y.invoke(Z))}}var lJ=(Y,Z)=>`Alias '${Y}' has a shallow resolution cycle: ${[...Z,Y].join("->")}`,t2={implementation:cJ,Node:R_};class v4 extends T1{traverseApply=(Y,Z)=>{if(!this.traverseAllows(Y,Z))Z.errorFromNodeContext(this.errorContext)};get errorContext(){return{code:this.kind,description:this.description,meta:this.meta,...this.inner}}get compiledErrorContext(){return D4(this.errorContext)}compile(Y){if(Y.traversalKind==="Allows")Y.return(this.compiledCondition);else Y.if(this.compiledNegation,()=>Y.line(`${Y.ctx}.errorFromNodeContext(${this.compiledErrorContext})`))}}var oJ=r({kind:"domain",hasAssociatedError:!0,collapsibleKey:"domain",keys:{domain:{},numberAllowsNaN:{}},normalize:(Y)=>typeof Y==="string"?{domain:Y}:r4(Y,"numberAllowsNaN")&&Y.domain!=="number"?R(s8.writeBadAllowNanMessage(Y.domain)):Y,applyConfig:(Y,Z)=>Y.numberAllowsNaN===void 0&&Y.domain==="number"&&Z.numberAllowsNaN?{...Y,numberAllowsNaN:!0}:Y,defaults:{description:(Y)=>Q1[Y.domain],actual:(Y)=>Number.isNaN(Y)?"NaN":Q1[b0(Y)]},intersections:{domain:(Y,Z)=>Y.domain==="number"&&Z.domain==="number"?Y.numberAllowsNaN?Z:Y:P.init("domain",Y,Z)}});class N_ extends v4{requiresNaNCheck=this.domain==="number"&&!this.numberAllowsNaN;traverseAllows=this.requiresNaNCheck?(Y)=>typeof Y==="number"&&!Number.isNaN(Y):(Y)=>b0(Y)===this.domain;compiledCondition=this.domain==="object"?'((typeof data === "object" && data !== null) || typeof data === "function")':`typeof data === "${this.domain}"${this.requiresNaNCheck?" && !Number.isNaN(data)":""}`;compiledNegation=this.domain==="object"?'((typeof data !== "object" || data === null) && typeof data !== "function")':`typeof data !== "${this.domain}"${this.requiresNaNCheck?" || Number.isNaN(data)":""}`;expression=this.numberAllowsNaN?"number | NaN":this.domain;get nestableExpression(){return this.numberAllowsNaN?`(${this.expression})`:this.expression}get defaultShortDescription(){return Q1[this.domain]}innerToJsonSchema(Y){if(this.domain==="bigint"||this.domain==="symbol")return Y.fallback.domain({code:"domain",base:{},domain:this.domain});return{type:this.domain}}}var s8={implementation:oJ,Node:N_,writeBadAllowNanMessage:(Y)=>`numberAllowsNaN may only be specified with domain "number" (was ${Y})`};var iJ=r({kind:"intersection",hasAssociatedError:!0,normalize:(Y)=>{if(D0(Y))return Y;let{structure:Z,...X}=Y,_=!!Z,G=Z??{},$=o(X,(W,H)=>{if(y0(W,dX)){if(_)R(`Flattened structure key ${W} cannot be specified alongside a root 'structure' key.`);return G[W]=H,[]}return[W,H]});if(y(G,"constraint")||!d1(G))$.structure=G;return $},finalizeInnerJson:({structure:Y,...Z})=>J1(Y,"object")?{...Y,...Z}:Z,keys:{domain:{child:!0,parse:(Y,Z)=>Z.$.node("domain",Y)},proto:{child:!0,parse:(Y,Z)=>Z.$.node("proto",Y)},structure:{child:!0,parse:(Y,Z)=>Z.$.node("structure",Y),serialize:(Y)=>{if(!Y.sequence?.minLength)return Y.collapsibleJson;let{sequence:Z,...X}=Y.collapsibleJson,{minVariadicLength:_,...G}=Z,$=G.variadic&&Object.keys(G).length===1?G.variadic:G;return{...X,sequence:$}}},divisor:{child:!0,parse:t0("divisor")},max:{child:!0,parse:t0("max")},min:{child:!0,parse:t0("min")},maxLength:{child:!0,parse:t0("maxLength")},minLength:{child:!0,parse:t0("minLength")},exactLength:{child:!0,parse:t0("exactLength")},before:{child:!0,parse:t0("before")},after:{child:!0,parse:t0("after")},pattern:{child:!0,parse:t0("pattern")},predicate:{child:!0,parse:t0("predicate")}},reduce:(Y,Z)=>I_({},Y,{$:Z,invert:!1,pipe:!1}),defaults:{description:(Y)=>{if(Y.children.length===0)return"unknown";if(Y.structure)return Y.structure.description;let Z=[];if(Y.basis&&!Y.refinements.some((X)=>X.impl.obviatesBasisDescription))Z.push(Y.basis.description);if(Y.refinements.length){let X=Y.refinements.toSorted((_,G)=>_.kind==="min"&&G.kind==="max"?-1:0).map((_)=>_.description);Z.push(...X)}if(Y.inner.predicate)Z.push(...Y.inner.predicate.map((X)=>X.description));return Z.join(" and ")},expected:(Y)=>` \u25E6 ${Y.errors.map((Z)=>Z.expected).join(`
30
30
  \u25E6 `)}`,problem:(Y)=>`(${Y.actual}) must be...
31
- ${Y.expected}`},intersections:{intersection:(Y,Z,X)=>w_(Y.inner,Z.inner,X),...d1("intersection",(Y,Z,X)=>{if(Y.children.length===0)return Z;let{domain:_,proto:G,...$}=Y.inner,W=G??_,H=W?M0(W,Z,X):Z;return H instanceof P?H:Y?.basis?.equals(H)?Y:Y.$.node("intersection",{...$,[H.kind]:H},{prereduced:!0})})}});class R_ extends K1{basis=this.inner.domain??this.inner.proto??null;refinements=this.children.filter((Y)=>Y.isRefinement());structure=this.inner.structure;expression=cJ(this);get shallowMorphs(){return this.inner.structure?.structuralMorph?[this.inner.structure.structuralMorph]:[]}get defaultShortDescription(){return this.basis?.defaultShortDescription??"present"}innerToJsonSchema(Y){return this.children.reduce((Z,X)=>X.isBasis()?X.toJsonSchemaRecurse(Y):X.reduceJsonSchema(Z,Y),{})}traverseAllows=(Y,Z)=>this.children.every((X)=>X.traverseAllows(Y,Z));traverseApply=(Y,Z)=>{let X=Z.currentErrorCount;if(this.basis){if(this.basis.traverseApply(Y,Z),Z.currentErrorCount>X)return}if(this.refinements.length){for(let _=0;_<this.refinements.length-1;_++)if(this.refinements[_].traverseApply(Y,Z),Z.failFast&&Z.currentErrorCount>X)return;if(this.refinements.at(-1).traverseApply(Y,Z),Z.currentErrorCount>X)return}if(this.structure){if(this.structure.traverseApply(Y,Z),Z.currentErrorCount>X)return}if(this.inner.predicate){for(let _=0;_<this.inner.predicate.length-1;_++)if(this.inner.predicate[_].traverseApply(Y,Z),Z.failFast&&Z.currentErrorCount>X)return;this.inner.predicate.at(-1).traverseApply(Y,Z)}};compile(Y){if(Y.traversalKind==="Allows"){for(let Z of this.children)Y.check(Z);Y.return(!0);return}if(Y.initializeErrorCount(),this.basis){if(Y.check(this.basis),this.children.length>1)Y.returnIfFail()}if(this.refinements.length){for(let Z=0;Z<this.refinements.length-1;Z++)Y.check(this.refinements[Z]),Y.returnIfFailFast();if(Y.check(this.refinements.at(-1)),this.structure||this.inner.predicate)Y.returnIfFail()}if(this.structure){if(Y.check(this.structure),this.inner.predicate)Y.returnIfFail()}if(this.inner.predicate){for(let Z=0;Z<this.inner.predicate.length-1;Z++)Y.check(this.inner.predicate[Z]),Y.returnIfFail();Y.check(this.inner.predicate.at(-1))}}}var cY={implementation:dJ,Node:R_},cJ=(Y)=>{let Z=Y.structure?.expression||`${Y.basis&&!Y.refinements.some((X)=>X.impl.obviatesBasisExpression)?Y.basis.nestableExpression+" ":""}${Y.refinements.map((X)=>X.expression).join(" & ")}`||"unknown";if(Z==="Array == 0")Z="[]";return Z},w_=(Y,Z,X)=>{let _={},G=Y.proto??Y.domain,$=Z.proto??Z.domain,W=G?$?M0(G,$,X):G:$;if(W instanceof P)return W;if(W)_[W.kind]=W;return Z2({kind:"intersection",baseInner:_,l:X2(Y),r:X2(Z),roots:[],ctx:X})};var lJ=n({kind:"morph",hasAssociatedError:!1,keys:{in:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y)},morphs:{parse:F4,serialize:(Y)=>Y.map((Z)=>g(Z,"root")?Z.json:C0(Z))},declaredIn:{child:!1,serialize:(Y)=>Y.json},declaredOut:{child:!1,serialize:(Y)=>Y.json}},normalize:(Y)=>Y,defaults:{description:(Y)=>`a morph from ${Y.in.description} to ${Y.out?.description??"unknown"}`},intersections:{morph:(Y,Z,X)=>{if(!Y.hasEqualMorphs(Z))return w(oJ(Y.expression,Z.expression));let _=M0(Y.in,Z.in,X);if(_ instanceof P)return _;let G={morphs:Y.morphs};if(Y.declaredIn||Z.declaredIn){let $=M0(Y.in,Z.in,X);if($ instanceof P)return $.throw();else G.declaredIn=$}if(Y.declaredOut||Z.declaredOut){let $=M0(Y.out,Z.out,X);if($ instanceof P)return $.throw();else G.declaredOut=$}return _.distribute(($)=>X.$.node("morph",{...G,in:$}),X.$.parseSchema)},...d1("morph",(Y,Z,X)=>{let _=Y.inner.in?M0(Y.inner.in,Z,X):Z;return _ instanceof P?_:_.equals(Y.inner.in)?Y:X.$.node("morph",{...Y.inner,in:_})})}});class N_ extends K1{serializedMorphs=this.morphs.map(C0);compiledMorphs=`[${this.serializedMorphs}]`;lastMorph=this.inner.morphs.at(-1);lastMorphIfNode=g(this.lastMorph,"root")?this.lastMorph:void 0;introspectableIn=this.inner.in;introspectableOut=this.lastMorphIfNode?Object.assign(this.referencesById,this.lastMorphIfNode.referencesById)&&this.lastMorphIfNode.out:void 0;get shallowMorphs(){return Array.isArray(this.inner.in?.shallowMorphs)?[...this.inner.in.shallowMorphs,...this.morphs]:this.morphs}get in(){return this.declaredIn??this.inner.in?.in??T.intrinsic.unknown.internal}get out(){return this.declaredOut??this.introspectableOut??T.intrinsic.unknown.internal}declareIn(Y){return this.$.node("morph",{...this.inner,declaredIn:Y})}declareOut(Y){return this.$.node("morph",{...this.inner,declaredOut:Y})}expression=`(In: ${this.in.expression}) => ${this.lastMorphIfNode?"To":"Out"}<${this.out.expression}>`;get defaultShortDescription(){return this.in.meta.description??this.in.defaultShortDescription}innerToJsonSchema(Y){return Y.fallback.morph({code:"morph",base:this.in.toJsonSchemaRecurse(Y),out:this.introspectableOut?.toJsonSchemaRecurse(Y)??null})}compile(Y){if(Y.traversalKind==="Allows"){if(!this.introspectableIn)return;Y.return(Y.invoke(this.introspectableIn));return}if(this.introspectableIn)Y.line(Y.invoke(this.introspectableIn));Y.line(`ctx.queueMorphs(${this.compiledMorphs})`)}traverseAllows=(Y,Z)=>!this.introspectableIn||this.introspectableIn.traverseAllows(Y,Z);traverseApply=(Y,Z)=>{if(this.introspectableIn)this.introspectableIn.traverseApply(Y,Z);Z.queueMorphs(this.morphs)};hasEqualMorphs(Y){return a1(this.morphs,Y.morphs,{isEqual:(Z,X)=>Z===X||g(Z,"root")&&g(X,"root")&&Z.equals(X)})}}var lY={implementation:lJ,Node:N_},oJ=(Y,Z)=>`The intersection of distinct morphs at a single path is indeterminate:
31
+ ${Y.expected}`},intersections:{intersection:(Y,Z,X)=>I_(Y.inner,Z.inner,X),...c1("intersection",(Y,Z,X)=>{if(Y.children.length===0)return Z;let{domain:_,proto:G,...$}=Y.inner,W=G??_,H=W?L0(W,Z,X):Z;return H instanceof P?H:Y?.basis?.equals(H)?Y:Y.$.node("intersection",{...$,[H.kind]:H},{prereduced:!0})})}});class T_ extends T1{basis=this.inner.domain??this.inner.proto??null;refinements=this.children.filter((Y)=>Y.isRefinement());structure=this.inner.structure;expression=rJ(this);get shallowMorphs(){return this.inner.structure?.structuralMorph?[this.inner.structure.structuralMorph]:[]}get defaultShortDescription(){return this.basis?.defaultShortDescription??"present"}innerToJsonSchema(Y){return this.children.reduce((Z,X)=>X.isBasis()?X.toJsonSchemaRecurse(Y):X.reduceJsonSchema(Z,Y),{})}traverseAllows=(Y,Z)=>this.children.every((X)=>X.traverseAllows(Y,Z));traverseApply=(Y,Z)=>{let X=Z.currentErrorCount;if(this.basis){if(this.basis.traverseApply(Y,Z),Z.currentErrorCount>X)return}if(this.refinements.length){for(let _=0;_<this.refinements.length-1;_++)if(this.refinements[_].traverseApply(Y,Z),Z.failFast&&Z.currentErrorCount>X)return;if(this.refinements.at(-1).traverseApply(Y,Z),Z.currentErrorCount>X)return}if(this.structure){if(this.structure.traverseApply(Y,Z),Z.currentErrorCount>X)return}if(this.inner.predicate){for(let _=0;_<this.inner.predicate.length-1;_++)if(this.inner.predicate[_].traverseApply(Y,Z),Z.failFast&&Z.currentErrorCount>X)return;this.inner.predicate.at(-1).traverseApply(Y,Z)}};compile(Y){if(Y.traversalKind==="Allows"){for(let Z of this.children)Y.check(Z);Y.return(!0);return}if(Y.initializeErrorCount(),this.basis){if(Y.check(this.basis),this.children.length>1)Y.returnIfFail()}if(this.refinements.length){for(let Z=0;Z<this.refinements.length-1;Z++)Y.check(this.refinements[Z]),Y.returnIfFailFast();if(Y.check(this.refinements.at(-1)),this.structure||this.inner.predicate)Y.returnIfFail()}if(this.structure){if(Y.check(this.structure),this.inner.predicate)Y.returnIfFail()}if(this.inner.predicate){for(let Z=0;Z<this.inner.predicate.length-1;Z++)Y.check(this.inner.predicate[Z]),Y.returnIfFail();Y.check(this.inner.predicate.at(-1))}}}var cY={implementation:iJ,Node:T_},rJ=(Y)=>{let Z=Y.structure?.expression||`${Y.basis&&!Y.refinements.some((X)=>X.impl.obviatesBasisExpression)?Y.basis.nestableExpression+" ":""}${Y.refinements.map((X)=>X.expression).join(" & ")}`||"unknown";if(Z==="Array == 0")Z="[]";return Z},I_=(Y,Z,X)=>{let _={},G=Y.proto??Y.domain,$=Z.proto??Z.domain,W=G?$?L0(G,$,X):G:$;if(W instanceof P)return W;if(W)_[W.kind]=W;return Z2({kind:"intersection",baseInner:_,l:X2(Y),r:X2(Z),roots:[],ctx:X})};var nJ=r({kind:"morph",hasAssociatedError:!1,keys:{in:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y)},morphs:{parse:F4,serialize:(Y)=>Y.map((Z)=>y(Z,"root")?Z.json:C0(Z))},declaredIn:{child:!1,serialize:(Y)=>Y.json},declaredOut:{child:!1,serialize:(Y)=>Y.json}},normalize:(Y)=>Y,defaults:{description:(Y)=>`a morph from ${Y.in.description} to ${Y.out?.description??"unknown"}`},intersections:{morph:(Y,Z,X)=>{if(!Y.hasEqualMorphs(Z))return R(sJ(Y.expression,Z.expression));let _=L0(Y.in,Z.in,X);if(_ instanceof P)return _;let G={morphs:Y.morphs};if(Y.declaredIn||Z.declaredIn){let $=L0(Y.in,Z.in,X);if($ instanceof P)return $.throw();else G.declaredIn=$}if(Y.declaredOut||Z.declaredOut){let $=L0(Y.out,Z.out,X);if($ instanceof P)return $.throw();else G.declaredOut=$}return _.distribute(($)=>X.$.node("morph",{...G,in:$}),X.$.parseSchema)},...c1("morph",(Y,Z,X)=>{let _=Y.inner.in?L0(Y.inner.in,Z,X):Z;return _ instanceof P?_:_.equals(Y.inner.in)?Y:X.$.node("morph",{...Y.inner,in:_})})}});class K_ extends T1{serializedMorphs=this.morphs.map(C0);compiledMorphs=`[${this.serializedMorphs}]`;lastMorph=this.inner.morphs.at(-1);lastMorphIfNode=y(this.lastMorph,"root")?this.lastMorph:void 0;introspectableIn=this.inner.in;introspectableOut=this.lastMorphIfNode?Object.assign(this.referencesById,this.lastMorphIfNode.referencesById)&&this.lastMorphIfNode.out:void 0;get shallowMorphs(){return Array.isArray(this.inner.in?.shallowMorphs)?[...this.inner.in.shallowMorphs,...this.morphs]:this.morphs}get in(){return this.declaredIn??this.inner.in?.in??N.intrinsic.unknown.internal}get out(){return this.declaredOut??this.introspectableOut??N.intrinsic.unknown.internal}declareIn(Y){return this.$.node("morph",{...this.inner,declaredIn:Y})}declareOut(Y){return this.$.node("morph",{...this.inner,declaredOut:Y})}expression=`(In: ${this.in.expression}) => ${this.lastMorphIfNode?"To":"Out"}<${this.out.expression}>`;get defaultShortDescription(){return this.in.meta.description??this.in.defaultShortDescription}innerToJsonSchema(Y){return Y.fallback.morph({code:"morph",base:this.in.toJsonSchemaRecurse(Y),out:this.introspectableOut?.toJsonSchemaRecurse(Y)??null})}compile(Y){if(Y.traversalKind==="Allows"){if(!this.introspectableIn)return;Y.return(Y.invoke(this.introspectableIn));return}if(this.introspectableIn)Y.line(Y.invoke(this.introspectableIn));Y.line(`ctx.queueMorphs(${this.compiledMorphs})`)}traverseAllows=(Y,Z)=>!this.introspectableIn||this.introspectableIn.traverseAllows(Y,Z);traverseApply=(Y,Z)=>{if(this.introspectableIn)this.introspectableIn.traverseApply(Y,Z);Z.queueMorphs(this.morphs)};hasEqualMorphs(Y){return a1(this.morphs,Y.morphs,{isEqual:(Z,X)=>Z===X||y(Z,"root")&&y(X,"root")&&Z.equals(X)})}}var lY={implementation:nJ,Node:K_},sJ=(Y,Z)=>`The intersection of distinct morphs at a single path is indeterminate:
32
32
  Left: ${Y}
33
- Right: ${Z}`;var iJ=n({kind:"proto",hasAssociatedError:!0,collapsibleKey:"proto",keys:{proto:{serialize:(Y)=>x2(Y)??I1(Y)},dateAllowsInvalid:{}},normalize:(Y)=>{let Z=typeof Y==="string"?{proto:S4[Y]}:typeof Y==="function"?L0(Y)?Y:{proto:Y}:typeof Y.proto==="string"?{...Y,proto:S4[Y.proto]}:Y;if(typeof Z.proto!=="function")w(a2.writeInvalidSchemaMessage(Z.proto));if(r4(Z,"dateAllowsInvalid")&&Z.proto!==Date)w(a2.writeBadInvalidDateMessage(Z.proto));return Z},applyConfig:(Y,Z)=>{if(Y.dateAllowsInvalid===void 0&&Y.proto===Date&&Z.dateAllowsInvalid)return{...Y,dateAllowsInvalid:!0};return Y},defaults:{description:(Y)=>Y.builtinName?LX[Y.builtinName]:`an instance of ${Y.proto.name}`,actual:(Y)=>Y instanceof Date&&Y.toString()==="Invalid Date"?"an invalid Date":v2(Y)},intersections:{proto:(Y,Z)=>Y.proto===Date&&Z.proto===Date?Y.dateAllowsInvalid?Z:Y:OY(Y.proto,Z.proto)?Y:OY(Z.proto,Y.proto)?Z:P.init("proto",Y,Z),domain:(Y,Z)=>Z.domain==="object"?Y:P.init("domain",T.intrinsic.object.internal,Z)}});class I_ extends x4{builtinName=x2(this.proto);serializedConstructor=this.json.proto;requiresInvalidDateCheck=this.proto===Date&&!this.dateAllowsInvalid;traverseAllows=this.requiresInvalidDateCheck?(Y)=>Y instanceof Date&&Y.toString()!=="Invalid Date":(Y)=>Y instanceof this.proto;compiledCondition=`data instanceof ${this.serializedConstructor}${this.requiresInvalidDateCheck?' && data.toString() !== "Invalid Date"':""}`;compiledNegation=`!(${this.compiledCondition})`;innerToJsonSchema(Y){switch(this.builtinName){case"Array":return{type:"array"};case"Date":return Y.fallback.date?.({code:"date",base:{}})??Y.fallback.proto({code:"proto",base:{},proto:this.proto});default:return Y.fallback.proto({code:"proto",base:{},proto:this.proto})}}expression=this.dateAllowsInvalid?"Date | InvalidDate":this.proto.name;get nestableExpression(){return this.dateAllowsInvalid?`(${this.expression})`:this.expression}domain="object";get defaultShortDescription(){return this.description}}var a2={implementation:iJ,Node:I_,writeBadInvalidDateMessage:(Y)=>`dateAllowsInvalid may only be specified with constructor Date (was ${Y.name})`,writeInvalidSchemaMessage:(Y)=>`instanceOf operand must be a function (was ${b0(Y)})`};var rJ=n({kind:"union",hasAssociatedError:!0,collapsibleKey:"branches",keys:{ordered:{},branches:{child:!0,parse:(Y,Z)=>{let X=[];for(let _ of Y){let G=g(_,"root")?_.branches:Z.$.parseSchema(_).branches;for(let $ of G)if($.hasKind("morph")){let W=X.findIndex((H)=>H.hasKind("morph")&&H.hasEqualMorphs($));if(W===-1)X.push($);else{let H=X[W];X[W]=Z.$.node("morph",{...H.inner,in:H.in.rawOr($.in)})}}else X.push($)}if(!Z.def.ordered)X.sort((_,G)=>_.hash<G.hash?-1:1);return X}}},normalize:(Y)=>E0(Y)?{branches:Y}:Y,reduce:(Y,Z)=>{let X=GQ(Y);if(X.length===1)return X[0];if(X.length===Y.branches.length)return;return Z.node("union",{...Y,branches:X},{prereduced:!0})},defaults:{description:(Y)=>Y.distribute((Z)=>Z.description,W2),expected:(Y)=>{let Z=QX(Y.errors,"propString"),X=Object.entries(Z).map(([_,G])=>{let $=[];for(let Q of G)m1($,Q.expected);let W=W2($),H=G.every((Q)=>Q.actual===G[0].actual)?G[0].actual:r(G[0].data);return`${_&&`${_} `}must be ${W}${H&&` (was ${H})`}`});return W2(X)},problem:(Y)=>Y.expected,message:(Y)=>Y.problem},intersections:{union:(Y,Z,X)=>{if(Y.isNever!==Z.isNever)return P.init("presence",Y,Z);let _;if(Y.ordered){if(Z.ordered)w(WQ(Y.expression,Z.expression));if(_=oY(Z.branches,Y.branches,X),_ instanceof P)_.invert()}else _=oY(Y.branches,Z.branches,X);if(_ instanceof P)return _;return X.$.parseSchema(Y.ordered||Z.ordered?{branches:_,ordered:!0}:{branches:_})},...d1("union",(Y,Z,X)=>{let _=oY(Y.branches,[Z],X);if(_ instanceof P)return _;if(_.length===1)return _[0];return X.$.parseSchema(Y.ordered?{branches:_,ordered:!0}:{branches:_})})}});class B_ extends K1{isBoolean=this.branches.length===2&&this.branches[0].hasUnit(!1)&&this.branches[1].hasUnit(!0);get branchGroups(){let Y=[],Z=-1;for(let X of this.branches){if(X.hasKind("unit")&&X.domain==="boolean"){if(Z===-1)Z=Y.length,Y.push(X);else Y[Z]=T.intrinsic.boolean;continue}Y.push(X)}return Y}unitBranches=this.branches.filter((Y)=>Y.in.hasKind("unit"));discriminant=this.discriminate();discriminantJson=this.discriminant?ZQ(this.discriminant):null;expression=this.distribute((Y)=>Y.nestableExpression,_Q);createBranchedOptimisticRootApply(){return(Y,Z)=>{let X=this.traverseOptimistic(Y);if(X!==M1)return X;let _=new f1(Y,this.$.resolvedConfig);return this.traverseApply(Y,_),_.finalize(Z)}}get shallowMorphs(){return this.branches.reduce((Y,Z)=>m1(Y,Z.shallowMorphs),[])}get defaultShortDescription(){return this.distribute((Y)=>Y.defaultShortDescription,W2)}innerToJsonSchema(Y){if(this.branchGroups.length===1&&this.branchGroups[0].equals(T.intrinsic.boolean))return{type:"boolean"};let Z=this.branchGroups.map((X)=>X.toJsonSchemaRecurse(Y));if(Z.every((X)=>Object.keys(X).length===1&&r4(X,"const")))return{enum:Z.map((X)=>X.const)};return{anyOf:Z}}traverseAllows=(Y,Z)=>this.branches.some((X)=>X.traverseAllows(Y,Z));traverseApply=(Y,Z)=>{let X=[];for(let _=0;_<this.branches.length;_++){if(Z.pushBranch(),this.branches[_].traverseApply(Y,Z),!Z.hasError()){if(this.branches[_].includesTransform)return Z.queuedMorphs.push(...Z.popBranch().queuedMorphs);return Z.popBranch()}X.push(Z.popBranch().error)}Z.errorFromNodeContext({code:"union",errors:X,meta:this.meta})};traverseOptimistic=(Y)=>{for(let Z=0;Z<this.branches.length;Z++){let X=this.branches[Z];if(X.traverseAllows(Y)){if(X.contextFreeMorph)return X.contextFreeMorph(Y);return Y}}return M1};compile(Y){if(!this.discriminant||this.unitBranches.length===this.branches.length&&this.branches.length===2)return this.compileIndiscriminable(Y);let Z=this.discriminant.optionallyChainedPropString;if(this.discriminant.kind==="domain")Z=`typeof ${Z} === "object" ? ${Z} === null ? "null" : "object" : typeof ${Z} === "function" ? "object" : typeof ${Z}`;let X=this.discriminant.cases,_=Object.keys(X),{optimistic:G}=Y;if(Y.optimistic=!1,Y.block(`switch(${Z})`,()=>{for(let J in X){let U=X[J],E=J==="default"?J:`case ${J}`;Y.line(`${E}: return ${U===!0?G?Y.data:U:G?`${Y.invoke(U)} ? ${U.contextFreeMorph?`${C0(U.contextFreeMorph)}(${Y.data})`:Y.data} : "${M1}"`:Y.invoke(U)}`)}return Y}),Y.traversalKind==="Allows"){Y.return(G?`"${M1}"`:!1);return}let $=W2(this.discriminant.kind==="domain"?_.map((J)=>{let U=J.slice(1,-1);return U==="function"?Q1.object:Q1[U]}):_),W=this.discriminant.path.map((J)=>typeof J==="symbol"?C0(J):JSON.stringify(J)),H=JSON.stringify($),Q=this.discriminant.kind==="domain"?`${eJ}[${Z}]`:`${YQ}(${Z})`;Y.line(`ctx.errorFromNodeContext({
33
+ Right: ${Z}`;var tJ=r({kind:"proto",hasAssociatedError:!0,collapsibleKey:"proto",keys:{proto:{serialize:(Y)=>x2(Y)??N1(Y)},dateAllowsInvalid:{}},normalize:(Y)=>{let Z=typeof Y==="string"?{proto:j4[Y]}:typeof Y==="function"?D0(Y)?Y:{proto:Y}:typeof Y.proto==="string"?{...Y,proto:j4[Y.proto]}:Y;if(typeof Z.proto!=="function")R(a2.writeInvalidSchemaMessage(Z.proto));if(r4(Z,"dateAllowsInvalid")&&Z.proto!==Date)R(a2.writeBadInvalidDateMessage(Z.proto));return Z},applyConfig:(Y,Z)=>{if(Y.dateAllowsInvalid===void 0&&Y.proto===Date&&Z.dateAllowsInvalid)return{...Y,dateAllowsInvalid:!0};return Y},defaults:{description:(Y)=>Y.builtinName?wX[Y.builtinName]:`an instance of ${Y.proto.name}`,actual:(Y)=>Y instanceof Date&&Y.toString()==="Invalid Date"?"an invalid Date":v2(Y)},intersections:{proto:(Y,Z)=>Y.proto===Date&&Z.proto===Date?Y.dateAllowsInvalid?Z:Y:OY(Y.proto,Z.proto)?Y:OY(Z.proto,Y.proto)?Z:P.init("proto",Y,Z),domain:(Y,Z)=>Z.domain==="object"?Y:P.init("domain",N.intrinsic.object.internal,Z)}});class B_ extends v4{builtinName=x2(this.proto);serializedConstructor=this.json.proto;requiresInvalidDateCheck=this.proto===Date&&!this.dateAllowsInvalid;traverseAllows=this.requiresInvalidDateCheck?(Y)=>Y instanceof Date&&Y.toString()!=="Invalid Date":(Y)=>Y instanceof this.proto;compiledCondition=`data instanceof ${this.serializedConstructor}${this.requiresInvalidDateCheck?' && data.toString() !== "Invalid Date"':""}`;compiledNegation=`!(${this.compiledCondition})`;innerToJsonSchema(Y){switch(this.builtinName){case"Array":return{type:"array"};case"Date":return Y.fallback.date?.({code:"date",base:{}})??Y.fallback.proto({code:"proto",base:{},proto:this.proto});default:return Y.fallback.proto({code:"proto",base:{},proto:this.proto})}}expression=this.dateAllowsInvalid?"Date | InvalidDate":this.proto.name;get nestableExpression(){return this.dateAllowsInvalid?`(${this.expression})`:this.expression}domain="object";get defaultShortDescription(){return this.description}}var a2={implementation:tJ,Node:B_,writeBadInvalidDateMessage:(Y)=>`dateAllowsInvalid may only be specified with constructor Date (was ${Y.name})`,writeInvalidSchemaMessage:(Y)=>`instanceOf operand must be a function (was ${b0(Y)})`};var aJ=r({kind:"union",hasAssociatedError:!0,collapsibleKey:"branches",keys:{ordered:{},branches:{child:!0,parse:(Y,Z)=>{let X=[];for(let _ of Y){let G=y(_,"root")?_.branches:Z.$.parseSchema(_).branches;for(let $ of G)if($.hasKind("morph")){let W=X.findIndex((H)=>H.hasKind("morph")&&H.hasEqualMorphs($));if(W===-1)X.push($);else{let H=X[W];X[W]=Z.$.node("morph",{...H.inner,in:H.in.rawOr($.in)})}}else X.push($)}if(!Z.def.ordered)X.sort((_,G)=>_.hash<G.hash?-1:1);return X}}},normalize:(Y)=>F0(Y)?{branches:Y}:Y,reduce:(Y,Z)=>{let X=JQ(Y);if(X.length===1)return X[0];if(X.length===Y.branches.length)return;return Z.node("union",{...Y,branches:X},{prereduced:!0})},defaults:{description:(Y)=>Y.distribute((Z)=>Z.description,W2),expected:(Y)=>{let Z=FX(Y.errors,"propString"),X=Object.entries(Z).map(([_,G])=>{let $=[];for(let Q of G)u1($,Q.expected);let W=W2($),H=G.every((Q)=>Q.actual===G[0].actual)?G[0].actual:i(G[0].data);return`${_&&`${_} `}must be ${W}${H&&` (was ${H})`}`});return W2(X)},problem:(Y)=>Y.expected,message:(Y)=>Y.problem},intersections:{union:(Y,Z,X)=>{if(Y.isNever!==Z.isNever)return P.init("presence",Y,Z);let _;if(Y.ordered){if(Z.ordered)R(UQ(Y.expression,Z.expression));if(_=oY(Z.branches,Y.branches,X),_ instanceof P)_.invert()}else _=oY(Y.branches,Z.branches,X);if(_ instanceof P)return _;return X.$.parseSchema(Y.ordered||Z.ordered?{branches:_,ordered:!0}:{branches:_})},...c1("union",(Y,Z,X)=>{let _=oY(Y.branches,[Z],X);if(_ instanceof P)return _;if(_.length===1)return _[0];return X.$.parseSchema(Y.ordered?{branches:_,ordered:!0}:{branches:_})})}});class j_ extends T1{isBoolean=this.branches.length===2&&this.branches[0].hasUnit(!1)&&this.branches[1].hasUnit(!0);get branchGroups(){let Y=[],Z=-1;for(let X of this.branches){if(X.hasKind("unit")&&X.domain==="boolean"){if(Z===-1)Z=Y.length,Y.push(X);else Y[Z]=N.intrinsic.boolean;continue}Y.push(X)}return Y}unitBranches=this.branches.filter((Y)=>Y.in.hasKind("unit"));discriminant=this.discriminate();discriminantJson=this.discriminant?$Q(this.discriminant):null;expression=this.distribute((Y)=>Y.nestableExpression,HQ);createBranchedOptimisticRootApply(){return(Y,Z)=>{let X=this.traverseOptimistic(Y);if(X!==M1)return X;let _=new f1(Y,this.$.resolvedConfig);return this.traverseApply(Y,_),_.finalize(Z)}}get shallowMorphs(){return this.branches.reduce((Y,Z)=>u1(Y,Z.shallowMorphs),[])}get defaultShortDescription(){return this.distribute((Y)=>Y.defaultShortDescription,W2)}innerToJsonSchema(Y){if(this.branchGroups.length===1&&this.branchGroups[0].equals(N.intrinsic.boolean))return{type:"boolean"};let Z=this.branchGroups.map((X)=>X.toJsonSchemaRecurse(Y));if(Z.every((X)=>Object.keys(X).length===1&&r4(X,"const")))return{enum:Z.map((X)=>X.const)};return{anyOf:Z}}traverseAllows=(Y,Z)=>this.branches.some((X)=>X.traverseAllows(Y,Z));traverseApply=(Y,Z)=>{let X=[];for(let _=0;_<this.branches.length;_++){if(Z.pushBranch(),this.branches[_].traverseApply(Y,Z),!Z.hasError()){if(this.branches[_].includesTransform)return Z.queuedMorphs.push(...Z.popBranch().queuedMorphs);return Z.popBranch()}X.push(Z.popBranch().error)}Z.errorFromNodeContext({code:"union",errors:X,meta:this.meta})};traverseOptimistic=(Y)=>{for(let Z=0;Z<this.branches.length;Z++){let X=this.branches[Z];if(X.traverseAllows(Y)){if(X.contextFreeMorph)return X.contextFreeMorph(Y);return Y}}return M1};compile(Y){if(!this.discriminant||this.unitBranches.length===this.branches.length&&this.branches.length===2)return this.compileIndiscriminable(Y);let Z=this.discriminant.optionallyChainedPropString;if(this.discriminant.kind==="domain")Z=`typeof ${Z} === "object" ? ${Z} === null ? "null" : "object" : typeof ${Z} === "function" ? "object" : typeof ${Z}`;let X=this.discriminant.cases,_=Object.keys(X),{optimistic:G}=Y;if(Y.optimistic=!1,Y.block(`switch(${Z})`,()=>{for(let J in X){let U=X[J],E=J==="default"?J:`case ${J}`;Y.line(`${E}: return ${U===!0?G?Y.data:U:G?`${Y.invoke(U)} ? ${U.contextFreeMorph?`${C0(U.contextFreeMorph)}(${Y.data})`:Y.data} : "${M1}"`:Y.invoke(U)}`)}return Y}),Y.traversalKind==="Allows"){Y.return(G?`"${M1}"`:!1);return}let $=W2(this.discriminant.kind==="domain"?_.map((J)=>{let U=J.slice(1,-1);return U==="function"?Q1.object:Q1[U]}):_),W=this.discriminant.path.map((J)=>typeof J==="symbol"?C0(J):JSON.stringify(J)),H=JSON.stringify($),Q=this.discriminant.kind==="domain"?`${_Q}[${Z}]`:`${GQ}(${Z})`;Y.line(`ctx.errorFromNodeContext({
34
34
  code: "predicate",
35
35
  expected: ${H},
36
36
  actual: ${Q},
37
37
  relativePath: [${W}],
38
38
  meta: ${this.compiledMeta}
39
- })`)}compileIndiscriminable(Y){if(Y.traversalKind==="Apply"){Y.const("errors","[]");for(let Z of this.branches)Y.line("ctx.pushBranch()").line(Y.invoke(Z)).if("!ctx.hasError()",()=>Y.return(Z.includesTransform?"ctx.queuedMorphs.push(...ctx.popBranch().queuedMorphs)":"ctx.popBranch()")).line("errors.push(ctx.popBranch().error)");Y.line(`ctx.errorFromNodeContext({ code: "union", errors, meta: ${this.compiledMeta} })`)}else{let{optimistic:Z}=Y;Y.optimistic=!1;for(let X of this.branches)Y.if(`${Y.invoke(X)}`,()=>Y.return(Z?X.contextFreeMorph?`${C0(X.contextFreeMorph)}(${Y.data})`:Y.data:!0));Y.return(Z?`"${M1}"`:!1)}}get nestableExpression(){return this.isBoolean?"boolean":`(${this.expression})`}discriminate(){if(this.branches.length<2||this.isCyclic)return null;if(this.unitBranches.length===this.branches.length){let G=i(this.unitBranches,($,W)=>[`${W.in.serializedValue}`,W.hasKind("morph")?W:!0]);return{kind:"unit",path:[],optionallyChainedPropString:"data",cases:G}}let Y=[];for(let G=0;G<this.branches.length-1;G++){let $=this.branches[G];for(let W=G+1;W<this.branches.length;W++){let H=this.branches[W],Q=F1($.in,H.in,$.$);if(!(Q instanceof P))continue;for(let J of Q){if(!J.kind||J.optional)continue;let U,E;if(J.kind==="domain"){let{l:L,r:R}=J;U=`"${typeof L==="string"?L:L.domain}"`,E=`"${typeof R==="string"?R:R.domain}"`}else if(J.kind==="unit")U=J.l.serializedValue,E=J.r.serializedValue;else continue;let V=Y.find((L)=>a1(L.path,J.path)&&L.kind===J.kind);if(!V)Y.push({kind:J.kind,cases:{[U]:{branchIndices:[G],condition:J.l},[E]:{branchIndices:[W],condition:J.r}},path:J.path});else{if(V.cases[U])V.cases[U].branchIndices=m1(V.cases[U].branchIndices,G);else V.cases[U]??={branchIndices:[G],condition:J.l};if(V.cases[E])V.cases[E].branchIndices=m1(V.cases[E].branchIndices,W);else V.cases[E]??={branchIndices:[W],condition:J.r}}}}}let Z=this.ordered?tJ(Y,this.branches):Y;if(!Z.length)return null;let X=nJ(Z,this),_={};for(let G in X.best.cases){let $=sJ(X,G);if($===null){_[G]=!0;continue}if($.length===this.branches.length)return null;if(this.ordered)$.sort((Q,J)=>Q.originalIndex-J.originalIndex);let W=$.map((Q)=>Q.branch),H=W.length===1?W[0]:this.$.node("union",this.ordered?{branches:W,ordered:!0}:W);Object.assign(this.referencesById,H.referencesById),_[G]=H}if(X.defaultEntries.length){let G=X.defaultEntries.map(($)=>$.branch);_.default=this.$.node("union",this.ordered?{branches:G,ordered:!0}:G,{prereduced:!0}),Object.assign(this.referencesById,_.default.referencesById)}return Object.assign(X.location,{cases:_})}}var nJ=(Y,Z)=>{let X=Y.sort(($,W)=>Object.keys(W.cases).length-Object.keys($.cases).length)[0],_={kind:X.kind,path:X.path,optionallyChainedPropString:C_(X.path)},G=Z.branches.map(($,W)=>({originalIndex:W,branch:$}));return{best:X,location:_,defaultEntries:G,node:Z}},sJ=(Y,Z)=>{let X=Y.best.cases[Z],_=aJ(X.condition,Y.location.path,Y.node.$),G=[],$=[];for(let W=0;W<Y.defaultEntries.length;W++){let H=Y.defaultEntries[W];if(X.branchIndices.includes(H.originalIndex)){let Q=T_(Y.node.branches[H.originalIndex],Y.location);if(Q===null)G=null;else G?.push({originalIndex:H.originalIndex,branch:Q})}else if(H.branch.hasKind("alias")&&_.hasKind("domain")&&_.domain==="object")G?.push(H);else{if(H.branch.in.overlaps(_)){let Q=T_(H.branch,Y.location);G?.push({originalIndex:H.originalIndex,branch:Q})}$.push(H)}}return Y.defaultEntries=$,G},tJ=(Y,Z)=>{return Y.filter((_)=>{let G=Object.values(_.cases).map(($)=>$.branchIndices);for(let $=0;$<G.length-1;$++){let W=G[$];for(let H=$+1;H<G.length;H++){let Q=G[H];for(let J of W)for(let U of Q)if(J>U){if(Z[J].overlaps(Z[U]))return!1}}}return!0})},aJ=(Y,Z,X)=>{let _=Y==="undefined"?X.node("unit",{unit:void 0}):Y==="null"?X.node("unit",{unit:null}):Y==="boolean"?X.units([!0,!1]):Y;for(let G=Z.length-1;G>=0;G--){let $=Z[G];_=X.node("intersection",typeof $==="number"?{proto:"Array",sequence:[...HX($).map((W)=>({})),_]}:{domain:"object",required:[{key:$,value:_}]})}return _},C_=(Y)=>Y.reduce((Z,X)=>Z+RY(X,!0),"data"),eJ=C0(UX),YQ=C0(r),iY={implementation:rJ,Node:B_},ZQ=(Y)=>({kind:Y.kind,path:Y.path.map((Z)=>typeof Z==="string"?Z:Z4(Z)),cases:i(Y.cases,(Z,X)=>[Z,X===!0?X:X.hasKind("union")&&X.discriminantJson?X.discriminantJson:X.json])}),XQ={delimiter:" | ",finalDelimiter:" | "},_Q=(Y)=>W2(Y,XQ),W2=(Y,Z)=>{let X=Z?.delimiter??", ",_=Z?.finalDelimiter??" or ";if(Y.length===0)return"never";if(Y.length===1)return Y[0];if(Y.length===2&&Y[0]==="false"&&Y[1]==="true"||Y[0]==="true"&&Y[1]==="false")return"boolean";let G={},$=Y.filter((H)=>G[H]?!1:G[H]=!0),W=$.pop();return`${$.join(X)}${$.length?_:""}${W}`},oY=(Y,Z,X)=>{let _=Z.map(()=>[]);for(let $=0;$<Y.length;$++){let W={};for(let H=0;H<Z.length;H++){if(_[H]===null)continue;if(Y[$].equals(Z[H])){_[H]=null,W={};break}let Q=M0(Y[$],Z[H],X);if(Q instanceof P)continue;if(Q.equals(Y[$])){_[H].push(Y[$]),W={};break}if(Q.equals(Z[H]))_[H]=null;else W[H]=Q}for(let H in W)_[H][$]=W[H]}let G=_.flatMap(($,W)=>$?.flatMap((H)=>H.branches)??Z[W]);return G.length===0?P.init("union",Y,Z):G},GQ=({branches:Y,ordered:Z})=>{if(Y.length<2)return Y;let X=Y.map(()=>!0);for(let _=0;_<Y.length;_++)for(let G=_+1;G<Y.length&&X[_]&&X[G];G++){if(Y[_].equals(Y[G])){X[G]=!1;continue}let $=F1(Y[_].in,Y[G].in,Y[0].$);if($ instanceof P)continue;if(!Z)$Q(Y[_],Y[G]);if($.equals(Y[_].in))X[_]=!!Z;else if($.equals(Y[G].in))X[G]=!1}return Y.filter((_,G)=>X[G])},$Q=(Y,Z)=>{if(!Y.includesTransform&&!Z.includesTransform)return;if(!a1(Y.shallowMorphs,Z.shallowMorphs))w(K_(Y.expression,Z.expression));if(!a1(Y.flatMorphs,Z.flatMorphs,{isEqual:(X,_)=>X.propString===_.propString&&(X.node.hasKind("morph")&&_.node.hasKind("morph")?X.node.hasEqualMorphs(_.node):X.node.hasKind("intersection")&&_.node.hasKind("intersection")?X.node.structure?.structuralMorphRef===_.node.structure?.structuralMorphRef:!1)}))w(K_(Y.expression,Z.expression))},T_=(Y,Z)=>Y.transform((X,_)=>{if(X==="domain"||X==="unit")return null;return _},{shouldTransform:(X,_)=>{let G=C_(_.path);if(!Z.optionallyChainedPropString.startsWith(G))return!1;if(X.hasKind("domain")&&X.domain==="object")return!0;if((X.hasKind("domain")||Z.kind==="unit")&&G===Z.optionallyChainedPropString)return!0;return X.children.length!==0&&X.kind!=="index"}}),K_=(Y,Z)=>`An unordered union of a type including a morph and a type with overlapping input is indeterminate:
39
+ })`)}compileIndiscriminable(Y){if(Y.traversalKind==="Apply"){Y.const("errors","[]");for(let Z of this.branches)Y.line("ctx.pushBranch()").line(Y.invoke(Z)).if("!ctx.hasError()",()=>Y.return(Z.includesTransform?"ctx.queuedMorphs.push(...ctx.popBranch().queuedMorphs)":"ctx.popBranch()")).line("errors.push(ctx.popBranch().error)");Y.line(`ctx.errorFromNodeContext({ code: "union", errors, meta: ${this.compiledMeta} })`)}else{let{optimistic:Z}=Y;Y.optimistic=!1;for(let X of this.branches)Y.if(`${Y.invoke(X)}`,()=>Y.return(Z?X.contextFreeMorph?`${C0(X.contextFreeMorph)}(${Y.data})`:Y.data:!0));Y.return(Z?`"${M1}"`:!1)}}get nestableExpression(){return this.isBoolean?"boolean":`(${this.expression})`}discriminate(){if(this.branches.length<2||this.isCyclic)return null;if(this.unitBranches.length===this.branches.length){let G=o(this.unitBranches,($,W)=>[`${W.in.serializedValue}`,W.hasKind("morph")?W:!0]);return{kind:"unit",path:[],optionallyChainedPropString:"data",cases:G}}let Y=[];for(let G=0;G<this.branches.length-1;G++){let $=this.branches[G];for(let W=G+1;W<this.branches.length;W++){let H=this.branches[W],Q=F1($.in,H.in,$.$);if(!(Q instanceof P))continue;for(let J of Q){if(!J.kind||J.optional)continue;let U,E;if(J.kind==="domain"){let{l:L,r:w}=J;U=`"${typeof L==="string"?L:L.domain}"`,E=`"${typeof w==="string"?w:w.domain}"`}else if(J.kind==="unit")U=J.l.serializedValue,E=J.r.serializedValue;else continue;let V=Y.find((L)=>a1(L.path,J.path)&&L.kind===J.kind);if(!V)Y.push({kind:J.kind,cases:{[U]:{branchIndices:[G],condition:J.l},[E]:{branchIndices:[W],condition:J.r}},path:J.path});else{if(V.cases[U])V.cases[U].branchIndices=u1(V.cases[U].branchIndices,G);else V.cases[U]??={branchIndices:[G],condition:J.l};if(V.cases[E])V.cases[E].branchIndices=u1(V.cases[E].branchIndices,W);else V.cases[E]??={branchIndices:[W],condition:J.r}}}}}let Z=this.ordered?ZQ(Y,this.branches):Y;if(!Z.length)return null;let X=eJ(Z,this),_={};for(let G in X.best.cases){let $=YQ(X,G);if($===null){_[G]=!0;continue}if($.length===this.branches.length)return null;if(this.ordered)$.sort((Q,J)=>Q.originalIndex-J.originalIndex);let W=$.map((Q)=>Q.branch),H=W.length===1?W[0]:this.$.node("union",this.ordered?{branches:W,ordered:!0}:W);Object.assign(this.referencesById,H.referencesById),_[G]=H}if(X.defaultEntries.length){let G=X.defaultEntries.map(($)=>$.branch);_.default=this.$.node("union",this.ordered?{branches:G,ordered:!0}:G,{prereduced:!0}),Object.assign(this.referencesById,_.default.referencesById)}return Object.assign(X.location,{cases:_})}}var eJ=(Y,Z)=>{let X=Y.sort(($,W)=>Object.keys(W.cases).length-Object.keys($.cases).length)[0],_={kind:X.kind,path:X.path,optionallyChainedPropString:S_(X.path)},G=Z.branches.map(($,W)=>({originalIndex:W,branch:$}));return{best:X,location:_,defaultEntries:G,node:Z}},YQ=(Y,Z)=>{let X=Y.best.cases[Z],_=XQ(X.condition,Y.location.path,Y.node.$),G=[],$=[];for(let W=0;W<Y.defaultEntries.length;W++){let H=Y.defaultEntries[W];if(X.branchIndices.includes(H.originalIndex)){let Q=C_(Y.node.branches[H.originalIndex],Y.location);if(Q===null)G=null;else G?.push({originalIndex:H.originalIndex,branch:Q})}else if(H.branch.hasKind("alias")&&_.hasKind("domain")&&_.domain==="object")G?.push(H);else{if(H.branch.in.overlaps(_)){let Q=C_(H.branch,Y.location);G?.push({originalIndex:H.originalIndex,branch:Q})}$.push(H)}}return Y.defaultEntries=$,G},ZQ=(Y,Z)=>{return Y.filter((_)=>{let G=Object.values(_.cases).map(($)=>$.branchIndices);for(let $=0;$<G.length-1;$++){let W=G[$];for(let H=$+1;H<G.length;H++){let Q=G[H];for(let J of W)for(let U of Q)if(J>U){if(Z[J].overlaps(Z[U]))return!1}}}return!0})},XQ=(Y,Z,X)=>{let _=Y==="undefined"?X.node("unit",{unit:void 0}):Y==="null"?X.node("unit",{unit:null}):Y==="boolean"?X.units([!0,!1]):Y;for(let G=Z.length-1;G>=0;G--){let $=Z[G];_=X.node("intersection",typeof $==="number"?{proto:"Array",sequence:[...UX($).map((W)=>({})),_]}:{domain:"object",required:[{key:$,value:_}]})}return _},S_=(Y)=>Y.reduce((Z,X)=>Z+RY(X,!0),"data"),_Q=C0(EX),GQ=C0(i),iY={implementation:aJ,Node:j_},$Q=(Y)=>({kind:Y.kind,path:Y.path.map((Z)=>typeof Z==="string"?Z:Z4(Z)),cases:o(Y.cases,(Z,X)=>[Z,X===!0?X:X.hasKind("union")&&X.discriminantJson?X.discriminantJson:X.json])}),WQ={delimiter:" | ",finalDelimiter:" | "},HQ=(Y)=>W2(Y,WQ),W2=(Y,Z)=>{let X=Z?.delimiter??", ",_=Z?.finalDelimiter??" or ";if(Y.length===0)return"never";if(Y.length===1)return Y[0];if(Y.length===2&&Y[0]==="false"&&Y[1]==="true"||Y[0]==="true"&&Y[1]==="false")return"boolean";let G={},$=Y.filter((H)=>G[H]?!1:G[H]=!0),W=$.pop();return`${$.join(X)}${$.length?_:""}${W}`},oY=(Y,Z,X)=>{let _=Z.map(()=>[]);for(let $=0;$<Y.length;$++){let W={};for(let H=0;H<Z.length;H++){if(_[H]===null)continue;if(Y[$].equals(Z[H])){_[H]=null,W={};break}let Q=L0(Y[$],Z[H],X);if(Q instanceof P)continue;if(Q.equals(Y[$])){_[H].push(Y[$]),W={};break}if(Q.equals(Z[H]))_[H]=null;else W[H]=Q}for(let H in W)_[H][$]=W[H]}let G=_.flatMap(($,W)=>$?.flatMap((H)=>H.branches)??Z[W]);return G.length===0?P.init("union",Y,Z):G},JQ=({branches:Y,ordered:Z})=>{if(Y.length<2)return Y;let X=Y.map(()=>!0);for(let _=0;_<Y.length;_++)for(let G=_+1;G<Y.length&&X[_]&&X[G];G++){if(Y[_].equals(Y[G])){X[G]=!1;continue}let $=F1(Y[_].in,Y[G].in,Y[0].$);if($ instanceof P)continue;if(!Z)QQ(Y[_],Y[G]);if($.equals(Y[_].in))X[_]=!!Z;else if($.equals(Y[G].in))X[G]=!1}return Y.filter((_,G)=>X[G])},QQ=(Y,Z)=>{if(!Y.includesTransform&&!Z.includesTransform)return;if(!a1(Y.shallowMorphs,Z.shallowMorphs))R(q_(Y.expression,Z.expression));if(!a1(Y.flatMorphs,Z.flatMorphs,{isEqual:(X,_)=>X.propString===_.propString&&(X.node.hasKind("morph")&&_.node.hasKind("morph")?X.node.hasEqualMorphs(_.node):X.node.hasKind("intersection")&&_.node.hasKind("intersection")?X.node.structure?.structuralMorphRef===_.node.structure?.structuralMorphRef:!1)}))R(q_(Y.expression,Z.expression))},C_=(Y,Z)=>Y.transform((X,_)=>{if(X==="domain"||X==="unit")return null;return _},{shouldTransform:(X,_)=>{let G=S_(_.path);if(!Z.optionallyChainedPropString.startsWith(G))return!1;if(X.hasKind("domain")&&X.domain==="object")return!0;if((X.hasKind("domain")||Z.kind==="unit")&&G===Z.optionallyChainedPropString)return!0;return X.children.length!==0&&X.kind!=="index"}}),q_=(Y,Z)=>`An unordered union of a type including a morph and a type with overlapping input is indeterminate:
40
40
  Left: ${Y}
41
- Right: ${Z}`,WQ=(Y,Z)=>`The intersection of two ordered unions is indeterminate:
41
+ Right: ${Z}`,UQ=(Y,Z)=>`The intersection of two ordered unions is indeterminate:
42
42
  Left: ${Y}
43
- Right: ${Z}`;var HQ=n({kind:"unit",hasAssociatedError:!0,keys:{unit:{preserveUndefined:!0,serialize:(Y)=>Y instanceof Date?Y.toISOString():I1(Y)}},normalize:(Y)=>Y,defaults:{description:(Y)=>r(Y.unit),problem:({expected:Y,actual:Z})=>`${Y===Z?`must be reference equal to ${Y} (serialized to the same value)`:`must be ${Y} (was ${Z})`}`},intersections:{unit:(Y,Z)=>P.init("unit",Y,Z),...d1("unit",(Y,Z)=>{if(Z.allows(Y.unit))return Y;let X=Z.hasKind("intersection")?Z.basis:Z;if(X){let _=X.hasKind("domain")?X:T.intrinsic.object;if(Y.domain!==_.domain){let G=Y.domain==="undefined"||Y.domain==="null"||Y.domain==="boolean"?Y.domain:T.intrinsic[Y.domain];return P.init("domain",G,_)}}return P.init("assignability",Y,Z.hasKind("intersection")?Z.children.find((_)=>!_.allows(Y.unit)):Z)})}});class j_ extends x4{compiledValue=this.json.unit;serializedValue=typeof this.unit==="string"||this.unit instanceof Date?JSON.stringify(this.compiledValue):`${this.compiledValue}`;compiledCondition=q_(this.unit,this.serializedValue);compiledNegation=q_(this.unit,this.serializedValue,"negated");expression=r(this.unit);domain=b0(this.unit);get defaultShortDescription(){return this.domain==="object"?Q1.object:this.description}innerToJsonSchema(Y){return this.unit===null?{type:"null"}:T.intrinsic.jsonPrimitive.allows(this.unit)?{const:this.unit}:Y.fallback.unit({code:"unit",base:{},unit:this.unit})}traverseAllows=this.unit instanceof Date?(Y)=>Y instanceof Date&&Y.toISOString()===this.compiledValue:Number.isNaN(this.unit)?(Y)=>Number.isNaN(Y):(Y)=>Y===this.unit}var rY={implementation:HQ,Node:j_},q_=(Y,Z,X)=>{if(Y instanceof Date){let _=`data instanceof Date && data.toISOString() === ${Z}`;return X?`!(${_})`:_}if(Number.isNaN(Y))return`${X?"!":""}Number.isNaN(data)`;return`data ${X?"!":"="}== ${Z}`};var JQ=n({kind:"index",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{signature:{child:!0,parse:(Y,Z)=>{let X=Z.$.parseSchema(Y);if(!X.extends(T.intrinsic.key))return w(UQ(X.expression));let _=X.branches.filter((G)=>G.hasKind("unit"));if(_.length)return w(QQ(_.map((G)=>r(G.unit))));return X}},value:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y)}},normalize:(Y)=>Y,defaults:{description:(Y)=>`[${Y.signature.expression}]: ${Y.value.description}`},intersections:{index:(Y,Z,X)=>{if(Y.signature.equals(Z.signature)){let _=M0(Y.value,Z.value,X),G=_ instanceof P?T.intrinsic.never.internal:_;return X.$.node("index",{signature:Y.signature,value:G})}if(Y.signature.extends(Z.signature)&&Y.value.subsumes(Z.value))return Z;if(Z.signature.extends(Y.signature)&&Z.value.subsumes(Y.value))return Y;return null}}});class S_ extends T1{impliedBasis=T.intrinsic.object.internal;expression=`[${this.signature.expression}]: ${this.value.expression}`;flatRefs=Z0(this.value.flatRefs.map((Y)=>h1([this.signature,...Y.path],Y.node)),h1([this.signature],this.value));traverseAllows=(Y,Z)=>j4(Y).every((X)=>{if(this.signature.traverseAllows(X[0],Z))return z1(X[0],()=>this.value.traverseAllows(X[1],Z),Z);return!0});traverseApply=(Y,Z)=>{for(let X of j4(Y))if(this.signature.traverseAllows(X[0],Z))z1(X[0],()=>this.value.traverseApply(X[1],Z),Z)};_transform(Y,Z){Z.path.push(this.signature);let X=super._transform(Y,Z);return Z.path.pop(),X}compile(){}}var nY={implementation:JQ,Node:S_},QQ=(Y)=>`Index keys ${Y.join(", ")} should be specified as named props.`,UQ=(Y)=>`Indexed key definition '${Y}' must be a string or symbol`;var zQ=n({kind:"required",hasAssociatedError:!0,intersectionIsOpen:!0,keys:{key:{},value:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y)}},normalize:(Y)=>Y,defaults:{description:(Y)=>`${Y.compiledKey}: ${Y.value.description}`,expected:(Y)=>Y.missingValueDescription,actual:()=>"missing"},intersections:{required:o2,optional:o2}});class P_ extends i2{expression=`${this.compiledKey}: ${this.value.expression}`;errorContext=Object.freeze({code:"required",missingValueDescription:this.value.defaultShortDescription,relativePath:[this.key],meta:this.meta});compiledErrorContext=D4(this.errorContext)}var sY={implementation:zQ,Node:P_};var FQ=n({kind:"sequence",hasAssociatedError:!1,collapsibleKey:"variadic",keys:{prefix:{child:!0,parse:(Y,Z)=>{if(Y.length===0)return;return Y.map((X)=>Z.$.parseSchema(X))}},optionals:{child:!0,parse:(Y,Z)=>{if(Y.length===0)return;return Y.map((X)=>Z.$.parseSchema(X))}},defaultables:{child:(Y)=>Y.map((Z)=>Z[0]),parse:(Y,Z)=>{if(Y.length===0)return;return Y.map((X)=>{let _=Z.$.parseSchema(X[0]);return n2(_,X[1],null),[_,X[1]]})},serialize:(Y)=>Y.map((Z)=>[Z[0].collapsibleJson,I1(Z[1])])},variadic:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y,Z)},minVariadicLength:{parse:(Y)=>Y===0?void 0:Y},postfix:{child:!0,parse:(Y,Z)=>{if(Y.length===0)return;return Y.map((X)=>Z.$.parseSchema(X))}}},normalize:(Y)=>{if(typeof Y==="string")return{variadic:Y};if("variadic"in Y||"prefix"in Y||"defaultables"in Y||"optionals"in Y||"postfix"in Y||"minVariadicLength"in Y){if(Y.postfix?.length){if(!Y.variadic)return w(DQ);if(Y.optionals?.length||Y.defaultables?.length)return w(aY)}if(Y.minVariadicLength&&!Y.variadic)return w("minVariadicLength may not be specified without a variadic element");return Y}return{variadic:Y}},reduce:(Y,Z)=>{let X=Y.minVariadicLength??0,_=Y.prefix?.slice()??[],G=Y.defaultables?.slice()??[],$=Y.optionals?.slice()??[],W=Y.postfix?.slice()??[];if(Y.variadic){while($.at(-1)?.equals(Y.variadic))$.pop();if($.length===0&&G.length===0)while(_.at(-1)?.equals(Y.variadic))_.pop(),X++;while(W[0]?.equals(Y.variadic))W.shift(),X++}else if($.length===0&&G.length===0)_.push(...W.splice(0));if(X!==Y.minVariadicLength||Y.prefix&&Y.prefix.length!==_.length)return Z.node("sequence",{...Y,prefix:_,defaultables:G,optionals:$,postfix:W,minVariadicLength:X},{prereduced:!0})},defaults:{description:(Y)=>{if(Y.isVariadicOnly)return`${Y.variadic.nestableExpression}[]`;return`[${Y.tuple.map((X)=>X.kind==="defaultables"?`${X.node.nestableExpression} = ${r(X.default)}`:X.kind==="optionals"?`${X.node.nestableExpression}?`:X.kind==="variadic"?`...${X.node.nestableExpression}[]`:X.node.expression).join(", ")}]`}},intersections:{sequence:(Y,Z,X)=>{let _=e2({l:Y.tuple,r:Z.tuple,disjoint:new P,result:[],fixedVariants:[],ctx:X}),G=_.disjoint.length===0?[_,..._.fixedVariants]:_.fixedVariants;return G.length===0?_.disjoint:G.length===1?X.$.node("sequence",v_(G[0].result)):X.$.node("union",G.map(($)=>({proto:Array,sequence:v_($.result)})))}}});class x_ extends T1{impliedBasis=T.intrinsic.Array.internal;tuple=VQ(this.inner);prefixLength=this.prefix?.length??0;defaultablesLength=this.defaultables?.length??0;optionalsLength=this.optionals?.length??0;postfixLength=this.postfix?.length??0;defaultablesAndOptionals=[];prevariadic=this.tuple.filter((Y)=>{if(Y.kind==="defaultables"||Y.kind==="optionals")return this.defaultablesAndOptionals.push(Y.node),!0;return Y.kind==="prefix"});variadicOrPostfix=t1(this.variadic&&[this.variadic],this.postfix);flatRefs=this.addFlatRefs();addFlatRefs(){return KY(this.flatRefs,this.prevariadic.flatMap((Y,Z)=>Z0(Y.node.flatRefs.map((X)=>h1([`${Z}`,...X.path],X.node)),h1([`${Z}`],Y.node)))),KY(this.flatRefs,this.variadicOrPostfix.flatMap((Y)=>Z0(Y.flatRefs.map((Z)=>h1([T.intrinsic.nonNegativeIntegerString.internal,...Z.path],Z.node)),h1([T.intrinsic.nonNegativeIntegerString.internal],Y)))),this.flatRefs}isVariadicOnly=this.prevariadic.length+this.postfixLength===0;minVariadicLength=this.inner.minVariadicLength??0;minLength=this.prefixLength+this.minVariadicLength+this.postfixLength;minLengthNode=this.minLength===0?null:this.$.node("minLength",this.minLength);maxLength=this.variadic?null:this.tuple.length;maxLengthNode=this.maxLength===null?null:this.$.node("maxLength",this.maxLength);impliedSiblings=this.minLengthNode?this.maxLengthNode?[this.minLengthNode,this.maxLengthNode]:[this.minLengthNode]:this.maxLengthNode?[this.maxLengthNode]:[];defaultValueMorphs=OQ(this);defaultValueMorphsReference=this.defaultValueMorphs.length?C0(this.defaultValueMorphs):void 0;elementAtIndex(Y,Z){if(Z<this.prevariadic.length)return this.tuple[Z];let X=Y.length-this.postfixLength;if(Z>=X)return{kind:"postfix",node:this.postfix[Z-X]};return{kind:"variadic",node:this.variadic??_0(`Unexpected attempt to access index ${Z} on ${this}`)}}traverseAllows=(Y,Z)=>{for(let X=0;X<Y.length;X++)if(!this.elementAtIndex(Y,X).node.traverseAllows(Y[X],Z))return!1;return!0};traverseApply=(Y,Z)=>{let X=0;for(;X<Y.length;X++)z1(X,()=>this.elementAtIndex(Y,X).node.traverseApply(Y[X],Z),Z)};get element(){return this.cacheGetter("element",this.$.node("union",this.children))}compile(Y){if(this.prefix)for(let[Z,X]of this.prefix.entries())Y.traverseKey(`${Z}`,`data[${Z}]`,X);for(let[Z,X]of this.defaultablesAndOptionals.entries()){let _=`${Z+this.prefixLength}`;Y.if(`${_} >= ${Y.data}.length`,()=>Y.traversalKind==="Allows"?Y.return(!0):Y.return()),Y.traverseKey(_,`data[${_}]`,X)}if(this.variadic){if(this.postfix)Y.const("firstPostfixIndex",`${Y.data}.length${this.postfix?`- ${this.postfix.length}`:""}`);if(Y.for(`i < ${this.postfix?"firstPostfixIndex":"data.length"}`,()=>Y.traverseKey("i","data[i]",this.variadic),this.prevariadic.length),this.postfix)for(let[Z,X]of this.postfix.entries()){let _=`firstPostfixIndex + ${Z}`;Y.traverseKey(_,`data[${_}]`,X)}}if(Y.traversalKind==="Allows")Y.return(!0)}_transform(Y,Z){Z.path.push(T.intrinsic.nonNegativeIntegerString.internal);let X=super._transform(Y,Z);return Z.path.pop(),X}expression=this.description;reduceJsonSchema(Y,Z){if(this.prevariadic.length)Y.prefixItems=this.prevariadic.map((X)=>{let _=X.node.toJsonSchemaRecurse(Z);if(X.kind==="defaultables"){let G=typeof X.default==="function"?X.default():X.default;_.default=T.intrinsic.jsonData.allows(G)?G:Z.fallback.defaultValue({code:"defaultValue",base:_,value:G})}return _});if(this.minLength)Y.minItems=this.minLength;if(this.variadic){let X=Object.assign(Y,{items:this.variadic.toJsonSchemaRecurse(Z)});if(this.maxLength)X.maxItems=this.maxLength;if(this.postfix){let _=this.postfix.map((G)=>G.toJsonSchemaRecurse(Z));Y=Z.fallback.arrayPostfix({code:"arrayPostfix",base:X,elements:_})}}else Y.items=!1,delete Y.maxItems;return Y}}var EQ={},OQ=(Y)=>{if(!Y.defaultables)return[];let Z=[],X="[",_=Y.prefixLength+Y.defaultablesLength-1;for(let G=Y.prefixLength;G<=_;G++){let[$,W]=Y.defaultables[G-Y.prefixLength];Z.push(dY(G,$,W)),X+=`${G}: ${$.id} = ${I1(W)}, `}return X+="]",EQ[X]??=Z},tY={implementation:FQ,Node:x_},VQ=(Y)=>{let Z=[];if(Y.prefix)for(let X of Y.prefix)Z.push({kind:"prefix",node:X});if(Y.defaultables)for(let[X,_]of Y.defaultables)Z.push({kind:"defaultables",node:X,default:_});if(Y.optionals)for(let X of Y.optionals)Z.push({kind:"optionals",node:X});if(Y.variadic)Z.push({kind:"variadic",node:Y.variadic});if(Y.postfix)for(let X of Y.postfix)Z.push({kind:"postfix",node:X});return Z},v_=(Y)=>Y.reduce((Z,X)=>{if(X.kind==="variadic")Z.variadic=X.node;else if(X.kind==="defaultables")Z.defaultables=Z0(Z.defaultables,[[X.node,X.default]]);else Z[X.kind]=Z0(Z[X.kind],X.node);return Z},{}),aY="A postfix required element cannot follow an optional or defaultable element",DQ="A postfix element requires a variadic element",e2=(Y)=>{let[Z,...X]=Y.l,[_,...G]=Y.r;if(!Z||!_)return Y;let $=X.at(-1)?.kind==="postfix",W=G.at(-1)?.kind==="postfix",H=Z.kind==="prefix"||_.kind==="prefix"?"prefix":Z.kind==="postfix"||_.kind==="postfix"?"postfix":Z.kind==="variadic"&&_.kind==="variadic"?"variadic":$||W?"prefix":Z.kind==="defaultables"||_.kind==="defaultables"?"defaultables":"optionals";if(Z.kind==="prefix"&&_.kind==="variadic"&&W){let E=e2({...Y,fixedVariants:[],r:G.map((V)=>({...V,kind:"prefix"}))});if(E.disjoint.length===0)Y.fixedVariants.push(E)}else if(_.kind==="prefix"&&Z.kind==="variadic"&&$){let E=e2({...Y,fixedVariants:[],l:X.map((V)=>({...V,kind:"prefix"}))});if(E.disjoint.length===0)Y.fixedVariants.push(E)}let Q=M0(Z.node,_.node,Y.ctx);if(Q instanceof P)if(H==="prefix"||H==="postfix")Y.disjoint.push(...Q.withPrefixKey(H==="prefix"?Y.result.length:`-${X.length+1}`,"required")),Y.result=[...Y.result,{kind:H,node:T.intrinsic.never.internal}];else if(H==="optionals"||H==="defaultables")return Y;else return e2({...Y,fixedVariants:[],l:X.map((E)=>({...E,kind:"prefix"})),r:X.map((E)=>({...E,kind:"prefix"}))});else if(H==="defaultables"){if(Z.kind==="defaultables"&&_.kind==="defaultables"&&Z.default!==_.default)w(uY(Z.default,_.default));Y.result=[...Y.result,{kind:H,node:Q,default:Z.kind==="defaultables"?Z.default:_.kind==="defaultables"?_.default:_0(`Unexpected defaultable intersection from ${Z.kind} and ${_.kind} elements.`)}]}else Y.result=[...Y.result,{kind:H,node:Q}];let J=Y.l.length,U=Y.r.length;if(Z.kind!=="variadic"||J>=U&&(_.kind==="variadic"||U===1))Y.l=X;if(_.kind!=="variadic"||U>=J&&(Z.kind==="variadic"||J===1))Y.r=G;return e2(Y)};var k_=(Y)=>(Z)=>{if(Z.props.length||Z.index){let X=Z.index?.map((G)=>G[Y])??[];for(let G of Z.props)X.push(G[Y]);if(Z.undeclared)X.push(`+ (undeclared): ${Z.undeclared}`);let _=`{ ${X.join(", ")} }`;return Z.sequence?`${_} & ${Z.sequence.description}`:_}return Z.sequence?.description??"{}"},LQ=k_("description"),MQ=k_("expression"),f_=(Y,Z,X)=>{let _=Y.required?"required":"optional";if(!Z.signature.allows(Y.key))return null;let G=F1(Y.value,Z.value,X);if(G instanceof P)return _==="optional"?X.node("optional",{key:Y.key,value:T.intrinsic.never.internal}):G.withPrefixKey(Y.key,Y.kind);return null},AQ=n({kind:"structure",hasAssociatedError:!1,normalize:(Y)=>Y,applyConfig:(Y,Z)=>{if(!Y.undeclared&&Z.onUndeclaredKey!=="ignore")return{...Y,undeclared:Z.onUndeclaredKey};return Y},keys:{required:{child:!0,parse:t0("required"),reduceIo:(Y,Z,X)=>{Z.required=Z0(Z.required,X.map((_)=>_[Y]));return}},optional:{child:!0,parse:t0("optional"),reduceIo:(Y,Z,X)=>{if(Y==="in"){Z.optional=X.map((_)=>_.in);return}for(let _ of X)Z[_.outProp.kind]=Z0(Z[_.outProp.kind],_.outProp.out)}},index:{child:!0,parse:t0("index")},sequence:{child:!0,parse:t0("sequence")},undeclared:{parse:(Y)=>Y==="ignore"?void 0:Y,reduceIo:(Y,Z,X)=>{if(X!=="delete")return;if(Y==="in")delete Z.undeclared;else Z.undeclared="reject"}}},defaults:{description:LQ},intersections:{structure:(Y,Z,X)=>{let _={...Y.inner},G={...Z.inner},$=new P;if(Y.undeclared){let Q=Y.keyof();for(let J of Z.requiredKeys)if(!Q.allows(J))$.add("presence",T.intrinsic.never.internal,Z.propsByKey[J].value,{path:[J]});if(G.optional)G.optional=G.optional.filter((J)=>Q.allows(J.key));if(G.index)G.index=G.index.flatMap((J)=>{if(J.signature.extends(Q))return J;let U=F1(Q,J.signature,X.$);if(U instanceof P)return[];let E=a8(U,J.value,X.$);if(E.required)G.required=t1(G.required,E.required);if(E.optional)G.optional=t1(G.optional,E.optional);return E.index??[]})}if(Z.undeclared){let Q=Z.keyof();for(let J of Y.requiredKeys)if(!Q.allows(J))$.add("presence",Y.propsByKey[J].value,T.intrinsic.never.internal,{path:[J]});if(_.optional)_.optional=_.optional.filter((J)=>Q.allows(J.key));if(_.index)_.index=_.index.flatMap((J)=>{if(J.signature.extends(Q))return J;let U=F1(Q,J.signature,X.$);if(U instanceof P)return[];let E=a8(U,J.value,X.$);if(E.required)_.required=t1(_.required,E.required);if(E.optional)_.optional=t1(_.optional,E.optional);return E.index??[]})}let W={};if(Y.undeclared||Z.undeclared)W.undeclared=Y.undeclared==="reject"||Z.undeclared==="reject"?"reject":"delete";let H=Z2({kind:"structure",baseInner:W,l:X2(_),r:X2(G),roots:[],ctx:X});if(H instanceof P)$.push(...H);if($.length)return $;return H}},reduce:(Y,Z)=>{if(Y.index){if(!(Y.required||Y.optional))return;let X=!1,_=Y.required??[],G=Y.optional??[],$=[...G];for(let W of Y.index){for(let H of _){let Q=f_(H,W,Z);if(Q instanceof P)return Q}for(let[H,Q]of G.entries()){let J=f_(Q,W,Z);if(J instanceof P)return J;if(J===null)continue;$[H]=J,X=!0}}if(X)return Z.node("structure",{...Y,optional:$},{prereduced:!0})}}});class b_ extends T1{impliedBasis=T.intrinsic.object.internal;impliedSiblings=this.children.flatMap((Y)=>Y.impliedSiblings??[]);props=t1(this.required,this.optional);propsByKey=i(this.props,(Y,Z)=>[Z.key,Z]);propsByKeyReference=C0(this.propsByKey);expression=MQ(this);requiredKeys=this.required?.map((Y)=>Y.key)??[];optionalKeys=this.optional?.map((Y)=>Y.key)??[];literalKeys=[...this.requiredKeys,...this.optionalKeys];_keyof;keyof(){if(this._keyof)return this._keyof;let Y=this.$.units(this.literalKeys).branches;if(this.index)for(let{signature:Z}of this.index)Y=Y.concat(Z.branches);return this._keyof=this.$.node("union",Y)}map(Y){return this.$.node("structure",this.props.flatMap(Y).reduce((Z,X)=>{let _=this.propsByKey[X.key];if(L0(X)){if(X.kind!=="required"&&X.kind!=="optional")return w(`Map result must have kind "required" or "optional" (was ${X.kind})`);return Z[X.kind]=Z0(Z[X.kind],X),Z}let G=X.kind??_?.kind??"required",$=i(X,(W,H)=>(W in r2.implementation.keys)?[W,H]:[]);return Z[G]=Z0(Z[G],this.$.node(G,$)),Z},{}))}assertHasKeys(Y){let Z=Y.filter((X)=>!s2(X,this.keyof()));if(Z.length)return w(h_(this.expression,Z))}get(Y,...Z){let X,_=!1,G=IQ(Y);if((typeof G==="string"||typeof G==="symbol")&&this.propsByKey[G])X=this.propsByKey[G].value,_=this.propsByKey[G].required;if(this.index){for(let W of this.index)if(s2(G,W.signature))X=X?.and(W.value)??W.value}if(this.sequence&&s2(G,T.intrinsic.nonNegativeIntegerString))if(g(G,"root")){if(this.sequence.variadic)X=X?.and(this.sequence.element)??this.sequence.element}else{let W=Number.parseInt(G);if(W<this.sequence.prevariadic.length){let H=this.sequence.prevariadic[W].node;X=X?.and(H)??H,_||=W<this.sequence.prefixLength}else if(this.sequence.variadic){let H=this.$.node("union",this.sequence.variadicOrPostfix);X=X?.and(H)??H}}if(!X){if(this.sequence?.variadic&&g(G,"root")&&G.extends(T.intrinsic.number))return w(TQ(G.expression,this.sequence.expression));return w(h_(this.expression,[G]))}let $=X.get(...Z);return _?$:$.or(T.intrinsic.undefined)}pick(...Y){return this.assertHasKeys(Y),this.$.node("structure",this.filterKeys("pick",Y))}omit(...Y){return this.assertHasKeys(Y),this.$.node("structure",this.filterKeys("omit",Y))}optionalize(){let{required:Y,...Z}=this.inner;return this.$.node("structure",{...Z,optional:this.props.map((X)=>X.hasKind("required")?this.$.node("optional",X.inner):X)})}require(){let{optional:Y,...Z}=this.inner;return this.$.node("structure",{...Z,required:this.props.map((X)=>X.hasKind("optional")?{key:X.key,value:X.value}:X)})}merge(Y){let Z=this.filterKeys("omit",[Y.keyof()]);if(Y.required)Z.required=Z0(Z.required,Y.required);if(Y.optional)Z.optional=Z0(Z.optional,Y.optional);if(Y.index)Z.index=Z0(Z.index,Y.index);if(Y.sequence)Z.sequence=Y.sequence;if(Y.undeclared)Z.undeclared=Y.undeclared;else delete Z.undeclared;return this.$.node("structure",Z)}filterKeys(Y,Z){let X=m8(this.inner),_=(G)=>{let $=Z.some((W)=>s2(G,W));return Y==="pick"?$:!$};if(X.required)X.required=X.required.filter((G)=>_(G.key));if(X.optional)X.optional=X.optional.filter((G)=>_(G.key));if(X.index)X.index=X.index.filter((G)=>_(G.signature));return X}traverseAllows=(Y,Z)=>this._traverse("Allows",Y,Z);traverseApply=(Y,Z)=>this._traverse("Apply",Y,Z);_traverse=(Y,Z,X)=>{let _=X?.currentErrorCount??0;for(let G=0;G<this.props.length;G++)if(Y==="Allows"){if(!this.props[G].traverseAllows(Z,X))return!1}else if(this.props[G].traverseApply(Z,X),X.failFast&&X.currentErrorCount>_)return!1;if(this.sequence){if(Y==="Allows"){if(!this.sequence.traverseAllows(Z,X))return!1}else if(this.sequence.traverseApply(Z,X),X.failFast&&X.currentErrorCount>_)return!1}if(this.index||this.undeclared==="reject"){let G=Object.keys(Z);G.push(...Object.getOwnPropertySymbols(Z));for(let $=0;$<G.length;$++){let W=G[$];if(this.index){for(let H of this.index)if(H.signature.traverseAllows(W,X)){if(Y==="Allows"){if(!z1(W,()=>H.value.traverseAllows(Z[W],X),X))return!1}else if(z1(W,()=>H.value.traverseApply(Z[W],X),X),X.failFast&&X.currentErrorCount>_)return!1}}if(this.undeclared==="reject"&&!this.declaresKey(W)){if(Y==="Allows")return!1;if(X.errorFromNodeContext({code:"predicate",expected:"removed",actual:"",relativePath:[W],meta:this.meta}),X.failFast)return!1}}}if(this.structuralMorph&&X&&!X.hasError())X.queueMorphs([this.structuralMorph]);return!0};get defaultable(){return this.cacheGetter("defaultable",this.optional?.filter((Y)=>Y.hasDefault())??[])}declaresKey=(Y)=>(Y in this.propsByKey)||this.index?.some((Z)=>Z.signature.allows(Y))||this.sequence!==void 0&&T.intrinsic.nonNegativeIntegerString.allows(Y);_compileDeclaresKey(Y){let Z=[];if(this.props.length)Z.push(`k in ${this.propsByKeyReference}`);if(this.index)for(let X of this.index)Z.push(Y.invoke(X.signature,{kind:"Allows",arg:"k"}));if(this.sequence)Z.push("$ark.intrinsic.nonNegativeIntegerString.allows(k)");return Z.join(" || ")||"false"}get structuralMorph(){return this.cacheGetter("structuralMorph",RQ(this))}structuralMorphRef=this.structuralMorph&&C0(this.structuralMorph);compile(Y){if(Y.traversalKind==="Apply")Y.initializeErrorCount();for(let Z of this.props)if(Y.check(Z),Y.traversalKind==="Apply")Y.returnIfFailFast();if(this.sequence){if(Y.check(this.sequence),Y.traversalKind==="Apply")Y.returnIfFailFast()}if(this.index||this.undeclared==="reject")Y.const("keys","Object.keys(data)"),Y.line("keys.push(...Object.getOwnPropertySymbols(data))"),Y.for("i < keys.length",()=>this.compileExhaustiveEntry(Y));if(Y.traversalKind==="Allows")return Y.return(!0);if(this.structuralMorphRef)Y.if("ctx && !ctx.hasError()",()=>{return Y.line("ctx.queueMorphs(["),NQ(Y,this),Y.line("])")})}compileExhaustiveEntry(Y){if(Y.const("k","keys[i]"),this.index)for(let Z of this.index)Y.if(`${Y.invoke(Z.signature,{arg:"k",kind:"Allows"})}`,()=>Y.traverseKey("k","data[k]",Z.value));if(this.undeclared==="reject")Y.if(`!(${this._compileDeclaresKey(Y)})`,()=>{if(Y.traversalKind==="Allows")return Y.return(!1);return Y.line(`ctx.errorFromNodeContext({ code: "predicate", expected: "removed", actual: "", relativePath: [k], meta: ${this.compiledMeta} })`).if("ctx.failFast",()=>Y.return())});return Y}reduceJsonSchema(Y,Z){switch(Y.type){case"object":return this.reduceObjectJsonSchema(Y,Z);case"array":let X=this.sequence?.reduceJsonSchema(Y,Z)??Y;if(this.props.length||this.index)return Z.fallback.arrayObject({code:"arrayObject",base:X,object:this.reduceObjectJsonSchema({type:"object"},Z)});return X;default:return N0.throwInternalOperandError("structure",Y)}}reduceObjectJsonSchema(Y,Z){if(this.props.length){Y.properties={};for(let X of this.props){let _=X.value.toJsonSchemaRecurse(Z);if(typeof X.key==="symbol"){Z.fallback.symbolKey({code:"symbolKey",base:Y,key:X.key,value:_,optional:X.optional});continue}if(X.hasDefault()){let G=typeof X.default==="function"?X.default():X.default;_.default=T.intrinsic.jsonData.allows(G)?G:Z.fallback.defaultValue({code:"defaultValue",base:_,value:G})}Y.properties[X.key]=_}if(this.requiredKeys.length&&Y.properties)Y.required=this.requiredKeys.filter((X)=>typeof X==="string"&&(X in Y.properties))}if(this.index)for(let X of this.index){let _=X.value.toJsonSchemaRecurse(Z);if(X.signature.equals(T.intrinsic.string)){Y.additionalProperties=_;continue}for(let G of X.signature.branches){if(!G.extends(T.intrinsic.string)){Y=Z.fallback.symbolKey({code:"symbolKey",base:Y,key:null,value:_,optional:!1});continue}let $={type:"string"};if(G.hasKind("morph"))$=Z.fallback.morph({code:"morph",base:G.in.toJsonSchemaRecurse(Z),out:G.out.toJsonSchemaRecurse(Z)});if(!G.hasKind("intersection"))return _0(`Unexpected index branch kind ${G.kind}.`);let{pattern:W}=G.inner;if(W){let H=Object.assign($,{pattern:W[0].rule});for(let Q=1;Q<W.length;Q++)$=Z.fallback.patternIntersection({code:"patternIntersection",base:H,pattern:W[Q].rule});Y.patternProperties??={},Y.patternProperties[H.pattern]=_}}}if(this.undeclared&&!Y.additionalProperties)Y.additionalProperties=!1;return Y}}var eY={},wQ=(Y)=>{let Z="";for(let X=0;X<Y.defaultable.length;X++)Z+=Y.defaultable[X].defaultValueMorphRef;if(Y.sequence?.defaultValueMorphsReference)Z+=Y.sequence?.defaultValueMorphsReference;if(Y.undeclared==="delete"){if(Z+="delete !(",Y.required)for(let X of Y.required)Z+=X.compiledKey+" | ";if(Y.optional)for(let X of Y.optional)Z+=X.compiledKey+" | ";if(Y.index)for(let X of Y.index)Z+=X.signature.id+" | ";if(Y.sequence)if(Y.sequence.maxLength===null)Z+=d.nonNegativeIntegerString.id;else for(let X=0;X<Y.sequence.tuple.length;X++)Z+=X+" | ";Z+=")"}return Z},RQ=(Y)=>{let Z=wQ(Y);if(!Z)return;if(eY[Z])return eY[Z];let X=(_,G)=>{for(let $=0;$<Y.defaultable.length;$++)if(!(Y.defaultable[$].key in _))Y.defaultable[$].defaultValueMorph(_,G);if(Y.sequence?.defaultables)for(let $=_.length-Y.sequence.prefixLength;$<Y.sequence.defaultables.length;$++)Y.sequence.defaultValueMorphs[$](_,G);if(Y.undeclared==="delete"){for(let $ in _)if(!Y.declaresKey($))delete _[$]}return _};return eY[Z]=X},NQ=(Y,Z)=>{let _=`(data${Z.defaultable.some((G)=>G.defaultValueMorph.length===2)||Z.sequence?.defaultValueMorphs.some((G)=>G.length===2)?", ctx":""})`;return Y.block(`${_} => `,(G)=>{for(let $=0;$<Z.defaultable.length;$++){let{serializedKey:W,defaultValueMorphRef:H}=Z.defaultable[$];G.if(`!(${W} in data)`,(Q)=>Q.line(`${H}${_}`))}if(Z.sequence?.defaultables)G.for(`i < ${Z.sequence.defaultables.length}`,($)=>$.set("data[i]",5),`data.length - ${Z.sequence.prefixLength}`);if(Z.undeclared==="delete")G.forIn("data",($)=>$.if(`!(${Z._compileDeclaresKey($)})`,(W)=>W.line("delete data[k]")));return G.return("data")})},YZ={implementation:AQ,Node:b_},IQ=(Y)=>{if(g(Y,"root")&&Y.hasKind("unit"))Y=Y.unit;if(typeof Y==="number")Y=`${Y}`;return Y},TQ=(Y,Z)=>`${Y} is not allowed as an array index on ${Z}. Use the 'nonNegativeIntegerString' keyword instead.`,a8=(Y,Z,X)=>{let[_,G]=WX(Y.branches,(W)=>W.hasKind("unit"));if(!_.length)return{index:X.node("index",{signature:Y,value:Z})};let $={};for(let W of _){let H=X.node("required",{key:W.unit,value:Z});$[H.kind]=Z0($[H.kind],H)}if(G.length)$.index=X.node("index",{signature:G,value:Z});return $},KQ=(Y)=>g(Y,"root")?Y.expression:r(Y),h_=(Y,Z)=>`Key${Z.length===1?"":"s"} ${Z.map(KQ).join(", ")} ${Z.length===1?"does":"do"} not exist on ${Y}`;var G2={...H_,alias:t2.implementation,domain:t8.implementation,unit:rY.implementation,proto:a2.implementation,union:iY.implementation,morph:lY.implementation,intersection:cY.implementation,divisor:SY.implementation,pattern:yY.implementation,predicate:jY.implementation,required:sY.implementation,optional:r2.implementation,index:nY.implementation,sequence:tY.implementation,structure:YZ.implementation};T.defaultConfig=VX(Object.assign(i(G2,(Y,Z)=>[Y,Z.defaults]),{jitless:RX(),clone:MX,onUndeclaredKey:"ignore",exactOptionalPropertyTypes:!0,numberAllowsNaN:!1,dateAllowsInvalid:!1,onFail:null,keywords:{},toJsonSchema:N0.defaultConfig}));T.resolvedConfig=m2(T.defaultConfig,T.config);var E_={...J_,alias:t2.Node,domain:t8.Node,unit:rY.Node,proto:a2.Node,union:iY.Node,morph:lY.Node,intersection:cY.Node,divisor:SY.Node,pattern:yY.Node,predicate:jY.Node,required:sY.Node,optional:r2.Node,index:nY.Node,sequence:tY.Node,structure:YZ.Node};class H2 extends UY{get[Z1](){return"module"}}var ZZ=(Y,Z)=>new H2(i(Y,(X,_)=>[X,g(_,"module")?ZZ(_,Z):Z.bindReference(_)]));var BQ=(Y)=>E0(Y)?Y:("branches"in Y)&&E0(Y.branches)?Y.branches:void 0,CQ=(Y,Z)=>w(`Node of kind ${Z} is not valid as a ${Y} definition`),y_=(Y)=>`#${Y} duplicates public alias ${Y}`,XZ={};T.ambient??={};var g_,m_="function $",qQ=(Y)=>u_(Y,d_(Y)),u_=(Y,Z)=>{let X=Z.write(m_,4),_=Z.compile()();for(let G of Y){if(G.precompilation)continue;if(G.traverseAllows=_[`${G.id}Allows`].bind(_),G.isRoot()&&!G.allowsRequiresContext)G.allows=G.traverseAllows;if(G.traverseApply=_[`${G.id}Apply`].bind(_),_[`${G.id}Optimistic`])G.traverseOptimistic=_[`${G.id}Optimistic`].bind(_);G.precompilation=X}},d_=(Y)=>new p8().return(Y.reduce((Z,X)=>{let _=new p2({kind:"Allows"}).indent();X.compile(_);let G=_.write(`${X.id}Allows`),$=new p2({kind:"Apply"}).indent();X.compile($);let W=$.write(`${X.id}Apply`),H=`${Z}${G},
43
+ Right: ${Z}`;var zQ=r({kind:"unit",hasAssociatedError:!0,keys:{unit:{preserveUndefined:!0,serialize:(Y)=>Y instanceof Date?Y.toISOString():N1(Y)}},normalize:(Y)=>Y,defaults:{description:(Y)=>i(Y.unit),problem:({expected:Y,actual:Z})=>`${Y===Z?`must be reference equal to ${Y} (serialized to the same value)`:`must be ${Y} (was ${Z})`}`},intersections:{unit:(Y,Z)=>P.init("unit",Y,Z),...c1("unit",(Y,Z)=>{if(Z.allows(Y.unit))return Y;let X=Z.hasKind("intersection")?Z.basis:Z;if(X){let _=X.hasKind("domain")?X:N.intrinsic.object;if(Y.domain!==_.domain){let G=Y.domain==="undefined"||Y.domain==="null"||Y.domain==="boolean"?Y.domain:N.intrinsic[Y.domain];return P.init("domain",G,_)}}return P.init("assignability",Y,Z.hasKind("intersection")?Z.children.find((_)=>!_.allows(Y.unit)):Z)})}});class v_ extends v4{compiledValue=this.json.unit;serializedValue=typeof this.unit==="string"||this.unit instanceof Date?JSON.stringify(this.compiledValue):`${this.compiledValue}`;compiledCondition=P_(this.unit,this.serializedValue);compiledNegation=P_(this.unit,this.serializedValue,"negated");expression=i(this.unit);domain=b0(this.unit);get defaultShortDescription(){return this.domain==="object"?Q1.object:this.description}innerToJsonSchema(Y){return this.unit===null?{type:"null"}:N.intrinsic.jsonPrimitive.allows(this.unit)?{const:this.unit}:Y.fallback.unit({code:"unit",base:{},unit:this.unit})}traverseAllows=this.unit instanceof Date?(Y)=>Y instanceof Date&&Y.toISOString()===this.compiledValue:Number.isNaN(this.unit)?(Y)=>Number.isNaN(Y):(Y)=>Y===this.unit}var rY={implementation:zQ,Node:v_},P_=(Y,Z,X)=>{if(Y instanceof Date){let _=`data instanceof Date && data.toISOString() === ${Z}`;return X?`!(${_})`:_}if(Number.isNaN(Y))return`${X?"!":""}Number.isNaN(data)`;return`data ${X?"!":"="}== ${Z}`};var FQ=r({kind:"index",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{signature:{child:!0,parse:(Y,Z)=>{let X=Z.$.parseSchema(Y);if(!X.extends(N.intrinsic.key))return R(OQ(X.expression));let _=X.branches.filter((G)=>G.hasKind("unit"));if(_.length)return R(EQ(_.map((G)=>i(G.unit))));return X}},value:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y)}},normalize:(Y)=>Y,defaults:{description:(Y)=>`[${Y.signature.expression}]: ${Y.value.description}`},intersections:{index:(Y,Z,X)=>{if(Y.signature.equals(Z.signature)){let _=L0(Y.value,Z.value,X),G=_ instanceof P?N.intrinsic.never.internal:_;return X.$.node("index",{signature:Y.signature,value:G})}if(Y.signature.extends(Z.signature)&&Y.value.subsumes(Z.value))return Z;if(Z.signature.extends(Y.signature)&&Z.value.subsumes(Y.value))return Y;return null}}});class x_ extends I1{impliedBasis=N.intrinsic.object.internal;expression=`[${this.signature.expression}]: ${this.value.expression}`;flatRefs=Z0(this.value.flatRefs.map((Y)=>h1([this.signature,...Y.path],Y.node)),h1([this.signature],this.value));traverseAllows=(Y,Z)=>q4(Y).every((X)=>{if(this.signature.traverseAllows(X[0],Z))return z1(X[0],()=>this.value.traverseAllows(X[1],Z),Z);return!0});traverseApply=(Y,Z)=>{for(let X of q4(Y))if(this.signature.traverseAllows(X[0],Z))z1(X[0],()=>this.value.traverseApply(X[1],Z),Z)};_transform(Y,Z){Z.path.push(this.signature);let X=super._transform(Y,Z);return Z.path.pop(),X}compile(){}}var nY={implementation:FQ,Node:x_},EQ=(Y)=>`Index keys ${Y.join(", ")} should be specified as named props.`,OQ=(Y)=>`Indexed key definition '${Y}' must be a string or symbol`;var VQ=r({kind:"required",hasAssociatedError:!0,intersectionIsOpen:!0,keys:{key:{},value:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y)}},normalize:(Y)=>Y,defaults:{description:(Y)=>`${Y.compiledKey}: ${Y.value.description}`,expected:(Y)=>Y.missingValueDescription,actual:()=>"missing"},intersections:{required:o2,optional:o2}});class f_ extends i2{expression=`${this.compiledKey}: ${this.value.expression}`;errorContext=Object.freeze({code:"required",missingValueDescription:this.value.defaultShortDescription,relativePath:[this.key],meta:this.meta});compiledErrorContext=D4(this.errorContext)}var sY={implementation:VQ,Node:f_};var DQ=r({kind:"sequence",hasAssociatedError:!1,collapsibleKey:"variadic",keys:{prefix:{child:!0,parse:(Y,Z)=>{if(Y.length===0)return;return Y.map((X)=>Z.$.parseSchema(X))}},optionals:{child:!0,parse:(Y,Z)=>{if(Y.length===0)return;return Y.map((X)=>Z.$.parseSchema(X))}},defaultables:{child:(Y)=>Y.map((Z)=>Z[0]),parse:(Y,Z)=>{if(Y.length===0)return;return Y.map((X)=>{let _=Z.$.parseSchema(X[0]);return n2(_,X[1],null),[_,X[1]]})},serialize:(Y)=>Y.map((Z)=>[Z[0].collapsibleJson,N1(Z[1])])},variadic:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y,Z)},minVariadicLength:{parse:(Y)=>Y===0?void 0:Y},postfix:{child:!0,parse:(Y,Z)=>{if(Y.length===0)return;return Y.map((X)=>Z.$.parseSchema(X))}}},normalize:(Y)=>{if(typeof Y==="string")return{variadic:Y};if("variadic"in Y||"prefix"in Y||"defaultables"in Y||"optionals"in Y||"postfix"in Y||"minVariadicLength"in Y){if(Y.postfix?.length){if(!Y.variadic)return R(wQ);if(Y.optionals?.length||Y.defaultables?.length)return R(aY)}if(Y.minVariadicLength&&!Y.variadic)return R("minVariadicLength may not be specified without a variadic element");return Y}return{variadic:Y}},reduce:(Y,Z)=>{let X=Y.minVariadicLength??0,_=Y.prefix?.slice()??[],G=Y.defaultables?.slice()??[],$=Y.optionals?.slice()??[],W=Y.postfix?.slice()??[];if(Y.variadic){while($.at(-1)?.equals(Y.variadic))$.pop();if($.length===0&&G.length===0)while(_.at(-1)?.equals(Y.variadic))_.pop(),X++;while(W[0]?.equals(Y.variadic))W.shift(),X++}else if($.length===0&&G.length===0)_.push(...W.splice(0));if(X!==Y.minVariadicLength||Y.prefix&&Y.prefix.length!==_.length)return Z.node("sequence",{...Y,prefix:_,defaultables:G,optionals:$,postfix:W,minVariadicLength:X},{prereduced:!0})},defaults:{description:(Y)=>{if(Y.isVariadicOnly)return`${Y.variadic.nestableExpression}[]`;return`[${Y.tuple.map((X)=>X.kind==="defaultables"?`${X.node.nestableExpression} = ${i(X.default)}`:X.kind==="optionals"?`${X.node.nestableExpression}?`:X.kind==="variadic"?`...${X.node.nestableExpression}[]`:X.node.expression).join(", ")}]`}},intersections:{sequence:(Y,Z,X)=>{let _=e2({l:Y.tuple,r:Z.tuple,disjoint:new P,result:[],fixedVariants:[],ctx:X}),G=_.disjoint.length===0?[_,..._.fixedVariants]:_.fixedVariants;return G.length===0?_.disjoint:G.length===1?X.$.node("sequence",h_(G[0].result)):X.$.node("union",G.map(($)=>({proto:Array,sequence:h_($.result)})))}}});class k_ extends I1{impliedBasis=N.intrinsic.Array.internal;tuple=AQ(this.inner);prefixLength=this.prefix?.length??0;defaultablesLength=this.defaultables?.length??0;optionalsLength=this.optionals?.length??0;postfixLength=this.postfix?.length??0;defaultablesAndOptionals=[];prevariadic=this.tuple.filter((Y)=>{if(Y.kind==="defaultables"||Y.kind==="optionals")return this.defaultablesAndOptionals.push(Y.node),!0;return Y.kind==="prefix"});variadicOrPostfix=t1(this.variadic&&[this.variadic],this.postfix);flatRefs=this.addFlatRefs();addFlatRefs(){return KY(this.flatRefs,this.prevariadic.flatMap((Y,Z)=>Z0(Y.node.flatRefs.map((X)=>h1([`${Z}`,...X.path],X.node)),h1([`${Z}`],Y.node)))),KY(this.flatRefs,this.variadicOrPostfix.flatMap((Y)=>Z0(Y.flatRefs.map((Z)=>h1([N.intrinsic.nonNegativeIntegerString.internal,...Z.path],Z.node)),h1([N.intrinsic.nonNegativeIntegerString.internal],Y)))),this.flatRefs}isVariadicOnly=this.prevariadic.length+this.postfixLength===0;minVariadicLength=this.inner.minVariadicLength??0;minLength=this.prefixLength+this.minVariadicLength+this.postfixLength;minLengthNode=this.minLength===0?null:this.$.node("minLength",this.minLength);maxLength=this.variadic?null:this.tuple.length;maxLengthNode=this.maxLength===null?null:this.$.node("maxLength",this.maxLength);impliedSiblings=this.minLengthNode?this.maxLengthNode?[this.minLengthNode,this.maxLengthNode]:[this.minLengthNode]:this.maxLengthNode?[this.maxLengthNode]:[];defaultValueMorphs=MQ(this);defaultValueMorphsReference=this.defaultValueMorphs.length?C0(this.defaultValueMorphs):void 0;elementAtIndex(Y,Z){if(Z<this.prevariadic.length)return this.tuple[Z];let X=Y.length-this.postfixLength;if(Z>=X)return{kind:"postfix",node:this.postfix[Z-X]};return{kind:"variadic",node:this.variadic??_0(`Unexpected attempt to access index ${Z} on ${this}`)}}traverseAllows=(Y,Z)=>{for(let X=0;X<Y.length;X++)if(!this.elementAtIndex(Y,X).node.traverseAllows(Y[X],Z))return!1;return!0};traverseApply=(Y,Z)=>{let X=0;for(;X<Y.length;X++)z1(X,()=>this.elementAtIndex(Y,X).node.traverseApply(Y[X],Z),Z)};get element(){return this.cacheGetter("element",this.$.node("union",this.children))}compile(Y){if(this.prefix)for(let[Z,X]of this.prefix.entries())Y.traverseKey(`${Z}`,`data[${Z}]`,X);for(let[Z,X]of this.defaultablesAndOptionals.entries()){let _=`${Z+this.prefixLength}`;Y.if(`${_} >= ${Y.data}.length`,()=>Y.traversalKind==="Allows"?Y.return(!0):Y.return()),Y.traverseKey(_,`data[${_}]`,X)}if(this.variadic){if(this.postfix)Y.const("firstPostfixIndex",`${Y.data}.length${this.postfix?`- ${this.postfix.length}`:""}`);if(Y.for(`i < ${this.postfix?"firstPostfixIndex":"data.length"}`,()=>Y.traverseKey("i","data[i]",this.variadic),this.prevariadic.length),this.postfix)for(let[Z,X]of this.postfix.entries()){let _=`firstPostfixIndex + ${Z}`;Y.traverseKey(_,`data[${_}]`,X)}}if(Y.traversalKind==="Allows")Y.return(!0)}_transform(Y,Z){Z.path.push(N.intrinsic.nonNegativeIntegerString.internal);let X=super._transform(Y,Z);return Z.path.pop(),X}expression=this.description;reduceJsonSchema(Y,Z){if(this.prevariadic.length)Y.prefixItems=this.prevariadic.map((X)=>{let _=X.node.toJsonSchemaRecurse(Z);if(X.kind==="defaultables"){let G=typeof X.default==="function"?X.default():X.default;_.default=N.intrinsic.jsonData.allows(G)?G:Z.fallback.defaultValue({code:"defaultValue",base:_,value:G})}return _});if(this.minLength)Y.minItems=this.minLength;if(this.variadic){let X=Object.assign(Y,{items:this.variadic.toJsonSchemaRecurse(Z)});if(this.maxLength)X.maxItems=this.maxLength;if(this.postfix){let _=this.postfix.map((G)=>G.toJsonSchemaRecurse(Z));Y=Z.fallback.arrayPostfix({code:"arrayPostfix",base:X,elements:_})}}else Y.items=!1,delete Y.maxItems;return Y}}var LQ={},MQ=(Y)=>{if(!Y.defaultables)return[];let Z=[],X="[",_=Y.prefixLength+Y.defaultablesLength-1;for(let G=Y.prefixLength;G<=_;G++){let[$,W]=Y.defaultables[G-Y.prefixLength];Z.push(dY(G,$,W)),X+=`${G}: ${$.id} = ${N1(W)}, `}return X+="]",LQ[X]??=Z},tY={implementation:DQ,Node:k_},AQ=(Y)=>{let Z=[];if(Y.prefix)for(let X of Y.prefix)Z.push({kind:"prefix",node:X});if(Y.defaultables)for(let[X,_]of Y.defaultables)Z.push({kind:"defaultables",node:X,default:_});if(Y.optionals)for(let X of Y.optionals)Z.push({kind:"optionals",node:X});if(Y.variadic)Z.push({kind:"variadic",node:Y.variadic});if(Y.postfix)for(let X of Y.postfix)Z.push({kind:"postfix",node:X});return Z},h_=(Y)=>Y.reduce((Z,X)=>{if(X.kind==="variadic")Z.variadic=X.node;else if(X.kind==="defaultables")Z.defaultables=Z0(Z.defaultables,[[X.node,X.default]]);else Z[X.kind]=Z0(Z[X.kind],X.node);return Z},{}),aY="A postfix required element cannot follow an optional or defaultable element",wQ="A postfix element requires a variadic element",e2=(Y)=>{let[Z,...X]=Y.l,[_,...G]=Y.r;if(!Z||!_)return Y;let $=X.at(-1)?.kind==="postfix",W=G.at(-1)?.kind==="postfix",H=Z.kind==="prefix"||_.kind==="prefix"?"prefix":Z.kind==="postfix"||_.kind==="postfix"?"postfix":Z.kind==="variadic"&&_.kind==="variadic"?"variadic":$||W?"prefix":Z.kind==="defaultables"||_.kind==="defaultables"?"defaultables":"optionals";if(Z.kind==="prefix"&&_.kind==="variadic"&&W){let E=e2({...Y,fixedVariants:[],r:G.map((V)=>({...V,kind:"prefix"}))});if(E.disjoint.length===0)Y.fixedVariants.push(E)}else if(_.kind==="prefix"&&Z.kind==="variadic"&&$){let E=e2({...Y,fixedVariants:[],l:X.map((V)=>({...V,kind:"prefix"}))});if(E.disjoint.length===0)Y.fixedVariants.push(E)}let Q=L0(Z.node,_.node,Y.ctx);if(Q instanceof P)if(H==="prefix"||H==="postfix")Y.disjoint.push(...Q.withPrefixKey(H==="prefix"?Y.result.length:`-${X.length+1}`,"required")),Y.result=[...Y.result,{kind:H,node:N.intrinsic.never.internal}];else if(H==="optionals"||H==="defaultables")return Y;else return e2({...Y,fixedVariants:[],l:X.map((E)=>({...E,kind:"prefix"})),r:X.map((E)=>({...E,kind:"prefix"}))});else if(H==="defaultables"){if(Z.kind==="defaultables"&&_.kind==="defaultables"&&Z.default!==_.default)R(uY(Z.default,_.default));Y.result=[...Y.result,{kind:H,node:Q,default:Z.kind==="defaultables"?Z.default:_.kind==="defaultables"?_.default:_0(`Unexpected defaultable intersection from ${Z.kind} and ${_.kind} elements.`)}]}else Y.result=[...Y.result,{kind:H,node:Q}];let J=Y.l.length,U=Y.r.length;if(Z.kind!=="variadic"||J>=U&&(_.kind==="variadic"||U===1))Y.l=X;if(_.kind!=="variadic"||U>=J&&(Z.kind==="variadic"||J===1))Y.r=G;return e2(Y)};var g_=(Y)=>(Z)=>{if(Z.props.length||Z.index){let X=Z.index?.map((G)=>G[Y])??[];for(let G of Z.props)X.push(G[Y]);if(Z.undeclared)X.push(`+ (undeclared): ${Z.undeclared}`);let _=`{ ${X.join(", ")} }`;return Z.sequence?`${_} & ${Z.sequence.description}`:_}return Z.sequence?.description??"{}"},RQ=g_("description"),NQ=g_("expression"),b_=(Y,Z,X)=>{let _=Y.required?"required":"optional";if(!Z.signature.allows(Y.key))return null;let G=F1(Y.value,Z.value,X);if(G instanceof P)return _==="optional"?X.node("optional",{key:Y.key,value:N.intrinsic.never.internal}):G.withPrefixKey(Y.key,Y.kind);return null},IQ=r({kind:"structure",hasAssociatedError:!1,normalize:(Y)=>Y,applyConfig:(Y,Z)=>{if(!Y.undeclared&&Z.onUndeclaredKey!=="ignore")return{...Y,undeclared:Z.onUndeclaredKey};return Y},keys:{required:{child:!0,parse:t0("required"),reduceIo:(Y,Z,X)=>{Z.required=Z0(Z.required,X.map((_)=>_[Y]));return}},optional:{child:!0,parse:t0("optional"),reduceIo:(Y,Z,X)=>{if(Y==="in"){Z.optional=X.map((_)=>_.in);return}for(let _ of X)Z[_.outProp.kind]=Z0(Z[_.outProp.kind],_.outProp.out)}},index:{child:!0,parse:t0("index")},sequence:{child:!0,parse:t0("sequence")},undeclared:{parse:(Y)=>Y==="ignore"?void 0:Y,reduceIo:(Y,Z,X)=>{if(X!=="delete")return;if(Y==="in")delete Z.undeclared;else Z.undeclared="reject"}}},defaults:{description:RQ},intersections:{structure:(Y,Z,X)=>{let _={...Y.inner},G={...Z.inner},$=new P;if(Y.undeclared){let Q=Y.keyof();for(let J of Z.requiredKeys)if(!Q.allows(J))$.add("presence",N.intrinsic.never.internal,Z.propsByKey[J].value,{path:[J]});if(G.optional)G.optional=G.optional.filter((J)=>Q.allows(J.key));if(G.index)G.index=G.index.flatMap((J)=>{if(J.signature.extends(Q))return J;let U=F1(Q,J.signature,X.$);if(U instanceof P)return[];let E=t8(U,J.value,X.$);if(E.required)G.required=t1(G.required,E.required);if(E.optional)G.optional=t1(G.optional,E.optional);return E.index??[]})}if(Z.undeclared){let Q=Z.keyof();for(let J of Y.requiredKeys)if(!Q.allows(J))$.add("presence",Y.propsByKey[J].value,N.intrinsic.never.internal,{path:[J]});if(_.optional)_.optional=_.optional.filter((J)=>Q.allows(J.key));if(_.index)_.index=_.index.flatMap((J)=>{if(J.signature.extends(Q))return J;let U=F1(Q,J.signature,X.$);if(U instanceof P)return[];let E=t8(U,J.value,X.$);if(E.required)_.required=t1(_.required,E.required);if(E.optional)_.optional=t1(_.optional,E.optional);return E.index??[]})}let W={};if(Y.undeclared||Z.undeclared)W.undeclared=Y.undeclared==="reject"||Z.undeclared==="reject"?"reject":"delete";let H=Z2({kind:"structure",baseInner:W,l:X2(_),r:X2(G),roots:[],ctx:X});if(H instanceof P)$.push(...H);if($.length)return $;return H}},reduce:(Y,Z)=>{if(Y.index){if(!(Y.required||Y.optional))return;let X=!1,_=Y.required??[],G=Y.optional??[],$=[...G];for(let W of Y.index){for(let H of _){let Q=b_(H,W,Z);if(Q instanceof P)return Q}for(let[H,Q]of G.entries()){let J=b_(Q,W,Z);if(J instanceof P)return J;if(J===null)continue;$[H]=J,X=!0}}if(X)return Z.node("structure",{...Y,optional:$},{prereduced:!0})}}});class p_ extends I1{impliedBasis=N.intrinsic.object.internal;impliedSiblings=this.children.flatMap((Y)=>Y.impliedSiblings??[]);props=t1(this.required,this.optional);propsByKey=o(this.props,(Y,Z)=>[Z.key,Z]);propsByKeyReference=C0(this.propsByKey);expression=NQ(this);requiredKeys=this.required?.map((Y)=>Y.key)??[];optionalKeys=this.optional?.map((Y)=>Y.key)??[];literalKeys=[...this.requiredKeys,...this.optionalKeys];_keyof;keyof(){if(this._keyof)return this._keyof;let Y=this.$.units(this.literalKeys).branches;if(this.index)for(let{signature:Z}of this.index)Y=Y.concat(Z.branches);return this._keyof=this.$.node("union",Y)}map(Y){return this.$.node("structure",this.props.flatMap(Y).reduce((Z,X)=>{let _=this.propsByKey[X.key];if(D0(X)){if(X.kind!=="required"&&X.kind!=="optional")return R(`Map result must have kind "required" or "optional" (was ${X.kind})`);return Z[X.kind]=Z0(Z[X.kind],X),Z}let G=X.kind??_?.kind??"required",$=o(X,(W,H)=>(W in r2.implementation.keys)?[W,H]:[]);return Z[G]=Z0(Z[G],this.$.node(G,$)),Z},{}))}assertHasKeys(Y){let Z=Y.filter((X)=>!s2(X,this.keyof()));if(Z.length)return R(y_(this.expression,Z))}get(Y,...Z){let X,_=!1,G=CQ(Y);if((typeof G==="string"||typeof G==="symbol")&&this.propsByKey[G])X=this.propsByKey[G].value,_=this.propsByKey[G].required;if(this.index){for(let W of this.index)if(s2(G,W.signature))X=X?.and(W.value)??W.value}if(this.sequence&&s2(G,N.intrinsic.nonNegativeIntegerString))if(y(G,"root")){if(this.sequence.variadic)X=X?.and(this.sequence.element)??this.sequence.element}else{let W=Number.parseInt(G);if(W<this.sequence.prevariadic.length){let H=this.sequence.prevariadic[W].node;X=X?.and(H)??H,_||=W<this.sequence.prefixLength}else if(this.sequence.variadic){let H=this.$.node("union",this.sequence.variadicOrPostfix);X=X?.and(H)??H}}if(!X){if(this.sequence?.variadic&&y(G,"root")&&G.extends(N.intrinsic.number))return R(qQ(G.expression,this.sequence.expression));return R(y_(this.expression,[G]))}let $=X.get(...Z);return _?$:$.or(N.intrinsic.undefined)}pick(...Y){return this.assertHasKeys(Y),this.$.node("structure",this.filterKeys("pick",Y))}omit(...Y){return this.assertHasKeys(Y),this.$.node("structure",this.filterKeys("omit",Y))}optionalize(){let{required:Y,...Z}=this.inner;return this.$.node("structure",{...Z,optional:this.props.map((X)=>X.hasKind("required")?this.$.node("optional",X.inner):X)})}require(){let{optional:Y,...Z}=this.inner;return this.$.node("structure",{...Z,required:this.props.map((X)=>X.hasKind("optional")?{key:X.key,value:X.value}:X)})}merge(Y){let Z=this.filterKeys("omit",[Y.keyof()]);if(Y.required)Z.required=Z0(Z.required,Y.required);if(Y.optional)Z.optional=Z0(Z.optional,Y.optional);if(Y.index)Z.index=Z0(Z.index,Y.index);if(Y.sequence)Z.sequence=Y.sequence;if(Y.undeclared)Z.undeclared=Y.undeclared;else delete Z.undeclared;return this.$.node("structure",Z)}filterKeys(Y,Z){let X=p8(this.inner),_=(G)=>{let $=Z.some((W)=>s2(G,W));return Y==="pick"?$:!$};if(X.required)X.required=X.required.filter((G)=>_(G.key));if(X.optional)X.optional=X.optional.filter((G)=>_(G.key));if(X.index)X.index=X.index.filter((G)=>_(G.signature));return X}traverseAllows=(Y,Z)=>this._traverse("Allows",Y,Z);traverseApply=(Y,Z)=>this._traverse("Apply",Y,Z);_traverse=(Y,Z,X)=>{let _=X?.currentErrorCount??0;for(let G=0;G<this.props.length;G++)if(Y==="Allows"){if(!this.props[G].traverseAllows(Z,X))return!1}else if(this.props[G].traverseApply(Z,X),X.failFast&&X.currentErrorCount>_)return!1;if(this.sequence){if(Y==="Allows"){if(!this.sequence.traverseAllows(Z,X))return!1}else if(this.sequence.traverseApply(Z,X),X.failFast&&X.currentErrorCount>_)return!1}if(this.index||this.undeclared==="reject"){let G=Object.keys(Z);G.push(...Object.getOwnPropertySymbols(Z));for(let $=0;$<G.length;$++){let W=G[$];if(this.index){for(let H of this.index)if(H.signature.traverseAllows(W,X)){if(Y==="Allows"){if(!z1(W,()=>H.value.traverseAllows(Z[W],X),X))return!1}else if(z1(W,()=>H.value.traverseApply(Z[W],X),X),X.failFast&&X.currentErrorCount>_)return!1}}if(this.undeclared==="reject"&&!this.declaresKey(W)){if(Y==="Allows")return!1;if(X.errorFromNodeContext({code:"predicate",expected:"removed",actual:"",relativePath:[W],meta:this.meta}),X.failFast)return!1}}}if(this.structuralMorph&&X&&!X.hasError())X.queueMorphs([this.structuralMorph]);return!0};get defaultable(){return this.cacheGetter("defaultable",this.optional?.filter((Y)=>Y.hasDefault())??[])}declaresKey=(Y)=>(Y in this.propsByKey)||this.index?.some((Z)=>Z.signature.allows(Y))||this.sequence!==void 0&&N.intrinsic.nonNegativeIntegerString.allows(Y);_compileDeclaresKey(Y){let Z=[];if(this.props.length)Z.push(`k in ${this.propsByKeyReference}`);if(this.index)for(let X of this.index)Z.push(Y.invoke(X.signature,{kind:"Allows",arg:"k"}));if(this.sequence)Z.push("$ark.intrinsic.nonNegativeIntegerString.allows(k)");return Z.join(" || ")||"false"}get structuralMorph(){return this.cacheGetter("structuralMorph",KQ(this))}structuralMorphRef=this.structuralMorph&&C0(this.structuralMorph);compile(Y){if(Y.traversalKind==="Apply")Y.initializeErrorCount();for(let Z of this.props)if(Y.check(Z),Y.traversalKind==="Apply")Y.returnIfFailFast();if(this.sequence){if(Y.check(this.sequence),Y.traversalKind==="Apply")Y.returnIfFailFast()}if(this.index||this.undeclared==="reject")Y.const("keys","Object.keys(data)"),Y.line("keys.push(...Object.getOwnPropertySymbols(data))"),Y.for("i < keys.length",()=>this.compileExhaustiveEntry(Y));if(Y.traversalKind==="Allows")return Y.return(!0);if(this.structuralMorphRef)Y.if("ctx && !ctx.hasError()",()=>{return Y.line("ctx.queueMorphs(["),BQ(Y,this),Y.line("])")})}compileExhaustiveEntry(Y){if(Y.const("k","keys[i]"),this.index)for(let Z of this.index)Y.if(`${Y.invoke(Z.signature,{arg:"k",kind:"Allows"})}`,()=>Y.traverseKey("k","data[k]",Z.value));if(this.undeclared==="reject")Y.if(`!(${this._compileDeclaresKey(Y)})`,()=>{if(Y.traversalKind==="Allows")return Y.return(!1);return Y.line(`ctx.errorFromNodeContext({ code: "predicate", expected: "removed", actual: "", relativePath: [k], meta: ${this.compiledMeta} })`).if("ctx.failFast",()=>Y.return())});return Y}reduceJsonSchema(Y,Z){switch(Y.type){case"object":return this.reduceObjectJsonSchema(Y,Z);case"array":let X=this.sequence?.reduceJsonSchema(Y,Z)??Y;if(this.props.length||this.index)return Z.fallback.arrayObject({code:"arrayObject",base:X,object:this.reduceObjectJsonSchema({type:"object"},Z)});return X;default:return N0.throwInternalOperandError("structure",Y)}}reduceObjectJsonSchema(Y,Z){if(this.props.length){Y.properties={};for(let X of this.props){let _=X.value.toJsonSchemaRecurse(Z);if(typeof X.key==="symbol"){Z.fallback.symbolKey({code:"symbolKey",base:Y,key:X.key,value:_,optional:X.optional});continue}if(X.hasDefault()){let G=typeof X.default==="function"?X.default():X.default;_.default=N.intrinsic.jsonData.allows(G)?G:Z.fallback.defaultValue({code:"defaultValue",base:_,value:G})}Y.properties[X.key]=_}if(this.requiredKeys.length&&Y.properties)Y.required=this.requiredKeys.filter((X)=>typeof X==="string"&&(X in Y.properties))}if(this.index)for(let X of this.index){let _=X.value.toJsonSchemaRecurse(Z);if(X.signature.equals(N.intrinsic.string)){Y.additionalProperties=_;continue}for(let G of X.signature.branches){if(!G.extends(N.intrinsic.string)){Y=Z.fallback.symbolKey({code:"symbolKey",base:Y,key:null,value:_,optional:!1});continue}let $={type:"string"};if(G.hasKind("morph"))$=Z.fallback.morph({code:"morph",base:G.in.toJsonSchemaRecurse(Z),out:G.out.toJsonSchemaRecurse(Z)});if(!G.hasKind("intersection"))return _0(`Unexpected index branch kind ${G.kind}.`);let{pattern:W}=G.inner;if(W){let H=Object.assign($,{pattern:W[0].rule});for(let Q=1;Q<W.length;Q++)$=Z.fallback.patternIntersection({code:"patternIntersection",base:H,pattern:W[Q].rule});Y.patternProperties??={},Y.patternProperties[H.pattern]=_}}}if(this.undeclared&&!Y.additionalProperties)Y.additionalProperties=!1;return Y}}var eY={},TQ=(Y)=>{let Z="";for(let X=0;X<Y.defaultable.length;X++)Z+=Y.defaultable[X].defaultValueMorphRef;if(Y.sequence?.defaultValueMorphsReference)Z+=Y.sequence?.defaultValueMorphsReference;if(Y.undeclared==="delete"){if(Z+="delete !(",Y.required)for(let X of Y.required)Z+=X.compiledKey+" | ";if(Y.optional)for(let X of Y.optional)Z+=X.compiledKey+" | ";if(Y.index)for(let X of Y.index)Z+=X.signature.id+" | ";if(Y.sequence)if(Y.sequence.maxLength===null)Z+=d.nonNegativeIntegerString.id;else for(let X=0;X<Y.sequence.tuple.length;X++)Z+=X+" | ";Z+=")"}return Z},KQ=(Y)=>{let Z=TQ(Y);if(!Z)return;if(eY[Z])return eY[Z];let X=(_,G)=>{for(let $=0;$<Y.defaultable.length;$++)if(!(Y.defaultable[$].key in _))Y.defaultable[$].defaultValueMorph(_,G);if(Y.sequence?.defaultables)for(let $=_.length-Y.sequence.prefixLength;$<Y.sequence.defaultables.length;$++)Y.sequence.defaultValueMorphs[$](_,G);if(Y.undeclared==="delete"){for(let $ in _)if(!Y.declaresKey($))delete _[$]}return _};return eY[Z]=X},BQ=(Y,Z)=>{let _=`(data${Z.defaultable.some((G)=>G.defaultValueMorph.length===2)||Z.sequence?.defaultValueMorphs.some((G)=>G.length===2)?", ctx":""})`;return Y.block(`${_} => `,(G)=>{for(let $=0;$<Z.defaultable.length;$++){let{serializedKey:W,defaultValueMorphRef:H}=Z.defaultable[$];G.if(`!(${W} in data)`,(Q)=>Q.line(`${H}${_}`))}if(Z.sequence?.defaultables)G.for(`i < ${Z.sequence.defaultables.length}`,($)=>$.set("data[i]",5),`data.length - ${Z.sequence.prefixLength}`);if(Z.undeclared==="delete")G.forIn("data",($)=>$.if(`!(${Z._compileDeclaresKey($)})`,(W)=>W.line("delete data[k]")));return G.return("data")})},YZ={implementation:IQ,Node:p_},CQ=(Y)=>{if(y(Y,"root")&&Y.hasKind("unit"))Y=Y.unit;if(typeof Y==="number")Y=`${Y}`;return Y},qQ=(Y,Z)=>`${Y} is not allowed as an array index on ${Z}. Use the 'nonNegativeIntegerString' keyword instead.`,t8=(Y,Z,X)=>{let[_,G]=QX(Y.branches,(W)=>W.hasKind("unit"));if(!_.length)return{index:X.node("index",{signature:Y,value:Z})};let $={};for(let W of _){let H=X.node("required",{key:W.unit,value:Z});$[H.kind]=Z0($[H.kind],H)}if(G.length)$.index=X.node("index",{signature:G,value:Z});return $},jQ=(Y)=>y(Y,"root")?Y.expression:i(Y),y_=(Y,Z)=>`Key${Z.length===1?"":"s"} ${Z.map(jQ).join(", ")} ${Z.length===1?"does":"do"} not exist on ${Y}`;var G2={...U_,alias:t2.implementation,domain:s8.implementation,unit:rY.implementation,proto:a2.implementation,union:iY.implementation,morph:lY.implementation,intersection:cY.implementation,divisor:SY.implementation,pattern:yY.implementation,predicate:jY.implementation,required:sY.implementation,optional:r2.implementation,index:nY.implementation,sequence:tY.implementation,structure:YZ.implementation};N.defaultConfig=MX(Object.assign(o(G2,(Y,Z)=>[Y,Z.defaults]),{jitless:TX(),clone:RX,onUndeclaredKey:"ignore",exactOptionalPropertyTypes:!0,numberAllowsNaN:!1,dateAllowsInvalid:!1,onFail:null,keywords:{},toJsonSchema:N0.defaultConfig}));N.resolvedConfig=m2(N.defaultConfig,N.config);var D_={...z_,alias:t2.Node,domain:s8.Node,unit:rY.Node,proto:a2.Node,union:iY.Node,morph:lY.Node,intersection:cY.Node,divisor:SY.Node,pattern:yY.Node,predicate:jY.Node,required:sY.Node,optional:r2.Node,index:nY.Node,sequence:tY.Node,structure:YZ.Node};class H2 extends UY{get[Z1](){return"module"}}var ZZ=(Y,Z)=>new H2(o(Y,(X,_)=>[X,y(_,"module")?ZZ(_,Z):Z.bindReference(_)]));var SQ=(Y)=>F0(Y)?Y:("branches"in Y)&&F0(Y.branches)?Y.branches:void 0,PQ=(Y,Z)=>R(`Node of kind ${Z} is not valid as a ${Y} definition`),m_=(Y)=>`#${Y} duplicates public alias ${Y}`,XZ={};N.ambient??={};var u_,c_="function $",vQ=(Y)=>l_(Y,o_(Y)),l_=(Y,Z)=>{let X=Z.write(c_,4),_=Z.compile()();for(let G of Y){if(G.precompilation)continue;if(G.traverseAllows=_[`${G.id}Allows`].bind(_),G.isRoot()&&!G.allowsRequiresContext)G.allows=G.traverseAllows;if(G.traverseApply=_[`${G.id}Apply`].bind(_),_[`${G.id}Optimistic`])G.traverseOptimistic=_[`${G.id}Optimistic`].bind(_);G.precompilation=X}},o_=(Y)=>new g8().return(Y.reduce((Z,X)=>{let _=new p2({kind:"Allows"}).indent();X.compile(_);let G=_.write(`${X.id}Allows`),$=new p2({kind:"Apply"}).indent();X.compile($);let W=$.write(`${X.id}Apply`),H=`${Z}${G},
44
44
  ${W},
45
45
  `;if(!X.hasKind("union"))return H;let Q=new p2({kind:"Allows",optimistic:!0}).indent();X.compile(Q);let J=Q.write(`${X.id}Optimistic`);return`${H}${J},
46
46
  `},`{
47
- `)+"}");class e8{config;resolvedConfig;name;get[Z1](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(Y,Z){if(this.config=m2(T.config,Z),this.resolvedConfig=m2(T.resolvedConfig,Z),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(XZ).length}`,this.name in XZ)w(`A Scope already named ${this.name} already exists`);XZ[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)w(y_($));this.aliases[$]=G}else{if($ in this.aliases)w(y_(_));this.aliases[$]=G,this.exportedNames.push($)}if(!g(G,"module")&&!g(G,"generic")&&!E4(G)){let W=this.preparseOwnDefinitionFormat(G,{alias:$});this.resolutions[$]=g(W,"root")?this.bindReference(W):this.createParseContext(W).id}}g_??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[g_.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=T.intrinsic?i(T.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 l8(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(l2(Y),Y,Z);preparseNode(Y,Z,X){let _=typeof Y==="string"?Y:l2(Z,Y);if(L0(Z)&&Z.kind===_)return Z;if(_==="alias"&&!X?.prereduced){let{reference:W}=t2.implementation.normalize(Z,this);if(W.startsWith("$")){let H=this.resolveRoot(W.slice(1));Z=H,_=H.kind}}else if(_==="union"&&J1(Z,"object")){let W=BQ(Z);if(W?.length===1)Z=W[0],_=l2(Z)}if(L0(Z)&&Z.kind===_)return Z;let $=G2[_].normalize?.(Z,this)??Z;if(L0($))return $.kind===_?$:CQ(_,$.kind);return{...X,$:this,kind:_,def:$,prefix:X.alias??_}}bindReference(Y){let Z;if(L0(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)??w($Z(Y))}maybeResolveRoot(Y){let Z=this.maybeResolve(Y);if(g(Z,"generic"))return;return Z}maybeResolveSubalias(Y){return _Z(this.aliases,Y)??_Z(this.ambient,Y)}get ambient(){return T.ambient}maybeResolve(Y){let Z=this.resolutions[Y];if(Z){if(typeof Z!=="string")return this.bindReference(Z);let _=X1[Z];if(g(_,"root"))return this.resolutions[Y]=_;if(g(_,"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: ${r(_)}`);_.phase="resolving";let G=this.bindReference(this.parseOwnDefinitionFormat(_.def,_));return _.phase="resolved",X1[G.id]=G,X1[_.id]=G,this.resolutions[Y]=G}return _0(`Unexpected nodesById entry for ${Z}: ${r(_)}`)}let X=this.aliases[Y]??this.ambient?.[Y];if(!X)return this.maybeResolveSubalias(Y);if(X=this.normalizeRootScopeValue(X),g(X,"generic"))return this.resolutions[Y]=this.bindReference(X);if(g(X,"module")){if(!X.root)w(o_(Y));return this.resolutions[Y]=this.bindReference(X.root)}return this.resolutions[Y]=this.parse(X,{alias:Y})}createParseContext(Y){let Z=Y.id??gY(Y.prefix);return X1[Z]=Object.assign(Y,{[Z1]:"context",$:this,id:Z,phase:"unresolved"})}traversal(Y){return new f1(Y,this.resolvedConfig)}import(...Y){return new H2(i(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]=g(_,"module")?ZZ(_,this):p_(this.maybeResolve(X))}for(let X of this.lazyResolutions)X.resolution;if(this._exportedResolutions=l_(this,this._exports),this._json=c_(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let X=d_(this.references);this.precompilation=X.write(m_,4),u_(this.references,X)}this.resolved=!0}let Z=Y.length?Y:this.exportedNames;return new H2(i(Z,(X,_)=>[_,this._exports[_]]))}resolve(Y){return this.export()[Y]}node=(Y,Z,X={})=>{let _=this.preparseNode(Y,Z,X);if(L0(_))return this.bindReference(_);let G=this.createParseContext(_),$=pY(G),W=this.bindReference($);return X1[G.id]=W};parse=(Y,Z={})=>this.finalize(this.parseDefinition(Y,Z));parseDefinition(Y,Z={}){if(g(Y,"root"))return this.bindReference(Y);let X=this.preparseOwnDefinitionFormat(Y,Z);if(g(X,"root"))return this.bindReference(X);let _=this.createParseContext(X);X1[_.id]=_;let G=this.bindReference(this.parseOwnDefinitionFormat(Y,_));if(G.isCyclic)G=F_(G,_.id);return X1[_.id]=G,G}finalize(Y){if(p_(Y),!Y.precompilation&&!this.resolvedConfig.jitless)qQ(Y.references);return Y}}class GZ extends e8{parseOwnDefinitionFormat(Y,Z){return pY(Z)}preparseOwnDefinitionFormat(Y,Z){return this.preparseNode(l2(Y),Y,Z)}preparseOwnAliasEntry(Y,Z){return[Y,Z]}normalizeRootScopeValue(Y){return Y}}var p_=(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},c_=(Y)=>i(Y,(Z,X)=>[Z,g(X,"root")||g(X,"generic")?X.json:g(X,"module")?c_(X):_0(`Unexpected resolution ${r(X)}`)]),_Z=(Y,Z)=>{let X=Z.indexOf(".");if(X===-1)return;let _=Z.slice(0,X),G=Y[_];if(G===void 0)return;if(!g(G,"module"))return w(jQ(_));let $=Z.slice(X+1),W=G[$];if(W===void 0)return _Z(G,$);if(g(W,"root")||g(W,"generic"))return W;if(g(W,"module"))return W.root??w(o_(Z));_0(`Unexpected resolution for alias '${Z}': ${r(W)}`)},Y6=(Y,Z)=>new GZ(Y,Z),Y8=new GZ({});var l_=(Y,Z)=>{let X={};for(let _ in Z){let G=Z[_];if(g(G,"module")){let $=l_(Y,G),W=i($,(H,Q)=>[`${_}.${H}`,Q]);Object.assign(X,W)}else if(g(G,"root")||g(G,"generic"))X[_]=G;else _0(`Unexpected scope resolution ${r(G)}`)}return X},$Z=(Y)=>`'${Y}' is unresolvable`,jQ=(Y)=>`'${Y}' must reference a module to be accessed using dot syntax`,o_=(Y)=>`Reference to submodule '${Y}' must specify an alias`;Y8.export();var{schema:H0,node:J2,defineSchema:Kw,generic:B1}=Y8;var WZ="^(?:0|[1-9]\\d*)$",SQ=new RegExp(WZ),qw=C0(SQ);var i_=Y6({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();T.intrinsic={...i_};var r_=Y6({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:WZ}},{prereducedAliases:!0}).export();Object.assign(T.intrinsic,r_);var PQ=Y6({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),d={...i_,...r_,...PQ,emptyStructure:J2("structure",{},{prereduced:!0})};T.intrinsic={...d};var s_=(Y)=>typeof Y==="string"&&Y[0]==="d"&&(Y[1]==="'"||Y[1]==='"')&&Y.at(-1)===Y[1],n_=(Y)=>Y.toString()!=="Invalid Date",t_=(Y)=>Y.slice(2,-1),HZ=(Y)=>`'${Y}' could not be parsed by the Date constructor`,a_=(Y,Z)=>vQ(Y,Z),vQ=(Y,Z)=>{let X=new Date(Y);if(n_(X))return X;let _=SX(Y);if(_!==void 0){let G=new Date(_);if(n_(G))return G}return Z?w(Z===!0?HZ(Y):Z):void 0};var JZ=(Y,Z)=>{let X=Y.scanner.shiftUntil(xQ[YG[Z]]);if(Y.scanner.lookahead==="")return Y.error(hQ(X,Z));if(Y.scanner.shift(),Z==="/"){try{new RegExp(X)}catch(_){w(String(_))}Y.root=Y.ctx.$.node("intersection",{domain:"string",pattern:X},{prereduced:!0})}else if(y0(Z,QZ))Y.root=Y.ctx.$.node("unit",{unit:X});else{let _=a_(X,HZ(X));Y.root=Y.ctx.$.node("unit",{meta:X,unit:_})}},QZ={"'":1,'"':1},e_={"/":1,"'":1,'"':1},YG={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},xQ={"'":(Y)=>Y.lookahead==="'",'"':(Y)=>Y.lookahead==='"',"/":(Y)=>Y.lookahead==="/"},fQ={'"':"double-quote","'":"single-quote","/":"forward slash"},hQ=(Y,Z)=>`${Z}${Y} requires a closing ${fQ[YG[Z]]}`;var ZG=(Y)=>`Private type references should not include '#'. Use '${Y}' instead.`,Z6="Optional definitions like 'string?' are only valid as properties in an object or tuple",X6="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var XG={">":!0,">=":!0},_G={"<":!0,"<=":!0};var Q2={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},GG=(Y)=>`Unmatched )${Y===""?"":` before ${Y}`}`,_6=(Y)=>`Missing ${Y}`,$G=(Y,Z)=>`Left bounds are only valid when paired with right bounds (try ...${Z}${Y})`,G6=(Y)=>`Left-bounded expressions must specify their limits using < or <= (was ${Y})`,WG=(Y,Z,X,_)=>`An expression may have at most one left bound (parsed ${Y}${Q2[Z]}, ${X}${Q2[_]})`;var HG=(Y,Z,X)=>JG(Y,Z,X,[]),JG=(Y,Z,X,_)=>{let G=X.parseUntilFinalizer();if(_.push(G.root),G.finalizer===">"){if(_.length!==Z.params.length)return X.error(UZ(Y,Z.names,_.map(($)=>$.expression)));return _}if(G.finalizer===",")return JG(Y,Z,X,_);return G.error(_6(">"))},UZ=(Y,Z,X)=>`${Y}<${Z.join(", ")}> requires exactly ${Z.length} args (got ${X.length}${X.length===0?"":`: ${X.join(", ")}`})`;var zZ=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator();if(Z==="keyof")Y.addPrefix("keyof");else Y.root=bQ(Y,Z)},kQ=(Y,Z,X)=>{if(X.scanner.shiftUntilNonWhitespace(),X.scanner.shift()!=="<")return X.error(UZ(Y,Z.names,[]));let G=HG(Y,Z,X);return Z(...G)},bQ=(Y,Z)=>yQ(Y,Z)??gQ(Y,Z)??Y.error(Z===""?Y.scanner.lookahead==="#"?ZG(Y.shiftedByOne().scanner.shiftUntilNextTerminator()):FZ(Y):$Z(Z)),yQ=(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(g(X,"root"))return X;if(X===void 0)return;if(g(X,"generic"))return kQ(Z,X,Y);return w(`Unexpected resolution ${r(X)}`)},gQ=(Y,Z)=>{let X=PX(Z);if(X!==void 0)return Y.ctx.$.node("unit",{unit:X});let _=xX(Z);if(_!==void 0)return Y.ctx.$.node("unit",{unit:_})},FZ=(Y)=>{let Z=Y.previousOperator();return Z?EZ(Z,Y.scanner.unscanned):pQ(Y.scanner.unscanned)},EZ=(Y,Z="")=>`Token '${Y}' requires a right operand${Z?` before '${Z}'`:""}`,pQ=(Y)=>`Expected an expression${Y?` before '${Y}'`:""}`;var OZ=(Y)=>Y.scanner.lookahead===""?Y.error(FZ(Y)):Y.scanner.lookahead==="("?Y.shiftedByOne().reduceGroupOpen():Y.scanner.lookaheadIsIn(e_)?JZ(Y,Y.scanner.shift()):Y.scanner.lookaheadIsIn(O4)?OZ(Y.shiftedByOne()):Y.scanner.lookahead==="d"?Y.scanner.nextLookahead in QZ?JZ(Y,`${Y.scanner.shift()}${Y.scanner.shift()}`):zZ(Y):zZ(Y);class _4 extends AY{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,...O4};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(Y,Z)=>Y===">"?Z[0]==="="?Z[1]==="=":Z.trimStart()===""||y0(Z.trimStart()[0],_4.terminatingChars):Y==="="?Z[0]!=="=":Y===","||Y==="?"}var UG=(Y,Z)=>{let X=mQ(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 dQ(Y,X)},zG={"<":1,">":1,"=":1},mQ=(Y,Z)=>Y.scanner.lookaheadIs("=")?`${Z}${Y.scanner.shift()}`:Z;var QG=(Y,Z,X,_)=>{if(X.extends(T.intrinsic.number)){if(typeof Z!=="number")return w(VZ(Y,Z,_));return Y==="=="?["min","max"]:Y[0]===">"?["min"]:["max"]}if(X.extends(T.intrinsic.lengthBoundable)){if(typeof Z!=="number")return w(VZ(Y,Z,_));return Y==="=="?["exactLength"]:Y[0]===">"?["minLength"]:["maxLength"]}if(X.extends(T.intrinsic.Date))return Y==="=="?["after","before"]:Y[0]===">"?["after"]:["before"];return w(eX(X.expression))},uQ=(Y)=>({rule:s_(Y.limit)?t_(Y.limit):Y.limit,exclusive:Y.comparator.length===1}),dQ=(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(VZ(Z,$,"right"));let W=G.unit,H=Z.length===1,Q=QG(Z,typeof W==="number"?W:$,X,"right");for(let U of Q)Y.constrainRoot(U,Z==="=="?{rule:W}:{rule:W,exclusive:H});if(!Y.branches.leftBound)return;if(!y0(Z,_G))return Y.error(G6(Z));let J=QG(Y.branches.leftBound.comparator,Y.branches.leftBound.limit,X,"left");Y.constrainRoot(J[0],uQ(Y.branches.leftBound)),Y.branches.leftBound=null},VZ=(Y,Z,X)=>`Comparator ${X==="left"?Q2[Y]:Y} must be ${X==="left"?"preceded":"followed"} by a corresponding literal (was ${Z})`;var FG=(Y)=>{Y.scanner.shiftUntilNonWhitespace();let Z=Y.scanner.shiftUntilNextTerminator();Y.root=Y.root.brand(Z)};var OG=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator(),X=vX(Z,{errorOnFail:EG(Z)});if(X===0)Y.error(EG(0));Y.root=Y.root.constrain("divisor",X)},EG=(Y)=>`% operator must be followed by a non-zero integer literal (was ${Y})`;var DZ=(Y)=>{let Z=Y.scanner.shift();return Z===""?Y.finalize(""):Z==="["?Y.scanner.shift()==="]"?Y.setRoot(Y.root.array()):Y.error(cQ):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):y0(Z,zG)?UG(Y,Z):Z==="%"?OG(Y):Z==="#"?FG(Y):(Z in O4)?DZ(Y):Y.error($6(Z))},$6=(Y,Z="")=>`'${Y}' is not allowed here${Z&&` (should be ${Z})`}`,cQ="Missing expected ']'";var VG=(Y)=>{let Z=Y.unsetRoot();Y.parseOperand();let X=Y.unsetRoot();if(!X.hasKind("unit"))return Y.error(lQ(X.expression));let _=X.unit instanceof Date?()=>new Date(X.unit):X.unit;return[Z,"=",_]},lQ=(Y)=>`Default value '${Y}' must a literal value`;var LZ=(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 U2(new _4(Y),Z),G=oQ(_);if(_.finalizer===">")w($6(">"));return G},oQ=(Y)=>{Y.parseOperand();let Z=Z8(Y).root;if(!Z)return _0(`Root was unexpectedly unset after parsing string '${Y.scanner.scanned}'`);if(Y.finalizer==="=")Z=VG(Y);else if(Y.finalizer==="?")Z=[Z,"?"];if(Y.scanner.shiftUntilNonWhitespace(),Y.scanner.lookahead)w($6(Y.scanner.lookahead));return Z},Z8=(Y)=>{while(Y.finalizer===void 0)iQ(Y);return Y},iQ=(Y)=>Y.hasRoot()?Y.parseOperator():Y.parseOperand();class U2{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 w(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(_6(")"));this.finalizeBranches(),this.finalizer=Y}reduceLeftBound(Y,Z){let X=Q2[Z];if(!y0(X,XG))return this.error(G6(Z));if(this.branches.leftBound)return this.error(WG(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(GG(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 Z8(new U2(this.scanner,this.ctx))}parseOperator(){return DZ(this)}parseOperand(){return OZ(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error($G(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 rQ="An empty string is not a valid generic parameter name",W6=(Y,Z,X)=>{Y.shiftUntilNonWhitespace();let _=Y.shiftUntilNextTerminator();if(_===""){if(Y.lookahead===""&&Z.length)return Z;return w(rQ)}return Y.shiftUntilNonWhitespace(),nQ(Y,_,Z,X)},DG="extends ",nQ=(Y,Z,X,_)=>{if(Y.shiftUntilNonWhitespace(),Y.unscanned.startsWith(DG))Y.jumpForward(DG.length);else{if(Y.lookahead===",")Y.shift();return X.push(Z),W6(Y,X,_)}let G=Z8(new U2(Y,_));return X.push([Z,G.root]),W6(Y,X,_)};class MZ extends x1{$;constructor(Y){super((...Z)=>new X8(Y)(...Z),{bind:Y});this.$=Y}in(Y){return new X8(this.$,Y===void 0?void 0:this.$.parse(Y))}at(Y,Z){return new X8(this.$).at(Y,Z)}case(Y,Z){return new X8(this.$).case(Y,Z)}}class X8 extends x1{$;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)w(tQ);if(this.branches.length)w(sQ);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)w("default may only be specified as the last key of a switch definition");return this.default(_)}if(typeof _!=="function")return w(`Value for case "${X}" must be a function (was ${b0(_)})`);this.caseEntry(X,_)}return this}default(Y){if(typeof Y==="function")this.case(d.unknown,Y);let Z={branches:this.branches,ordered:!0};if(Y==="never"||Y==="assert")Z.meta={onFail:LG};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:LG},"self");return this.$.finalize(_)}}var LG=(Y)=>Y.throw(),sQ="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",tQ="At most one key matcher may be specified per expression";var H6=(Y,Z)=>{if(E0(Y)){if(Y[1]==="=")return[Z.$.parseOwnDefinitionFormat(Y[0],Z),"=",Y[2]];if(Y[1]==="?")return[Z.$.parseOwnDefinitionFormat(Y[0],Z),"?"]}return J6(Y,Z)},MG="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",AG="Only required keys may specify default values, e.g. { value: 'number = 0' }";var wG=(Y,Z)=>{let X,_={},G=j4(Y);for(let[W,H]of G){let Q=YU(W);if(Q.kind==="spread"){if(!u1(_))return w(eQ);let L=Z.$.parseOwnDefinitionFormat(H,Z);if(L.equals(d.object))continue;if(!L.hasKind("intersection")||!L.basis?.equals(d.object))return w(ZU(L.expression));X=L.structure;continue}if(Q.kind==="undeclared"){if(H!=="reject"&&H!=="delete"&&H!=="ignore")w(aQ(H));_.undeclared=H;continue}let J=H6(H,Z),U=Q;if(Q.kind==="required"){if(!E0(J))AZ(_,"required",{key:Q.normalized,value:J},Z);else AZ(_,"optional",J[1]==="="?{key:Q.normalized,value:J[0],default:J[2]}:{key:Q.normalized,value:J[0]},Z);continue}if(E0(J)){if(J[1]==="?")w(MG);if(J[1]==="=")w(AG)}if(Q.kind==="optional"){AZ(_,"optional",{key:Q.normalized,value:J},Z);continue}let E=Z.$.parseOwnDefinitionFormat(U.normalized,Z),V=a8(E,J,Z.$);if(V.index)_.index=Z0(_.index,V.index);if(V.required)_.required=Z0(_.required,V.required)}let $=Z.$.node("structure",_);return Z.$.parseSchema({domain:"object",structure:X?.merge($)??$})},AZ=(Y,Z,X,_)=>{Y[Z]=Z0(Y[Z],_.$.node(Z,X))},aQ=(Y)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${r(Y)})`,eQ="Spread operator may only be used as the first key in an object",YU=(Y)=>typeof Y==="symbol"?{kind:"required",normalized:Y}:Y.at(-1)==="?"?Y.at(-2)===f2?{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]===f2&&Y[1]==="["&&Y.at(-1)==="]"?{kind:"required",normalized:Y.slice(1)}:Y==="..."?{kind:"spread"}:Y==="+"?{kind:"undeclared"}:{kind:"required",normalized:Y==="\\..."?"...":Y==="\\+"?"+":Y},ZU=(Y)=>`Spread operand must resolve to an object literal type (was ${Y})`;var NG=(Y,Z)=>zU(Y)?BG[Y[0]](Y,Z):QU(Y)?KG[Y[1]](Y,Z):null,XU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[1],Z).keyof(),wZ=(Y,Z)=>{if(Y[2]===void 0)return w(EZ(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]==="&"?F1(X,_,Z.$):c2(X,_,Z.$);if(G instanceof P)return G.throw();return G},_U=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).array(),GU=(Y,Z)=>{if(typeof Y[2]!=="function")return w(IG("=>",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).pipe(Y[2])},IG=(Y,Z)=>`${Y===":"?"Narrow":"Morph"} expression requires a function following '${Y}' (was ${typeof Z})`,$U=(Y,Z)=>{if(typeof Y[2]!=="function")return w(IG(":",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).constrain("predicate",Y[2])},WU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).configureReferences(Y[2],"shallow"),TG=(Y)=>Y,HU=TG({"[]":_U,"?":()=>w(Z6)}),JU=TG({"|":wZ,"&":wZ,":":$U,"=>":GU,"|>":wZ,"@":WU,"=":()=>w(X6)}),KG={...HU,...JU},QU=(Y)=>KG[Y[1]]!==void 0,UU=(Y)=>Y,BG=UU({keyof:XU,instanceof:(Y,Z)=>{if(typeof Y[1]!=="function")return w(RG(v2(Y[1])));let X=Y.slice(1).map((_)=>typeof _==="function"?Z.$.node("proto",{proto:_}):w(RG(v2(_))));return X.length===1?X[0]:Z.$.node("union",{branches:X})},"===":(Y,Z)=>Z.$.units(Y.slice(1))}),zU=(Y)=>BG[Y[0]]!==void 0,RG=(Y)=>`Expected a constructor following 'instanceof' operator (was ${Y})`;var jG=(Y,Z)=>{let X=[{}],_=0;while(_<Y.length){let G=!1;if(Y[_]==="..."&&_<Y.length-1)G=!0,_++;let $=H6(Y[_],Z),[W,H,Q]=!E0($)?[$]:$;if(_++,G){if(!W.extends(T.intrinsic.Array))return w(OU(W.expression));X=X.flatMap((J)=>W.distribute((U)=>EU(m8(J),U)))}else X=X.map((J)=>{if(H==="?")return SG(J,W);if(H==="=")return FU(J,W,Q);return RZ(J,W)})}return Z.$.parseSchema(X.map((G)=>u1(G)?{proto:Array,exactLength:0}:{proto:Array,sequence:G}))},RZ=(Y,Z)=>{if(Y.defaultables||Y.optionals)return w(Y.variadic?aY:VU);if(Y.variadic)Y.postfix=Z0(Y.postfix,Z);else Y.prefix=Z0(Y.prefix,Z);return Y},SG=(Y,Z)=>{if(Y.variadic)return w(PG);return Y.optionals=Z0(Y.optionals,Z),Y},FU=(Y,Z,X)=>{if(Y.variadic)return w(PG);if(Y.optionals)return w(DU);return Y.defaultables=Z0(Y.defaultables,[[Z,X]]),Y},CG=(Y,Z)=>{if(Y.postfix)w(qG);if(Y.variadic){if(!Y.variadic.equals(Z))w(qG)}else Y.variadic=Z.internal;return Y},EU=(Y,Z)=>{let X=Z.select({method:"find",kind:"sequence"});if(!X)return CG(Y,T.intrinsic.unknown);if(X.prefix)for(let _ of X.prefix)RZ(Y,_);if(X.optionals)for(let _ of X.optionals)SG(Y,_);if(X.variadic)CG(Y,X.variadic);if(X.postfix)for(let _ of X.postfix)RZ(Y,_);return Y},OU=(Y)=>`Spread element must be an array (was ${Y})`,qG="A tuple may have at most one variadic element",VU="A required element may not follow an optional element",PG="An optional element may not follow a variadic element";var DU="A defaultable element may not follow an optional element without a default";var LU={},J6=(Y,Z)=>{if(typeof Y==="string"){if(Z.args&&Object.keys(Z.args).some((_)=>Y.includes(_)))return LZ(Y,Z);let X=LU[Z.$.name]??={};return X[Y]??=LZ(Y,Z)}return J1(Y,"object")?MU(Y,Z):w(NZ(b0(Y)))},MU=(Y,Z)=>{let X=P2(Y);switch(X){case void 0:if(g(Y,"root"))return Y;return wG(Y,Z);case"Array":return AU(Y,Z);case"RegExp":return Z.$.node("intersection",{domain:"string",pattern:Y},{prereduced:!0});case"Function":{let _=E4(Y)?Y():Y;if(g(_,"root"))return _;return w(NZ("Function"))}default:return w(NZ(X??r(Y)))}},AU=(Y,Z)=>NG(Y,Z)??jG(Y,Z),NZ=(Y)=>`Type definitions must be strings or objects (was ${Y})`;class IZ extends x1{constructor(Y){let Z=Object.assign({errors:U1,hkt:s0,$: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 z2=T;class Q6 extends e8{get ambientAttachments(){if(!z2.typeAttachments)return;return this.cacheGetter("ambientAttachments",i(z2.typeAttachments,(Y,Z)=>[Y,this.bindReference(Z)]))}preparseOwnAliasEntry(Y,Z){let X=Y.indexOf("<");if(X===-1){if(g(Z,"module")||g(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)!==">")w("'>' 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 sX($,Z,this)}]}parseGenericParams(Y,Z){return W6(new _4(Y),[],this.createParseContext({...Z,def:Y,prefix:"generic"}))}normalizeRootScopeValue(Y){if(E4(Y)&&!g(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 _=J6(Y,Z);if(E0(_)){if(_[1]==="=")return w(X6);if(_[1]==="?")return w(Z6)}return _}unit=(Y)=>this.units([Y]);valueOf=(Y)=>this.units(DX(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 MZ(this);declare=()=>({type:this.type});define(Y){return Y}type=new IZ(this);static scope=(Y,Z={})=>new Q6(Y,Z);static module=(Y,Z={})=>this.scope(Y,Z).export()}var TZ=Object.assign(Q6.scope,{define:(Y)=>Y}),Y0=Q6;class vG extends s0{description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var wU=B1(["base",d.object],["props",d.object])((Y)=>Y.base.merge(Y.props),vG),xG=Y0.module({Key:d.key,Merge:wU});class fG extends s0{}var RU=B1("element")((Y)=>{let Z=Y.element.exclude(d.Array),X=Z.array();return Z.rawOr(X).pipe(F4).distribute((_)=>_.assertHasKind("morph").declareOut(X),H0)},fG),hG=Y0.module({root:d.Array,readonly:"root",index:d.nonNegativeIntegerString,liftFrom:RU},{name:"Array"});var KZ=H0(["string",P4.FileConstructor]),NU=KZ.rawOr(KZ.array()),kG=H0({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:NU}}),bG=Y0.module({root:["instanceof",FormData],value:KZ,parsed:kG,parse:H0({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:kG})},{name:"FormData"});var yG=Y0.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 IU={Boolean:1,Number:1,String:1},gG=Y0.module({...i({...zY,...EY},(Y,Z)=>(Y in IU)?[]:[Y,["instanceof",Z]]),Array:hG,TypedArray:yG,FormData:bG});var TU=H0({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"}),KU=H0({domain:"number",divisor:1}),U6=Y0.module({root:d.number,integer:KU,epoch:TU,safe:H0({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 I0=(Y,Z,X)=>{let _={domain:"string",pattern:{rule:Y.source,flags:Y.flags,meta:Z}};if(X)_.meta={format:X};return J2("intersection",_)},pG=I0(h2,"a well-formed integer string"),aG=Y0.module({root:pG,parse:H0({in:pG,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:d.integer})},{name:"string.integer"}),BU=I0(/^[\dA-Fa-f]+$/,"hex characters only"),CU=Y0.module({root:I0(/^(?:[\d+/A-Za-z]{4})*(?:[\d+/A-Za-z]{2}==|[\d+/A-Za-z]{3}=)?$/,"base64-encoded"),url:I0(/^(?:[\w-]{4})*(?:[\w-]{2}(?:==|%3D%3D)?|[\w-]{3}(?:=|%3D)?)?$/,"base64url-encoded")},{name:"string.base64"}),mG=I0(/^[A-Z].*$/,"capitalized"),qU=Y0.module({root:H0({in:"string",morphs:(Y)=>Y.charAt(0).toUpperCase()+Y.slice(1),declaredOut:mG}),preformatted:mG},{name:"string.capitalize"}),jU=(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)},SU=/^(?: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}))$/,PU=H0({domain:"string",pattern:{meta:"a credit card number",rule:SU.source},predicate:{meta:"a credit card number",predicate:jU}});var vU=/^([+-]?\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 xU=(Y)=>!Number.isNaN(new Date(Y).valueOf()),uG=H0({domain:"string",predicate:{meta:"a parsable date",predicate:xU}}).assertHasKind("intersection"),dG=aG.root.internal.narrow((Y,Z)=>{let X=Number.parseInt(Y),_=U6.epoch(X);if(_ instanceof U1)return Z.errors.merge(_),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),fU=Y0.module({root:dG,parse:H0({in:dG,morphs:(Y)=>new Date(Y),declaredOut:d.Date})},{name:"string.date.epoch"}),cG=I0(vU,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),hU=Y0.module({root:cG,parse:H0({in:cG,morphs:(Y)=>new Date(Y),declaredOut:d.Date})},{name:"string.date.iso"}),kU=Y0.module({root:uG,parse:H0({declaredIn:uG,in:"string",morphs:(Y,Z)=>{let X=new Date(Y);if(Number.isNaN(X.valueOf()))return Z.error("a parsable date");return X},declaredOut:d.Date}),iso:hU,epoch:fU},{name:"string.date"}),bU=I0(/^[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z]{2,}$/,"an email address","email"),lG="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",A4=`(${lG}[.]){3}${lG}`,yU=new RegExp(`^${A4}$`),v0="(?:[0-9a-fA-F]{1,4})",gU=new RegExp(`^((?:${v0}:){7}(?:${v0}|:)|(?:${v0}:){6}(?:${A4}|:${v0}|:)|(?:${v0}:){5}(?::${A4}|(:${v0}){1,2}|:)|(?:${v0}:){4}(?:(:${v0}){0,1}:${A4}|(:${v0}){1,3}|:)|(?:${v0}:){3}(?:(:${v0}){0,2}:${A4}|(:${v0}){1,4}|:)|(?:${v0}:){2}(?:(:${v0}){0,3}:${A4}|(:${v0}){1,5}|:)|(?:${v0}:){1}(?:(:${v0}){0,4}:${A4}|(:${v0}){1,6}|:)|(?::((?::${v0}){0,5}:${A4}|(?::${v0}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),pU=Y0.module({root:["v4 | v6","@","an IP address"],v4:I0(yU,"an IPv4 address","ipv4"),v6:I0(gU,"an IPv6 address","ipv6")},{name:"string.ip"}),F2="a JSON string",eG=(Y)=>{if(!(Y instanceof SyntaxError))throw Y;return`must be ${F2} (${Y})`},mU=H0({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:eG(X)})}}}}),uU=(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:eG(X)})}},dU=Y0.module({root:mU,parse:H0({meta:"safe JSON string parser",in:"string",morphs:uU,declaredOut:d.jsonObject})},{name:"string.json"}),oG=I0(/^[a-z]*$/,"only lowercase letters"),cU=Y0.module({root:H0({in:"string",morphs:(Y)=>Y.toLowerCase(),declaredOut:oG}),preformatted:oG},{name:"string.lower"}),Y9=["NFC","NFD","NFKC","NFKD"],_8=i(Y9,(Y,Z)=>[Z,H0({domain:"string",predicate:(X)=>X.normalize(Z)===X,meta:`${Z}-normalized unicode`})]),z6=i(Y9,(Y,Z)=>[Z,H0({in:"string",morphs:(X)=>X.normalize(Z),declaredOut:_8[Z]})]),lU=Y0.module({root:z6.NFC,preformatted:_8.NFC},{name:"string.normalize.NFC"}),oU=Y0.module({root:z6.NFD,preformatted:_8.NFD},{name:"string.normalize.NFD"}),iU=Y0.module({root:z6.NFKC,preformatted:_8.NFKC},{name:"string.normalize.NFKC"}),rU=Y0.module({root:z6.NFKD,preformatted:_8.NFKD},{name:"string.normalize.NFKD"}),nU=Y0.module({root:"NFC",NFC:lU,NFD:oU,NFKC:iU,NFKD:rU},{name:"string.normalize"}),iG=I0(y8,"a well-formed numeric string"),sU=Y0.module({root:iG,parse:H0({in:iG,morphs:(Y)=>Number.parseFloat(Y),declaredOut:d.number})},{name:"string.numeric"}),rG="a regex pattern",tU=H0({domain:"string",predicate:{meta:rG,predicate:(Y,Z)=>{try{return new RegExp(Y),!0}catch(X){return Z.reject({code:"predicate",expected:rG,problem:String(X)})}}},meta:{format:"regex"}}),aU=/^(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-]+)*))?$/,eU=I0(aU,"a semantic version (see https://semver.org/)"),nG=I0(/^\S.*\S$|^\S?$/,"trimmed"),Yz=Y0.module({root:H0({in:"string",morphs:(Y)=>Y.trim(),declaredOut:nG}),preformatted:nG},{name:"string.trim"}),sG=I0(/^[A-Z]*$/,"only uppercase letters"),Zz=Y0.module({root:H0({in:"string",morphs:(Y)=>Y.toUpperCase(),declaredOut:sG}),preformatted:sG},{name:"string.upper"}),Xz=(Y)=>{if(URL.canParse)return URL.canParse(Y);try{return new URL(Y),!0}catch{return!1}},tG=H0({domain:"string",predicate:{meta:"a URL string",predicate:Xz},meta:{format:"uri"}}),_z=Y0.module({root:tG,parse:H0({declaredIn:tG,in:"string",morphs:(Y,Z)=>{try{return new URL(Y)}catch{return Z.error("a URL string")}},declaredOut:H0(URL)})},{name:"string.url"}),Gz=Y0.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:I0(/^[\da-f]{8}-[\da-f]{4}-1[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv1"),v2:I0(/^[\da-f]{8}-[\da-f]{4}-2[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv2"),v3:I0(/^[\da-f]{8}-[\da-f]{4}-3[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv3"),v4:I0(/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv4"),v5:I0(/^[\da-f]{8}-[\da-f]{4}-5[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv5"),v6:I0(/^[\da-f]{8}-[\da-f]{4}-6[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv6"),v7:I0(/^[\da-f]{8}-[\da-f]{4}-7[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv7"),v8:I0(/^[\da-f]{8}-[\da-f]{4}-8[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv8")},{name:"string.uuid"}),Z9=Y0.module({root:d.string,alpha:I0(/^[A-Za-z]*$/,"only letters"),alphanumeric:I0(/^[\dA-Za-z]*$/,"only letters and digits 0-9"),hex:BU,base64:CU,capitalize:qU,creditCard:PU,date:kU,digits:I0(/^\d*$/,"only digits 0-9"),email:bU,integer:aG,ip:pU,json:dU,lower:cU,normalize:nU,numeric:sU,regex:tU,semver:eU,trim:Yz,upper:Zz,url:_z,uuid:Gz},{name:"string"});var X9=Y0.module({bigint:d.bigint,boolean:d.boolean,false:d.false,never:d.never,null:d.null,number:d.number,object:d.object,string:d.string,symbol:d.symbol,true:d.true,unknown:d.unknown,undefined:d.undefined}),_9=Y0.module({root:d.unknown,any:d.unknown},{name:"unknown"}),$z=Y0.module({root:d.jsonObject,stringify:J2("morph",{in:d.jsonObject,morphs:(Y)=>JSON.stringify(Y),declaredOut:d.string})},{name:"object.json"}),G9=Y0.module({root:d.object,json:$z},{name:"object"});class $9 extends s0{description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var Wz=B1(["K",d.key],"V")((Y)=>({domain:"object",index:{signature:Y.K,value:Y.V}}),$9);class W9 extends s0{description='pick a set of properties from an object like `Pick(User, "name | age")`'}var Hz=B1(["T",d.object],["K",d.key])((Y)=>Y.T.pick(Y.K),W9);class H9 extends s0{description='omit a set of properties from an object like `Omit(User, "age")`'}var Jz=B1(["T",d.object],["K",d.key])((Y)=>Y.T.omit(Y.K),H9);class J9 extends s0{description="make all named properties of an object optional like `Partial(User)`"}var Qz=B1(["T",d.object])((Y)=>Y.T.partial(),J9);class Q9 extends s0{description="make all named properties of an object required like `Required(User)`"}var Uz=B1(["T",d.object])((Y)=>Y.T.required(),Q9);class U9 extends s0{description='exclude branches of a union like `Exclude("boolean", "true")`'}var zz=B1("T","U")((Y)=>Y.T.exclude(Y.U),U9);class z9 extends s0{description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var Fz=B1("T","U")((Y)=>Y.T.extract(Y.U),z9),F9=Y0.module({Exclude:zz,Extract:Fz,Omit:Jz,Partial:Qz,Pick:Hz,Record:Wz,Required:Uz});var w4=TZ({...X9,...F9,...gG,...xG,string:Z9,number:U6,object:G9,unknown:_9},{prereducedAliases:!0,name:"ark"}),g0=w4.export();Object.assign(z2.ambient,g0);z2.typeAttachments={string:g0.string.root,number:g0.number.root,bigint:g0.bigint,boolean:g0.boolean,symbol:g0.symbol,undefined:g0.undefined,null:g0.null,object:g0.object.root,unknown:g0.unknown.root,false:g0.false,true:g0.true,never:g0.never,arrayIndex:g0.Array.index,Key:g0.Key,Record:g0.Record,Array:g0.Array.root,Date:g0.Date};var E1=Object.assign(w4.type,z2.typeAttachments),Ez=w4.match,Oz=w4.generic,sI=w4.schema,Vz=w4.define,Dz=w4.declare;var O1=(Y)=>JSON.parse(Y),U0=(Y)=>JSON.stringify(Y),FT=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];function E2(Y){return V6(o0.STORE,Y,void 0)}function G8(Y){return D2(o0.STORE,Y)}function CZ(...Y){if(Y.length===2)return c1(o0.STORE,...Y);return c1(o0.STORE,...Y)}function F6(Y,Z){return R9(o0.STORE,Y,Z)}function E9(Y){return I9(Y,o0.STORE)}var BZ=(Y)=>(Z,X,_,G,...$)=>{console[Y](`${Z} ${X} "${_}" ${G}`,...$)},Lz={error:BZ("error"),info:BZ("info"),warn:BZ("warn")},O9=class{logLevel;filter;logger;constructor(Y,Z,X=Lz){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 Mz=class{store;constructor(Y=o0.STORE){this.store=Y,L9("root",Y)}allocate(Y,Z,X){return O2(this.store,Y,Z,X)}fuse(Y,Z,X){return M9(this.store,Y,Z,X)}deallocate(Y){V2(this.store,Y)}claim(Y,Z,X){return W8(this.store,Y,Z,X)}},V9=class{store;realm;constructor(Y=o0.STORE){this.store=Y,this.realm=new Mz(Y)}allocate(Y,Z,X){O2(this.store,Y,Z,X)}deallocate(Y){V2(this.store,Y)}claim(Y,Z,X){W8(this.store,Y,Z,X)}};function E6(Y){return SZ(o0.STORE,Y)}function $8(Y){return jZ(o0.STORE,Y)}var G4=class Y extends Set{mode="record";subject=new W0;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]=_})}view(){return 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:${U0(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:${U0(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 G of this.transactionUpdates)this.doStep(G);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){if(G===1){this.mode="playback";let W=Z.substring(X+1);return this.doStep(W),this.mode="record",this.cacheUpdateNumber=_,null}return this.cacheUpdateNumber+1}if(Math.abs(G)<this.cacheLimit){let W=this.cacheIdx+G;if(this.cache[W]===Z)return null;this.mode="playback";let Q=!1;while(!Q){this.cacheIdx%=this.cacheLimit;let U=this.cache[this.cacheIdx];if(this.cacheIdx--,!U)return"OUT_OF_RANGE";this.undo(U),Q=this.cacheIdx===W-1}let J=Z.substring(X+1);return this.doStep(J),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 G=Z.substring(X+1);return this.undoStep(G),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}};function D9(Y=Math.random){return Y().toString(36).slice(2)}function o(Y){while(Y.child!==null)Y=Y.child;return Y}var wz=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}},Rz={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"};function Nz(Y,Z){let X=U0(Z),_=`${Y.key}(${X})`,G=Rz[Y.type],$={key:_,type:G};return Object.assign($,{family:{key:Y.key,subKey:X}}),Object.assign($,{counterfeit:!0}),$}function $4(Y){let Z={key:Y.key,type:Y.type};if("family"in Y)Z.family=Y.family;return Z}var _1=class{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(Y,Z)=>`${Y}:${Z}`;warn;getRelatedKeys(Y){return this.relations.get(Y)}addRelation(Y,Z){let X=this.relations.get(Y),_=this.relations.get(Z);if(X)X.add(Z);else X=new Set([Z]),this.relations.set(Y,X);if(_)_.add(Y);else _=new Set([Y]),this.relations.set(Z,_)}deleteRelation(Y,Z){let X=this.relations.get(Y);if(X){if(X.delete(Z),X.size===0)this.relations.delete(Y);let _=this.relations.get(Z);if(_){if(_.delete(Y),_.size===0)this.relations.delete(Z)}}}replaceRelationsUnsafely(Y,Z){this.relations.set(Y,new Set(Z));for(let X of Z){let _=new Set().add(Y);this.relations.set(X,_)}}replaceRelationsSafely(Y,Z){let X=this.relations.get(Y),_=this.isAType?.(Y)?Y:void 0,G=_===void 0?Y:void 0;if(X)for(let $ of X){_??=$,G??=$;let W=this.relations.get($);if(W){if(W.size===1)this.relations.delete($);else W.delete(Y);this.contents.delete(this.makeContentKey(_,G))}}this.relations.set(Y,new Set(Z));for(let $ of Z){let W=this.relations.get($);if(W)W.add(Y);else W=new Set().add(Y),this.relations.set($,W)}}getContentInternal(Y){return this.contents.get(Y)}setContent(Y,Z){this.contents.set(Y,Z)}deleteContent(Y){this.contents.delete(Y)}constructor(Y,Z){if(this.a=Y.between[0],this.b=Y.between[1],this.cardinality=Y.cardinality,!Z?.externalStore)this.relations=new Map(Y.relations?.map(([X,_])=>[X,new Set(_)])),this.contents=new Map(Y.contents);if(this.isAType=Z?.isAType??null,this.isBType=Z?.isBType??null,this.isContent=Z?.isContent??null,Z?.makeContentKey)this.makeContentKey=Z.makeContentKey;if(Z?.externalStore){let X=Z.externalStore;if(this.has=(_,G)=>X.has(_,G),this.addRelation=(_,G)=>{X.addRelation(_,G)},this.deleteRelation=(_,G)=>{X.deleteRelation(_,G)},this.replaceRelationsSafely=(_,G)=>{X.replaceRelationsSafely(_,G)},this.replaceRelationsUnsafely=(_,G)=>{X.replaceRelationsUnsafely(_,G)},this.getRelatedKeys=(_)=>X.getRelatedKeys(_),X.getContent)this.getContentInternal=(_)=>{return X.getContent(_)},this.setContent=(_,G)=>{X.setContent(_,G)},this.deleteContent=(_)=>{X.deleteContent(_)};for(let[_,G]of Y.relations??[]){let $=this.isAType?.(_)?_:void 0,W=$===void 0?_:void 0;for(let H of G)$??=H,W??=H,this.addRelation($,W)}for(let[_,G]of Y.contents??[])this.setContent(_,G)}if(Z?.warn)this.warn=Z.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([Y,Z])=>[Y,[...Z]]),contents:[...this.contents.entries()]}}set(...Y){let Z,X,_;switch(Y.length){case 1:{let G=Y[0];Z=G[this.a],X=G[this.b],_=void 0;break}case 2:{let G=Y[0];if(typeof G==="string")[Z,X]=Y;else Z=G[this.a],X=G[this.b],_=Y[1];break}default:Z=Y[0],X=Y[1],_=Y[2];break}switch(this.cardinality){case"1:1":{let G=this.getRelatedKey(Z);if(G&&G!==X)this.delete(Z,G)}case"1:n":{let G=this.getRelatedKey(X);if(G&&G!==Z)this.delete(G,X)}break;case"n:n":}if(_){let G=this.makeContentKey(Z,X);this.setContent(G,_)}return this.addRelation(Z,X),this}delete(Y,Z){Z=typeof Z==="string"?Z:Y[this.b];let X=typeof Y==="string"?Y:Y[this.a];if(X===void 0&&typeof Z==="string"){let _=this.getRelatedKeys(Z);if(_)for(let G of _)this.delete(G,Z)}if(typeof X==="string"&&Z===void 0){let _=this.getRelatedKeys(X);if(_)for(let G of _)this.delete(X,G)}if(typeof X==="string"&&typeof Z==="string"){this.deleteRelation(X,Z);let _=this.makeContentKey(X,Z);this.deleteContent(_)}return this}getRelatedKey(Y){let Z=this.getRelatedKeys(Y);if(Z){if(Z.size>1)this.warn?.(`${Z.size} related keys were found for key "${Y}": (${[...Z].map((_)=>`"${_}"`).join(", ")}). Only one related key was expected.`);let X;for(let _ of Z){X=_;break}return X}}replaceRelations(Y,Z,X){let _=!Array.isArray(Z),G=_?Object.keys(Z):Z;if(X?.reckless)this.replaceRelationsUnsafely(Y,G);else this.replaceRelationsSafely(Y,G);if(_)for(let $ of G){let W=this.makeContentKey(Y,$),H=Z[$];this.setContent(W,H)}return this}getContent(Y,Z){let X=this.makeContentKey(Y,Z);return this.getContentInternal(X)}getRelationEntries(Y){let Z=Y[this.a],X=Y[this.b];if(Z!==void 0&&X===void 0){let _=this.getRelatedKeys(Z);if(_)return[..._].map((G)=>{return[G,this.getContent(Z,G)]})}if(Z===void 0&&X!==void 0){let _=this.getRelatedKeys(X);if(_)return[..._].map((G)=>{return[G,this.getContent(G,X)]})}return[]}has(Y,Z){if(Z)return this.getRelatedKeys(Y)?.has(Z)??!1;return this.relations.has(Y)}},W0=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)}},Iz=class extends W0{state;constructor(Y){super();this.state=Y}next(Y){this.state=Y,super.next(Y)}},Tz=(Y,Z)=>{let X=o(Y);if(X.operation.open)return X.operation.prev.get(Z.key);return X.valueMap.get(Z.key)},vZ=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}};function R4(Y){return"epoch"in Y.transactionMeta}function G1(Y){return"phase"in Y.transactionMeta}var q9=(Y,Z)=>{if(Y.operation.open){let X=performance.now();return Y.logger.info("\u2757",Z.type,Z.key,`deferring setState at T-${X} until setState for "${Y.operation.token.key}" is done`),X}Y.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:Z},Y.logger.info("\u2B55",Z.type,Z.key,`operation start in store "${Y.config.name}"${!G1(Y)?"":` ${Y.transactionMeta.phase} "${Y.transactionMeta.update.key}"`}`)},j9=(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)},S9=(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)},U8=(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 xZ(Y,Z){let X=o(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(S9(X,W))continue;v9(X,W),U8(X,W)}}}function P9(Y,Z){let X=o(Y),_=X.selectorGraph.getRelationEntries({upstreamSelectorKey:Z}).filter(([G,{source:$}])=>$===Z);for(let[G]of _){if(S9(X,G))continue;v9(X,G),U8(X,G),P9(Y,G)}}function o1(Y,Z,X){let{key:_,subject:G,type:$}=Z,W=Y.valueMap.get(_);if(W instanceof vZ&&!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 vZ(X);return Y.valueMap.set(_,H),H.then(function Q(J){if(Y.valueMap.get(_)===H){switch(q9(Y,Z),o1(Y,Z,J),$){case"atom":case"mutable_atom":xZ(Y,Z);break;case"readonly_pure_selector":case"writable_pure_selector":P9(Y,_);break}j9(Y),G.next({newValue:J,oldValue:H})}}).catch((Q)=>{Y.logger.error("\uD83D\uDCA5","state",_,"rejected:",Q)}),H}return Y.valueMap.set(_,X),X}function Kz(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"&&G1(Y)){let $=Z,{parent:W}=Y;if(Y.valueMap.hasOwn($.key))return _;let H=W.valueMap.get($.key);Y.logger.info("\uD83D\uDCC3","atom",$.key,"copying");let Q=H.toJSON(),J=$.class.fromJSON(Q);Y.valueMap.set($.key,J),new uZ($,W),_=J}return _}function v9(Y,Z){let X=Y.valueMap.get(Z);if(X instanceof vZ){let _=Y.writableSelectors.get(Z)??Y.readonlySelectors.get(Z);if(_)_.get();return}if(Y.operation.open)Y.operation.prev.set(Z,X);Y.valueMap.delete(Z),Y.logger.info("\uD83D\uDDD1","state",Z,"evicted")}function L2(Y,Z,X){if(Y.valueMap.has(Z.key))return Kz(Y,Z,X);let{key:_}=Z;switch(Z.type){case"readonly_held_selector":case"readonly_pure_selector":case"writable_held_selector":case"writable_pure_selector":return Y.logger.info("\uD83E\uDDEE",Z.type,_,"computing value"),Z.get();case"atom":{let G;if(Z.default instanceof Function)G=Z.default();else G=Z.default;let $=o1(Y,Z,G);return Y.logger.info("\uD83D\uDC81","atom",Z.key,"could not find cached value; using default",G),$}case"mutable_atom":{let G=new Z.class,$=o1(Y,Z,G);return Y.logger.info("\uD83D\uDC81","mutable_atom",Z.key,"could not find cached value; using default",G),$}}}var hZ=(Y)=>(Z)=>Y instanceof Function?Y(Z):Y;function Bz(Y,Z){if("internalRoles"in Y===!1)return!1;return Y.internalRoles.includes(Z)}var Cz=(Y,Z,X)=>{switch(Z.type){case"mutable_atom":Y.logger.info("\uD83D\uDCE2",Z.type,Z.key,"is now (",X.newValue,") subscribers:",Z.subject.subscribers);break;case"atom":case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":Y.logger.info("\uD83D\uDCE2",Z.type,Z.key,"went (",X.oldValue,"->",X.newValue,") subscribers:",Z.subject.subscribers)}Z.subject.next(X)},fZ=(Y,Z,X)=>{let _=L2(Y,Z,"mut"),G=hZ(X)(_);Y.logger.info("\uD83D\uDCDD","atom",Z.key,"set to",G),G=o1(Y,Z,G),U8(Y,Z.key),xZ(Y,Z);let $={oldValue:_,newValue:G};if(!G1(Y)){Cz(Y,Z,$);return}if(Y.on.transactionApplying.state===null){let{key:W}=Z;if(ez($.newValue))return;let H={type:"atom_update",key:W,...$};if(Z.family)H.family=Z.family;Y.transactionMeta.update.updates.push(H),Y.logger.info("\uD83D\uDCC1","atom",W,"stowed (",$.oldValue,"->",$.newValue,")")}else if(Bz(Z,"tracker:signal")){let W=Z.key.slice(1),H=Y.atoms.get(W);if(L2(Y,H,"mut").do($.newValue)===null===!0)xZ(Y,H)}};function T9(Y,Z){switch(Z.type){case"mutable_atom":fZ(Y,Z,new Z.class);return;case"atom":{let X=Z.default;if(X instanceof Function)X=X();fZ(Y,Z,X)}}}function qz(Y,Z){switch(Z.type){case"atom":case"mutable_atom":T9(Y,Z);break;case"writable_pure_selector":case"writable_held_selector":{let X=L6(Y,Z.key);for(let _ of X.values())T9(Y,_)}break}}function jz(Y,Z){if(Z.family){let X=Y.families.get(Z.family.key);if(X)return X}}var x9=(Y,Z,X)=>{switch(Z.type){case"atom":case"mutable_atom":fZ(Y,Z,X);break;case"writable_pure_selector":case"writable_held_selector":Z.set(X);break}};function w1(Y,...Z){let X,_,G,$;if(Z.length===2){if(X=Z[0],$=Z[1],X.family)_=jz(Y,X),G=O1(X.family.subKey),X=Q0(Y,_,G)}else _=Z[0],G=Z[1],$=Z[2],X=Q0(Y,_,G);let W=$===D6?"reset":"set";if("counterfeit"in X&&"family"in X){let J=X.family.subKey,U=Y.disposalTraces.buffer.find((E)=>E?.key===J);Y.logger.error("\u274C",X.type,X.key,"could not be",W,`because it was not found in the store "${Y.config.name}".`,U?`This state was previously disposed:
48
- ${U.trace}`:"No previous disposal trace was found.");return}let H=q9(Y,X);if(H){let J=Y.on.operationClose.subscribe(`waiting to ${W} "${X.key}" at T-${H}`,function U(){J(),Y.logger.info("\uD83D\uDFE2",X.type,X.key,"resuming deferred",W,`from T-${H}`),w1(Y,X,$)});return}let Q=u0(Y,X);if($===D6)qz(Y,Q);else x9(Y,Q,$);j9(Y)}var D6=Symbol("RESET");function O6(Y,...Z){let X,_,G;if(Z.length===1)X=Z[0],w1(Y,X,D6);else _=Z[0],G=Z[1],w1(Y,_,G,D6)}var f9=(Y,Z)=>o(Y).atoms.has(Z),Sz=(Y,Z)=>o(Y).writableSelectors.has(Z),Pz=(Y,Z)=>o(Y).readonlySelectors.has(Z),vz=(Y,Z)=>f9(Y,Z)||Sz(Y,Z)||Pz(Y,Z),K9=(Y,Z)=>{return o(Y).selectorGraph.getRelationEntries({downstreamSelectorKey:Z}).filter(([_,{source:G}])=>G!==Z).map(([_,{source:G}])=>G).filter((_)=>vz(Y,_))},L6=(Y,Z,X=new Set)=>{let _=K9(Y,Z),G=new Map;while(_.length>0){let $=_.pop();if(X.has($))continue;if(X.add($),f9(Y,$)){let W=Y.atoms.get($);G.set(W.key,W)}else _.push(...K9(Y,$))}return G},xz=(Y,Z,X,_,G)=>{let $=o(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=L6(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)},M6=(Y,Z,X,_)=>({get:(...G)=>{let $=o(Y),W;if(G.length===2){let[U,E]=G;W=Q0(Y,U,E)}else[W]=G;let H=u0(Y,W),Q=L2(Y,H),J=W.key;return Y.logger.info("\uD83D\uDD0C",Z,X,`registers dependency ( "${J}" =`,Q,")"),$.selectorGraph.set({upstreamSelectorKey:J,downstreamSelectorKey:X},{source:W.key}),xz(Y,Z,X,W,_),Q},set:(...G)=>{let $,W;if(G.length===2)$=G[0],W=G[1];else{let J=G[0],U=G[1];W=G[2],$=Q0(Y,J,U)}let H=o(Y),Q=u0(H,$);x9(H,Q,W)},find:(...G)=>Q0(Y,...G),json:(G)=>b4(Y,G)}),kZ=(Y,Z,X)=>{let _=o(Y),G=new W0,$=new Set,{key:W,const:H}=Z,Q="readonly_held_selector",{get:J,find:U,json:E}=M6(_,"readonly_held_selector",W,$),L={...Z,type:"readonly_held_selector",subject:G,install:(M)=>kZ(M,Z,X),get:()=>{let M=o(Y),y=M.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[k,{source:h}]of y)if(h!==W)M.selectorGraph.delete(k,W);return M.selectorAtoms.delete(W),Z.get({get:J,find:U,json:E},H),o1(o(Y),L,H),$.clear(),H},...X&&{family:X}};_.readonlySelectors.set(W,L),Y.logger.info("\u2728","readonly_held_selector",W,"=",H);let R={key:W,type:"readonly_held_selector"};if(X)R.family=X;return R},bZ=(Y,Z,X)=>{let _=o(Y),G=new W0,$=new Set,W=Z.key,H="readonly_pure_selector",{get:Q,find:J,json:U}=M6(_,"readonly_pure_selector",W,$),V={...Z,type:"readonly_pure_selector",subject:G,install:(R)=>bZ(R,Z,X),get:()=>{let R=o(Y),M=R.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[h,{source:f}]of M)if(f!==W)R.selectorGraph.delete(h,W);R.selectorAtoms.delete(W);let y=Z.get({get:Q,find:J,json:U}),k=o1(R,V,y);return Y.logger.info("\u2728","readonly_pure_selector",W,"=",k),$.clear(),k},...X&&{family:X}};_.readonlySelectors.set(W,V);let L={key:W,type:"readonly_pure_selector"};if(X)L.family=X;return L},fz=(Y)=>{let Z=o(Y);if(!G1(Z)){Y.logger.warn("\uD83D\uDC1E","transaction","???","abortTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}Y.logger.info("\uD83E\uDE82","transaction",Z.transactionMeta.update.key,"Aborting transaction"),Z.parent.child=null};function T0(Y){return Y[0].toUpperCase()+Y.slice(1)}function k4(Y){return Y.type.split("_").map(T0).join(" ")}var yZ=class extends Error{constructor(Y,Z){super(`${k4(Y)} ${U0(Y.key)} not found in store "${Z.config.name}".`)}};function qZ(Y,Z,X){return(..._)=>{let G=u0(Y,Z);if(G)return G.run(_,X);throw new yZ(Z,Y)}}function hz(Y,Z,X){let{key:_,newValue:G,oldValue:$}=Z,W=Y==="newValue"?G:$,H={key:_,type:"atom"};if(Z.family)Object.assign(H,{family:Z.family});w1(X,H,W)}function kz(Y){let{stack:Z}=Y;if(Z)return`
47
+ `)+"}");class a8{config;resolvedConfig;name;get[Z1](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(Y,Z){if(this.config=m2(N.config,Z),this.resolvedConfig=m2(N.resolvedConfig,Z),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(XZ).length}`,this.name in XZ)R(`A Scope already named ${this.name} already exists`);XZ[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)R(m_($));this.aliases[$]=G}else{if($ in this.aliases)R(m_(_));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}}u_??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[u_.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=N.intrinsic?o(N.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 c8(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(l2(Y),Y,Z);preparseNode(Y,Z,X){let _=typeof Y==="string"?Y:l2(Z,Y);if(D0(Z)&&Z.kind===_)return Z;if(_==="alias"&&!X?.prereduced){let{reference:W}=t2.implementation.normalize(Z,this);if(W.startsWith("$")){let H=this.resolveRoot(W.slice(1));Z=H,_=H.kind}}else if(_==="union"&&J1(Z,"object")){let W=SQ(Z);if(W?.length===1)Z=W[0],_=l2(Z)}if(D0(Z)&&Z.kind===_)return Z;let $=G2[_].normalize?.(Z,this)??Z;if(D0($))return $.kind===_?$:PQ(_,$.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)??R($Z(Y))}maybeResolveRoot(Y){let Z=this.maybeResolve(Y);if(y(Z,"generic"))return;return Z}maybeResolveSubalias(Y){return _Z(this.aliases,Y)??_Z(this.ambient,Y)}get ambient(){return N.ambient}maybeResolve(Y){let Z=this.resolutions[Y];if(Z){if(typeof Z!=="string")return this.bindReference(Z);let _=X1[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",X1[G.id]=G,X1[_.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)R(n_(Y));return this.resolutions[Y]=this.bindReference(X.root)}return this.resolutions[Y]=this.parse(X,{alias:Y})}createParseContext(Y){let Z=Y.id??gY(Y.prefix);return X1[Z]=Object.assign(Y,{[Z1]:"context",$:this,id:Z,phase:"unresolved"})}traversal(Y){return new f1(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")?ZZ(_,this):d_(this.maybeResolve(X))}for(let X of this.lazyResolutions)X.resolution;if(this._exportedResolutions=r_(this,this._exports),this._json=i_(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let X=o_(this.references);this.precompilation=X.write(c_,4),l_(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(_),$=pY(G),W=this.bindReference($);return X1[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);X1[_.id]=_;let G=this.bindReference(this.parseOwnDefinitionFormat(Y,_));if(G.isCyclic)G=V_(G,_.id);return X1[_.id]=G,G}finalize(Y){if(d_(Y),!Y.precompilation&&!this.resolvedConfig.jitless)vQ(Y.references);return Y}}class GZ extends a8{parseOwnDefinitionFormat(Y,Z){return pY(Z)}preparseOwnDefinitionFormat(Y,Z){return this.preparseNode(l2(Y),Y,Z)}preparseOwnAliasEntry(Y,Z){return[Y,Z]}normalizeRootScopeValue(Y){return Y}}var d_=(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},i_=(Y)=>o(Y,(Z,X)=>[Z,y(X,"root")||y(X,"generic")?X.json:y(X,"module")?i_(X):_0(`Unexpected resolution ${i(X)}`)]),_Z=(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 R(xQ(_));let $=Z.slice(X+1),W=G[$];if(W===void 0)return _Z(G,$);if(y(W,"root")||y(W,"generic"))return W;if(y(W,"module"))return W.root??R(n_(Z));_0(`Unexpected resolution for alias '${Z}': ${i(W)}`)},e8=(Y,Z)=>new GZ(Y,Z),Y8=new GZ({});var r_=(Y,Z)=>{let X={};for(let _ in Z){let G=Z[_];if(y(G,"module")){let $=r_(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},$Z=(Y)=>`'${Y}' is unresolvable`,xQ=(Y)=>`'${Y}' must reference a module to be accessed using dot syntax`,n_=(Y)=>`Reference to submodule '${Y}' must specify an alias`;Y8.export();var{schema:H0,node:J2,defineSchema:qw,generic:K1}=Y8;var WZ="^(?:0|[1-9]\\d*)$",fQ=new RegExp(WZ),Pw=C0(fQ);var s_=e8({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();N.intrinsic={...s_};var t_=e8({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:WZ}},{prereducedAliases:!0}).export();Object.assign(N.intrinsic,t_);var hQ=e8({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),d={...s_,...t_,...hQ,emptyStructure:J2("structure",{},{prereduced:!0})};N.intrinsic={...d};var e_=(Y)=>typeof Y==="string"&&Y[0]==="d"&&(Y[1]==="'"||Y[1]==='"')&&Y.at(-1)===Y[1],a_=(Y)=>Y.toString()!=="Invalid Date",YG=(Y)=>Y.slice(2,-1),HZ=(Y)=>`'${Y}' could not be parsed by the Date constructor`,ZG=(Y,Z)=>kQ(Y,Z),kQ=(Y,Z)=>{let X=new Date(Y);if(a_(X))return X;let _=xX(Y);if(_!==void 0){let G=new Date(_);if(a_(G))return G}return Z?R(Z===!0?HZ(Y):Z):void 0};var JZ=(Y,Z)=>{let X=Y.scanner.shiftUntil(bQ[_G[Z]]);if(Y.scanner.lookahead==="")return Y.error(gQ(X,Z));if(Y.scanner.shift(),Z==="/"){try{new RegExp(X)}catch(_){R(String(_))}Y.root=Y.ctx.$.node("intersection",{domain:"string",pattern:X},{prereduced:!0})}else if(y0(Z,QZ))Y.root=Y.ctx.$.node("unit",{unit:X});else{let _=ZG(X,HZ(X));Y.root=Y.ctx.$.node("unit",{meta:X,unit:_})}},QZ={"'":1,'"':1},XG={"/":1,"'":1,'"':1},_G={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},bQ={"'":(Y)=>Y.lookahead==="'",'"':(Y)=>Y.lookahead==='"',"/":(Y)=>Y.lookahead==="/"},yQ={'"':"double-quote","'":"single-quote","/":"forward slash"},gQ=(Y,Z)=>`${Z}${Y} requires a closing ${yQ[_G[Z]]}`;var GG=(Y)=>`Private type references should not include '#'. Use '${Y}' instead.`,Y6="Optional definitions like 'string?' are only valid as properties in an object or tuple",Z6="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var $G={">":!0,">=":!0},WG={"<":!0,"<=":!0};var Q2={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},HG=(Y)=>`Unmatched )${Y===""?"":` before ${Y}`}`,X6=(Y)=>`Missing ${Y}`,JG=(Y,Z)=>`Left bounds are only valid when paired with right bounds (try ...${Z}${Y})`,_6=(Y)=>`Left-bounded expressions must specify their limits using < or <= (was ${Y})`,QG=(Y,Z,X,_)=>`An expression may have at most one left bound (parsed ${Y}${Q2[Z]}, ${X}${Q2[_]})`;var UG=(Y,Z,X)=>zG(Y,Z,X,[]),zG=(Y,Z,X,_)=>{let G=X.parseUntilFinalizer();if(_.push(G.root),G.finalizer===">"){if(_.length!==Z.params.length)return X.error(UZ(Y,Z.names,_.map(($)=>$.expression)));return _}if(G.finalizer===",")return zG(Y,Z,X,_);return G.error(X6(">"))},UZ=(Y,Z,X)=>`${Y}<${Z.join(", ")}> requires exactly ${Z.length} args (got ${X.length}${X.length===0?"":`: ${X.join(", ")}`})`;var zZ=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator();if(Z==="keyof")Y.addPrefix("keyof");else Y.root=mQ(Y,Z)},pQ=(Y,Z,X)=>{if(X.scanner.shiftUntilNonWhitespace(),X.scanner.shift()!=="<")return X.error(UZ(Y,Z.names,[]));let G=UG(Y,Z,X);return Z(...G)},mQ=(Y,Z)=>uQ(Y,Z)??dQ(Y,Z)??Y.error(Z===""?Y.scanner.lookahead==="#"?GG(Y.shiftedByOne().scanner.shiftUntilNextTerminator()):FZ(Y):$Z(Z)),uQ=(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 pQ(Z,X,Y);return R(`Unexpected resolution ${i(X)}`)},dQ=(Y,Z)=>{let X=fX(Z);if(X!==void 0)return Y.ctx.$.node("unit",{unit:X});let _=kX(Z);if(_!==void 0)return Y.ctx.$.node("unit",{unit:_})},FZ=(Y)=>{let Z=Y.previousOperator();return Z?EZ(Z,Y.scanner.unscanned):cQ(Y.scanner.unscanned)},EZ=(Y,Z="")=>`Token '${Y}' requires a right operand${Z?` before '${Z}'`:""}`,cQ=(Y)=>`Expected an expression${Y?` before '${Y}'`:""}`;var OZ=(Y)=>Y.scanner.lookahead===""?Y.error(FZ(Y)):Y.scanner.lookahead==="("?Y.shiftedByOne().reduceGroupOpen():Y.scanner.lookaheadIsIn(XG)?JZ(Y,Y.scanner.shift()):Y.scanner.lookaheadIsIn(O4)?OZ(Y.shiftedByOne()):Y.scanner.lookahead==="d"?Y.scanner.nextLookahead in QZ?JZ(Y,`${Y.scanner.shift()}${Y.scanner.shift()}`):zZ(Y):zZ(Y);class _4 extends AY{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,...O4};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(Y,Z)=>Y===">"?Z[0]==="="?Z[1]==="=":Z.trimStart()===""||y0(Z.trimStart()[0],_4.terminatingChars):Y==="="?Z[0]!=="=":Y===","||Y==="?"}var EG=(Y,Z)=>{let X=lQ(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 iQ(Y,X)},OG={"<":1,">":1,"=":1},lQ=(Y,Z)=>Y.scanner.lookaheadIs("=")?`${Z}${Y.scanner.shift()}`:Z;var FG=(Y,Z,X,_)=>{if(X.extends(N.intrinsic.number)){if(typeof Z!=="number")return R(VZ(Y,Z,_));return Y==="=="?["min","max"]:Y[0]===">"?["min"]:["max"]}if(X.extends(N.intrinsic.lengthBoundable)){if(typeof Z!=="number")return R(VZ(Y,Z,_));return Y==="=="?["exactLength"]:Y[0]===">"?["minLength"]:["maxLength"]}if(X.extends(N.intrinsic.Date))return Y==="=="?["after","before"]:Y[0]===">"?["after"]:["before"];return R(X_(X.expression))},oQ=(Y)=>({rule:e_(Y.limit)?YG(Y.limit):Y.limit,exclusive:Y.comparator.length===1}),iQ=(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(VZ(Z,$,"right"));let W=G.unit,H=Z.length===1,Q=FG(Z,typeof W==="number"?W:$,X,"right");for(let U of Q)Y.constrainRoot(U,Z==="=="?{rule:W}:{rule:W,exclusive:H});if(!Y.branches.leftBound)return;if(!y0(Z,WG))return Y.error(_6(Z));let J=FG(Y.branches.leftBound.comparator,Y.branches.leftBound.limit,X,"left");Y.constrainRoot(J[0],oQ(Y.branches.leftBound)),Y.branches.leftBound=null},VZ=(Y,Z,X)=>`Comparator ${X==="left"?Q2[Y]:Y} must be ${X==="left"?"preceded":"followed"} by a corresponding literal (was ${Z})`;var VG=(Y)=>{Y.scanner.shiftUntilNonWhitespace();let Z=Y.scanner.shiftUntilNextTerminator();Y.root=Y.root.brand(Z)};var LG=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator(),X=hX(Z,{errorOnFail:DG(Z)});if(X===0)Y.error(DG(0));Y.root=Y.root.constrain("divisor",X)},DG=(Y)=>`% operator must be followed by a non-zero integer literal (was ${Y})`;var DZ=(Y)=>{let Z=Y.scanner.shift();return Z===""?Y.finalize(""):Z==="["?Y.scanner.shift()==="]"?Y.setRoot(Y.root.array()):Y.error(rQ):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):y0(Z,OG)?EG(Y,Z):Z==="%"?LG(Y):Z==="#"?VG(Y):(Z in O4)?DZ(Y):Y.error(G6(Z))},G6=(Y,Z="")=>`'${Y}' is not allowed here${Z&&` (should be ${Z})`}`,rQ="Missing expected ']'";var MG=(Y)=>{let Z=Y.unsetRoot();Y.parseOperand();let X=Y.unsetRoot();if(!X.hasKind("unit"))return Y.error(nQ(X.expression));let _=X.unit instanceof Date?()=>new Date(X.unit):X.unit;return[Z,"=",_]},nQ=(Y)=>`Default value '${Y}' must a literal value`;var LZ=(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 U2(new _4(Y),Z),G=sQ(_);if(_.finalizer===">")R(G6(">"));return G},sQ=(Y)=>{Y.parseOperand();let Z=Z8(Y).root;if(!Z)return _0(`Root was unexpectedly unset after parsing string '${Y.scanner.scanned}'`);if(Y.finalizer==="=")Z=MG(Y);else if(Y.finalizer==="?")Z=[Z,"?"];if(Y.scanner.shiftUntilNonWhitespace(),Y.scanner.lookahead)R(G6(Y.scanner.lookahead));return Z},Z8=(Y)=>{while(Y.finalizer===void 0)tQ(Y);return Y},tQ=(Y)=>Y.hasRoot()?Y.parseOperator():Y.parseOperand();class U2{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 R(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(X6(")"));this.finalizeBranches(),this.finalizer=Y}reduceLeftBound(Y,Z){let X=Q2[Z];if(!y0(X,$G))return this.error(_6(Z));if(this.branches.leftBound)return this.error(QG(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(HG(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 Z8(new U2(this.scanner,this.ctx))}parseOperator(){return DZ(this)}parseOperand(){return OZ(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(JG(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 aQ="An empty string is not a valid generic parameter name",$6=(Y,Z,X)=>{Y.shiftUntilNonWhitespace();let _=Y.shiftUntilNextTerminator();if(_===""){if(Y.lookahead===""&&Z.length)return Z;return R(aQ)}return Y.shiftUntilNonWhitespace(),eQ(Y,_,Z,X)},AG="extends ",eQ=(Y,Z,X,_)=>{if(Y.shiftUntilNonWhitespace(),Y.unscanned.startsWith(AG))Y.jumpForward(AG.length);else{if(Y.lookahead===",")Y.shift();return X.push(Z),$6(Y,X,_)}let G=Z8(new U2(Y,_));return X.push([Z,G.root]),$6(Y,X,_)};class MZ extends x1{$;constructor(Y){super((...Z)=>new X8(Y)(...Z),{bind:Y});this.$=Y}in(Y){return new X8(this.$,Y===void 0?void 0:this.$.parse(Y))}at(Y,Z){return new X8(this.$).at(Y,Z)}case(Y,Z){return new X8(this.$).case(Y,Z)}}class X8 extends x1{$;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)R(ZU);if(this.branches.length)R(YU);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)R("default may only be specified as the last key of a switch definition");return this.default(_)}if(typeof _!=="function")return R(`Value for case "${X}" must be a function (was ${b0(_)})`);this.caseEntry(X,_)}return this}default(Y){if(typeof Y==="function")this.case(d.unknown,Y);let Z={branches:this.branches,ordered:!0};if(Y==="never"||Y==="assert")Z.meta={onFail:wG};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:wG},"self");return this.$.finalize(_)}}var wG=(Y)=>Y.throw(),YU="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",ZU="At most one key matcher may be specified per expression";var W6=(Y,Z)=>{if(F0(Y)){if(Y[1]==="=")return[Z.$.parseOwnDefinitionFormat(Y[0],Z),"=",Y[2]];if(Y[1]==="?")return[Z.$.parseOwnDefinitionFormat(Y[0],Z),"?"]}return H6(Y,Z)},RG="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",NG="Only required keys may specify default values, e.g. { value: 'number = 0' }";var IG=(Y,Z)=>{let X,_={},G=q4(Y);for(let[W,H]of G){let Q=GU(W);if(Q.kind==="spread"){if(!d1(_))return R(_U);let L=Z.$.parseOwnDefinitionFormat(H,Z);if(L.equals(d.object))continue;if(!L.hasKind("intersection")||!L.basis?.equals(d.object))return R($U(L.expression));X=L.structure;continue}if(Q.kind==="undeclared"){if(H!=="reject"&&H!=="delete"&&H!=="ignore")R(XU(H));_.undeclared=H;continue}let J=W6(H,Z),U=Q;if(Q.kind==="required"){if(!F0(J))AZ(_,"required",{key:Q.normalized,value:J},Z);else AZ(_,"optional",J[1]==="="?{key:Q.normalized,value:J[0],default:J[2]}:{key:Q.normalized,value:J[0]},Z);continue}if(F0(J)){if(J[1]==="?")R(RG);if(J[1]==="=")R(NG)}if(Q.kind==="optional"){AZ(_,"optional",{key:Q.normalized,value:J},Z);continue}let E=Z.$.parseOwnDefinitionFormat(U.normalized,Z),V=t8(E,J,Z.$);if(V.index)_.index=Z0(_.index,V.index);if(V.required)_.required=Z0(_.required,V.required)}let $=Z.$.node("structure",_);return Z.$.parseSchema({domain:"object",structure:X?.merge($)??$})},AZ=(Y,Z,X,_)=>{Y[Z]=Z0(Y[Z],_.$.node(Z,X))},XU=(Y)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${i(Y)})`,_U="Spread operator may only be used as the first key in an object",GU=(Y)=>typeof Y==="symbol"?{kind:"required",normalized:Y}:Y.at(-1)==="?"?Y.at(-2)===f2?{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]===f2&&Y[1]==="["&&Y.at(-1)==="]"?{kind:"required",normalized:Y.slice(1)}:Y==="..."?{kind:"spread"}:Y==="+"?{kind:"undeclared"}:{kind:"required",normalized:Y==="\\..."?"...":Y==="\\+"?"+":Y},$U=(Y)=>`Spread operand must resolve to an object literal type (was ${Y})`;var KG=(Y,Z)=>VU(Y)?jG[Y[0]](Y,Z):EU(Y)?qG[Y[1]](Y,Z):null,WU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[1],Z).keyof(),wZ=(Y,Z)=>{if(Y[2]===void 0)return R(EZ(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]==="&"?F1(X,_,Z.$):c2(X,_,Z.$);if(G instanceof P)return G.throw();return G},HU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).array(),JU=(Y,Z)=>{if(typeof Y[2]!=="function")return R(BG("=>",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).pipe(Y[2])},BG=(Y,Z)=>`${Y===":"?"Narrow":"Morph"} expression requires a function following '${Y}' (was ${typeof Z})`,QU=(Y,Z)=>{if(typeof Y[2]!=="function")return R(BG(":",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).constrain("predicate",Y[2])},UU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).configureReferences(Y[2],"shallow"),CG=(Y)=>Y,zU=CG({"[]":HU,"?":()=>R(Y6)}),FU=CG({"|":wZ,"&":wZ,":":QU,"=>":JU,"|>":wZ,"@":UU,"=":()=>R(Z6)}),qG={...zU,...FU},EU=(Y)=>qG[Y[1]]!==void 0,OU=(Y)=>Y,jG=OU({keyof:WU,instanceof:(Y,Z)=>{if(typeof Y[1]!=="function")return R(TG(v2(Y[1])));let X=Y.slice(1).map((_)=>typeof _==="function"?Z.$.node("proto",{proto:_}):R(TG(v2(_))));return X.length===1?X[0]:Z.$.node("union",{branches:X})},"===":(Y,Z)=>Z.$.units(Y.slice(1))}),VU=(Y)=>jG[Y[0]]!==void 0,TG=(Y)=>`Expected a constructor following 'instanceof' operator (was ${Y})`;var vG=(Y,Z)=>{let X=[{}],_=0;while(_<Y.length){let G=!1;if(Y[_]==="..."&&_<Y.length-1)G=!0,_++;let $=W6(Y[_],Z),[W,H,Q]=!F0($)?[$]:$;if(_++,G){if(!W.extends(N.intrinsic.Array))return R(MU(W.expression));X=X.flatMap((J)=>W.distribute((U)=>LU(p8(J),U)))}else X=X.map((J)=>{if(H==="?")return xG(J,W);if(H==="=")return DU(J,W,Q);return RZ(J,W)})}return Z.$.parseSchema(X.map((G)=>d1(G)?{proto:Array,exactLength:0}:{proto:Array,sequence:G}))},RZ=(Y,Z)=>{if(Y.defaultables||Y.optionals)return R(Y.variadic?aY:AU);if(Y.variadic)Y.postfix=Z0(Y.postfix,Z);else Y.prefix=Z0(Y.prefix,Z);return Y},xG=(Y,Z)=>{if(Y.variadic)return R(fG);return Y.optionals=Z0(Y.optionals,Z),Y},DU=(Y,Z,X)=>{if(Y.variadic)return R(fG);if(Y.optionals)return R(wU);return Y.defaultables=Z0(Y.defaultables,[[Z,X]]),Y},SG=(Y,Z)=>{if(Y.postfix)R(PG);if(Y.variadic){if(!Y.variadic.equals(Z))R(PG)}else Y.variadic=Z.internal;return Y},LU=(Y,Z)=>{let X=Z.select({method:"find",kind:"sequence"});if(!X)return SG(Y,N.intrinsic.unknown);if(X.prefix)for(let _ of X.prefix)RZ(Y,_);if(X.optionals)for(let _ of X.optionals)xG(Y,_);if(X.variadic)SG(Y,X.variadic);if(X.postfix)for(let _ of X.postfix)RZ(Y,_);return Y},MU=(Y)=>`Spread element must be an array (was ${Y})`,PG="A tuple may have at most one variadic element",AU="A required element may not follow an optional element",fG="An optional element may not follow a variadic element";var wU="A defaultable element may not follow an optional element without a default";var RU={},H6=(Y,Z)=>{if(typeof Y==="string"){if(Z.args&&Object.keys(Z.args).some((_)=>Y.includes(_)))return LZ(Y,Z);let X=RU[Z.$.name]??={};return X[Y]??=LZ(Y,Z)}return J1(Y,"object")?NU(Y,Z):R(NZ(b0(Y)))},NU=(Y,Z)=>{let X=P2(Y);switch(X){case void 0:if(y(Y,"root"))return Y;return IG(Y,Z);case"Array":return IU(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 R(NZ("Function"))}default:return R(NZ(X??i(Y)))}},IU=(Y,Z)=>KG(Y,Z)??vG(Y,Z),NZ=(Y)=>`Type definitions must be strings or objects (was ${Y})`;class IZ extends x1{constructor(Y){let Z=Object.assign({errors:U1,hkt:s0,$: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 z2=N;class J6 extends a8{get ambientAttachments(){if(!z2.typeAttachments)return;return this.cacheGetter("ambientAttachments",o(z2.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)!==">")R("'>' 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 eX($,Z,this)}]}parseGenericParams(Y,Z){return $6(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 _=H6(Y,Z);if(F0(_)){if(_[1]==="=")return R(Z6);if(_[1]==="?")return R(Y6)}return _}unit=(Y)=>this.units([Y]);valueOf=(Y)=>this.units(AX(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 MZ(this);declare=()=>({type:this.type});define(Y){return Y}type=new IZ(this);static scope=(Y,Z={})=>new J6(Y,Z);static module=(Y,Z={})=>this.scope(Y,Z).export()}var TZ=Object.assign(J6.scope,{define:(Y)=>Y}),e=J6;class hG extends s0{description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var TU=K1(["base",d.object],["props",d.object])((Y)=>Y.base.merge(Y.props),hG),kG=e.module({Key:d.key,Merge:TU});class bG extends s0{}var KU=K1("element")((Y)=>{let Z=Y.element.exclude(d.Array),X=Z.array();return Z.rawOr(X).pipe(F4).distribute((_)=>_.assertHasKind("morph").declareOut(X),H0)},bG),yG=e.module({root:d.Array,readonly:"root",index:d.nonNegativeIntegerString,liftFrom:KU},{name:"Array"});var KZ=H0(["string",S4.FileConstructor]),BU=KZ.rawOr(KZ.array()),gG=H0({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:BU}}),pG=e.module({root:["instanceof",FormData],value:KZ,parsed:gG,parse:H0({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 S4.FileConstructor)Z[X]=[G,_];else G.push(_)}else Z[X]=_;return Z},declaredOut:gG})},{name:"FormData"});var mG=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 CU={Boolean:1,Number:1,String:1},uG=e.module({...o({...zY,...EY},(Y,Z)=>(Y in CU)?[]:[Y,["instanceof",Z]]),Array:yG,TypedArray:mG,FormData:pG});var qU=H0({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"}),jU=H0({domain:"number",divisor:1}),Q6=e.module({root:d.number,integer:jU,epoch:qU,safe:H0({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 I0=(Y,Z,X)=>{let _={domain:"string",pattern:{rule:Y.source,flags:Y.flags,meta:Z}};if(X)_.meta={format:X};return J2("intersection",_)},dG=I0(h2,"a well-formed integer string"),Z9=e.module({root:dG,parse:H0({in:dG,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:d.integer})},{name:"string.integer"}),SU=I0(/^[\dA-Fa-f]+$/,"hex characters only"),PU=e.module({root:I0(/^(?:[\d+/A-Za-z]{4})*(?:[\d+/A-Za-z]{2}==|[\d+/A-Za-z]{3}=)?$/,"base64-encoded"),url:I0(/^(?:[\w-]{4})*(?:[\w-]{2}(?:==|%3D%3D)?|[\w-]{3}(?:=|%3D)?)?$/,"base64url-encoded")},{name:"string.base64"}),cG=I0(/^[A-Z].*$/,"capitalized"),vU=e.module({root:H0({in:"string",morphs:(Y)=>Y.charAt(0).toUpperCase()+Y.slice(1),declaredOut:cG}),preformatted:cG},{name:"string.capitalize"}),xU=(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)},fU=/^(?: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}))$/,hU=H0({domain:"string",pattern:{meta:"a credit card number",rule:fU.source},predicate:{meta:"a credit card number",predicate:xU}});var kU=/^([+-]?\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 bU=(Y)=>!Number.isNaN(new Date(Y).valueOf()),lG=H0({domain:"string",predicate:{meta:"a parsable date",predicate:bU}}).assertHasKind("intersection"),oG=Z9.root.internal.narrow((Y,Z)=>{let X=Number.parseInt(Y),_=Q6.epoch(X);if(_ instanceof U1)return Z.errors.merge(_),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),yU=e.module({root:oG,parse:H0({in:oG,morphs:(Y)=>new Date(Y),declaredOut:d.Date})},{name:"string.date.epoch"}),iG=I0(kU,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),gU=e.module({root:iG,parse:H0({in:iG,morphs:(Y)=>new Date(Y),declaredOut:d.Date})},{name:"string.date.iso"}),pU=e.module({root:lG,parse:H0({declaredIn:lG,in:"string",morphs:(Y,Z)=>{let X=new Date(Y);if(Number.isNaN(X.valueOf()))return Z.error("a parsable date");return X},declaredOut:d.Date}),iso:gU,epoch:yU},{name:"string.date"}),mU=I0(/^[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z]{2,}$/,"an email address","email"),rG="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",A4=`(${rG}[.]){3}${rG}`,uU=new RegExp(`^${A4}$`),v0="(?:[0-9a-fA-F]{1,4})",dU=new RegExp(`^((?:${v0}:){7}(?:${v0}|:)|(?:${v0}:){6}(?:${A4}|:${v0}|:)|(?:${v0}:){5}(?::${A4}|(:${v0}){1,2}|:)|(?:${v0}:){4}(?:(:${v0}){0,1}:${A4}|(:${v0}){1,3}|:)|(?:${v0}:){3}(?:(:${v0}){0,2}:${A4}|(:${v0}){1,4}|:)|(?:${v0}:){2}(?:(:${v0}){0,3}:${A4}|(:${v0}){1,5}|:)|(?:${v0}:){1}(?:(:${v0}){0,4}:${A4}|(:${v0}){1,6}|:)|(?::((?::${v0}){0,5}:${A4}|(?::${v0}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),cU=e.module({root:["v4 | v6","@","an IP address"],v4:I0(uU,"an IPv4 address","ipv4"),v6:I0(dU,"an IPv6 address","ipv6")},{name:"string.ip"}),F2="a JSON string",X9=(Y)=>{if(!(Y instanceof SyntaxError))throw Y;return`must be ${F2} (${Y})`},lU=H0({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:X9(X)})}}}}),oU=(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:X9(X)})}},iU=e.module({root:lU,parse:H0({meta:"safe JSON string parser",in:"string",morphs:oU,declaredOut:d.jsonObject})},{name:"string.json"}),nG=I0(/^[a-z]*$/,"only lowercase letters"),rU=e.module({root:H0({in:"string",morphs:(Y)=>Y.toLowerCase(),declaredOut:nG}),preformatted:nG},{name:"string.lower"}),_9=["NFC","NFD","NFKC","NFKD"],_8=o(_9,(Y,Z)=>[Z,H0({domain:"string",predicate:(X)=>X.normalize(Z)===X,meta:`${Z}-normalized unicode`})]),U6=o(_9,(Y,Z)=>[Z,H0({in:"string",morphs:(X)=>X.normalize(Z),declaredOut:_8[Z]})]),nU=e.module({root:U6.NFC,preformatted:_8.NFC},{name:"string.normalize.NFC"}),sU=e.module({root:U6.NFD,preformatted:_8.NFD},{name:"string.normalize.NFD"}),tU=e.module({root:U6.NFKC,preformatted:_8.NFKC},{name:"string.normalize.NFKC"}),aU=e.module({root:U6.NFKD,preformatted:_8.NFKD},{name:"string.normalize.NFKD"}),eU=e.module({root:"NFC",NFC:nU,NFD:sU,NFKC:tU,NFKD:aU},{name:"string.normalize"}),sG=I0(b8,"a well-formed numeric string"),Yz=e.module({root:sG,parse:H0({in:sG,morphs:(Y)=>Number.parseFloat(Y),declaredOut:d.number})},{name:"string.numeric"}),tG="a regex pattern",Zz=H0({domain:"string",predicate:{meta:tG,predicate:(Y,Z)=>{try{return new RegExp(Y),!0}catch(X){return Z.reject({code:"predicate",expected:tG,problem:String(X)})}}},meta:{format:"regex"}}),Xz=/^(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-]+)*))?$/,_z=I0(Xz,"a semantic version (see https://semver.org/)"),aG=I0(/^\S.*\S$|^\S?$/,"trimmed"),Gz=e.module({root:H0({in:"string",morphs:(Y)=>Y.trim(),declaredOut:aG}),preformatted:aG},{name:"string.trim"}),eG=I0(/^[A-Z]*$/,"only uppercase letters"),$z=e.module({root:H0({in:"string",morphs:(Y)=>Y.toUpperCase(),declaredOut:eG}),preformatted:eG},{name:"string.upper"}),Wz=(Y)=>{if(URL.canParse)return URL.canParse(Y);try{return new URL(Y),!0}catch{return!1}},Y9=H0({domain:"string",predicate:{meta:"a URL string",predicate:Wz},meta:{format:"uri"}}),Hz=e.module({root:Y9,parse:H0({declaredIn:Y9,in:"string",morphs:(Y,Z)=>{try{return new URL(Y)}catch{return Z.error("a URL string")}},declaredOut:H0(URL)})},{name:"string.url"}),Jz=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:I0(/^[\da-f]{8}-[\da-f]{4}-1[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv1"),v2:I0(/^[\da-f]{8}-[\da-f]{4}-2[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv2"),v3:I0(/^[\da-f]{8}-[\da-f]{4}-3[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv3"),v4:I0(/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv4"),v5:I0(/^[\da-f]{8}-[\da-f]{4}-5[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv5"),v6:I0(/^[\da-f]{8}-[\da-f]{4}-6[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv6"),v7:I0(/^[\da-f]{8}-[\da-f]{4}-7[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv7"),v8:I0(/^[\da-f]{8}-[\da-f]{4}-8[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv8")},{name:"string.uuid"}),G9=e.module({root:d.string,alpha:I0(/^[A-Za-z]*$/,"only letters"),alphanumeric:I0(/^[\dA-Za-z]*$/,"only letters and digits 0-9"),hex:SU,base64:PU,capitalize:vU,creditCard:hU,date:pU,digits:I0(/^\d*$/,"only digits 0-9"),email:mU,integer:Z9,ip:cU,json:iU,lower:rU,normalize:eU,numeric:Yz,regex:Zz,semver:_z,trim:Gz,upper:$z,url:Hz,uuid:Jz},{name:"string"});var $9=e.module({bigint:d.bigint,boolean:d.boolean,false:d.false,never:d.never,null:d.null,number:d.number,object:d.object,string:d.string,symbol:d.symbol,true:d.true,unknown:d.unknown,undefined:d.undefined}),W9=e.module({root:d.unknown,any:d.unknown},{name:"unknown"}),Qz=e.module({root:d.jsonObject,stringify:J2("morph",{in:d.jsonObject,morphs:(Y)=>JSON.stringify(Y),declaredOut:d.string})},{name:"object.json"}),H9=e.module({root:d.object,json:Qz},{name:"object"});class J9 extends s0{description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var Uz=K1(["K",d.key],"V")((Y)=>({domain:"object",index:{signature:Y.K,value:Y.V}}),J9);class Q9 extends s0{description='pick a set of properties from an object like `Pick(User, "name | age")`'}var zz=K1(["T",d.object],["K",d.key])((Y)=>Y.T.pick(Y.K),Q9);class U9 extends s0{description='omit a set of properties from an object like `Omit(User, "age")`'}var Fz=K1(["T",d.object],["K",d.key])((Y)=>Y.T.omit(Y.K),U9);class z9 extends s0{description="make all named properties of an object optional like `Partial(User)`"}var Ez=K1(["T",d.object])((Y)=>Y.T.partial(),z9);class F9 extends s0{description="make all named properties of an object required like `Required(User)`"}var Oz=K1(["T",d.object])((Y)=>Y.T.required(),F9);class E9 extends s0{description='exclude branches of a union like `Exclude("boolean", "true")`'}var Vz=K1("T","U")((Y)=>Y.T.exclude(Y.U),E9);class O9 extends s0{description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var Dz=K1("T","U")((Y)=>Y.T.extract(Y.U),O9),V9=e.module({Exclude:Vz,Extract:Dz,Omit:Fz,Partial:Ez,Pick:zz,Record:Uz,Required:Oz});var w4=TZ({...$9,...V9,...uG,...kG,string:G9,number:Q6,object:H9,unknown:W9},{prereducedAliases:!0,name:"ark"}),g0=w4.export();Object.assign(z2.ambient,g0);z2.typeAttachments={string:g0.string.root,number:g0.number.root,bigint:g0.bigint,boolean:g0.boolean,symbol:g0.symbol,undefined:g0.undefined,null:g0.null,object:g0.object.root,unknown:g0.unknown.root,false:g0.false,true:g0.true,never:g0.never,arrayIndex:g0.Array.index,Key:g0.Key,Record:g0.Record,Array:g0.Array.root,Date:g0.Date};var E1=Object.assign(w4.type,z2.typeAttachments),Lz=w4.match,Mz=w4.generic,eI=w4.schema,Az=w4.define,wz=w4.declare;var O1=(Y)=>JSON.parse(Y),Q0=(Y)=>JSON.stringify(Y),VT=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];function E2(Y){return O6(o0.STORE,Y,void 0)}function G8(Y){return D2(o0.STORE,Y)}function CZ(...Y){if(Y.length===2)return l1(o0.STORE,...Y);return l1(o0.STORE,...Y)}function z6(Y,Z){return T9(o0.STORE,Y,Z)}function D9(Y){return B9(Y,o0.STORE)}var BZ=(Y)=>(Z,X,_,G,...$)=>{console[Y](`${Z} ${X} "${_}" ${G}`,...$)},Rz={error:BZ("error"),info:BZ("info"),warn:BZ("warn")},L9=class{logLevel;filter;logger;constructor(Y,Z,X=Rz){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 Nz=class{store;constructor(Y=o0.STORE){this.store=Y,w9("root",Y)}allocate(Y,Z,X){return O2(this.store,Y,Z,X)}fuse(Y,Z,X){return R9(this.store,Y,Z,X)}deallocate(Y){V2(this.store,Y)}claim(Y,Z,X){return W8(this.store,Y,Z,X)}},M9=class{store;realm;constructor(Y=o0.STORE){this.store=Y,this.realm=new Nz(Y)}allocate(Y,Z,X){O2(this.store,Y,Z,X)}deallocate(Y){V2(this.store,Y)}claim(Y,Z,X){W8(this.store,Y,Z,X)}};function F6(Y){return SZ(o0.STORE,Y)}function $8(Y){return jZ(o0.STORE,Y)}var G4=class Y extends Set{mode="record";subject=new W0;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:${Q0(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:${Q0(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 G of this.transactionUpdates)this.doStep(G);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){if(G===1){this.mode="playback";let W=Z.substring(X+1);return this.doStep(W),this.mode="record",this.cacheUpdateNumber=_,null}return this.cacheUpdateNumber+1}if(Math.abs(G)<this.cacheLimit){let W=this.cacheIdx+G;if(this.cache[W]===Z)return null;this.mode="playback";let Q=!1;while(!Q){this.cacheIdx%=this.cacheLimit;let U=this.cache[this.cacheIdx];if(this.cacheIdx--,!U)return"OUT_OF_RANGE";this.undo(U),Q=this.cacheIdx===W-1}let J=Z.substring(X+1);return this.doStep(J),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 G=Z.substring(X+1);return this.undoStep(G),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}};function A9(Y=Math.random){return Y().toString(36).slice(2)}function Y0(Y){while(Y.child!==null)Y=Y.child;return Y}var Tz=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}},Kz={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"};function Bz(Y,Z){let X=Q0(Z),_=`${Y.key}(${X})`,G=Kz[Y.type],$={key:_,type:G};return Object.assign($,{family:{key:Y.key,subKey:X}}),Object.assign($,{counterfeit:!0}),$}function k1(Y){let Z={key:Y.key,type:Y.type};if("family"in Y)Z.family=Y.family;return Z}var _1=class{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(Y,Z)=>`${Y}:${Z}`;warn;getRelatedKeys(Y){return this.relations.get(Y)}addRelation(Y,Z){let X=this.relations.get(Y),_=this.relations.get(Z);if(X)X.add(Z);else X=new Set([Z]),this.relations.set(Y,X);if(_)_.add(Y);else _=new Set([Y]),this.relations.set(Z,_)}deleteRelation(Y,Z){let X=this.relations.get(Y);if(X){if(X.delete(Z),X.size===0)this.relations.delete(Y);let _=this.relations.get(Z);if(_){if(_.delete(Y),_.size===0)this.relations.delete(Z)}}}replaceRelationsUnsafely(Y,Z){this.relations.set(Y,new Set(Z));for(let X of Z){let _=new Set().add(Y);this.relations.set(X,_)}}replaceRelationsSafely(Y,Z){let X=this.relations.get(Y),_=this.isAType?.(Y)?Y:void 0,G=_===void 0?Y:void 0;if(X)for(let $ of X){_??=$,G??=$;let W=this.relations.get($);if(W){if(W.size===1)this.relations.delete($);else W.delete(Y);this.contents.delete(this.makeContentKey(_,G))}}this.relations.set(Y,new Set(Z));for(let $ of Z){let W=this.relations.get($);if(W)W.add(Y);else W=new Set().add(Y),this.relations.set($,W)}}getContentInternal(Y){return this.contents.get(Y)}setContent(Y,Z){this.contents.set(Y,Z)}deleteContent(Y){this.contents.delete(Y)}constructor(Y,Z){if(this.a=Y.between[0],this.b=Y.between[1],this.cardinality=Y.cardinality,!Z?.externalStore)this.relations=new Map(Y.relations?.map(([X,_])=>[X,new Set(_)])),this.contents=new Map(Y.contents);if(this.isAType=Z?.isAType??null,this.isBType=Z?.isBType??null,this.isContent=Z?.isContent??null,Z?.makeContentKey)this.makeContentKey=Z.makeContentKey;if(Z?.externalStore){let X=Z.externalStore;if(this.has=(_,G)=>X.has(_,G),this.addRelation=(_,G)=>{X.addRelation(_,G)},this.deleteRelation=(_,G)=>{X.deleteRelation(_,G)},this.replaceRelationsSafely=(_,G)=>{X.replaceRelationsSafely(_,G)},this.replaceRelationsUnsafely=(_,G)=>{X.replaceRelationsUnsafely(_,G)},this.getRelatedKeys=(_)=>X.getRelatedKeys(_),X.getContent)this.getContentInternal=(_)=>{return X.getContent(_)},this.setContent=(_,G)=>{X.setContent(_,G)},this.deleteContent=(_)=>{X.deleteContent(_)};for(let[_,G]of Y.relations??[]){let $=this.isAType?.(_)?_:void 0,W=$===void 0?_:void 0;for(let H of G)$??=H,W??=H,this.addRelation($,W)}for(let[_,G]of Y.contents??[])this.setContent(_,G)}if(Z?.warn)this.warn=Z.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([Y,Z])=>[Y,[...Z]]),contents:[...this.contents.entries()]}}set(...Y){let Z,X,_;switch(Y.length){case 1:{let G=Y[0];Z=G[this.a],X=G[this.b],_=void 0;break}case 2:{let G=Y[0];if(typeof G==="string")[Z,X]=Y;else Z=G[this.a],X=G[this.b],_=Y[1];break}default:Z=Y[0],X=Y[1],_=Y[2];break}switch(this.cardinality){case"1:1":{let G=this.getRelatedKey(Z);if(G&&G!==X)this.delete(Z,G)}case"1:n":{let G=this.getRelatedKey(X);if(G&&G!==Z)this.delete(G,X)}break;case"n:n":}if(_){let G=this.makeContentKey(Z,X);this.setContent(G,_)}return this.addRelation(Z,X),this}delete(Y,Z){Z=typeof Z==="string"?Z:Y[this.b];let X=typeof Y==="string"?Y:Y[this.a];if(X===void 0&&typeof Z==="string"){let _=this.getRelatedKeys(Z);if(_)for(let G of _)this.delete(G,Z)}if(typeof X==="string"&&Z===void 0){let _=this.getRelatedKeys(X);if(_)for(let G of _)this.delete(X,G)}if(typeof X==="string"&&typeof Z==="string"){this.deleteRelation(X,Z);let _=this.makeContentKey(X,Z);this.deleteContent(_)}return this}getRelatedKey(Y){let Z=this.getRelatedKeys(Y);if(Z){if(Z.size>1)this.warn?.(`${Z.size} related keys were found for key "${Y}": (${[...Z].map((_)=>`"${_}"`).join(", ")}). Only one related key was expected.`);let X;for(let _ of Z){X=_;break}return X}}replaceRelations(Y,Z,X){let _=!Array.isArray(Z),G=_?Object.keys(Z):Z;if(X?.reckless)this.replaceRelationsUnsafely(Y,G);else this.replaceRelationsSafely(Y,G);if(_)for(let $ of G){let W=this.makeContentKey(Y,$),H=Z[$];this.setContent(W,H)}return this}getContent(Y,Z){let X=this.makeContentKey(Y,Z);return this.getContentInternal(X)}getRelationEntries(Y){let Z=Y[this.a],X=Y[this.b];if(Z!==void 0&&X===void 0){let _=this.getRelatedKeys(Z);if(_)return[..._].map((G)=>{return[G,this.getContent(Z,G)]})}if(Z===void 0&&X!==void 0){let _=this.getRelatedKeys(X);if(_)return[..._].map((G)=>{return[G,this.getContent(G,X)]})}return[]}has(Y,Z){if(Z)return this.getRelatedKeys(Y)?.has(Z)??!1;return this.relations.has(Y)}},W0=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)}},Cz=class extends W0{state;constructor(Y){super();this.state=Y}next(Y){this.state=Y,super.next(Y)}},qz=(Y,Z)=>{let X=Y0(Y);if(X.operation.open)return X.operation.prev.get(Z.key);return X.valueMap.get(Z.key)},xZ=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}};function h4(Y){return"epoch"in Y.transactionMeta}function G1(Y){return"phase"in Y.transactionMeta}function P9(Y,Z){if(Y.operation.open){let X=performance.now();return Y.logger.info("\u2757",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},Y.logger.info("\u2B55",Z.type,Z.key,`operation start in store "${Y.config.name}"${G1(Y)?` ${Y.transactionMeta.phase} "${Y.transactionMeta.update.token.key}"`:""}`),Y}function v9(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 x9=(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)},L6=(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 yZ(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(x9(X,W))continue;h9(X,W),L6(X,W)}}}function f9(Y,Z){let X=Y0(Y),_=X.selectorGraph.getRelationEntries({upstreamSelectorKey:Z}).filter(([G,{source:$}])=>$===Z);for(let[G]of _){if(x9(X,G))continue;h9(X,G),L6(X,G),f9(Y,G)}}function $4(Y,Z,X){let{key:_,subject:G,type:$}=Z,W=Y.valueMap.get(_);if(W instanceof xZ&&!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 xZ(X);return Y.valueMap.set(_,H),H.then(function Q(J){if(Y.valueMap.get(_)===H){switch(P9(Y,Z),$4(Y,Z,J),$){case"atom":case"mutable_atom":yZ(Y,Z);break;case"readonly_pure_selector":case"writable_pure_selector":f9(Y,_);break}v9(Y),G.next({newValue:J,oldValue:H})}}).catch((Q)=>{Y.logger.error("\uD83D\uDCA5","state",_,"rejected:",Q)}),H}return Y.valueMap.set(_,X),X}function jz(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"&&G1(Y)){let $=Z,{parent:W}=Y;if(Y.valueMap.hasOwn($.key))return _;let H=W.valueMap.get($.key);Y.logger.info("\uD83D\uDCC3","atom",$.key,"copying");let Q=H.toJSON(),J=$.class.fromJSON(Q);Y.valueMap.set($.key,J),new lZ($,W),_=J}return _}function h9(Y,Z){let X=Y.valueMap.get(Z);if(X instanceof xZ){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 L2(Y,Z,X){if(Y.valueMap.has(Z.key))return jz(Y,Z,X);let{key:_}=Z;switch(Z.type){case"readonly_held_selector":case"readonly_pure_selector":case"writable_held_selector":case"writable_pure_selector":return Y.logger.info("\uD83E\uDDEE",Z.type,_,"computing value"),Z.getFrom(Y);case"atom":{let G;if(Z.default instanceof Function)G=Z.default();else G=Z.default;let $=$4(Y,Z,G);return Y.logger.info("\uD83D\uDC81","atom",Z.key,"could not find cached value; using default",G),$}case"mutable_atom":{let G=new Z.class,$=$4(Y,Z,G);return Y.logger.info("\uD83D\uDC81","mutable_atom",Z.key,"could not find cached value; using default",G),$}}}function Sz(Y,Z){if(Z.family){let X=Y.families.get(Z.family.key);if(X)return X}}var Pz=(Y)=>{let Z=Y0(Y);if(!G1(Z)){Y.logger.warn("\uD83D\uDC1E","transaction","???","abortTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}Y.logger.info("\uD83E\uDE82","transaction",Z.transactionMeta.update.token.key,"Aborting transaction"),Z.parent.child=null};function T0(Y){return Y[0].toUpperCase()+Y.slice(1)}function k4(Y){return Y.type.split("_").map(T0).join(" ")}var k9=class extends Error{constructor(Y,Z){super(`${k4(Y)} ${Q0(Y.key)} not found in store "${Z.config.name}".`)}};function qZ(Y,Z,X){return(..._)=>{let G=u0(Y,Z);if(G)return G.run(_,X);throw new k9(Z,Y)}}var fZ=(Y)=>(Z)=>Y instanceof Function?Y(Z):Y;function b9(Y,Z,[X,_],G){let{key:$,subject:W,type:H}=Z,Q={oldValue:vZ(X)?X.READONLY_VIEW:X,newValue:vZ(_)?_.READONLY_VIEW:_};if(h4(Y)){switch(H){case"mutable_atom":Y.logger.info("\uD83D\uDCE2",H,$,"is now (",_,") subscribers:",W.subscribers);break;case"atom":case"writable_pure_selector":case"writable_held_selector":Y.logger.info("\uD83D\uDCE2",H,$,"went (",X,"->",_,") subscribers:",W.subscribers)}W.next(Q)}if(G1(Y)&&(H==="mutable_atom"||H==="atom")){if(Y.on.transactionApplying.state===null){let J=k1(Z);if(vZ(_))return;let{timestamp:U}=Y.operation,E={type:"atom_update",token:J,timestamp:U,update:Q};Y.transactionMeta.update.subEvents.push(E),Y.logger.info("\uD83D\uDCC1","atom",$,"stowed (",X,"->",_,")");return}if(XF(Z,"tracker:signal")){let J=$.slice(1),U=Y.atoms.get(J);if(L2(Y,U,"mut").do(Q.newValue)===null===!0)yZ(Y,U)}}}var hZ=(Y,Z,X)=>{let _=L2(Y,Z,"mut"),G=fZ(X)(_);return Y.logger.info("\uD83D\uDCDD","atom",Z.key,"set to",G),G=$4(Y,Z,G),L6(Y,Z.key),yZ(Y,Z),[_,G]};function C9(Y,Z){switch(Z.type){case"mutable_atom":return hZ(Y,Z,new Z.class);case"atom":{let X=Z.default;if(X instanceof Function)X=X();return hZ(Y,Z,X)}}}function vz(Y,Z){let X;switch(Z.type){case"atom":case"mutable_atom":X=C9(Y,Z);break;case"writable_pure_selector":case"writable_held_selector":{let _=Z.getFrom(Y),G=D6(Y,Z.key);for(let W of G.values()){let H=C9(Y,W);b9(Y,Z,H,!1)}let $=Z.getFrom(Y);X=[_,$]}break}return X}function B1(Y,...Z){gZ(Y,!0,...Z)}var V6=Symbol("RESET");function E6(Y,...Z){let X,_,G;if(Z.length===1)X=Z[0],B1(Y,X,V6);else _=Z[0],G=Z[1],B1(Y,_,G,V6)}function xz(Y,Z,X){let _,G,$,{type:W,key:H}=Z;switch(Z.type){case"writable_pure_selector":_=Z.getFrom(Y),G=fZ(X)(_),$4(Y,Z,G);break;case"writable_held_selector":$=Z.const,fZ(X)($),_=$,G=$}return Y.logger.info("\uD83D\uDCDD",W,H,"setting to",G),L6(Y,H),Z.setSelf(G),[_,G]}var fz=(Y,Z,X)=>{let _;switch(Z.type){case"atom":case"mutable_atom":_=hZ(Y,Z,X);break;case"writable_pure_selector":case"writable_held_selector":_=xz(Y,Z,X);break}return _};function hz(Y,Z,X){let{token:_,update:{newValue:G,oldValue:$}}=Z;B1(X,_,Y==="newValue"?G:$)}function kz(Y){let{stack:Z}=Y;if(Z)return`
49
48
  `+Z.split(`
50
49
  `)?.slice(1)?.join(`
51
- `);return""}function L9(Y,Z=o0.STORE){let X={key:Y,stringKey:U0(Y),dependsOn:"any"};return Z.molecules.set(U0(Y),X),Y}function O2(Y,Z,X,_="any"){let G=Z,$=U0(X),W=[],H=o(Y);if(Array.isArray(G))for(let U of G){let E=U0(U);if(H.molecules.get(E))Y.moleculeGraph.set(E,$,{source:E});else W.push(E)}else{let U=U0(G);if(H.molecules.get(U))Y.moleculeGraph.set(U,$,{source:U});else W.push(U)}if(W.length===0)H.molecules.set($,{key:X,stringKey:$,dependsOn:_});let Q={type:"molecule_creation",key:X,provenance:G};if(G1(H)&&H.transactionMeta.phase==="building")H.transactionMeta.update.updates.push(Q);else H.on.moleculeCreation.next(Q);for(let U of W){let E=Y.disposalTraces.buffer.find((V)=>V?.key===U);Y.logger.error("\u274C","molecule",X,"allocation failed:",`Could not allocate to ${U} in store "${Y.config.name}".`,E?`
50
+ `);return""}function w9(Y,Z=o0.STORE){let X={key:Y,stringKey:Q0(Y),dependsOn:"any"};return Z.molecules.set(Q0(Y),X),Y}function O2(Y,Z,X,_="any"){let G=Z,$=Q0(X),W=[],H=Y0(Y);if(Array.isArray(G))for(let U of G){let E=Q0(U);if(H.molecules.get(E))Y.moleculeGraph.set(E,$,{source:E});else W.push(E)}else{let U=Q0(G);if(H.molecules.get(U))Y.moleculeGraph.set(U,$,{source:U});else W.push(U)}if(W.length===0)H.molecules.set($,{key:X,stringKey:$,dependsOn:_});let Q={type:"molecule_creation",key:X,provenance:G,timestamp:Date.now()};if(G1(H)&&H.transactionMeta.phase==="building")H.transactionMeta.update.subEvents.push(Q);else H.on.moleculeCreation.next(Q);for(let U of W){let E=Y.disposalTraces.buffer.find((V)=>V?.key===U);Y.logger.error("\u274C","molecule",X,"allocation failed:",`Could not allocate to ${U} in store "${Y.config.name}".`,E?`
52
51
  ${U} was most recently disposed
53
- ${E.trace}`:`No previous disposal trace for ${U} was found.`)}return X}function M9(Y,Z,X,_){let G=`T$--${Z}==${X}++${_}`;return O2(Y,[X,_],G,"all"),G}function V2(Y,Z){let X=U0(Z),_=Y.molecules.get(X);if(!_){let L=Y.disposalTraces.buffer.find((R)=>R?.key===X);Y.logger.error("\u274C","molecule",Z,"deallocation failed:",`Could not find allocation for ${X} in store "${Y.config.name}".`,L?`
52
+ ${E.trace}`:`No previous disposal trace for ${U} was found.`)}return X}function R9(Y,Z,X,_){let G=`T$--${Z}==${X}++${_}`;return O2(Y,[X,_],G,"all"),G}function V2(Y,Z){let X=Q0(Z),_=Y.molecules.get(X);if(!_){let L=Y.disposalTraces.buffer.find((w)=>w?.key===X);Y.logger.error("\u274C","molecule",Z,"deallocation failed:",`Could not find allocation for ${X} in store "${Y.config.name}".`,L?`
54
53
  This state was most recently deallocated
55
- ${L.trace}`:`No previous disposal trace for ${X} was found.`);return}let G=Y.moleculeJoins.getRelatedKeys(_.key);if(G)for(let L of G){let R=Y.joins.get(L);if(R)R.relations.delete(_.key),R.molecules.delete(_.stringKey)}Y.moleculeJoins.delete(_.stringKey);let $=[],W=[],H={type:"molecule_disposal",key:_.key,values:W,provenance:$},Q=o(Y);Q.molecules.delete(X);let J=G1(Q)&&Q.transactionMeta.phase==="building";if(J)Q.transactionMeta.update.updates.push(H);let U=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:_.stringKey});if(U)for(let[L,{source:R}]of U)if(R===_.stringKey){let M=O1(L);V2(Y,M)}else $.push(R);let E=Q.moleculeData.getRelatedKeys(_.stringKey);if(E)for(let L of E){let R=Q.families.get(L),M=Q0(Y,R,_.key);W.push([R.key,M]),H8(Y,M)}if(Q.moleculeGraph.delete(_.stringKey),Q.moleculeJoins.delete(_.stringKey),Q.moleculeData.delete(_.stringKey),!J)Q.on.moleculeDisposal.next(H);Q.molecules.delete(_.stringKey);let V=kz(new Error);Y.disposalTraces.add({key:X,trace:V})}function W8(Y,Z,X,_){let G=U0(X),$=o(Y),W=$.molecules.get(G);if(!W){let V=Y.disposalTraces.buffer.find((L)=>L?.key===G);return Y.logger.error("\u274C","molecule",X,"claim failed:",`Could not allocate to ${G} in store "${Y.config.name}".`,V?`
54
+ ${L.trace}`:`No previous disposal trace for ${X} was found.`);return}let G=Y.moleculeJoins.getRelatedKeys(_.key);if(G)for(let L of G){let w=Y.joins.get(L);if(w)w.relations.delete(_.key),w.molecules.delete(_.stringKey)}Y.moleculeJoins.delete(_.stringKey);let $=[],W=[],H={type:"molecule_disposal",key:_.key,values:W,provenance:$,timestamp:Date.now()},Q=Y0(Y);Q.molecules.delete(X);let J=G1(Q)&&Q.transactionMeta.phase==="building";if(J)Q.transactionMeta.update.subEvents.push(H);let U=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:_.stringKey});if(U)for(let[L,{source:w}]of U)if(w===_.stringKey){let M=O1(L);V2(Y,M)}else $.push(w);let E=Q.moleculeData.getRelatedKeys(_.stringKey);if(E)for(let L of E){let w=Q.families.get(L),M=M0(Y,w,_.key);W.push([w.key,M]),H8(Y,M)}if(Q.moleculeGraph.delete(_.stringKey),Q.moleculeJoins.delete(_.stringKey),Q.moleculeData.delete(_.stringKey),!J)Q.on.moleculeDisposal.next(H);Q.molecules.delete(_.stringKey);let V=kz(new Error);Y.disposalTraces.add({key:X,trace:V})}function W8(Y,Z,X,_){let G=Q0(X),$=Y0(Y),W=$.molecules.get(G);if(!W){let V=Y.disposalTraces.buffer.find((L)=>L?.key===G);return Y.logger.error("\u274C","molecule",X,"claim failed:",`Could not allocate to ${G} in store "${Y.config.name}".`,V?`
56
55
  ${G} was most recently disposed
57
- ${V.trace}`:`No previous disposal trace for ${G} was found.`),X}let H=U0(Z),Q=$.molecules.get(H);if(!Q){let V=Y.disposalTraces.buffer.find((L)=>L?.key===H);return Y.logger.error("\u274C","molecule",X,"claim failed:",`Could not allocate to ${H} in store "${Y.config.name}".`,V?`
56
+ ${V.trace}`:`No previous disposal trace for ${G} was found.`),X}let H=Q0(Z),Q=$.molecules.get(H);if(!Q){let V=Y.disposalTraces.buffer.find((L)=>L?.key===H);return Y.logger.error("\u274C","molecule",X,"claim failed:",`Could not allocate to ${H} in store "${Y.config.name}".`,V?`
58
57
  ${H} was most recently disposed
59
- ${V.trace}`:`No previous disposal trace for ${H} was found.`),X}let J=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:W.stringKey}).filter(([,{source:V}])=>V!==G).map(([V])=>O1(V));if(_)$.moleculeGraph.delete(G);$.moleculeGraph.set({upstreamMoleculeKey:Q.stringKey,downstreamMoleculeKey:W.stringKey},{source:Q.stringKey});let U={type:"molecule_transfer",key:W.key,exclusive:Boolean(_),from:J,to:[Q.key]};if(G1($)&&$.transactionMeta.phase==="building")$.transactionMeta.update.updates.push(U);return X}function bz(Y,Z,X){switch(Z){case"newValue":h9(Y,X);break;case"oldValue":H8(X,Y.token);break}}function yz(Y,Z,X){switch(Z){case"newValue":H8(X,Y.token);break;case"oldValue":if(h9(Y,X),Y.subType==="atom")X.valueMap.set(Y.token.key,Y.value);break}}function h9(Y,Z){let{family:X}=Y.token;if(X){let _=Z.families.get(X.key);if(_)Q0(Z,_,O1(X.subKey))}}function gz(Y,Z,X){switch(Z){case"newValue":O2(X,Y.provenance,Y.key);break;case"oldValue":V2(X,Y.key);break}}function pz(Y,Z,X){switch(Z){case"newValue":V2(X,Y.key);break;case"oldValue":{let _=Y.provenance.map(O1);O2(X,_,Y.key);for(let[G,$]of Y.values){let W=X.families.get(G);if(W){Q0(X,W,Y.key);let H=`${G}(${U0(Y.key)})`;X.valueMap.set(H,$)}}}break}}function mz(Y,Z,X){switch(Z){case"newValue":for(let _ of Y.to)W8(X,_,Y.key,Y.exclusive?"exclusive":void 0);break;case"oldValue":{let _="exclusive";for(let G of Y.from)W8(X,G,Y.key,_),_=void 0}break}}function k9(Y,Z,X){let _=Y==="newValue"?Z.updates:[...Z.updates].reverse();for(let G of _)switch(G.type){case"atom_update":case"selector_update":hz(Y,G,X);break;case"state_creation":bz(G,Y,X);break;case"state_disposal":yz(G,Y,X);break;case"molecule_creation":gz(G,Y,X);break;case"molecule_disposal":pz(G,Y,X);break;case"molecule_transfer":mz(G,Y,X);break;case"transaction_update":k9(Y,G,X);break}}function b9(Y,Z){return Y.transactionMeta.actionContinuities.getRelatedKey(Z)}function uz(Y,Z){return Y.transactionMeta.epoch.get(Z)}function dz(Y,Z){if(!R4(Y))return;let _=b9(Y,Z);if(_===void 0)return;return uz(Y,_)}function cz(Y,Z,X){if(!R4(Y))return;let G=b9(Y,Z);if(G!==void 0)Y.transactionMeta.epoch.set(G,X)}var lz=(Y,Z)=>{let X=o(Z),{parent:_}=X;if(_===null||!G1(X)||X.transactionMeta?.phase!=="building"){Z.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}X.transactionMeta.phase="applying",X.transactionMeta.update.output=Y,_.child=null,_.on.transactionApplying.next(X.transactionMeta);let{updates:G}=X.transactionMeta.update;if(Z.logger.info("\uD83D\uDEC4","transaction",X.transactionMeta.update.key,`Applying transaction with ${G.length} updates:`,G),k9("newValue",X.transactionMeta.update,_),R4(_))cz(_,X.transactionMeta.update.key,X.transactionMeta.update.epoch),u0(Z,{key:X.transactionMeta.update.key,type:"transaction"})?.subject.next(X.transactionMeta.update),Z.logger.info("\uD83D\uDEEC","transaction",X.transactionMeta.update.key,"Finished applying transaction.");else if(G1(_))_.transactionMeta.update.updates.push(X.transactionMeta.update);_.on.transactionApplying.next(null)};function oz(Y){return{store:Y}}var l1=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))return this.source.get(Y);return}set(Y,Z){return this.deleted.delete(Y),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){return this.deleted.add(Y),super.delete(Y)}},iz=(Y,Z,X,_)=>{let G=o(Y),$={parent:G,child:null,on:G.on,loggers:G.loggers,logger:G.logger,config:G.config,atoms:new l1(G.atoms),atomsThatAreDefault:new Set(G.atomsThatAreDefault),families:new l1(G.families),joins:new l1(G.joins),operation:{open:!1},readonlySelectors:new l1(G.readonlySelectors),timelines:new l1(G.timelines),timelineTopics:new _1(G.timelineTopics.toJSON()),trackers:new Map,transactions:new l1(G.transactions),selectorAtoms:new _1(G.selectorAtoms.toJSON()),selectorGraph:new _1(G.selectorGraph.toJSON(),{makeContentKey:(...J)=>J.sort().join(":")}),writableSelectors:new l1(G.writableSelectors),valueMap:new l1(G.valueMap),defaults:G.defaults,disposalTraces:Y.disposalTraces.copy(),molecules:new l1(G.molecules),moleculeGraph:new _1(G.moleculeGraph.toJSON(),{makeContentKey:G.moleculeGraph.makeContentKey}),moleculeData:new _1(G.moleculeData.toJSON(),{makeContentKey:G.moleculeData.makeContentKey}),moleculeJoins:new _1(G.moleculeJoins.toJSON(),{makeContentKey:G.moleculeJoins.makeContentKey}),miscResources:new l1(G.miscResources)},W=dz(Y,Z),H={phase:"building",update:{type:"transaction_update",key:Z,id:_,epoch:W===void 0?NaN:W+1,updates:[],params:X,output:void 0},toolkit:{get:(...J)=>c1(Q,...J),set:(...J)=>{w1(Q,...J)},reset:(...J)=>{O6(Q,...J)},run:(J,U=D9())=>qZ(Q,J,U),find:(...J)=>Q0(Y,...J),json:(J)=>b4(Q,J),dispose:(...J)=>{H8(Q,...J)},env:()=>oz(Q)}},Q=Object.assign($,{transactionMeta:H});return G.child=Q,Y.logger.info("\uD83D\uDEEB","transaction",Z,"Building transaction with params:",X),Q};function jZ(Y,Z){let{key:X}=Z,_=Y.transactions.has(X),G={key:X,type:"transaction",run:(H,Q)=>{let J=iz(Y,X,H,Q);try{let U=o(Y),{toolkit:E}=J.transactionMeta,V=Z.do(E,...H);return lz(V,U),V}catch(U){throw fz($),Y.logger.warn("\uD83D\uDCA5","transaction",X,"caught:",U),U}},install:(H)=>jZ(H,Z),subject:new W0},$=o(Y);$.transactions.set(X,G);let W=$4(G);if(!_)Y.on.transactionCreation.next(W);return W}var gZ=(Y,Z,X)=>{let _=o(Y),G=new W0,$=new Set,{key:W,const:H}=Z,Q="writable_held_selector",J=M6(_,"writable_held_selector",W,$),{find:U,get:E,json:V}=J,L={find:U,get:E,json:V},R=(h=Z.get,f=o(Y))=>{let I=f.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[N,{source:q}]of I)if(q!==W)f.selectorGraph.delete(N,W);return f.selectorAtoms.delete(W),h(L,H),o1(f,y,H),Y.logger.info("\u2728","writable_held_selector",W,"=",H),$.clear(),H},y={...Z,type:"writable_held_selector",subject:G,install:(h)=>gZ(h,Z,X),get:R,set:(h)=>{let f=o(Y),I=R(Z.get,f),N=hZ(h)(I);if(Y.logger.info("\uD83D\uDCDD","writable_held_selector",W,"set (",I,"->",N,")"),o1(f,y,N),U8(f,W),R4(f))G.next({newValue:N,oldValue:I});Z.set(J,N)},...X&&{family:X}};_.writableSelectors.set(W,y);let k={key:W,type:"writable_held_selector"};if(X)k.family=X;return k},pZ=(Y,Z,X)=>{let _=o(Y),G=new W0,$=new Set,W=Z.key,H="writable_pure_selector",Q=M6(_,"writable_pure_selector",W,$),{find:J,get:U,json:E}=Q,V={find:J,get:U,json:E},L=(h=Z.get,f=o(Y))=>{let I=f.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[C,{source:p}]of I)if(p!==W)f.selectorGraph.delete(C,W);f.selectorAtoms.delete(W);let N=h(V),q=o1(f,M,N);return Y.logger.info("\u2728","writable_pure_selector",W,"=",q),$.clear(),q},M={...Z,type:"writable_pure_selector",subject:G,install:(h)=>pZ(h,Z,X),get:L,set:(h)=>{let f=o(Y),I=L(Z.get,f),N=hZ(h)(I);if(Y.logger.info("\uD83D\uDCDD","writable_pure_selector",W,"set (",I,"->",N,")"),o1(f,M,N),U8(f,Z.key),R4(f))G.next({newValue:N,oldValue:I});Z.set(Q,N)},...X&&{family:X}};_.writableSelectors.set(W,M);let y=L();Y.logger.info("\u2728",M.type,M.key,"=",y);let k={key:W,type:"writable_pure_selector"};if(X)k.family=X;return k};function A9(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X){let $=gZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(_){let $=kZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(X){let $=pZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}let G=bZ(Y,Z,void 0);return Y.on.selectorCreation.next(G),G}function rz(Y,Z){let X=o(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 H;switch(Z.type){case"writable_held_selector":X.writableSelectors.delete(_),H={key:$.key,type:"writable_held_selector_family"},u0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z});break;case"writable_pure_selector":X.writableSelectors.delete(_),H={key:$.key,type:"writable_pure_selector_family"},u0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z});break;case"readonly_held_selector":X.readonlySelectors.delete(_),H={key:$.key,type:"readonly_held_selector_family"},u0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z});break;case"readonly_pure_selector":X.readonlySelectors.delete(_),H={key:$.key,type:"readonly_pure_selector_family"},u0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z});break}if(X.valueMap.delete(_),X.selectorAtoms.delete(_),X.selectorGraph.delete(_),X.moleculeData.delete($.key,$.subKey),Y.logger.info("\uD83D\uDD25",Z.type,_,"deleted"),G1(X)&&X.transactionMeta.phase==="building")X.transactionMeta.update.updates.push({type:"state_disposal",subType:"selector",token:Z});else Y.on.selectorDisposal.next(Z)}}function h4(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 ${k4(W)} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new W0,J=Object.assign((U)=>{let E=U0(U),V={key:_,subKey:E},L=`${_}(${E})`,R=o(Y),M=bZ(R,{key:L,get:Z.get(U)},V);return H.next({type:"state_creation",token:M}),M},$,{internalRoles:X,subject:H,install:(U)=>h4(U,Z),default:(U)=>{return Z.get(U)({get:(...V)=>c1(Y,...V),find:(...V)=>Q0(Y,...V),json:(V)=>b4(Y,V)})}});return Y.families.set(_,J),$}function D2(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 ${k4(G)} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new W0,H=Object.assign((Q)=>{let J=U0(Q),U={key:Z.key,subKey:J},E=`${Z.key}(${J})`,V=o(Y),L=Z.default,R={key:E,default:L instanceof Function?()=>L(Q):L};if(Z.effects)R.effects=Z.effects(Q);let M=f4(V,R,U);return $.next({type:"state_creation",token:M}),M},_,{subject:$,install:(Q)=>D2(Q,Z),internalRoles:X});return Y.families.set(Z.key,H),Y.defaults.set(Z.key,Z.default),_}function y9(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 ${k4(W)} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new W0,J=Object.assign((U)=>{let E=U0(U),V={key:_,subKey:E},L=`${_}(${E})`,R=o(Y),M=kZ(R,{key:L,const:Z.const(U),get:Z.get(U)},V);return H.next({type:"state_creation",token:M}),M},$,{internalRoles:X,subject:H,install:(U)=>y9(U,Z),default:Z.const});return Y.families.set(_,J),$}function g9(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 ${k4(W)} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new W0,J=Object.assign((U)=>{let E=U0(U),V={key:_,subKey:E},L=`${_}(${E})`,R=o(Y),M=gZ(R,{key:L,const:Z.const(U),get:Z.get(U),set:Z.set(U)},V);return H.next({type:"state_creation",token:M}),M},$,{internalRoles:X,subject:H,install:(U)=>g9(U,Z),default:Z.const});return Y.families.set(_,J),$}function mZ(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 ${k4(W)} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new W0,J=Object.assign((U)=>{let E=U0(U),V={key:_,subKey:E},L=`${_}(${E})`,R=o(Y),M=pZ(R,{key:L,get:Z.get(U),set:Z.set(U)},V);return H.next({type:"state_creation",token:M}),M},$,{internalRoles:X,subject:H,install:(U)=>mZ(U,Z),default:(U)=>{return Z.get(U)({get:(...V)=>c1(Y,...V),find:(...V)=>Q0(Y,...V),json:(V)=>b4(Y,V)})}});return Y.families.set(_,J),$}function SZ(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X)return g9(Y,Z,void 0);if(_)return y9(Y,Z,void 0);if(X)return mZ(Y,Z);return h4(Y,Z)}function nz(Y,Z,X){let _=Y.families.get(Z.key);if(_===void 0)throw new yZ(Z,Y);let G=_(X),$=o(Y);if(G.family){if(R4($))switch(G.type){case"atom":case"mutable_atom":Y.on.atomCreation.next(G);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":Y.on.selectorCreation.next(G);break}else if(G1($)&&$.on.transactionApplying.state===null)$.transactionMeta.update.updates.push({type:"state_creation",token:G})}return G}function sz(Y,Z,X){let _=U0(X),G=`${Z.key}(${_})`,$=o(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 $4(W);return W}function Q0(Y,Z,X){let _=sz(Y,Z,X);if(_)return _;let G=U0(X),$=Y.molecules.get(G);if(!$&&Y.config.lifespan==="immortal"){let W=Nz(Z,X);return Y.logger.error("\u274C",W.type,W.key,`was not found in store "${Y.config.name}"; returned a counterfeit token.`),W}if(_=nz(Y,Z,X),$)o(Y).moleculeData.set(G,Z.key);return _}function H8(Y,...Z){let X;if(Z.length===1)X=Z[0];else{let _=Z[0],G=Z[1];X=Q0(Y,_,G)}try{u0(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":p9(Y,X);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":rz(Y,X);break}}function c1(Y,...Z){let X,_,G;if(Z.length===1)X=Z[0];else _=Z[0],G=Z[1],X=Q0(Y,_,G);if("counterfeit"in X&&"family"in X){_=Y.families.get(X.family.key);let $=X.family.subKey,W=Y.disposalTraces.buffer.find((H)=>H?.key===$);switch(Y.logger.error("\u274C",X.type,X.key,`could not be retrieved because it was not found in the store "${Y.config.name}".`,W?`This state was previously disposed:
60
- ${W.trace}`:"No previous disposal trace was found."),_.type){case"atom_family":case"mutable_atom_family":return Y.defaults.get(_.key);case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(Y.defaults.has(_.key))return Y.defaults.get(X.family.key);let H=u0(Y,_).default($);return Y.defaults.set(_.key,H),H}}}return L2(Y,u0(Y,X))}var B9=(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=Tz(Y,Z),$=L2(Y,Z);Y.logger.info("\u2728",Z.type,Z.key,"went",G,"->",$),Z.subject.next({newValue:$,oldValue:G})})};function Q8(Y,Z,X,_){function G(E){if(Y.operation.open){let V=Y.on.operationClose.subscribe(`state subscription ${X}`,()=>{V(),_(E)})}else _(E)}let $=u0(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){L2(Y,$);for(let[E,V]of L6(Y,$.key))H.set(E,B9(Y,$,V));Q=function E(V){let L=L6(Y,$.key);for(let[R,M]of H)if(L.get(R))L.delete(R);else M(),H.delete(R);for(let[R,M]of L)H.set(R,B9(Y,$,M));G(V)}}let J=$.subject.subscribe(X,Q);return()=>{Y.logger.info("\uD83D\uDE48",$.type,$.key,`Removing subscription "${X}"`),J();for(let E of H.values())E()}}function u0(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 yZ(Z,Y)}var tz=(Y,Z,X,_)=>{let G=u0(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 uZ=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=f4(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,$=G1(X)?X.transactionMeta.update.key:"main",W=`tracker:${G}:${$}:${_}`,H=(J)=>{w1(X,Z,J)},Q=c1(X,Y);this.unsubscribeFromInnerValue=Q.subscribe(W,H),this.unsubscribeFromState=Q8(X,Y,W,function J(U){if(U.newValue!==U.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=U.newValue.subscribe(W,H)}.bind(this))}supplySignalsToCore(Y,Z,X){let _=`tracker:${X.config.name}:${G1(X)?X.transactionMeta.update.key:"main"}:${Y.key}`;Q8(X,Z,_,function G({newValue:$,oldValue:W}){let H=X.timelineTopics.getRelatedKey(Z.key);if(H&&X.timelines.get(H)?.timeTraveling){let E=tz(X,{key:H,type:"timeline"},_,function V(L){E(),w1(X,Y,(R)=>{if(L==="redo"&&$)R.do($);else if(L==="undo"&&W)R.undo(W);return R})});return}let Q=c1(X,Y),J=Q.getUpdateNumber($),U=J-Q.cacheUpdateNumber;if($&&U===1)w1(X,Y,(E)=>(E.do($),E));else{let E=Q.cacheUpdateNumber+1;X.logger.info("\u274C","mutable_atom",Y.key,"could not be updated. Expected update number",E,"but got",J)}})}mutableAtomToken;latestSignalToken;[Symbol.dispose];constructor(Y,Z){let X=o(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 V6(Y,Z,X){Y.logger.info("\uD83D\uDD28","atom",Z.key,`creating in store "${Y.config.name}"`);let _=o(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."),$4($);let H=new W0,Q={...Z,type:W,install:(U)=>{return U.logger.info("\uD83D\uDEE0\uFE0F","atom",G,`installing in store "${U.config.name}"`),V6(U,Z,X)},subject:H};if(X)Q.family=X;_.atoms.set(Q.key,Q);let J=$4(Q);if(Z.effects){let U=0,E=[];for(let V of Z.effects){let L=V({resetSelf:()=>{O6(Y,J)},setSelf:(R)=>{w1(Y,J,R)},onSet:(R)=>Q8(Y,J,`effect[${U}]`,R)});if(L)E.push(L);++U}Q.cleanup=()=>{for(let V of E)V()}}if(new uZ(J,Y),!X)A9(Y,{key:`${G}:JSON`,get:({get:U})=>U(J).toJSON(),set:({set:U},E)=>{U(J,Z.class.fromJSON(E))}});return Y.on.atomCreation.next(J),J}var az=class{trackers=new Map;latestSignalAtoms;mutableAtoms;constructor(Y,Z){let X=D2(Z,{key:`*${Y.key}`,default:null},["mutable","updates"]);this.latestSignalAtoms=u0(Z,X),this.mutableAtoms=Y;let _=(G)=>{let{type:$,token:W}=G;if(W.family){let H=O1(W.family.subKey);switch($){case"state_creation":this.trackers.set(H,new uZ(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 PZ(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 ${k4(G)} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new W0,H=Object.assign((Q)=>{let J=U0(Q),U={key:Z.key,subKey:J},E=`${Z.key}(${J})`,V=o(Y),L={key:E,class:Z.class};if(Z.effects)L.effects=Z.effects(Q);let R=V6(V,L,U);return $.next({type:"state_creation",token:R}),R},_,{subject:$,install:(Q)=>PZ(Q,Z),internalRoles:X});return Y.families.set(Z.key,H),mZ(Y,{key:`${Z.key}:JSON`,get:(Q)=>({get:J})=>J(_,Q).toJSON(),set:(Q)=>({set:J},U)=>{J(_,Q,Z.class.fromJSON(U))}},["mutable","json"]),new az(H,Y),_}var C9=(Y,Z)=>{let X=o(Z),_=`${Y.key}:JSON`;return X.families.get(_)},b4=(Y,Z)=>{if(Z.family){let _=o(Y),$={key:`${Z.family.key}:JSON`,type:"writable_pure_selector_family"},W=u0(_,$),H=JSON.parse(Z.family.subKey);return Q0(Y,W,H)}return{type:"writable_pure_selector",key:`${Z.key}:JSON`}};var dZ=(Y)=>{let X={type:"atom",key:`*${Y.key}`};if(Y.family)X.family={key:`*${Y.family.key}`,subKey:Y.family.subKey};return X};function ez(Y){return typeof Y==="object"&&Y!==null&&"do"in Y&&"undo"in Y&&"subscribe"in Y}var w9=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 _1({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new _1({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 _1({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new _1({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new wz(100);molecules=new Map;moleculeJoins=new _1({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeGraph=new _1({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeData=new _1({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});miscResources=new Map;on={atomCreation:new W0,atomDisposal:new W0,selectorCreation:new W0,selectorDisposal:new W0,timelineCreation:new W0,transactionCreation:new W0,transactionApplying:new Iz(null),operationClose:new W0,moleculeCreation:new W0,moleculeDisposal:new W0};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new O9("warn",(Y,Z,X)=>!M2(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},R4(Z))this.transactionMeta={epoch:new Map(Z?.transactionMeta.epoch),actionContinuities:new _1(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=b4(Z,_),$=dZ(_);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)}}},o0={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new w9({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function f4(Y,Z,X,_){let{key:$}=Z;Y.logger.info("\uD83D\uDD28","atom",$,`creating in store "${Y.config.name}"`);let W=o(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."),$4(H);let Q=new W0,J={...Z,type:"atom",install:(E)=>{return E.logger.info("\uD83D\uDEE0\uFE0F","atom",$,`installing in store "${E.config.name}"`),f4(E,Z,X)},subject:Q};if(X)J.family=X;if(_)J.internalRoles=_;W.atoms.set($,J);let U=$4(J);if(Z.effects){let E=0,V=[];for(let L of Z.effects){let R=L({resetSelf:()=>{O6(Y,U)},setSelf:(M)=>{w1(Y,U,M)},onSet:(M)=>Q8(Y,U,`effect[${E}]`,M)});if(R)V.push(R);++E}J.cleanup=()=>{for(let L of V)L()}}return Y.on.atomCreation.next(U),U}function p9(Y,Z){let X=o(Y),{key:_,family:G}=Z,$=u0(X,Z);if(!G)Y.logger.error("\u274C","atom",_,"Standalone atoms cannot be disposed.");else{$.cleanup?.();let W=Y.valueMap.get($.key),H=u0(Y,{key:G.key,type:"atom_family"}),Q={type:"state_disposal",subType:"atom",token:Z,value:W};H.subject.next(Q);let J=G1(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 U=dZ(Z);p9(Y,U),Y.trackers.delete(_)}if(Y.logger.info("\uD83D\uDD25","atom",_,"deleted"),J&&X.transactionMeta.phase==="building"){let U=X.transactionMeta.update.updates.at(-1);if(!(U?.type==="molecule_disposal"&&U.values.some(([L])=>L===$.family?.key)))X.transactionMeta.update.updates.push(Q)}else Y.on.atomDisposal.next(Z)}}var m9=class{toolkit;options;defaultContent;molecules=new Map;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=o0.STORE){this.store=X,this.realm=new V9(X),this.options=Y,this.defaultContent=Z,this.store.miscResources.set(`join:${Y.key}`,this),this.realm.allocate("root",Y.key),this.toolkit={get:(...I)=>c1(X,...I),set:(...I)=>{w1(X,...I)},find:(...I)=>Q0(X,...I),json:(I)=>b4(X,I)};let _=Y.between[0],G=Y.between[1],$=PZ(X,{key:`${Y.key}/relatedKeys`,class:G4},["join","relations"]);this.core={relatedKeysAtoms:$};let W=({get:I},N)=>I($,N),H=({set:I},N,q)=>{if(!this.store.molecules.has(U0(N)))this.realm.allocate(Y.key,N);I($,N,(C)=>C.add(q)),I($,q,(C)=>C.add(N))},Q=({set:I},N,q)=>{I($,N,(C)=>{return C.delete(q),C}),I($,q,(C)=>{return C.delete(N),C})},J=(I,N,q)=>{let{find:C,get:p,set:s}=I,K=C($,N),a=p(K);for(let m of a){if(q.includes(m))continue;s($,m,(F0)=>{return F0.delete(N),F0})}s(K,(m)=>{return m.transaction((e)=>{e.clear();for(let F0 of q){let f0=W(I,F0),H1=f0.has(N);if(this.relations.cardinality==="1:n"){let n1=[];for(let B of f0){if(B===N)continue;let u=W(I,B);if(u.delete(F0),u.size===0)n1.push(B)}if(!H1&&f0.size>0)f0.clear();for(let B of n1){let u=[F0,B].sort(),G0=`"${u[0]}:${u[1]}"`;this.molecules.delete(G0)}}if(!H1)f0.add(N);e.add(F0)}return!0}),m})},U=(I,N,q)=>{let{set:C}=I;C($,N,(p)=>{return p.transaction((s)=>{for(let K of q)s.add(K);return!0}),p});for(let p of q)C($,p,(s)=>{return s.add(N),s});return!0},E=(I,N,q)=>{let C=W(I,N);return q?C.has(q):C.size>0},V={getRelatedKeys:(I)=>W(this.toolkit,I),addRelation:(I,N)=>{this.store.moleculeJoins.set(I,Y.key),this.store.moleculeJoins.set(N,Y.key),H(this.toolkit,I,N)},deleteRelation:(I,N)=>{Q(this.toolkit,I,N)},replaceRelationsSafely:(I,N)=>{J(this.toolkit,I,N)},replaceRelationsUnsafely:(I,N)=>{U(this.toolkit,I,N)},has:(I,N)=>E(this.toolkit,I,N)},L,R;if(Z){R=D2(X,{key:`${Y.key}/content`,default:Z},["join","content"]);let I=({get:C},p)=>C(R,p),N=({set:C},p,s)=>{C(R,p,s)};L=Object.assign(V,{getContent:(C)=>{return I(this.toolkit,C)},setContent:(C,p)=>{N(this.toolkit,C,p)},deleteContent:(C)=>{this.realm.deallocate(C)}})}else L=V;let M=new _1(Y,{externalStore:L,isAType:Y.isAType,isBType:Y.isBType,makeContentKey:(...I)=>{let[N,q]=I,C=I.sort(),p=`${C[0]}:${C[1]}`,s=X.molecules.get(U0(N)),K=X.molecules.get(U0(q));if(!s)this.realm.allocate(Y.key,N);if(!K)this.realm.allocate(Y.key,q);return this.realm.allocate(N,p,"all"),this.realm.claim(q,p),this.store.moleculeJoins.set(p,Y.key),p}}),y=()=>h4(X,{key:`${Y.key}/singleRelatedKey`,get:(I)=>({get:N})=>{let q=N($,I);for(let C of q)return C;return null}},["join","keys"]),k=()=>{return h4(X,{key:`${Y.key}/multipleRelatedKeys`,get:(I)=>({get:N})=>{let q=C9($,X);return N(q,I).members}},["join","keys"])},h=()=>h4(X,{key:`${Y.key}/singleRelatedEntry`,get:(I)=>({get:N})=>{let q=N($,I);for(let C of q){let p=M.isAType?.(I)?I:void 0,s=p===void 0?I:void 0;p??=C,s??=C;let K=M.makeContentKey(p,s),a=N(R,K);return[C,a]}return null}},["join","entries"]),f=()=>h4(X,{key:`${Y.key}/multipleRelatedEntries`,get:(I)=>({get:N})=>{let q=C9($,X);return N(q,I).members.map((p)=>{let s=M.isAType?.(I)?I:void 0,K=s===void 0?I:void 0;s??=p,K??=p;let a=M.makeContentKey(s,K),m=N(R,a);return[p,m]})}},["join","entries"]);switch(Y.cardinality){case"1:1":{let I=y(),N=`${_}KeyOf${T0(G)}`,q=`${G}KeyOf${T0(_)}`,C={[N]:I,[q]:I},p;if(Z){let s=h(),K=`${_}EntryOf${T0(G)}`,a=`${G}EntryOf${T0(_)}`,m={[K]:s,[a]:s};p=Object.assign(C,m)}else p=C;this.relations=M,this.states=p;break}case"1:n":{let I=y(),N=k(),q=`${_}KeyOf${T0(G)}`,C=`${G}KeysOf${T0(_)}`,p={[q]:I,[C]:N},s;if(Z){let K=h(),a=f(),m=`${_}EntryOf${T0(G)}`,e=`${G}EntriesOf${T0(_)}`,F0={[m]:K,[e]:a};s=Object.assign(p,F0)}else s=p;this.relations=M,this.states=s;break}case"n:n":{let I=k(),N=`${_}KeysOf${T0(G)}`,q=`${G}KeysOf${T0(_)}`,C={[N]:I,[q]:I},p;if(Z){let s=f(),K=`${_}EntriesOf${T0(G)}`,a=`${G}EntriesOf${T0(_)}`,m={[K]:s,[a]:s};p=Object.assign(C,m)}else p=C;this.relations=M,this.states=p}}}};function R9(Y,Z,X){return Y.joins.set(Z.key,new m9(Z,X,Y)),{key:Z.key,type:"join",a:Z.between[0],b:Z.between[1],cardinality:Z.cardinality}}function cZ(Y,Z){let X=Z.joins.get(Y.key);if(X===void 0){let G=o0.STORE.joins.get(Y.key);if(G===void 0)throw new Error(`Join "${Y.key}" not found in store "${Z.config.name}"`);X=new m9(G.options,G.defaultContent,Z),Z.joins.set(Y.key,X)}return X}function J8(Y,Z,X){let _=cZ(Y,X),G=o(X);if(G1(G)){let{toolkit:$}=G.transactionMeta;_.transact($,({relations:W})=>{Z(W)})}else Z(_.relations)}function N9(Y,Z,X){let _=cZ(Y,X),G;switch(Y.cardinality){case"1:1":{let $=`${Y.a}KeyOf${T0(Y.b)}`,W=`${Y.b}KeyOf${T0(Y.a)}`;G={get[$](){let Q=_.states[$];return Q0(X,Q,Z)},get[W](){let Q=_.states[W];return Q0(X,Q,Z)}};let H=`${Y.a}EntryOf${T0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntryOf${T0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return Q0(X,J,Z)},get[Q](){let J=_.states[Q];return Q0(X,J,Z)}})}break}case"1:n":{let $=`${Y.a}KeyOf${T0(Y.b)}`,W=`${Y.b}KeysOf${T0(Y.a)}`;G={get[$](){let Q=_.states[$];return Q0(X,Q,Z)},get[W](){let Q=_.states[W];return Q0(X,Q,Z)}};let H=`${Y.a}EntryOf${T0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntriesOf${T0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return Q0(X,J,Z)},get[Q](){let J=_.states[Q];return Q0(X,J,Z)}})}break}case"n:n":{let $=`${Y.a}KeysOf${T0(Y.b)}`,W=`${Y.b}KeysOf${T0(Y.a)}`;G={get[$](){let Q=_.states[$];return Q0(X,Q,Z)},get[W](){let Q=_.states[W];return Q0(X,Q,Z)}};let H=`${Y.a}EntriesOf${T0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntriesOf${T0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return Q0(X,J,Z)},get[Q](){let J=_.states[Q];return Q0(X,J,Z)}})}}}return G}function I9(Y,Z){return cZ(Y,Z).core.relatedKeysAtoms}function M2(Y){return Y.startsWith("\uD83D\uDD0D ")}var YF=(Y)=>{return f4(Y,{key:"\uD83D\uDD0D Atom Token Index",default:()=>{let Z=new Map;for(let[X,_]of Y.atoms){if(M2(X))continue;let G=$4(_);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(M2(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)},ZF=(Y)=>{return f4(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(M2(_))continue;let $=$4(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(M2(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 lZ=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}},d9=new lZ({number:(Y)=>typeof Y==="number",string:(Y)=>typeof Y==="string",boolean:(Y)=>typeof Y==="boolean",null:(Y)=>Y===null});function c9(Y){if(!Y)return!1;return Object.getPrototypeOf(Y)===Object.prototype}var l9=new lZ({object:c9,array:(Y)=>Array.isArray(Y)}),XF=new lZ({...d9.supported,...l9.supported}),A6=(Y)=>{if(Y===void 0)return"undefined";let Z=XF.refine(Y);if(Z)return Z.type;return Object.getPrototypeOf(Y).constructor.name};var mT=class Y{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(Z=o0.STORE){this.store=Z,this.atomIndex=YF(this.store),this.selectorIndex=ZF(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=CZ(this.atomIndex),_=CZ(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 U of J){let V=this.statesCreatedAt.get(U.key)??this.auditorCreatedAt,L=W-V;H.push([U,L])}}if(Z.selectorFamilies)for(let Q of $){let J=Q.familyMembers.values();for(let U of J){let V=this.statesCreatedAt.get(U.key)??this.auditorCreatedAt,L=W-V;H.push([U,L])}}return H}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}},u9=(Y,Z)=>{let X=(_,G)=>{let W=((Q,J)=>{let U=Z(Q,J);if(U)return U;return null})(_,G);if(W?.jobComplete??W?.pathComplete)return W;let H=Array.isArray(G)?G.map((Q,J)=>[J,Q]):c9(G)?Object.entries(G):[];for(let[Q,J]of H){let U=X([..._,Q],J);if(U?.jobComplete)return U}return{}};X([],Y)};function _F(Y,Z){return{summary:`${Y<Z?"+":"-"}${Math.abs(Y-Z)} (${Y} \u2192 ${Z})`}}function GF(Y,Z){return{summary:`${Y.length<Z.length?"+":"-"}${Math.abs(Y.length-Z.length)} ("${Y}" \u2192 "${Z}")`}}function $F(Y,Z){return{summary:`${Y} \u2192 ${Z}`}}function o9(Y,Z,X){let _="",G=[],$=[],W=[];return u9(Y,(H,Q)=>{let J;for(J of H){let U=Z[J];if(U===void 0)$.push([J,JSON.stringify(Q)]);else{let E=X(Q,U);if(E.summary!=="No Change")W.push([J,E])}}}),u9(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 WF(Y,Z,X){return o9(Y,Z,X)}var HF=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,(H,Q)=>this.diff(H,Q))}}let G=A6(Y),$=A6(Z);if(G===$)return{summary:`${G} \u2192 ${$}`};return{summary:`Type change: ${G} \u2192 ${$}`}}},uT=new HF(d9,l9,{number:_F,string:GF,boolean:$F,null:()=>({summary:"No Change"}),object:o9,array:WF});var JF=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)}clear(){throw new Error("Cannot clear an InvariantMap")}},rT=class Y{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(Z){this.key=Z}static existing=new JF;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[_,G]=Z;this.perspectives.push({type:"realtime_perspective",resourceAtoms:_,viewAtoms:G})}break}return this}};var nT=E2({key:"usersInRoomIndex",class:G4}),oZ=E2({key:"roomIndex",class:G4}),QF={enteredAtEpoch:0},z8=F6({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(Y)=>typeof Y==="string",isBType:(Y)=>typeof Y==="string"},QF),sT=E6({key:"usersInMyRoomView",get:(Y)=>({find:Z})=>{let X=E9(z8);return[Z(X,Y)]}});import{spawn as UF}from"child_process";var iZ=class{listeners;globalListeners;handleEvent(Y,...Z){for(let _ of this.globalListeners)_(Y,...Z);let X=this.listeners.get(Y);if(X)for(let _ of X)_(...Z)}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}},zF=class extends iZ{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;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;default:return}}}constructor(Y,Z,X){super((_,...G)=>{let $=JSON.stringify([_,...G])+"\x03",W=(H)=>{if(H.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",W)};return this.process.stdin.once("error",W),this.process.stdin.write($),this});if(this.process=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.process.stdout.on("data",(_)=>{let G=_.toString();if(G==="ALIVE")return;this.unprocessedEvents.push(...G.split("\x03"));let $=this.unprocessedEvents.shift();this.incompleteData+=$??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let W=O1(this.incompleteData);this.handleEvent(...W);while(this.unprocessedEvents.length>0){let H=this.unprocessedEvents.shift();if(H){if(this.unprocessedEvents.length===0)this.incompleteData=H;W=O1(H),this.handleEvent(...W)}}this.incompleteData=""}catch(W){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(W)}}),this.process.stderr.on("data",(_)=>{let G=_.toString();this.unprocessedLogs.push(...G.split("\x03"));let $=this.unprocessedLogs.shift();this.incompleteLog+=$??"";try{let W=O1(this.incompleteLog);this.handleLog(W);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)W=O1(this.incompleteLog),this.handleLog(W)}catch(W){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(W),console.error("\u274C\u274C\u274C\uFE0F")}}),Y.pid)this.id=Y.pid.toString()}},FF=class extends iZ{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(Y){super((...Z)=>{return this.out.next(Z),this});this.id=Y,this.in=new W0,this.out=new W0,this.in.subscribe("socket",(Z)=>{this.handleEvent(...Z)})}dispose(){for(let Y of this.disposalFunctions)Y()}},i9=class extends iZ{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...Y){this.process.stderr.write(U0(Y.map((Z)=>Z instanceof G4?`{ ${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(){super((Y,...Z)=>{let X=JSON.stringify([Y,...Z]);return this.process.stdout.write(X+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(Y)=>{let Z=Y.toString();this.unprocessedEvents.push(...Z.split("\x03"));let X=this.unprocessedEvents.shift();this.incompleteData+=X??"";try{let _=O1(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",_),this.handleEvent(..._);while(this.unprocessedEvents.length>0){let G=this.unprocessedEvents.shift();if(G){if(this.unprocessedEvents.length===0)this.incompleteData=G;let $=O1(G);this.handleEvent(...$)}}this.incompleteData=""}catch(_){if(_ instanceof Error)this.logger.error("\u2757",_.message,_.cause,_.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(Y)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${Y}`)}),process.on("end",()=>{this.logger.info("\uD83D\uDD25",this.id,"ended"),process.exit(0)}),process.on("SIGTERM",()=>{this.logger.error("\uD83D\uDD25",this.id,"terminated"),process.exit(0)}),process.on("SIGINT",()=>{this.logger.error("\uD83D\uDD25",this.id,"interrupted"),process.exit(0)}),process.pid)this.id=process.pid?.toString();this.on("user-joins",(Y)=>{this.logger.info("\uD83D\uDC64","user",Y,"joined");let Z=new FF(`user:${Y}`);this.relays.set(Y,Z),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let X of this.relayServices){let _=X(Z);if(_)Z.disposalFunctions.push(_)}this.on(`user:${Y}`,(...X)=>{Z.in.next(X)}),Z.out.subscribe("socket",(X)=>{this.emit(...X)})}),this.on("user-leaves",(Y)=>{let Z=this.relays.get(Y);if(this.off(`relay:${Y}`),Z)Z.dispose(),this.relays.delete(Y)}),process.stdout.write("ALIVE")}relay(Y){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(Y)}},r9=G8({key:"roomArguments",default:["echo",["Hello World!"]]}),EF=E6({key:"room",get:(Y)=>async({get:Z,find:X})=>{let _=X(r9,Y),G=Z(_),[$,W]=G,H=await new Promise((Q)=>{let J=UF($,W,{env:process.env}),U=(E)=>{if(E.toString()==="ALIVE")J.stdout.off("data",U),Q(J)};J.stdout.on("data",U)});return new zF(H,Y)}}),WK=$8({key:"createRoom",do:({get:Y,set:Z,find:X},_,G,$)=>{let W=$?[G,$]:[G],H=X(r9,_);Z(H,W),Z(oZ,(U)=>U.add(_));let Q=X(EF,_);return Y(Q)}}),HK=$8({key:"joinRoom",do:(Y,Z,X,_)=>{let G={enteredAtEpoch:_};return J8(z8,($)=>{$.set({room:Z,user:X},G)},Y.env().store),G}}),JK=$8({key:"leaveRoom",do:(Y,Z,X)=>{J8(z8,(_)=>{_.delete({room:Z,user:X})},Y.env().store)}}),QK=$8({key:"destroyRoom",do:(Y,Z)=>{J8(z8,(X)=>{X.delete({room:Z})},Y.env().store),Y.set(oZ,(X)=>(X.delete(Z),X))}});var UK=G8({key:"redactor",default:{occlude:(Y)=>Y}}),zK=G8({key:"unacknowledgedUpdates",default:()=>[]}),FK=G8({key:"sockets",default:null}),EK=E2({key:"socketsIndex",class:G4}),OK=E2({key:"usersIndex",class:G4}),VK=F6({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(Y)=>Y.startsWith("user::"),isBType:(Y)=>Y.startsWith("socket::")});var{file:B3,serve:jE}=globalThis.Bun;import{readFileSync as t9}from"fs";import{createServer as LF}from"http";import{createServer as MF}from"https";import{resolve as nZ}from"path";function n9(Y,Z){if(Y instanceof Promise)throw new Error(Z)}function OF(Y,Z){let X={},_=[];for(let G in Y){let $=Y[G]["~standard"].validate(Z[G]);if(n9($,`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 rZ(Y){let Z=Y.runtimeEnvStrict??Y.runtimeEnv??process.env;if(Y.emptyStringAsUndefined??!1){for(let[h,f]of Object.entries(Z))if(f==="")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)??OF(Q,Z);n9(J,"Validation must be synchronous");let U=Y.onValidationError??((h)=>{throw console.error("\u274C Invalid environment variables:",h),new Error("Invalid environment variables")}),E=Y.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(J.issues)return U(J.issues);let V=(h)=>{if(!Y.clientPrefix)return!0;return!h.startsWith(Y.clientPrefix)&&!(h in W)},L=(h)=>{return H||!V(h)},R=(h)=>{return h==="__esModule"||h==="$$typeof"},M=(Y.extends??[]).reduce((h,f)=>{return Object.assign(h,f)},{}),y=Object.assign(M,J.value);return new Proxy(y,{get(h,f){if(typeof f!=="string")return;if(R(f))return;if(!L(f))return E(f);return Reflect.get(h,f)}})}var VF="__vite_start_time"in globalThis,DF=typeof window!=="undefined",BK="vitest"in globalThis,W4=E1("string"),s9=E1('"true" | "false" | undefined'),k1=rZ({isServer:!VF&&!DF,server:{CI:E1("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:s9.pipe((Y)=>Y==="true"),FRONTEND_PORT:W4.pipe((Y)=>Number.parseInt(Y,10)),FRONTEND_ORIGINS:W4.pipe.try((Y)=>JSON.parse(Y),E1("string[]")),API_KEY_OPENAI:E1("string | undefined"),API_KEY_RESEND:E1("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:W4,VITE_DEV_FRONTEND_HOST:E1("string | undefined"),VITE_DEV_HTTPS:s9.pipe((Y)=>Y==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var a9=nZ(import.meta.dirname,"../dev"),w6=k1.VITE_DEV_HTTPS?{cert:t9(nZ(a9,"./cert.pem"),"utf-8"),key:t9(nZ(a9,"./key.pem"),"utf-8")}:void 0;function xK(Y){if(w6)return MF(w6,Y);return LF({},Y)}import NE from"path";var F=Symbol.for("drizzle:entityKind");function A(Y,Z){if(!Y||typeof Y!=="object")return!1;if(Y instanceof Z)return!0;if(!Object.prototype.hasOwnProperty.call(Z,F))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(F in X&&X[F]===Z[F])return!0;X=Object.getPrototypeOf(X)}return!1}class O0{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[F]="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 sZ{static[F]="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 b1=Symbol.for("drizzle:Name");class tZ{static[F]="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 e9(Y,this)}}class e9{constructor(Y,Z){this.table=Y,this.reference=Z.reference,this.onUpdate=Z._onUpdate,this.onDelete=Z._onDelete}static[F]="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[b1],..._,X[0].table[b1],...G];return Y??`${$.join("_")}_fk`}}function R6(Y,...Z){return Y(...Z)}function Y7(Y,Z){return`${Y[b1]}_${Z.join("_")}_unique`}function Z7(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 X7(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]=Z7(Y,_+1,!0);X.push(Q),_=J;continue}if($==="}")return[X,_+1];if($==="{"){let[Q,J]=X7(Y,_+1);X.push(Q),_=J;continue}let[W,H]=Z7(Y,_,!1);X.push(W),_=H}return[X,_]}function _7(Y){let[Z]=X7(Y,1);return Z}function aZ(Y){return`{${Y.map((Z)=>{if(Array.isArray(Z))return aZ(Z);if(typeof Z==="string")return`"${Z.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${Z}`}).join(",")}}`}class b extends sZ{foreignKeyConfigs=[];static[F]="PgColumnBuilder";array(Y){return new $7(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 R6((G,$)=>{let W=new tZ(()=>{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 G7(Y,this.config)}}class j extends O0{constructor(Y,Z){if(!Z.uniqueName)Z.uniqueName=Y7(Y,[Z.name]);super(Y,Z);this.table=Y}static[F]="PgColumn"}class G7 extends j{static[F]="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 F8{static[F]="IndexedColumn";constructor(Y,Z,X,_){this.name=Y,this.keyAsName=Z,this.type=X,this.indexConfig=_}name;keyAsName;type;indexConfig}class $7 extends b{static[F]="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 eZ(Y,this.config,Z)}}class eZ extends j{constructor(Y,Z,X,_){super(Y,Z);this.baseColumn=X,this.range=_,this.size=Z.size}size;static[F]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(Y){if(typeof Y==="string")Y=_7(Y);return Y.map((Z)=>this.baseColumn.mapFromDriverValue(Z))}mapToDriverValue(Y,Z=!1){let X=Y.map((_)=>_===null?null:A(this.baseColumn,eZ)?this.baseColumn.mapToDriverValue(_,!0):this.baseColumn.mapToDriverValue(_));if(Z)return X;return aZ(X)}}class W7 extends b{static[F]="PgEnumObjectColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumObjectColumn");this.config.enum=Z}build(Y){return new H7(Y,this.config)}}class H7 extends j{static[F]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}var N6=Symbol.for("drizzle:isPgEnum");function J7(Y){return!!Y&&typeof Y==="function"&&N6 in Y&&Y[N6]===!0}class Q7 extends b{static[F]="PgEnumColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumColumn");this.config.enum=Z}build(Y){return new U7(Y,this.config)}}class U7 extends j{static[F]="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 E8(Y,Z){return Array.isArray(Z)?AF(Y,[...Z],void 0):wF(Y,Z,void 0)}function AF(Y,Z,X){let _=Object.assign((G)=>new Q7(G??"",_),{enumName:Y,enumValues:Z,schema:X,[N6]:!0});return _}function wF(Y,Z,X){let _=Object.assign((G)=>new W7(G??"",_),{enumName:Y,enumValues:Object.values(Z),schema:X,[N6]:!0});return _}class S0{static[F]="Subquery";constructor(Y,Z,X,_=!1,G=[]){this._={brand:"Subquery",sql:Y,selectedFields:Z,alias:X,isWith:_,usedTables:G}}}class O8 extends S0{static[F]="WithSubquery"}var z7="0.44.4";var Y5,Z5,V0={startActiveSpan(Y,Z){if(!Y5)return Z();if(!Z5)Z5=Y5.trace.getTracer("drizzle-orm",z7);return R6((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()}}),Y5,Z5)}};var A0=Symbol.for("drizzle:ViewBaseConfig");var y4=Symbol.for("drizzle:Schema"),I6=Symbol.for("drizzle:Columns"),F7=Symbol.for("drizzle:ExtraConfigColumns"),X5=Symbol.for("drizzle:OriginalName"),_5=Symbol.for("drizzle:BaseName"),V8=Symbol.for("drizzle:IsAlias"),E7=Symbol.for("drizzle:ExtraConfigBuilder"),RF=Symbol.for("drizzle:IsDrizzleTable");class S{static[F]="Table";static Symbol={Name:b1,Schema:y4,OriginalName:X5,Columns:I6,ExtraConfigColumns:F7,BaseName:_5,IsAlias:V8,ExtraConfigBuilder:E7};[b1];[X5];[y4];[I6];[F7];[_5];[V8]=!1;[RF]=!0;[E7]=void 0;constructor(Y,Z,X){this[b1]=this[X5]=Y,this[y4]=Z,this[_5]=X}}function d0(Y){return Y[b1]}function g4(Y){return`${Y[y4]??"public"}.${Y[b1]}`}function G5(Y){return Y!==null&&Y!==void 0&&typeof Y.getSQL==="function"}function NF(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 p0{static[F]="StringChunk";value;constructor(Y){this.value=Array.isArray(Y)?Y:[Y]}getSQL(){return new x([this])}}class x{constructor(Y){this.queryChunks=Y;for(let Z of Y)if(A(Z,S)){let X=Z[S.Symbol.Schema];this.usedTables.push(X===void 0?Z[S.Symbol.Name]:X+"."+Z[S.Symbol.Name])}}static[F]="SQL";decoder=V7;shouldInlineParams=!1;usedTables=[];append(Y){return this.queryChunks.push(...Y.queryChunks),this}toQuery(Y){return V0.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 NF(Y.map((J)=>{if(A(J,p0))return{sql:J.value.join(""),params:[]};if(A(J,T6))return{sql:G(J.value),params:[]};if(J===void 0)return{sql:"",params:[]};if(Array.isArray(J)){let U=[new p0("(")];for(let[E,V]of J.entries())if(U.push(V),E<J.length-1)U.push(new p0(", "));return U.push(new p0(")")),this.buildQueryFromSourceParams(U,X)}if(A(J,x))return this.buildQueryFromSourceParams(J.queryChunks,{...X,inlineParams:H||J.shouldInlineParams});if(A(J,S)){let U=J[S.Symbol.Schema],E=J[S.Symbol.Name];return{sql:U===void 0||J[V8]?G(E):G(U)+"."+G(E),params:[]}}if(A(J,O0)){let U=_.getColumnCasing(J);if(Z.invokeSource==="indexes")return{sql:G(U),params:[]};let E=J.table[S.Symbol.Schema];return{sql:J.table[V8]||E===void 0?G(J.table[S.Symbol.Name])+"."+G(U):G(E)+"."+G(J.table[S.Symbol.Name])+"."+G(U),params:[]}}if(A(J,V1)){let U=J[A0].schema,E=J[A0].name;return{sql:U===void 0||J[A0].isAlias?G(E):G(U)+"."+G(E),params:[]}}if(A(J,R1)){if(A(J.value,N4))return{sql:$(Q.value++,J),params:[J],typings:["none"]};let U=J.value===null?null:J.encoder.mapToDriverValue(J.value);if(A(U,x))return this.buildQueryFromSourceParams([U],X);if(H)return{sql:this.mapInlineParam(U,X),params:[]};let E=["none"];if(W)E=[W(J.encoder)];return{sql:$(Q.value++,U),params:[U],typings:E}}if(A(J,N4))return{sql:$(Q.value++,J),params:[J],typings:["none"]};if(A(J,x.Aliased)&&J.fieldAlias!==void 0)return{sql:G(J.fieldAlias),params:[]};if(A(J,S0)){if(J._.isWith)return{sql:G(J._.alias),params:[]};return this.buildQueryFromSourceParams([new p0("("),J._.sql,new p0(") "),new T6(J._.alias)],X)}if(J7(J)){if(J.schema)return{sql:G(J.schema)+"."+G(J.enumName),params:[]};return{sql:G(J.enumName),params:[]}}if(G5(J)){if(J.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([J.getSQL()],X);return this.buildQueryFromSourceParams([new p0("("),J.getSQL(),new p0(")")],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 x.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 T6{constructor(Y){this.value=Y}static[F]="Name";brand;getSQL(){return new x([this])}}function O7(Y){return typeof Y==="object"&&Y!==null&&"mapToDriverValue"in Y&&typeof Y.mapToDriverValue==="function"}var V7={mapFromDriverValue:(Y)=>Y},D7={mapToDriverValue:(Y)=>Y},NB={...V7,...D7};class R1{constructor(Y,Z=D7){this.value=Y,this.encoder=Z}static[F]="Param";brand;getSQL(){return new x([this])}}function O(Y,...Z){let X=[];if(Z.length>0||Y.length>0&&Y[0]!=="")X.push(new p0(Y[0]));for(let[_,G]of Z.entries())X.push(G,new p0(Y[_+1]));return new x(X)}((Y)=>{function Z(){return new x([])}Y.empty=Z;function X(Q){return new x(Q)}Y.fromList=X;function _(Q){return new x([new p0(Q)])}Y.raw=_;function G(Q,J){let U=[];for(let[E,V]of Q.entries()){if(E>0&&J!==void 0)U.push(J);U.push(V)}return new x(U)}Y.join=G;function $(Q){return new T6(Q)}Y.identifier=$;function W(Q){return new N4(Q)}Y.placeholder=W;function H(Q,J){return new R1(Q,J)}Y.param=H})(O||(O={}));((Y)=>{class Z{constructor(X,_){this.sql=X,this.fieldAlias=_}static[F]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new Z(this.sql,this.fieldAlias)}}Y.Aliased=Z})(x||(x={}));class N4{constructor(Y){this.name=Y}static[F]="Placeholder";getSQL(){return new x([this])}}function $5(Y,Z){return Y.map((X)=>{if(A(X,N4)){if(!(X.name in Z))throw new Error(`No value for placeholder "${X.name}" was provided`);return Z[X.name]}if(A(X,R1)&&A(X.value,N4)){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 IF=Symbol.for("drizzle:IsDrizzleView");class V1{static[F]="View";[A0];[IF]=!0;constructor({name:Y,schema:Z,selectedFields:X,query:_}){this[A0]={name:Y,originalName:Y,schema:Z,selectedFields:X,query:_,isExisting:!_,isAlias:!1}}getSQL(){return new x([this])}}O0.prototype.getSQL=function(){return new x([this])};S.prototype.getSQL=function(){return new x([this])};S0.prototype.getSQL=function(){return new x([this])};class A2{constructor(Y){this.table=Y}static[F]="ColumnAliasProxyHandler";get(Y,Z){if(Z==="table")return this.table;return Y[Z]}}class D8{constructor(Y,Z){this.alias=Y,this.replaceOriginalName=Z}static[F]="TableAliasProxyHandler";get(Y,Z){if(Z===S.Symbol.IsAlias)return!0;if(Z===S.Symbol.Name)return this.alias;if(this.replaceOriginalName&&Z===S.Symbol.OriginalName)return this.alias;if(Z===A0)return{...Y[A0],name:this.alias,isAlias:!0};if(Z===S.Symbol.Columns){let _=Y[S.Symbol.Columns];if(!_)return _;let G={};return Object.keys(_).map(($)=>{G[$]=new Proxy(_[$],new A2(new Proxy(Y,this)))}),G}let X=Y[Z];if(A(X,O0))return new Proxy(X,new A2(new Proxy(Y,this)));return X}}function K6(Y,Z){return new Proxy(Y,new D8(Z,!1))}function i1(Y,Z){return new Proxy(Y,new A2(new Proxy(Y.table,new D8(Z,!1))))}function W5(Y,Z){return new x.Aliased(L8(Y.sql,Z),Y.fieldAlias)}function L8(Y,Z){return O.join(Y.queryChunks.map((X)=>{if(A(X,O0))return i1(X,Z);if(A(X,x))return L8(X,Z);if(A(X,x.Aliased))return W5(X,Z);return X}))}class B6 extends Error{static[F]="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}
61
- params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrace(this,H4),X)this.cause=X}}class H5 extends B6{static[F]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class L7{static[F]="ConsoleLogWriter";write(Y){console.log(Y)}}class J5{static[F]="DefaultLogger";writer;constructor(Y){this.writer=Y?.writer??new L7}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 Q5{static[F]="NoopLogger";logQuery(){}}class $1{static[F]="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 M7(Y,Z,X){let _={},G=Y.reduce(($,{path:W,field:H},Q)=>{let J;if(A(H,O0))J=H;else if(A(H,x))J=H.decoder;else J=H.sql.decoder;let U=$;for(let[E,V]of W.entries())if(E<W.length-1){if(!(V in U))U[V]={};U=U[V]}else{let L=Z[Q],R=U[V]=L===null?null:J.mapFromDriverValue(L);if(X&&A(H,O0)&&W.length===2){let M=W[0];if(!(M in _))_[M]=R===null?d0(H.table):!1;else if(typeof _[M]==="string"&&_[M]!==d0(H.table))_[M]=!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 C1(Y,Z){return Object.entries(Y).reduce((X,[_,G])=>{if(typeof _!=="string")return X;let $=Z?[...Z,_]:[_];if(A(G,O0)||A(G,x)||A(G,x.Aliased))X.push({path:$,field:G});else if(A(G,S))X.push(...C1(G[S.Symbol.Columns],$));else X.push(...C1(G,$));return X},[])}function M8(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 C6(Y,Z){let X=Object.entries(Z).filter(([,_])=>_!==void 0).map(([_,G])=>{if(A(G,x)||A(G,O0))return[_,G];else return[_,new R1(G,Y[S.Symbol.Columns][_])]});if(X.length===0)throw new Error("No values to set");return Object.fromEntries(X)}function A7(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 w7(Y){return Y[S.Symbol.Columns]}function J4(Y){return A(Y,S0)?Y._.alias:A(Y,V1)?Y[A0].name:A(Y,x)?void 0:Y[S.Symbol.IsAlias]?Y[S.Symbol.Name]:Y[S.Symbol.BaseName]}function X0(Y,Z){return{name:typeof Y==="string"&&Y.length>0?Y:"",config:typeof Y==="object"?Y:Z}}function R7(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 I4 extends b{static[F]="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 N7 extends I4{static[F]="PgBigInt53Builder";constructor(Y){super(Y,"number","PgBigInt53")}build(Y){return new I7(Y,this.config)}}class I7 extends j{static[F]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class T7 extends I4{static[F]="PgBigInt64Builder";constructor(Y){super(Y,"bigint","PgBigInt64")}build(Y){return new K7(Y,this.config)}}class K7 extends j{static[F]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(Y){return BigInt(Y)}}function B7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new N7(X);return new T7(X)}class C7 extends b{static[F]="PgBigSerial53Builder";constructor(Y){super(Y,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new q7(Y,this.config)}}class q7 extends j{static[F]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class j7 extends b{static[F]="PgBigSerial64Builder";constructor(Y){super(Y,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(Y){return new S7(Y,this.config)}}class S7 extends j{static[F]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(Y){return BigInt(Y)}}function P7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new C7(X);return new j7(X)}class v7 extends b{static[F]="PgBooleanBuilder";constructor(Y){super(Y,"boolean","PgBoolean")}build(Y){return new x7(Y,this.config)}}class x7 extends j{static[F]="PgBoolean";getSQLType(){return"boolean"}}function A8(Y){return new v7(Y??"")}class f7 extends b{static[F]="PgCharBuilder";constructor(Y,Z){super(Y,"string","PgChar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new h7(Y,this.config)}}class h7 extends j{static[F]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function k7(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new f7(X,_)}class b7 extends b{static[F]="PgCidrBuilder";constructor(Y){super(Y,"string","PgCidr")}build(Y){return new y7(Y,this.config)}}class y7 extends j{static[F]="PgCidr";getSQLType(){return"cidr"}}function g7(Y){return new b7(Y??"")}class p7 extends b{static[F]="PgCustomColumnBuilder";constructor(Y,Z,X){super(Y,"custom","PgCustomColumn");this.config.fieldConfig=Z,this.config.customTypeParams=X}build(Y){return new m7(Y,this.config)}}class m7 extends j{static[F]="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 u7(Y){return(Z,X)=>{let{name:_,config:G}=X0(Z,X);return new p7(_,G,Y)}}class Q4 extends b{static[F]="PgDateColumnBaseBuilder";defaultNow(){return this.default(O`now()`)}}class d7 extends Q4{static[F]="PgDateBuilder";constructor(Y){super(Y,"date","PgDate")}build(Y){return new q6(Y,this.config)}}class q6 extends j{static[F]="PgDate";getSQLType(){return"date"}mapFromDriverValue(Y){return new Date(Y)}mapToDriverValue(Y){return Y.toISOString()}}class c7 extends Q4{static[F]="PgDateStringBuilder";constructor(Y){super(Y,"string","PgDateString")}build(Y){return new j6(Y,this.config)}}class j6 extends j{static[F]="PgDateString";getSQLType(){return"date"}}function l7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="date")return new d7(X);return new c7(X)}class o7 extends b{static[F]="PgDoublePrecisionBuilder";constructor(Y){super(Y,"number","PgDoublePrecision")}build(Y){return new i7(Y,this.config)}}class i7 extends j{static[F]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function r7(Y){return new o7(Y??"")}class n7 extends b{static[F]="PgInetBuilder";constructor(Y){super(Y,"string","PgInet")}build(Y){return new s7(Y,this.config)}}class s7 extends j{static[F]="PgInet";getSQLType(){return"inet"}}function t7(Y){return new n7(Y??"")}class a7 extends I4{static[F]="PgIntegerBuilder";constructor(Y){super(Y,"number","PgInteger")}build(Y){return new e7(Y,this.config)}}class e7 extends j{static[F]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseInt(Y);return Y}}function w8(Y){return new a7(Y??"")}class Y$ extends b{static[F]="PgIntervalBuilder";constructor(Y,Z){super(Y,"string","PgInterval");this.config.intervalConfig=Z}build(Y){return new Z$(Y,this.config)}}class Z$ extends j{static[F]="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 X$(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new Y$(X,_)}class _$ extends b{static[F]="PgJsonBuilder";constructor(Y){super(Y,"json","PgJson")}build(Y){return new S6(Y,this.config)}}class S6 extends j{static[F]="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 G$(Y){return new _$(Y??"")}class $$ extends b{static[F]="PgJsonbBuilder";constructor(Y){super(Y,"json","PgJsonb")}build(Y){return new P6(Y,this.config)}}class P6 extends j{static[F]="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 $$(Y??"")}class H$ extends b{static[F]="PgLineBuilder";constructor(Y){super(Y,"array","PgLine")}build(Y){return new J$(Y,this.config)}}class J$ extends j{static[F]="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 Q$ extends b{static[F]="PgLineABCBuilder";constructor(Y){super(Y,"json","PgLineABC")}build(Y){return new U$(Y,this.config)}}class U$ extends j{static[F]="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 z$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new H$(X);return new Q$(X)}class F$ extends b{static[F]="PgMacaddrBuilder";constructor(Y){super(Y,"string","PgMacaddr")}build(Y){return new E$(Y,this.config)}}class E$ extends j{static[F]="PgMacaddr";getSQLType(){return"macaddr"}}function O$(Y){return new F$(Y??"")}class V$ extends b{static[F]="PgMacaddr8Builder";constructor(Y){super(Y,"string","PgMacaddr8")}build(Y){return new D$(Y,this.config)}}class D$ extends j{static[F]="PgMacaddr8";getSQLType(){return"macaddr8"}}function L$(Y){return new V$(Y??"")}class M$ extends b{static[F]="PgNumericBuilder";constructor(Y,Z,X){super(Y,"string","PgNumeric");this.config.precision=Z,this.config.scale=X}build(Y){return new v6(Y,this.config)}}class v6 extends j{static[F]="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 A$ extends b{static[F]="PgNumericNumberBuilder";constructor(Y,Z,X){super(Y,"number","PgNumericNumber");this.config.precision=Z,this.config.scale=X}build(Y){return new w$(Y,this.config)}}class w$ extends j{static[F]="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 R$ extends b{static[F]="PgNumericBigIntBuilder";constructor(Y,Z,X){super(Y,"bigint","PgNumericBigInt");this.config.precision=Z,this.config.scale=X}build(Y){return new N$(Y,this.config)}}class N$ extends j{static[F]="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 I$(Y,Z){let{name:X,config:_}=X0(Y,Z),G=_?.mode;return G==="number"?new A$(X,_?.precision,_?.scale):G==="bigint"?new R$(X,_?.precision,_?.scale):new M$(X,_?.precision,_?.scale)}class T$ extends b{static[F]="PgPointTupleBuilder";constructor(Y){super(Y,"array","PgPointTuple")}build(Y){return new K$(Y,this.config)}}class K$ extends j{static[F]="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 B$ extends b{static[F]="PgPointObjectBuilder";constructor(Y){super(Y,"json","PgPointObject")}build(Y){return new C$(Y,this.config)}}class C$ extends j{static[F]="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 q$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new T$(X);return new B$(X)}function TF(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 j$(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 U5(Y){let Z=TF(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=j$(Z,X);X+=8;let Q=j$(Z,X);return X+=8,[H,Q]}throw new Error("Unsupported geometry type")}class S$ extends b{static[F]="PgGeometryBuilder";constructor(Y){super(Y,"array","PgGeometry")}build(Y){return new P$(Y,this.config)}}class P$ extends j{static[F]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){return U5(Y)}mapToDriverValue(Y){return`point(${Y[0]} ${Y[1]})`}}class v$ extends b{static[F]="PgGeometryObjectBuilder";constructor(Y){super(Y,"json","PgGeometryObject")}build(Y){return new x$(Y,this.config)}}class x$ extends j{static[F]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){let Z=U5(Y);return{x:Z[0],y:Z[1]}}mapToDriverValue(Y){return`point(${Y.x} ${Y.y})`}}function f$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new S$(X);return new v$(X)}class h$ extends b{static[F]="PgRealBuilder";constructor(Y,Z){super(Y,"number","PgReal");this.config.length=Z}build(Y){return new k$(Y,this.config)}}class k$ extends j{static[F]="PgReal";constructor(Y,Z){super(Y,Z)}getSQLType(){return"real"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function b$(Y){return new h$(Y??"")}class y$ extends b{static[F]="PgSerialBuilder";constructor(Y){super(Y,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new g$(Y,this.config)}}class g$ extends j{static[F]="PgSerial";getSQLType(){return"serial"}}function p$(Y){return new y$(Y??"")}class m$ extends I4{static[F]="PgSmallIntBuilder";constructor(Y){super(Y,"number","PgSmallInt")}build(Y){return new u$(Y,this.config)}}class u$ extends j{static[F]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number(Y);return Y}}function d$(Y){return new m$(Y??"")}class c$ extends b{static[F]="PgSmallSerialBuilder";constructor(Y){super(Y,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new l$(Y,this.config)}}class l$ extends j{static[F]="PgSmallSerial";getSQLType(){return"smallserial"}}function o$(Y){return new c$(Y??"")}class i$ extends b{static[F]="PgTextBuilder";constructor(Y,Z){super(Y,"string","PgText");this.config.enumValues=Z.enum}build(Y){return new r$(Y,this.config)}}class r$ extends j{static[F]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function n$(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new i$(X,_)}class s$ 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[F]="PgTimeBuilder";build(Y){return new x6(Y,this.config)}}class x6 extends j{static[F]="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 t$(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new s$(X,_.withTimezone??!1,_.precision)}class a$ extends Q4{static[F]="PgTimestampBuilder";constructor(Y,Z,X){super(Y,"date","PgTimestamp");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new f6(Y,this.config)}}class f6 extends j{static[F]="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 e$ extends Q4{static[F]="PgTimestampStringBuilder";constructor(Y,Z,X){super(Y,"string","PgTimestampString");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new h6(Y,this.config)}}class h6 extends j{static[F]="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 YW(Y,Z={}){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="string")return new e$(X,_.withTimezone??!1,_.precision);return new a$(X,_?.withTimezone??!1,_?.precision)}class ZW extends b{static[F]="PgUUIDBuilder";constructor(Y){super(Y,"string","PgUUID")}defaultRandom(){return this.default(O`gen_random_uuid()`)}build(Y){return new k6(Y,this.config)}}class k6 extends j{static[F]="PgUUID";getSQLType(){return"uuid"}}function q1(Y){return new ZW(Y??"")}class XW extends b{static[F]="PgVarcharBuilder";constructor(Y,Z){super(Y,"string","PgVarchar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new _W(Y,this.config)}}class _W extends j{static[F]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function a0(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new XW(X,_)}class GW extends b{static[F]="PgBinaryVectorBuilder";constructor(Y,Z){super(Y,"string","PgBinaryVector");this.config.dimensions=Z.dimensions}build(Y){return new $W(Y,this.config)}}class $W extends j{static[F]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function WW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new GW(X,_)}class HW extends b{static[F]="PgHalfVectorBuilder";constructor(Y,Z){super(Y,"array","PgHalfVector");this.config.dimensions=Z.dimensions}build(Y){return new JW(Y,this.config)}}class JW extends j{static[F]="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 QW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new HW(X,_)}class UW extends b{static[F]="PgSparseVectorBuilder";constructor(Y,Z){super(Y,"string","PgSparseVector");this.config.dimensions=Z.dimensions}build(Y){return new zW(Y,this.config)}}class zW extends j{static[F]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function FW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new UW(X,_)}class EW extends b{static[F]="PgVectorBuilder";constructor(Y,Z){super(Y,"array","PgVector");this.config.dimensions=Z.dimensions}build(Y){return new OW(Y,this.config)}}class OW extends j{static[F]="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 VW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new EW(X,_)}function DW(){return{bigint:B7,bigserial:P7,boolean:A8,char:k7,cidr:g7,customType:u7,date:l7,doublePrecision:r7,inet:t7,integer:w8,interval:X$,json:G$,jsonb:W$,line:z$,macaddr:O$,macaddr8:L$,numeric:I$,point:q$,geometry:f$,real:b$,serial:p$,smallint:d$,smallserial:o$,text:n$,time:t$,timestamp:YW,uuid:q1,varchar:a0,bit:WW,halfvec:QW,sparsevec:FW,vector:VW}}var z5=Symbol.for("drizzle:PgInlineForeignKeys"),LW=Symbol.for("drizzle:EnableRLS");class m0 extends S{static[F]="PgTable";static Symbol=Object.assign({},S.Symbol,{InlineForeignKeys:z5,EnableRLS:LW});[z5]=[];[LW]=!1;[S.Symbol.ExtraConfigBuilder]=void 0;[S.Symbol.ExtraConfigColumns]={}}function KF(Y,Z,X,_,G=Y){let $=new m0(Y,_,G),W=typeof Z==="function"?Z(DW()):Z,H=Object.fromEntries(Object.entries(W).map(([U,E])=>{let V=E;V.setName(U);let L=V.build($);return $[z5].push(...V.buildForeignKeys(L,$)),[U,L]})),Q=Object.fromEntries(Object.entries(W).map(([U,E])=>{let V=E;V.setName(U);let L=V.buildExtraConfigColumn($);return[U,L]})),J=Object.assign($,H);if(J[S.Symbol.Columns]=H,J[S.Symbol.ExtraConfigColumns]=Q,X)J[m0.Symbol.ExtraConfigBuilder]=X;return Object.assign(J,{enableRLS:()=>{return J[m0.Symbol.EnableRLS]=!0,J}})}var T4=(Y,Z,X)=>{return KF(Y,Z,X,void 0)};function MW(...Y){if(Y[0].columns)return new R8(Y[0].columns,Y[0].name);return new R8(Y)}class R8{static[F]="PgPrimaryKeyBuilder";columns;name;constructor(Y,Z){this.columns=Y,this.name=Z}build(Y){return new AW(Y,this.columns,this.name)}}class AW{constructor(Y,Z,X){this.table=Y,this.columns=Z,this.name=X}static[F]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[m0.Symbol.Name]}_${this.columns.map((Y)=>Y.name).join("_")}_pk`}}function D1(Y,Z){if(O7(Z)&&!G5(Y)&&!A(Y,R1)&&!A(Y,N4)&&!A(Y,O0)&&!A(Y,S)&&!A(Y,V1))return new R1(Y,Z);return Y}var b6=(Y,Z)=>{return O`${Y} = ${D1(Z,Y)}`},wW=(Y,Z)=>{return O`${Y} <> ${D1(Z,Y)}`};function N8(...Y){let Z=Y.filter((X)=>X!==void 0);if(Z.length===0)return;if(Z.length===1)return new x(Z);return new x([new p0("("),O.join(Z,new p0(" and ")),new p0(")")])}function RW(...Y){let Z=Y.filter((X)=>X!==void 0);if(Z.length===0)return;if(Z.length===1)return new x(Z);return new x([new p0("("),O.join(Z,new p0(" or ")),new p0(")")])}function NW(Y){return O`not ${Y}`}var IW=(Y,Z)=>{return O`${Y} > ${D1(Z,Y)}`},TW=(Y,Z)=>{return O`${Y} >= ${D1(Z,Y)}`},KW=(Y,Z)=>{return O`${Y} < ${D1(Z,Y)}`},BW=(Y,Z)=>{return O`${Y} <= ${D1(Z,Y)}`};function CW(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return O`false`;return O`${Y} in ${Z.map((X)=>D1(X,Y))}`}return O`${Y} in ${D1(Z,Y)}`}function qW(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return O`true`;return O`${Y} not in ${Z.map((X)=>D1(X,Y))}`}return O`${Y} not in ${D1(Z,Y)}`}function jW(Y){return O`${Y} is null`}function SW(Y){return O`${Y} is not null`}function PW(Y){return O`exists ${Y}`}function vW(Y){return O`not exists ${Y}`}function xW(Y,Z,X){return O`${Y} between ${D1(Z,Y)} and ${D1(X,Y)}`}function fW(Y,Z,X){return O`${Y} not between ${D1(Z,Y)} and ${D1(X,Y)}`}function hW(Y,Z){return O`${Y} like ${Z}`}function kW(Y,Z){return O`${Y} not like ${Z}`}function bW(Y,Z){return O`${Y} ilike ${Z}`}function yW(Y,Z){return O`${Y} not ilike ${Z}`}function gW(Y){return O`${Y} asc`}function pW(Y){return O`${Y} desc`}class F5{constructor(Y,Z,X){this.sourceTable=Y,this.referencedTable=Z,this.relationName=X,this.referencedTableName=Z[S.Symbol.Name]}static[F]="Relation";referencedTableName;fieldName}class mW{constructor(Y,Z){this.table=Y,this.config=Z}static[F]="Relations"}class K4 extends F5{constructor(Y,Z,X,_){super(Y,Z,X?.relationName);this.config=X,this.isNullable=_}static[F]="One";withFieldName(Y){let Z=new K4(this.sourceTable,this.referencedTable,this.config,this.isNullable);return Z.fieldName=Y,Z}}class I8 extends F5{constructor(Y,Z,X){super(Y,Z,X?.relationName);this.config=X}static[F]="Many";withFieldName(Y){let Z=new I8(this.sourceTable,this.referencedTable,this.config);return Z.fieldName=Y,Z}}function uW(){return{and:N8,between:xW,eq:b6,exists:PW,gt:IW,gte:TW,ilike:bW,inArray:CW,isNull:jW,isNotNull:SW,like:hW,lt:KW,lte:BW,ne:wW,not:NW,notBetween:fW,notExists:vW,notLike:kW,notIlike:yW,notInArray:qW,or:RW,sql:O}}function dW(){return{sql:O,asc:gW,desc:pW}}function cW(Y,Z){if(Object.keys(Y).length===1&&"default"in Y&&!A(Y.default,S))Y=Y.default;let X={},_={},G={};for(let[$,W]of Object.entries(Y))if(A(W,S)){let H=g4(W),Q=_[H];X[H]=$,G[$]={tsName:$,dbName:W[S.Symbol.Name],schema:W[S.Symbol.Schema],columns:W[S.Symbol.Columns],relations:Q?.relations??{},primaryKey:Q?.primaryKey??[]};for(let U of Object.values(W[S.Symbol.Columns]))if(U.primary)G[$].primaryKey.push(U);let J=W[S.Symbol.ExtraConfigBuilder]?.(W[S.Symbol.ExtraConfigColumns]);if(J){for(let U of Object.values(J))if(A(U,R8))G[$].primaryKey.push(...U.columns)}}else if(A(W,mW)){let H=g4(W.table),Q=X[H],J=W.config(Z(W.table)),U;for(let[E,V]of Object.entries(J))if(Q){let L=G[Q];if(L.relations[E]=V,U)L.primaryKey.push(...U)}else{if(!(H in _))_[H]={relations:{},primaryKey:U};_[H].relations[E]=V}}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 CF(Y){return function Z(X,_){return new I8(Y,X,_)}}function lW(Y,Z,X){if(A(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[S.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 "${$[S.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[S.Symbol.Name]}". Please specify relation name`);if(H[0]&&A(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 oW(Y){return{one:BF(Y),many:CF(Y)}}function y6(Y,Z,X,_,G=($)=>$){let $={};for(let[W,H]of _.entries())if(H.isJson){let Q=Z.relations[H.tsKey],J=X[W],U=typeof J==="string"?JSON.parse(J):J;$[H.tsKey]=A(Q,K4)?U&&y6(Y,Y[H.relationTableTsKey],U,H.selection,G):U.map((E)=>y6(Y,Y[H.relationTableTsKey],E,H.selection,G))}else{let Q=G(X[W]),J=H.field,U;if(A(J,O0))U=J;else if(A(J,x))U=J.decoder;else U=J.sql.decoder;$[H.tsKey]=Q===null?null:U.mapFromDriverValue(Q)}return $}import tF from"os";import aF from"fs";var g6=new Map,E5=new Map,O5=Symbol("OriginError"),w2={};class j1 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[O5]=this.handler.debug?new Error:this.tagged&&qF(this.strings)}get origin(){return(this.handler.debug?this[O5].stack:this.tagged&&E5.has(this.strings)?E5.get(this.strings):E5.set(this.strings,this[O5].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(w2),{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 qF(Y){if(g6.has(Y))return g6.get(Y);let Z=Error.stackTraceLimit;return Error.stackTraceLimit=4,g6.set(Y,new Error),Error.stackTraceLimit=Z,g6.get(Y)}class R2 extends Error{constructor(Y){super(Y.message);this.name=this.constructor.name,Object.assign(this,Y)}}var x0={connection:iW,postgres:rW,generic:nW,notSupported:sW};function iW(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($,iW),$}function rW(Y){let Z=new R2(Y);return Error.captureStackTrace(Z,rW),Z}function nW(Y,Z){let X=Object.assign(new Error(Y+": "+Z),{code:Y});return Error.captureStackTrace(X,nW),X}function sW(Y){let Z=Object.assign(new Error(Y+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:Y});return Error.captureStackTrace(Z,sW),Z}var jF={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 u6{then(){V5()}catch(){V5()}finally(){V5()}}class C8 extends u6{constructor(Y){super();this.value=l6(Y)}}class r1 extends u6{constructor(Y,Z,X){super();this.value=Y,this.type=Z,this.array=X}}class d6 extends u6{constructor(Y,Z){super();this.first=Y,this.rest=Z}build(Y,Z,X,_){let G=SF.map(([$,W])=>({fn:W,i:Y.search($)})).sort(($,W)=>$.i-W.i).pop();return G.i===-1?w5(this.first,_):G.fn(this.first,this.rest,Z,X,_)}}function c6(Y,Z,X,_){let G=Y instanceof r1?Y.value:Y;if(G===void 0){if(Y instanceof r1?Y.value=_.transform.undefined:G=Y=_.transform.undefined,G===void 0)throw x0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+X.push(Y instanceof r1?(Z.push(Y.value),Y.array?Y.array[Y.type||m6(Y.value)]||Y.type||Y3(Y.value):Y.type):(Z.push(Y),m6(Y)))}var aW=X3(jF);function M5(Y,Z,X,_,G,$){for(let W=1;W<Y.strings.length;W++)Z+=A5(Z,X,_,G,$)+Y.strings[W],X=Y.args[W];return Z}function A5(Y,Z,X,_,G){return Z instanceof d6?Z.build(Y,X,_,G):Z instanceof j1?L5(Z,X,_,G):Z instanceof C8?Z.value:Z&&Z[0]instanceof j1?Z.reduce(($,W)=>$+" "+L5(W,X,_,G),""):c6(Z,X,_,G)}function L5(Y,Z,X,_){return Y.fragment=!0,M5(Y,Y.strings[0],Y.args[0],Z,X,_)}function eW(Y,Z,X,_,G){return Y.map(($)=>"("+_.map((W)=>A5("values",$[W],Z,X,G)).join(",")+")").join(",")}function tW(Y,Z,X,_,G){let $=Array.isArray(Y[0]),W=Z.length?Z.flat():Object.keys($?Y[0]:Y);return eW($?Y:[Y],X,_,W,G)}function p6(Y,Z,X,_,G){if(typeof Y==="string"&&(Y=[Y].concat(Z)),Array.isArray(Y))return w5(Y,G);let $;return(Z.length?Z.flat():Object.keys(Y)).map((H)=>{return $=Y[H],($ instanceof j1?L5($,X,_,G):$ instanceof C8?$.value:c6($,X,_,G))+" as "+l6(G.transform.column.to?G.transform.column.to(H):H)}).join(",")}var SF=Object.entries({values:tW,in:(...Y)=>{let Z=tW(...Y);return Z==="()"?"(null)":Z},select:p6,as:p6,returning:p6,"\\(":p6,update(Y,Z,X,_,G){return(Z.length?Z.flat():Object.keys(Y)).map(($)=>l6(G.transform.column.to?G.transform.column.to($):$)+"="+A5("values",Y[$],X,_,G))},insert(Y,Z,X,_,G){let $=Z.length?Z.flat():Object.keys(Array.isArray(Y)?Y[0]:Y);return"("+w5($,G)+")values"+eW(Array.isArray(Y)?Y:[Y],X,_,$,G)}}).map(([Y,Z])=>[new RegExp("((?:^|[\\s(])"+Y+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),Z]);function V5(){throw x0.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:PF,parsers:vF}=aW;function Y3(Y){if(Array.isArray(Y))return Y3(Y[0]);return typeof Y==="string"?1009:0}var Z3=function(Y){let Z=X3(Y||{});return{serializers:Object.assign({},PF,Z.serializers),parsers:Object.assign({},vF,Z.parsers)}};function X3(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 w5(Y,{transform:{column:Z}}){return Y.map((X)=>l6(Z.to?Z.to(X):X)).join(",")}var l6=function Y(Z){return'"'+Z.replace(/"/g,'""').replace(/\./g,'"."')+'"'},m6=function Y(Z){return Z instanceof r1?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},xF=/\\/g,fF=/"/g;function hF(Y){return Y.replace(xF,"\\\\").replace(fF,"\\\"")}var _3=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 x0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return H===null?"null":'"'+hF(X?X(H.type?H.value:H):""+H)+'"'}).join(W)+"}"},D5={i:0,char:null,str:"",quoted:!1,last:0},G3=function Y(Z,X,_){return D5.i=D5.last=0,$3(D5,Z,X,_)};function $3(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($3(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,"-"),T8=(Y)=>Y.replace(/([A-Z])/g,"_$1").toLowerCase(),K8=(Y)=>(Y.slice(0,1)+Y.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),B8=(Y)=>Y.replace(/-/g,"_");function R5(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:R5(p4)};T8.column={to:T8};var N5={...p4};N5.column.to=T8;m4.column={from:m4};m4.value={from:R5(m4)};K8.column={to:K8};var I5={...m4};I5.column.to=K8;u4.column={from:u4};u4.value={from:R5(u4)};B8.column={to:B8};var T5={...u4};T5.column.to=B8;import W3 from"net";import gF from"tls";import q8 from"crypto";import K5 from"stream";import{performance as H3}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 N1=kF;function kF(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 e0=Buffer.allocUnsafe(256),bF="BCcDdEFfHPpQSX".split("").reduce((Y,Z)=>{let X=Z.charCodeAt(0);return Y[Z]=()=>{return e0[0]=X,z0.i=5,z0},Y},{}),z0=Object.assign(yF,bF,{N:String.fromCharCode(0),i:0,inc(Y){return z0.i+=Y,z0},str(Y){let Z=Buffer.byteLength(Y);return o6(Z),z0.i+=e0.write(Y,z0.i,Z,"utf8"),z0},i16(Y){return o6(2),e0.writeUInt16BE(Y,z0.i),z0.i+=2,z0},i32(Y,Z){if(Z||Z===0)return e0.writeUInt32BE(Y,Z),z0;return o6(4),e0.writeUInt32BE(Y,z0.i),z0.i+=4,z0},z(Y){return o6(Y),e0.fill(0,z0.i,z0.i+Y),z0.i+=Y,z0},raw(Y){return e0=Buffer.concat([e0.subarray(0,z0.i),Y]),z0.i=e0.length,z0},end(Y=1){e0.writeUInt32BE(z0.i-Y,Y);let Z=e0.subarray(0,z0.i);return z0.i=0,e0=Buffer.allocUnsafe(256),Z}}),c=z0;function o6(Y){if(e0.length-z0.i<Y){let Z=e0,X=Z.length;e0=Buffer.allocUnsafe(X+(X>>1)+Y),Z.copy(e0)}}function yF(){return z0.i=0,z0}var q5=U3,pF=1,B4=c().S().end(),J3=c().H().end(),mF=c().i32(8).i32(80877103).end(8),uF=Buffer.concat([c().E().str(c.N).i32(0).end(),B4]),dF=c().D().str("S").str(c.N).end(),N2=()=>{},cF=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),lF={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 U3(Y,Z={},{onopen:X=N2,onend:_=N2,onclose:G=N2}={}){let{ssl:$,max:W,user:H,host:Q,port:J,database:U,parsers:E,transform:V,onnotice:L,onnotify:R,onparameter:M,max_pipeline:y,keep_alive:k,backoff:h,target_session_attrs:f}=Y,I=N1(),N=pF++,q={pid:null,secret:null},C=C5(WY,Y.idle_timeout),p=C5(WY,Y.max_lifetime),s=C5(x3,Y.connect_timeout),K=null,a,m=new d4,e=Buffer.alloc(0),F0=Y.fetch_types,f0={},H1={},n1=Math.random().toString(36).slice(2),B=1,u=0,G0=0,K0=0,h0=0,t=0,J0=0,P0=0,B0=null,w0=null,i0=!1,D0=null,S1=null,c0=null,U4=null,k0=null,R0=null,P1=null,g1=null,v=null,B2=null,r0={queue:Z.closed,idleTimer:C,connect(z){c0=z,ZX()},terminate:q2,execute:C2,cancel:j3,end:WY,count:0,id:N};return Z.closed&&Z.closed.push(r0),r0;async function q3(){let z;try{z=Y.socket?await Promise.resolve(Y.socket(Y)):new W3.Socket}catch(D){i4(D);return}return z.on("error",i4),z.on("close",XX),z.on("drain",e5),z}async function j3({pid:z,secret:D},l,$0){try{a=c().i32(16).i32(80877102).i32(z).i32(D).end(16),await YX(),K.once("error",$0),K.once("close",l)}catch(q0){$0(q0)}}function C2(z){if(i0)return k8(z,x0.connection("CONNECTION_DESTROYED",Y));if(z.cancelled)return;try{return z.state=q,v?I.push(z):(v=z,v.active=!0),v3(z),l0(S3(z))&&!z.describeFirst&&!z.cursorFn&&I.length<y&&(!z.options.onexecute||z.options.onexecute(r0))}catch(D){return I.length===0&&l0(B4),p1(D),!0}}function S3(z){if(z.parameters.length>=65534)throw x0.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return z.options.simple?c().Q().str(z.statement.string+c.N).end():z.describeFirst?Buffer.concat([s5(z),J3]):z.prepare?z.prepared?h8(z):Buffer.concat([s5(z),h8(z)]):P3(z)}function s5(z){return Buffer.concat([GX(z.statement.string,z.parameters,z.statement.types,z.statement.name),LH("S",z.statement.name)])}function h8(z){return Buffer.concat([DH(z.parameters,z.statement.types,z.statement.name,z.cursorName),z.cursorFn?$X("",z.cursorRows):uF])}function P3(z){return Buffer.concat([GX(z.statement.string,z.parameters,z.statement.types),dF,h8(z)])}function v3(z){let D=[],l=[],$0=M5(z,z.strings[0],z.args[0],D,l,Y);!z.tagged&&z.args.forEach((q0)=>c6(q0,D,l,Y)),z.prepare=Y.prepare&&("prepare"in z.options?z.options.prepare:!0),z.string=$0,z.signature=z.prepare&&l+$0,z.onlyDescribe&&delete H1[z.signature],z.parameters=z.parameters||D,z.prepared=z.prepare&&z.signature in H1,z.describeFirst=z.onlyDescribe||D.length&&!z.prepared,z.statement=z.prepared?H1[z.signature]:{string:$0,types:l,name:z.prepare?n1+B++:""},typeof Y.debug==="function"&&Y.debug(N,$0,D,l)}function l0(z,D){if(R0=R0?Buffer.concat([R0,z]):Buffer.from(z),D||R0.length>=1024)return t5(D);return w0===null&&(w0=setImmediate(t5)),!0}function t5(z){let D=K.write(R0,z);return w0!==null&&clearImmediate(w0),R0=w0=null,D}function x3(){p1(x0.connection("CONNECT_TIMEOUT",Y,K)),K.destroy()}async function a5(){if(l0(mF),!await new Promise((D)=>K.once("data",(l)=>D(l[0]===83)))&&$==="prefer")return o4();K.removeAllListeners(),K=gF.connect({socket:K,servername:W3.isIP(K.host)?void 0:K.host,...$==="require"||$==="allow"||$==="prefer"?{rejectUnauthorized:!1}:$==="verify-full"?{}:typeof $==="object"?$:{}}),K.on("secureConnect",o4),K.on("error",i4),K.on("close",XX),K.on("drain",e5)}function e5(){!v&&X(r0)}function $Y(z){if(D0){if(D0.push(z),G0-=z.length,G0>0)return}e=D0?Buffer.concat(D0,t-G0):e.length===0?z:Buffer.concat([e,z],e.length+z.length);while(e.length>4){if(t=e.readUInt32BE(1),t>=e.length){G0=t-e.length,D0=[e];break}try{f3(e.subarray(0,t+1))}catch(D){v&&(v.cursorFn||v.describeFirst)&&l0(B4),p1(D)}e=e.subarray(t+1),G0=0,D0=null}}async function YX(){if(i0=!1,f0={},K||(K=await q3()),!K)return;if(s.start(),Y.socket)return $?a5():o4();if(K.on("connect",$?a5:o4),Y.path)return K.connect(Y.path);K.ssl=$,K.connect(J[K0],Q[K0]),K.host=Q[K0],K.port=J[K0],K0=(K0+1)%J.length}function ZX(){setTimeout(YX,u?u+J0-H3.now():0)}function o4(){try{H1={},F0=Y.fetch_types,n1=Math.random().toString(36).slice(2),B=1,p.start(),K.on("data",$Y),k&&K.setKeepAlive&&K.setKeepAlive(!0,1000*k);let z=AH();l0(z)}catch(z){i4(z)}}function i4(z){if(r0.queue===Z.connecting&&Y.host[h0+1])return;p1(z);while(I.length)k8(I.shift(),z)}function p1(z){k0&&(k0.destroy(z),k0=null),v&&k8(v,z),c0&&(k8(c0,z),c0=null)}function k8(z,D){if(z.reserve)return z.reject(D);if(!D||typeof D!=="object")D=new Error(D);"query"in D||"parameters"in D||Object.defineProperties(D,{stack:{value:D.stack+z.origin.replace(/.*\n/,`
62
- `),enumerable:Y.debug},query:{value:z.string,enumerable:Y.debug},parameters:{value:z.parameters,enumerable:Y.debug},args:{value:z.args,enumerable:Y.debug},types:{value:z.statement&&z.statement.types,enumerable:Y.debug}}),z.reject(D)}function WY(){return U4||(!r0.reserved&&_(r0),!r0.reserved&&!c0&&!v&&I.length===0?(q2(),new Promise((z)=>K&&K.readyState!=="closed"?K.once("close",z):z())):U4=new Promise((z)=>P1=z))}function q2(){if(i0=!0,k0||v||c0||I.length)i4(x0.connection("CONNECTION_DESTROYED",Y));if(clearImmediate(w0),K)K.removeListener("data",$Y),K.removeListener("connect",o4),K.readyState==="open"&&K.end(c().X().end());P1&&(P1(),U4=P1=null)}async function XX(z){if(e=Buffer.alloc(0),G0=0,D0=null,clearImmediate(w0),K.removeListener("data",$Y),K.removeListener("connect",o4),C.cancel(),p.cancel(),s.cancel(),K.removeAllListeners(),K=null,c0)return ZX();!z&&(v||I.length)&&i4(x0.connection("CONNECTION_CLOSED",Y,K)),u=H3.now(),z&&Y.shared.retries++,J0=(typeof h==="function"?h(Y.shared.retries):h)*1000,G(r0,x0.connection("CONNECTION_CLOSED",Y,K))}function f3(z,D=z[0]){(D===68?h3:D===100?JH:D===65?XH:D===83?k3:D===90?b3:D===67?y3:D===50?_X:D===49?g3:D===116?p3:D===84?m3:D===82?u3:D===110?r3:D===75?n3:D===69?YH:D===115?_H:D===51?GH:D===71?$H:D===78?UH:D===72?WH:D===99?QH:D===73?zH:D===86?FH:D===118?EH:D===87?HH:OH)(z)}function h3(z){let D=7,l,$0,q0,n0=v.isRaw?new Array(v.statement.columns.length):{};for(let Y1=0;Y1<v.statement.columns.length;Y1++)$0=v.statement.columns[Y1],l=z.readInt32BE(D),D+=4,q0=l===-1?null:v.isRaw===!0?z.subarray(D,D+=l):$0.parser===void 0?z.toString("utf8",D,D+=l):$0.parser.array===!0?$0.parser(z.toString("utf8",D+1,D+=l)):$0.parser(z.toString("utf8",D,D+=l)),v.isRaw?n0[Y1]=v.isRaw===!0?q0:V.value.from?V.value.from(q0,$0):q0:n0[$0.name]=V.value.from?V.value.from(q0,$0):q0;v.forEachFn?v.forEachFn(V.row.from?V.row.from(n0):n0,m):m[P0++]=V.row.from?V.row.from(n0):n0}function k3(z){let[D,l]=z.toString("utf8",5,z.length-1).split(c.N);if(f0[D]=l,Y.parameters[D]!==l)Y.parameters[D]=l,M&&M(D,l)}function b3(z){if(v&&v.options.simple&&v.resolve(S1||m),v=S1=null,m=new d4,s.cancel(),c0){if(f){if(!f0.in_hot_standby||!f0.default_transaction_read_only)return e3();else if(a3(f,f0))return q2()}if(F0)return c0.reserve&&(c0=null),s3();c0&&!c0.reserve&&C2(c0),Y.shared.retries=h0=0,c0=null;return}while(I.length&&(v=I.shift())&&(v.active=!0,v.cancelled))U3(Y).cancel(v.state,v.cancelled.resolve,v.cancelled.reject);if(v)return;r0.reserved?!r0.reserved.release&&z[5]===73?U4?q2():(r0.reserved=null,X(r0)):r0.reserved():U4?q2():X(r0)}function y3(z){P0=0;for(let D=z.length-1;D>0;D--){if(z[D]===32&&z[D+1]<58&&m.count===null)m.count=+z.toString("utf8",D+1,z.length-1);if(z[D-1]>=65){m.command=z.toString("utf8",5,D),m.state=q;break}}if(B2&&(B2(),B2=null),m.command==="BEGIN"&&W!==1&&!r0.reserved)return p1(x0.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(v.options.simple)return _X();if(v.cursorFn)m.count&&v.cursorFn(m),l0(B4);v.resolve(m)}function g3(){v.parsing=!1}function _X(){!m.statement&&(m.statement=v.statement),m.columns=v.statement.columns}function p3(z){let D=z.readUInt16BE(5);for(let l=0;l<D;++l)!v.statement.types[l]&&(v.statement.types[l]=z.readUInt32BE(7+l*4));v.prepare&&(H1[v.signature]=v.statement),v.describeFirst&&!v.onlyDescribe&&(l0(h8(v)),v.describeFirst=!1)}function m3(z){if(m.command)S1=S1||[m],S1.push(m=new d4),m.count=null,v.statement.columns=null;let D=z.readUInt16BE(5),l=7,$0;v.statement.columns=Array(D);for(let q0=0;q0<D;++q0){$0=l;while(z[l++]!==0);let n0=z.readUInt32BE(l),Y1=z.readUInt16BE(l+4),z4=z.readUInt32BE(l+6);v.statement.columns[q0]={name:V.column.from?V.column.from(z.toString("utf8",$0,l-1)):z.toString("utf8",$0,l-1),parser:E[z4],table:n0,number:Y1,type:z4},l+=18}if(m.statement=v.statement,v.onlyDescribe)return v.resolve(v.statement),l0(B4)}async function u3(z,D=z.readUInt32BE(5)){(D===3?d3:D===5?c3:D===10?l3:D===11?o3:D===12?i3:D!==0?VH:N2)(z,D)}async function d3(){let z=await HY();l0(c().p().str(z).z(1).end())}async function c3(z){let D="md5"+await Q3(Buffer.concat([Buffer.from(await Q3(await HY()+H)),z.subarray(9)]));l0(c().p().str(D).z(1).end())}async function l3(){g1=(await q8.randomBytes(18)).toString("base64"),c().p().str("SCRAM-SHA-256"+c.N);let z=c.i;l0(c.inc(4).str("n,,n=*,r="+g1).i32(c.i-z-4,z).end())}async function o3(z){let D=z.toString("utf8",9).split(",").reduce((Y1,z4)=>(Y1[z4[0]]=z4.slice(2),Y1),{}),l=await q8.pbkdf2Sync(await HY(),Buffer.from(D.s,"base64"),parseInt(D.i),32,"sha256"),$0=await i6(l,"Client Key"),q0="n=*,r="+g1+",r="+D.r+",s="+D.s+",i="+D.i+",c=biws,r="+D.r;B0=(await i6(await i6(l,"Server Key"),q0)).toString("base64");let n0="c=biws,r="+D.r+",p="+iF($0,Buffer.from(await i6(await oF($0),q0))).toString("base64");l0(c().p().str(n0).end())}function i3(z){if(z.toString("utf8",9).split(c.N,1)[0].slice(2)===B0)return;p1(x0.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),K.destroy()}function HY(){return Promise.resolve(typeof Y.pass==="function"?Y.pass():Y.pass)}function r3(){if(m.statement=v.statement,m.statement.columns=[],v.onlyDescribe)return v.resolve(v.statement),l0(B4)}function n3(z){q.pid=z.readUInt32BE(5),q.secret=z.readUInt32BE(9)}async function s3(){F0=!1,(await new j1([`
58
+ ${V.trace}`:`No previous disposal trace for ${H} was found.`),X}let J=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:W.stringKey}).filter(([,{source:V}])=>V!==G).map(([V])=>O1(V));if(_)$.moleculeGraph.delete(G);$.moleculeGraph.set({upstreamMoleculeKey:Q.stringKey,downstreamMoleculeKey:W.stringKey},{source:Q.stringKey});let U={type:"molecule_transfer",key:W.key,exclusive:Boolean(_),from:J,to:[Q.key],timestamp:Date.now()};if(G1($)&&$.transactionMeta.phase==="building")$.transactionMeta.update.subEvents.push(U);return X}function bz(Y,Z,X){switch(Z){case"newValue":y9(Y,X);break;case"oldValue":H8(X,Y.token);break}}function yz(Y,Z,X){switch(Z){case"newValue":H8(X,Y.token);break;case"oldValue":if(y9(Y,X),Y.subType==="atom")X.valueMap.set(Y.token.key,Y.value);break}}function y9(Y,Z){let{family:X}=Y.token;if(X){let _=Z.families.get(X.key);if(_)M0(Z,_,O1(X.subKey))}}function gz(Y,Z,X){switch(Z){case"newValue":O2(X,Y.provenance,Y.key);break;case"oldValue":V2(X,Y.key);break}}function pz(Y,Z,X){switch(Z){case"newValue":V2(X,Y.key);break;case"oldValue":{let _=Y.provenance.map(O1);O2(X,_,Y.key);for(let[G,$]of Y.values){let W=X.families.get(G);if(W){M0(X,W,Y.key);let H=`${G}(${Q0(Y.key)})`;X.valueMap.set(H,$)}}}break}}function mz(Y,Z,X){switch(Z){case"newValue":for(let _ of Y.to)W8(X,_,Y.key,Y.exclusive?"exclusive":void 0);break;case"oldValue":{let _="exclusive";for(let G of Y.from)W8(X,G,Y.key,_),_=void 0}break}}function g9(Y,Z,X){let _=Y==="newValue"?Z.subEvents:[...Z.subEvents].reverse();for(let G of _)switch(G.type){case"atom_update":hz(Y,G,X);break;case"state_creation":bz(G,Y,X);break;case"state_disposal":yz(G,Y,X);break;case"molecule_creation":gz(G,Y,X);break;case"molecule_disposal":pz(G,Y,X);break;case"molecule_transfer":mz(G,Y,X);break;case"transaction_outcome":g9(Y,G,X);break}}function p9(Y,Z){return Y.transactionMeta.actionContinuities.getRelatedKey(Z)}function uz(Y,Z){return Y.transactionMeta.epoch.get(Z)}function dz(Y,Z){if(!h4(Y))return;let _=p9(Y,Z);if(_===void 0)return;return uz(Y,_)}function cz(Y,Z,X){if(!h4(Y))return;let G=p9(Y,Z);if(G!==void 0)Y.transactionMeta.epoch.set(G,X)}var lz=(Y,Z)=>{let X=Y0(Z),{parent:_}=X;if(_===null||!G1(X)||X.transactionMeta?.phase!=="building"){Z.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}X.transactionMeta.phase="applying",X.transactionMeta.update.output=Y,_.child=null,_.on.transactionApplying.next(X.transactionMeta);let{subEvents:G}=X.transactionMeta.update;if(Z.logger.info("\uD83D\uDEC4","transaction",X.transactionMeta.update.token.key,`Applying transaction with ${G.length} updates:`,G),g9("newValue",X.transactionMeta.update,_),h4(_))cz(_,X.transactionMeta.update.token.key,X.transactionMeta.update.epoch),u0(Z,{key:X.transactionMeta.update.token.key,type:"transaction"})?.subject.next(X.transactionMeta.update),Z.logger.info("\uD83D\uDEEC","transaction",X.transactionMeta.update.token.key,"Finished applying transaction.");else if(G1(_))_.transactionMeta.update.subEvents.push(X.transactionMeta.update);_.on.transactionApplying.next(null)};function oz(Y){return{store:Y}}var o1=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))return this.source.get(Y);return}set(Y,Z){return this.deleted.delete(Y),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){return this.deleted.add(Y),super.delete(Y)}},iz=(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 o1(G.atoms),atomsThatAreDefault:new Set(G.atomsThatAreDefault),families:new o1(G.families),joins:new o1(G.joins),operation:{open:!1},readonlySelectors:new o1(G.readonlySelectors),timelines:new o1(G.timelines),timelineTopics:new _1(G.timelineTopics.toJSON()),trackers:new Map,transactions:new o1(G.transactions),selectorAtoms:new _1(G.selectorAtoms.toJSON()),selectorGraph:new _1(G.selectorGraph.toJSON(),{makeContentKey:(...J)=>J.sort().join(":")}),writableSelectors:new o1(G.writableSelectors),valueMap:new o1(G.valueMap),defaults:G.defaults,disposalTraces:Y.disposalTraces.copy(),molecules:new o1(G.molecules),moleculeGraph:new _1(G.moleculeGraph.toJSON(),{makeContentKey:G.moleculeGraph.makeContentKey}),moleculeData:new _1(G.moleculeData.toJSON(),{makeContentKey:G.moleculeData.makeContentKey}),moleculeJoins:new _1(G.moleculeJoins.toJSON(),{makeContentKey:G.moleculeJoins.makeContentKey}),miscResources:new o1(G.miscResources)},W=dz(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)=>l1(Q,...J),set:(...J)=>{B1(Q,...J)},reset:(...J)=>{E6(Q,...J)},run:(J,U=A9())=>qZ(Q,J,U),find:(...J)=>M0(Y,...J),json:(J)=>b4(Q,J),dispose:(...J)=>{H8(Q,...J)},env:()=>oz(Q)}},Q=Object.assign($,{transactionMeta:H});return G.child=Q,Y.logger.info("\uD83D\uDEEB","transaction",Z.key,"Building transaction with params:",X),Q};function jZ(Y,Z){let{key:X}=Z,_=Y.transactions.has(X),G={key:X,type:"transaction",run:(H,Q)=>{let J=k1(G),U=iz(Y,J,H,Q);try{let E=Y0(Y),{toolkit:V}=U.transactionMeta,L=Z.do(V,...H);return lz(L,E),L}catch(E){throw Pz($),Y.logger.warn("\uD83D\uDCA5","transaction",X,"caught:",E),E}},install:(H)=>jZ(H,Z),subject:new W0},$=Y0(Y);$.transactions.set(X,G);let W=k1(G);if(!_)Y.on.transactionCreation.next(W);return W}function rz(Y,Z,X){return u0(Y,Z)(X)}function kZ(Y,Z,X){let _=Q0(X),G=Y.molecules.get(_);if(!G&&Y.config.lifespan==="immortal"){let H=Bz(Z,X);return Y.logger.error("\u274C",H.type,H.key,`was not found in store "${Y.config.name}"; returned a counterfeit token.`),H}let $=rz(Y,Z,X),W=Y0(Y);if($.family){if(h4(W))switch($.type){case"atom":case"mutable_atom":Y.on.atomCreation.next($);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":Y.on.selectorCreation.next($);break}else if(G1(W)&&W.on.transactionApplying.state===null)W.transactionMeta.update.subEvents.push({type:"state_creation",token:$,timestamp:Date.now()})}if(G)W.moleculeData.set(_,Z.key);return $}function gZ(Y,Z,...X){let _,G,$,W,H,Q;if(X.length===2){if($=X[0],Q=X[1],$.family)if(W=Sz(Y,$),H=O1($.family.subKey),_=bZ(Y,W,H),!_)G=kZ(Y,W,H),$=G;else $=_}else if(W=X[0],H=X[1],Q=X[2],_=bZ(Y,W,H),!_)G=kZ(Y,W,H),$=G;else $=_;let J=Q===V6?"reset":"set",U;if(Z){let w=P9(Y,$);if(typeof w==="number"){let k=w,h=Y.on.operationClose.subscribe(`waiting to ${J} "${$.key}" at T-${k}`,function x(){h(),Y.logger.info("\uD83D\uDFE2",$.type,$.key,"resuming deferred",J,`from T-${k}`),gZ(Y,Z,$,Q)});return}U=w}else U=Y;if("counterfeit"in $&&"family"in $){let w=$.family.subKey,M=Y.disposalTraces.buffer.find((k)=>k?.key===w);Y.logger.error("\u274C",$.type,$.key,"could not be",J,`because it was not found in the store "${Y.config.name}".`,M?`This state was previously disposed:
59
+ ${M.trace}`:"No previous disposal trace was found.");return}let E=u0(U,$),V;if(Q===V6)V=vz(U,E);else V=fz(U,E,Q);let L=Boolean(G);if(b9(U,E,V,L),Z)v9(U)}var m9=(Y,Z)=>Y0(Y).atoms.has(Z),nz=(Y,Z)=>Y0(Y).writableSelectors.has(Z),sz=(Y,Z)=>Y0(Y).readonlySelectors.has(Z),tz=(Y,Z)=>m9(Y,Z)||nz(Y,Z)||sz(Y,Z);function q9(Y,Z){return Y0(Y).selectorGraph.getRelationEntries({downstreamSelectorKey:Z}).filter(([_,{source:G}])=>G!==Z).map(([_,{source:G}])=>G).filter((_)=>tz(Y,_))}function D6(Y,Z,X=new Set){let _=q9(Y,Z),G=new Map;while(_.length>0){let $=_.pop();if(X.has($))continue;if(X.add($),m9(Y,$)){let W=Y.atoms.get($);G.set(W.key,W)}else _.push(...q9(Y,$))}return G}function az(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=D6(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 M6(Y,Z,X,_){return{get:(...G)=>{let $=Y0(Y),W;if(G.length===2){let[U,E]=G;W=M0(Y,U,E)}else[W]=G;let H=u0(Y,W),Q=L2(Y,H),J=W.key;return Y.logger.info("\uD83D\uDD0C",Z,X,`registers dependency ( "${J}" =`,Q,")"),$.selectorGraph.set({upstreamSelectorKey:J,downstreamSelectorKey:X},{source:W.key}),az(Y,Z,X,W,_),Q},set:(...G)=>{let $=Y0(Y);gZ($,!1,...G)},find:(...G)=>M0(Y,...G),json:(G)=>b4(Y,G)}}function pZ(Y,Z,X){let _=Y0(Y),G=new W0,$=new Set,{key:W,const:H}=Z,Q="readonly_held_selector",{get:J,find:U,json:E}=M6(_,"readonly_held_selector",W,$),L={...Z,type:"readonly_held_selector",subject:G,getFrom:(M)=>{let k=M.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[h,{source:x}]of k)if(x!==W)M.selectorGraph.delete(h,W);return M.selectorAtoms.delete(W),Z.get({get:J,find:U,json:E},H),$4(M,L,H),$.clear(),H},install:(M)=>pZ(M,Z,X)};if(X)L.family=X;_.readonlySelectors.set(W,L),Y.logger.info("\u2728","readonly_held_selector",W,"=",H);let w={key:W,type:"readonly_held_selector"};if(X)w.family=X;return w}function mZ(Y,Z,X){let _=Y0(Y),G=new W0,$=new Set,W=Z.key,H="readonly_pure_selector",{get:Q,find:J,json:U}=M6(_,"readonly_pure_selector",W,$),V={...Z,type:"readonly_pure_selector",subject:G,getFrom:()=>{let w=Y0(Y),M=w.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[x,{source:m}]of M)if(m!==W)w.selectorGraph.delete(x,W);w.selectorAtoms.delete(W);let k=Z.get({get:Q,find:J,json:U}),h=$4(w,V,k);return Y.logger.info("\u2728","readonly_pure_selector",W,"=",h),$.clear(),h},install:(w)=>mZ(w,Z,X)};if(X)V.family=X;_.readonlySelectors.set(W,V);let L={key:W,type:"readonly_pure_selector"};if(X)L.family=X;return L}function uZ(Y,Z,X){let _=Y0(Y),G=new W0,$=new Set,{key:W,const:H}=Z,Q="writable_held_selector",J=M6(_,"writable_held_selector",W,$),{find:U,get:E,json:V}=J,L={find:U,get:E,json:V},k={...Z,type:"writable_held_selector",subject:G,getFrom:(x)=>{let m=x.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[K,{source:I}]of m)if(I!==W)x.selectorGraph.delete(K,W);return x.selectorAtoms.delete(W),Z.get(L,H),$4(x,k,H),Y.logger.info("\u2728","writable_held_selector",W,"=",H),$.clear(),H},setSelf:()=>{Z.set(J,H)},install:(x)=>uZ(x,Z,X)};if(X)k.family=X;_.writableSelectors.set(W,k);let h={key:W,type:"writable_held_selector"};if(X)h.family=X;return h}function dZ(Y,Z,X){let _=Y0(Y),G=new W0,$=new Set,W=Z.key,H="writable_pure_selector",Q=M6(_,"writable_pure_selector",W,$),{find:J,get:U,json:E}=Q,V={find:J,get:U,json:E},L=(x)=>{let m=x.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[q,{source:C}]of m)if(C!==W)x.selectorGraph.delete(q,W);x.selectorAtoms.delete(W);let K=Z.get(V),I=$4(x,M,K);return Y.logger.info("\u2728","writable_pure_selector",W,"=",I),$.clear(),I},M={...Z,type:"writable_pure_selector",subject:G,getFrom:L,setSelf:(x)=>{Z.set(Q,x)},install:(x)=>dZ(x,Z,X)};if(X)M.family=X;_.writableSelectors.set(W,M);let k=L(_);Y.logger.info("\u2728",M.type,M.key,"=",k);let h={key:W,type:"writable_pure_selector"};if(X)h.family=X;return h}function N9(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X){let $=uZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(_){let $=pZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(X){let $=dZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}let G=mZ(Y,Z,void 0);return Y.on.selectorCreation.next(G),G}function ez(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 H;switch(Z.type){case"writable_held_selector":X.writableSelectors.delete(_),H={key:$.key,type:"writable_held_selector_family"},u0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"writable_pure_selector":X.writableSelectors.delete(_),H={key:$.key,type:"writable_pure_selector_family"},u0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"readonly_held_selector":X.readonlySelectors.delete(_),H={key:$.key,type:"readonly_held_selector_family"},u0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"readonly_pure_selector":X.readonlySelectors.delete(_),H={key:$.key,type:"readonly_pure_selector_family"},u0(Y,H).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"),G1(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)}}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 ${k4(W)} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new W0,J=Object.assign((U)=>{let E=Q0(U),V={key:_,subKey:E},L=`${_}(${E})`,w=Y0(Y),M=mZ(w,{key:L,get:Z.get(U)},V);return H.next({type:"state_creation",token:M,timestamp:Date.now()}),M},$,{internalRoles:X,subject:H,install:(U)=>f4(U,Z),default:(U)=>{return Z.get(U)({get:(...V)=>l1(Y,...V),find:(...V)=>M0(Y,...V),json:(V)=>b4(Y,V)})}});return Y.families.set(_,J),$}function D2(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 ${k4(G)} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new W0,H=Object.assign((Q)=>{let J=Q0(Q),U={key:Z.key,subKey:J},E=`${Z.key}(${J})`,V=Y0(Y),L=Z.default,w={key:E,default:L instanceof Function?()=>L(Q):L};if(Z.effects)w.effects=Z.effects(Q);let M=x4(V,w,U);return $.next({type:"state_creation",token:M,timestamp:Date.now()}),M},_,{subject:$,install:(Q)=>D2(Q,Z),internalRoles:X});return Y.families.set(Z.key,H),Y.defaults.set(Z.key,Z.default),_}function u9(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 ${k4(W)} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new W0,J=Object.assign((U)=>{let E=Q0(U),V={key:_,subKey:E},L=`${_}(${E})`,w=Y0(Y),M=pZ(w,{key:L,const:Z.const(U),get:Z.get(U)},V);return H.next({type:"state_creation",token:M,timestamp:Date.now()}),M},$,{internalRoles:X,subject:H,install:(U)=>u9(U,Z),default:Z.const});return Y.families.set(_,J),$}function d9(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 ${k4(W)} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new W0,J=Object.assign((U)=>{let E=Q0(U),V={key:_,subKey:E},L=`${_}(${E})`,w=Y0(Y),M=uZ(w,{key:L,const:Z.const(U),get:Z.get(U),set:Z.set(U)},V);return H.next({type:"state_creation",token:M,timestamp:Date.now()}),M},$,{internalRoles:X,subject:H,install:(U)=>d9(U,Z),default:Z.const});return Y.families.set(_,J),$}function cZ(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 ${k4(W)} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new W0,J=Object.assign((U)=>{let E=Q0(U),V={key:_,subKey:E},L=`${_}(${E})`,w=Y0(Y),M=dZ(w,{key:L,get:Z.get(U),set:Z.set(U)},V);return H.next({type:"state_creation",token:M,timestamp:Date.now()}),M},$,{internalRoles:X,subject:H,install:(U)=>cZ(U,Z),default:(U)=>{return Z.get(U)({get:(...V)=>l1(Y,...V),find:(...V)=>M0(Y,...V),json:(V)=>b4(Y,V)})}});return Y.families.set(_,J),$}function SZ(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X)return d9(Y,Z,void 0);if(_)return u9(Y,Z,void 0);if(X)return cZ(Y,Z);return f4(Y,Z)}function bZ(Y,Z,X){let _=Q0(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 k1(W);return W}function M0(Y,Z,X){let _=bZ(Y,Z,X);if(_)return _;return kZ(Y,Z,X)}function H8(Y,...Z){let X;if(Z.length===1)X=Z[0];else{let _=Z[0],G=Z[1];X=M0(Y,_,G)}try{u0(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":c9(Y,X);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":ez(Y,X);break}}function l1(Y,...Z){let X,_,G;if(Z.length===1)X=Z[0];else _=Z[0],G=Z[1],X=M0(Y,_,G);if("counterfeit"in X&&"family"in X){_=Y.families.get(X.family.key);let $=X.family.subKey,W=Y.disposalTraces.buffer.find((H)=>H?.key===$);switch(Y.logger.error("\u274C",X.type,X.key,`could not be retrieved because it was not found in the store "${Y.config.name}".`,W?`This state was previously disposed:
60
+ ${W.trace}`:"No previous disposal trace was found."),_.type){case"atom_family":case"mutable_atom_family":return Y.defaults.get(_.key);case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(Y.defaults.has(_.key))return Y.defaults.get(X.family.key);let H=u0(Y,_).default($);return Y.defaults.set(_.key,H),H}}}return L2(Y,u0(Y,X))}var j9=(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=qz(Y,Z),$=L2(Y,Z);Y.logger.info("\u2728",Z.type,Z.key,"went",G,"->",$),Z.subject.next({newValue:$,oldValue:G})})};function Q8(Y,Z,X,_){function G(E){if(Y.operation.open){let V=Y.on.operationClose.subscribe(`state subscription ${X}`,()=>{V(),_(E)})}else _(E)}let $=u0(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){L2(Y,$);for(let[E,V]of D6(Y,$.key))H.set(E,j9(Y,$,V));Q=function E(V){let L=D6(Y,$.key);for(let[w,M]of H)if(L.get(w))L.delete(w);else M(),H.delete(w);for(let[w,M]of L)H.set(w,j9(Y,$,M));G(V)}}let J=$.subject.subscribe(X,Q);return()=>{Y.logger.info("\uD83D\uDE48",$.type,$.key,`Removing subscription "${X}"`),J();for(let E of H.values())E()}}function u0(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 k9(Z,Y)}var YF=(Y,Z,X,_)=>{let G=u0(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 lZ=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,$=G1(X)?X.transactionMeta.update.token.key:"main",W=`tracker:${G}:${$}:${_}`,H=(J)=>{B1(X,Z,J)},Q=l1(X,Y);this.unsubscribeFromInnerValue=Q.subscribe(W,H),this.unsubscribeFromState=Q8(X,Y,W,function J(U){if(U.newValue!==U.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=U.newValue.subscribe(W,H)}.bind(this))}supplySignalsToCore(Y,Z,X){let _=`tracker:${X.config.name}:${G1(X)?X.transactionMeta.update.token.key:"main"}:${Y.key}`;Q8(X,Z,_,function G({newValue:$,oldValue:W}){let H=X.timelineTopics.getRelatedKey(Z.key);if(H&&X.timelines.get(H)?.timeTraveling){let E=YF(X,{key:H,type:"timeline"},_,function V(L){E(),B1(X,Y,(w)=>{if(L==="redo"&&$)w.do($);else if(L==="undo"&&W)w.undo(W);return w})});return}let Q=l1(X,Y),J=Q.getUpdateNumber($),U=J-Q.cacheUpdateNumber;if($&&U===1)B1(X,Y,(E)=>(E.do($),E));else{let E=Q.cacheUpdateNumber+1;X.logger.info("\u274C","mutable_atom",Y.key,"could not be updated. Expected update number",E,"but got",J)}})}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 O6(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."),k1($);let H=new W0,Q={...Z,type:W,install:(U)=>{return U.logger.info("\uD83D\uDEE0\uFE0F","atom",G,`installing in store "${U.config.name}"`),O6(U,Z,X)},subject:H};if(X)Q.family=X;_.atoms.set(Q.key,Q);let J=k1(Q);if(Z.effects){let U=0,E=[];for(let V of Z.effects){let L=V({resetSelf:()=>{E6(Y,J)},setSelf:(w)=>{B1(Y,J,w)},onSet:(w)=>Q8(Y,J,`effect[${U}]`,w)});if(L)E.push(L);++U}Q.cleanup=()=>{for(let V of E)V()}}if(new lZ(J,Y),!X)N9(Y,{key:`${G}:JSON`,get:({get:U})=>U(J).toJSON(),set:({set:U},E)=>{U(J,Z.class.fromJSON(E))}});return Y.on.atomCreation.next(J),J}var ZF=class{trackers=new Map;latestSignalAtoms;mutableAtoms;constructor(Y,Z){let X=D2(Z,{key:`*${Y.key}`,default:null},["mutable","updates"]);this.latestSignalAtoms=u0(Z,X),this.mutableAtoms=Y;let _=(G)=>{let{type:$,token:W}=G;if(W.family){let H=O1(W.family.subKey);switch($){case"state_creation":this.trackers.set(H,new lZ(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 PZ(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 ${k4(G)} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new W0,H=Object.assign((Q)=>{let J=Q0(Q),U={key:Z.key,subKey:J},E=`${Z.key}(${J})`,V=Y0(Y),L={key:E,class:Z.class};if(Z.effects)L.effects=Z.effects(Q);let w=O6(V,L,U);return $.next({type:"state_creation",token:w,timestamp:Date.now()}),w},_,{subject:$,install:(Q)=>PZ(Q,Z),internalRoles:X});return Y.families.set(Z.key,H),cZ(Y,{key:`${Z.key}:JSON`,get:(Q)=>({get:J})=>J(_,Q).toJSON(),set:(Q)=>({set:J},U)=>{J(_,Q,Z.class.fromJSON(U))}},["mutable","json"]),new ZF(H,Y),_}var S9=(Y,Z)=>{let X=Y0(Z),_=`${Y.key}:JSON`;return X.families.get(_)},b4=(Y,Z)=>{if(Z.family){let _=Y0(Y),$={key:`${Z.family.key}:JSON`,type:"writable_pure_selector_family"},W=u0(_,$),H=JSON.parse(Z.family.subKey);return M0(Y,W,H)}return{type:"writable_pure_selector",key:`${Z.key}:JSON`}};var oZ=(Y)=>{let X={type:"atom",key:`*${Y.key}`};if(Y.family)X.family={key:`*${Y.family.key}`,subKey:Y.family.subKey};return X};function vZ(Y){return typeof Y==="object"&&Y!==null&&"do"in Y&&"undo"in Y&&"subscribe"in Y&&"cacheUpdateNumber"in Y&&"getUpdateNumber"in Y&&"READONLY_VIEW"in Y&&"toJSON"in Y}var I9=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 _1({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new _1({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 _1({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new _1({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new Tz(100);molecules=new Map;moleculeJoins=new _1({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeGraph=new _1({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeData=new _1({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});miscResources=new Map;on={atomCreation:new W0,atomDisposal:new W0,selectorCreation:new W0,selectorDisposal:new W0,timelineCreation:new W0,transactionCreation:new W0,transactionApplying:new Cz(null),operationClose:new W0,moleculeCreation:new W0,moleculeDisposal:new W0};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new L9("warn",(Y,Z,X)=>!M2(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},h4(Z))this.transactionMeta={epoch:new Map(Z?.transactionMeta.epoch),actionContinuities:new _1(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=b4(Z,_),$=oZ(_);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)}}},o0={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new I9({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function x4(Y,Z,X,_){let{key:$}=Z;Y.logger.info("\uD83D\uDD28","atom",$,`creating in store "${Y.config.name}"`);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."),k1(H);let Q=new W0,J={...Z,type:"atom",install:(E)=>{return E.logger.info("\uD83D\uDEE0\uFE0F","atom",$,`installing in store "${E.config.name}"`),x4(E,Z,X)},subject:Q};if(X)J.family=X;if(_)J.internalRoles=_;W.atoms.set($,J);let U=k1(J);if(Z.effects){let E=0,V=[];for(let L of Z.effects){let w=L({resetSelf:()=>{E6(Y,U)},setSelf:(M)=>{B1(Y,U,M)},onSet:(M)=>Q8(Y,U,`effect[${E}]`,M)});if(w)V.push(w);++E}J.cleanup=()=>{for(let L of V)L()}}return Y.on.atomCreation.next(U),U}function c9(Y,Z){let X=Y0(Y),{key:_,family:G}=Z,$=u0(X,Z);if(!G)Y.logger.error("\u274C","atom",_,"Standalone atoms cannot be disposed.");else{$.cleanup?.();let W=Y.valueMap.get($.key),H=u0(Y,{key:G.key,type:"atom_family"}),Q={type:"state_disposal",subType:"atom",token:Z,value:W,timestamp:Date.now()};H.subject.next(Q);let J=G1(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 U=oZ(Z);c9(Y,U),Y.trackers.delete(_)}if(Y.logger.info("\uD83D\uDD25","atom",_,"deleted"),J&&X.transactionMeta.phase==="building"){let U=X.transactionMeta.update.subEvents.at(-1);if(!(U?.type==="molecule_disposal"&&U.values.some(([L])=>L===$.family?.key)))X.transactionMeta.update.subEvents.push(Q)}else Y.on.atomDisposal.next(Z)}}function XF(Y,Z){if("internalRoles"in Y===!1)return!1;return Y.internalRoles.includes(Z)}var l9=class{toolkit;options;defaultContent;molecules=new Map;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=o0.STORE){this.store=X,this.realm=new M9(X),this.options=Y,this.defaultContent=Z,this.store.miscResources.set(`join:${Y.key}`,this),this.realm.allocate("root",Y.key),this.toolkit={get:(...K)=>l1(X,...K),set:(...K)=>{B1(X,...K)},find:(...K)=>M0(X,...K),json:(K)=>b4(X,K)};let _=Y.between[0],G=Y.between[1],$=PZ(X,{key:`${Y.key}/relatedKeys`,class:G4},["join","relations"]);this.core={relatedKeysAtoms:$};let W=({get:K},I)=>K($,I),H=({set:K},I,q)=>{if(!this.store.molecules.has(Q0(I)))this.realm.allocate(Y.key,I);K($,I,(C)=>C.add(q)),K($,q,(C)=>C.add(I))},Q=({set:K},I,q)=>{K($,I,(C)=>{return C.delete(q),C}),K($,q,(C)=>{return C.delete(I),C})},J=(K,I,q)=>{let{find:C,get:g,set:n}=K,T=C($,I),t=g(T);for(let p of t){if(q.includes(p))continue;n($,p,(z0)=>{return z0.delete(I),z0})}n(T,(p)=>{return p.transaction((a)=>{a.clear();for(let z0 of q){let f0=W(K,z0),H1=f0.has(I);if(this.relations.cardinality==="1:n"){let n1=[];for(let B of f0){if(B===I)continue;let u=W(K,B);if(u.delete(z0),u.size===0)n1.push(B)}if(!H1&&f0.size>0)f0.clear();for(let B of n1){let u=[z0,B].sort(),G0=`"${u[0]}:${u[1]}"`;this.molecules.delete(G0)}}if(!H1)f0.add(I);a.add(z0)}return!0}),p})},U=(K,I,q)=>{let{set:C}=K;C($,I,(g)=>{return g.transaction((n)=>{for(let T of q)n.add(T);return!0}),g});for(let g of q)C($,g,(n)=>{return n.add(I),n});return!0},E=(K,I,q)=>{let C=W(K,I);return q?C.has(q):C.size>0},V={getRelatedKeys:(K)=>W(this.toolkit,K),addRelation:(K,I)=>{this.store.moleculeJoins.set(K,Y.key),this.store.moleculeJoins.set(I,Y.key),H(this.toolkit,K,I)},deleteRelation:(K,I)=>{Q(this.toolkit,K,I)},replaceRelationsSafely:(K,I)=>{J(this.toolkit,K,I)},replaceRelationsUnsafely:(K,I)=>{U(this.toolkit,K,I)},has:(K,I)=>E(this.toolkit,K,I)},L,w;if(Z){w=D2(X,{key:`${Y.key}/content`,default:Z},["join","content"]);let K=({get:C},g)=>C(w,g),I=({set:C},g,n)=>{C(w,g,n)};L=Object.assign(V,{getContent:(C)=>{return K(this.toolkit,C)},setContent:(C,g)=>{I(this.toolkit,C,g)},deleteContent:(C)=>{this.realm.deallocate(C)}})}else L=V;let M=new _1(Y,{externalStore:L,isAType:Y.isAType,isBType:Y.isBType,makeContentKey:(...K)=>{let[I,q]=K,C=K.sort(),g=`${C[0]}:${C[1]}`,n=X.molecules.get(Q0(I)),T=X.molecules.get(Q0(q));if(!n)this.realm.allocate(Y.key,I);if(!T)this.realm.allocate(Y.key,q);return this.realm.allocate(I,g,"all"),this.realm.claim(q,g),this.store.moleculeJoins.set(g,Y.key),g}}),k=()=>f4(X,{key:`${Y.key}/singleRelatedKey`,get:(K)=>({get:I})=>{let q=I($,K);for(let C of q)return C;return null}},["join","keys"]),h=()=>{return f4(X,{key:`${Y.key}/multipleRelatedKeys`,get:(K)=>({get:I})=>{let q=S9($,X);return I(q,K).members}},["join","keys"])},x=()=>f4(X,{key:`${Y.key}/singleRelatedEntry`,get:(K)=>({get:I})=>{let q=I($,K);for(let C of q){let g=M.isAType?.(K)?K:void 0,n=g===void 0?K:void 0;g??=C,n??=C;let T=M.makeContentKey(g,n),t=I(w,T);return[C,t]}return null}},["join","entries"]),m=()=>f4(X,{key:`${Y.key}/multipleRelatedEntries`,get:(K)=>({get:I})=>{let q=S9($,X);return I(q,K).members.map((g)=>{let n=M.isAType?.(K)?K:void 0,T=n===void 0?K:void 0;n??=g,T??=g;let t=M.makeContentKey(n,T),p=I(w,t);return[g,p]})}},["join","entries"]);switch(Y.cardinality){case"1:1":{let K=k(),I=`${_}KeyOf${T0(G)}`,q=`${G}KeyOf${T0(_)}`,C={[I]:K,[q]:K},g;if(Z){let n=x(),T=`${_}EntryOf${T0(G)}`,t=`${G}EntryOf${T0(_)}`,p={[T]:n,[t]:n};g=Object.assign(C,p)}else g=C;this.relations=M,this.states=g;break}case"1:n":{let K=k(),I=h(),q=`${_}KeyOf${T0(G)}`,C=`${G}KeysOf${T0(_)}`,g={[q]:K,[C]:I},n;if(Z){let T=x(),t=m(),p=`${_}EntryOf${T0(G)}`,a=`${G}EntriesOf${T0(_)}`,z0={[p]:T,[a]:t};n=Object.assign(g,z0)}else n=g;this.relations=M,this.states=n;break}case"n:n":{let K=h(),I=`${_}KeysOf${T0(G)}`,q=`${G}KeysOf${T0(_)}`,C={[I]:K,[q]:K},g;if(Z){let n=m(),T=`${_}EntriesOf${T0(G)}`,t=`${G}EntriesOf${T0(_)}`,p={[T]:n,[t]:n};g=Object.assign(C,p)}else g=C;this.relations=M,this.states=g}}}};function T9(Y,Z,X){return Y.joins.set(Z.key,new l9(Z,X,Y)),{key:Z.key,type:"join",a:Z.between[0],b:Z.between[1],cardinality:Z.cardinality}}function iZ(Y,Z){let X=Z.joins.get(Y.key);if(X===void 0){let G=o0.STORE.joins.get(Y.key);if(G===void 0)throw new Error(`Join "${Y.key}" not found in store "${Z.config.name}"`);X=new l9(G.options,G.defaultContent,Z),Z.joins.set(Y.key,X)}return X}function J8(Y,Z,X){let _=iZ(Y,X),G=Y0(X);if(G1(G)){let{toolkit:$}=G.transactionMeta;_.transact($,({relations:W})=>{Z(W)})}else Z(_.relations)}function K9(Y,Z,X){let _=iZ(Y,X),G;switch(Y.cardinality){case"1:1":{let $=`${Y.a}KeyOf${T0(Y.b)}`,W=`${Y.b}KeyOf${T0(Y.a)}`;G={get[$](){let Q=_.states[$];return M0(X,Q,Z)},get[W](){let Q=_.states[W];return M0(X,Q,Z)}};let H=`${Y.a}EntryOf${T0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntryOf${T0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return M0(X,J,Z)},get[Q](){let J=_.states[Q];return M0(X,J,Z)}})}break}case"1:n":{let $=`${Y.a}KeyOf${T0(Y.b)}`,W=`${Y.b}KeysOf${T0(Y.a)}`;G={get[$](){let Q=_.states[$];return M0(X,Q,Z)},get[W](){let Q=_.states[W];return M0(X,Q,Z)}};let H=`${Y.a}EntryOf${T0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntriesOf${T0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return M0(X,J,Z)},get[Q](){let J=_.states[Q];return M0(X,J,Z)}})}break}case"n:n":{let $=`${Y.a}KeysOf${T0(Y.b)}`,W=`${Y.b}KeysOf${T0(Y.a)}`;G={get[$](){let Q=_.states[$];return M0(X,Q,Z)},get[W](){let Q=_.states[W];return M0(X,Q,Z)}};let H=`${Y.a}EntriesOf${T0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntriesOf${T0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return M0(X,J,Z)},get[Q](){let J=_.states[Q];return M0(X,J,Z)}})}}}return G}function B9(Y,Z){return iZ(Y,Z).core.relatedKeysAtoms}function M2(Y){return Y.startsWith("\uD83D\uDD0D ")}var _F=(Y)=>{return x4(Y,{key:"\uD83D\uDD0D Atom Token Index",default:()=>{let Z=new Map;for(let[X,_]of Y.atoms){if(M2(X))continue;let G=k1(_);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(M2(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)},GF=(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(M2(_))continue;let $=k1(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(M2(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 rZ=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}},i9=new rZ({number:(Y)=>typeof Y==="number",string:(Y)=>typeof Y==="string",boolean:(Y)=>typeof Y==="boolean",null:(Y)=>Y===null});function r9(Y){if(!Y)return!1;return Object.getPrototypeOf(Y)===Object.prototype}var n9=new rZ({object:r9,array:(Y)=>Array.isArray(Y)}),$F=new rZ({...i9.supported,...n9.supported}),A6=(Y)=>{if(Y===void 0)return"undefined";let Z=$F.refine(Y);if(Z)return Z.type;return Object.getPrototypeOf(Y).constructor.name};var cT=class Y{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(Z=o0.STORE){this.store=Z,this.atomIndex=_F(this.store),this.selectorIndex=GF(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=CZ(this.atomIndex),_=CZ(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 U of J){let V=this.statesCreatedAt.get(U.key)??this.auditorCreatedAt,L=W-V;H.push([U,L])}}if(Z.selectorFamilies)for(let Q of $){let J=Q.familyMembers.values();for(let U of J){let V=this.statesCreatedAt.get(U.key)??this.auditorCreatedAt,L=W-V;H.push([U,L])}}return H}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}},o9=(Y,Z)=>{let X=(_,G)=>{let W=((Q,J)=>{let U=Z(Q,J);if(U)return U;return null})(_,G);if(W?.jobComplete??W?.pathComplete)return W;let H=Array.isArray(G)?G.map((Q,J)=>[J,Q]):r9(G)?Object.entries(G):[];for(let[Q,J]of H){let U=X([..._,Q],J);if(U?.jobComplete)return U}return{}};X([],Y)};function WF(Y,Z){return{summary:`${Y<Z?"+":"-"}${Math.abs(Y-Z)} (${Y} \u2192 ${Z})`}}function HF(Y,Z){return{summary:`${Y.length<Z.length?"+":"-"}${Math.abs(Y.length-Z.length)} ("${Y}" \u2192 "${Z}")`}}function JF(Y,Z){return{summary:`${Y} \u2192 ${Z}`}}function s9(Y,Z,X){let _="",G=[],$=[],W=[];return o9(Y,(H,Q)=>{let J;for(J of H){let U=Z[J];if(U===void 0)$.push([J,JSON.stringify(Q)]);else{let E=X(Q,U);if(E.summary!=="No Change")W.push([J,E])}}}),o9(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 QF(Y,Z,X){return s9(Y,Z,X)}var UF=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,(H,Q)=>this.diff(H,Q))}}let G=A6(Y),$=A6(Z);if(G===$)return{summary:`${G} \u2192 ${$}`};return{summary:`Type change: ${G} \u2192 ${$}`}}},lT=new UF(i9,n9,{number:WF,string:HF,boolean:JF,null:()=>({summary:"No Change"}),object:s9,array:QF});var zF=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)}clear(){throw new Error("Cannot clear an InvariantMap")}},tT=class Y{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(Z){this.key=Z}static existing=new zF;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[_,G]=Z;this.perspectives.push({type:"realtime_perspective",resourceAtoms:_,viewAtoms:G})}break}return this}};var aT=E2({key:"usersInRoomIndex",class:G4}),nZ=E2({key:"roomIndex",class:G4}),FF={enteredAtEpoch:0},U8=z6({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(Y)=>typeof Y==="string",isBType:(Y)=>typeof Y==="string"},FF),eT=F6({key:"usersInMyRoomView",get:(Y)=>({find:Z})=>{let X=D9(U8);return[Z(X,Y)]}});import{spawn as EF}from"child_process";var sZ=class{listeners;globalListeners;handleEvent(Y,...Z){for(let _ of this.globalListeners)_(Y,...Z);let X=this.listeners.get(Y);if(X)for(let _ of X)_(...Z)}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}},OF=class extends sZ{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;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;default:return}}}constructor(Y,Z,X){super((_,...G)=>{let $=JSON.stringify([_,...G])+"\x03",W=(H)=>{if(H.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",W)};return this.process.stdin.once("error",W),this.process.stdin.write($),this});if(this.process=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.process.stdout.on("data",(_)=>{let G=_.toString();if(G==="ALIVE")return;this.unprocessedEvents.push(...G.split("\x03"));let $=this.unprocessedEvents.shift();this.incompleteData+=$??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let W=O1(this.incompleteData);this.handleEvent(...W);while(this.unprocessedEvents.length>0){let H=this.unprocessedEvents.shift();if(H){if(this.unprocessedEvents.length===0)this.incompleteData=H;W=O1(H),this.handleEvent(...W)}}this.incompleteData=""}catch(W){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(W)}}),this.process.stderr.on("data",(_)=>{let G=_.toString();this.unprocessedLogs.push(...G.split("\x03"));let $=this.unprocessedLogs.shift();this.incompleteLog+=$??"";try{let W=O1(this.incompleteLog);this.handleLog(W);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)W=O1(this.incompleteLog),this.handleLog(W)}catch(W){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(W),console.error("\u274C\u274C\u274C\uFE0F")}}),Y.pid)this.id=Y.pid.toString()}},VF=class extends sZ{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(Y){super((...Z)=>{return this.out.next(Z),this});this.id=Y,this.in=new W0,this.out=new W0,this.in.subscribe("socket",(Z)=>{this.handleEvent(...Z)})}dispose(){for(let Y of this.disposalFunctions)Y()}},t9=class extends sZ{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...Y){this.process.stderr.write(Q0(Y.map((Z)=>Z instanceof G4?`{ ${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(){super((Y,...Z)=>{let X=JSON.stringify([Y,...Z]);return this.process.stdout.write(X+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(Y)=>{let Z=Y.toString();this.unprocessedEvents.push(...Z.split("\x03"));let X=this.unprocessedEvents.shift();this.incompleteData+=X??"";try{let _=O1(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",_),this.handleEvent(..._);while(this.unprocessedEvents.length>0){let G=this.unprocessedEvents.shift();if(G){if(this.unprocessedEvents.length===0)this.incompleteData=G;let $=O1(G);this.handleEvent(...$)}}this.incompleteData=""}catch(_){if(_ instanceof Error)this.logger.error("\u2757",_.message,_.cause,_.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(Y)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${Y}`)}),process.on("end",()=>{this.logger.info("\uD83D\uDD25",this.id,"ended"),process.exit(0)}),process.on("SIGTERM",()=>{this.logger.error("\uD83D\uDD25",this.id,"terminated"),process.exit(0)}),process.on("SIGINT",()=>{this.logger.error("\uD83D\uDD25",this.id,"interrupted"),process.exit(0)}),process.pid)this.id=process.pid?.toString();this.on("user-joins",(Y)=>{this.logger.info("\uD83D\uDC64","user",Y,"joined");let Z=new VF(`user:${Y}`);this.relays.set(Y,Z),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let X of this.relayServices){let _=X(Z);if(_)Z.disposalFunctions.push(_)}this.on(`user:${Y}`,(...X)=>{Z.in.next(X)}),Z.out.subscribe("socket",(X)=>{this.emit(...X)})}),this.on("user-leaves",(Y)=>{let Z=this.relays.get(Y);if(this.off(`relay:${Y}`),Z)Z.dispose(),this.relays.delete(Y)}),process.stdout.write("ALIVE")}relay(Y){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(Y)}},a9=G8({key:"roomArguments",default:["echo",["Hello World!"]]}),DF=F6({key:"room",get:(Y)=>async({get:Z,find:X})=>{let _=X(a9,Y),G=Z(_),[$,W]=G,H=await new Promise((Q)=>{let J=EF($,W,{env:process.env}),U=(E)=>{if(E.toString()==="ALIVE")J.stdout.off("data",U),Q(J)};J.stdout.on("data",U)});return new OF(H,Y)}}),QK=$8({key:"createRoom",do:({get:Y,set:Z,find:X},_,G,$)=>{let W=$?[G,$]:[G],H=X(a9,_);Z(H,W),Z(nZ,(U)=>U.add(_));let Q=X(DF,_);return Y(Q)}}),UK=$8({key:"joinRoom",do:(Y,Z,X,_)=>{let G={enteredAtEpoch:_};return J8(U8,($)=>{$.set({room:Z,user:X},G)},Y.env().store),G}}),zK=$8({key:"leaveRoom",do:(Y,Z,X)=>{J8(U8,(_)=>{_.delete({room:Z,user:X})},Y.env().store)}}),FK=$8({key:"destroyRoom",do:(Y,Z)=>{J8(U8,(X)=>{X.delete({room:Z})},Y.env().store),Y.set(nZ,(X)=>(X.delete(Z),X))}});var EK=G8({key:"redactor",default:{occlude:(Y)=>Y}}),OK=G8({key:"unacknowledgedUpdates",default:()=>[]}),VK=G8({key:"sockets",default:null}),DK=E2({key:"socketsIndex",class:G4}),LK=E2({key:"usersIndex",class:G4}),MK=z6({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(Y)=>Y.startsWith("user::"),isBType:(Y)=>Y.startsWith("socket::")});var{file:S3,serve:vE}=globalThis.Bun;import{readFileSync as Z7}from"fs";import{createServer as wF}from"http";import{createServer as RF}from"https";import{resolve as aZ}from"path";function e9(Y,Z){if(Y instanceof Promise)throw new Error(Z)}function LF(Y,Z){let X={},_=[];for(let G in Y){let $=Y[G]["~standard"].validate(Z[G]);if(e9($,`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 tZ(Y){let Z=Y.runtimeEnvStrict??Y.runtimeEnv??process.env;if(Y.emptyStringAsUndefined??!1){for(let[x,m]of Object.entries(Z))if(m==="")delete Z[x]}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)??LF(Q,Z);e9(J,"Validation must be synchronous");let U=Y.onValidationError??((x)=>{throw console.error("\u274C Invalid environment variables:",x),new Error("Invalid environment variables")}),E=Y.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(J.issues)return U(J.issues);let V=(x)=>{if(!Y.clientPrefix)return!0;return!x.startsWith(Y.clientPrefix)&&!(x in W)},L=(x)=>{return H||!V(x)},w=(x)=>{return x==="__esModule"||x==="$$typeof"},M=(Y.extends??[]).reduce((x,m)=>{return Object.assign(x,m)},{}),k=Object.assign(M,J.value);return new Proxy(k,{get(x,m){if(typeof m!=="string")return;if(w(m))return;if(!L(m))return E(m);return Reflect.get(x,m)}})}var MF="__vite_start_time"in globalThis,AF=typeof window!=="undefined",jK="vitest"in globalThis,W4=E1("string"),Y7=E1('"true" | "false" | undefined'),b1=tZ({isServer:!MF&&!AF,server:{CI:E1("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:Y7.pipe((Y)=>Y==="true"),FRONTEND_PORT:W4.pipe((Y)=>Number.parseInt(Y,10)),FRONTEND_ORIGINS:W4.pipe.try((Y)=>JSON.parse(Y),E1("string[]")),API_KEY_OPENAI:E1("string | undefined"),API_KEY_RESEND:E1("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:W4,VITE_DEV_FRONTEND_HOST:E1("string | undefined"),VITE_DEV_HTTPS:Y7.pipe((Y)=>Y==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var X7=aZ(import.meta.dirname,"../dev"),w6=b1.VITE_DEV_HTTPS?{cert:Z7(aZ(X7,"./cert.pem"),"utf-8"),key:Z7(aZ(X7,"./key.pem"),"utf-8")}:void 0;function kK(Y){if(w6)return RF(w6,Y);return wF({},Y)}import KE from"path";var F=Symbol.for("drizzle:entityKind");function A(Y,Z){if(!Y||typeof Y!=="object")return!1;if(Y instanceof Z)return!0;if(!Object.prototype.hasOwnProperty.call(Z,F))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(F in X&&X[F]===Z[F])return!0;X=Object.getPrototypeOf(X)}return!1}class E0{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[F]="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 eZ{static[F]="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 y1=Symbol.for("drizzle:Name");class Y5{static[F]="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 _7(Y,this)}}class _7{constructor(Y,Z){this.table=Y,this.reference=Z.reference,this.onUpdate=Z._onUpdate,this.onDelete=Z._onDelete}static[F]="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[y1],..._,X[0].table[y1],...G];return Y??`${$.join("_")}_fk`}}function R6(Y,...Z){return Y(...Z)}function G7(Y,Z){return`${Y[y1]}_${Z.join("_")}_unique`}function $7(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 W7(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]=$7(Y,_+1,!0);X.push(Q),_=J;continue}if($==="}")return[X,_+1];if($==="{"){let[Q,J]=W7(Y,_+1);X.push(Q),_=J;continue}let[W,H]=$7(Y,_,!1);X.push(W),_=H}return[X,_]}function H7(Y){let[Z]=W7(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 b extends eZ{foreignKeyConfigs=[];static[F]="PgColumnBuilder";array(Y){return new Q7(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 R6((G,$)=>{let W=new Y5(()=>{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 J7(Y,this.config)}}class j extends E0{constructor(Y,Z){if(!Z.uniqueName)Z.uniqueName=G7(Y,[Z.name]);super(Y,Z);this.table=Y}static[F]="PgColumn"}class J7 extends j{static[F]="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 z8{static[F]="IndexedColumn";constructor(Y,Z,X,_){this.name=Y,this.keyAsName=Z,this.type=X,this.indexConfig=_}name;keyAsName;type;indexConfig}class Q7 extends b{static[F]="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 X5(Y,this.config,Z)}}class X5 extends j{constructor(Y,Z,X,_){super(Y,Z);this.baseColumn=X,this.range=_,this.size=Z.size}size;static[F]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(Y){if(typeof Y==="string")Y=H7(Y);return Y.map((Z)=>this.baseColumn.mapFromDriverValue(Z))}mapToDriverValue(Y,Z=!1){let X=Y.map((_)=>_===null?null:A(this.baseColumn,X5)?this.baseColumn.mapToDriverValue(_,!0):this.baseColumn.mapToDriverValue(_));if(Z)return X;return Z5(X)}}class U7 extends b{static[F]="PgEnumObjectColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumObjectColumn");this.config.enum=Z}build(Y){return new z7(Y,this.config)}}class z7 extends j{static[F]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}var N6=Symbol.for("drizzle:isPgEnum");function F7(Y){return!!Y&&typeof Y==="function"&&N6 in Y&&Y[N6]===!0}class E7 extends b{static[F]="PgEnumColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumColumn");this.config.enum=Z}build(Y){return new O7(Y,this.config)}}class O7 extends j{static[F]="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 F8(Y,Z){return Array.isArray(Z)?NF(Y,[...Z],void 0):IF(Y,Z,void 0)}function NF(Y,Z,X){let _=Object.assign((G)=>new E7(G??"",_),{enumName:Y,enumValues:Z,schema:X,[N6]:!0});return _}function IF(Y,Z,X){let _=Object.assign((G)=>new U7(G??"",_),{enumName:Y,enumValues:Object.values(Z),schema:X,[N6]:!0});return _}class S0{static[F]="Subquery";constructor(Y,Z,X,_=!1,G=[]){this._={brand:"Subquery",sql:Y,selectedFields:Z,alias:X,isWith:_,usedTables:G}}}class E8 extends S0{static[F]="WithSubquery"}var V7="0.44.4";var _5,G5,O0={startActiveSpan(Y,Z){if(!_5)return Z();if(!G5)G5=_5.trace.getTracer("drizzle-orm",V7);return R6((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()}}),_5,G5)}};var A0=Symbol.for("drizzle:ViewBaseConfig");var y4=Symbol.for("drizzle:Schema"),I6=Symbol.for("drizzle:Columns"),D7=Symbol.for("drizzle:ExtraConfigColumns"),$5=Symbol.for("drizzle:OriginalName"),W5=Symbol.for("drizzle:BaseName"),O8=Symbol.for("drizzle:IsAlias"),L7=Symbol.for("drizzle:ExtraConfigBuilder"),TF=Symbol.for("drizzle:IsDrizzleTable");class S{static[F]="Table";static Symbol={Name:y1,Schema:y4,OriginalName:$5,Columns:I6,ExtraConfigColumns:D7,BaseName:W5,IsAlias:O8,ExtraConfigBuilder:L7};[y1];[$5];[y4];[I6];[D7];[W5];[O8]=!1;[TF]=!0;[L7]=void 0;constructor(Y,Z,X){this[y1]=this[$5]=Y,this[y4]=Z,this[W5]=X}}function d0(Y){return Y[y1]}function g4(Y){return`${Y[y4]??"public"}.${Y[y1]}`}function H5(Y){return Y!==null&&Y!==void 0&&typeof Y.getSQL==="function"}function KF(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 p0{static[F]="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(A(Z,S)){let X=Z[S.Symbol.Schema];this.usedTables.push(X===void 0?Z[S.Symbol.Name]:X+"."+Z[S.Symbol.Name])}}static[F]="SQL";decoder=A7;shouldInlineParams=!1;usedTables=[];append(Y){return this.queryChunks.push(...Y.queryChunks),this}toQuery(Y){return O0.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 KF(Y.map((J)=>{if(A(J,p0))return{sql:J.value.join(""),params:[]};if(A(J,T6))return{sql:G(J.value),params:[]};if(J===void 0)return{sql:"",params:[]};if(Array.isArray(J)){let U=[new p0("(")];for(let[E,V]of J.entries())if(U.push(V),E<J.length-1)U.push(new p0(", "));return U.push(new p0(")")),this.buildQueryFromSourceParams(U,X)}if(A(J,f))return this.buildQueryFromSourceParams(J.queryChunks,{...X,inlineParams:H||J.shouldInlineParams});if(A(J,S)){let U=J[S.Symbol.Schema],E=J[S.Symbol.Name];return{sql:U===void 0||J[O8]?G(E):G(U)+"."+G(E),params:[]}}if(A(J,E0)){let U=_.getColumnCasing(J);if(Z.invokeSource==="indexes")return{sql:G(U),params:[]};let E=J.table[S.Symbol.Schema];return{sql:J.table[O8]||E===void 0?G(J.table[S.Symbol.Name])+"."+G(U):G(E)+"."+G(J.table[S.Symbol.Name])+"."+G(U),params:[]}}if(A(J,V1)){let U=J[A0].schema,E=J[A0].name;return{sql:U===void 0||J[A0].isAlias?G(E):G(U)+"."+G(E),params:[]}}if(A(J,w1)){if(A(J.value,R4))return{sql:$(Q.value++,J),params:[J],typings:["none"]};let U=J.value===null?null:J.encoder.mapToDriverValue(J.value);if(A(U,f))return this.buildQueryFromSourceParams([U],X);if(H)return{sql:this.mapInlineParam(U,X),params:[]};let E=["none"];if(W)E=[W(J.encoder)];return{sql:$(Q.value++,U),params:[U],typings:E}}if(A(J,R4))return{sql:$(Q.value++,J),params:[J],typings:["none"]};if(A(J,f.Aliased)&&J.fieldAlias!==void 0)return{sql:G(J.fieldAlias),params:[]};if(A(J,S0)){if(J._.isWith)return{sql:G(J._.alias),params:[]};return this.buildQueryFromSourceParams([new p0("("),J._.sql,new p0(") "),new T6(J._.alias)],X)}if(F7(J)){if(J.schema)return{sql:G(J.schema)+"."+G(J.enumName),params:[]};return{sql:G(J.enumName),params:[]}}if(H5(J)){if(J.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([J.getSQL()],X);return this.buildQueryFromSourceParams([new p0("("),J.getSQL(),new p0(")")],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 T6{constructor(Y){this.value=Y}static[F]="Name";brand;getSQL(){return new f([this])}}function M7(Y){return typeof Y==="object"&&Y!==null&&"mapToDriverValue"in Y&&typeof Y.mapToDriverValue==="function"}var A7={mapFromDriverValue:(Y)=>Y},w7={mapToDriverValue:(Y)=>Y},KB={...A7,...w7};class w1{constructor(Y,Z=w7){this.value=Y,this.encoder=Z}static[F]="Param";brand;getSQL(){return new f([this])}}function O(Y,...Z){let X=[];if(Z.length>0||Y.length>0&&Y[0]!=="")X.push(new p0(Y[0]));for(let[_,G]of Z.entries())X.push(G,new p0(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 p0(Q)])}Y.raw=_;function G(Q,J){let U=[];for(let[E,V]of Q.entries()){if(E>0&&J!==void 0)U.push(J);U.push(V)}return new f(U)}Y.join=G;function $(Q){return new T6(Q)}Y.identifier=$;function W(Q){return new R4(Q)}Y.placeholder=W;function H(Q,J){return new w1(Q,J)}Y.param=H})(O||(O={}));((Y)=>{class Z{constructor(X,_){this.sql=X,this.fieldAlias=_}static[F]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new Z(this.sql,this.fieldAlias)}}Y.Aliased=Z})(f||(f={}));class R4{constructor(Y){this.name=Y}static[F]="Placeholder";getSQL(){return new f([this])}}function J5(Y,Z){return Y.map((X)=>{if(A(X,R4)){if(!(X.name in Z))throw new Error(`No value for placeholder "${X.name}" was provided`);return Z[X.name]}if(A(X,w1)&&A(X.value,R4)){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 BF=Symbol.for("drizzle:IsDrizzleView");class V1{static[F]="View";[A0];[BF]=!0;constructor({name:Y,schema:Z,selectedFields:X,query:_}){this[A0]={name:Y,originalName:Y,schema:Z,selectedFields:X,query:_,isExisting:!_,isAlias:!1}}getSQL(){return new f([this])}}E0.prototype.getSQL=function(){return new f([this])};S.prototype.getSQL=function(){return new f([this])};S0.prototype.getSQL=function(){return new f([this])};class A2{constructor(Y){this.table=Y}static[F]="ColumnAliasProxyHandler";get(Y,Z){if(Z==="table")return this.table;return Y[Z]}}class V8{constructor(Y,Z){this.alias=Y,this.replaceOriginalName=Z}static[F]="TableAliasProxyHandler";get(Y,Z){if(Z===S.Symbol.IsAlias)return!0;if(Z===S.Symbol.Name)return this.alias;if(this.replaceOriginalName&&Z===S.Symbol.OriginalName)return this.alias;if(Z===A0)return{...Y[A0],name:this.alias,isAlias:!0};if(Z===S.Symbol.Columns){let _=Y[S.Symbol.Columns];if(!_)return _;let G={};return Object.keys(_).map(($)=>{G[$]=new Proxy(_[$],new A2(new Proxy(Y,this)))}),G}let X=Y[Z];if(A(X,E0))return new Proxy(X,new A2(new Proxy(Y,this)));return X}}function K6(Y,Z){return new Proxy(Y,new V8(Z,!1))}function i1(Y,Z){return new Proxy(Y,new A2(new Proxy(Y.table,new V8(Z,!1))))}function Q5(Y,Z){return new f.Aliased(D8(Y.sql,Z),Y.fieldAlias)}function D8(Y,Z){return O.join(Y.queryChunks.map((X)=>{if(A(X,E0))return i1(X,Z);if(A(X,f))return D8(X,Z);if(A(X,f.Aliased))return Q5(X,Z);return X}))}class B6 extends Error{static[F]="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}
61
+ params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrace(this,H4),X)this.cause=X}}class U5 extends B6{static[F]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class R7{static[F]="ConsoleLogWriter";write(Y){console.log(Y)}}class z5{static[F]="DefaultLogger";writer;constructor(Y){this.writer=Y?.writer??new R7}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 F5{static[F]="NoopLogger";logQuery(){}}class $1{static[F]="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 N7(Y,Z,X){let _={},G=Y.reduce(($,{path:W,field:H},Q)=>{let J;if(A(H,E0))J=H;else if(A(H,f))J=H.decoder;else J=H.sql.decoder;let U=$;for(let[E,V]of W.entries())if(E<W.length-1){if(!(V in U))U[V]={};U=U[V]}else{let L=Z[Q],w=U[V]=L===null?null:J.mapFromDriverValue(L);if(X&&A(H,E0)&&W.length===2){let M=W[0];if(!(M in _))_[M]=w===null?d0(H.table):!1;else if(typeof _[M]==="string"&&_[M]!==d0(H.table))_[M]=!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 C1(Y,Z){return Object.entries(Y).reduce((X,[_,G])=>{if(typeof _!=="string")return X;let $=Z?[...Z,_]:[_];if(A(G,E0)||A(G,f)||A(G,f.Aliased))X.push({path:$,field:G});else if(A(G,S))X.push(...C1(G[S.Symbol.Columns],$));else X.push(...C1(G,$));return X},[])}function L8(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 C6(Y,Z){let X=Object.entries(Z).filter(([,_])=>_!==void 0).map(([_,G])=>{if(A(G,f)||A(G,E0))return[_,G];else return[_,new w1(G,Y[S.Symbol.Columns][_])]});if(X.length===0)throw new Error("No values to set");return Object.fromEntries(X)}function I7(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 T7(Y){return Y[S.Symbol.Columns]}function J4(Y){return A(Y,S0)?Y._.alias:A(Y,V1)?Y[A0].name:A(Y,f)?void 0:Y[S.Symbol.IsAlias]?Y[S.Symbol.Name]:Y[S.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 b{static[F]="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[F]="PgBigInt53Builder";constructor(Y){super(Y,"number","PgBigInt53")}build(Y){return new C7(Y,this.config)}}class C7 extends j{static[F]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class q7 extends N4{static[F]="PgBigInt64Builder";constructor(Y){super(Y,"bigint","PgBigInt64")}build(Y){return new j7(Y,this.config)}}class j7 extends j{static[F]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(Y){return BigInt(Y)}}function S7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new B7(X);return new q7(X)}class P7 extends b{static[F]="PgBigSerial53Builder";constructor(Y){super(Y,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new v7(Y,this.config)}}class v7 extends j{static[F]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class x7 extends b{static[F]="PgBigSerial64Builder";constructor(Y){super(Y,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(Y){return new f7(Y,this.config)}}class f7 extends j{static[F]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(Y){return BigInt(Y)}}function h7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new P7(X);return new x7(X)}class k7 extends b{static[F]="PgBooleanBuilder";constructor(Y){super(Y,"boolean","PgBoolean")}build(Y){return new b7(Y,this.config)}}class b7 extends j{static[F]="PgBoolean";getSQLType(){return"boolean"}}function M8(Y){return new k7(Y??"")}class y7 extends b{static[F]="PgCharBuilder";constructor(Y,Z){super(Y,"string","PgChar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new g7(Y,this.config)}}class g7 extends j{static[F]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function p7(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new y7(X,_)}class m7 extends b{static[F]="PgCidrBuilder";constructor(Y){super(Y,"string","PgCidr")}build(Y){return new u7(Y,this.config)}}class u7 extends j{static[F]="PgCidr";getSQLType(){return"cidr"}}function d7(Y){return new m7(Y??"")}class c7 extends b{static[F]="PgCustomColumnBuilder";constructor(Y,Z,X){super(Y,"custom","PgCustomColumn");this.config.fieldConfig=Z,this.config.customTypeParams=X}build(Y){return new l7(Y,this.config)}}class l7 extends j{static[F]="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 o7(Y){return(Z,X)=>{let{name:_,config:G}=X0(Z,X);return new c7(_,G,Y)}}class Q4 extends b{static[F]="PgDateColumnBaseBuilder";defaultNow(){return this.default(O`now()`)}}class i7 extends Q4{static[F]="PgDateBuilder";constructor(Y){super(Y,"date","PgDate")}build(Y){return new q6(Y,this.config)}}class q6 extends j{static[F]="PgDate";getSQLType(){return"date"}mapFromDriverValue(Y){return new Date(Y)}mapToDriverValue(Y){return Y.toISOString()}}class r7 extends Q4{static[F]="PgDateStringBuilder";constructor(Y){super(Y,"string","PgDateString")}build(Y){return new j6(Y,this.config)}}class j6 extends j{static[F]="PgDateString";getSQLType(){return"date"}}function n7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="date")return new i7(X);return new r7(X)}class s7 extends b{static[F]="PgDoublePrecisionBuilder";constructor(Y){super(Y,"number","PgDoublePrecision")}build(Y){return new t7(Y,this.config)}}class t7 extends j{static[F]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function a7(Y){return new s7(Y??"")}class e7 extends b{static[F]="PgInetBuilder";constructor(Y){super(Y,"string","PgInet")}build(Y){return new Y$(Y,this.config)}}class Y$ extends j{static[F]="PgInet";getSQLType(){return"inet"}}function Z$(Y){return new e7(Y??"")}class X$ extends N4{static[F]="PgIntegerBuilder";constructor(Y){super(Y,"number","PgInteger")}build(Y){return new _$(Y,this.config)}}class _$ extends j{static[F]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseInt(Y);return Y}}function A8(Y){return new X$(Y??"")}class G$ extends b{static[F]="PgIntervalBuilder";constructor(Y,Z){super(Y,"string","PgInterval");this.config.intervalConfig=Z}build(Y){return new $$(Y,this.config)}}class $$ extends j{static[F]="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 W$(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new G$(X,_)}class H$ extends b{static[F]="PgJsonBuilder";constructor(Y){super(Y,"json","PgJson")}build(Y){return new S6(Y,this.config)}}class S6 extends j{static[F]="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 J$(Y){return new H$(Y??"")}class Q$ extends b{static[F]="PgJsonbBuilder";constructor(Y){super(Y,"json","PgJsonb")}build(Y){return new P6(Y,this.config)}}class P6 extends j{static[F]="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 U$(Y){return new Q$(Y??"")}class z$ extends b{static[F]="PgLineBuilder";constructor(Y){super(Y,"array","PgLine")}build(Y){return new F$(Y,this.config)}}class F$ extends j{static[F]="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 E$ extends b{static[F]="PgLineABCBuilder";constructor(Y){super(Y,"json","PgLineABC")}build(Y){return new O$(Y,this.config)}}class O$ extends j{static[F]="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 V$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new z$(X);return new E$(X)}class D$ extends b{static[F]="PgMacaddrBuilder";constructor(Y){super(Y,"string","PgMacaddr")}build(Y){return new L$(Y,this.config)}}class L$ extends j{static[F]="PgMacaddr";getSQLType(){return"macaddr"}}function M$(Y){return new D$(Y??"")}class A$ extends b{static[F]="PgMacaddr8Builder";constructor(Y){super(Y,"string","PgMacaddr8")}build(Y){return new w$(Y,this.config)}}class w$ extends j{static[F]="PgMacaddr8";getSQLType(){return"macaddr8"}}function R$(Y){return new A$(Y??"")}class N$ extends b{static[F]="PgNumericBuilder";constructor(Y,Z,X){super(Y,"string","PgNumeric");this.config.precision=Z,this.config.scale=X}build(Y){return new v6(Y,this.config)}}class v6 extends j{static[F]="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 I$ extends b{static[F]="PgNumericNumberBuilder";constructor(Y,Z,X){super(Y,"number","PgNumericNumber");this.config.precision=Z,this.config.scale=X}build(Y){return new T$(Y,this.config)}}class T$ extends j{static[F]="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 b{static[F]="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[F]="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 C$(Y,Z){let{name:X,config:_}=X0(Y,Z),G=_?.mode;return G==="number"?new I$(X,_?.precision,_?.scale):G==="bigint"?new K$(X,_?.precision,_?.scale):new N$(X,_?.precision,_?.scale)}class q$ extends b{static[F]="PgPointTupleBuilder";constructor(Y){super(Y,"array","PgPointTuple")}build(Y){return new j$(Y,this.config)}}class j$ extends j{static[F]="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 S$ extends b{static[F]="PgPointObjectBuilder";constructor(Y){super(Y,"json","PgPointObject")}build(Y){return new P$(Y,this.config)}}class P$ extends j{static[F]="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 v$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new q$(X);return new S$(X)}function CF(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 x$(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 E5(Y){let Z=CF(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=x$(Z,X);X+=8;let Q=x$(Z,X);return X+=8,[H,Q]}throw new Error("Unsupported geometry type")}class f$ extends b{static[F]="PgGeometryBuilder";constructor(Y){super(Y,"array","PgGeometry")}build(Y){return new h$(Y,this.config)}}class h$ extends j{static[F]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){return E5(Y)}mapToDriverValue(Y){return`point(${Y[0]} ${Y[1]})`}}class k$ extends b{static[F]="PgGeometryObjectBuilder";constructor(Y){super(Y,"json","PgGeometryObject")}build(Y){return new b$(Y,this.config)}}class b$ extends j{static[F]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){let Z=E5(Y);return{x:Z[0],y:Z[1]}}mapToDriverValue(Y){return`point(${Y.x} ${Y.y})`}}function y$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new f$(X);return new k$(X)}class g$ extends b{static[F]="PgRealBuilder";constructor(Y,Z){super(Y,"number","PgReal");this.config.length=Z}build(Y){return new p$(Y,this.config)}}class p$ extends j{static[F]="PgReal";constructor(Y,Z){super(Y,Z)}getSQLType(){return"real"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function m$(Y){return new g$(Y??"")}class u$ extends b{static[F]="PgSerialBuilder";constructor(Y){super(Y,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new d$(Y,this.config)}}class d$ extends j{static[F]="PgSerial";getSQLType(){return"serial"}}function c$(Y){return new u$(Y??"")}class l$ extends N4{static[F]="PgSmallIntBuilder";constructor(Y){super(Y,"number","PgSmallInt")}build(Y){return new o$(Y,this.config)}}class o$ extends j{static[F]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number(Y);return Y}}function i$(Y){return new l$(Y??"")}class r$ extends b{static[F]="PgSmallSerialBuilder";constructor(Y){super(Y,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new n$(Y,this.config)}}class n$ extends j{static[F]="PgSmallSerial";getSQLType(){return"smallserial"}}function s$(Y){return new r$(Y??"")}class t$ extends b{static[F]="PgTextBuilder";constructor(Y,Z){super(Y,"string","PgText");this.config.enumValues=Z.enum}build(Y){return new a$(Y,this.config)}}class a$ extends j{static[F]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function e$(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new t$(X,_)}class YW 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[F]="PgTimeBuilder";build(Y){return new x6(Y,this.config)}}class x6 extends j{static[F]="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 ZW(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new YW(X,_.withTimezone??!1,_.precision)}class XW extends Q4{static[F]="PgTimestampBuilder";constructor(Y,Z,X){super(Y,"date","PgTimestamp");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new f6(Y,this.config)}}class f6 extends j{static[F]="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 _W extends Q4{static[F]="PgTimestampStringBuilder";constructor(Y,Z,X){super(Y,"string","PgTimestampString");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new h6(Y,this.config)}}class h6 extends j{static[F]="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 GW(Y,Z={}){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="string")return new _W(X,_.withTimezone??!1,_.precision);return new XW(X,_?.withTimezone??!1,_?.precision)}class $W extends b{static[F]="PgUUIDBuilder";constructor(Y){super(Y,"string","PgUUID")}defaultRandom(){return this.default(O`gen_random_uuid()`)}build(Y){return new k6(Y,this.config)}}class k6 extends j{static[F]="PgUUID";getSQLType(){return"uuid"}}function q1(Y){return new $W(Y??"")}class WW extends b{static[F]="PgVarcharBuilder";constructor(Y,Z){super(Y,"string","PgVarchar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new HW(Y,this.config)}}class HW extends j{static[F]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function a0(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new WW(X,_)}class JW extends b{static[F]="PgBinaryVectorBuilder";constructor(Y,Z){super(Y,"string","PgBinaryVector");this.config.dimensions=Z.dimensions}build(Y){return new QW(Y,this.config)}}class QW extends j{static[F]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function UW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new JW(X,_)}class zW extends b{static[F]="PgHalfVectorBuilder";constructor(Y,Z){super(Y,"array","PgHalfVector");this.config.dimensions=Z.dimensions}build(Y){return new FW(Y,this.config)}}class FW extends j{static[F]="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 EW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new zW(X,_)}class OW extends b{static[F]="PgSparseVectorBuilder";constructor(Y,Z){super(Y,"string","PgSparseVector");this.config.dimensions=Z.dimensions}build(Y){return new VW(Y,this.config)}}class VW extends j{static[F]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function DW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new OW(X,_)}class LW extends b{static[F]="PgVectorBuilder";constructor(Y,Z){super(Y,"array","PgVector");this.config.dimensions=Z.dimensions}build(Y){return new MW(Y,this.config)}}class MW extends j{static[F]="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 AW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new LW(X,_)}function wW(){return{bigint:S7,bigserial:h7,boolean:M8,char:p7,cidr:d7,customType:o7,date:n7,doublePrecision:a7,inet:Z$,integer:A8,interval:W$,json:J$,jsonb:U$,line:V$,macaddr:M$,macaddr8:R$,numeric:C$,point:v$,geometry:y$,real:m$,serial:c$,smallint:i$,smallserial:s$,text:e$,time:ZW,timestamp:GW,uuid:q1,varchar:a0,bit:UW,halfvec:EW,sparsevec:DW,vector:AW}}var O5=Symbol.for("drizzle:PgInlineForeignKeys"),RW=Symbol.for("drizzle:EnableRLS");class m0 extends S{static[F]="PgTable";static Symbol=Object.assign({},S.Symbol,{InlineForeignKeys:O5,EnableRLS:RW});[O5]=[];[RW]=!1;[S.Symbol.ExtraConfigBuilder]=void 0;[S.Symbol.ExtraConfigColumns]={}}function qF(Y,Z,X,_,G=Y){let $=new m0(Y,_,G),W=typeof Z==="function"?Z(wW()):Z,H=Object.fromEntries(Object.entries(W).map(([U,E])=>{let V=E;V.setName(U);let L=V.build($);return $[O5].push(...V.buildForeignKeys(L,$)),[U,L]})),Q=Object.fromEntries(Object.entries(W).map(([U,E])=>{let V=E;V.setName(U);let L=V.buildExtraConfigColumn($);return[U,L]})),J=Object.assign($,H);if(J[S.Symbol.Columns]=H,J[S.Symbol.ExtraConfigColumns]=Q,X)J[m0.Symbol.ExtraConfigBuilder]=X;return Object.assign(J,{enableRLS:()=>{return J[m0.Symbol.EnableRLS]=!0,J}})}var I4=(Y,Z,X)=>{return qF(Y,Z,X,void 0)};function NW(...Y){if(Y[0].columns)return new w8(Y[0].columns,Y[0].name);return new w8(Y)}class w8{static[F]="PgPrimaryKeyBuilder";columns;name;constructor(Y,Z){this.columns=Y,this.name=Z}build(Y){return new IW(Y,this.columns,this.name)}}class IW{constructor(Y,Z,X){this.table=Y,this.columns=Z,this.name=X}static[F]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[m0.Symbol.Name]}_${this.columns.map((Y)=>Y.name).join("_")}_pk`}}function D1(Y,Z){if(M7(Z)&&!H5(Y)&&!A(Y,w1)&&!A(Y,R4)&&!A(Y,E0)&&!A(Y,S)&&!A(Y,V1))return new w1(Y,Z);return Y}var b6=(Y,Z)=>{return O`${Y} = ${D1(Z,Y)}`},TW=(Y,Z)=>{return O`${Y} <> ${D1(Z,Y)}`};function R8(...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 p0("("),O.join(Z,new p0(" and ")),new p0(")")])}function KW(...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 p0("("),O.join(Z,new p0(" or ")),new p0(")")])}function BW(Y){return O`not ${Y}`}var CW=(Y,Z)=>{return O`${Y} > ${D1(Z,Y)}`},qW=(Y,Z)=>{return O`${Y} >= ${D1(Z,Y)}`},jW=(Y,Z)=>{return O`${Y} < ${D1(Z,Y)}`},SW=(Y,Z)=>{return O`${Y} <= ${D1(Z,Y)}`};function PW(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return O`false`;return O`${Y} in ${Z.map((X)=>D1(X,Y))}`}return O`${Y} in ${D1(Z,Y)}`}function vW(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return O`true`;return O`${Y} not in ${Z.map((X)=>D1(X,Y))}`}return O`${Y} not in ${D1(Z,Y)}`}function xW(Y){return O`${Y} is null`}function fW(Y){return O`${Y} is not null`}function hW(Y){return O`exists ${Y}`}function kW(Y){return O`not exists ${Y}`}function bW(Y,Z,X){return O`${Y} between ${D1(Z,Y)} and ${D1(X,Y)}`}function yW(Y,Z,X){return O`${Y} not between ${D1(Z,Y)} and ${D1(X,Y)}`}function gW(Y,Z){return O`${Y} like ${Z}`}function pW(Y,Z){return O`${Y} not like ${Z}`}function mW(Y,Z){return O`${Y} ilike ${Z}`}function uW(Y,Z){return O`${Y} not ilike ${Z}`}function dW(Y){return O`${Y} asc`}function cW(Y){return O`${Y} desc`}class V5{constructor(Y,Z,X){this.sourceTable=Y,this.referencedTable=Z,this.relationName=X,this.referencedTableName=Z[S.Symbol.Name]}static[F]="Relation";referencedTableName;fieldName}class lW{constructor(Y,Z){this.table=Y,this.config=Z}static[F]="Relations"}class T4 extends V5{constructor(Y,Z,X,_){super(Y,Z,X?.relationName);this.config=X,this.isNullable=_}static[F]="One";withFieldName(Y){let Z=new T4(this.sourceTable,this.referencedTable,this.config,this.isNullable);return Z.fieldName=Y,Z}}class N8 extends V5{constructor(Y,Z,X){super(Y,Z,X?.relationName);this.config=X}static[F]="Many";withFieldName(Y){let Z=new N8(this.sourceTable,this.referencedTable,this.config);return Z.fieldName=Y,Z}}function oW(){return{and:R8,between:bW,eq:b6,exists:hW,gt:CW,gte:qW,ilike:mW,inArray:PW,isNull:xW,isNotNull:fW,like:gW,lt:jW,lte:SW,ne:TW,not:BW,notBetween:yW,notExists:kW,notLike:pW,notIlike:uW,notInArray:vW,or:KW,sql:O}}function iW(){return{sql:O,asc:dW,desc:cW}}function rW(Y,Z){if(Object.keys(Y).length===1&&"default"in Y&&!A(Y.default,S))Y=Y.default;let X={},_={},G={};for(let[$,W]of Object.entries(Y))if(A(W,S)){let H=g4(W),Q=_[H];X[H]=$,G[$]={tsName:$,dbName:W[S.Symbol.Name],schema:W[S.Symbol.Schema],columns:W[S.Symbol.Columns],relations:Q?.relations??{},primaryKey:Q?.primaryKey??[]};for(let U of Object.values(W[S.Symbol.Columns]))if(U.primary)G[$].primaryKey.push(U);let J=W[S.Symbol.ExtraConfigBuilder]?.(W[S.Symbol.ExtraConfigColumns]);if(J){for(let U of Object.values(J))if(A(U,w8))G[$].primaryKey.push(...U.columns)}}else if(A(W,lW)){let H=g4(W.table),Q=X[H],J=W.config(Z(W.table)),U;for(let[E,V]of Object.entries(J))if(Q){let L=G[Q];if(L.relations[E]=V,U)L.primaryKey.push(...U)}else{if(!(H in _))_[H]={relations:{},primaryKey:U};_[H].relations[E]=V}}return{tables:G,tableNamesMap:X}}function jF(Y){return function Z(X,_){return new T4(Y,X,_,_?.fields.reduce((G,$)=>G&&$.notNull,!0)??!1)}}function SF(Y){return function Z(X,_){return new N8(Y,X,_)}}function nW(Y,Z,X){if(A(X,T4)&&X.config)return{fields:X.config.fields,references:X.config.references};let _=Z[g4(X.referencedTable)];if(!_)throw new Error(`Table "${X.referencedTable[S.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 "${$[S.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[S.Symbol.Name]}". Please specify relation name`);if(H[0]&&A(H[0],T4)&&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 sW(Y){return{one:jF(Y),many:SF(Y)}}function y6(Y,Z,X,_,G=($)=>$){let $={};for(let[W,H]of _.entries())if(H.isJson){let Q=Z.relations[H.tsKey],J=X[W],U=typeof J==="string"?JSON.parse(J):J;$[H.tsKey]=A(Q,T4)?U&&y6(Y,Y[H.relationTableTsKey],U,H.selection,G):U.map((E)=>y6(Y,Y[H.relationTableTsKey],E,H.selection,G))}else{let Q=G(X[W]),J=H.field,U;if(A(J,E0))U=J;else if(A(J,f))U=J.decoder;else U=J.sql.decoder;$[H.tsKey]=Q===null?null:U.mapFromDriverValue(Q)}return $}import YE from"os";import ZE from"fs";var g6=new Map,D5=new Map,L5=Symbol("OriginError"),w2={};class j1 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[L5]=this.handler.debug?new Error:this.tagged&&PF(this.strings)}get origin(){return(this.handler.debug?this[L5].stack:this.tagged&&D5.has(this.strings)?D5.get(this.strings):D5.set(this.strings,this[L5].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(w2),{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 PF(Y){if(g6.has(Y))return g6.get(Y);let Z=Error.stackTraceLimit;return Error.stackTraceLimit=4,g6.set(Y,new Error),Error.stackTraceLimit=Z,g6.get(Y)}class R2 extends Error{constructor(Y){super(Y.message);this.name=this.constructor.name,Object.assign(this,Y)}}var x0={connection:tW,postgres:aW,generic:eW,notSupported:Y3};function tW(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($,tW),$}function aW(Y){let Z=new R2(Y);return Error.captureStackTrace(Z,aW),Z}function eW(Y,Z){let X=Object.assign(new Error(Y+": "+Z),{code:Y});return Error.captureStackTrace(X,eW),X}function Y3(Y){let Z=Object.assign(new Error(Y+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:Y});return Error.captureStackTrace(Z,Y3),Z}var vF={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 u6{then(){M5()}catch(){M5()}finally(){M5()}}class B8 extends u6{constructor(Y){super();this.value=l6(Y)}}class r1 extends u6{constructor(Y,Z,X){super();this.value=Y,this.type=Z,this.array=X}}class d6 extends u6{constructor(Y,Z){super();this.first=Y,this.rest=Z}build(Y,Z,X,_){let G=xF.map(([$,W])=>({fn:W,i:Y.search($)})).sort(($,W)=>$.i-W.i).pop();return G.i===-1?I5(this.first,_):G.fn(this.first,this.rest,Z,X,_)}}function c6(Y,Z,X,_){let G=Y instanceof r1?Y.value:Y;if(G===void 0){if(Y instanceof r1?Y.value=_.transform.undefined:G=Y=_.transform.undefined,G===void 0)throw x0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+X.push(Y instanceof r1?(Z.push(Y.value),Y.array?Y.array[Y.type||m6(Y.value)]||Y.type||G3(Y.value):Y.type):(Z.push(Y),m6(Y)))}var X3=W3(vF);function R5(Y,Z,X,_,G,$){for(let W=1;W<Y.strings.length;W++)Z+=N5(Z,X,_,G,$)+Y.strings[W],X=Y.args[W];return Z}function N5(Y,Z,X,_,G){return Z instanceof d6?Z.build(Y,X,_,G):Z instanceof j1?w5(Z,X,_,G):Z instanceof B8?Z.value:Z&&Z[0]instanceof j1?Z.reduce(($,W)=>$+" "+w5(W,X,_,G),""):c6(Z,X,_,G)}function w5(Y,Z,X,_){return Y.fragment=!0,R5(Y,Y.strings[0],Y.args[0],Z,X,_)}function _3(Y,Z,X,_,G){return Y.map(($)=>"("+_.map((W)=>N5("values",$[W],Z,X,G)).join(",")+")").join(",")}function Z3(Y,Z,X,_,G){let $=Array.isArray(Y[0]),W=Z.length?Z.flat():Object.keys($?Y[0]:Y);return _3($?Y:[Y],X,_,W,G)}function p6(Y,Z,X,_,G){if(typeof Y==="string"&&(Y=[Y].concat(Z)),Array.isArray(Y))return I5(Y,G);let $;return(Z.length?Z.flat():Object.keys(Y)).map((H)=>{return $=Y[H],($ instanceof j1?w5($,X,_,G):$ instanceof B8?$.value:c6($,X,_,G))+" as "+l6(G.transform.column.to?G.transform.column.to(H):H)}).join(",")}var xF=Object.entries({values:Z3,in:(...Y)=>{let Z=Z3(...Y);return Z==="()"?"(null)":Z},select:p6,as:p6,returning:p6,"\\(":p6,update(Y,Z,X,_,G){return(Z.length?Z.flat():Object.keys(Y)).map(($)=>l6(G.transform.column.to?G.transform.column.to($):$)+"="+N5("values",Y[$],X,_,G))},insert(Y,Z,X,_,G){let $=Z.length?Z.flat():Object.keys(Array.isArray(Y)?Y[0]:Y);return"("+I5($,G)+")values"+_3(Array.isArray(Y)?Y:[Y],X,_,$,G)}}).map(([Y,Z])=>[new RegExp("((?:^|[\\s(])"+Y+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),Z]);function M5(){throw x0.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:fF,parsers:hF}=X3;function G3(Y){if(Array.isArray(Y))return G3(Y[0]);return typeof Y==="string"?1009:0}var $3=function(Y){let Z=W3(Y||{});return{serializers:Object.assign({},fF,Z.serializers),parsers:Object.assign({},hF,Z.parsers)}};function W3(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 I5(Y,{transform:{column:Z}}){return Y.map((X)=>l6(Z.to?Z.to(X):X)).join(",")}var l6=function Y(Z){return'"'+Z.replace(/"/g,'""').replace(/\./g,'"."')+'"'},m6=function Y(Z){return Z instanceof r1?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},kF=/\\/g,bF=/"/g;function yF(Y){return Y.replace(kF,"\\\\").replace(bF,"\\\"")}var H3=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 x0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return H===null?"null":'"'+yF(X?X(H.type?H.value:H):""+H)+'"'}).join(W)+"}"},A5={i:0,char:null,str:"",quoted:!1,last:0},J3=function Y(Z,X,_){return A5.i=A5.last=0,Q3(A5,Z,X,_)};function Q3(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(Q3(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,"-"),I8=(Y)=>Y.replace(/([A-Z])/g,"_$1").toLowerCase(),T8=(Y)=>(Y.slice(0,1)+Y.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),K8=(Y)=>Y.replace(/-/g,"_");function T5(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:T5(p4)};I8.column={to:I8};var K5={...p4};K5.column.to=I8;m4.column={from:m4};m4.value={from:T5(m4)};T8.column={to:T8};var B5={...m4};B5.column.to=T8;u4.column={from:u4};u4.value={from:T5(u4)};K8.column={to:K8};var C5={...u4};C5.column.to=K8;import U3 from"net";import uF from"tls";import C8 from"crypto";import q5 from"stream";import{performance as z3}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=gF;function gF(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 e0=Buffer.allocUnsafe(256),pF="BCcDdEFfHPpQSX".split("").reduce((Y,Z)=>{let X=Z.charCodeAt(0);return Y[Z]=()=>{return e0[0]=X,U0.i=5,U0},Y},{}),U0=Object.assign(mF,pF,{N:String.fromCharCode(0),i:0,inc(Y){return U0.i+=Y,U0},str(Y){let Z=Buffer.byteLength(Y);return o6(Z),U0.i+=e0.write(Y,U0.i,Z,"utf8"),U0},i16(Y){return o6(2),e0.writeUInt16BE(Y,U0.i),U0.i+=2,U0},i32(Y,Z){if(Z||Z===0)return e0.writeUInt32BE(Y,Z),U0;return o6(4),e0.writeUInt32BE(Y,U0.i),U0.i+=4,U0},z(Y){return o6(Y),e0.fill(0,U0.i,U0.i+Y),U0.i+=Y,U0},raw(Y){return e0=Buffer.concat([e0.subarray(0,U0.i),Y]),U0.i=e0.length,U0},end(Y=1){e0.writeUInt32BE(U0.i-Y,Y);let Z=e0.subarray(0,U0.i);return U0.i=0,e0=Buffer.allocUnsafe(256),Z}}),c=U0;function o6(Y){if(e0.length-U0.i<Y){let Z=e0,X=Z.length;e0=Buffer.allocUnsafe(X+(X>>1)+Y),Z.copy(e0)}}function mF(){return U0.i=0,U0}var P5=O3,dF=1,K4=c().S().end(),F3=c().H().end(),cF=c().i32(8).i32(80877103).end(8),lF=Buffer.concat([c().E().str(c.N).i32(0).end(),K4]),oF=c().D().str("S").str(c.N).end(),N2=()=>{},iF=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),rF={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 O3(Y,Z={},{onopen:X=N2,onend:_=N2,onclose:G=N2}={}){let{ssl:$,max:W,user:H,host:Q,port:J,database:U,parsers:E,transform:V,onnotice:L,onnotify:w,onparameter:M,max_pipeline:k,keep_alive:h,backoff:x,target_session_attrs:m}=Y,K=R1(),I=dF++,q={pid:null,secret:null},C=S5(WY,Y.idle_timeout),g=S5(WY,Y.max_lifetime),n=S5(b3,Y.connect_timeout),T=null,t,p=new d4,a=Buffer.alloc(0),z0=Y.fetch_types,f0={},H1={},n1=Math.random().toString(36).slice(2),B=1,u=0,G0=0,K0=0,h0=0,s=0,J0=0,P0=0,B0=null,w0=null,i0=!1,V0=null,S1=null,c0=null,U4=null,k0=null,R0=null,P1=null,p1=null,v=null,B2=null,r0={queue:Z.closed,idleTimer:C,connect(z){c0=z,GX()},terminate:q2,execute:C2,cancel:x3,end:WY,count:0,id:I};return Z.closed&&Z.closed.push(r0),r0;async function v3(){let z;try{z=Y.socket?await Promise.resolve(Y.socket(Y)):new U3.Socket}catch(D){i4(D);return}return z.on("error",i4),z.on("close",$X),z.on("drain",XX),z}async function x3({pid:z,secret:D},l,$0){try{t=c().i32(16).i32(80877102).i32(z).i32(D).end(16),await _X(),T.once("error",$0),T.once("close",l)}catch(q0){$0(q0)}}function C2(z){if(i0)return h8(z,x0.connection("CONNECTION_DESTROYED",Y));if(z.cancelled)return;try{return z.state=q,v?K.push(z):(v=z,v.active=!0),k3(z),l0(f3(z))&&!z.describeFirst&&!z.cursorFn&&K.length<k&&(!z.options.onexecute||z.options.onexecute(r0))}catch(D){return K.length===0&&l0(K4),m1(D),!0}}function f3(z){if(z.parameters.length>=65534)throw x0.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return z.options.simple?c().Q().str(z.statement.string+c.N).end():z.describeFirst?Buffer.concat([e5(z),F3]):z.prepare?z.prepared?f8(z):Buffer.concat([e5(z),f8(z)]):h3(z)}function e5(z){return Buffer.concat([HX(z.statement.string,z.parameters,z.statement.types,z.statement.name),RH("S",z.statement.name)])}function f8(z){return Buffer.concat([wH(z.parameters,z.statement.types,z.statement.name,z.cursorName),z.cursorFn?JX("",z.cursorRows):lF])}function h3(z){return Buffer.concat([HX(z.statement.string,z.parameters,z.statement.types),oF,f8(z)])}function k3(z){let D=[],l=[],$0=R5(z,z.strings[0],z.args[0],D,l,Y);!z.tagged&&z.args.forEach((q0)=>c6(q0,D,l,Y)),z.prepare=Y.prepare&&("prepare"in z.options?z.options.prepare:!0),z.string=$0,z.signature=z.prepare&&l+$0,z.onlyDescribe&&delete H1[z.signature],z.parameters=z.parameters||D,z.prepared=z.prepare&&z.signature in H1,z.describeFirst=z.onlyDescribe||D.length&&!z.prepared,z.statement=z.prepared?H1[z.signature]:{string:$0,types:l,name:z.prepare?n1+B++:""},typeof Y.debug==="function"&&Y.debug(I,$0,D,l)}function l0(z,D){if(R0=R0?Buffer.concat([R0,z]):Buffer.from(z),D||R0.length>=1024)return YX(D);return w0===null&&(w0=setImmediate(YX)),!0}function YX(z){let D=T.write(R0,z);return w0!==null&&clearImmediate(w0),R0=w0=null,D}function b3(){m1(x0.connection("CONNECT_TIMEOUT",Y,T)),T.destroy()}async function ZX(){if(l0(cF),!await new Promise((D)=>T.once("data",(l)=>D(l[0]===83)))&&$==="prefer")return o4();T.removeAllListeners(),T=uF.connect({socket:T,servername:U3.isIP(T.host)?void 0:T.host,...$==="require"||$==="allow"||$==="prefer"?{rejectUnauthorized:!1}:$==="verify-full"?{}:typeof $==="object"?$:{}}),T.on("secureConnect",o4),T.on("error",i4),T.on("close",$X),T.on("drain",XX)}function XX(){!v&&X(r0)}function $Y(z){if(V0){if(V0.push(z),G0-=z.length,G0>0)return}a=V0?Buffer.concat(V0,s-G0):a.length===0?z:Buffer.concat([a,z],a.length+z.length);while(a.length>4){if(s=a.readUInt32BE(1),s>=a.length){G0=s-a.length,V0=[a];break}try{y3(a.subarray(0,s+1))}catch(D){v&&(v.cursorFn||v.describeFirst)&&l0(K4),m1(D)}a=a.subarray(s+1),G0=0,V0=null}}async function _X(){if(i0=!1,f0={},T||(T=await v3()),!T)return;if(n.start(),Y.socket)return $?ZX():o4();if(T.on("connect",$?ZX:o4),Y.path)return T.connect(Y.path);T.ssl=$,T.connect(J[K0],Q[K0]),T.host=Q[K0],T.port=J[K0],K0=(K0+1)%J.length}function GX(){setTimeout(_X,u?u+J0-z3.now():0)}function o4(){try{H1={},z0=Y.fetch_types,n1=Math.random().toString(36).slice(2),B=1,g.start(),T.on("data",$Y),h&&T.setKeepAlive&&T.setKeepAlive(!0,1000*h);let z=IH();l0(z)}catch(z){i4(z)}}function i4(z){if(r0.queue===Z.connecting&&Y.host[h0+1])return;m1(z);while(K.length)h8(K.shift(),z)}function m1(z){k0&&(k0.destroy(z),k0=null),v&&h8(v,z),c0&&(h8(c0,z),c0=null)}function h8(z,D){if(z.reserve)return z.reject(D);if(!D||typeof D!=="object")D=new Error(D);"query"in D||"parameters"in D||Object.defineProperties(D,{stack:{value:D.stack+z.origin.replace(/.*\n/,`
62
+ `),enumerable:Y.debug},query:{value:z.string,enumerable:Y.debug},parameters:{value:z.parameters,enumerable:Y.debug},args:{value:z.args,enumerable:Y.debug},types:{value:z.statement&&z.statement.types,enumerable:Y.debug}}),z.reject(D)}function WY(){return U4||(!r0.reserved&&_(r0),!r0.reserved&&!c0&&!v&&K.length===0?(q2(),new Promise((z)=>T&&T.readyState!=="closed"?T.once("close",z):z())):U4=new Promise((z)=>P1=z))}function q2(){if(i0=!0,k0||v||c0||K.length)i4(x0.connection("CONNECTION_DESTROYED",Y));if(clearImmediate(w0),T)T.removeListener("data",$Y),T.removeListener("connect",o4),T.readyState==="open"&&T.end(c().X().end());P1&&(P1(),U4=P1=null)}async function $X(z){if(a=Buffer.alloc(0),G0=0,V0=null,clearImmediate(w0),T.removeListener("data",$Y),T.removeListener("connect",o4),C.cancel(),g.cancel(),n.cancel(),T.removeAllListeners(),T=null,c0)return GX();!z&&(v||K.length)&&i4(x0.connection("CONNECTION_CLOSED",Y,T)),u=z3.now(),z&&Y.shared.retries++,J0=(typeof x==="function"?x(Y.shared.retries):x)*1000,G(r0,x0.connection("CONNECTION_CLOSED",Y,T))}function y3(z,D=z[0]){(D===68?g3:D===100?FH:D===65?WH:D===83?p3:D===90?m3:D===67?u3:D===50?WX:D===49?d3:D===116?c3:D===84?l3:D===82?o3:D===110?a3:D===75?e3:D===69?GH:D===115?HH:D===51?JH:D===71?QH:D===78?OH:D===72?UH:D===99?EH:D===73?VH:D===86?DH:D===118?LH:D===87?zH:MH)(z)}function g3(z){let D=7,l,$0,q0,n0=v.isRaw?new Array(v.statement.columns.length):{};for(let Y1=0;Y1<v.statement.columns.length;Y1++)$0=v.statement.columns[Y1],l=z.readInt32BE(D),D+=4,q0=l===-1?null:v.isRaw===!0?z.subarray(D,D+=l):$0.parser===void 0?z.toString("utf8",D,D+=l):$0.parser.array===!0?$0.parser(z.toString("utf8",D+1,D+=l)):$0.parser(z.toString("utf8",D,D+=l)),v.isRaw?n0[Y1]=v.isRaw===!0?q0:V.value.from?V.value.from(q0,$0):q0:n0[$0.name]=V.value.from?V.value.from(q0,$0):q0;v.forEachFn?v.forEachFn(V.row.from?V.row.from(n0):n0,p):p[P0++]=V.row.from?V.row.from(n0):n0}function p3(z){let[D,l]=z.toString("utf8",5,z.length-1).split(c.N);if(f0[D]=l,Y.parameters[D]!==l)Y.parameters[D]=l,M&&M(D,l)}function m3(z){if(v&&v.options.simple&&v.resolve(S1||p),v=S1=null,p=new d4,n.cancel(),c0){if(m){if(!f0.in_hot_standby||!f0.default_transaction_read_only)return _H();else if(XH(m,f0))return q2()}if(z0)return c0.reserve&&(c0=null),YH();c0&&!c0.reserve&&C2(c0),Y.shared.retries=h0=0,c0=null;return}while(K.length&&(v=K.shift())&&(v.active=!0,v.cancelled))O3(Y).cancel(v.state,v.cancelled.resolve,v.cancelled.reject);if(v)return;r0.reserved?!r0.reserved.release&&z[5]===73?U4?q2():(r0.reserved=null,X(r0)):r0.reserved():U4?q2():X(r0)}function u3(z){P0=0;for(let D=z.length-1;D>0;D--){if(z[D]===32&&z[D+1]<58&&p.count===null)p.count=+z.toString("utf8",D+1,z.length-1);if(z[D-1]>=65){p.command=z.toString("utf8",5,D),p.state=q;break}}if(B2&&(B2(),B2=null),p.command==="BEGIN"&&W!==1&&!r0.reserved)return m1(x0.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(v.options.simple)return WX();if(v.cursorFn)p.count&&v.cursorFn(p),l0(K4);v.resolve(p)}function d3(){v.parsing=!1}function WX(){!p.statement&&(p.statement=v.statement),p.columns=v.statement.columns}function c3(z){let D=z.readUInt16BE(5);for(let l=0;l<D;++l)!v.statement.types[l]&&(v.statement.types[l]=z.readUInt32BE(7+l*4));v.prepare&&(H1[v.signature]=v.statement),v.describeFirst&&!v.onlyDescribe&&(l0(f8(v)),v.describeFirst=!1)}function l3(z){if(p.command)S1=S1||[p],S1.push(p=new d4),p.count=null,v.statement.columns=null;let D=z.readUInt16BE(5),l=7,$0;v.statement.columns=Array(D);for(let q0=0;q0<D;++q0){$0=l;while(z[l++]!==0);let n0=z.readUInt32BE(l),Y1=z.readUInt16BE(l+4),z4=z.readUInt32BE(l+6);v.statement.columns[q0]={name:V.column.from?V.column.from(z.toString("utf8",$0,l-1)):z.toString("utf8",$0,l-1),parser:E[z4],table:n0,number:Y1,type:z4},l+=18}if(p.statement=v.statement,v.onlyDescribe)return v.resolve(v.statement),l0(K4)}async function o3(z,D=z.readUInt32BE(5)){(D===3?i3:D===5?r3:D===10?n3:D===11?s3:D===12?t3:D!==0?AH:N2)(z,D)}async function i3(){let z=await HY();l0(c().p().str(z).z(1).end())}async function r3(z){let D="md5"+await E3(Buffer.concat([Buffer.from(await E3(await HY()+H)),z.subarray(9)]));l0(c().p().str(D).z(1).end())}async function n3(){p1=(await C8.randomBytes(18)).toString("base64"),c().p().str("SCRAM-SHA-256"+c.N);let z=c.i;l0(c.inc(4).str("n,,n=*,r="+p1).i32(c.i-z-4,z).end())}async function s3(z){let D=z.toString("utf8",9).split(",").reduce((Y1,z4)=>(Y1[z4[0]]=z4.slice(2),Y1),{}),l=await C8.pbkdf2Sync(await HY(),Buffer.from(D.s,"base64"),parseInt(D.i),32,"sha256"),$0=await i6(l,"Client Key"),q0="n=*,r="+p1+",r="+D.r+",s="+D.s+",i="+D.i+",c=biws,r="+D.r;B0=(await i6(await i6(l,"Server Key"),q0)).toString("base64");let n0="c=biws,r="+D.r+",p="+sF($0,Buffer.from(await i6(await nF($0),q0))).toString("base64");l0(c().p().str(n0).end())}function t3(z){if(z.toString("utf8",9).split(c.N,1)[0].slice(2)===B0)return;m1(x0.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),T.destroy()}function HY(){return Promise.resolve(typeof Y.pass==="function"?Y.pass():Y.pass)}function a3(){if(p.statement=v.statement,p.statement.columns=[],v.onlyDescribe)return v.resolve(v.statement),l0(K4)}function e3(z){q.pid=z.readUInt32BE(5),q.secret=z.readUInt32BE(9)}async function YH(){z0=!1,(await new j1([`
63
63
  select b.oid, b.typarray
64
64
  from pg_catalog.pg_type a
65
65
  left join pg_catalog.pg_type b on b.oid = a.typelem
66
66
  where a.typcategory = 'A'
67
67
  group by b.oid, b.typarray
68
68
  order by b.oid
69
- `],[],C2)).forEach(({oid:D,typarray:l})=>t3(D,l))}function t3(z,D){if(!!Y.parsers[D]&&!!Y.serializers[D])return;let l=Y.parsers[z];Y.shared.typeArrayMap[z]=D,Y.parsers[D]=($0)=>G3($0,l,D),Y.parsers[D].array=!0,Y.serializers[D]=($0)=>_3($0,Y.serializers[z],Y,D)}function a3(z,D){return z==="read-write"&&D.default_transaction_read_only==="on"||z==="read-only"&&D.default_transaction_read_only==="off"||z==="primary"&&D.in_hot_standby==="on"||z==="standby"&&D.in_hot_standby==="off"||z==="prefer-standby"&&D.in_hot_standby==="off"&&Y.host[h0]}function e3(){let z=new j1([`
69
+ `],[],C2)).forEach(({oid:D,typarray:l})=>ZH(D,l))}function ZH(z,D){if(!!Y.parsers[D]&&!!Y.serializers[D])return;let l=Y.parsers[z];Y.shared.typeArrayMap[z]=D,Y.parsers[D]=($0)=>J3($0,l,D),Y.parsers[D].array=!0,Y.serializers[D]=($0)=>H3($0,Y.serializers[z],Y,D)}function XH(z,D){return z==="read-write"&&D.default_transaction_read_only==="on"||z==="read-only"&&D.default_transaction_read_only==="off"||z==="primary"&&D.in_hot_standby==="on"||z==="standby"&&D.in_hot_standby==="off"||z==="prefer-standby"&&D.in_hot_standby==="off"&&Y.host[h0]}function _H(){let z=new j1([`
70
70
  show transaction_read_only;
71
71
  select pg_catalog.pg_is_in_recovery()
72
- `],[],C2,null,{simple:!0});z.resolve=([[D],[l]])=>{f0.default_transaction_read_only=D.transaction_read_only,f0.in_hot_standby=l.pg_is_in_recovery?"on":"off"},z.execute()}function YH(z){v&&(v.cursorFn||v.describeFirst)&&l0(B4);let D=x0.postgres(B5(z));v&&v.retried?p1(v.retried):v&&v.prepared&&cF.has(D.routine)?ZH(v,D):p1(D)}function ZH(z,D){delete H1[z.signature],z.retried=D,C2(z)}function XH(z){if(!R)return;let D=9;while(z[D++]!==0);R(z.toString("utf8",9,D-1),z.toString("utf8",D,z.length-1))}async function _H(){try{let z=await Promise.resolve(v.cursorFn(m));P0=0,z===w2?l0(MH(v.portal)):(m=new d4,l0($X("",v.cursorRows)))}catch(z){l0(B4),v.reject(z)}}function GH(){m.count&&v.cursorFn(m),v.resolve(m)}function $H(){k0=new K5.Writable({autoDestroy:!0,write(z,D,l){K.write(c().d().raw(z).end(),l)},destroy(z,D){D(z),K.write(c().f().str(z+c.N).end()),k0=null},final(z){K.write(c().c().end()),B2=z}}),v.resolve(k0)}function WH(){k0=new K5.Readable({read(){K.resume()}}),v.resolve(k0)}function HH(){k0=new K5.Duplex({autoDestroy:!0,read(){K.resume()},write(z,D,l){K.write(c().d().raw(z).end(),l)},destroy(z,D){D(z),K.write(c().f().str(z+c.N).end()),k0=null},final(z){K.write(c().c().end()),B2=z}}),v.resolve(k0)}function JH(z){k0&&(k0.push(z.subarray(5))||K.pause())}function QH(){k0&&k0.push(null),k0=null}function UH(z){L?L(B5(z)):console.log(B5(z))}function zH(){}function FH(){p1(x0.notSupported("FunctionCallResponse"))}function EH(){p1(x0.notSupported("NegotiateProtocolVersion"))}function OH(z){console.error("Postgres.js : Unknown Message:",z[0])}function VH(z,D){console.error("Postgres.js : Unknown Auth:",D)}function DH(z,D,l="",$0=""){let q0,n0;return c().B().str($0+c.N).str(l+c.N).i16(0).i16(z.length),z.forEach((Y1,z4)=>{if(Y1===null)return c.i32(4294967295);n0=D[z4],z[z4]=Y1=n0 in Y.serializers?Y.serializers[n0](Y1):""+Y1,q0=c.i,c.inc(4).str(Y1).i32(c.i-q0-4,q0)}),c.i16(0),c.end()}function GX(z,D,l,$0=""){return c().P().str($0+c.N).str(z+c.N).i16(D.length),D.forEach((q0,n0)=>c.i32(l[n0]||0)),c.end()}function LH(z,D=""){return c().D().str(z).str(D+c.N).end()}function $X(z="",D=0){return Buffer.concat([c().E().str(z+c.N).i32(D).end(),J3])}function MH(z=""){return Buffer.concat([c().C().str("P").str(z+c.N).end(),c().S().end()])}function AH(){return a||c().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:H,database:U,client_encoding:"UTF8"},Y.connection)).filter(([,z])=>z).map(([z,D])=>z+c.N+D).join(c.N)).z(2).end(0)}}function B5(Y){let Z={},X=5;for(let _=5;_<Y.length-1;_++)if(Y[_]===0)Z[lF[Y[X]]]=Y.toString("utf8",X+1,_),X=_+1;return Z}function Q3(Y){return q8.createHash("md5").update(Y).digest("hex")}function i6(Y,Z){return q8.createHmac("sha256",Y).update(Z).digest()}function oF(Y){return q8.createHash("sha256").update(Y).digest()}function iF(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 C5(Y,Z){if(Z=typeof Z==="function"?Z():Z,!Z)return{cancel:N2,start:N2};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 z3=()=>{};function j5(Y,Z){let X=new Map,_="postgresjs_"+Math.random().toString(36).slice(2),G={},$,W,H=!1,Q=E.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,V(await L(Q,_,Z.publications)),X.forEach((M)=>M.forEach(({onsubscribe:y})=>y()))},no_subscribe:!0}),J=Q.end,U=Q.close;return Q.end=async()=>{return H=!0,W&&await new Promise((M)=>(W.once("close",M),W.end())),J()},Q.close=async()=>{return W&&await new Promise((M)=>(W.once("close",M),W.end())),U()},E;async function E(M,y,k=z3,h=z3){if(M=sF(M),!$)$=L(Q,_,Z.publications);let f={fn:y,onsubscribe:k},I=X.has(M)?X.get(M).add(f):X.set(M,new Set([f])).get(M),N=()=>{I.delete(f),I.size===0&&X.delete(M)};return $.then((q)=>{return V(q),k(),W&&W.on("error",h),{unsubscribe:N,state:G,sql:Q}})}function V(M){W=M.stream,G.pid=M.state.pid,G.secret=M.state.secret}async function L(M,y,k){if(!k)throw new Error("Missing publication names");let h=await M.unsafe(`CREATE_REPLICATION_SLOT ${y} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[f]=h,I=await M.unsafe(`START_REPLICATION SLOT ${y} LOGICAL ${f.consistent_point} (proto_version '1', publication_names '${k}')`).writable(),N={lsn:Buffer.concat(f.consistent_point.split("/").map((K)=>Buffer.from(("00000000"+K).slice(-8),"hex")))};return I.on("data",C),I.on("error",q),I.on("close",M.close),{stream:I,state:h.state};function q(K){console.error("Unexpected error during logical streaming - reconnecting",K)}function C(K){if(K[0]===119)nF(K.subarray(25),N,M.options.parsers,p,Z.transform);else if(K[0]===107&&K[17])N.lsn=K.subarray(1,9),s()}function p(K,a){let m=a.relation.schema+"."+a.relation.table;R("*",K,a),R("*:"+m,K,a),a.relation.keys.length&&R("*:"+m+"="+a.relation.keys.map((e)=>K[e.name]),K,a),R(a.command,K,a),R(a.command+":"+m,K,a),a.relation.keys.length&&R(a.command+":"+m+"="+a.relation.keys.map((e)=>K[e.name]),K,a)}function s(){let K=Buffer.alloc(34);K[0]=114,K.fill(N.lsn,1),K.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),I.write(K)}}function R(M,y,k){X.has(M)&&X.get(M).forEach(({fn:h})=>h(y,k,M))}}function rF(Y){return new Date(Date.UTC(2000,0,1)+Number(Y/BigInt(1000)))}function nF(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,U;while(H<W.length)U=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)},U.key&&Q.keys.push(U),H+=4},Y:()=>{},O:()=>{},B:(W)=>{Z.date=rF(W.readBigInt64BE(9)),Z.lsn=W.subarray(1,9)},I:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)],{row:J}=r6(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?r6(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,U=J||W[H]===79?r6(W,Q.columns,H+=3,G):null;U&&(H=U.i);let{row:E}=r6(W,Q.columns,H+3,G);_(E,{command:"update",relation:Q,key:J,old:U&&U.row})},T:()=>{},C:()=>{}}).reduce($,{})[Y[0]](Y)}function r6(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 sF(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 F3 from"stream";function S5(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:U,readable:J,close:()=>$`select lo_close(${H})`.then(W),tell:()=>$`select lo_tell64(${H})`,read:(E)=>$`select loread(${H}, ${E}) as data`,write:(E)=>$`select lowrite(${H}, ${E})`,truncate:(E)=>$`select lo_truncate64(${H}, ${E})`,seek:(E,V=0)=>$`select lo_lseek64(${H}, ${E}, ${V})`,size:()=>$`
72
+ `],[],C2,null,{simple:!0});z.resolve=([[D],[l]])=>{f0.default_transaction_read_only=D.transaction_read_only,f0.in_hot_standby=l.pg_is_in_recovery?"on":"off"},z.execute()}function GH(z){v&&(v.cursorFn||v.describeFirst)&&l0(K4);let D=x0.postgres(j5(z));v&&v.retried?m1(v.retried):v&&v.prepared&&iF.has(D.routine)?$H(v,D):m1(D)}function $H(z,D){delete H1[z.signature],z.retried=D,C2(z)}function WH(z){if(!w)return;let D=9;while(z[D++]!==0);w(z.toString("utf8",9,D-1),z.toString("utf8",D,z.length-1))}async function HH(){try{let z=await Promise.resolve(v.cursorFn(p));P0=0,z===w2?l0(NH(v.portal)):(p=new d4,l0(JX("",v.cursorRows)))}catch(z){l0(K4),v.reject(z)}}function JH(){p.count&&v.cursorFn(p),v.resolve(p)}function QH(){k0=new q5.Writable({autoDestroy:!0,write(z,D,l){T.write(c().d().raw(z).end(),l)},destroy(z,D){D(z),T.write(c().f().str(z+c.N).end()),k0=null},final(z){T.write(c().c().end()),B2=z}}),v.resolve(k0)}function UH(){k0=new q5.Readable({read(){T.resume()}}),v.resolve(k0)}function zH(){k0=new q5.Duplex({autoDestroy:!0,read(){T.resume()},write(z,D,l){T.write(c().d().raw(z).end(),l)},destroy(z,D){D(z),T.write(c().f().str(z+c.N).end()),k0=null},final(z){T.write(c().c().end()),B2=z}}),v.resolve(k0)}function FH(z){k0&&(k0.push(z.subarray(5))||T.pause())}function EH(){k0&&k0.push(null),k0=null}function OH(z){L?L(j5(z)):console.log(j5(z))}function VH(){}function DH(){m1(x0.notSupported("FunctionCallResponse"))}function LH(){m1(x0.notSupported("NegotiateProtocolVersion"))}function MH(z){console.error("Postgres.js : Unknown Message:",z[0])}function AH(z,D){console.error("Postgres.js : Unknown Auth:",D)}function wH(z,D,l="",$0=""){let q0,n0;return c().B().str($0+c.N).str(l+c.N).i16(0).i16(z.length),z.forEach((Y1,z4)=>{if(Y1===null)return c.i32(4294967295);n0=D[z4],z[z4]=Y1=n0 in Y.serializers?Y.serializers[n0](Y1):""+Y1,q0=c.i,c.inc(4).str(Y1).i32(c.i-q0-4,q0)}),c.i16(0),c.end()}function HX(z,D,l,$0=""){return c().P().str($0+c.N).str(z+c.N).i16(D.length),D.forEach((q0,n0)=>c.i32(l[n0]||0)),c.end()}function RH(z,D=""){return c().D().str(z).str(D+c.N).end()}function JX(z="",D=0){return Buffer.concat([c().E().str(z+c.N).i32(D).end(),F3])}function NH(z=""){return Buffer.concat([c().C().str("P").str(z+c.N).end(),c().S().end()])}function IH(){return t||c().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:H,database:U,client_encoding:"UTF8"},Y.connection)).filter(([,z])=>z).map(([z,D])=>z+c.N+D).join(c.N)).z(2).end(0)}}function j5(Y){let Z={},X=5;for(let _=5;_<Y.length-1;_++)if(Y[_]===0)Z[rF[Y[X]]]=Y.toString("utf8",X+1,_),X=_+1;return Z}function E3(Y){return C8.createHash("md5").update(Y).digest("hex")}function i6(Y,Z){return C8.createHmac("sha256",Y).update(Z).digest()}function nF(Y){return C8.createHash("sha256").update(Y).digest()}function sF(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 S5(Y,Z){if(Z=typeof Z==="function"?Z():Z,!Z)return{cancel:N2,start:N2};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 V3=()=>{};function v5(Y,Z){let X=new Map,_="postgresjs_"+Math.random().toString(36).slice(2),G={},$,W,H=!1,Q=E.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,V(await L(Q,_,Z.publications)),X.forEach((M)=>M.forEach(({onsubscribe:k})=>k()))},no_subscribe:!0}),J=Q.end,U=Q.close;return Q.end=async()=>{return H=!0,W&&await new Promise((M)=>(W.once("close",M),W.end())),J()},Q.close=async()=>{return W&&await new Promise((M)=>(W.once("close",M),W.end())),U()},E;async function E(M,k,h=V3,x=V3){if(M=eF(M),!$)$=L(Q,_,Z.publications);let m={fn:k,onsubscribe:h},K=X.has(M)?X.get(M).add(m):X.set(M,new Set([m])).get(M),I=()=>{K.delete(m),K.size===0&&X.delete(M)};return $.then((q)=>{return V(q),h(),W&&W.on("error",x),{unsubscribe:I,state:G,sql:Q}})}function V(M){W=M.stream,G.pid=M.state.pid,G.secret=M.state.secret}async function L(M,k,h){if(!h)throw new Error("Missing publication names");let x=await M.unsafe(`CREATE_REPLICATION_SLOT ${k} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[m]=x,K=await M.unsafe(`START_REPLICATION SLOT ${k} LOGICAL ${m.consistent_point} (proto_version '1', publication_names '${h}')`).writable(),I={lsn:Buffer.concat(m.consistent_point.split("/").map((T)=>Buffer.from(("00000000"+T).slice(-8),"hex")))};return K.on("data",C),K.on("error",q),K.on("close",M.close),{stream:K,state:x.state};function q(T){console.error("Unexpected error during logical streaming - reconnecting",T)}function C(T){if(T[0]===119)aF(T.subarray(25),I,M.options.parsers,g,Z.transform);else if(T[0]===107&&T[17])I.lsn=T.subarray(1,9),n()}function g(T,t){let p=t.relation.schema+"."+t.relation.table;w("*",T,t),w("*:"+p,T,t),t.relation.keys.length&&w("*:"+p+"="+t.relation.keys.map((a)=>T[a.name]),T,t),w(t.command,T,t),w(t.command+":"+p,T,t),t.relation.keys.length&&w(t.command+":"+p+"="+t.relation.keys.map((a)=>T[a.name]),T,t)}function n(){let T=Buffer.alloc(34);T[0]=114,T.fill(I.lsn,1),T.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),K.write(T)}}function w(M,k,h){X.has(M)&&X.get(M).forEach(({fn:x})=>x(k,h,M))}}function tF(Y){return new Date(Date.UTC(2000,0,1)+Number(Y/BigInt(1000)))}function aF(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,U;while(H<W.length)U=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)},U.key&&Q.keys.push(U),H+=4},Y:()=>{},O:()=>{},B:(W)=>{Z.date=tF(W.readBigInt64BE(9)),Z.lsn=W.subarray(1,9)},I:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)],{row:J}=r6(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?r6(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,U=J||W[H]===79?r6(W,Q.columns,H+=3,G):null;U&&(H=U.i);let{row:E}=r6(W,Q.columns,H+3,G);_(E,{command:"update",relation:Q,key:J,old:U&&U.row})},T:()=>{},C:()=>{}}).reduce($,{})[Y[0]](Y)}function r6(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 eF(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 D3 from"stream";function x5(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:U,readable:J,close:()=>$`select lo_close(${H})`.then(W),tell:()=>$`select lo_tell64(${H})`,read:(E)=>$`select loread(${H}, ${E}) as data`,write:(E)=>$`select lowrite(${H}, ${E})`,truncate:(E)=>$`select lo_truncate64(${H}, ${E})`,seek:(E,V=0)=>$`select lo_lseek64(${H}, ${E}, ${V})`,size:()=>$`
73
73
  select
74
74
  lo_lseek64(${H}, location, 0) as position,
75
75
  seek.size
@@ -79,10 +79,10 @@ params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrac
79
79
  tell.location
80
80
  from (select lo_tell64($1) as location) tell
81
81
  ) seek
82
- `};return _(Q),new Promise(async(E)=>W=E);async function J({highWaterMark:E=16384,start:V=0,end:L=1/0}={}){let R=L-V;return V&&await Q.seek(V),new F3.Readable({highWaterMark:E,async read(M){let y=M>R?M-R:M;R-=M;let[{data:k}]=await Q.read(y);if(this.push(k),k.length<M)this.push(null)}})}async function U({highWaterMark:E=16384,start:V=0}={}){return V&&await Q.seek(V),new F3.Writable({highWaterMark:E,write(L,R,M){Q.write(L).then(()=>M(),M)}})}}).catch(G)})}Object.assign(n6,{PostgresError:R2,toPascal:m4,pascal:I5,toCamel:p4,camel:N5,toKebab:u4,kebab:T5,fromPascal:K8,fromCamel:T8,fromKebab:B8,BigInt:{to:20,from:[20],parse:(Y)=>BigInt(Y),serialize:(Y)=>Y.toString()}});var I2=n6;function n6(Y,Z){let X=eF(Y,Z),_=X.no_subscribe||j5(n6,{...X}),G=!1,$=N1(),W=N1(),H=N1(),Q=N1(),J=N1(),U=N1(),E=N1(),V=N1(),L={connecting:W,reserved:H,closed:Q,ended:J,open:U,busy:E,full:V},R=[...Array(X.max)].map(()=>q5(X,L,{onopen:H1,onend:f0,onclose:n1})),M=y(p);return Object.assign(M,{get parameters(){return X.parameters},largeObject:S5.bind(null,M),subscribe:_,CLOSE:w2,END:w2,PostgresError:R2,options:X,reserve:f,listen:k,begin:I,close:m,end:a}),M;function y(B){return B.debug=X.debug,Object.entries(X.types).reduce((t,[J0,P0])=>{return t[J0]=(B0)=>new r1(B0,P0.to),t},u),Object.assign(G0,{types:u,typed:u,unsafe:K0,notify:h,array:C,json:q,file:h0}),G0;function u(t,J0){return new r1(t,J0)}function G0(t,...J0){return t&&Array.isArray(t.raw)?new j1(t,J0,B,K):typeof t==="string"&&!J0.length?new C8(X.transform.column.to?X.transform.column.to(t):t):new d6(t,J0)}function K0(t,J0=[],P0={}){return arguments.length===2&&!Array.isArray(J0)&&(P0=J0,J0=[]),new j1([t],J0,B,K,{prepare:!1,...P0,simple:"simple"in P0?P0.simple:J0.length===0})}function h0(t,J0=[],P0={}){return arguments.length===2&&!Array.isArray(J0)&&(P0=J0,J0=[]),new j1([],J0,(w0)=>{aF.readFile(t,"utf8",(i0,D0)=>{if(i0)return w0.reject(i0);w0.strings=[D0],B(w0)})},K,{...P0,simple:"simple"in P0?P0.simple:J0.length===0})}}async function k(B,u,G0){let K0={fn:u,onlisten:G0},h0=k.sql||(k.sql=n6({...X,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(k.channels).forEach(([w0,{listeners:i0}])=>{delete k.channels[w0],Promise.all(i0.map((D0)=>k(w0,D0.fn,D0.onlisten).catch(()=>{})))})},onnotify(w0,i0){w0 in k.channels&&k.channels[w0].listeners.forEach((D0)=>D0.fn(i0))}})),t=k.channels||(k.channels={});if(B in t){t[B].listeners.push(K0);let w0=await t[B].result;return K0.onlisten&&K0.onlisten(),{state:w0.state,unlisten:B0}}t[B]={result:h0`listen ${h0.unsafe('"'+B.replace(/"/g,'""')+'"')}`,listeners:[K0]};let P0=await t[B].result;return K0.onlisten&&K0.onlisten(),{state:P0.state,unlisten:B0};async function B0(){if(B in t===!1)return;if(t[B].listeners=t[B].listeners.filter((w0)=>w0!==K0),t[B].listeners.length)return;return delete t[B],h0`unlisten ${h0.unsafe('"'+B.replace(/"/g,'""')+'"')}`}}async function h(B,u){return await M`select pg_notify(${B}, ${""+u})`}async function f(){let B=N1(),u=U.length?U.shift():await new Promise((h0,t)=>{let J0={reserve:h0,reject:t};$.push(J0),Q.length&&F0(Q.shift(),J0)});N(u,H),u.reserved=()=>B.length?u.execute(B.shift()):N(u,H),u.reserved.release=!0;let G0=y(K0);return G0.release=()=>{u.reserved=null,H1(u)},G0;function K0(h0){u.queue===V?B.push(h0):u.execute(h0)||N(u,V)}}async function I(B,u){!u&&(u=B,B="");let G0=N1(),K0=0,h0,t=null;try{return await M.unsafe("begin "+B.replace(/[^a-z ]/ig,""),[],{onexecute:P0}).execute(),await Promise.race([J0(h0,u),new Promise((B0,w0)=>h0.onclose=w0)])}catch(B0){throw B0}async function J0(B0,w0,i0){let D0=y(k0);D0.savepoint=U4,D0.prepare=(R0)=>t=R0.replace(/[^a-z0-9$-_. ]/gi);let S1,c0;i0&&await D0`savepoint ${D0(i0)}`;try{if(c0=await new Promise((R0,P1)=>{let g1=w0(D0);Promise.resolve(Array.isArray(g1)?Promise.all(g1):g1).then(R0,P1)}),S1)throw S1}catch(R0){throw await(i0?D0`rollback to ${D0(i0)}`:D0`rollback`),R0 instanceof R2&&R0.code==="25P02"&&S1||R0}if(!i0)t?await D0`prepare transaction '${D0.unsafe(t)}'`:await D0`commit`;return c0;function U4(R0,P1){if(R0&&Array.isArray(R0.raw))return U4((g1)=>g1.apply(g1,arguments));return arguments.length===1&&(P1=R0,R0=null),J0(B0,P1,"s"+K0+++(R0?"_"+R0:""))}function k0(R0){R0.catch((P1)=>S1||(S1=P1)),B0.queue===V?G0.push(R0):B0.execute(R0)||N(B0,V)}}function P0(B0){h0=B0,N(B0,H),B0.reserved=()=>G0.length?B0.execute(G0.shift()):N(B0,H)}}function N(B,u){return B.queue.remove(B),u.push(B),B.queue=u,u===U?B.idleTimer.start():B.idleTimer.cancel(),B}function q(B){return new r1(B,3802)}function C(B,u){if(!Array.isArray(B))return C(Array.from(arguments));return new r1(B,u||(B.length?m6(B)||25:0),X.shared.typeArrayMap)}function p(B){if(G)return B.reject(x0.connection("CONNECTION_ENDED",X,X));if(U.length)return s(U.shift(),B);if(Q.length)return F0(Q.shift(),B);E.length?s(E.shift(),B):$.push(B)}function s(B,u){return B.execute(u)?N(B,E):N(B,V)}function K(B){return new Promise((u,G0)=>{B.state?B.active?q5(X).cancel(B.state,u,G0):B.cancelled={resolve:u,reject:G0}:($.remove(B),B.cancelled=!0,B.reject(x0.generic("57014","canceling statement due to user request")),u())})}async function a({timeout:B=null}={}){if(G)return G;await 1;let u;return G=Promise.race([new Promise((G0)=>B!==null&&(u=setTimeout(e,B*1000,G0))),Promise.all(R.map((G0)=>G0.end()).concat(k.sql?k.sql.end({timeout:0}):[],_.sql?_.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(u))}async function m(){await Promise.all(R.map((B)=>B.end()))}async function e(B){await Promise.all(R.map((u)=>u.terminate()));while($.length)$.shift().reject(x0.connection("CONNECTION_DESTROYED",X));B()}function F0(B,u){return N(B,W),B.connect(u),B}function f0(B){N(B,J)}function H1(B){if($.length===0)return N(B,U);let u=Math.ceil($.length/(W.length+1)),G0=!0;while(G0&&$.length&&u-- >0){let K0=$.shift();if(K0.reserve)return K0.reserve(B);G0=B.execute(K0)}G0?N(B,E):N(B,V)}function n1(B,u){N(B,Q),B.reserved=null,B.onclose&&(B.onclose(u),B.onclose=null),X.onclose&&X.onclose(B.id),$.length&&F0(B,$.shift())}}function eF(Y,Z){if(Y&&Y.shared)return Y;let X=process.env,_=(!Y||typeof Y==="string"?Z:Y)||{},{url:G,multihost:$}=GE(Y),W=[...G.searchParams].reduce((V,[L,R])=>(V[L]=R,V),{}),H=_.hostname||_.host||$||G.hostname||X.PGHOST||"localhost",Q=_.port||G.port||X.PGPORT||5432,J=_.user||_.username||G.username||X.PGUSERNAME||X.PGUSER||$E();_.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 U=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],E={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:XE,max_pipeline:100,backoff:ZE,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((V)=>V.split(":")[0]),port:Array.isArray(Q)?Q:H.split(",").map((V)=>parseInt(V.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(E).reduce((V,[L,R])=>{let M=L in _?_[L]:(L in W)?W[L]==="disable"||W[L]==="false"?!1:W[L]:X["PG"+L.toUpperCase()]||R;return V[L]=typeof M==="string"&&U.includes(L)?+M:M,V},{}),connection:{application_name:X.PGAPPNAME||"postgres.js",..._.connection,...Object.entries(W).reduce((V,[L,R])=>((L in E)||(V[L]=R),V),{})},types:_.types||{},target_session_attrs:YE(_,G,X),onnotice:_.onnotice,onnotify:_.onnotify,onclose:_.onclose,onparameter:_.onparameter,socket:_.socket,transform:_E(_.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...Z3(_.types)}}function YE(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 ZE(Y){return(0.5+Math.random()/2)*Math.min(3**Y/100,20)}function XE(){return 60*(30+Math.random()*30)}function _E(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 GE(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 $E(){try{return tF.userInfo().username}catch(Y){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class j0{static[F]="SelectionProxyHandler";config;constructor(Y){this.config={...Y}}get(Y,Z){if(Z==="_")return{...Y._,selectedFields:new Proxy(Y._.selectedFields,this)};if(Z===A0)return{...Y[A0],selectedFields:new Proxy(Y[A0].selectedFields,this)};if(typeof Z==="symbol")return Y[Z];let _=(A(Y,S0)?Y._.selectedFields:A(Y,V1)?Y[A0].selectedFields:Y)[Z];if(A(_,x.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!_.isSelectionField)return _.sql;let G=_.clone();return G.isSelectionField=!0,G}if(A(_,x)){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(A(_,O0)){if(this.config.alias)return new Proxy(_,new A2(new Proxy(_.table,new D8(this.config.alias,this.config.replaceOriginalName??!1))));return _}if(typeof _!=="object"||_===null)return _;return new Proxy(_,new j0(this.config))}}class E3{constructor(Y,Z){this.unique=Y,this.name=Z}static[F]="PgIndexBuilderOn";on(...Y){return new s6(Y.map((Z)=>{if(A(Z,x))return Z;Z=Z;let X=new F8(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 s6(Y.map((Z)=>{if(A(Z,x))return Z;Z=Z;let X=new F8(Z.name,!!Z.keyAsName,Z.columnType,Z.indexConfig);return Z.indexConfig=Z.defaultConfig,X}),this.unique,!0,this.name)}using(Y,...Z){return new s6(Z.map((X)=>{if(A(X,x))return X;X=X;let _=new F8(X.name,!!X.keyAsName,X.columnType,X.indexConfig);return X.indexConfig=JSON.parse(JSON.stringify(X.defaultConfig)),_}),this.unique,!0,this.name,Y)}}class s6{static[F]="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 O3(this.config,Y)}}class O3{static[F]="PgIndex";config;constructor(Y,Z){this.config={...Y,table:Z}}}function P5(Y){return new E3(!0,Y)}function WE(Y){return(Y.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((X)=>X.toLowerCase()).join("_")}function HE(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 JE(Y){return Y}class v5{static[F]="CasingCache";cache={};cachedTables={};convert;constructor(Y){this.convert=Y==="snake_case"?WE:Y==="camelCase"?HE:JE}getColumnCasing(Y){if(!Y.keyAsName)return Y.name;let Z=Y.table[S.Symbol.Schema]??"public",X=Y.table[S.Symbol.OriginalName],_=`${Z}.${X}.${Y.name}`;if(!this.cache[_])this.cacheTable(Y.table);return this.cache[_]}cacheTable(Y){let Z=Y[S.Symbol.Schema]??"public",X=Y[S.Symbol.OriginalName],_=`${Z}.${X}`;if(!this.cachedTables[_]){for(let G of Object.values(Y[S.Symbol.Columns])){let $=`${_}.${G.name}`;this.cache[$]=this.convert(G.name)}this.cachedTables[_]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class j8 extends V1{static[F]="PgViewBase"}class c4{static[F]="PgDialect";casing;constructor(Y){this.casing=new v5(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",$=O`
82
+ `};return _(Q),new Promise(async(E)=>W=E);async function J({highWaterMark:E=16384,start:V=0,end:L=1/0}={}){let w=L-V;return V&&await Q.seek(V),new D3.Readable({highWaterMark:E,async read(M){let k=M>w?M-w:M;w-=M;let[{data:h}]=await Q.read(k);if(this.push(h),h.length<M)this.push(null)}})}async function U({highWaterMark:E=16384,start:V=0}={}){return V&&await Q.seek(V),new D3.Writable({highWaterMark:E,write(L,w,M){Q.write(L).then(()=>M(),M)}})}}).catch(G)})}Object.assign(n6,{PostgresError:R2,toPascal:m4,pascal:B5,toCamel:p4,camel:K5,toKebab:u4,kebab:C5,fromPascal:T8,fromCamel:I8,fromKebab:K8,BigInt:{to:20,from:[20],parse:(Y)=>BigInt(Y),serialize:(Y)=>Y.toString()}});var I2=n6;function n6(Y,Z){let X=XE(Y,Z),_=X.no_subscribe||v5(n6,{...X}),G=!1,$=R1(),W=R1(),H=R1(),Q=R1(),J=R1(),U=R1(),E=R1(),V=R1(),L={connecting:W,reserved:H,closed:Q,ended:J,open:U,busy:E,full:V},w=[...Array(X.max)].map(()=>P5(X,L,{onopen:H1,onend:f0,onclose:n1})),M=k(g);return Object.assign(M,{get parameters(){return X.parameters},largeObject:x5.bind(null,M),subscribe:_,CLOSE:w2,END:w2,PostgresError:R2,options:X,reserve:m,listen:h,begin:K,close:p,end:t}),M;function k(B){return B.debug=X.debug,Object.entries(X.types).reduce((s,[J0,P0])=>{return s[J0]=(B0)=>new r1(B0,P0.to),s},u),Object.assign(G0,{types:u,typed:u,unsafe:K0,notify:x,array:C,json:q,file:h0}),G0;function u(s,J0){return new r1(s,J0)}function G0(s,...J0){return s&&Array.isArray(s.raw)?new j1(s,J0,B,T):typeof s==="string"&&!J0.length?new B8(X.transform.column.to?X.transform.column.to(s):s):new d6(s,J0)}function K0(s,J0=[],P0={}){return arguments.length===2&&!Array.isArray(J0)&&(P0=J0,J0=[]),new j1([s],J0,B,T,{prepare:!1,...P0,simple:"simple"in P0?P0.simple:J0.length===0})}function h0(s,J0=[],P0={}){return arguments.length===2&&!Array.isArray(J0)&&(P0=J0,J0=[]),new j1([],J0,(w0)=>{ZE.readFile(s,"utf8",(i0,V0)=>{if(i0)return w0.reject(i0);w0.strings=[V0],B(w0)})},T,{...P0,simple:"simple"in P0?P0.simple:J0.length===0})}}async function h(B,u,G0){let K0={fn:u,onlisten:G0},h0=h.sql||(h.sql=n6({...X,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(h.channels).forEach(([w0,{listeners:i0}])=>{delete h.channels[w0],Promise.all(i0.map((V0)=>h(w0,V0.fn,V0.onlisten).catch(()=>{})))})},onnotify(w0,i0){w0 in h.channels&&h.channels[w0].listeners.forEach((V0)=>V0.fn(i0))}})),s=h.channels||(h.channels={});if(B in s){s[B].listeners.push(K0);let w0=await s[B].result;return K0.onlisten&&K0.onlisten(),{state:w0.state,unlisten:B0}}s[B]={result:h0`listen ${h0.unsafe('"'+B.replace(/"/g,'""')+'"')}`,listeners:[K0]};let P0=await s[B].result;return K0.onlisten&&K0.onlisten(),{state:P0.state,unlisten:B0};async function B0(){if(B in s===!1)return;if(s[B].listeners=s[B].listeners.filter((w0)=>w0!==K0),s[B].listeners.length)return;return delete s[B],h0`unlisten ${h0.unsafe('"'+B.replace(/"/g,'""')+'"')}`}}async function x(B,u){return await M`select pg_notify(${B}, ${""+u})`}async function m(){let B=R1(),u=U.length?U.shift():await new Promise((h0,s)=>{let J0={reserve:h0,reject:s};$.push(J0),Q.length&&z0(Q.shift(),J0)});I(u,H),u.reserved=()=>B.length?u.execute(B.shift()):I(u,H),u.reserved.release=!0;let G0=k(K0);return G0.release=()=>{u.reserved=null,H1(u)},G0;function K0(h0){u.queue===V?B.push(h0):u.execute(h0)||I(u,V)}}async function K(B,u){!u&&(u=B,B="");let G0=R1(),K0=0,h0,s=null;try{return await M.unsafe("begin "+B.replace(/[^a-z ]/ig,""),[],{onexecute:P0}).execute(),await Promise.race([J0(h0,u),new Promise((B0,w0)=>h0.onclose=w0)])}catch(B0){throw B0}async function J0(B0,w0,i0){let V0=k(k0);V0.savepoint=U4,V0.prepare=(R0)=>s=R0.replace(/[^a-z0-9$-_. ]/gi);let S1,c0;i0&&await V0`savepoint ${V0(i0)}`;try{if(c0=await new Promise((R0,P1)=>{let p1=w0(V0);Promise.resolve(Array.isArray(p1)?Promise.all(p1):p1).then(R0,P1)}),S1)throw S1}catch(R0){throw await(i0?V0`rollback to ${V0(i0)}`:V0`rollback`),R0 instanceof R2&&R0.code==="25P02"&&S1||R0}if(!i0)s?await V0`prepare transaction '${V0.unsafe(s)}'`:await V0`commit`;return c0;function U4(R0,P1){if(R0&&Array.isArray(R0.raw))return U4((p1)=>p1.apply(p1,arguments));return arguments.length===1&&(P1=R0,R0=null),J0(B0,P1,"s"+K0+++(R0?"_"+R0:""))}function k0(R0){R0.catch((P1)=>S1||(S1=P1)),B0.queue===V?G0.push(R0):B0.execute(R0)||I(B0,V)}}function P0(B0){h0=B0,I(B0,H),B0.reserved=()=>G0.length?B0.execute(G0.shift()):I(B0,H)}}function I(B,u){return B.queue.remove(B),u.push(B),B.queue=u,u===U?B.idleTimer.start():B.idleTimer.cancel(),B}function q(B){return new r1(B,3802)}function C(B,u){if(!Array.isArray(B))return C(Array.from(arguments));return new r1(B,u||(B.length?m6(B)||25:0),X.shared.typeArrayMap)}function g(B){if(G)return B.reject(x0.connection("CONNECTION_ENDED",X,X));if(U.length)return n(U.shift(),B);if(Q.length)return z0(Q.shift(),B);E.length?n(E.shift(),B):$.push(B)}function n(B,u){return B.execute(u)?I(B,E):I(B,V)}function T(B){return new Promise((u,G0)=>{B.state?B.active?P5(X).cancel(B.state,u,G0):B.cancelled={resolve:u,reject:G0}:($.remove(B),B.cancelled=!0,B.reject(x0.generic("57014","canceling statement due to user request")),u())})}async function t({timeout:B=null}={}){if(G)return G;await 1;let u;return G=Promise.race([new Promise((G0)=>B!==null&&(u=setTimeout(a,B*1000,G0))),Promise.all(w.map((G0)=>G0.end()).concat(h.sql?h.sql.end({timeout:0}):[],_.sql?_.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(u))}async function p(){await Promise.all(w.map((B)=>B.end()))}async function a(B){await Promise.all(w.map((u)=>u.terminate()));while($.length)$.shift().reject(x0.connection("CONNECTION_DESTROYED",X));B()}function z0(B,u){return I(B,W),B.connect(u),B}function f0(B){I(B,J)}function H1(B){if($.length===0)return I(B,U);let u=Math.ceil($.length/(W.length+1)),G0=!0;while(G0&&$.length&&u-- >0){let K0=$.shift();if(K0.reserve)return K0.reserve(B);G0=B.execute(K0)}G0?I(B,E):I(B,V)}function n1(B,u){I(B,Q),B.reserved=null,B.onclose&&(B.onclose(u),B.onclose=null),X.onclose&&X.onclose(B.id),$.length&&z0(B,$.shift())}}function XE(Y,Z){if(Y&&Y.shared)return Y;let X=process.env,_=(!Y||typeof Y==="string"?Z:Y)||{},{url:G,multihost:$}=HE(Y),W=[...G.searchParams].reduce((V,[L,w])=>(V[L]=w,V),{}),H=_.hostname||_.host||$||G.hostname||X.PGHOST||"localhost",Q=_.port||G.port||X.PGPORT||5432,J=_.user||_.username||G.username||X.PGUSERNAME||X.PGUSER||JE();_.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 U=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],E={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:$E,max_pipeline:100,backoff:GE,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((V)=>V.split(":")[0]),port:Array.isArray(Q)?Q:H.split(",").map((V)=>parseInt(V.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(E).reduce((V,[L,w])=>{let M=L in _?_[L]:(L in W)?W[L]==="disable"||W[L]==="false"?!1:W[L]:X["PG"+L.toUpperCase()]||w;return V[L]=typeof M==="string"&&U.includes(L)?+M:M,V},{}),connection:{application_name:X.PGAPPNAME||"postgres.js",..._.connection,...Object.entries(W).reduce((V,[L,w])=>((L in E)||(V[L]=w),V),{})},types:_.types||{},target_session_attrs:_E(_,G,X),onnotice:_.onnotice,onnotify:_.onnotify,onclose:_.onclose,onparameter:_.onparameter,socket:_.socket,transform:WE(_.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...$3(_.types)}}function _E(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 GE(Y){return(0.5+Math.random()/2)*Math.min(3**Y/100,20)}function $E(){return 60*(30+Math.random()*30)}function WE(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 HE(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 JE(){try{return YE.userInfo().username}catch(Y){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class j0{static[F]="SelectionProxyHandler";config;constructor(Y){this.config={...Y}}get(Y,Z){if(Z==="_")return{...Y._,selectedFields:new Proxy(Y._.selectedFields,this)};if(Z===A0)return{...Y[A0],selectedFields:new Proxy(Y[A0].selectedFields,this)};if(typeof Z==="symbol")return Y[Z];let _=(A(Y,S0)?Y._.selectedFields:A(Y,V1)?Y[A0].selectedFields:Y)[Z];if(A(_,f.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!_.isSelectionField)return _.sql;let G=_.clone();return G.isSelectionField=!0,G}if(A(_,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(A(_,E0)){if(this.config.alias)return new Proxy(_,new A2(new Proxy(_.table,new V8(this.config.alias,this.config.replaceOriginalName??!1))));return _}if(typeof _!=="object"||_===null)return _;return new Proxy(_,new j0(this.config))}}class L3{constructor(Y,Z){this.unique=Y,this.name=Z}static[F]="PgIndexBuilderOn";on(...Y){return new s6(Y.map((Z)=>{if(A(Z,f))return Z;Z=Z;let X=new z8(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 s6(Y.map((Z)=>{if(A(Z,f))return Z;Z=Z;let X=new z8(Z.name,!!Z.keyAsName,Z.columnType,Z.indexConfig);return Z.indexConfig=Z.defaultConfig,X}),this.unique,!0,this.name)}using(Y,...Z){return new s6(Z.map((X)=>{if(A(X,f))return X;X=X;let _=new z8(X.name,!!X.keyAsName,X.columnType,X.indexConfig);return X.indexConfig=JSON.parse(JSON.stringify(X.defaultConfig)),_}),this.unique,!0,this.name,Y)}}class s6{static[F]="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 M3(this.config,Y)}}class M3{static[F]="PgIndex";config;constructor(Y,Z){this.config={...Y,table:Z}}}function f5(Y){return new L3(!0,Y)}function QE(Y){return(Y.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((X)=>X.toLowerCase()).join("_")}function UE(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 zE(Y){return Y}class h5{static[F]="CasingCache";cache={};cachedTables={};convert;constructor(Y){this.convert=Y==="snake_case"?QE:Y==="camelCase"?UE:zE}getColumnCasing(Y){if(!Y.keyAsName)return Y.name;let Z=Y.table[S.Symbol.Schema]??"public",X=Y.table[S.Symbol.OriginalName],_=`${Z}.${X}.${Y.name}`;if(!this.cache[_])this.cacheTable(Y.table);return this.cache[_]}cacheTable(Y){let Z=Y[S.Symbol.Schema]??"public",X=Y[S.Symbol.OriginalName],_=`${Z}.${X}`;if(!this.cachedTables[_]){for(let G of Object.values(Y[S.Symbol.Columns])){let $=`${_}.${G.name}`;this.cache[$]=this.convert(G.name)}this.cachedTables[_]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class q8 extends V1{static[F]="PgViewBase"}class c4{static[F]="PgDialect";casing;constructor(Y){this.casing=new h5(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",$=O`
83
83
  CREATE TABLE IF NOT EXISTS ${O.identifier(G)}.${O.identifier(_)} (
84
84
  id SERIAL PRIMARY KEY,
85
85
  hash text NOT NULL,
86
86
  created_at bigint
87
87
  )
88
- `;await Z.execute(O`CREATE SCHEMA IF NOT EXISTS ${O.identifier(G)}`),await Z.execute($);let H=(await Z.all(O`select id, hash, created_at from ${O.identifier(G)}.${O.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 U of J.sql)await Q.execute(O.raw(U));await Q.execute(O`insert into ${O.identifier(G)}.${O.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=[O`with `];for(let[X,_]of Y.entries())if(Z.push(O`${O.identifier(_._.alias)} as (${_._.sql})`),X<Y.length-1)Z.push(O`, `);return Z.push(O` `),O.join(Z)}buildDeleteQuery({table:Y,where:Z,returning:X,withList:_}){let G=this.buildWithCTE(_),$=X?O` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,W=Z?O` where ${Z}`:void 0;return O`${G}delete from ${Y}${W}${$}`}buildUpdateSet(Y,Z){let X=Y[S.Symbol.Columns],_=Object.keys(X).filter(($)=>Z[$]!==void 0||X[$]?.onUpdateFn!==void 0),G=_.length;return O.join(_.flatMap(($,W)=>{let H=X[$],Q=Z[$]??O.param(H.onUpdateFn(),H),J=O`${O.identifier(this.casing.getColumnCasing(H))} = ${Q}`;if(W<G-1)return[J,O.raw(", ")];return[J]}))}buildUpdateQuery({table:Y,set:Z,where:X,returning:_,withList:G,from:$,joins:W}){let H=this.buildWithCTE(G),Q=Y[m0.Symbol.Name],J=Y[m0.Symbol.Schema],U=Y[m0.Symbol.OriginalName],E=Q===U?void 0:Q,V=O`${J?O`${O.identifier(J)}.`:void 0}${O.identifier(U)}${E&&O` ${O.identifier(E)}`}`,L=this.buildUpdateSet(Y,Z),R=$&&O.join([O.raw(" from "),this.buildFromTable($)]),M=this.buildJoins(W),y=_?O` returning ${this.buildSelection(_,{isSingleTable:!$})}`:void 0,k=X?O` where ${X}`:void 0;return O`${H}update ${V} set ${L}${R}${M}${k}${y}`}buildSelection(Y,{isSingleTable:Z=!1}={}){let X=Y.length,_=Y.flatMap(({field:G},$)=>{let W=[];if(A(G,x.Aliased)&&G.isSelectionField)W.push(O.identifier(G.fieldAlias));else if(A(G,x.Aliased)||A(G,x)){let H=A(G,x.Aliased)?G.sql:G;if(Z)W.push(new x(H.queryChunks.map((Q)=>{if(A(Q,j))return O.identifier(this.casing.getColumnCasing(Q));return Q})));else W.push(H);if(A(G,x.Aliased))W.push(O` as ${O.identifier(G.fieldAlias)}`)}else if(A(G,O0))if(Z)W.push(O.identifier(this.casing.getColumnCasing(G)));else W.push(G);if($<X-1)W.push(O`, `);return W});return O.join(_)}buildJoins(Y){if(!Y||Y.length===0)return;let Z=[];for(let[X,_]of Y.entries()){if(X===0)Z.push(O` `);let G=_.table,$=_.lateral?O` lateral`:void 0,W=_.on?O` on ${_.on}`:void 0;if(A(G,m0)){let H=G[m0.Symbol.Name],Q=G[m0.Symbol.Schema],J=G[m0.Symbol.OriginalName],U=H===J?void 0:_.alias;Z.push(O`${O.raw(_.joinType)} join${$} ${Q?O`${O.identifier(Q)}.`:void 0}${O.identifier(J)}${U&&O` ${O.identifier(U)}`}${W}`)}else if(A(G,V1)){let H=G[A0].name,Q=G[A0].schema,J=G[A0].originalName,U=H===J?void 0:_.alias;Z.push(O`${O.raw(_.joinType)} join${$} ${Q?O`${O.identifier(Q)}.`:void 0}${O.identifier(J)}${U&&O` ${O.identifier(U)}`}${W}`)}else Z.push(O`${O.raw(_.joinType)} join${$} ${G}${W}`);if(X<Y.length-1)Z.push(O` `)}return O.join(Z)}buildFromTable(Y){if(A(Y,S)&&Y[S.Symbol.IsAlias]){let Z=O`${O.identifier(Y[S.Symbol.OriginalName])}`;if(Y[S.Symbol.Schema])Z=O`${O.identifier(Y[S.Symbol.Schema])}.${Z}`;return O`${Z} ${O.identifier(Y[S.Symbol.Name])}`}return Y}buildSelectQuery({withList:Y,fields:Z,fieldsFlat:X,where:_,having:G,table:$,joins:W,orderBy:H,groupBy:Q,limit:J,offset:U,lockingClause:E,distinct:V,setOperators:L}){let R=X??C1(Z);for(let e of R)if(A(e.field,O0)&&d0(e.field.table)!==(A($,S0)?$._.alias:A($,j8)?$[A0].name:A($,x)?void 0:d0($))&&!((F0)=>W?.some(({alias:f0})=>f0===(F0[S.Symbol.IsAlias]?d0(F0):F0[S.Symbol.BaseName])))(e.field.table)){let F0=d0(e.field.table);throw new Error(`Your "${e.path.join("->")}" field references a column "${F0}"."${e.field.name}", but the table "${F0}" is not part of the query! Did you forget to join it?`)}let M=!W||W.length===0,y=this.buildWithCTE(Y),k;if(V)k=V===!0?O` distinct`:O` distinct on (${O.join(V.on,O`, `)})`;let h=this.buildSelection(R,{isSingleTable:M}),f=this.buildFromTable($),I=this.buildJoins(W),N=_?O` where ${_}`:void 0,q=G?O` having ${G}`:void 0,C;if(H&&H.length>0)C=O` order by ${O.join(H,O`, `)}`;let p;if(Q&&Q.length>0)p=O` group by ${O.join(Q,O`, `)}`;let s=typeof J==="object"||typeof J==="number"&&J>=0?O` limit ${J}`:void 0,K=U?O` offset ${U}`:void 0,a=O.empty();if(E){let e=O` for ${O.raw(E.strength)}`;if(E.config.of)e.append(O` of ${O.join(Array.isArray(E.config.of)?E.config.of:[E.config.of],O`, `)}`);if(E.config.noWait)e.append(O` nowait`);else if(E.config.skipLocked)e.append(O` skip locked`);a.append(e)}let m=O`${y}select${k} ${h} from ${f}${I}${N}${p}${q}${C}${s}${K}${a}`;if(L.length>0)return this.buildSetOperations(m,L);return m}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=O`(${Y.getSQL()}) `,Q=O`(${_.getSQL()})`,J;if($&&$.length>0){let L=[];for(let R of $)if(A(R,j))L.push(O.identifier(R.name));else if(A(R,x)){for(let M=0;M<R.queryChunks.length;M++){let y=R.queryChunks[M];if(A(y,j))R.queryChunks[M]=O.identifier(y.name)}L.push(O`${R}`)}else L.push(O`${R}`);J=O` order by ${O.join(L,O`, `)} `}let U=typeof G==="object"||typeof G==="number"&&G>=0?O` limit ${G}`:void 0,E=O.raw(`${Z} ${X?"all ":""}`),V=W?O` offset ${W}`:void 0;return O`${H}${E}${Q}${J}${U}${V}`}buildInsertQuery({table:Y,values:Z,onConflict:X,returning:_,withList:G,select:$,overridingSystemValue_:W}){let H=[],Q=Y[S.Symbol.Columns],J=Object.entries(Q).filter(([y,k])=>!k.shouldDisableInsert()),U=J.map(([,y])=>O.identifier(this.casing.getColumnCasing(y)));if($){let y=Z;if(A(y,x))H.push(y);else H.push(y.getSQL())}else{let y=Z;H.push(O.raw("values "));for(let[k,h]of y.entries()){let f=[];for(let[I,N]of J){let q=h[I];if(q===void 0||A(q,R1)&&q.value===void 0)if(N.defaultFn!==void 0){let C=N.defaultFn(),p=A(C,x)?C:O.param(C,N);f.push(p)}else if(!N.default&&N.onUpdateFn!==void 0){let C=N.onUpdateFn(),p=A(C,x)?C:O.param(C,N);f.push(p)}else f.push(O`default`);else f.push(q)}if(H.push(f),k<y.length-1)H.push(O`, `)}}let E=this.buildWithCTE(G),V=O.join(H),L=_?O` returning ${this.buildSelection(_,{isSingleTable:!0})}`:void 0,R=X?O` on conflict ${X}`:void 0,M=W===!0?O`overriding system value `:void 0;return O`${E}insert into ${Y} ${U} ${M}${V}${R}${L}`}buildRefreshMaterializedViewQuery({view:Y,concurrently:Z,withNoData:X}){let _=Z?O` concurrently`:void 0,G=X?O` with no data`:void 0;return O`refresh materialized view${_} ${Y}${G}`}prepareTyping(Y){if(A(Y,P6)||A(Y,S6))return"json";else if(A(Y,v6))return"decimal";else if(A(Y,x6))return"time";else if(A(Y,f6)||A(Y,h6))return"timestamp";else if(A(Y,q6)||A(Y,j6))return"date";else if(A(Y,k6))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=[],U,E,V=[],L,R=[];if($===!0)J=Object.entries(G.columns).map(([k,h])=>({dbKey:h.name,tsKey:k,field:i1(h,W),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let y=Object.fromEntries(Object.entries(G.columns).map(([q,C])=>[q,i1(C,W)]));if($.where){let q=typeof $.where==="function"?$.where(y,uW()):$.where;L=q&&L8(q,W)}let k=[],h=[];if($.columns){let q=!1;for(let[C,p]of Object.entries($.columns)){if(p===void 0)continue;if(C in G.columns){if(!q&&p===!0)q=!0;h.push(C)}}if(h.length>0)h=q?h.filter((C)=>$.columns?.[C]===!0):Object.keys(G.columns).filter((C)=>!h.includes(C))}else h=Object.keys(G.columns);for(let q of h){let C=G.columns[q];k.push({tsKey:q,value:C})}let f=[];if($.with)f=Object.entries($.with).filter((q)=>!!q[1]).map(([q,C])=>({tsKey:q,queryConfig:C,relation:G.relations[q]}));let I;if($.extras){I=typeof $.extras==="function"?$.extras(y,{sql:O}):$.extras;for(let[q,C]of Object.entries(I))k.push({tsKey:q,value:W5(C,W)})}for(let{tsKey:q,value:C}of k)J.push({dbKey:A(C,x.Aliased)?C.fieldAlias:G.columns[q].name,tsKey:q,field:A(C,O0)?i1(C,W):C,relationTableTsKey:void 0,isJson:!1,selection:[]});let N=typeof $.orderBy==="function"?$.orderBy(y,dW()):$.orderBy??[];if(!Array.isArray(N))N=[N];V=N.map((q)=>{if(A(q,O0))return i1(q,W);return L8(q,W)}),U=$.limit,E=$.offset;for(let{tsKey:q,queryConfig:C,relation:p}of f){let s=lW(Z,X,p),K=g4(p.referencedTable),a=X[K],m=`${W}_${q}`,e=N8(...s.fields.map((H1,n1)=>b6(i1(s.references[n1],m),i1(H1,W)))),F0=this.buildRelationalQueryWithoutPK({fullSchema:Y,schema:Z,tableNamesMap:X,table:Y[a],tableConfig:Z[a],queryConfig:A(p,K4)?C===!0?{limit:1}:{...C,limit:1}:C,tableAlias:m,joinOn:e,nestedQueryRelation:p}),f0=O`${O.identifier(m)}.${O.identifier("data")}`.as(q);R.push({on:O`true`,table:new S0(F0.sql,{},m),alias:m,joinType:"left",lateral:!0}),J.push({dbKey:q,tsKey:q,field:f0,relationTableTsKey:a,isJson:!0,selection:F0.selection})}}if(J.length===0)throw new B6({message:`No fields selected for table "${G.tsName}" ("${W}")`});let M;if(L=N8(Q,L),H){let y=O`json_build_array(${O.join(J.map(({field:f,tsKey:I,isJson:N})=>N?O`${O.identifier(`${W}_${I}`)}.${O.identifier("data")}`:A(f,x.Aliased)?f.sql:f),O`, `)})`;if(A(H,I8))y=O`coalesce(json_agg(${y}${V.length>0?O` order by ${O.join(V,O`, `)}`:void 0}), '[]'::json)`;let k=[{dbKey:"data",tsKey:"data",field:y.as("data"),isJson:!0,relationTableTsKey:G.tsName,selection:J}];if(U!==void 0||E!==void 0||V.length>0)M=this.buildSelectQuery({table:K6(_,W),fields:{},fieldsFlat:[{path:[],field:O.raw("*")}],where:L,limit:U,offset:E,orderBy:V,setOperators:[]}),L=void 0,U=void 0,E=void 0,V=[];else M=K6(_,W);M=this.buildSelectQuery({table:A(M,m0)?M:new S0(M,{},W),fields:{},fieldsFlat:k.map(({field:f})=>({path:[],field:A(f,O0)?i1(f,W):f})),joins:R,where:L,limit:U,offset:E,orderBy:V,setOperators:[]})}else M=this.buildSelectQuery({table:K6(_,W),fields:{},fieldsFlat:J.map(({field:y})=>({path:[],field:A(y,O0)?i1(y,W):y})),joins:R,where:L,limit:U,offset:E,orderBy:V,setOperators:[]});return{tableTsKey:G.tsName,sql:M,selection:J}}}class x5{static[F]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class W1{static[F]="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(A(X,S0))_=Object.fromEntries(Object.keys(X._.selectedFields).map((G)=>[G,X[G]]));else if(A(X,j8))_=X[A0].selectedFields;else if(A(X,x))_={};else _=w7(X);return new f5({table:X,fields:_,isPartialSelect:Z,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class V3 extends x5{static[F]="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 y1(Y))this.usedTables.add(H)}getUsedTables(){return[...this.usedTables]}createJoin(Y,Z){return(X,_)=>{let G=this.tableName,$=J4(X);for(let W of y1(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"&&!A(X,x)){let W=A(X,S0)?X._.selectedFields:A(X,V1)?X[A0].selectedFields:X[S.Symbol.Columns];this.config.fields[$]=W}}if(typeof _==="function")_=_(new Proxy(this.config.fields,new j0({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(QE()):X;if(!M8(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 j0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=Y,this}having(Y){if(typeof Y==="function")Y=Y(new Proxy(this.config.fields,new j0({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 j0({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 j0({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(...y1(this.config.table)),this.config.joins)for(let X of this.config.joins)Z.push(...y1(X.table));return new Proxy(new S0(this.getSQL(),this.config.fields,Y,!1,[...new Set(Z)]),new j0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new j0({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 f5 extends V3{static[F]="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 V0.startActiveSpan("drizzle.prepareQuery",()=>{let J=C1(Q),U=Z.prepareQuery(_.sqlToQuery(this.getSQL()),J,Y,!0,void 0,{type:"select",tables:[...H]},W);return U.joinsNotNullableMap=G,U.setToken($)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return V0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}A7(f5,[$1]);function T2(Y,Z){return(X,_,...G)=>{let $=[_,...G].map((W)=>({type:Y,isAll:Z,rightSelect:W}));for(let W of $)if(!M8(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 QE=()=>({union:UE,unionAll:zE,intersect:FE,intersectAll:EE,except:OE,exceptAll:VE}),UE=T2("union",!1),zE=T2("union",!0),FE=T2("intersect",!1),EE=T2("intersect",!0),OE=T2("except",!1),VE=T2("except",!0);class S8{static[F]="PgQueryBuilder";dialect;dialectConfig;constructor(Y){this.dialect=A(Y,c4)?Y:void 0,this.dialectConfig=A(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 O8(G.getSQL(),Z??("getSelectedFields"in G?G.getSelectedFields()??{}:{}),Y,!0),new j0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...Y){let Z=this;function X($){return new W1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),withList:Y})}function _($){return new W1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),distinct:!0})}function G($,W){return new W1({fields:W??void 0,session:void 0,dialect:Z.getDialect(),distinct:{on:$}})}return{select:X,selectDistinct:_,selectDistinctOn:G}}select(Y){return new W1({fields:Y??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(Y){return new W1({fields:Y??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(Y,Z){return new W1({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 y1(Y){if(A(Y,m0))return[Y[y4]?`${Y[y4]}.${Y[S.Symbol.BaseName]}`:Y[S.Symbol.BaseName]];if(A(Y,S0))return Y._.usedTables??[];if(A(Y,x))return Y.usedTables??[];return[]}class t6 extends $1{constructor(Y,Z,X,_){super();this.session=Z,this.dialect=X,this.config={table:Y,withList:_}}static[F]="PgDelete";config;cacheConfig;where(Y){return this.config.where=Y,this}returning(Y=this.config.table[S.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=C1(Y),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return V0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"delete",tables:y1(this.config.table)},this.cacheConfig)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return V0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new j0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class a6{constructor(Y,Z,X,_,G){this.table=Y,this.session=Z,this.dialect=X,this.withList=_,this.overridingSystemValue_=G}static[F]="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[S.Symbol.Columns];for(let $ of Object.keys(X)){let W=X[$];_[$]=A(W,x)?W:new R1(W,G[$])}return _});return new h5(this.table,Z,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(Y){let Z=typeof Y==="function"?Y(new S8):Y;if(!A(Z,x)&&!M8(this.table[I6],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 h5(this.table,Z,this.session,this.dialect,this.withList,!0)}}class h5 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[F]="PgInsert";config;cacheConfig;returning(Y=this.config.table[S.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=C1(Y),this}onConflictDoNothing(Y={}){if(Y.target===void 0)this.config.onConflict=O`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?O` where ${Y.where}`:void 0;this.config.onConflict=O`(${O.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?O` where ${Y.where}`:void 0,X=Y.targetWhere?O` where ${Y.targetWhere}`:void 0,_=Y.setWhere?O` where ${Y.setWhere}`:void 0,G=this.dialect.buildUpdateSet(this.config.table,C6(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=O`(${O.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 V0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"insert",tables:y1(this.config.table)},this.cacheConfig)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return V0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new j0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class k5 extends $1{constructor(Y,Z,X){super();this.session=Z,this.dialect=X,this.config={view:Y}}static[F]="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 V0.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 V0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}class e6{constructor(Y,Z,X,_){this.table=Y,this.session=Z,this.dialect=X,this.withList=_}static[F]="PgUpdateBuilder";authToken;setToken(Y){return this.authToken=Y,this}set(Y){return new D3(this.table,C6(this.table,Y),this.session,this.dialect,this.withList).setToken(this.authToken)}}class D3 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[F]="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(A(Y,m0))return Y[S.Symbol.Columns];else if(A(Y,S0))return Y._.selectedFields;return Y[A0].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&&!A(this.config.from,x)?this.getTableLikeFields(this.config.from):void 0;X=X(new Proxy(this.config.table[S.Symbol.Columns],new j0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),G&&new Proxy(G,new j0({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[S.Symbol.Columns]),this.config.from){let Z=J4(this.config.from);if(typeof Z==="string"&&this.config.from&&!A(this.config.from,x)){let X=this.getTableLikeFields(this.config.from);Y[Z]=X}for(let X of this.config.joins){let _=J4(X.table);if(typeof _==="string"&&!A(X.table,x)){let G=this.getTableLikeFields(X.table);Y[_]=G}}}}return this.config.returningFields=Y,this.config.returning=C1(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:y1(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 j0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class P8 extends x{constructor(Y){super(P8.buildEmbeddedCount(Y.source,Y.filters).queryChunks);this.params=Y,this.mapWith(Number),this.session=Y.session,this.sql=P8.buildCount(Y.source,Y.filters)}sql;token;static[F]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(Y,Z){return O`(select count(*) from ${Y}${O.raw(" where ").if(Z)}${Z})`}static buildCount(Y,Z){return O`select count(*) as count from ${Y}${O.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 y5{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[F]="PgRelationalQueryBuilder";findMany(Y){return new b5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?Y:{},"many")}findFirst(Y){return new b5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?{...Y,limit:1}:{limit:1},"first")}}class b5 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[F]="PgRelationalQuery";_prepare(Y){return V0.startActiveSpan("drizzle.prepareQuery",()=>{let{query:Z,builtQuery:X}=this._toSQL();return this.session.prepareQuery(X,void 0,Y,!0,(_,G)=>{let $=_.map((W)=>y6(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 V0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class g5 extends $1{constructor(Y,Z,X,_){super();this.execute=Y,this.sql=Z,this.query=X,this.mapBatchResult=_}static[F]="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 v8{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 y5(X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[_],G,Y,Z);this.$cache={invalidate:async(_)=>{}}}static[F]="PgDatabase";query;$with=(Y,Z)=>{let X=this;return{as:(G)=>{if(typeof G==="function")G=G(new S8(X.dialect));return new Proxy(new O8(G.getSQL(),Z??("getSelectedFields"in G?G.getSelectedFields()??{}:{}),Y,!0),new j0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(Y,Z){return new P8({source:Y,filters:Z,session:this.session})}$cache;with(...Y){let Z=this;function X(Q){return new W1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y})}function _(Q){return new W1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:!0})}function G(Q,J){return new W1({fields:J??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:{on:Q}})}function $(Q){return new e6(Q,Z.session,Z.dialect,Y)}function W(Q){return new a6(Q,Z.session,Z.dialect,Y)}function H(Q){return new t6(Q,Z.session,Z.dialect,Y)}return{select:X,selectDistinct:_,selectDistinctOn:G,update:$,insert:W,delete:H}}select(Y){return new W1({fields:Y??void 0,session:this.session,dialect:this.dialect})}selectDistinct(Y){return new W1({fields:Y??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(Y,Z){return new W1({fields:Z??void 0,session:this.session,dialect:this.dialect,distinct:{on:Y}})}update(Y){return new e6(Y,this.session,this.dialect)}insert(Y){return new a6(Y,this.session,this.dialect)}delete(Y){return new t6(Y,this.session,this.dialect)}refreshMaterializedView(Y){return new k5(Y,this.session,this.dialect)}authToken;execute(Y){let Z=typeof Y==="string"?O.raw(Y):Y.getSQL(),X=this.dialect.sqlToQuery(Z),_=this.session.prepareQuery(X,void 0,void 0,!1);return new g5(()=>_.execute(void 0,this.authToken),Z,X,(G)=>_.mapResult(G,!0))}transaction(Y,Z){return this.session.transaction(Y,Z)}}class L3{static[F]="Cache"}class x8 extends L3{strategy(){return"all"}static[F]="NoopCache";async get(Y){return}async put(Y,Z,X,_){}async onMutate(Y){}}async function p5(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 m5{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[F]="PgPreparedQuery";joinsNotNullableMap;async queryWithCache(Y,Z,X){if(this.cache===void 0||A(this.cache,x8)||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 p5(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 p5(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 u5{constructor(Y){this.dialect=Y}static[F]="PgSession";execute(Y,Z){return V0.startActiveSpan("drizzle.operation",()=>{return V0.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 d5 extends v8{constructor(Y,Z,X,_=0){super(Y,Z,X);this.schema=X,this.nestedIndex=_}static[F]="PgTransaction";rollback(){throw new H5}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 O.raw(Z.join(" "))}setTransaction(Y){return this.session.execute(O`set transaction ${this.getTransactionConfigSQL(Y)}`)}}class M3 extends m5{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[F]="PostgresJsPreparedQuery";async execute(Y={}){return V0.startActiveSpan("drizzle.execute",async(Z)=>{let X=$5(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 V0.startActiveSpan("drizzle.driver.execute",()=>{return this.queryWithCache(G,X,async()=>{return await $.unsafe(G,X)})});let Q=await V0.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 V0.startActiveSpan("drizzle.mapResponse",()=>{return H?H(Q):Q.map((J)=>M7(_,J,W))})})}all(Y={}){return V0.startActiveSpan("drizzle.execute",async(Z)=>{let X=$5(this.params,Y);return Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X),V0.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 f8 extends u5{constructor(Y,Z,X,_={}){super(Z);this.client=Y,this.schema=X,this.options=_,this.logger=_.logger??new Q5,this.cache=_.cache??new x8}static[F]="PostgresJsSession";logger;cache;prepareQuery(Y,Z,X,_,G,$,W){return new M3(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 f8(X,this.dialect,this.schema,this.options),G=new c5(this.dialect,_,this.schema);if(Z)await G.setTransaction(Z);return Y(G)})}}class c5 extends d5{constructor(Y,Z,X,_=0){super(Y,Z,X,_);this.session=Z}static[F]="PostgresJsTransaction";transaction(Y){return this.session.client.savepoint((Z)=>{let X=new f8(Z,this.dialect,this.schema,this.session.options),_=new c5(this.dialect,X,this.schema);return Y(_)})}}class A3 extends v8{static[F]="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 J5;else if(Z.logger!==!1)G=Z.logger;let $;if(Z.schema){let Q=cW(Z.schema,oW);$={fullSchema:Z.schema,schema:Q.tables,tableNamesMap:Q.tableNamesMap}}let W=new f8(Y,_,$,{logger:G,cache:Z.cache}),H=new A3(_,W,$);if(H.$client=Y,H.$cache=Z.cache,H.$cache)H.$cache.invalidate=Z.cache?.onMutate;return H}function YY(...Y){if(typeof Y[0]==="string"){let Z=I2(Y[0]);return K2(Z,Y[1])}if(R7(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=I2($,W);return K2(H,_)}let G=I2(Z);return K2(G,_)}return K2(Y[0],Y[1])}((Y)=>{function Z(X){return K2({options:{parsers:{},serializers:{}}},X)}Y.mock=Z})(YY||(YY={}));var o5={};TH(o5,{users:()=>l4,untrackedUserColumnNames:()=>DE,twoFactorMethod:()=>T3,trackedUserColumnName:()=>LE,trackableUserColumnNames:()=>N3,signInHistory:()=>AE,role:()=>R3,players:()=>l5,passwordResetAttempts:()=>wE,games:()=>XY,banishedIps:()=>RE,accountActions:()=>ME,accountAction:()=>I3});function C4(){return a0({length:24}).$type()}function w3(Y){return O`lower(${Y})`}var ZY=O`TO_CHAR(NOW() AT TIME ZONE 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"')`,R3=E8("role",["admin","user"]),l4=T4("users",{id:q1().primaryKey().defaultRandom(),username:a0({length:16}).notNull(),emailOffered:a0({length:254}).notNull(),emailVerified:a0({length:254}),password:a0({length:254}),createdAtIso:C4().notNull().default(ZY),createdIp:a0({length:45}).notNull(),isActive:A8().notNull().default(!1),verifiedAtIso:C4(),userRole:R3().default("user")},(Y)=>[P5("usernameUniqueIndex").on(w3(Y.username)),P5("emailVerifiedUniqueIndex").on(w3(Y.emailVerified))]),DE=["id","createdAtIso","createdIp","isActive","verifiedAtIso"],N3=["username","emailOffered","emailVerified","password","userRole"],LE=E8("trackedUserColumnName",N3),I3=E8("accountAction",["cooldown","confirmEmail","signIn","resetPassword"]),ME=T4("accountActions",{userId:q1().references(()=>l4.id).primaryKey(),action:I3().notNull(),code:a0({length:254}).notNull(),wrongCodeCount:w8().notNull().default(0),expiresAtIso:C4().notNull()}),XY=T4("games",{id:q1().primaryKey().defaultRandom()}),l5=T4("players",{userId:q1().notNull().references(()=>l4.id,{onDelete:"cascade"}),gameId:q1().notNull().references(()=>XY.id,{onDelete:"cascade"}),score:w8().notNull()},(Y)=>[MW({name:"players_userId_gameId_pk",columns:[Y.userId,Y.gameId]})]),AE=T4("signInHistory",{id:q1().primaryKey().defaultRandom(),userId:q1().references(()=>l4.id,{onDelete:"cascade"}),signInTimeIso:C4().notNull().default(ZY),ipAddress:a0({length:45}).notNull(),userAgent:a0({length:1024}),successful:A8().notNull().default(!1)}),T3=E8("twoFactorMethod",["email","phone"]),wE=T4("passwordResetAttempts",{id:q1().primaryKey().defaultRandom(),userId:q1().notNull().references(()=>l4.id,{onDelete:"cascade"}),requestedIp:a0({length:45}).notNull(),requestedAtIso:C4().notNull().default(ZY),succeededIp:a0({length:45}),succeededAtIso:C4(),verificationMethod:T3().notNull()}),RE=T4("banishedIps",{ip:a0({length:45}).primaryKey(),reason:a0({length:2048}).notNull(),banishedAtIso:C4().notNull().default(ZY),banishedUntilIso:C4()});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class i5{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(NE.resolve(__dirname,"notify_update.sql"));let Y=[d0(l4),d0(XY),d0(l5)];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:k1.POSTGRES_HOST,port:k1.POSTGRES_PORT,user:k1.POSTGRES_USER,password:k1.POSTGRES_PASSWORD,database:k1.POSTGRES_DATABASE}){this.options=Z,this.sql=I2(Z),this.drizzle=YY(this.sql,{schema:o5,logger:Y})}observe(Y,Z){if(!this.observers.has(Y))this.observers.set(Y,new W0);this.observers.get(Y).subscribe("SINGLETON",Z)}}var _Y={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 IE(Y){return Number.parseInt(Y,10)}var TE=E1(_Y),KE=TE.keyof().pipe((Y)=>IE(Y)),K3=E1([KE,"string"]);var n5=new i9,{logger:L1}=n5;Object.assign(console,L1,{log:L1.info});L1.info("ready");var r5=C3(import.meta.dir,"..","app"),lx=new i5({logQuery(Y,Z){L1.info("\uD83D\uDCDD query",Y,Z)}});jE({hostname:"0.0.0.0",port:k1.FRONTEND_PORT??3333,...w6??void 0,async fetch(Y){try{let Z=new Date,X=new URL(Y.url);if(L1.info(Y.method,X.pathname),X.pathname==="/")return new Response(Bun.file(C3(r5,"index.html")));if(X.pathname==="/index.html")return Response.redirect("/");let _=CE(r5,X.pathname),G=qE(_);if(!G.startsWith(r5))throw[403,"Access Denied"];if(!await B3(G).exists())return Response.redirect("/");return new Response(B3(G))}catch(Z){let X=K3(Z);if(X instanceof E1.errors===!1){let[_,G]=X,W=`${_Y[_]}. ${G}`;return L1.info(`\u274C ${_}: ${W}`),new Response(W,{status:_})}if(Z instanceof Error)L1.error(Z.message);else{let _=A6(Z);L1.error("frontend server threw",_)}return new Response(_Y[500],{status:500})}}});function GY(){L1.info("\uD83D\uDEEC frontend server exiting"),process.exit(0)}process.on("SIGINT",()=>{L1.info("\u2757 received SIGINT; exiting gracefully"),GY()});process.on("SIGTERM",()=>{L1.info("\u2757 received SIGTERM; exiting gracefully"),GY()});process.on("exit",()=>{L1.info("\u2757 received exit; exiting gracefully"),GY()});n5.on("timeToStop",()=>{L1.info('\u2757 backend server received signal "timeToStop"; exiting gracefully'),GY()});var{version:SE}=await Bun.file(BE.resolve(import.meta.dir,"../package.json")).json();L1.info(`\uD83D\uDEEB frontend v${SE} running at http://localhost:${k1.FRONTEND_PORT}/`);n5.emit("alive");
88
+ `;await Z.execute(O`CREATE SCHEMA IF NOT EXISTS ${O.identifier(G)}`),await Z.execute($);let H=(await Z.all(O`select id, hash, created_at from ${O.identifier(G)}.${O.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 U of J.sql)await Q.execute(O.raw(U));await Q.execute(O`insert into ${O.identifier(G)}.${O.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=[O`with `];for(let[X,_]of Y.entries())if(Z.push(O`${O.identifier(_._.alias)} as (${_._.sql})`),X<Y.length-1)Z.push(O`, `);return Z.push(O` `),O.join(Z)}buildDeleteQuery({table:Y,where:Z,returning:X,withList:_}){let G=this.buildWithCTE(_),$=X?O` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,W=Z?O` where ${Z}`:void 0;return O`${G}delete from ${Y}${W}${$}`}buildUpdateSet(Y,Z){let X=Y[S.Symbol.Columns],_=Object.keys(X).filter(($)=>Z[$]!==void 0||X[$]?.onUpdateFn!==void 0),G=_.length;return O.join(_.flatMap(($,W)=>{let H=X[$],Q=Z[$]??O.param(H.onUpdateFn(),H),J=O`${O.identifier(this.casing.getColumnCasing(H))} = ${Q}`;if(W<G-1)return[J,O.raw(", ")];return[J]}))}buildUpdateQuery({table:Y,set:Z,where:X,returning:_,withList:G,from:$,joins:W}){let H=this.buildWithCTE(G),Q=Y[m0.Symbol.Name],J=Y[m0.Symbol.Schema],U=Y[m0.Symbol.OriginalName],E=Q===U?void 0:Q,V=O`${J?O`${O.identifier(J)}.`:void 0}${O.identifier(U)}${E&&O` ${O.identifier(E)}`}`,L=this.buildUpdateSet(Y,Z),w=$&&O.join([O.raw(" from "),this.buildFromTable($)]),M=this.buildJoins(W),k=_?O` returning ${this.buildSelection(_,{isSingleTable:!$})}`:void 0,h=X?O` where ${X}`:void 0;return O`${H}update ${V} set ${L}${w}${M}${h}${k}`}buildSelection(Y,{isSingleTable:Z=!1}={}){let X=Y.length,_=Y.flatMap(({field:G},$)=>{let W=[];if(A(G,f.Aliased)&&G.isSelectionField)W.push(O.identifier(G.fieldAlias));else if(A(G,f.Aliased)||A(G,f)){let H=A(G,f.Aliased)?G.sql:G;if(Z)W.push(new f(H.queryChunks.map((Q)=>{if(A(Q,j))return O.identifier(this.casing.getColumnCasing(Q));return Q})));else W.push(H);if(A(G,f.Aliased))W.push(O` as ${O.identifier(G.fieldAlias)}`)}else if(A(G,E0))if(Z)W.push(O.identifier(this.casing.getColumnCasing(G)));else W.push(G);if($<X-1)W.push(O`, `);return W});return O.join(_)}buildJoins(Y){if(!Y||Y.length===0)return;let Z=[];for(let[X,_]of Y.entries()){if(X===0)Z.push(O` `);let G=_.table,$=_.lateral?O` lateral`:void 0,W=_.on?O` on ${_.on}`:void 0;if(A(G,m0)){let H=G[m0.Symbol.Name],Q=G[m0.Symbol.Schema],J=G[m0.Symbol.OriginalName],U=H===J?void 0:_.alias;Z.push(O`${O.raw(_.joinType)} join${$} ${Q?O`${O.identifier(Q)}.`:void 0}${O.identifier(J)}${U&&O` ${O.identifier(U)}`}${W}`)}else if(A(G,V1)){let H=G[A0].name,Q=G[A0].schema,J=G[A0].originalName,U=H===J?void 0:_.alias;Z.push(O`${O.raw(_.joinType)} join${$} ${Q?O`${O.identifier(Q)}.`:void 0}${O.identifier(J)}${U&&O` ${O.identifier(U)}`}${W}`)}else Z.push(O`${O.raw(_.joinType)} join${$} ${G}${W}`);if(X<Y.length-1)Z.push(O` `)}return O.join(Z)}buildFromTable(Y){if(A(Y,S)&&Y[S.Symbol.IsAlias]){let Z=O`${O.identifier(Y[S.Symbol.OriginalName])}`;if(Y[S.Symbol.Schema])Z=O`${O.identifier(Y[S.Symbol.Schema])}.${Z}`;return O`${Z} ${O.identifier(Y[S.Symbol.Name])}`}return Y}buildSelectQuery({withList:Y,fields:Z,fieldsFlat:X,where:_,having:G,table:$,joins:W,orderBy:H,groupBy:Q,limit:J,offset:U,lockingClause:E,distinct:V,setOperators:L}){let w=X??C1(Z);for(let a of w)if(A(a.field,E0)&&d0(a.field.table)!==(A($,S0)?$._.alias:A($,q8)?$[A0].name:A($,f)?void 0:d0($))&&!((z0)=>W?.some(({alias:f0})=>f0===(z0[S.Symbol.IsAlias]?d0(z0):z0[S.Symbol.BaseName])))(a.field.table)){let z0=d0(a.field.table);throw new Error(`Your "${a.path.join("->")}" field references a column "${z0}"."${a.field.name}", but the table "${z0}" is not part of the query! Did you forget to join it?`)}let M=!W||W.length===0,k=this.buildWithCTE(Y),h;if(V)h=V===!0?O` distinct`:O` distinct on (${O.join(V.on,O`, `)})`;let x=this.buildSelection(w,{isSingleTable:M}),m=this.buildFromTable($),K=this.buildJoins(W),I=_?O` where ${_}`:void 0,q=G?O` having ${G}`:void 0,C;if(H&&H.length>0)C=O` order by ${O.join(H,O`, `)}`;let g;if(Q&&Q.length>0)g=O` group by ${O.join(Q,O`, `)}`;let n=typeof J==="object"||typeof J==="number"&&J>=0?O` limit ${J}`:void 0,T=U?O` offset ${U}`:void 0,t=O.empty();if(E){let a=O` for ${O.raw(E.strength)}`;if(E.config.of)a.append(O` of ${O.join(Array.isArray(E.config.of)?E.config.of:[E.config.of],O`, `)}`);if(E.config.noWait)a.append(O` nowait`);else if(E.config.skipLocked)a.append(O` skip locked`);t.append(a)}let p=O`${k}select${h} ${x} from ${m}${K}${I}${g}${q}${C}${n}${T}${t}`;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=O`(${Y.getSQL()}) `,Q=O`(${_.getSQL()})`,J;if($&&$.length>0){let L=[];for(let w of $)if(A(w,j))L.push(O.identifier(w.name));else if(A(w,f)){for(let M=0;M<w.queryChunks.length;M++){let k=w.queryChunks[M];if(A(k,j))w.queryChunks[M]=O.identifier(k.name)}L.push(O`${w}`)}else L.push(O`${w}`);J=O` order by ${O.join(L,O`, `)} `}let U=typeof G==="object"||typeof G==="number"&&G>=0?O` limit ${G}`:void 0,E=O.raw(`${Z} ${X?"all ":""}`),V=W?O` offset ${W}`:void 0;return O`${H}${E}${Q}${J}${U}${V}`}buildInsertQuery({table:Y,values:Z,onConflict:X,returning:_,withList:G,select:$,overridingSystemValue_:W}){let H=[],Q=Y[S.Symbol.Columns],J=Object.entries(Q).filter(([k,h])=>!h.shouldDisableInsert()),U=J.map(([,k])=>O.identifier(this.casing.getColumnCasing(k)));if($){let k=Z;if(A(k,f))H.push(k);else H.push(k.getSQL())}else{let k=Z;H.push(O.raw("values "));for(let[h,x]of k.entries()){let m=[];for(let[K,I]of J){let q=x[K];if(q===void 0||A(q,w1)&&q.value===void 0)if(I.defaultFn!==void 0){let C=I.defaultFn(),g=A(C,f)?C:O.param(C,I);m.push(g)}else if(!I.default&&I.onUpdateFn!==void 0){let C=I.onUpdateFn(),g=A(C,f)?C:O.param(C,I);m.push(g)}else m.push(O`default`);else m.push(q)}if(H.push(m),h<k.length-1)H.push(O`, `)}}let E=this.buildWithCTE(G),V=O.join(H),L=_?O` returning ${this.buildSelection(_,{isSingleTable:!0})}`:void 0,w=X?O` on conflict ${X}`:void 0,M=W===!0?O`overriding system value `:void 0;return O`${E}insert into ${Y} ${U} ${M}${V}${w}${L}`}buildRefreshMaterializedViewQuery({view:Y,concurrently:Z,withNoData:X}){let _=Z?O` concurrently`:void 0,G=X?O` with no data`:void 0;return O`refresh materialized view${_} ${Y}${G}`}prepareTyping(Y){if(A(Y,P6)||A(Y,S6))return"json";else if(A(Y,v6))return"decimal";else if(A(Y,x6))return"time";else if(A(Y,f6)||A(Y,h6))return"timestamp";else if(A(Y,q6)||A(Y,j6))return"date";else if(A(Y,k6))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=[],U,E,V=[],L,w=[];if($===!0)J=Object.entries(G.columns).map(([h,x])=>({dbKey:x.name,tsKey:h,field:i1(x,W),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let k=Object.fromEntries(Object.entries(G.columns).map(([q,C])=>[q,i1(C,W)]));if($.where){let q=typeof $.where==="function"?$.where(k,oW()):$.where;L=q&&D8(q,W)}let h=[],x=[];if($.columns){let q=!1;for(let[C,g]of Object.entries($.columns)){if(g===void 0)continue;if(C in G.columns){if(!q&&g===!0)q=!0;x.push(C)}}if(x.length>0)x=q?x.filter((C)=>$.columns?.[C]===!0):Object.keys(G.columns).filter((C)=>!x.includes(C))}else x=Object.keys(G.columns);for(let q of x){let C=G.columns[q];h.push({tsKey:q,value:C})}let m=[];if($.with)m=Object.entries($.with).filter((q)=>!!q[1]).map(([q,C])=>({tsKey:q,queryConfig:C,relation:G.relations[q]}));let K;if($.extras){K=typeof $.extras==="function"?$.extras(k,{sql:O}):$.extras;for(let[q,C]of Object.entries(K))h.push({tsKey:q,value:Q5(C,W)})}for(let{tsKey:q,value:C}of h)J.push({dbKey:A(C,f.Aliased)?C.fieldAlias:G.columns[q].name,tsKey:q,field:A(C,E0)?i1(C,W):C,relationTableTsKey:void 0,isJson:!1,selection:[]});let I=typeof $.orderBy==="function"?$.orderBy(k,iW()):$.orderBy??[];if(!Array.isArray(I))I=[I];V=I.map((q)=>{if(A(q,E0))return i1(q,W);return D8(q,W)}),U=$.limit,E=$.offset;for(let{tsKey:q,queryConfig:C,relation:g}of m){let n=nW(Z,X,g),T=g4(g.referencedTable),t=X[T],p=`${W}_${q}`,a=R8(...n.fields.map((H1,n1)=>b6(i1(n.references[n1],p),i1(H1,W)))),z0=this.buildRelationalQueryWithoutPK({fullSchema:Y,schema:Z,tableNamesMap:X,table:Y[t],tableConfig:Z[t],queryConfig:A(g,T4)?C===!0?{limit:1}:{...C,limit:1}:C,tableAlias:p,joinOn:a,nestedQueryRelation:g}),f0=O`${O.identifier(p)}.${O.identifier("data")}`.as(q);w.push({on:O`true`,table:new S0(z0.sql,{},p),alias:p,joinType:"left",lateral:!0}),J.push({dbKey:q,tsKey:q,field:f0,relationTableTsKey:t,isJson:!0,selection:z0.selection})}}if(J.length===0)throw new B6({message:`No fields selected for table "${G.tsName}" ("${W}")`});let M;if(L=R8(Q,L),H){let k=O`json_build_array(${O.join(J.map(({field:m,tsKey:K,isJson:I})=>I?O`${O.identifier(`${W}_${K}`)}.${O.identifier("data")}`:A(m,f.Aliased)?m.sql:m),O`, `)})`;if(A(H,N8))k=O`coalesce(json_agg(${k}${V.length>0?O` order by ${O.join(V,O`, `)}`:void 0}), '[]'::json)`;let h=[{dbKey:"data",tsKey:"data",field:k.as("data"),isJson:!0,relationTableTsKey:G.tsName,selection:J}];if(U!==void 0||E!==void 0||V.length>0)M=this.buildSelectQuery({table:K6(_,W),fields:{},fieldsFlat:[{path:[],field:O.raw("*")}],where:L,limit:U,offset:E,orderBy:V,setOperators:[]}),L=void 0,U=void 0,E=void 0,V=[];else M=K6(_,W);M=this.buildSelectQuery({table:A(M,m0)?M:new S0(M,{},W),fields:{},fieldsFlat:h.map(({field:m})=>({path:[],field:A(m,E0)?i1(m,W):m})),joins:w,where:L,limit:U,offset:E,orderBy:V,setOperators:[]})}else M=this.buildSelectQuery({table:K6(_,W),fields:{},fieldsFlat:J.map(({field:k})=>({path:[],field:A(k,E0)?i1(k,W):k})),joins:w,where:L,limit:U,offset:E,orderBy:V,setOperators:[]});return{tableTsKey:G.tsName,sql:M,selection:J}}}class k5{static[F]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class W1{static[F]="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(A(X,S0))_=Object.fromEntries(Object.keys(X._.selectedFields).map((G)=>[G,X[G]]));else if(A(X,q8))_=X[A0].selectedFields;else if(A(X,f))_={};else _=T7(X);return new b5({table:X,fields:_,isPartialSelect:Z,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class A3 extends k5{static[F]="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 g1(Y))this.usedTables.add(H)}getUsedTables(){return[...this.usedTables]}createJoin(Y,Z){return(X,_)=>{let G=this.tableName,$=J4(X);for(let W of g1(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"&&!A(X,f)){let W=A(X,S0)?X._.selectedFields:A(X,V1)?X[A0].selectedFields:X[S.Symbol.Columns];this.config.fields[$]=W}}if(typeof _==="function")_=_(new Proxy(this.config.fields,new j0({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(FE()):X;if(!L8(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 j0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=Y,this}having(Y){if(typeof Y==="function")Y=Y(new Proxy(this.config.fields,new j0({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 j0({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 j0({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(...g1(this.config.table)),this.config.joins)for(let X of this.config.joins)Z.push(...g1(X.table));return new Proxy(new S0(this.getSQL(),this.config.fields,Y,!1,[...new Set(Z)]),new j0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new j0({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 b5 extends A3{static[F]="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 O0.startActiveSpan("drizzle.prepareQuery",()=>{let J=C1(Q),U=Z.prepareQuery(_.sqlToQuery(this.getSQL()),J,Y,!0,void 0,{type:"select",tables:[...H]},W);return U.joinsNotNullableMap=G,U.setToken($)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return O0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}I7(b5,[$1]);function T2(Y,Z){return(X,_,...G)=>{let $=[_,...G].map((W)=>({type:Y,isAll:Z,rightSelect:W}));for(let W of $)if(!L8(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 FE=()=>({union:EE,unionAll:OE,intersect:VE,intersectAll:DE,except:LE,exceptAll:ME}),EE=T2("union",!1),OE=T2("union",!0),VE=T2("intersect",!1),DE=T2("intersect",!0),LE=T2("except",!1),ME=T2("except",!0);class j8{static[F]="PgQueryBuilder";dialect;dialectConfig;constructor(Y){this.dialect=A(Y,c4)?Y:void 0,this.dialectConfig=A(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 E8(G.getSQL(),Z??("getSelectedFields"in G?G.getSelectedFields()??{}:{}),Y,!0),new j0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...Y){let Z=this;function X($){return new W1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),withList:Y})}function _($){return new W1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),distinct:!0})}function G($,W){return new W1({fields:W??void 0,session:void 0,dialect:Z.getDialect(),distinct:{on:$}})}return{select:X,selectDistinct:_,selectDistinctOn:G}}select(Y){return new W1({fields:Y??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(Y){return new W1({fields:Y??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(Y,Z){return new W1({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 g1(Y){if(A(Y,m0))return[Y[y4]?`${Y[y4]}.${Y[S.Symbol.BaseName]}`:Y[S.Symbol.BaseName]];if(A(Y,S0))return Y._.usedTables??[];if(A(Y,f))return Y.usedTables??[];return[]}class t6 extends $1{constructor(Y,Z,X,_){super();this.session=Z,this.dialect=X,this.config={table:Y,withList:_}}static[F]="PgDelete";config;cacheConfig;where(Y){return this.config.where=Y,this}returning(Y=this.config.table[S.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=C1(Y),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return O0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"delete",tables:g1(this.config.table)},this.cacheConfig)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return O0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new j0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class a6{constructor(Y,Z,X,_,G){this.table=Y,this.session=Z,this.dialect=X,this.withList=_,this.overridingSystemValue_=G}static[F]="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[S.Symbol.Columns];for(let $ of Object.keys(X)){let W=X[$];_[$]=A(W,f)?W:new w1(W,G[$])}return _});return new y5(this.table,Z,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(Y){let Z=typeof Y==="function"?Y(new j8):Y;if(!A(Z,f)&&!L8(this.table[I6],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 y5(this.table,Z,this.session,this.dialect,this.withList,!0)}}class y5 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[F]="PgInsert";config;cacheConfig;returning(Y=this.config.table[S.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=C1(Y),this}onConflictDoNothing(Y={}){if(Y.target===void 0)this.config.onConflict=O`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?O` where ${Y.where}`:void 0;this.config.onConflict=O`(${O.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?O` where ${Y.where}`:void 0,X=Y.targetWhere?O` where ${Y.targetWhere}`:void 0,_=Y.setWhere?O` where ${Y.setWhere}`:void 0,G=this.dialect.buildUpdateSet(this.config.table,C6(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=O`(${O.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 O0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"insert",tables:g1(this.config.table)},this.cacheConfig)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return O0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new j0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class g5 extends $1{constructor(Y,Z,X){super();this.session=Z,this.dialect=X,this.config={view:Y}}static[F]="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 O0.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 O0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}class e6{constructor(Y,Z,X,_){this.table=Y,this.session=Z,this.dialect=X,this.withList=_}static[F]="PgUpdateBuilder";authToken;setToken(Y){return this.authToken=Y,this}set(Y){return new w3(this.table,C6(this.table,Y),this.session,this.dialect,this.withList).setToken(this.authToken)}}class w3 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[F]="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(A(Y,m0))return Y[S.Symbol.Columns];else if(A(Y,S0))return Y._.selectedFields;return Y[A0].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&&!A(this.config.from,f)?this.getTableLikeFields(this.config.from):void 0;X=X(new Proxy(this.config.table[S.Symbol.Columns],new j0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),G&&new Proxy(G,new j0({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[S.Symbol.Columns]),this.config.from){let Z=J4(this.config.from);if(typeof Z==="string"&&this.config.from&&!A(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"&&!A(X.table,f)){let G=this.getTableLikeFields(X.table);Y[_]=G}}}}return this.config.returningFields=Y,this.config.returning=C1(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:g1(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 j0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class S8 extends f{constructor(Y){super(S8.buildEmbeddedCount(Y.source,Y.filters).queryChunks);this.params=Y,this.mapWith(Number),this.session=Y.session,this.sql=S8.buildCount(Y.source,Y.filters)}sql;token;static[F]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(Y,Z){return O`(select count(*) from ${Y}${O.raw(" where ").if(Z)}${Z})`}static buildCount(Y,Z){return O`select count(*) as count from ${Y}${O.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 m5{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[F]="PgRelationalQueryBuilder";findMany(Y){return new p5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?Y:{},"many")}findFirst(Y){return new p5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?{...Y,limit:1}:{limit:1},"first")}}class p5 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[F]="PgRelationalQuery";_prepare(Y){return O0.startActiveSpan("drizzle.prepareQuery",()=>{let{query:Z,builtQuery:X}=this._toSQL();return this.session.prepareQuery(X,void 0,Y,!0,(_,G)=>{let $=_.map((W)=>y6(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 O0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class u5 extends $1{constructor(Y,Z,X,_){super();this.execute=Y,this.sql=Z,this.query=X,this.mapBatchResult=_}static[F]="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 P8{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 m5(X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[_],G,Y,Z);this.$cache={invalidate:async(_)=>{}}}static[F]="PgDatabase";query;$with=(Y,Z)=>{let X=this;return{as:(G)=>{if(typeof G==="function")G=G(new j8(X.dialect));return new Proxy(new E8(G.getSQL(),Z??("getSelectedFields"in G?G.getSelectedFields()??{}:{}),Y,!0),new j0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(Y,Z){return new S8({source:Y,filters:Z,session:this.session})}$cache;with(...Y){let Z=this;function X(Q){return new W1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y})}function _(Q){return new W1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:!0})}function G(Q,J){return new W1({fields:J??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:{on:Q}})}function $(Q){return new e6(Q,Z.session,Z.dialect,Y)}function W(Q){return new a6(Q,Z.session,Z.dialect,Y)}function H(Q){return new t6(Q,Z.session,Z.dialect,Y)}return{select:X,selectDistinct:_,selectDistinctOn:G,update:$,insert:W,delete:H}}select(Y){return new W1({fields:Y??void 0,session:this.session,dialect:this.dialect})}selectDistinct(Y){return new W1({fields:Y??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(Y,Z){return new W1({fields:Z??void 0,session:this.session,dialect:this.dialect,distinct:{on:Y}})}update(Y){return new e6(Y,this.session,this.dialect)}insert(Y){return new a6(Y,this.session,this.dialect)}delete(Y){return new t6(Y,this.session,this.dialect)}refreshMaterializedView(Y){return new g5(Y,this.session,this.dialect)}authToken;execute(Y){let Z=typeof Y==="string"?O.raw(Y):Y.getSQL(),X=this.dialect.sqlToQuery(Z),_=this.session.prepareQuery(X,void 0,void 0,!1);return new u5(()=>_.execute(void 0,this.authToken),Z,X,(G)=>_.mapResult(G,!0))}transaction(Y,Z){return this.session.transaction(Y,Z)}}class R3{static[F]="Cache"}class v8 extends R3{strategy(){return"all"}static[F]="NoopCache";async get(Y){return}async put(Y,Z,X,_){}async onMutate(Y){}}async function d5(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 c5{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[F]="PgPreparedQuery";joinsNotNullableMap;async queryWithCache(Y,Z,X){if(this.cache===void 0||A(this.cache,v8)||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 d5(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 d5(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 l5{constructor(Y){this.dialect=Y}static[F]="PgSession";execute(Y,Z){return O0.startActiveSpan("drizzle.operation",()=>{return O0.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 o5 extends P8{constructor(Y,Z,X,_=0){super(Y,Z,X);this.schema=X,this.nestedIndex=_}static[F]="PgTransaction";rollback(){throw new U5}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 O.raw(Z.join(" "))}setTransaction(Y){return this.session.execute(O`set transaction ${this.getTransactionConfigSQL(Y)}`)}}class N3 extends c5{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[F]="PostgresJsPreparedQuery";async execute(Y={}){return O0.startActiveSpan("drizzle.execute",async(Z)=>{let X=J5(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 O0.startActiveSpan("drizzle.driver.execute",()=>{return this.queryWithCache(G,X,async()=>{return await $.unsafe(G,X)})});let Q=await O0.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 O0.startActiveSpan("drizzle.mapResponse",()=>{return H?H(Q):Q.map((J)=>N7(_,J,W))})})}all(Y={}){return O0.startActiveSpan("drizzle.execute",async(Z)=>{let X=J5(this.params,Y);return Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X),O0.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 x8 extends l5{constructor(Y,Z,X,_={}){super(Z);this.client=Y,this.schema=X,this.options=_,this.logger=_.logger??new F5,this.cache=_.cache??new v8}static[F]="PostgresJsSession";logger;cache;prepareQuery(Y,Z,X,_,G,$,W){return new N3(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 x8(X,this.dialect,this.schema,this.options),G=new i5(this.dialect,_,this.schema);if(Z)await G.setTransaction(Z);return Y(G)})}}class i5 extends o5{constructor(Y,Z,X,_=0){super(Y,Z,X,_);this.session=Z}static[F]="PostgresJsTransaction";transaction(Y){return this.session.client.savepoint((Z)=>{let X=new x8(Z,this.dialect,this.schema,this.session.options),_=new i5(this.dialect,X,this.schema);return Y(_)})}}class I3 extends P8{static[F]="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 z5;else if(Z.logger!==!1)G=Z.logger;let $;if(Z.schema){let Q=rW(Z.schema,sW);$={fullSchema:Z.schema,schema:Q.tables,tableNamesMap:Q.tableNamesMap}}let W=new x8(Y,_,$,{logger:G,cache:Z.cache}),H=new I3(_,W,$);if(H.$client=Y,H.$cache=Z.cache,H.$cache)H.$cache.invalidate=Z.cache?.onMutate;return H}function YY(...Y){if(typeof Y[0]==="string"){let Z=I2(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=I2($,W);return K2(H,_)}let G=I2(Z);return K2(G,_)}return K2(Y[0],Y[1])}((Y)=>{function Z(X){return K2({options:{parsers:{},serializers:{}}},X)}Y.mock=Z})(YY||(YY={}));var n5={};qH(n5,{users:()=>l4,untrackedUserColumnNames:()=>AE,twoFactorMethod:()=>q3,trackedUserColumnName:()=>wE,trackableUserColumnNames:()=>B3,signInHistory:()=>NE,role:()=>K3,players:()=>r5,passwordResetAttempts:()=>IE,games:()=>XY,banishedIps:()=>TE,accountActions:()=>RE,accountAction:()=>C3});function B4(){return a0({length:24}).$type()}function T3(Y){return O`lower(${Y})`}var ZY=O`TO_CHAR(NOW() AT TIME ZONE 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"')`,K3=F8("role",["admin","user"]),l4=I4("users",{id:q1().primaryKey().defaultRandom(),username:a0({length:16}).notNull(),emailOffered:a0({length:254}).notNull(),emailVerified:a0({length:254}),password:a0({length:254}),createdAtIso:B4().notNull().default(ZY),createdIp:a0({length:45}).notNull(),isActive:M8().notNull().default(!1),verifiedAtIso:B4(),userRole:K3().default("user")},(Y)=>[f5("usernameUniqueIndex").on(T3(Y.username)),f5("emailVerifiedUniqueIndex").on(T3(Y.emailVerified))]),AE=["id","createdAtIso","createdIp","isActive","verifiedAtIso"],B3=["username","emailOffered","emailVerified","password","userRole"],wE=F8("trackedUserColumnName",B3),C3=F8("accountAction",["cooldown","confirmEmail","signIn","resetPassword"]),RE=I4("accountActions",{userId:q1().references(()=>l4.id).primaryKey(),action:C3().notNull(),code:a0({length:254}).notNull(),wrongCodeCount:A8().notNull().default(0),expiresAtIso:B4().notNull()}),XY=I4("games",{id:q1().primaryKey().defaultRandom()}),r5=I4("players",{userId:q1().notNull().references(()=>l4.id,{onDelete:"cascade"}),gameId:q1().notNull().references(()=>XY.id,{onDelete:"cascade"}),score:A8().notNull()},(Y)=>[NW({name:"players_userId_gameId_pk",columns:[Y.userId,Y.gameId]})]),NE=I4("signInHistory",{id:q1().primaryKey().defaultRandom(),userId:q1().references(()=>l4.id,{onDelete:"cascade"}),signInTimeIso:B4().notNull().default(ZY),ipAddress:a0({length:45}).notNull(),userAgent:a0({length:1024}),successful:M8().notNull().default(!1)}),q3=F8("twoFactorMethod",["email","phone"]),IE=I4("passwordResetAttempts",{id:q1().primaryKey().defaultRandom(),userId:q1().notNull().references(()=>l4.id,{onDelete:"cascade"}),requestedIp:a0({length:45}).notNull(),requestedAtIso:B4().notNull().default(ZY),succeededIp:a0({length:45}),succeededAtIso:B4(),verificationMethod:q3().notNull()}),TE=I4("banishedIps",{ip:a0({length:45}).primaryKey(),reason:a0({length:2048}).notNull(),banishedAtIso:B4().notNull().default(ZY),banishedUntilIso:B4()});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class s5{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(KE.resolve(__dirname,"notify_update.sql"));let Y=[d0(l4),d0(XY),d0(r5)];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:b1.POSTGRES_HOST,port:b1.POSTGRES_PORT,user:b1.POSTGRES_USER,password:b1.POSTGRES_PASSWORD,database:b1.POSTGRES_DATABASE}){this.options=Z,this.sql=I2(Z),this.drizzle=YY(this.sql,{schema:n5,logger:Y})}observe(Y,Z){if(!this.observers.has(Y))this.observers.set(Y,new W0);this.observers.get(Y).subscribe("SINGLETON",Z)}}var _Y={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 BE(Y){return Number.parseInt(Y,10)}var CE=E1(_Y),qE=CE.keyof().pipe((Y)=>BE(Y)),j3=E1([qE,"string"]);var a5=new t9,{logger:L1}=a5;Object.assign(console,L1,{log:L1.info});L1.info("ready");var t5=P3(import.meta.dir,"..","app"),rx=new s5({logQuery(Y,Z){L1.info("\uD83D\uDCDD query",Y,Z)}});vE({hostname:"0.0.0.0",port:b1.FRONTEND_PORT??3333,...w6??void 0,async fetch(Y){try{let Z=new Date,X=new URL(Y.url);if(L1.info(Y.method,X.pathname),X.pathname==="/")return new Response(Bun.file(P3(t5,"index.html")));if(X.pathname==="/index.html")return Response.redirect("/");let _=SE(t5,X.pathname),G=PE(_);if(!G.startsWith(t5))throw[403,"Access Denied"];if(!await S3(G).exists())return Response.redirect("/");return new Response(S3(G))}catch(Z){let X=j3(Z);if(X instanceof E1.errors===!1){let[_,G]=X,W=`${_Y[_]}. ${G}`;return L1.info(`\u274C ${_}: ${W}`),new Response(W,{status:_})}if(Z instanceof Error)L1.error(Z.message);else{let _=A6(Z);L1.error("frontend server threw",_)}return new Response(_Y[500],{status:500})}}});function GY(){L1.info("\uD83D\uDEEC frontend server exiting"),process.exit(0)}process.on("SIGINT",()=>{L1.info("\u2757 received SIGINT; exiting gracefully"),GY()});process.on("SIGTERM",()=>{L1.info("\u2757 received SIGTERM; exiting gracefully"),GY()});process.on("exit",()=>{L1.info("\u2757 received exit; exiting gracefully"),GY()});a5.on("timeToStop",()=>{L1.info('\u2757 backend server received signal "timeToStop"; exiting gracefully'),GY()});var{version:xE}=await Bun.file(jE.resolve(import.meta.dir,"../package.json")).json();L1.info(`\uD83D\uDEEB frontend v${xE} running at http://localhost:${b1.FRONTEND_PORT}/`);a5.emit("alive");