tempest.games 0.2.35 → 0.2.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,76 +1,76 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var NH=Object.create;var{getPrototypeOf:IH,defineProperty:QY,getOwnPropertyNames:BH}=Object;var CH=Object.prototype.hasOwnProperty;var vE=(Y,Z,X)=>{X=Y!=null?NH(IH(Y)):{};let _=Z||!Y||!Y.__esModule?QY(X,"default",{value:Y,enumerable:!0}):X;for(let G of BH(Y))if(!CH.call(_,G))QY(_,G,{get:()=>Y[G],enumerable:!0});return _};var xE=(Y,Z)=>()=>(Z||Y((Z={exports:{}}).exports,Z),Z.exports);var TH=(Y,Z)=>{for(var X in Z)QY(Y,X,{get:Z[X],enumerable:!0,configurable:!0,set:(_)=>Z[X]=()=>_})};var hE=(Y,Z)=>()=>(Y&&(Z=Y(Y=0)),Z);var fE=import.meta.require;import qE,{join as KE,normalize as jE,resolve as j$}from"path";var U4=(Y)=>Array.isArray(Y)?Y:[Y],zX=(Y,Z)=>{let X=[[],[]];for(let _ of Y)if(Z(_))X[0].push(_);else X[1].push(_);return X},g2=Array,s1=(Y,Z)=>Y.includes(Z),FX=(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},a1=(Y,Z)=>{if(Z===void 0||Z===null)return Y??[];if(Y===void 0||Y===null)return U4(Z);return Y.concat(Z)},UX=(...Y)=>Y.reduce(a1,[]),u1=(Y,Z,X)=>{if(Y===void 0)return Array.isArray(Z)?Z:[Z];let _=X?.isEqual??((G,W)=>G===W);for(let G of U4(Z))if(!Y.some((W)=>_(W,G)))Y.push(G);return Y},EX=(Y,Z)=>Y.reduce((X,_)=>{let G=_[Z];return X[G]=Z0(X[G],_),X},{}),t1=(Y,Z,X)=>Y.length===Z.length&&Y.every(X?.isEqual?(_,G)=>X.isEqual(_,Z[G]):(_,G)=>_===Z[G]);var Q1=(Y,Z)=>k0(Y)===Z,k0=(Y)=>{let Z=typeof Y;return Z==="object"?Y===null?"null":"object":Z==="function"?"object":Z},z1={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},OX={...z1,function:"a function"};class DX extends Error{}var _0=(Y)=>K4(Y,DX),K4=(Y,Z=Error)=>{throw new Z(Y)};class S8 extends Error{name="ParseError"}var w=(Y)=>K4(Y,S8),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,z]of Q)if(typeof J==="object")X[J.group]=Z0(X[J.group],z);else X[J]=z}return G?Object.values(X):X};var zY=Object.entries;var g0=(Y,Z)=>(Y in Z),n4=(Y,Z)=>(Z in Y);class FY{constructor(Y){Object.assign(this,Y)}}var LX=class{};class v8 extends LX{}var qH=(Y,Z)=>{let X={},_={},G;for(G in Y)if(G in Z)X[G]=Y[G];else _[G]=Y[G];return[X,_]};var VX=(Y,Z)=>qH(Y,Z)[1],d1=(Y)=>Object.keys(Y).length===0,j4=(Y)=>[...Object.entries(Y),...Object.getOwnPropertySymbols(Y).map((Z)=>[Z,Y[Z]])],MX=(Y,Z)=>Object.defineProperties(Y,Object.getOwnPropertyDescriptors(Z)),AX=(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"),wX=(Y)=>Object.values(Y).filter((Z)=>{if(typeof Z==="number")return!0;return typeof Y[Z]!=="number"});var UY={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},EY=globalThis.File??Blob,OY={ArrayBuffer,Blob,File:EY,FormData,Headers,Request,Response,URL},KH={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},P4={...UY,...OY,...KH,String,Number,Boolean},x8=(Y)=>{let Z=Object.getPrototypeOf(Y);while(Z?.constructor&&(!g0(Z.constructor.name,P4)||!(Y instanceof P4[Z.constructor.name])))Z=Object.getPrototypeOf(Z);let X=Z?.constructor?.name;if(X===void 0||X==="Object")return;return X},h8=(Y)=>typeof Y==="object"&&Y!==null?x8(Y)??"object":k0(Y);var E0=Array.isArray,jH={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"},PH={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"},SH={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"},RX={...jH,...PH,...SH},f8=(Y)=>{let Z=Object(Y).name??null;return Z&&g0(Z,P4)&&P4[Z]===Y?Z:null};var DY=(Y,Z)=>{let X=Y.prototype;while(X!==null){if(X===Z.prototype)return!0;X=Object.getPrototypeOf(X)}return!1};var NX=(Y)=>IX(Y,new Map),IX=(Y,Z)=>{if(typeof Y!=="object"||Y===null)return Y;if(Z?.has(Y))return Z.get(Y);let X=f8(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 W in G){let $=G[W];if("get"in $||"set"in $)continue;$.value=IX($.value,Z)}}return Object.defineProperties(_,G),_};var vH=(Y)=>{let Z=M1;return()=>Z===M1?Z=Y():Z},E4=(Y)=>typeof Y==="function"&&Y.length===0;var BX=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 wH=Object.create;var{getPrototypeOf:RH,defineProperty:QY,getOwnPropertyNames:NH}=Object;var IH=Object.prototype.hasOwnProperty;var PE=(Y,Z,X)=>{X=Y!=null?wH(RH(Y)):{};let _=Z||!Y||!Y.__esModule?QY(X,"default",{value:Y,enumerable:!0}):X;for(let G of NH(Y))if(!IH.call(_,G))QY(_,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)QY(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],QX=(Y,Z)=>{let X=[[],[]];for(let _ of Y)if(Z(_))X[0].push(_);else X[1].push(_);return X},y8=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,[]),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},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 Q1=(Y,Z)=>b0(Y)===Z,b0=(Y)=>{let Z=typeof Y;return Z==="object"?Y===null?"null":"object":Z==="function"?"object":Z},U1={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},EX={...U1,function:"a function"};class OX extends Error{}var _0=(Y)=>q4(Y,OX),q4=(Y,Z=Error)=>{throw new Z(Y)};class S2 extends Error{name="ParseError"}var w=(Y)=>q4(Y,S2),P1=(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 UY=Object.entries;var y0=(Y,Z)=>(Y in Z),r4=(Y,Z)=>(Z in Y);class zY{constructor(Y){Object.assign(this,Y)}}var VX=class{};class P2 extends VX{}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 DX=(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]])],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=P1("represents an uninitialized value"),AX=(Y)=>Object.values(Y).filter((Z)=>{if(typeof Z==="number")return!0;return typeof Y[Z]!=="number"});var FY={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},EY=globalThis.File??Blob,OY={ArrayBuffer,Blob,File:EY,FormData,Headers,Request,Response,URL},BH={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},S4={...FY,...OY,...BH,String,Number,Boolean},v2=(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},x2=(Y)=>typeof Y==="object"&&Y!==null?v2(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"},wX={...CH,...qH,...jH},f2=(Y)=>{let Z=Object(Y).name??null;return Z&&y0(Z,S4)&&S4[Z]===Y?Z:null};var VY=(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=f2(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 SH=(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 CX=vH(()=>{try{return new Function("return false")()}catch{return!0}});var XO=v1("brand");var TX=v1("arkInferred");var WO=v1("args");class a0{constructor(){}}var xH=()=>{try{return((new Error().stack?.split(`
8
- `)[2]?.trim()||"").match(/\(?(.+?)(?::\d+:\d+)?\)?$/)?.[1]||"unknown").replace(/^file:\/\//,"")}catch{return"unknown"}},hH=globalThis.process?.env??{},qX={fileName:xH,env:hH};var KX=(Y)=>Y[0].toUpperCase()+Y.slice(1);var LY=(Y)=>new RegExp(fH(Y),typeof Y==="string"?"":Y.flags);var fH=(Y)=>{return`^(?:${typeof Y==="string"?Y:Y.source})$`};var e1={negativeLookahead:(Y)=>`(?!${Y})`,nonCapturingGroup:(Y)=>`(?:${Y})`},b8="\\",O4={" ":1,"\n":1,"\t":1};var bH=/^-0\.?0*$/.source,PX=/[1-9]\d*/.source,kH=/\.\d+/.source,gH=/\.\d*[1-9]/.source,SX=(Y)=>LY(e1.negativeLookahead(bH)+e1.nonCapturingGroup("-?"+e1.nonCapturingGroup(e1.nonCapturingGroup("0|"+PX)+e1.nonCapturingGroup(Y.decimalPattern)+"?")+(Y.allowDecimalOnly?"|"+Y.decimalPattern:"")+"?")),jX=SX({decimalPattern:gH,allowDecimalOnly:!1}),yH=jX.test.bind(jX),y2=SX({decimalPattern:kH,allowDecimalOnly:!0}),UO=y2.test.bind(y2),pH=/^-?\d*\.?\d*$/,mH=(Y)=>Y.length!==0&&pH.test(Y),k8=LY(e1.negativeLookahead("^-0$")+"-?"+e1.nonCapturingGroup(e1.nonCapturingGroup("0|"+PX))),uH=k8.test.bind(k8),VY=/^-?\d+$/,dH=VY.test.bind(VY),vX={number:"a number",bigint:"a bigint",integer:"an integer"},xX=(Y,Z)=>`'${Y}' was parsed as ${vX[Z]} but could not be narrowed to a literal value. Avoid unnecessary leading or trailing zeros and other abnormal notation`,cH=(Y,Z)=>Z==="number"?yH(Y):uH(Y),lH=(Y,Z)=>Z==="number"?Number(Y):Number.parseInt(Y),iH=(Y,Z)=>Z==="number"?mH(Y):dH(Y),hX=(Y,Z)=>MY(Y,"number",Z),fX=(Y,Z)=>MY(Y,"number",{...Z,strict:!0}),bX=(Y,Z)=>MY(Y,"integer",Z),MY=(Y,Z,X)=>{let _=lH(Y,Z);if(!Number.isNaN(_)){if(iH(Y,Z)){if(X?.strict)return cH(Y,Z)?_:w(xX(Y,Z));return _}}return X?.errorOnFail?w(X?.errorOnFail===!0?`Failed to parse ${vX[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(k8.test(Z))return X;if(VY.test(Z))return w(xX(Y,"bigint"))};var oH="0.46.0",nH={version:oH,filename:qX.fileName(),FileConstructor:EY},S4=nH,gX=new Map,AY=Object.create(null),g8=(Y)=>{let Z=gX.get(Y);if(Z)return Z;let X=rH(Y);if(AY[X])X=`${X}${AY[X]++}`;else AY[X]=1;return S4[X]=Y,gX.set(Y,X),X},D4=(Y)=>/^[$A-Z_a-z][\w$]*$/.test(Y),rH=(Y)=>{switch(typeof Y){case"object":{if(Y===null)break;let Z=x8(Y)??"object";return Z[0].toLowerCase()+Z.slice(1)}case"function":return D4(Y.name)?Y.name:"fn";case"symbol":return Y.description&&D4(Y.description)?Y.description:"symbol"}return _0(`Unexpected attempt to register serializable value of type ${k0(Y)}`)};var y8=(Y)=>typeof Y==="string"?JSON.stringify(Y):typeof Y==="bigint"?`${Y}n`:`${Y}`;var yX=(Y,Z={})=>p8(Y,{onUndefined:"$ark.undefined",onBigInt:(X)=>`$ark.bigint-${X}`,...Z},[]);var n=(Y,Z)=>{switch(k0(Y)){case"object":let X=Y,_=X.constructor.name;return _==="Object"||_==="Array"?Z?.quoteKeys===!1?p2(X,Z?.indent??0,""):JSON.stringify(p8(X,r4,[]),null,Z?.indent):p2(X,Z?.indent??0,"");case"symbol":return r4.onSymbol(Y);default:return y8(Y)}},p2=(Y,Z,X)=>{if(typeof Y==="function")return r4.onFunction(Y);if(typeof Y!=="object"||Y===null)return y8(Y);let _=X+" ".repeat(Z);if(Array.isArray(Y)){if(Y.length===0)return"[]";let W=Y.map(($)=>p2($,Z,_)).join(`,
7
+ }`)}}};class v1{constructor(Y,...[Z]){return Object.assign(Object.setPrototypeOf(Y.bind(Z?.bind??this),this.constructor.prototype),Z?.attach)}}var TX=SH(()=>{try{return new Function("return false")()}catch{return!0}});var ZO=P1("brand");var KX=P1("arkInferred");var GO=P1("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??{},BX={fileName:PH,env:vH};var CX=(Y)=>Y[0].toUpperCase()+Y.slice(1);var DY=(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})`},h2="\\",O4={" ":1,"\n":1,"\t":1};var fH=/^-0\.?0*$/.source,jX=/[1-9]\d*/.source,hH=/\.\d+/.source,kH=/\.\d*[1-9]/.source,SX=(Y)=>DY(e1.negativeLookahead(fH)+e1.nonCapturingGroup("-?"+e1.nonCapturingGroup(e1.nonCapturingGroup("0|"+jX)+e1.nonCapturingGroup(Y.decimalPattern)+"?")+(Y.allowDecimalOnly?"|"+Y.decimalPattern:"")+"?")),qX=SX({decimalPattern:kH,allowDecimalOnly:!1}),bH=qX.test.bind(qX),g8=SX({decimalPattern:hH,allowDecimalOnly:!0}),zO=g8.test.bind(g8),yH=/^-?\d*\.?\d*$/,gH=(Y)=>Y.length!==0&&yH.test(Y),k2=DY(e1.negativeLookahead("^-0$")+"-?"+e1.nonCapturingGroup(e1.nonCapturingGroup("0|"+jX))),pH=k2.test.bind(k2),LY=/^-?\d+$/,mH=LY.test.bind(LY),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`,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),xX=(Y,Z)=>MY(Y,"number",Z),fX=(Y,Z)=>MY(Y,"number",{...Z,strict:!0}),hX=(Y,Z)=>MY(Y,"integer",Z),MY=(Y,Z,X)=>{let _=dH(Y,Z);if(!Number.isNaN(_)){if(cH(Y,Z)){if(X?.strict)return uH(Y,Z)?_:w(vX(Y,Z));return _}}return X?.errorOnFail?w(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(k2.test(Z))return X;if(LY.test(Z))return w(vX(Y,"bigint"))};var lH="0.46.0",oH={version:lH,filename:BX.fileName(),FileConstructor:EY},P4=oH,bX=new Map,AY=Object.create(null),b2=(Y)=>{let Z=bX.get(Y);if(Z)return Z;let X=iH(Y);if(AY[X])X=`${X}${AY[X]++}`;else AY[X]=1;return P4[X]=Y,bX.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=v2(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 y2=(Y)=>typeof Y==="string"?JSON.stringify(Y):typeof Y==="bigint"?`${Y}n`:`${Y}`;var yX=(Y,Z={})=>g2(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?p8(X,Z?.indent??0,""):JSON.stringify(g2(X,n4,[]),null,Z?.indent):p8(X,Z?.indent??0,"");case"symbol":return n4.onSymbol(Y);default:return y2(Y)}},p8=(Y,Z,X)=>{if(typeof Y==="function")return n4.onFunction(Y);if(typeof Y!=="object"||Y===null)return y2(Y);let _=X+" ".repeat(Z);if(Array.isArray(Y)){if(Y.length===0)return"[]";let $=Y.map((W)=>p8(W,Z,_)).join(`,
9
9
  `+_);return Z?`[
10
- ${_}${W}
11
- ${X}]`:`[${W}]`}let G=Y.constructor.name;if(G==="Object"){let W=j4(Y).map(([$,H])=>{let Q=typeof $==="symbol"?r4.onSymbol($):D4($)?$:JSON.stringify($),J=p2(H,Z,_);return`${_}${Q}: ${J}`});if(W.length===0)return"{}";return Z?`{
12
- ${W.join(`,
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=p8(H,Z,_);return`${_}${Q}: ${J}`});if($.length===0)return"{}";return Z?`{
12
+ ${$.join(`,
13
13
  `)}
14
- ${X}}`:`{${W.join(", ")}}`}if(Y instanceof Date)return v4(Y);if("expression"in Y&&typeof Y.expression==="string")return Y.expression;return G},r4={onCycle:()=>"(cycle)",onSymbol:(Y)=>`Symbol(${g8(Y)})`,onFunction:(Y)=>`Function(${g8(Y)})`},p8=(Y,Z,X)=>{switch(k0(Y)){case"object":{let _=Y;if("toJSON"in _&&typeof _.toJSON==="function")return _.toJSON();if(typeof _==="function")return r4.onFunction(_);if(X.includes(_))return"(cycle)";let G=[...X,_];if(Array.isArray(_))return _.map(($)=>p8($,Z,G));if(_ instanceof Date)return _.toDateString();let W={};for(let $ in _)W[$]=p8(_[$],Z,G);for(let $ of Object.getOwnPropertySymbols(_))W[Z.onSymbol?.($)??$.toString()]=p8(_[$],Z,G);return W}case"symbol":return r4.onSymbol(Y);case"bigint":return Z.onBigInt?.(Y)??`${Y}n`;case"undefined":return Z.onUndefined??"undefined";case"string":return Y.replaceAll("\\","\\\\");default:return Y}},v4=(Y)=>{let Z=Y.getFullYear(),X=Y.getMonth(),_=Y.getDate(),G=Y.getHours(),W=Y.getMinutes(),$=Y.getSeconds(),H=Y.getMilliseconds();if(X===0&&_===1&&G===0&&W===0&&$===0&&H===0)return`${Z}`;let Q=`${sH[X]} ${_}, ${Z}`;if(G===0&&W===0&&$===0&&H===0)return Q;let J=Y.toLocaleTimeString(),z=J.endsWith(" AM")||J.endsWith(" PM")?J.slice(-3):"";if(z)J=J.slice(0,-z.length);if(H)J+=`.${tH(H,3)}`;else if(aH.test(J))J=J.slice(0,-3);return`${J+z}, ${Q}`},sH=["January","February","March","April","May","June","July","August","September","October","November","December"],aH=/:\d\d:00$/,tH=(Y,Z)=>String(Y).padStart(Z,"0");var pX=(Y,Z,...[X])=>{let _=X?.stringifySymbol??n,G=Y;switch(typeof Z){case"string":G=D4(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(`${n(Z)} must be a PropertyKey or stringifyNonKey must be passed to options`)}return G},Y4=(Y,...Z)=>Y.reduce((X,_)=>pX(X,_,...Z),"");class m8 extends g2{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"?n(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=pX(Y,X),Z.push(Y);return this.cache.stringifyAncestors=Z}}class wY{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]===b8)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 RY="$ark",eH=2;while(RY in globalThis)RY=`$ark${eH++}`;var mX=RY;globalThis[mX]=S4;var B=S4,YJ=(Y)=>`${mX}.${Y}`,q0=(Y)=>YJ(g8(Y));class m2 extends v8{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 NY(Y,Z)}index(Y,Z=!1){return uX(`${Y}`,Z)}line(Y){return this.body+=`${" ".repeat(this.indentation)}${Y}
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(${b2(Y)})`,onFunction:(Y)=>`Function(${b2(Y)})`},g2=(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)=>g2(W,Z,G));if(_ instanceof Date)return _.toDateString();let $={};for(let W in _)$[W]=g2(_[W],Z,G);for(let W of Object.getOwnPropertySymbols(_))$[Z.onSymbol?.(W)??W.toString()]=g2(_[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 gX=(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,_)=>gX(X,_,...Z),"");class p2 extends y8{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=gX(Y,X),Z.push(Y);return this.cache.stringifyAncestors=Z}}class wY{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]===h2)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=P1("implementedTraits");var RY="$ark",tH=2;while(RY in globalThis)RY=`$ark${tH++}`;var pX=RY;globalThis[pX]=P4;var T=P4,aH=(Y)=>`${pX}.${Y}`,C0=(Y)=>aH(b2(Y));class m8 extends P2{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 NY(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 BX(...this.argNames,this.body)}}var Z4=(Y)=>Q1(Y,"object")||typeof Y==="symbol"?q0(Y):y8(Y),NY=(Y,Z=!1)=>{if(typeof Y==="string"&&D4(Y))return`${Z?"?":""}.${Y}`;return uX(ZJ(Y),Z)},ZJ=(Y)=>typeof Y==="symbol"?q0(Y):JSON.stringify(Y),uX=(Y,Z=!1)=>`${Z?"?.":""}[${Y}]`;class u8 extends m2{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 u2=(Y)=>o(Y,(Z,X)=>[Z,E0(X)?[...X]:X]),X1=v1("arkKind"),y=(Y,Z)=>Y?.[X1]===Z,V0=(Y)=>y(Y,"root")||y(Y,"constraint");var dX=["unit","proto","domain"],s4=["required","optional","index","sequence"],IY=["pattern","divisor","exactLength","max","min","maxLength","minLength","before","after"],d2=[...IY,...s4,"structure","predicate"],a4=["alias","union","morph","unit","intersection","proto","domain"],XJ=[...a4,...d2],c2=o(d2,(Y,Z)=>[Z,1]),cX=o([...s4,"undeclared"],(Y,Z)=>[Z,1]),lX=o(XJ,(Y,Z)=>[Z,Y]),t4=(Y)=>typeof Y==="string"&&(Y in lX);var e4=(Y)=>lX[Y],l2=(Y)=>a4.slice(e4(Y)+1),wD=[...l2("union"),"alias"],RD=[...l2("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)},L4=(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)=>n(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 iX extends Error{name="ToJsonSchemaError";code;context;constructor(Y,Z){super(n(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:iX,throw:(...Y)=>{throw new N0.Error(...Y)},throwInternalOperandError:(Y,Z)=>_0(`Unexpected JSON Schema input for ${Y}: ${n(Z)}`),defaultConfig:_J};B.config??={};var d8=(Y,Z)=>{if(!Z)return Y;let X={...Y},_;for(_ in Z){let G={...Y.keywords};if(_==="keywords"){for(let W in Z[_]){let $=Z.keywords[W];if($===void 0)continue;G[W]=typeof $==="string"?{description:$}:$}X.keywords=G}else if(_==="toJsonSchema")X[_]=BY(Y.toJsonSchema,Z.toJsonSchema);else if(t4(_))X[_]={...Y[_],...Z[_]};else X[_]=Z[_]}return X},BY=(Y,Z)=>{if(!Y)return Z??{};if(!Z)return Y;let X={...Y},_;for(_ in Z)if(_==="fallback")X.fallback=GJ(Y.fallback,Z.fallback);else X[_]=Z[_];return X},GJ=(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 V4 extends v8{[X1]="error";path;data;nodeConfig;input;ctx;constructor({prefixPath:Y,relativePath:Z,...X},_){super();this.input=X,this.ctx=_,MX(this,X);let G=_.data;if(X.code==="union")X.errors=X.errors.flatMap(($)=>{let H=$.hasCode("union")?$.errors:[$];if(!Y&&!Z)return H;return H.map((Q)=>Q.transform((J)=>({...J,path:UX(Y,J.path,Z)})))});this.nodeConfig=_.config[this.code];let W=[...X.path??_.path];if(Z)W.push(...Z);if(Y)W.unshift(...Y);this.path=new m8(...W),this.data="data"in X?X.data:G}transform(Y){return new V4(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 F1 extends g2{[X1]="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 CY(this)}add(Y){if(this.includes(Y))return;this._add(Y)}transform(Y){let Z=new F1(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 V4({...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
- `)}_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 V4({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 CY extends Error{name="TraversalError";constructor(Y){if(Y.length===1)super(Y.summary);else super(`
19
- `+Y.map((Z)=>` \u2022 ${WJ(Z)}`).join(`
20
- `));Object.defineProperty(this,"arkErrors",{value:Y,enumerable:!1})}}var WJ=(Y)=>Y.toString().split(`
17
+ `):this.body} }`}compile(){return new IX(...this.argNames,this.body)}}var Z4=(Y)=>Q1(Y,"object")||typeof Y==="symbol"?C0(Y):y2(Y),NY=(Y,Z=!1)=>{if(typeof Y==="string"&&V4(Y))return`${Z?"?":""}.${Y}`;return mX(eH(Y),Z)},eH=(Y)=>typeof Y==="symbol"?C0(Y):JSON.stringify(Y),mX=(Y,Z=!1)=>`${Z?"?.":""}[${Y}]`;class m2 extends m8{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 u8=(Y)=>i(Y,(Z,X)=>[Z,E0(X)?[...X]:X]),Z1=P1("arkKind"),g=(Y,Z)=>Y?.[Z1]===Z,L0=(Y)=>g(Y,"root")||g(Y,"constraint");var uX=["unit","proto","domain"],s4=["required","optional","index","sequence"],IY=["pattern","divisor","exactLength","max","min","maxLength","minLength","before","after"],d8=[...IY,...s4,"structure","predicate"],t4=["alias","union","morph","unit","intersection","proto","domain"],YJ=[...t4,...d8],c8=i(d8,(Y,Z)=>[Z,1]),dX=i([...s4,"undeclared"],(Y,Z)=>[Z,1]),cX=i(YJ,(Y,Z)=>[Z,Y]),a4=(Y)=>typeof Y==="string"&&(Y in cX);var e4=(Y)=>cX[Y],l8=(Y)=>t4.slice(e4(Y)+1),AV=[...l8("union"),"alias"],wV=[...l8("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+" }"},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 lX 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:lX,throw:(...Y)=>{throw new N0.Error(...Y)},throwInternalOperandError:(Y,Z)=>_0(`Unexpected JSON Schema input for ${Y}: ${r(Z)}`),defaultConfig:ZJ};T.config??={};var u2=(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[_]=TY(Y.toJsonSchema,Z.toJsonSchema);else if(a4(_))X[_]={...Y[_],...Z[_]};else X[_]=Z[_]}return X},TY=(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=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 P2{[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 p2(...$),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 z1 extends y8{[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 KY(this)}add(Y){if(this.includes(Y))return;this._add(Y)}transform(Y){let Z=new z1(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
+ `)}_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 KY 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(`
21
21
  `).join(`
22
- `);class h1{path=[];errors=new F1(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 m8(...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 V4(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 W=V0(G),$=G(_===void 0?this.root:_[X],this);if($ instanceof V4){this.errors.add($);break}if($ instanceof F1){if(!W)this.errors.merge($);break}if(_===void 0)this.root=$;else _[X]=$;this.applyQueuedMorphs()}}}var U1=(Y,Z,X)=>{if(!X)return Z();X.path.push(Y);let _=Z();return X.path.pop(),_};class l8 extends x1{attachments;$;onFail;includesTransform;includesContextualPredicate;isCyclic;allowsRequiresContext;rootApplyStrategy;contextFreeMorph;rootApply;referencesById;shallowReferences;flatRefs;flatMorphs;allows;get shallowMorphs(){return[]}constructor(Y,Z){super((_,G,W=this.onFail)=>{if(G)return this.traverseApply(_,G),G.hasError()?G.errors:G.data;return this.rootApply(_,W)},{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)=>QJ(_,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 W=0;W<G.length;W++){let $=G[W];if(!this.flatRefs.some((H)=>rX(H,$))){this.flatRefs.push($);for(let H of $.node.branches)if(H.hasKind("morph")||H.hasKind("intersection")&&H.structure?.structuralMorph!==void 0)this.flatMorphs.push({path:$.path,propString:$.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 h1(_,this.$.resolvedConfig)):(_)=>this.traverseAllows(_)}createRootApply(){switch(this.rootApplyStrategy){case"allows":return(Z,X)=>{if(this.allows(Z))return Z;let _=new h1(Z,this.$.resolvedConfig);return this.traverseApply(Z,_),_.finalize(X)};case"contextual":return(Z,X)=>{let _=new h1(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 h1(Z,this.$.resolvedConfig);return this.traverseApply(Z,_),_.finalize(X)};case"branchedOptimistic":return this.createBranchedOptimisticRootApply();default:return this.rootApplyStrategy,_0(`Unexpected rootApplyStrategy ${this.rootApplyStrategy}`)}}compiledMeta=JJ(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 W=_;Z[X]=E0(W)?W.map(($)=>$[Y]):W[Y]}else Z[X]=_}return this.$.node(this.kind,Z)}toJSON(){return this.json}toString(){return`Type<${this.expression}>`}equals(Y){let Z=V0(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)K4(`${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))K4(`${this.kind} node was not one of asserted kinds ${Y}`);return this}isBasis(){return s1(dX,this.kind)}isConstraint(){return s1(d2,this.kind)}isStructural(){return s1(s4,this.kind)}isRefinement(){return s1(IY,this.kind)}isRoot(){return s1(a4,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=c8.normalize(Y);return this._select(Z)}_select(Y){let Z=c8.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 c8.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,z)=>{if(!this.impl.keys[J].child)return[J,z];let E=z;if(!E0(E)){let V=E._transform(Y,Z);return V?[J,V]:[]}if(E.length===0)return[J,z];let D=E.flatMap((V)=>{return V._transform(Y,Z)??[]});return D.length?[J,D]:[]});delete Z.seen[this.id];let W=Object.assign(G,{meta:this.meta}),$=Z.selected&&!Z.selected.includes(this)?W:Y(this.kind,W,Z);if($===null)return null;if(V0($))return _=$;let H=Object.keys($);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 $))return Z.undeclaredKeyHandling?{...$,value:B.intrinsic.unknown}:null;if(this.kind==="morph")$.in??=B.intrinsic.unknown;return _=X.node(this.kind,$,Z.parseOptions)}configureReferences(Y,Z="references"){let X=c8.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),W=G&&U4(G),$=X.boundary==="child"?(H,Q)=>Q.root.children.includes(H):X.boundary==="shallow"?(H)=>H.kind!=="structure":()=>!0;return this.$.finalize(this.transform(_,{shouldTransform:$,selected:W}))}}var c8={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)K4(nX(Z,X));return Y},find:(Y)=>Y[0],assertFind:(Y,Z,X)=>{if(Y.length===0)K4(nX(Z,X));return Y[0]}},normalize:(Y)=>typeof Y==="function"?{boundary:"references",method:"filter",where:Y}:typeof Y==="string"?g0(Y,c8.applyBoundary)?{method:"filter",boundary:Y}:{boundary:"references",method:"filter",kind:Y}:{boundary:"references",method:"filter",...Y}},nX=(Y,Z)=>`${Y} had no references matching ${n(Z)}.`,$J=(Y)=>Y4(Y,{stringifyNonKey:(Z)=>Z.expression}),HJ=/"(\$ark\.[^"]+)"/g,JJ=(Y)=>JSON.stringify(Y).replaceAll(HJ,"$1"),f1=(Y,Z)=>({path:Y,node:Z,propString:$J(Y)}),rX=(Y,Z)=>Y.propString===Z.propString&&Y.node.equals(Z.node),TY=(Y,Z)=>u1(Y,Z,{isEqual:rX}),QJ=(Y,Z)=>u1(Y,Z,{isEqual:(X,_)=>X.equals(_)});class S extends Array{static init(Y,Z,X,_){return new S({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 KY(`Intersection${_&&` at ${_}`} of ${sX(Z,X)}`)}return`The following intersections result in unsatisfiable types:
23
- \u2022 ${this.map(({path:Y,l:Z,r:X})=>`${Y}: ${sX(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 S))return new S(...Y);return Y}withPrefixKey(Y,Z){return this.map((X)=>({...X,path:[Y,...X.path],optional:X.optional||Z==="optional"}))}toNeverIfDisjoint(){return B.intrinsic.never}}var sX=(Y,Z)=>`${qY(Y)} and ${qY(Z)}`,qY=(Y)=>V0(Y)?Y.expression:E0(Y)?Y.map(qY).join(" | ")||"never":String(Y),KY=(Y)=>`${Y} results in an unsatisfiable type`;var Y8={},E1=(Y,Z,X)=>M0(Y,Z,{$:X,invert:!1,pipe:!1}),i8=(Y,Z,X)=>M0(Y,Z,{$:X,invert:!1,pipe:!0}),M0=(Y,Z,X)=>{let _=X.pipe?"|>":"&",G=`${Y.hash}${_}${Z.hash}`;if(Y8[G]!==void 0)return Y8[G];if(!X.pipe){let H=`${Z.hash}${_}${Y.hash}`;if(Y8[H]!==void 0){let Q=Y8[H],J=Q instanceof S?Q.invert():Q;return Y8[G]=J,J}}let W=!X.pipe||!Y.includesTransform&&!Z.includesTransform;if(W&&Y.equals(Z))return Y;let $=W?jY(Y,Z,X):Y.hasKindIn(...a4)?zJ(Y,Z,X):jY(Y,Z,X);if(V0($)){if(Y.equals($))$=Y;else if(Z.equals($))$=Z}return Y8[G]=$,$},jY=(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 W=G(Z,Y,{...X,invert:!X.invert});if(W instanceof S)W=W.invert();return W}},zJ=(Y,Z,X)=>Y.includesTransform||Z.includesTransform?X.invert?aX(Z,Y,X):aX(Y,Z,X):jY(Y,Z,X),aX=(Y,Z,X)=>Y.distribute((_)=>FJ(_,Z,X),(_)=>{let G=_.filter(V0);if(G.length===0)return S.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 W;if(G.length===1){let H=G[0];if(!W)return H;return X.$.node("morph",{...H.inner,in:H.in.configure(W,"self")})}let $={branches:G};if(W)$.meta=W;return X.$.parseSchema($)}),FJ=(Y,Z,X)=>{if(Y.hasKind("morph")){let G=[...Y.morphs];if(Y.lastMorphIfNode){let W=M0(Y.lastMorphIfNode,Z,X);if(W instanceof S)return W;G[G.length-1]=W}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 S)return G;return X.$.node("morph",{morphs:[Z],in:G})}return X.$.node("morph",{morphs:[Z],in:Y})};class I1 extends l8{constructor(Y,Z){super(Y,Z);Object.defineProperty(this,X1,{value:"constraint",enumerable:!1})}impliedSiblings;intersect(Y){return E1(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 L4(this.errorContext)}}var t0=(Y)=>(Z,X)=>{if(E0(Z)){if(Z.length===0)return;let G=Z.map((W)=>X.$.node(Y,W));if(Y==="predicate")return G;return G.sort((W,$)=>W.hash<$.hash?-1:1)}let _=X.$.node(Y,Z);return _.hasOpenIntersection()?[_]:_},Z8=(Y)=>{let Z=Y.r.shift();if(!Z){let _=Y.l.length===0&&Y.kind==="structure"?B.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 S)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 S)return G;if(!X){if(G.isRoot())return Y.roots.push(G),Y.l.splice(_),Z8(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 Z8(Y)},X8=(Y)=>{return Object.entries(Y).flatMap(([X,_])=>(X in c2)?_:[]).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},tX=(...Y)=>w(eX(...Y)),eX=(Y,Z,X)=>{let _=X.hasKind("morph")?"a morph":X.isUnknown()?"unknown":X.exclude(Z).defaultShortDescription;return`${KX(Y)} operand must be ${Z.description} (was ${_})`};var Y_=(Y,Z,X)=>new M4(Y,Z,X,X,null);class i2 extends x1{}class M4 extends x1{[X1]="generic";paramDefs;bodyDef;$;arg$;baseInstantiation;hkt;description;constructor(Y,Z,X,_,G){super((...W)=>{let $=o(this.names,(H,Q)=>{let J=this.arg$.parse(W[H]);if(!J.extends(this.constraints[H]))w(EJ(Q,this.constraints[H].expression,J.expression));return[Q,J]});if(this.defIsLazy()){let H=this.bodyDef($);return this.$.parse(H)}return this.$.parse(Z,{args:$})});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 i2}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,B.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 EJ=(Y,Z,X)=>`${Y} must be assignable to ${Z} (was ${X})`;var OJ=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 Z_ extends I1{serializedPredicate=q0(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=L4(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 PY={implementation:OJ,Node:Z_};var DJ=r({kind:"divisor",collapsibleKey:"rule",keys:{rule:{parse:(Y)=>Number.isInteger(Y)?Y:w(LJ(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 X_ extends X4{traverseAllows=(Y)=>Y%this.rule===0;compiledCondition=`data % ${this.rule} === 0`;compiledNegation=`data % ${this.rule} !== 0`;impliedBasis=B.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:DJ,Node:X_};var LJ=(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=RJ[this.kind];compiledActual=this.boundOperandKind==="value"?"data":this.boundOperandKind==="length"?"data.length":"data.valueOf()";comparator=NJ(this.kind,this.exclusive);numericLimit=this.rule.valueOf();expression=`${this.comparator} ${this.rule}`;compiledCondition=`${this.compiledActual} ${this.comparator} ${this.numericLimit}`;compiledNegation=`${this.compiledActual} ${MJ[this.comparator]} ${this.numericLimit}`;stringLimit=this.boundOperandKind==="date"?IJ(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 MJ={"<":">=","<=":">",">":"<=",">=":"<"},AJ={min:"max",minLength:"maxLength",after:"before"},o2={parse:(Y)=>Y||void 0},n2=(Y)=>(Z)=>{if(typeof Z==="number")return{rule:Z};let{exclusive:X,..._}=Z;return X?{..._,rule:Y==="minLength"?_.rule+1:_.rule-1}:_},r2=(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}:_},s2=(Y)=>typeof Y==="string"||typeof Y==="number"?new Date(Y):Y,wJ=(Y,Z)=>`${Y} bound must be a positive integer (was ${Z})`,_8=(Y)=>(Z)=>{if(!Number.isInteger(Z)||Z<0)w(wJ(Y,Z));return Z},RJ={min:"value",max:"value",minLength:"length",maxLength:"length",after:"date",before:"date"},NJ=(Y,Z)=>`${g0(Y,AJ)?">":"<"}${Z?"":"="}`,IJ=(Y)=>typeof Y==="string"?Y:new Date(Y).toLocaleString(),__=(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:s2,serialize:(Y)=>Y.toISOString()}},normalize:r2("after"),defaults:{description:(Y)=>`${Y.collapsibleLimitString} or later`,actual:v4},intersections:{after:(Y,Z)=>Y.isStricterThan(Z)?Y:Z}});class G_ extends A1{impliedBasis=B.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 vY={implementation:BJ,Node:G_};var CJ=r({kind:"before",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:s2,serialize:(Y)=>Y.toISOString()}},normalize:r2("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:S.init("range",Y,Z)}});class W_ extends A1{collapsibleLimitString=v4(this.rule);traverseAllows=(Y)=>Y<=this.rule;impliedBasis=B.intrinsic.Date.internal;reduceJsonSchema(Y,Z){return Z.fallback.date({code:"date",base:Y,before:this.rule})}}var xY={implementation:CJ,Node:W_};var TJ=r({kind:"exactLength",collapsibleKey:"rule",keys:{rule:{parse:_8("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)=>S.init("unit",X.$.node("unit",{unit:Y.rule}),X.$.node("unit",{unit:Z.rule}),{path:["length"]}),minLength:(Y,Z)=>Y.rule>=Z.rule?Y:S.init("range",Y,Z),maxLength:(Y,Z)=>Y.rule<=Z.rule?Y:S.init("range",Y,Z)}});class $_ extends X4{traverseAllows=(Y)=>Y.length===this.rule;compiledCondition=`data.length === ${this.rule}`;compiledNegation=`data.length !== ${this.rule}`;impliedBasis=B.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 hY={implementation:TJ,Node:$_};var qJ=r({kind:"max",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:o2},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:S.init("range",Y,Z)},obviatesBasisDescription:!0});class H_ extends A1{impliedBasis=B.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:qJ,Node:H_};var KJ=r({kind:"maxLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:_8("maxLength")}},reduce:(Y,Z)=>Y.rule===0?Z.node("exactLength",Y):void 0,normalize:n2("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:S.init("range",Y,Z)}});class J_ extends A1{impliedBasis=B.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 bY={implementation:KJ,Node:J_};var jJ=r({kind:"min",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:o2},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 Q_ extends A1{impliedBasis=B.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:jJ,Node:Q_};var PJ=r({kind:"minLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:_8("minLength")}},reduce:(Y)=>Y.rule===0?B.intrinsic.unknown:void 0,normalize:n2("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 z_ extends A1{impliedBasis=B.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 gY={implementation:PJ,Node:z_};var F_={min:kY.implementation,max:fY.implementation,minLength:gY.implementation,maxLength:bY.implementation,exactLength:hY.implementation,after:vY.implementation,before:xY.implementation},U_={min:kY.Node,max:fY.Node,minLength:gY.Node,maxLength:bY.Node,exactLength:hY.Node,after:vY.Node,before:xY.Node};var SJ=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 E_ 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=B.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:SJ,Node:E_};var o8=(Y,Z)=>{let X=vJ(Y);if(Z&&!Z.includes(X))return w(`Root of kind ${X} should be one of ${Z}`);return X},vJ=(Y)=>{if(y(Y,"root"))return Y.kind;if(typeof Y==="string")return Y[0]==="$"?"alias":(Y in z1)?"domain":"proto";if(typeof Y==="function")return"proto";if(typeof Y!=="object"||Y===null)return w(O_(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 c2)))return"intersection";if("proto"in Y)return"proto";if("domain"in Y)return"domain";return w(O_(Y))},O_=(Y)=>`${n(Y)} is not a valid type schema`,D_={},xJ=(Y)=>E0(Y)?Y.map((Z)=>Z.collapsibleJson):Y.collapsibleJson,_1={};B.nodesByRegisteredId=_1;var pY=(Y)=>{return D_[Y]??=0,`${Y}${++D_[Y]}`},mY=(Y)=>{let Z=G8[Y.kind],X=Z.applyConfig?.(Y.def,Y.$.resolvedConfig)??Y.def,_={},{meta:G,...W}=X,$=G===void 0?{}:typeof G==="string"?{description:G}:G,H=zY(W).sort(([J],[z])=>t4(J)?t4(z)?e4(J)-e4(z):1:t4(z)?-1:J<z?-1:1).filter(([J,z])=>{if(J.startsWith("meta.")){let E=J.slice(5);return $[E]=z,!1}return!0});for(let J of H){let z=J[0],E=Z.keys[z];if(!E)return w(`Key ${z} is not valid on ${Y.kind} schema`);let D=E.parse?E.parse(J[1],Y):J[1];if(D!==M1&&(D!==void 0||E.preserveUndefined))_[z]=D}if(Z.reduce&&!Y.prereduced){let J=Z.reduce(_,Y.$);if(J){if(J instanceof S)return J.throw();return hJ(J,$)}}return uY({id:Y.id,kind:Y.kind,inner:_,meta:$,$:Y.$})},uY=({id:Y,kind:Z,inner:X,meta:_,$:G,ignoreCache:W})=>{let $=G8[Z],H=zY(X),Q=[],J={};for(let[b,f]of H){let h=$.keys[b],I=h.serialize??(h.child?xJ:N1);if(J[b]=I(f),h.child===!0){let N=f;if(E0(N))Q.push(...N);else Q.push(N)}else if(typeof h.child==="function")Q.push(...h.child(f))}if($.finalizeInnerJson)J=$.finalizeInnerJson(J);let z={...J},E={};if(!d1(_))E=o(_,(b,f)=>[b,b==="examples"?f:N1(f)]),z.meta=a2(E,"description",!0);J=a2(J,$.collapsibleKey,!1);let D=JSON.stringify({kind:Z,...J});z=a2(z,$.collapsibleKey,!1);let V=a2(z,$.collapsibleKey,!0),R=JSON.stringify({kind:Z,...z});if(G.nodesByHash[R]&&!W)return G.nodesByHash[R];let A={id:Y,kind:Z,impl:$,inner:X,innerEntries:H,innerJson:J,innerHash:D,meta:_,metaJson:E,json:z,hash:R,collapsibleJson:V,children:Q};if(Z!=="intersection"){for(let b in X)if(b!=="in"&&b!=="out")A[b]=X[b]}let g=new V_[Z](A,G);return G.nodesByHash[R]=g},L_=(Y,Z)=>{if(Y.id===Z)return Y;if(V0(_1[Z]))_0(`Unexpected attempt to overwrite node id ${Z}`);return uY({id:Z,kind:Y.kind,inner:Y.inner,meta:Y.meta,$:Y.$,ignoreCache:!0})},hJ=(Y,Z,X)=>{if(X&&V0(_1[X]))_0(`Unexpected attempt to overwrite node id ${X}`);return uY({id:X??pY(Z.alias??Y.kind),kind:Y.kind,inner:Y.inner,meta:Z,$:Y.$})},a2=(Y,Z,X)=>{let _=Object.keys(Y);if(_.length===1&&_[0]===Z){let G=Y[Z];if(X)return G;if(Q1(G,"object")&&(Object.keys(G).length===1||Array.isArray(G)))return G}return Y};var n8=(Y,Z,X)=>{if(Y.key!==Z.key)return null;let _=Y.key,G=M0(Y.value,Z.value,X),W=Y.required||Z.required?"required":"optional";if(G instanceof S)if(W==="optional")G=B.intrinsic.never.internal;else return G.withPrefixKey(Y.key,Y.required&&Z.required?"required":"optional");if(W==="required")return X.$.node("required",{key:_,value:G});let $=Y.hasDefault()?Z.hasDefault()?Y.default===Z.default?Y.default:w(dY(Y.default,Z.default)):Y.default:Z.hasDefault()?Z.default:M1;return X.$.node("optional",{key:_,value:G,default:$})};class r8 extends I1{required=this.kind==="required";optional=this.kind==="optional";impliedBasis=B.intrinsic.object.internal;serializedKey=Z4(this.key);compiledKey=typeof this.key==="string"?this.key:this.serializedKey;flatRefs=Z0(this.value.flatRefs.map((Y)=>f1([this.key,...Y.path],Y.node)),f1([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 U1(this.key,()=>this.value.traverseAllows(Y[this.key],Z),Z);return this.optional};traverseApply=(Y,Z)=>{if(this.key in Y)U1(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 dY=(Y,Z)=>`Invalid intersection of default values ${n(Y)} & ${n(Z)}`;var fJ=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:n8}});class M_ extends r8{constructor(...Y){super(...Y);if("default"in this.inner)a8(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} = ${n(this.inner.default)}`:`${this.compiledKey}?: ${this.value.expression}`;defaultValueMorph=kJ(this);defaultValueMorphRef=this.defaultValueMorph&&q0(this.defaultValueMorph)}var s8={implementation:fJ,Node:M_},bJ={},kJ=(Y)=>{if(!Y.hasDefault())return;let Z=`{${Y.compiledKey}: ${Y.value.id} = ${N1(Y.default)}}`;return bJ[Z]??=cY(Y.key,Y.value,Y.default)},cY=(Y,Z,X)=>{if(typeof X==="function")return Z.includesTransform?(G,W)=>{return U1(Y,()=>Z(G[Y]=X(),W),W),G}:(G)=>{return G[Y]=X(),G};let _=Z.includesTransform?Z.assert(X):X;return Q1(_,"object")?(G,W)=>{return U1(Y,()=>Z(G[Y]=X,W),W),G}:(G)=>{return G[Y]=_,G}},a8=(Y,Z,X)=>{let _=E4(Z);if(Q1(Z,"object")&&!_)w(gJ(X));let G=Y.in(_?Z():Z);if(G instanceof F1){if(X===null)w(`Default ${G.summary}`);let W=G.transform(($)=>$.transform((H)=>({...H,prefixPath:[X]})));w(`Default for ${W.summary}`)}return Z},gJ=(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 B1 extends l8{constructor(Y,Z){super(Y,Z);Object.defineProperty(this,X1,{value:"root",enumerable:!1})}get internal(){return this}get "~standard"(){return{vendor:"arktype",version:1,validate:(Y)=>{let Z=this(Y);if(Z instanceof F1)return Z;return{value:Z}}}}as(){return this}brand(Y){if(Y==="")return w(yJ);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=BY(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 S)return X;return this.$.finalize(X)}rawIntersect(Y){return E1(this,Y,this.$)}toNeverIfDisjoint(){return this}and(Y){let Z=this.intersect(Y);return Z instanceof S?Z.throw():Z}rawAnd(Y){let Z=this.rawIntersect(Y);return Z instanceof S?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(),B.intrinsic.unknown.internal);if(Y.branches.length===0)w(KY(`keyof ${this.expression}`));return this._keyof=this.$.finalize(Y)}get props(){if(this.branches.length!==1)return w(pJ(this.expression));return[...this.applyStructuralOperation("props",[])[0]]}merge(Y){let Z=this.$.parseDefinition(Y);return this.$.schema(Z.distribute((X)=>this.applyStructuralOperation("merge",[A_(X)??w(w_("merge",X.expression))])))}applyStructuralOperation(Y,Z){return this.distribute((X)=>{if(X.equals(B.intrinsic.object)&&Y!=="merge")return X;let _=A_(X);if(!_)w(w_(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 S)}extends(Y){let Z=this.intersect(Y);return!(Z instanceof S)&&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 a8(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,W)=>{try{return _(G,W)}catch($){return W.error({code:"predicate",predicate:_,actual:`aborted due to error:
25
- ${$}
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=i8(this,Y,this.$);if(Z instanceof S)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 W=this.$.node("intersection",{[_.kind]:_}),$=Y==="out"?i8(this,W,this.$):E1(this,W,this.$);if($ instanceof S)$.throw();return this.$.finalize($)}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"?VX(G,{undeclared:1}):{...G,undeclared:Z}:G,X?void 0:{shouldTransform:(_)=>!s1(s4,_.kind)}))}hasEqualMorphs(Y){if(!this.includesTransform&&!Y.includesTransform)return!0;if(!t1(this.shallowMorphs,Y.shallowMorphs))return!1;if(!t1(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",W8(Y))}lessThan(Y){return this.constrain("max",W8(Y))}atLeastLength(Y){return this.constrain("minLength",Y)}atMostLength(Y){return this.constrain("maxLength",Y)}moreThanLength(Y){return this.constrain("minLength",W8(Y))}lessThanLength(Y){return this.constrain("maxLength",W8(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",W8(Y))}earlierThan(Y){return this.constrain("before",W8(Y))}}var yJ="Expected a non-empty brand name after #",W8=(Y)=>typeof Y==="object"&&!(Y instanceof Date)?{...Y,exclusive:!0}:{rule:Y,exclusive:!0},t8=(Y,Z)=>y(Z,"root")?y(Y,"root")?Y.extends(Z):Z.allows(Y):y(Y,"root")?Y.hasUnit(Z):Z===Y,A_=(Y)=>{if(Y.hasKind("morph"))return null;if(Y.hasKind("intersection"))return Y.inner.structure??(Y.basis?.domain==="object"?Y.$.bindReference(B.intrinsic.emptyStructure):null);if(Y.isBasis()&&Y.domain==="object")return Y.$.bindReference(B.intrinsic.emptyStructure);return null},pJ=(Y)=>`Props cannot be extracted from a union. Use .distribute to extract props from each branch instead. Received:
27
- ${Y}`,w_=(Y,Z)=>`${Y} operand must be an object (was ${Z})`;var c1=(Y,Z)=>o(l2(Y),(X,_)=>[_,Z]);var mJ=(Y)=>typeof Y==="string"?{reference:Y}:Y,R_=(Y)=>Y instanceof S?B.intrinsic.never.internal:Y,uJ=r({kind:"alias",hasAssociatedError:!1,collapsibleKey:"reference",keys:{reference:{serialize:(Y)=>Y.startsWith("$")?Y:`$ark.${Y}`},resolve:{}},normalize:mJ,defaults:{description:(Y)=>Y.reference},intersections:{alias:(Y,Z,X)=>X.$.lazilyResolve(()=>R_(M0(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(B.intrinsic.object))return S.init("assignability",B.intrinsic.object,Z);return X.$.lazilyResolve(()=>R_(M0(Y.resolution,Z,X)),`${Y.reference}${X.pipe?"=>":"&"}${Z.id}`)})}});class N_ extends B1{expression=this.reference;structure=void 0;get resolution(){let Y=this._resolve();return _1[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=_1[Y],X=[];while(y(Z,"context")){if(X.includes(Z.id))return w(dJ(Z.id,X));X.push(Z.id),Z=_1[Z.id]}if(!y(Z,"root"))return _0(`Unexpected resolution for reference ${this.reference}
22
+ `);class x1{path=[];errors=new z1(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 p2(...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 z1){if(!$)this.errors.merge(W);break}if(_===void 0)this.root=W;else _[X]=W;this.applyQueuedMorphs()}}}var F1=(Y,Z,X)=>{if(!X)return Z();X.path.push(Y);let _=Z();return X.path.pop(),_};class c2 extends v1{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)=>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 x1(_,this.$.resolvedConfig)):(_)=>this.traverseAllows(_)}createRootApply(){switch(this.rootApplyStrategy){case"allows":return(Z,X)=>{if(this.allows(Z))return Z;let _=new x1(Z,this.$.resolvedConfig);return this.traverseApply(Z,_),_.finalize(X)};case"contextual":return(Z,X)=>{let _=new x1(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 x1(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(uX,this.kind)}isConstraint(){return s1(d8,this.kind)}isStructural(){return s1(s4,this.kind)}isRefinement(){return s1(IY,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=d2.normalize(Y);return this._select(Z)}_select(Y){let Z=d2.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 d2.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=d2.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 d2={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(iX(Z,X));return Y},find:(Y)=>Y[0],assertFind:(Y,Z,X)=>{if(Y.length===0)q4(iX(Z,X));return Y[0]}},normalize:(Y)=>typeof Y==="function"?{boundary:"references",method:"filter",where:Y}:typeof Y==="string"?y0(Y,d2.applyBoundary)?{method:"filter",boundary:Y}:{boundary:"references",method:"filter",kind:Y}:{boundary:"references",method:"filter",...Y}},iX=(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"),f1=(Y,Z)=>({path:Y,node:Z,propString:GJ(Y)}),rX=(Y,Z)=>Y.propString===Z.propString&&Y.node.equals(Z.node),BY=(Y,Z)=>m1(Y,Z,{isEqual:rX}),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 qY(`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 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 nX=(Y,Z)=>`${CY(Y)} and ${CY(Z)}`,CY=(Y)=>L0(Y)?Y.expression:E0(Y)?Y.map(CY).join(" | ")||"never":String(Y),qY=(Y)=>`${Y} results in an unsatisfiable type`;var Y2={},E1=(Y,Z,X)=>M0(Y,Z,{$:X,invert:!1,pipe:!1}),l2=(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=$?jY(Y,Z,X):Y.hasKindIn(...t4)?JJ(Y,Z,X):jY(Y,Z,X);if(L0(W)){if(Y.equals(W))W=Y;else if(Z.equals(W))W=Z}return Y2[G]=W,W},jY=(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?sX(Z,Y,X):sX(Y,Z,X):jY(Y,Z,X),sX=(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 I1 extends c2{constructor(Y,Z){super(Y,Z);Object.defineProperty(this,Z1,{value:"constraint",enumerable:!1})}impliedSiblings;intersect(Y){return E1(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(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 c8)?_:[]).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},tX=(...Y)=>w(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 o8 extends v1{}class M4 extends v1{[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 o8}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,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 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 SY={implementation:FJ,Node:Y_};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 Z_ 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 PY={implementation:EJ,Node:Z_};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"},i8={parse:(Y)=>Y||void 0},r8=(Y)=>(Z)=>{if(typeof Z==="number")return{rule:Z};let{exclusive:X,..._}=Z;return X?{..._,rule:Y==="minLength"?_.rule+1:_.rule-1}:_},n8=(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}:_},s8=(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(),X_=(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:s8,serialize:(Y)=>Y.toISOString()}},normalize:n8("after"),defaults:{description:(Y)=>`${Y.collapsibleLimitString} or later`,actual:v4},intersections:{after:(Y,Z)=>Y.isStricterThan(Z)?Y:Z}});class __ 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 vY={implementation:NJ,Node:__};var IJ=n({kind:"before",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:s8,serialize:(Y)=>Y.toISOString()}},normalize:n8("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 G_ 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 xY={implementation:IJ,Node:G_};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 $_ 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 fY={implementation:TJ,Node:$_};var KJ=n({kind:"max",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:i8},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=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 hY={implementation:KJ,Node:W_};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:r8("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=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 kY={implementation:BJ,Node:H_};var CJ=n({kind:"min",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:i8},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=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 bY={implementation:CJ,Node:J_};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:r8("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=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 yY={implementation:qJ,Node:Q_};var U_={min:bY.implementation,max:hY.implementation,minLength:yY.implementation,maxLength:kY.implementation,exactLength:fY.implementation,after:vY.implementation,before:xY.implementation},z_={min:bY.Node,max:hY.Node,minLength:yY.Node,maxLength:kY.Node,exactLength:fY.Node,after:vY.Node,before:xY.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 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=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 gY={implementation:jJ,Node:F_};var o2=(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 U1)?"domain":"proto";if(typeof Y==="function")return"proto";if(typeof Y!=="object"||Y===null)return w(E_(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 c8)))return"intersection";if("proto"in Y)return"proto";if("domain"in Y)return"domain";return w(E_(Y))},E_=(Y)=>`${r(Y)} is not a valid type schema`,O_={},PJ=(Y)=>E0(Y)?Y.map((Z)=>Z.collapsibleJson):Y.collapsibleJson,X1={};T.nodesByRegisteredId=X1;var pY=(Y)=>{return O_[Y]??=0,`${Y}${++O_[Y]}`},mY=(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=UY($).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 uY({id:Y.id,kind:Y.kind,inner:_,meta:W,$:Y.$})},uY=({id:Y,kind:Z,inner:X,meta:_,$:G,ignoreCache:$})=>{let W=G2[Z],H=UY(X),Q=[],J={};for(let[k,h]of H){let f=W.keys[k],I=f.serialize??(f.child?PJ:N1);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:N1(h)]),U.meta=t8(E,"description",!0);J=t8(J,W.collapsibleKey,!1);let V=JSON.stringify({kind:Z,...J});U=t8(U,W.collapsibleKey,!1);let L=t8(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 D_[Z](M,G);return G.nodesByHash[R]=y},V_=(Y,Z)=>{if(Y.id===Z)return Y;if(L0(X1[Z]))_0(`Unexpected attempt to overwrite node id ${Z}`);return uY({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 uY({id:X??pY(Z.alias??Y.kind),kind:Y.kind,inner:Y.inner,meta:Z,$:Y.$})},t8=(Y,Z,X)=>{let _=Object.keys(Y);if(_.length===1&&_[0]===Z){let G=Y[Z];if(X)return G;if(Q1(G,"object")&&(Object.keys(G).length===1||Array.isArray(G)))return G}return Y};var i2=(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(dY(Y.default,Z.default)):Y.default:Z.hasDefault()?Z.default:M1;return X.$.node("optional",{key:_,value:G,default:W})};class r2 extends I1{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)=>f1([this.key,...Y.path],Y.node)),f1([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 F1(this.key,()=>this.value.traverseAllows(Y[this.key],Z),Z);return this.optional};traverseApply=(Y,Z)=>{if(this.key in Y)F1(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 dY=(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:i2}});class L_ extends r2{constructor(...Y){super(...Y);if("default"in this.inner)s2(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 n2={implementation:xJ,Node:L_},fJ={},hJ=(Y)=>{if(!Y.hasDefault())return;let Z=`{${Y.compiledKey}: ${Y.value.id} = ${N1(Y.default)}}`;return fJ[Z]??=cY(Y.key,Y.value,Y.default)},cY=(Y,Z,X)=>{if(typeof X==="function")return Z.includesTransform?(G,$)=>{return F1(Y,()=>Z(G[Y]=X(),$),$),G}:(G)=>{return G[Y]=X(),G};let _=Z.includesTransform?Z.assert(X):X;return Q1(_,"object")?(G,$)=>{return F1(Y,()=>Z(G[Y]=X,$),$),G}:(G)=>{return G[Y]=_,G}},s2=(Y,Z,X)=>{let _=E4(Z);if(Q1(Z,"object")&&!_)w(kJ(X));let G=Y.in(_?Z():Z);if(G instanceof z1){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 T1 extends c2{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 z1)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=TY(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 E1(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(qY(`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",[M_(X)??w(A_("merge",X.expression))])))}applyStructuralOperation(Y,Z){return this.distribute((X)=>{if(X.equals(T.intrinsic.object)&&Y!=="merge")return X;let _=M_(X);if(!_)w(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 s2(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:
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=l2(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 tX(Z,_.impliedBasis,this);let $=this.$.node("intersection",{[_.kind]:_}),W=Y==="out"?l2(this,$,this.$):E1(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 bJ="Expected a non-empty brand name after #",$2=(Y)=>typeof Y==="object"&&!(Y instanceof Date)?{...Y,exclusive:!0}:{rule:Y,exclusive:!0},t2=(Y,Z)=>g(Z,"root")?g(Y,"root")?Y.extends(Z):Z.allows(Y):g(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(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}`,A_=(Y,Z)=>`${Y} operand must be an object (was ${Z})`;var d1=(Y,Z)=>i(l8(Y),(X,_)=>[_,Z]);var gJ=(Y)=>typeof Y==="string"?{reference:Y}:Y,w_=(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(()=>w_(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(()=>w_(M0(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(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}
28
28
  Seen: [${X.join("->")}]
29
- Resolution: ${n(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}: ${n(Z)}`)}get defaultShortDescription(){return z1.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 dJ=(Y,Z)=>`Alias '${Y}' has a shallow resolution cycle: ${[...Z,Y].join("->")}`,e8={implementation:uJ,Node:N_};class x4 extends B1{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 L4(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 cJ=r({kind:"domain",hasAssociatedError:!0,collapsibleKey:"domain",keys:{domain:{},numberAllowsNaN:{}},normalize:(Y)=>typeof Y==="string"?{domain:Y}:n4(Y,"numberAllowsNaN")&&Y.domain!=="number"?w(t2.writeBadAllowNanMessage(Y.domain)):Y,applyConfig:(Y,Z)=>Y.numberAllowsNaN===void 0&&Y.domain==="number"&&Z.numberAllowsNaN?{...Y,numberAllowsNaN:!0}:Y,defaults:{description:(Y)=>z1[Y.domain],actual:(Y)=>Number.isNaN(Y)?"NaN":z1[k0(Y)]},intersections:{domain:(Y,Z)=>Y.domain==="number"&&Z.domain==="number"?Y.numberAllowsNaN?Z:Y:S.init("domain",Y,Z)}});class I_ extends x4{requiresNaNCheck=this.domain==="number"&&!this.numberAllowsNaN;traverseAllows=this.requiresNaNCheck?(Y)=>typeof Y==="number"&&!Number.isNaN(Y):(Y)=>k0(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 z1[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 t2={implementation:cJ,Node:I_,writeBadAllowNanMessage:(Y)=>`numberAllowsNaN may only be specified with domain "number" (was ${Y})`};var lJ=r({kind:"intersection",hasAssociatedError:!0,normalize:(Y)=>{if(V0(Y))return Y;let{structure:Z,...X}=Y,_=!!Z,G=Z??{},W=o(X,($,H)=>{if(g0($,cX)){if(_)w(`Flattened structure key ${$} cannot be specified alongside a root 'structure' key.`);return G[$]=H,[]}return[$,H]});if(y(G,"constraint")||!d1(G))W.structure=G;return W},finalizeInnerJson:({structure:Y,...Z})=>Q1(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,W=G.variadic&&Object.keys(G).length===1?G.variadic:G;return{...X,sequence:W}}},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)=>B_({},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: ${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 U1.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("->")}`,a2={implementation:pJ,Node:R_};class x4 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 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(a8.writeBadAllowNanMessage(Y.domain)):Y,applyConfig:(Y,Z)=>Y.numberAllowsNaN===void 0&&Y.domain==="number"&&Z.numberAllowsNaN?{...Y,numberAllowsNaN:!0}:Y,defaults:{description:(Y)=>U1[Y.domain],actual:(Y)=>Number.isNaN(Y)?"NaN":U1[b0(Y)]},intersections:{domain:(Y,Z)=>Y.domain==="number"&&Z.domain==="number"?Y.numberAllowsNaN?Z:Y:P.init("domain",Y,Z)}});class N_ 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 U1[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 a8={implementation:uJ,Node:N_,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,dX)){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})=>Q1(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)=>B_(Y.inner,Z.inner,X),...c1("intersection",(Y,Z,X)=>{if(Y.children.length===0)return Z;let{domain:_,proto:G,...W}=Y.inner,$=G??_,H=$?M0($,Z,X):Z;return H instanceof S?H:Y?.basis?.equals(H)?Y:Y.$.node("intersection",{...W,[H.kind]:H},{prereduced:!0})})}});class C_ extends B1{basis=this.inner.domain??this.inner.proto??null;refinements=this.children.filter((Y)=>Y.isRefinement());structure=this.inner.structure;expression=iJ(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 lY={implementation:lJ,Node:C_},iJ=(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},B_=(Y,Z,X)=>{let _={},G=Y.proto??Y.domain,W=Z.proto??Z.domain,$=G?W?M0(G,W,X):G:W;if($ instanceof S)return $;if($)_[$.kind]=$;return Z8({kind:"intersection",baseInner:_,l:X8(Y),r:X8(Z),roots:[],ctx:X})};var oJ=r({kind:"morph",hasAssociatedError:!1,keys:{in:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y)},morphs:{parse:U4,serialize:(Y)=>Y.map((Z)=>y(Z,"root")?Z.json:q0(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(nJ(Y.expression,Z.expression));let _=M0(Y.in,Z.in,X);if(_ instanceof S)return _;let G={morphs:Y.morphs};if(Y.declaredIn||Z.declaredIn){let W=M0(Y.in,Z.in,X);if(W instanceof S)return W.throw();else G.declaredIn=W}if(Y.declaredOut||Z.declaredOut){let W=M0(Y.out,Z.out,X);if(W instanceof S)return W.throw();else G.declaredOut=W}return _.distribute((W)=>X.$.node("morph",{...G,in:W}),X.$.parseSchema)},...c1("morph",(Y,Z,X)=>{let _=Y.inner.in?M0(Y.inner.in,Z,X):Z;return _ instanceof S?_:_.equals(Y.inner.in)?Y:X.$.node("morph",{...Y.inner,in:_})})}});class T_ extends B1{serializedMorphs=this.morphs.map(q0);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??B.intrinsic.unknown.internal}get out(){return this.declaredOut??this.introspectableOut??B.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 t1(this.morphs,Y.morphs,{isEqual:(Z,X)=>Z===X||y(Z,"root")&&y(X,"root")&&Z.equals(X)})}}var iY={implementation:oJ,Node:T_},nJ=(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),...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 T_ extends T1{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 lY={implementation:dJ,Node:T_},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},I_=(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 K_ extends T1{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 oY={implementation:lJ,Node:K_},oJ=(Y,Z)=>`The intersection of distinct morphs at a single path is indeterminate:
32
32
  Left: ${Y}
33
- Right: ${Z}`;var rJ=r({kind:"proto",hasAssociatedError:!0,collapsibleKey:"proto",keys:{proto:{serialize:(Y)=>f8(Y)??N1(Y)},dateAllowsInvalid:{}},normalize:(Y)=>{let Z=typeof Y==="string"?{proto:P4[Y]}:typeof Y==="function"?V0(Y)?Y:{proto:Y}:typeof Y.proto==="string"?{...Y,proto:P4[Y.proto]}:Y;if(typeof Z.proto!=="function")w(Y2.writeInvalidSchemaMessage(Z.proto));if(n4(Z,"dateAllowsInvalid")&&Z.proto!==Date)w(Y2.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?RX[Y.builtinName]:`an instance of ${Y.proto.name}`,actual:(Y)=>Y instanceof Date&&Y.toString()==="Invalid Date"?"an invalid Date":h8(Y)},intersections:{proto:(Y,Z)=>Y.proto===Date&&Z.proto===Date?Y.dateAllowsInvalid?Z:Y:DY(Y.proto,Z.proto)?Y:DY(Z.proto,Y.proto)?Z:S.init("proto",Y,Z),domain:(Y,Z)=>Z.domain==="object"?Y:S.init("domain",B.intrinsic.object.internal,Z)}});class q_ extends x4{builtinName=f8(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 Y2={implementation:rJ,Node:q_,writeBadInvalidDateMessage:(Y)=>`dateAllowsInvalid may only be specified with constructor Date (was ${Y.name})`,writeInvalidSchemaMessage:(Y)=>`instanceOf operand must be a function (was ${k0(Y)})`};var sJ=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 W of G)if(W.hasKind("morph")){let $=X.findIndex((H)=>H.hasKind("morph")&&H.hasEqualMorphs(W));if($===-1)X.push(W);else{let H=X[$];X[$]=Z.$.node("morph",{...H.inner,in:H.in.rawOr(W.in)})}}else X.push(W)}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=$Q(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,$8),expected:(Y)=>{let Z=EX(Y.errors,"propString"),X=Object.entries(Z).map(([_,G])=>{let W=[];for(let Q of G)u1(W,Q.expected);let $=$8(W),H=G.every((Q)=>Q.actual===G[0].actual)?G[0].actual:n(G[0].data);return`${_&&`${_} `}must be ${$}${H&&` (was ${H})`}`});return $8(X)},problem:(Y)=>Y.expected,message:(Y)=>Y.problem},intersections:{union:(Y,Z,X)=>{if(Y.isNever!==Z.isNever)return S.init("presence",Y,Z);let _;if(Y.ordered){if(Z.ordered)w(JQ(Y.expression,Z.expression));if(_=oY(Z.branches,Y.branches,X),_ instanceof S)_.invert()}else _=oY(Y.branches,Z.branches,X);if(_ instanceof S)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 S)return _;if(_.length===1)return _[0];return X.$.parseSchema(Y.ordered?{branches:_,ordered:!0}:{branches:_})})}});class P_ extends B1{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]=B.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,WQ);createBranchedOptimisticRootApply(){return(Y,Z)=>{let X=this.traverseOptimistic(Y);if(X!==M1)return X;let _=new h1(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,$8)}innerToJsonSchema(Y){if(this.branchGroups.length===1&&this.branchGroups[0].equals(B.intrinsic.boolean))return{type:"boolean"};let Z=this.branchGroups.map((X)=>X.toJsonSchemaRecurse(Y));if(Z.every((X)=>Object.keys(X).length===1&&n4(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 z=X[J],E=J==="default"?J:`case ${J}`;Y.line(`${E}: return ${z===!0?G?Y.data:z:G?`${Y.invoke(z)} ? ${z.contextFreeMorph?`${q0(z.contextFreeMorph)}(${Y.data})`:Y.data} : "${M1}"`:Y.invoke(z)}`)}return Y}),Y.traversalKind==="Allows"){Y.return(G?`"${M1}"`:!1);return}let W=$8(this.discriminant.kind==="domain"?_.map((J)=>{let z=J.slice(1,-1);return z==="function"?z1.object:z1[z]}):_),$=this.discriminant.path.map((J)=>typeof J==="symbol"?q0(J):JSON.stringify(J)),H=JSON.stringify(W),Q=this.discriminant.kind==="domain"?`${ZQ}[${Z}]`:`${XQ}(${Z})`;Y.line(`ctx.errorFromNodeContext({
33
+ Right: ${Z}`;var iJ=n({kind:"proto",hasAssociatedError:!0,collapsibleKey:"proto",keys:{proto:{serialize:(Y)=>f2(Y)??N1(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(e2.writeInvalidSchemaMessage(Z.proto));if(r4(Z,"dateAllowsInvalid")&&Z.proto!==Date)w(e2.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":x2(Y)},intersections:{proto:(Y,Z)=>Y.proto===Date&&Z.proto===Date?Y.dateAllowsInvalid?Z:Y:VY(Y.proto,Z.proto)?Y:VY(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 B_ extends x4{builtinName=f2(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 e2={implementation:iJ,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 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=FX(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(_=iY(Z.branches,Y.branches,X),_ instanceof P)_.invert()}else _=iY(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 _=iY(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]=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 x1(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"?U1.object:U1[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({
34
34
  code: "predicate",
35
35
  expected: ${H},
36
36
  actual: ${Q},
37
- relativePath: [${$}],
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?`${q0(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,$)=>[`${$.in.serializedValue}`,$.hasKind("morph")?$:!0]);return{kind:"unit",path:[],optionallyChainedPropString:"data",cases:G}}let Y=[];for(let G=0;G<this.branches.length-1;G++){let W=this.branches[G];for(let $=G+1;$<this.branches.length;$++){let H=this.branches[$],Q=E1(W.in,H.in,W.$);if(!(Q instanceof S))continue;for(let J of Q){if(!J.kind||J.optional)continue;let z,E;if(J.kind==="domain"){let{l:V,r:R}=J;z=`"${typeof V==="string"?V:V.domain}"`,E=`"${typeof R==="string"?R:R.domain}"`}else if(J.kind==="unit")z=J.l.serializedValue,E=J.r.serializedValue;else continue;let D=Y.find((V)=>t1(V.path,J.path)&&V.kind===J.kind);if(!D)Y.push({kind:J.kind,cases:{[z]:{branchIndices:[G],condition:J.l},[E]:{branchIndices:[$],condition:J.r}},path:J.path});else{if(D.cases[z])D.cases[z].branchIndices=u1(D.cases[z].branchIndices,G);else D.cases[z]??={branchIndices:[G],condition:J.l};if(D.cases[E])D.cases[E].branchIndices=u1(D.cases[E].branchIndices,$);else D.cases[E]??={branchIndices:[$],condition:J.r}}}}}let Z=this.ordered?eJ(Y,this.branches):Y;if(!Z.length)return null;let X=aJ(Z,this),_={};for(let G in X.best.cases){let W=tJ(X,G);if(W===null){_[G]=!0;continue}if(W.length===this.branches.length)return null;if(this.ordered)W.sort((Q,J)=>Q.originalIndex-J.originalIndex);let $=W.map((Q)=>Q.branch),H=$.length===1?$[0]:this.$.node("union",this.ordered?{branches:$,ordered:!0}:$);Object.assign(this.referencesById,H.referencesById),_[G]=H}if(X.defaultEntries.length){let G=X.defaultEntries.map((W)=>W.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 aJ=(Y,Z)=>{let X=Y.sort((W,$)=>Object.keys($.cases).length-Object.keys(W.cases).length)[0],_={kind:X.kind,path:X.path,optionallyChainedPropString:S_(X.path)},G=Z.branches.map((W,$)=>({originalIndex:$,branch:W}));return{best:X,location:_,defaultEntries:G,node:Z}},tJ=(Y,Z)=>{let X=Y.best.cases[Z],_=YQ(X.condition,Y.location.path,Y.node.$),G=[],W=[];for(let $=0;$<Y.defaultEntries.length;$++){let H=Y.defaultEntries[$];if(X.branchIndices.includes(H.originalIndex)){let Q=K_(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=K_(H.branch,Y.location);G?.push({originalIndex:H.originalIndex,branch:Q})}W.push(H)}}return Y.defaultEntries=W,G},eJ=(Y,Z)=>{return Y.filter((_)=>{let G=Object.values(_.cases).map((W)=>W.branchIndices);for(let W=0;W<G.length-1;W++){let $=G[W];for(let H=W+1;H<G.length;H++){let Q=G[H];for(let J of $)for(let z of Q)if(J>z){if(Z[J].overlaps(Z[z]))return!1}}}return!0})},YQ=(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 W=Z[G];_=X.node("intersection",typeof W==="number"?{proto:"Array",sequence:[...FX(W).map(($)=>({})),_]}:{domain:"object",required:[{key:W,value:_}]})}return _},S_=(Y)=>Y.reduce((Z,X)=>Z+NY(X,!0),"data"),ZQ=q0(OX),XQ=q0(n),nY={implementation:sJ,Node:P_},_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])}),GQ={delimiter:" | ",finalDelimiter:" | "},WQ=(Y)=>$8(Y,GQ),$8=(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={},W=Y.filter((H)=>G[H]?!1:G[H]=!0),$=W.pop();return`${W.join(X)}${W.length?_:""}${$}`},oY=(Y,Z,X)=>{let _=Z.map(()=>[]);for(let W=0;W<Y.length;W++){let $={};for(let H=0;H<Z.length;H++){if(_[H]===null)continue;if(Y[W].equals(Z[H])){_[H]=null,$={};break}let Q=M0(Y[W],Z[H],X);if(Q instanceof S)continue;if(Q.equals(Y[W])){_[H].push(Y[W]),$={};break}if(Q.equals(Z[H]))_[H]=null;else $[H]=Q}for(let H in $)_[H][W]=$[H]}let G=_.flatMap((W,$)=>W?.flatMap((H)=>H.branches)??Z[$]);return G.length===0?S.init("union",Y,Z):G},$Q=({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 W=E1(Y[_].in,Y[G].in,Y[0].$);if(W instanceof S)continue;if(!Z)HQ(Y[_],Y[G]);if(W.equals(Y[_].in))X[_]=!!Z;else if(W.equals(Y[G].in))X[G]=!1}return Y.filter((_,G)=>X[G])},HQ=(Y,Z)=>{if(!Y.includesTransform&&!Z.includesTransform)return;if(!t1(Y.shallowMorphs,Z.shallowMorphs))w(j_(Y.expression,Z.expression));if(!t1(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(j_(Y.expression,Z.expression))},K_=(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"}}),j_=(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=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=E1($.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:S_(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=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},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:[...UX($).map((W)=>({})),_]}:{domain:"object",required:[{key:$,value:_}]})}return _},S_=(Y)=>Y.reduce((Z,X)=>Z+NY(X,!0),"data"),eJ=C0(EX),YQ=C0(r),rY={implementation:rJ,Node:j_},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}`},iY=(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 $=E1(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(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)}))w(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}`,JQ=(Y,Z)=>`The intersection of two ordered unions is indeterminate:
41
+ Right: ${Z}`,WQ=(Y,Z)=>`The intersection of two ordered unions is indeterminate:
42
42
  Left: ${Y}
43
- Right: ${Z}`;var QQ=r({kind:"unit",hasAssociatedError:!0,keys:{unit:{preserveUndefined:!0,serialize:(Y)=>Y instanceof Date?Y.toISOString():N1(Y)}},normalize:(Y)=>Y,defaults:{description:(Y)=>n(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)=>S.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:B.intrinsic.object;if(Y.domain!==_.domain){let G=Y.domain==="undefined"||Y.domain==="null"||Y.domain==="boolean"?Y.domain:B.intrinsic[Y.domain];return S.init("domain",G,_)}}return S.init("assignability",Y,Z.hasKind("intersection")?Z.children.find((_)=>!_.allows(Y.unit)):Z)})}});class x_ extends x4{compiledValue=this.json.unit;serializedValue=typeof this.unit==="string"||this.unit instanceof Date?JSON.stringify(this.compiledValue):`${this.compiledValue}`;compiledCondition=v_(this.unit,this.serializedValue);compiledNegation=v_(this.unit,this.serializedValue,"negated");expression=n(this.unit);domain=k0(this.unit);get defaultShortDescription(){return this.domain==="object"?z1.object:this.description}innerToJsonSchema(Y){return this.unit===null?{type:"null"}:B.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:QQ,Node:x_},v_=(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 zQ=r({kind:"index",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{signature:{child:!0,parse:(Y,Z)=>{let X=Z.$.parseSchema(Y);if(!X.extends(B.intrinsic.key))return w(UQ(X.expression));let _=X.branches.filter((G)=>G.hasKind("unit"));if(_.length)return w(FQ(_.map((G)=>n(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 S?B.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 h_ extends I1{impliedBasis=B.intrinsic.object.internal;expression=`[${this.signature.expression}]: ${this.value.expression}`;flatRefs=Z0(this.value.flatRefs.map((Y)=>f1([this.signature,...Y.path],Y.node)),f1([this.signature],this.value));traverseAllows=(Y,Z)=>j4(Y).every((X)=>{if(this.signature.traverseAllows(X[0],Z))return U1(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))U1(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 sY={implementation:zQ,Node:h_},FQ=(Y)=>`Index keys ${Y.join(", ")} should be specified as named props.`,UQ=(Y)=>`Indexed key definition '${Y}' must be a string or symbol`;var EQ=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:n8,optional:n8}});class f_ extends r8{expression=`${this.compiledKey}: ${this.value.expression}`;errorContext=Object.freeze({code:"required",missingValueDescription:this.value.defaultShortDescription,relativePath:[this.key],meta:this.meta});compiledErrorContext=L4(this.errorContext)}var aY={implementation:EQ,Node:f_};var OQ=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 a8(_,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 w(MQ);if(Y.optionals?.length||Y.defaultables?.length)return w(eY)}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()??[],W=Y.optionals?.slice()??[],$=Y.postfix?.slice()??[];if(Y.variadic){while(W.at(-1)?.equals(Y.variadic))W.pop();if(W.length===0&&G.length===0)while(_.at(-1)?.equals(Y.variadic))_.pop(),X++;while($[0]?.equals(Y.variadic))$.shift(),X++}else if(W.length===0&&G.length===0)_.push(...$.splice(0));if(X!==Y.minVariadicLength||Y.prefix&&Y.prefix.length!==_.length)return Z.node("sequence",{...Y,prefix:_,defaultables:G,optionals:W,postfix:$,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} = ${n(X.default)}`:X.kind==="optionals"?`${X.node.nestableExpression}?`:X.kind==="variadic"?`...${X.node.nestableExpression}[]`:X.node.expression).join(", ")}]`}},intersections:{sequence:(Y,Z,X)=>{let _=Z2({l:Y.tuple,r:Z.tuple,disjoint:new S,result:[],fixedVariants:[],ctx:X}),G=_.disjoint.length===0?[_,..._.fixedVariants]:_.fixedVariants;return G.length===0?_.disjoint:G.length===1?X.$.node("sequence",b_(G[0].result)):X.$.node("union",G.map((W)=>({proto:Array,sequence:b_(W.result)})))}}});class k_ extends I1{impliedBasis=B.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=a1(this.variadic&&[this.variadic],this.postfix);flatRefs=this.addFlatRefs();addFlatRefs(){return TY(this.flatRefs,this.prevariadic.flatMap((Y,Z)=>Z0(Y.node.flatRefs.map((X)=>f1([`${Z}`,...X.path],X.node)),f1([`${Z}`],Y.node)))),TY(this.flatRefs,this.variadicOrPostfix.flatMap((Y)=>Z0(Y.flatRefs.map((Z)=>f1([B.intrinsic.nonNegativeIntegerString.internal,...Z.path],Z.node)),f1([B.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=LQ(this);defaultValueMorphsReference=this.defaultValueMorphs.length?q0(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++)U1(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(B.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=B.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 DQ={},LQ=(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(cY(G,W,$)),X+=`${G}: ${W.id} = ${N1($)}, `}return X+="]",DQ[X]??=Z},tY={implementation:OQ,Node:k_},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},b_=(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},{}),eY="A postfix required element cannot follow an optional or defaultable element",MQ="A postfix element requires a variadic element",Z2=(Y)=>{let[Z,...X]=Y.l,[_,...G]=Y.r;if(!Z||!_)return Y;let W=X.at(-1)?.kind==="postfix",$=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"&&$){let E=Z2({...Y,fixedVariants:[],r:G.map((D)=>({...D,kind:"prefix"}))});if(E.disjoint.length===0)Y.fixedVariants.push(E)}else if(_.kind==="prefix"&&Z.kind==="variadic"&&W){let E=Z2({...Y,fixedVariants:[],l:X.map((D)=>({...D,kind:"prefix"}))});if(E.disjoint.length===0)Y.fixedVariants.push(E)}let Q=M0(Z.node,_.node,Y.ctx);if(Q instanceof S)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:B.intrinsic.never.internal}];else if(H==="optionals"||H==="defaultables")return Y;else return Z2({...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(dY(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,z=Y.r.length;if(Z.kind!=="variadic"||J>=z&&(_.kind==="variadic"||z===1))Y.l=X;if(_.kind!=="variadic"||z>=J&&(Z.kind==="variadic"||J===1))Y.r=G;return Z2(Y)};var p_=(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??"{}"},AQ=p_("description"),wQ=p_("expression"),g_=(Y,Z,X)=>{let _=Y.required?"required":"optional";if(!Z.signature.allows(Y.key))return null;let G=E1(Y.value,Z.value,X);if(G instanceof S)return _==="optional"?X.node("optional",{key:Y.key,value:B.intrinsic.never.internal}):G.withPrefixKey(Y.key,Y.kind);return null},RQ=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:AQ},intersections:{structure:(Y,Z,X)=>{let _={...Y.inner},G={...Z.inner},W=new S;if(Y.undeclared){let Q=Y.keyof();for(let J of Z.requiredKeys)if(!Q.allows(J))W.add("presence",B.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 z=E1(Q,J.signature,X.$);if(z instanceof S)return[];let E=e2(z,J.value,X.$);if(E.required)G.required=a1(G.required,E.required);if(E.optional)G.optional=a1(G.optional,E.optional);return E.index??[]})}if(Z.undeclared){let Q=Z.keyof();for(let J of Y.requiredKeys)if(!Q.allows(J))W.add("presence",Y.propsByKey[J].value,B.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 z=E1(Q,J.signature,X.$);if(z instanceof S)return[];let E=e2(z,J.value,X.$);if(E.required)_.required=a1(_.required,E.required);if(E.optional)_.optional=a1(_.optional,E.optional);return E.index??[]})}let $={};if(Y.undeclared||Z.undeclared)$.undeclared=Y.undeclared==="reject"||Z.undeclared==="reject"?"reject":"delete";let H=Z8({kind:"structure",baseInner:$,l:X8(_),r:X8(G),roots:[],ctx:X});if(H instanceof S)W.push(...H);if(W.length)return W;return H}},reduce:(Y,Z)=>{if(Y.index){if(!(Y.required||Y.optional))return;let X=!1,_=Y.required??[],G=Y.optional??[],W=[...G];for(let $ of Y.index){for(let H of _){let Q=g_(H,$,Z);if(Q instanceof S)return Q}for(let[H,Q]of G.entries()){let J=g_(Q,$,Z);if(J instanceof S)return J;if(J===null)continue;W[H]=J,X=!0}}if(X)return Z.node("structure",{...Y,optional:W},{prereduced:!0})}}});class m_ extends I1{impliedBasis=B.intrinsic.object.internal;impliedSiblings=this.children.flatMap((Y)=>Y.impliedSiblings??[]);props=a1(this.required,this.optional);propsByKey=o(this.props,(Y,Z)=>[Z.key,Z]);propsByKeyReference=q0(this.propsByKey);expression=wQ(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(V0(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",W=o(X,($,H)=>($ in s8.implementation.keys)?[$,H]:[]);return Z[G]=Z0(Z[G],this.$.node(G,W)),Z},{}))}assertHasKeys(Y){let Z=Y.filter((X)=>!t8(X,this.keyof()));if(Z.length)return w(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 $ of this.index)if(t8(G,$.signature))X=X?.and($.value)??$.value}if(this.sequence&&t8(G,B.intrinsic.nonNegativeIntegerString))if(y(G,"root")){if(this.sequence.variadic)X=X?.and(this.sequence.element)??this.sequence.element}else{let $=Number.parseInt(G);if($<this.sequence.prevariadic.length){let H=this.sequence.prevariadic[$].node;X=X?.and(H)??H,_||=$<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(B.intrinsic.number))return w(TQ(G.expression,this.sequence.expression));return w(y_(this.expression,[G]))}let W=X.get(...Z);return _?W:W.or(B.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=u2(this.inner),_=(G)=>{let W=Z.some(($)=>t8(G,$));return Y==="pick"?W:!W};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 W=0;W<G.length;W++){let $=G[W];if(this.index){for(let H of this.index)if(H.signature.traverseAllows($,X)){if(Y==="Allows"){if(!U1($,()=>H.value.traverseAllows(Z[$],X),X))return!1}else if(U1($,()=>H.value.traverseApply(Z[$],X),X),X.failFast&&X.currentErrorCount>_)return!1}}if(this.undeclared==="reject"&&!this.declaresKey($)){if(Y==="Allows")return!1;if(X.errorFromNodeContext({code:"predicate",expected:"removed",actual:"",relativePath:[$],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&&B.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",IQ(this))}structuralMorphRef=this.structuralMorph&&q0(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=B.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(B.intrinsic.string)){Y.additionalProperties=_;continue}for(let G of X.signature.branches){if(!G.extends(B.intrinsic.string)){Y=Z.fallback.symbolKey({code:"symbolKey",base:Y,key:null,value:_,optional:!1});continue}let W={type:"string"};if(G.hasKind("morph"))W=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:$}=G.inner;if($){let H=Object.assign(W,{pattern:$[0].rule});for(let Q=1;Q<$.length;Q++)W=Z.fallback.patternIntersection({code:"patternIntersection",base:H,pattern:$[Q].rule});Y.patternProperties??={},Y.patternProperties[H.pattern]=_}}}if(this.undeclared&&!Y.additionalProperties)Y.additionalProperties=!1;return Y}}var YZ={},NQ=(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},IQ=(Y)=>{let Z=NQ(Y);if(!Z)return;if(YZ[Z])return YZ[Z];let X=(_,G)=>{for(let W=0;W<Y.defaultable.length;W++)if(!(Y.defaultable[W].key in _))Y.defaultable[W].defaultValueMorph(_,G);if(Y.sequence?.defaultables)for(let W=_.length-Y.sequence.prefixLength;W<Y.sequence.defaultables.length;W++)Y.sequence.defaultValueMorphs[W](_,G);if(Y.undeclared==="delete"){for(let W in _)if(!Y.declaresKey(W))delete _[W]}return _};return YZ[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 W=0;W<Z.defaultable.length;W++){let{serializedKey:$,defaultValueMorphRef:H}=Z.defaultable[W];G.if(`!(${$} in data)`,(Q)=>Q.line(`${H}${_}`))}if(Z.sequence?.defaultables)G.for(`i < ${Z.sequence.defaultables.length}`,(W)=>W.set("data[i]",5),`data.length - ${Z.sequence.prefixLength}`);if(Z.undeclared==="delete")G.forIn("data",(W)=>W.if(`!(${Z._compileDeclaresKey(W)})`,($)=>$.line("delete data[k]")));return G.return("data")})},ZZ={implementation:RQ,Node:m_},CQ=(Y)=>{if(y(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.`,e2=(Y,Z,X)=>{let[_,G]=zX(Y.branches,($)=>$.hasKind("unit"));if(!_.length)return{index:X.node("index",{signature:Y,value:Z})};let W={};for(let $ of _){let H=X.node("required",{key:$.unit,value:Z});W[H.kind]=Z0(W[H.kind],H)}if(G.length)W.index=X.node("index",{signature:G,value:Z});return W},qQ=(Y)=>y(Y,"root")?Y.expression:n(Y),y_=(Y,Z)=>`Key${Z.length===1?"":"s"} ${Z.map(qQ).join(", ")} ${Z.length===1?"does":"do"} not exist on ${Y}`;var G8={...F_,alias:e8.implementation,domain:t2.implementation,unit:rY.implementation,proto:Y2.implementation,union:nY.implementation,morph:iY.implementation,intersection:lY.implementation,divisor:SY.implementation,pattern:yY.implementation,predicate:PY.implementation,required:aY.implementation,optional:s8.implementation,index:sY.implementation,sequence:tY.implementation,structure:ZZ.implementation};B.defaultConfig=AX(Object.assign(o(G8,(Y,Z)=>[Y,Z.defaults]),{jitless:CX(),clone:NX,onUndeclaredKey:"ignore",exactOptionalPropertyTypes:!0,numberAllowsNaN:!1,dateAllowsInvalid:!1,onFail:null,keywords:{},toJsonSchema:N0.defaultConfig}));B.resolvedConfig=d8(B.defaultConfig,B.config);var V_={...U_,alias:e8.Node,domain:t2.Node,unit:rY.Node,proto:Y2.Node,union:nY.Node,morph:iY.Node,intersection:lY.Node,divisor:SY.Node,pattern:yY.Node,predicate:PY.Node,required:aY.Node,optional:s8.Node,index:sY.Node,sequence:tY.Node,structure:ZZ.Node};class H8 extends FY{get[X1](){return"module"}}var XZ=(Y,Z)=>new H8(o(Y,(X,_)=>[X,y(_,"module")?XZ(_,Z):Z.bindReference(_)]));var KQ=(Y)=>E0(Y)?Y:("branches"in Y)&&E0(Y.branches)?Y.branches:void 0,jQ=(Y,Z)=>w(`Node of kind ${Z} is not valid as a ${Y} definition`),u_=(Y)=>`#${Y} duplicates public alias ${Y}`,_Z={};B.ambient??={};var d_,l_="function $",PQ=(Y)=>i_(Y,o_(Y)),i_=(Y,Z)=>{let X=Z.write(l_,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 m2().return(Y.reduce((Z,X)=>{let _=new u8({kind:"Allows"}).indent();X.compile(_);let G=_.write(`${X.id}Allows`),W=new u8({kind:"Apply"}).indent();X.compile(W);let $=W.write(`${X.id}Apply`),H=`${Z}${G},
44
- ${$},
45
- `;if(!X.hasKind("union"))return H;let Q=new u8({kind:"Allows",optimistic:!0}).indent();X.compile(Q);let J=Q.write(`${X.id}Optimistic`);return`${H}${J},
43
+ Right: ${Z}`;var HQ=n({kind:"unit",hasAssociatedError:!0,keys:{unit:{preserveUndefined:!0,serialize:(Y)=>Y instanceof Date?Y.toISOString():N1(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 v_ extends x4{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=r(this.unit);domain=b0(this.unit);get defaultShortDescription(){return this.domain==="object"?U1.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 nY={implementation:HQ,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 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 x_ extends I1{impliedBasis=T.intrinsic.object.internal;expression=`[${this.signature.expression}]: ${this.value.expression}`;flatRefs=Z0(this.value.flatRefs.map((Y)=>f1([this.signature,...Y.path],Y.node)),f1([this.signature],this.value));traverseAllows=(Y,Z)=>j4(Y).every((X)=>{if(this.signature.traverseAllows(X[0],Z))return F1(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))F1(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 sY={implementation:JQ,Node:x_},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:i2,optional:i2}});class f_ extends r2{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 tY={implementation:zQ,Node:f_};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 s2(_,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 w(DQ);if(Y.optionals?.length||Y.defaultables?.length)return w(eY)}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 _=Y8({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=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 BY(this.flatRefs,this.prevariadic.flatMap((Y,Z)=>Z0(Y.node.flatRefs.map((X)=>f1([`${Z}`,...X.path],X.node)),f1([`${Z}`],Y.node)))),BY(this.flatRefs,this.variadicOrPostfix.flatMap((Y)=>Z0(Y.flatRefs.map((Z)=>f1([T.intrinsic.nonNegativeIntegerString.internal,...Z.path],Z.node)),f1([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++)F1(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(cY(G,$,W)),X+=`${G}: ${$.id} = ${N1(W)}, `}return X+="]",EQ[X]??=Z},aY={implementation:FQ,Node:k_},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},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},{}),eY="A postfix required element cannot follow an optional or defaultable element",DQ="A postfix element requires a variadic element",Y8=(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=Y8({...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=Y8({...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 Y8({...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(dY(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 Y8(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??"{}"},LQ=g_("description"),MQ=g_("expression"),b_=(Y,Z,X)=>{let _=Y.required?"required":"optional";if(!Z.signature.allows(Y.key))return null;let G=E1(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=E1(Q,J.signature,X.$);if(U instanceof P)return[];let E=e8(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=E1(Q,J.signature,X.$);if(U instanceof P)return[];let E=e8(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=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 n2.implementation.keys)?[W,H]:[]);return Z[G]=Z0(Z[G],this.$.node(G,$)),Z},{}))}assertHasKeys(Y){let Z=Y.filter((X)=>!t2(X,this.keyof()));if(Z.length)return w(y_(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(t2(G,W.signature))X=X?.and(W.value)??W.value}if(this.sequence&&t2(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(y_(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=u8(this.inner),_=(G)=>{let $=Z.some((W)=>t2(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(!F1(W,()=>H.value.traverseAllows(Z[W],X),X))return!1}else if(F1(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 YZ={},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(YZ[Z])return YZ[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 YZ[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")})},ZZ={implementation:AQ,Node:p_},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.`,e8=(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 $},KQ=(Y)=>g(Y,"root")?Y.expression:r(Y),y_=(Y,Z)=>`Key${Z.length===1?"":"s"} ${Z.map(KQ).join(", ")} ${Z.length===1?"does":"do"} not exist on ${Y}`;var G2={...U_,alias:a2.implementation,domain:a8.implementation,unit:nY.implementation,proto:e2.implementation,union:rY.implementation,morph:oY.implementation,intersection:lY.implementation,divisor:PY.implementation,pattern:gY.implementation,predicate:SY.implementation,required:tY.implementation,optional:n2.implementation,index:sY.implementation,sequence:aY.implementation,structure:ZZ.implementation};T.defaultConfig=MX(Object.assign(i(G2,(Y,Z)=>[Y,Z.defaults]),{jitless:TX(),clone:RX,onUndeclaredKey:"ignore",exactOptionalPropertyTypes:!0,numberAllowsNaN:!1,dateAllowsInvalid:!1,onFail:null,keywords:{},toJsonSchema:N0.defaultConfig}));T.resolvedConfig=u2(T.defaultConfig,T.config);var D_={...z_,alias:a2.Node,domain:a8.Node,unit:nY.Node,proto:e2.Node,union:rY.Node,morph:oY.Node,intersection:lY.Node,divisor:PY.Node,pattern:gY.Node,predicate:SY.Node,required:tY.Node,optional:n2.Node,index:sY.Node,sequence:aY.Node,structure:ZZ.Node};class H2 extends zY{get[Z1](){return"module"}}var XZ=(Y,Z)=>new H2(i(Y,(X,_)=>[X,g(_,"module")?XZ(_,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`),m_=(Y)=>`#${Y} duplicates public alias ${Y}`,_Z={};T.ambient??={};var u_,c_="function $",qQ=(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 m8().return(Y.reduce((Z,X)=>{let _=new m2({kind:"Allows"}).indent();X.compile(_);let G=_.write(`${X.id}Allows`),$=new m2({kind:"Apply"}).indent();X.compile($);let W=$.write(`${X.id}Apply`),H=`${Z}${G},
44
+ ${W},
45
+ `;if(!X.hasKind("union"))return H;let Q=new m2({kind:"Allows",optimistic:!0}).indent();X.compile(Q);let J=Q.write(`${X.id}Optimistic`);return`${H}${J},
46
46
  `},`{
47
- `)+"}");class Y6{config;resolvedConfig;name;get[X1](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(Y,Z){if(this.config=d8(B.config,Z),this.resolvedConfig=d8(B.resolvedConfig,Z),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(_Z).length}`,this.name in _Z)w(`A Scope already named ${this.name} already exists`);_Z[this.name]=this;let X=Object.entries(Y).map((_)=>this.preparseOwnAliasEntry(..._));for(let[_,G]of X){let W=_;if(_[0]==="#"){if(W=_.slice(1),W in this.aliases)w(u_(W));this.aliases[W]=G}else{if(W in this.aliases)w(u_(_));this.aliases[W]=G,this.exportedNames.push(W)}if(!y(G,"module")&&!y(G,"generic")&&!E4(G)){let $=this.preparseOwnDefinitionFormat(G,{alias:W});this.resolutions[W]=y($,"root")?this.bindReference($):this.createParseContext($).id}}d_??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[d_.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=B.intrinsic?o(B.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 i2(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(o8(Y),Y,Z);preparseNode(Y,Z,X){let _=typeof Y==="string"?Y:o8(Z,Y);if(V0(Z)&&Z.kind===_)return Z;if(_==="alias"&&!X?.prereduced){let{reference:$}=e8.implementation.normalize(Z,this);if($.startsWith("$")){let H=this.resolveRoot($.slice(1));Z=H,_=H.kind}}else if(_==="union"&&Q1(Z,"object")){let $=KQ(Z);if($?.length===1)Z=$[0],_=o8(Z)}if(V0(Z)&&Z.kind===_)return Z;let W=G8[_].normalize?.(Z,this)??Z;if(V0(W))return W.kind===_?W:jQ(_,W.kind);return{...X,$:this,kind:_,def:W,prefix:X.alias??_}}bindReference(Y){let Z;if(V0(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(y(Z,"generic"))return;return Z}maybeResolveSubalias(Y){return GZ(this.aliases,Y)??GZ(this.ambient,Y)}get ambient(){return B.ambient}maybeResolve(Y){let Z=this.resolutions[Y];if(Z){if(typeof Z!=="string")return this.bindReference(Z);let _=_1[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: ${n(_)}`);_.phase="resolving";let G=this.bindReference(this.parseOwnDefinitionFormat(_.def,_));return _.phase="resolved",_1[G.id]=G,_1[_.id]=G,this.resolutions[Y]=G}return _0(`Unexpected nodesById entry for ${Z}: ${n(_)}`)}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)w(s_(Y));return this.resolutions[Y]=this.bindReference(X.root)}return this.resolutions[Y]=this.parse(X,{alias:Y})}createParseContext(Y){let Z=Y.id??pY(Y.prefix);return _1[Z]=Object.assign(Y,{[X1]:"context",$:this,id:Z,phase:"unresolved"})}traversal(Y){return new h1(Y,this.resolvedConfig)}import(...Y){return new H8(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")?XZ(_,this):c_(this.maybeResolve(X))}for(let X of this.lazyResolutions)X.resolution;if(this._exportedResolutions=r_(this,this._exports),this._json=n_(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(l_,4),i_(this.references,X)}this.resolved=!0}let Z=Y.length?Y:this.exportedNames;return new H8(o(Z,(X,_)=>[_,this._exports[_]]))}resolve(Y){return this.export()[Y]}node=(Y,Z,X={})=>{let _=this.preparseNode(Y,Z,X);if(V0(_))return this.bindReference(_);let G=this.createParseContext(_),W=mY(G),$=this.bindReference(W);return _1[G.id]=$};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);_1[_.id]=_;let G=this.bindReference(this.parseOwnDefinitionFormat(Y,_));if(G.isCyclic)G=L_(G,_.id);return _1[_.id]=G,G}finalize(Y){if(c_(Y),!Y.precompilation&&!this.resolvedConfig.jitless)PQ(Y.references);return Y}}class WZ extends Y6{parseOwnDefinitionFormat(Y,Z){return mY(Z)}preparseOwnDefinitionFormat(Y,Z){return this.preparseNode(o8(Y),Y,Z)}preparseOwnAliasEntry(Y,Z){return[Y,Z]}normalizeRootScopeValue(Y){return Y}}var c_=(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},n_=(Y)=>o(Y,(Z,X)=>[Z,y(X,"root")||y(X,"generic")?X.json:y(X,"module")?n_(X):_0(`Unexpected resolution ${n(X)}`)]),GZ=(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 w(SQ(_));let W=Z.slice(X+1),$=G[W];if($===void 0)return GZ(G,W);if(y($,"root")||y($,"generic"))return $;if(y($,"module"))return $.root??w(s_(Z));_0(`Unexpected resolution for alias '${Z}': ${n($)}`)},Z6=(Y,Z)=>new WZ(Y,Z),X2=new WZ({});var r_=(Y,Z)=>{let X={};for(let _ in Z){let G=Z[_];if(y(G,"module")){let W=r_(Y,G),$=o(W,(H,Q)=>[`${_}.${H}`,Q]);Object.assign(X,$)}else if(y(G,"root")||y(G,"generic"))X[_]=G;else _0(`Unexpected scope resolution ${n(G)}`)}return X},$Z=(Y)=>`'${Y}' is unresolvable`,SQ=(Y)=>`'${Y}' must reference a module to be accessed using dot syntax`,s_=(Y)=>`Reference to submodule '${Y}' must specify an alias`;X2.export();var{schema:J0,node:J8,defineSchema:Tw,generic:C1}=X2;var HZ="^(?:0|[1-9]\\d*)$",vQ=new RegExp(HZ),jw=q0(vQ);var a_=Z6({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();B.intrinsic={...a_};var t_=Z6({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:HZ}},{prereducedAliases:!0}).export();Object.assign(B.intrinsic,t_);var xQ=Z6({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),d={...a_,...t_,...xQ,emptyStructure:J8("structure",{},{prereduced:!0})};B.intrinsic={...d};var YG=(Y)=>typeof Y==="string"&&Y[0]==="d"&&(Y[1]==="'"||Y[1]==='"')&&Y.at(-1)===Y[1],e_=(Y)=>Y.toString()!=="Invalid Date",ZG=(Y)=>Y.slice(2,-1),JZ=(Y)=>`'${Y}' could not be parsed by the Date constructor`,XG=(Y,Z)=>hQ(Y,Z),hQ=(Y,Z)=>{let X=new Date(Y);if(e_(X))return X;let _=hX(Y);if(_!==void 0){let G=new Date(_);if(e_(G))return G}return Z?w(Z===!0?JZ(Y):Z):void 0};var QZ=(Y,Z)=>{let X=Y.scanner.shiftUntil(fQ[GG[Z]]);if(Y.scanner.lookahead==="")return Y.error(kQ(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(g0(Z,zZ))Y.root=Y.ctx.$.node("unit",{unit:X});else{let _=XG(X,JZ(X));Y.root=Y.ctx.$.node("unit",{meta:X,unit:_})}},zZ={"'":1,'"':1},_G={"/":1,"'":1,'"':1},GG={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},fQ={"'":(Y)=>Y.lookahead==="'",'"':(Y)=>Y.lookahead==='"',"/":(Y)=>Y.lookahead==="/"},bQ={'"':"double-quote","'":"single-quote","/":"forward slash"},kQ=(Y,Z)=>`${Z}${Y} requires a closing ${bQ[GG[Z]]}`;var WG=(Y)=>`Private type references should not include '#'. Use '${Y}' instead.`,X6="Optional definitions like 'string?' are only valid as properties in an object or tuple",_6="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var $G={">":!0,">=":!0},HG={"<":!0,"<=":!0};var Q8={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},JG=(Y)=>`Unmatched )${Y===""?"":` before ${Y}`}`,G6=(Y)=>`Missing ${Y}`,QG=(Y,Z)=>`Left bounds are only valid when paired with right bounds (try ...${Z}${Y})`,W6=(Y)=>`Left-bounded expressions must specify their limits using < or <= (was ${Y})`,zG=(Y,Z,X,_)=>`An expression may have at most one left bound (parsed ${Y}${Q8[Z]}, ${X}${Q8[_]})`;var FG=(Y,Z,X)=>UG(Y,Z,X,[]),UG=(Y,Z,X,_)=>{let G=X.parseUntilFinalizer();if(_.push(G.root),G.finalizer===">"){if(_.length!==Z.params.length)return X.error(FZ(Y,Z.names,_.map((W)=>W.expression)));return _}if(G.finalizer===",")return UG(Y,Z,X,_);return G.error(G6(">"))},FZ=(Y,Z,X)=>`${Y}<${Z.join(", ")}> requires exactly ${Z.length} args (got ${X.length}${X.length===0?"":`: ${X.join(", ")}`})`;var UZ=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator();if(Z==="keyof")Y.addPrefix("keyof");else Y.root=yQ(Y,Z)},gQ=(Y,Z,X)=>{if(X.scanner.shiftUntilNonWhitespace(),X.scanner.shift()!=="<")return X.error(FZ(Y,Z.names,[]));let G=FG(Y,Z,X);return Z(...G)},yQ=(Y,Z)=>pQ(Y,Z)??mQ(Y,Z)??Y.error(Z===""?Y.scanner.lookahead==="#"?WG(Y.shiftedByOne().scanner.shiftUntilNextTerminator()):EZ(Y):$Z(Z)),pQ=(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 gQ(Z,X,Y);return w(`Unexpected resolution ${n(X)}`)},mQ=(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:_})},EZ=(Y)=>{let Z=Y.previousOperator();return Z?OZ(Z,Y.scanner.unscanned):uQ(Y.scanner.unscanned)},OZ=(Y,Z="")=>`Token '${Y}' requires a right operand${Z?` before '${Z}'`:""}`,uQ=(Y)=>`Expected an expression${Y?` before '${Y}'`:""}`;var DZ=(Y)=>Y.scanner.lookahead===""?Y.error(EZ(Y)):Y.scanner.lookahead==="("?Y.shiftedByOne().reduceGroupOpen():Y.scanner.lookaheadIsIn(_G)?QZ(Y,Y.scanner.shift()):Y.scanner.lookaheadIsIn(O4)?DZ(Y.shiftedByOne()):Y.scanner.lookahead==="d"?Y.scanner.nextLookahead in zZ?QZ(Y,`${Y.scanner.shift()}${Y.scanner.shift()}`):UZ(Y):UZ(Y);class _4 extends wY{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()===""||g0(Z.trimStart()[0],_4.terminatingChars):Y==="="?Z[0]!=="=":Y===","||Y==="?"}var OG=(Y,Z)=>{let X=dQ(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 lQ(Y,X)},DG={"<":1,">":1,"=":1},dQ=(Y,Z)=>Y.scanner.lookaheadIs("=")?`${Z}${Y.scanner.shift()}`:Z;var EG=(Y,Z,X,_)=>{if(X.extends(B.intrinsic.number)){if(typeof Z!=="number")return w(LZ(Y,Z,_));return Y==="=="?["min","max"]:Y[0]===">"?["min"]:["max"]}if(X.extends(B.intrinsic.lengthBoundable)){if(typeof Z!=="number")return w(LZ(Y,Z,_));return Y==="=="?["exactLength"]:Y[0]===">"?["minLength"]:["maxLength"]}if(X.extends(B.intrinsic.Date))return Y==="=="?["after","before"]:Y[0]===">"?["after"]:["before"];return w(__(X.expression))},cQ=(Y)=>({rule:YG(Y.limit)?ZG(Y.limit):Y.limit,exclusive:Y.comparator.length===1}),lQ=(Y,Z)=>{let X=Y.unsetRoot(),_=Y.scanner.location;Y.parseOperand();let G=Y.unsetRoot(),W=Y.scanner.sliceChars(_,Y.scanner.location);if(Y.root=X,!G.hasKind("unit")||typeof G.unit!=="number"&&!(G.unit instanceof Date))return Y.error(LZ(Z,W,"right"));let $=G.unit,H=Z.length===1,Q=EG(Z,typeof $==="number"?$:W,X,"right");for(let z of Q)Y.constrainRoot(z,Z==="=="?{rule:$}:{rule:$,exclusive:H});if(!Y.branches.leftBound)return;if(!g0(Z,HG))return Y.error(W6(Z));let J=EG(Y.branches.leftBound.comparator,Y.branches.leftBound.limit,X,"left");Y.constrainRoot(J[0],cQ(Y.branches.leftBound)),Y.branches.leftBound=null},LZ=(Y,Z,X)=>`Comparator ${X==="left"?Q8[Y]:Y} must be ${X==="left"?"preceded":"followed"} by a corresponding literal (was ${Z})`;var LG=(Y)=>{Y.scanner.shiftUntilNonWhitespace();let Z=Y.scanner.shiftUntilNextTerminator();Y.root=Y.root.brand(Z)};var MG=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator(),X=bX(Z,{errorOnFail:VG(Z)});if(X===0)Y.error(VG(0));Y.root=Y.root.constrain("divisor",X)},VG=(Y)=>`% operator must be followed by a non-zero integer literal (was ${Y})`;var VZ=(Y)=>{let Z=Y.scanner.shift();return Z===""?Y.finalize(""):Z==="["?Y.scanner.shift()==="]"?Y.setRoot(Y.root.array()):Y.error(iQ):Z==="|"?Y.scanner.lookahead===">"?Y.shiftedByOne().pushRootToBranch("|>"):Y.pushRootToBranch(Z):Z==="&"?Y.pushRootToBranch(Z):Z===")"?Y.finalizeGroup():_4.lookaheadIsFinalizing(Z,Y.scanner.unscanned)?Y.finalize(Z):g0(Z,DG)?OG(Y,Z):Z==="%"?MG(Y):Z==="#"?LG(Y):(Z in O4)?VZ(Y):Y.error($6(Z))},$6=(Y,Z="")=>`'${Y}' is not allowed here${Z&&` (should be ${Z})`}`,iQ="Missing expected ']'";var AG=(Y)=>{let Z=Y.unsetRoot();Y.parseOperand();let X=Y.unsetRoot();if(!X.hasKind("unit"))return Y.error(oQ(X.expression));let _=X.unit instanceof Date?()=>new Date(X.unit):X.unit;return[Z,"=",_]},oQ=(Y)=>`Default value '${Y}' must a literal value`;var MZ=(Y,Z)=>{let X=Z.$.maybeResolveRoot(Y);if(X)return X;if(Y.endsWith("[]")){let W=Z.$.maybeResolveRoot(Y.slice(0,-2));if(W)return W.array()}let _=new z8(new _4(Y),Z),G=nQ(_);if(_.finalizer===">")w($6(">"));return G},nQ=(Y)=>{Y.parseOperand();let Z=_2(Y).root;if(!Z)return _0(`Root was unexpectedly unset after parsing string '${Y.scanner.scanned}'`);if(Y.finalizer==="=")Z=AG(Y);else if(Y.finalizer==="?")Z=[Z,"?"];if(Y.scanner.shiftUntilNonWhitespace(),Y.scanner.lookahead)w($6(Y.scanner.lookahead));return Z},_2=(Y)=>{while(Y.finalizer===void 0)rQ(Y);return Y},rQ=(Y)=>Y.hasRoot()?Y.parseOperator():Y.parseOperand();class z8{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(G6(")"));this.finalizeBranches(),this.finalizer=Y}reduceLeftBound(Y,Z){let X=Q8[Z];if(!g0(X,$G))return this.error(W6(Z));if(this.branches.leftBound)return this.error(zG(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(JG(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 _2(new z8(this.scanner,this.ctx))}parseOperator(){return VZ(this)}parseOperand(){return DZ(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(QG(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 sQ="An empty string is not a valid generic parameter name",H6=(Y,Z,X)=>{Y.shiftUntilNonWhitespace();let _=Y.shiftUntilNextTerminator();if(_===""){if(Y.lookahead===""&&Z.length)return Z;return w(sQ)}return Y.shiftUntilNonWhitespace(),aQ(Y,_,Z,X)},wG="extends ",aQ=(Y,Z,X,_)=>{if(Y.shiftUntilNonWhitespace(),Y.unscanned.startsWith(wG))Y.jumpForward(wG.length);else{if(Y.lookahead===",")Y.shift();return X.push(Z),H6(Y,X,_)}let G=_2(new z8(Y,_));return X.push([Z,G.root]),H6(Y,X,_)};class AZ extends x1{$;constructor(Y){super((...Z)=>new G2(Y)(...Z),{bind:Y});this.$=Y}in(Y){return new G2(this.$,Y===void 0?void 0:this.$.parse(Y))}at(Y,Z){return new G2(this.$).at(Y,Z)}case(Y,Z){return new G2(this.$).case(Y,Z)}}class G2 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(eQ);if(this.branches.length)w(tQ);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 ${k0(_)})`);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:RG};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:RG},"self");return this.$.finalize(_)}}var RG=(Y)=>Y.throw(),tQ="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",eQ="At most one key matcher may be specified per expression";var J6=(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 Q6(Y,Z)},NG="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",IG="Only required keys may specify default values, e.g. { value: 'number = 0' }";var BG=(Y,Z)=>{let X,_={},G=j4(Y);for(let[$,H]of G){let Q=Xz($);if(Q.kind==="spread"){if(!d1(_))return w(Zz);let V=Z.$.parseOwnDefinitionFormat(H,Z);if(V.equals(d.object))continue;if(!V.hasKind("intersection")||!V.basis?.equals(d.object))return w(_z(V.expression));X=V.structure;continue}if(Q.kind==="undeclared"){if(H!=="reject"&&H!=="delete"&&H!=="ignore")w(Yz(H));_.undeclared=H;continue}let J=J6(H,Z),z=Q;if(Q.kind==="required"){if(!E0(J))wZ(_,"required",{key:Q.normalized,value:J},Z);else wZ(_,"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(NG);if(J[1]==="=")w(IG)}if(Q.kind==="optional"){wZ(_,"optional",{key:Q.normalized,value:J},Z);continue}let E=Z.$.parseOwnDefinitionFormat(z.normalized,Z),D=e2(E,J,Z.$);if(D.index)_.index=Z0(_.index,D.index);if(D.required)_.required=Z0(_.required,D.required)}let W=Z.$.node("structure",_);return Z.$.parseSchema({domain:"object",structure:X?.merge(W)??W})},wZ=(Y,Z,X,_)=>{Y[Z]=Z0(Y[Z],_.$.node(Z,X))},Yz=(Y)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${n(Y)})`,Zz="Spread operator may only be used as the first key in an object",Xz=(Y)=>typeof Y==="symbol"?{kind:"required",normalized:Y}:Y.at(-1)==="?"?Y.at(-2)===b8?{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]===b8&&Y[1]==="["&&Y.at(-1)==="]"?{kind:"required",normalized:Y.slice(1)}:Y==="..."?{kind:"spread"}:Y==="+"?{kind:"undeclared"}:{kind:"required",normalized:Y==="\\..."?"...":Y==="\\+"?"+":Y},_z=(Y)=>`Spread operand must resolve to an object literal type (was ${Y})`;var TG=(Y,Z)=>Ez(Y)?PG[Y[0]](Y,Z):Fz(Y)?jG[Y[1]](Y,Z):null,Gz=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[1],Z).keyof(),RZ=(Y,Z)=>{if(Y[2]===void 0)return w(OZ(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]==="&"?E1(X,_,Z.$):i8(X,_,Z.$);if(G instanceof S)return G.throw();return G},Wz=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).array(),$z=(Y,Z)=>{if(typeof Y[2]!=="function")return w(qG("=>",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).pipe(Y[2])},qG=(Y,Z)=>`${Y===":"?"Narrow":"Morph"} expression requires a function following '${Y}' (was ${typeof Z})`,Hz=(Y,Z)=>{if(typeof Y[2]!=="function")return w(qG(":",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).constrain("predicate",Y[2])},Jz=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).configureReferences(Y[2],"shallow"),KG=(Y)=>Y,Qz=KG({"[]":Wz,"?":()=>w(X6)}),zz=KG({"|":RZ,"&":RZ,":":Hz,"=>":$z,"|>":RZ,"@":Jz,"=":()=>w(_6)}),jG={...Qz,...zz},Fz=(Y)=>jG[Y[1]]!==void 0,Uz=(Y)=>Y,PG=Uz({keyof:Gz,instanceof:(Y,Z)=>{if(typeof Y[1]!=="function")return w(CG(h8(Y[1])));let X=Y.slice(1).map((_)=>typeof _==="function"?Z.$.node("proto",{proto:_}):w(CG(h8(_))));return X.length===1?X[0]:Z.$.node("union",{branches:X})},"===":(Y,Z)=>Z.$.units(Y.slice(1))}),Ez=(Y)=>PG[Y[0]]!==void 0,CG=(Y)=>`Expected a constructor following 'instanceof' operator (was ${Y})`;var xG=(Y,Z)=>{let X=[{}],_=0;while(_<Y.length){let G=!1;if(Y[_]==="..."&&_<Y.length-1)G=!0,_++;let W=J6(Y[_],Z),[$,H,Q]=!E0(W)?[W]:W;if(_++,G){if(!$.extends(B.intrinsic.Array))return w(Lz($.expression));X=X.flatMap((J)=>$.distribute((z)=>Dz(u2(J),z)))}else X=X.map((J)=>{if(H==="?")return hG(J,$);if(H==="=")return Oz(J,$,Q);return NZ(J,$)})}return Z.$.parseSchema(X.map((G)=>d1(G)?{proto:Array,exactLength:0}:{proto:Array,sequence:G}))},NZ=(Y,Z)=>{if(Y.defaultables||Y.optionals)return w(Y.variadic?eY:Vz);if(Y.variadic)Y.postfix=Z0(Y.postfix,Z);else Y.prefix=Z0(Y.prefix,Z);return Y},hG=(Y,Z)=>{if(Y.variadic)return w(fG);return Y.optionals=Z0(Y.optionals,Z),Y},Oz=(Y,Z,X)=>{if(Y.variadic)return w(fG);if(Y.optionals)return w(Mz);return Y.defaultables=Z0(Y.defaultables,[[Z,X]]),Y},SG=(Y,Z)=>{if(Y.postfix)w(vG);if(Y.variadic){if(!Y.variadic.equals(Z))w(vG)}else Y.variadic=Z.internal;return Y},Dz=(Y,Z)=>{let X=Z.select({method:"find",kind:"sequence"});if(!X)return SG(Y,B.intrinsic.unknown);if(X.prefix)for(let _ of X.prefix)NZ(Y,_);if(X.optionals)for(let _ of X.optionals)hG(Y,_);if(X.variadic)SG(Y,X.variadic);if(X.postfix)for(let _ of X.postfix)NZ(Y,_);return Y},Lz=(Y)=>`Spread element must be an array (was ${Y})`,vG="A tuple may have at most one variadic element",Vz="A required element may not follow an optional element",fG="An optional element may not follow a variadic element";var Mz="A defaultable element may not follow an optional element without a default";var Az={},Q6=(Y,Z)=>{if(typeof Y==="string"){if(Z.args&&Object.keys(Z.args).some((_)=>Y.includes(_)))return MZ(Y,Z);let X=Az[Z.$.name]??={};return X[Y]??=MZ(Y,Z)}return Q1(Y,"object")?wz(Y,Z):w(IZ(k0(Y)))},wz=(Y,Z)=>{let X=x8(Y);switch(X){case void 0:if(y(Y,"root"))return Y;return BG(Y,Z);case"Array":return Rz(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 w(IZ("Function"))}default:return w(IZ(X??n(Y)))}},Rz=(Y,Z)=>TG(Y,Z)??xG(Y,Z),IZ=(Y)=>`Type definitions must be strings or objects (was ${Y})`;class BZ extends x1{constructor(Y){let Z=Object.assign({errors:F1,hkt:a0,$: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 F8=B;class z6 extends Y6{get ambientAttachments(){if(!F8.typeAttachments)return;return this.cacheGetter("ambientAttachments",o(F8.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 W=this.name==="ark"?Y:Y==="root"?this.name:`${this.name}.${Y}`,$=this.resolvedConfig.keywords?.[W];if($)Z=[Z,"@",$];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 W=this.parseGenericParams(G,{alias:_});return Y_(W,Z,this)}]}parseGenericParams(Y,Z){return H6(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 _=Q6(Y,Z);if(E0(_)){if(_[1]==="=")return w(_6);if(_[1]==="?")return w(X6)}return _}unit=(Y)=>this.units([Y]);valueOf=(Y)=>this.units(wX(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 AZ(this);declare=()=>({type:this.type});define(Y){return Y}type=new BZ(this);static scope=(Y,Z={})=>new z6(Y,Z);static module=(Y,Z={})=>this.scope(Y,Z).export()}var CZ=Object.assign(z6.scope,{define:(Y)=>Y}),Y0=z6;class bG extends a0{description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var Nz=C1(["base",d.object],["props",d.object])((Y)=>Y.base.merge(Y.props),bG),kG=Y0.module({Key:d.key,Merge:Nz});class gG extends a0{}var Iz=C1("element")((Y)=>{let Z=Y.element.exclude(d.Array),X=Z.array();return Z.rawOr(X).pipe(U4).distribute((_)=>_.assertHasKind("morph").declareOut(X),J0)},gG),yG=Y0.module({root:d.Array,readonly:"root",index:d.nonNegativeIntegerString,liftFrom:Iz},{name:"Array"});var TZ=J0(["string",S4.FileConstructor]),Bz=TZ.rawOr(TZ.array()),pG=J0({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:Bz}}),mG=Y0.module({root:["instanceof",FormData],value:TZ,parsed:pG,parse:J0({in:FormData,morphs:(Y)=>{let Z={};for(let[X,_]of Y)if(X in Z){let G=Z[X];if(typeof G==="string"||G instanceof S4.FileConstructor)Z[X]=[G,_];else G.push(_)}else Z[X]=_;return Z},declaredOut:pG})},{name:"FormData"});var uG=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 Cz={Boolean:1,Number:1,String:1},dG=Y0.module({...o({...UY,...OY},(Y,Z)=>(Y in Cz)?[]:[Y,["instanceof",Z]]),Array:yG,TypedArray:uG,FormData:mG});var Tz=J0({domain:{domain:"number",meta:"a number representing a Unix timestamp"},divisor:{rule:1,meta:"an integer representing a Unix timestamp"},min:{rule:-8640000000000000,meta:"a Unix timestamp after -8640000000000000"},max:{rule:8640000000000000,meta:"a Unix timestamp before 8640000000000000"},meta:"an integer representing a safe Unix timestamp"}),qz=J0({domain:"number",divisor:1}),F6=Y0.module({root:d.number,integer:qz,epoch:Tz,safe:J0({domain:{domain:"number",numberAllowsNaN:!1},min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER}),NaN:["===",Number.NaN],Infinity:["===",Number.POSITIVE_INFINITY],NegativeInfinity:["===",Number.NEGATIVE_INFINITY]},{name:"number"});var I0=(Y,Z,X)=>{let _={domain:"string",pattern:{rule:Y.source,flags:Y.flags,meta:Z}};if(X)_.meta={format:X};return J8("intersection",_)},cG=I0(k8,"a well-formed integer string"),X9=Y0.module({root:cG,parse:J0({in:cG,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"}),Kz=I0(/^[\dA-Fa-f]+$/,"hex characters only"),jz=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"}),lG=I0(/^[A-Z].*$/,"capitalized"),Pz=Y0.module({root:J0({in:"string",morphs:(Y)=>Y.charAt(0).toUpperCase()+Y.slice(1),declaredOut:lG}),preformatted:lG},{name:"string.capitalize"}),Sz=(Y)=>{let Z=Y.replaceAll(/[ -]+/g,""),X=0,_,G,W=!1;for(let $=Z.length-1;$>=0;$--){if(_=Z.substring($,$+1),G=Number.parseInt(_,10),W)G*=2,X+=G>=10?G%10+1:G;else X+=G;W=!W}return!!(X%10===0?Z:!1)},vz=/^(?: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}))$/,xz=J0({domain:"string",pattern:{meta:"a credit card number",rule:vz.source},predicate:{meta:"a credit card number",predicate:Sz}});var hz=/^([+-]?\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 fz=(Y)=>!Number.isNaN(new Date(Y).valueOf()),iG=J0({domain:"string",predicate:{meta:"a parsable date",predicate:fz}}).assertHasKind("intersection"),oG=X9.root.internal.narrow((Y,Z)=>{let X=Number.parseInt(Y),_=F6.epoch(X);if(_ instanceof F1)return Z.errors.merge(_),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),bz=Y0.module({root:oG,parse:J0({in:oG,morphs:(Y)=>new Date(Y),declaredOut:d.Date})},{name:"string.date.epoch"}),nG=I0(hz,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),kz=Y0.module({root:nG,parse:J0({in:nG,morphs:(Y)=>new Date(Y),declaredOut:d.Date})},{name:"string.date.iso"}),gz=Y0.module({root:iG,parse:J0({declaredIn:iG,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:kz,epoch:bz},{name:"string.date"}),yz=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}`,pz=new RegExp(`^${A4}$`),v0="(?:[0-9a-fA-F]{1,4})",mz=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,})?$`),uz=Y0.module({root:["v4 | v6","@","an IP address"],v4:I0(pz,"an IPv4 address","ipv4"),v6:I0(mz,"an IPv6 address","ipv6")},{name:"string.ip"}),U8="a JSON string",_9=(Y)=>{if(!(Y instanceof SyntaxError))throw Y;return`must be ${U8} (${Y})`},dz=J0({meta:U8,domain:"string",predicate:{meta:U8,predicate:(Y,Z)=>{try{return JSON.parse(Y),!0}catch(X){return Z.reject({code:"predicate",expected:U8,problem:_9(X)})}}}}),cz=(Y,Z)=>{if(Y.length===0)return Z.error({code:"predicate",expected:U8,actual:"empty"});try{return JSON.parse(Y)}catch(X){return Z.error({code:"predicate",expected:U8,problem:_9(X)})}},lz=Y0.module({root:dz,parse:J0({meta:"safe JSON string parser",in:"string",morphs:cz,declaredOut:d.jsonObject})},{name:"string.json"}),sG=I0(/^[a-z]*$/,"only lowercase letters"),iz=Y0.module({root:J0({in:"string",morphs:(Y)=>Y.toLowerCase(),declaredOut:sG}),preformatted:sG},{name:"string.lower"}),G9=["NFC","NFD","NFKC","NFKD"],W2=o(G9,(Y,Z)=>[Z,J0({domain:"string",predicate:(X)=>X.normalize(Z)===X,meta:`${Z}-normalized unicode`})]),U6=o(G9,(Y,Z)=>[Z,J0({in:"string",morphs:(X)=>X.normalize(Z),declaredOut:W2[Z]})]),oz=Y0.module({root:U6.NFC,preformatted:W2.NFC},{name:"string.normalize.NFC"}),nz=Y0.module({root:U6.NFD,preformatted:W2.NFD},{name:"string.normalize.NFD"}),rz=Y0.module({root:U6.NFKC,preformatted:W2.NFKC},{name:"string.normalize.NFKC"}),sz=Y0.module({root:U6.NFKD,preformatted:W2.NFKD},{name:"string.normalize.NFKD"}),az=Y0.module({root:"NFC",NFC:oz,NFD:nz,NFKC:rz,NFKD:sz},{name:"string.normalize"}),aG=I0(y2,"a well-formed numeric string"),tz=Y0.module({root:aG,parse:J0({in:aG,morphs:(Y)=>Number.parseFloat(Y),declaredOut:d.number})},{name:"string.numeric"}),tG="a regex pattern",ez=J0({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"}}),YF=/^(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-]+)*))?$/,ZF=I0(YF,"a semantic version (see https://semver.org/)"),eG=I0(/^\S.*\S$|^\S?$/,"trimmed"),XF=Y0.module({root:J0({in:"string",morphs:(Y)=>Y.trim(),declaredOut:eG}),preformatted:eG},{name:"string.trim"}),Y9=I0(/^[A-Z]*$/,"only uppercase letters"),_F=Y0.module({root:J0({in:"string",morphs:(Y)=>Y.toUpperCase(),declaredOut:Y9}),preformatted:Y9},{name:"string.upper"}),GF=(Y)=>{if(URL.canParse)return URL.canParse(Y);try{return new URL(Y),!0}catch{return!1}},Z9=J0({domain:"string",predicate:{meta:"a URL string",predicate:GF},meta:{format:"uri"}}),WF=Y0.module({root:Z9,parse:J0({declaredIn:Z9,in:"string",morphs:(Y,Z)=>{try{return new URL(Y)}catch{return Z.error("a URL string")}},declaredOut:J0(URL)})},{name:"string.url"}),$F=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"}),W9=Y0.module({root:d.string,alpha:I0(/^[A-Za-z]*$/,"only letters"),alphanumeric:I0(/^[\dA-Za-z]*$/,"only letters and digits 0-9"),hex:Kz,base64:jz,capitalize:Pz,creditCard:xz,date:gz,digits:I0(/^\d*$/,"only digits 0-9"),email:yz,integer:X9,ip:uz,json:lz,lower:iz,normalize:az,numeric:tz,regex:ez,semver:ZF,trim:XF,upper:_F,url:WF,uuid:$F},{name:"string"});var $9=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}),H9=Y0.module({root:d.unknown,any:d.unknown},{name:"unknown"}),HF=Y0.module({root:d.jsonObject,stringify:J8("morph",{in:d.jsonObject,morphs:(Y)=>JSON.stringify(Y),declaredOut:d.string})},{name:"object.json"}),J9=Y0.module({root:d.object,json:HF},{name:"object"});class Q9 extends a0{description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var JF=C1(["K",d.key],"V")((Y)=>({domain:"object",index:{signature:Y.K,value:Y.V}}),Q9);class z9 extends a0{description='pick a set of properties from an object like `Pick(User, "name | age")`'}var QF=C1(["T",d.object],["K",d.key])((Y)=>Y.T.pick(Y.K),z9);class F9 extends a0{description='omit a set of properties from an object like `Omit(User, "age")`'}var zF=C1(["T",d.object],["K",d.key])((Y)=>Y.T.omit(Y.K),F9);class U9 extends a0{description="make all named properties of an object optional like `Partial(User)`"}var FF=C1(["T",d.object])((Y)=>Y.T.partial(),U9);class E9 extends a0{description="make all named properties of an object required like `Required(User)`"}var UF=C1(["T",d.object])((Y)=>Y.T.required(),E9);class O9 extends a0{description='exclude branches of a union like `Exclude("boolean", "true")`'}var EF=C1("T","U")((Y)=>Y.T.exclude(Y.U),O9);class D9 extends a0{description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var OF=C1("T","U")((Y)=>Y.T.extract(Y.U),D9),L9=Y0.module({Exclude:EF,Extract:OF,Omit:zF,Partial:FF,Pick:QF,Record:JF,Required:UF});var w4=CZ({...$9,...L9,...dG,...kG,string:W9,number:F6,object:J9,unknown:H9},{prereducedAliases:!0,name:"ark"}),y0=w4.export();Object.assign(F8.ambient,y0);F8.typeAttachments={string:y0.string.root,number:y0.number.root,bigint:y0.bigint,boolean:y0.boolean,symbol:y0.symbol,undefined:y0.undefined,null:y0.null,object:y0.object.root,unknown:y0.unknown.root,false:y0.false,true:y0.true,never:y0.never,arrayIndex:y0.Array.index,Key:y0.Key,Record:y0.Record,Array:y0.Array.root,Date:y0.Date};var O1=Object.assign(w4.type,F8.typeAttachments),DF=w4.match,LF=w4.generic,aI=w4.schema,VF=w4.define,MF=w4.declare;var G1=(Y)=>JSON.parse(Y),z0=(Y)=>JSON.stringify(Y),EB=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];function E8(Y){return D6(d0.STORE,Y,void 0)}function $2(Y){return V8(d0.STORE,Y)}function KZ(...Y){if(Y.length===2)return b1(d0.STORE,...Y);return b1(d0.STORE,...Y)}function E6(Y,Z){return B9(d0.STORE,Y,Z)}function V9(Y){return T9(Y,d0.STORE)}var qZ=(Y)=>(Z,X,_,G,...W)=>{console[Y](`${Z} ${X} "${_}" ${G}`,...W)},AF={error:qZ("error"),info:qZ("info"),warn:qZ("warn")},M9=class{logLevel;filter;logger;constructor(Y,Z,X=AF){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 wF=class{store;constructor(Y=d0.STORE){this.store=Y,w9("root",Y)}allocate(Y,Z,X){return D8(this.store,Y,Z,X)}fuse(Y,Z,X){return R9(this.store,Y,Z,X)}deallocate(Y){L8(this.store,Y)}claim(Y,Z,X){return J2(this.store,Y,Z,X)}},A9=class{store;realm;constructor(Y=d0.STORE){this.store=Y,this.realm=new wF(Y)}allocate(Y,Z,X){D8(this.store,Y,Z,X)}deallocate(Y){L8(this.store,Y)}claim(Y,Z,X){J2(this.store,Y,Z,X)}};function O6(Y){return vZ(d0.STORE,Y)}function H2(Y){return SZ(d0.STORE,Y)}var G4=class Y extends Set{mode="record";subject=new H0;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]=_})}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:${z0(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:${z0(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 W of G.split(";"))this.doStep(W)}}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 $=Z.substring(X+1);return this.doStep($),this.mode="record",this.cacheUpdateNumber=_,null}return this.cacheUpdateNumber+1}if(Math.abs(G)<this.cacheLimit){let $=this.cacheIdx+G;if(this.cache[$]===Z)return null;this.mode="playback";let Q=!1;while(!Q){this.cacheIdx%=this.cacheLimit;let z=this.cache[this.cacheIdx];if(this.cacheIdx--,!z)return"OUT_OF_RANGE";this.undo(z),Q=this.cacheIdx===$-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 W=JSON.parse(G);for(let $ of W)this.add($);break}case"tx":{let W=G.split(";");for(let $=W.length-1;$>=0;$--)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 jZ(Y=Math.random){return Y().toString(36).slice(2)}function i(Y){while(Y.child!==null)Y=Y.child;return Y}var NF=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}},IF={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 BF(Y,Z){let X=z0(Z),_=`${Y.key}(${X})`,G=IF[Y.type],W={key:_,type:G};return Object.assign(W,{family:{key:Y.key,subKey:X}}),Object.assign(W,{counterfeit:!0}),W}function W4(Y){let Z={key:Y.key,type:Y.type};if("family"in Y)Z.family=Y.family;return Z}var W1=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 W of X){_??=W,G??=W;let $=this.relations.get(W);if($){if($.size===1)this.relations.delete(W);else $.delete(Y);this.contents.delete(this.makeContentKey(_,G))}}this.relations.set(Y,new Set(Z));for(let W of Z){let $=this.relations.get(W);if($)$.add(Y);else $=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 W=this.isAType?.(_)?_:void 0,$=W===void 0?_:void 0;for(let H of G)W??=H,$??=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 W of G){let $=this.makeContentKey(Y,W),H=Z[W];this.setContent($,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)}},H0=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)}},CF=class extends H0{state;constructor(Y){super();this.state=Y}next(Y){this.state=Y,super.next(Y)}},TF=(Y,Z)=>{let X=i(Y);if(X.operation.open)return X.operation.prev.get(Z.key);return X.valueMap.get(Z.key)};var hZ=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 fZ(Y,Z,X){let _=X.valueMap.get(Z.key),G=Y.valueMap.get(Z.key);if(_!==G)return G;if(_===void 0)return new Z.class;X.logger.info("\uD83D\uDCC3","atom",Z.key,"copying");let W=_.toJSON(),$=Z.class.fromJSON(W);return Y.valueMap.set(Z.key,$),new lZ(Z,X),$}function R4(Y){return"epoch"in Y.transactionMeta}function o0(Y){return"phase"in Y.transactionMeta}var L6=(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}"${!o0(Y)?"":` ${Y.transactionMeta.phase} "${Y.transactionMeta.update.key}"`}`)},V6=(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)},v9=(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)},z2=(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 bZ(Y,Z){let X=i(Y),_=X.selectorAtoms.getRelatedKeys(Z.key);if(X.logger.info("\uD83E\uDDF9",Z.type,Z.key,_?`evicting ${_.size} states downstream:`:"no downstream states",_??"to evict"),_){if(X.operation.open)X.logger.info("\uD83E\uDDF9",Z.type,Z.key,`[ ${[...X.operation.done].join(", ")} ] already done`);for(let G of _){if(v9(X,G))continue;x9(X,G),z2(X,G)}}}function qF(Y,Z){let X=i(Y),_=X.selectorGraph.getRelationEntries({upstreamSelectorKey:Z.key}).filter(([G,{source:W}])=>W===Z.key);for(let[G]of _){if(v9(X,G))continue;x9(X,G),z2(X,G)}}function i1(Y,Z,X,_){let G=Y.valueMap.get(Z);if(G instanceof hZ&&!G.done){let W=G;if(X instanceof Promise)return W.use(X),W;return Y.valueMap.set(Z,X),X}if(X instanceof Promise){let W=new hZ(X);return Y.valueMap.set(Z,W),W.then(function $(H){if(Y.valueMap.get(Z)===W){i1(Y,Z,H,_);let J=Y.atoms.get(Z);if(J)L6(Y,J),bZ(Y,J),V6(Y);else{let z=Y.writableSelectors.get(Z)??Y.readonlySelectors.get(Z);if(z)L6(Y,z),qF(Y,z),V6(Y)}_.next({newValue:H,oldValue:W})}}).catch(($)=>{Y.logger.error("\uD83D\uDCA5","state",Z,"rejected:",$)}),W}return Y.valueMap.set(Z,X),X}var KF=(Y,Z)=>{Z.logger.info("\uD83D\uDCD6",Y.type,Y.key,"reading cached value");let X=Z.valueMap.get(Y.key);if(Y.type==="mutable_atom"&&o0(Z)){let{parent:_}=Z;X=fZ(Z,Y,_)}return X},x9=(Y,Z)=>{let X=Y.valueMap.get(Z);if(X instanceof hZ){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")},F2=(Y,Z)=>{if(Y.valueMap.has(Z.key))return KF(Z,Y);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,Z.key,"computing value"),Z.get();case"atom":{let X=Z.default,_;if(X instanceof Function)_=X();else _=X;let G=i1(Y,Z.key,_,Z.subject);return Y.logger.info("\uD83D\uDC81","atom",Z.key,"could not find cached value; using default",_),G}case"mutable_atom":{let _=new Z.class,G=i1(Y,Z.key,_,Z.subject);return Y.logger.info("\uD83D\uDC81","mutable_atom",Z.key,"could not find cached value; using default",_),G}}},K9=(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=TF(Y,Z),W=F2(Y,Z);Y.logger.info("\u2728",Z.type,Z.key,"went",G,"->",W),Z.subject.next({newValue:W,oldValue:G})})},gZ=(Y)=>(Z)=>Y instanceof Function?Y(Z):Y,jF=(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)},kZ=(Y,Z,X)=>{let _=F2(Y,Z),G=_;if(Z.type==="mutable_atom"&&o0(Y)){let{parent:$}=Y;G=fZ(Y,Z,$)}G=gZ(X)(G),Y.logger.info("\uD83D\uDCDD","atom",Z.key,"set to",G),G=i1(Y,Z.key,G,Z.subject),z2(Y,Z.key),bZ(Y,Z);let W={oldValue:_,newValue:G};if(!o0(Y)){jF(Y,Z,W);return}if(Y.on.transactionApplying.state===null){let{key:$}=Z;if(YU(W.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",$,"stowed (",W.oldValue,"->",W.newValue,")")}else if(Z.key.startsWith("*")){let $=Z.key.slice(1),H=Y.atoms.get($),Q=Y.valueMap.get($);if(H.type==="mutable_atom"&&o0(Y)){let{parent:z}=Y;Q=fZ(Y,H,z)}if(Q.do(W.newValue)===null)bZ(Y,H)}};function j9(Y,Z){switch(Z.type){case"mutable_atom":kZ(Y,Z,new Z.class);return;case"atom":{let X=Z.default;if(X instanceof Function)X=X();kZ(Y,Z,X)}}}function PF(Y,Z){switch(Z.type){case"atom":case"mutable_atom":j9(Y,Z);break;case"writable_pure_selector":case"writable_held_selector":{let X=M6(Y,Z.key);for(let _ of X.values())j9(Y,_)}break}}function h9(Y,Z){if(Z.family){let X=Y.families.get(Z.family.key);if(X)return X}}function O8(Y,...Z){let X,_,G;if(Z.length===1){if(X=Z[0],_=h9(Y,X)??null,_)G=X.family?G1(X.family.subKey):null,X=$0(Y,_,G)}else _=Z[0],G=Z[1],X=$0(Y,_,G);if("counterfeit"in X&&"family"in X){let H=X.family.subKey,Q=Y.disposalTraces.buffer.find((J)=>J?.key===H);Y.logger.error("\u274C",X.type,X.key,`could not be reset because it was not found in the store "${Y.config.name}".`,Q?`This state was previously disposed:
48
- ${Q.trace}`:"No previous disposal trace was found.");return}let W=L6(Y,X);if(W){let H=Y.on.operationClose.subscribe(`waiting to reset "${X.key}" at T-${W}`,()=>{H(),Y.logger.info("\uD83D\uDFE2",X.type,X.key,`resuming deferred resetState from T-${W}`),O8(Y,X)});return}let $=p0(Y,X);PF(Y,$),V6(Y)}var f9=(Y,Z,X)=>{switch(Z.type){case"atom":case"mutable_atom":kZ(Y,Z,X);break;case"writable_pure_selector":case"writable_held_selector":Z.set(X);break}};function T1(Y,...Z){let X,_,G,W;if(Z.length===2){if(X=Z[0],W=Z[1],_=h9(Y,X)??null,_)G=X.family?G1(X.family.subKey):null,X=$0(Y,_,G)}else _=Z[0],G=Z[1],W=Z[2],X=$0(Y,_,G);if("counterfeit"in X&&"family"in X){let Q=X.family.subKey,J=Y.disposalTraces.buffer.find((z)=>z?.key===Q);Y.logger.error("\u274C",X.type,X.key,`could not be set because it was not found in the store "${Y.config.name}".`,J?`This state was previously disposed:
49
- ${J.trace}`:"No previous disposal trace was found.");return}let $=L6(Y,X);if($){let Q=Y.on.operationClose.subscribe(`waiting to set "${X.key}" at T-${$}`,()=>{Q(),Y.logger.info("\uD83D\uDFE2",X.type,X.key,`resuming deferred setState from T-${$}`),T1(Y,X,W)});return}let H=p0(Y,X);f9(Y,H,W),V6(Y)}var b9=(Y,Z)=>i(Y).atoms.has(Z),SF=(Y,Z)=>i(Y).writableSelectors.has(Z),vF=(Y,Z)=>i(Y).readonlySelectors.has(Z),xF=(Y,Z)=>b9(Y,Z)||SF(Y,Z)||vF(Y,Z),P9=(Y,Z)=>{return i(Y).selectorGraph.getRelationEntries({downstreamSelectorKey:Z}).filter(([_,{source:G}])=>G!==Z).map(([_,{source:G}])=>G).filter((_)=>xF(Y,_))},M6=(Y,Z,X=new Set)=>{let _=P9(Y,Z),G=new Map;while(_.length>0){let W=_.pop();if(X.has(W))continue;if(X.add(W),b9(Y,W)){let $=Y.atoms.get(W);G.set($.key,$)}else _.push(...P9(Y,W))}return G},hF=(Y,Z,X,_,G)=>{let W=i(Y),{type:$,key:H}=_;if($==="atom"||$==="mutable_atom")W.selectorAtoms.set({selectorKey:X,atomKey:H}),Y.logger.info("\uD83D\uDD0D",Z,X,`discovers root atom "${H}"`);else{let Q=M6(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())W.selectorAtoms=W.selectorAtoms.set({selectorKey:X,atomKey:J})}G.add(H)},A6=(Y,Z,X,_)=>({get:(...G)=>{let W=i(Y),$;if(G.length===2){let[z,E]=G;$=$0(Y,z,E)}else[$]=G;let H=p0(Y,$),Q=F2(Y,H),J=$.key;return Y.logger.info("\uD83D\uDD0C",Z,X,`registers dependency ( "${J}" =`,Q,")"),W.selectorGraph.set({upstreamSelectorKey:J,downstreamSelectorKey:X},{source:$.key}),hF(Y,Z,X,$,_),Q},set:(...G)=>{let W,$;if(G.length===2)W=G[0],$=G[1];else{let J=G[0],z=G[1];$=G[2],W=$0(Y,J,z)}let H=i(Y),Q=p0(H,W);f9(H,Q,$)},find:(...G)=>$0(Y,...G),json:(G)=>k4(Y,G)}),yZ=(Y,Z,X)=>{let _=i(Y),G=new H0,W=new Set,{key:$,const:H}=Z,Q="readonly_held_selector",{get:J,find:z,json:E}=A6(_,"readonly_held_selector",$,W),V={...Z,type:"readonly_held_selector",subject:G,install:(A)=>yZ(A,Z,X),get:()=>{let A=i(Y),g=A.selectorGraph.getRelationEntries({downstreamSelectorKey:$});for(let[b,{source:f}]of g)if(f!==$)A.selectorGraph.delete(b,$);return A.selectorAtoms.delete($),Z.get({get:J,find:z,json:E},H),i1(i(Y),$,H,G),W.clear(),H},...X&&{family:X}};_.readonlySelectors.set($,V),Y.logger.info("\u2728","readonly_held_selector",$,"=",H);let R={key:$,type:"readonly_held_selector"};if(X)R.family=X;return R},pZ=(Y,Z,X)=>{let _=i(Y),G=new H0,W=new Set,$=Z.key,H="readonly_pure_selector",{get:Q,find:J,json:z}=A6(_,"readonly_pure_selector",$,W),D={...Z,type:"readonly_pure_selector",subject:G,install:(R)=>pZ(R,Z,X),get:()=>{let R=i(Y),A=R.selectorGraph.getRelationEntries({downstreamSelectorKey:$});for(let[f,{source:h}]of A)if(h!==$)R.selectorGraph.delete(f,$);R.selectorAtoms.delete($);let g=Z.get({get:Q,find:J,json:z}),b=i1(R,$,g,G);return Y.logger.info("\u2728","readonly_pure_selector",$,"=",b),W.clear(),b},...X&&{family:X}};_.readonlySelectors.set($,D);let V={key:$,type:"readonly_pure_selector"};if(X)V.family=X;return V},fF=(Y)=>{let Z=i(Y);if(!o0(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 B0(Y){return Y[0].toUpperCase()+Y.slice(1)}function b4(Y){return Y.type.split("_").map(B0).join(" ")}var mZ=class extends Error{constructor(Y,Z){super(`${b4(Y)} ${z0(Y.key)} not found in store "${Z.config.name}".`)}};function PZ(Y,Z,X){return(..._)=>{let G=p0(Y,Z);if(G)return G.run(_,X);throw new mZ(Z,Y)}}function bF(Y,Z,X){let{key:_,newValue:G,oldValue:W}=Z,$=Y==="newValue"?G:W,H={key:_,type:"atom"};if(Z.family)Object.assign(H,{family:Z.family});T1(X,H,$)}function kF(Y){let{stack:Z}=Y;if(Z)return`
47
+ `)+"}");class Y6{config;resolvedConfig;name;get[Z1](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(Y,Z){if(this.config=u2(T.config,Z),this.resolvedConfig=u2(T.resolvedConfig,Z),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(_Z).length}`,this.name in _Z)w(`A Scope already named ${this.name} already exists`);_Z[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(m_($));this.aliases[$]=G}else{if($ in this.aliases)w(m_(_));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}}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=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 o8(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(o2(Y),Y,Z);preparseNode(Y,Z,X){let _=typeof Y==="string"?Y:o2(Z,Y);if(L0(Z)&&Z.kind===_)return Z;if(_==="alias"&&!X?.prereduced){let{reference:W}=a2.implementation.normalize(Z,this);if(W.startsWith("$")){let H=this.resolveRoot(W.slice(1));Z=H,_=H.kind}}else if(_==="union"&&Q1(Z,"object")){let W=BQ(Z);if(W?.length===1)Z=W[0],_=o2(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(WZ(Y))}maybeResolveRoot(Y){let Z=this.maybeResolve(Y);if(g(Z,"generic"))return;return Z}maybeResolveSubalias(Y){return GZ(this.aliases,Y)??GZ(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(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??pY(Y.prefix);return X1[Z]=Object.assign(Y,{[Z1]:"context",$:this,id:Z,phase:"unresolved"})}traversal(Y){return new x1(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")?XZ(_,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(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(_),$=mY(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=V_(G,_.id);return X1[_.id]=G,G}finalize(Y){if(d_(Y),!Y.precompilation&&!this.resolvedConfig.jitless)qQ(Y.references);return Y}}class $Z extends Y6{parseOwnDefinitionFormat(Y,Z){return mY(Z)}preparseOwnDefinitionFormat(Y,Z){return this.preparseNode(o2(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)=>i(Y,(Z,X)=>[Z,g(X,"root")||g(X,"generic")?X.json:g(X,"module")?i_(X):_0(`Unexpected resolution ${r(X)}`)]),GZ=(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 GZ(G,$);if(g(W,"root")||g(W,"generic"))return W;if(g(W,"module"))return W.root??w(n_(Z));_0(`Unexpected resolution for alias '${Z}': ${r(W)}`)},Z6=(Y,Z)=>new $Z(Y,Z),Z8=new $Z({});var r_=(Y,Z)=>{let X={};for(let _ in Z){let G=Z[_];if(g(G,"module")){let $=r_(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},WZ=(Y)=>`'${Y}' is unresolvable`,jQ=(Y)=>`'${Y}' must reference a module to be accessed using dot syntax`,n_=(Y)=>`Reference to submodule '${Y}' must specify an alias`;Z8.export();var{schema:J0,node:J2,defineSchema:Kw,generic:K1}=Z8;var HZ="^(?:0|[1-9]\\d*)$",SQ=new RegExp(HZ),qw=C0(SQ);var s_=Z6({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={...s_};var t_=Z6({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:HZ}},{prereducedAliases:!0}).export();Object.assign(T.intrinsic,t_);var PQ=Z6({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_,...PQ,emptyStructure:J2("structure",{},{prereduced:!0})};T.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),JZ=(Y)=>`'${Y}' could not be parsed by the Date constructor`,ZG=(Y,Z)=>vQ(Y,Z),vQ=(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?w(Z===!0?JZ(Y):Z):void 0};var QZ=(Y,Z)=>{let X=Y.scanner.shiftUntil(xQ[_G[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,UZ))Y.root=Y.ctx.$.node("unit",{unit:X});else{let _=ZG(X,JZ(X));Y.root=Y.ctx.$.node("unit",{meta:X,unit:_})}},UZ={"'":1,'"':1},XG={"/":1,"'":1,'"':1},_G={"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[_G[Z]]}`;var GG=(Y)=>`Private type references should not include '#'. Use '${Y}' instead.`,X6="Optional definitions like 'string?' are only valid as properties in an object or tuple",_6="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var $G={">":!0,">=":!0},WG={"<":!0,"<=":!0};var Q2={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},HG=(Y)=>`Unmatched )${Y===""?"":` before ${Y}`}`,G6=(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(zZ(Y,Z.names,_.map(($)=>$.expression)));return _}if(G.finalizer===",")return zG(Y,Z,X,_);return G.error(G6(">"))},zZ=(Y,Z,X)=>`${Y}<${Z.join(", ")}> requires exactly ${Z.length} args (got ${X.length}${X.length===0?"":`: ${X.join(", ")}`})`;var FZ=(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(zZ(Y,Z.names,[]));let G=UG(Y,Z,X);return Z(...G)},bQ=(Y,Z)=>yQ(Y,Z)??gQ(Y,Z)??Y.error(Z===""?Y.scanner.lookahead==="#"?GG(Y.shiftedByOne().scanner.shiftUntilNextTerminator()):EZ(Y):WZ(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=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:_})},EZ=(Y)=>{let Z=Y.previousOperator();return Z?OZ(Z,Y.scanner.unscanned):pQ(Y.scanner.unscanned)},OZ=(Y,Z="")=>`Token '${Y}' requires a right operand${Z?` before '${Z}'`:""}`,pQ=(Y)=>`Expected an expression${Y?` before '${Y}'`:""}`;var VZ=(Y)=>Y.scanner.lookahead===""?Y.error(EZ(Y)):Y.scanner.lookahead==="("?Y.shiftedByOne().reduceGroupOpen():Y.scanner.lookaheadIsIn(XG)?QZ(Y,Y.scanner.shift()):Y.scanner.lookaheadIsIn(O4)?VZ(Y.shiftedByOne()):Y.scanner.lookahead==="d"?Y.scanner.nextLookahead in UZ?QZ(Y,`${Y.scanner.shift()}${Y.scanner.shift()}`):FZ(Y):FZ(Y);class _4 extends wY{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=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)},OG={"<":1,">":1,"=":1},mQ=(Y,Z)=>Y.scanner.lookaheadIs("=")?`${Z}${Y.scanner.shift()}`:Z;var FG=(Y,Z,X,_)=>{if(X.extends(T.intrinsic.number)){if(typeof Z!=="number")return w(DZ(Y,Z,_));return Y==="=="?["min","max"]:Y[0]===">"?["min"]:["max"]}if(X.extends(T.intrinsic.lengthBoundable)){if(typeof Z!=="number")return w(DZ(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(X_(X.expression))},uQ=(Y)=>({rule:e_(Y.limit)?YG(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(DZ(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],uQ(Y.branches.leftBound)),Y.branches.leftBound=null},DZ=(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 LZ=(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,OG)?EG(Y,Z):Z==="%"?LG(Y):Z==="#"?VG(Y):(Z in O4)?LZ(Y):Y.error(W6(Z))},W6=(Y,Z="")=>`'${Y}' is not allowed here${Z&&` (should be ${Z})`}`,cQ="Missing expected ']'";var MG=(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 MZ=(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(W6(">"));return G},oQ=(Y)=>{Y.parseOperand();let Z=X8(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)w(W6(Y.scanner.lookahead));return Z},X8=(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(G6(")"));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 X8(new U2(this.scanner,this.ctx))}parseOperator(){return LZ(this)}parseOperand(){return VZ(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 rQ="An empty string is not a valid generic parameter name",H6=(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)},AG="extends ",nQ=(Y,Z,X,_)=>{if(Y.shiftUntilNonWhitespace(),Y.unscanned.startsWith(AG))Y.jumpForward(AG.length);else{if(Y.lookahead===",")Y.shift();return X.push(Z),H6(Y,X,_)}let G=X8(new U2(Y,_));return X.push([Z,G.root]),H6(Y,X,_)};class AZ extends v1{$;constructor(Y){super((...Z)=>new _8(Y)(...Z),{bind:Y});this.$=Y}in(Y){return new _8(this.$,Y===void 0?void 0:this.$.parse(Y))}at(Y,Z){return new _8(this.$).at(Y,Z)}case(Y,Z){return new _8(this.$).case(Y,Z)}}class _8 extends v1{$;in;key;branches=[];constructor(Y,Z){super((X)=>this.caseEntries(Object.entries(X).map(([_,G])=>_==="default"?[_,G]:[this.$.parse(_),G])));this.$=Y,this.in=Z}at(Y,Z){if(this.key)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: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(),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 J6=(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 Q6(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=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=J6(H,Z),U=Q;if(Q.kind==="required"){if(!E0(J))wZ(_,"required",{key:Q.normalized,value:J},Z);else wZ(_,"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(RG);if(J[1]==="=")w(NG)}if(Q.kind==="optional"){wZ(_,"optional",{key:Q.normalized,value:J},Z);continue}let E=Z.$.parseOwnDefinitionFormat(U.normalized,Z),V=e8(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($)??$})},wZ=(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)===h2?{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]===h2&&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 KG=(Y,Z)=>zU(Y)?jG[Y[0]](Y,Z):QU(Y)?qG[Y[1]](Y,Z):null,XU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[1],Z).keyof(),RZ=(Y,Z)=>{if(Y[2]===void 0)return w(OZ(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]==="&"?E1(X,_,Z.$):l2(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(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})`,$U=(Y,Z)=>{if(typeof Y[2]!=="function")return w(BG(":",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).constrain("predicate",Y[2])},WU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).configureReferences(Y[2],"shallow"),CG=(Y)=>Y,HU=CG({"[]":_U,"?":()=>w(X6)}),JU=CG({"|":RZ,"&":RZ,":":$U,"=>":GU,"|>":RZ,"@":WU,"=":()=>w(_6)}),qG={...HU,...JU},QU=(Y)=>qG[Y[1]]!==void 0,UU=(Y)=>Y,jG=UU({keyof:XU,instanceof:(Y,Z)=>{if(typeof Y[1]!=="function")return w(TG(x2(Y[1])));let X=Y.slice(1).map((_)=>typeof _==="function"?Z.$.node("proto",{proto:_}):w(TG(x2(_))));return X.length===1?X[0]:Z.$.node("union",{branches:X})},"===":(Y,Z)=>Z.$.units(Y.slice(1))}),zU=(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 $=J6(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(u8(J),U)))}else X=X.map((J)=>{if(H==="?")return xG(J,W);if(H==="=")return FU(J,W,Q);return NZ(J,W)})}return Z.$.parseSchema(X.map((G)=>u1(G)?{proto:Array,exactLength:0}:{proto:Array,sequence:G}))},NZ=(Y,Z)=>{if(Y.defaultables||Y.optionals)return w(Y.variadic?eY:VU);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 w(fG);return Y.optionals=Z0(Y.optionals,Z),Y},FU=(Y,Z,X)=>{if(Y.variadic)return w(fG);if(Y.optionals)return w(DU);return Y.defaultables=Z0(Y.defaultables,[[Z,X]]),Y},SG=(Y,Z)=>{if(Y.postfix)w(PG);if(Y.variadic){if(!Y.variadic.equals(Z))w(PG)}else Y.variadic=Z.internal;return Y},EU=(Y,Z)=>{let X=Z.select({method:"find",kind:"sequence"});if(!X)return SG(Y,T.intrinsic.unknown);if(X.prefix)for(let _ of X.prefix)NZ(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)NZ(Y,_);return Y},OU=(Y)=>`Spread element must be an array (was ${Y})`,PG="A tuple may have at most one variadic element",VU="A required element may not follow an optional element",fG="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={},Q6=(Y,Z)=>{if(typeof Y==="string"){if(Z.args&&Object.keys(Z.args).some((_)=>Y.includes(_)))return MZ(Y,Z);let X=LU[Z.$.name]??={};return X[Y]??=MZ(Y,Z)}return Q1(Y,"object")?MU(Y,Z):w(IZ(b0(Y)))},MU=(Y,Z)=>{let X=v2(Y);switch(X){case void 0:if(g(Y,"root"))return Y;return IG(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(IZ("Function"))}default:return w(IZ(X??r(Y)))}},AU=(Y,Z)=>KG(Y,Z)??vG(Y,Z),IZ=(Y)=>`Type definitions must be strings or objects (was ${Y})`;class TZ extends v1{constructor(Y){let Z=Object.assign({errors:z1,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 U6 extends Y6{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 eX($,Z,this)}]}parseGenericParams(Y,Z){return H6(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 _=Q6(Y,Z);if(E0(_)){if(_[1]==="=")return w(_6);if(_[1]==="?")return w(X6)}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 AZ(this);declare=()=>({type:this.type});define(Y){return Y}type=new TZ(this);static scope=(Y,Z={})=>new U6(Y,Z);static module=(Y,Z={})=>this.scope(Y,Z).export()}var KZ=Object.assign(U6.scope,{define:(Y)=>Y}),Y0=U6;class hG extends s0{description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var wU=K1(["base",d.object],["props",d.object])((Y)=>Y.base.merge(Y.props),hG),kG=Y0.module({Key:d.key,Merge:wU});class bG extends s0{}var RU=K1("element")((Y)=>{let Z=Y.element.exclude(d.Array),X=Z.array();return Z.rawOr(X).pipe(F4).distribute((_)=>_.assertHasKind("morph").declareOut(X),J0)},bG),yG=Y0.module({root:d.Array,readonly:"root",index:d.nonNegativeIntegerString,liftFrom:RU},{name:"Array"});var BZ=J0(["string",P4.FileConstructor]),NU=BZ.rawOr(BZ.array()),gG=J0({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:NU}}),pG=Y0.module({root:["instanceof",FormData],value:BZ,parsed:gG,parse:J0({in:FormData,morphs:(Y)=>{let Z={};for(let[X,_]of Y)if(X in Z){let G=Z[X];if(typeof G==="string"||G instanceof P4.FileConstructor)Z[X]=[G,_];else G.push(_)}else Z[X]=_;return Z},declaredOut:gG})},{name:"FormData"});var mG=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},uG=Y0.module({...i({...FY,...OY},(Y,Z)=>(Y in IU)?[]:[Y,["instanceof",Z]]),Array:yG,TypedArray:mG,FormData:pG});var TU=J0({domain:{domain:"number",meta:"a number representing a Unix timestamp"},divisor:{rule:1,meta:"an integer representing a Unix timestamp"},min:{rule:-8640000000000000,meta:"a Unix timestamp after -8640000000000000"},max:{rule:8640000000000000,meta:"a Unix timestamp before 8640000000000000"},meta:"an integer representing a safe Unix timestamp"}),KU=J0({domain:"number",divisor:1}),z6=Y0.module({root:d.number,integer:KU,epoch:TU,safe:J0({domain:{domain:"number",numberAllowsNaN:!1},min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER}),NaN:["===",Number.NaN],Infinity:["===",Number.POSITIVE_INFINITY],NegativeInfinity:["===",Number.NEGATIVE_INFINITY]},{name:"number"});var 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(k2,"a well-formed integer string"),Z9=Y0.module({root:dG,parse:J0({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"}),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"}),cG=I0(/^[A-Z].*$/,"capitalized"),qU=Y0.module({root:J0({in:"string",morphs:(Y)=>Y.charAt(0).toUpperCase()+Y.slice(1),declaredOut:cG}),preformatted:cG},{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=J0({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()),lG=J0({domain:"string",predicate:{meta:"a parsable date",predicate:xU}}).assertHasKind("intersection"),oG=Z9.root.internal.narrow((Y,Z)=>{let X=Number.parseInt(Y),_=z6.epoch(X);if(_ instanceof z1)return Z.errors.merge(_),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),fU=Y0.module({root:oG,parse:J0({in:oG,morphs:(Y)=>new Date(Y),declaredOut:d.Date})},{name:"string.date.epoch"}),iG=I0(vU,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),hU=Y0.module({root:iG,parse:J0({in:iG,morphs:(Y)=>new Date(Y),declaredOut:d.Date})},{name:"string.date.iso"}),kU=Y0.module({root:lG,parse:J0({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:hU,epoch:fU},{name:"string.date"}),bU=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}`,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",X9=(Y)=>{if(!(Y instanceof SyntaxError))throw Y;return`must be ${F2} (${Y})`},mU=J0({meta:F2,domain:"string",predicate:{meta:F2,predicate:(Y,Z)=>{try{return JSON.parse(Y),!0}catch(X){return Z.reject({code:"predicate",expected:F2,problem:X9(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:X9(X)})}},dU=Y0.module({root:mU,parse:J0({meta:"safe JSON string parser",in:"string",morphs:uU,declaredOut:d.jsonObject})},{name:"string.json"}),nG=I0(/^[a-z]*$/,"only lowercase letters"),cU=Y0.module({root:J0({in:"string",morphs:(Y)=>Y.toLowerCase(),declaredOut:nG}),preformatted:nG},{name:"string.lower"}),_9=["NFC","NFD","NFKC","NFKD"],G8=i(_9,(Y,Z)=>[Z,J0({domain:"string",predicate:(X)=>X.normalize(Z)===X,meta:`${Z}-normalized unicode`})]),F6=i(_9,(Y,Z)=>[Z,J0({in:"string",morphs:(X)=>X.normalize(Z),declaredOut:G8[Z]})]),lU=Y0.module({root:F6.NFC,preformatted:G8.NFC},{name:"string.normalize.NFC"}),oU=Y0.module({root:F6.NFD,preformatted:G8.NFD},{name:"string.normalize.NFD"}),iU=Y0.module({root:F6.NFKC,preformatted:G8.NFKC},{name:"string.normalize.NFKC"}),rU=Y0.module({root:F6.NFKD,preformatted:G8.NFKD},{name:"string.normalize.NFKD"}),nU=Y0.module({root:"NFC",NFC:lU,NFD:oU,NFKC:iU,NFKD:rU},{name:"string.normalize"}),sG=I0(g8,"a well-formed numeric string"),sU=Y0.module({root:sG,parse:J0({in:sG,morphs:(Y)=>Number.parseFloat(Y),declaredOut:d.number})},{name:"string.numeric"}),tG="a regex pattern",tU=J0({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"}}),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/)"),aG=I0(/^\S.*\S$|^\S?$/,"trimmed"),Yz=Y0.module({root:J0({in:"string",morphs:(Y)=>Y.trim(),declaredOut:aG}),preformatted:aG},{name:"string.trim"}),eG=I0(/^[A-Z]*$/,"only uppercase letters"),Zz=Y0.module({root:J0({in:"string",morphs:(Y)=>Y.toUpperCase(),declaredOut:eG}),preformatted:eG},{name:"string.upper"}),Xz=(Y)=>{if(URL.canParse)return URL.canParse(Y);try{return new URL(Y),!0}catch{return!1}},Y9=J0({domain:"string",predicate:{meta:"a URL string",predicate:Xz},meta:{format:"uri"}}),_z=Y0.module({root:Y9,parse:J0({declaredIn:Y9,in:"string",morphs:(Y,Z)=>{try{return new URL(Y)}catch{return Z.error("a URL string")}},declaredOut:J0(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"}),G9=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:Z9,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 $9=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}),W9=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"}),H9=Y0.module({root:d.object,json:$z},{name:"object"});class J9 extends s0{description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var Wz=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 Hz=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 Jz=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 Qz=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 Uz=K1(["T",d.object])((Y)=>Y.T.required(),F9);class E9 extends s0{description='exclude branches of a union like `Exclude("boolean", "true")`'}var zz=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 Fz=K1("T","U")((Y)=>Y.T.extract(Y.U),O9),V9=Y0.module({Exclude:zz,Extract:Fz,Omit:Jz,Partial:Qz,Pick:Hz,Record:Wz,Required:Uz});var w4=KZ({...$9,...V9,...uG,...kG,string:G9,number:z6,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 O1=Object.assign(w4.type,z2.typeAttachments),Ez=w4.match,Oz=w4.generic,sI=w4.schema,Vz=w4.define,Dz=w4.declare;var _1=(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 $8(Y){return D2(o0.STORE,Y)}function qZ(...Y){if(Y.length===2)return c1(o0.STORE,...Y);return c1(o0.STORE,...Y)}function E6(Y,Z){return I9(o0.STORE,Y,Z)}function D9(Y){return K9(Y,o0.STORE)}var CZ=(Y)=>(Z,X,_,G,...$)=>{console[Y](`${Z} ${X} "${_}" ${G}`,...$)},Lz={error:CZ("error"),info:CZ("info"),warn:CZ("warn")},L9=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,A9("root",Y)}allocate(Y,Z,X){return O2(this.store,Y,Z,X)}fuse(Y,Z,X){return w9(this.store,Y,Z,X)}deallocate(Y){V2(this.store,Y)}claim(Y,Z,X){return J8(this.store,Y,Z,X)}},M9=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){J8(this.store,Y,Z,X)}};function O6(Y){return vZ(o0.STORE,Y)}function W8(Y){return PZ(o0.STORE,Y)}var G4=class Y extends Set{mode="record";subject=new H0;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 jZ(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 G1=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)}},H0=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 H0{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)};var fZ=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 $1(Y){return"phase"in Y.transactionMeta}var D6=(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}"${!$1(Y)?"":` ${Y.transactionMeta.phase} "${Y.transactionMeta.update.key}"`}`)},L6=(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)},z8=(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 hZ(Y,Z){let X=o(Y),_=X.selectorAtoms.getRelatedKeys(Z.key);if(X.logger.info("\uD83E\uDDF9",Z.type,Z.key,_?`evicting ${_.size} states downstream:`:"no downstream states",_??"to evict"),_){if(X.operation.open)X.logger.info("\uD83E\uDDF9",Z.type,Z.key,`[ ${[...X.operation.done].join(", ")} ] already done`);for(let G of _){if(S9(X,G))continue;P9(X,G),z8(X,G)}}}function Kz(Y,Z){let X=o(Y),_=X.selectorGraph.getRelationEntries({upstreamSelectorKey:Z.key}).filter(([G,{source:$}])=>$===Z.key);for(let[G]of _){if(S9(X,G))continue;P9(X,G),z8(X,G)}}function o1(Y,Z,X,_){let G=Y.valueMap.get(Z);if(G instanceof fZ&&!G.done){let $=G;if(X instanceof Promise)return $.use(X),$;return Y.valueMap.set(Z,X),X}if(X instanceof Promise){let $=new fZ(X);return Y.valueMap.set(Z,$),$.then(function W(H){if(Y.valueMap.get(Z)===$){o1(Y,Z,H,_);let J=Y.atoms.get(Z);if(J)D6(Y,J),hZ(Y,J),L6(Y);else{let U=Y.writableSelectors.get(Z)??Y.readonlySelectors.get(Z);if(U)D6(Y,U),Kz(Y,U),L6(Y)}_.next({newValue:H,oldValue:$})}}).catch((W)=>{Y.logger.error("\uD83D\uDCA5","state",Z,"rejected:",W)}),$}return Y.valueMap.set(Z,X),X}function Bz(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"&&$1(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 cZ($,W),_=J}return _}function P9(Y,Z){let X=Y.valueMap.get(Z);if(X instanceof fZ){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 Bz(Y,Z,X);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,Z.key,"computing value"),Z.get();case"atom":{let _;if(Z.default instanceof Function)_=Z.default();else _=Z.default;let G=o1(Y,Z.key,_,Z.subject);return Y.logger.info("\uD83D\uDC81","atom",Z.key,"could not find cached value; using default",_),G}case"mutable_atom":{let _=new Z.class,G=o1(Y,Z.key,_,Z.subject);return Y.logger.info("\uD83D\uDC81","mutable_atom",Z.key,"could not find cached value; using default",_),G}}}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})})},bZ=(Y)=>(Z)=>Y instanceof Function?Y(Z):Y;function Cz(Y,Z){if("internalRoles"in Y===!1)return!1;return Y.internalRoles.includes(Z)}var qz=(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)},kZ=(Y,Z,X)=>{let _=L2(Y,Z,"mut"),G=bZ(X)(_);Y.logger.info("\uD83D\uDCDD","atom",Z.key,"set to",G),G=o1(Y,Z.key,G,Z.subject),z8(Y,Z.key),hZ(Y,Z);let $={oldValue:_,newValue:G};if(!$1(Y)){qz(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(Cz(Z,"tracker:signal")){let W=Z.key.slice(1),H=Y.atoms.get(W);if(L2(Y,H,"mut").do($.newValue)===null===!0)hZ(Y,H)}};function C9(Y,Z){switch(Z.type){case"mutable_atom":kZ(Y,Z,new Z.class);return;case"atom":{let X=Z.default;if(X instanceof Function)X=X();kZ(Y,Z,X)}}}function jz(Y,Z){switch(Z.type){case"atom":case"mutable_atom":C9(Y,Z);break;case"writable_pure_selector":case"writable_held_selector":{let X=M6(Y,Z.key);for(let _ of X.values())C9(Y,_)}break}}function v9(Y,Z){if(Z.family){let X=Y.families.get(Z.family.key);if(X)return X}}function H8(Y,...Z){let X,_,G;if(Z.length===1){if(X=Z[0],_=v9(Y,X)??null,_)G=X.family?_1(X.family.subKey):null,X=W0(Y,_,G)}else _=Z[0],G=Z[1],X=W0(Y,_,G);if("counterfeit"in X&&"family"in X){let H=X.family.subKey,Q=Y.disposalTraces.buffer.find((J)=>J?.key===H);Y.logger.error("\u274C",X.type,X.key,`could not be reset because it was not found in the store "${Y.config.name}".`,Q?`This state was previously disposed:
48
+ ${Q.trace}`:"No previous disposal trace was found.");return}let $=D6(Y,X);if($){let H=Y.on.operationClose.subscribe(`waiting to reset "${X.key}" at T-${$}`,()=>{H(),Y.logger.info("\uD83D\uDFE2",X.type,X.key,`resuming deferred resetState from T-${$}`),H8(Y,X)});return}let W=p0(Y,X);jz(Y,W),L6(Y)}var x9=(Y,Z,X)=>{switch(Z.type){case"atom":case"mutable_atom":kZ(Y,Z,X);break;case"writable_pure_selector":case"writable_held_selector":Z.set(X);break}};function h1(Y,...Z){let X,_,G,$;if(Z.length===2){if(X=Z[0],$=Z[1],X.family)_=v9(Y,X),G=_1(X.family.subKey),X=W0(Y,_,G)}else _=Z[0],G=Z[1],$=Z[2],X=W0(Y,_,G);if("counterfeit"in X&&"family"in X){let Q=X.family.subKey,J=Y.disposalTraces.buffer.find((U)=>U?.key===Q);Y.logger.error("\u274C",X.type,X.key,`could not be set because it was not found in the store "${Y.config.name}".`,J?`This state was previously disposed:
49
+ ${J.trace}`:"No previous disposal trace was found.");return}let W=D6(Y,X);if(W){let Q=Y.on.operationClose.subscribe(`waiting to set "${X.key}" at T-${W}`,function J(){Q(),Y.logger.info("\uD83D\uDFE2",X.type,X.key,`resuming deferred setState from T-${W}`),h1(Y,X,$)});return}let H=p0(Y,X);x9(Y,H,$),L6(Y)}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),q9=(Y,Z)=>{return o(Y).selectorGraph.getRelationEntries({downstreamSelectorKey:Z}).filter(([_,{source:G}])=>G!==Z).map(([_,{source:G}])=>G).filter((_)=>vz(Y,_))},M6=(Y,Z,X=new Set)=>{let _=q9(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(...q9(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=M6(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)},A6=(Y,Z,X,_)=>({get:(...G)=>{let $=o(Y),W;if(G.length===2){let[U,E]=G;W=W0(Y,U,E)}else[W]=G;let H=p0(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],$=W0(Y,J,U)}let H=o(Y),Q=p0(H,$);x9(H,Q,W)},find:(...G)=>W0(Y,...G),json:(G)=>b4(Y,G)}),yZ=(Y,Z,X)=>{let _=o(Y),G=new H0,$=new Set,{key:W,const:H}=Z,Q="readonly_held_selector",{get:J,find:U,json:E}=A6(_,"readonly_held_selector",W,$),L={...Z,type:"readonly_held_selector",subject:G,install:(M)=>yZ(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),W,H,G),$.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},gZ=(Y,Z,X)=>{let _=o(Y),G=new H0,$=new Set,W=Z.key,H="readonly_pure_selector",{get:Q,find:J,json:U}=A6(_,"readonly_pure_selector",W,$),V={...Z,type:"readonly_pure_selector",subject:G,install:(R)=>gZ(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,W,y,G);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(!$1(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 pZ=class extends Error{constructor(Y,Z){super(`${k4(Y)} ${U0(Y.key)} not found in store "${Z.config.name}".`)}};function SZ(Y,Z,X){return(..._)=>{let G=p0(Y,Z);if(G)return G.run(_,X);throw new pZ(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});h1(X,H,W)}function kz(Y){let{stack:Z}=Y;if(Z)return`
50
50
  `+Z.split(`
51
51
  `)?.slice(1)?.join(`
52
- `);return""}function w9(Y,Z=d0.STORE){let X={key:Y,stringKey:z0(Y),dependsOn:"any"};return Z.molecules.set(z0(Y),X),Y}function D8(Y,Z,X,_="any"){let G=Z,W=z0(X),$=[],H=i(Y);if(Array.isArray(G))for(let z of G){let E=z0(z);if(H.molecules.get(E))Y.moleculeGraph.set(E,W,{source:E});else $.push(E)}else{let z=z0(G);if(H.molecules.get(z))Y.moleculeGraph.set(z,W,{source:z});else $.push(z)}if($.length===0)H.molecules.set(W,{key:X,stringKey:W,dependsOn:_});let Q={type:"molecule_creation",key:X,provenance:G};if(o0(H)&&H.transactionMeta.phase==="building")H.transactionMeta.update.updates.push(Q);else H.on.moleculeCreation.next(Q);for(let z of $){let E=Y.disposalTraces.buffer.find((D)=>D?.key===z);Y.logger.error("\u274C","molecule",X,"allocation failed:",`Could not allocate to ${z} in store "${Y.config.name}".`,E?`
53
- ${z} was most recently disposed
54
- ${E.trace}`:`No previous disposal trace for ${z} was found.`)}return X}function R9(Y,Z,X,_){let G=`T$--${Z}==${X}++${_}`;return D8(Y,[X,_],G,"all"),G}function L8(Y,Z){let X=z0(Z),_=Y.molecules.get(X);if(!_){let V=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}".`,V?`
52
+ `);return""}function A9(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($1(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?`
53
+ ${U} was most recently disposed
54
+ ${E.trace}`:`No previous disposal trace for ${U} was found.`)}return X}function w9(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?`
55
55
  This state was most recently deallocated
56
- ${V.trace}`:`No previous disposal trace for ${X} was found.`);return}let G=Y.moleculeJoins.getRelatedKeys(_.key);if(G)for(let V of G){let R=Y.joins.get(V);if(R)R.relations.delete(_.key),R.molecules.delete(_.stringKey)}Y.moleculeJoins.delete(_.stringKey);let W=[],$=[],H={type:"molecule_disposal",key:_.key,values:$,provenance:W},Q=i(Y);Q.molecules.delete(X);let J=o0(Q)&&Q.transactionMeta.phase==="building";if(J)Q.transactionMeta.update.updates.push(H);let z=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:_.stringKey});if(z)for(let[V,{source:R}]of z)if(R===_.stringKey){let A=G1(V);L8(Y,A)}else W.push(R);let E=Q.moleculeData.getRelatedKeys(_.stringKey);if(E)for(let V of E){let R=Q.families.get(V),A=$0(Y,R,_.key);$.push([R.key,A]),M8(Y,A)}if(Q.moleculeGraph.delete(_.stringKey),Q.moleculeJoins.delete(_.stringKey),Q.moleculeData.delete(_.stringKey),!J)Q.on.moleculeDisposal.next(H);Q.molecules.delete(_.stringKey);let D=kF(new Error);Y.disposalTraces.add({key:X,trace:D})}function J2(Y,Z,X,_){let G=z0(X),W=i(Y),$=W.molecules.get(G);if(!$){let D=Y.disposalTraces.buffer.find((V)=>V?.key===G);return Y.logger.error("\u274C","molecule",X,"claim failed:",`Could not allocate to ${G} in store "${Y.config.name}".`,D?`
56
+ ${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=$1(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=_1(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=W0(Y,R,_.key);W.push([R.key,M]),Q8(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 J8(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?`
57
57
  ${G} was most recently disposed
58
- ${D.trace}`:`No previous disposal trace for ${G} was found.`),X}let H=z0(Z),Q=W.molecules.get(H);if(!Q){let D=Y.disposalTraces.buffer.find((V)=>V?.key===H);return Y.logger.error("\u274C","molecule",X,"claim failed:",`Could not allocate to ${H} in store "${Y.config.name}".`,D?`
58
+ ${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?`
59
59
  ${H} was most recently disposed
60
- ${D.trace}`:`No previous disposal trace for ${H} was found.`),X}let J=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:$.stringKey}).filter(([,{source:D}])=>D!==G).map(([D])=>G1(D));if(_)W.moleculeGraph.delete(G);W.moleculeGraph.set({upstreamMoleculeKey:Q.stringKey,downstreamMoleculeKey:$.stringKey},{source:Q.stringKey});let z={type:"molecule_transfer",key:$.key,exclusive:Boolean(_),from:J,to:[Q.key]};if(o0(W)&&W.transactionMeta.phase==="building")W.transactionMeta.update.updates.push(z);return X}function gF(Y,Z,X){switch(Z){case"newValue":k9(Y,X);break;case"oldValue":M8(X,Y.token);break}}function yF(Y,Z,X){switch(Z){case"newValue":M8(X,Y.token);break;case"oldValue":if(k9(Y,X),Y.subType==="atom")X.valueMap.set(Y.token.key,Y.value);break}}function k9(Y,Z){let{family:X}=Y.token;if(X){let _=Z.families.get(X.key);if(_)$0(Z,_,G1(X.subKey))}}function pF(Y,Z,X){switch(Z){case"newValue":D8(X,Y.provenance,Y.key);break;case"oldValue":L8(X,Y.key);break}}function mF(Y,Z,X){switch(Z){case"newValue":L8(X,Y.key);break;case"oldValue":{let _=Y.provenance.map(G1);D8(X,_,Y.key);for(let[G,W]of Y.values){let $=X.families.get(G);if($){$0(X,$,Y.key);let H=`${G}(${z0(Y.key)})`;X.valueMap.set(H,W)}}}break}}function uF(Y,Z,X){switch(Z){case"newValue":for(let _ of Y.to)J2(X,_,Y.key,Y.exclusive?"exclusive":void 0);break;case"oldValue":{let _="exclusive";for(let G of Y.from)J2(X,G,Y.key,_),_=void 0}break}}function g9(Y,Z,X){let _=Y==="newValue"?Z.updates:[...Z.updates].reverse();for(let G of _)switch(G.type){case"atom_update":case"selector_update":bF(Y,G,X);break;case"state_creation":gF(G,Y,X);break;case"state_disposal":yF(G,Y,X);break;case"molecule_creation":pF(G,Y,X);break;case"molecule_disposal":mF(G,Y,X);break;case"molecule_transfer":uF(G,Y,X);break;case"transaction_update":g9(Y,G,X);break}}function y9(Y,Z){return Y.transactionMeta.actionContinuities.getRelatedKey(Z)}function dF(Y,Z){return Y.transactionMeta.epoch.get(Z)}function cF(Y,Z){if(!R4(Y))return;let _=y9(Y,Z);if(_===void 0)return;return dF(Y,_)}function lF(Y,Z,X){if(!R4(Y))return;let G=y9(Y,Z);if(G!==void 0)Y.transactionMeta.epoch.set(G,X)}var iF=(Y,Z)=>{let X=i(Z),{parent:_}=X;if(_===null||!o0(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),g9("newValue",X.transactionMeta.update,_),R4(_))lF(_,X.transactionMeta.update.key,X.transactionMeta.update.epoch),p0(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(o0(_))_.transactionMeta.update.updates.push(X.transactionMeta.update);_.on.transactionApplying.next(null)};function oF(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)}},nF=(Y,Z,X,_)=>{let G=i(Y),W={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 W1(G.timelineTopics.toJSON()),trackers:new Map,transactions:new l1(G.transactions),selectorAtoms:new W1(G.selectorAtoms.toJSON()),selectorGraph:new W1(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 W1(G.moleculeGraph.toJSON(),{makeContentKey:G.moleculeGraph.makeContentKey}),moleculeData:new W1(G.moleculeData.toJSON(),{makeContentKey:G.moleculeData.makeContentKey}),moleculeJoins:new W1(G.moleculeJoins.toJSON(),{makeContentKey:G.moleculeJoins.makeContentKey}),miscResources:new l1(G.miscResources)},$=cF(Y,Z),H={phase:"building",update:{type:"transaction_update",key:Z,id:_,epoch:$===void 0?NaN:$+1,updates:[],params:X,output:void 0},toolkit:{get:(...J)=>b1(Q,...J),set:(...J)=>{T1(Q,...J)},reset:(...J)=>{O8(Q,...J)},run:(J,z=jZ())=>PZ(Q,J,z),find:(...J)=>$0(Y,...J),json:(J)=>k4(Q,J),dispose:(...J)=>{M8(Q,...J)},env:()=>oF(Q)}},Q=Object.assign(W,{transactionMeta:H});return G.child=Q,Y.logger.info("\uD83D\uDEEB","transaction",Z,"Building transaction with params:",X),Q};function SZ(Y,Z){let{key:X}=Z,_=Y.transactions.has(X),G={key:X,type:"transaction",run:(H,Q)=>{let J=nF(Y,X,H,Q);try{let z=i(Y),{toolkit:E}=J.transactionMeta,D=Z.do(E,...H);return iF(D,z),D}catch(z){throw fF(W),Y.logger.warn("\uD83D\uDCA5","transaction",X,"caught:",z),z}},install:(H)=>SZ(H,Z),subject:new H0},W=i(Y);W.transactions.set(X,G);let $=W4(G);if(!_)Y.on.transactionCreation.next($);return $}var uZ=(Y,Z,X)=>{let _=i(Y),G=new H0,W=new Set,{key:$,const:H}=Z,Q="writable_held_selector",J=A6(_,"writable_held_selector",$,W),{find:z,get:E,json:D}=J,V={find:z,get:E,json:D},R=(f=Z.get,h=i(Y))=>{let I=h.selectorGraph.getRelationEntries({downstreamSelectorKey:$});for(let[N,{source:K}]of I)if(K!==$)h.selectorGraph.delete(N,$);return h.selectorAtoms.delete($),f(V,H),i1(h,$,H,G),Y.logger.info("\u2728","writable_held_selector",$,"=",H),W.clear(),H},g={...Z,type:"writable_held_selector",subject:G,install:(f)=>uZ(f,Z,X),get:R,set:(f)=>{let h=i(Y),I=R(Z.get,h),N=gZ(f)(I);if(Y.logger.info("\uD83D\uDCDD","writable_held_selector",$,"set (",I,"->",N,")"),i1(h,$,N,G),z2(h,$),R4(h))G.next({newValue:N,oldValue:I});Z.set(J,N)},...X&&{family:X}};_.writableSelectors.set($,g);let b={key:$,type:"writable_held_selector"};if(X)b.family=X;return b},dZ=(Y,Z,X)=>{let _=i(Y),G=new H0,W=new Set,$=Z.key,H="writable_pure_selector",Q=A6(_,"writable_pure_selector",$,W),{find:J,get:z,json:E}=Q,D={find:J,get:z,json:E},V=(f=Z.get,h=i(Y))=>{let I=h.selectorGraph.getRelationEntries({downstreamSelectorKey:$});for(let[q,{source:p}]of I)if(p!==$)h.selectorGraph.delete(q,$);h.selectorAtoms.delete($);let N=f(D),K=i1(h,$,N,G);return Y.logger.info("\u2728","writable_pure_selector",$,"=",K),W.clear(),N},A={...Z,type:"writable_pure_selector",subject:G,install:(f)=>dZ(f,Z,X),get:V,set:(f)=>{let h=i(Y),I=V(Z.get,h),N=gZ(f)(I);if(Y.logger.info("\uD83D\uDCDD","writable_pure_selector",$,"set (",I,"->",N,")"),i1(h,Z.key,N,G),z2(h,Z.key),R4(h))G.next({newValue:N,oldValue:I});Z.set(Q,N)},...X&&{family:X}};_.writableSelectors.set($,A);let g=V();Y.logger.info("\u2728",A.type,A.key,"=",g);let b={key:$,type:"writable_pure_selector"};if(X)b.family=X;return b};function N9(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X){let W=uZ(Y,Z,void 0);return Y.on.selectorCreation.next(W),W}if(_){let W=yZ(Y,Z,void 0);return Y.on.selectorCreation.next(W),W}if(X){let W=dZ(Y,Z,void 0);return Y.on.selectorCreation.next(W),W}let G=pZ(Y,Z,void 0);return Y.on.selectorCreation.next(G),G}function rF(Y,Z){let X=i(Y),{key:_,type:G,family:W}=Z;if(!W)Y.logger.error("\u274C",G,_,"Standalone selectors cannot be disposed.");else{if(X.molecules.get(W.subKey))X.moleculeData.delete(W.subKey,W.key);let H;switch(Z.type){case"writable_held_selector":X.writableSelectors.delete(_),H={key:W.key,type:"writable_held_selector_family"},p0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z});break;case"writable_pure_selector":X.writableSelectors.delete(_),H={key:W.key,type:"writable_pure_selector_family"},p0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z});break;case"readonly_held_selector":X.readonlySelectors.delete(_),H={key:W.key,type:"readonly_held_selector_family"},p0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z});break;case"readonly_pure_selector":X.readonlySelectors.delete(_),H={key:W.key,type:"readonly_pure_selector_family"},p0(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(W.key,W.subKey),Y.logger.info("\uD83D\uDD25",Z.type,_,"deleted"),o0(X)&&X.transactionMeta.phase==="building")X.transactionMeta.update.updates.push({type:"state_disposal",subType:"selector",token:Z});else Y.on.selectorDisposal.next(Z)}}function f4(Y,Z,X){let _=Z.key,G="readonly_pure_selector_family",W={key:_,type:"readonly_pure_selector_family"},$=Y.families.get(_);if($)Y.logger.error("\u2757","readonly_pure_selector_family",_,`Overwriting an existing ${b4($)} "${$.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new H0,J=Object.assign((z)=>{let E=z0(z),D={key:_,subKey:E},V=`${_}(${E})`,R=i(Y),A=pZ(R,{key:V,get:Z.get(z)},D);return H.next({type:"state_creation",token:A}),A},W,{internalRoles:X,subject:H,install:(z)=>f4(z,Z),default:(z)=>{return Z.get(z)({get:(...D)=>b1(Y,...D),find:(...D)=>$0(Y,...D),json:(D)=>k4(Y,D)})}});return Y.families.set(_,J),W}function V8(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 ${b4(G)} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let W=new H0,H=Object.assign((Q)=>{let J=z0(Q),z={key:Z.key,subKey:J},E=`${Z.key}(${J})`,D=i(Y),V=Z.default,R={key:E,default:V instanceof Function?()=>V(Q):V};if(Z.effects)R.effects=Z.effects(Q);let A=h4(D,R,z);return W.next({type:"state_creation",token:A}),A},_,{subject:W,install:(Q)=>V8(Q,Z),internalRoles:X});return Y.families.set(Z.key,H),Y.defaults.set(Z.key,Z.default),_}function p9(Y,Z,X){let _=Z.key,G="readonly_held_selector_family",W={key:_,type:"readonly_held_selector_family"},$=Y.families.get(_);if($)Y.logger.error("\u2757","readonly_held_selector_family",_,`Overwriting an existing ${b4($)} "${$.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new H0,J=Object.assign((z)=>{let E=z0(z),D={key:_,subKey:E},V=`${_}(${E})`,R=i(Y),A=yZ(R,{key:V,const:Z.const(z),get:Z.get(z)},D);return H.next({type:"state_creation",token:A}),A},W,{internalRoles:X,subject:H,install:(z)=>p9(z,Z),default:Z.const});return Y.families.set(_,J),W}function m9(Y,Z,X){let _=Z.key,G="writable_held_selector_family",W={key:_,type:"writable_held_selector_family"},$=Y.families.get(_);if($)Y.logger.error("\u2757","writable_held_selector_family",_,`Overwriting an existing ${b4($)} "${$.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new H0,J=Object.assign((z)=>{let E=z0(z),D={key:_,subKey:E},V=`${_}(${E})`,R=i(Y),A=uZ(R,{key:V,const:Z.const(z),get:Z.get(z),set:Z.set(z)},D);return H.next({type:"state_creation",token:A}),A},W,{internalRoles:X,subject:H,install:(z)=>m9(z,Z),default:Z.const});return Y.families.set(_,J),W}function cZ(Y,Z,X){let _=Z.key,G="writable_pure_selector_family",W={key:_,type:"writable_pure_selector_family"},$=Y.families.get(_);if($)Y.logger.error("\u2757","writable_pure_selector_family",_,`Overwriting an existing ${b4($)} "${$.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new H0,J=Object.assign((z)=>{let E=z0(z),D={key:_,subKey:E},V=`${_}(${E})`,R=i(Y),A=dZ(R,{key:V,get:Z.get(z),set:Z.set(z)},D);return H.next({type:"state_creation",token:A}),A},W,{internalRoles:X,subject:H,install:(z)=>cZ(z,Z),default:(z)=>{return Z.get(z)({get:(...D)=>b1(Y,...D),find:(...D)=>$0(Y,...D),json:(D)=>k4(Y,D)})}});return Y.families.set(_,J),W}function vZ(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X)return m9(Y,Z,void 0);if(_)return p9(Y,Z,void 0);if(X)return cZ(Y,Z);return f4(Y,Z)}function sF(Y,Z,X){let _=Y.families.get(Z.key);if(_===void 0)throw new mZ(Z,Y);let G=_(X),W=i(Y);if(G.family){if(R4(W))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(o0(W)&&W.on.transactionApplying.state===null)W.transactionMeta.update.updates.push({type:"state_creation",token:G})}return G}function aF(Y,Z,X){let _=z0(X),G=`${Z.key}(${_})`,W=i(Y),$;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($)return W4($);return $}function $0(Y,Z,X){let _=aF(Y,Z,X);if(_)return _;let G=z0(X),W=Y.molecules.get(G);if(!W&&Y.config.lifespan==="immortal"){let $=BF(Z,X);return Y.logger.error("\u274C",$.type,$.key,`was not found in store "${Y.config.name}"; returned a counterfeit token.`),$}if(_=sF(Y,Z,X),W)i(Y).moleculeData.set(G,Z.key);return _}function M8(Y,...Z){let X;if(Z.length===1)X=Z[0];else{let _=Z[0],G=Z[1];X=$0(Y,_,G)}try{p0(Y,X)}catch(_){Y.logger.error("\u274C",X.type,X.key,`could not be disposed because it was not found in the store "${Y.config.name}".`);return}switch(X.type){case"atom":case"mutable_atom":d9(Y,X);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":rF(Y,X);break}}function b1(Y,...Z){let X,_,G;if(Z.length===1)X=Z[0];else _=Z[0],G=Z[1],X=$0(Y,_,G);if("counterfeit"in X&&"family"in X){_=Y.families.get(X.family.key);let W=X.family.subKey,$=Y.disposalTraces.buffer.find((H)=>H?.key===W);switch(Y.logger.error("\u274C",X.type,X.key,`could not be retrieved because it was not found in the store "${Y.config.name}".`,$?`This state was previously disposed:
61
- ${$.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=p0(Y,_).default(W);return Y.defaults.set(_.key,H),H}}}return F2(Y,p0(Y,X))}function A8(Y,Z,X,_){function G(E){if(Y.operation.open){let D=Y.on.operationClose.subscribe(`state subscription ${X}`,()=>{D(),_(E)})}else _(E)}let W=p0(Y,Z);Y.logger.info("\uD83D\uDC40",W.type,W.key,`Adding subscription "${X}"`);let $=W.type==="writable_pure_selector"||W.type==="readonly_pure_selector",H=new Map,Q=G;if($){F2(Y,W);for(let[E,D]of M6(Y,W.key))H.set(E,K9(Y,W,D));Q=function E(D){let V=M6(Y,W.key);for(let[R,A]of H)if(V.get(R))V.delete(R);else A(),H.delete(R);for(let[R,A]of V)H.set(R,K9(Y,W,A));G(D)}}let J=W.subject.subscribe(X,Q);return()=>{Y.logger.info("\uD83D\uDE48",W.type,W.key,`Removing subscription "${X}"`),J();for(let E of H.values())E()}}var u9=(Y,Z,X,_)=>{let G=p0(Y,Z);Y.logger.info("\uD83D\uDC40","timeline",Z.key,`Adding subscription "${X}"`);let W=G.subject.subscribe(X,_);return()=>{Y.logger.info("\uD83D\uDE48","timeline",Z.key,`Removing subscription "${X}" from timeline`),W()}};var lZ=class{initializeState(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=h4(Z,{key:X,default:null},_);if(Z.parent?.valueMap.has(X)){let W=Z.parent.valueMap.get(X);Z.valueMap.set(X,W)}return G}unsubscribeFromInnerValue;unsubscribeFromState;captureSignalsFromCore(Y,Z,X){let _=`tracker:${X.config.name}:${o0(X)?X.transactionMeta.update.key:"main"}:${Y.key}`,G=($)=>{T1(X,Z,$)},W=b1(X,Y);this.unsubscribeFromInnerValue=W.subscribe(_,G),this.unsubscribeFromState=A8(X,Y,_,function $(H){if(H.newValue!==H.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=H.newValue.subscribe(_,G)}.bind(this))}supplySignalsToCore(Y,Z,X){let _=`tracker:${X.config.name}:${o0(X)?X.transactionMeta.update.key:"main"}:${Y.key}`;A8(X,Z,_,function G({newValue:W,oldValue:$}){let H=X.timelineTopics.getRelatedKey(Z.key);if(H&&X.timelines.get(H)?.timeTraveling){let E=u9(X,{key:H,type:"timeline"},_,function D(V){E(),T1(X,Y,(R)=>{if(V==="redo"&&W)R.do(W);else if(V==="undo"&&$)R.undo($);return R})});return}let Q=b1(X,Y),J=Q.getUpdateNumber(W),z=J-Q.cacheUpdateNumber;if(W&&z===1)T1(X,Y,(E)=>(E.do(W),E));else X.logger.info("\u274C","mutable_atom",Y.key,`could not be updated. Expected update number ${Q.cacheUpdateNumber+1}, but got ${J}`)})}mutableAtomToken;latestSignalToken;[Symbol.dispose];constructor(Y,Z){let X=i(Z),_=this.initializeState(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 D6(Y,Z,X){Y.logger.info("\uD83D\uDD28","atom",Z.key,`creating in store "${Y.config.name}"`);let _=i(Y),{key:G}=Z,W=_.atoms.get(G),$="mutable_atom";if(W&&W.type===$)return Y.logger.error("\u274C",$,G,"Tried to create atom, but it already exists in the store."),W4(W);let H=new H0,Q={...Z,type:$,install:(z)=>{return z.logger.info("\uD83D\uDEE0\uFE0F","atom",G,`installing in store "${z.config.name}"`),D6(z,Z,X)},subject:H};if(X)Q.family=X;_.atoms.set(Q.key,Q);let J=W4(Q);if(Z.effects){let z=0,E=[];for(let D of Z.effects){let V=D({resetSelf:()=>{O8(Y,J)},setSelf:(R)=>{T1(Y,J,R)},onSet:(R)=>A8(Y,J,`effect[${z}]`,R)});if(V)E.push(V);++z}Q.cleanup=()=>{for(let D of E)D()}}if(new lZ(J,Y),!X)N9(Y,{key:`${G}:JSON`,get:({get:z})=>z(J).toJSON(),set:({set:z},E)=>{z(J,Z.class.fromJSON(E))}});return Y.on.atomCreation.next(J),J}var eF=class{trackers=new Map;latestUpdateAtoms;mutableAtoms;constructor(Y,Z){let X=V8(Z,{key:`*${Y.key}`,default:null},["mutable","updates"]);this.latestUpdateAtoms=p0(Z,X),this.mutableAtoms=Y,this.mutableAtoms.subject.subscribe(`store=${Z.config.name}::tracker-atom-family`,(_)=>{let{type:G,token:W}=_;if(W.family){let $=G1(W.family.subKey);switch(G){case"state_creation":this.trackers.set($,new lZ(W,Z));break;case"state_disposal":{let H=this.trackers.get($);if(H)H[Symbol.dispose](),this.trackers.delete($)}break}}})}};function xZ(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 ${b4(G)} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let W=new H0,H=Object.assign((Q)=>{let J=z0(Q),z={key:Z.key,subKey:J},E=`${Z.key}(${J})`,D=i(Y),V={key:E,class:Z.class};if(Z.effects)V.effects=Z.effects(Q);let R=D6(D,V,z);return W.next({type:"state_creation",token:R}),R},_,{subject:W,install:(Q)=>xZ(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},z)=>{J(_,Q,Z.class.fromJSON(z))}},["mutable","json"]),new eF(H,Y),_}var S9=(Y,Z)=>{let X=i(Z),_=`${Y.key}:JSON`;return X.families.get(_)},k4=(Y,Z)=>{if(Z.family){let _=i(Y),W={key:`${Z.family.key}:JSON`,type:"writable_pure_selector_family"},$=p0(_,W),H=JSON.parse(Z.family.subKey);return $0(Y,$,H)}return{type:"writable_pure_selector",key:`${Z.key}:JSON`}};var iZ=(Y)=>{let X={type:"atom",key:`*${Y.key}`};if(Y.family)X.family={key:`*${Y.family.key}`,subKey:Y.family.subKey};return X};function YU(Y){return typeof Y==="object"&&Y!==null&&"do"in Y&&"undo"in Y&&"subscribe"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 W1({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new W1({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 W1({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new W1({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new NF(100);molecules=new Map;moleculeJoins=new W1({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeGraph=new W1({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeData=new W1({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});miscResources=new Map;on={atomCreation:new H0,atomDisposal:new H0,selectorCreation:new H0,selectorDisposal:new H0,timelineCreation:new H0,transactionCreation:new H0,transactionApplying:new CF(null),operationClose:new H0,moleculeCreation:new H0,moleculeDisposal:new H0};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new M9("warn",(Y,Z,X)=>!w8(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 W1(Z?.transactionMeta.actionContinuities.toJSON())};for(let[,_]of Z.families){if(_.internalRoles?.includes("mutable")||_.internalRoles?.includes("join"))continue;_.install(this)}let X=new Set;for(let[,_]of Z.atoms){if(X.has(_.key))continue;if(_.install(this),_.type==="mutable_atom"){let G=k4(Z,_),W=iZ(_);X.add(G.key),X.add(W.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)}}},d0={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new I9({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function p0(Y,Z){let X,_=Y;while(_!==null){switch(Z.type){case"atom":case"mutable_atom":X=_.atoms.get(Z.key);break;case"writable_pure_selector":case"writable_held_selector":X=_.writableSelectors.get(Z.key);break;case"readonly_pure_selector":case"readonly_held_selector":X=_.readonlySelectors.get(Z.key);break;case"atom_family":case"mutable_atom_family":case"writable_pure_selector_family":case"readonly_pure_selector_family":case"writable_held_selector_family":case"readonly_held_selector_family":X=_.families.get(Z.key);break;case"timeline":X=_.timelines.get(Z.key);break;case"transaction":X=_.transactions.get(Z.key);break}if(X)return X;_=_.child}throw new mZ(Z,Y)}function h4(Y,Z,X){let{key:G}=Z;Y.logger.info("\uD83D\uDD28","atom",G,`creating in store "${Y.config.name}"`);let W=i(Y),$=W.atoms.get(G);if($&&$.type==="atom")return Y.logger.error("\u274C","atom",G,"Tried to create atom, but it already exists in the store."),W4($);let H=new H0,Q={...Z,type:"atom",install:(z)=>{return z.logger.info("\uD83D\uDEE0\uFE0F","atom",G,`installing in store "${z.config.name}"`),h4(z,Z,X)},subject:H};if(X)Q.family=X;W.atoms.set(G,Q);let J=W4(Q);if(Z.effects){let z=0,E=[];for(let D of Z.effects){let V=D({resetSelf:()=>{O8(Y,J)},setSelf:(R)=>{T1(Y,J,R)},onSet:(R)=>A8(Y,J,`effect[${z}]`,R)});if(V)E.push(V);++z}Q.cleanup=()=>{for(let D of E)D()}}return Y.on.atomCreation.next(J),J}function d9(Y,Z){let X=i(Y),{key:_,family:G}=Z,W=p0(X,Z);if(!G)Y.logger.error("\u274C","atom",_,"Standalone atoms cannot be disposed.");else{W.cleanup?.();let $=Y.valueMap.get(W.key),H=p0(Y,{key:G.key,type:"atom_family"}),Q={type:"state_disposal",subType:"atom",token:Z,value:$};H.subject.next(Q);let J=o0(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 z=iZ(Z);d9(Y,z),Y.trackers.delete(_)}if(Y.logger.info("\uD83D\uDD25","atom",_,"deleted"),J&&X.transactionMeta.phase==="building"){let z=X.transactionMeta.update.updates.at(-1);if(!(z?.type==="molecule_disposal"&&z.values.some(([V])=>V===W.family?.key)))X.transactionMeta.update.updates.push(Q)}else Y.on.atomDisposal.next(Z)}}function B9(Y,Z,X){return Y.joins.set(Z.key,new oZ(Z,X,Y)),{key:Z.key,type:"join",a:Z.between[0],b:Z.between[1],cardinality:Z.cardinality}}var oZ=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=d0.STORE){this.store=X,this.realm=new A9(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)=>b1(X,...I),set:(...I)=>{T1(X,...I)},find:(...I)=>$0(X,...I),json:(I)=>k4(X,I)};let _=Y.between[0],G=Y.between[1],W=xZ(X,{key:`${Y.key}/relatedKeys`,class:G4},["join","relations"]);this.core={relatedKeysAtoms:W};let $=({get:I},N)=>I(W,N),H=({set:I},N,K)=>{if(!this.store.molecules.has(z0(N)))this.realm.allocate(Y.key,N);I(W,N,(q)=>q.add(K)),I(W,K,(q)=>q.add(N))},Q=({set:I},N,K)=>{I(W,N,(q)=>{return q.delete(K),q}),I(W,K,(q)=>{return q.delete(N),q})},J=(I,N,K)=>{let{find:q,get:p,set:s}=I,C=q(W,N),t=p(C);for(let m of t){if(K.includes(m))continue;s(W,m,(U0)=>{return U0.delete(N),U0})}s(C,(m)=>{return m.transaction((e)=>{e.clear();for(let U0 of K){let h0=$(I,U0),J1=h0.has(N);if(this.relations.cardinality==="1:n"){let r1=[];for(let T of h0){if(T===N)continue;let u=$(I,T);if(u.delete(U0),u.size===0)r1.push(T)}if(!J1&&h0.size>0)h0.clear();for(let T of r1){let u=[U0,T].sort(),G0=`"${u[0]}:${u[1]}"`;this.molecules.delete(G0)}}if(!J1)h0.add(N);e.add(U0)}return!0}),m})},z=(I,N,K)=>{let{set:q}=I;q(W,N,(p)=>{return p.transaction((s)=>{for(let C of K)s.add(C);return!0}),p});for(let p of K)q(W,p,(s)=>{return s.add(N),s});return!0},E=(I,N,K)=>{let q=$(I,N);return K?q.has(K):q.size>0},D={getRelatedKeys:(I)=>$(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)=>{z(this.toolkit,I,N)},has:(I,N)=>E(this.toolkit,I,N)},V,R;if(Z){R=V8(X,{key:`${Y.key}/content`,default:Z},["join","content"]);let I=({get:q},p)=>q(R,p),N=({set:q},p,s)=>{q(R,p,s)};V=Object.assign(D,{getContent:(q)=>{return I(this.toolkit,q)},setContent:(q,p)=>{N(this.toolkit,q,p)},deleteContent:(q)=>{this.realm.deallocate(q)}})}else V=D;let A=new W1(Y,{externalStore:V,isAType:Y.isAType,isBType:Y.isBType,makeContentKey:(...I)=>{let[N,K]=I,q=I.sort(),p=`${q[0]}:${q[1]}`,s=X.molecules.get(z0(N)),C=X.molecules.get(z0(K));if(!s)this.realm.allocate(Y.key,N);if(!C)this.realm.allocate(Y.key,K);return this.realm.allocate(N,p,"all"),this.realm.claim(K,p),this.store.moleculeJoins.set(p,Y.key),p}}),g=()=>f4(X,{key:`${Y.key}/singleRelatedKey`,get:(I)=>({get:N})=>{let K=N(W,I);for(let q of K)return q;return null}},["join","keys"]),b=()=>{return f4(X,{key:`${Y.key}/multipleRelatedKeys`,get:(I)=>({get:N})=>{let K=S9(W,X);return N(K,I).members}},["join","keys"])},f=()=>f4(X,{key:`${Y.key}/singleRelatedEntry`,get:(I)=>({get:N})=>{let K=N(W,I);for(let q of K){let p=A.isAType?.(I)?I:void 0,s=p===void 0?I:void 0;p??=q,s??=q;let C=A.makeContentKey(p,s),t=N(R,C);return[q,t]}return null}},["join","entries"]),h=()=>f4(X,{key:`${Y.key}/multipleRelatedEntries`,get:(I)=>({get:N})=>{let K=S9(W,X);return N(K,I).members.map((p)=>{let s=A.isAType?.(I)?I:void 0,C=s===void 0?I:void 0;s??=p,C??=p;let t=A.makeContentKey(s,C),m=N(R,t);return[p,m]})}},["join","entries"]);switch(Y.cardinality){case"1:1":{let I=g(),N=`${_}KeyOf${B0(G)}`,K=`${G}KeyOf${B0(_)}`,q={[N]:I,[K]:I},p;if(Z){let s=f(),C=`${_}EntryOf${B0(G)}`,t=`${G}EntryOf${B0(_)}`,m={[C]:s,[t]:s};p=Object.assign(q,m)}else p=q;this.relations=A,this.states=p;break}case"1:n":{let I=g(),N=b(),K=`${_}KeyOf${B0(G)}`,q=`${G}KeysOf${B0(_)}`,p={[K]:I,[q]:N},s;if(Z){let C=f(),t=h(),m=`${_}EntryOf${B0(G)}`,e=`${G}EntriesOf${B0(_)}`,U0={[m]:C,[e]:t};s=Object.assign(p,U0)}else s=p;this.relations=A,this.states=s;break}case"n:n":{let I=b(),N=`${_}KeysOf${B0(G)}`,K=`${G}KeysOf${B0(_)}`,q={[N]:I,[K]:I},p;if(Z){let s=h(),C=`${_}EntriesOf${B0(G)}`,t=`${G}EntriesOf${B0(_)}`,m={[C]:s,[t]:s};p=Object.assign(q,m)}else p=q;this.relations=A,this.states=p}}}};function nZ(Y,Z){let X=Z.joins.get(Y.key);if(X===void 0){let G=d0.STORE.joins.get(Y.key);if(G===void 0)throw new Error(`Join "${Y.key}" not found in store "${Z.config.name}"`);X=new oZ(G.options,G.defaultContent,Z),Z.joins.set(Y.key,X)}return X}function Q2(Y,Z,X){let _=nZ(Y,X),G=i(X);if(o0(G)){let{toolkit:W}=G.transactionMeta;_.transact(W,({relations:$})=>{Z($)})}else Z(_.relations)}function C9(Y,Z,X){let _=nZ(Y,X),G;switch(Y.cardinality){case"1:1":{let W=`${Y.a}KeyOf${B0(Y.b)}`,$=`${Y.b}KeyOf${B0(Y.a)}`;G={get[W](){let Q=_.states[W];return $0(X,Q,Z)},get[$](){let Q=_.states[$];return $0(X,Q,Z)}};let H=`${Y.a}EntryOf${B0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntryOf${B0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return $0(X,J,Z)},get[Q](){let J=_.states[Q];return $0(X,J,Z)}})}break}case"1:n":{let W=`${Y.a}KeyOf${B0(Y.b)}`,$=`${Y.b}KeysOf${B0(Y.a)}`;G={get[W](){let Q=_.states[W];return $0(X,Q,Z)},get[$](){let Q=_.states[$];return $0(X,Q,Z)}};let H=`${Y.a}EntryOf${B0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntriesOf${B0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return $0(X,J,Z)},get[Q](){let J=_.states[Q];return $0(X,J,Z)}})}break}case"n:n":{let W=`${Y.a}KeysOf${B0(Y.b)}`,$=`${Y.b}KeysOf${B0(Y.a)}`;G={get[W](){let Q=_.states[W];return $0(X,Q,Z)},get[$](){let Q=_.states[$];return $0(X,Q,Z)}};let H=`${Y.a}EntriesOf${B0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntriesOf${B0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return $0(X,J,Z)},get[Q](){let J=_.states[Q];return $0(X,J,Z)}})}}}return G}function T9(Y,Z){return nZ(Y,Z).core.relatedKeysAtoms}function w8(Y){return Y.startsWith("\uD83D\uDD0D ")}var ZU=(Y)=>{return h4(Y,{key:"\uD83D\uDD0D Atom Token Index",default:()=>{let Z=new Map;for(let[X,_]of Y.atoms){if(w8(X))continue;let G=W4(_);if(_.family){let W=Z.get(_.family.key);if(!W||!("familyMembers"in W))W={key:_.family.key,familyMembers:new Map},Z.set(_.family.key,W);W.familyMembers.set(_.family.subKey,G)}else Z.set(X,G)}return Z},effects:[({setSelf:Z})=>{Y.on.atomCreation.subscribe("introspection",(X)=>{if(w8(X.key))return;Z((_)=>{if(X.family){let{key:G,subKey:W}=X.family,$=_.get(G);if($===void 0||!("familyMembers"in $))$={key:G,familyMembers:new Map},_.set(G,$);$.familyMembers.set(W,X)}else _.set(X.key,X);return new Map(_)})}),Y.on.atomDisposal.subscribe("introspection",(X)=>{Z((_)=>{if(X.family){let{key:G,subKey:W}=X.family,$=_.get(G);if($&&"familyMembers"in $){if($.familyMembers.delete(W),$.familyMembers.size===0)_.delete(G)}}return new Map(_)})})}]},void 0)},XU=(Y)=>{return h4(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(w8(_))continue;let W=W4(G);if(G.family){let $=Z.get(G.family.key);if(!$||!("familyMembers"in $))$={key:G.family.key,familyMembers:new Map},Z.set(G.family.key,$);$.familyMembers.set(G.family.subKey,W)}else Z.set(_,W)}return Z},effects:[({setSelf:Z})=>{Y.on.selectorCreation.subscribe("introspection",(X)=>{if(w8(X.key))return;Z((_)=>{if(X.family){let{key:G,subKey:W}=X.family,$=_.get(G);if($===void 0||!("familyMembers"in $))$={key:G,familyMembers:new Map},_.set(G,$);$.familyMembers.set(W,X)}else _.set(X.key,X);return new Map(_)})}),Y.on.selectorDisposal.subscribe("introspection",(X)=>{Z((_)=>{if(X.family){let{key:G,subKey:W}=X.family,$=_.get(G);if($&&"familyMembers"in $){if($.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}},l9=new rZ({number:(Y)=>typeof Y==="number",string:(Y)=>typeof Y==="string",boolean:(Y)=>typeof Y==="boolean",null:(Y)=>Y===null});function i9(Y){if(!Y)return!1;return Object.getPrototypeOf(Y)===Object.prototype}var o9=new rZ({object:i9,array:(Y)=>Array.isArray(Y)}),_U=new rZ({...l9.supported,...o9.supported}),w6=(Y)=>{if(Y===void 0)return"undefined";let Z=_U.refine(Y);if(Z)return Z.type;return Object.getPrototypeOf(Y).constructor.name};var uB=class Y{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(Z=d0.STORE){this.store=Z,this.atomIndex=ZU(this.store),this.selectorIndex=XU(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=KZ(this.atomIndex),_=KZ(this.selectorIndex),G=[...X.values()].filter((Q)=>("familyMembers"in Q)),W=[..._.values()].filter((Q)=>("familyMembers"in Q)),$=performance.now(),H=[];if(Z.atomFamilies)for(let Q of G){let J=Q.familyMembers.values();for(let z of J){let D=this.statesCreatedAt.get(z.key)??this.auditorCreatedAt,V=$-D;H.push([z,V])}}if(Z.selectorFamilies)for(let Q of W){let J=Q.familyMembers.values();for(let z of J){let D=this.statesCreatedAt.get(z.key)??this.auditorCreatedAt,V=$-D;H.push([z,V])}}return H}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}},c9=(Y,Z)=>{let X=(_,G)=>{let $=((Q,J)=>{let z=Z(Q,J);if(z)return z;return null})(_,G);if($?.jobComplete??$?.pathComplete)return $;let H=Array.isArray(G)?G.map((Q,J)=>[J,Q]):i9(G)?Object.entries(G):[];for(let[Q,J]of H){let z=X([..._,Q],J);if(z?.jobComplete)return z}return{}};X([],Y)};function GU(Y,Z){return{summary:`${Y<Z?"+":"-"}${Math.abs(Y-Z)} (${Y} \u2192 ${Z})`}}function WU(Y,Z){return{summary:`${Y.length<Z.length?"+":"-"}${Math.abs(Y.length-Z.length)} ("${Y}" \u2192 "${Z}")`}}function $U(Y,Z){return{summary:`${Y} \u2192 ${Z}`}}function n9(Y,Z,X){let _="",G=[],W=[],$=[];return c9(Y,(H,Q)=>{let J;for(J of H){let z=Z[J];if(z===void 0)W.push([J,JSON.stringify(Q)]);else{let E=X(Q,z);if(E.summary!=="No Change")$.push([J,E])}}}),c9(Z,(H,Q)=>{let J;for(J of H)if(Y[J]===void 0)G.push([J,JSON.stringify(Q)])}),_=`\uFF5E${$.length} \uFF0B${G.length} \uFF0D${W.length}`,{summary:_,added:G,removed:W,changed:$}}function HU(Y,Z,X){return n9(Y,Z,X)}var JU=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=w6(Y),W=w6(Z);if(G===W)return{summary:`${G} \u2192 ${W}`};return{summary:`Type change: ${G} \u2192 ${W}`}}},dB=new JU(l9,o9,{number:GU,string:WU,boolean:$U,null:()=>({summary:"No Change"}),object:n9,array:HU});var QU=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")}},rB=class Y{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(Z){this.key=Z}static existing=new QU;static create(Z,X){let _=new Y(Z),{type:G,globals:W,actions:$,perspectives:H}=X(_),Q={type:G,key:Z,globals:W,actions:$,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 sB=E8({key:"usersInRoomIndex",class:G4}),sZ=E8({key:"roomIndex",class:G4}),zU={enteredAtEpoch:0},U2=E6({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(Y)=>typeof Y==="string",isBType:(Y)=>typeof Y==="string"},zU),aB=O6({key:"usersInMyRoomView",get:(Y)=>({find:Z})=>{let X=V9(U2);return[Z(X,Y)]}});import{spawn as FU}from"child_process";var aZ=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}},UU=class extends aZ{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 W=JSON.stringify([_,...G])+"\x03",$=(H)=>{if(H.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",$)};return this.process.stdin.once("error",$),this.process.stdin.write(W),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 W=this.unprocessedEvents.shift();this.incompleteData+=W??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let $=G1(this.incompleteData);this.handleEvent(...$);while(this.unprocessedEvents.length>0){let H=this.unprocessedEvents.shift();if(H){if(this.unprocessedEvents.length===0)this.incompleteData=H;$=G1(H),this.handleEvent(...$)}}this.incompleteData=""}catch($){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error($)}}),this.process.stderr.on("data",(_)=>{let G=_.toString();this.unprocessedLogs.push(...G.split("\x03"));let W=this.unprocessedLogs.shift();this.incompleteLog+=W??"";try{let $=G1(this.incompleteLog);this.handleLog($);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)$=G1(this.incompleteLog),this.handleLog($)}catch($){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error($),console.error("\u274C\u274C\u274C\uFE0F")}}),Y.pid)this.id=Y.pid.toString()}},EU=class extends aZ{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(Y){super((...Z)=>{return this.out.next(Z),this});this.id=Y,this.in=new H0,this.out=new H0,this.in.subscribe("socket",(Z)=>{this.handleEvent(...Z)})}dispose(){for(let Y of this.disposalFunctions)Y()}},r9=class extends aZ{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...Y){this.process.stderr.write(z0(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 _=G1(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 W=G1(G);this.handleEvent(...W)}}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 EU(`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)}},s9=$2({key:"roomArguments",default:["echo",["Hello World!"]]}),OU=O6({key:"room",get:(Y)=>async({get:Z,find:X})=>{let _=X(s9,Y),G=Z(_),[W,$]=G,H=await new Promise((Q)=>{let J=FU(W,$,{env:process.env}),z=(E)=>{if(E.toString()==="ALIVE")J.stdout.off("data",z),Q(J)};J.stdout.on("data",z)});return new UU(H,Y)}}),$C=H2({key:"createRoom",do:({get:Y,set:Z,find:X},_,G,W)=>{let $=W?[G,W]:[G],H=X(s9,_);Z(H,$),Z(sZ,(z)=>z.add(_));let Q=X(OU,_);return Y(Q)}}),HC=H2({key:"joinRoom",do:(Y,Z,X,_)=>{let G={enteredAtEpoch:_};return Q2(U2,(W)=>{W.set({room:Z,user:X},G)},Y.env().store),G}}),JC=H2({key:"leaveRoom",do:(Y,Z,X)=>{Q2(U2,(_)=>{_.delete({room:Z,user:X})},Y.env().store)}}),QC=H2({key:"destroyRoom",do:(Y,Z)=>{Q2(U2,(X)=>{X.delete({room:Z})},Y.env().store),Y.set(sZ,(X)=>(X.delete(Z),X))}});var zC=$2({key:"redactor",default:{occlude:(Y)=>Y}}),FC=$2({key:"unacknowledgedUpdates",default:()=>[]}),UC=$2({key:"sockets",default:null}),EC=E8({key:"socketsIndex",class:G4}),OC=E8({key:"usersIndex",class:G4}),DC=E6({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(Y)=>Y.startsWith("user::"),isBType:(Y)=>Y.startsWith("socket::")});var{file:K$,serve:PE}=globalThis.Bun;import{readFileSync as e9}from"fs";import{createServer as MU}from"http";import{createServer as AU}from"https";import{resolve as eZ}from"path";function a9(Y,Z){if(Y instanceof Promise)throw new Error(Z)}function DU(Y,Z){let X={},_=[];for(let G in Y){let W=Y[G]["~standard"].validate(Z[G]);if(a9(W,`Validation must be synchronous, but ${G} returned a Promise.`),W.issues){_.push(...W.issues.map(($)=>({...$,message:$.message,path:[G,...$.path??[]]})));continue}X[G]=W.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[f,h]of Object.entries(Z))if(h==="")delete Z[f]}if(!!Y.skipValidation)return Z;let G=typeof Y.client==="object"?Y.client:{},W=typeof Y.server==="object"?Y.server:{},$=typeof Y.shared==="object"?Y.shared:{},H=Y.isServer??(typeof window==="undefined"||("Deno"in window)),Q=H?{...W,...$,...G}:{...G,...$},J=Y.createFinalSchema?.(Q,H)["~standard"].validate(Z)??DU(Q,Z);a9(J,"Validation must be synchronous");let z=Y.onValidationError??((f)=>{throw console.error("\u274C Invalid environment variables:",f),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 z(J.issues);let D=(f)=>{if(!Y.clientPrefix)return!0;return!f.startsWith(Y.clientPrefix)&&!(f in $)},V=(f)=>{return H||!D(f)},R=(f)=>{return f==="__esModule"||f==="$$typeof"},A=(Y.extends??[]).reduce((f,h)=>{return Object.assign(f,h)},{}),g=Object.assign(A,J.value);return new Proxy(g,{get(f,h){if(typeof h!=="string")return;if(R(h))return;if(!V(h))return E(h);return Reflect.get(f,h)}})}var LU="__vite_start_time"in globalThis,VU=typeof window!=="undefined",TC="vitest"in globalThis,$4=O1("string"),t9=O1('"true" | "false" | undefined'),k1=tZ({isServer:!LU&&!VU,server:{CI:O1("string | undefined").pipe(Boolean),POSTGRES_USER:$4,POSTGRES_PASSWORD:$4,POSTGRES_DATABASE:$4,POSTGRES_HOST:$4,POSTGRES_PORT:$4.pipe((Y)=>Number.parseInt(Y,10)),BACKEND_PORT:$4.pipe((Y)=>Number.parseInt(Y,10)),RUN_WORKERS_FROM_SOURCE:t9.pipe((Y)=>Y==="true"),FRONTEND_PORT:$4.pipe((Y)=>Number.parseInt(Y,10)),FRONTEND_ORIGINS:$4.pipe.try((Y)=>JSON.parse(Y),O1("string[]")),API_KEY_OPENAI:O1("string | undefined"),API_KEY_RESEND:O1("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:$4,VITE_DEV_FRONTEND_HOST:O1("string | undefined"),VITE_DEV_HTTPS:t9.pipe((Y)=>Y==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var Y7=eZ(import.meta.dirname,"../dev"),R6=k1.VITE_DEV_HTTPS?{cert:e9(eZ(Y7,"./cert.pem"),"utf-8"),key:e9(eZ(Y7,"./key.pem"),"utf-8")}:void 0;function xC(Y){if(R6)return AU(R6,Y);return MU({},Y)}import IE from"path";var U=Symbol.for("drizzle:entityKind");function M(Y,Z){if(!Y||typeof Y!=="object")return!1;if(Y instanceof Z)return!0;if(!Object.prototype.hasOwnProperty.call(Z,U))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(U in X&&X[U]===Z[U])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[U]="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 Y5{static[U]="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 g1=Symbol.for("drizzle:Name");class Z5{static[U]="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 Z7(Y,this)}}class Z7{constructor(Y,Z){this.table=Y,this.reference=Z.reference,this.onUpdate=Z._onUpdate,this.onDelete=Z._onDelete}static[U]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:Y,columns:Z,foreignColumns:X}=this.reference(),_=Z.map(($)=>$.name),G=X.map(($)=>$.name),W=[this.table[g1],..._,X[0].table[g1],...G];return Y??`${W.join("_")}_fk`}}function N6(Y,...Z){return Y(...Z)}function X7(Y,Z){return`${Y[g1]}_${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 G7(Y,Z=0){let X=[],_=Z,G=!1;while(_<Y.length){let W=Y[_];if(W===","){if(G||_===Z)X.push("");G=!0,_++;continue}if(G=!1,W==="\\"){_+=2;continue}if(W==='"'){let[Q,J]=_7(Y,_+1,!0);X.push(Q),_=J;continue}if(W==="}")return[X,_+1];if(W==="{"){let[Q,J]=G7(Y,_+1);X.push(Q),_=J;continue}let[$,H]=_7(Y,_,!1);X.push($),_=H}return[X,_]}function W7(Y){let[Z]=G7(Y,1);return Z}function X5(Y){return`{${Y.map((Z)=>{if(Array.isArray(Z))return X5(Z);if(typeof Z==="string")return`"${Z.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${Z}`}).join(",")}}`}class k extends Y5{foreignKeyConfigs=[];static[U]="PgColumnBuilder";array(Y){return new H7(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 N6((G,W)=>{let $=new Z5(()=>{let H=G();return{columns:[Y],foreignColumns:[H]}});if(W.onUpdate)$.onUpdate(W.onUpdate);if(W.onDelete)$.onDelete(W.onDelete);return $.build(Z)},X,_)})}buildExtraConfigColumn(Y){return new $7(Y,this.config)}}class j extends O0{constructor(Y,Z){if(!Z.uniqueName)Z.uniqueName=X7(Y,[Z.name]);super(Y,Z);this.table=Y}static[U]="PgColumn"}class $7 extends j{static[U]="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 E2{static[U]="IndexedColumn";constructor(Y,Z,X,_){this.name=Y,this.keyAsName=Z,this.type=X,this.indexConfig=_}name;keyAsName;type;indexConfig}class H7 extends k{static[U]="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 _5(Y,this.config,Z)}}class _5 extends j{constructor(Y,Z,X,_){super(Y,Z);this.baseColumn=X,this.range=_,this.size=Z.size}size;static[U]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(Y){if(typeof Y==="string")Y=W7(Y);return Y.map((Z)=>this.baseColumn.mapFromDriverValue(Z))}mapToDriverValue(Y,Z=!1){let X=Y.map((_)=>_===null?null:M(this.baseColumn,_5)?this.baseColumn.mapToDriverValue(_,!0):this.baseColumn.mapToDriverValue(_));if(Z)return X;return X5(X)}}class J7 extends k{static[U]="PgEnumObjectColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumObjectColumn");this.config.enum=Z}build(Y){return new Q7(Y,this.config)}}class Q7 extends j{static[U]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}var I6=Symbol.for("drizzle:isPgEnum");function z7(Y){return!!Y&&typeof Y==="function"&&I6 in Y&&Y[I6]===!0}class F7 extends k{static[U]="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[U]="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 O2(Y,Z){return Array.isArray(Z)?wU(Y,[...Z],void 0):RU(Y,Z,void 0)}function wU(Y,Z,X){let _=Object.assign((G)=>new F7(G??"",_),{enumName:Y,enumValues:Z,schema:X,[I6]:!0});return _}function RU(Y,Z,X){let _=Object.assign((G)=>new J7(G??"",_),{enumName:Y,enumValues:Object.values(Z),schema:X,[I6]:!0});return _}class P0{static[U]="Subquery";constructor(Y,Z,X,_=!1,G=[]){this._={brand:"Subquery",sql:Y,selectedFields:Z,alias:X,isWith:_,usedTables:G}}}class D2 extends P0{static[U]="WithSubquery"}var E7="0.44.4";var G5,W5,D0={startActiveSpan(Y,Z){if(!G5)return Z();if(!W5)W5=G5.trace.getTracer("drizzle-orm",E7);return N6((X,_)=>_.startActiveSpan(Y,(G)=>{try{return Z(G)}catch(W){throw G.setStatus({code:X.SpanStatusCode.ERROR,message:W instanceof Error?W.message:"Unknown error"}),W}finally{G.end()}}),G5,W5)}};var A0=Symbol.for("drizzle:ViewBaseConfig");var g4=Symbol.for("drizzle:Schema"),B6=Symbol.for("drizzle:Columns"),O7=Symbol.for("drizzle:ExtraConfigColumns"),$5=Symbol.for("drizzle:OriginalName"),H5=Symbol.for("drizzle:BaseName"),L2=Symbol.for("drizzle:IsAlias"),D7=Symbol.for("drizzle:ExtraConfigBuilder"),NU=Symbol.for("drizzle:IsDrizzleTable");class P{static[U]="Table";static Symbol={Name:g1,Schema:g4,OriginalName:$5,Columns:B6,ExtraConfigColumns:O7,BaseName:H5,IsAlias:L2,ExtraConfigBuilder:D7};[g1];[$5];[g4];[B6];[O7];[H5];[L2]=!1;[NU]=!0;[D7]=void 0;constructor(Y,Z,X){this[g1]=this[$5]=Y,this[g4]=Z,this[H5]=X}}function c0(Y){return Y[g1]}function y4(Y){return`${Y[g4]??"public"}.${Y[g1]}`}function J5(Y){return Y!==null&&Y!==void 0&&typeof Y.getSQL==="function"}function IU(Y){let Z={sql:"",params:[]};for(let X of Y)if(Z.sql+=X.sql,Z.params.push(...X.params),X.typings?.length){if(!Z.typings)Z.typings=[];Z.typings.push(...X.typings)}return Z}class m0{static[U]="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(M(Z,P)){let X=Z[P.Symbol.Schema];this.usedTables.push(X===void 0?Z[P.Symbol.Name]:X+"."+Z[P.Symbol.Name])}}static[U]="SQL";decoder=V7;shouldInlineParams=!1;usedTables=[];append(Y){return this.queryChunks.push(...Y.queryChunks),this}toQuery(Y){return D0.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:W,prepareTyping:$,inlineParams:H,paramStartIndex:Q}=X;return IU(Y.map((J)=>{if(M(J,m0))return{sql:J.value.join(""),params:[]};if(M(J,C6))return{sql:G(J.value),params:[]};if(J===void 0)return{sql:"",params:[]};if(Array.isArray(J)){let z=[new m0("(")];for(let[E,D]of J.entries())if(z.push(D),E<J.length-1)z.push(new m0(", "));return z.push(new m0(")")),this.buildQueryFromSourceParams(z,X)}if(M(J,x))return this.buildQueryFromSourceParams(J.queryChunks,{...X,inlineParams:H||J.shouldInlineParams});if(M(J,P)){let z=J[P.Symbol.Schema],E=J[P.Symbol.Name];return{sql:z===void 0||J[L2]?G(E):G(z)+"."+G(E),params:[]}}if(M(J,O0)){let z=_.getColumnCasing(J);if(Z.invokeSource==="indexes")return{sql:G(z),params:[]};let E=J.table[P.Symbol.Schema];return{sql:J.table[L2]||E===void 0?G(J.table[P.Symbol.Name])+"."+G(z):G(E)+"."+G(J.table[P.Symbol.Name])+"."+G(z),params:[]}}if(M(J,D1)){let z=J[A0].schema,E=J[A0].name;return{sql:z===void 0||J[A0].isAlias?G(E):G(z)+"."+G(E),params:[]}}if(M(J,w1)){if(M(J.value,N4))return{sql:W(Q.value++,J),params:[J],typings:["none"]};let z=J.value===null?null:J.encoder.mapToDriverValue(J.value);if(M(z,x))return this.buildQueryFromSourceParams([z],X);if(H)return{sql:this.mapInlineParam(z,X),params:[]};let E=["none"];if($)E=[$(J.encoder)];return{sql:W(Q.value++,z),params:[z],typings:E}}if(M(J,N4))return{sql:W(Q.value++,J),params:[J],typings:["none"]};if(M(J,x.Aliased)&&J.fieldAlias!==void 0)return{sql:G(J.fieldAlias),params:[]};if(M(J,P0)){if(J._.isWith)return{sql:G(J._.alias),params:[]};return this.buildQueryFromSourceParams([new m0("("),J._.sql,new m0(") "),new C6(J._.alias)],X)}if(z7(J)){if(J.schema)return{sql:G(J.schema)+"."+G(J.enumName),params:[]};return{sql:G(J.enumName),params:[]}}if(J5(J)){if(J.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([J.getSQL()],X);return this.buildQueryFromSourceParams([new m0("("),J.getSQL(),new m0(")")],X)}if(H)return{sql:this.mapInlineParam(J,X),params:[]};return{sql:W(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 C6{constructor(Y){this.value=Y}static[U]="Name";brand;getSQL(){return new x([this])}}function L7(Y){return typeof Y==="object"&&Y!==null&&"mapToDriverValue"in Y&&typeof Y.mapToDriverValue==="function"}var V7={mapFromDriverValue:(Y)=>Y},M7={mapToDriverValue:(Y)=>Y},NT={...V7,...M7};class w1{constructor(Y,Z=M7){this.value=Y,this.encoder=Z}static[U]="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 m0(Y[0]));for(let[_,G]of Z.entries())X.push(G,new m0(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 m0(Q)])}Y.raw=_;function G(Q,J){let z=[];for(let[E,D]of Q.entries()){if(E>0&&J!==void 0)z.push(J);z.push(D)}return new x(z)}Y.join=G;function W(Q){return new C6(Q)}Y.identifier=W;function $(Q){return new N4(Q)}Y.placeholder=$;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[U]="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[U]="Placeholder";getSQL(){return new x([this])}}function Q5(Y,Z){return Y.map((X)=>{if(M(X,N4)){if(!(X.name in Z))throw new Error(`No value for placeholder "${X.name}" was provided`);return Z[X.name]}if(M(X,w1)&&M(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 BU=Symbol.for("drizzle:IsDrizzleView");class D1{static[U]="View";[A0];[BU]=!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])};P.prototype.getSQL=function(){return new x([this])};P0.prototype.getSQL=function(){return new x([this])};class R8{constructor(Y){this.table=Y}static[U]="ColumnAliasProxyHandler";get(Y,Z){if(Z==="table")return this.table;return Y[Z]}}class V2{constructor(Y,Z){this.alias=Y,this.replaceOriginalName=Z}static[U]="TableAliasProxyHandler";get(Y,Z){if(Z===P.Symbol.IsAlias)return!0;if(Z===P.Symbol.Name)return this.alias;if(this.replaceOriginalName&&Z===P.Symbol.OriginalName)return this.alias;if(Z===A0)return{...Y[A0],name:this.alias,isAlias:!0};if(Z===P.Symbol.Columns){let _=Y[P.Symbol.Columns];if(!_)return _;let G={};return Object.keys(_).map((W)=>{G[W]=new Proxy(_[W],new R8(new Proxy(Y,this)))}),G}let X=Y[Z];if(M(X,O0))return new Proxy(X,new R8(new Proxy(Y,this)));return X}}function T6(Y,Z){return new Proxy(Y,new V2(Z,!1))}function o1(Y,Z){return new Proxy(Y,new R8(new Proxy(Y.table,new V2(Z,!1))))}function z5(Y,Z){return new x.Aliased(M2(Y.sql,Z),Y.fieldAlias)}function M2(Y,Z){return O.join(Y.queryChunks.map((X)=>{if(M(X,O0))return o1(X,Z);if(M(X,x))return M2(X,Z);if(M(X,x.Aliased))return z5(X,Z);return X}))}class q6 extends Error{static[U]="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}
62
- params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrace(this,H4),X)this.cause=X}}class F5 extends q6{static[U]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class A7{static[U]="ConsoleLogWriter";write(Y){console.log(Y)}}class U5{static[U]="DefaultLogger";writer;constructor(Y){this.writer=Y?.writer??new A7}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 E5{static[U]="NoopLogger";logQuery(){}}class $1{static[U]="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 w7(Y,Z,X){let _={},G=Y.reduce((W,{path:$,field:H},Q)=>{let J;if(M(H,O0))J=H;else if(M(H,x))J=H.decoder;else J=H.sql.decoder;let z=W;for(let[E,D]of $.entries())if(E<$.length-1){if(!(D in z))z[D]={};z=z[D]}else{let V=Z[Q],R=z[D]=V===null?null:J.mapFromDriverValue(V);if(X&&M(H,O0)&&$.length===2){let A=$[0];if(!(A in _))_[A]=R===null?c0(H.table):!1;else if(typeof _[A]==="string"&&_[A]!==c0(H.table))_[A]=!1}}return W},{});if(X&&Object.keys(_).length>0){for(let[W,$]of Object.entries(_))if(typeof $==="string"&&!X[$])G[W]=null}return G}function q1(Y,Z){return Object.entries(Y).reduce((X,[_,G])=>{if(typeof _!=="string")return X;let W=Z?[...Z,_]:[_];if(M(G,O0)||M(G,x)||M(G,x.Aliased))X.push({path:W,field:G});else if(M(G,P))X.push(...q1(G[P.Symbol.Columns],W));else X.push(...q1(G,W));return X},[])}function A2(Y,Z){let X=Object.keys(Y),_=Object.keys(Z);if(X.length!==_.length)return!1;for(let[G,W]of X.entries())if(W!==_[G])return!1;return!0}function K6(Y,Z){let X=Object.entries(Z).filter(([,_])=>_!==void 0).map(([_,G])=>{if(M(G,x)||M(G,O0))return[_,G];else return[_,new w1(G,Y[P.Symbol.Columns][_])]});if(X.length===0)throw new Error("No values to set");return Object.fromEntries(X)}function R7(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 N7(Y){return Y[P.Symbol.Columns]}function J4(Y){return M(Y,P0)?Y._.alias:M(Y,D1)?Y[A0].name:M(Y,x)?void 0:Y[P.Symbol.IsAlias]?Y[P.Symbol.Name]:Y[P.Symbol.BaseName]}function X0(Y,Z){return{name:typeof Y==="string"&&Y.length>0?Y:"",config:typeof Y==="object"?Y:Z}}function I7(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 k{static[U]="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 I4{static[U]="PgBigInt53Builder";constructor(Y){super(Y,"number","PgBigInt53")}build(Y){return new C7(Y,this.config)}}class C7 extends j{static[U]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class T7 extends I4{static[U]="PgBigInt64Builder";constructor(Y){super(Y,"bigint","PgBigInt64")}build(Y){return new q7(Y,this.config)}}class q7 extends j{static[U]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(Y){return BigInt(Y)}}function K7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new B7(X);return new T7(X)}class j7 extends k{static[U]="PgBigSerial53Builder";constructor(Y){super(Y,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new P7(Y,this.config)}}class P7 extends j{static[U]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class S7 extends k{static[U]="PgBigSerial64Builder";constructor(Y){super(Y,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(Y){return new v7(Y,this.config)}}class v7 extends j{static[U]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(Y){return BigInt(Y)}}function x7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new j7(X);return new S7(X)}class h7 extends k{static[U]="PgBooleanBuilder";constructor(Y){super(Y,"boolean","PgBoolean")}build(Y){return new f7(Y,this.config)}}class f7 extends j{static[U]="PgBoolean";getSQLType(){return"boolean"}}function w2(Y){return new h7(Y??"")}class b7 extends k{static[U]="PgCharBuilder";constructor(Y,Z){super(Y,"string","PgChar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new k7(Y,this.config)}}class k7 extends j{static[U]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function g7(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new b7(X,_)}class y7 extends k{static[U]="PgCidrBuilder";constructor(Y){super(Y,"string","PgCidr")}build(Y){return new p7(Y,this.config)}}class p7 extends j{static[U]="PgCidr";getSQLType(){return"cidr"}}function m7(Y){return new y7(Y??"")}class u7 extends k{static[U]="PgCustomColumnBuilder";constructor(Y,Z,X){super(Y,"custom","PgCustomColumn");this.config.fieldConfig=Z,this.config.customTypeParams=X}build(Y){return new d7(Y,this.config)}}class d7 extends j{static[U]="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 c7(Y){return(Z,X)=>{let{name:_,config:G}=X0(Z,X);return new u7(_,G,Y)}}class Q4 extends k{static[U]="PgDateColumnBaseBuilder";defaultNow(){return this.default(O`now()`)}}class l7 extends Q4{static[U]="PgDateBuilder";constructor(Y){super(Y,"date","PgDate")}build(Y){return new j6(Y,this.config)}}class j6 extends j{static[U]="PgDate";getSQLType(){return"date"}mapFromDriverValue(Y){return new Date(Y)}mapToDriverValue(Y){return Y.toISOString()}}class i7 extends Q4{static[U]="PgDateStringBuilder";constructor(Y){super(Y,"string","PgDateString")}build(Y){return new P6(Y,this.config)}}class P6 extends j{static[U]="PgDateString";getSQLType(){return"date"}}function o7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="date")return new l7(X);return new i7(X)}class n7 extends k{static[U]="PgDoublePrecisionBuilder";constructor(Y){super(Y,"number","PgDoublePrecision")}build(Y){return new r7(Y,this.config)}}class r7 extends j{static[U]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function s7(Y){return new n7(Y??"")}class a7 extends k{static[U]="PgInetBuilder";constructor(Y){super(Y,"string","PgInet")}build(Y){return new t7(Y,this.config)}}class t7 extends j{static[U]="PgInet";getSQLType(){return"inet"}}function e7(Y){return new a7(Y??"")}class Y3 extends I4{static[U]="PgIntegerBuilder";constructor(Y){super(Y,"number","PgInteger")}build(Y){return new Z3(Y,this.config)}}class Z3 extends j{static[U]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseInt(Y);return Y}}function R2(Y){return new Y3(Y??"")}class X3 extends k{static[U]="PgIntervalBuilder";constructor(Y,Z){super(Y,"string","PgInterval");this.config.intervalConfig=Z}build(Y){return new _3(Y,this.config)}}class _3 extends j{static[U]="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 G3(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new X3(X,_)}class W3 extends k{static[U]="PgJsonBuilder";constructor(Y){super(Y,"json","PgJson")}build(Y){return new S6(Y,this.config)}}class S6 extends j{static[U]="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 $3(Y){return new W3(Y??"")}class H3 extends k{static[U]="PgJsonbBuilder";constructor(Y){super(Y,"json","PgJsonb")}build(Y){return new v6(Y,this.config)}}class v6 extends j{static[U]="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 J3(Y){return new H3(Y??"")}class Q3 extends k{static[U]="PgLineBuilder";constructor(Y){super(Y,"array","PgLine")}build(Y){return new z3(Y,this.config)}}class z3 extends j{static[U]="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 F3 extends k{static[U]="PgLineABCBuilder";constructor(Y){super(Y,"json","PgLineABC")}build(Y){return new U3(Y,this.config)}}class U3 extends j{static[U]="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 E3(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new Q3(X);return new F3(X)}class O3 extends k{static[U]="PgMacaddrBuilder";constructor(Y){super(Y,"string","PgMacaddr")}build(Y){return new D3(Y,this.config)}}class D3 extends j{static[U]="PgMacaddr";getSQLType(){return"macaddr"}}function L3(Y){return new O3(Y??"")}class V3 extends k{static[U]="PgMacaddr8Builder";constructor(Y){super(Y,"string","PgMacaddr8")}build(Y){return new M3(Y,this.config)}}class M3 extends j{static[U]="PgMacaddr8";getSQLType(){return"macaddr8"}}function A3(Y){return new V3(Y??"")}class w3 extends k{static[U]="PgNumericBuilder";constructor(Y,Z,X){super(Y,"string","PgNumeric");this.config.precision=Z,this.config.scale=X}build(Y){return new x6(Y,this.config)}}class x6 extends j{static[U]="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 R3 extends k{static[U]="PgNumericNumberBuilder";constructor(Y,Z,X){super(Y,"number","PgNumericNumber");this.config.precision=Z,this.config.scale=X}build(Y){return new N3(Y,this.config)}}class N3 extends j{static[U]="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 I3 extends k{static[U]="PgNumericBigIntBuilder";constructor(Y,Z,X){super(Y,"bigint","PgNumericBigInt");this.config.precision=Z,this.config.scale=X}build(Y){return new B3(Y,this.config)}}class B3 extends j{static[U]="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 C3(Y,Z){let{name:X,config:_}=X0(Y,Z),G=_?.mode;return G==="number"?new R3(X,_?.precision,_?.scale):G==="bigint"?new I3(X,_?.precision,_?.scale):new w3(X,_?.precision,_?.scale)}class T3 extends k{static[U]="PgPointTupleBuilder";constructor(Y){super(Y,"array","PgPointTuple")}build(Y){return new q3(Y,this.config)}}class q3 extends j{static[U]="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 K3 extends k{static[U]="PgPointObjectBuilder";constructor(Y){super(Y,"json","PgPointObject")}build(Y){return new j3(Y,this.config)}}class j3 extends j{static[U]="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 P3(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new T3(X);return new K3(X)}function CU(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 S3(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 O5(Y){let Z=CU(Y),X=0,_=Z[X];X+=1;let G=new DataView(Z.buffer),W=G.getUint32(X,_===1);X+=4;let $;if(W&536870912)$=G.getUint32(X,_===1),X+=4;if((W&65535)===1){let H=S3(Z,X);X+=8;let Q=S3(Z,X);return X+=8,[H,Q]}throw new Error("Unsupported geometry type")}class v3 extends k{static[U]="PgGeometryBuilder";constructor(Y){super(Y,"array","PgGeometry")}build(Y){return new x3(Y,this.config)}}class x3 extends j{static[U]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){return O5(Y)}mapToDriverValue(Y){return`point(${Y[0]} ${Y[1]})`}}class h3 extends k{static[U]="PgGeometryObjectBuilder";constructor(Y){super(Y,"json","PgGeometryObject")}build(Y){return new f3(Y,this.config)}}class f3 extends j{static[U]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){let Z=O5(Y);return{x:Z[0],y:Z[1]}}mapToDriverValue(Y){return`point(${Y.x} ${Y.y})`}}function b3(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new v3(X);return new h3(X)}class k3 extends k{static[U]="PgRealBuilder";constructor(Y,Z){super(Y,"number","PgReal");this.config.length=Z}build(Y){return new g3(Y,this.config)}}class g3 extends j{static[U]="PgReal";constructor(Y,Z){super(Y,Z)}getSQLType(){return"real"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function y3(Y){return new k3(Y??"")}class p3 extends k{static[U]="PgSerialBuilder";constructor(Y){super(Y,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new m3(Y,this.config)}}class m3 extends j{static[U]="PgSerial";getSQLType(){return"serial"}}function u3(Y){return new p3(Y??"")}class d3 extends I4{static[U]="PgSmallIntBuilder";constructor(Y){super(Y,"number","PgSmallInt")}build(Y){return new c3(Y,this.config)}}class c3 extends j{static[U]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number(Y);return Y}}function l3(Y){return new d3(Y??"")}class i3 extends k{static[U]="PgSmallSerialBuilder";constructor(Y){super(Y,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new o3(Y,this.config)}}class o3 extends j{static[U]="PgSmallSerial";getSQLType(){return"smallserial"}}function n3(Y){return new i3(Y??"")}class r3 extends k{static[U]="PgTextBuilder";constructor(Y,Z){super(Y,"string","PgText");this.config.enumValues=Z.enum}build(Y){return new s3(Y,this.config)}}class s3 extends j{static[U]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function a3(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new r3(X,_)}class t3 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[U]="PgTimeBuilder";build(Y){return new h6(Y,this.config)}}class h6 extends j{static[U]="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 e3(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new t3(X,_.withTimezone??!1,_.precision)}class YW extends Q4{static[U]="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[U]="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 ZW extends Q4{static[U]="PgTimestampStringBuilder";constructor(Y,Z,X){super(Y,"string","PgTimestampString");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new b6(Y,this.config)}}class b6 extends j{static[U]="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 XW(Y,Z={}){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="string")return new ZW(X,_.withTimezone??!1,_.precision);return new YW(X,_?.withTimezone??!1,_?.precision)}class _W extends k{static[U]="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[U]="PgUUID";getSQLType(){return"uuid"}}function K1(Y){return new _W(Y??"")}class GW extends k{static[U]="PgVarcharBuilder";constructor(Y,Z){super(Y,"string","PgVarchar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new WW(Y,this.config)}}class WW extends j{static[U]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function e0(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new GW(X,_)}class $W extends k{static[U]="PgBinaryVectorBuilder";constructor(Y,Z){super(Y,"string","PgBinaryVector");this.config.dimensions=Z.dimensions}build(Y){return new HW(Y,this.config)}}class HW extends j{static[U]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function JW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new $W(X,_)}class QW extends k{static[U]="PgHalfVectorBuilder";constructor(Y,Z){super(Y,"array","PgHalfVector");this.config.dimensions=Z.dimensions}build(Y){return new zW(Y,this.config)}}class zW extends j{static[U]="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 FW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new QW(X,_)}class UW extends k{static[U]="PgSparseVectorBuilder";constructor(Y,Z){super(Y,"string","PgSparseVector");this.config.dimensions=Z.dimensions}build(Y){return new EW(Y,this.config)}}class EW extends j{static[U]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function OW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new UW(X,_)}class DW extends k{static[U]="PgVectorBuilder";constructor(Y,Z){super(Y,"array","PgVector");this.config.dimensions=Z.dimensions}build(Y){return new LW(Y,this.config)}}class LW extends j{static[U]="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 DW(X,_)}function MW(){return{bigint:K7,bigserial:x7,boolean:w2,char:g7,cidr:m7,customType:c7,date:o7,doublePrecision:s7,inet:e7,integer:R2,interval:G3,json:$3,jsonb:J3,line:E3,macaddr:L3,macaddr8:A3,numeric:C3,point:P3,geometry:b3,real:y3,serial:u3,smallint:l3,smallserial:n3,text:a3,time:e3,timestamp:XW,uuid:K1,varchar:e0,bit:JW,halfvec:FW,sparsevec:OW,vector:VW}}var D5=Symbol.for("drizzle:PgInlineForeignKeys"),AW=Symbol.for("drizzle:EnableRLS");class u0 extends P{static[U]="PgTable";static Symbol=Object.assign({},P.Symbol,{InlineForeignKeys:D5,EnableRLS:AW});[D5]=[];[AW]=!1;[P.Symbol.ExtraConfigBuilder]=void 0;[P.Symbol.ExtraConfigColumns]={}}function TU(Y,Z,X,_,G=Y){let W=new u0(Y,_,G),$=typeof Z==="function"?Z(MW()):Z,H=Object.fromEntries(Object.entries($).map(([z,E])=>{let D=E;D.setName(z);let V=D.build(W);return W[D5].push(...D.buildForeignKeys(V,W)),[z,V]})),Q=Object.fromEntries(Object.entries($).map(([z,E])=>{let D=E;D.setName(z);let V=D.buildExtraConfigColumn(W);return[z,V]})),J=Object.assign(W,H);if(J[P.Symbol.Columns]=H,J[P.Symbol.ExtraConfigColumns]=Q,X)J[u0.Symbol.ExtraConfigBuilder]=X;return Object.assign(J,{enableRLS:()=>{return J[u0.Symbol.EnableRLS]=!0,J}})}var B4=(Y,Z,X)=>{return TU(Y,Z,X,void 0)};function wW(...Y){if(Y[0].columns)return new N2(Y[0].columns,Y[0].name);return new N2(Y)}class N2{static[U]="PgPrimaryKeyBuilder";columns;name;constructor(Y,Z){this.columns=Y,this.name=Z}build(Y){return new RW(Y,this.columns,this.name)}}class RW{constructor(Y,Z,X){this.table=Y,this.columns=Z,this.name=X}static[U]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[u0.Symbol.Name]}_${this.columns.map((Y)=>Y.name).join("_")}_pk`}}function L1(Y,Z){if(L7(Z)&&!J5(Y)&&!M(Y,w1)&&!M(Y,N4)&&!M(Y,O0)&&!M(Y,P)&&!M(Y,D1))return new w1(Y,Z);return Y}var g6=(Y,Z)=>{return O`${Y} = ${L1(Z,Y)}`},NW=(Y,Z)=>{return O`${Y} <> ${L1(Z,Y)}`};function I2(...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 m0("("),O.join(Z,new m0(" and ")),new m0(")")])}function IW(...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 m0("("),O.join(Z,new m0(" or ")),new m0(")")])}function BW(Y){return O`not ${Y}`}var CW=(Y,Z)=>{return O`${Y} > ${L1(Z,Y)}`},TW=(Y,Z)=>{return O`${Y} >= ${L1(Z,Y)}`},qW=(Y,Z)=>{return O`${Y} < ${L1(Z,Y)}`},KW=(Y,Z)=>{return O`${Y} <= ${L1(Z,Y)}`};function jW(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return O`false`;return O`${Y} in ${Z.map((X)=>L1(X,Y))}`}return O`${Y} in ${L1(Z,Y)}`}function PW(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return O`true`;return O`${Y} not in ${Z.map((X)=>L1(X,Y))}`}return O`${Y} not in ${L1(Z,Y)}`}function SW(Y){return O`${Y} is null`}function vW(Y){return O`${Y} is not null`}function xW(Y){return O`exists ${Y}`}function hW(Y){return O`not exists ${Y}`}function fW(Y,Z,X){return O`${Y} between ${L1(Z,Y)} and ${L1(X,Y)}`}function bW(Y,Z,X){return O`${Y} not between ${L1(Z,Y)} and ${L1(X,Y)}`}function kW(Y,Z){return O`${Y} like ${Z}`}function gW(Y,Z){return O`${Y} not like ${Z}`}function yW(Y,Z){return O`${Y} ilike ${Z}`}function pW(Y,Z){return O`${Y} not ilike ${Z}`}function mW(Y){return O`${Y} asc`}function uW(Y){return O`${Y} desc`}class L5{constructor(Y,Z,X){this.sourceTable=Y,this.referencedTable=Z,this.relationName=X,this.referencedTableName=Z[P.Symbol.Name]}static[U]="Relation";referencedTableName;fieldName}class dW{constructor(Y,Z){this.table=Y,this.config=Z}static[U]="Relations"}class C4 extends L5{constructor(Y,Z,X,_){super(Y,Z,X?.relationName);this.config=X,this.isNullable=_}static[U]="One";withFieldName(Y){let Z=new C4(this.sourceTable,this.referencedTable,this.config,this.isNullable);return Z.fieldName=Y,Z}}class B2 extends L5{constructor(Y,Z,X){super(Y,Z,X?.relationName);this.config=X}static[U]="Many";withFieldName(Y){let Z=new B2(this.sourceTable,this.referencedTable,this.config);return Z.fieldName=Y,Z}}function cW(){return{and:I2,between:fW,eq:g6,exists:xW,gt:CW,gte:TW,ilike:yW,inArray:jW,isNull:SW,isNotNull:vW,like:kW,lt:qW,lte:KW,ne:NW,not:BW,notBetween:bW,notExists:hW,notLike:gW,notIlike:pW,notInArray:PW,or:IW,sql:O}}function lW(){return{sql:O,asc:mW,desc:uW}}function iW(Y,Z){if(Object.keys(Y).length===1&&"default"in Y&&!M(Y.default,P))Y=Y.default;let X={},_={},G={};for(let[W,$]of Object.entries(Y))if(M($,P)){let H=y4($),Q=_[H];X[H]=W,G[W]={tsName:W,dbName:$[P.Symbol.Name],schema:$[P.Symbol.Schema],columns:$[P.Symbol.Columns],relations:Q?.relations??{},primaryKey:Q?.primaryKey??[]};for(let z of Object.values($[P.Symbol.Columns]))if(z.primary)G[W].primaryKey.push(z);let J=$[P.Symbol.ExtraConfigBuilder]?.($[P.Symbol.ExtraConfigColumns]);if(J){for(let z of Object.values(J))if(M(z,N2))G[W].primaryKey.push(...z.columns)}}else if(M($,dW)){let H=y4($.table),Q=X[H],J=$.config(Z($.table)),z;for(let[E,D]of Object.entries(J))if(Q){let V=G[Q];if(V.relations[E]=D,z)V.primaryKey.push(...z)}else{if(!(H in _))_[H]={relations:{},primaryKey:z};_[H].relations[E]=D}}return{tables:G,tableNamesMap:X}}function qU(Y){return function Z(X,_){return new C4(Y,X,_,_?.fields.reduce((G,W)=>G&&W.notNull,!0)??!1)}}function KU(Y){return function Z(X,_){return new B2(Y,X,_)}}function oW(Y,Z,X){if(M(X,C4)&&X.config)return{fields:X.config.fields,references:X.config.references};let _=Z[y4(X.referencedTable)];if(!_)throw new Error(`Table "${X.referencedTable[P.Symbol.Name]}" not found in schema`);let G=Y[_];if(!G)throw new Error(`Table "${_}" not found in schema`);let W=X.sourceTable,$=Z[y4(W)];if(!$)throw new Error(`Table "${W[P.Symbol.Name]}" not found in schema`);let H=[];for(let Q of Object.values(G.relations))if(X.relationName&&X!==Q&&Q.relationName===X.relationName||!X.relationName&&Q.referencedTable===X.sourceTable)H.push(Q);if(H.length>1)throw X.relationName?new Error(`There are multiple relations with name "${X.relationName}" in table "${_}"`):new Error(`There are multiple relations between "${_}" and "${X.sourceTable[P.Symbol.Name]}". Please specify relation name`);if(H[0]&&M(H[0],C4)&&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 "${$}.${X.fieldName}"`)}function nW(Y){return{one:qU(Y),many:KU(Y)}}function y6(Y,Z,X,_,G=(W)=>W){let W={};for(let[$,H]of _.entries())if(H.isJson){let Q=Z.relations[H.tsKey],J=X[$],z=typeof J==="string"?JSON.parse(J):J;W[H.tsKey]=M(Q,C4)?z&&y6(Y,Y[H.relationTableTsKey],z,H.selection,G):z.map((E)=>y6(Y,Y[H.relationTableTsKey],E,H.selection,G))}else{let Q=G(X[$]),J=H.field,z;if(M(J,O0))z=J;else if(M(J,x))z=J.decoder;else z=J.sql.decoder;W[H.tsKey]=Q===null?null:z.mapFromDriverValue(Q)}return W}import tU from"os";import eU from"fs";var p6=new Map,V5=new Map,M5=Symbol("OriginError"),N8={};class j1 extends Promise{constructor(Y,Z,X,_,G={}){let W,$;super((H,Q)=>{W=H,$=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,W(H)),this.reject=(H)=>(this.active=!1,$(H)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[M5]=this.handler.debug?new Error:this.tagged&&jU(this.strings)}get origin(){return(this.handler.debug?this[M5].stack:this.tagged&&V5.has(this.strings)?V5.get(this.strings):V5.set(this.strings,this[M5].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,W)=>{this.cursorFn=($)=>{return G({value:$,done:!1}),new Promise((H)=>X=H)},this.resolve=()=>(this.active=!1,G({done:!0})),this.reject=($)=>(this.active=!1,W($))});return this.execute(),_},return(){return X&&X(N8),{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 jU(Y){if(p6.has(Y))return p6.get(Y);let Z=Error.stackTraceLimit;return Error.stackTraceLimit=4,p6.set(Y,new Error),Error.stackTraceLimit=Z,p6.get(Y)}class I8 extends Error{constructor(Y){super(Y.message);this.name=this.constructor.name,Object.assign(this,Y)}}var x0={connection:rW,postgres:sW,generic:aW,notSupported:tW};function rW(Y,Z,X){let{host:_,port:G}=X||Z,W=Object.assign(new Error("write "+Y+" "+(Z.path||_+":"+G)),{code:Y,errno:Y,address:Z.path||_},Z.path?{}:{port:G});return Error.captureStackTrace(W,rW),W}function sW(Y){let Z=new I8(Y);return Error.captureStackTrace(Z,sW),Z}function aW(Y,Z){let X=Object.assign(new Error(Y+": "+Z),{code:Y});return Error.captureStackTrace(X,aW),X}function tW(Y){let Z=Object.assign(new Error(Y+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:Y});return Error.captureStackTrace(Z,tW),Z}var PU={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 d6{then(){A5()}catch(){A5()}finally(){A5()}}class K2 extends d6{constructor(Y){super();this.value=i6(Y)}}class n1 extends d6{constructor(Y,Z,X){super();this.value=Y,this.type=Z,this.array=X}}class c6 extends d6{constructor(Y,Z){super();this.first=Y,this.rest=Z}build(Y,Z,X,_){let G=SU.map(([W,$])=>({fn:$,i:Y.search(W)})).sort((W,$)=>W.i-$.i).pop();return G.i===-1?B5(this.first,_):G.fn(this.first,this.rest,Z,X,_)}}function l6(Y,Z,X,_){let G=Y instanceof n1?Y.value:Y;if(G===void 0){if(Y instanceof n1?Y.value=_.transform.undefined:G=Y=_.transform.undefined,G===void 0)throw x0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+X.push(Y instanceof n1?(Z.push(Y.value),Y.array?Y.array[Y.type||u6(Y.value)]||Y.type||X$(Y.value):Y.type):(Z.push(Y),u6(Y)))}var Y$=G$(PU);function N5(Y,Z,X,_,G,W){for(let $=1;$<Y.strings.length;$++)Z+=I5(Z,X,_,G,W)+Y.strings[$],X=Y.args[$];return Z}function I5(Y,Z,X,_,G){return Z instanceof c6?Z.build(Y,X,_,G):Z instanceof j1?R5(Z,X,_,G):Z instanceof K2?Z.value:Z&&Z[0]instanceof j1?Z.reduce((W,$)=>W+" "+R5($,X,_,G),""):l6(Z,X,_,G)}function R5(Y,Z,X,_){return Y.fragment=!0,N5(Y,Y.strings[0],Y.args[0],Z,X,_)}function Z$(Y,Z,X,_,G){return Y.map((W)=>"("+_.map(($)=>I5("values",W[$],Z,X,G)).join(",")+")").join(",")}function eW(Y,Z,X,_,G){let W=Array.isArray(Y[0]),$=Z.length?Z.flat():Object.keys(W?Y[0]:Y);return Z$(W?Y:[Y],X,_,$,G)}function m6(Y,Z,X,_,G){if(typeof Y==="string"&&(Y=[Y].concat(Z)),Array.isArray(Y))return B5(Y,G);let W;return(Z.length?Z.flat():Object.keys(Y)).map((H)=>{return W=Y[H],(W instanceof j1?R5(W,X,_,G):W instanceof K2?W.value:l6(W,X,_,G))+" as "+i6(G.transform.column.to?G.transform.column.to(H):H)}).join(",")}var SU=Object.entries({values:eW,in:(...Y)=>{let Z=eW(...Y);return Z==="()"?"(null)":Z},select:m6,as:m6,returning:m6,"\\(":m6,update(Y,Z,X,_,G){return(Z.length?Z.flat():Object.keys(Y)).map((W)=>i6(G.transform.column.to?G.transform.column.to(W):W)+"="+I5("values",Y[W],X,_,G))},insert(Y,Z,X,_,G){let W=Z.length?Z.flat():Object.keys(Array.isArray(Y)?Y[0]:Y);return"("+B5(W,G)+")values"+Z$(Array.isArray(Y)?Y:[Y],X,_,W,G)}}).map(([Y,Z])=>[new RegExp("((?:^|[\\s(])"+Y+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),Z]);function A5(){throw x0.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:vU,parsers:xU}=Y$;function X$(Y){if(Array.isArray(Y))return X$(Y[0]);return typeof Y==="string"?1009:0}var _$=function(Y){let Z=G$(Y||{});return{serializers:Object.assign({},vU,Z.serializers),parsers:Object.assign({},xU,Z.parsers)}};function G$(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 B5(Y,{transform:{column:Z}}){return Y.map((X)=>i6(Z.to?Z.to(X):X)).join(",")}var i6=function Y(Z){return'"'+Z.replace(/"/g,'""').replace(/\./g,'"."')+'"'},u6=function Y(Z){return Z instanceof n1?Z.type:Z instanceof Date?1184:Z instanceof Uint8Array?17:Z===!0||Z===!1?16:typeof Z==="bigint"?20:Array.isArray(Z)?Y(Z[0]):0},hU=/\\/g,fU=/"/g;function bU(Y){return Y.replace(hU,"\\\\").replace(fU,"\\\"")}var W$=function Y(Z,X,_,G){if(Array.isArray(Z)===!1)return Z;if(!Z.length)return"{}";let W=Z[0],$=G===1020?";":",";if(Array.isArray(W)&&!W.type)return"{"+Z.map((H)=>Y(H,X,_,G)).join($)+"}";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":'"'+bU(X?X(H.type?H.value:H):""+H)+'"'}).join($)+"}"},w5={i:0,char:null,str:"",quoted:!1,last:0},$$=function Y(Z,X,_){return w5.i=w5.last=0,H$(w5,Z,X,_)};function H$(Y,Z,X,_){let G=[],W=_===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(H$(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===W&&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,"-"),C2=(Y)=>Y.replace(/([A-Z])/g,"_$1").toLowerCase(),T2=(Y)=>(Y.slice(0,1)+Y.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),q2=(Y)=>Y.replace(/-/g,"_");function C5(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(W)]:Z($,_)}),{}):X}}p4.column={from:p4};p4.value={from:C5(p4)};C2.column={to:C2};var T5={...p4};T5.column.to=C2;m4.column={from:m4};m4.value={from:C5(m4)};T2.column={to:T2};var q5={...m4};q5.column.to=T2;u4.column={from:u4};u4.value={from:C5(u4)};q2.column={to:q2};var K5={...u4};K5.column.to=q2;import J$ from"net";import pU from"tls";import j2 from"crypto";import j5 from"stream";import{performance as Q$}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=kU;function kU(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 Y1=Buffer.allocUnsafe(256),gU="BCcDdEFfHPpQSX".split("").reduce((Y,Z)=>{let X=Z.charCodeAt(0);return Y[Z]=()=>{return Y1[0]=X,F0.i=5,F0},Y},{}),F0=Object.assign(yU,gU,{N:String.fromCharCode(0),i:0,inc(Y){return F0.i+=Y,F0},str(Y){let Z=Buffer.byteLength(Y);return o6(Z),F0.i+=Y1.write(Y,F0.i,Z,"utf8"),F0},i16(Y){return o6(2),Y1.writeUInt16BE(Y,F0.i),F0.i+=2,F0},i32(Y,Z){if(Z||Z===0)return Y1.writeUInt32BE(Y,Z),F0;return o6(4),Y1.writeUInt32BE(Y,F0.i),F0.i+=4,F0},z(Y){return o6(Y),Y1.fill(0,F0.i,F0.i+Y),F0.i+=Y,F0},raw(Y){return Y1=Buffer.concat([Y1.subarray(0,F0.i),Y]),F0.i=Y1.length,F0},end(Y=1){Y1.writeUInt32BE(F0.i-Y,Y);let Z=Y1.subarray(0,F0.i);return F0.i=0,Y1=Buffer.allocUnsafe(256),Z}}),c=F0;function o6(Y){if(Y1.length-F0.i<Y){let Z=Y1,X=Z.length;Y1=Buffer.allocUnsafe(X+(X>>1)+Y),Z.copy(Y1)}}function yU(){return F0.i=0,F0}var v5=U$,mU=1,T4=c().S().end(),z$=c().H().end(),uU=c().i32(8).i32(80877103).end(8),dU=Buffer.concat([c().E().str(c.N).i32(0).end(),T4]),cU=c().D().str("S").str(c.N).end(),B8=()=>{},lU=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),iU={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 U$(Y,Z={},{onopen:X=B8,onend:_=B8,onclose:G=B8}={}){let{ssl:W,max:$,user:H,host:Q,port:J,database:z,parsers:E,transform:D,onnotice:V,onnotify:R,onparameter:A,max_pipeline:g,keep_alive:b,backoff:f,target_session_attrs:h}=Y,I=R1(),N=mU++,K={pid:null,secret:null},q=S5(HY,Y.idle_timeout),p=S5(HY,Y.max_lifetime),s=S5(f$,Y.connect_timeout),C=null,t,m=new d4,e=Buffer.alloc(0),U0=Y.fetch_types,h0={},J1={},r1=Math.random().toString(36).slice(2),T=1,u=0,G0=0,C0=0,f0=0,a=0,Q0=0,S0=0,T0=null,w0=null,n0=!1,L0=null,P1=null,l0=null,z4=null,b0=null,R0=null,S1=null,p1=null,v=null,K8=null,r0={queue:Z.closed,idleTimer:q,connect(F){l0=F,WX()},terminate:P8,execute:j8,cancel:S$,end:HY,count:0,id:N};return Z.closed&&Z.closed.push(r0),r0;async function P$(){let F;try{F=Y.socket?await Promise.resolve(Y.socket(Y)):new J$.Socket}catch(L){o4(L);return}return F.on("error",o4),F.on("close",$X),F.on("drain",_X),F}async function S$({pid:F,secret:L},l,W0){try{t=c().i32(16).i32(80877102).i32(F).i32(L).end(16),await GX(),C.once("error",W0),C.once("close",l)}catch(K0){W0(K0)}}function j8(F){if(n0)return k2(F,x0.connection("CONNECTION_DESTROYED",Y));if(F.cancelled)return;try{return F.state=K,v?I.push(F):(v=F,v.active=!0),h$(F),i0(v$(F))&&!F.describeFirst&&!F.cursorFn&&I.length<g&&(!F.options.onexecute||F.options.onexecute(r0))}catch(L){return I.length===0&&i0(T4),m1(L),!0}}function v$(F){if(F.parameters.length>=65534)throw x0.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return F.options.simple?c().Q().str(F.statement.string+c.N).end():F.describeFirst?Buffer.concat([YX(F),z$]):F.prepare?F.prepared?b2(F):Buffer.concat([YX(F),b2(F)]):x$(F)}function YX(F){return Buffer.concat([JX(F.statement.string,F.parameters,F.statement.types,F.statement.name),AH("S",F.statement.name)])}function b2(F){return Buffer.concat([MH(F.parameters,F.statement.types,F.statement.name,F.cursorName),F.cursorFn?QX("",F.cursorRows):dU])}function x$(F){return Buffer.concat([JX(F.statement.string,F.parameters,F.statement.types),cU,b2(F)])}function h$(F){let L=[],l=[],W0=N5(F,F.strings[0],F.args[0],L,l,Y);!F.tagged&&F.args.forEach((K0)=>l6(K0,L,l,Y)),F.prepare=Y.prepare&&("prepare"in F.options?F.options.prepare:!0),F.string=W0,F.signature=F.prepare&&l+W0,F.onlyDescribe&&delete J1[F.signature],F.parameters=F.parameters||L,F.prepared=F.prepare&&F.signature in J1,F.describeFirst=F.onlyDescribe||L.length&&!F.prepared,F.statement=F.prepared?J1[F.signature]:{string:W0,types:l,name:F.prepare?r1+T++:""},typeof Y.debug==="function"&&Y.debug(N,W0,L,l)}function i0(F,L){if(R0=R0?Buffer.concat([R0,F]):Buffer.from(F),L||R0.length>=1024)return ZX(L);return w0===null&&(w0=setImmediate(ZX)),!0}function ZX(F){let L=C.write(R0,F);return w0!==null&&clearImmediate(w0),R0=w0=null,L}function f$(){m1(x0.connection("CONNECT_TIMEOUT",Y,C)),C.destroy()}async function XX(){if(i0(uU),!await new Promise((L)=>C.once("data",(l)=>L(l[0]===83)))&&W==="prefer")return i4();C.removeAllListeners(),C=pU.connect({socket:C,servername:J$.isIP(C.host)?void 0:C.host,...W==="require"||W==="allow"||W==="prefer"?{rejectUnauthorized:!1}:W==="verify-full"?{}:typeof W==="object"?W:{}}),C.on("secureConnect",i4),C.on("error",o4),C.on("close",$X),C.on("drain",_X)}function _X(){!v&&X(r0)}function $Y(F){if(L0){if(L0.push(F),G0-=F.length,G0>0)return}e=L0?Buffer.concat(L0,a-G0):e.length===0?F:Buffer.concat([e,F],e.length+F.length);while(e.length>4){if(a=e.readUInt32BE(1),a>=e.length){G0=a-e.length,L0=[e];break}try{b$(e.subarray(0,a+1))}catch(L){v&&(v.cursorFn||v.describeFirst)&&i0(T4),m1(L)}e=e.subarray(a+1),G0=0,L0=null}}async function GX(){if(n0=!1,h0={},C||(C=await P$()),!C)return;if(s.start(),Y.socket)return W?XX():i4();if(C.on("connect",W?XX:i4),Y.path)return C.connect(Y.path);C.ssl=W,C.connect(J[C0],Q[C0]),C.host=Q[C0],C.port=J[C0],C0=(C0+1)%J.length}function WX(){setTimeout(GX,u?u+Q0-Q$.now():0)}function i4(){try{J1={},U0=Y.fetch_types,r1=Math.random().toString(36).slice(2),T=1,p.start(),C.on("data",$Y),b&&C.setKeepAlive&&C.setKeepAlive(!0,1000*b);let F=RH();i0(F)}catch(F){o4(F)}}function o4(F){if(r0.queue===Z.connecting&&Y.host[f0+1])return;m1(F);while(I.length)k2(I.shift(),F)}function m1(F){b0&&(b0.destroy(F),b0=null),v&&k2(v,F),l0&&(k2(l0,F),l0=null)}function k2(F,L){if(F.reserve)return F.reject(L);if(!L||typeof L!=="object")L=new Error(L);"query"in L||"parameters"in L||Object.defineProperties(L,{stack:{value:L.stack+F.origin.replace(/.*\n/,`
63
- `),enumerable:Y.debug},query:{value:F.string,enumerable:Y.debug},parameters:{value:F.parameters,enumerable:Y.debug},args:{value:F.args,enumerable:Y.debug},types:{value:F.statement&&F.statement.types,enumerable:Y.debug}}),F.reject(L)}function HY(){return z4||(!r0.reserved&&_(r0),!r0.reserved&&!l0&&!v&&I.length===0?(P8(),new Promise((F)=>C&&C.readyState!=="closed"?C.once("close",F):F())):z4=new Promise((F)=>S1=F))}function P8(){if(n0=!0,b0||v||l0||I.length)o4(x0.connection("CONNECTION_DESTROYED",Y));if(clearImmediate(w0),C)C.removeListener("data",$Y),C.removeListener("connect",i4),C.readyState==="open"&&C.end(c().X().end());S1&&(S1(),z4=S1=null)}async function $X(F){if(e=Buffer.alloc(0),G0=0,L0=null,clearImmediate(w0),C.removeListener("data",$Y),C.removeListener("connect",i4),q.cancel(),p.cancel(),s.cancel(),C.removeAllListeners(),C=null,l0)return WX();!F&&(v||I.length)&&o4(x0.connection("CONNECTION_CLOSED",Y,C)),u=Q$.now(),F&&Y.shared.retries++,Q0=(typeof f==="function"?f(Y.shared.retries):f)*1000,G(r0,x0.connection("CONNECTION_CLOSED",Y,C))}function b$(F,L=F[0]){(L===68?k$:L===100?zH:L===65?GH:L===83?g$:L===90?y$:L===67?p$:L===50?HX:L===49?m$:L===116?u$:L===84?d$:L===82?c$:L===110?s$:L===75?a$:L===69?XH:L===115?WH:L===51?$H:L===71?HH:L===78?UH:L===72?JH:L===99?FH:L===73?EH:L===86?OH:L===118?DH:L===87?QH:LH)(F)}function k$(F){let L=7,l,W0,K0,s0=v.isRaw?new Array(v.statement.columns.length):{};for(let Z1=0;Z1<v.statement.columns.length;Z1++)W0=v.statement.columns[Z1],l=F.readInt32BE(L),L+=4,K0=l===-1?null:v.isRaw===!0?F.subarray(L,L+=l):W0.parser===void 0?F.toString("utf8",L,L+=l):W0.parser.array===!0?W0.parser(F.toString("utf8",L+1,L+=l)):W0.parser(F.toString("utf8",L,L+=l)),v.isRaw?s0[Z1]=v.isRaw===!0?K0:D.value.from?D.value.from(K0,W0):K0:s0[W0.name]=D.value.from?D.value.from(K0,W0):K0;v.forEachFn?v.forEachFn(D.row.from?D.row.from(s0):s0,m):m[S0++]=D.row.from?D.row.from(s0):s0}function g$(F){let[L,l]=F.toString("utf8",5,F.length-1).split(c.N);if(h0[L]=l,Y.parameters[L]!==l)Y.parameters[L]=l,A&&A(L,l)}function y$(F){if(v&&v.options.simple&&v.resolve(P1||m),v=P1=null,m=new d4,s.cancel(),l0){if(h){if(!h0.in_hot_standby||!h0.default_transaction_read_only)return ZH();else if(YH(h,h0))return P8()}if(U0)return l0.reserve&&(l0=null),t$();l0&&!l0.reserve&&j8(l0),Y.shared.retries=f0=0,l0=null;return}while(I.length&&(v=I.shift())&&(v.active=!0,v.cancelled))U$(Y).cancel(v.state,v.cancelled.resolve,v.cancelled.reject);if(v)return;r0.reserved?!r0.reserved.release&&F[5]===73?z4?P8():(r0.reserved=null,X(r0)):r0.reserved():z4?P8():X(r0)}function p$(F){S0=0;for(let L=F.length-1;L>0;L--){if(F[L]===32&&F[L+1]<58&&m.count===null)m.count=+F.toString("utf8",L+1,F.length-1);if(F[L-1]>=65){m.command=F.toString("utf8",5,L),m.state=K;break}}if(K8&&(K8(),K8=null),m.command==="BEGIN"&&$!==1&&!r0.reserved)return m1(x0.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(v.options.simple)return HX();if(v.cursorFn)m.count&&v.cursorFn(m),i0(T4);v.resolve(m)}function m$(){v.parsing=!1}function HX(){!m.statement&&(m.statement=v.statement),m.columns=v.statement.columns}function u$(F){let L=F.readUInt16BE(5);for(let l=0;l<L;++l)!v.statement.types[l]&&(v.statement.types[l]=F.readUInt32BE(7+l*4));v.prepare&&(J1[v.signature]=v.statement),v.describeFirst&&!v.onlyDescribe&&(i0(b2(v)),v.describeFirst=!1)}function d$(F){if(m.command)P1=P1||[m],P1.push(m=new d4),m.count=null,v.statement.columns=null;let L=F.readUInt16BE(5),l=7,W0;v.statement.columns=Array(L);for(let K0=0;K0<L;++K0){W0=l;while(F[l++]!==0);let s0=F.readUInt32BE(l),Z1=F.readUInt16BE(l+4),F4=F.readUInt32BE(l+6);v.statement.columns[K0]={name:D.column.from?D.column.from(F.toString("utf8",W0,l-1)):F.toString("utf8",W0,l-1),parser:E[F4],table:s0,number:Z1,type:F4},l+=18}if(m.statement=v.statement,v.onlyDescribe)return v.resolve(v.statement),i0(T4)}async function c$(F,L=F.readUInt32BE(5)){(L===3?l$:L===5?i$:L===10?o$:L===11?n$:L===12?r$:L!==0?VH:B8)(F,L)}async function l$(){let F=await JY();i0(c().p().str(F).z(1).end())}async function i$(F){let L="md5"+await F$(Buffer.concat([Buffer.from(await F$(await JY()+H)),F.subarray(9)]));i0(c().p().str(L).z(1).end())}async function o$(){p1=(await j2.randomBytes(18)).toString("base64"),c().p().str("SCRAM-SHA-256"+c.N);let F=c.i;i0(c.inc(4).str("n,,n=*,r="+p1).i32(c.i-F-4,F).end())}async function n$(F){let L=F.toString("utf8",9).split(",").reduce((Z1,F4)=>(Z1[F4[0]]=F4.slice(2),Z1),{}),l=await j2.pbkdf2Sync(await JY(),Buffer.from(L.s,"base64"),parseInt(L.i),32,"sha256"),W0=await n6(l,"Client Key"),K0="n=*,r="+p1+",r="+L.r+",s="+L.s+",i="+L.i+",c=biws,r="+L.r;T0=(await n6(await n6(l,"Server Key"),K0)).toString("base64");let s0="c=biws,r="+L.r+",p="+nU(W0,Buffer.from(await n6(await oU(W0),K0))).toString("base64");i0(c().p().str(s0).end())}function r$(F){if(F.toString("utf8",9).split(c.N,1)[0].slice(2)===T0)return;m1(x0.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),C.destroy()}function JY(){return Promise.resolve(typeof Y.pass==="function"?Y.pass():Y.pass)}function s$(){if(m.statement=v.statement,m.statement.columns=[],v.onlyDescribe)return v.resolve(v.statement),i0(T4)}function a$(F){K.pid=F.readUInt32BE(5),K.secret=F.readUInt32BE(9)}async function t$(){U0=!1,(await new j1([`
60
+ ${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])=>_1(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($1($)&&$.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":Q8(X,Y.token);break}}function yz(Y,Z,X){switch(Z){case"newValue":Q8(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(_)W0(Z,_,_1(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(_1);O2(X,_,Y.key);for(let[G,$]of Y.values){let W=X.families.get(G);if(W){W0(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)J8(X,_,Y.key,Y.exclusive?"exclusive":void 0);break;case"oldValue":{let _="exclusive";for(let G of Y.from)J8(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||!$1(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),p0(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($1(_))_.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 G1(G.timelineTopics.toJSON()),trackers:new Map,transactions:new l1(G.transactions),selectorAtoms:new G1(G.selectorAtoms.toJSON()),selectorGraph:new G1(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 G1(G.moleculeGraph.toJSON(),{makeContentKey:G.moleculeGraph.makeContentKey}),moleculeData:new G1(G.moleculeData.toJSON(),{makeContentKey:G.moleculeData.makeContentKey}),moleculeJoins:new G1(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)=>{h1(Q,...J)},reset:(...J)=>{H8(Q,...J)},run:(J,U=jZ())=>SZ(Q,J,U),find:(...J)=>W0(Y,...J),json:(J)=>b4(Q,J),dispose:(...J)=>{Q8(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 PZ(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)=>PZ(H,Z),subject:new H0},$=o(Y);$.transactions.set(X,G);let W=$4(G);if(!_)Y.on.transactionCreation.next(W);return W}var mZ=(Y,Z,X)=>{let _=o(Y),G=new H0,$=new Set,{key:W,const:H}=Z,Q="writable_held_selector",J=A6(_,"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,W,H,G),Y.logger.info("\u2728","writable_held_selector",W,"=",H),$.clear(),H},y={...Z,type:"writable_held_selector",subject:G,install:(h)=>mZ(h,Z,X),get:R,set:(h)=>{let f=o(Y),I=R(Z.get,f),N=bZ(h)(I);if(Y.logger.info("\uD83D\uDCDD","writable_held_selector",W,"set (",I,"->",N,")"),o1(f,W,N,G),z8(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},uZ=(Y,Z,X)=>{let _=o(Y),G=new H0,$=new Set,W=Z.key,H="writable_pure_selector",Q=A6(_,"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,W,N,G);return Y.logger.info("\u2728","writable_pure_selector",W,"=",q),$.clear(),N},M={...Z,type:"writable_pure_selector",subject:G,install:(h)=>uZ(h,Z,X),get:L,set:(h)=>{let f=o(Y),I=L(Z.get,f),N=bZ(h)(I);if(Y.logger.info("\uD83D\uDCDD","writable_pure_selector",W,"set (",I,"->",N,")"),o1(f,Z.key,N,G),z8(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 R9(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X){let $=mZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(_){let $=yZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(X){let $=uZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}let G=gZ(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"},p0(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"},p0(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"},p0(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"},p0(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"),$1(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 H0,J=Object.assign((U)=>{let E=U0(U),V={key:_,subKey:E},L=`${_}(${E})`,R=o(Y),M=gZ(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)=>W0(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 H0,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 H0,J=Object.assign((U)=>{let E=U0(U),V={key:_,subKey:E},L=`${_}(${E})`,R=o(Y),M=yZ(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 H0,J=Object.assign((U)=>{let E=U0(U),V={key:_,subKey:E},L=`${_}(${E})`,R=o(Y),M=mZ(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 dZ(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 H0,J=Object.assign((U)=>{let E=U0(U),V={key:_,subKey:E},L=`${_}(${E})`,R=o(Y),M=uZ(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)=>dZ(U,Z),default:(U)=>{return Z.get(U)({get:(...V)=>c1(Y,...V),find:(...V)=>W0(Y,...V),json:(V)=>b4(Y,V)})}});return Y.families.set(_,J),$}function vZ(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 dZ(Y,Z);return h4(Y,Z)}function nz(Y,Z,X){let _=Y.families.get(Z.key);if(_===void 0)throw new pZ(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($1($)&&$.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 W0(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 Q8(Y,...Z){let X;if(Z.length===1)X=Z[0];else{let _=Z[0],G=Z[1];X=W0(Y,_,G)}try{p0(Y,X)}catch(_){Y.logger.error("\u274C",X.type,X.key,`could not be disposed because it was not found in the store "${Y.config.name}".`);return}switch(X.type){case"atom":case"mutable_atom":m9(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=W0(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:
61
+ ${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=p0(Y,_).default($);return Y.defaults.set(_.key,H),H}}}return L2(Y,p0(Y,X))}function M2(Y,Z,X,_){function G(E){if(Y.operation.open){let V=Y.on.operationClose.subscribe(`state subscription ${X}`,()=>{V(),_(E)})}else _(E)}let $=p0(Y,Z);Y.logger.info("\uD83D\uDC40",$.type,$.key,`Adding subscription "${X}"`);let W=$.type==="writable_pure_selector"||$.type==="readonly_pure_selector",H=new Map,Q=G;if(W){L2(Y,$);for(let[E,V]of M6(Y,$.key))H.set(E,B9(Y,$,V));Q=function E(V){let L=M6(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()}}var p9=(Y,Z,X,_)=>{let G=p0(Y,Z);Y.logger.info("\uD83D\uDC40","timeline",Z.key,`Adding subscription "${X}"`);let $=G.subject.subscribe(X,_);return()=>{Y.logger.info("\uD83D\uDE48","timeline",Z.key,`Removing subscription "${X}" from timeline`),$()}};var cZ=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,$=$1(X)?X.transactionMeta.update.key:"main",W=`tracker:${G}:${$}:${_}`,H=(J)=>{h1(X,Z,J)},Q=c1(X,Y);this.unsubscribeFromInnerValue=Q.subscribe(W,H),this.unsubscribeFromState=M2(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}:${$1(X)?X.transactionMeta.update.key:"main"}:${Y.key}`;M2(X,Z,_,function G({newValue:$,oldValue:W}){let H=X.timelineTopics.getRelatedKey(Z.key);if(H&&X.timelines.get(H)?.timeTraveling){let E=p9(X,{key:H,type:"timeline"},_,function V(L){E(),h1(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)h1(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 H0,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:()=>{H8(Y,J)},setSelf:(R)=>{h1(Y,J,R)},onSet:(R)=>M2(Y,J,`effect[${U}]`,R)});if(L)E.push(L);++U}Q.cleanup=()=>{for(let V of E)V()}}if(new cZ(J,Y),!X)R9(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=p0(Z,X),this.mutableAtoms=Y;let _=(G)=>{let{type:$,token:W}=G;if(W.family){let H=_1(W.family.subKey);switch($){case"state_creation":this.trackers.set(H,new cZ(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 xZ(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 H0,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)=>xZ(Q,Z),internalRoles:X});return Y.families.set(Z.key,H),dZ(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 j9=(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=p0(_,$),H=JSON.parse(Z.family.subKey);return W0(Y,W,H)}return{type:"writable_pure_selector",key:`${Z.key}:JSON`}};var lZ=(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 N9=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 G1({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new G1({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 G1({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new G1({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new wz(100);molecules=new Map;moleculeJoins=new G1({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeGraph=new G1({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeData=new G1({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});miscResources=new Map;on={atomCreation:new H0,atomDisposal:new H0,selectorCreation:new H0,selectorDisposal:new H0,timelineCreation:new H0,transactionCreation:new H0,transactionApplying:new Iz(null),operationClose:new H0,moleculeCreation:new H0,moleculeDisposal:new H0};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new L9("warn",(Y,Z,X)=>!A2(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 G1(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,_),$=lZ(_);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 N9({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function p0(Y,Z){let X,_=Y;while(_!==null){switch(Z.type){case"atom":case"mutable_atom":X=_.atoms.get(Z.key);break;case"writable_pure_selector":case"writable_held_selector":X=_.writableSelectors.get(Z.key);break;case"readonly_pure_selector":case"readonly_held_selector":X=_.readonlySelectors.get(Z.key);break;case"atom_family":case"mutable_atom_family":case"writable_pure_selector_family":case"readonly_pure_selector_family":case"writable_held_selector_family":case"readonly_held_selector_family":X=_.families.get(Z.key);break;case"timeline":X=_.timelines.get(Z.key);break;case"transaction":X=_.transactions.get(Z.key);break}if(X)return X;_=_.child}throw new pZ(Z,Y)}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 H0,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:()=>{H8(Y,U)},setSelf:(M)=>{h1(Y,U,M)},onSet:(M)=>M2(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 m9(Y,Z){let X=o(Y),{key:_,family:G}=Z,$=p0(X,Z);if(!G)Y.logger.error("\u274C","atom",_,"Standalone atoms cannot be disposed.");else{$.cleanup?.();let W=Y.valueMap.get($.key),H=p0(Y,{key:G.key,type:"atom_family"}),Q={type:"state_disposal",subType:"atom",token:Z,value:W};H.subject.next(Q);let J=$1(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=lZ(Z);m9(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)}}function I9(Y,Z,X){return Y.joins.set(Z.key,new oZ(Z,X,Y)),{key:Z.key,type:"join",a:Z.between[0],b:Z.between[1],cardinality:Z.cardinality}}var oZ=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:(...I)=>c1(X,...I),set:(...I)=>{h1(X,...I)},find:(...I)=>W0(X,...I),json:(I)=>b4(X,I)};let _=Y.between[0],G=Y.between[1],$=xZ(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),J1=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(!J1&&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(!J1)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 G1(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=j9($,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=j9($,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 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 oZ(G.options,G.defaultContent,Z),Z.joins.set(Y.key,X)}return X}function U8(Y,Z,X){let _=iZ(Y,X),G=o(X);if($1(G)){let{toolkit:$}=G.transactionMeta;_.transact($,({relations:W})=>{Z(W)})}else Z(_.relations)}function T9(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 W0(X,Q,Z)},get[W](){let Q=_.states[W];return W0(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 W0(X,J,Z)},get[Q](){let J=_.states[Q];return W0(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 W0(X,Q,Z)},get[W](){let Q=_.states[W];return W0(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 W0(X,J,Z)},get[Q](){let J=_.states[Q];return W0(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 W0(X,Q,Z)},get[W](){let Q=_.states[W];return W0(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 W0(X,J,Z)},get[Q](){let J=_.states[Q];return W0(X,J,Z)}})}}}return G}function K9(Y,Z){return iZ(Y,Z).core.relatedKeysAtoms}function A2(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(A2(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(A2(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(A2(_))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(A2(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}},d9=new rZ({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 rZ({object:c9,array:(Y)=>Array.isArray(Y)}),XF=new rZ({...d9.supported,...l9.supported}),w6=(Y)=>{if(Y===void 0)return"undefined";let Z=XF.refine(Y);if(Z)return Z.type;return Object.getPrototypeOf(Y).constructor.name};var uT=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=qZ(this.atomIndex),_=qZ(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=w6(Y),$=w6(Z);if(G===$)return{summary:`${G} \u2192 ${$}`};return{summary:`Type change: ${G} \u2192 ${$}`}}},dT=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")}},nT=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 sT=E2({key:"usersInRoomIndex",class:G4}),nZ=E2({key:"roomIndex",class:G4}),QF={enteredAtEpoch:0},F8=E6({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(Y)=>typeof Y==="string",isBType:(Y)=>typeof Y==="string"},QF),tT=O6({key:"usersInMyRoomView",get:(Y)=>({find:Z})=>{let X=D9(F8);return[Z(X,Y)]}});import{spawn as UF}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}},zF=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=_1(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=_1(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=_1(this.incompleteLog);this.handleLog(W);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)W=_1(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 sZ{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(Y){super((...Z)=>{return this.out.next(Z),this});this.id=Y,this.in=new H0,this.out=new H0,this.in.subscribe("socket",(Z)=>{this.handleEvent(...Z)})}dispose(){for(let Y of this.disposalFunctions)Y()}},i9=class extends sZ{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 _=_1(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 $=_1(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=$8({key:"roomArguments",default:["echo",["Hello World!"]]}),EF=O6({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=W8({key:"createRoom",do:({get:Y,set:Z,find:X},_,G,$)=>{let W=$?[G,$]:[G],H=X(r9,_);Z(H,W),Z(nZ,(U)=>U.add(_));let Q=X(EF,_);return Y(Q)}}),HK=W8({key:"joinRoom",do:(Y,Z,X,_)=>{let G={enteredAtEpoch:_};return U8(F8,($)=>{$.set({room:Z,user:X},G)},Y.env().store),G}}),JK=W8({key:"leaveRoom",do:(Y,Z,X)=>{U8(F8,(_)=>{_.delete({room:Z,user:X})},Y.env().store)}}),QK=W8({key:"destroyRoom",do:(Y,Z)=>{U8(F8,(X)=>{X.delete({room:Z})},Y.env().store),Y.set(nZ,(X)=>(X.delete(Z),X))}});var UK=$8({key:"redactor",default:{occlude:(Y)=>Y}}),zK=$8({key:"unacknowledgedUpdates",default:()=>[]}),FK=$8({key:"sockets",default:null}),EK=E2({key:"socketsIndex",class:G4}),OK=E2({key:"usersIndex",class:G4}),VK=E6({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 aZ}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 tZ(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=O1("string"),s9=O1('"true" | "false" | undefined'),k1=tZ({isServer:!VF&&!DF,server:{CI:O1("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),O1("string[]")),API_KEY_OPENAI:O1("string | undefined"),API_KEY_RESEND:O1("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:W4,VITE_DEV_FRONTEND_HOST:O1("string | undefined"),VITE_DEV_HTTPS:s9.pipe((Y)=>Y==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var a9=aZ(import.meta.dirname,"../dev"),R6=k1.VITE_DEV_HTTPS?{cert:t9(aZ(a9,"./cert.pem"),"utf-8"),key:t9(aZ(a9,"./key.pem"),"utf-8")}:void 0;function xK(Y){if(R6)return MF(R6,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 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 b1=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 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 N6(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 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 $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 N6((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 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 E8{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 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=_7(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 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 I6=Symbol.for("drizzle:isPgEnum");function J7(Y){return!!Y&&typeof Y==="function"&&I6 in Y&&Y[I6]===!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 O8(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,[I6]:!0});return _}function wF(Y,Z,X){let _=Object.assign((G)=>new W7(G??"",_),{enumName:Y,enumValues:Object.values(Z),schema:X,[I6]:!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 V8 extends S0{static[F]="WithSubquery"}var z7="0.44.4";var _5,G5,V0={startActiveSpan(Y,Z){if(!_5)return Z();if(!G5)G5=_5.trace.getTracer("drizzle-orm",z7);return N6((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"),T6=Symbol.for("drizzle:Columns"),F7=Symbol.for("drizzle:ExtraConfigColumns"),$5=Symbol.for("drizzle:OriginalName"),W5=Symbol.for("drizzle:BaseName"),D8=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:$5,Columns:T6,ExtraConfigColumns:F7,BaseName:W5,IsAlias:D8,ExtraConfigBuilder:E7};[b1];[$5];[y4];[T6];[F7];[W5];[D8]=!1;[RF]=!0;[E7]=void 0;constructor(Y,Z,X){this[b1]=this[$5]=Y,this[y4]=Z,this[W5]=X}}function d0(Y){return Y[b1]}function g4(Y){return`${Y[y4]??"public"}.${Y[b1]}`}function H5(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 m0{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,m0))return{sql:J.value.join(""),params:[]};if(A(J,K6))return{sql:G(J.value),params:[]};if(J===void 0)return{sql:"",params:[]};if(Array.isArray(J)){let U=[new m0("(")];for(let[E,V]of J.entries())if(U.push(V),E<J.length-1)U.push(new m0(", "));return U.push(new m0(")")),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[D8]?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[D8]||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,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 m0("("),J._.sql,new m0(") "),new K6(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(H5(J)){if(J.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([J.getSQL()],X);return this.buildQueryFromSourceParams([new m0("("),J.getSQL(),new m0(")")],X)}if(H)return{sql:this.mapInlineParam(J,X),params:[]};return{sql:$(Q.value++,J),params:[J],typings:["none"]}}))}mapInlineParam(Y,{escapeString:Z}){if(Y===null)return"null";if(typeof Y==="number"||typeof Y==="boolean")return Y.toString();if(typeof Y==="string")return Z(Y);if(typeof Y==="object"){let X=Y.toString();if(X==="[object Object]")return Z(JSON.stringify(Y));return Z(X)}throw new Error("Unexpected param value: "+Y)}getSQL(){return this}as(Y){if(Y===void 0)return this;return new 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 K6{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 w1{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 m0(Y[0]));for(let[_,G]of Z.entries())X.push(G,new m0(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 m0(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 K6(Q)}Y.identifier=$;function W(Q){return new N4(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})(x||(x={}));class N4{constructor(Y){this.name=Y}static[F]="Placeholder";getSQL(){return new x([this])}}function J5(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,w1)&&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 w2{constructor(Y){this.table=Y}static[F]="ColumnAliasProxyHandler";get(Y,Z){if(Z==="table")return this.table;return Y[Z]}}class L8{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 w2(new Proxy(Y,this)))}),G}let X=Y[Z];if(A(X,O0))return new Proxy(X,new w2(new Proxy(Y,this)));return X}}function B6(Y,Z){return new Proxy(Y,new L8(Z,!1))}function i1(Y,Z){return new Proxy(Y,new w2(new Proxy(Y.table,new L8(Z,!1))))}function Q5(Y,Z){return new x.Aliased(M8(Y.sql,Z),Y.fieldAlias)}function M8(Y,Z){return O.join(Y.queryChunks.map((X)=>{if(A(X,O0))return i1(X,Z);if(A(X,x))return M8(X,Z);if(A(X,x.Aliased))return Q5(X,Z);return X}))}class C6 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}
62
+ params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrace(this,H4),X)this.cause=X}}class U5 extends C6{static[F]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class L7{static[F]="ConsoleLogWriter";write(Y){console.log(Y)}}class z5{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 F5{static[F]="NoopLogger";logQuery(){}}class W1{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 B1(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(...B1(G[S.Symbol.Columns],$));else X.push(...B1(G,$));return X},[])}function A8(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 q6(Y,Z){let X=Object.entries(Z).filter(([,_])=>_!==void 0).map(([_,G])=>{if(A(G,x)||A(G,O0))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 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 w8(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 j6(Y,this.config)}}class j6 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 S6(Y,this.config)}}class S6 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 R8(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 P6(Y,this.config)}}class P6 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 v6(Y,this.config)}}class v6 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 x6(Y,this.config)}}class x6 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 E5(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 E5(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=E5(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 f6(Y,this.config)}}class f6 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 h6(Y,this.config)}}class h6 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 k6(Y,this.config)}}class k6 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 b6(Y,this.config)}}class b6 extends j{static[F]="PgUUID";getSQLType(){return"uuid"}}function C1(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:w8,char:k7,cidr:g7,customType:u7,date:l7,doublePrecision:r7,inet:t7,integer:R8,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:C1,varchar:a0,bit:WW,halfvec:QW,sparsevec:FW,vector:VW}}var O5=Symbol.for("drizzle:PgInlineForeignKeys"),LW=Symbol.for("drizzle:EnableRLS");class u0 extends S{static[F]="PgTable";static Symbol=Object.assign({},S.Symbol,{InlineForeignKeys:O5,EnableRLS:LW});[O5]=[];[LW]=!1;[S.Symbol.ExtraConfigBuilder]=void 0;[S.Symbol.ExtraConfigColumns]={}}function KF(Y,Z,X,_,G=Y){let $=new u0(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 $[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[u0.Symbol.ExtraConfigBuilder]=X;return Object.assign(J,{enableRLS:()=>{return J[u0.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 N8(Y[0].columns,Y[0].name);return new N8(Y)}class N8{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[u0.Symbol.Name]}_${this.columns.map((Y)=>Y.name).join("_")}_pk`}}function D1(Y,Z){if(O7(Z)&&!H5(Y)&&!A(Y,w1)&&!A(Y,N4)&&!A(Y,O0)&&!A(Y,S)&&!A(Y,V1))return new w1(Y,Z);return Y}var y6=(Y,Z)=>{return O`${Y} = ${D1(Z,Y)}`},wW=(Y,Z)=>{return O`${Y} <> ${D1(Z,Y)}`};function I8(...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 m0("("),O.join(Z,new m0(" and ")),new m0(")")])}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 m0("("),O.join(Z,new m0(" or ")),new m0(")")])}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 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 mW{constructor(Y,Z){this.table=Y,this.config=Z}static[F]="Relations"}class K4 extends V5{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 T8 extends V5{constructor(Y,Z,X){super(Y,Z,X?.relationName);this.config=X}static[F]="Many";withFieldName(Y){let Z=new T8(this.sourceTable,this.referencedTable,this.config);return Z.fieldName=Y,Z}}function uW(){return{and:I8,between:xW,eq:y6,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,N8))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 T8(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 g6(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&&g6(Y,Y[H.relationTableTsKey],U,H.selection,G):U.map((E)=>g6(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 p6=new Map,D5=new Map,L5=Symbol("OriginError"),R2={};class q1 extends Promise{constructor(Y,Z,X,_,G={}){let $,W;super((H,Q)=>{$=H,W=Q});this.tagged=Array.isArray(Y.raw),this.strings=Y,this.args=Z,this.handler=X,this.canceller=_,this.options=G,this.state=null,this.statement=null,this.resolve=(H)=>(this.active=!1,$(H)),this.reject=(H)=>(this.active=!1,W(H)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[L5]=this.handler.debug?new Error:this.tagged&&qF(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(R2),{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(p6.has(Y))return p6.get(Y);let Z=Error.stackTraceLimit;return Error.stackTraceLimit=4,p6.set(Y,new Error),Error.stackTraceLimit=Z,p6.get(Y)}class N2 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 N2(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 d6{then(){M5()}catch(){M5()}finally(){M5()}}class q8 extends d6{constructor(Y){super();this.value=o6(Y)}}class r1 extends d6{constructor(Y,Z,X){super();this.value=Y,this.type=Z,this.array=X}}class c6 extends d6{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?I5(this.first,_):G.fn(this.first,this.rest,Z,X,_)}}function l6(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||u6(Y.value)]||Y.type||Y3(Y.value):Y.type):(Z.push(Y),u6(Y)))}var aW=X3(jF);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 c6?Z.build(Y,X,_,G):Z instanceof q1?w5(Z,X,_,G):Z instanceof q8?Z.value:Z&&Z[0]instanceof q1?Z.reduce(($,W)=>$+" "+w5(W,X,_,G),""):l6(Z,X,_,G)}function w5(Y,Z,X,_){return Y.fragment=!0,R5(Y,Y.strings[0],Y.args[0],Z,X,_)}function eW(Y,Z,X,_,G){return Y.map(($)=>"("+_.map((W)=>N5("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 m6(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 q1?w5($,X,_,G):$ instanceof q8?$.value:l6($,X,_,G))+" as "+o6(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:m6,as:m6,returning:m6,"\\(":m6,update(Y,Z,X,_,G){return(Z.length?Z.flat():Object.keys(Y)).map(($)=>o6(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"+eW(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: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 I5(Y,{transform:{column:Z}}){return Y.map((X)=>o6(Z.to?Z.to(X):X)).join(",")}var o6=function Y(Z){return'"'+Z.replace(/"/g,'""').replace(/\./g,'"."')+'"'},u6=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)+"}"},A5={i:0,char:null,str:"",quoted:!1,last:0},G3=function Y(Z,X,_){return A5.i=A5.last=0,$3(A5,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,"-"),K8=(Y)=>Y.replace(/([A-Z])/g,"_$1").toLowerCase(),B8=(Y)=>(Y.slice(0,1)+Y.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),C8=(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)};K8.column={to:K8};var K5={...p4};K5.column.to=K8;m4.column={from:m4};m4.value={from:T5(m4)};B8.column={to:B8};var B5={...m4};B5.column.to=B8;u4.column={from:u4};u4.value={from:T5(u4)};C8.column={to:C8};var C5={...u4};C5.column.to=C8;import W3 from"net";import gF from"tls";import j8 from"crypto";import q5 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 R1=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 i6(Z),z0.i+=e0.write(Y,z0.i,Z,"utf8"),z0},i16(Y){return i6(2),e0.writeUInt16BE(Y,z0.i),z0.i+=2,z0},i32(Y,Z){if(Z||Z===0)return e0.writeUInt32BE(Y,Z),z0;return i6(4),e0.writeUInt32BE(Y,z0.i),z0.i+=4,z0},z(Y){return i6(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 i6(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 P5=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(),I2=()=>{},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=I2,onend:_=I2,onclose:G=I2}={}){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=R1(),N=pF++,q={pid:null,secret:null},C=S5(HY,Y.idle_timeout),p=S5(HY,Y.max_lifetime),s=S5(x3,Y.connect_timeout),K=null,a,m=new d4,e=Buffer.alloc(0),F0=Y.fetch_types,f0={},J1={},n1=Math.random().toString(36).slice(2),B=1,u=0,G0=0,K0=0,h0=0,t=0,Q0=0,P0=0,B0=null,w0=null,i0=!1,D0=null,j1=null,c0=null,U4=null,k0=null,R0=null,S1=null,g1=null,v=null,C2=null,r0={queue:Z.closed,idleTimer:C,connect(z){c0=z,GX()},terminate:j2,execute:q2,cancel:j3,end:HY,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",$X),z.on("drain",XX),z}async function j3({pid:z,secret:D},l,$0){try{a=c().i32(16).i32(80877102).i32(z).i32(D).end(16),await _X(),K.once("error",$0),K.once("close",l)}catch(q0){$0(q0)}}function q2(z){if(i0)return b8(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([e5(z),J3]):z.prepare?z.prepared?k8(z):Buffer.concat([e5(z),k8(z)]):P3(z)}function e5(z){return Buffer.concat([HX(z.statement.string,z.parameters,z.statement.types,z.statement.name),LH("S",z.statement.name)])}function k8(z){return Buffer.concat([DH(z.parameters,z.statement.types,z.statement.name,z.cursorName),z.cursorFn?JX("",z.cursorRows):uF])}function P3(z){return Buffer.concat([HX(z.statement.string,z.parameters,z.statement.types),dF,k8(z)])}function v3(z){let D=[],l=[],$0=R5(z,z.strings[0],z.args[0],D,l,Y);!z.tagged&&z.args.forEach((q0)=>l6(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 J1[z.signature],z.parameters=z.parameters||D,z.prepared=z.prepare&&z.signature in J1,z.describeFirst=z.onlyDescribe||D.length&&!z.prepared,z.statement=z.prepared?J1[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 YX(D);return w0===null&&(w0=setImmediate(YX)),!0}function YX(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 ZX(){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",$X),K.on("drain",XX)}function XX(){!v&&X(r0)}function WY(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 _X(){if(i0=!1,f0={},K||(K=await q3()),!K)return;if(s.start(),Y.socket)return $?ZX():o4();if(K.on("connect",$?ZX: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 GX(){setTimeout(_X,u?u+Q0-H3.now():0)}function o4(){try{J1={},F0=Y.fetch_types,n1=Math.random().toString(36).slice(2),B=1,p.start(),K.on("data",WY),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)b8(I.shift(),z)}function p1(z){k0&&(k0.destroy(z),k0=null),v&&b8(v,z),c0&&(b8(c0,z),c0=null)}function b8(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/,`
63
+ `),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 HY(){return U4||(!r0.reserved&&_(r0),!r0.reserved&&!c0&&!v&&I.length===0?(j2(),new Promise((z)=>K&&K.readyState!=="closed"?K.once("close",z):z())):U4=new Promise((z)=>S1=z))}function j2(){if(i0=!0,k0||v||c0||I.length)i4(x0.connection("CONNECTION_DESTROYED",Y));if(clearImmediate(w0),K)K.removeListener("data",WY),K.removeListener("connect",o4),K.readyState==="open"&&K.end(c().X().end());S1&&(S1(),U4=S1=null)}async function $X(z){if(e=Buffer.alloc(0),G0=0,D0=null,clearImmediate(w0),K.removeListener("data",WY),K.removeListener("connect",o4),C.cancel(),p.cancel(),s.cancel(),K.removeAllListeners(),K=null,c0)return GX();!z&&(v||I.length)&&i4(x0.connection("CONNECTION_CLOSED",Y,K)),u=H3.now(),z&&Y.shared.retries++,Q0=(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?WX: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(j1||m),v=j1=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 j2()}if(F0)return c0.reserve&&(c0=null),s3();c0&&!c0.reserve&&q2(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?j2():(r0.reserved=null,X(r0)):r0.reserved():U4?j2():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(C2&&(C2(),C2=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 WX();if(v.cursorFn)m.count&&v.cursorFn(m),l0(B4);v.resolve(m)}function g3(){v.parsing=!1}function WX(){!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&&(J1[v.signature]=v.statement),v.describeFirst&&!v.onlyDescribe&&(l0(k8(v)),v.describeFirst=!1)}function m3(z){if(m.command)j1=j1||[m],j1.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:I2)(z,D)}async function d3(){let z=await JY();l0(c().p().str(z).z(1).end())}async function c3(z){let D="md5"+await Q3(Buffer.concat([Buffer.from(await Q3(await JY()+H)),z.subarray(9)]));l0(c().p().str(D).z(1).end())}async function l3(){g1=(await j8.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 j8.pbkdf2Sync(await JY(),Buffer.from(D.s,"base64"),parseInt(D.i),32,"sha256"),$0=await r6(l,"Client Key"),q0="n=*,r="+g1+",r="+D.r+",s="+D.s+",i="+D.i+",c=biws,r="+D.r;B0=(await r6(await r6(l,"Server Key"),q0)).toString("base64");let n0="c=biws,r="+D.r+",p="+iF($0,Buffer.from(await r6(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 JY(){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 q1([`
64
64
  select b.oid, b.typarray
65
65
  from pg_catalog.pg_type a
66
66
  left join pg_catalog.pg_type b on b.oid = a.typelem
67
67
  where a.typcategory = 'A'
68
68
  group by b.oid, b.typarray
69
69
  order by b.oid
70
- `],[],j8)).forEach(({oid:L,typarray:l})=>e$(L,l))}function e$(F,L){if(!!Y.parsers[L]&&!!Y.serializers[L])return;let l=Y.parsers[F];Y.shared.typeArrayMap[F]=L,Y.parsers[L]=(W0)=>$$(W0,l,L),Y.parsers[L].array=!0,Y.serializers[L]=(W0)=>W$(W0,Y.serializers[F],Y,L)}function YH(F,L){return F==="read-write"&&L.default_transaction_read_only==="on"||F==="read-only"&&L.default_transaction_read_only==="off"||F==="primary"&&L.in_hot_standby==="on"||F==="standby"&&L.in_hot_standby==="off"||F==="prefer-standby"&&L.in_hot_standby==="off"&&Y.host[f0]}function ZH(){let F=new j1([`
70
+ `],[],q2)).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 q1([`
71
71
  show transaction_read_only;
72
72
  select pg_catalog.pg_is_in_recovery()
73
- `],[],j8,null,{simple:!0});F.resolve=([[L],[l]])=>{h0.default_transaction_read_only=L.transaction_read_only,h0.in_hot_standby=l.pg_is_in_recovery?"on":"off"},F.execute()}function XH(F){v&&(v.cursorFn||v.describeFirst)&&i0(T4);let L=x0.postgres(P5(F));v&&v.retried?m1(v.retried):v&&v.prepared&&lU.has(L.routine)?_H(v,L):m1(L)}function _H(F,L){delete J1[F.signature],F.retried=L,j8(F)}function GH(F){if(!R)return;let L=9;while(F[L++]!==0);R(F.toString("utf8",9,L-1),F.toString("utf8",L,F.length-1))}async function WH(){try{let F=await Promise.resolve(v.cursorFn(m));S0=0,F===N8?i0(wH(v.portal)):(m=new d4,i0(QX("",v.cursorRows)))}catch(F){i0(T4),v.reject(F)}}function $H(){m.count&&v.cursorFn(m),v.resolve(m)}function HH(){b0=new j5.Writable({autoDestroy:!0,write(F,L,l){C.write(c().d().raw(F).end(),l)},destroy(F,L){L(F),C.write(c().f().str(F+c.N).end()),b0=null},final(F){C.write(c().c().end()),K8=F}}),v.resolve(b0)}function JH(){b0=new j5.Readable({read(){C.resume()}}),v.resolve(b0)}function QH(){b0=new j5.Duplex({autoDestroy:!0,read(){C.resume()},write(F,L,l){C.write(c().d().raw(F).end(),l)},destroy(F,L){L(F),C.write(c().f().str(F+c.N).end()),b0=null},final(F){C.write(c().c().end()),K8=F}}),v.resolve(b0)}function zH(F){b0&&(b0.push(F.subarray(5))||C.pause())}function FH(){b0&&b0.push(null),b0=null}function UH(F){V?V(P5(F)):console.log(P5(F))}function EH(){}function OH(){m1(x0.notSupported("FunctionCallResponse"))}function DH(){m1(x0.notSupported("NegotiateProtocolVersion"))}function LH(F){console.error("Postgres.js : Unknown Message:",F[0])}function VH(F,L){console.error("Postgres.js : Unknown Auth:",L)}function MH(F,L,l="",W0=""){let K0,s0;return c().B().str(W0+c.N).str(l+c.N).i16(0).i16(F.length),F.forEach((Z1,F4)=>{if(Z1===null)return c.i32(4294967295);s0=L[F4],F[F4]=Z1=s0 in Y.serializers?Y.serializers[s0](Z1):""+Z1,K0=c.i,c.inc(4).str(Z1).i32(c.i-K0-4,K0)}),c.i16(0),c.end()}function JX(F,L,l,W0=""){return c().P().str(W0+c.N).str(F+c.N).i16(L.length),L.forEach((K0,s0)=>c.i32(l[s0]||0)),c.end()}function AH(F,L=""){return c().D().str(F).str(L+c.N).end()}function QX(F="",L=0){return Buffer.concat([c().E().str(F+c.N).i32(L).end(),z$])}function wH(F=""){return Buffer.concat([c().C().str("P").str(F+c.N).end(),c().S().end()])}function RH(){return t||c().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:H,database:z,client_encoding:"UTF8"},Y.connection)).filter(([,F])=>F).map(([F,L])=>F+c.N+L).join(c.N)).z(2).end(0)}}function P5(Y){let Z={},X=5;for(let _=5;_<Y.length-1;_++)if(Y[_]===0)Z[iU[Y[X]]]=Y.toString("utf8",X+1,_),X=_+1;return Z}function F$(Y){return j2.createHash("md5").update(Y).digest("hex")}function n6(Y,Z){return j2.createHmac("sha256",Y).update(Z).digest()}function oU(Y){return j2.createHash("sha256").update(Y).digest()}function nU(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:B8,start:B8};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 E$=()=>{};function x5(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;$=null,G.pid=G.secret=void 0,D(await V(Q,_,Z.publications)),X.forEach((A)=>A.forEach(({onsubscribe:g})=>g()))},no_subscribe:!0}),J=Q.end,z=Q.close;return Q.end=async()=>{return H=!0,$&&await new Promise((A)=>($.once("close",A),$.end())),J()},Q.close=async()=>{return $&&await new Promise((A)=>($.once("close",A),$.end())),z()},E;async function E(A,g,b=E$,f=E$){if(A=aU(A),!W)W=V(Q,_,Z.publications);let h={fn:g,onsubscribe:b},I=X.has(A)?X.get(A).add(h):X.set(A,new Set([h])).get(A),N=()=>{I.delete(h),I.size===0&&X.delete(A)};return W.then((K)=>{return D(K),b(),$&&$.on("error",f),{unsubscribe:N,state:G,sql:Q}})}function D(A){$=A.stream,G.pid=A.state.pid,G.secret=A.state.secret}async function V(A,g,b){if(!b)throw new Error("Missing publication names");let f=await A.unsafe(`CREATE_REPLICATION_SLOT ${g} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[h]=f,I=await A.unsafe(`START_REPLICATION SLOT ${g} LOGICAL ${h.consistent_point} (proto_version '1', publication_names '${b}')`).writable(),N={lsn:Buffer.concat(h.consistent_point.split("/").map((C)=>Buffer.from(("00000000"+C).slice(-8),"hex")))};return I.on("data",q),I.on("error",K),I.on("close",A.close),{stream:I,state:f.state};function K(C){console.error("Unexpected error during logical streaming - reconnecting",C)}function q(C){if(C[0]===119)sU(C.subarray(25),N,A.options.parsers,p,Z.transform);else if(C[0]===107&&C[17])N.lsn=C.subarray(1,9),s()}function p(C,t){let m=t.relation.schema+"."+t.relation.table;R("*",C,t),R("*:"+m,C,t),t.relation.keys.length&&R("*:"+m+"="+t.relation.keys.map((e)=>C[e.name]),C,t),R(t.command,C,t),R(t.command+":"+m,C,t),t.relation.keys.length&&R(t.command+":"+m+"="+t.relation.keys.map((e)=>C[e.name]),C,t)}function s(){let C=Buffer.alloc(34);C[0]=114,C.fill(N.lsn,1),C.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),I.write(C)}}function R(A,g,b){X.has(A)&&X.get(A).forEach(({fn:f})=>f(g,b,A))}}function rU(Y){return new Date(Date.UTC(2000,0,1)+Number(Y/BigInt(1000)))}function sU(Y,Z,X,_,G){let W=($,[H,Q])=>($[H.charCodeAt(0)]=Q,$);Object.entries({R:($)=>{let H=1,Q=Z[$.readUInt32BE(H)]={schema:$.toString("utf8",H+=4,H=$.indexOf(0,H))||"pg_catalog",table:$.toString("utf8",H+1,H=$.indexOf(0,H+1)),columns:Array($.readUInt16BE(H+=2)),keys:[]};H+=2;let J=0,z;while(H<$.length)z=Q.columns[J++]={key:$[H++],name:G.column.from?G.column.from($.toString("utf8",H,H=$.indexOf(0,H))):$.toString("utf8",H,H=$.indexOf(0,H)),type:$.readUInt32BE(H+=1),parser:X[$.readUInt32BE(H)],atttypmod:$.readUInt32BE(H+=4)},z.key&&Q.keys.push(z),H+=4},Y:()=>{},O:()=>{},B:($)=>{Z.date=rU($.readBigInt64BE(9)),Z.lsn=$.subarray(1,9)},I:($)=>{let H=1,Q=Z[$.readUInt32BE(H)],{row:J}=r6($,Q.columns,H+=7,G);_(J,{command:"insert",relation:Q})},D:($)=>{let H=1,Q=Z[$.readUInt32BE(H)];H+=4;let J=$[H]===75;_(J||$[H]===79?r6($,Q.columns,H+=3,G).row:null,{command:"delete",relation:Q,key:J})},U:($)=>{let H=1,Q=Z[$.readUInt32BE(H)];H+=4;let J=$[H]===75,z=J||$[H]===79?r6($,Q.columns,H+=3,G):null;z&&(H=z.i);let{row:E}=r6($,Q.columns,H+3,G);_(E,{command:"update",relation:Q,key:J,old:z&&z.row})},T:()=>{},C:()=>{}}).reduce(W,{})[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++],W=Z[Q],$=G===110?null:G===117?void 0:W.parser===void 0?Y.toString("utf8",X+4,X+=4+Y.readUInt32BE(X)):W.parser.array===!0?W.parser(Y.toString("utf8",X+5,X+=4+Y.readUInt32BE(X))):W.parser(Y.toString("utf8",X+4,X+=4+Y.readUInt32BE(X))),_.raw?H[Q]=_.raw===!0?$:_.value.from?_.value.from($,W):$:H[W.name]=_.value.from?_.value.from($,W):$;return{i:X,row:_.row.from?_.row.from(H):H}}function aU(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 O$ from"stream";function h5(Y,Z,X=393216){return new Promise(async(_,G)=>{await Y.begin(async(W)=>{let $;!Z&&([{oid:Z}]=await W`select lo_creat(-1) as oid`);let[{fd:H}]=await W`select lo_open(${Z}, ${X}) as fd`,Q={writable:z,readable:J,close:()=>W`select lo_close(${H})`.then($),tell:()=>W`select lo_tell64(${H})`,read:(E)=>W`select loread(${H}, ${E}) as data`,write:(E)=>W`select lowrite(${H}, ${E})`,truncate:(E)=>W`select lo_truncate64(${H}, ${E})`,seek:(E,D=0)=>W`select lo_lseek64(${H}, ${E}, ${D})`,size:()=>W`
73
+ `],[],q2,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(j5(z));v&&v.retried?p1(v.retried):v&&v.prepared&&cF.has(D.routine)?ZH(v,D):p1(D)}function ZH(z,D){delete J1[z.signature],z.retried=D,q2(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===R2?l0(MH(v.portal)):(m=new d4,l0(JX("",v.cursorRows)))}catch(z){l0(B4),v.reject(z)}}function GH(){m.count&&v.cursorFn(m),v.resolve(m)}function $H(){k0=new q5.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()),C2=z}}),v.resolve(k0)}function WH(){k0=new q5.Readable({read(){K.resume()}}),v.resolve(k0)}function HH(){k0=new q5.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()),C2=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(j5(z)):console.log(j5(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 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 LH(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(),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 j5(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 j8.createHash("md5").update(Y).digest("hex")}function r6(Y,Z){return j8.createHmac("sha256",Y).update(Z).digest()}function oF(Y){return j8.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 S5(Y,Z){if(Z=typeof Z==="function"?Z():Z,!Z)return{cancel:I2,start:I2};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 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: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}=n6(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?n6(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?n6(W,Q.columns,H+=3,G):null;U&&(H=U.i);let{row:E}=n6(W,Q.columns,H+3,G);_(E,{command:"update",relation:Q,key:J,old:U&&U.row})},T:()=>{},C:()=>{}}).reduce($,{})[Y[0]](Y)}function n6(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 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:()=>$`
74
74
  select
75
75
  lo_lseek64(${H}, location, 0) as position,
76
76
  seek.size
@@ -80,10 +80,10 @@ params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrac
80
80
  tell.location
81
81
  from (select lo_tell64($1) as location) tell
82
82
  ) seek
83
- `};return _(Q),new Promise(async(E)=>$=E);async function J({highWaterMark:E=16384,start:D=0,end:V=1/0}={}){let R=V-D;return D&&await Q.seek(D),new O$.Readable({highWaterMark:E,async read(A){let g=A>R?A-R:A;R-=A;let[{data:b}]=await Q.read(g);if(this.push(b),b.length<A)this.push(null)}})}async function z({highWaterMark:E=16384,start:D=0}={}){return D&&await Q.seek(D),new O$.Writable({highWaterMark:E,write(V,R,A){Q.write(V).then(()=>A(),A)}})}}).catch(G)})}Object.assign(s6,{PostgresError:I8,toPascal:m4,pascal:q5,toCamel:p4,camel:T5,toKebab:u4,kebab:K5,fromPascal:T2,fromCamel:C2,fromKebab:q2,BigInt:{to:20,from:[20],parse:(Y)=>BigInt(Y),serialize:(Y)=>Y.toString()}});var C8=s6;function s6(Y,Z){let X=YE(Y,Z),_=X.no_subscribe||x5(s6,{...X}),G=!1,W=R1(),$=R1(),H=R1(),Q=R1(),J=R1(),z=R1(),E=R1(),D=R1(),V={connecting:$,reserved:H,closed:Q,ended:J,open:z,busy:E,full:D},R=[...Array(X.max)].map(()=>v5(X,V,{onopen:J1,onend:h0,onclose:r1})),A=g(p);return Object.assign(A,{get parameters(){return X.parameters},largeObject:h5.bind(null,A),subscribe:_,CLOSE:N8,END:N8,PostgresError:I8,options:X,reserve:h,listen:b,begin:I,close:m,end:t}),A;function g(T){return T.debug=X.debug,Object.entries(X.types).reduce((a,[Q0,S0])=>{return a[Q0]=(T0)=>new n1(T0,S0.to),a},u),Object.assign(G0,{types:u,typed:u,unsafe:C0,notify:f,array:q,json:K,file:f0}),G0;function u(a,Q0){return new n1(a,Q0)}function G0(a,...Q0){return a&&Array.isArray(a.raw)?new j1(a,Q0,T,C):typeof a==="string"&&!Q0.length?new K2(X.transform.column.to?X.transform.column.to(a):a):new c6(a,Q0)}function C0(a,Q0=[],S0={}){return arguments.length===2&&!Array.isArray(Q0)&&(S0=Q0,Q0=[]),new j1([a],Q0,T,C,{prepare:!1,...S0,simple:"simple"in S0?S0.simple:Q0.length===0})}function f0(a,Q0=[],S0={}){return arguments.length===2&&!Array.isArray(Q0)&&(S0=Q0,Q0=[]),new j1([],Q0,(w0)=>{eU.readFile(a,"utf8",(n0,L0)=>{if(n0)return w0.reject(n0);w0.strings=[L0],T(w0)})},C,{...S0,simple:"simple"in S0?S0.simple:Q0.length===0})}}async function b(T,u,G0){let C0={fn:u,onlisten:G0},f0=b.sql||(b.sql=s6({...X,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(b.channels).forEach(([w0,{listeners:n0}])=>{delete b.channels[w0],Promise.all(n0.map((L0)=>b(w0,L0.fn,L0.onlisten).catch(()=>{})))})},onnotify(w0,n0){w0 in b.channels&&b.channels[w0].listeners.forEach((L0)=>L0.fn(n0))}})),a=b.channels||(b.channels={});if(T in a){a[T].listeners.push(C0);let w0=await a[T].result;return C0.onlisten&&C0.onlisten(),{state:w0.state,unlisten:T0}}a[T]={result:f0`listen ${f0.unsafe('"'+T.replace(/"/g,'""')+'"')}`,listeners:[C0]};let S0=await a[T].result;return C0.onlisten&&C0.onlisten(),{state:S0.state,unlisten:T0};async function T0(){if(T in a===!1)return;if(a[T].listeners=a[T].listeners.filter((w0)=>w0!==C0),a[T].listeners.length)return;return delete a[T],f0`unlisten ${f0.unsafe('"'+T.replace(/"/g,'""')+'"')}`}}async function f(T,u){return await A`select pg_notify(${T}, ${""+u})`}async function h(){let T=R1(),u=z.length?z.shift():await new Promise((f0,a)=>{let Q0={reserve:f0,reject:a};W.push(Q0),Q.length&&U0(Q.shift(),Q0)});N(u,H),u.reserved=()=>T.length?u.execute(T.shift()):N(u,H),u.reserved.release=!0;let G0=g(C0);return G0.release=()=>{u.reserved=null,J1(u)},G0;function C0(f0){u.queue===D?T.push(f0):u.execute(f0)||N(u,D)}}async function I(T,u){!u&&(u=T,T="");let G0=R1(),C0=0,f0,a=null;try{return await A.unsafe("begin "+T.replace(/[^a-z ]/ig,""),[],{onexecute:S0}).execute(),await Promise.race([Q0(f0,u),new Promise((T0,w0)=>f0.onclose=w0)])}catch(T0){throw T0}async function Q0(T0,w0,n0){let L0=g(b0);L0.savepoint=z4,L0.prepare=(R0)=>a=R0.replace(/[^a-z0-9$-_. ]/gi);let P1,l0;n0&&await L0`savepoint ${L0(n0)}`;try{if(l0=await new Promise((R0,S1)=>{let p1=w0(L0);Promise.resolve(Array.isArray(p1)?Promise.all(p1):p1).then(R0,S1)}),P1)throw P1}catch(R0){throw await(n0?L0`rollback to ${L0(n0)}`:L0`rollback`),R0 instanceof I8&&R0.code==="25P02"&&P1||R0}if(!n0)a?await L0`prepare transaction '${L0.unsafe(a)}'`:await L0`commit`;return l0;function z4(R0,S1){if(R0&&Array.isArray(R0.raw))return z4((p1)=>p1.apply(p1,arguments));return arguments.length===1&&(S1=R0,R0=null),Q0(T0,S1,"s"+C0+++(R0?"_"+R0:""))}function b0(R0){R0.catch((S1)=>P1||(P1=S1)),T0.queue===D?G0.push(R0):T0.execute(R0)||N(T0,D)}}function S0(T0){f0=T0,N(T0,H),T0.reserved=()=>G0.length?T0.execute(G0.shift()):N(T0,H)}}function N(T,u){return T.queue.remove(T),u.push(T),T.queue=u,u===z?T.idleTimer.start():T.idleTimer.cancel(),T}function K(T){return new n1(T,3802)}function q(T,u){if(!Array.isArray(T))return q(Array.from(arguments));return new n1(T,u||(T.length?u6(T)||25:0),X.shared.typeArrayMap)}function p(T){if(G)return T.reject(x0.connection("CONNECTION_ENDED",X,X));if(z.length)return s(z.shift(),T);if(Q.length)return U0(Q.shift(),T);E.length?s(E.shift(),T):W.push(T)}function s(T,u){return T.execute(u)?N(T,E):N(T,D)}function C(T){return new Promise((u,G0)=>{T.state?T.active?v5(X).cancel(T.state,u,G0):T.cancelled={resolve:u,reject:G0}:(W.remove(T),T.cancelled=!0,T.reject(x0.generic("57014","canceling statement due to user request")),u())})}async function t({timeout:T=null}={}){if(G)return G;await 1;let u;return G=Promise.race([new Promise((G0)=>T!==null&&(u=setTimeout(e,T*1000,G0))),Promise.all(R.map((G0)=>G0.end()).concat(b.sql?b.sql.end({timeout:0}):[],_.sql?_.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(u))}async function m(){await Promise.all(R.map((T)=>T.end()))}async function e(T){await Promise.all(R.map((u)=>u.terminate()));while(W.length)W.shift().reject(x0.connection("CONNECTION_DESTROYED",X));T()}function U0(T,u){return N(T,$),T.connect(u),T}function h0(T){N(T,J)}function J1(T){if(W.length===0)return N(T,z);let u=Math.ceil(W.length/($.length+1)),G0=!0;while(G0&&W.length&&u-- >0){let C0=W.shift();if(C0.reserve)return C0.reserve(T);G0=T.execute(C0)}G0?N(T,E):N(T,D)}function r1(T,u){N(T,Q),T.reserved=null,T.onclose&&(T.onclose(u),T.onclose=null),X.onclose&&X.onclose(T.id),W.length&&U0(T,W.shift())}}function YE(Y,Z){if(Y&&Y.shared)return Y;let X=process.env,_=(!Y||typeof Y==="string"?Z:Y)||{},{url:G,multihost:W}=WE(Y),$=[...G.searchParams].reduce((D,[V,R])=>(D[V]=R,D),{}),H=_.hostname||_.host||W||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),$.sslmode&&($.ssl=$.sslmode,delete $.sslmode),"timeout"in _&&(console.log("The timeout option is deprecated, use idle_timeout instead"),_.idle_timeout=_.timeout),$.sslrootcert==="system"&&($.ssl="verify-full");let z=["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:XE,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((D)=>D.split(":")[0]),port:Array.isArray(Q)?Q:H.split(",").map((D)=>parseInt(D.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((D,[V,R])=>{let A=V in _?_[V]:(V in $)?$[V]==="disable"||$[V]==="false"?!1:$[V]:X["PG"+V.toUpperCase()]||R;return D[V]=typeof A==="string"&&z.includes(V)?+A:A,D},{}),connection:{application_name:X.PGAPPNAME||"postgres.js",..._.connection,...Object.entries($).reduce((D,[V,R])=>((V in E)||(D[V]=R),D),{})},types:_.types||{},target_session_attrs:ZE(_,G,X),onnotice:_.onnotice,onnotify:_.onnotify,onclose:_.onclose,onparameter:_.onparameter,socket:_.socket,transform:GE(_.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},..._$(_.types)}}function ZE(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 XE(Y){return(0.5+Math.random()/2)*Math.min(3**Y/100,20)}function _E(){return 60*(30+Math.random()*30)}function GE(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 WE(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 tU.userInfo().username}catch(Y){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class j0{static[U]="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 _=(M(Y,P0)?Y._.selectedFields:M(Y,D1)?Y[A0].selectedFields:Y)[Z];if(M(_,x.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!_.isSelectionField)return _.sql;let G=_.clone();return G.isSelectionField=!0,G}if(M(_,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(M(_,O0)){if(this.config.alias)return new Proxy(_,new R8(new Proxy(_.table,new V2(this.config.alias,this.config.replaceOriginalName??!1))));return _}if(typeof _!=="object"||_===null)return _;return new Proxy(_,new j0(this.config))}}class D${constructor(Y,Z){this.unique=Y,this.name=Z}static[U]="PgIndexBuilderOn";on(...Y){return new a6(Y.map((Z)=>{if(M(Z,x))return Z;Z=Z;let X=new E2(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 a6(Y.map((Z)=>{if(M(Z,x))return Z;Z=Z;let X=new E2(Z.name,!!Z.keyAsName,Z.columnType,Z.indexConfig);return Z.indexConfig=Z.defaultConfig,X}),this.unique,!0,this.name)}using(Y,...Z){return new a6(Z.map((X)=>{if(M(X,x))return X;X=X;let _=new E2(X.name,!!X.keyAsName,X.columnType,X.indexConfig);return X.indexConfig=JSON.parse(JSON.stringify(X.defaultConfig)),_}),this.unique,!0,this.name,Y)}}class a6{static[U]="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 L$(this.config,Y)}}class L${static[U]="PgIndex";config;constructor(Y,Z){this.config={...Y,table:Z}}}function f5(Y){return new D$(!0,Y)}function HE(Y){return(Y.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((X)=>X.toLowerCase()).join("_")}function JE(Y){return(Y.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((X,_,G)=>{let W=G===0?_.toLowerCase():`${_[0].toUpperCase()}${_.slice(1)}`;return X+W},"")}function QE(Y){return Y}class b5{static[U]="CasingCache";cache={};cachedTables={};convert;constructor(Y){this.convert=Y==="snake_case"?HE:Y==="camelCase"?JE:QE}getColumnCasing(Y){if(!Y.keyAsName)return Y.name;let Z=Y.table[P.Symbol.Schema]??"public",X=Y.table[P.Symbol.OriginalName],_=`${Z}.${X}.${Y.name}`;if(!this.cache[_])this.cacheTable(Y.table);return this.cache[_]}cacheTable(Y){let Z=Y[P.Symbol.Schema]??"public",X=Y[P.Symbol.OriginalName],_=`${Z}.${X}`;if(!this.cachedTables[_]){for(let G of Object.values(Y[P.Symbol.Columns])){let W=`${_}.${G.name}`;this.cache[W]=this.convert(G.name)}this.cachedTables[_]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class P2 extends D1{static[U]="PgViewBase"}class c4{static[U]="PgDialect";casing;constructor(Y){this.casing=new b5(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",W=O`
83
+ `};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(s6,{PostgresError:N2,toPascal:m4,pascal:B5,toCamel:p4,camel:K5,toKebab:u4,kebab:C5,fromPascal:B8,fromCamel:K8,fromKebab:C8,BigInt:{to:20,from:[20],parse:(Y)=>BigInt(Y),serialize:(Y)=>Y.toString()}});var T2=s6;function s6(Y,Z){let X=eF(Y,Z),_=X.no_subscribe||v5(s6,{...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},R=[...Array(X.max)].map(()=>P5(X,L,{onopen:J1,onend:f0,onclose:n1})),M=y(p);return Object.assign(M,{get parameters(){return X.parameters},largeObject:x5.bind(null,M),subscribe:_,CLOSE:R2,END:R2,PostgresError:N2,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,[Q0,P0])=>{return t[Q0]=(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,Q0){return new r1(t,Q0)}function G0(t,...Q0){return t&&Array.isArray(t.raw)?new q1(t,Q0,B,K):typeof t==="string"&&!Q0.length?new q8(X.transform.column.to?X.transform.column.to(t):t):new c6(t,Q0)}function K0(t,Q0=[],P0={}){return arguments.length===2&&!Array.isArray(Q0)&&(P0=Q0,Q0=[]),new q1([t],Q0,B,K,{prepare:!1,...P0,simple:"simple"in P0?P0.simple:Q0.length===0})}function h0(t,Q0=[],P0={}){return arguments.length===2&&!Array.isArray(Q0)&&(P0=Q0,Q0=[]),new q1([],Q0,(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:Q0.length===0})}}async function k(B,u,G0){let K0={fn:u,onlisten:G0},h0=k.sql||(k.sql=s6({...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=R1(),u=U.length?U.shift():await new Promise((h0,t)=>{let Q0={reserve:h0,reject:t};$.push(Q0),Q.length&&F0(Q.shift(),Q0)});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,J1(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=R1(),K0=0,h0,t=null;try{return await M.unsafe("begin "+B.replace(/[^a-z ]/ig,""),[],{onexecute:P0}).execute(),await Promise.race([Q0(h0,u),new Promise((B0,w0)=>h0.onclose=w0)])}catch(B0){throw B0}async function Q0(B0,w0,i0){let D0=y(k0);D0.savepoint=U4,D0.prepare=(R0)=>t=R0.replace(/[^a-z0-9$-_. ]/gi);let j1,c0;i0&&await D0`savepoint ${D0(i0)}`;try{if(c0=await new Promise((R0,S1)=>{let g1=w0(D0);Promise.resolve(Array.isArray(g1)?Promise.all(g1):g1).then(R0,S1)}),j1)throw j1}catch(R0){throw await(i0?D0`rollback to ${D0(i0)}`:D0`rollback`),R0 instanceof N2&&R0.code==="25P02"&&j1||R0}if(!i0)t?await D0`prepare transaction '${D0.unsafe(t)}'`:await D0`commit`;return c0;function U4(R0,S1){if(R0&&Array.isArray(R0.raw))return U4((g1)=>g1.apply(g1,arguments));return arguments.length===1&&(S1=R0,R0=null),Q0(B0,S1,"s"+K0+++(R0?"_"+R0:""))}function k0(R0){R0.catch((S1)=>j1||(j1=S1)),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?u6(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?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 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 J1(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 w2(new Proxy(_.table,new L8(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 t6(Y.map((Z)=>{if(A(Z,x))return Z;Z=Z;let X=new E8(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 t6(Y.map((Z)=>{if(A(Z,x))return Z;Z=Z;let X=new E8(Z.name,!!Z.keyAsName,Z.columnType,Z.indexConfig);return Z.indexConfig=Z.defaultConfig,X}),this.unique,!0,this.name)}using(Y,...Z){return new t6(Z.map((X)=>{if(A(X,x))return X;X=X;let _=new E8(X.name,!!X.keyAsName,X.columnType,X.indexConfig);return X.indexConfig=JSON.parse(JSON.stringify(X.defaultConfig)),_}),this.unique,!0,this.name,Y)}}class t6{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 f5(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 h5{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 S8 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`
84
84
  CREATE TABLE IF NOT EXISTS ${O.identifier(G)}.${O.identifier(_)} (
85
85
  id SERIAL PRIMARY KEY,
86
86
  hash text NOT NULL,
87
87
  created_at bigint
88
88
  )
89
- `;await Z.execute(O`CREATE SCHEMA IF NOT EXISTS ${O.identifier(G)}`),await Z.execute(W);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 z of J.sql)await Q.execute(O.raw(z));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(_),W=X?O` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,$=Z?O` where ${Z}`:void 0;return O`${G}delete from ${Y}${$}${W}`}buildUpdateSet(Y,Z){let X=Y[P.Symbol.Columns],_=Object.keys(X).filter((W)=>Z[W]!==void 0||X[W]?.onUpdateFn!==void 0),G=_.length;return O.join(_.flatMap((W,$)=>{let H=X[W],Q=Z[W]??O.param(H.onUpdateFn(),H),J=O`${O.identifier(this.casing.getColumnCasing(H))} = ${Q}`;if($<G-1)return[J,O.raw(", ")];return[J]}))}buildUpdateQuery({table:Y,set:Z,where:X,returning:_,withList:G,from:W,joins:$}){let H=this.buildWithCTE(G),Q=Y[u0.Symbol.Name],J=Y[u0.Symbol.Schema],z=Y[u0.Symbol.OriginalName],E=Q===z?void 0:Q,D=O`${J?O`${O.identifier(J)}.`:void 0}${O.identifier(z)}${E&&O` ${O.identifier(E)}`}`,V=this.buildUpdateSet(Y,Z),R=W&&O.join([O.raw(" from "),this.buildFromTable(W)]),A=this.buildJoins($),g=_?O` returning ${this.buildSelection(_,{isSingleTable:!W})}`:void 0,b=X?O` where ${X}`:void 0;return O`${H}update ${D} set ${V}${R}${A}${b}${g}`}buildSelection(Y,{isSingleTable:Z=!1}={}){let X=Y.length,_=Y.flatMap(({field:G},W)=>{let $=[];if(M(G,x.Aliased)&&G.isSelectionField)$.push(O.identifier(G.fieldAlias));else if(M(G,x.Aliased)||M(G,x)){let H=M(G,x.Aliased)?G.sql:G;if(Z)$.push(new x(H.queryChunks.map((Q)=>{if(M(Q,j))return O.identifier(this.casing.getColumnCasing(Q));return Q})));else $.push(H);if(M(G,x.Aliased))$.push(O` as ${O.identifier(G.fieldAlias)}`)}else if(M(G,O0))if(Z)$.push(O.identifier(this.casing.getColumnCasing(G)));else $.push(G);if(W<X-1)$.push(O`, `);return $});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,W=_.lateral?O` lateral`:void 0,$=_.on?O` on ${_.on}`:void 0;if(M(G,u0)){let H=G[u0.Symbol.Name],Q=G[u0.Symbol.Schema],J=G[u0.Symbol.OriginalName],z=H===J?void 0:_.alias;Z.push(O`${O.raw(_.joinType)} join${W} ${Q?O`${O.identifier(Q)}.`:void 0}${O.identifier(J)}${z&&O` ${O.identifier(z)}`}${$}`)}else if(M(G,D1)){let H=G[A0].name,Q=G[A0].schema,J=G[A0].originalName,z=H===J?void 0:_.alias;Z.push(O`${O.raw(_.joinType)} join${W} ${Q?O`${O.identifier(Q)}.`:void 0}${O.identifier(J)}${z&&O` ${O.identifier(z)}`}${$}`)}else Z.push(O`${O.raw(_.joinType)} join${W} ${G}${$}`);if(X<Y.length-1)Z.push(O` `)}return O.join(Z)}buildFromTable(Y){if(M(Y,P)&&Y[P.Symbol.IsAlias]){let Z=O`${O.identifier(Y[P.Symbol.OriginalName])}`;if(Y[P.Symbol.Schema])Z=O`${O.identifier(Y[P.Symbol.Schema])}.${Z}`;return O`${Z} ${O.identifier(Y[P.Symbol.Name])}`}return Y}buildSelectQuery({withList:Y,fields:Z,fieldsFlat:X,where:_,having:G,table:W,joins:$,orderBy:H,groupBy:Q,limit:J,offset:z,lockingClause:E,distinct:D,setOperators:V}){let R=X??q1(Z);for(let e of R)if(M(e.field,O0)&&c0(e.field.table)!==(M(W,P0)?W._.alias:M(W,P2)?W[A0].name:M(W,x)?void 0:c0(W))&&!((U0)=>$?.some(({alias:h0})=>h0===(U0[P.Symbol.IsAlias]?c0(U0):U0[P.Symbol.BaseName])))(e.field.table)){let U0=c0(e.field.table);throw new Error(`Your "${e.path.join("->")}" field references a column "${U0}"."${e.field.name}", but the table "${U0}" is not part of the query! Did you forget to join it?`)}let A=!$||$.length===0,g=this.buildWithCTE(Y),b;if(D)b=D===!0?O` distinct`:O` distinct on (${O.join(D.on,O`, `)})`;let f=this.buildSelection(R,{isSingleTable:A}),h=this.buildFromTable(W),I=this.buildJoins($),N=_?O` where ${_}`:void 0,K=G?O` having ${G}`:void 0,q;if(H&&H.length>0)q=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,C=z?O` offset ${z}`:void 0,t=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`);t.append(e)}let m=O`${g}select${b} ${f} from ${h}${I}${N}${p}${K}${q}${s}${C}${t}`;if(V.length>0)return this.buildSetOperations(m,V);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:W,offset:$}}){let H=O`(${Y.getSQL()}) `,Q=O`(${_.getSQL()})`,J;if(W&&W.length>0){let V=[];for(let R of W)if(M(R,j))V.push(O.identifier(R.name));else if(M(R,x)){for(let A=0;A<R.queryChunks.length;A++){let g=R.queryChunks[A];if(M(g,j))R.queryChunks[A]=O.identifier(g.name)}V.push(O`${R}`)}else V.push(O`${R}`);J=O` order by ${O.join(V,O`, `)} `}let z=typeof G==="object"||typeof G==="number"&&G>=0?O` limit ${G}`:void 0,E=O.raw(`${Z} ${X?"all ":""}`),D=$?O` offset ${$}`:void 0;return O`${H}${E}${Q}${J}${z}${D}`}buildInsertQuery({table:Y,values:Z,onConflict:X,returning:_,withList:G,select:W,overridingSystemValue_:$}){let H=[],Q=Y[P.Symbol.Columns],J=Object.entries(Q).filter(([g,b])=>!b.shouldDisableInsert()),z=J.map(([,g])=>O.identifier(this.casing.getColumnCasing(g)));if(W){let g=Z;if(M(g,x))H.push(g);else H.push(g.getSQL())}else{let g=Z;H.push(O.raw("values "));for(let[b,f]of g.entries()){let h=[];for(let[I,N]of J){let K=f[I];if(K===void 0||M(K,w1)&&K.value===void 0)if(N.defaultFn!==void 0){let q=N.defaultFn(),p=M(q,x)?q:O.param(q,N);h.push(p)}else if(!N.default&&N.onUpdateFn!==void 0){let q=N.onUpdateFn(),p=M(q,x)?q:O.param(q,N);h.push(p)}else h.push(O`default`);else h.push(K)}if(H.push(h),b<g.length-1)H.push(O`, `)}}let E=this.buildWithCTE(G),D=O.join(H),V=_?O` returning ${this.buildSelection(_,{isSingleTable:!0})}`:void 0,R=X?O` on conflict ${X}`:void 0,A=$===!0?O`overriding system value `:void 0;return O`${E}insert into ${Y} ${z} ${A}${D}${R}${V}`}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(M(Y,v6)||M(Y,S6))return"json";else if(M(Y,x6))return"decimal";else if(M(Y,h6))return"time";else if(M(Y,f6)||M(Y,b6))return"timestamp";else if(M(Y,j6)||M(Y,P6))return"date";else if(M(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:W,tableAlias:$,nestedQueryRelation:H,joinOn:Q}){let J=[],z,E,D=[],V,R=[];if(W===!0)J=Object.entries(G.columns).map(([b,f])=>({dbKey:f.name,tsKey:b,field:o1(f,$),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let g=Object.fromEntries(Object.entries(G.columns).map(([K,q])=>[K,o1(q,$)]));if(W.where){let K=typeof W.where==="function"?W.where(g,cW()):W.where;V=K&&M2(K,$)}let b=[],f=[];if(W.columns){let K=!1;for(let[q,p]of Object.entries(W.columns)){if(p===void 0)continue;if(q in G.columns){if(!K&&p===!0)K=!0;f.push(q)}}if(f.length>0)f=K?f.filter((q)=>W.columns?.[q]===!0):Object.keys(G.columns).filter((q)=>!f.includes(q))}else f=Object.keys(G.columns);for(let K of f){let q=G.columns[K];b.push({tsKey:K,value:q})}let h=[];if(W.with)h=Object.entries(W.with).filter((K)=>!!K[1]).map(([K,q])=>({tsKey:K,queryConfig:q,relation:G.relations[K]}));let I;if(W.extras){I=typeof W.extras==="function"?W.extras(g,{sql:O}):W.extras;for(let[K,q]of Object.entries(I))b.push({tsKey:K,value:z5(q,$)})}for(let{tsKey:K,value:q}of b)J.push({dbKey:M(q,x.Aliased)?q.fieldAlias:G.columns[K].name,tsKey:K,field:M(q,O0)?o1(q,$):q,relationTableTsKey:void 0,isJson:!1,selection:[]});let N=typeof W.orderBy==="function"?W.orderBy(g,lW()):W.orderBy??[];if(!Array.isArray(N))N=[N];D=N.map((K)=>{if(M(K,O0))return o1(K,$);return M2(K,$)}),z=W.limit,E=W.offset;for(let{tsKey:K,queryConfig:q,relation:p}of h){let s=oW(Z,X,p),C=y4(p.referencedTable),t=X[C],m=`${$}_${K}`,e=I2(...s.fields.map((J1,r1)=>g6(o1(s.references[r1],m),o1(J1,$)))),U0=this.buildRelationalQueryWithoutPK({fullSchema:Y,schema:Z,tableNamesMap:X,table:Y[t],tableConfig:Z[t],queryConfig:M(p,C4)?q===!0?{limit:1}:{...q,limit:1}:q,tableAlias:m,joinOn:e,nestedQueryRelation:p}),h0=O`${O.identifier(m)}.${O.identifier("data")}`.as(K);R.push({on:O`true`,table:new P0(U0.sql,{},m),alias:m,joinType:"left",lateral:!0}),J.push({dbKey:K,tsKey:K,field:h0,relationTableTsKey:t,isJson:!0,selection:U0.selection})}}if(J.length===0)throw new q6({message:`No fields selected for table "${G.tsName}" ("${$}")`});let A;if(V=I2(Q,V),H){let g=O`json_build_array(${O.join(J.map(({field:h,tsKey:I,isJson:N})=>N?O`${O.identifier(`${$}_${I}`)}.${O.identifier("data")}`:M(h,x.Aliased)?h.sql:h),O`, `)})`;if(M(H,B2))g=O`coalesce(json_agg(${g}${D.length>0?O` order by ${O.join(D,O`, `)}`:void 0}), '[]'::json)`;let b=[{dbKey:"data",tsKey:"data",field:g.as("data"),isJson:!0,relationTableTsKey:G.tsName,selection:J}];if(z!==void 0||E!==void 0||D.length>0)A=this.buildSelectQuery({table:T6(_,$),fields:{},fieldsFlat:[{path:[],field:O.raw("*")}],where:V,limit:z,offset:E,orderBy:D,setOperators:[]}),V=void 0,z=void 0,E=void 0,D=[];else A=T6(_,$);A=this.buildSelectQuery({table:M(A,u0)?A:new P0(A,{},$),fields:{},fieldsFlat:b.map(({field:h})=>({path:[],field:M(h,O0)?o1(h,$):h})),joins:R,where:V,limit:z,offset:E,orderBy:D,setOperators:[]})}else A=this.buildSelectQuery({table:T6(_,$),fields:{},fieldsFlat:J.map(({field:g})=>({path:[],field:M(g,O0)?o1(g,$):g})),joins:R,where:V,limit:z,offset:E,orderBy:D,setOperators:[]});return{tableTsKey:G.tsName,sql:A,selection:J}}}class k5{static[U]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class H1{static[U]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(Y){if(this.fields=Y.fields,this.session=Y.session,this.dialect=Y.dialect,Y.withList)this.withList=Y.withList;this.distinct=Y.distinct}authToken;setToken(Y){return this.authToken=Y,this}from(Y){let Z=!!this.fields,X=Y,_;if(this.fields)_=this.fields;else if(M(X,P0))_=Object.fromEntries(Object.keys(X._.selectedFields).map((G)=>[G,X[G]]));else if(M(X,P2))_=X[A0].selectedFields;else if(M(X,x))_={};else _=N7(X);return new g5({table:X,fields:_,isPartialSelect:Z,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class V$ extends k5{static[U]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:Y,fields:Z,isPartialSelect:X,session:_,dialect:G,withList:W,distinct:$}){super();this.config={withList:W,table:Y,fields:{...Z},distinct:$,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,W=J4(X);for(let $ of y1(X))this.usedTables.add($);if(typeof W==="string"&&this.config.joins?.some(($)=>$.alias===W))throw new Error(`Alias "${W}" 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 W==="string"&&!M(X,x)){let $=M(X,P0)?X._.selectedFields:M(X,D1)?X[A0].selectedFields:X[P.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:W,lateral:Z}),typeof W==="string")switch(Y){case"left":{this.joinsNotNullableMap[W]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([$])=>[$,!1])),this.joinsNotNullableMap[W]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[W]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([$])=>[$,!1])),this.joinsNotNullableMap[W]=!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(zE()):X;if(!A2(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 P0(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 g5 extends V${static[U]="PgSelect";_prepare(Y){let{session:Z,config:X,dialect:_,joinsNotNullableMap:G,authToken:W,cacheConfig:$,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 D0.startActiveSpan("drizzle.prepareQuery",()=>{let J=q1(Q),z=Z.prepareQuery(_.sqlToQuery(this.getSQL()),J,Y,!0,void 0,{type:"select",tables:[...H]},$);return z.joinsNotNullableMap=G,z.setToken(W)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return D0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}R7(g5,[$1]);function T8(Y,Z){return(X,_,...G)=>{let W=[_,...G].map(($)=>({type:Y,isAll:Z,rightSelect:$}));for(let $ of W)if(!A2(X.getSelectedFields(),$.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return X.addSetOperators(W)}}var zE=()=>({union:FE,unionAll:UE,intersect:EE,intersectAll:OE,except:DE,exceptAll:LE}),FE=T8("union",!1),UE=T8("union",!0),EE=T8("intersect",!1),OE=T8("intersect",!0),DE=T8("except",!1),LE=T8("except",!0);class S2{static[U]="PgQueryBuilder";dialect;dialectConfig;constructor(Y){this.dialect=M(Y,c4)?Y:void 0,this.dialectConfig=M(Y,c4)?void 0:Y}$with=(Y,Z)=>{let X=this;return{as:(G)=>{if(typeof G==="function")G=G(X);return new Proxy(new D2(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(W){return new H1({fields:W??void 0,session:void 0,dialect:Z.getDialect(),withList:Y})}function _(W){return new H1({fields:W??void 0,session:void 0,dialect:Z.getDialect(),distinct:!0})}function G(W,$){return new H1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),distinct:{on:W}})}return{select:X,selectDistinct:_,selectDistinctOn:G}}select(Y){return new H1({fields:Y??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(Y){return new H1({fields:Y??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(Y,Z){return new H1({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(M(Y,u0))return[Y[g4]?`${Y[g4]}.${Y[P.Symbol.BaseName]}`:Y[P.Symbol.BaseName]];if(M(Y,P0))return Y._.usedTables??[];if(M(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[U]="PgDelete";config;cacheConfig;where(Y){return this.config.where=Y,this}returning(Y=this.config.table[P.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=q1(Y),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return D0.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 D0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new j0({alias:c0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class e6{constructor(Y,Z,X,_,G){this.table=Y,this.session=Z,this.dialect=X,this.withList=_,this.overridingSystemValue_=G}static[U]="PgInsertBuilder";authToken;setToken(Y){return this.authToken=Y,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(Y){if(Y=Array.isArray(Y)?Y:[Y],Y.length===0)throw new Error("values() must be called with at least one value");let Z=Y.map((X)=>{let _={},G=this.table[P.Symbol.Columns];for(let W of Object.keys(X)){let $=X[W];_[W]=M($,x)?$:new w1($,G[W])}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 S2):Y;if(!M(Z,x)&&!A2(this.table[B6],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:W,overridingSystemValue_:$}}static[U]="PgInsert";config;cacheConfig;returning(Y=this.config.table[P.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=q1(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,K6(this.config.table,Y.set)),W="";return W=Array.isArray(Y.target)?Y.target.map(($)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing($))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y.target)),this.config.onConflict=O`(${O.raw(W)})${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 D0.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 D0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new j0({alias:c0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class p5 extends $1{constructor(Y,Z,X){super();this.session=Z,this.dialect=X,this.config={view:Y}}static[U]="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 D0.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 D0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}class YY{constructor(Y,Z,X,_){this.table=Y,this.session=Z,this.dialect=X,this.withList=_}static[U]="PgUpdateBuilder";authToken;setToken(Y){return this.authToken=Y,this}set(Y){return new M$(this.table,K6(this.table,Y),this.session,this.dialect,this.withList).setToken(this.authToken)}}class M$ 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[U]="PgUpdate";config;tableName;joinsNotNullableMap;cacheConfig;from(Y){let Z=Y,X=J4(Z);if(typeof X==="string")this.joinsNotNullableMap[X]=!0;return this.config.from=Z,this}getTableLikeFields(Y){if(M(Y,u0))return Y[P.Symbol.Columns];else if(M(Y,P0))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&&!M(this.config.from,x)?this.getTableLikeFields(this.config.from):void 0;X=X(new Proxy(this.config.table[P.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[P.Symbol.Columns]),this.config.from){let Z=J4(this.config.from);if(typeof Z==="string"&&this.config.from&&!M(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"&&!M(X.table,x)){let G=this.getTableLikeFields(X.table);Y[_]=G}}}}return this.config.returningFields=Y,this.config.returning=q1(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:c0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class v2 extends x{constructor(Y){super(v2.buildEmbeddedCount(Y.source,Y.filters).queryChunks);this.params=Y,this.mapWith(Number),this.session=Y.session,this.sql=v2.buildCount(Y.source,Y.filters)}sql;token;static[U]="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 u5{constructor(Y,Z,X,_,G,W,$){this.fullSchema=Y,this.schema=Z,this.tableNamesMap=X,this.table=_,this.tableConfig=G,this.dialect=W,this.session=$}static[U]="PgRelationalQueryBuilder";findMany(Y){return new m5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?Y:{},"many")}findFirst(Y){return new m5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?{...Y,limit:1}:{limit:1},"first")}}class m5 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=W,this.session=$,this.config=H,this.mode=Q}static[U]="PgRelationalQuery";_prepare(Y){return D0.startActiveSpan("drizzle.prepareQuery",()=>{let{query:Z,builtQuery:X}=this._toSQL();return this.session.prepareQuery(X,void 0,Y,!0,(_,G)=>{let W=_.map(($)=>y6(this.schema,this.tableConfig,$,Z.selection,G));if(this.mode==="first")return W[0];return W})})}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 D0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class d5 extends $1{constructor(Y,Z,X,_){super();this.execute=Y,this.sql=Z,this.query=X,this.mapBatchResult=_}static[U]="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 x2{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 u5(X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[_],G,Y,Z);this.$cache={invalidate:async(_)=>{}}}static[U]="PgDatabase";query;$with=(Y,Z)=>{let X=this;return{as:(G)=>{if(typeof G==="function")G=G(new S2(X.dialect));return new Proxy(new D2(G.getSQL(),Z??("getSelectedFields"in G?G.getSelectedFields()??{}:{}),Y,!0),new j0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(Y,Z){return new v2({source:Y,filters:Z,session:this.session})}$cache;with(...Y){let Z=this;function X(Q){return new H1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y})}function _(Q){return new H1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:!0})}function G(Q,J){return new H1({fields:J??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:{on:Q}})}function W(Q){return new YY(Q,Z.session,Z.dialect,Y)}function $(Q){return new e6(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:W,insert:$,delete:H}}select(Y){return new H1({fields:Y??void 0,session:this.session,dialect:this.dialect})}selectDistinct(Y){return new H1({fields:Y??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(Y,Z){return new H1({fields:Z??void 0,session:this.session,dialect:this.dialect,distinct:{on:Y}})}update(Y){return new YY(Y,this.session,this.dialect)}insert(Y){return new e6(Y,this.session,this.dialect)}delete(Y){return new t6(Y,this.session,this.dialect)}refreshMaterializedView(Y){return new p5(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 d5(()=>_.execute(void 0,this.authToken),Z,X,(G)=>_.mapResult(G,!0))}transaction(Y,Z){return this.session.transaction(Y,Z)}}class A${static[U]="Cache"}class h2 extends A${strategy(){return"all"}static[U]="NoopCache";async get(Y){return}async put(Y,Z,X,_){}async onMutate(Y){}}async function c5(Y,Z){let X=`${Y}-${JSON.stringify(Z)}`,G=new TextEncoder().encode(X),W=await crypto.subtle.digest("SHA-256",G);return[...new Uint8Array(W)].map((Q)=>Q.toString(16).padStart(2,"0")).join("")}class l5{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[U]="PgPreparedQuery";joinsNotNullableMap;async queryWithCache(Y,Z,X){if(this.cache===void 0||M(this.cache,h2)||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 c5(Y,Z),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(_===void 0){let G;try{G=await X()}catch(W){throw new H4(Y,Z,W)}return await this.cache.put(this.cacheConfig.tag??await c5(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 i5{constructor(Y){this.dialect=Y}static[U]="PgSession";execute(Y,Z){return D0.startActiveSpan("drizzle.operation",()=>{return D0.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 x2{constructor(Y,Z,X,_=0){super(Y,Z,X);this.schema=X,this.nestedIndex=_}static[U]="PgTransaction";rollback(){throw new F5}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 w$ extends l5{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[U]="PostgresJsPreparedQuery";async execute(Y={}){return D0.startActiveSpan("drizzle.execute",async(Z)=>{let X=Q5(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:W,joinsNotNullableMap:$,customResultMapper:H}=this;if(!_&&!H)return D0.startActiveSpan("drizzle.driver.execute",()=>{return this.queryWithCache(G,X,async()=>{return await W.unsafe(G,X)})});let Q=await D0.startActiveSpan("drizzle.driver.execute",()=>{return Z?.setAttributes({"drizzle.query.text":G,"drizzle.query.params":JSON.stringify(X)}),this.queryWithCache(G,X,async()=>{return await W.unsafe(G,X).values()})});return D0.startActiveSpan("drizzle.mapResponse",()=>{return H?H(Q):Q.map((J)=>w7(_,J,$))})})}all(Y={}){return D0.startActiveSpan("drizzle.execute",async(Z)=>{let X=Q5(this.params,Y);return Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X),D0.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 f2 extends i5{constructor(Y,Z,X,_={}){super(Z);this.client=Y,this.schema=X,this.options=_,this.logger=_.logger??new E5,this.cache=_.cache??new h2}static[U]="PostgresJsSession";logger;cache;prepareQuery(Y,Z,X,_,G,W,$){return new w$(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 f2(X,this.dialect,this.schema,this.options),G=new n5(this.dialect,_,this.schema);if(Z)await G.setTransaction(Z);return Y(G)})}}class n5 extends o5{constructor(Y,Z,X,_=0){super(Y,Z,X,_);this.session=Z}static[U]="PostgresJsTransaction";transaction(Y){return this.session.client.savepoint((Z)=>{let X=new f2(Z,this.dialect,this.schema,this.session.options),_=new n5(this.dialect,X,this.schema);return Y(_)})}}class R$ extends x2{static[U]="PostgresJsDatabase"}function q8(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 U5;else if(Z.logger!==!1)G=Z.logger;let W;if(Z.schema){let Q=iW(Z.schema,nW);W={fullSchema:Z.schema,schema:Q.tables,tableNamesMap:Q.tableNamesMap}}let $=new f2(Y,_,W,{logger:G,cache:Z.cache}),H=new R$(_,$,W);if(H.$client=Y,H.$cache=Z.cache,H.$cache)H.$cache.invalidate=Z.cache?.onMutate;return H}function ZY(...Y){if(typeof Y[0]==="string"){let Z=C8(Y[0]);return q8(Z,Y[1])}if(I7(Y[0])){let{connection:Z,client:X,..._}=Y[0];if(X)return q8(X,_);if(typeof Z==="object"&&Z.url!==void 0){let{url:W,...$}=Z,H=C8(W,$);return q8(H,_)}let G=C8(Z);return q8(G,_)}return q8(Y[0],Y[1])}((Y)=>{function Z(X){return q8({options:{parsers:{},serializers:{}}},X)}Y.mock=Z})(ZY||(ZY={}));var s5={};TH(s5,{users:()=>l4,untrackedUserColumnNames:()=>VE,twoFactorMethod:()=>T$,trackedUserColumnName:()=>ME,trackableUserColumnNames:()=>B$,signInHistory:()=>wE,role:()=>I$,players:()=>r5,passwordResetAttempts:()=>RE,games:()=>_Y,banishedIps:()=>NE,accountActions:()=>AE,accountAction:()=>C$});function q4(){return e0({length:24}).$type()}function N$(Y){return O`lower(${Y})`}var XY=O`TO_CHAR(NOW() AT TIME ZONE 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"')`,I$=O2("role",["admin","user"]),l4=B4("users",{id:K1().primaryKey().defaultRandom(),username:e0({length:16}).notNull(),emailOffered:e0({length:254}).notNull(),emailVerified:e0({length:254}),password:e0({length:254}),createdAtIso:q4().notNull().default(XY),createdIp:e0({length:45}).notNull(),isActive:w2().notNull().default(!1),verifiedAtIso:q4(),userRole:I$().default("user")},(Y)=>[f5("usernameUniqueIndex").on(N$(Y.username)),f5("emailVerifiedUniqueIndex").on(N$(Y.emailVerified))]),VE=["id","createdAtIso","createdIp","isActive","verifiedAtIso"],B$=["username","emailOffered","emailVerified","password","userRole"],ME=O2("trackedUserColumnName",B$),C$=O2("accountAction",["cooldown","confirmEmail","signIn","resetPassword"]),AE=B4("accountActions",{userId:K1().references(()=>l4.id).primaryKey(),action:C$().notNull(),code:e0({length:254}).notNull(),wrongCodeCount:R2().notNull().default(0),expiresAtIso:q4().notNull()}),_Y=B4("games",{id:K1().primaryKey().defaultRandom()}),r5=B4("players",{userId:K1().notNull().references(()=>l4.id,{onDelete:"cascade"}),gameId:K1().notNull().references(()=>_Y.id,{onDelete:"cascade"}),score:R2().notNull()},(Y)=>[wW({name:"players_userId_gameId_pk",columns:[Y.userId,Y.gameId]})]),wE=B4("signInHistory",{id:K1().primaryKey().defaultRandom(),userId:K1().references(()=>l4.id,{onDelete:"cascade"}),signInTimeIso:q4().notNull().default(XY),ipAddress:e0({length:45}).notNull(),userAgent:e0({length:1024}),successful:w2().notNull().default(!1)}),T$=O2("twoFactorMethod",["email","phone"]),RE=B4("passwordResetAttempts",{id:K1().primaryKey().defaultRandom(),userId:K1().notNull().references(()=>l4.id,{onDelete:"cascade"}),requestedIp:e0({length:45}).notNull(),requestedAtIso:q4().notNull().default(XY),succeededIp:e0({length:45}),succeededAtIso:q4(),verificationMethod:T$().notNull()}),NE=B4("banishedIps",{ip:e0({length:45}).primaryKey(),reason:e0({length:2048}).notNull(),banishedAtIso:q4().notNull().default(XY),banishedUntilIso:q4()});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class a5{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(IE.resolve(__dirname,"notify_update.sql"));let Y=[c0(l4),c0(_Y),c0(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],W=`${_}("${G}")`;if(this.observers.has(W))this.observers.get(W).next(W)})}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=C8(Z),this.drizzle=ZY(this.sql,{schema:s5,logger:Y})}observe(Y,Z){if(!this.observers.has(Y))this.observers.set(Y,new H0);this.observers.get(Y).subscribe("SINGLETON",Z)}}var GY={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=O1(GY),TE=CE.keyof().pipe((Y)=>BE(Y)),q$=O1([TE,"string"]);var e5=new r9,{logger:V1}=e5;Object.assign(console,V1,{log:V1.info});V1.info("ready");var t5=j$(import.meta.dir,"..","app"),lx=new a5({logQuery(Y,Z){V1.info("\uD83D\uDCDD query",Y,Z)}});PE({hostname:"0.0.0.0",port:k1.FRONTEND_PORT??3333,...R6??void 0,async fetch(Y){try{let Z=new Date,X=new URL(Y.url);if(V1.info(Y.method,X.pathname),X.pathname==="/")return new Response(Bun.file(j$(t5,"index.html")));if(X.pathname==="/index.html")return Response.redirect("/");let _=KE(t5,X.pathname),G=jE(_);if(!G.startsWith(t5))throw[403,"Access Denied"];if(!await K$(G).exists())return Response.redirect("/");return new Response(K$(G))}catch(Z){let X=q$(Z);if(X instanceof O1.errors===!1){let[_,G]=X,$=`${GY[_]}. ${G}`;return V1.info(`\u274C ${_}: ${$}`),new Response($,{status:_})}if(Z instanceof Error)V1.error(Z.message);else{let _=w6(Z);V1.error("frontend server threw",_)}return new Response(GY[500],{status:500})}}});function WY(){V1.info("\uD83D\uDEEC frontend server exiting"),process.exit(0)}process.on("SIGINT",()=>{V1.info("\u2757 received SIGINT; exiting gracefully"),WY()});process.on("SIGTERM",()=>{V1.info("\u2757 received SIGTERM; exiting gracefully"),WY()});process.on("exit",()=>{V1.info("\u2757 received exit; exiting gracefully"),WY()});e5.on("timeToStop",()=>{V1.info('\u2757 backend server received signal "timeToStop"; exiting gracefully'),WY()});var{version:SE}=await Bun.file(qE.resolve(import.meta.dir,"../package.json")).json();V1.info(`\uD83D\uDEEB frontend v${SE} running at http://localhost:${k1.FRONTEND_PORT}/`);e5.emit("alive");
89
+ `;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[u0.Symbol.Name],J=Y[u0.Symbol.Schema],U=Y[u0.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,u0)){let H=G[u0.Symbol.Name],Q=G[u0.Symbol.Schema],J=G[u0.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??B1(Z);for(let e of R)if(A(e.field,O0)&&d0(e.field.table)!==(A($,S0)?$._.alias:A($,S8)?$[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,w1)&&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,v6)||A(Y,P6))return"json";else if(A(Y,x6))return"decimal";else if(A(Y,f6))return"time";else if(A(Y,h6)||A(Y,k6))return"timestamp";else if(A(Y,j6)||A(Y,S6))return"date";else if(A(Y,b6))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&&M8(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:Q5(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 M8(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=I8(...s.fields.map((J1,n1)=>y6(i1(s.references[n1],m),i1(J1,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 C6({message:`No fields selected for table "${G.tsName}" ("${W}")`});let M;if(L=I8(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,T8))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:B6(_,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=B6(_,W);M=this.buildSelectQuery({table:A(M,u0)?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:B6(_,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 k5{static[F]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class H1{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,S8))_=X[A0].selectedFields;else if(A(X,x))_={};else _=w7(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 V3 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 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(!A8(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 b5 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=B1(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(b5,[W1]);function K2(Y,Z){return(X,_,...G)=>{let $=[_,...G].map((W)=>({type:Y,isAll:Z,rightSelect:W}));for(let W of $)if(!A8(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=K2("union",!1),zE=K2("union",!0),FE=K2("intersect",!1),EE=K2("intersect",!0),OE=K2("except",!1),VE=K2("except",!0);class P8{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 V8(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 H1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),withList:Y})}function _($){return new H1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),distinct:!0})}function G($,W){return new H1({fields:W??void 0,session:void 0,dialect:Z.getDialect(),distinct:{on:$}})}return{select:X,selectDistinct:_,selectDistinctOn:G}}select(Y){return new H1({fields:Y??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(Y){return new H1({fields:Y??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(Y,Z){return new H1({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,u0))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 a6 extends W1{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=B1(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 e6{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 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 P8):Y;if(!A(Z,x)&&!A8(this.table[T6],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 W1{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=B1(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,q6(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 g5 extends W1{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 YY{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,q6(this.table,Y),this.session,this.dialect,this.withList).setToken(this.authToken)}}class D3 extends W1{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,u0))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=B1(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 v8 extends x{constructor(Y){super(v8.buildEmbeddedCount(Y.source,Y.filters).queryChunks);this.params=Y,this.mapWith(Number),this.session=Y.session,this.sql=v8.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 W1{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)=>g6(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 u5 extends W1{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 x8{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 P8(X.dialect));return new Proxy(new V8(G.getSQL(),Z??("getSelectedFields"in G?G.getSelectedFields()??{}:{}),Y,!0),new j0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(Y,Z){return new v8({source:Y,filters:Z,session:this.session})}$cache;with(...Y){let Z=this;function X(Q){return new H1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y})}function _(Q){return new H1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:!0})}function G(Q,J){return new H1({fields:J??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:{on:Q}})}function $(Q){return new YY(Q,Z.session,Z.dialect,Y)}function W(Q){return new e6(Q,Z.session,Z.dialect,Y)}function H(Q){return new a6(Q,Z.session,Z.dialect,Y)}return{select:X,selectDistinct:_,selectDistinctOn:G,update:$,insert:W,delete:H}}select(Y){return new H1({fields:Y??void 0,session:this.session,dialect:this.dialect})}selectDistinct(Y){return new H1({fields:Y??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(Y,Z){return new H1({fields:Z??void 0,session:this.session,dialect:this.dialect,distinct:{on:Y}})}update(Y){return new YY(Y,this.session,this.dialect)}insert(Y){return new e6(Y,this.session,this.dialect)}delete(Y){return new a6(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 L3{static[F]="Cache"}class f8 extends L3{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,f8)||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 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 o5 extends x8{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 M3 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 V0.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 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=J5(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 h8 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 f8}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 h8(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 h8(Z,this.dialect,this.schema,this.session.options),_=new i5(this.dialect,X,this.schema);return Y(_)})}}class A3 extends x8{static[F]="PostgresJsDatabase"}function B2(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=cW(Z.schema,oW);$={fullSchema:Z.schema,schema:Q.tables,tableNamesMap:Q.tableNamesMap}}let W=new h8(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 ZY(...Y){if(typeof Y[0]==="string"){let Z=T2(Y[0]);return B2(Z,Y[1])}if(R7(Y[0])){let{connection:Z,client:X,..._}=Y[0];if(X)return B2(X,_);if(typeof Z==="object"&&Z.url!==void 0){let{url:$,...W}=Z,H=T2($,W);return B2(H,_)}let G=T2(Z);return B2(G,_)}return B2(Y[0],Y[1])}((Y)=>{function Z(X){return B2({options:{parsers:{},serializers:{}}},X)}Y.mock=Z})(ZY||(ZY={}));var n5={};TH(n5,{users:()=>l4,untrackedUserColumnNames:()=>DE,twoFactorMethod:()=>T3,trackedUserColumnName:()=>LE,trackableUserColumnNames:()=>N3,signInHistory:()=>AE,role:()=>R3,players:()=>r5,passwordResetAttempts:()=>wE,games:()=>_Y,banishedIps:()=>RE,accountActions:()=>ME,accountAction:()=>I3});function C4(){return a0({length:24}).$type()}function w3(Y){return O`lower(${Y})`}var XY=O`TO_CHAR(NOW() AT TIME ZONE 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"')`,R3=O8("role",["admin","user"]),l4=T4("users",{id:C1().primaryKey().defaultRandom(),username:a0({length:16}).notNull(),emailOffered:a0({length:254}).notNull(),emailVerified:a0({length:254}),password:a0({length:254}),createdAtIso:C4().notNull().default(XY),createdIp:a0({length:45}).notNull(),isActive:w8().notNull().default(!1),verifiedAtIso:C4(),userRole:R3().default("user")},(Y)=>[f5("usernameUniqueIndex").on(w3(Y.username)),f5("emailVerifiedUniqueIndex").on(w3(Y.emailVerified))]),DE=["id","createdAtIso","createdIp","isActive","verifiedAtIso"],N3=["username","emailOffered","emailVerified","password","userRole"],LE=O8("trackedUserColumnName",N3),I3=O8("accountAction",["cooldown","confirmEmail","signIn","resetPassword"]),ME=T4("accountActions",{userId:C1().references(()=>l4.id).primaryKey(),action:I3().notNull(),code:a0({length:254}).notNull(),wrongCodeCount:R8().notNull().default(0),expiresAtIso:C4().notNull()}),_Y=T4("games",{id:C1().primaryKey().defaultRandom()}),r5=T4("players",{userId:C1().notNull().references(()=>l4.id,{onDelete:"cascade"}),gameId:C1().notNull().references(()=>_Y.id,{onDelete:"cascade"}),score:R8().notNull()},(Y)=>[MW({name:"players_userId_gameId_pk",columns:[Y.userId,Y.gameId]})]),AE=T4("signInHistory",{id:C1().primaryKey().defaultRandom(),userId:C1().references(()=>l4.id,{onDelete:"cascade"}),signInTimeIso:C4().notNull().default(XY),ipAddress:a0({length:45}).notNull(),userAgent:a0({length:1024}),successful:w8().notNull().default(!1)}),T3=O8("twoFactorMethod",["email","phone"]),wE=T4("passwordResetAttempts",{id:C1().primaryKey().defaultRandom(),userId:C1().notNull().references(()=>l4.id,{onDelete:"cascade"}),requestedIp:a0({length:45}).notNull(),requestedAtIso:C4().notNull().default(XY),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(XY),banishedUntilIso:C4()});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(NE.resolve(__dirname,"notify_update.sql"));let Y=[d0(l4),d0(_Y),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:k1.POSTGRES_HOST,port:k1.POSTGRES_PORT,user:k1.POSTGRES_USER,password:k1.POSTGRES_PASSWORD,database:k1.POSTGRES_DATABASE}){this.options=Z,this.sql=T2(Z),this.drizzle=ZY(this.sql,{schema:n5,logger:Y})}observe(Y,Z){if(!this.observers.has(Y))this.observers.set(Y,new H0);this.observers.get(Y).subscribe("SINGLETON",Z)}}var GY={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=O1(GY),KE=TE.keyof().pipe((Y)=>IE(Y)),K3=O1([KE,"string"]);var a5=new i9,{logger:L1}=a5;Object.assign(console,L1,{log:L1.info});L1.info("ready");var t5=C3(import.meta.dir,"..","app"),lx=new s5({logQuery(Y,Z){L1.info("\uD83D\uDCDD query",Y,Z)}});jE({hostname:"0.0.0.0",port:k1.FRONTEND_PORT??3333,...R6??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(t5,"index.html")));if(X.pathname==="/index.html")return Response.redirect("/");let _=CE(t5,X.pathname),G=qE(_);if(!G.startsWith(t5))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 O1.errors===!1){let[_,G]=X,W=`${GY[_]}. ${G}`;return L1.info(`\u274C ${_}: ${W}`),new Response(W,{status:_})}if(Z instanceof Error)L1.error(Z.message);else{let _=w6(Z);L1.error("frontend server threw",_)}return new Response(GY[500],{status:500})}}});function $Y(){L1.info("\uD83D\uDEEC frontend server exiting"),process.exit(0)}process.on("SIGINT",()=>{L1.info("\u2757 received SIGINT; exiting gracefully"),$Y()});process.on("SIGTERM",()=>{L1.info("\u2757 received SIGTERM; exiting gracefully"),$Y()});process.on("exit",()=>{L1.info("\u2757 received exit; exiting gracefully"),$Y()});a5.on("timeToStop",()=>{L1.info('\u2757 backend server received signal "timeToStop"; exiting gracefully'),$Y()});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}/`);a5.emit("alive");