tempest.games 0.2.58 → 0.2.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/app/assets/{index-DnYAnkw6.js → index-DMicbj1C.js} +37 -37
- package/app/index.html +1 -1
- package/bin/backend.bun.js +138 -138
- package/bin/backend.worker.game.bun.js +6 -6
- package/bin/backend.worker.tribunal.bun.js +57 -57
- package/bin/frontend.bun.js +31 -31
- package/package.json +6 -6
package/bin/frontend.bun.js
CHANGED
|
@@ -1,80 +1,80 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
var
|
|
3
|
+
var dH=Object.create;var{getPrototypeOf:cH,defineProperty:DY,getOwnPropertyNames:lH}=Object;var oH=Object.prototype.hasOwnProperty;var sE=(Y,Z,X)=>{X=Y!=null?dH(cH(Y)):{};let G=Z||!Y||!Y.__esModule?DY(X,"default",{value:Y,enumerable:!0}):X;for(let _ of lH(Y))if(!oH.call(G,_))DY(G,_,{get:()=>Y[_],enumerable:!0});return G};var tE=(Y,Z)=>()=>(Z||Y((Z={exports:{}}).exports,Z),Z.exports);var iH=(Y,Z)=>{for(var X in Z)DY(Y,X,{get:Z[X],enumerable:!0,configurable:!0,set:(G)=>Z[X]=()=>G})};var aE=(Y,Z)=>()=>(Y&&(Z=Y(Y=0)),Z);var eE=import.meta.require;import lE,{join as oE,normalize as iE,resolve as sW}from"path";var F4=(Y)=>Array.isArray(Y)?Y:[Y],RX=(Y,Z)=>{let X=[[],[]];for(let G of Y)if(Z(G))X[0].push(G);else X[1].push(G);return X},p8=Array,s1=(Y,Z)=>Y.includes(Z),wX=(Y,Z=0)=>[...Array(Y)].map((X,G)=>G+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)},NX=(...Y)=>Y.reduce(t1,[]),c1=(Y,Z,X)=>{if(Y===void 0)return Array.isArray(Z)?Z:[Z];let G=X?.isEqual??((_,$)=>_===$);for(let _ of F4(Z))if(!Y.some(($)=>G($,_)))Y.push(_);return Y},IX=(Y,Z)=>Y.reduce((X,G)=>{let _=G[Z];return X[_]=Z0(X[_],G),X},{}),a1=(Y,Z,X)=>Y.length===Z.length&&Y.every(X?.isEqual?(G,_)=>X.isEqual(G,Z[_]):(G,_)=>G===Z[_]);var W1=(Y,Z)=>y0(Y)===Z,y0=(Y)=>{let Z=typeof Y;return Z==="object"?Y===null?"null":"object":Z==="function"?"object":Z},H1={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},KX={...H1,function:"a function"};class BX extends Error{}var G0=(Y)=>C4(Y,BX),C4=(Y,Z=Error)=>{throw new Z(Y)};class q2 extends Error{name="ParseError"}var A=(Y)=>C4(Y,q2),S1=(Y)=>` ${Y}`;var o=(Y,Z)=>{let X={},G=Array.isArray(Y),_=!1;for(let[$,W]of Object.entries(Y).entries()){let H=G?Z($,W[1]):Z(...W,$);_||=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 _?Object.values(X):X};var LY=Object.entries;var g0=(Y,Z)=>(Y in Z),n4=(Y,Z)=>(Z in Y);class MY{constructor(Y){Object.assign(this,Y)}}var TX=class{};class j2 extends TX{}var nH=(Y,Z)=>{let X={},G={},_;for(_ in Y)if(_ in Z)X[_]=Y[_];else G[_]=Y[_];return[X,G]};var CX=(Y,Z)=>nH(Y,Z)[1],l1=(Y)=>Object.keys(Y).length===0,q4=(Y)=>[...Object.entries(Y),...Object.getOwnPropertySymbols(Y).map((Z)=>[Z,Y[Z]])],qX=(Y,Z)=>Object.defineProperties(Y,Object.getOwnPropertyDescriptors(Z)),jX=(Y)=>{let Z=Object.keys(Y).sort(),X={};for(let G=0;G<Z.length;G++)X[Z[G]]=Y[Z[G]];return X};var L1=S1("represents an uninitialized value"),PX=(Y)=>Object.values(Y).filter((Z)=>{if(typeof Z==="number")return!0;return typeof Y[Z]!=="number"});var AY={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},RY=globalThis.File??Blob,wY={ArrayBuffer,Blob,File:RY,FormData,Headers,Request,Response,URL},rH={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},j4={...AY,...wY,...rH,String,Number,Boolean},P2=(Y)=>{let Z=Object.getPrototypeOf(Y);while(Z?.constructor&&(!g0(Z.constructor.name,j4)||!(Y instanceof j4[Z.constructor.name])))Z=Object.getPrototypeOf(Z);let X=Z?.constructor?.name;if(X===void 0||X==="Object")return;return X},S2=(Y)=>typeof Y==="object"&&Y!==null?P2(Y)??"object":y0(Y);var U0=Array.isArray,sH={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"},tH={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"},aH={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"},SX={...sH,...tH,...aH},v2=(Y)=>{let Z=Object(Y).name??null;return Z&&g0(Z,j4)&&j4[Z]===Y?Z:null};var NY=(Y,Z)=>{let X=Y.prototype;while(X!==null){if(X===Z.prototype)return!0;X=Object.getPrototypeOf(X)}return!1};var vX=(Y)=>xX(Y,new Map),xX=(Y,Z)=>{if(typeof Y!=="object"||Y===null)return Y;if(Z?.has(Y))return Z.get(Y);let X=v2(Y.constructor);if(X==="Date")return new Date(Y.getTime());if(X&&X!=="Array")return Y;let G=Array.isArray(Y)?Y.slice():Object.create(Object.getPrototypeOf(Y)),_=Object.getOwnPropertyDescriptors(Y);if(Z){Z.set(Y,G);for(let $ in _){let W=_[$];if("get"in W||"set"in W)continue;W.value=xX(W.value,Z)}}return Object.defineProperties(G,_),G};var eH=(Y)=>{let Z=L1;return()=>Z===L1?Z=Y():Z},E4=(Y)=>typeof Y==="function"&&Y.length===0;var fX=class extends Function{constructor(...Y){let Z=Y.slice(0,-1),X=Y.at(-1);try{super(...Z,X)}catch(G){return G0(`Encountered an unexpected error while compiling your definition:
|
|
4
4
|
Message: ${G}
|
|
5
5
|
Source: (${Y.slice(0,-1)}) => {
|
|
6
6
|
${Y.at(-1)}
|
|
7
|
-
}`)}}};class v1{constructor(Y,...[Z]){return Object.assign(Object.setPrototypeOf(Y.bind(Z?.bind??this),this.constructor.prototype),Z?.attach)}}var hX=
|
|
8
|
-
`)[2]?.trim()||"").match(/\(?(.+?)(?::\d+:\d+)?\)?$/)?.[1]||"unknown").replace(/^file:\/\//,"")}catch{return"unknown"}},
|
|
7
|
+
}`)}}};class v1{constructor(Y,...[Z]){return Object.assign(Object.setPrototypeOf(Y.bind(Z?.bind??this),this.constructor.prototype),Z?.attach)}}var hX=eH(()=>{try{return Function("return false")()}catch{return!0}});var RV=S1("brand");var kX=S1("arkInferred");var IV=S1("args");class r0{constructor(){}}var YJ=()=>{try{return((Error().stack?.split(`
|
|
8
|
+
`)[2]?.trim()||"").match(/\(?(.+?)(?::\d+:\d+)?\)?$/)?.[1]||"unknown").replace(/^file:\/\//,"")}catch{return"unknown"}},ZJ=globalThis.process?.env??{},bX={fileName:YJ,env:ZJ};var yX=(Y)=>Y[0].toUpperCase()+Y.slice(1);var IY=(Y)=>new RegExp(XJ(Y),typeof Y==="string"?"":Y.flags);var XJ=(Y)=>{return`^(?:${typeof Y==="string"?Y:Y.source})$`};var e1={negativeLookahead:(Y)=>`(?!${Y})`,nonCapturingGroup:(Y)=>`(?:${Y})`},x2="\\",V4={" ":1,"\n":1,"\t":1};var GJ=/^-0\.?0*$/.source,pX=/[1-9]\d*/.source,_J=/\.\d+/.source,$J=/\.\d*[1-9]/.source,mX=(Y)=>IY(e1.negativeLookahead(GJ)+e1.nonCapturingGroup("-?"+e1.nonCapturingGroup(e1.nonCapturingGroup("0|"+pX)+e1.nonCapturingGroup(Y.decimalPattern)+"?")+(Y.allowDecimalOnly?"|"+Y.decimalPattern:"")+"?")),gX=mX({decimalPattern:$J,allowDecimalOnly:!1}),WJ=gX.test.bind(gX),m8=mX({decimalPattern:_J,allowDecimalOnly:!0}),PV=m8.test.bind(m8),HJ=/^-?\d*\.?\d*$/,JJ=(Y)=>Y.length!==0&&HJ.test(Y),f2=IY(e1.negativeLookahead("^-0$")+"-?"+e1.nonCapturingGroup(e1.nonCapturingGroup("0|"+pX))),QJ=f2.test.bind(f2),KY=/^-?\d+$/,zJ=KY.test.bind(KY),uX={number:"a number",bigint:"a bigint",integer:"an integer"},dX=(Y,Z)=>`'${Y}' was parsed as ${uX[Z]} but could not be narrowed to a literal value. Avoid unnecessary leading or trailing zeros and other abnormal notation`,UJ=(Y,Z)=>Z==="number"?WJ(Y):QJ(Y),FJ=(Y,Z)=>Z==="number"?Number(Y):Number.parseInt(Y),EJ=(Y,Z)=>Z==="number"?JJ(Y):zJ(Y),cX=(Y,Z)=>BY(Y,"number",Z),lX=(Y,Z)=>BY(Y,"number",{...Z,strict:!0}),oX=(Y,Z)=>BY(Y,"integer",Z),BY=(Y,Z,X)=>{let G=FJ(Y,Z);if(!Number.isNaN(G)){if(EJ(Y,Z)){if(X?.strict)return UJ(Y,Z)?G:A(dX(Y,Z));return G}}return X?.errorOnFail?A(X?.errorOnFail===!0?`Failed to parse ${uX[Z]} from '${Y}'`:X?.errorOnFail):void 0},iX=(Y)=>{if(Y[Y.length-1]!=="n")return;let Z=Y.slice(0,-1),X;try{X=BigInt(Z)}catch{return}if(f2.test(Z))return X;if(KY.test(Z))return A(dX(Y,"bigint"))};var VJ="0.49.0",OJ={version:VJ,filename:bX.fileName(),FileConstructor:RY},P4=OJ,nX=new Map,TY=Object.create(null),h2=(Y)=>{let Z=nX.get(Y);if(Z)return Z;let X=DJ(Y);if(TY[X])X=`${X}${TY[X]++}`;else TY[X]=1;return P4[X]=Y,nX.set(Y,X),X},O4=(Y)=>/^[$A-Z_a-z][\w$]*$/.test(Y),DJ=(Y)=>{switch(typeof Y){case"object":{if(Y===null)break;let Z=P2(Y)??"object";return Z[0].toLowerCase()+Z.slice(1)}case"function":return O4(Y.name)?Y.name:"fn";case"symbol":return Y.description&&O4(Y.description)?Y.description:"symbol"}return G0(`Unexpected attempt to register serializable value of type ${y0(Y)}`)};var k2=(Y)=>typeof Y==="string"?JSON.stringify(Y):typeof Y==="bigint"?`${Y}n`:`${Y}`;var rX=(Y,Z={})=>b2(Y,{onUndefined:"$ark.undefined",onBigInt:(X)=>`$ark.bigint-${X}`,...Z},[]);var i=(Y,Z)=>{switch(y0(Y)){case"object":let X=Y,G=X.constructor.name;return G==="Object"||G==="Array"?Z?.quoteKeys===!1?u8(X,Z?.indent??0,""):JSON.stringify(b2(X,r4,[]),null,Z?.indent):u8(X,Z?.indent??0,"");case"symbol":return r4.onSymbol(Y);default:return k2(Y)}},u8=(Y,Z,X)=>{if(typeof Y==="function")return r4.onFunction(Y);if(typeof Y!=="object"||Y===null)return k2(Y);let G=X+" ".repeat(Z);if(Array.isArray(Y)){if(Y.length===0)return"[]";let $=Y.map((W)=>u8(W,Z,G)).join(`,
|
|
9
9
|
`+G);return Z?`[
|
|
10
10
|
${G}${$}
|
|
11
11
|
${X}]`:`[${$}]`}let _=Y.constructor.name;if(_==="Object"){let $=q4(Y).map(([W,H])=>{let Q=typeof W==="symbol"?r4.onSymbol(W):O4(W)?W:JSON.stringify(W),J=u8(H,Z,G);return`${G}${Q}: ${J}`});if($.length===0)return"{}";return Z?`{
|
|
12
12
|
${$.join(`,
|
|
13
13
|
`)}
|
|
14
|
-
${X}}`:`{${$.join(", ")}}`}if(Y instanceof Date)return S4(Y);if("expression"in Y&&typeof Y.expression==="string")return Y.expression;return _},r4={onCycle:()=>"(cycle)",onSymbol:(Y)=>`Symbol(${h2(Y)})`,onFunction:(Y)=>`Function(${h2(Y)})`},b2=(Y,Z,X)=>{switch(y0(Y)){case"object":{let G=Y;if("toJSON"in G&&typeof G.toJSON==="function")return G.toJSON();if(typeof G==="function")return r4.onFunction(G);if(X.includes(G))return"(cycle)";let _=[...X,G];if(Array.isArray(G))return G.map((W)=>b2(W,Z,_));if(G instanceof Date)return G.toDateString();let $={};for(let W in G)$[W]=b2(G[W],Z,_);for(let W of Object.getOwnPropertySymbols(G))$[Z.onSymbol?.(W)??W.toString()]=b2(G[W],Z,_);return $}case"symbol":return r4.onSymbol(Y);case"bigint":return Z.onBigInt?.(Y)??`${Y}n`;case"undefined":return Z.onUndefined??"undefined";case"string":return Y.replaceAll("\\","\\\\");default:return Y}},S4=(Y)=>{let Z=Y.getFullYear(),X=Y.getMonth(),G=Y.getDate(),_=Y.getHours(),$=Y.getMinutes(),W=Y.getSeconds(),H=Y.getMilliseconds();if(X===0&&G===1&&_===0&&$===0&&W===0&&H===0)return`${Z}`;let Q=`${
|
|
14
|
+
${X}}`:`{${$.join(", ")}}`}if(Y instanceof Date)return S4(Y);if("expression"in Y&&typeof Y.expression==="string")return Y.expression;return _},r4={onCycle:()=>"(cycle)",onSymbol:(Y)=>`Symbol(${h2(Y)})`,onFunction:(Y)=>`Function(${h2(Y)})`},b2=(Y,Z,X)=>{switch(y0(Y)){case"object":{let G=Y;if("toJSON"in G&&typeof G.toJSON==="function")return G.toJSON();if(typeof G==="function")return r4.onFunction(G);if(X.includes(G))return"(cycle)";let _=[...X,G];if(Array.isArray(G))return G.map((W)=>b2(W,Z,_));if(G instanceof Date)return G.toDateString();let $={};for(let W in G)$[W]=b2(G[W],Z,_);for(let W of Object.getOwnPropertySymbols(G))$[Z.onSymbol?.(W)??W.toString()]=b2(G[W],Z,_);return $}case"symbol":return r4.onSymbol(Y);case"bigint":return Z.onBigInt?.(Y)??`${Y}n`;case"undefined":return Z.onUndefined??"undefined";case"string":return Y.replaceAll("\\","\\\\");default:return Y}},S4=(Y)=>{let Z=Y.getFullYear(),X=Y.getMonth(),G=Y.getDate(),_=Y.getHours(),$=Y.getMinutes(),W=Y.getSeconds(),H=Y.getMilliseconds();if(X===0&&G===1&&_===0&&$===0&&W===0&&H===0)return`${Z}`;let Q=`${LJ[X]} ${G}, ${Z}`;if(_===0&&$===0&&W===0&&H===0)return Q;let J=Y.toLocaleTimeString(),z=J.endsWith(" AM")||J.endsWith(" PM")?J.slice(-3):"";if(z)J=J.slice(0,-z.length);if(H)J+=`.${AJ(H,3)}`;else if(MJ.test(J))J=J.slice(0,-3);return`${J+z}, ${Q}`},LJ=["January","February","March","April","May","June","July","August","September","October","November","December"],MJ=/:\d\d:00$/,AJ=(Y,Z)=>String(Y).padStart(Z,"0");var sX=(Y,Z,...[X])=>{let G=X?.stringifySymbol??i,_=Y;switch(typeof Z){case"string":_=O4(Z)?Y===""?Z:`${Y}.${Z}`:`${Y}[${JSON.stringify(Z)}]`;break;case"number":_=`${Y}[${Z}]`;break;case"symbol":_=`${Y}[${G(Z)}]`;break;default:if(X?.stringifyNonKey)_=`${Y}[${X.stringifyNonKey(Z)}]`;else A(`${i(Z)} must be a PropertyKey or stringifyNonKey must be passed to options`)}return _},Y4=(Y,...Z)=>Y.reduce((X,G)=>sX(X,G,...Z),"");class y2 extends p8{cache={};constructor(...Y){super();this.push(...Y)}toJSON(){if(this.cache.json)return this.cache.json;this.cache.json=[];for(let Y=0;Y<this.length;Y++)this.cache.json.push(typeof this[Y]==="symbol"?i(this[Y]):this[Y]);return this.cache.json}stringify(){if(this.cache.stringify)return this.cache.stringify;return this.cache.stringify=Y4(this)}stringifyAncestors(){if(this.cache.stringifyAncestors)return this.cache.stringifyAncestors;let Y="",Z=[Y];for(let X of this)Y=sX(Y,X),Z.push(Y);return this.cache.stringifyAncestors=Z}}class CY{chars;i;def;constructor(Y){this.def=Y,this.chars=[...Y],this.i=0}shift(){return this.chars[this.i++]??""}get lookahead(){return this.chars[this.i]??""}get nextLookahead(){return this.chars[this.i+1]??""}get length(){return this.chars.length}shiftUntil(Y){let Z="";while(this.lookahead){if(Y(this,Z))if(Z[Z.length-1]===x2)Z=Z.slice(0,-1);else break;Z+=this.shift()}return Z}shiftUntilLookahead(Y){return typeof Y==="string"?this.shiftUntil((Z)=>Z.lookahead===Y):this.shiftUntil((Z)=>(Z.lookahead in Y))}shiftUntilNonWhitespace(){return this.shiftUntil(()=>!(this.lookahead in V4))}jumpToIndex(Y){this.i=Y<0?this.length+Y:Y}jumpForward(Y){this.i+=Y}get location(){return this.i}get unscanned(){return this.chars.slice(this.i,this.length).join("")}get scanned(){return this.chars.slice(0,this.i).join("")}sliceChars(Y,Z){return this.chars.slice(Y,Z).join("")}lookaheadIs(Y){return this.lookahead===Y}lookaheadIsIn(Y){return this.lookahead in Y}}var ZO=S1("implementedTraits");var qY="$ark",RJ=2;while(qY in globalThis)qY=`$ark${RJ++}`;var tX=qY;globalThis[tX]=P4;var I=P4,wJ=(Y)=>`${tX}.${Y}`,T0=(Y)=>wJ(h2(Y));class d8 extends j2{argNames;body="";constructor(...Y){super();this.argNames=Y;for(let Z of Y){if(Z in this)throw Error(`Arg name '${Z}' would overwrite an existing property on FunctionBody`);this[Z]=Z}}indentation=0;indent(){return this.indentation+=4,this}dedent(){return this.indentation-=4,this}prop(Y,Z=!1){return jY(Y,Z)}index(Y,Z=!1){return aX(`${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 fX(...this.argNames,this.body)}}var Z4=(Y)=>W1(Y,"object")||typeof Y==="symbol"?T0(Y):k2(Y),jY=(Y,Z=!1)=>{if(typeof Y==="string"&&O4(Y))return`${Z?"?":""}.${Y}`;return aX(
|
|
17
|
+
`):this.body} }`}compile(){return new fX(...this.argNames,this.body)}}var Z4=(Y)=>W1(Y,"object")||typeof Y==="symbol"?T0(Y):k2(Y),jY=(Y,Z=!1)=>{if(typeof Y==="string"&&O4(Y))return`${Z?"?":""}.${Y}`;return aX(NJ(Y),Z)},NJ=(Y)=>typeof Y==="symbol"?T0(Y):JSON.stringify(Y),aX=(Y,Z=!1)=>`${Z?"?.":""}[${Y}]`;class g2 extends d8{traversalKind;optimistic;constructor(Y){super("data","ctx");this.traversalKind=Y.kind,this.optimistic=Y.optimistic===!0}invoke(Y,Z){let X=Z?.arg??this.data,G=typeof Y==="string"?!0:this.requiresContextFor(Y),_=typeof Y==="string"?Y:Y.id;if(G)return`${this.referenceToId(_,Z)}(${X}, ${this.ctx})`;return`${this.referenceToId(_,Z)}(${X})`}referenceToId(Y,Z){let X=Z?.kind??this.traversalKind,G=`this.${Y}${X}`;return Z?.bind?`${G}.bind(${Z?.bind})`:G}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 G=this.requiresContextFor(X);if(G)this.line(`${this.ctx}.path.push(${Y})`);if(this.check(X,{arg:Z}),G)this.line(`${this.ctx}.path.pop()`);return this}check(Y,Z){return this.traversalKind==="Allows"?this.if(`!${this.invoke(Y,Z)}`,()=>this.return(!1)):this.line(this.invoke(Y,Z))}}var c8=(Y)=>o(Y,(Z,X)=>[Z,U0(X)?[...X]:X]),Y1=S1("arkKind"),y=(Y,Z)=>Y?.[Y1]===Z,D0=(Y)=>y(Y,"root")||y(Y,"constraint");var eX=["unit","proto","domain"],s4=["required","optional","index","sequence"],PY=["pattern","divisor","exactLength","max","min","maxLength","minLength","before","after"],l8=[...PY,...s4,"structure","predicate"],t4=["alias","union","morph","unit","intersection","proto","domain"],IJ=[...t4,...l8],o8=o(l8,(Y,Z)=>[Z,1]),YG=o([...s4,"undeclared"],(Y,Z)=>[Z,1]),ZG=o(IJ,(Y,Z)=>[Z,Y]),a4=(Y)=>typeof Y==="string"&&(Y in ZG);var e4=(Y)=>ZG[Y],i8=(Y)=>t4.slice(e4(Y)+1),yO=[...i8("union"),"alias"],gO=[...i8("morph"),"alias"],w1=(Y)=>{if(typeof Y==="string"||typeof Y==="boolean"||Y===null)return Y;if(typeof Y==="number"){if(Number.isNaN(Y))return"NaN";if(Y===Number.POSITIVE_INFINITY)return"Infinity";if(Y===Number.NEGATIVE_INFINITY)return"-Infinity";return Y}return Z4(Y)},D4=(Y)=>{let Z="{ ";for(let[X,G]of Object.entries(Y))Z+=`${X}: ${Z4(G)}, `;return Z+" }"},r=(Y)=>{let Z=Y;if(Z.hasAssociatedError)Z.defaults.expected??=(X)=>("description"in X)?X.description:Z.defaults.description(X),Z.defaults.actual??=(X)=>i(X),Z.defaults.problem??=(X)=>`must be ${X.expected}${X.actual?` (was ${X.actual})`:""}`,Z.defaults.message??=(X)=>{if(X.path.length===0)return X.problem;let G=`${X.propString} ${X.problem}`;if(G[0]==="[")return`value at ${G}`;return G};return Z};class XG extends Error{name="ToJsonSchemaError";code;context;constructor(Y,Z){super(i(Z,{quoteKeys:!1,indent:4}));this.code=Y,this.context=Z}hasCode(Y){return this.code===Y}}var KJ={dialect:"https://json-schema.org/draft/2020-12/schema",useRefs:!1,fallback:{arrayObject:(Y)=>w0.throw("arrayObject",Y),arrayPostfix:(Y)=>w0.throw("arrayPostfix",Y),defaultValue:(Y)=>w0.throw("defaultValue",Y),domain:(Y)=>w0.throw("domain",Y),morph:(Y)=>w0.throw("morph",Y),patternIntersection:(Y)=>w0.throw("patternIntersection",Y),predicate:(Y)=>w0.throw("predicate",Y),proto:(Y)=>w0.throw("proto",Y),symbolKey:(Y)=>w0.throw("symbolKey",Y),unit:(Y)=>w0.throw("unit",Y),date:(Y)=>w0.throw("date",Y)}},w0={Error:XG,throw:(...Y)=>{throw new w0.Error(...Y)},throwInternalOperandError:(Y,Z)=>G0(`Unexpected JSON Schema input for ${Y}: ${i(Z)}`),defaultConfig:KJ};I.config??={};var p2=(Y,Z)=>{if(!Z)return Y;let X={...Y},G;for(G in Z){let _={...Y.keywords};if(G==="keywords"){for(let $ in Z[G]){let W=Z.keywords[$];if(W===void 0)continue;_[$]=typeof W==="string"?{description:W}:W}X.keywords=_}else if(G==="toJsonSchema")X[G]=SY(Y.toJsonSchema,Z.toJsonSchema);else if(a4(G))X[G]={...Y[G],...Z[G]};else X[G]=Z[G]}return X},SY=(Y,Z)=>{if(!Y)return Z??{};if(!Z)return Y;let X={...Y},G;for(G in Z)if(G==="fallback")X.fallback=BJ(Y.fallback,Z.fallback);else X[G]=Z[G];return X},BJ=(Y,Z)=>{Y=GG(Y),Z=GG(Z);let X={},G;for(G in w0.defaultConfig.fallback)X[G]=Z[G]??Z.default??Y[G]??Y.default??w0.defaultConfig.fallback[G];return X},GG=(Y)=>typeof Y==="function"?{default:Y}:Y??{};class L4 extends j2{[Y1]="error";path;data;nodeConfig;input;ctx;constructor({prefixPath:Y,relativePath:Z,...X},G){super();this.input=X,this.ctx=G,qX(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:NX(Y,J.path,Z)})))});this.nodeConfig=G.config[this.code];let $=[...X.path??G.path];if(Z)$.push(...Z);if(Y)$.unshift(...Y);this.path=new y2(...$),this.data="data"in X?X.data:_}transform(Y){return new L4(Y({data:this.data,path:this.path,...this.input}),this.ctx)}hasCode(Y){return this.code===Y}get propString(){return Y4(this.path)}get expected(){if(this.input.expected)return this.input.expected;let Y=this.meta?.expected??this.nodeConfig.expected;return typeof Y==="function"?Y(this.input):Y}get actual(){if(this.input.actual)return this.input.actual;let Y=this.meta?.actual??this.nodeConfig.actual;return typeof Y==="function"?Y(this.data):Y}get problem(){if(this.input.problem)return this.input.problem;let Y=this.meta?.problem??this.nodeConfig.problem;return typeof Y==="function"?Y(this):Y}get message(){if(this.input.message)return this.input.message;let Y=this.meta?.message??this.nodeConfig.message;return typeof Y==="function"?Y(this):Y}get flat(){return this.hasCode("intersection")?[...this.errors]:[this]}toJSON(){return{data:this.data,path:this.path,...this.input,expected:this.expected,actual:this.actual,problem:this.problem,message:this.message}}toString(){return this.message}throw(){throw this}}class J1 extends p8{[Y1]="errors";ctx;constructor(Y){super();this.ctx=Y}byPath=Object.create(null);get flatByPath(){return o(this.byPath,(Y,Z)=>[Y,Z.flat])}get flatProblemsByPath(){return o(this.byPath,(Y,Z)=>[Y,Z.flat.map((X)=>X.problem)])}byAncestorPath=Object.create(null);count=0;mutable=this;throw(){throw this.toTraversalError()}toTraversalError(){return new vY(this)}add(Y){if(this.includes(Y))return;this._add(Y)}transform(Y){let Z=new J1(this.ctx);for(let X of this)Z.add(Y(X));return Z}merge(Y){for(let Z of Y){if(this.includes(Z))continue;this._add(new L4({...Z,path:[...this.ctx.path,...Z.path]},this.ctx))}}affectsPath(Y){if(this.length===0)return!1;return Y.stringifyAncestors().some((Z)=>(Z in this.byPath))||Y.stringify()in this.byAncestorPath}get summary(){return this.toString()}get issues(){return this}toJSON(){return[...this.map((Y)=>Y.toJSON())]}toString(){return this.join(`
|
|
18
18
|
`)}_add(Y){let Z=this.byPath[Y.propString];if(Z){if(Z.hasCode("union")&&Z.errors.length===0)return;let X=Y.hasCode("union")&&Y.errors.length===0?Y:new L4({code:"intersection",errors:Z.hasCode("intersection")?[...Z.errors,Y]:[Z,Y]},this.ctx),G=this.indexOf(Z);this.mutable[G===-1?this.length:G]=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 vY extends Error{name="TraversalError";constructor(Y){if(Y.length===1)super(Y.summary);else super(`
|
|
19
|
-
`+Y.map((Z)=>` \u2022 ${
|
|
20
|
-
`));Object.defineProperty(this,"arkErrors",{value:Y,enumerable:!1})}}var
|
|
19
|
+
`+Y.map((Z)=>` \u2022 ${TJ(Z)}`).join(`
|
|
20
|
+
`));Object.defineProperty(this,"arkErrors",{value:Y,enumerable:!1})}}var TJ=(Y)=>Y.toString().split(`
|
|
21
21
|
`).join(`
|
|
22
|
-
`);class x1{path=[];errors=new J1(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 y2(...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),G;if(X!==void 0){G=this.root;for(let _=0;_<Y.length-1;_++)G=G[Y[_]]}for(let _ of Z){this.path=[...Y];let $=D0(_),W=_(G===void 0?this.root:G[X],this);if(W instanceof L4){this.errors.add(W);break}if(W instanceof J1){if(!$)this.errors.merge(W);break}if(G===void 0)this.root=W;else G[X]=W;this.applyQueuedMorphs()}}}var Q1=(Y,Z,X)=>{if(!X)return Z();X.path.push(Y);let G=Z();return X.path.pop(),G};class u2 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(_)return this.traverseApply(G,_),_.hasError()?_.errors:_.data;return this.rootApply(G,$)},{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,_)=>SJ(G,_.shallowReferences),[this]);let X=this.isStructural();this.flatRefs=[],this.flatMorphs=[];for(let G=0;G<this.children.length;G++){if(this.includesTransform||=this.children[G].includesTransform,this.includesContextualPredicate||=this.children[G].includesContextualPredicate,this.isCyclic||=this.children[G].isCyclic,!X){let _=this.children[G].flatRefs;for(let $=0;$<_.length;$++){let W=_[$];if(!this.flatRefs.some((H)=>$G(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[G].referencesById)}this.flatRefs.sort((G,_)=>G.path.length>_.path.length?1:G.path.length<_.path.length?-1:G.propString>_.propString?1:G.propString<_.propString?-1:G.node.expression<_.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((G)=>G.length===1||G.name==="$arkStructuralMorph")?this.hasKind("union")?this.branches.some((G)=>G.shallowMorphs.length>1)?"contextual":"branchedOptimistic":this.shallowMorphs.length>1?"contextual":"optimistic":"contextual":"contextual",this.rootApply=this.createRootApply(),this.allows=this.allowsRequiresContext?(G)=>this.traverseAllows(G,new x1(G,this.$.resolvedConfig)):(G)=>this.traverseAllows(G)}createRootApply(){switch(this.rootApplyStrategy){case"allows":return(Z,X)=>{if(this.allows(Z))return Z;let G=new x1(Z,this.$.resolvedConfig);return this.traverseApply(Z,G),G.finalize(X)};case"contextual":return(Z,X)=>{let G=new x1(Z,this.$.resolvedConfig);return this.traverseApply(Z,G),G.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 G=new x1(Z,this.$.resolvedConfig);return this.traverseApply(Z,G),G.finalize(X)};case"branchedOptimistic":return this.createBranchedOptimisticRootApply();default:return this.rootApplyStrategy,G0(`Unexpected rootApplyStrategy ${this.rootApplyStrategy}`)}}compiledMeta=PJ(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,G]of this.innerEntries){let _=this.impl.keys[X];if(_.reduceIo)_.reduceIo(Y,Z,G);else if(_.child){let $=G;Z[X]=F0($)?$.map((W)=>W[Y]):$[Y]}else Z[X]=G}return this.$.node(this.kind,Z)}toJSON(){return this.json}toString(){return`Type<${this.expression}>`}equals(Y){let Z=D0(Y)?Y:this.$.parseDefinition(Y);return this.innerHash===Z.innerHash}ifEquals(Y){return this.equals(Y)?this:void 0}hasKind(Y){return this.kind===Y}assertHasKind(Y){if(this.kind!==Y)C4(`${this.kind} node was not of asserted kind ${Y}`);return this}hasKindIn(...Y){return Y.includes(this.kind)}assertHasKindIn(...Y){if(!s1(Y,this.kind))C4(`${this.kind} node was not one of asserted kinds ${Y}`);return this}isBasis(){return s1(eX,this.kind)}isConstraint(){return s1(l8,this.kind)}isStructural(){return s1(s4,this.kind)}isRefinement(){return s1(PY,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=m2.normalize(Y);return this._select(Z)}_select(Y){let Z=m2.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 m2.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 G;if(Z.seen[this.id]=()=>G,this.hasKind("structure")&&this.undeclared!==Z.undeclaredKeyHandling)Z={...Z,undeclaredKeyHandling:this.undeclared};let _=o(this.inner,(J,z)=>{if(!this.impl.keys[J].child)return[J,z];let U=z;if(!F0(U)){let L=U._transform(Y,Z);return L?[J,L]:[]}if(U.length===0)return[J,z];let O=U.flatMap((L)=>{return L._transform(Y,Z)??[]});return O.length?[J,O]:[]});delete Z.seen[this.id];let $=Object.assign(_,{meta:this.meta}),W=Z.selected&&!Z.selected.includes(this)?$:Y(this.kind,$,Z);if(W===null)return null;if(D0(W))return G=W;let H=Object.keys(W);if((H.length===0||H.length===1&&H[0]==="meta")&&!l1(this.inner))return null;if((this.kind==="required"||this.kind==="optional"||this.kind==="index")&&!("value"in W))return Z.undeclaredKeyHandling?{...W,value:I.intrinsic.unknown}:null;if(this.kind==="morph")W.in??=I.intrinsic.unknown;return G=X.node(this.kind,W,Z.parseOptions)}configureReferences(Y,Z="references"){let X=m2.normalize(Z),G=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,G(this.kind,{...this.inner,meta:this.meta}));let _=this._select(X),$=_&&U4(_),W=X.boundary==="child"?(H,Q)=>Q.root.children.includes(H):X.boundary==="shallow"?(H)=>H.kind!=="structure":()=>!0;return this.$.finalize(this.transform(G,{shouldTransform:W,selected:$}))}}var m2={applyBoundary:{self:(Y)=>[Y],child:(Y)=>[...Y.children],shallow:(Y)=>[...Y.shallowReferences],references:(Y)=>[...Y.references]},applyMethod:{filter:(Y)=>Y,assertFilter:(Y,Z,X)=>{if(Y.length===0)C4(_G(Z,X));return Y},find:(Y)=>Y[0],assertFind:(Y,Z,X)=>{if(Y.length===0)C4(_G(Z,X));return Y[0]}},normalize:(Y)=>typeof Y==="function"?{boundary:"references",method:"filter",where:Y}:typeof Y==="string"?g0(Y,m2.applyBoundary)?{method:"filter",boundary:Y}:{boundary:"references",method:"filter",kind:Y}:{boundary:"references",method:"filter",...Y}},_G=(Y,Z)=>`${Y} had no references matching ${i(Z)}.`,qJ=(Y)=>Y4(Y,{stringifyNonKey:(Z)=>Z.expression}),jJ=/"(\$ark\.[^"]+)"/g,PJ=(Y)=>JSON.stringify(Y).replaceAll(jJ,"$1"),f1=(Y,Z)=>({path:Y,node:Z,propString:qJ(Y)}),$G=(Y,Z)=>Y.propString===Z.propString&&Y.node.equals(Z.node),xY=(Y,Z)=>c1(Y,Z,{isEqual:$G}),SJ=(Y,Z)=>c1(Y,Z,{isEqual:(X,G)=>X.equals(G)});class S extends Array{static init(Y,Z,X,G){return new S({kind:Y,l:Z,r:X,path:G?.path??[],optional:G?.optional??!1})}add(Y,Z,X,G){return this.push({kind:Y,l:Z,r:X,path:G?.path??[],optional:G?.optional??!1}),this}get summary(){return this.describeReasons()}describeReasons(){if(this.length===1){let{path:Y,l:Z,r:X}=this[0],G=Y4(Y);return hY(`Intersection${G&&` at ${G}`} of ${WG(Z,X)}`)}return`The following intersections result in unsatisfiable types:
|
|
22
|
+
`);class x1{path=[];errors=new J1(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 y2(...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),G;if(X!==void 0){G=this.root;for(let _=0;_<Y.length-1;_++)G=G[Y[_]]}for(let _ of Z){this.path=[...Y];let $=D0(_),W=_(G===void 0?this.root:G[X],this);if(W instanceof L4){this.errors.add(W);break}if(W instanceof J1){if(!$)this.errors.merge(W);break}if(G===void 0)this.root=W;else G[X]=W;this.applyQueuedMorphs()}}}var Q1=(Y,Z,X)=>{if(!X)return Z();X.path.push(Y);let G=Z();return X.path.pop(),G};class u2 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(_)return this.traverseApply(G,_),_.hasError()?_.errors:_.data;return this.rootApply(G,$)},{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,_)=>PJ(G,_.shallowReferences),[this]);let X=this.isStructural();this.flatRefs=[],this.flatMorphs=[];for(let G=0;G<this.children.length;G++){if(this.includesTransform||=this.children[G].includesTransform,this.includesContextualPredicate||=this.children[G].includesContextualPredicate,this.isCyclic||=this.children[G].isCyclic,!X){let _=this.children[G].flatRefs;for(let $=0;$<_.length;$++){let W=_[$];if(!this.flatRefs.some((H)=>$G(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[G].referencesById)}this.flatRefs.sort((G,_)=>G.path.length>_.path.length?1:G.path.length<_.path.length?-1:G.propString>_.propString?1:G.propString<_.propString?-1:G.node.expression<_.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((G)=>G.length===1||G.name==="$arkStructuralMorph")?this.hasKind("union")?this.branches.some((G)=>G.shallowMorphs.length>1)?"contextual":"branchedOptimistic":this.shallowMorphs.length>1?"contextual":"optimistic":"contextual":"contextual",this.rootApply=this.createRootApply(),this.allows=this.allowsRequiresContext?(G)=>this.traverseAllows(G,new x1(G,this.$.resolvedConfig)):(G)=>this.traverseAllows(G)}createRootApply(){switch(this.rootApplyStrategy){case"allows":return(Z,X)=>{if(this.allows(Z))return Z;let G=new x1(Z,this.$.resolvedConfig);return this.traverseApply(Z,G),G.finalize(X)};case"contextual":return(Z,X)=>{let G=new x1(Z,this.$.resolvedConfig);return this.traverseApply(Z,G),G.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 G=new x1(Z,this.$.resolvedConfig);return this.traverseApply(Z,G),G.finalize(X)};case"branchedOptimistic":return this.createBranchedOptimisticRootApply();default:return this.rootApplyStrategy,G0(`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,G]of this.innerEntries){let _=this.impl.keys[X];if(_.reduceIo)_.reduceIo(Y,Z,G);else if(_.child){let $=G;Z[X]=U0($)?$.map((W)=>W[Y]):$[Y]}else Z[X]=G}return this.$.node(this.kind,Z)}toJSON(){return this.json}toString(){return`Type<${this.expression}>`}equals(Y){let Z=D0(Y)?Y:this.$.parseDefinition(Y);return this.innerHash===Z.innerHash}ifEquals(Y){return this.equals(Y)?this:void 0}hasKind(Y){return this.kind===Y}assertHasKind(Y){if(this.kind!==Y)C4(`${this.kind} node was not of asserted kind ${Y}`);return this}hasKindIn(...Y){return Y.includes(this.kind)}assertHasKindIn(...Y){if(!s1(Y,this.kind))C4(`${this.kind} node was not one of asserted kinds ${Y}`);return this}isBasis(){return s1(eX,this.kind)}isConstraint(){return s1(l8,this.kind)}isStructural(){return s1(s4,this.kind)}isRefinement(){return s1(PY,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=m2.normalize(Y);return this._select(Z)}_select(Y){let Z=m2.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 m2.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 G;if(Z.seen[this.id]=()=>G,this.hasKind("structure")&&this.undeclared!==Z.undeclaredKeyHandling)Z={...Z,undeclaredKeyHandling:this.undeclared};let _=o(this.inner,(J,z)=>{if(!this.impl.keys[J].child)return[J,z];let F=z;if(!U0(F)){let L=F._transform(Y,Z);return L?[J,L]:[]}if(F.length===0)return[J,z];let O=F.flatMap((L)=>{return L._transform(Y,Z)??[]});return O.length?[J,O]:[]});delete Z.seen[this.id];let $=Object.assign(_,{meta:this.meta}),W=Z.selected&&!Z.selected.includes(this)?$:Y(this.kind,$,Z);if(W===null)return null;if(D0(W))return G=W;let H=Object.keys(W);if((H.length===0||H.length===1&&H[0]==="meta")&&!l1(this.inner))return null;if((this.kind==="required"||this.kind==="optional"||this.kind==="index")&&!("value"in W))return Z.undeclaredKeyHandling?{...W,value:I.intrinsic.unknown}:null;if(this.kind==="morph")W.in??=I.intrinsic.unknown;return G=X.node(this.kind,W,Z.parseOptions)}configureReferences(Y,Z="references"){let X=m2.normalize(Z),G=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,G(this.kind,{...this.inner,meta:this.meta}));let _=this._select(X),$=_&&F4(_),W=X.boundary==="child"?(H,Q)=>Q.root.children.includes(H):X.boundary==="shallow"?(H)=>H.kind!=="structure":()=>!0;return this.$.finalize(this.transform(G,{shouldTransform:W,selected:$}))}}var m2={applyBoundary:{self:(Y)=>[Y],child:(Y)=>[...Y.children],shallow:(Y)=>[...Y.shallowReferences],references:(Y)=>[...Y.references]},applyMethod:{filter:(Y)=>Y,assertFilter:(Y,Z,X)=>{if(Y.length===0)C4(_G(Z,X));return Y},find:(Y)=>Y[0],assertFind:(Y,Z,X)=>{if(Y.length===0)C4(_G(Z,X));return Y[0]}},normalize:(Y)=>typeof Y==="function"?{boundary:"references",method:"filter",where:Y}:typeof Y==="string"?g0(Y,m2.applyBoundary)?{method:"filter",boundary:Y}:{boundary:"references",method:"filter",kind:Y}:{boundary:"references",method:"filter",...Y}},_G=(Y,Z)=>`${Y} had no references matching ${i(Z)}.`,CJ=(Y)=>Y4(Y,{stringifyNonKey:(Z)=>Z.expression}),qJ=/"(\$ark\.[^"]+)"/g,jJ=(Y)=>JSON.stringify(Y).replaceAll(qJ,"$1"),f1=(Y,Z)=>({path:Y,node:Z,propString:CJ(Y)}),$G=(Y,Z)=>Y.propString===Z.propString&&Y.node.equals(Z.node),xY=(Y,Z)=>c1(Y,Z,{isEqual:$G}),PJ=(Y,Z)=>c1(Y,Z,{isEqual:(X,G)=>X.equals(G)});class S extends Array{static init(Y,Z,X,G){return new S({kind:Y,l:Z,r:X,path:G?.path??[],optional:G?.optional??!1})}add(Y,Z,X,G){return this.push({kind:Y,l:Z,r:X,path:G?.path??[],optional:G?.optional??!1}),this}get summary(){return this.describeReasons()}describeReasons(){if(this.length===1){let{path:Y,l:Z,r:X}=this[0],G=Y4(Y);return hY(`Intersection${G&&` at ${G}`} of ${WG(Z,X)}`)}return`The following intersections result in unsatisfiable types:
|
|
23
23
|
\u2022 ${this.map(({path:Y,l:Z,r:X})=>`${Y}: ${WG(Z,X)}`).join(`
|
|
24
|
-
\u2022 `)}`}throw(){return A(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 I.intrinsic.never}}var WG=(Y,Z)=>`${fY(Y)} and ${fY(Z)}`,fY=(Y)=>D0(Y)?Y.expression:F0(Y)?Y.map(fY).join(" | ")||"never":String(Y),hY=(Y)=>`${Y} results in an unsatisfiable type`;var Y2={},z1=(Y,Z,X)=>L0(Y,Z,{$:X,invert:!1,pipe:!1}),d2=(Y,Z,X)=>L0(Y,Z,{$:X,invert:!1,pipe:!0}),L0=(Y,Z,X)=>{let G=X.pipe?"|>":"&",_=`${Y.hash}${G}${Z.hash}`;if(Y2[_]!==void 0)return Y2[_];if(!X.pipe){let H=`${Z.hash}${G}${Y.hash}`;if(Y2[H]!==void 0){let Q=Y2[H],J=Q instanceof S?Q.invert():Q;return Y2[_]=J,J}}let $=!X.pipe||!Y.includesTransform&&!Z.includesTransform;if($&&Y.equals(Z))return Y;let W=$?kY(Y,Z,X):Y.hasKindIn(...t4)?vJ(Y,Z,X):kY(Y,Z,X);if(D0(W)){if(Y.equals(W))W=Y;else if(Z.equals(W))W=Z}return Y2[_]=W,W},kY=(Y,Z,X)=>{let G=Y.precedence<Z.precedence?Y.kind:Z.kind,_=Y.impl.intersections[Z.kind]??Z.impl.intersections[Y.kind];if(_===void 0)return null;else if(G===Y.kind)return _(Y,Z,X);else{let $=_(Z,Y,{...X,invert:!X.invert});if($ instanceof S)$=$.invert();return $}},vJ=(Y,Z,X)=>Y.includesTransform||Z.includesTransform?X.invert?HG(Z,Y,X):HG(Y,Z,X):kY(Y,Z,X),HG=(Y,Z,X)=>Y.distribute((G)=>xJ(G,Z,X),(G)=>{let _=G.filter(D0);if(_.length===0)return S.init("union",Y.branches,Z.branches);if(_.length<Y.branches.length||!Y.branches.every((H,Q)=>H.in.equals(_[Q].in)))return X.$.parseSchema(_);let $;if(_.length===1){let H=_[0];if(!$)return H;return X.$.node("morph",{...H.inner,in:H.in.configure($,"self")})}let W={branches:_};if($)W.meta=$;return X.$.parseSchema(W)}),xJ=(Y,Z,X)=>{if(Y.hasKind("morph")){let _=[...Y.morphs];if(Y.lastMorphIfNode){let $=L0(Y.lastMorphIfNode,Z,X);if($ instanceof S)return $;_[_.length-1]=$}else _.push(Z);return X.$.node("morph",{morphs:_,in:Y.inner.in})}if(Z.hasKind("morph")){let _=L0(Y,Z.in,X);if(_ instanceof S)return _;return X.$.node("morph",{morphs:[Z],in:_})}return X.$.node("morph",{morphs:[Z],in:Y})};class N1 extends u2{constructor(Y,Z){super(Y,Z);Object.defineProperty(this,Y1,{value:"constraint",enumerable:!1})}impliedSiblings;intersect(Y){return z1(this,Y,this.$)}}class X4 extends N1{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 s0=(Y)=>(Z,X)=>{if(F0(Z)){if(Z.length===0)return;let _=Z.map(($)=>X.$.node(Y,$));if(Y==="predicate")return _;return _.sort(($,W)=>$.hash<W.hash?-1:1)}let G=X.$.node(Y,Z);return G.hasOpenIntersection()?[G]:G},Z2=(Y)=>{let Z=Y.r.shift();if(!Z){let G=Y.l.length===0&&Y.kind==="structure"?I.intrinsic.unknown.internal:Y.ctx.$.node(Y.kind,Object.assign(Y.baseInner,fJ(Y.l)),{prereduced:!0});for(let _ of Y.roots){if(G instanceof S)return G;G=L0(_,G,Y.ctx)}return G}let X=!1;for(let G=0;G<Y.l.length;G++){let _=L0(Y.l[G],Z,Y.ctx);if(_===null)continue;if(_ instanceof S)return _;if(!X){if(_.isRoot())return Y.roots.push(_),Y.l.splice(G),Z2(Y);Y.l[G]=_,X=!0}else if(!Y.l.includes(_))return G0(`Unexpectedly encountered multiple distinct intersection results for refinement ${_}`)}if(!X)Y.l.push(Z);if(Y.kind==="intersection"){if(Z.impliedSiblings)for(let G of Z.impliedSiblings)c1(Y.r,G)}return Z2(Y)},X2=(Y)=>{return Object.entries(Y).flatMap(([X,G])=>(X in o8)?G:[]).sort((X,G)=>X.precedence<G.precedence?-1:X.precedence>G.precedence?1:X.kind==="predicate"&&G.kind==="predicate"?0:X.hash<G.hash?-1:1)},fJ=(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 G0(`Unexpected intersection of closed refinements of kind ${X.kind}`);Z[X.kind]=X}return Z},JG=(...Y)=>A(QG(...Y)),QG=(Y,Z,X)=>{let G=X.hasKind("morph")?"a morph":X.isUnknown()?"unknown":X.exclude(Z).defaultShortDescription;return`${yX(Y)} operand must be ${Z.description} (was ${G})`};var zG=(Y,Z,X)=>new M4(Y,Z,X,X,null);class n8 extends v1{}class M4 extends v1{[Y1]="generic";paramDefs;bodyDef;$;arg$;baseInstantiation;hkt;description;constructor(Y,Z,X,G,_){super((...$)=>{let W=o(this.names,(H,Q)=>{let J=this.arg$.parse($[H]);if(!J.extends(this.constraints[H]))A(hJ(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$=G,this.hkt=_,this.description=_?new _().description??`a generic type for ${_.constructor.name}`:"a generic type",this.baseInstantiation=this(...this.constraints)}defIsLazy(){return this.bodyDef instanceof n8}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:rX(this.bodyDef)})}get params(){return this.cacheGetter("params",this.paramDefs.map((Y)=>typeof Y==="string"?[Y,I.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 hJ=(Y,Z,X)=>`${Y} must be assignable to ${Z} (was ${X})`;var kJ=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 FG extends N1{serializedPredicate=T0(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 bY={implementation:kJ,Node:FG};var bJ=r({kind:"divisor",collapsibleKey:"rule",keys:{rule:{parse:(Y)=>Number.isInteger(Y)?Y:A(yJ(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/gJ(Y.rule,Z.rule))})},obviatesBasisDescription:!0});class UG extends X4{traverseAllows=(Y)=>Y%this.rule===0;compiledCondition=`data % ${this.rule} === 0`;compiledNegation=`data % ${this.rule} !== 0`;impliedBasis=I.intrinsic.number.internal;expression=`% ${this.rule}`;reduceJsonSchema(Y){if(Y.type="integer",this.rule===1)return Y;return Y.multipleOf=this.rule,Y}}var yY={implementation:bJ,Node:UG};var yJ=(Y)=>`divisor must be an integer (was ${Y})`,gJ=(Y,Z)=>{let X,G=Y,_=Z;while(_!==0)X=_,_=G%_,G=X;return G};class M1 extends X4{boundOperandKind=dJ[this.kind];compiledActual=this.boundOperandKind==="value"?"data":this.boundOperandKind==="length"?"data.length":"data.valueOf()";comparator=cJ(this.kind,this.exclusive);numericLimit=this.rule.valueOf();expression=`${this.comparator} ${this.rule}`;compiledCondition=`${this.compiledActual} ${this.comparator} ${this.numericLimit}`;compiledNegation=`${this.compiledActual} ${pJ[this.comparator]} ${this.numericLimit}`;stringLimit=this.boundOperandKind==="date"?lJ(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 pJ={"<":">=","<=":">",">":"<=",">=":"<"},mJ={min:"max",minLength:"maxLength",after:"before"},r8={parse:(Y)=>Y||void 0},s8=(Y)=>(Z)=>{if(typeof Z==="number")return{rule:Z};let{exclusive:X,...G}=Z;return X?{...G,rule:Y==="minLength"?G.rule+1:G.rule-1}:G},t8=(Y)=>(Z)=>{if(typeof Z==="number"||typeof Z==="string"||Z instanceof Date)return{rule:Z};let{exclusive:X,...G}=Z;if(!X)return G;let _=typeof G.rule==="number"?G.rule:typeof G.rule==="string"?new Date(G.rule).valueOf():G.rule.valueOf();return X?{...G,rule:Y==="after"?_+1:_-1}:G},a8=(Y)=>typeof Y==="string"||typeof Y==="number"?new Date(Y):Y,uJ=(Y,Z)=>`${Y} bound must be a positive integer (was ${Z})`,G2=(Y)=>(Z)=>{if(!Number.isInteger(Z)||Z<0)A(uJ(Y,Z));return Z},dJ={min:"value",max:"value",minLength:"length",maxLength:"length",after:"date",before:"date"},cJ=(Y,Z)=>`${g0(Y,mJ)?">":"<"}${Z?"":"="}`,lJ=(Y)=>typeof Y==="string"?Y:new Date(Y).toLocaleString(),EG=(Y)=>`Bounded expression ${Y} must be exactly one of number, string, Array, or Date`;var oJ=r({kind:"after",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:a8,serialize:(Y)=>Y.toISOString()}},normalize:t8("after"),defaults:{description:(Y)=>`${Y.collapsibleLimitString} or later`,actual:S4},intersections:{after:(Y,Z)=>Y.isStricterThan(Z)?Y:Z}});class VG extends M1{impliedBasis=I.intrinsic.Date.internal;collapsibleLimitString=S4(this.rule);traverseAllows=(Y)=>Y>=this.rule;reduceJsonSchema(Y,Z){return Z.fallback.date({code:"date",base:Y,after:this.rule})}}var gY={implementation:oJ,Node:VG};var iJ=r({kind:"before",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:a8,serialize:(Y)=>Y.toISOString()}},normalize:t8("before"),defaults:{description:(Y)=>`${Y.collapsibleLimitString} or earlier`,actual:S4},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 OG extends M1{collapsibleLimitString=S4(this.rule);traverseAllows=(Y)=>Y<=this.rule;impliedBasis=I.intrinsic.Date.internal;reduceJsonSchema(Y,Z){return Z.fallback.date({code:"date",base:Y,before:this.rule})}}var pY={implementation:iJ,Node:OG};var nJ=r({kind:"exactLength",collapsibleKey:"rule",keys:{rule:{parse:G2("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 DG extends X4{traverseAllows=(Y)=>Y.length===this.rule;compiledCondition=`data.length === ${this.rule}`;compiledNegation=`data.length !== ${this.rule}`;impliedBasis=I.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 w0.throwInternalOperandError("exactLength",Y)}}}var mY={implementation:nJ,Node:DG};var rJ=r({kind:"max",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:r8},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 LG extends M1{impliedBasis=I.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 uY={implementation:rJ,Node:LG};var sJ=r({kind:"maxLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:G2("maxLength")}},reduce:(Y,Z)=>Y.rule===0?Z.node("exactLength",Y):void 0,normalize:s8("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 MG extends M1{impliedBasis=I.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 w0.throwInternalOperandError("maxLength",Y)}}}var dY={implementation:sJ,Node:MG};var tJ=r({kind:"min",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:r8},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 AG extends M1{impliedBasis=I.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 cY={implementation:tJ,Node:AG};var aJ=r({kind:"minLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:G2("minLength")}},reduce:(Y)=>Y.rule===0?I.intrinsic.unknown:void 0,normalize:s8("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 RG extends M1{impliedBasis=I.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 w0.throwInternalOperandError("minLength",Y)}}}var lY={implementation:aJ,Node:RG};var wG={min:cY.implementation,max:uY.implementation,minLength:lY.implementation,maxLength:dY.implementation,exactLength:mY.implementation,after:gY.implementation,before:pY.implementation},NG={min:cY.Node,max:uY.Node,minLength:lY.Node,maxLength:dY.Node,exactLength:mY.Node,after:gY.Node,before:pY.Node};var eJ=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 IG 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=I.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 oY={implementation:eJ,Node:IG};var c2=(Y,Z)=>{let X=YQ(Y);if(Z&&!Z.includes(X))return A(`Root of kind ${X} should be one of ${Z}`);return X},YQ=(Y)=>{if(y(Y,"root"))return Y.kind;if(typeof Y==="string")return Y[0]==="$"?"alias":(Y in H1)?"domain":"proto";if(typeof Y==="function")return"proto";if(typeof Y!=="object"||Y===null)return A(KG(Y));if("morphs"in Y)return"morph";if("branches"in Y||F0(Y))return"union";if("unit"in Y)return"unit";if("reference"in Y)return"alias";let Z=Object.keys(Y);if(Z.length===0||Z.some((X)=>(X in o8)))return"intersection";if("proto"in Y)return"proto";if("domain"in Y)return"domain";return A(KG(Y))},KG=(Y)=>`${i(Y)} is not a valid type schema`,BG={},ZQ=(Y)=>F0(Y)?Y.map((Z)=>Z.collapsibleJson):Y.collapsibleJson,Z1={};I.nodesByRegisteredId=Z1;var iY=(Y)=>{return BG[Y]??=0,`${Y}${++BG[Y]}`},nY=(Y)=>{let Z=_2[Y.kind],X=Z.applyConfig?.(Y.def,Y.$.resolvedConfig)??Y.def,G={},{meta:_,...$}=X,W=_===void 0?{}:typeof _==="string"?{description:_}:_,H=LY($).sort(([J],[z])=>a4(J)?a4(z)?e4(J)-e4(z):1:a4(z)?-1:J<z?-1:1).filter(([J,z])=>{if(J.startsWith("meta.")){let U=J.slice(5);return W[U]=z,!1}return!0});for(let J of H){let z=J[0],U=Z.keys[z];if(!U)return A(`Key ${z} is not valid on ${Y.kind} schema`);let O=U.parse?U.parse(J[1],Y):J[1];if(O!==L1&&(O!==void 0||U.preserveUndefined))G[z]=O}if(Z.reduce&&!Y.prereduced){let J=Z.reduce(G,Y.$);if(J){if(J instanceof S)return J.throw();return XQ(J,W)}}return rY({id:Y.id,kind:Y.kind,inner:G,meta:W,$:Y.$})},rY=({id:Y,kind:Z,inner:X,meta:G,$:_,ignoreCache:$})=>{let W=_2[Z],H=LY(X),Q=[],J={};for(let[x,h]of H){let g=W.keys[x],B=g.serialize??(g.child?ZQ:w1);if(J[x]=B(h),g.child===!0){let K=h;if(F0(K))Q.push(...K);else Q.push(K)}else if(typeof g.child==="function")Q.push(...g.child(h))}if(W.finalizeInnerJson)J=W.finalizeInnerJson(J);let z={...J},U={};if(!l1(G))U=o(G,(x,h)=>[x,x==="examples"?h:w1(h)]),z.meta=e8(U,"description",!0);J=e8(J,W.collapsibleKey,!1);let O=JSON.stringify({kind:Z,...J});z=e8(z,W.collapsibleKey,!1);let L=e8(z,W.collapsibleKey,!0),w=JSON.stringify({kind:Z,...z});if(_.nodesByHash[w]&&!$)return _.nodesByHash[w];let R={id:Y,kind:Z,impl:W,inner:X,innerEntries:H,innerJson:J,innerHash:O,meta:G,metaJson:U,json:z,hash:w,collapsibleJson:L,children:Q};if(Z!=="intersection"){for(let x in X)if(x!=="in"&&x!=="out")R[x]=X[x]}let b=new CG[Z](R,_);return _.nodesByHash[w]=b},TG=(Y,Z)=>{if(Y.id===Z)return Y;if(D0(Z1[Z]))G0(`Unexpected attempt to overwrite node id ${Z}`);return rY({id:Z,kind:Y.kind,inner:Y.inner,meta:Y.meta,$:Y.$,ignoreCache:!0})},XQ=(Y,Z,X)=>{if(X&&D0(Z1[X]))G0(`Unexpected attempt to overwrite node id ${X}`);return rY({id:X??iY(Z.alias??Y.kind),kind:Y.kind,inner:Y.inner,meta:Z,$:Y.$})},e8=(Y,Z,X)=>{let G=Object.keys(Y);if(G.length===1&&G[0]===Z){let _=Y[Z];if(X)return _;if(W1(_,"object")&&(Object.keys(_).length===1||Array.isArray(_)))return _}return Y};var l2=(Y,Z,X)=>{if(Y.key!==Z.key)return null;let G=Y.key,_=L0(Y.value,Z.value,X),$=Y.required||Z.required?"required":"optional";if(_ instanceof S)if($==="optional")_=I.intrinsic.never.internal;else return _.withPrefixKey(Y.key,Y.required&&Z.required?"required":"optional");if($==="required")return X.$.node("required",{key:G,value:_});let W=Y.hasDefault()?Z.hasDefault()?Y.default===Z.default?Y.default:A(sY(Y.default,Z.default)):Y.default:Z.hasDefault()?Z.default:L1;return X.$.node("optional",{key:G,value:_,default:W})};class o2 extends N1{required=this.kind==="required";optional=this.kind==="optional";impliedBasis=I.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 Q1(this.key,()=>this.value.traverseAllows(Y[this.key],Z),Z);return this.optional};traverseApply=(Y,Z)=>{if(this.key in Y)Q1(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 sY=(Y,Z)=>`Invalid intersection of default values ${i(Y)} & ${i(Z)}`;var GQ=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(u.undefined)},{prereduced:!0})}},defaults:{description:(Y)=>`${Y.compiledKey}?: ${Y.value.description}`},intersections:{optional:l2}});class qG extends o2{constructor(...Y){super(...Y);if("default"in this.inner)n2(this.value,this.inner.default,this.key)}get outProp(){if(!this.hasDefault())return this;let{default:Y,...Z}=this.inner;return this.cacheGetter("outProp",this.$.node("required",Z,{prereduced:!0}))}expression=this.hasDefault()?`${this.compiledKey}: ${this.value.expression} = ${i(this.inner.default)}`:`${this.compiledKey}?: ${this.value.expression}`;defaultValueMorph=$Q(this);defaultValueMorphRef=this.defaultValueMorph&&T0(this.defaultValueMorph)}var i2={implementation:GQ,Node:qG},_Q={},$Q=(Y)=>{if(!Y.hasDefault())return;let Z=`{${Y.compiledKey}: ${Y.value.id} = ${w1(Y.default)}}`;return _Q[Z]??=tY(Y.key,Y.value,Y.default)},tY=(Y,Z,X)=>{if(typeof X==="function")return Z.includesTransform?(_,$)=>{return Q1(Y,()=>Z(_[Y]=X(),$),$),_}:(_)=>{return _[Y]=X(),_};let G=Z.includesTransform?Z.assert(X):X;return W1(G,"object")?(_,$)=>{return Q1(Y,()=>Z(_[Y]=X,$),$),_}:(_)=>{return _[Y]=G,_}},n2=(Y,Z,X)=>{let G=E4(Z);if(W1(Z,"object")&&!G)A(WQ(X));let _=Y.in(G?Z():Z);if(_ instanceof J1){if(X===null)A(`Default ${_.summary}`);let $=_.transform((W)=>W.transform((H)=>({...H,prefixPath:[X]})));A(`Default for ${$.summary}`)}return Z},WQ=(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 I1 extends u2{constructor(Y,Z){super(Y,Z);Object.defineProperty(this,Y1,{value:"root",enumerable:!1})}get internal(){return this}get "~standard"(){return{vendor:"arktype",version:1,validate:(Y)=>{let Z=this(Y);if(Z instanceof J1)return Z;return{value:Z}},toJSONSchema:(Y)=>{if(Y.target&&Y.target!=="draft-2020-12")return A(`JSONSchema target '${Y.target}' is not supported (must be "draft-2020-12")`);if(Y.io==="input")return this.in.toJsonSchema();return this.out.toJsonSchema()}}}as(){return this}brand(Y){if(Y==="")return A(HQ);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=SY(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,_)=>_.isRoot()&&!_.alwaysExpandJsonSchema?[_.id,_.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 z1(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(),I.intrinsic.unknown.internal);if(Y.branches.length===0)A(hY(`keyof ${this.expression}`));return this._keyof=this.$.finalize(Y)}get props(){if(this.branches.length!==1)return A(JQ(this.expression));return[...this.applyStructuralOperation("props",[])[0]]}merge(Y){let Z=this.$.parseDefinition(Y);return this.$.schema(Z.distribute((X)=>this.applyStructuralOperation("merge",[jG(X)??A(PG("merge",X.expression))])))}applyStructuralOperation(Y,Z){return this.distribute((X)=>{if(X.equals(I.intrinsic.object)&&Y!=="merge")return X;let G=jG(X);if(!G)A(PG(Y,X.expression));if(Y==="keyof")return G.keyof();if(Y==="get")return G.get(...Z);if(Y==="props")return G.props;let _=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 n2(this,Y,null),[this,"=",Y]}from(Y){return this.assert(Y)}_pipe(...Y){let Z=Y.reduce((X,G)=>X.rawPipeOnce(G),this);return this.$.finalize(Z)}tryPipe(...Y){let Z=Y.reduce((X,G)=>X.rawPipeOnce(y(G,"root")?G:(_,$)=>{try{return G(_,$)}catch(W){return $.error({code:"predicate",predicate:G,actual:`aborted due to error:
|
|
24
|
+
\u2022 `)}`}throw(){return A(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 I.intrinsic.never}}var WG=(Y,Z)=>`${fY(Y)} and ${fY(Z)}`,fY=(Y)=>D0(Y)?Y.expression:U0(Y)?Y.map(fY).join(" | ")||"never":String(Y),hY=(Y)=>`${Y} results in an unsatisfiable type`;var Y2={},z1=(Y,Z,X)=>L0(Y,Z,{$:X,invert:!1,pipe:!1}),d2=(Y,Z,X)=>L0(Y,Z,{$:X,invert:!1,pipe:!0}),L0=(Y,Z,X)=>{let G=X.pipe?"|>":"&",_=`${Y.hash}${G}${Z.hash}`;if(Y2[_]!==void 0)return Y2[_];if(!X.pipe){let H=`${Z.hash}${G}${Y.hash}`;if(Y2[H]!==void 0){let Q=Y2[H],J=Q instanceof S?Q.invert():Q;return Y2[_]=J,J}}let $=!X.pipe||!Y.includesTransform&&!Z.includesTransform;if($&&Y.equals(Z))return Y;let W=$?kY(Y,Z,X):Y.hasKindIn(...t4)?SJ(Y,Z,X):kY(Y,Z,X);if(D0(W)){if(Y.equals(W))W=Y;else if(Z.equals(W))W=Z}return Y2[_]=W,W},kY=(Y,Z,X)=>{let G=Y.precedence<Z.precedence?Y.kind:Z.kind,_=Y.impl.intersections[Z.kind]??Z.impl.intersections[Y.kind];if(_===void 0)return null;else if(G===Y.kind)return _(Y,Z,X);else{let $=_(Z,Y,{...X,invert:!X.invert});if($ instanceof S)$=$.invert();return $}},SJ=(Y,Z,X)=>Y.includesTransform||Z.includesTransform?X.invert?HG(Z,Y,X):HG(Y,Z,X):kY(Y,Z,X),HG=(Y,Z,X)=>Y.distribute((G)=>vJ(G,Z,X),(G)=>{let _=G.filter(D0);if(_.length===0)return S.init("union",Y.branches,Z.branches);if(_.length<Y.branches.length||!Y.branches.every((H,Q)=>H.in.equals(_[Q].in)))return X.$.parseSchema(_);let $;if(_.length===1){let H=_[0];if(!$)return H;return X.$.node("morph",{...H.inner,in:H.in.configure($,"self")})}let W={branches:_};if($)W.meta=$;return X.$.parseSchema(W)}),vJ=(Y,Z,X)=>{if(Y.hasKind("morph")){let _=[...Y.morphs];if(Y.lastMorphIfNode){let $=L0(Y.lastMorphIfNode,Z,X);if($ instanceof S)return $;_[_.length-1]=$}else _.push(Z);return X.$.node("morph",{morphs:_,in:Y.inner.in})}if(Z.hasKind("morph")){let _=L0(Y,Z.in,X);if(_ instanceof S)return _;return X.$.node("morph",{morphs:[Z],in:_})}return X.$.node("morph",{morphs:[Z],in:Y})};class N1 extends u2{constructor(Y,Z){super(Y,Z);Object.defineProperty(this,Y1,{value:"constraint",enumerable:!1})}impliedSiblings;intersect(Y){return z1(this,Y,this.$)}}class X4 extends N1{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 s0=(Y)=>(Z,X)=>{if(U0(Z)){if(Z.length===0)return;let _=Z.map(($)=>X.$.node(Y,$));if(Y==="predicate")return _;return _.sort(($,W)=>$.hash<W.hash?-1:1)}let G=X.$.node(Y,Z);return G.hasOpenIntersection()?[G]:G},Z2=(Y)=>{let Z=Y.r.shift();if(!Z){let G=Y.l.length===0&&Y.kind==="structure"?I.intrinsic.unknown.internal:Y.ctx.$.node(Y.kind,Object.assign(Y.baseInner,xJ(Y.l)),{prereduced:!0});for(let _ of Y.roots){if(G instanceof S)return G;G=L0(_,G,Y.ctx)}return G}let X=!1;for(let G=0;G<Y.l.length;G++){let _=L0(Y.l[G],Z,Y.ctx);if(_===null)continue;if(_ instanceof S)return _;if(!X){if(_.isRoot())return Y.roots.push(_),Y.l.splice(G),Z2(Y);Y.l[G]=_,X=!0}else if(!Y.l.includes(_))return G0(`Unexpectedly encountered multiple distinct intersection results for refinement ${_}`)}if(!X)Y.l.push(Z);if(Y.kind==="intersection"){if(Z.impliedSiblings)for(let G of Z.impliedSiblings)c1(Y.r,G)}return Z2(Y)},X2=(Y)=>{return Object.entries(Y).flatMap(([X,G])=>(X in o8)?G:[]).sort((X,G)=>X.precedence<G.precedence?-1:X.precedence>G.precedence?1:X.kind==="predicate"&&G.kind==="predicate"?0:X.hash<G.hash?-1:1)},xJ=(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 G0(`Unexpected intersection of closed refinements of kind ${X.kind}`);Z[X.kind]=X}return Z},JG=(...Y)=>A(QG(...Y)),QG=(Y,Z,X)=>{let G=X.hasKind("morph")?"a morph":X.isUnknown()?"unknown":X.exclude(Z).defaultShortDescription;return`${yX(Y)} operand must be ${Z.description} (was ${G})`};var zG=(Y,Z,X)=>new M4(Y,Z,X,X,null);class n8 extends v1{}class M4 extends v1{[Y1]="generic";paramDefs;bodyDef;$;arg$;baseInstantiation;hkt;description;constructor(Y,Z,X,G,_){super((...$)=>{let W=o(this.names,(H,Q)=>{let J=this.arg$.parse($[H]);if(!J.extends(this.constraints[H]))A(fJ(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$=G,this.hkt=_,this.description=_?new _().description??`a generic type for ${_.constructor.name}`:"a generic type",this.baseInstantiation=this(...this.constraints)}defIsLazy(){return this.bodyDef instanceof n8}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:rX(this.bodyDef)})}get params(){return this.cacheGetter("params",this.paramDefs.map((Y)=>typeof Y==="string"?[Y,I.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 fJ=(Y,Z,X)=>`${Y} must be assignable to ${Z} (was ${X})`;var hJ=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 UG extends N1{serializedPredicate=T0(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 bY={implementation:hJ,Node:UG};var kJ=r({kind:"divisor",collapsibleKey:"rule",keys:{rule:{parse:(Y)=>Number.isInteger(Y)?Y:A(bJ(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/yJ(Y.rule,Z.rule))})},obviatesBasisDescription:!0});class FG extends X4{traverseAllows=(Y)=>Y%this.rule===0;compiledCondition=`data % ${this.rule} === 0`;compiledNegation=`data % ${this.rule} !== 0`;impliedBasis=I.intrinsic.number.internal;expression=`% ${this.rule}`;reduceJsonSchema(Y){if(Y.type="integer",this.rule===1)return Y;return Y.multipleOf=this.rule,Y}}var yY={implementation:kJ,Node:FG};var bJ=(Y)=>`divisor must be an integer (was ${Y})`,yJ=(Y,Z)=>{let X,G=Y,_=Z;while(_!==0)X=_,_=G%_,G=X;return G};class M1 extends X4{boundOperandKind=uJ[this.kind];compiledActual=this.boundOperandKind==="value"?"data":this.boundOperandKind==="length"?"data.length":"data.valueOf()";comparator=dJ(this.kind,this.exclusive);numericLimit=this.rule.valueOf();expression=`${this.comparator} ${this.rule}`;compiledCondition=`${this.compiledActual} ${this.comparator} ${this.numericLimit}`;compiledNegation=`${this.compiledActual} ${gJ[this.comparator]} ${this.numericLimit}`;stringLimit=this.boundOperandKind==="date"?cJ(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 gJ={"<":">=","<=":">",">":"<=",">=":"<"},pJ={min:"max",minLength:"maxLength",after:"before"},r8={parse:(Y)=>Y||void 0},s8=(Y)=>(Z)=>{if(typeof Z==="number")return{rule:Z};let{exclusive:X,...G}=Z;return X?{...G,rule:Y==="minLength"?G.rule+1:G.rule-1}:G},t8=(Y)=>(Z)=>{if(typeof Z==="number"||typeof Z==="string"||Z instanceof Date)return{rule:Z};let{exclusive:X,...G}=Z;if(!X)return G;let _=typeof G.rule==="number"?G.rule:typeof G.rule==="string"?new Date(G.rule).valueOf():G.rule.valueOf();return X?{...G,rule:Y==="after"?_+1:_-1}:G},a8=(Y)=>typeof Y==="string"||typeof Y==="number"?new Date(Y):Y,mJ=(Y,Z)=>`${Y} bound must be a positive integer (was ${Z})`,G2=(Y)=>(Z)=>{if(!Number.isInteger(Z)||Z<0)A(mJ(Y,Z));return Z},uJ={min:"value",max:"value",minLength:"length",maxLength:"length",after:"date",before:"date"},dJ=(Y,Z)=>`${g0(Y,pJ)?">":"<"}${Z?"":"="}`,cJ=(Y)=>typeof Y==="string"?Y:new Date(Y).toLocaleString(),EG=(Y)=>`Bounded expression ${Y} must be exactly one of number, string, Array, or Date`;var lJ=r({kind:"after",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:a8,serialize:(Y)=>Y.toISOString()}},normalize:t8("after"),defaults:{description:(Y)=>`${Y.collapsibleLimitString} or later`,actual:S4},intersections:{after:(Y,Z)=>Y.isStricterThan(Z)?Y:Z}});class VG extends M1{impliedBasis=I.intrinsic.Date.internal;collapsibleLimitString=S4(this.rule);traverseAllows=(Y)=>Y>=this.rule;reduceJsonSchema(Y,Z){return Z.fallback.date({code:"date",base:Y,after:this.rule})}}var gY={implementation:lJ,Node:VG};var oJ=r({kind:"before",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:a8,serialize:(Y)=>Y.toISOString()}},normalize:t8("before"),defaults:{description:(Y)=>`${Y.collapsibleLimitString} or earlier`,actual:S4},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 OG extends M1{collapsibleLimitString=S4(this.rule);traverseAllows=(Y)=>Y<=this.rule;impliedBasis=I.intrinsic.Date.internal;reduceJsonSchema(Y,Z){return Z.fallback.date({code:"date",base:Y,before:this.rule})}}var pY={implementation:oJ,Node:OG};var iJ=r({kind:"exactLength",collapsibleKey:"rule",keys:{rule:{parse:G2("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 DG extends X4{traverseAllows=(Y)=>Y.length===this.rule;compiledCondition=`data.length === ${this.rule}`;compiledNegation=`data.length !== ${this.rule}`;impliedBasis=I.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 w0.throwInternalOperandError("exactLength",Y)}}}var mY={implementation:iJ,Node:DG};var nJ=r({kind:"max",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:r8},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 LG extends M1{impliedBasis=I.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 uY={implementation:nJ,Node:LG};var rJ=r({kind:"maxLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:G2("maxLength")}},reduce:(Y,Z)=>Y.rule===0?Z.node("exactLength",Y):void 0,normalize:s8("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 MG extends M1{impliedBasis=I.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 w0.throwInternalOperandError("maxLength",Y)}}}var dY={implementation:rJ,Node:MG};var sJ=r({kind:"min",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:r8},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 AG extends M1{impliedBasis=I.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 cY={implementation:sJ,Node:AG};var tJ=r({kind:"minLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:G2("minLength")}},reduce:(Y)=>Y.rule===0?I.intrinsic.unknown:void 0,normalize:s8("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 RG extends M1{impliedBasis=I.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 w0.throwInternalOperandError("minLength",Y)}}}var lY={implementation:tJ,Node:RG};var wG={min:cY.implementation,max:uY.implementation,minLength:lY.implementation,maxLength:dY.implementation,exactLength:mY.implementation,after:gY.implementation,before:pY.implementation},NG={min:cY.Node,max:uY.Node,minLength:lY.Node,maxLength:dY.Node,exactLength:mY.Node,after:gY.Node,before:pY.Node};var aJ=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 IG 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=I.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 oY={implementation:aJ,Node:IG};var c2=(Y,Z)=>{let X=eJ(Y);if(Z&&!Z.includes(X))return A(`Root of kind ${X} should be one of ${Z}`);return X},eJ=(Y)=>{if(y(Y,"root"))return Y.kind;if(typeof Y==="string")return Y[0]==="$"?"alias":(Y in H1)?"domain":"proto";if(typeof Y==="function")return"proto";if(typeof Y!=="object"||Y===null)return A(KG(Y));if("morphs"in Y)return"morph";if("branches"in Y||U0(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 o8)))return"intersection";if("proto"in Y)return"proto";if("domain"in Y)return"domain";return A(KG(Y))},KG=(Y)=>`${i(Y)} is not a valid type schema`,BG={},YQ=(Y)=>U0(Y)?Y.map((Z)=>Z.collapsibleJson):Y.collapsibleJson,Z1={};I.nodesByRegisteredId=Z1;var iY=(Y)=>{return BG[Y]??=0,`${Y}${++BG[Y]}`},nY=(Y)=>{let Z=_2[Y.kind],X=Z.applyConfig?.(Y.def,Y.$.resolvedConfig)??Y.def,G={},{meta:_,...$}=X,W=_===void 0?{}:typeof _==="string"?{description:_}:_,H=LY($).sort(([J],[z])=>a4(J)?a4(z)?e4(J)-e4(z):1:a4(z)?-1:J<z?-1:1).filter(([J,z])=>{if(J.startsWith("meta.")){let F=J.slice(5);return W[F]=z,!1}return!0});for(let J of H){let z=J[0],F=Z.keys[z];if(!F)return A(`Key ${z} is not valid on ${Y.kind} schema`);let O=F.parse?F.parse(J[1],Y):J[1];if(O!==L1&&(O!==void 0||F.preserveUndefined))G[z]=O}if(Z.reduce&&!Y.prereduced){let J=Z.reduce(G,Y.$);if(J){if(J instanceof S)return J.throw();return ZQ(J,W)}}return rY({id:Y.id,kind:Y.kind,inner:G,meta:W,$:Y.$})},rY=({id:Y,kind:Z,inner:X,meta:G,$:_,ignoreCache:$})=>{let W=_2[Z],H=LY(X),Q=[],J={};for(let[x,h]of H){let g=W.keys[x],B=g.serialize??(g.child?YQ:w1);if(J[x]=B(h),g.child===!0){let K=h;if(U0(K))Q.push(...K);else Q.push(K)}else if(typeof g.child==="function")Q.push(...g.child(h))}if(W.finalizeInnerJson)J=W.finalizeInnerJson(J);let z={...J},F={};if(!l1(G))F=o(G,(x,h)=>[x,x==="examples"?h:w1(h)]),z.meta=e8(F,"description",!0);J=e8(J,W.collapsibleKey,!1);let O=JSON.stringify({kind:Z,...J});z=e8(z,W.collapsibleKey,!1);let L=e8(z,W.collapsibleKey,!0),w=JSON.stringify({kind:Z,...z});if(_.nodesByHash[w]&&!$)return _.nodesByHash[w];let R={id:Y,kind:Z,impl:W,inner:X,innerEntries:H,innerJson:J,innerHash:O,meta:G,metaJson:F,json:z,hash:w,collapsibleJson:L,children:Q};if(Z!=="intersection"){for(let x in X)if(x!=="in"&&x!=="out")R[x]=X[x]}let b=new CG[Z](R,_);return _.nodesByHash[w]=b},TG=(Y,Z)=>{if(Y.id===Z)return Y;if(D0(Z1[Z]))G0(`Unexpected attempt to overwrite node id ${Z}`);return rY({id:Z,kind:Y.kind,inner:Y.inner,meta:Y.meta,$:Y.$,ignoreCache:!0})},ZQ=(Y,Z,X)=>{if(X&&D0(Z1[X]))G0(`Unexpected attempt to overwrite node id ${X}`);return rY({id:X??iY(Z.alias??Y.kind),kind:Y.kind,inner:Y.inner,meta:Z,$:Y.$})},e8=(Y,Z,X)=>{let G=Object.keys(Y);if(G.length===1&&G[0]===Z){let _=Y[Z];if(X)return _;if(W1(_,"object")&&(Object.keys(_).length===1||Array.isArray(_)))return _}return Y};var l2=(Y,Z,X)=>{if(Y.key!==Z.key)return null;let G=Y.key,_=L0(Y.value,Z.value,X),$=Y.required||Z.required?"required":"optional";if(_ instanceof S)if($==="optional")_=I.intrinsic.never.internal;else return _.withPrefixKey(Y.key,Y.required&&Z.required?"required":"optional");if($==="required")return X.$.node("required",{key:G,value:_});let W=Y.hasDefault()?Z.hasDefault()?Y.default===Z.default?Y.default:A(sY(Y.default,Z.default)):Y.default:Z.hasDefault()?Z.default:L1;return X.$.node("optional",{key:G,value:_,default:W})};class o2 extends N1{required=this.kind==="required";optional=this.kind==="optional";impliedBasis=I.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 Q1(this.key,()=>this.value.traverseAllows(Y[this.key],Z),Z);return this.optional};traverseApply=(Y,Z)=>{if(this.key in Y)Q1(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 sY=(Y,Z)=>`Invalid intersection of default values ${i(Y)} & ${i(Z)}`;var XQ=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(u.undefined)},{prereduced:!0})}},defaults:{description:(Y)=>`${Y.compiledKey}?: ${Y.value.description}`},intersections:{optional:l2}});class qG extends o2{constructor(...Y){super(...Y);if("default"in this.inner)n2(this.value,this.inner.default,this.key)}get outProp(){if(!this.hasDefault())return this;let{default:Y,...Z}=this.inner;return this.cacheGetter("outProp",this.$.node("required",Z,{prereduced:!0}))}expression=this.hasDefault()?`${this.compiledKey}: ${this.value.expression} = ${i(this.inner.default)}`:`${this.compiledKey}?: ${this.value.expression}`;defaultValueMorph=_Q(this);defaultValueMorphRef=this.defaultValueMorph&&T0(this.defaultValueMorph)}var i2={implementation:XQ,Node:qG},GQ={},_Q=(Y)=>{if(!Y.hasDefault())return;let Z=`{${Y.compiledKey}: ${Y.value.id} = ${w1(Y.default)}}`;return GQ[Z]??=tY(Y.key,Y.value,Y.default)},tY=(Y,Z,X)=>{if(typeof X==="function")return Z.includesTransform?(_,$)=>{return Q1(Y,()=>Z(_[Y]=X(),$),$),_}:(_)=>{return _[Y]=X(),_};let G=Z.includesTransform?Z.assert(X):X;return W1(G,"object")?(_,$)=>{return Q1(Y,()=>Z(_[Y]=X,$),$),_}:(_)=>{return _[Y]=G,_}},n2=(Y,Z,X)=>{let G=E4(Z);if(W1(Z,"object")&&!G)A($Q(X));let _=Y.in(G?Z():Z);if(_ instanceof J1){if(X===null)A(`Default ${_.summary}`);let $=_.transform((W)=>W.transform((H)=>({...H,prefixPath:[X]})));A(`Default for ${$.summary}`)}return Z},$Q=(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 I1 extends u2{constructor(Y,Z){super(Y,Z);Object.defineProperty(this,Y1,{value:"root",enumerable:!1})}get internal(){return this}get "~standard"(){return{vendor:"arktype",version:1,validate:(Y)=>{let Z=this(Y);if(Z instanceof J1)return Z;return{value:Z}},toJSONSchema:(Y)=>{if(Y.target&&Y.target!=="draft-2020-12")return A(`JSONSchema target '${Y.target}' is not supported (must be "draft-2020-12")`);if(Y.io==="input")return this.in.toJsonSchema();return this.out.toJsonSchema()}}}as(){return this}brand(Y){if(Y==="")return A(WQ);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=SY(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,_)=>_.isRoot()&&!_.alwaysExpandJsonSchema?[_.id,_.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 z1(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(),I.intrinsic.unknown.internal);if(Y.branches.length===0)A(hY(`keyof ${this.expression}`));return this._keyof=this.$.finalize(Y)}get props(){if(this.branches.length!==1)return A(HQ(this.expression));return[...this.applyStructuralOperation("props",[])[0]]}merge(Y){let Z=this.$.parseDefinition(Y);return this.$.schema(Z.distribute((X)=>this.applyStructuralOperation("merge",[jG(X)??A(PG("merge",X.expression))])))}applyStructuralOperation(Y,Z){return this.distribute((X)=>{if(X.equals(I.intrinsic.object)&&Y!=="merge")return X;let G=jG(X);if(!G)A(PG(Y,X.expression));if(Y==="keyof")return G.keyof();if(Y==="get")return G.get(...Z);if(Y==="props")return G.props;let _=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 n2(this,Y,null),[this,"=",Y]}from(Y){return this.assert(Y)}_pipe(...Y){let Z=Y.reduce((X,G)=>X.rawPipeOnce(G),this);return this.$.finalize(Z)}tryPipe(...Y){let Z=Y.reduce((X,G)=>X.rawPipeOnce(y(G,"root")?G:(_,$)=>{try{return G(_,$)}catch(W){return $.error({code:"predicate",predicate:G,actual:`aborted due to error:
|
|
25
25
|
${W}
|
|
26
|
-
`})}}),this);return this.$.finalize(Z)}pipe=Object.assign(this._pipe.bind(this),{try:this.tryPipe.bind(this)});to(Y){return this.$.finalize(this.toNode(this.$.parseDefinition(Y)))}toNode(Y){let Z=d2(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 G=this.$.node(Z,X);if(G.isRoot())return G.isUnknown()?this:G0(`Unexpected constraint node ${G}`);let _=Y==="root"?this:this[Y];if(_.hasKind("morph")||G.impliedBasis&&!_.extends(G.impliedBasis))return JG(Z,G.impliedBasis,this);let $=this.$.node("intersection",{[G.kind]:G}),W=Y==="out"?d2(this,$,this.$):z1(this,$,this.$);if(W instanceof S)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,_)=>G==="structure"?Z==="ignore"?CX(_,{undeclared:1}):{..._,undeclared:Z}:_,X?void 0:{shouldTransform:(G)=>!s1(s4,G.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
|
|
27
|
-
${Y}`,PG=(Y,Z)=>`${Y} operand must be an object (was ${Z})`;var o1=(Y,Z)=>o(i8(Y),(X,G)=>[G,Z]);var
|
|
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=d2(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 G=this.$.node(Z,X);if(G.isRoot())return G.isUnknown()?this:G0(`Unexpected constraint node ${G}`);let _=Y==="root"?this:this[Y];if(_.hasKind("morph")||G.impliedBasis&&!_.extends(G.impliedBasis))return JG(Z,G.impliedBasis,this);let $=this.$.node("intersection",{[G.kind]:G}),W=Y==="out"?d2(this,$,this.$):z1(this,$,this.$);if(W instanceof S)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,_)=>G==="structure"?Z==="ignore"?CX(_,{undeclared:1}):{..._,undeclared:Z}:_,X?void 0:{shouldTransform:(G)=>!s1(s4,G.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 WQ="Expected a non-empty brand name after #",$2=(Y)=>typeof Y==="object"&&!(Y instanceof Date)?{...Y,exclusive:!0}:{rule:Y,exclusive:!0},r2=(Y,Z)=>y(Z,"root")?y(Y,"root")?Y.extends(Z):Z.allows(Y):y(Y,"root")?Y.hasUnit(Z):Z===Y,jG=(Y)=>{if(Y.hasKind("morph"))return null;if(Y.hasKind("intersection"))return Y.inner.structure??(Y.basis?.domain==="object"?Y.$.bindReference(I.intrinsic.emptyStructure):null);if(Y.isBasis()&&Y.domain==="object")return Y.$.bindReference(I.intrinsic.emptyStructure);return null},HQ=(Y)=>`Props cannot be extracted from a union. Use .distribute to extract props from each branch instead. Received:
|
|
27
|
+
${Y}`,PG=(Y,Z)=>`${Y} operand must be an object (was ${Z})`;var o1=(Y,Z)=>o(i8(Y),(X,G)=>[G,Z]);var JQ=(Y)=>typeof Y==="string"?{reference:Y}:Y,SG=(Y)=>Y instanceof S?I.intrinsic.never.internal:Y,QQ=r({kind:"alias",hasAssociatedError:!1,collapsibleKey:"reference",keys:{reference:{serialize:(Y)=>Y.startsWith("$")?Y:`$ark.${Y}`},resolve:{}},normalize:JQ,defaults:{description:(Y)=>Y.reference},intersections:{alias:(Y,Z,X)=>X.$.lazilyResolve(()=>SG(L0(Y.resolution,Z.resolution,X)),`${Y.reference}${X.pipe?"=>":"&"}${Z.reference}`),...o1("alias",(Y,Z,X)=>{if(Z.isUnknown())return Y;if(Z.isNever())return Z;if(Z.isBasis()&&!Z.overlaps(I.intrinsic.object))return S.init("assignability",I.intrinsic.object,Z);return X.$.lazilyResolve(()=>SG(L0(Y.resolution,Z,X)),`${Y.reference}${X.pipe?"=>":"&"}${Z.id}`)})}});class vG extends I1{expression=this.reference;structure=void 0;get resolution(){let Y=this._resolve();return Z1[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=Z1[Y],X=[];while(y(Z,"context")){if(X.includes(Z.id))return A(zQ(Z.id,X));X.push(Z.id),Z=Z1[Z.id]}if(!y(Z,"root"))return G0(`Unexpected resolution for reference ${this.reference}
|
|
28
28
|
Seen: [${X.join("->")}]
|
|
29
|
-
Resolution: ${i(Z)}`);return Z}get resolutionId(){if(this.reference.includes("&")||this.reference.includes("=>"))return this.resolution.id;if(this.reference[0]!=="$")return this.reference;let Y=this.reference.slice(1),Z=this.$.resolutions[Y];if(typeof Z==="string")return Z;if(y(Z,"root"))return Z.id;return G0(`Unexpected resolution for reference ${this.reference}: ${i(Z)}`)}get defaultShortDescription(){return H1.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
|
|
29
|
+
Resolution: ${i(Z)}`);return Z}get resolutionId(){if(this.reference.includes("&")||this.reference.includes("=>"))return this.resolution.id;if(this.reference[0]!=="$")return this.reference;let Y=this.reference.slice(1),Z=this.$.resolutions[Y];if(typeof Z==="string")return Z;if(y(Z,"root"))return Z.id;return G0(`Unexpected resolution for reference ${this.reference}: ${i(Z)}`)}get defaultShortDescription(){return H1.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 zQ=(Y,Z)=>`Alias '${Y}' has a shallow resolution cycle: ${[...Z,Y].join("->")}`,s2={implementation:QQ,Node:vG};class v4 extends I1{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 UQ=r({kind:"domain",hasAssociatedError:!0,collapsibleKey:"domain",keys:{domain:{},numberAllowsNaN:{}},normalize:(Y)=>typeof Y==="string"?{domain:Y}:n4(Y,"numberAllowsNaN")&&Y.domain!=="number"?A(Y6.writeBadAllowNanMessage(Y.domain)):Y,applyConfig:(Y,Z)=>Y.numberAllowsNaN===void 0&&Y.domain==="number"&&Z.numberAllowsNaN?{...Y,numberAllowsNaN:!0}:Y,defaults:{description:(Y)=>H1[Y.domain],actual:(Y)=>Number.isNaN(Y)?"NaN":H1[y0(Y)]},intersections:{domain:(Y,Z)=>Y.domain==="number"&&Z.domain==="number"?Y.numberAllowsNaN?Z:Y:S.init("domain",Y,Z)}});class xG extends v4{requiresNaNCheck=this.domain==="number"&&!this.numberAllowsNaN;traverseAllows=this.requiresNaNCheck?(Y)=>typeof Y==="number"&&!Number.isNaN(Y):(Y)=>y0(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 H1[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 Y6={implementation:UQ,Node:xG,writeBadAllowNanMessage:(Y)=>`numberAllowsNaN may only be specified with domain "number" (was ${Y})`};var FQ=r({kind:"intersection",hasAssociatedError:!0,normalize:(Y)=>{if(D0(Y))return Y;let{structure:Z,...X}=Y,G=!!Z,_=Z??{},$=o(X,(W,H)=>{if(g0(W,YG)){if(G)A(`Flattened structure key ${W} cannot be specified alongside a root 'structure' key.`);return _[W]=H,[]}return[W,H]});if(y(_,"constraint")||!l1(_))$.structure=_;return $},finalizeInnerJson:({structure:Y,...Z})=>W1(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,$=_.variadic&&Object.keys(_).length===1?_.variadic:_;return{...X,sequence:$}}},divisor:{child:!0,parse:s0("divisor")},max:{child:!0,parse:s0("max")},min:{child:!0,parse:s0("min")},maxLength:{child:!0,parse:s0("maxLength")},minLength:{child:!0,parse:s0("minLength")},exactLength:{child:!0,parse:s0("exactLength")},before:{child:!0,parse:s0("before")},after:{child:!0,parse:s0("after")},pattern:{child:!0,parse:s0("pattern")},predicate:{child:!0,parse:s0("predicate")}},reduce:(Y,Z)=>fG({},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,_)=>G.kind==="min"&&_.kind==="max"?-1:0).map((G)=>G.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)=>fG(Y.inner,Z.inner,X),...o1("intersection",(Y,Z,X)=>{if(Y.children.length===0)return Z;let{domain:G,proto:_,...$}=Y.inner,W=_??G,H=W?L0(W,Z,X):Z;return H instanceof S?H:Y?.basis?.equals(H)?Y:Y.$.node("intersection",{...$,[H.kind]:H},{prereduced:!0})})}});class hG extends I1{basis=this.inner.domain??this.inner.proto??null;refinements=this.children.filter((Y)=>Y.isRefinement());structure=this.inner.structure;expression=
|
|
31
|
+
${Y.expected}`},intersections:{intersection:(Y,Z,X)=>fG(Y.inner,Z.inner,X),...o1("intersection",(Y,Z,X)=>{if(Y.children.length===0)return Z;let{domain:G,proto:_,...$}=Y.inner,W=_??G,H=W?L0(W,Z,X):Z;return H instanceof S?H:Y?.basis?.equals(H)?Y:Y.$.node("intersection",{...$,[H.kind]:H},{prereduced:!0})})}});class hG extends I1{basis=this.inner.domain??this.inner.proto??null;refinements=this.children.filter((Y)=>Y.isRefinement());structure=this.inner.structure;expression=EQ(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 G=0;G<this.refinements.length-1;G++)if(this.refinements[G].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 G=0;G<this.inner.predicate.length-1;G++)if(this.inner.predicate[G].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 aY={implementation:FQ,Node:hG},EQ=(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},fG=(Y,Z,X)=>{let G={},_=Y.proto??Y.domain,$=Z.proto??Z.domain,W=_?$?L0(_,$,X):_:$;if(W instanceof S)return W;if(W)G[W.kind]=W;return Z2({kind:"intersection",baseInner:G,l:X2(Y),r:X2(Z),roots:[],ctx:X})};var VQ=r({kind:"morph",hasAssociatedError:!1,keys:{in:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y)},morphs:{parse:F4,serialize:(Y)=>Y.map((Z)=>y(Z,"root")?Z.json:T0(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 A(OQ(Y.expression,Z.expression));let G=L0(Y.in,Z.in,X);if(G instanceof S)return G;let _={morphs:Y.morphs};if(Y.declaredIn||Z.declaredIn){let $=L0(Y.in,Z.in,X);if($ instanceof S)return $.throw();else _.declaredIn=$}if(Y.declaredOut||Z.declaredOut){let $=L0(Y.out,Z.out,X);if($ instanceof S)return $.throw();else _.declaredOut=$}return G.distribute(($)=>X.$.node("morph",{..._,in:$}),X.$.parseSchema)},...o1("morph",(Y,Z,X)=>{let G=Y.inner.in?L0(Y.inner.in,Z,X):Z;return G instanceof S?G:G.equals(Y.inner.in)?Y:X.$.node("morph",{...Y.inner,in:G})})}});class kG extends I1{serializedMorphs=this.morphs.map(T0);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??I.intrinsic.unknown.internal}get out(){return this.declaredOut??this.introspectableOut??I.intrinsic.unknown.internal}declareIn(Y){return this.$.node("morph",{...this.inner,declaredIn:Y})}declareOut(Y){return this.$.node("morph",{...this.inner,declaredOut:Y})}expression=`(In: ${this.in.expression}) => ${this.lastMorphIfNode?"To":"Out"}<${this.out.expression}>`;get defaultShortDescription(){return this.in.meta.description??this.in.defaultShortDescription}innerToJsonSchema(Y){return Y.fallback.morph({code:"morph",base:this.in.toJsonSchemaRecurse(Y),out:this.introspectableOut?.toJsonSchemaRecurse(Y)??null})}compile(Y){if(Y.traversalKind==="Allows"){if(!this.introspectableIn)return;Y.return(Y.invoke(this.introspectableIn));return}if(this.introspectableIn)Y.line(Y.invoke(this.introspectableIn));Y.line(`ctx.queueMorphs(${this.compiledMorphs})`)}traverseAllows=(Y,Z)=>!this.introspectableIn||this.introspectableIn.traverseAllows(Y,Z);traverseApply=(Y,Z)=>{if(this.introspectableIn)this.introspectableIn.traverseApply(Y,Z);Z.queueMorphs(this.morphs)};hasEqualMorphs(Y){return a1(this.morphs,Y.morphs,{isEqual:(Z,X)=>Z===X||y(Z,"root")&&y(X,"root")&&Z.equals(X)})}}var eY={implementation:VQ,Node:kG},OQ=(Y,Z)=>`The intersection of distinct morphs at a single path is indeterminate:
|
|
32
32
|
Left: ${Y}
|
|
33
|
-
Right: ${Z}`;var
|
|
33
|
+
Right: ${Z}`;var DQ=r({kind:"proto",hasAssociatedError:!0,collapsibleKey:"proto",keys:{proto:{serialize:(Y)=>v2(Y)??w1(Y)},dateAllowsInvalid:{}},normalize:(Y)=>{let Z=typeof Y==="string"?{proto:j4[Y]}:typeof Y==="function"?D0(Y)?Y:{proto:Y}:typeof Y.proto==="string"?{...Y,proto:j4[Y.proto]}:Y;if(typeof Z.proto!=="function")A(t2.writeInvalidSchemaMessage(Z.proto));if(n4(Z,"dateAllowsInvalid")&&Z.proto!==Date)A(t2.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?SX[Y.builtinName]:`an instance of ${Y.proto.name}`,actual:(Y)=>Y instanceof Date&&Y.toString()==="Invalid Date"?"an invalid Date":S2(Y)},intersections:{proto:(Y,Z)=>Y.proto===Date&&Z.proto===Date?Y.dateAllowsInvalid?Z:Y:NY(Y.proto,Z.proto)?Y:NY(Z.proto,Y.proto)?Z:S.init("proto",Y,Z),domain:(Y,Z)=>Z.domain==="object"?Y:S.init("domain",I.intrinsic.object.internal,Z)}});class bG extends v4{builtinName=v2(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 t2={implementation:DQ,Node:bG,writeBadInvalidDateMessage:(Y)=>`dateAllowsInvalid may only be specified with constructor Date (was ${Y.name})`,writeInvalidSchemaMessage:(Y)=>`instanceOf operand must be a function (was ${y0(Y)})`};var LQ=r({kind:"union",hasAssociatedError:!0,collapsibleKey:"branches",keys:{ordered:{},branches:{child:!0,parse:(Y,Z)=>{let X=[];for(let G of Y){let _=y(G,"root")?G.branches:Z.$.parseSchema(G).branches;for(let $ of _)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,_)=>G.hash<_.hash?-1:1);return X}}},normalize:(Y)=>U0(Y)?{branches:Y}:Y,reduce:(Y,Z)=>{let X=CQ(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=IX(Y.errors,"propString"),X=Object.entries(Z).map(([G,_])=>{let $=[];for(let Q of _)c1($,Q.expected);let W=W2($),H=_.every((Q)=>Q.actual===_[0].actual)?_[0].actual:i(_[0].data);return`${G&&`${G} `}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 S.init("presence",Y,Z);let G;if(Y.ordered){if(Z.ordered)A(jQ(Y.expression,Z.expression));if(G=YZ(Z.branches,Y.branches,X),G instanceof S)G.invert()}else G=YZ(Y.branches,Z.branches,X);if(G instanceof S)return G;return X.$.parseSchema(Y.ordered||Z.ordered?{branches:G,ordered:!0}:{branches:G})},...o1("union",(Y,Z,X)=>{let G=YZ(Y.branches,[Z],X);if(G instanceof S)return G;if(G.length===1)return G[0];return X.$.parseSchema(Y.ordered?{branches:G,ordered:!0}:{branches:G})})}});class pG extends I1{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]=I.intrinsic.boolean;continue}Y.push(X)}return Y}unitBranches=this.branches.filter((Y)=>Y.in.hasKind("unit"));discriminant=this.discriminate();discriminantJson=this.discriminant?KQ(this.discriminant):null;expression=this.distribute((Y)=>Y.nestableExpression,TQ);createBranchedOptimisticRootApply(){return(Y,Z)=>{let X=this.traverseOptimistic(Y);if(X!==L1)return X;let G=new x1(Y,this.$.resolvedConfig);return this.traverseApply(Y,G),G.finalize(Z)}}get shallowMorphs(){return this.branches.reduce((Y,Z)=>c1(Y,Z.shallowMorphs),[])}get defaultShortDescription(){return this.distribute((Y)=>Y.defaultShortDescription,W2)}innerToJsonSchema(Y){if(this.branchGroups.length===1&&this.branchGroups[0].equals(I.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 G=0;G<this.branches.length;G++){if(Z.pushBranch(),this.branches[G].traverseApply(Y,Z),!Z.hasError()){if(this.branches[G].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 L1};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,G=Object.keys(X),{optimistic:_}=Y;if(Y.optimistic=!1,Y.block(`switch(${Z})`,()=>{for(let J in X){let z=X[J],F=J==="default"?J:`case ${J}`;Y.line(`${F}: return ${z===!0?_?Y.data:z:_?`${Y.invoke(z)} ? ${z.contextFreeMorph?`${T0(z.contextFreeMorph)}(${Y.data})`:Y.data} : "${L1}"`:Y.invoke(z)}`)}return Y}),Y.traversalKind==="Allows"){Y.return(_?`"${L1}"`:!1);return}let $=W2(this.discriminant.kind==="domain"?G.map((J)=>{let z=J.slice(1,-1);return z==="function"?H1.object:H1[z]}):G),W=this.discriminant.path.map((J)=>typeof J==="symbol"?T0(J):JSON.stringify(J)),H=JSON.stringify($),Q=this.discriminant.kind==="domain"?`${NQ}[${Z}]`:`${IQ}(${Z})`;Y.line(`ctx.errorFromNodeContext({
|
|
34
34
|
code: "predicate",
|
|
35
35
|
expected: ${H},
|
|
36
36
|
actual: ${Q},
|
|
37
37
|
relativePath: [${W}],
|
|
38
38
|
meta: ${this.compiledMeta}
|
|
39
|
-
})`)}compileIndiscriminable(Y){if(Y.traversalKind==="Apply"){Y.const("errors","[]");for(let Z of this.branches)Y.line("ctx.pushBranch()").line(Y.invoke(Z)).if("!ctx.hasError()",()=>Y.return(Z.includesTransform?"ctx.queuedMorphs.push(...ctx.popBranch().queuedMorphs)":"ctx.popBranch()")).line("errors.push(ctx.popBranch().error)");Y.line(`ctx.errorFromNodeContext({ code: "union", errors, meta: ${this.compiledMeta} })`)}else{let{optimistic:Z}=Y;Y.optimistic=!1;for(let X of this.branches)Y.if(`${Y.invoke(X)}`,()=>Y.return(Z?X.contextFreeMorph?`${T0(X.contextFreeMorph)}(${Y.data})`:Y.data:!0));Y.return(Z?`"${L1}"`:!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 _=o(this.unitBranches,($,W)=>[`${W.in.serializedValue}`,W.hasKind("morph")?W:!0]);return{kind:"unit",path:[],optionallyChainedPropString:"data",cases:_}}let Y=[];for(let _=0;_<this.branches.length-1;_++){let $=this.branches[_];for(let W=_+1;W<this.branches.length;W++){let H=this.branches[W],Q=z1($.in,H.in,$.$);if(!(Q instanceof S))continue;for(let J of Q){if(!J.kind||J.optional)continue;let z,
|
|
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?`${T0(X.contextFreeMorph)}(${Y.data})`:Y.data:!0));Y.return(Z?`"${L1}"`:!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 _=o(this.unitBranches,($,W)=>[`${W.in.serializedValue}`,W.hasKind("morph")?W:!0]);return{kind:"unit",path:[],optionallyChainedPropString:"data",cases:_}}let Y=[];for(let _=0;_<this.branches.length-1;_++){let $=this.branches[_];for(let W=_+1;W<this.branches.length;W++){let H=this.branches[W],Q=z1($.in,H.in,$.$);if(!(Q instanceof S))continue;for(let J of Q){if(!J.kind||J.optional)continue;let z,F;if(J.kind==="domain"){let{l:L,r:w}=J;z=`"${typeof L==="string"?L:L.domain}"`,F=`"${typeof w==="string"?w:w.domain}"`}else if(J.kind==="unit")z=J.l.serializedValue,F=J.r.serializedValue;else continue;let O=Y.find((L)=>a1(L.path,J.path)&&L.kind===J.kind);if(!O)Y.push({kind:J.kind,cases:{[z]:{branchIndices:[_],condition:J.l},[F]:{branchIndices:[W],condition:J.r}},path:J.path});else{if(O.cases[z])O.cases[z].branchIndices=c1(O.cases[z].branchIndices,_);else O.cases[z]??={branchIndices:[_],condition:J.l};if(O.cases[F])O.cases[F].branchIndices=c1(O.cases[F].branchIndices,W);else O.cases[F]??={branchIndices:[W],condition:J.r}}}}}let Z=this.ordered?RQ(Y,this.branches):Y;if(!Z.length)return null;let X=MQ(Z,this),G={};for(let _ in X.best.cases){let $=AQ(X,_);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 _=X.defaultEntries.map(($)=>$.branch);G.default=this.$.node("union",this.ordered?{branches:_,ordered:!0}:_,{prereduced:!0}),Object.assign(this.referencesById,G.default.referencesById)}return Object.assign(X.location,{cases:G})}}var MQ=(Y,Z)=>{let X=Y.sort(($,W)=>Object.keys(W.cases).length-Object.keys($.cases).length)[0],G={kind:X.kind,path:X.path,optionallyChainedPropString:mG(X.path)},_=Z.branches.map(($,W)=>({originalIndex:W,branch:$}));return{best:X,location:G,defaultEntries:_,node:Z}},AQ=(Y,Z)=>{let X=Y.best.cases[Z],G=wQ(X.condition,Y.location.path,Y.node.$),_=[],$=[];for(let W=0;W<Y.defaultEntries.length;W++){let H=Y.defaultEntries[W];if(X.branchIndices.includes(H.originalIndex)){let Q=yG(Y.node.branches[H.originalIndex],Y.location);if(Q===null)_=null;else _?.push({originalIndex:H.originalIndex,branch:Q})}else if(H.branch.hasKind("alias")&&G.hasKind("domain")&&G.domain==="object")_?.push(H);else{if(H.branch.in.overlaps(G)){let Q=yG(H.branch,Y.location);_?.push({originalIndex:H.originalIndex,branch:Q})}$.push(H)}}return Y.defaultEntries=$,_},RQ=(Y,Z)=>{return Y.filter((G)=>{let _=Object.values(G.cases).map(($)=>$.branchIndices);for(let $=0;$<_.length-1;$++){let W=_[$];for(let H=$+1;H<_.length;H++){let Q=_[H];for(let J of W)for(let z of Q)if(J>z){if(Z[J].overlaps(Z[z]))return!1}}}return!0})},wQ=(Y,Z,X)=>{let G=Y==="undefined"?X.node("unit",{unit:void 0}):Y==="null"?X.node("unit",{unit:null}):Y==="boolean"?X.units([!0,!1]):Y;for(let _=Z.length-1;_>=0;_--){let $=Z[_];G=X.node("intersection",typeof $==="number"?{proto:"Array",sequence:[...wX($).map((W)=>({})),G]}:{domain:"object",required:[{key:$,value:G}]})}return G},mG=(Y)=>Y.reduce((Z,X)=>Z+jY(X,!0),"data"),NQ=T0(KX),IQ=T0(i),ZZ={implementation:LQ,Node:pG},KQ=(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])}),BQ={delimiter:" | ",finalDelimiter:" | "},TQ=(Y)=>W2(Y,BQ),W2=(Y,Z)=>{let X=Z?.delimiter??", ",G=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 _={},$=Y.filter((H)=>_[H]?!1:_[H]=!0),W=$.pop();return`${$.join(X)}${$.length?G:""}${W}`},YZ=(Y,Z,X)=>{let G=Z.map(()=>[]);for(let $=0;$<Y.length;$++){let W={};for(let H=0;H<Z.length;H++){if(G[H]===null)continue;if(Y[$].equals(Z[H])){G[H]=null,W={};break}let Q=L0(Y[$],Z[H],X);if(Q instanceof S)continue;if(Q.equals(Y[$])){G[H].push(Y[$]),W={};break}if(Q.equals(Z[H]))G[H]=null;else W[H]=Q}for(let H in W)G[H][$]=W[H]}let _=G.flatMap(($,W)=>$?.flatMap((H)=>H.branches)??Z[W]);return _.length===0?S.init("union",Y,Z):_},CQ=({branches:Y,ordered:Z})=>{if(Y.length<2)return Y;let X=Y.map(()=>!0);for(let G=0;G<Y.length;G++)for(let _=G+1;_<Y.length&&X[G]&&X[_];_++){if(Y[G].equals(Y[_])){X[_]=!1;continue}let $=z1(Y[G].in,Y[_].in,Y[0].$);if($ instanceof S)continue;if(!Z)qQ(Y[G],Y[_]);if($.equals(Y[G].in))X[G]=!!Z;else if($.equals(Y[_].in))X[_]=!1}return Y.filter((G,_)=>X[_])},qQ=(Y,Z)=>{if(!Y.includesTransform&&!Z.includesTransform)return;if(!a1(Y.shallowMorphs,Z.shallowMorphs))A(gG(Y.expression,Z.expression));if(!a1(Y.flatMorphs,Z.flatMorphs,{isEqual:(X,G)=>X.propString===G.propString&&(X.node.hasKind("morph")&&G.node.hasKind("morph")?X.node.hasEqualMorphs(G.node):X.node.hasKind("intersection")&&G.node.hasKind("intersection")?X.node.structure?.structuralMorphRef===G.node.structure?.structuralMorphRef:!1)}))A(gG(Y.expression,Z.expression))},yG=(Y,Z)=>Y.transform((X,G)=>{if(X==="domain"||X==="unit")return null;return G},{shouldTransform:(X,G)=>{let _=mG(G.path);if(!Z.optionallyChainedPropString.startsWith(_))return!1;if(X.hasKind("domain")&&X.domain==="object")return!0;if((X.hasKind("domain")||Z.kind==="unit")&&_===Z.optionallyChainedPropString)return!0;return X.children.length!==0&&X.kind!=="index"}}),gG=(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}`,
|
|
41
|
+
Right: ${Z}`,jQ=(Y,Z)=>`The intersection of two ordered unions is indeterminate:
|
|
42
42
|
Left: ${Y}
|
|
43
|
-
Right: ${Z}`;var SQ=r({kind:"unit",hasAssociatedError:!0,keys:{unit:{preserveUndefined:!0,serialize:(Y)=>Y instanceof Date?Y.toISOString():w1(Y)}},normalize:(Y)=>Y,defaults:{description:(Y)=>i(Y.unit),problem:({expected:Y,actual:Z})=>`${Y===Z?`must be reference equal to ${Y} (serialized to the same value)`:`must be ${Y} (was ${Z})`}`},intersections:{unit:(Y,Z)=>S.init("unit",Y,Z),...o1("unit",(Y,Z)=>{if(Z.allows(Y.unit))return Y;let X=Z.hasKind("intersection")?Z.basis:Z;if(X){let G=X.hasKind("domain")?X:I.intrinsic.object;if(Y.domain!==G.domain){let _=Y.domain==="undefined"||Y.domain==="null"||Y.domain==="boolean"?Y.domain:I.intrinsic[Y.domain];return S.init("domain",_,G)}}return S.init("assignability",Y,Z.hasKind("intersection")?Z.children.find((G)=>!G.allows(Y.unit)):Z)})}});class dG extends v4{compiledValue=this.json.unit;serializedValue=typeof this.unit==="string"||this.unit instanceof Date?JSON.stringify(this.compiledValue):`${this.compiledValue}`;compiledCondition=uG(this.unit,this.serializedValue);compiledNegation=uG(this.unit,this.serializedValue,"negated");expression=i(this.unit);domain=y0(this.unit);get defaultShortDescription(){return this.domain==="object"?H1.object:this.description}innerToJsonSchema(Y){return this.unit===null?{type:"null"}:I.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 XZ={implementation:SQ,Node:dG},uG=(Y,Z,X)=>{if(Y instanceof Date){let G=`data instanceof Date && data.toISOString() === ${Z}`;return X?`!(${G})`:G}if(Number.isNaN(Y))return`${X?"!":""}Number.isNaN(data)`;return`data ${X?"!":"="}== ${Z}`};var vQ=r({kind:"index",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{signature:{child:!0,parse:(Y,Z)=>{let X=Z.$.parseSchema(Y);if(!X.extends(I.intrinsic.key))return A(fQ(X.expression));let G=X.branches.filter((_)=>_.hasKind("unit"));if(G.length)return A(xQ(G.map((_)=>i(_.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 G=L0(Y.value,Z.value,X),_=G instanceof S?I.intrinsic.never.internal:G;return X.$.node("index",{signature:Y.signature,value:_})}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 cG extends N1{impliedBasis=I.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)=>q4(Y).every((X)=>{if(this.signature.traverseAllows(X[0],Z))return Q1(X[0],()=>this.value.traverseAllows(X[1],Z),Z);return!0});traverseApply=(Y,Z)=>{for(let X of q4(Y))if(this.signature.traverseAllows(X[0],Z))Q1(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 GZ={implementation:vQ,Node:cG},xQ=(Y)=>`Index keys ${Y.join(", ")} should be specified as named props.`,fQ=(Y)=>`Indexed key definition '${Y}' must be a string or symbol`;var hQ=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:l2,optional:l2}});class lG extends o2{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 _Z={implementation:hQ,Node:lG};var kQ=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 G=Z.$.parseSchema(X[0]);return n2(G,X[1],null),[G,X[1]]})},serialize:(Y)=>Y.map((Z)=>[Z[0].collapsibleJson,w1(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 A(pQ);if(Y.optionals?.length||Y.defaultables?.length)return A(WZ)}if(Y.minVariadicLength&&!Y.variadic)return A("minVariadicLength may not be specified without a variadic element");return Y}return{variadic:Y}},reduce:(Y,Z)=>{let X=Y.minVariadicLength??0,G=Y.prefix?.slice()??[],_=Y.defaultables?.slice()??[],$=Y.optionals?.slice()??[],W=Y.postfix?.slice()??[];if(Y.variadic){while($.at(-1)?.equals(Y.variadic))$.pop();if($.length===0&&_.length===0)while(G.at(-1)?.equals(Y.variadic))G.pop(),X++;while(W[0]?.equals(Y.variadic))W.shift(),X++}else if($.length===0&&_.length===0)G.push(...W.splice(0));if(X!==Y.minVariadicLength||Y.prefix&&Y.prefix.length!==G.length)return Z.node("sequence",{...Y,prefix:G,defaultables:_,optionals:$,postfix:W,minVariadicLength:X},{prereduced:!0})},defaults:{description:(Y)=>{if(Y.isVariadicOnly)return`${Y.variadic.nestableExpression}[]`;return`[${Y.tuple.map((X)=>X.kind==="defaultables"?`${X.node.nestableExpression} = ${i(X.default)}`:X.kind==="optionals"?`${X.node.nestableExpression}?`:X.kind==="variadic"?`...${X.node.nestableExpression}[]`:X.node.expression).join(", ")}]`}},intersections:{sequence:(Y,Z,X)=>{let G=a2({l:Y.tuple,r:Z.tuple,disjoint:new S,result:[],fixedVariants:[],ctx:X}),_=G.disjoint.length===0?[G,...G.fixedVariants]:G.fixedVariants;return _.length===0?G.disjoint:_.length===1?X.$.node("sequence",oG(_[0].result)):X.$.node("union",_.map(($)=>({proto:Array,sequence:oG($.result)})))}}});class iG extends N1{impliedBasis=I.intrinsic.Array.internal;tuple=gQ(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 xY(this.flatRefs,this.prevariadic.flatMap((Y,Z)=>Z0(Y.node.flatRefs.map((X)=>f1([`${Z}`,...X.path],X.node)),f1([`${Z}`],Y.node)))),xY(this.flatRefs,this.variadicOrPostfix.flatMap((Y)=>Z0(Y.flatRefs.map((Z)=>f1([I.intrinsic.nonNegativeIntegerString.internal,...Z.path],Z.node)),f1([I.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=yQ(this);defaultValueMorphsReference=this.defaultValueMorphs.length?T0(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??G0(`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++)Q1(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 G=`${Z+this.prefixLength}`;Y.if(`${G} >= ${Y.data}.length`,()=>Y.traversalKind==="Allows"?Y.return(!0):Y.return()),Y.traverseKey(G,`data[${G}]`,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 G=`firstPostfixIndex + ${Z}`;Y.traverseKey(G,`data[${G}]`,X)}}if(Y.traversalKind==="Allows")Y.return(!0)}_transform(Y,Z){Z.path.push(I.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 G=X.node.toJsonSchemaRecurse(Z);if(X.kind==="defaultables"){let _=typeof X.default==="function"?X.default():X.default;G.default=I.intrinsic.jsonData.allows(_)?_:Z.fallback.defaultValue({code:"defaultValue",base:G,value:_})}return G});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 G=this.postfix.map((_)=>_.toJsonSchemaRecurse(Z));Y=Z.fallback.arrayPostfix({code:"arrayPostfix",base:X,elements:G})}}else Y.items=!1,delete Y.maxItems;return Y}}var bQ={},yQ=(Y)=>{if(!Y.defaultables)return[];let Z=[],X="[",G=Y.prefixLength+Y.defaultablesLength-1;for(let _=Y.prefixLength;_<=G;_++){let[$,W]=Y.defaultables[_-Y.prefixLength];Z.push(tY(_,$,W)),X+=`${_}: ${$.id} = ${w1(W)}, `}return X+="]",bQ[X]??=Z},$Z={implementation:kQ,Node:iG},gQ=(Y)=>{let Z=[];if(Y.prefix)for(let X of Y.prefix)Z.push({kind:"prefix",node:X});if(Y.defaultables)for(let[X,G]of Y.defaultables)Z.push({kind:"defaultables",node:X,default:G});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},oG=(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},{}),WZ="A postfix required element cannot follow an optional or defaultable element",pQ="A postfix element requires a variadic element",a2=(Y)=>{let[Z,...X]=Y.l,[G,..._]=Y.r;if(!Z||!G)return Y;let $=X.at(-1)?.kind==="postfix",W=_.at(-1)?.kind==="postfix",H=Z.kind==="prefix"||G.kind==="prefix"?"prefix":Z.kind==="postfix"||G.kind==="postfix"?"postfix":Z.kind==="variadic"&&G.kind==="variadic"?"variadic":$||W?"prefix":Z.kind==="defaultables"||G.kind==="defaultables"?"defaultables":"optionals";if(Z.kind==="prefix"&&G.kind==="variadic"&&W){let U=a2({...Y,fixedVariants:[],r:_.map((O)=>({...O,kind:"prefix"}))});if(U.disjoint.length===0)Y.fixedVariants.push(U)}else if(G.kind==="prefix"&&Z.kind==="variadic"&&$){let U=a2({...Y,fixedVariants:[],l:X.map((O)=>({...O,kind:"prefix"}))});if(U.disjoint.length===0)Y.fixedVariants.push(U)}let Q=L0(Z.node,G.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:I.intrinsic.never.internal}];else if(H==="optionals"||H==="defaultables")return Y;else return a2({...Y,fixedVariants:[],l:X.map((U)=>({...U,kind:"prefix"})),r:X.map((U)=>({...U,kind:"prefix"}))});else if(H==="defaultables"){if(Z.kind==="defaultables"&&G.kind==="defaultables"&&Z.default!==G.default)A(sY(Z.default,G.default));Y.result=[...Y.result,{kind:H,node:Q,default:Z.kind==="defaultables"?Z.default:G.kind==="defaultables"?G.default:G0(`Unexpected defaultable intersection from ${Z.kind} and ${G.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&&(G.kind==="variadic"||z===1))Y.l=X;if(G.kind!=="variadic"||z>=J&&(Z.kind==="variadic"||J===1))Y.r=_;return a2(Y)};var sG=(Y)=>(Z)=>{if(Z.props.length||Z.index){let X=Z.index?.map((_)=>_[Y])??[];for(let _ of Z.props)X.push(_[Y]);if(Z.undeclared)X.push(`+ (undeclared): ${Z.undeclared}`);let G=`{ ${X.join(", ")} }`;return Z.sequence?`${G} & ${Z.sequence.description}`:G}return Z.sequence?.description??"{}"},mQ=sG("description"),uQ=sG("expression"),nG=(Y,Z,X)=>{let G=Y.required?"required":"optional";if(!Z.signature.allows(Y.key))return null;let _=z1(Y.value,Z.value,X);if(_ instanceof S)return G==="optional"?X.node("optional",{key:Y.key,value:I.intrinsic.never.internal}):_.withPrefixKey(Y.key,Y.kind);return null},dQ=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:s0("required"),reduceIo:(Y,Z,X)=>{Z.required=Z0(Z.required,X.map((G)=>G[Y]));return}},optional:{child:!0,parse:s0("optional"),reduceIo:(Y,Z,X)=>{if(Y==="in"){Z.optional=X.map((G)=>G.in);return}for(let G of X)Z[G.outProp.kind]=Z0(Z[G.outProp.kind],G.outProp.out)}},index:{child:!0,parse:s0("index")},sequence:{child:!0,parse:s0("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:mQ},intersections:{structure:(Y,Z,X)=>{let G={...Y.inner},_={...Z.inner},$=new S;if(Y.undeclared){let Q=Y.keyof();for(let J of Z.requiredKeys)if(!Q.allows(J))$.add("presence",I.intrinsic.never.internal,Z.propsByKey[J].value,{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=z1(Q,J.signature,X.$);if(z instanceof S)return[];let U=Z6(z,J.value,X.$);if(U.required)_.required=t1(_.required,U.required);if(U.optional)_.optional=t1(_.optional,U.optional);return U.index??[]})}if(Z.undeclared){let Q=Z.keyof();for(let J of Y.requiredKeys)if(!Q.allows(J))$.add("presence",Y.propsByKey[J].value,I.intrinsic.never.internal,{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=z1(Q,J.signature,X.$);if(z instanceof S)return[];let U=Z6(z,J.value,X.$);if(U.required)G.required=t1(G.required,U.required);if(U.optional)G.optional=t1(G.optional,U.optional);return U.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(G),r:X2(_),roots:[],ctx:X});if(H instanceof S)$.push(...H);if($.length)return $;return H}},reduce:(Y,Z)=>{if(Y.index){if(!(Y.required||Y.optional))return;let X=!1,G=Y.required??[],_=Y.optional??[],$=[..._];for(let W of Y.index){for(let H of G){let Q=nG(H,W,Z);if(Q instanceof S)return Q}for(let[H,Q]of _.entries()){let J=nG(Q,W,Z);if(J instanceof S)return J;if(J===null)continue;$[H]=J,X=!0}}if(X)return Z.node("structure",{...Y,optional:$},{prereduced:!0})}}});class tG extends N1{impliedBasis=I.intrinsic.object.internal;impliedSiblings=this.children.flatMap((Y)=>Y.impliedSiblings??[]);props=t1(this.required,this.optional);propsByKey=o(this.props,(Y,Z)=>[Z.key,Z]);propsByKeyReference=T0(this.propsByKey);expression=uQ(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 G=this.propsByKey[X.key];if(D0(X)){if(X.kind!=="required"&&X.kind!=="optional")return A(`Map result must have kind "required" or "optional" (was ${X.kind})`);return Z[X.kind]=Z0(Z[X.kind],X),Z}let _=X.kind??G?.kind??"required",$=o(X,(W,H)=>(W in i2.implementation.keys)?[W,H]:[]);return Z[_]=Z0(Z[_],this.$.node(_,$)),Z},{}))}assertHasKeys(Y){let Z=Y.filter((X)=>!r2(X,this.keyof()));if(Z.length)return A(rG(this.expression,Z))}get(Y,...Z){let X,G=!1,_=iQ(Y);if((typeof _==="string"||typeof _==="symbol")&&this.propsByKey[_])X=this.propsByKey[_].value,G=this.propsByKey[_].required;if(this.index){for(let W of this.index)if(r2(_,W.signature))X=X?.and(W.value)??W.value}if(this.sequence&&r2(_,I.intrinsic.nonNegativeIntegerString))if(y(_,"root")){if(this.sequence.variadic)X=X?.and(this.sequence.element)??this.sequence.element}else{let W=Number.parseInt(_);if(W<this.sequence.prevariadic.length){let H=this.sequence.prevariadic[W].node;X=X?.and(H)??H,G||=W<this.sequence.prefixLength}else if(this.sequence.variadic){let H=this.$.node("union",this.sequence.variadicOrPostfix);X=X?.and(H)??H}}if(!X){if(this.sequence?.variadic&&y(_,"root")&&_.extends(I.intrinsic.number))return A(nQ(_.expression,this.sequence.expression));return A(rG(this.expression,[_]))}let $=X.get(...Z);return G?$:$.or(I.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=c8(this.inner),G=(_)=>{let $=Z.some((W)=>r2(_,W));return Y==="pick"?$:!$};if(X.required)X.required=X.required.filter((_)=>G(_.key));if(X.optional)X.optional=X.optional.filter((_)=>G(_.key));if(X.index)X.index=X.index.filter((_)=>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 G=X?.currentErrorCount??0;for(let _=0;_<this.props.length;_++)if(Y==="Allows"){if(!this.props[_].traverseAllows(Z,X))return!1}else if(this.props[_].traverseApply(Z,X),X.failFast&&X.currentErrorCount>G)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>G)return!1}if(this.index||this.undeclared==="reject"){let _=Object.keys(Z);_.push(...Object.getOwnPropertySymbols(Z));for(let $=0;$<_.length;$++){let W=_[$];if(this.index){for(let H of this.index)if(H.signature.traverseAllows(W,X)){if(Y==="Allows"){if(!Q1(W,()=>H.value.traverseAllows(Z[W],X),X))return!1}else if(Q1(W,()=>H.value.traverseApply(Z[W],X),X),X.failFast&&X.currentErrorCount>G)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&&I.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",lQ(this))}structuralMorphRef=this.structuralMorph&&T0(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(["),oQ(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 w0.throwInternalOperandError("structure",Y)}}reduceObjectJsonSchema(Y,Z){if(this.props.length){Y.properties={};for(let X of this.props){let G=X.value.toJsonSchemaRecurse(Z);if(typeof X.key==="symbol"){Z.fallback.symbolKey({code:"symbolKey",base:Y,key:X.key,value:G,optional:X.optional});continue}if(X.hasDefault()){let _=typeof X.default==="function"?X.default():X.default;G.default=I.intrinsic.jsonData.allows(_)?_:Z.fallback.defaultValue({code:"defaultValue",base:G,value:_})}Y.properties[X.key]=G}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 G=X.value.toJsonSchemaRecurse(Z);if(X.signature.equals(I.intrinsic.string)){Y.additionalProperties=G;continue}for(let _ of X.signature.branches){if(!_.extends(I.intrinsic.string)){Y=Z.fallback.symbolKey({code:"symbolKey",base:Y,key:null,value:G,optional:!1});continue}let $={type:"string"};if(_.hasKind("morph"))$=Z.fallback.morph({code:"morph",base:_.in.toJsonSchemaRecurse(Z),out:_.out.toJsonSchemaRecurse(Z)});if(!_.hasKind("intersection"))return G0(`Unexpected index branch kind ${_.kind}.`);let{pattern:W}=_.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]=G}}}if(this.undeclared&&!Y.additionalProperties)Y.additionalProperties=!1;return Y}}var HZ={},cQ=(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+=u.nonNegativeIntegerString.id;else for(let X=0;X<Y.sequence.tuple.length;X++)Z+=X+" | ";Z+=")"}return Z},lQ=(Y)=>{let Z=cQ(Y);if(!Z)return;if(HZ[Z])return HZ[Z];let X=(G,_)=>{for(let $=0;$<Y.defaultable.length;$++)if(!(Y.defaultable[$].key in G))Y.defaultable[$].defaultValueMorph(G,_);if(Y.sequence?.defaultables)for(let $=G.length-Y.sequence.prefixLength;$<Y.sequence.defaultables.length;$++)Y.sequence.defaultValueMorphs[$](G,_);if(Y.undeclared==="delete"){for(let $ in G)if(!Y.declaresKey($))delete G[$]}return G};return HZ[Z]=X},oQ=(Y,Z)=>{let G=`(data${Z.defaultable.some((_)=>_.defaultValueMorph.length===2)||Z.sequence?.defaultValueMorphs.some((_)=>_.length===2)?", ctx":""})`;return Y.block(`${G} => `,(_)=>{for(let $=0;$<Z.defaultable.length;$++){let{serializedKey:W,defaultValueMorphRef:H}=Z.defaultable[$];_.if(`!(${W} in data)`,(Q)=>Q.line(`${H}${G}`))}if(Z.sequence?.defaultables)_.for(`i < ${Z.sequence.defaultables.length}`,($)=>$.set("data[i]",5),`data.length - ${Z.sequence.prefixLength}`);if(Z.undeclared==="delete")_.forIn("data",($)=>$.if(`!(${Z._compileDeclaresKey($)})`,(W)=>W.line("delete data[k]")));return _.return("data")})},JZ={implementation:dQ,Node:tG},iQ=(Y)=>{if(y(Y,"root")&&Y.hasKind("unit"))Y=Y.unit;if(typeof Y==="number")Y=`${Y}`;return Y},nQ=(Y,Z)=>`${Y} is not allowed as an array index on ${Z}. Use the 'nonNegativeIntegerString' keyword instead.`,Z6=(Y,Z,X)=>{let[G,_]=RX(Y.branches,(W)=>W.hasKind("unit"));if(!G.length)return{index:X.node("index",{signature:Y,value:Z})};let $={};for(let W of G){let H=X.node("required",{key:W.unit,value:Z});$[H.kind]=Z0($[H.kind],H)}if(_.length)$.index=X.node("index",{signature:_,value:Z});return $},rQ=(Y)=>y(Y,"root")?Y.expression:i(Y),rG=(Y,Z)=>`Key${Z.length===1?"":"s"} ${Z.map(rQ).join(", ")} ${Z.length===1?"does":"do"} not exist on ${Y}`;var _2={...wG,alias:s2.implementation,domain:Y6.implementation,unit:XZ.implementation,proto:t2.implementation,union:ZZ.implementation,morph:eY.implementation,intersection:aY.implementation,divisor:yY.implementation,pattern:oY.implementation,predicate:bY.implementation,required:_Z.implementation,optional:i2.implementation,index:GZ.implementation,sequence:$Z.implementation,structure:JZ.implementation};I.defaultConfig=jX(Object.assign(o(_2,(Y,Z)=>[Y,Z.defaults]),{jitless:hX(),clone:vX,onUndeclaredKey:"ignore",exactOptionalPropertyTypes:!0,numberAllowsNaN:!1,dateAllowsInvalid:!1,onFail:null,keywords:{},toJsonSchema:w0.defaultConfig}));I.resolvedConfig=p2(I.defaultConfig,I.config);var CG={...NG,alias:s2.Node,domain:Y6.Node,unit:XZ.Node,proto:t2.Node,union:ZZ.Node,morph:eY.Node,intersection:aY.Node,divisor:yY.Node,pattern:oY.Node,predicate:bY.Node,required:_Z.Node,optional:i2.Node,index:GZ.Node,sequence:$Z.Node,structure:JZ.Node};class H2 extends MY{get[Y1](){return"module"}}var QZ=(Y,Z)=>new H2(o(Y,(X,G)=>[X,y(G,"module")?QZ(G,Z):Z.bindReference(G)]));var sQ=(Y)=>F0(Y)?Y:("branches"in Y)&&F0(Y.branches)?Y.branches:void 0,tQ=(Y,Z)=>A(`Node of kind ${Z} is not valid as a ${Y} definition`),aG=(Y)=>`#${Y} duplicates public alias ${Y}`,zZ={};I.ambient??={};var eG,Z9="function $",aQ=(Y)=>X9(Y,G9(Y)),X9=(Y,Z)=>{let X=Z.write(Z9,4),G=Z.compile()();for(let _ of Y){if(_.precompilation)continue;if(_.traverseAllows=G[`${_.id}Allows`].bind(G),_.isRoot()&&!_.allowsRequiresContext)_.allows=_.traverseAllows;if(_.traverseApply=G[`${_.id}Apply`].bind(G),G[`${_.id}Optimistic`])_.traverseOptimistic=G[`${_.id}Optimistic`].bind(G);_.precompilation=X}},G9=(Y)=>new d8().return(Y.reduce((Z,X)=>{let G=new g2({kind:"Allows"}).indent();X.compile(G);let _=G.write(`${X.id}Allows`),$=new g2({kind:"Apply"}).indent();X.compile($);let W=$.write(`${X.id}Apply`),H=`${Z}${_},
|
|
43
|
+
Right: ${Z}`;var PQ=r({kind:"unit",hasAssociatedError:!0,keys:{unit:{preserveUndefined:!0,serialize:(Y)=>Y instanceof Date?Y.toISOString():w1(Y)}},normalize:(Y)=>Y,defaults:{description:(Y)=>i(Y.unit),problem:({expected:Y,actual:Z})=>`${Y===Z?`must be reference equal to ${Y} (serialized to the same value)`:`must be ${Y} (was ${Z})`}`},intersections:{unit:(Y,Z)=>S.init("unit",Y,Z),...o1("unit",(Y,Z)=>{if(Z.allows(Y.unit))return Y;let X=Z.hasKind("intersection")?Z.basis:Z;if(X){let G=X.hasKind("domain")?X:I.intrinsic.object;if(Y.domain!==G.domain){let _=Y.domain==="undefined"||Y.domain==="null"||Y.domain==="boolean"?Y.domain:I.intrinsic[Y.domain];return S.init("domain",_,G)}}return S.init("assignability",Y,Z.hasKind("intersection")?Z.children.find((G)=>!G.allows(Y.unit)):Z)})}});class dG extends v4{compiledValue=this.json.unit;serializedValue=typeof this.unit==="string"||this.unit instanceof Date?JSON.stringify(this.compiledValue):`${this.compiledValue}`;compiledCondition=uG(this.unit,this.serializedValue);compiledNegation=uG(this.unit,this.serializedValue,"negated");expression=i(this.unit);domain=y0(this.unit);get defaultShortDescription(){return this.domain==="object"?H1.object:this.description}innerToJsonSchema(Y){return this.unit===null?{type:"null"}:I.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 XZ={implementation:PQ,Node:dG},uG=(Y,Z,X)=>{if(Y instanceof Date){let G=`data instanceof Date && data.toISOString() === ${Z}`;return X?`!(${G})`:G}if(Number.isNaN(Y))return`${X?"!":""}Number.isNaN(data)`;return`data ${X?"!":"="}== ${Z}`};var SQ=r({kind:"index",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{signature:{child:!0,parse:(Y,Z)=>{let X=Z.$.parseSchema(Y);if(!X.extends(I.intrinsic.key))return A(xQ(X.expression));let G=X.branches.filter((_)=>_.hasKind("unit"));if(G.length)return A(vQ(G.map((_)=>i(_.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 G=L0(Y.value,Z.value,X),_=G instanceof S?I.intrinsic.never.internal:G;return X.$.node("index",{signature:Y.signature,value:_})}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 cG extends N1{impliedBasis=I.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)=>q4(Y).every((X)=>{if(this.signature.traverseAllows(X[0],Z))return Q1(X[0],()=>this.value.traverseAllows(X[1],Z),Z);return!0});traverseApply=(Y,Z)=>{for(let X of q4(Y))if(this.signature.traverseAllows(X[0],Z))Q1(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 GZ={implementation:SQ,Node:cG},vQ=(Y)=>`Index keys ${Y.join(", ")} should be specified as named props.`,xQ=(Y)=>`Indexed key definition '${Y}' must be a string or symbol`;var fQ=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:l2,optional:l2}});class lG extends o2{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 _Z={implementation:fQ,Node:lG};var hQ=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 G=Z.$.parseSchema(X[0]);return n2(G,X[1],null),[G,X[1]]})},serialize:(Y)=>Y.map((Z)=>[Z[0].collapsibleJson,w1(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 A(gQ);if(Y.optionals?.length||Y.defaultables?.length)return A(WZ)}if(Y.minVariadicLength&&!Y.variadic)return A("minVariadicLength may not be specified without a variadic element");return Y}return{variadic:Y}},reduce:(Y,Z)=>{let X=Y.minVariadicLength??0,G=Y.prefix?.slice()??[],_=Y.defaultables?.slice()??[],$=Y.optionals?.slice()??[],W=Y.postfix?.slice()??[];if(Y.variadic){while($.at(-1)?.equals(Y.variadic))$.pop();if($.length===0&&_.length===0)while(G.at(-1)?.equals(Y.variadic))G.pop(),X++;while(W[0]?.equals(Y.variadic))W.shift(),X++}else if($.length===0&&_.length===0)G.push(...W.splice(0));if(X!==Y.minVariadicLength||Y.prefix&&Y.prefix.length!==G.length)return Z.node("sequence",{...Y,prefix:G,defaultables:_,optionals:$,postfix:W,minVariadicLength:X},{prereduced:!0})},defaults:{description:(Y)=>{if(Y.isVariadicOnly)return`${Y.variadic.nestableExpression}[]`;return`[${Y.tuple.map((X)=>X.kind==="defaultables"?`${X.node.nestableExpression} = ${i(X.default)}`:X.kind==="optionals"?`${X.node.nestableExpression}?`:X.kind==="variadic"?`...${X.node.nestableExpression}[]`:X.node.expression).join(", ")}]`}},intersections:{sequence:(Y,Z,X)=>{let G=a2({l:Y.tuple,r:Z.tuple,disjoint:new S,result:[],fixedVariants:[],ctx:X}),_=G.disjoint.length===0?[G,...G.fixedVariants]:G.fixedVariants;return _.length===0?G.disjoint:_.length===1?X.$.node("sequence",oG(_[0].result)):X.$.node("union",_.map(($)=>({proto:Array,sequence:oG($.result)})))}}});class iG extends N1{impliedBasis=I.intrinsic.Array.internal;tuple=yQ(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 xY(this.flatRefs,this.prevariadic.flatMap((Y,Z)=>Z0(Y.node.flatRefs.map((X)=>f1([`${Z}`,...X.path],X.node)),f1([`${Z}`],Y.node)))),xY(this.flatRefs,this.variadicOrPostfix.flatMap((Y)=>Z0(Y.flatRefs.map((Z)=>f1([I.intrinsic.nonNegativeIntegerString.internal,...Z.path],Z.node)),f1([I.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=bQ(this);defaultValueMorphsReference=this.defaultValueMorphs.length?T0(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??G0(`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++)Q1(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 G=`${Z+this.prefixLength}`;Y.if(`${G} >= ${Y.data}.length`,()=>Y.traversalKind==="Allows"?Y.return(!0):Y.return()),Y.traverseKey(G,`data[${G}]`,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 G=`firstPostfixIndex + ${Z}`;Y.traverseKey(G,`data[${G}]`,X)}}if(Y.traversalKind==="Allows")Y.return(!0)}_transform(Y,Z){Z.path.push(I.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 G=X.node.toJsonSchemaRecurse(Z);if(X.kind==="defaultables"){let _=typeof X.default==="function"?X.default():X.default;G.default=I.intrinsic.jsonData.allows(_)?_:Z.fallback.defaultValue({code:"defaultValue",base:G,value:_})}return G});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 G=this.postfix.map((_)=>_.toJsonSchemaRecurse(Z));Y=Z.fallback.arrayPostfix({code:"arrayPostfix",base:X,elements:G})}}else Y.items=!1,delete Y.maxItems;return Y}}var kQ={},bQ=(Y)=>{if(!Y.defaultables)return[];let Z=[],X="[",G=Y.prefixLength+Y.defaultablesLength-1;for(let _=Y.prefixLength;_<=G;_++){let[$,W]=Y.defaultables[_-Y.prefixLength];Z.push(tY(_,$,W)),X+=`${_}: ${$.id} = ${w1(W)}, `}return X+="]",kQ[X]??=Z},$Z={implementation:hQ,Node:iG},yQ=(Y)=>{let Z=[];if(Y.prefix)for(let X of Y.prefix)Z.push({kind:"prefix",node:X});if(Y.defaultables)for(let[X,G]of Y.defaultables)Z.push({kind:"defaultables",node:X,default:G});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},oG=(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},{}),WZ="A postfix required element cannot follow an optional or defaultable element",gQ="A postfix element requires a variadic element",a2=(Y)=>{let[Z,...X]=Y.l,[G,..._]=Y.r;if(!Z||!G)return Y;let $=X.at(-1)?.kind==="postfix",W=_.at(-1)?.kind==="postfix",H=Z.kind==="prefix"||G.kind==="prefix"?"prefix":Z.kind==="postfix"||G.kind==="postfix"?"postfix":Z.kind==="variadic"&&G.kind==="variadic"?"variadic":$||W?"prefix":Z.kind==="defaultables"||G.kind==="defaultables"?"defaultables":"optionals";if(Z.kind==="prefix"&&G.kind==="variadic"&&W){let F=a2({...Y,fixedVariants:[],r:_.map((O)=>({...O,kind:"prefix"}))});if(F.disjoint.length===0)Y.fixedVariants.push(F)}else if(G.kind==="prefix"&&Z.kind==="variadic"&&$){let F=a2({...Y,fixedVariants:[],l:X.map((O)=>({...O,kind:"prefix"}))});if(F.disjoint.length===0)Y.fixedVariants.push(F)}let Q=L0(Z.node,G.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:I.intrinsic.never.internal}];else if(H==="optionals"||H==="defaultables")return Y;else return a2({...Y,fixedVariants:[],l:X.map((F)=>({...F,kind:"prefix"})),r:X.map((F)=>({...F,kind:"prefix"}))});else if(H==="defaultables"){if(Z.kind==="defaultables"&&G.kind==="defaultables"&&Z.default!==G.default)A(sY(Z.default,G.default));Y.result=[...Y.result,{kind:H,node:Q,default:Z.kind==="defaultables"?Z.default:G.kind==="defaultables"?G.default:G0(`Unexpected defaultable intersection from ${Z.kind} and ${G.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&&(G.kind==="variadic"||z===1))Y.l=X;if(G.kind!=="variadic"||z>=J&&(Z.kind==="variadic"||J===1))Y.r=_;return a2(Y)};var sG=(Y)=>(Z)=>{if(Z.props.length||Z.index){let X=Z.index?.map((_)=>_[Y])??[];for(let _ of Z.props)X.push(_[Y]);if(Z.undeclared)X.push(`+ (undeclared): ${Z.undeclared}`);let G=`{ ${X.join(", ")} }`;return Z.sequence?`${G} & ${Z.sequence.description}`:G}return Z.sequence?.description??"{}"},pQ=sG("description"),mQ=sG("expression"),nG=(Y,Z,X)=>{let G=Y.required?"required":"optional";if(!Z.signature.allows(Y.key))return null;let _=z1(Y.value,Z.value,X);if(_ instanceof S)return G==="optional"?X.node("optional",{key:Y.key,value:I.intrinsic.never.internal}):_.withPrefixKey(Y.key,Y.kind);return null},uQ=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:s0("required"),reduceIo:(Y,Z,X)=>{Z.required=Z0(Z.required,X.map((G)=>G[Y]));return}},optional:{child:!0,parse:s0("optional"),reduceIo:(Y,Z,X)=>{if(Y==="in"){Z.optional=X.map((G)=>G.in);return}for(let G of X)Z[G.outProp.kind]=Z0(Z[G.outProp.kind],G.outProp.out)}},index:{child:!0,parse:s0("index")},sequence:{child:!0,parse:s0("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:pQ},intersections:{structure:(Y,Z,X)=>{let G={...Y.inner},_={...Z.inner},$=new S;if(Y.undeclared){let Q=Y.keyof();for(let J of Z.requiredKeys)if(!Q.allows(J))$.add("presence",I.intrinsic.never.internal,Z.propsByKey[J].value,{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=z1(Q,J.signature,X.$);if(z instanceof S)return[];let F=Z6(z,J.value,X.$);if(F.required)_.required=t1(_.required,F.required);if(F.optional)_.optional=t1(_.optional,F.optional);return F.index??[]})}if(Z.undeclared){let Q=Z.keyof();for(let J of Y.requiredKeys)if(!Q.allows(J))$.add("presence",Y.propsByKey[J].value,I.intrinsic.never.internal,{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=z1(Q,J.signature,X.$);if(z instanceof S)return[];let F=Z6(z,J.value,X.$);if(F.required)G.required=t1(G.required,F.required);if(F.optional)G.optional=t1(G.optional,F.optional);return F.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(G),r:X2(_),roots:[],ctx:X});if(H instanceof S)$.push(...H);if($.length)return $;return H}},reduce:(Y,Z)=>{if(Y.index){if(!(Y.required||Y.optional))return;let X=!1,G=Y.required??[],_=Y.optional??[],$=[..._];for(let W of Y.index){for(let H of G){let Q=nG(H,W,Z);if(Q instanceof S)return Q}for(let[H,Q]of _.entries()){let J=nG(Q,W,Z);if(J instanceof S)return J;if(J===null)continue;$[H]=J,X=!0}}if(X)return Z.node("structure",{...Y,optional:$},{prereduced:!0})}}});class tG extends N1{impliedBasis=I.intrinsic.object.internal;impliedSiblings=this.children.flatMap((Y)=>Y.impliedSiblings??[]);props=t1(this.required,this.optional);propsByKey=o(this.props,(Y,Z)=>[Z.key,Z]);propsByKeyReference=T0(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 G=this.propsByKey[X.key];if(D0(X)){if(X.kind!=="required"&&X.kind!=="optional")return A(`Map result must have kind "required" or "optional" (was ${X.kind})`);return Z[X.kind]=Z0(Z[X.kind],X),Z}let _=X.kind??G?.kind??"required",$=o(X,(W,H)=>(W in i2.implementation.keys)?[W,H]:[]);return Z[_]=Z0(Z[_],this.$.node(_,$)),Z},{}))}assertHasKeys(Y){let Z=Y.filter((X)=>!r2(X,this.keyof()));if(Z.length)return A(rG(this.expression,Z))}get(Y,...Z){let X,G=!1,_=oQ(Y);if((typeof _==="string"||typeof _==="symbol")&&this.propsByKey[_])X=this.propsByKey[_].value,G=this.propsByKey[_].required;if(this.index){for(let W of this.index)if(r2(_,W.signature))X=X?.and(W.value)??W.value}if(this.sequence&&r2(_,I.intrinsic.nonNegativeIntegerString))if(y(_,"root")){if(this.sequence.variadic)X=X?.and(this.sequence.element)??this.sequence.element}else{let W=Number.parseInt(_);if(W<this.sequence.prevariadic.length){let H=this.sequence.prevariadic[W].node;X=X?.and(H)??H,G||=W<this.sequence.prefixLength}else if(this.sequence.variadic){let H=this.$.node("union",this.sequence.variadicOrPostfix);X=X?.and(H)??H}}if(!X){if(this.sequence?.variadic&&y(_,"root")&&_.extends(I.intrinsic.number))return A(iQ(_.expression,this.sequence.expression));return A(rG(this.expression,[_]))}let $=X.get(...Z);return G?$:$.or(I.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=c8(this.inner),G=(_)=>{let $=Z.some((W)=>r2(_,W));return Y==="pick"?$:!$};if(X.required)X.required=X.required.filter((_)=>G(_.key));if(X.optional)X.optional=X.optional.filter((_)=>G(_.key));if(X.index)X.index=X.index.filter((_)=>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 G=X?.currentErrorCount??0;for(let _=0;_<this.props.length;_++)if(Y==="Allows"){if(!this.props[_].traverseAllows(Z,X))return!1}else if(this.props[_].traverseApply(Z,X),X.failFast&&X.currentErrorCount>G)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>G)return!1}if(this.index||this.undeclared==="reject"){let _=Object.keys(Z);_.push(...Object.getOwnPropertySymbols(Z));for(let $=0;$<_.length;$++){let W=_[$];if(this.index){for(let H of this.index)if(H.signature.traverseAllows(W,X)){if(Y==="Allows"){if(!Q1(W,()=>H.value.traverseAllows(Z[W],X),X))return!1}else if(Q1(W,()=>H.value.traverseApply(Z[W],X),X),X.failFast&&X.currentErrorCount>G)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&&I.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",cQ(this))}structuralMorphRef=this.structuralMorph&&T0(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(["),lQ(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 w0.throwInternalOperandError("structure",Y)}}reduceObjectJsonSchema(Y,Z){if(this.props.length){Y.properties={};for(let X of this.props){let G=X.value.toJsonSchemaRecurse(Z);if(typeof X.key==="symbol"){Z.fallback.symbolKey({code:"symbolKey",base:Y,key:X.key,value:G,optional:X.optional});continue}if(X.hasDefault()){let _=typeof X.default==="function"?X.default():X.default;G.default=I.intrinsic.jsonData.allows(_)?_:Z.fallback.defaultValue({code:"defaultValue",base:G,value:_})}Y.properties[X.key]=G}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 G=X.value.toJsonSchemaRecurse(Z);if(X.signature.equals(I.intrinsic.string)){Y.additionalProperties=G;continue}for(let _ of X.signature.branches){if(!_.extends(I.intrinsic.string)){Y=Z.fallback.symbolKey({code:"symbolKey",base:Y,key:null,value:G,optional:!1});continue}let $={type:"string"};if(_.hasKind("morph"))$=Z.fallback.morph({code:"morph",base:_.in.toJsonSchemaRecurse(Z),out:_.out.toJsonSchemaRecurse(Z)});if(!_.hasKind("intersection"))return G0(`Unexpected index branch kind ${_.kind}.`);let{pattern:W}=_.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]=G}}}if(this.undeclared&&!Y.additionalProperties)Y.additionalProperties=!1;return Y}}var HZ={},dQ=(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+=u.nonNegativeIntegerString.id;else for(let X=0;X<Y.sequence.tuple.length;X++)Z+=X+" | ";Z+=")"}return Z},cQ=(Y)=>{let Z=dQ(Y);if(!Z)return;if(HZ[Z])return HZ[Z];let X=(G,_)=>{for(let $=0;$<Y.defaultable.length;$++)if(!(Y.defaultable[$].key in G))Y.defaultable[$].defaultValueMorph(G,_);if(Y.sequence?.defaultables)for(let $=G.length-Y.sequence.prefixLength;$<Y.sequence.defaultables.length;$++)Y.sequence.defaultValueMorphs[$](G,_);if(Y.undeclared==="delete"){for(let $ in G)if(!Y.declaresKey($))delete G[$]}return G};return HZ[Z]=X},lQ=(Y,Z)=>{let G=`(data${Z.defaultable.some((_)=>_.defaultValueMorph.length===2)||Z.sequence?.defaultValueMorphs.some((_)=>_.length===2)?", ctx":""})`;return Y.block(`${G} => `,(_)=>{for(let $=0;$<Z.defaultable.length;$++){let{serializedKey:W,defaultValueMorphRef:H}=Z.defaultable[$];_.if(`!(${W} in data)`,(Q)=>Q.line(`${H}${G}`))}if(Z.sequence?.defaultables)_.for(`i < ${Z.sequence.defaultables.length}`,($)=>$.set("data[i]",5),`data.length - ${Z.sequence.prefixLength}`);if(Z.undeclared==="delete")_.forIn("data",($)=>$.if(`!(${Z._compileDeclaresKey($)})`,(W)=>W.line("delete data[k]")));return _.return("data")})},JZ={implementation:uQ,Node:tG},oQ=(Y)=>{if(y(Y,"root")&&Y.hasKind("unit"))Y=Y.unit;if(typeof Y==="number")Y=`${Y}`;return Y},iQ=(Y,Z)=>`${Y} is not allowed as an array index on ${Z}. Use the 'nonNegativeIntegerString' keyword instead.`,Z6=(Y,Z,X)=>{let[G,_]=RX(Y.branches,(W)=>W.hasKind("unit"));if(!G.length)return{index:X.node("index",{signature:Y,value:Z})};let $={};for(let W of G){let H=X.node("required",{key:W.unit,value:Z});$[H.kind]=Z0($[H.kind],H)}if(_.length)$.index=X.node("index",{signature:_,value:Z});return $},nQ=(Y)=>y(Y,"root")?Y.expression:i(Y),rG=(Y,Z)=>`Key${Z.length===1?"":"s"} ${Z.map(nQ).join(", ")} ${Z.length===1?"does":"do"} not exist on ${Y}`;var _2={...wG,alias:s2.implementation,domain:Y6.implementation,unit:XZ.implementation,proto:t2.implementation,union:ZZ.implementation,morph:eY.implementation,intersection:aY.implementation,divisor:yY.implementation,pattern:oY.implementation,predicate:bY.implementation,required:_Z.implementation,optional:i2.implementation,index:GZ.implementation,sequence:$Z.implementation,structure:JZ.implementation};I.defaultConfig=jX(Object.assign(o(_2,(Y,Z)=>[Y,Z.defaults]),{jitless:hX(),clone:vX,onUndeclaredKey:"ignore",exactOptionalPropertyTypes:!0,numberAllowsNaN:!1,dateAllowsInvalid:!1,onFail:null,keywords:{},toJsonSchema:w0.defaultConfig}));I.resolvedConfig=p2(I.defaultConfig,I.config);var CG={...NG,alias:s2.Node,domain:Y6.Node,unit:XZ.Node,proto:t2.Node,union:ZZ.Node,morph:eY.Node,intersection:aY.Node,divisor:yY.Node,pattern:oY.Node,predicate:bY.Node,required:_Z.Node,optional:i2.Node,index:GZ.Node,sequence:$Z.Node,structure:JZ.Node};class H2 extends MY{get[Y1](){return"module"}}var QZ=(Y,Z)=>new H2(o(Y,(X,G)=>[X,y(G,"module")?QZ(G,Z):Z.bindReference(G)]));var rQ=(Y)=>U0(Y)?Y:("branches"in Y)&&U0(Y.branches)?Y.branches:void 0,sQ=(Y,Z)=>A(`Node of kind ${Z} is not valid as a ${Y} definition`),aG=(Y)=>`#${Y} duplicates public alias ${Y}`,zZ={};I.ambient??={};var eG,Z9="function $",tQ=(Y)=>X9(Y,G9(Y)),X9=(Y,Z)=>{let X=Z.write(Z9,4),G=Z.compile()();for(let _ of Y){if(_.precompilation)continue;if(_.traverseAllows=G[`${_.id}Allows`].bind(G),_.isRoot()&&!_.allowsRequiresContext)_.allows=_.traverseAllows;if(_.traverseApply=G[`${_.id}Apply`].bind(G),G[`${_.id}Optimistic`])_.traverseOptimistic=G[`${_.id}Optimistic`].bind(G);_.precompilation=X}},G9=(Y)=>new d8().return(Y.reduce((Z,X)=>{let G=new g2({kind:"Allows"}).indent();X.compile(G);let _=G.write(`${X.id}Allows`),$=new g2({kind:"Apply"}).indent();X.compile($);let W=$.write(`${X.id}Apply`),H=`${Z}${_},
|
|
44
44
|
${W},
|
|
45
45
|
`;if(!X.hasKind("union"))return H;let Q=new g2({kind:"Allows",optimistic:!0}).indent();X.compile(Q);let J=Q.write(`${X.id}Optimistic`);return`${H}${J},
|
|
46
46
|
`},`{
|
|
47
|
-
`)+"}");class X6{config;resolvedConfig;name;get[Y1](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(Y,Z){if(this.config=p2(I.config,Z),this.resolvedConfig=p2(I.resolvedConfig,Z),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(zZ).length}`,this.name in zZ)A(`A Scope already named ${this.name} already exists`);zZ[this.name]=this;let X=Object.entries(Y).map((G)=>this.preparseOwnAliasEntry(...G));for(let[G,_]of X){let $=G;if(G[0]==="#"){if($=G.slice(1),$ in this.aliases)A(aG($));this.aliases[$]=_}else{if($ in this.aliases)A(aG(G));this.aliases[$]=_,this.exportedNames.push($)}if(!y(_,"module")&&!y(_,"generic")&&!E4(_)){let W=this.preparseOwnDefinitionFormat(_,{alias:$});this.resolutions[$]=y(W,"root")?this.bindReference(W):this.createParseContext(W).id}}eG??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[eG.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=I.intrinsic?o(I.intrinsic,(G,_)=>G.startsWith("json")?[]:[G,this.bindReference(_)]):{}}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,G)=>new M4(Y,G?new n8(X):X,Z,Z,G??null)};units=(Y,Z)=>{let X=[];for(let _ of Y)if(!X.includes(_))X.push(_);let G=X.map((_)=>this.node("unit",{unit:_},Z));return this.node("union",G,{...Z,prereduced:!0})};lazyResolutions=[];lazilyResolve(Y,Z){let X=this.node("alias",{reference:Z??"synthetic",resolve:Y},{prereduced:!0});if(!this.resolved)this.lazyResolutions.push(X);return X}schema=(Y,Z)=>this.finalize(this.parseSchema(Y,Z));parseSchema=(Y,Z)=>this.node(c2(Y),Y,Z);preparseNode(Y,Z,X){let G=typeof Y==="string"?Y:c2(Z,Y);if(D0(Z)&&Z.kind===G)return Z;if(G==="alias"&&!X?.prereduced){let{reference:W}=s2.implementation.normalize(Z,this);if(W.startsWith("$")){let H=this.resolveRoot(W.slice(1));Z=H,G=H.kind}}else if(G==="union"&&W1(Z,"object")){let W=sQ(Z);if(W?.length===1)Z=W[0],G=c2(Z)}if(D0(Z)&&Z.kind===G)return Z;let $=_2[G].normalize?.(Z,this)??Z;if(D0($))return $.kind===G?$:tQ(G,$.kind);return{...X,$:this,kind:G,def:$,prefix:X.alias??G}}bindReference(Y){let Z;if(D0(Y))Z=Y.$===this?Y:new Y.constructor(Y.attachments,this);else Z=Y.$===this?Y:new M4(Y.params,Y.bodyDef,Y.$,this,Y.hkt);if(!this.resolved)Object.assign(this.referencesById,Z.referencesById);return Z}resolveRoot(Y){return this.maybeResolveRoot(Y)??A(EZ(Y))}maybeResolveRoot(Y){let Z=this.maybeResolve(Y);if(y(Z,"generic"))return;return Z}maybeResolveSubalias(Y){return FZ(this.aliases,Y)??FZ(this.ambient,Y)}get ambient(){return I.ambient}maybeResolve(Y){let Z=this.resolutions[Y];if(Z){if(typeof Z!=="string")return this.bindReference(Z);let G=Z1[Z];if(y(G,"root"))return this.resolutions[Y]=G;if(y(G,"context")){if(G.phase==="resolving")return this.node("alias",{reference:`$${Y}`},{prereduced:!0});if(G.phase==="resolved")return G0(`Unexpected resolved context for was uncached by its scope: ${i(G)}`);G.phase="resolving";let _=this.bindReference(this.parseOwnDefinitionFormat(G.def,G));return G.phase="resolved",Z1[_.id]=_,Z1[G.id]=_,this.resolutions[Y]=_}return G0(`Unexpected nodesById entry for ${Z}: ${i(G)}`)}let X=this.aliases[Y]??this.ambient?.[Y];if(!X)return this.maybeResolveSubalias(Y);if(X=this.normalizeRootScopeValue(X),y(X,"generic"))return this.resolutions[Y]=this.bindReference(X);if(y(X,"module")){if(!X.root)A(W9(Y));return this.resolutions[Y]=this.bindReference(X.root)}return this.resolutions[Y]=this.parse(X,{alias:Y})}createParseContext(Y){let Z=Y.id??iY(Y.prefix);return Z1[Z]=Object.assign(Y,{[Y1]:"context",$:this,id:Z,phase:"unresolved"})}traversal(Y){return new x1(Y,this.resolvedConfig)}import(...Y){return new H2(o(this.export(...Y),(Z,X)=>[`#${Z}`,X]))}precompilation;_exportedResolutions;_exports;export(...Y){if(!this._exports){this._exports={};for(let X of this.exportedNames){let G=this.aliases[X];this._exports[X]=y(G,"module")?QZ(G,this):Y9(this.maybeResolve(X))}for(let X of this.lazyResolutions)X.resolution;if(this._exportedResolutions=$9(this,this._exports),this._json=_9(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let X=G9(this.references);this.precompilation=X.write(Z9,4),X9(this.references,X)}this.resolved=!0}let Z=Y.length?Y:this.exportedNames;return new H2(o(Z,(X,G)=>[G,this._exports[G]]))}resolve(Y){return this.export()[Y]}node=(Y,Z,X={})=>{let G=this.preparseNode(Y,Z,X);if(D0(G))return this.bindReference(G);let _=this.createParseContext(G),$=nY(_),W=this.bindReference($);return Z1[_.id]=W};parse=(Y,Z={})=>this.finalize(this.parseDefinition(Y,Z));parseDefinition(Y,Z={}){if(y(Y,"root"))return this.bindReference(Y);let X=this.preparseOwnDefinitionFormat(Y,Z);if(y(X,"root"))return this.bindReference(X);let G=this.createParseContext(X);Z1[G.id]=G;let _=this.bindReference(this.parseOwnDefinitionFormat(Y,G));if(_.isCyclic)_=TG(_,G.id);return Z1[G.id]=_,_}finalize(Y){if(Y9(Y),!Y.precompilation&&!this.resolvedConfig.jitless)aQ(Y.references);return Y}}class UZ extends X6{parseOwnDefinitionFormat(Y,Z){return nY(Z)}preparseOwnDefinitionFormat(Y,Z){return this.preparseNode(c2(Y),Y,Z)}preparseOwnAliasEntry(Y,Z){return[Y,Z]}normalizeRootScopeValue(Y){return Y}}var Y9=(Y)=>{let Z=Y.references.filter((X)=>X.hasKind("alias"));for(let X of Z){Object.assign(X.referencesById,X.resolution.referencesById);for(let G of Y.references)if(X.id in G.referencesById)Object.assign(G.referencesById,X.referencesById)}return Y},_9=(Y)=>o(Y,(Z,X)=>[Z,y(X,"root")||y(X,"generic")?X.json:y(X,"module")?_9(X):G0(`Unexpected resolution ${i(X)}`)]),FZ=(Y,Z)=>{let X=Z.indexOf(".");if(X===-1)return;let G=Z.slice(0,X),_=Y[G];if(_===void 0)return;if(!y(_,"module"))return A(eQ(G));let $=Z.slice(X+1),W=_[$];if(W===void 0)return FZ(_,$);if(y(W,"root")||y(W,"generic"))return W;if(y(W,"module"))return W.root??A(W9(Z));G0(`Unexpected resolution for alias '${Z}': ${i(W)}`)},G6=(Y,Z)=>new UZ(Y,Z),e2=new UZ({});var $9=(Y,Z)=>{let X={};for(let G in Z){let _=Z[G];if(y(_,"module")){let $=$9(Y,_),W=o($,(H,Q)=>[`${G}.${H}`,Q]);Object.assign(X,W)}else if(y(_,"root")||y(_,"generic"))X[G]=_;else G0(`Unexpected scope resolution ${i(_)}`)}return X},EZ=(Y)=>`'${Y}' is unresolvable`,eQ=(Y)=>`'${Y}' must reference a module to be accessed using dot syntax`,W9=(Y)=>`Reference to submodule '${Y}' must specify an alias`;e2.export();var{schema:H0,node:J2,defineSchema:oR,generic:K1}=e2;var VZ="^(?:0|[1-9]\\d*)$",Yz=new RegExp(VZ),rR=T0(Yz);var H9=G6({bigint:"bigint",boolean:[{unit:!1},{unit:!0}],false:{unit:!1},never:[],null:{unit:null},number:"number",object:"object",string:"string",symbol:"symbol",true:{unit:!0},unknown:{},undefined:{unit:void 0},Array,Date},{prereducedAliases:!0}).export();I.intrinsic={...H9};var J9=G6({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:VZ}},{prereducedAliases:!0}).export();Object.assign(I.intrinsic,J9);var Zz=G6({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),u={...H9,...J9,...Zz,emptyStructure:J2("structure",{},{prereduced:!0})};I.intrinsic={...u};var z9=(Y)=>typeof Y==="string"&&Y[0]==="d"&&(Y[1]==="'"||Y[1]==='"')&&Y.at(-1)===Y[1],Q9=(Y)=>Y.toString()!=="Invalid Date",F9=(Y)=>Y.slice(2,-1),OZ=(Y)=>`'${Y}' could not be parsed by the Date constructor`,U9=(Y,Z)=>Xz(Y,Z),Xz=(Y,Z)=>{let X=new Date(Y);if(Q9(X))return X;let G=cX(Y);if(G!==void 0){let _=new Date(G);if(Q9(_))return _}return Z?A(Z===!0?OZ(Y):Z):void 0};var DZ=(Y,Z)=>{let X=Y.scanner.shiftUntil(Gz[V9[Z]]);if(Y.scanner.lookahead==="")return Y.error($z(X,Z));if(Y.scanner.shift(),Z==="/"){try{new RegExp(X)}catch(G){A(String(G))}Y.root=Y.ctx.$.node("intersection",{domain:"string",pattern:X},{prereduced:!0})}else if(g0(Z,LZ))Y.root=Y.ctx.$.node("unit",{unit:X});else{let G=U9(X,OZ(X));Y.root=Y.ctx.$.node("unit",{meta:X,unit:G})}},LZ={"'":1,'"':1},E9={"/":1,"'":1,'"':1},V9={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},Gz={"'":(Y)=>Y.lookahead==="'",'"':(Y)=>Y.lookahead==='"',"/":(Y)=>Y.lookahead==="/"},_z={'"':"double-quote","'":"single-quote","/":"forward slash"},$z=(Y,Z)=>`${Z}${Y} requires a closing ${_z[V9[Z]]}`;var O9=(Y)=>`Private type references should not include '#'. Use '${Y}' instead.`,_6="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 D9={">":!0,">=":!0},L9={"<":!0,"<=":!0};var Q2={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},M9=(Y)=>`Unmatched )${Y===""?"":` before ${Y}`}`,W6=(Y)=>`Missing ${Y}`,A9=(Y,Z)=>`Left bounds are only valid when paired with right bounds (try ...${Z}${Y})`,H6=(Y)=>`Left-bounded expressions must specify their limits using < or <= (was ${Y})`,R9=(Y,Z,X,G)=>`An expression may have at most one left bound (parsed ${Y}${Q2[Z]}, ${X}${Q2[G]})`;var w9=(Y,Z,X)=>N9(Y,Z,X,[]),N9=(Y,Z,X,G)=>{let _=X.parseUntilFinalizer();if(G.push(_.root),_.finalizer===">"){if(G.length!==Z.params.length)return X.error(MZ(Y,Z.names,G.map(($)=>$.expression)));return G}if(_.finalizer===",")return N9(Y,Z,X,G);return _.error(W6(">"))},MZ=(Y,Z,X)=>`${Y}<${Z.join(", ")}> requires exactly ${Z.length} args (got ${X.length}${X.length===0?"":`: ${X.join(", ")}`})`;var AZ=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator();if(Z==="keyof")Y.addPrefix("keyof");else Y.root=Hz(Y,Z)},Wz=(Y,Z,X)=>{if(X.scanner.shiftUntilNonWhitespace(),X.scanner.shift()!=="<")return X.error(MZ(Y,Z.names,[]));let _=w9(Y,Z,X);return Z(..._)},Hz=(Y,Z)=>Jz(Y,Z)??Qz(Y,Z)??Y.error(Z===""?Y.scanner.lookahead==="#"?O9(Y.shiftedByOne().scanner.shiftUntilNextTerminator()):RZ(Y):EZ(Z)),Jz=(Y,Z)=>{if(Y.ctx.args?.[Z]){let G=Y.ctx.args[Z];if(typeof G!=="string")return G;return Y.ctx.$.node("alias",{reference:G},{prereduced:!0})}let X=Y.ctx.$.maybeResolve(Z);if(y(X,"root"))return X;if(X===void 0)return;if(y(X,"generic"))return Wz(Z,X,Y);return A(`Unexpected resolution ${i(X)}`)},Qz=(Y,Z)=>{let X=lX(Z);if(X!==void 0)return Y.ctx.$.node("unit",{unit:X});let G=iX(Z);if(G!==void 0)return Y.ctx.$.node("unit",{unit:G})},RZ=(Y)=>{let Z=Y.previousOperator();return Z?wZ(Z,Y.scanner.unscanned):zz(Y.scanner.unscanned)},wZ=(Y,Z="")=>`Token '${Y}' requires a right operand${Z?` before '${Z}'`:""}`,zz=(Y)=>`Expected an expression${Y?` before '${Y}'`:""}`;var NZ=(Y)=>Y.scanner.lookahead===""?Y.error(RZ(Y)):Y.scanner.lookahead==="("?Y.shiftedByOne().reduceGroupOpen():Y.scanner.lookaheadIsIn(E9)?DZ(Y,Y.scanner.shift()):Y.scanner.lookaheadIsIn(V4)?NZ(Y.shiftedByOne()):Y.scanner.lookahead==="d"?Y.scanner.nextLookahead in LZ?DZ(Y,`${Y.scanner.shift()}${Y.scanner.shift()}`):AZ(Y):AZ(Y);class G4 extends CY{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>(this.lookahead in G4.terminatingChars))}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...V4};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(Y,Z)=>Y===">"?Z[0]==="="?Z[1]==="=":Z.trimStart()===""||g0(Z.trimStart()[0],G4.terminatingChars):Y==="="?Z[0]!=="=":Y===","||Y==="?"}var K9=(Y,Z)=>{let X=Fz(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 G=`d'${Y.root.description??Y.root.unit.toISOString()}'`;Y.unsetRoot(),Y.reduceLeftBound(G,X);return}}return Ez(Y,X)},B9={"<":1,">":1,"=":1},Fz=(Y,Z)=>Y.scanner.lookaheadIs("=")?`${Z}${Y.scanner.shift()}`:Z;var I9=(Y,Z,X,G)=>{if(X.extends(I.intrinsic.number)){if(typeof Z!=="number")return A(IZ(Y,Z,G));return Y==="=="?["min","max"]:Y[0]===">"?["min"]:["max"]}if(X.extends(I.intrinsic.lengthBoundable)){if(typeof Z!=="number")return A(IZ(Y,Z,G));return Y==="=="?["exactLength"]:Y[0]===">"?["minLength"]:["maxLength"]}if(X.extends(I.intrinsic.Date))return Y==="=="?["after","before"]:Y[0]===">"?["after"]:["before"];return A(EG(X.expression))},Uz=(Y)=>({rule:z9(Y.limit)?F9(Y.limit):Y.limit,exclusive:Y.comparator.length===1}),Ez=(Y,Z)=>{let X=Y.unsetRoot(),G=Y.scanner.location;Y.parseOperand();let _=Y.unsetRoot(),$=Y.scanner.sliceChars(G,Y.scanner.location);if(Y.root=X,!_.hasKind("unit")||typeof _.unit!=="number"&&!(_.unit instanceof Date))return Y.error(IZ(Z,$,"right"));let W=_.unit,H=Z.length===1,Q=I9(Z,typeof W==="number"?W:$,X,"right");for(let z of Q)Y.constrainRoot(z,Z==="=="?{rule:W}:{rule:W,exclusive:H});if(!Y.branches.leftBound)return;if(!g0(Z,L9))return Y.error(H6(Z));let J=I9(Y.branches.leftBound.comparator,Y.branches.leftBound.limit,X,"left");Y.constrainRoot(J[0],Uz(Y.branches.leftBound)),Y.branches.leftBound=null},IZ=(Y,Z,X)=>`Comparator ${X==="left"?Q2[Y]:Y} must be ${X==="left"?"preceded":"followed"} by a corresponding literal (was ${Z})`;var T9=(Y)=>{Y.scanner.shiftUntilNonWhitespace();let Z=Y.scanner.shiftUntilNextTerminator();Y.root=Y.root.brand(Z)};var q9=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator(),X=oX(Z,{errorOnFail:C9(Z)});if(X===0)Y.error(C9(0));Y.root=Y.root.constrain("divisor",X)},C9=(Y)=>`% operator must be followed by a non-zero integer literal (was ${Y})`;var KZ=(Y)=>{let Z=Y.scanner.shift();return Z===""?Y.finalize(""):Z==="["?Y.scanner.shift()==="]"?Y.setRoot(Y.root.array()):Y.error(Vz):Z==="|"?Y.scanner.lookahead===">"?Y.shiftedByOne().pushRootToBranch("|>"):Y.pushRootToBranch(Z):Z==="&"?Y.pushRootToBranch(Z):Z===")"?Y.finalizeGroup():G4.lookaheadIsFinalizing(Z,Y.scanner.unscanned)?Y.finalize(Z):g0(Z,B9)?K9(Y,Z):Z==="%"?q9(Y):Z==="#"?T9(Y):(Z in V4)?KZ(Y):Y.error(J6(Z))},J6=(Y,Z="")=>`'${Y}' is not allowed here${Z&&` (should be ${Z})`}`,Vz="Missing expected ']'";var j9=(Y)=>{let Z=Y.unsetRoot();Y.parseOperand();let X=Y.unsetRoot();if(!X.hasKind("unit"))return Y.error(Oz(X.expression));let G=X.unit instanceof Date?()=>new Date(X.unit):X.unit;return[Z,"=",G]},Oz=(Y)=>`Default value '${Y}' must a literal value`;var BZ=(Y,Z)=>{let X=Z.$.maybeResolveRoot(Y);if(X)return X;if(Y.endsWith("[]")){let $=Z.$.maybeResolveRoot(Y.slice(0,-2));if($)return $.array()}let G=new z2(new G4(Y),Z),_=Dz(G);if(G.finalizer===">")A(J6(">"));return _},Dz=(Y)=>{Y.parseOperand();let Z=Y8(Y).root;if(!Z)return G0(`Root was unexpectedly unset after parsing string '${Y.scanner.scanned}'`);if(Y.finalizer==="=")Z=j9(Y);else if(Y.finalizer==="?")Z=[Z,"?"];if(Y.scanner.shiftUntilNonWhitespace(),Y.scanner.lookahead)A(J6(Y.scanner.lookahead));return Z},Y8=(Y)=>{while(Y.finalizer===void 0)Lz(Y);return Y},Lz=(Y)=>Y.hasRoot()?Y.parseOperator():Y.parseOperand();class z2{root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(Y,Z){this.scanner=Y,this.ctx=Z}error(Y){return A(Y)}hasRoot(){return this.root!==void 0}setRoot(Y){this.root=Y}unsetRoot(){let Y=this.root;return this.root=void 0,Y}constrainRoot(...Y){this.root=this.root.constrain(Y[0],Y[1])}finalize(Y){if(this.groups.length)return this.error(W6(")"));this.finalizeBranches(),this.finalizer=Y}reduceLeftBound(Y,Z){let X=Q2[Z];if(!g0(X,D9))return this.error(H6(Z));if(this.branches.leftBound)return this.error(R9(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(M9(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():G0(`Unexpected prefix '${Y}'`)}}pushRootToBranch(Y){this.assertRangeUnset(),this.applyPrefixes();let Z=this.root;if(this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd(Z)??Z,Y==="&")return;if(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,Y==="|")return;this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null}parseUntilFinalizer(){return Y8(new z2(this.scanner,this.ctx))}parseOperator(){return KZ(this)}parseOperand(){return NZ(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(A9(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 Mz="An empty string is not a valid generic parameter name",Q6=(Y,Z,X)=>{Y.shiftUntilNonWhitespace();let G=Y.shiftUntilNextTerminator();if(G===""){if(Y.lookahead===""&&Z.length)return Z;return A(Mz)}return Y.shiftUntilNonWhitespace(),Az(Y,G,Z,X)},P9="extends ",Az=(Y,Z,X,G)=>{if(Y.shiftUntilNonWhitespace(),Y.unscanned.startsWith(P9))Y.jumpForward(P9.length);else{if(Y.lookahead===",")Y.shift();return X.push(Z),Q6(Y,X,G)}let _=Y8(new z2(Y,G));return X.push([Z,_.root]),Q6(Y,X,G)};class TZ extends v1{$;constructor(Y){super((...Z)=>new Z8(Y)(...Z),{bind:Y});this.$=Y}in(Y){return new Z8(this.$,Y===void 0?void 0:this.$.parse(Y))}at(Y,Z){return new Z8(this.$).at(Y,Z)}case(Y,Z){return new Z8(this.$).case(Y,Z)}}class Z8 extends v1{$;in;key;branches=[];constructor(Y,Z){super((X)=>this.caseEntries(Object.entries(X).map(([G,_])=>G==="default"?[G,_]:[this.$.parse(G),_])));this.$=Y,this.in=Z}at(Y,Z){if(this.key)A(wz);if(this.branches.length)A(Rz);return this.key=Y,Z?this.match(Z):this}case(Y,Z){return this.caseEntry(this.$.parse(Y),Z)}caseEntry(Y,Z){let G=(this.key?this.$.parse({[this.key]:Y}):Y).pipe(Z);return this.branches.push(G),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,G]=Y[Z];if(X==="default"){if(Z!==Y.length-1)A("default may only be specified as the last key of a switch definition");return this.default(G)}if(typeof G!=="function")return A(`Value for case "${X}" must be a function (was ${y0(G)})`);this.caseEntry(X,G)}return this}default(Y){if(typeof Y==="function")this.case(u.unknown,Y);let Z={branches:this.branches,ordered:!0};if(Y==="never"||Y==="assert")Z.meta={onFail:S9};let X=this.$.node("union",Z);if(!this.in)return this.$.finalize(X);let G=this.in.pipe(X);if(Y==="never"||Y==="assert")G=G.configureReferences({onFail:S9},"self");return this.$.finalize(G)}}var S9=(Y)=>Y.throw(),Rz="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",wz="At most one key matcher may be specified per expression";var z6=(Y,Z)=>{if(F0(Y)){if(Y[1]==="=")return[Z.$.parseOwnDefinitionFormat(Y[0],Z),"=",Y[2]];if(Y[1]==="?")return[Z.$.parseOwnDefinitionFormat(Y[0],Z),"?"]}return F6(Y,Z)},v9="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",x9="Only required keys may specify default values, e.g. { value: 'number = 0' }";var f9=(Y,Z)=>{let X,G={},_=q4(Y);for(let[W,H]of _){let Q=Kz(W);if(Q.kind==="spread"){if(!l1(G))return A(Iz);let L=Z.$.parseOwnDefinitionFormat(H,Z);if(L.equals(u.object))continue;if(!L.hasKind("intersection")||!L.basis?.equals(u.object))return A(Bz(L.expression));X=L.structure;continue}if(Q.kind==="undeclared"){if(H!=="reject"&&H!=="delete"&&H!=="ignore")A(Nz(H));G.undeclared=H;continue}let J=z6(H,Z),z=Q;if(Q.kind==="required"){if(!F0(J))CZ(G,"required",{key:Q.normalized,value:J},Z);else CZ(G,"optional",J[1]==="="?{key:Q.normalized,value:J[0],default:J[2]}:{key:Q.normalized,value:J[0]},Z);continue}if(F0(J)){if(J[1]==="?")A(v9);if(J[1]==="=")A(x9)}if(Q.kind==="optional"){CZ(G,"optional",{key:Q.normalized,value:J},Z);continue}let U=Z.$.parseOwnDefinitionFormat(z.normalized,Z),O=Z6(U,J,Z.$);if(O.index)G.index=Z0(G.index,O.index);if(O.required)G.required=Z0(G.required,O.required)}let $=Z.$.node("structure",G);return Z.$.parseSchema({domain:"object",structure:X?.merge($)??$})},CZ=(Y,Z,X,G)=>{Y[Z]=Z0(Y[Z],G.$.node(Z,X))},Nz=(Y)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${i(Y)})`,Iz="Spread operator may only be used as the first key in an object",Kz=(Y)=>typeof Y==="symbol"?{kind:"required",normalized:Y}:Y.at(-1)==="?"?Y.at(-2)===x2?{kind:"required",normalized:`${Y.slice(0,-2)}?`}:{kind:"optional",normalized:Y.slice(0,-1)}:Y[0]==="["&&Y.at(-1)==="]"?{kind:"index",normalized:Y.slice(1,-1)}:Y[0]===x2&&Y[1]==="["&&Y.at(-1)==="]"?{kind:"required",normalized:Y.slice(1)}:Y==="..."?{kind:"spread"}:Y==="+"?{kind:"undeclared"}:{kind:"required",normalized:Y==="\\..."?"...":Y==="\\+"?"+":Y},Bz=(Y)=>`Spread operand must resolve to an object literal type (was ${Y})`;var k9=(Y,Z)=>hz(Y)?p9[Y[0]](Y,Z):xz(Y)?g9[Y[1]](Y,Z):null,Tz=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[1],Z).keyof(),qZ=(Y,Z)=>{if(Y[2]===void 0)return A(wZ(Y[1],""));let X=Z.$.parseOwnDefinitionFormat(Y[0],Z),G=Z.$.parseOwnDefinitionFormat(Y[2],Z);if(Y[1]==="|")return Z.$.node("union",{branches:[X,G]});let _=Y[1]==="&"?z1(X,G,Z.$):d2(X,G,Z.$);if(_ instanceof S)return _.throw();return _},Cz=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).array(),qz=(Y,Z)=>{if(typeof Y[2]!=="function")return A(b9("=>",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).pipe(Y[2])},b9=(Y,Z)=>`${Y===":"?"Narrow":"Morph"} expression requires a function following '${Y}' (was ${typeof Z})`,jz=(Y,Z)=>{if(typeof Y[2]!=="function")return A(b9(":",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).constrain("predicate",Y[2])},Pz=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).configureReferences(Y[2],"shallow"),y9=(Y)=>Y,Sz=y9({"[]":Cz,"?":()=>A(_6)}),vz=y9({"|":qZ,"&":qZ,":":jz,"=>":qz,"|>":qZ,"@":Pz,"=":()=>A($6)}),g9={...Sz,...vz},xz=(Y)=>g9[Y[1]]!==void 0,fz=(Y)=>Y,p9=fz({keyof:Tz,instanceof:(Y,Z)=>{if(typeof Y[1]!=="function")return A(h9(S2(Y[1])));let X=Y.slice(1).map((G)=>typeof G==="function"?Z.$.node("proto",{proto:G}):A(h9(S2(G))));return X.length===1?X[0]:Z.$.node("union",{branches:X})},"===":(Y,Z)=>Z.$.units(Y.slice(1))}),hz=(Y)=>p9[Y[0]]!==void 0,h9=(Y)=>`Expected a constructor following 'instanceof' operator (was ${Y})`;var d9=(Y,Z)=>{let X=[{}],G=0;while(G<Y.length){let _=!1;if(Y[G]==="..."&&G<Y.length-1)_=!0,G++;let $=z6(Y[G],Z),[W,H,Q]=!F0($)?[$]:$;if(G++,_){if(!W.extends(I.intrinsic.Array))return A(yz(W.expression));X=X.flatMap((J)=>W.distribute((z)=>bz(c8(J),z)))}else X=X.map((J)=>{if(H==="?")return c9(J,W);if(H==="=")return kz(J,W,Q);return jZ(J,W)})}return Z.$.parseSchema(X.map((_)=>l1(_)?{proto:Array,exactLength:0}:{proto:Array,sequence:_}))},jZ=(Y,Z)=>{if(Y.defaultables||Y.optionals)return A(Y.variadic?WZ:gz);if(Y.variadic)Y.postfix=Z0(Y.postfix,Z);else Y.prefix=Z0(Y.prefix,Z);return Y},c9=(Y,Z)=>{if(Y.variadic)return A(l9);return Y.optionals=Z0(Y.optionals,Z),Y},kz=(Y,Z,X)=>{if(Y.variadic)return A(l9);if(Y.optionals)return A(pz);return Y.defaultables=Z0(Y.defaultables,[[Z,X]]),Y},m9=(Y,Z)=>{if(Y.postfix)A(u9);if(Y.variadic){if(!Y.variadic.equals(Z))A(u9)}else Y.variadic=Z.internal;return Y},bz=(Y,Z)=>{let X=Z.select({method:"find",kind:"sequence"});if(!X)return m9(Y,I.intrinsic.unknown);if(X.prefix)for(let G of X.prefix)jZ(Y,G);if(X.optionals)for(let G of X.optionals)c9(Y,G);if(X.variadic)m9(Y,X.variadic);if(X.postfix)for(let G of X.postfix)jZ(Y,G);return Y},yz=(Y)=>`Spread element must be an array (was ${Y})`,u9="A tuple may have at most one variadic element",gz="A required element may not follow an optional element",l9="An optional element may not follow a variadic element";var pz="A defaultable element may not follow an optional element without a default";var mz={},F6=(Y,Z)=>{if(typeof Y==="string"){if(Z.args&&Object.keys(Z.args).some((G)=>Y.includes(G)))return BZ(Y,Z);let X=mz[Z.$.name]??={};return X[Y]??=BZ(Y,Z)}return W1(Y,"object")?uz(Y,Z):A(PZ(y0(Y)))},uz=(Y,Z)=>{let X=P2(Y);switch(X){case void 0:if(y(Y,"root"))return Y;return f9(Y,Z);case"Array":return dz(Y,Z);case"RegExp":return Z.$.node("intersection",{domain:"string",pattern:Y},{prereduced:!0});case"Function":{let G=E4(Y)?Y():Y;if(y(G,"root"))return G;return A(PZ("Function"))}default:return A(PZ(X??i(Y)))}},dz=(Y,Z)=>k9(Y,Z)??d9(Y,Z),PZ=(Y)=>`Type definitions must be strings or objects (was ${Y})`;class SZ extends v1{constructor(Y){let Z=Object.assign({errors:J1,hkt:r0,$:Y,raw:Y.parse,module:Y.constructor.module,scope:Y.constructor.scope,define:Y.define,match:Y.match,generic:Y.generic,schema:Y.schema,keywords:Y.ambient,unit:Y.unit,enumerated:Y.enumerated,instanceOf:Y.instanceOf,valueOf:Y.valueOf,or:Y.or,and:Y.and,merge:Y.merge,pipe:Y.pipe},Y.ambientAttachments);super((...X)=>{if(X.length===1)return Y.parse(X[0]);if(X.length===2&&typeof X[0]==="string"&&X[0][0]==="<"&&X[0].at(-1)===">"){let G=X[0].slice(1,-1),_=Y.parseGenericParams(G,{});return new M4(_,X[1],Y,Y,null)}return Y.parse(X)},{bind:Y,attach:Z})}}var F2=I;class U6 extends X6{get ambientAttachments(){if(!F2.typeAttachments)return;return this.cacheGetter("ambientAttachments",o(F2.typeAttachments,(Y,Z)=>[Y,this.bindReference(Z)]))}preparseOwnAliasEntry(Y,Z){let X=Y.indexOf("<");if(X===-1){if(y(Z,"module")||y(Z,"generic"))return[Y,Z];let $=this.name==="ark"?Y:Y==="root"?this.name:`${this.name}.${Y}`,W=this.resolvedConfig.keywords?.[$];if(W)Z=[Z,"@",W];return[Y,Z]}if(Y.at(-1)!==">")A("'>' must be the last character of a generic declaration in a scope");let G=Y.slice(0,X),_=Y.slice(X+1,-1);return[G,()=>{let $=this.parseGenericParams(_,{alias:G});return zG($,Z,this)}]}parseGenericParams(Y,Z){return Q6(new G4(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 G=F6(Y,Z);if(F0(G)){if(G[1]==="=")return A($6);if(G[1]==="?")return A(_6)}return G}unit=(Y)=>this.units([Y]);valueOf=(Y)=>this.units(PX(Y));enumerated=(...Y)=>this.units(Y);instanceOf=(Y)=>this.node("proto",{proto:Y},{prereduced:!0});or=(...Y)=>this.schema(Y.map((Z)=>this.parse(Z)));and=(...Y)=>Y.reduce((Z,X)=>Z.and(this.parse(X)),this.intrinsic.unknown);merge=(...Y)=>Y.reduce((Z,X)=>Z.merge(this.parse(X)),this.intrinsic.object);pipe=(...Y)=>this.intrinsic.unknown.pipe(...Y);match=new TZ(this);declare=()=>({type:this.type});define(Y){return Y}type=new SZ(this);static scope=(Y,Z={})=>new U6(Y,Z);static module=(Y,Z={})=>this.scope(Y,Z).export()}var vZ=Object.assign(U6.scope,{define:(Y)=>Y}),e=U6;class o9 extends r0{description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var cz=K1(["base",u.object],["props",u.object])((Y)=>Y.base.merge(Y.props),o9),i9=e.module({Key:u.key,Merge:cz});class n9 extends r0{}var lz=K1("element")((Y)=>{let Z=Y.element.exclude(u.Array),X=Z.array();return Z.rawOr(X).pipe(U4).distribute((G)=>G.assertHasKind("morph").declareOut(X),H0)},n9),r9=e.module({root:u.Array,readonly:"root",index:u.nonNegativeIntegerString,liftFrom:lz},{name:"Array"});var xZ=H0(["string",P4.FileConstructor]),oz=xZ.rawOr(xZ.array()),s9=H0({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:oz}}),t9=e.module({root:["instanceof",FormData],value:xZ,parsed:s9,parse:H0({in:FormData,morphs:(Y)=>{let Z={};for(let[X,G]of Y)if(X in Z){let _=Z[X];if(typeof _==="string"||_ instanceof P4.FileConstructor)Z[X]=[_,G];else _.push(G)}else Z[X]=G;return Z},declaredOut:s9})},{name:"FormData"});var a9=e.module({Int8:["instanceof",Int8Array],Uint8:["instanceof",Uint8Array],Uint8Clamped:["instanceof",Uint8ClampedArray],Int16:["instanceof",Int16Array],Uint16:["instanceof",Uint16Array],Int32:["instanceof",Int32Array],Uint32:["instanceof",Uint32Array],Float32:["instanceof",Float32Array],Float64:["instanceof",Float64Array],BigInt64:["instanceof",BigInt64Array],BigUint64:["instanceof",BigUint64Array]},{name:"TypedArray"});var iz={Boolean:1,Number:1,String:1},e9=e.module({...o({...AY,...wY},(Y,Z)=>(Y in iz)?[]:[Y,["instanceof",Z]]),Array:r9,TypedArray:a9,FormData:t9});var nz=H0({domain:{domain:"number",meta:"a number representing a Unix timestamp"},divisor:{rule:1,meta:"an integer representing a Unix timestamp"},min:{rule:-8640000000000000,meta:"a Unix timestamp after -8640000000000000"},max:{rule:8640000000000000,meta:"a Unix timestamp before 8640000000000000"},meta:"an integer representing a safe Unix timestamp"}),rz=H0({domain:"number",divisor:1}),E6=e.module({root:u.number,integer:rz,epoch:nz,safe:H0({domain:{domain:"number",numberAllowsNaN:!1},min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER}),NaN:["===",Number.NaN],Infinity:["===",Number.POSITIVE_INFINITY],NegativeInfinity:["===",Number.NEGATIVE_INFINITY]},{name:"number"});var N0=(Y,Z,X)=>{let G={domain:"string",pattern:{rule:Y.source,flags:Y.flags,meta:Z}};if(X)G.meta={format:X};return J2("intersection",G)},Y_=N0(f2,"a well-formed integer string"),U_=e.module({root:Y_,parse:H0({in:Y_,morphs:(Y,Z)=>{let X=Number.parseInt(Y);return Number.isSafeInteger(X)?X:Z.error("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")},declaredOut:u.integer})},{name:"string.integer"}),sz=N0(/^[\dA-Fa-f]+$/,"hex characters only"),tz=e.module({root:N0(/^(?:[\d+/A-Za-z]{4})*(?:[\d+/A-Za-z]{2}==|[\d+/A-Za-z]{3}=)?$/,"base64-encoded"),url:N0(/^(?:[\w-]{4})*(?:[\w-]{2}(?:==|%3D%3D)?|[\w-]{3}(?:=|%3D)?)?$/,"base64url-encoded")},{name:"string.base64"}),Z_=N0(/^[A-Z].*$/,"capitalized"),az=e.module({root:H0({in:"string",morphs:(Y)=>Y.charAt(0).toUpperCase()+Y.slice(1),declaredOut:Z_}),preformatted:Z_},{name:"string.capitalize"}),ez=(Y)=>{let Z=Y.replaceAll(/[ -]+/g,""),X=0,G,_,$=!1;for(let W=Z.length-1;W>=0;W--){if(G=Z.substring(W,W+1),_=Number.parseInt(G,10),$)_*=2,X+=_>=10?_%10+1:_;else X+=_;$=!$}return!!(X%10===0?Z:!1)},YF=/^(?: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}))$/,ZF=H0({domain:"string",pattern:{meta:"a credit card number",rule:YF.source},predicate:{meta:"a credit card number",predicate:ez}});var XF=/^([+-]?\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 GF=(Y)=>!Number.isNaN(new Date(Y).valueOf()),X_=H0({domain:"string",predicate:{meta:"a parsable date",predicate:GF}}).assertHasKind("intersection"),G_=U_.root.internal.narrow((Y,Z)=>{let X=Number.parseInt(Y),G=E6.epoch(X);if(G instanceof J1)return Z.errors.merge(G),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),_F=e.module({root:G_,parse:H0({in:G_,morphs:(Y)=>new Date(Y),declaredOut:u.Date})},{name:"string.date.epoch"}),__=N0(XF,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),$F=e.module({root:__,parse:H0({in:__,morphs:(Y)=>new Date(Y),declaredOut:u.Date})},{name:"string.date.iso"}),WF=e.module({root:X_,parse:H0({declaredIn:X_,in:"string",morphs:(Y,Z)=>{let X=new Date(Y);if(Number.isNaN(X.valueOf()))return Z.error("a parsable date");return X},declaredOut:u.Date}),iso:$F,epoch:_F},{name:"string.date"}),HF=N0(/^[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z]{2,}$/,"an email address","email"),$_="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",A4=`(${$_}[.]){3}${$_}`,JF=new RegExp(`^${A4}$`),x0="(?:[0-9a-fA-F]{1,4})",QF=new RegExp(`^((?:${x0}:){7}(?:${x0}|:)|(?:${x0}:){6}(?:${A4}|:${x0}|:)|(?:${x0}:){5}(?::${A4}|(:${x0}){1,2}|:)|(?:${x0}:){4}(?:(:${x0}){0,1}:${A4}|(:${x0}){1,3}|:)|(?:${x0}:){3}(?:(:${x0}){0,2}:${A4}|(:${x0}){1,4}|:)|(?:${x0}:){2}(?:(:${x0}){0,3}:${A4}|(:${x0}){1,5}|:)|(?:${x0}:){1}(?:(:${x0}){0,4}:${A4}|(:${x0}){1,6}|:)|(?::((?::${x0}){0,5}:${A4}|(?::${x0}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),zF=e.module({root:["v4 | v6","@","an IP address"],v4:N0(JF,"an IPv4 address","ipv4"),v6:N0(QF,"an IPv6 address","ipv6")},{name:"string.ip"}),U2="a JSON string",E_=(Y)=>{if(!(Y instanceof SyntaxError))throw Y;return`must be ${U2} (${Y})`},FF=H0({meta:U2,domain:"string",predicate:{meta:U2,predicate:(Y,Z)=>{try{return JSON.parse(Y),!0}catch(X){return Z.reject({code:"predicate",expected:U2,problem:E_(X)})}}}}),UF=(Y,Z)=>{if(Y.length===0)return Z.error({code:"predicate",expected:U2,actual:"empty"});try{return JSON.parse(Y)}catch(X){return Z.error({code:"predicate",expected:U2,problem:E_(X)})}},EF=e.module({root:FF,parse:H0({meta:"safe JSON string parser",in:"string",morphs:UF,declaredOut:u.jsonObject})},{name:"string.json"}),W_=N0(/^[a-z]*$/,"only lowercase letters"),VF=e.module({root:H0({in:"string",morphs:(Y)=>Y.toLowerCase(),declaredOut:W_}),preformatted:W_},{name:"string.lower"}),V_=["NFC","NFD","NFKC","NFKD"],X8=o(V_,(Y,Z)=>[Z,H0({domain:"string",predicate:(X)=>X.normalize(Z)===X,meta:`${Z}-normalized unicode`})]),V6=o(V_,(Y,Z)=>[Z,H0({in:"string",morphs:(X)=>X.normalize(Z),declaredOut:X8[Z]})]),OF=e.module({root:V6.NFC,preformatted:X8.NFC},{name:"string.normalize.NFC"}),DF=e.module({root:V6.NFD,preformatted:X8.NFD},{name:"string.normalize.NFD"}),LF=e.module({root:V6.NFKC,preformatted:X8.NFKC},{name:"string.normalize.NFKC"}),MF=e.module({root:V6.NFKD,preformatted:X8.NFKD},{name:"string.normalize.NFKD"}),AF=e.module({root:"NFC",NFC:OF,NFD:DF,NFKC:LF,NFKD:MF},{name:"string.normalize"}),H_=N0(m8,"a well-formed numeric string"),RF=e.module({root:H_,parse:H0({in:H_,morphs:(Y)=>Number.parseFloat(Y),declaredOut:u.number})},{name:"string.numeric"}),J_="a regex pattern",wF=H0({domain:"string",predicate:{meta:J_,predicate:(Y,Z)=>{try{return new RegExp(Y),!0}catch(X){return Z.reject({code:"predicate",expected:J_,problem:String(X)})}}},meta:{format:"regex"}}),NF=/^(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-]+)*))?$/,IF=N0(NF,"a semantic version (see https://semver.org/)"),Q_=N0(/^\S.*\S$|^\S?$/,"trimmed"),KF=e.module({root:H0({in:"string",morphs:(Y)=>Y.trim(),declaredOut:Q_}),preformatted:Q_},{name:"string.trim"}),z_=N0(/^[A-Z]*$/,"only uppercase letters"),BF=e.module({root:H0({in:"string",morphs:(Y)=>Y.toUpperCase(),declaredOut:z_}),preformatted:z_},{name:"string.upper"}),TF=(Y)=>{if(URL.canParse)return URL.canParse(Y);try{return new URL(Y),!0}catch{return!1}},F_=H0({domain:"string",predicate:{meta:"a URL string",predicate:TF},meta:{format:"uri"}}),CF=e.module({root:F_,parse:H0({declaredIn:F_,in:"string",morphs:(Y,Z)=>{try{return new URL(Y)}catch{return Z.error("a URL string")}},declaredOut:H0(URL)})},{name:"string.url"}),qF=e.module({root:["versioned | nil | max","@",{description:"a UUID",format:"uuid"}],"#nil":"'00000000-0000-0000-0000-000000000000'","#max":"'ffffffff-ffff-ffff-ffff-ffffffffffff'","#versioned":/[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}/i,v1:N0(/^[\da-f]{8}-[\da-f]{4}-1[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv1"),v2:N0(/^[\da-f]{8}-[\da-f]{4}-2[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv2"),v3:N0(/^[\da-f]{8}-[\da-f]{4}-3[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv3"),v4:N0(/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv4"),v5:N0(/^[\da-f]{8}-[\da-f]{4}-5[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv5"),v6:N0(/^[\da-f]{8}-[\da-f]{4}-6[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv6"),v7:N0(/^[\da-f]{8}-[\da-f]{4}-7[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv7"),v8:N0(/^[\da-f]{8}-[\da-f]{4}-8[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv8")},{name:"string.uuid"}),O_=e.module({root:u.string,alpha:N0(/^[A-Za-z]*$/,"only letters"),alphanumeric:N0(/^[\dA-Za-z]*$/,"only letters and digits 0-9"),hex:sz,base64:tz,capitalize:az,creditCard:ZF,date:WF,digits:N0(/^\d*$/,"only digits 0-9"),email:HF,integer:U_,ip:zF,json:EF,lower:VF,normalize:AF,numeric:RF,regex:wF,semver:IF,trim:KF,upper:BF,url:CF,uuid:qF},{name:"string"});var D_=e.module({bigint:u.bigint,boolean:u.boolean,false:u.false,never:u.never,null:u.null,number:u.number,object:u.object,string:u.string,symbol:u.symbol,true:u.true,unknown:u.unknown,undefined:u.undefined}),L_=e.module({root:u.unknown,any:u.unknown},{name:"unknown"}),jF=e.module({root:u.jsonObject,stringify:J2("morph",{in:u.jsonObject,morphs:(Y)=>JSON.stringify(Y),declaredOut:u.string})},{name:"object.json"}),M_=e.module({root:u.object,json:jF},{name:"object"});class A_ extends r0{description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var PF=K1(["K",u.key],"V")((Y)=>({domain:"object",index:{signature:Y.K,value:Y.V}}),A_);class R_ extends r0{description='pick a set of properties from an object like `Pick(User, "name | age")`'}var SF=K1(["T",u.object],["K",u.key])((Y)=>Y.T.pick(Y.K),R_);class w_ extends r0{description='omit a set of properties from an object like `Omit(User, "age")`'}var vF=K1(["T",u.object],["K",u.key])((Y)=>Y.T.omit(Y.K),w_);class N_ extends r0{description="make all named properties of an object optional like `Partial(User)`"}var xF=K1(["T",u.object])((Y)=>Y.T.partial(),N_);class I_ extends r0{description="make all named properties of an object required like `Required(User)`"}var fF=K1(["T",u.object])((Y)=>Y.T.required(),I_);class K_ extends r0{description='exclude branches of a union like `Exclude("boolean", "true")`'}var hF=K1("T","U")((Y)=>Y.T.exclude(Y.U),K_);class B_ extends r0{description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var kF=K1("T","U")((Y)=>Y.T.extract(Y.U),B_),T_=e.module({Exclude:hF,Extract:kF,Omit:vF,Partial:xF,Pick:SF,Record:PF,Required:fF});var R4=vZ({...D_,...T_,...e9,...i9,string:O_,number:E6,object:M_,unknown:L_},{prereducedAliases:!0,name:"ark"}),p0=R4.export();Object.assign(F2.ambient,p0);F2.typeAttachments={string:p0.string.root,number:p0.number.root,bigint:p0.bigint,boolean:p0.boolean,symbol:p0.symbol,undefined:p0.undefined,null:p0.null,object:p0.object.root,unknown:p0.unknown.root,false:p0.false,true:p0.true,never:p0.never,arrayIndex:p0.Array.index,Key:p0.Key,Record:p0.Record,Array:p0.Array.root,Date:p0.Date};var F1=Object.assign(R4.type,F2.typeAttachments),bF=R4.match,yF=R4.generic,LK=R4.schema,gF=R4.define,pF=R4.declare;function E2(Y){return w6(U1.STORE,Y,void 0)}function V2(Y){return O2(U1.STORE,Y)}function hZ(...Y){return h1(U1.STORE,...Y)}function O6(Y,Z){return h_(U1.STORE,Y,Z)}function C_(Y){return k_(Y,U1.STORE)}var _4={atom_family:"atom family",atom:"atom",continuity:"continuity",key:"key",mutable_atom_family:"atom family [m]",mutable_atom:"atom [m]",readonly_held_selector_family:"selector family [h]",readonly_held_selector:"selector [h]",readonly_pure_selector_family:"selector family",readonly_pure_selector:"selector",state:"state",timeline:"timeline",transaction:"transaction",unknown:"unknown",writable_held_selector_family:"selector family [wh]",writable_held_selector:"selector [wh]",writable_pure_selector_family:"selector family [w]",writable_pure_selector:"selector [w]"};var fZ=(Y)=>(Z,X,G,_,...$)=>{console[Y](`${Z} ${_4[X]} \`${G}\` ${_}`,...$)},mF={error:fZ("error"),info:fZ("info"),warn:fZ("warn")},q_=class{logLevel;filter;logger;constructor(Y,Z,X=mF){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 j_=class{store;deallocateTX;claimTX;constructor(Y=U1.STORE){this.store=Y,this.deallocateTX=S_(Y),this.claimTX=v_(Y),P_(Y,"root")}allocate(Y,Z,X){A6(this.store,Y,Z,X)}deallocate(Y){M6(this.store,this.deallocateTX,kZ())(Y)}claim(Y,Z,X){G8(this.store,Y,Z,X)}};function D6(Y){return bZ(U1.STORE,Y)}function L6(Y){return _8(U1.STORE,Y)}function X1(Y){return JSON.parse(Y)}var Q0=(Y)=>JSON.stringify(Y),uK=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var b_=class Y extends Set{mode="record";subject=new _0;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(Z,X=0){super(Z);if(Z instanceof Y)this.parent=Z,this.cacheUpdateNumber=Z.cacheUpdateNumber;if(X)this.cacheLimit=X,this.cache=Array(X),this.subscribe("auto cache",(G)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=G})}READONLY_VIEW=this;toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(Z){let X=new Y(Z.members,Z.cacheLimit);return X.cache=Z.cache,X.cacheIdx=Z.cacheIdx,X.cacheUpdateNumber=Z.cacheUpdateNumber,X}add(Z){let X=super.add(Z);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${Q0(Z)}`);return X}clear(){let Z=this.mode==="record"?[...this]:null;if(super.clear(),Z)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(Z)}`)}delete(Z){let X=super.delete(Z);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${Q0(Z)}`);return X}parent=null;child=null;transactionUpdates=null;transaction(Z){this.mode="transaction",this.transactionUpdates=[],this.child=new Y(this);let X=this.child._subscribe("transaction",(G)=>{this.transactionUpdates?.push(G)});try{if(Z(this.child)){for(let G of this.transactionUpdates)this.doStep(G);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(G){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",G),G}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,(G)=>{X(`${this.cacheUpdateNumber}=${G}`)})}emit(Z){this.subject.next(Z)}doStep(Z){let X=Z.indexOf(":"),G=Z.substring(0,X),_=Z.substring(X+1);switch(G){case"add":this.add(JSON.parse(_));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(_));break;case"tx":for(let $ of _.split(";"))this.doStep($)}}getUpdateNumber(Z){let X=Z.indexOf("=");return Number(Z.substring(0,X))}do(Z){let X=Z.indexOf("="),G=Number(Z.substring(0,X)),_=G-this.cacheUpdateNumber;if(_>0||Number.isNaN(_)){if(_===1||Number.isNaN(_)){this.mode="playback";let $=Z.substring(X+1);return this.doStep($),this.mode="record",this.cacheUpdateNumber=G,null}return this.cacheUpdateNumber+1}if(Math.abs(_)<this.cacheLimit){let $=this.cacheIdx+_;if(this.cache[$]===Z)return null;this.mode="playback";let W=!1;while(!W){this.cacheIdx%=this.cacheLimit;let Q=this.cache[this.cacheIdx];if(this.cacheIdx--,!Q)return"OUT_OF_RANGE";this.undo(Q),W=this.cacheIdx===$-1}let H=Z.substring(X+1);return this.doStep(H),this.mode="record",this.cacheUpdateNumber=G,null}return"OUT_OF_RANGE"}undoStep(Z){let X=Z.indexOf(":"),G=Z.substring(0,X),_=Z.substring(X+1);switch(G){case"add":this.delete(JSON.parse(_));break;case"del":this.add(JSON.parse(_));break;case"clear":{let $=JSON.parse(_);for(let W of $)this.add(W);break}case"tx":{let $=_.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 kZ(Y=Math.random){return Y().toString(36).slice(2)}function Y0(Y){while(Y.child!==null)Y=Y.child;return Y}function dF(Y){while(Y.parent!==null)Y=Y.parent;return Y}var cF=/^\[object (?:Async|Generator|AsyncGenerator)?Function\]$/;function H8(Y){let Z=Object.prototype.toString.call(Y);return cF.test(Z)}function mZ(Y,Z){if(H8(Y))return Y(Z);return Y}var uZ=class extends Promise{fate;resolve;reject;done=!1;constructor(Y){let Z,X;super((G,_)=>{Z=G,X=_});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}},_0=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)}},lF=class extends _0{state;constructor(Y){super();this.state=Y}next(Y){this.state=Y,super.next(Y)}},oF=class Y{_buffer;_index=0;constructor(Z){let X;if(typeof Z==="number")X=Z;else X=Z.length;this._buffer=Array.from({length:X})}get buffer(){return this._buffer}get index(){return this._index}add(Z){this._buffer[this._index]=Z,this._index=(this._index+1)%this._buffer.length}copy(){let Z=new Y([...this._buffer]);return Z._index=this._index,Z}};function y1(Y){let Z={key:Y.key,type:Y.type};if("family"in Y)Z.family=Y.family;return Z}var b1=class extends Map{deleted=new Set;changed=new Set;source;constructor(Y){super();this.source=Y}get(Y){if(super.has(Y))return super.get(Y);if(!this.deleted.has(Y)&&this.source.has(Y))return this.source.get(Y)}set(Y,Z){if(this.deleted.delete(Y),this.source.has(Y))this.changed.add(Y);return super.set(Y,Z)}hasOwn(Y){return super.has(Y)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){if(this.source.has(Y))this.deleted.add(Y),this.changed.delete(Y);return super.delete(Y)}clear(){this.deleted=new Set(this.source.keys()),this.changed.clear(),super.clear()}*[Symbol.iterator](){yield*super[Symbol.iterator]();for(let[Y,Z]of this.source)if(!this.deleted.has(Y)&&!this.changed.has(Y))yield[Y,Z]}*entries(){yield*this[Symbol.iterator]()}*keys(){yield*super.keys();for(let Y of this.source.keys())if(!this.deleted.has(Y)&&!this.changed.has(Y))yield Y}*values(){for(let[,Y]of this[Symbol.iterator]())yield Y}forEach(Y){for(let[Z,X]of this[Symbol.iterator]())Y(X,Z,this)}get size(){return super.size+this.source.size-this.changed.size-this.deleted.size}},u_=class extends Set{deleted=new Set;source;constructor(Y){super();this.source=Y}add(Y){if(this.source.has(Y))return this.deleted.delete(Y),this;return super.add(Y)}hasOwn(Y){return super.has(Y)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){if(this.source.has(Y))return this.deleted.add(Y),!0;return super.delete(Y)}clear(){this.deleted=new Set(this.source),super.clear()}*[Symbol.iterator](){yield*super[Symbol.iterator]();for(let Y of this.source)if(!this.deleted.has(Y))yield Y}*iterateOwn(){yield*super[Symbol.iterator]()}get size(){return super.size+this.source.size-this.deleted.size}},iF=class extends Map{deleted=new Set;source;constructor(Y){super();this.source=Y}get(Y){if(super.has(Y))return super.get(Y);if(!this.deleted.has(Y)&&this.source.has(Y)){let Z=this.source.get(Y),X=new u_(Z);return super.set(Y,X),X}}set(Y,Z){return this.deleted.delete(Y),super.set(Y,Z)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){return this.deleted.add(Y),super.delete(Y)}},$4=class Y{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(Z,X)=>`${Z}:${X}`;warn;getRelatedKeys(Z){return this.relations.get(Z)}addRelation(Z,X){let G=this.relations.get(Z),_=this.relations.get(X);if(G)G.add(X);else G=new Set([X]),this.relations.set(Z,G);if(_)_.add(Z);else _=new Set([Z]),this.relations.set(X,_)}deleteRelation(Z,X){let G=this.relations.get(Z);if(G){if(G.delete(X),G.size===0)this.relations.delete(Z);let _=this.relations.get(X);if(_){if(_.delete(Z),_.size===0)this.relations.delete(X)}}}replaceRelationsUnsafely(Z,X){this.relations.set(Z,new Set(X));for(let G of X){let _=new Set().add(Z);this.relations.set(G,_)}}replaceRelationsSafely(Z,X){let G=this.relations.get(Z),_=this.isAType?.(Z)?Z:void 0,$=_===void 0?Z:void 0;if(G)for(let W of G){_??=W,$??=W;let H=this.relations.get(W);if(H){if(H.size===1)this.relations.delete(W);else H.delete(Z);this.contents.delete(this.makeContentKey(_,$))}}this.relations.set(Z,new Set(X));for(let W of X){let H=this.relations.get(W);if(H)H.add(Z);else H=new Set().add(Z),this.relations.set(W,H)}}getContentInternal(Z){return this.contents.get(Z)}setContent(Z,X){this.contents.set(Z,X)}deleteContent(Z){this.contents.delete(Z)}constructor(Z,X){if(this.a=Z.between[0],this.b=Z.between[1],this.cardinality=Z.cardinality,this.isAType=X?.isAType??null,this.isBType=X?.isBType??null,this.isContent=X?.isContent??null,X?.makeContentKey)this.makeContentKey=X.makeContentKey;if(!X?.externalStore){let G=X?.source;if(G===void 0)this.relations=new Map(Z.relations?.map(([_,$])=>[_,new Set($)])),this.contents=new Map(Z.contents);if(G)this.relations=new iF(G.relations),this.contents=new b1(G.contents)}if(X?.externalStore){let G=X.externalStore;if(this.has=(_,$)=>G.has(_,$),this.addRelation=(_,$)=>{G.addRelation(_,$)},this.deleteRelation=(_,$)=>{G.deleteRelation(_,$)},this.replaceRelationsSafely=(_,$)=>{G.replaceRelationsSafely(_,$)},this.replaceRelationsUnsafely=(_,$)=>{G.replaceRelationsUnsafely(_,$)},this.getRelatedKeys=(_)=>G.getRelatedKeys(_),G.getContent)this.getContentInternal=(_)=>{return G.getContent(_)},this.setContent=(_,$)=>{G.setContent(_,$)},this.deleteContent=(_)=>{G.deleteContent(_)};for(let[_,$]of Z.relations??[]){let W=this.isAType?.(_)?_:void 0,H=W===void 0?_:void 0;for(let Q of $)W??=Q,H??=Q,this.addRelation(W,H)}for(let[_,$]of Z.contents??[])this.setContent(_,$)}if(X?.warn)this.warn=X.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([Z,X])=>[Z,[...X]]),contents:[...this.contents.entries()]}}set(...Z){let X,G,_;switch(Z.length){case 1:{let $=Z[0];X=$[this.a],G=$[this.b],_=void 0;break}case 2:{let $=Z[0];if(typeof $==="string")[X,G]=Z;else X=$[this.a],G=$[this.b],_=Z[1];break}default:X=Z[0],G=Z[1],_=Z[2];break}switch(this.cardinality){case"1:1":{let $=this.getRelatedKey(X);if($&&$!==G)this.delete(X,$)}case"1:n":{let $=this.getRelatedKey(G);if($&&$!==X)this.delete($,G)}break;case"n:n":}if(_){let $=this.makeContentKey(X,G);this.setContent($,_)}return this.addRelation(X,G),this}delete(Z,X){X=typeof X==="string"?X:Z[this.b];let G=typeof Z==="string"?Z:Z[this.a];if(G===void 0&&typeof X==="string"){let _=this.getRelatedKeys(X);if(_)for(let $ of _)this.delete($,X)}else if(typeof G==="string"&&X===void 0){let _=this.getRelatedKeys(G);if(_)for(let $ of _)this.delete(G,$)}else if(typeof G==="string"&&typeof X==="string"){this.deleteRelation(G,X);let _=this.makeContentKey(G,X);this.deleteContent(_)}return this}getRelatedKey(Z){let X=this.getRelatedKeys(Z);if(X){if(X.size>1)this.warn?.(`${X.size} related keys were found for key "${Z}": (${[...X].map((_)=>`"${_}"`).join(", ")}). Only one related key was expected.`);let G;for(let _ of X){G=_;break}return G}}replaceRelations(Z,X,G){let _=!Array.isArray(X),$=_?Object.keys(X):X;if(G?.reckless)this.replaceRelationsUnsafely(Z,$);else this.replaceRelationsSafely(Z,$);if(_)for(let W of $){let H=this.makeContentKey(Z,W),Q=X[W];this.setContent(H,Q)}return this}getContent(Z,X){let G=this.makeContentKey(Z,X);return this.getContentInternal(G)}getRelationEntries(Z){let X=Z[this.a],G=Z[this.b];if(X!==void 0&&G===void 0){let _=this.getRelatedKeys(X);if(_)return[..._].map(($)=>{return[$,this.getContent(X,$)]})}if(X===void 0&&G!==void 0){let _=this.getRelatedKeys(G);if(_)return[..._].map(($)=>{return[$,this.getContent($,G)]})}return[]}has(Z,X){if(X)return this.getRelatedKeys(Z)?.has(X)??!1;return this.relations.has(Z)}overlay(){let Z={source:this,makeContentKey:this.makeContentKey};if(this.isAType)Z.isAType=this.isAType;if(this.isBType)Z.isBType=this.isBType;if(this.isContent)Z.isContent=this.isContent;if(this.warn)Z.warn=this.warn;return new Y({between:[this.a,this.b],cardinality:this.cardinality},Z)}incorporate(Z){let{relations:X,contents:G}=Z;for(let[_,$]of X)if($ instanceof u_){let{source:W}=$;for(let H of $.iterateOwn())W.add(H)}else this.relations.set(_,$);for(let _ of X.deleted)this.relations.delete(_);for(let[_,$]of G)this.contents.set(_,$);for(let _ of G.deleted)this.contents.delete(_)}};function L2(Y){return Y.startsWith("\uD83D\uDD0D ")}var nF=(Y)=>{Y.logger.info("\uD83E\uDE82","transaction",Y.transactionMeta.update.token.key,"Aborting transaction"),Y.parent.child=null};function M6(Y,Z,X){return(...G)=>{return P0(Y,Z).run(G,X)}}function rF(Y,Z,X){let{token:G,update:{newValue:_,oldValue:$}}=Z;k1(Y,G,X==="newValue"?_:$)}function sF(Y){let{stack:Z}=Y;if(Z)return`
|
|
47
|
+
`)+"}");class X6{config;resolvedConfig;name;get[Y1](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(Y,Z){if(this.config=p2(I.config,Z),this.resolvedConfig=p2(I.resolvedConfig,Z),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(zZ).length}`,this.name in zZ)A(`A Scope already named ${this.name} already exists`);zZ[this.name]=this;let X=Object.entries(Y).map((G)=>this.preparseOwnAliasEntry(...G));for(let[G,_]of X){let $=G;if(G[0]==="#"){if($=G.slice(1),$ in this.aliases)A(aG($));this.aliases[$]=_}else{if($ in this.aliases)A(aG(G));this.aliases[$]=_,this.exportedNames.push($)}if(!y(_,"module")&&!y(_,"generic")&&!E4(_)){let W=this.preparseOwnDefinitionFormat(_,{alias:$});this.resolutions[$]=y(W,"root")?this.bindReference(W):this.createParseContext(W).id}}eG??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[eG.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=I.intrinsic?o(I.intrinsic,(G,_)=>G.startsWith("json")?[]:[G,this.bindReference(_)]):{}}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,G)=>new M4(Y,G?new n8(X):X,Z,Z,G??null)};units=(Y,Z)=>{let X=[];for(let _ of Y)if(!X.includes(_))X.push(_);let G=X.map((_)=>this.node("unit",{unit:_},Z));return this.node("union",G,{...Z,prereduced:!0})};lazyResolutions=[];lazilyResolve(Y,Z){let X=this.node("alias",{reference:Z??"synthetic",resolve:Y},{prereduced:!0});if(!this.resolved)this.lazyResolutions.push(X);return X}schema=(Y,Z)=>this.finalize(this.parseSchema(Y,Z));parseSchema=(Y,Z)=>this.node(c2(Y),Y,Z);preparseNode(Y,Z,X){let G=typeof Y==="string"?Y:c2(Z,Y);if(D0(Z)&&Z.kind===G)return Z;if(G==="alias"&&!X?.prereduced){let{reference:W}=s2.implementation.normalize(Z,this);if(W.startsWith("$")){let H=this.resolveRoot(W.slice(1));Z=H,G=H.kind}}else if(G==="union"&&W1(Z,"object")){let W=rQ(Z);if(W?.length===1)Z=W[0],G=c2(Z)}if(D0(Z)&&Z.kind===G)return Z;let $=_2[G].normalize?.(Z,this)??Z;if(D0($))return $.kind===G?$:sQ(G,$.kind);return{...X,$:this,kind:G,def:$,prefix:X.alias??G}}bindReference(Y){let Z;if(D0(Y))Z=Y.$===this?Y:new Y.constructor(Y.attachments,this);else Z=Y.$===this?Y:new M4(Y.params,Y.bodyDef,Y.$,this,Y.hkt);if(!this.resolved)Object.assign(this.referencesById,Z.referencesById);return Z}resolveRoot(Y){return this.maybeResolveRoot(Y)??A(EZ(Y))}maybeResolveRoot(Y){let Z=this.maybeResolve(Y);if(y(Z,"generic"))return;return Z}maybeResolveSubalias(Y){return UZ(this.aliases,Y)??UZ(this.ambient,Y)}get ambient(){return I.ambient}maybeResolve(Y){let Z=this.resolutions[Y];if(Z){if(typeof Z!=="string")return this.bindReference(Z);let G=Z1[Z];if(y(G,"root"))return this.resolutions[Y]=G;if(y(G,"context")){if(G.phase==="resolving")return this.node("alias",{reference:`$${Y}`},{prereduced:!0});if(G.phase==="resolved")return G0(`Unexpected resolved context for was uncached by its scope: ${i(G)}`);G.phase="resolving";let _=this.bindReference(this.parseOwnDefinitionFormat(G.def,G));return G.phase="resolved",Z1[_.id]=_,Z1[G.id]=_,this.resolutions[Y]=_}return G0(`Unexpected nodesById entry for ${Z}: ${i(G)}`)}let X=this.aliases[Y]??this.ambient?.[Y];if(!X)return this.maybeResolveSubalias(Y);if(X=this.normalizeRootScopeValue(X),y(X,"generic"))return this.resolutions[Y]=this.bindReference(X);if(y(X,"module")){if(!X.root)A(W9(Y));return this.resolutions[Y]=this.bindReference(X.root)}return this.resolutions[Y]=this.parse(X,{alias:Y})}createParseContext(Y){let Z=Y.id??iY(Y.prefix);return Z1[Z]=Object.assign(Y,{[Y1]:"context",$:this,id:Z,phase:"unresolved"})}traversal(Y){return new x1(Y,this.resolvedConfig)}import(...Y){return new H2(o(this.export(...Y),(Z,X)=>[`#${Z}`,X]))}precompilation;_exportedResolutions;_exports;export(...Y){if(!this._exports){this._exports={};for(let X of this.exportedNames){let G=this.aliases[X];this._exports[X]=y(G,"module")?QZ(G,this):Y9(this.maybeResolve(X))}for(let X of this.lazyResolutions)X.resolution;if(this._exportedResolutions=$9(this,this._exports),this._json=_9(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let X=G9(this.references);this.precompilation=X.write(Z9,4),X9(this.references,X)}this.resolved=!0}let Z=Y.length?Y:this.exportedNames;return new H2(o(Z,(X,G)=>[G,this._exports[G]]))}resolve(Y){return this.export()[Y]}node=(Y,Z,X={})=>{let G=this.preparseNode(Y,Z,X);if(D0(G))return this.bindReference(G);let _=this.createParseContext(G),$=nY(_),W=this.bindReference($);return Z1[_.id]=W};parse=(Y,Z={})=>this.finalize(this.parseDefinition(Y,Z));parseDefinition(Y,Z={}){if(y(Y,"root"))return this.bindReference(Y);let X=this.preparseOwnDefinitionFormat(Y,Z);if(y(X,"root"))return this.bindReference(X);let G=this.createParseContext(X);Z1[G.id]=G;let _=this.bindReference(this.parseOwnDefinitionFormat(Y,G));if(_.isCyclic)_=TG(_,G.id);return Z1[G.id]=_,_}finalize(Y){if(Y9(Y),!Y.precompilation&&!this.resolvedConfig.jitless)tQ(Y.references);return Y}}class FZ extends X6{parseOwnDefinitionFormat(Y,Z){return nY(Z)}preparseOwnDefinitionFormat(Y,Z){return this.preparseNode(c2(Y),Y,Z)}preparseOwnAliasEntry(Y,Z){return[Y,Z]}normalizeRootScopeValue(Y){return Y}}var Y9=(Y)=>{let Z=Y.references.filter((X)=>X.hasKind("alias"));for(let X of Z){Object.assign(X.referencesById,X.resolution.referencesById);for(let G of Y.references)if(X.id in G.referencesById)Object.assign(G.referencesById,X.referencesById)}return Y},_9=(Y)=>o(Y,(Z,X)=>[Z,y(X,"root")||y(X,"generic")?X.json:y(X,"module")?_9(X):G0(`Unexpected resolution ${i(X)}`)]),UZ=(Y,Z)=>{let X=Z.indexOf(".");if(X===-1)return;let G=Z.slice(0,X),_=Y[G];if(_===void 0)return;if(!y(_,"module"))return A(aQ(G));let $=Z.slice(X+1),W=_[$];if(W===void 0)return UZ(_,$);if(y(W,"root")||y(W,"generic"))return W;if(y(W,"module"))return W.root??A(W9(Z));G0(`Unexpected resolution for alias '${Z}': ${i(W)}`)},G6=(Y,Z)=>new FZ(Y,Z),e2=new FZ({});var $9=(Y,Z)=>{let X={};for(let G in Z){let _=Z[G];if(y(_,"module")){let $=$9(Y,_),W=o($,(H,Q)=>[`${G}.${H}`,Q]);Object.assign(X,W)}else if(y(_,"root")||y(_,"generic"))X[G]=_;else G0(`Unexpected scope resolution ${i(_)}`)}return X},EZ=(Y)=>`'${Y}' is unresolvable`,aQ=(Y)=>`'${Y}' must reference a module to be accessed using dot syntax`,W9=(Y)=>`Reference to submodule '${Y}' must specify an alias`;e2.export();var{schema:H0,node:J2,defineSchema:cR,generic:K1}=e2;var VZ="^(?:0|[1-9]\\d*)$",eQ=new RegExp(VZ),iR=T0(eQ);var H9=G6({bigint:"bigint",boolean:[{unit:!1},{unit:!0}],false:{unit:!1},never:[],null:{unit:null},number:"number",object:"object",string:"string",symbol:"symbol",true:{unit:!0},unknown:{},undefined:{unit:void 0},Array,Date},{prereducedAliases:!0}).export();I.intrinsic={...H9};var J9=G6({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:VZ}},{prereducedAliases:!0}).export();Object.assign(I.intrinsic,J9);var Yz=G6({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),u={...H9,...J9,...Yz,emptyStructure:J2("structure",{},{prereduced:!0})};I.intrinsic={...u};var z9=(Y)=>typeof Y==="string"&&Y[0]==="d"&&(Y[1]==="'"||Y[1]==='"')&&Y.at(-1)===Y[1],Q9=(Y)=>Y.toString()!=="Invalid Date",U9=(Y)=>Y.slice(2,-1),OZ=(Y)=>`'${Y}' could not be parsed by the Date constructor`,F9=(Y,Z)=>Zz(Y,Z),Zz=(Y,Z)=>{let X=new Date(Y);if(Q9(X))return X;let G=cX(Y);if(G!==void 0){let _=new Date(G);if(Q9(_))return _}return Z?A(Z===!0?OZ(Y):Z):void 0};var DZ=(Y,Z)=>{let X=Y.scanner.shiftUntil(Xz[V9[Z]]);if(Y.scanner.lookahead==="")return Y.error(_z(X,Z));if(Y.scanner.shift(),Z==="/"){try{new RegExp(X)}catch(G){A(String(G))}Y.root=Y.ctx.$.node("intersection",{domain:"string",pattern:X},{prereduced:!0})}else if(g0(Z,LZ))Y.root=Y.ctx.$.node("unit",{unit:X});else{let G=F9(X,OZ(X));Y.root=Y.ctx.$.node("unit",{meta:X,unit:G})}},LZ={"'":1,'"':1},E9={"/":1,"'":1,'"':1},V9={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},Xz={"'":(Y)=>Y.lookahead==="'",'"':(Y)=>Y.lookahead==='"',"/":(Y)=>Y.lookahead==="/"},Gz={'"':"double-quote","'":"single-quote","/":"forward slash"},_z=(Y,Z)=>`${Z}${Y} requires a closing ${Gz[V9[Z]]}`;var O9=(Y)=>`Private type references should not include '#'. Use '${Y}' instead.`,_6="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 D9={">":!0,">=":!0},L9={"<":!0,"<=":!0};var Q2={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},M9=(Y)=>`Unmatched )${Y===""?"":` before ${Y}`}`,W6=(Y)=>`Missing ${Y}`,A9=(Y,Z)=>`Left bounds are only valid when paired with right bounds (try ...${Z}${Y})`,H6=(Y)=>`Left-bounded expressions must specify their limits using < or <= (was ${Y})`,R9=(Y,Z,X,G)=>`An expression may have at most one left bound (parsed ${Y}${Q2[Z]}, ${X}${Q2[G]})`;var w9=(Y,Z,X)=>N9(Y,Z,X,[]),N9=(Y,Z,X,G)=>{let _=X.parseUntilFinalizer();if(G.push(_.root),_.finalizer===">"){if(G.length!==Z.params.length)return X.error(MZ(Y,Z.names,G.map(($)=>$.expression)));return G}if(_.finalizer===",")return N9(Y,Z,X,G);return _.error(W6(">"))},MZ=(Y,Z,X)=>`${Y}<${Z.join(", ")}> requires exactly ${Z.length} args (got ${X.length}${X.length===0?"":`: ${X.join(", ")}`})`;var AZ=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator();if(Z==="keyof")Y.addPrefix("keyof");else Y.root=Wz(Y,Z)},$z=(Y,Z,X)=>{if(X.scanner.shiftUntilNonWhitespace(),X.scanner.shift()!=="<")return X.error(MZ(Y,Z.names,[]));let _=w9(Y,Z,X);return Z(..._)},Wz=(Y,Z)=>Hz(Y,Z)??Jz(Y,Z)??Y.error(Z===""?Y.scanner.lookahead==="#"?O9(Y.shiftedByOne().scanner.shiftUntilNextTerminator()):RZ(Y):EZ(Z)),Hz=(Y,Z)=>{if(Y.ctx.args?.[Z]){let G=Y.ctx.args[Z];if(typeof G!=="string")return G;return Y.ctx.$.node("alias",{reference:G},{prereduced:!0})}let X=Y.ctx.$.maybeResolve(Z);if(y(X,"root"))return X;if(X===void 0)return;if(y(X,"generic"))return $z(Z,X,Y);return A(`Unexpected resolution ${i(X)}`)},Jz=(Y,Z)=>{let X=lX(Z);if(X!==void 0)return Y.ctx.$.node("unit",{unit:X});let G=iX(Z);if(G!==void 0)return Y.ctx.$.node("unit",{unit:G})},RZ=(Y)=>{let Z=Y.previousOperator();return Z?wZ(Z,Y.scanner.unscanned):Qz(Y.scanner.unscanned)},wZ=(Y,Z="")=>`Token '${Y}' requires a right operand${Z?` before '${Z}'`:""}`,Qz=(Y)=>`Expected an expression${Y?` before '${Y}'`:""}`;var NZ=(Y)=>Y.scanner.lookahead===""?Y.error(RZ(Y)):Y.scanner.lookahead==="("?Y.shiftedByOne().reduceGroupOpen():Y.scanner.lookaheadIsIn(E9)?DZ(Y,Y.scanner.shift()):Y.scanner.lookaheadIsIn(V4)?NZ(Y.shiftedByOne()):Y.scanner.lookahead==="d"?Y.scanner.nextLookahead in LZ?DZ(Y,`${Y.scanner.shift()}${Y.scanner.shift()}`):AZ(Y):AZ(Y);class G4 extends CY{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>(this.lookahead in G4.terminatingChars))}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...V4};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(Y,Z)=>Y===">"?Z[0]==="="?Z[1]==="=":Z.trimStart()===""||g0(Z.trimStart()[0],G4.terminatingChars):Y==="="?Z[0]!=="=":Y===","||Y==="?"}var K9=(Y,Z)=>{let X=zz(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 G=`d'${Y.root.description??Y.root.unit.toISOString()}'`;Y.unsetRoot(),Y.reduceLeftBound(G,X);return}}return Fz(Y,X)},B9={"<":1,">":1,"=":1},zz=(Y,Z)=>Y.scanner.lookaheadIs("=")?`${Z}${Y.scanner.shift()}`:Z;var I9=(Y,Z,X,G)=>{if(X.extends(I.intrinsic.number)){if(typeof Z!=="number")return A(IZ(Y,Z,G));return Y==="=="?["min","max"]:Y[0]===">"?["min"]:["max"]}if(X.extends(I.intrinsic.lengthBoundable)){if(typeof Z!=="number")return A(IZ(Y,Z,G));return Y==="=="?["exactLength"]:Y[0]===">"?["minLength"]:["maxLength"]}if(X.extends(I.intrinsic.Date))return Y==="=="?["after","before"]:Y[0]===">"?["after"]:["before"];return A(EG(X.expression))},Uz=(Y)=>({rule:z9(Y.limit)?U9(Y.limit):Y.limit,exclusive:Y.comparator.length===1}),Fz=(Y,Z)=>{let X=Y.unsetRoot(),G=Y.scanner.location;Y.parseOperand();let _=Y.unsetRoot(),$=Y.scanner.sliceChars(G,Y.scanner.location);if(Y.root=X,!_.hasKind("unit")||typeof _.unit!=="number"&&!(_.unit instanceof Date))return Y.error(IZ(Z,$,"right"));let W=_.unit,H=Z.length===1,Q=I9(Z,typeof W==="number"?W:$,X,"right");for(let z of Q)Y.constrainRoot(z,Z==="=="?{rule:W}:{rule:W,exclusive:H});if(!Y.branches.leftBound)return;if(!g0(Z,L9))return Y.error(H6(Z));let J=I9(Y.branches.leftBound.comparator,Y.branches.leftBound.limit,X,"left");Y.constrainRoot(J[0],Uz(Y.branches.leftBound)),Y.branches.leftBound=null},IZ=(Y,Z,X)=>`Comparator ${X==="left"?Q2[Y]:Y} must be ${X==="left"?"preceded":"followed"} by a corresponding literal (was ${Z})`;var T9=(Y)=>{Y.scanner.shiftUntilNonWhitespace();let Z=Y.scanner.shiftUntilNextTerminator();Y.root=Y.root.brand(Z)};var q9=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator(),X=oX(Z,{errorOnFail:C9(Z)});if(X===0)Y.error(C9(0));Y.root=Y.root.constrain("divisor",X)},C9=(Y)=>`% operator must be followed by a non-zero integer literal (was ${Y})`;var KZ=(Y)=>{let Z=Y.scanner.shift();return Z===""?Y.finalize(""):Z==="["?Y.scanner.shift()==="]"?Y.setRoot(Y.root.array()):Y.error(Ez):Z==="|"?Y.scanner.lookahead===">"?Y.shiftedByOne().pushRootToBranch("|>"):Y.pushRootToBranch(Z):Z==="&"?Y.pushRootToBranch(Z):Z===")"?Y.finalizeGroup():G4.lookaheadIsFinalizing(Z,Y.scanner.unscanned)?Y.finalize(Z):g0(Z,B9)?K9(Y,Z):Z==="%"?q9(Y):Z==="#"?T9(Y):(Z in V4)?KZ(Y):Y.error(J6(Z))},J6=(Y,Z="")=>`'${Y}' is not allowed here${Z&&` (should be ${Z})`}`,Ez="Missing expected ']'";var j9=(Y)=>{let Z=Y.unsetRoot();Y.parseOperand();let X=Y.unsetRoot();if(!X.hasKind("unit"))return Y.error(Vz(X.expression));let G=X.unit instanceof Date?()=>new Date(X.unit):X.unit;return[Z,"=",G]},Vz=(Y)=>`Default value '${Y}' must a literal value`;var BZ=(Y,Z)=>{let X=Z.$.maybeResolveRoot(Y);if(X)return X;if(Y.endsWith("[]")){let $=Z.$.maybeResolveRoot(Y.slice(0,-2));if($)return $.array()}let G=new z2(new G4(Y),Z),_=Oz(G);if(G.finalizer===">")A(J6(">"));return _},Oz=(Y)=>{Y.parseOperand();let Z=Y8(Y).root;if(!Z)return G0(`Root was unexpectedly unset after parsing string '${Y.scanner.scanned}'`);if(Y.finalizer==="=")Z=j9(Y);else if(Y.finalizer==="?")Z=[Z,"?"];if(Y.scanner.shiftUntilNonWhitespace(),Y.scanner.lookahead)A(J6(Y.scanner.lookahead));return Z},Y8=(Y)=>{while(Y.finalizer===void 0)Dz(Y);return Y},Dz=(Y)=>Y.hasRoot()?Y.parseOperator():Y.parseOperand();class z2{root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(Y,Z){this.scanner=Y,this.ctx=Z}error(Y){return A(Y)}hasRoot(){return this.root!==void 0}setRoot(Y){this.root=Y}unsetRoot(){let Y=this.root;return this.root=void 0,Y}constrainRoot(...Y){this.root=this.root.constrain(Y[0],Y[1])}finalize(Y){if(this.groups.length)return this.error(W6(")"));this.finalizeBranches(),this.finalizer=Y}reduceLeftBound(Y,Z){let X=Q2[Z];if(!g0(X,D9))return this.error(H6(Z));if(this.branches.leftBound)return this.error(R9(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(M9(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():G0(`Unexpected prefix '${Y}'`)}}pushRootToBranch(Y){this.assertRangeUnset(),this.applyPrefixes();let Z=this.root;if(this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd(Z)??Z,Y==="&")return;if(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,Y==="|")return;this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null}parseUntilFinalizer(){return Y8(new z2(this.scanner,this.ctx))}parseOperator(){return KZ(this)}parseOperand(){return NZ(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(A9(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 Lz="An empty string is not a valid generic parameter name",Q6=(Y,Z,X)=>{Y.shiftUntilNonWhitespace();let G=Y.shiftUntilNextTerminator();if(G===""){if(Y.lookahead===""&&Z.length)return Z;return A(Lz)}return Y.shiftUntilNonWhitespace(),Mz(Y,G,Z,X)},P9="extends ",Mz=(Y,Z,X,G)=>{if(Y.shiftUntilNonWhitespace(),Y.unscanned.startsWith(P9))Y.jumpForward(P9.length);else{if(Y.lookahead===",")Y.shift();return X.push(Z),Q6(Y,X,G)}let _=Y8(new z2(Y,G));return X.push([Z,_.root]),Q6(Y,X,G)};class TZ extends v1{$;constructor(Y){super((...Z)=>new Z8(Y)(...Z),{bind:Y});this.$=Y}in(Y){return new Z8(this.$,Y===void 0?void 0:this.$.parse(Y))}at(Y,Z){return new Z8(this.$).at(Y,Z)}case(Y,Z){return new Z8(this.$).case(Y,Z)}}class Z8 extends v1{$;in;key;branches=[];constructor(Y,Z){super((X)=>this.caseEntries(Object.entries(X).map(([G,_])=>G==="default"?[G,_]:[this.$.parse(G),_])));this.$=Y,this.in=Z}at(Y,Z){if(this.key)A(Rz);if(this.branches.length)A(Az);return this.key=Y,Z?this.match(Z):this}case(Y,Z){return this.caseEntry(this.$.parse(Y),Z)}caseEntry(Y,Z){let G=(this.key?this.$.parse({[this.key]:Y}):Y).pipe(Z);return this.branches.push(G),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,G]=Y[Z];if(X==="default"){if(Z!==Y.length-1)A("default may only be specified as the last key of a switch definition");return this.default(G)}if(typeof G!=="function")return A(`Value for case "${X}" must be a function (was ${y0(G)})`);this.caseEntry(X,G)}return this}default(Y){if(typeof Y==="function")this.case(u.unknown,Y);let Z={branches:this.branches,ordered:!0};if(Y==="never"||Y==="assert")Z.meta={onFail:S9};let X=this.$.node("union",Z);if(!this.in)return this.$.finalize(X);let G=this.in.pipe(X);if(Y==="never"||Y==="assert")G=G.configureReferences({onFail:S9},"self");return this.$.finalize(G)}}var S9=(Y)=>Y.throw(),Az="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",Rz="At most one key matcher may be specified per expression";var z6=(Y,Z)=>{if(U0(Y)){if(Y[1]==="=")return[Z.$.parseOwnDefinitionFormat(Y[0],Z),"=",Y[2]];if(Y[1]==="?")return[Z.$.parseOwnDefinitionFormat(Y[0],Z),"?"]}return U6(Y,Z)},v9="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",x9="Only required keys may specify default values, e.g. { value: 'number = 0' }";var f9=(Y,Z)=>{let X,G={},_=q4(Y);for(let[W,H]of _){let Q=Iz(W);if(Q.kind==="spread"){if(!l1(G))return A(Nz);let L=Z.$.parseOwnDefinitionFormat(H,Z);if(L.equals(u.object))continue;if(!L.hasKind("intersection")||!L.basis?.equals(u.object))return A(Kz(L.expression));X=L.structure;continue}if(Q.kind==="undeclared"){if(H!=="reject"&&H!=="delete"&&H!=="ignore")A(wz(H));G.undeclared=H;continue}let J=z6(H,Z),z=Q;if(Q.kind==="required"){if(!U0(J))CZ(G,"required",{key:Q.normalized,value:J},Z);else CZ(G,"optional",J[1]==="="?{key:Q.normalized,value:J[0],default:J[2]}:{key:Q.normalized,value:J[0]},Z);continue}if(U0(J)){if(J[1]==="?")A(v9);if(J[1]==="=")A(x9)}if(Q.kind==="optional"){CZ(G,"optional",{key:Q.normalized,value:J},Z);continue}let F=Z.$.parseOwnDefinitionFormat(z.normalized,Z),O=Z6(F,J,Z.$);if(O.index)G.index=Z0(G.index,O.index);if(O.required)G.required=Z0(G.required,O.required)}let $=Z.$.node("structure",G);return Z.$.parseSchema({domain:"object",structure:X?.merge($)??$})},CZ=(Y,Z,X,G)=>{Y[Z]=Z0(Y[Z],G.$.node(Z,X))},wz=(Y)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${i(Y)})`,Nz="Spread operator may only be used as the first key in an object",Iz=(Y)=>typeof Y==="symbol"?{kind:"required",normalized:Y}:Y.at(-1)==="?"?Y.at(-2)===x2?{kind:"required",normalized:`${Y.slice(0,-2)}?`}:{kind:"optional",normalized:Y.slice(0,-1)}:Y[0]==="["&&Y.at(-1)==="]"?{kind:"index",normalized:Y.slice(1,-1)}:Y[0]===x2&&Y[1]==="["&&Y.at(-1)==="]"?{kind:"required",normalized:Y.slice(1)}:Y==="..."?{kind:"spread"}:Y==="+"?{kind:"undeclared"}:{kind:"required",normalized:Y==="\\..."?"...":Y==="\\+"?"+":Y},Kz=(Y)=>`Spread operand must resolve to an object literal type (was ${Y})`;var k9=(Y,Z)=>fz(Y)?p9[Y[0]](Y,Z):vz(Y)?g9[Y[1]](Y,Z):null,Bz=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[1],Z).keyof(),qZ=(Y,Z)=>{if(Y[2]===void 0)return A(wZ(Y[1],""));let X=Z.$.parseOwnDefinitionFormat(Y[0],Z),G=Z.$.parseOwnDefinitionFormat(Y[2],Z);if(Y[1]==="|")return Z.$.node("union",{branches:[X,G]});let _=Y[1]==="&"?z1(X,G,Z.$):d2(X,G,Z.$);if(_ instanceof S)return _.throw();return _},Tz=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).array(),Cz=(Y,Z)=>{if(typeof Y[2]!=="function")return A(b9("=>",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).pipe(Y[2])},b9=(Y,Z)=>`${Y===":"?"Narrow":"Morph"} expression requires a function following '${Y}' (was ${typeof Z})`,qz=(Y,Z)=>{if(typeof Y[2]!=="function")return A(b9(":",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).constrain("predicate",Y[2])},jz=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).configureReferences(Y[2],"shallow"),y9=(Y)=>Y,Pz=y9({"[]":Tz,"?":()=>A(_6)}),Sz=y9({"|":qZ,"&":qZ,":":qz,"=>":Cz,"|>":qZ,"@":jz,"=":()=>A($6)}),g9={...Pz,...Sz},vz=(Y)=>g9[Y[1]]!==void 0,xz=(Y)=>Y,p9=xz({keyof:Bz,instanceof:(Y,Z)=>{if(typeof Y[1]!=="function")return A(h9(S2(Y[1])));let X=Y.slice(1).map((G)=>typeof G==="function"?Z.$.node("proto",{proto:G}):A(h9(S2(G))));return X.length===1?X[0]:Z.$.node("union",{branches:X})},"===":(Y,Z)=>Z.$.units(Y.slice(1))}),fz=(Y)=>p9[Y[0]]!==void 0,h9=(Y)=>`Expected a constructor following 'instanceof' operator (was ${Y})`;var d9=(Y,Z)=>{let X=[{}],G=0;while(G<Y.length){let _=!1;if(Y[G]==="..."&&G<Y.length-1)_=!0,G++;let $=z6(Y[G],Z),[W,H,Q]=!U0($)?[$]:$;if(G++,_){if(!W.extends(I.intrinsic.Array))return A(bz(W.expression));X=X.flatMap((J)=>W.distribute((z)=>kz(c8(J),z)))}else X=X.map((J)=>{if(H==="?")return c9(J,W);if(H==="=")return hz(J,W,Q);return jZ(J,W)})}return Z.$.parseSchema(X.map((_)=>l1(_)?{proto:Array,exactLength:0}:{proto:Array,sequence:_}))},jZ=(Y,Z)=>{if(Y.defaultables||Y.optionals)return A(Y.variadic?WZ:yz);if(Y.variadic)Y.postfix=Z0(Y.postfix,Z);else Y.prefix=Z0(Y.prefix,Z);return Y},c9=(Y,Z)=>{if(Y.variadic)return A(l9);return Y.optionals=Z0(Y.optionals,Z),Y},hz=(Y,Z,X)=>{if(Y.variadic)return A(l9);if(Y.optionals)return A(gz);return Y.defaultables=Z0(Y.defaultables,[[Z,X]]),Y},m9=(Y,Z)=>{if(Y.postfix)A(u9);if(Y.variadic){if(!Y.variadic.equals(Z))A(u9)}else Y.variadic=Z.internal;return Y},kz=(Y,Z)=>{let X=Z.select({method:"find",kind:"sequence"});if(!X)return m9(Y,I.intrinsic.unknown);if(X.prefix)for(let G of X.prefix)jZ(Y,G);if(X.optionals)for(let G of X.optionals)c9(Y,G);if(X.variadic)m9(Y,X.variadic);if(X.postfix)for(let G of X.postfix)jZ(Y,G);return Y},bz=(Y)=>`Spread element must be an array (was ${Y})`,u9="A tuple may have at most one variadic element",yz="A required element may not follow an optional element",l9="An optional element may not follow a variadic element";var gz="A defaultable element may not follow an optional element without a default";var pz={},U6=(Y,Z)=>{if(typeof Y==="string"){if(Z.args&&Object.keys(Z.args).some((G)=>Y.includes(G)))return BZ(Y,Z);let X=pz[Z.$.name]??={};return X[Y]??=BZ(Y,Z)}return W1(Y,"object")?mz(Y,Z):A(PZ(y0(Y)))},mz=(Y,Z)=>{let X=P2(Y);switch(X){case void 0:if(y(Y,"root"))return Y;return f9(Y,Z);case"Array":return uz(Y,Z);case"RegExp":return Z.$.node("intersection",{domain:"string",pattern:Y},{prereduced:!0});case"Function":{let G=E4(Y)?Y():Y;if(y(G,"root"))return G;return A(PZ("Function"))}default:return A(PZ(X??i(Y)))}},uz=(Y,Z)=>k9(Y,Z)??d9(Y,Z),PZ=(Y)=>`Type definitions must be strings or objects (was ${Y})`;class SZ extends v1{constructor(Y){let Z=Object.assign({errors:J1,hkt:r0,$:Y,raw:Y.parse,module:Y.constructor.module,scope:Y.constructor.scope,define:Y.define,match:Y.match,generic:Y.generic,schema:Y.schema,keywords:Y.ambient,unit:Y.unit,enumerated:Y.enumerated,instanceOf:Y.instanceOf,valueOf:Y.valueOf,or:Y.or,and:Y.and,merge:Y.merge,pipe:Y.pipe},Y.ambientAttachments);super((...X)=>{if(X.length===1)return Y.parse(X[0]);if(X.length===2&&typeof X[0]==="string"&&X[0][0]==="<"&&X[0].at(-1)===">"){let G=X[0].slice(1,-1),_=Y.parseGenericParams(G,{});return new M4(_,X[1],Y,Y,null)}return Y.parse(X)},{bind:Y,attach:Z})}}var U2=I;class F6 extends X6{get ambientAttachments(){if(!U2.typeAttachments)return;return this.cacheGetter("ambientAttachments",o(U2.typeAttachments,(Y,Z)=>[Y,this.bindReference(Z)]))}preparseOwnAliasEntry(Y,Z){let X=Y.indexOf("<");if(X===-1){if(y(Z,"module")||y(Z,"generic"))return[Y,Z];let $=this.name==="ark"?Y:Y==="root"?this.name:`${this.name}.${Y}`,W=this.resolvedConfig.keywords?.[$];if(W)Z=[Z,"@",W];return[Y,Z]}if(Y.at(-1)!==">")A("'>' must be the last character of a generic declaration in a scope");let G=Y.slice(0,X),_=Y.slice(X+1,-1);return[G,()=>{let $=this.parseGenericParams(_,{alias:G});return zG($,Z,this)}]}parseGenericParams(Y,Z){return Q6(new G4(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 G=U6(Y,Z);if(U0(G)){if(G[1]==="=")return A($6);if(G[1]==="?")return A(_6)}return G}unit=(Y)=>this.units([Y]);valueOf=(Y)=>this.units(PX(Y));enumerated=(...Y)=>this.units(Y);instanceOf=(Y)=>this.node("proto",{proto:Y},{prereduced:!0});or=(...Y)=>this.schema(Y.map((Z)=>this.parse(Z)));and=(...Y)=>Y.reduce((Z,X)=>Z.and(this.parse(X)),this.intrinsic.unknown);merge=(...Y)=>Y.reduce((Z,X)=>Z.merge(this.parse(X)),this.intrinsic.object);pipe=(...Y)=>this.intrinsic.unknown.pipe(...Y);match=new TZ(this);declare=()=>({type:this.type});define(Y){return Y}type=new SZ(this);static scope=(Y,Z={})=>new F6(Y,Z);static module=(Y,Z={})=>this.scope(Y,Z).export()}var vZ=Object.assign(F6.scope,{define:(Y)=>Y}),e=F6;class o9 extends r0{description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var dz=K1(["base",u.object],["props",u.object])((Y)=>Y.base.merge(Y.props),o9),i9=e.module({Key:u.key,Merge:dz});class n9 extends r0{}var cz=K1("element")((Y)=>{let Z=Y.element.exclude(u.Array),X=Z.array();return Z.rawOr(X).pipe(F4).distribute((G)=>G.assertHasKind("morph").declareOut(X),H0)},n9),r9=e.module({root:u.Array,readonly:"root",index:u.nonNegativeIntegerString,liftFrom:cz},{name:"Array"});var xZ=H0(["string",P4.FileConstructor]),lz=xZ.rawOr(xZ.array()),s9=H0({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:lz}}),t9=e.module({root:["instanceof",FormData],value:xZ,parsed:s9,parse:H0({in:FormData,morphs:(Y)=>{let Z={};for(let[X,G]of Y)if(X in Z){let _=Z[X];if(typeof _==="string"||_ instanceof P4.FileConstructor)Z[X]=[_,G];else _.push(G)}else Z[X]=G;return Z},declaredOut:s9})},{name:"FormData"});var a9=e.module({Int8:["instanceof",Int8Array],Uint8:["instanceof",Uint8Array],Uint8Clamped:["instanceof",Uint8ClampedArray],Int16:["instanceof",Int16Array],Uint16:["instanceof",Uint16Array],Int32:["instanceof",Int32Array],Uint32:["instanceof",Uint32Array],Float32:["instanceof",Float32Array],Float64:["instanceof",Float64Array],BigInt64:["instanceof",BigInt64Array],BigUint64:["instanceof",BigUint64Array]},{name:"TypedArray"});var oz={Boolean:1,Number:1,String:1},e9=e.module({...o({...AY,...wY},(Y,Z)=>(Y in oz)?[]:[Y,["instanceof",Z]]),Array:r9,TypedArray:a9,FormData:t9});var iz=H0({domain:{domain:"number",meta:"a number representing a Unix timestamp"},divisor:{rule:1,meta:"an integer representing a Unix timestamp"},min:{rule:-8640000000000000,meta:"a Unix timestamp after -8640000000000000"},max:{rule:8640000000000000,meta:"a Unix timestamp before 8640000000000000"},meta:"an integer representing a safe Unix timestamp"}),nz=H0({domain:"number",divisor:1}),E6=e.module({root:u.number,integer:nz,epoch:iz,safe:H0({domain:{domain:"number",numberAllowsNaN:!1},min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER}),NaN:["===",Number.NaN],Infinity:["===",Number.POSITIVE_INFINITY],NegativeInfinity:["===",Number.NEGATIVE_INFINITY]},{name:"number"});var N0=(Y,Z,X)=>{let G={domain:"string",pattern:{rule:Y.source,flags:Y.flags,meta:Z}};if(X)G.meta={format:X};return J2("intersection",G)},Y_=N0(f2,"a well-formed integer string"),F_=e.module({root:Y_,parse:H0({in:Y_,morphs:(Y,Z)=>{let X=Number.parseInt(Y);return Number.isSafeInteger(X)?X:Z.error("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")},declaredOut:u.integer})},{name:"string.integer"}),rz=N0(/^[\dA-Fa-f]+$/,"hex characters only"),sz=e.module({root:N0(/^(?:[\d+/A-Za-z]{4})*(?:[\d+/A-Za-z]{2}==|[\d+/A-Za-z]{3}=)?$/,"base64-encoded"),url:N0(/^(?:[\w-]{4})*(?:[\w-]{2}(?:==|%3D%3D)?|[\w-]{3}(?:=|%3D)?)?$/,"base64url-encoded")},{name:"string.base64"}),Z_=N0(/^[A-Z].*$/,"capitalized"),tz=e.module({root:H0({in:"string",morphs:(Y)=>Y.charAt(0).toUpperCase()+Y.slice(1),declaredOut:Z_}),preformatted:Z_},{name:"string.capitalize"}),az=(Y)=>{let Z=Y.replaceAll(/[ -]+/g,""),X=0,G,_,$=!1;for(let W=Z.length-1;W>=0;W--){if(G=Z.substring(W,W+1),_=Number.parseInt(G,10),$)_*=2,X+=_>=10?_%10+1:_;else X+=_;$=!$}return!!(X%10===0?Z:!1)},ez=/^(?: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}))$/,YU=H0({domain:"string",pattern:{meta:"a credit card number",rule:ez.source},predicate:{meta:"a credit card number",predicate:az}});var ZU=/^([+-]?\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()),X_=H0({domain:"string",predicate:{meta:"a parsable date",predicate:XU}}).assertHasKind("intersection"),G_=F_.root.internal.narrow((Y,Z)=>{let X=Number.parseInt(Y),G=E6.epoch(X);if(G instanceof J1)return Z.errors.merge(G),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),GU=e.module({root:G_,parse:H0({in:G_,morphs:(Y)=>new Date(Y),declaredOut:u.Date})},{name:"string.date.epoch"}),__=N0(ZU,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),_U=e.module({root:__,parse:H0({in:__,morphs:(Y)=>new Date(Y),declaredOut:u.Date})},{name:"string.date.iso"}),$U=e.module({root:X_,parse:H0({declaredIn:X_,in:"string",morphs:(Y,Z)=>{let X=new Date(Y);if(Number.isNaN(X.valueOf()))return Z.error("a parsable date");return X},declaredOut:u.Date}),iso:_U,epoch:GU},{name:"string.date"}),WU=N0(/^[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z]{2,}$/,"an email address","email"),$_="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",A4=`(${$_}[.]){3}${$_}`,HU=new RegExp(`^${A4}$`),x0="(?:[0-9a-fA-F]{1,4})",JU=new RegExp(`^((?:${x0}:){7}(?:${x0}|:)|(?:${x0}:){6}(?:${A4}|:${x0}|:)|(?:${x0}:){5}(?::${A4}|(:${x0}){1,2}|:)|(?:${x0}:){4}(?:(:${x0}){0,1}:${A4}|(:${x0}){1,3}|:)|(?:${x0}:){3}(?:(:${x0}){0,2}:${A4}|(:${x0}){1,4}|:)|(?:${x0}:){2}(?:(:${x0}){0,3}:${A4}|(:${x0}){1,5}|:)|(?:${x0}:){1}(?:(:${x0}){0,4}:${A4}|(:${x0}){1,6}|:)|(?::((?::${x0}){0,5}:${A4}|(?::${x0}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),QU=e.module({root:["v4 | v6","@","an IP address"],v4:N0(HU,"an IPv4 address","ipv4"),v6:N0(JU,"an IPv6 address","ipv6")},{name:"string.ip"}),F2="a JSON string",E_=(Y)=>{if(!(Y instanceof SyntaxError))throw Y;return`must be ${F2} (${Y})`},zU=H0({meta:F2,domain:"string",predicate:{meta:F2,predicate:(Y,Z)=>{try{return JSON.parse(Y),!0}catch(X){return Z.reject({code:"predicate",expected:F2,problem:E_(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:E_(X)})}},FU=e.module({root:zU,parse:H0({meta:"safe JSON string parser",in:"string",morphs:UU,declaredOut:u.jsonObject})},{name:"string.json"}),W_=N0(/^[a-z]*$/,"only lowercase letters"),EU=e.module({root:H0({in:"string",morphs:(Y)=>Y.toLowerCase(),declaredOut:W_}),preformatted:W_},{name:"string.lower"}),V_=["NFC","NFD","NFKC","NFKD"],X8=o(V_,(Y,Z)=>[Z,H0({domain:"string",predicate:(X)=>X.normalize(Z)===X,meta:`${Z}-normalized unicode`})]),V6=o(V_,(Y,Z)=>[Z,H0({in:"string",morphs:(X)=>X.normalize(Z),declaredOut:X8[Z]})]),VU=e.module({root:V6.NFC,preformatted:X8.NFC},{name:"string.normalize.NFC"}),OU=e.module({root:V6.NFD,preformatted:X8.NFD},{name:"string.normalize.NFD"}),DU=e.module({root:V6.NFKC,preformatted:X8.NFKC},{name:"string.normalize.NFKC"}),LU=e.module({root:V6.NFKD,preformatted:X8.NFKD},{name:"string.normalize.NFKD"}),MU=e.module({root:"NFC",NFC:VU,NFD:OU,NFKC:DU,NFKD:LU},{name:"string.normalize"}),H_=N0(m8,"a well-formed numeric string"),AU=e.module({root:H_,parse:H0({in:H_,morphs:(Y)=>Number.parseFloat(Y),declaredOut:u.number})},{name:"string.numeric"}),J_="a regex pattern",RU=H0({domain:"string",predicate:{meta:J_,predicate:(Y,Z)=>{try{return new RegExp(Y),!0}catch(X){return Z.reject({code:"predicate",expected:J_,problem:String(X)})}}},meta:{format:"regex"}}),wU=/^(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-]+)*))?$/,NU=N0(wU,"a semantic version (see https://semver.org/)"),Q_=N0(/^\S.*\S$|^\S?$/,"trimmed"),IU=e.module({root:H0({in:"string",morphs:(Y)=>Y.trim(),declaredOut:Q_}),preformatted:Q_},{name:"string.trim"}),z_=N0(/^[A-Z]*$/,"only uppercase letters"),KU=e.module({root:H0({in:"string",morphs:(Y)=>Y.toUpperCase(),declaredOut:z_}),preformatted:z_},{name:"string.upper"}),BU=(Y)=>{if(URL.canParse)return URL.canParse(Y);try{return new URL(Y),!0}catch{return!1}},U_=H0({domain:"string",predicate:{meta:"a URL string",predicate:BU},meta:{format:"uri"}}),TU=e.module({root:U_,parse:H0({declaredIn:U_,in:"string",morphs:(Y,Z)=>{try{return new URL(Y)}catch{return Z.error("a URL string")}},declaredOut:H0(URL)})},{name:"string.url"}),CU=e.module({root:["versioned | nil | max","@",{description:"a UUID",format:"uuid"}],"#nil":"'00000000-0000-0000-0000-000000000000'","#max":"'ffffffff-ffff-ffff-ffff-ffffffffffff'","#versioned":/[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}/i,v1:N0(/^[\da-f]{8}-[\da-f]{4}-1[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv1"),v2:N0(/^[\da-f]{8}-[\da-f]{4}-2[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv2"),v3:N0(/^[\da-f]{8}-[\da-f]{4}-3[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv3"),v4:N0(/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv4"),v5:N0(/^[\da-f]{8}-[\da-f]{4}-5[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv5"),v6:N0(/^[\da-f]{8}-[\da-f]{4}-6[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv6"),v7:N0(/^[\da-f]{8}-[\da-f]{4}-7[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv7"),v8:N0(/^[\da-f]{8}-[\da-f]{4}-8[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv8")},{name:"string.uuid"}),O_=e.module({root:u.string,alpha:N0(/^[A-Za-z]*$/,"only letters"),alphanumeric:N0(/^[\dA-Za-z]*$/,"only letters and digits 0-9"),hex:rz,base64:sz,capitalize:tz,creditCard:YU,date:$U,digits:N0(/^\d*$/,"only digits 0-9"),email:WU,integer:F_,ip:QU,json:FU,lower:EU,normalize:MU,numeric:AU,regex:RU,semver:NU,trim:IU,upper:KU,url:TU,uuid:CU},{name:"string"});var D_=e.module({bigint:u.bigint,boolean:u.boolean,false:u.false,never:u.never,null:u.null,number:u.number,object:u.object,string:u.string,symbol:u.symbol,true:u.true,unknown:u.unknown,undefined:u.undefined}),L_=e.module({root:u.unknown,any:u.unknown},{name:"unknown"}),qU=e.module({root:u.jsonObject,stringify:J2("morph",{in:u.jsonObject,morphs:(Y)=>JSON.stringify(Y),declaredOut:u.string})},{name:"object.json"}),M_=e.module({root:u.object,json:qU},{name:"object"});class A_ extends r0{description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var jU=K1(["K",u.key],"V")((Y)=>({domain:"object",index:{signature:Y.K,value:Y.V}}),A_);class R_ extends r0{description='pick a set of properties from an object like `Pick(User, "name | age")`'}var PU=K1(["T",u.object],["K",u.key])((Y)=>Y.T.pick(Y.K),R_);class w_ extends r0{description='omit a set of properties from an object like `Omit(User, "age")`'}var SU=K1(["T",u.object],["K",u.key])((Y)=>Y.T.omit(Y.K),w_);class N_ extends r0{description="make all named properties of an object optional like `Partial(User)`"}var vU=K1(["T",u.object])((Y)=>Y.T.partial(),N_);class I_ extends r0{description="make all named properties of an object required like `Required(User)`"}var xU=K1(["T",u.object])((Y)=>Y.T.required(),I_);class K_ extends r0{description='exclude branches of a union like `Exclude("boolean", "true")`'}var fU=K1("T","U")((Y)=>Y.T.exclude(Y.U),K_);class B_ extends r0{description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var hU=K1("T","U")((Y)=>Y.T.extract(Y.U),B_),T_=e.module({Exclude:fU,Extract:hU,Omit:SU,Partial:vU,Pick:PU,Record:jU,Required:xU});var R4=vZ({...D_,...T_,...e9,...i9,string:O_,number:E6,object:M_,unknown:L_},{prereducedAliases:!0,name:"ark"}),p0=R4.export();Object.assign(U2.ambient,p0);U2.typeAttachments={string:p0.string.root,number:p0.number.root,bigint:p0.bigint,boolean:p0.boolean,symbol:p0.symbol,undefined:p0.undefined,null:p0.null,object:p0.object.root,unknown:p0.unknown.root,false:p0.false,true:p0.true,never:p0.never,arrayIndex:p0.Array.index,Key:p0.Key,Record:p0.Record,Array:p0.Array.root,Date:p0.Date};var U1=Object.assign(R4.type,U2.typeAttachments),kU=R4.match,bU=R4.generic,OK=R4.schema,yU=R4.define,gU=R4.declare;function E2(Y){return w6(F1.STORE,Y,void 0)}function V2(Y){return O2(F1.STORE,Y)}function hZ(...Y){return h1(F1.STORE,...Y)}function O6(Y,Z){return h_(F1.STORE,Y,Z)}function C_(Y){return k_(Y,F1.STORE)}var _4={atom_family:"atom family",atom:"atom",continuity:"continuity",key:"key",mutable_atom_family:"atom family [m]",mutable_atom:"atom [m]",readonly_held_selector_family:"selector family [h]",readonly_held_selector:"selector [h]",readonly_pure_selector_family:"selector family",readonly_pure_selector:"selector",state:"state",timeline:"timeline",transaction:"transaction",unknown:"unknown",writable_held_selector_family:"selector family [wh]",writable_held_selector:"selector [wh]",writable_pure_selector_family:"selector family [w]",writable_pure_selector:"selector [w]"};var fZ=(Y)=>(Z,X,G,_,...$)=>{console[Y](`${Z} ${_4[X]} \`${G}\` ${_}`,...$)},pU={error:fZ("error"),info:fZ("info"),warn:fZ("warn")},q_=class{logLevel;filter;logger;constructor(Y,Z,X=pU){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 j_=class{store;deallocateTX;claimTX;constructor(Y=F1.STORE){this.store=Y,this.deallocateTX=S_(Y),this.claimTX=v_(Y),P_(Y,"root")}allocate(Y,Z,X){A6(this.store,Y,Z,X)}deallocate(Y){M6(this.store,this.deallocateTX,kZ())(Y)}claim(Y,Z,X){G8(this.store,Y,Z,X)}};function D6(Y){return bZ(F1.STORE,Y)}function L6(Y){return _8(F1.STORE,Y)}function X1(Y){return JSON.parse(Y)}var Q0=(Y)=>JSON.stringify(Y),pK=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];var b_=class Y extends Set{mode="record";subject=new _0;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(Z,X=0){super(Z);if(Z instanceof Y)this.parent=Z,this.cacheUpdateNumber=Z.cacheUpdateNumber;if(X)this.cacheLimit=X,this.cache=Array(X),this.subscribe("auto cache",(G)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=G})}READONLY_VIEW=this;toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(Z){let X=new Y(Z.members,Z.cacheLimit);return X.cache=Z.cache,X.cacheIdx=Z.cacheIdx,X.cacheUpdateNumber=Z.cacheUpdateNumber,X}add(Z){let X=super.add(Z);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${Q0(Z)}`);return X}clear(){let Z=this.mode==="record"?[...this]:null;if(super.clear(),Z)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(Z)}`)}delete(Z){let X=super.delete(Z);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${Q0(Z)}`);return X}parent=null;child=null;transactionUpdates=null;transaction(Z){this.mode="transaction",this.transactionUpdates=[],this.child=new Y(this);let X=this.child._subscribe("transaction",(G)=>{this.transactionUpdates?.push(G)});try{if(Z(this.child)){for(let G of this.transactionUpdates)this.doStep(G);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(G){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",G),G}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,(G)=>{X(`${this.cacheUpdateNumber}=${G}`)})}emit(Z){this.subject.next(Z)}doStep(Z){let X=Z.indexOf(":"),G=Z.substring(0,X),_=Z.substring(X+1);switch(G){case"add":this.add(JSON.parse(_));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(_));break;case"tx":for(let $ of _.split(";"))this.doStep($)}}getUpdateNumber(Z){let X=Z.indexOf("=");return Number(Z.substring(0,X))}do(Z){let X=Z.indexOf("="),G=Number(Z.substring(0,X)),_=G-this.cacheUpdateNumber;if(_>0||Number.isNaN(_)){if(_===1||Number.isNaN(_)){this.mode="playback";let $=Z.substring(X+1);return this.doStep($),this.mode="record",this.cacheUpdateNumber=G,null}return this.cacheUpdateNumber+1}if(Math.abs(_)<this.cacheLimit){let $=this.cacheIdx+_;if(this.cache[$]===Z)return null;this.mode="playback";let W=!1;while(!W){this.cacheIdx%=this.cacheLimit;let Q=this.cache[this.cacheIdx];if(this.cacheIdx--,!Q)return"OUT_OF_RANGE";this.undo(Q),W=this.cacheIdx===$-1}let H=Z.substring(X+1);return this.doStep(H),this.mode="record",this.cacheUpdateNumber=G,null}return"OUT_OF_RANGE"}undoStep(Z){let X=Z.indexOf(":"),G=Z.substring(0,X),_=Z.substring(X+1);switch(G){case"add":this.delete(JSON.parse(_));break;case"del":this.add(JSON.parse(_));break;case"clear":{let $=JSON.parse(_);for(let W of $)this.add(W);break}case"tx":{let $=_.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 kZ(Y=Math.random){return Y().toString(36).slice(2)}function Y0(Y){while(Y.child!==null)Y=Y.child;return Y}function uU(Y){while(Y.parent!==null)Y=Y.parent;return Y}var dU=/^\[object (?:Async|Generator|AsyncGenerator)?Function\]$/;function H8(Y){let Z=Object.prototype.toString.call(Y);return dU.test(Z)}function mZ(Y,Z){if(H8(Y))return Y(Z);return Y}var uZ=class extends Promise{fate;resolve;reject;done=!1;constructor(Y){let Z,X;super((G,_)=>{Z=G,X=_});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}},_0=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)}},cU=class extends _0{state;constructor(Y){super();this.state=Y}next(Y){this.state=Y,super.next(Y)}},lU=class Y{_buffer;_index=0;constructor(Z){let X;if(typeof Z==="number")X=Z;else X=Z.length;this._buffer=Array.from({length:X})}get buffer(){return this._buffer}get index(){return this._index}add(Z){this._buffer[this._index]=Z,this._index=(this._index+1)%this._buffer.length}copy(){let Z=new Y([...this._buffer]);return Z._index=this._index,Z}};function y1(Y){let Z={key:Y.key,type:Y.type};if("family"in Y)Z.family=Y.family;return Z}var b1=class extends Map{deleted=new Set;changed=new Set;source;constructor(Y){super();this.source=Y}get(Y){if(super.has(Y))return super.get(Y);if(!this.deleted.has(Y)&&this.source.has(Y))return this.source.get(Y)}set(Y,Z){if(this.deleted.delete(Y),this.source.has(Y))this.changed.add(Y);return super.set(Y,Z)}hasOwn(Y){return super.has(Y)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){if(this.source.has(Y))this.deleted.add(Y),this.changed.delete(Y);return super.delete(Y)}clear(){this.deleted=new Set(this.source.keys()),this.changed.clear(),super.clear()}*[Symbol.iterator](){yield*super[Symbol.iterator]();for(let[Y,Z]of this.source)if(!this.deleted.has(Y)&&!this.changed.has(Y))yield[Y,Z]}*entries(){yield*this[Symbol.iterator]()}*keys(){yield*super.keys();for(let Y of this.source.keys())if(!this.deleted.has(Y)&&!this.changed.has(Y))yield Y}*values(){for(let[,Y]of this[Symbol.iterator]())yield Y}forEach(Y){for(let[Z,X]of this[Symbol.iterator]())Y(X,Z,this)}get size(){return super.size+this.source.size-this.changed.size-this.deleted.size}},u_=class extends Set{deleted=new Set;source;constructor(Y){super();this.source=Y}add(Y){if(this.source.has(Y))return this.deleted.delete(Y),this;return super.add(Y)}hasOwn(Y){return super.has(Y)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){if(this.source.has(Y))return this.deleted.add(Y),!0;return super.delete(Y)}clear(){this.deleted=new Set(this.source),super.clear()}*[Symbol.iterator](){yield*super[Symbol.iterator]();for(let Y of this.source)if(!this.deleted.has(Y))yield Y}*iterateOwn(){yield*super[Symbol.iterator]()}get size(){return super.size+this.source.size-this.deleted.size}},oU=class extends Map{deleted=new Set;source;constructor(Y){super();this.source=Y}get(Y){if(super.has(Y))return super.get(Y);if(!this.deleted.has(Y)&&this.source.has(Y)){let Z=this.source.get(Y),X=new u_(Z);return super.set(Y,X),X}}set(Y,Z){return this.deleted.delete(Y),super.set(Y,Z)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){return this.deleted.add(Y),super.delete(Y)}},$4=class Y{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(Z,X)=>`${Z}:${X}`;warn;getRelatedKeys(Z){return this.relations.get(Z)}addRelation(Z,X){let G=this.relations.get(Z),_=this.relations.get(X);if(G)G.add(X);else G=new Set([X]),this.relations.set(Z,G);if(_)_.add(Z);else _=new Set([Z]),this.relations.set(X,_)}deleteRelation(Z,X){let G=this.relations.get(Z);if(G){if(G.delete(X),G.size===0)this.relations.delete(Z);let _=this.relations.get(X);if(_){if(_.delete(Z),_.size===0)this.relations.delete(X)}}}replaceRelationsUnsafely(Z,X){this.relations.set(Z,new Set(X));for(let G of X){let _=new Set().add(Z);this.relations.set(G,_)}}replaceRelationsSafely(Z,X){let G=this.relations.get(Z),_=this.isAType?.(Z)?Z:void 0,$=_===void 0?Z:void 0;if(G)for(let W of G){_??=W,$??=W;let H=this.relations.get(W);if(H){if(H.size===1)this.relations.delete(W);else H.delete(Z);this.contents.delete(this.makeContentKey(_,$))}}this.relations.set(Z,new Set(X));for(let W of X){let H=this.relations.get(W);if(H)H.add(Z);else H=new Set().add(Z),this.relations.set(W,H)}}getContentInternal(Z){return this.contents.get(Z)}setContent(Z,X){this.contents.set(Z,X)}deleteContent(Z){this.contents.delete(Z)}constructor(Z,X){if(this.a=Z.between[0],this.b=Z.between[1],this.cardinality=Z.cardinality,this.isAType=X?.isAType??null,this.isBType=X?.isBType??null,this.isContent=X?.isContent??null,X?.makeContentKey)this.makeContentKey=X.makeContentKey;if(!X?.externalStore){let G=X?.source;if(G===void 0)this.relations=new Map(Z.relations?.map(([_,$])=>[_,new Set($)])),this.contents=new Map(Z.contents);if(G)this.relations=new oU(G.relations),this.contents=new b1(G.contents)}if(X?.externalStore){let G=X.externalStore;if(this.has=(_,$)=>G.has(_,$),this.addRelation=(_,$)=>{G.addRelation(_,$)},this.deleteRelation=(_,$)=>{G.deleteRelation(_,$)},this.replaceRelationsSafely=(_,$)=>{G.replaceRelationsSafely(_,$)},this.replaceRelationsUnsafely=(_,$)=>{G.replaceRelationsUnsafely(_,$)},this.getRelatedKeys=(_)=>G.getRelatedKeys(_),G.getContent)this.getContentInternal=(_)=>{return G.getContent(_)},this.setContent=(_,$)=>{G.setContent(_,$)},this.deleteContent=(_)=>{G.deleteContent(_)};for(let[_,$]of Z.relations??[]){let W=this.isAType?.(_)?_:void 0,H=W===void 0?_:void 0;for(let Q of $)W??=Q,H??=Q,this.addRelation(W,H)}for(let[_,$]of Z.contents??[])this.setContent(_,$)}if(X?.warn)this.warn=X.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([Z,X])=>[Z,[...X]]),contents:[...this.contents.entries()]}}set(...Z){let X,G,_;switch(Z.length){case 1:{let $=Z[0];X=$[this.a],G=$[this.b],_=void 0;break}case 2:{let $=Z[0];if(typeof $==="string")[X,G]=Z;else X=$[this.a],G=$[this.b],_=Z[1];break}default:X=Z[0],G=Z[1],_=Z[2];break}switch(this.cardinality){case"1:1":{let $=this.getRelatedKey(X);if($&&$!==G)this.delete(X,$)}case"1:n":{let $=this.getRelatedKey(G);if($&&$!==X)this.delete($,G)}break;case"n:n":}if(_){let $=this.makeContentKey(X,G);this.setContent($,_)}return this.addRelation(X,G),this}delete(Z,X){X=typeof X==="string"?X:Z[this.b];let G=typeof Z==="string"?Z:Z[this.a];if(G===void 0&&typeof X==="string"){let _=this.getRelatedKeys(X);if(_)for(let $ of _)this.delete($,X)}else if(typeof G==="string"&&X===void 0){let _=this.getRelatedKeys(G);if(_)for(let $ of _)this.delete(G,$)}else if(typeof G==="string"&&typeof X==="string"){this.deleteRelation(G,X);let _=this.makeContentKey(G,X);this.deleteContent(_)}return this}getRelatedKey(Z){let X=this.getRelatedKeys(Z);if(X){if(X.size>1)this.warn?.(`${X.size} related keys were found for key "${Z}": (${[...X].map((_)=>`"${_}"`).join(", ")}). Only one related key was expected.`);let G;for(let _ of X){G=_;break}return G}}replaceRelations(Z,X,G){let _=!Array.isArray(X),$=_?Object.keys(X):X;if(G?.reckless)this.replaceRelationsUnsafely(Z,$);else this.replaceRelationsSafely(Z,$);if(_)for(let W of $){let H=this.makeContentKey(Z,W),Q=X[W];this.setContent(H,Q)}return this}getContent(Z,X){let G=this.makeContentKey(Z,X);return this.getContentInternal(G)}getRelationEntries(Z){let X=Z[this.a],G=Z[this.b];if(X!==void 0&&G===void 0){let _=this.getRelatedKeys(X);if(_)return[..._].map(($)=>{return[$,this.getContent(X,$)]})}if(X===void 0&&G!==void 0){let _=this.getRelatedKeys(G);if(_)return[..._].map(($)=>{return[$,this.getContent($,G)]})}return[]}has(Z,X){if(X)return this.getRelatedKeys(Z)?.has(X)??!1;return this.relations.has(Z)}overlay(){let Z={source:this,makeContentKey:this.makeContentKey};if(this.isAType)Z.isAType=this.isAType;if(this.isBType)Z.isBType=this.isBType;if(this.isContent)Z.isContent=this.isContent;if(this.warn)Z.warn=this.warn;return new Y({between:[this.a,this.b],cardinality:this.cardinality},Z)}incorporate(Z){let{relations:X,contents:G}=Z;for(let[_,$]of X)if($ instanceof u_){let{source:W}=$;for(let H of $.iterateOwn())W.add(H)}else this.relations.set(_,$);for(let _ of X.deleted)this.relations.delete(_);for(let[_,$]of G)this.contents.set(_,$);for(let _ of G.deleted)this.contents.delete(_)}};function L2(Y){return Y.startsWith("\uD83D\uDD0D ")}var iU=(Y)=>{Y.logger.info("\uD83E\uDE82","transaction",Y.transactionMeta.update.token.key,"Aborting transaction"),Y.parent.child=null};function M6(Y,Z,X){return(...G)=>{return P0(Y,Z).run(G,X)}}function nU(Y,Z,X){let{token:G,update:{newValue:_,oldValue:$}}=Z;k1(Y,G,X==="newValue"?_:$)}function rU(Y){let{stack:Z}=Y;if(Z)return`
|
|
48
48
|
`+Z.split(`
|
|
49
49
|
`)?.slice(1)?.join(`
|
|
50
|
-
`);return""}function P_(Y,Z){let X={key:Z,stringKey:Q0(Z),dependsOn:"any"};return Y.molecules.set(Q0(Z),X),Z}function A6(Y,Z,X,G="any"){let _=Z,$=Q0(X),W=[],H=Y0(Y);if(Array.isArray(_))for(let J of _){let z=Q0(J);if(H.molecules.get(z))Y.moleculeGraph.set(z,$,{source:z});else W.push(z)}else{let J=Q0(_);if(H.molecules.get(J))Y.moleculeGraph.set(J,$,{source:J});else W.push(J)}if(W.length===0)H.molecules.set($,{key:X,stringKey:$,dependsOn:G});let Q={type:"molecule_creation",key:X,provenance:_,timestamp:Date.now()};if(E1(H)&&H.transactionMeta.phase==="building")H.transactionMeta.update.subEvents.push(Q);else H.on.moleculeCreation.next(Q);for(let J of W){let z=Y.disposalTraces.buffer.find((
|
|
50
|
+
`);return""}function P_(Y,Z){let X={key:Z,stringKey:Q0(Z),dependsOn:"any"};return Y.molecules.set(Q0(Z),X),Z}function A6(Y,Z,X,G="any"){let _=Z,$=Q0(X),W=[],H=Y0(Y);if(Array.isArray(_))for(let J of _){let z=Q0(J);if(H.molecules.get(z))Y.moleculeGraph.set(z,$,{source:z});else W.push(z)}else{let J=Q0(_);if(H.molecules.get(J))Y.moleculeGraph.set(J,$,{source:J});else W.push(J)}if(W.length===0)H.molecules.set($,{key:X,stringKey:$,dependsOn:G});let Q={type:"molecule_creation",key:X,provenance:_,timestamp:Date.now()};if(E1(H)&&H.transactionMeta.phase==="building")H.transactionMeta.update.subEvents.push(Q);else H.on.moleculeCreation.next(Q);for(let J of W){let z=Y.disposalTraces.buffer.find((F)=>F?.key===J);Y.logger.error("\u274C","key",X,"allocation failed:",`Could not allocate to ${J} in store "${Y.config.name}".`,z?`
|
|
51
51
|
${J} was most recently disposed
|
|
52
52
|
${z.trace}`:`No previous disposal trace for ${J} was found.`)}return X}function S_(Y){return _8(Y,{key:"[Internal] deallocate",do:(Z,X)=>{K6(Y0(Y),X)}})}function K6(Y,Z){let X=Q0(Z),G=Y.molecules.get(X);if(!G){let O=Y.disposalTraces.buffer.find((L)=>L?.key===X);Y.logger.error("\u274C","key",Z,"deallocation failed:",`Could not find allocation for ${X} in store "${Y.config.name}".`,O?`
|
|
53
53
|
This state was most recently deallocated
|
|
54
|
-
${O.trace}`:`No previous disposal trace for ${X} was found.`);return}let _=Y.moleculeJoins.getRelatedKeys(X);if(_)for(let O of _){let L=Y.joins.get(O);if(L)L.relations.delete(Z)}Y.moleculeJoins.delete(X);let $=[],W=[],H=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:X});if(H)for(let[O,{source:L}]of H)if(L===X){let w=X1(O);K6(Y,w)}else $.push(L);let Q=Y.moleculeData.getRelatedKeys(G.stringKey);if(Q)for(let O of Q){let L=Y.families.get(O),w=h1(Y,L,Z);W.push([L.key,w]),$8(Y,L,Z)}let J={type:"molecule_disposal",key:G.key,values:W,provenance:$,timestamp:Date.now()};Y.molecules.delete(X);let z=E1(Y)&&Y.transactionMeta.phase==="building";if(z)Y.transactionMeta.update.subEvents.push(J);if(Y.moleculeGraph.delete(G.stringKey),Y.moleculeJoins.delete(G.stringKey),Y.moleculeData.delete(G.stringKey),!z)Y.on.moleculeDisposal.next(J);Y.molecules.delete(G.stringKey);let
|
|
54
|
+
${O.trace}`:`No previous disposal trace for ${X} was found.`);return}let _=Y.moleculeJoins.getRelatedKeys(X);if(_)for(let O of _){let L=Y.joins.get(O);if(L)L.relations.delete(Z)}Y.moleculeJoins.delete(X);let $=[],W=[],H=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:X});if(H)for(let[O,{source:L}]of H)if(L===X){let w=X1(O);K6(Y,w)}else $.push(L);let Q=Y.moleculeData.getRelatedKeys(G.stringKey);if(Q)for(let O of Q){let L=Y.families.get(O),w=h1(Y,L,Z);W.push([L.key,w]),$8(Y,L,Z)}let J={type:"molecule_disposal",key:G.key,values:W,provenance:$,timestamp:Date.now()};Y.molecules.delete(X);let z=E1(Y)&&Y.transactionMeta.phase==="building";if(z)Y.transactionMeta.update.subEvents.push(J);if(Y.moleculeGraph.delete(G.stringKey),Y.moleculeJoins.delete(G.stringKey),Y.moleculeData.delete(G.stringKey),!z)Y.on.moleculeDisposal.next(J);Y.molecules.delete(G.stringKey);let F=rU(Error());Y.disposalTraces.add({key:X,trace:F})}function v_(Y){return _8(Y,{key:"[Internal] claim",do:(Z,X,G,_)=>{G8(Y,X,G,_)}})}function G8(Y,Z,X,G){let _=Q0(X),$=Y0(Y),W=$.molecules.get(_);if(!W){let F=Y.disposalTraces.buffer.find((O)=>O?.key===_);return Y.logger.error("\u274C","key",_,"claim failed:",`Could not allocate to ${_} in store "${Y.config.name}".`,F?`
|
|
55
55
|
${_} was most recently disposed
|
|
56
|
-
${
|
|
56
|
+
${F.trace}`:`No previous disposal trace for ${_} was found.`),X}let H=Q0(Z),Q=$.molecules.get(H);if(!Q){let F=Y.disposalTraces.buffer.find((O)=>O?.key===H);return Y.logger.error("\u274C","key",X,"claim failed:",`Could not allocate to ${H} in store "${Y.config.name}".`,F?`
|
|
57
57
|
${H} was most recently disposed
|
|
58
|
-
${
|
|
59
|
-
${_.trace}`:"(no previous disposal trace found)"),X.type){case"mutable_atom_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=new X.class;return Y.defaults.set(X.key,$),$.READONLY_VIEW}case"atom_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=X.default,W=$(G);return Y.defaults.set(X.key,W),W}case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=X.default(G);return Y.defaults.set(X.key,$),$}}}function N6(Y,Z){let{type:X,key:G,catch:_}=Z;switch(X){case"readonly_pure_selector":case"writable_pure_selector":{let $;Y.logger.info("\uD83E\uDDEE",X,G,"computing value");try{if($=Z.getFrom(Y),$ instanceof Promise)return $.catch((W)=>{if(Y.logger.error("\uD83D\uDCA5",X,G,"rejected:",W),_){for(let H of _)if(W instanceof H)return W}throw W})}catch(W){if(Y.logger.error("\uD83D\uDCA5",X,G,"rejected:",W),_){for(let H of _)if(W instanceof H)return B1(Y,Z,W)}throw W}return B1(Y,Z,$)}case"atom":{let $;if(H8(Z.default))try{if($=Z.default(),$ instanceof Promise)$=$.catch((W)=>{if(Y.logger.error("\uD83D\uDCA5",X,G,"rejected:",W),_){for(let H of _)if(W instanceof H)return W}throw W})}catch(W){if(Y.logger.error("\uD83D\uDCA5",X,G,"rejected:",W),_){for(let H of _)if(W instanceof H)return $=B1(Y,Z,W),Y.logger.info("\u2728",Z.type,G,"computed default",$),$}throw W}else $=Z.default,Y.logger.info("\u2728",Z.type,G,"using static default",$);return B1(Y,Z,$)}}}function h4(Y,Z,X){if(Y.valueMap.has(Z.key))return wU(Y,Z,X);Y.logger.info("\u2754",Z.type,Z.key,"value not found in cache");let{key:G}=Z;switch(Z.type){case"readonly_held_selector":case"writable_held_selector":return Y.logger.info("\uD83E\uDDEE",Z.type,G,"computing value"),Z.getFrom(Y);case"writable_pure_selector":case"readonly_pure_selector":case"atom":return N6(Y,Z);case"mutable_atom":{let _=new Z.class;return Y.logger.info("\u2728",Z.type,G,"created new instance",_),B1(Y,Z,_)}}}function oZ(Y,Z){return P0(Y,{key:Z.family.key,type:`${Z.type}_family`})}var y_={atom_family:"atom",molecule_family:"molecule",mutable_atom_family:"mutable_atom",readonly_held_selector_family:"readonly_held_selector",readonly_pure_selector_family:"readonly_pure_selector",writable_held_selector_family:"writable_held_selector",writable_pure_selector_family:"writable_pure_selector"},J8=Symbol("MUST_CREATE"),QU=Symbol("DO_NOT_CREATE");function Q8(Y,Z,X,G){let _=Q0(G),$=Z.molecules.get(_);if(!$&&Z.config.lifespan==="immortal"){let{type:H,key:Q}=X;Z.logger.warn("\uD83D\uDCA3","key",_,"was used to mint a counterfeit token for",H,`"${Q}"`);let J=`${Q}(${_})`,z=y_[H];return{counterfeit:!0,key:J,type:z,family:{key:Q,subKey:_}}}let W;if(Y===J8){if(Z.logger.info("\uD83D\uDC6A",X.type,X.key,"adds member",typeof G==="string"?`\`${G}\``:G),W=X.create(G),$)Z.moleculeData.set(_,X.key)}else{let{type:H,key:Q}=X,J=`${Q}(${_})`,z=y_[H];return{key:J,type:z,family:{key:Q,subKey:_}}}return W}function iZ(Y,...Z){let X,G,_,$,W;if(Z.length===1){if(W=Z[0],"family"in W){let Q=oZ(Y,W);if(_=P0(Y,Q),$=X1(W.family.subKey),X=z8(Y,Q,$),"counterfeit"in W)return{token:W,family:_,subKey:$,isNew:!1};if(!X)G=Q8(J8,Y,Q,$),W=G;else W=X}}else if(_=P0(Y,Z[0]),$=Z[1],X=z8(Y,_,$),!X)G=Q8(J8,Y,_,$),W=G;else W=X;let H="counterfeit"in W;if(Boolean(G)&&H===!1&&_){let Q;switch(W.type){case"readonly_pure_selector":case"readonly_held_selector":Q="readable";break;case"atom":case"mutable_atom":case"writable_pure_selector":case"writable_held_selector":Q="writable";break}let J={type:"state_creation",subType:Q,token:W,timestamp:Date.now()};_.subject.next(J);let z=Y0(Y);if(W.family){if(D2(z))switch(W.type){case"atom":case"mutable_atom":Y.on.atomCreation.next(W);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":Y.on.selectorCreation.next(W);break}else if(E1(z)&&z.on.transactionApplying.state===null)z.transactionMeta.update.subEvents.push(J)}}return{token:W,family:_,subKey:$,isNew:Boolean(G)}}function h1(Y,...Z){let{token:X,family:G,subKey:_}=iZ(Y,...Z);if("counterfeit"in X&&G&&_)return o_(Y,X,G,_);let $=P0(Y,X);return h4(Y,$)}function z8(Y,Z,X){let G=Q0(X),_=`${Z.key}(${G})`,$=Y0(Y),W;switch(Z.type){case"atom_family":case"mutable_atom_family":W=$.atoms.get(_);break;case"writable_held_selector_family":case"writable_pure_selector_family":W=$.writableSelectors.get(_);break;case"readonly_held_selector_family":case"readonly_pure_selector_family":W=$.readonlySelectors.get(_);break}if(W)return y1(W);return W}function j0(Y,Z,X){let G=P0(Y,Z),_=z8(Y,Z,X);if(_)return _;return Q8(QU,Y,G,X)}function f4(Y,Z,X){let G=Z.key,_="readonly_pure_selector_family",$={key:G,type:"readonly_pure_selector_family"},W=Y.families.get(G);if(W)Y.logger.error("\u2757","readonly_pure_selector_family",G,`Overwriting an existing ${_4[W.type]} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new _0,J={...$,create:(z)=>{let U=Q0(z),O={key:G,subKey:U},L=`${G}(${U})`,w=Y0(Y),R={key:L,get:Z.get(z)};if(Z.catch)R.catch=Z.catch;return sZ(w,R,O)},internalRoles:X,subject:H,install:(z)=>f4(z,Z),default:(z)=>{return Z.get(z)({get:(...U)=>h1(Y,...U),find:(...U)=>j0(Y,...U),json:(U)=>k4(Y,U)})}};return Y.families.set(G,J),$}function O2(Y,Z,X){let G={key:Z.key,type:"atom_family"},_=Y.families.get(Z.key);if(_)Y.logger.error("\u2757","atom_family",Z.key,`Overwriting an existing ${_4[_.type]} "${_.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new _0,H={...G,create:(Q)=>{let J=Q0(Q),z={key:Z.key,subKey:J},U=`${Z.key}(${J})`,O=Y0(Y),L=Z.default,w={key:U,default:H8(L)?()=>L(Q):L};if(Z.effects)w.effects=Z.effects(Q);if(Z.catch)w.catch=Z.catch;return x4(O,w,z)},default:Z.default,subject:$,install:(Q)=>O2(Q,Z),internalRoles:X};if(Y.families.set(Z.key,H),H8(Z.default)===!1)Y.defaults.set(Z.key,Z.default);return G}function i_(Y,Z,X){let G=Z.key,_="readonly_held_selector_family",$={key:G,type:"readonly_held_selector_family"},W=Y.families.get(G);if(W)Y.logger.error("\u2757","readonly_held_selector_family",G,`Overwriting an existing ${_4[W.type]} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new _0,J={...$,create:(z)=>{let U=Q0(z),O={key:G,subKey:U},L=`${G}(${U})`,w=Y0(Y);return rZ(w,{key:L,const:Z.const(z),get:Z.get(z)},O)},internalRoles:X,subject:H,install:(z)=>i_(z,Z),default:Z.const};return Y.families.set(G,J),$}function n_(Y,Z,X){let G=Z.key,_="writable_held_selector_family",$={key:G,type:"writable_held_selector_family"},W=Y.families.get(G);if(W)Y.logger.error("\u2757","writable_held_selector_family",G,`Overwriting an existing ${_4[W.type]} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new _0,J={...$,create:(z)=>{let U=Q0(z),O={key:G,subKey:U},L=`${G}(${U})`,w=Y0(Y);return tZ(w,{key:L,const:Z.const(z),get:Z.get(z),set:Z.set(z)},O)},internalRoles:X,subject:H,install:(z)=>n_(z,Z),default:Z.const};return Y.families.set(G,J),$}function nZ(Y,Z,X){let G=Z.key,_="writable_pure_selector_family",$={key:G,type:"writable_pure_selector_family"},W=Y.families.get(G);if(W)Y.logger.error("\u2757","writable_pure_selector_family",G,`Overwriting an existing ${_4[W.type]} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new _0,J={...$,create:(z)=>{let U=Q0(z),O={key:G,subKey:U},L=`${G}(${U})`,w=Y0(Y),R={key:L,get:Z.get(z),set:Z.set(z)};if(Z.catch)R.catch=Z.catch;return aZ(w,R,O)},internalRoles:X,subject:H,install:(z)=>nZ(z,Z),default:(z)=>{return Z.get(z)({get:(...U)=>h1(Y,...U),find:(...U)=>j0(Y,...U),json:(U)=>k4(Y,U)})}};return Y.families.set(G,J),$}function bZ(Y,Z){let X="set"in Z,G="const"in Z;if(G&&X)return n_(Y,Z,void 0);if(G)return i_(Y,Z,void 0);if(X)return nZ(Y,Z);return f4(Y,Z)}function $8(Y,...Z){let X;if(Z.length===1)X=Z[0];else{let G=Z[0],_=Z[1];X=j0(Y,G,_)}try{P0(Y,X)}catch(G){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":X7(Y,X);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":LU(Y,X);break}}function r_(Y,Z){if(Y.operation.open){let X=performance.now();return Y.logger.info("\uD83D\uDEAB",Z.type,Z.key,`deferring setState at T-${X} until setState for "${Y.operation.token.key}" is done`),X}return Y.operation={open:!0,done:new Set,prev:new Map,timestamp:Date.now(),token:Z,subEvents:[]},Y.logger.info("\u2B55",Z.type,Z.key,`operation start in store "${Y.config.name}"${E1(Y)?` ${Y.transactionMeta.phase} "${Y.transactionMeta.update.token.key}"`:""}`),Y}function s_(Y){if(Y.operation.open)Y.logger.info("\uD83D\uDD34",Y.operation.token.type,Y.operation.token.key,`operation done in store "${Y.config.name}"`);Y.operation={open:!1},Y.on.operationClose.next(Y.operation)}var t_=(Y,Z)=>{if(!Y.operation.open)return Y.logger.error("\uD83D\uDC1E","unknown",Z,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return Y.operation.done.has(Z)},B6=(Y,Z)=>{if(!Y.operation.open){Y.logger.error("\uD83D\uDC1E","unknown",Z,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}Y.operation.done.add(Z)};function dZ(Y,Z,{oldValue:X,newValue:G},_,$){let W=y1(Z);if(_&&$){Z.subject.next({newValue:G});let U={checkpoint:!0,type:"state_creation",subType:"writable",token:W,timestamp:Date.now(),value:G};Y.operation.subEvents.push(U),$.subject.next(U);let O=Y0(Y);if(W.family){if(D2(O))switch(W.type){case"atom":case"mutable_atom":Y.on.atomCreation.next(W);break;case"writable_pure_selector":case"writable_held_selector":Y.on.selectorCreation.next(W);break}else if(E1(O)&&O.on.transactionApplying.state===null)O.transactionMeta.update.subEvents.push(U)}return}let{key:H,subject:Q,type:J}=Z,z={oldValue:pZ(X)?X.READONLY_VIEW:X,newValue:pZ(G)?G.READONLY_VIEW:G};if(D2(Y)){switch(J){case"mutable_atom":Y.logger.info("\uD83D\uDCE2",J,H,"is now (",G,") subscribers:",Q.subscribers.keys());break;case"atom":case"writable_pure_selector":case"writable_held_selector":Y.logger.info("\uD83D\uDCE2",J,H,"went (",X,"->",G,") subscribers:",Q.subscribers.keys())}Q.next(z)}if(E1(Y)&&(J==="mutable_atom"||J==="atom")){if(Y.on.transactionApplying.state===null){if(pZ(G))return;let{timestamp:U}=Y.operation,O={type:"atom_update",token:W,timestamp:U,update:z};Y.transactionMeta.update.subEvents.push(O),Y.logger.info("\uD83D\uDCC1","atom",H,"stowed (",X,"->",G,")");return}if(X5(Z,"tracker:signal")){let U=H.slice(1),O=Y.atoms.get(U);if(h4(Y,O,"mut").do(z.newValue)===null===!0)Z5(Y,O)}}}var cZ=(Y,Z,X)=>{let G=h4(Y,Z,"mut"),_=mZ(X,G);return Y.logger.info("\u2B50","atom",Z.key,"setting value",_),_=B1(Y,Z,_),B6(Y,Z.key),Z5(Y,Z),{oldValue:G,newValue:_}};function gZ(Y,Z){switch(Z.type){case"mutable_atom":return cZ(Y,Z,new Z.class);case"atom":{let X;if(H8(Z.default))X=N6(Y,Z);else X=Z.default;return cZ(Y,Z,X)}}}function zU(Y,Z){let X;switch(Z.type){case"atom":case"mutable_atom":X=gZ(Y,Z);break;case"writable_held_selector":{let G=F8(Y,Z.key);for(let $ of G.values()){let W=gZ(Y,$);dZ(Y,Z,W,!1)}let _=Z.getFrom(Y);X={oldValue:_,newValue:_}}break;case"writable_pure_selector":{let G=N6(Y,Z),_=F8(Y,Z.key);for(let W of _.values()){let H=gZ(Y,W);dZ(Y,Z,H,!1)}let $=N6(Y,Z);X={oldValue:G,newValue:$}}break}return X}function k1(Y,...Z){E8(I6,Y,...Z)}var lZ=Symbol("RESET");function R6(Y,...Z){let X=[...Z,lZ];k1(Y,...X)}function FU(Y,Z,X){let G,_,$,{type:W,key:H}=Z;switch(Z.type){case"writable_pure_selector":G=h4(Y,Z,"mut"),_=mZ(X,G),_=B1(Y,Z,_);break;case"writable_held_selector":$=Z.const,mZ(X,$),G=$,_=$}return Y.logger.info("\u2B50",W,H,"setting to",_),B6(Y,H),Z.setSelf(_),{oldValue:G,newValue:_}}var UU=(Y,Z,X)=>{let G;switch(Z.type){case"atom":case"mutable_atom":G=cZ(Y,Z,X);break;case"writable_pure_selector":case"writable_held_selector":G=FU(Y,Z,X);break}return G},I6=Symbol("OWN_OP"),a_=Symbol("JOIN_OP");function E8(Y,Z,...X){let G,_,$,W,H,Q;if(X.length===2){if($=X[0],Q=X[1],"family"in $)if(W=oZ(Z,$),H=X1($.family.subKey),G=z8(Z,W,H),!G)$=_=Q8(J8,Z,W,H);else $=G}else if(W=P0(Z,X[0]),H=X[1],Q=X[2],G=z8(Z,W,H),!G)$=_=Q8(J8,Z,W,H);else $=G;let J=Q===lZ?"reset":"set",z;if(Y===I6){let L=r_(Z,$);if(typeof L==="number"){let w=L,R=Z.on.operationClose.subscribe(`waiting to ${J} "${$.key}" at T-${w}`,function(){R(),Z.logger.info("\uD83D\uDFE2",$.type,$.key,"resuming deferred",J,`from T-${w}`),E8(Y,Z,$,Q)});return}z=L}else z=Z;if("counterfeit"in $&&"family"in $){let L=$.family.subKey,w=Z.disposalTraces.buffer.find((R)=>R?.key===L);Z.logger.error("\u274C",$.type,$.key,"could not be",J,"because key",L,"is not allocated.",w?`this key was previously disposed:${w.trace}`:"(no previous disposal trace found)");return}let U=P0(z,$),O;if(Q===lZ)O=zU(z,U);else O=UU(z,U,Q);if(dZ(z,U,O,Boolean(_),W),Y===I6)s_(z)}var e_=(Y,Z)=>Y0(Y).atoms.has(Z),EU=(Y,Z)=>Y0(Y).writableSelectors.has(Z),VU=(Y,Z)=>Y0(Y).readonlySelectors.has(Z),OU=(Y,Z)=>e_(Y,Z)||EU(Y,Z)||VU(Y,Z);function g_(Y,Z){return Y0(Y).selectorGraph.getRelationEntries({downstreamSelectorKey:Z}).filter(([X,{source:G}])=>G!==Z).map(([X,{source:G}])=>G).filter((X)=>OU(Y,X))}function F8(Y,Z,X=new Set){let G=g_(Y,Z),_=new Map;while(G.length>0){let $=G.pop();if(X.has($))continue;if(X.add($),e_(Y,$)){let W=Y.atoms.get($);_.set(W.key,W)}else G.push(...g_(Y,$))}return _}function DU(Y,Z,X,G,_){let $=Y0(Y),{type:W,key:H}=G;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=F8(Y,H,_);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})}_.add(H)}function T6(Y,Z,X,G){return{get:(..._)=>{let $=Y0(Y),{token:W,family:H,subKey:Q}=iZ(Y,..._),J;if("counterfeit"in W&&H&&Q)J=o_(Y,W,H,Q);else{let z=P0(Y,W);J=h4(Y,z)}return Y.logger.info("\uD83D\uDD0C",Z,X,`registers dependency ( "${W.key}" =`,J,")"),$.selectorGraph.set({upstreamSelectorKey:W.key,downstreamSelectorKey:X},{source:W.key}),DU(Y,Z,X,W,G),J},set:(..._)=>{let $=Y0(Y);E8(a_,$,..._)},find:(..._)=>j0(Y,..._),json:(_)=>k4(Y,_)}}function rZ(Y,Z,X){let G=Y0(Y),_=new _0,$=new Set,{key:W,const:H}=Z,Q="readonly_held_selector";Y.logger.info("\uD83D\uDD28","readonly_held_selector",W,"is being created");let{get:J,find:z,json:U}=T6(G,"readonly_held_selector",W,$),L={...Z,type:"readonly_held_selector",subject:_,getFrom:(R)=>{let b=R.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[x,{source:h}]of b)if(h!==W)R.selectorGraph.delete(x,W);return R.selectorAtoms.delete(W),Z.get({get:J,find:z,json:U},H),B1(R,L,H),Y.logger.info("\u2728","readonly_held_selector",W,"=",H),$.clear(),H},install:(R)=>rZ(R,Z,X)};if(X)L.family=X;G.readonlySelectors.set(W,L);let w={key:W,type:"readonly_held_selector"};if(X)w.family=X;return w}function sZ(Y,Z,X){let G=Y0(Y),_=new _0,$=new Set,W=Z.key,H="readonly_pure_selector";Y.logger.info("\uD83D\uDD28","readonly_pure_selector",W,"is being created");let{get:Q,find:J,json:z}=T6(G,"readonly_pure_selector",W,$),O={...Z,type:"readonly_pure_selector",subject:_,getFrom:()=>{let w=Y0(Y),R=w.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[h,{source:g}]of R)if(g!==W)w.selectorGraph.delete(h,W);w.selectorAtoms.delete(W);let b=Z.get({get:Q,find:J,json:z}),x=B1(w,O,b);return Y.logger.info("\u2728","readonly_pure_selector",W,"=",x),$.clear(),x},install:(w)=>sZ(w,Z,X)};if(X)O.family=X;G.readonlySelectors.set(W,O);let L={key:W,type:"readonly_pure_selector"};if(X)L.family=X;return L}function tZ(Y,Z,X){let G=Y0(Y),_=new _0,$=new Set,{key:W,const:H}=Z,Q="writable_held_selector";Y.logger.info("\uD83D\uDD28","writable_held_selector",W,"is being created");let J=T6(G,"writable_held_selector",W,$),{find:z,get:U,json:O}=J,L={find:z,get:U,json:O},b={...Z,type:"writable_held_selector",subject:_,getFrom:(h)=>{let g=h.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[B,{source:K}]of g)if(K!==W)h.selectorGraph.delete(B,W);return h.selectorAtoms.delete(W),Z.get(L,H),B1(h,b,H),Y.logger.info("\u2728","writable_held_selector",W,"=",H),$.clear(),H},setSelf:()=>{Z.set(J,H)},install:(h)=>tZ(h,Z,X)};if(X)b.family=X;G.writableSelectors.set(W,b);let x={key:W,type:"writable_held_selector"};if(X)x.family=X;return x}function aZ(Y,Z,X){let G=Y0(Y),_=new _0,$=new Set,W=Z.key,H="writable_pure_selector";Y.logger.info("\uD83D\uDD28","writable_pure_selector",W,"is being created");let Q=T6(G,"writable_pure_selector",W,$),{find:J,get:z,json:U}=Q,O={find:J,get:z,json:U},R={...Z,type:"writable_pure_selector",subject:_,getFrom:(x)=>{let h=x.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[K,{source:C}]of h)if(C!==W)x.selectorGraph.delete(K,W);x.selectorAtoms.delete(W);let g=Z.get(O),B=B1(x,R,g);return Y.logger.info("\u2728","writable_pure_selector",W,"=",B),$.clear(),B},setSelf:(x)=>{Z.set(Q,x)},install:(x)=>aZ(x,Z,X)};if(X)R.family=X;G.writableSelectors.set(W,R);let b={key:W,type:"writable_pure_selector"};if(X)b.family=X;return b}function f_(Y,Z){let X="set"in Z,G="const"in Z;if(G&&X){let $=tZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(G){let $=rZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(X){let $=aZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}let _=sZ(Y,Z,void 0);return Y.on.selectorCreation.next(_),_}function LU(Y,Z){let X=Y0(Y),{key:G,type:_,family:$}=Z;if(!$)Y.logger.error("\u274C",_,G,"Standalone selectors cannot be disposed.");else{if(X.molecules.get($.subKey))X.moleculeData.delete($.subKey,$.key);let W;switch(Z.type){case"writable_held_selector":X.writableSelectors.delete(G),W={key:$.key,type:"writable_held_selector_family"},P0(Y,W).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"writable_pure_selector":X.writableSelectors.delete(G),W={key:$.key,type:"writable_pure_selector_family"},P0(Y,W).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"readonly_held_selector":X.readonlySelectors.delete(G),W={key:$.key,type:"readonly_held_selector_family"},P0(Y,W).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"readonly_pure_selector":X.readonlySelectors.delete(G),W={key:$.key,type:"readonly_pure_selector_family"},P0(Y,W).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break}if(X.valueMap.delete(G),X.selectorAtoms.delete(G),X.selectorGraph.delete(G),X.moleculeData.delete($.key,$.subKey),Y.logger.info("\uD83D\uDD25",Z.type,G,"deleted"),E1(X)&&X.transactionMeta.phase==="building")X.transactionMeta.update.subEvents.push({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});else Y.on.selectorDisposal.next(Z)}}var MU=(Y,Z)=>{let X=Y0(Y);if(X.operation.open)return X.operation.prev.get(Z.key);return X.valueMap.get(Z.key)},p_=(Y,Z,X)=>{return X.subject.subscribe(`${Z.type}:${Z.key}`,(G)=>{Y.logger.info("\uD83D\uDCE2",Z.type,Z.key,"root",X.key,"went",G.oldValue,"->",G.newValue);let _=MU(Y,Z),$=h4(Y,Z);Y.logger.info("\u2728",Z.type,Z.key,"went",_,"->",$),Z.subject.next({newValue:$,oldValue:_})})};function U8(Y,Z,X,G){function _(U){if(Y.operation.open){if($?.type==="atom"&&X5($,"tracker:signal")&&"*"+Y.operation.token.key===Z.key&&"inboundTracker"in G)return;let O=Y.on.operationClose.subscribe(`state subscription ${X}`,()=>{O(),G(U)})}else G(U)}iZ(Y,Z);let $=P0(Y,Z);Y.logger.info("\uD83D\uDC40",$.type,$.key,`Adding subscription "${X}"`);let W=$.type==="writable_pure_selector"||$.type==="readonly_pure_selector",H=new Map,Q=_;if(W){h4(Y,$);for(let[U,O]of F8(Y,$.key))H.set(U,p_(Y,$,O));Q=function(O){let L=F8(Y,$.key);for(let[w,R]of H)if(L.get(w))L.delete(w);else R(),H.delete(w);for(let[w,R]of L)H.set(w,p_(Y,$,R));_(O)}}let J=$.subject.subscribe(X,Q);return()=>{Y.logger.info("\uD83D\uDE48",$.type,$.key,`Removing subscription "${X}"`),J();for(let U of H.values())U()}}var AU=(Y,Z,X,G)=>{let _=P0(Y,Z);Y.logger.info("\uD83D\uDC40","timeline",Z.key,`Adding subscription "${X}"`);let $=_.subject.subscribe(X,G);return()=>{Y.logger.info("\uD83D\uDE48","timeline",Z.key,`Removing subscription "${X}" from timeline`),$()}};var eZ=class{initializeSignalAtom(Y,Z){let X=`*${Y.key}`;Z.atoms.delete(X),Z.valueMap.delete(X);let G=Y.family?{key:`*${Y.family.key}`,subKey:Y.family.subKey}:void 0,_=x4(Z,{key:X,default:null},G,["tracker:signal"]);if(Z.parent?.valueMap.has(X)){let $=Z.parent.valueMap.get(X);Z.valueMap.set(X,$)}return _}unsubscribeFromInnerValue;unsubscribeFromState;captureSignalsFromCore(Y,Z,X){let G=Y.key,_=X.config.name,$=E1(X)?X.transactionMeta.update.token.key:"main",W=`tracker-from-core:${_}:${$}:${G}`,H=(Q)=>{E8(a_,X,Z,Q)};this.unsubscribeFromInnerValue=h1(X,Y).subscribe(W,H),this.unsubscribeFromState=U8(X,Y,W,function(J){if(J.newValue!==J.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=J.newValue.subscribe(W,H)}.bind(this))}supplySignalsToCore(Y,Z,X){let G=Y.key,_=X.config.name,$=E1(X)?X.transactionMeta.update.token.key:"main",W=`tracker-to-core:${_}:${$}:${G}`;U8(X,Z,W,Object.assign(function({newValue:Q,oldValue:J}){let z=X.timelineTopics.getRelatedKey(Z.key);if(z&&X.timelines.get(z)?.timeTraveling){let U=AU(X,{key:z,type:"timeline"},W,function(L){U(),k1(X,Y,(w)=>{if(L==="redo"&&Q)w.do(Q);else if(L==="undo"&&J)w.undo(J);return w})});return}k1(X,Y,(U)=>(U.do(Q),U))},{inboundTracker:!0}))}mutableAtomToken;latestSignalToken;[Symbol.dispose];constructor(Y,Z){let X=Y0(Z),G=this.initializeSignalAtom(Y,X);this.mutableAtomToken=Y,this.latestSignalToken=G,this.captureSignalsFromCore(Y,G,X),this.supplySignalsToCore(Y,G,X),X.trackers.set(Y.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),X.trackers.delete(Y.key)}}};function w6(Y,Z,X){Y.logger.info("\uD83D\uDD28","atom",Z.key,`creating in store "${Y.config.name}"`);let G=Y0(Y),{key:_}=Z,$=G.atoms.get(_),W="mutable_atom";if($&&$.type===W)return Y.logger.error("\u274C",W,_,"Tried to create atom, but it already exists in the store."),y1($);let H=new _0,Q={...Z,type:W,install:(z)=>{return z.logger.info("\uD83D\uDEE0\uFE0F","atom",_,`installing in store "${z.config.name}"`),w6(z,Z,X)},subject:H};if(X)Q.family=X;G.atoms.set(Q.key,Q);let J=y1(Q);if(Z.effects){let z=0,U=[];for(let O of Z.effects){let L=O({resetSelf:()=>{R6(Y,J)},setSelf:(w)=>{k1(Y,J,w)},onSet:(w)=>U8(Y,J,`effect[${z}]`,w)});if(L)U.push(L);++z}Q.cleanup=()=>{for(let O of U)O()}}if(new eZ(J,Y),!X)f_(Y,{key:`${_}:JSON`,get:({get:z})=>z(J).toJSON(),set:({set:z},U)=>{z(J,Z.class.fromJSON(U))}});return Y.on.atomCreation.next(J),J}var RU=class{trackers=new Map;latestSignalAtoms;mutableAtoms;constructor(Y,Z){let X=O2(Z,{key:`*${Y.key}`,default:null},["mutable","updates"]);this.latestSignalAtoms=P0(Z,X),this.mutableAtoms=Y;let G=(_)=>{let{type:$,token:W}=_;if(W.family){let H=X1(W.family.subKey);switch($){case"state_creation":this.trackers.set(H,new eZ(W,Z));break;case"state_disposal":{let Q=this.trackers.get(H);if(Q)Q[Symbol.dispose](),this.trackers.delete(H)}}}};this.mutableAtoms.subject.subscribe(`store=${Z.config.name}::tracker-atom-family`,G)}};function yZ(Y,Z,X){let G={key:Z.key,type:"mutable_atom_family"},_=Y.families.get(Z.key);if(_)Y.logger.error("\u2757","mutable_atom_family",Z.key,`Overwriting an existing ${_4[_.type]} "${_.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new _0,H={...G,create:(Q)=>{let J=Q0(Q),z={key:Z.key,subKey:J},U=`${Z.key}(${J})`,O=Y0(Y),L={key:U,class:Z.class};if(Z.effects)L.effects=Z.effects(Q);return w6(O,L,z)},class:Z.class,subject:$,install:(Q)=>yZ(Q,Z),internalRoles:X};return Y.families.set(Z.key,H),nZ(Y,{key:`${Z.key}:JSON`,get:(Q)=>({get:J})=>J(G,Q).toJSON(),set:(Q)=>({set:J},z)=>{J(G,Q,Z.class.fromJSON(z))}},["mutable","json"]),new RU(H,Y),G}var m_=(Y,Z)=>{let X=Y0(Z),G=`${Y.key}:JSON`;return X.families.get(G)},k4=(Y,Z)=>{if(Z.family){let X=Y0(Y),G={key:`${Z.family.key}:JSON`,type:"writable_pure_selector_family"},_=P0(X,G),$=X1(Z.family.subKey);return j0(Y,_,$)}return{type:"writable_pure_selector",key:`${Z.key}:JSON`}};var Y5=(Y)=>{let Z={type:"atom",key:`*${Y.key}`};if(Y.family)Z.family={key:`*${Y.family.key}`,subKey:Y.family.subKey};return Z};function pZ(Y){return typeof Y==="object"&&Y!==null&&"do"in Y&&"undo"in Y&&"subscribe"in Y&&"READONLY_VIEW"in Y&&"toJSON"in Y}function B1(Y,Z,X){let{key:G,subject:_,type:$}=Z,W=Y.valueMap.get(G);if(W instanceof uZ&&!W.done){let H=W;if(X instanceof Promise)return H.use(X),H;return Y.valueMap.set(G,X),X}if(X instanceof Promise){let H=new uZ(X);return Y.valueMap.set(G,H),H.then(function(J){if(Y.valueMap.get(G)===H){switch(r_(Y,Z),B1(Y,Z,J),$){case"atom":Z5(Y,Z);break;case"readonly_pure_selector":case"writable_pure_selector":Z7(Y,G);break}s_(Y),_.next({newValue:J,oldValue:H})}}).catch((Q)=>{Y.logger.error("\uD83D\uDCA5",Z.type,G,"rejected:",Q)}),H}return Y.logger.info("\uD83D\uDCDD",Z.type,Z.key,"writing to cache",X),Y.valueMap.set(G,X),X}function wU(Y,Z,X){Y.logger.info("\uD83D\uDCD6",Z.type,Z.key,"reading cached value");let G=Y.valueMap.get(Z.key);if(X==="mut"&&Z.type==="mutable_atom"&&E1(Y)){let _=Z,{parent:$}=Y;if(Y.valueMap.hasOwn(_.key))return G;let W=$.valueMap.get(_.key);Y.logger.info("\uD83D\uDCC3","atom",_.key,"copying");let H=W.toJSON(),Q=_.class.fromJSON(H);Y.valueMap.set(_.key,Q),new eZ(_,$),G=Q}return G}function Y7(Y,Z){let X=Y.valueMap.get(Z);if(X instanceof uZ){let G=Y.writableSelectors.get(Z)??Y.readonlySelectors.get(Z);if(G)G.getFrom(Y);return}if(Y.operation.open)Y.operation.prev.set(Z,X);Y.valueMap.delete(Z),Y.logger.info("\uD83D\uDDD1","state",Z,"evicted")}function Z5(Y,Z){let X=Y0(Y),{key:G,type:_}=Z,$=X.selectorAtoms.getRelatedKeys(G);if(X.logger.info("\uD83E\uDDF9",_,G,$?`evicting ${$.size} states downstream:`:"no downstream states",$??"to evict"),$){if(X.operation.open)X.logger.info("\uD83E\uDDF9",_,G,`[ ${[...X.operation.done].join(", ")} ] already done`);for(let W of $){if(t_(X,W))continue;Y7(X,W),B6(X,W)}}}function Z7(Y,Z){let X=Y0(Y),G=X.selectorGraph.getRelationEntries({upstreamSelectorKey:Z}).filter(([_,{source:$}])=>$===Z);for(let[_]of G){if(t_(X,_))continue;Y7(X,_),B6(X,_),Z7(Y,_)}}function x4(Y,Z,X,G){let{key:$}=Z;Y.logger.info("\uD83D\uDD28","atom",$,"is being created");let W=Y0(Y),H=W.atoms.get($);if(H&&H.type==="atom")return Y.logger.error("\u274C","atom",$,"Tried to create atom, but it already exists in the store."),y1(H);let Q=new _0,J={...Z,type:"atom",install:(U)=>{return U.logger.info("\uD83D\uDEE0\uFE0F","atom",$,`installing in store "${U.config.name}"`),x4(U,Z,X)},subject:Q};if(X)J.family=X;if(G)J.internalRoles=G;W.atoms.set($,J);let z=y1(J);if(Z.effects){let U=0,O=[];for(let L of Z.effects){let w=L({resetSelf:()=>{R6(Y,z)},setSelf:(R)=>{k1(Y,z,R)},onSet:(R)=>U8(Y,z,`effect[${U}]`,R)});if(w)O.push(w);++U}J.cleanup=()=>{for(let L of O)L()}}return Y.on.atomCreation.next(z),z}function X5(Y,Z){if("internalRoles"in Y===!1)return!1;return Y.internalRoles.includes(Z)}function X7(Y,Z){let X=Y0(Y),{key:G,family:_}=Z,$=P0(X,Z);if(!_)Y.logger.error("\u274C","atom",G,"Standalone atoms cannot be disposed.");else{$.cleanup?.();let W=Y.valueMap.get($.key),H=oZ(Y,Z),Q=P0(Y,H).subject,J={type:"state_disposal",subType:"atom",token:Z,value:W,timestamp:Date.now()};Q.next(J);let z=E1(X);if(X.atoms.delete(G),X.valueMap.delete(G),X.selectorAtoms.delete(G),X.atomsThatAreDefault.delete(G),X.moleculeData.delete(_.key,_.subKey),Y.timelineTopics.delete(G),Z.type==="mutable_atom"){let U=Y5(Z);X7(Y,U),Y.trackers.delete(G)}if(Y.logger.info("\uD83D\uDD25","atom",G,"deleted"),z&&X.transactionMeta.phase==="building"){let U=X.transactionMeta.update.subEvents.at(-1),O=U?.type==="molecule_disposal"&&U.values.some(([w])=>w===$.family?.key),L=X5($,"tracker:signal");if(!O&&!L)X.transactionMeta.update.subEvents.push(J)}else Y.on.atomDisposal.next(Z)}}function K0(Y){return Y[0].toUpperCase()+Y.slice(1)}var G7=class{toolkit;options;defaultContent;relations;states;core;transact(Y,Z){let X=this.toolkit;this.toolkit=Y,Z(this),this.toolkit=X}store;realm;[Symbol.dispose](){}constructor(Y,Z,X=U1.STORE){this.store=X,this.realm=new j_(X),this.options=Y,this.defaultContent=Z,this.store.miscResources.set(`join:${Y.key}`,this),this.realm.allocate("root",Y.key),this.toolkit={get:(...B)=>h1(X,...B),set:(...B)=>{k1(X,...B)},find:(...B)=>j0(X,...B),json:(B)=>k4(X,B)};let G=Y.between[0],_=Y.between[1],$=yZ(X,{key:`${Y.key}/relatedKeys`,class:b_},["join","relations"]);this.core={relatedKeysAtoms:$};let W=({get:B},K)=>B($,K),H=({set:B},K,C)=>{if(!this.store.molecules.has(Q0(K)))this.realm.allocate(Y.key,K);B($,K,(q)=>q.add(C)),B($,C,(q)=>q.add(K))},Q=({set:B},K,C)=>{B($,K,(N)=>{return N.delete(C),N}),B($,C,(N)=>{return N.delete(K),N});let[q,c]=[K,C].sort(),n=`${q}:${c}`;this.store.moleculeJoins.delete(n)},J=(B,K,C)=>{let{find:q,get:c,set:n}=B,N=q($,K),s=c(N);for(let p of s){if(C.includes(p))continue;n($,p,(t)=>{return t.delete(K),t})}n(N,(p)=>{return p.transaction((t)=>{t.clear();for(let I0 of C){let h0=W(B,I0),$1=h0.has(K);if(this.relations.cardinality==="1:n"){let r1=[];for(let T of h0){if(T===K)continue;let m=W(B,T);if(m.delete(I0),m.size===0)r1.push(T)}if(!$1&&h0.size>0)h0.clear();for(let T of r1){let[m,$0]=[I0,T].sort(),V0=`${m}:${$0}`;X.moleculeJoins.delete(V0)}}if(!$1)h0.add(K);t.add(I0)}return!0}),p})},z=(B,K,C)=>{let{set:q}=B;q($,K,(c)=>{return c.transaction((n)=>{for(let N of C)n.add(N);return!0}),c});for(let c of C)q($,c,(n)=>{return n.add(K),n});return!0},U=(B,K,C)=>{let q=W(B,K);return C?q.has(C):q.size>0},O={getRelatedKeys:(B)=>W(this.toolkit,B),addRelation:(B,K)=>{this.store.moleculeJoins.set(`"${B}"`,Y.key),this.store.moleculeJoins.set(`"${K}"`,Y.key),H(this.toolkit,B,K)},deleteRelation:(B,K)=>{Q(this.toolkit,B,K)},replaceRelationsSafely:(B,K)=>{J(this.toolkit,B,K)},replaceRelationsUnsafely:(B,K)=>{z(this.toolkit,B,K)},has:(B,K)=>U(this.toolkit,B,K)},L,w;if(Z){w=O2(X,{key:`${Y.key}/content`,default:Z},["join","content"]);let B=({get:C},q)=>C(w,q),K=({set:C},q,c)=>{C(w,q,c)};L=Object.assign(O,{getContent:(C)=>{return B(this.toolkit,C)},setContent:(C,q)=>{K(this.toolkit,C,q)},deleteContent:(C)=>{}})}else L=O;let R=new $4(Y,{externalStore:L,isAType:Y.isAType,isBType:Y.isBType,makeContentKey:(...B)=>{let[K,C]=B,[q,c]=B.sort(),n=`${q}:${c}`,N=X.molecules.get(Q0(K)),s=X.molecules.get(Q0(C));if(!N)this.realm.allocate(Y.key,K);if(!s)this.realm.allocate(Y.key,C);return this.realm.allocate(K,n,"all"),this.realm.claim(C,n),this.store.moleculeJoins.set(n,Y.key),n}}),b=()=>f4(X,{key:`${Y.key}/singleRelatedKey`,get:(B)=>({get:K})=>{let C=K($,B);for(let q of C)return q;return null}},["join","keys"]),x=()=>{return f4(X,{key:`${Y.key}/multipleRelatedKeys`,get:(B)=>({get:K})=>{let C=m_($,X);return K(C,B).members}},["join","keys"])},h=()=>f4(X,{key:`${Y.key}/singleRelatedEntry`,get:(B)=>({get:K})=>{let C=K($,B);for(let q of C){let c=R.isAType?.(B)?B:void 0,n=c===void 0?B:void 0;c??=q,n??=q;let N=R.makeContentKey(c,n),s=K(w,N);return[q,s]}return null}},["join","entries"]),g=()=>f4(X,{key:`${Y.key}/multipleRelatedEntries`,get:(B)=>({get:K})=>{let C=m_($,X);return K(C,B).members.map((q)=>{let c=R.isAType?.(B)?B:void 0,n=c===void 0?B:void 0;c??=q,n??=q;let N=R.makeContentKey(c,n),s=K(w,N);return[q,s]})}},["join","entries"]);switch(Y.cardinality){case"1:1":{let B=b(),K=`${G}KeyOf${K0(_)}`,C=`${_}KeyOf${K0(G)}`,q={[K]:B,[C]:B},c;if(Z){let n=h(),N=`${G}EntryOf${K0(_)}`,s=`${_}EntryOf${K0(G)}`,p={[N]:n,[s]:n};c=Object.assign(q,p)}else c=q;this.relations=R,this.states=c;break}case"1:n":{let B=b(),K=x(),C=`${G}KeyOf${K0(_)}`,q=`${_}KeysOf${K0(G)}`,c={[C]:B,[q]:K},n;if(Z){let N=h(),s=g(),p=`${G}EntryOf${K0(_)}`,t=`${_}EntriesOf${K0(G)}`,I0={[p]:N,[t]:s};n=Object.assign(c,I0)}else n=c;this.relations=R,this.states=n;break}case"n:n":{let B=x(),K=`${G}KeysOf${K0(_)}`,C=`${_}KeysOf${K0(G)}`,q={[K]:B,[C]:B},c;if(Z){let n=g(),N=`${G}EntriesOf${K0(_)}`,s=`${_}EntriesOf${K0(G)}`,p={[N]:n,[s]:n};c=Object.assign(q,p)}else c=q;this.relations=R,this.states=c}}}};function h_(Y,Z,X){return Y.joins.set(Z.key,new G7(Z,X,Y)),{key:Z.key,type:"join",a:Z.between[0],b:Z.between[1],cardinality:Z.cardinality}}function G5(Y,Z){let X=Z.joins.get(Y.key);if(X===void 0){let G=U1.STORE.joins.get(Y.key);if(G===void 0)throw Error(`Join "${Y.key}" not found in store "${Z.config.name}"`);let _=dF(Z);X=new G7(G.options,G.defaultContent,_),Z.joins.set(Y.key,X)}return X}function W8(Y,Z,X){let G=G5(Y,X),_=Y0(X);if(E1(_)){let{toolkit:$}=_.transactionMeta;G.transact($,({relations:W})=>{Z(W)})}else Z(G.relations)}function uF(Y,Z,X){let G=G5(Y,X),_;switch(Y.cardinality){case"1:1":{let $=`${Y.a}KeyOf${K0(Y.b)}`,W=`${Y.b}KeyOf${K0(Y.a)}`;_={get[$](){let Q=G.states[$];return j0(X,Q,Z)},get[W](){let Q=G.states[W];return j0(X,Q,Z)}};let H=`${Y.a}EntryOf${K0(Y.b)}`;if(H in G.states){let Q=`${Y.b}EntryOf${K0(Y.a)}`;Object.assign(_,{get[H](){let J=G.states[H];return j0(X,J,Z)},get[Q](){let J=G.states[Q];return j0(X,J,Z)}})}break}case"1:n":{let $=`${Y.a}KeyOf${K0(Y.b)}`,W=`${Y.b}KeysOf${K0(Y.a)}`;_={get[$](){let Q=G.states[$];return j0(X,Q,Z)},get[W](){let Q=G.states[W];return j0(X,Q,Z)}};let H=`${Y.a}EntryOf${K0(Y.b)}`;if(H in G.states){let Q=`${Y.b}EntriesOf${K0(Y.a)}`;Object.assign(_,{get[H](){let J=G.states[H];return j0(X,J,Z)},get[Q](){let J=G.states[Q];return j0(X,J,Z)}})}break}case"n:n":{let $=`${Y.a}KeysOf${K0(Y.b)}`,W=`${Y.b}KeysOf${K0(Y.a)}`;_={get[$](){let Q=G.states[$];return j0(X,Q,Z)},get[W](){let Q=G.states[W];return j0(X,Q,Z)}};let H=`${Y.a}EntriesOf${K0(Y.b)}`;if(H in G.states){let Q=`${Y.b}EntriesOf${K0(Y.a)}`;Object.assign(_,{get[H](){let J=G.states[H];return j0(X,J,Z)},get[Q](){let J=G.states[Q];return j0(X,J,Z)}})}}}return _}function k_(Y,Z){return G5(Y,Z).core.relatedKeysAtoms}function _7(Y){let Z={},X=0;for(let G of Y)Z[G]=X,Z[X]=G,++X;return Z}var $7="\x01",W7="\x02",H7="\x03",J7="\x04",_5=(Y)=>{switch(typeof Y){case"string":return H7+Y;case"number":return J7+Y;case"boolean":return $7+ +Y;case"object":return W7}},$5=(Y)=>{switch(Y[0]){case H7:return Y.slice(1);case J7:return+Y.slice(1);case $7:return Y.slice(1)==="1";case W7:return null}};var NU=(Y)=>{return x4(Y,{key:"\uD83D\uDD0D Atom Token Index",default:()=>{let Z=new Map;for(let[X,G]of Y.atoms){if(L2(X))continue;let _=y1(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,_)}else Z.set(X,_)}return Z},effects:[({setSelf:Z})=>{Y.on.atomCreation.subscribe("introspection",(X)=>{if(L2(X.key))return;Z((G)=>{if(X.family){let{key:_,subKey:$}=X.family,W=G.get(_);if(W===void 0||!("familyMembers"in W))W={key:_,familyMembers:new Map},G.set(_,W);W.familyMembers.set($,X)}else G.set(X.key,X);return new Map(G)})}),Y.on.atomDisposal.subscribe("introspection",(X)=>{Z((G)=>{if(X.family){let{key:_,subKey:$}=X.family,W=G.get(_);if(W&&"familyMembers"in W){if(W.familyMembers.delete($),W.familyMembers.size===0)G.delete(_)}}return new Map(G)})})}]},void 0)},IU=(Y)=>{return x4(Y,{key:"\uD83D\uDD0D Selector Token Index",default:()=>{let Z=new Map;for(let X of[Y.readonlySelectors,Y.writableSelectors])for(let[G,_]of X){if(L2(G))continue;let $=y1(_);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,$)}else Z.set(G,$)}return Z},effects:[({setSelf:Z})=>{Y.on.selectorCreation.subscribe("introspection",(X)=>{if(L2(X.key))return;Z((G)=>{if(X.family){let{key:_,subKey:$}=X.family,W=G.get(_);if(W===void 0||!("familyMembers"in W))W={key:_,familyMembers:new Map},G.set(_,W);W.familyMembers.set($,X)}else G.set(X.key,X);return new Map(G)})}),Y.on.selectorDisposal.subscribe("introspection",(X)=>{Z((G)=>{if(X.family){let{key:_,subKey:$}=X.family,W=G.get(_);if(W&&"familyMembers"in W){if(W.familyMembers.delete($),W.familyMembers.size===0)G.delete(_)}}else G.delete(X.key);return new Map(G)})})}]},void 0)};var W5=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(G){try{if(Y instanceof X)return{type:Z,data:Y}}catch(_){}}return null}},z7=new W5({number:(Y)=>typeof Y==="number",string:(Y)=>typeof Y==="string",boolean:(Y)=>typeof Y==="boolean",null:(Y)=>Y===null});function F7(Y){if(!Y)return!1;return Object.getPrototypeOf(Y)===Object.prototype}var U7=new W5({object:F7,array:(Y)=>Array.isArray(Y)}),KU=new W5({...z7.supported,...U7.supported}),C6=(Y)=>{if(Y===void 0)return"undefined";let Z=KU.refine(Y);if(Z)return Z.type;return Object.getPrototypeOf(Y).constructor.name};var zB=class Y{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(Z=U1.STORE){this.store=Z,this.atomIndex=NU(this.store),this.selectorIndex=IU(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(Z=Y.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw Error("This Auditor has been disposed");let X=hZ(this.atomIndex),G=hZ(this.selectorIndex),_=[...X.values()].filter((Q)=>("familyMembers"in Q)),$=[...G.values()].filter((Q)=>("familyMembers"in Q)),W=performance.now(),H=[];if(Z.atomFamilies)for(let Q of _){let J=Q.familyMembers.values();for(let z of J){let U=this.statesCreatedAt.get(z.key)??this.auditorCreatedAt,O=W-U;H.push([z,O])}}if(Z.selectorFamilies)for(let Q of $){let J=Q.familyMembers.values();for(let z of J){let U=this.statesCreatedAt.get(z.key)??this.auditorCreatedAt,O=W-U;H.push([z,O])}}return H}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}},Q7=(Y,Z)=>{let X=(G,_)=>{let W=((Q,J)=>{let z=Z(Q,J);if(z)return z;return null})(G,_);if(W?.jobComplete??W?.pathComplete)return W;let H=Array.isArray(_)?_.map((Q,J)=>[J,Q]):F7(_)?Object.entries(_):[];for(let[Q,J]of H){let z=X([...G,Q],J);if(z?.jobComplete)return z}return{}};X([],Y)};function BU(Y,Z){return{summary:`${Y<Z?"+":"-"}${Math.abs(Y-Z)} (${Y} \u2192 ${Z})`}}function TU(Y,Z){return{summary:`${Y.length<Z.length?"+":"-"}${Math.abs(Y.length-Z.length)} ("${Y}" \u2192 "${Z}")`}}function CU(Y,Z){return{summary:`${Y} \u2192 ${Z}`}}function E7(Y,Z,X){let G="",_=[],$=[],W=[];return Q7(Y,(H,Q)=>{let J;for(J of H){let z=Z[J];if(z===void 0)$.push([J,JSON.stringify(Q)]);else{let U=X(Q,z);if(U.summary!=="No Change")W.push([J,U])}}}),Q7(Z,(H,Q)=>{let J;for(J of H)if(Y[J]===void 0)_.push([J,JSON.stringify(Q)])}),G=`\uFF5E${W.length} \uFF0B${_.length} \uFF0D${$.length}`,{summary:G,added:_,removed:$,changed:W}}function qU(Y,Z,X){return E7(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 G of Object.keys(Y.supported)){let _=X[G];this.leafDiffers[G]=_}for(let G of Object.keys(Z.supported)){let _=X[G];this.treeDiffers[G]=_}}diff(Y,Z){if(Y===Z)return{summary:"No Change"};let X=this.leafRefinery.refine(Y)??this.treeRefinery.refine(Y),G=this.leafRefinery.refine(Z)??this.treeRefinery.refine(Z);if(X!==null&&G!==null){if(X.type===G.type){if(X.type in this.leafDiffers)return this.leafDiffers[X.type](X.data,G.data);if(X.type in this.treeDiffers)return this.treeDiffers[X.type](X.data,G.data,(W,H)=>this.diff(W,H))}}let _=C6(Y),$=C6(Z);if(_===$)return{summary:`${_} \u2192 ${$}`};return{summary:`Type change: ${_} \u2192 ${$}`}}},FB=new jU(z7,U7,{number:BU,string:TU,boolean:CU,null:()=>({summary:"No Change"}),object:E7,array:qU});var O7=_7(["add","delete","clear"]);function PU(Y){let Z=O7[Y.type]+"\x1F";if(Y.type==="clear")return Z+Y.values.map(_5).join("\x1E");return Z+_5(Y.value)}function V7(Y){let[Z,X]=Y.split("\x1F"),G=O7[Z];if(G==="clear")return{type:"clear",values:X.split("\x1E").map($5)};return{type:G,value:$5(X)}}var b4=class Y extends Set{mode="record";subject=new _0;constructor(Z){super(Z);if(Z instanceof Y);}READONLY_VIEW=this;toJSON(){return[...this]}static fromJSON(Z){return new Y(Z)}add(Z){let X=super.add(Z);if(this.mode==="record")this.emit({type:"add",value:Z});return X}clear(){let Z=this.mode==="record"?[...this]:null;if(super.clear(),Z)this.emit({type:"clear",values:Z})}delete(Z){let X=super.delete(Z);if(this.mode==="record")this.emit({type:"delete",value:Z});return X}subscribe(Z,X){return this.subject.subscribe(Z,X)}emit(Z){this.subject.next(PU(Z))}do(Z){this.mode="playback";let X=V7(Z);switch(X.type){case"add":this.add(X.value);break;case"delete":this.delete(X.value);break;case"clear":this.clear()}return this.mode="record",null}undo(Z){let X=V7(Z);switch(this.mode="playback",X.type){case"add":this.delete(X.value);break;case"delete":this.add(X.value);break;case"clear":{let G=X.values;for(let _ of G)this.add(_)}}return this.mode="record",null}};var SU=V2({key:"mutex",default:!1}),vU=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)}},AB=class Y{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(Z){this.key=Z}static existing=new vU;static create(Z,X){let G=new Y(Z),{type:_,globals:$,actions:W,perspectives:H}=X(G),Q={type:_,key:Z,globals:$,actions:W,perspectives:H};return Y.existing.set(Z,Q),Q}add(...Z){switch(Z[0].type){case"atom":case"mutable_atom":this.globals.push(...Z);break;case"transaction":this.actions.push(...Z);break;case"atom_family":case"mutable_atom_family":{let[X,G]=Z;this.perspectives.push({type:"realtime_perspective",resourceAtoms:X,viewAtoms:G})}break}return this}};var RB=E2({key:"usersInRoomIndex",class:b4}),D7=E2({key:"roomIndex",class:b4}),xU={enteredAtEpoch:0},V8=O6({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(Y)=>typeof Y==="string",isBType:(Y)=>typeof Y==="string"},xU),wB=D6({key:"usersInMyRoomView",get:(Y)=>({find:Z})=>{let X=C_(V8);return[Z(X,Y)]}});var SB=V2({key:"redactor",default:{occlude:(Y)=>Y}}),vB=V2({key:"unacknowledgedUpdates",default:()=>[]});var H5=class{listeners;globalListeners;handleEvent(...Y){let[Z,...X]=Y;for(let _ of this.globalListeners)_(Z,...X);let G=this.listeners.get(Z);if(G)for(let _ of G)_(...X)}id="no_id_retrieved";emit;constructor(Y){this.emit=Y,this.listeners=new Map,this.globalListeners=new Set}on(Y,Z){let X=this.listeners.get(Y);if(X)X.add(Z);else this.listeners.set(Y,new Set([Z]));return this}onAny(Y){return this.globalListeners.add(Y),this}off(Y,Z){let X=this.listeners.get(Y);if(X)if(Z)X.delete(Z);else this.listeners.delete(Y);return this}offAny(Y){return this.globalListeners.delete(Y),this}},xB=class extends H5{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";proc;key;logger;handleLog(Y){if(Array.isArray(Y)){let[Z,...X]=Y;switch(Z){case"i":this.logger.info(...X);break;case"w":this.logger.warn(...X);break;case"e":this.logger.error(...X);break}}}constructor(Y,Z,X){super((G,..._)=>{let $=JSON.stringify([G,..._])+"\x03",W=(H)=>{if(H.code==="EPIPE")console.error("EPIPE error during write",this.proc.stdin);this.proc.stdin.removeListener("error",W)};return this.proc.stdin.once("error",W),this.proc.stdin.write($),this});if(this.proc=Y,this.key=Z,this.logger=X??{info:(...G)=>{console.info(this.id,this.key,...G)},warn:(...G)=>{console.warn(this.id,this.key,...G)},error:(...G)=>{console.error(this.id,this.key,...G)}},this.proc.stdout.on("data",(G)=>{let _=G.toString();if(_==="ALIVE"){this.logger.info(_);return}let $=_.split("\x03"),W=$[0];$[0]=this.incompleteData+W;let H=0;for(let Q of $){if(Q==="")continue;try{let J=X1(Q);this.handleEvent(...J),this.incompleteData=""}catch(J){if(J instanceof Error)console.error(["\u274C Malformed data received from child process","",Q,"",J.message].join(`
|
|
58
|
+
${F.trace}`:`No previous disposal trace for ${H} was found.`),X}let J=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:W.stringKey}).filter(([,{source:F}])=>F!==_).map(([F])=>X1(F));if(G)$.moleculeGraph.delete(_);$.moleculeGraph.set({upstreamMoleculeKey:Q.stringKey,downstreamMoleculeKey:W.stringKey},{source:Q.stringKey});let z={type:"molecule_transfer",key:W.key,exclusive:Boolean(G),from:J,to:[Q.key],timestamp:Date.now()};if(E1($)&&$.transactionMeta.phase==="building")$.transactionMeta.update.subEvents.push(z);return X}function sU(Y,Z,X){switch(X){case"newValue":d_(Y,Z);break;case"oldValue":$8(Y,Z.token);break}}function tU(Y,Z,X){switch(X){case"newValue":$8(Y,Z.token);break;case"oldValue":if(d_(Y,Z),Z.subType==="atom")Y.valueMap.set(Z.token.key,Z.value);break}}function d_(Y,Z){let{token:X}=Z;if(Z.subType==="writable"&&Z.value)k1(Y,X,Z.value);else h1(Y,X)}function aU(Y,Z,X){switch(X){case"newValue":A6(Y,Z.provenance,Z.key);break;case"oldValue":K6(Y,Z.key);break}}function eU(Y,Z,X){switch(X){case"newValue":K6(Y,Z.key);break;case"oldValue":{let G=Z.provenance.map(X1);A6(Y,G,Z.key);for(let[_,$]of Z.values){let W=Y.families.get(_);if(W){h1(Y,W,Z.key);let H=`${_}(${Q0(Z.key)})`;Y.valueMap.set(H,$)}}}break}}function YF(Y,Z,X){switch(X){case"newValue":for(let G of Z.to)G8(Y,G,Z.key,Z.exclusive?"exclusive":void 0);break;case"oldValue":{let G="exclusive";for(let _ of Z.from)G8(Y,_,Z.key,G),G=void 0}break}}function c_(Y,Z,X){let G=X==="newValue"?Z.subEvents:[...Z.subEvents].reverse();for(let _ of G)switch(_.type){case"atom_update":nU(Y,_,X);break;case"state_creation":sU(Y,_,X);break;case"state_disposal":tU(Y,_,X);break;case"molecule_creation":aU(Y,_,X);break;case"molecule_disposal":eU(Y,_,X);break;case"molecule_transfer":YF(Y,_,X);break;case"transaction_outcome":c_(Y,_,X);break}}function D2(Y){return"epoch"in Y.transactionMeta}function E1(Y){return"phase"in Y.transactionMeta}function l_(Y,Z){return Y.transactionMeta.actionContinuities.getRelatedKey(Z)}function ZF(Y,Z){return Y.transactionMeta.epoch.get(Z)}function XF(Y,Z){let X=l_(Y,Z);if(X===void 0)return;return ZF(Y,X)}function GF(Y,Z,X){let G=l_(Y,Z);if(G!==void 0)Y.transactionMeta.epoch.set(G,X)}function _F(Y,Z){let X=Y0(Y),{parent:G}=X;X.transactionMeta.phase="applying",X.transactionMeta.update.output=Z,G.child=null,G.on.transactionApplying.next(X.transactionMeta);let{subEvents:_}=X.transactionMeta.update;if(Y.logger.info("\uD83D\uDEC4","transaction",X.transactionMeta.update.token.key,`applying ${_.length} subEvents:`,_),c_(G,X.transactionMeta.update,"newValue"),D2(G))GF(G,X.transactionMeta.update.token.key,X.transactionMeta.update.epoch),P0(Y,{key:X.transactionMeta.update.token.key,type:"transaction"})?.subject.next(X.transactionMeta.update),Y.logger.info("\uD83D\uDEEC","transaction",X.transactionMeta.update.token.key,"applied");else if(E1(G))G.transactionMeta.update.subEvents.push(X.transactionMeta.update);G.on.transactionApplying.next(null)}function $F(Y){return{store:Y}}var WF=(Y,Z,X,G)=>{let _=Y0(Y),$={parent:_,child:null,on:_.on,loggers:_.loggers,logger:_.logger,config:_.config,atoms:new b1(_.atoms),atomsThatAreDefault:new Set(_.atomsThatAreDefault),families:new b1(_.families),joins:new b1(_.joins),operation:{open:!1},readonlySelectors:new b1(_.readonlySelectors),timelines:new b1(_.timelines),timelineTopics:_.timelineTopics.overlay(),trackers:new Map,transactions:new b1(_.transactions),selectorAtoms:_.selectorAtoms.overlay(),selectorGraph:_.selectorGraph.overlay(),writableSelectors:new b1(_.writableSelectors),valueMap:new b1(_.valueMap),defaults:_.defaults,disposalTraces:Y.disposalTraces.copy(),molecules:new b1(_.molecules),moleculeGraph:_.moleculeGraph.overlay(),moleculeData:_.moleculeData.overlay(),moleculeJoins:_.moleculeJoins.overlay(),miscResources:new b1(_.miscResources)},W=XF(Y,Z.key),H={phase:"building",update:{type:"transaction_outcome",token:Z,id:G,epoch:W===void 0?NaN:W+1,timestamp:Date.now(),subEvents:[],params:X,output:void 0},toolkit:{get:(...J)=>h1(Q,...J),set:(...J)=>{k1(Q,...J)},reset:(...J)=>{R6(Q,...J)},run:(J,z=kZ())=>M6(Q,J,z),find:(...J)=>j0(Y,...J),json:(J)=>k4(Q,J),dispose:(...J)=>{$8(Q,...J)},env:()=>$F(Q)}},Q=Object.assign($,{transactionMeta:H});return _.child=Q,Y.logger.info("\uD83D\uDEEB","transaction",Z.key,"building with params:",X),Q};function _8(Y,Z){let{key:X}=Z,G=Y.transactions.has(X),_={key:X,type:"transaction",run:(W,H)=>{let Q=y1(_),J=WF(Y,Q,W,H);try{let{toolkit:z}=J.transactionMeta,F=Z.do(z,...W);return _F(J,F),F}catch(z){throw iU(J),Y.logger.warn("\uD83D\uDCA5","transaction",X,"caught:",z),z}},install:(W)=>_8(W,Z),subject:new _0};Y0(Y).transactions.set(X,_);let $=y1(_);if(!G)Y.on.transactionCreation.next($);return $}var x_=class{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;writableSelectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new $4({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new $4({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new $4({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new $4({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new lU(100);molecules=new Map;moleculeJoins=new $4({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeGraph=new $4({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeData=new $4({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});miscResources=new Map;on={atomCreation:new _0,atomDisposal:new _0,selectorCreation:new _0,selectorDisposal:new _0,timelineCreation:new _0,transactionCreation:new _0,transactionApplying:new cU(null),operationClose:new _0,moleculeCreation:new _0,moleculeDisposal:new _0};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new q_("warn",(Y,Z,X)=>!L2(X))];logger={error:(...Y)=>{for(let Z of this.loggers)Z.error(...Y)},info:(...Y)=>{for(let Z of this.loggers)Z.info(...Y)},warn:(...Y)=>{for(let Z of this.loggers)Z.warn(...Y)}};constructor(Y,Z=null){if(this.config={...Z?.config,...Y},Z!==null){if(this.operation={...Z?.operation},D2(Z))this.transactionMeta={epoch:new Map(Z?.transactionMeta.epoch),actionContinuities:new $4(Z?.transactionMeta.actionContinuities.toJSON())};for(let[,G]of Z.families){if(G.internalRoles?.includes("mutable")||G.internalRoles?.includes("join"))continue;G.install(this)}let X=new Set;for(let[,G]of Z.atoms){if(X.has(G.key))continue;if(G.install(this),G.type==="mutable_atom"){let _=k4(Z,G),$=Y5(G);X.add(_.key),X.add($.key)}}for(let[,G]of Z.readonlySelectors)G.install(this);for(let[,G]of Z.writableSelectors){if(X.has(G.key))continue;G.install(this)}for(let[,G]of Z.transactions)G.install(this);for(let[,G]of Z.timelines)G.install(this)}}},F1={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new x_({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};var HF=class extends Error{constructor(Y,Z){super(`${_4[Y.type]} ${Q0(Y.key)} not found in store "${Z.config.name}".`)}};function P0(Y,Z){let X,G=Y;while(G!==null){switch(Z.type){case"atom":case"mutable_atom":X=G.atoms.get(Z.key);break;case"writable_pure_selector":case"writable_held_selector":X=G.writableSelectors.get(Z.key);break;case"readonly_pure_selector":case"readonly_held_selector":X=G.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=G.families.get(Z.key);break;case"timeline":X=G.timelines.get(Z.key);break;case"transaction":X=G.transactions.get(Z.key);break}if(X)return X;G=G.child}throw new HF(Z,Y)}function o_(Y,Z,X,G){let _=Y.disposalTraces.buffer.find(($)=>$?.key===Q0(G));switch(Y.logger.error("\u274C",Z.type,Z.key,"gets a fallback value because key",G,"is not allocated",_?`This key was previously disposed:
|
|
59
|
+
${_.trace}`:"(no previous disposal trace found)"),X.type){case"mutable_atom_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=new X.class;return Y.defaults.set(X.key,$),$.READONLY_VIEW}case"atom_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=X.default,W=$(G);return Y.defaults.set(X.key,W),W}case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=X.default(G);return Y.defaults.set(X.key,$),$}}}function N6(Y,Z){let{type:X,key:G,catch:_}=Z;switch(X){case"readonly_pure_selector":case"writable_pure_selector":{let $;Y.logger.info("\uD83E\uDDEE",X,G,"computing value");try{if($=Z.getFrom(Y),$ instanceof Promise)return $.catch((W)=>{if(Y.logger.error("\uD83D\uDCA5",X,G,"rejected:",W),_){for(let H of _)if(W instanceof H)return W}throw W})}catch(W){if(Y.logger.error("\uD83D\uDCA5",X,G,"rejected:",W),_){for(let H of _)if(W instanceof H)return B1(Y,Z,W)}throw W}return B1(Y,Z,$)}case"atom":{let $;if(H8(Z.default))try{if($=Z.default(),$ instanceof Promise)$=$.catch((W)=>{if(Y.logger.error("\uD83D\uDCA5",X,G,"rejected:",W),_){for(let H of _)if(W instanceof H)return W}throw W})}catch(W){if(Y.logger.error("\uD83D\uDCA5",X,G,"rejected:",W),_){for(let H of _)if(W instanceof H)return $=B1(Y,Z,W),Y.logger.info("\u2728",Z.type,G,"computed default",$),$}throw W}else $=Z.default,Y.logger.info("\u2728",Z.type,G,"using static default",$);return B1(Y,Z,$)}}}function h4(Y,Z,X){if(Y.valueMap.has(Z.key))return RF(Y,Z,X);Y.logger.info("\u2754",Z.type,Z.key,"value not found in cache");let{key:G}=Z;switch(Z.type){case"readonly_held_selector":case"writable_held_selector":return Y.logger.info("\uD83E\uDDEE",Z.type,G,"computing value"),Z.getFrom(Y);case"writable_pure_selector":case"readonly_pure_selector":case"atom":return N6(Y,Z);case"mutable_atom":{let _=new Z.class;return Y.logger.info("\u2728",Z.type,G,"created new instance",_),B1(Y,Z,_)}}}function oZ(Y,Z){return P0(Y,{key:Z.family.key,type:`${Z.type}_family`})}var y_={atom_family:"atom",molecule_family:"molecule",mutable_atom_family:"mutable_atom",readonly_held_selector_family:"readonly_held_selector",readonly_pure_selector_family:"readonly_pure_selector",writable_held_selector_family:"writable_held_selector",writable_pure_selector_family:"writable_pure_selector"},J8=Symbol("MUST_CREATE"),JF=Symbol("DO_NOT_CREATE");function Q8(Y,Z,X,G){let _=Q0(G),$=Z.molecules.get(_);if(!$&&Z.config.lifespan==="immortal"){let{type:H,key:Q}=X;Z.logger.warn("\uD83D\uDCA3","key",_,"was used to mint a counterfeit token for",H,`"${Q}"`);let J=`${Q}(${_})`,z=y_[H];return{counterfeit:!0,key:J,type:z,family:{key:Q,subKey:_}}}let W;if(Y===J8){if(Z.logger.info("\uD83D\uDC6A",X.type,X.key,"adds member",typeof G==="string"?`\`${G}\``:G),W=X.create(G),$)Z.moleculeData.set(_,X.key)}else{let{type:H,key:Q}=X,J=`${Q}(${_})`,z=y_[H];return{key:J,type:z,family:{key:Q,subKey:_}}}return W}function iZ(Y,...Z){let X,G,_,$,W;if(Z.length===1){if(W=Z[0],"family"in W){let Q=oZ(Y,W);if(_=P0(Y,Q),$=X1(W.family.subKey),X=z8(Y,Q,$),"counterfeit"in W)return{token:W,family:_,subKey:$,isNew:!1};if(!X)G=Q8(J8,Y,Q,$),W=G;else W=X}}else if(_=P0(Y,Z[0]),$=Z[1],X=z8(Y,_,$),!X)G=Q8(J8,Y,_,$),W=G;else W=X;let H="counterfeit"in W;if(Boolean(G)&&H===!1&&_){let Q;switch(W.type){case"readonly_pure_selector":case"readonly_held_selector":Q="readable";break;case"atom":case"mutable_atom":case"writable_pure_selector":case"writable_held_selector":Q="writable";break}let J={type:"state_creation",subType:Q,token:W,timestamp:Date.now()};_.subject.next(J);let z=Y0(Y);if(W.family){if(D2(z))switch(W.type){case"atom":case"mutable_atom":Y.on.atomCreation.next(W);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":Y.on.selectorCreation.next(W);break}else if(E1(z)&&z.on.transactionApplying.state===null)z.transactionMeta.update.subEvents.push(J)}}return{token:W,family:_,subKey:$,isNew:Boolean(G)}}function h1(Y,...Z){let{token:X,family:G,subKey:_}=iZ(Y,...Z);if("counterfeit"in X&&G&&_)return o_(Y,X,G,_);let $=P0(Y,X);return h4(Y,$)}function z8(Y,Z,X){let G=Q0(X),_=`${Z.key}(${G})`,$=Y0(Y),W;switch(Z.type){case"atom_family":case"mutable_atom_family":W=$.atoms.get(_);break;case"writable_held_selector_family":case"writable_pure_selector_family":W=$.writableSelectors.get(_);break;case"readonly_held_selector_family":case"readonly_pure_selector_family":W=$.readonlySelectors.get(_);break}if(W)return y1(W);return W}function j0(Y,Z,X){let G=P0(Y,Z),_=z8(Y,Z,X);if(_)return _;return Q8(JF,Y,G,X)}function f4(Y,Z,X){let G=Z.key,_="readonly_pure_selector_family",$={key:G,type:"readonly_pure_selector_family"},W=Y.families.get(G);if(W)Y.logger.error("\u2757","readonly_pure_selector_family",G,`Overwriting an existing ${_4[W.type]} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new _0,J={...$,create:(z)=>{let F=Q0(z),O={key:G,subKey:F},L=`${G}(${F})`,w=Y0(Y),R={key:L,get:Z.get(z)};if(Z.catch)R.catch=Z.catch;return sZ(w,R,O)},internalRoles:X,subject:H,install:(z)=>f4(z,Z),default:(z)=>{return Z.get(z)({get:(...F)=>h1(Y,...F),find:(...F)=>j0(Y,...F),json:(F)=>k4(Y,F)})}};return Y.families.set(G,J),$}function O2(Y,Z,X){let G={key:Z.key,type:"atom_family"},_=Y.families.get(Z.key);if(_)Y.logger.error("\u2757","atom_family",Z.key,`Overwriting an existing ${_4[_.type]} "${_.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new _0,H={...G,create:(Q)=>{let J=Q0(Q),z={key:Z.key,subKey:J},F=`${Z.key}(${J})`,O=Y0(Y),L=Z.default,w={key:F,default:H8(L)?()=>L(Q):L};if(Z.effects)w.effects=Z.effects(Q);if(Z.catch)w.catch=Z.catch;return x4(O,w,z)},default:Z.default,subject:$,install:(Q)=>O2(Q,Z),internalRoles:X};if(Y.families.set(Z.key,H),H8(Z.default)===!1)Y.defaults.set(Z.key,Z.default);return G}function i_(Y,Z,X){let G=Z.key,_="readonly_held_selector_family",$={key:G,type:"readonly_held_selector_family"},W=Y.families.get(G);if(W)Y.logger.error("\u2757","readonly_held_selector_family",G,`Overwriting an existing ${_4[W.type]} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new _0,J={...$,create:(z)=>{let F=Q0(z),O={key:G,subKey:F},L=`${G}(${F})`,w=Y0(Y);return rZ(w,{key:L,const:Z.const(z),get:Z.get(z)},O)},internalRoles:X,subject:H,install:(z)=>i_(z,Z),default:Z.const};return Y.families.set(G,J),$}function n_(Y,Z,X){let G=Z.key,_="writable_held_selector_family",$={key:G,type:"writable_held_selector_family"},W=Y.families.get(G);if(W)Y.logger.error("\u2757","writable_held_selector_family",G,`Overwriting an existing ${_4[W.type]} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new _0,J={...$,create:(z)=>{let F=Q0(z),O={key:G,subKey:F},L=`${G}(${F})`,w=Y0(Y);return tZ(w,{key:L,const:Z.const(z),get:Z.get(z),set:Z.set(z)},O)},internalRoles:X,subject:H,install:(z)=>n_(z,Z),default:Z.const};return Y.families.set(G,J),$}function nZ(Y,Z,X){let G=Z.key,_="writable_pure_selector_family",$={key:G,type:"writable_pure_selector_family"},W=Y.families.get(G);if(W)Y.logger.error("\u2757","writable_pure_selector_family",G,`Overwriting an existing ${_4[W.type]} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new _0,J={...$,create:(z)=>{let F=Q0(z),O={key:G,subKey:F},L=`${G}(${F})`,w=Y0(Y),R={key:L,get:Z.get(z),set:Z.set(z)};if(Z.catch)R.catch=Z.catch;return aZ(w,R,O)},internalRoles:X,subject:H,install:(z)=>nZ(z,Z),default:(z)=>{return Z.get(z)({get:(...F)=>h1(Y,...F),find:(...F)=>j0(Y,...F),json:(F)=>k4(Y,F)})}};return Y.families.set(G,J),$}function bZ(Y,Z){let X="set"in Z,G="const"in Z;if(G&&X)return n_(Y,Z,void 0);if(G)return i_(Y,Z,void 0);if(X)return nZ(Y,Z);return f4(Y,Z)}function $8(Y,...Z){let X;if(Z.length===1)X=Z[0];else{let G=Z[0],_=Z[1];X=j0(Y,G,_)}try{P0(Y,X)}catch(G){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":X7(Y,X);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":DF(Y,X);break}}function r_(Y,Z){if(Y.operation.open){let X=performance.now();return Y.logger.info("\uD83D\uDEAB",Z.type,Z.key,`deferring setState at T-${X} until setState for "${Y.operation.token.key}" is done`),X}return Y.operation={open:!0,done:new Set,prev:new Map,timestamp:Date.now(),token:Z,subEvents:[]},Y.logger.info("\u2B55",Z.type,Z.key,`operation start in store "${Y.config.name}"${E1(Y)?` ${Y.transactionMeta.phase} "${Y.transactionMeta.update.token.key}"`:""}`),Y}function s_(Y){if(Y.operation.open)Y.logger.info("\uD83D\uDD34",Y.operation.token.type,Y.operation.token.key,`operation done in store "${Y.config.name}"`);Y.operation={open:!1},Y.on.operationClose.next(Y.operation)}var t_=(Y,Z)=>{if(!Y.operation.open)return Y.logger.error("\uD83D\uDC1E","unknown",Z,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return Y.operation.done.has(Z)},B6=(Y,Z)=>{if(!Y.operation.open){Y.logger.error("\uD83D\uDC1E","unknown",Z,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}Y.operation.done.add(Z)};function dZ(Y,Z,{oldValue:X,newValue:G},_,$){let W=y1(Z);if(_&&$){Z.subject.next({newValue:G});let F={checkpoint:!0,type:"state_creation",subType:"writable",token:W,timestamp:Date.now(),value:G};Y.operation.subEvents.push(F),$.subject.next(F);let O=Y0(Y);if(W.family){if(D2(O))switch(W.type){case"atom":case"mutable_atom":Y.on.atomCreation.next(W);break;case"writable_pure_selector":case"writable_held_selector":Y.on.selectorCreation.next(W);break}else if(E1(O)&&O.on.transactionApplying.state===null)O.transactionMeta.update.subEvents.push(F)}return}let{key:H,subject:Q,type:J}=Z,z={oldValue:pZ(X)?X.READONLY_VIEW:X,newValue:pZ(G)?G.READONLY_VIEW:G};if(D2(Y)){switch(J){case"mutable_atom":Y.logger.info("\uD83D\uDCE2",J,H,"is now (",G,") subscribers:",Q.subscribers.keys());break;case"atom":case"writable_pure_selector":case"writable_held_selector":Y.logger.info("\uD83D\uDCE2",J,H,"went (",X,"->",G,") subscribers:",Q.subscribers.keys())}Q.next(z)}if(E1(Y)&&(J==="mutable_atom"||J==="atom")){if(Y.on.transactionApplying.state===null){if(pZ(G))return;let{timestamp:F}=Y.operation,O={type:"atom_update",token:W,timestamp:F,update:z};Y.transactionMeta.update.subEvents.push(O),Y.logger.info("\uD83D\uDCC1","atom",H,"stowed (",X,"->",G,")");return}if(X5(Z,"tracker:signal")){let F=H.slice(1),O=Y.atoms.get(F);if(h4(Y,O,"mut").do(z.newValue)===null===!0)Z5(Y,O)}}}var cZ=(Y,Z,X)=>{let G=h4(Y,Z,"mut"),_=mZ(X,G);return Y.logger.info("\u2B50","atom",Z.key,"setting value",_),_=B1(Y,Z,_),B6(Y,Z.key),Z5(Y,Z),{oldValue:G,newValue:_}};function gZ(Y,Z){switch(Z.type){case"mutable_atom":return cZ(Y,Z,new Z.class);case"atom":{let X;if(H8(Z.default))X=N6(Y,Z);else X=Z.default;return cZ(Y,Z,X)}}}function QF(Y,Z){let X;switch(Z.type){case"atom":case"mutable_atom":X=gZ(Y,Z);break;case"writable_held_selector":{let G=U8(Y,Z.key);for(let $ of G.values()){let W=gZ(Y,$);dZ(Y,Z,W,!1)}let _=Z.getFrom(Y);X={oldValue:_,newValue:_}}break;case"writable_pure_selector":{let G=N6(Y,Z),_=U8(Y,Z.key);for(let W of _.values()){let H=gZ(Y,W);dZ(Y,Z,H,!1)}let $=N6(Y,Z);X={oldValue:G,newValue:$}}break}return X}function k1(Y,...Z){E8(I6,Y,...Z)}var lZ=Symbol("RESET");function R6(Y,...Z){let X=[...Z,lZ];k1(Y,...X)}function zF(Y,Z,X){let G,_,$,{type:W,key:H}=Z;switch(Z.type){case"writable_pure_selector":G=h4(Y,Z,"mut"),_=mZ(X,G),_=B1(Y,Z,_);break;case"writable_held_selector":$=Z.const,mZ(X,$),G=$,_=$}return Y.logger.info("\u2B50",W,H,"setting to",_),B6(Y,H),Z.setSelf(_),{oldValue:G,newValue:_}}var UF=(Y,Z,X)=>{let G;switch(Z.type){case"atom":case"mutable_atom":G=cZ(Y,Z,X);break;case"writable_pure_selector":case"writable_held_selector":G=zF(Y,Z,X);break}return G},I6=Symbol("OWN_OP"),a_=Symbol("JOIN_OP");function E8(Y,Z,...X){let G,_,$,W,H,Q;if(X.length===2){if($=X[0],Q=X[1],"family"in $)if(W=oZ(Z,$),H=X1($.family.subKey),G=z8(Z,W,H),!G)$=_=Q8(J8,Z,W,H);else $=G}else if(W=P0(Z,X[0]),H=X[1],Q=X[2],G=z8(Z,W,H),!G)$=_=Q8(J8,Z,W,H);else $=G;let J=Q===lZ?"reset":"set",z;if(Y===I6){let L=r_(Z,$);if(typeof L==="number"){let w=L,R=Z.on.operationClose.subscribe(`waiting to ${J} "${$.key}" at T-${w}`,function(){R(),Z.logger.info("\uD83D\uDFE2",$.type,$.key,"resuming deferred",J,`from T-${w}`),E8(Y,Z,$,Q)});return}z=L}else z=Z;if("counterfeit"in $&&"family"in $){let L=$.family.subKey,w=Z.disposalTraces.buffer.find((R)=>R?.key===L);Z.logger.error("\u274C",$.type,$.key,"could not be",J,"because key",L,"is not allocated.",w?`this key was previously disposed:${w.trace}`:"(no previous disposal trace found)");return}let F=P0(z,$),O;if(Q===lZ)O=QF(z,F);else O=UF(z,F,Q);if(dZ(z,F,O,Boolean(_),W),Y===I6)s_(z)}var e_=(Y,Z)=>Y0(Y).atoms.has(Z),FF=(Y,Z)=>Y0(Y).writableSelectors.has(Z),EF=(Y,Z)=>Y0(Y).readonlySelectors.has(Z),VF=(Y,Z)=>e_(Y,Z)||FF(Y,Z)||EF(Y,Z);function g_(Y,Z){return Y0(Y).selectorGraph.getRelationEntries({downstreamSelectorKey:Z}).filter(([X,{source:G}])=>G!==Z).map(([X,{source:G}])=>G).filter((X)=>VF(Y,X))}function U8(Y,Z,X=new Set){let G=g_(Y,Z),_=new Map;while(G.length>0){let $=G.pop();if(X.has($))continue;if(X.add($),e_(Y,$)){let W=Y.atoms.get($);_.set(W.key,W)}else G.push(...g_(Y,$))}return _}function OF(Y,Z,X,G,_){let $=Y0(Y),{type:W,key:H}=G;if(W==="atom"||W==="mutable_atom")$.selectorAtoms.set({selectorKey:X,atomKey:H}),Y.logger.info("\uD83D\uDD0D",Z,X,`discovers root atom "${H}"`);else{let Q=U8(Y,H,_);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})}_.add(H)}function T6(Y,Z,X,G){return{get:(..._)=>{let $=Y0(Y),{token:W,family:H,subKey:Q}=iZ(Y,..._),J;if("counterfeit"in W&&H&&Q)J=o_(Y,W,H,Q);else{let z=P0(Y,W);J=h4(Y,z)}return Y.logger.info("\uD83D\uDD0C",Z,X,`registers dependency ( "${W.key}" =`,J,")"),$.selectorGraph.set({upstreamSelectorKey:W.key,downstreamSelectorKey:X},{source:W.key}),OF(Y,Z,X,W,G),J},set:(..._)=>{let $=Y0(Y);E8(a_,$,..._)},find:(..._)=>j0(Y,..._),json:(_)=>k4(Y,_)}}function rZ(Y,Z,X){let G=Y0(Y),_=new _0,$=new Set,{key:W,const:H}=Z,Q="readonly_held_selector";Y.logger.info("\uD83D\uDD28","readonly_held_selector",W,"is being created");let{get:J,find:z,json:F}=T6(G,"readonly_held_selector",W,$),L={...Z,type:"readonly_held_selector",subject:_,getFrom:(R)=>{let b=R.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[x,{source:h}]of b)if(h!==W)R.selectorGraph.delete(x,W);return R.selectorAtoms.delete(W),Z.get({get:J,find:z,json:F},H),B1(R,L,H),Y.logger.info("\u2728","readonly_held_selector",W,"=",H),$.clear(),H},install:(R)=>rZ(R,Z,X)};if(X)L.family=X;G.readonlySelectors.set(W,L);let w={key:W,type:"readonly_held_selector"};if(X)w.family=X;return w}function sZ(Y,Z,X){let G=Y0(Y),_=new _0,$=new Set,W=Z.key,H="readonly_pure_selector";Y.logger.info("\uD83D\uDD28","readonly_pure_selector",W,"is being created");let{get:Q,find:J,json:z}=T6(G,"readonly_pure_selector",W,$),O={...Z,type:"readonly_pure_selector",subject:_,getFrom:()=>{let w=Y0(Y),R=w.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[h,{source:g}]of R)if(g!==W)w.selectorGraph.delete(h,W);w.selectorAtoms.delete(W);let b=Z.get({get:Q,find:J,json:z}),x=B1(w,O,b);return Y.logger.info("\u2728","readonly_pure_selector",W,"=",x),$.clear(),x},install:(w)=>sZ(w,Z,X)};if(X)O.family=X;G.readonlySelectors.set(W,O);let L={key:W,type:"readonly_pure_selector"};if(X)L.family=X;return L}function tZ(Y,Z,X){let G=Y0(Y),_=new _0,$=new Set,{key:W,const:H}=Z,Q="writable_held_selector";Y.logger.info("\uD83D\uDD28","writable_held_selector",W,"is being created");let J=T6(G,"writable_held_selector",W,$),{find:z,get:F,json:O}=J,L={find:z,get:F,json:O},b={...Z,type:"writable_held_selector",subject:_,getFrom:(h)=>{let g=h.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[B,{source:K}]of g)if(K!==W)h.selectorGraph.delete(B,W);return h.selectorAtoms.delete(W),Z.get(L,H),B1(h,b,H),Y.logger.info("\u2728","writable_held_selector",W,"=",H),$.clear(),H},setSelf:()=>{Z.set(J,H)},install:(h)=>tZ(h,Z,X)};if(X)b.family=X;G.writableSelectors.set(W,b);let x={key:W,type:"writable_held_selector"};if(X)x.family=X;return x}function aZ(Y,Z,X){let G=Y0(Y),_=new _0,$=new Set,W=Z.key,H="writable_pure_selector";Y.logger.info("\uD83D\uDD28","writable_pure_selector",W,"is being created");let Q=T6(G,"writable_pure_selector",W,$),{find:J,get:z,json:F}=Q,O={find:J,get:z,json:F},R={...Z,type:"writable_pure_selector",subject:_,getFrom:(x)=>{let h=x.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[K,{source:C}]of h)if(C!==W)x.selectorGraph.delete(K,W);x.selectorAtoms.delete(W);let g=Z.get(O),B=B1(x,R,g);return Y.logger.info("\u2728","writable_pure_selector",W,"=",B),$.clear(),B},setSelf:(x)=>{Z.set(Q,x)},install:(x)=>aZ(x,Z,X)};if(X)R.family=X;G.writableSelectors.set(W,R);let b={key:W,type:"writable_pure_selector"};if(X)b.family=X;return b}function f_(Y,Z){let X="set"in Z,G="const"in Z;if(G&&X){let $=tZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(G){let $=rZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(X){let $=aZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}let _=sZ(Y,Z,void 0);return Y.on.selectorCreation.next(_),_}function DF(Y,Z){let X=Y0(Y),{key:G,type:_,family:$}=Z;if(!$)Y.logger.error("\u274C",_,G,"Standalone selectors cannot be disposed.");else{if(X.molecules.get($.subKey))X.moleculeData.delete($.subKey,$.key);let W;switch(Z.type){case"writable_held_selector":X.writableSelectors.delete(G),W={key:$.key,type:"writable_held_selector_family"},P0(Y,W).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"writable_pure_selector":X.writableSelectors.delete(G),W={key:$.key,type:"writable_pure_selector_family"},P0(Y,W).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"readonly_held_selector":X.readonlySelectors.delete(G),W={key:$.key,type:"readonly_held_selector_family"},P0(Y,W).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"readonly_pure_selector":X.readonlySelectors.delete(G),W={key:$.key,type:"readonly_pure_selector_family"},P0(Y,W).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break}if(X.valueMap.delete(G),X.selectorAtoms.delete(G),X.selectorGraph.delete(G),X.moleculeData.delete($.key,$.subKey),Y.logger.info("\uD83D\uDD25",Z.type,G,"deleted"),E1(X)&&X.transactionMeta.phase==="building")X.transactionMeta.update.subEvents.push({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});else Y.on.selectorDisposal.next(Z)}}var LF=(Y,Z)=>{let X=Y0(Y);if(X.operation.open)return X.operation.prev.get(Z.key);return X.valueMap.get(Z.key)},p_=(Y,Z,X)=>{return X.subject.subscribe(`${Z.type}:${Z.key}`,(G)=>{Y.logger.info("\uD83D\uDCE2",Z.type,Z.key,"root",X.key,"went",G.oldValue,"->",G.newValue);let _=LF(Y,Z),$=h4(Y,Z);Y.logger.info("\u2728",Z.type,Z.key,"went",_,"->",$),Z.subject.next({newValue:$,oldValue:_})})};function F8(Y,Z,X,G){function _(F){if(Y.operation.open){if($?.type==="atom"&&X5($,"tracker:signal")&&"*"+Y.operation.token.key===Z.key&&"inboundTracker"in G)return;let O=Y.on.operationClose.subscribe(`state subscription ${X}`,()=>{O(),G(F)})}else G(F)}iZ(Y,Z);let $=P0(Y,Z);Y.logger.info("\uD83D\uDC40",$.type,$.key,`Adding subscription "${X}"`);let W=$.type==="writable_pure_selector"||$.type==="readonly_pure_selector",H=new Map,Q=_;if(W){h4(Y,$);for(let[F,O]of U8(Y,$.key))H.set(F,p_(Y,$,O));Q=function(O){let L=U8(Y,$.key);for(let[w,R]of H)if(L.get(w))L.delete(w);else R(),H.delete(w);for(let[w,R]of L)H.set(w,p_(Y,$,R));_(O)}}let J=$.subject.subscribe(X,Q);return()=>{Y.logger.info("\uD83D\uDE48",$.type,$.key,`Removing subscription "${X}"`),J();for(let F of H.values())F()}}var MF=(Y,Z,X,G)=>{let _=P0(Y,Z);Y.logger.info("\uD83D\uDC40","timeline",Z.key,`Adding subscription "${X}"`);let $=_.subject.subscribe(X,G);return()=>{Y.logger.info("\uD83D\uDE48","timeline",Z.key,`Removing subscription "${X}" from timeline`),$()}};var eZ=class{initializeSignalAtom(Y,Z){let X=`*${Y.key}`;Z.atoms.delete(X),Z.valueMap.delete(X);let G=Y.family?{key:`*${Y.family.key}`,subKey:Y.family.subKey}:void 0,_=x4(Z,{key:X,default:null},G,["tracker:signal"]);if(Z.parent?.valueMap.has(X)){let $=Z.parent.valueMap.get(X);Z.valueMap.set(X,$)}return _}unsubscribeFromInnerValue;unsubscribeFromState;captureSignalsFromCore(Y,Z,X){let G=Y.key,_=X.config.name,$=E1(X)?X.transactionMeta.update.token.key:"main",W=`tracker-from-core:${_}:${$}:${G}`,H=(Q)=>{E8(a_,X,Z,Q)};this.unsubscribeFromInnerValue=h1(X,Y).subscribe(W,H),this.unsubscribeFromState=F8(X,Y,W,function(J){if(J.newValue!==J.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=J.newValue.subscribe(W,H)}.bind(this))}supplySignalsToCore(Y,Z,X){let G=Y.key,_=X.config.name,$=E1(X)?X.transactionMeta.update.token.key:"main",W=`tracker-to-core:${_}:${$}:${G}`;F8(X,Z,W,Object.assign(function({newValue:Q,oldValue:J}){let z=X.timelineTopics.getRelatedKey(Z.key);if(z&&X.timelines.get(z)?.timeTraveling){let F=MF(X,{key:z,type:"timeline"},W,function(L){F(),k1(X,Y,(w)=>{if(L==="redo"&&Q)w.do(Q);else if(L==="undo"&&J)w.undo(J);return w})});return}k1(X,Y,(F)=>(F.do(Q),F))},{inboundTracker:!0}))}mutableAtomToken;latestSignalToken;[Symbol.dispose];constructor(Y,Z){let X=Y0(Z),G=this.initializeSignalAtom(Y,X);this.mutableAtomToken=Y,this.latestSignalToken=G,this.captureSignalsFromCore(Y,G,X),this.supplySignalsToCore(Y,G,X),X.trackers.set(Y.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),X.trackers.delete(Y.key)}}};function w6(Y,Z,X){Y.logger.info("\uD83D\uDD28","atom",Z.key,`creating in store "${Y.config.name}"`);let G=Y0(Y),{key:_}=Z,$=G.atoms.get(_),W="mutable_atom";if($&&$.type===W)return Y.logger.error("\u274C",W,_,"Tried to create atom, but it already exists in the store."),y1($);let H=new _0,Q={...Z,type:W,install:(z)=>{return z.logger.info("\uD83D\uDEE0\uFE0F","atom",_,`installing in store "${z.config.name}"`),w6(z,Z,X)},subject:H};if(X)Q.family=X;G.atoms.set(Q.key,Q);let J=y1(Q);if(Z.effects){let z=0,F=[];for(let O of Z.effects){let L=O({resetSelf:()=>{R6(Y,J)},setSelf:(w)=>{k1(Y,J,w)},onSet:(w)=>F8(Y,J,`effect[${z}]`,w)});if(L)F.push(L);++z}Q.cleanup=()=>{for(let O of F)O()}}if(new eZ(J,Y),!X)f_(Y,{key:`${_}:JSON`,get:({get:z})=>z(J).toJSON(),set:({set:z},F)=>{z(J,Z.class.fromJSON(F))}});return Y.on.atomCreation.next(J),J}var AF=class{trackers=new Map;latestSignalAtoms;mutableAtoms;constructor(Y,Z){let X=O2(Z,{key:`*${Y.key}`,default:null},["mutable","updates"]);this.latestSignalAtoms=P0(Z,X),this.mutableAtoms=Y;let G=(_)=>{let{type:$,token:W}=_;if(W.family){let H=X1(W.family.subKey);switch($){case"state_creation":this.trackers.set(H,new eZ(W,Z));break;case"state_disposal":{let Q=this.trackers.get(H);if(Q)Q[Symbol.dispose](),this.trackers.delete(H)}}}};this.mutableAtoms.subject.subscribe(`store=${Z.config.name}::tracker-atom-family`,G)}};function yZ(Y,Z,X){let G={key:Z.key,type:"mutable_atom_family"},_=Y.families.get(Z.key);if(_)Y.logger.error("\u2757","mutable_atom_family",Z.key,`Overwriting an existing ${_4[_.type]} "${_.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new _0,H={...G,create:(Q)=>{let J=Q0(Q),z={key:Z.key,subKey:J},F=`${Z.key}(${J})`,O=Y0(Y),L={key:F,class:Z.class};if(Z.effects)L.effects=Z.effects(Q);return w6(O,L,z)},class:Z.class,subject:$,install:(Q)=>yZ(Q,Z),internalRoles:X};return Y.families.set(Z.key,H),nZ(Y,{key:`${Z.key}:JSON`,get:(Q)=>({get:J})=>J(G,Q).toJSON(),set:(Q)=>({set:J},z)=>{J(G,Q,Z.class.fromJSON(z))}},["mutable","json"]),new AF(H,Y),G}var m_=(Y,Z)=>{let X=Y0(Z),G=`${Y.key}:JSON`;return X.families.get(G)},k4=(Y,Z)=>{if(Z.family){let X=Y0(Y),G={key:`${Z.family.key}:JSON`,type:"writable_pure_selector_family"},_=P0(X,G),$=X1(Z.family.subKey);return j0(Y,_,$)}return{type:"writable_pure_selector",key:`${Z.key}:JSON`}};var Y5=(Y)=>{let Z={type:"atom",key:`*${Y.key}`};if(Y.family)Z.family={key:`*${Y.family.key}`,subKey:Y.family.subKey};return Z};function pZ(Y){return typeof Y==="object"&&Y!==null&&"do"in Y&&"undo"in Y&&"subscribe"in Y&&"READONLY_VIEW"in Y&&"toJSON"in Y}function B1(Y,Z,X){let{key:G,subject:_,type:$}=Z,W=Y.valueMap.get(G);if(W instanceof uZ&&!W.done){let H=W;if(X instanceof Promise)return H.use(X),H;return Y.valueMap.set(G,X),X}if(X instanceof Promise){let H=new uZ(X);return Y.valueMap.set(G,H),H.then(function(J){if(Y.valueMap.get(G)===H){switch(r_(Y,Z),B1(Y,Z,J),$){case"atom":Z5(Y,Z);break;case"readonly_pure_selector":case"writable_pure_selector":Z7(Y,G);break}s_(Y),_.next({newValue:J,oldValue:H})}}).catch((Q)=>{Y.logger.error("\uD83D\uDCA5",Z.type,G,"rejected:",Q)}),H}return Y.logger.info("\uD83D\uDCDD",Z.type,Z.key,"writing to cache",X),Y.valueMap.set(G,X),X}function RF(Y,Z,X){Y.logger.info("\uD83D\uDCD6",Z.type,Z.key,"reading cached value");let G=Y.valueMap.get(Z.key);if(X==="mut"&&Z.type==="mutable_atom"&&E1(Y)){let _=Z,{parent:$}=Y;if(Y.valueMap.hasOwn(_.key))return G;let W=$.valueMap.get(_.key);Y.logger.info("\uD83D\uDCC3","atom",_.key,"copying");let H=W.toJSON(),Q=_.class.fromJSON(H);Y.valueMap.set(_.key,Q),new eZ(_,$),G=Q}return G}function Y7(Y,Z){let X=Y.valueMap.get(Z);if(X instanceof uZ){let G=Y.writableSelectors.get(Z)??Y.readonlySelectors.get(Z);if(G)G.getFrom(Y);return}if(Y.operation.open)Y.operation.prev.set(Z,X);Y.valueMap.delete(Z),Y.logger.info("\uD83D\uDDD1","state",Z,"evicted")}function Z5(Y,Z){let X=Y0(Y),{key:G,type:_}=Z,$=X.selectorAtoms.getRelatedKeys(G);if(X.logger.info("\uD83E\uDDF9",_,G,$?`evicting ${$.size} states downstream:`:"no downstream states",$??"to evict"),$){if(X.operation.open)X.logger.info("\uD83E\uDDF9",_,G,`[ ${[...X.operation.done].join(", ")} ] already done`);for(let W of $){if(t_(X,W))continue;Y7(X,W),B6(X,W)}}}function Z7(Y,Z){let X=Y0(Y),G=X.selectorGraph.getRelationEntries({upstreamSelectorKey:Z}).filter(([_,{source:$}])=>$===Z);for(let[_]of G){if(t_(X,_))continue;Y7(X,_),B6(X,_),Z7(Y,_)}}function x4(Y,Z,X,G){let{key:$}=Z;Y.logger.info("\uD83D\uDD28","atom",$,"is being created");let W=Y0(Y),H=W.atoms.get($);if(H&&H.type==="atom")return Y.logger.error("\u274C","atom",$,"Tried to create atom, but it already exists in the store."),y1(H);let Q=new _0,J={...Z,type:"atom",install:(F)=>{return F.logger.info("\uD83D\uDEE0\uFE0F","atom",$,`installing in store "${F.config.name}"`),x4(F,Z,X)},subject:Q};if(X)J.family=X;if(G)J.internalRoles=G;W.atoms.set($,J);let z=y1(J);if(Z.effects){let F=0,O=[];for(let L of Z.effects){let w=L({resetSelf:()=>{R6(Y,z)},setSelf:(R)=>{k1(Y,z,R)},onSet:(R)=>F8(Y,z,`effect[${F}]`,R)});if(w)O.push(w);++F}J.cleanup=()=>{for(let L of O)L()}}return Y.on.atomCreation.next(z),z}function X5(Y,Z){if("internalRoles"in Y===!1)return!1;return Y.internalRoles.includes(Z)}function X7(Y,Z){let X=Y0(Y),{key:G,family:_}=Z,$=P0(X,Z);if(!_)Y.logger.error("\u274C","atom",G,"Standalone atoms cannot be disposed.");else{$.cleanup?.();let W=Y.valueMap.get($.key),H=oZ(Y,Z),Q=P0(Y,H).subject,J={type:"state_disposal",subType:"atom",token:Z,value:W,timestamp:Date.now()};Q.next(J);let z=E1(X);if(X.atoms.delete(G),X.valueMap.delete(G),X.selectorAtoms.delete(G),X.atomsThatAreDefault.delete(G),X.moleculeData.delete(_.key,_.subKey),Y.timelineTopics.delete(G),Z.type==="mutable_atom"){let F=Y5(Z);X7(Y,F),Y.trackers.delete(G)}if(Y.logger.info("\uD83D\uDD25","atom",G,"deleted"),z&&X.transactionMeta.phase==="building"){let F=X.transactionMeta.update.subEvents.at(-1),O=F?.type==="molecule_disposal"&&F.values.some(([w])=>w===$.family?.key),L=X5($,"tracker:signal");if(!O&&!L)X.transactionMeta.update.subEvents.push(J)}else Y.on.atomDisposal.next(Z)}}function K0(Y){return Y[0].toUpperCase()+Y.slice(1)}var G7=class{toolkit;options;defaultContent;relations;states;core;transact(Y,Z){let X=this.toolkit;this.toolkit=Y,Z(this),this.toolkit=X}store;realm;[Symbol.dispose](){}constructor(Y,Z,X=F1.STORE){this.store=X,this.realm=new j_(X),this.options=Y,this.defaultContent=Z,this.store.miscResources.set(`join:${Y.key}`,this),this.realm.allocate("root",Y.key),this.toolkit={get:(...B)=>h1(X,...B),set:(...B)=>{k1(X,...B)},find:(...B)=>j0(X,...B),json:(B)=>k4(X,B)};let G=Y.between[0],_=Y.between[1],$=yZ(X,{key:`${Y.key}/relatedKeys`,class:b_},["join","relations"]);this.core={relatedKeysAtoms:$};let W=({get:B},K)=>B($,K),H=({set:B},K,C)=>{if(!this.store.molecules.has(Q0(K)))this.realm.allocate(Y.key,K);B($,K,(q)=>q.add(C)),B($,C,(q)=>q.add(K))},Q=({set:B},K,C)=>{B($,K,(N)=>{return N.delete(C),N}),B($,C,(N)=>{return N.delete(K),N});let[q,c]=[K,C].sort(),n=`${q}:${c}`;this.store.moleculeJoins.delete(n)},J=(B,K,C)=>{let{find:q,get:c,set:n}=B,N=q($,K),s=c(N);for(let p of s){if(C.includes(p))continue;n($,p,(t)=>{return t.delete(K),t})}n(N,(p)=>{return p.transaction((t)=>{t.clear();for(let I0 of C){let h0=W(B,I0),$1=h0.has(K);if(this.relations.cardinality==="1:n"){let r1=[];for(let T of h0){if(T===K)continue;let m=W(B,T);if(m.delete(I0),m.size===0)r1.push(T)}if(!$1&&h0.size>0)h0.clear();for(let T of r1){let[m,$0]=[I0,T].sort(),V0=`${m}:${$0}`;X.moleculeJoins.delete(V0)}}if(!$1)h0.add(K);t.add(I0)}return!0}),p})},z=(B,K,C)=>{let{set:q}=B;q($,K,(c)=>{return c.transaction((n)=>{for(let N of C)n.add(N);return!0}),c});for(let c of C)q($,c,(n)=>{return n.add(K),n});return!0},F=(B,K,C)=>{let q=W(B,K);return C?q.has(C):q.size>0},O={getRelatedKeys:(B)=>W(this.toolkit,B),addRelation:(B,K)=>{this.store.moleculeJoins.set(`"${B}"`,Y.key),this.store.moleculeJoins.set(`"${K}"`,Y.key),H(this.toolkit,B,K)},deleteRelation:(B,K)=>{Q(this.toolkit,B,K)},replaceRelationsSafely:(B,K)=>{J(this.toolkit,B,K)},replaceRelationsUnsafely:(B,K)=>{z(this.toolkit,B,K)},has:(B,K)=>F(this.toolkit,B,K)},L,w;if(Z){w=O2(X,{key:`${Y.key}/content`,default:Z},["join","content"]);let B=({get:C},q)=>C(w,q),K=({set:C},q,c)=>{C(w,q,c)};L=Object.assign(O,{getContent:(C)=>{return B(this.toolkit,C)},setContent:(C,q)=>{K(this.toolkit,C,q)},deleteContent:(C)=>{}})}else L=O;let R=new $4(Y,{externalStore:L,isAType:Y.isAType,isBType:Y.isBType,makeContentKey:(...B)=>{let[K,C]=B,[q,c]=B.sort(),n=`${q}:${c}`,N=X.molecules.get(Q0(K)),s=X.molecules.get(Q0(C));if(!N)this.realm.allocate(Y.key,K);if(!s)this.realm.allocate(Y.key,C);return this.realm.allocate(K,n,"all"),this.realm.claim(C,n),this.store.moleculeJoins.set(n,Y.key),n}}),b=()=>f4(X,{key:`${Y.key}/singleRelatedKey`,get:(B)=>({get:K})=>{let C=K($,B);for(let q of C)return q;return null}},["join","keys"]),x=()=>{return f4(X,{key:`${Y.key}/multipleRelatedKeys`,get:(B)=>({get:K})=>{let C=m_($,X);return K(C,B).members}},["join","keys"])},h=()=>f4(X,{key:`${Y.key}/singleRelatedEntry`,get:(B)=>({get:K})=>{let C=K($,B);for(let q of C){let c=R.isAType?.(B)?B:void 0,n=c===void 0?B:void 0;c??=q,n??=q;let N=R.makeContentKey(c,n),s=K(w,N);return[q,s]}return null}},["join","entries"]),g=()=>f4(X,{key:`${Y.key}/multipleRelatedEntries`,get:(B)=>({get:K})=>{let C=m_($,X);return K(C,B).members.map((q)=>{let c=R.isAType?.(B)?B:void 0,n=c===void 0?B:void 0;c??=q,n??=q;let N=R.makeContentKey(c,n),s=K(w,N);return[q,s]})}},["join","entries"]);switch(Y.cardinality){case"1:1":{let B=b(),K=`${G}KeyOf${K0(_)}`,C=`${_}KeyOf${K0(G)}`,q={[K]:B,[C]:B},c;if(Z){let n=h(),N=`${G}EntryOf${K0(_)}`,s=`${_}EntryOf${K0(G)}`,p={[N]:n,[s]:n};c=Object.assign(q,p)}else c=q;this.relations=R,this.states=c;break}case"1:n":{let B=b(),K=x(),C=`${G}KeyOf${K0(_)}`,q=`${_}KeysOf${K0(G)}`,c={[C]:B,[q]:K},n;if(Z){let N=h(),s=g(),p=`${G}EntryOf${K0(_)}`,t=`${_}EntriesOf${K0(G)}`,I0={[p]:N,[t]:s};n=Object.assign(c,I0)}else n=c;this.relations=R,this.states=n;break}case"n:n":{let B=x(),K=`${G}KeysOf${K0(_)}`,C=`${_}KeysOf${K0(G)}`,q={[K]:B,[C]:B},c;if(Z){let n=g(),N=`${G}EntriesOf${K0(_)}`,s=`${_}EntriesOf${K0(G)}`,p={[N]:n,[s]:n};c=Object.assign(q,p)}else c=q;this.relations=R,this.states=c}}}};function h_(Y,Z,X){return Y.joins.set(Z.key,new G7(Z,X,Y)),{key:Z.key,type:"join",a:Z.between[0],b:Z.between[1],cardinality:Z.cardinality}}function G5(Y,Z){let X=Z.joins.get(Y.key);if(X===void 0){let G=F1.STORE.joins.get(Y.key);if(G===void 0)throw Error(`Join "${Y.key}" not found in store "${Z.config.name}"`);let _=uU(Z);X=new G7(G.options,G.defaultContent,_),Z.joins.set(Y.key,X)}return X}function W8(Y,Z,X){let G=G5(Y,X),_=Y0(X);if(E1(_)){let{toolkit:$}=_.transactionMeta;G.transact($,({relations:W})=>{Z(W)})}else Z(G.relations)}function mU(Y,Z,X){let G=G5(Y,X),_;switch(Y.cardinality){case"1:1":{let $=`${Y.a}KeyOf${K0(Y.b)}`,W=`${Y.b}KeyOf${K0(Y.a)}`;_={get[$](){let Q=G.states[$];return j0(X,Q,Z)},get[W](){let Q=G.states[W];return j0(X,Q,Z)}};let H=`${Y.a}EntryOf${K0(Y.b)}`;if(H in G.states){let Q=`${Y.b}EntryOf${K0(Y.a)}`;Object.assign(_,{get[H](){let J=G.states[H];return j0(X,J,Z)},get[Q](){let J=G.states[Q];return j0(X,J,Z)}})}break}case"1:n":{let $=`${Y.a}KeyOf${K0(Y.b)}`,W=`${Y.b}KeysOf${K0(Y.a)}`;_={get[$](){let Q=G.states[$];return j0(X,Q,Z)},get[W](){let Q=G.states[W];return j0(X,Q,Z)}};let H=`${Y.a}EntryOf${K0(Y.b)}`;if(H in G.states){let Q=`${Y.b}EntriesOf${K0(Y.a)}`;Object.assign(_,{get[H](){let J=G.states[H];return j0(X,J,Z)},get[Q](){let J=G.states[Q];return j0(X,J,Z)}})}break}case"n:n":{let $=`${Y.a}KeysOf${K0(Y.b)}`,W=`${Y.b}KeysOf${K0(Y.a)}`;_={get[$](){let Q=G.states[$];return j0(X,Q,Z)},get[W](){let Q=G.states[W];return j0(X,Q,Z)}};let H=`${Y.a}EntriesOf${K0(Y.b)}`;if(H in G.states){let Q=`${Y.b}EntriesOf${K0(Y.a)}`;Object.assign(_,{get[H](){let J=G.states[H];return j0(X,J,Z)},get[Q](){let J=G.states[Q];return j0(X,J,Z)}})}}}return _}function k_(Y,Z){return G5(Y,Z).core.relatedKeysAtoms}function _7(Y){let Z={},X=0;for(let G of Y)Z[G]=X,Z[X]=G,++X;return Z}var $7="\x01",W7="\x02",H7="\x03",J7="\x04",_5=(Y)=>{switch(typeof Y){case"string":return H7+Y;case"number":return J7+Y;case"boolean":return $7+ +Y;case"object":return W7}},$5=(Y)=>{switch(Y[0]){case H7:return Y.slice(1);case J7:return+Y.slice(1);case $7:return Y.slice(1)==="1";case W7:return null}};var wF=(Y)=>{return x4(Y,{key:"\uD83D\uDD0D Atom Token Index",default:()=>{let Z=new Map;for(let[X,G]of Y.atoms){if(L2(X))continue;let _=y1(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,_)}else Z.set(X,_)}return Z},effects:[({setSelf:Z})=>{Y.on.atomCreation.subscribe("introspection",(X)=>{if(L2(X.key))return;Z((G)=>{if(X.family){let{key:_,subKey:$}=X.family,W=G.get(_);if(W===void 0||!("familyMembers"in W))W={key:_,familyMembers:new Map},G.set(_,W);W.familyMembers.set($,X)}else G.set(X.key,X);return new Map(G)})}),Y.on.atomDisposal.subscribe("introspection",(X)=>{Z((G)=>{if(X.family){let{key:_,subKey:$}=X.family,W=G.get(_);if(W&&"familyMembers"in W){if(W.familyMembers.delete($),W.familyMembers.size===0)G.delete(_)}}return new Map(G)})})}]},void 0)},NF=(Y)=>{return x4(Y,{key:"\uD83D\uDD0D Selector Token Index",default:()=>{let Z=new Map;for(let X of[Y.readonlySelectors,Y.writableSelectors])for(let[G,_]of X){if(L2(G))continue;let $=y1(_);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,$)}else Z.set(G,$)}return Z},effects:[({setSelf:Z})=>{Y.on.selectorCreation.subscribe("introspection",(X)=>{if(L2(X.key))return;Z((G)=>{if(X.family){let{key:_,subKey:$}=X.family,W=G.get(_);if(W===void 0||!("familyMembers"in W))W={key:_,familyMembers:new Map},G.set(_,W);W.familyMembers.set($,X)}else G.set(X.key,X);return new Map(G)})}),Y.on.selectorDisposal.subscribe("introspection",(X)=>{Z((G)=>{if(X.family){let{key:_,subKey:$}=X.family,W=G.get(_);if(W&&"familyMembers"in W){if(W.familyMembers.delete($),W.familyMembers.size===0)G.delete(_)}}else G.delete(X.key);return new Map(G)})})}]},void 0)};var W5=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(G){try{if(Y instanceof X)return{type:Z,data:Y}}catch(_){}}return null}},z7=new W5({number:(Y)=>typeof Y==="number",string:(Y)=>typeof Y==="string",boolean:(Y)=>typeof Y==="boolean",null:(Y)=>Y===null});function U7(Y){if(!Y)return!1;return Object.getPrototypeOf(Y)===Object.prototype}var F7=new W5({object:U7,array:(Y)=>Array.isArray(Y)}),IF=new W5({...z7.supported,...F7.supported}),C6=(Y)=>{if(Y===void 0)return"undefined";let Z=IF.refine(Y);if(Z)return Z.type;return Object.getPrototypeOf(Y).constructor.name};var JB=class Y{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(Z=F1.STORE){this.store=Z,this.atomIndex=wF(this.store),this.selectorIndex=NF(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(Z=Y.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw Error("This Auditor has been disposed");let X=hZ(this.atomIndex),G=hZ(this.selectorIndex),_=[...X.values()].filter((Q)=>("familyMembers"in Q)),$=[...G.values()].filter((Q)=>("familyMembers"in Q)),W=performance.now(),H=[];if(Z.atomFamilies)for(let Q of _){let J=Q.familyMembers.values();for(let z of J){let F=this.statesCreatedAt.get(z.key)??this.auditorCreatedAt,O=W-F;H.push([z,O])}}if(Z.selectorFamilies)for(let Q of $){let J=Q.familyMembers.values();for(let z of J){let F=this.statesCreatedAt.get(z.key)??this.auditorCreatedAt,O=W-F;H.push([z,O])}}return H}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}},Q7=(Y,Z)=>{let X=(G,_)=>{let W=((Q,J)=>{let z=Z(Q,J);if(z)return z;return null})(G,_);if(W?.jobComplete??W?.pathComplete)return W;let H=Array.isArray(_)?_.map((Q,J)=>[J,Q]):U7(_)?Object.entries(_):[];for(let[Q,J]of H){let z=X([...G,Q],J);if(z?.jobComplete)return z}return{}};X([],Y)};function KF(Y,Z){return{summary:`${Y<Z?"+":"-"}${Math.abs(Y-Z)} (${Y} \u2192 ${Z})`}}function BF(Y,Z){return{summary:`${Y.length<Z.length?"+":"-"}${Math.abs(Y.length-Z.length)} ("${Y}" \u2192 "${Z}")`}}function TF(Y,Z){return{summary:`${Y} \u2192 ${Z}`}}function E7(Y,Z,X){let G="",_=[],$=[],W=[];return Q7(Y,(H,Q)=>{let J;for(J of H){let z=Z[J];if(z===void 0)$.push([J,JSON.stringify(Q)]);else{let F=X(Q,z);if(F.summary!=="No Change")W.push([J,F])}}}),Q7(Z,(H,Q)=>{let J;for(J of H)if(Y[J]===void 0)_.push([J,JSON.stringify(Q)])}),G=`\uFF5E${W.length} \uFF0B${_.length} \uFF0D${$.length}`,{summary:G,added:_,removed:$,changed:W}}function CF(Y,Z,X){return E7(Y,Z,X)}var qF=class{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(Y,Z,X){this.leafRefinery=Y,this.treeRefinery=Z,this.leafDiffers={},this.treeDiffers={};for(let G of Object.keys(Y.supported)){let _=X[G];this.leafDiffers[G]=_}for(let G of Object.keys(Z.supported)){let _=X[G];this.treeDiffers[G]=_}}diff(Y,Z){if(Y===Z)return{summary:"No Change"};let X=this.leafRefinery.refine(Y)??this.treeRefinery.refine(Y),G=this.leafRefinery.refine(Z)??this.treeRefinery.refine(Z);if(X!==null&&G!==null){if(X.type===G.type){if(X.type in this.leafDiffers)return this.leafDiffers[X.type](X.data,G.data);if(X.type in this.treeDiffers)return this.treeDiffers[X.type](X.data,G.data,(W,H)=>this.diff(W,H))}}let _=C6(Y),$=C6(Z);if(_===$)return{summary:`${_} \u2192 ${$}`};return{summary:`Type change: ${_} \u2192 ${$}`}}},QB=new qF(z7,F7,{number:KF,string:BF,boolean:TF,null:()=>({summary:"No Change"}),object:E7,array:CF});var V7=_7(["add","delete","clear"]),b4=class Y extends Set{mode="record";subject=new _0;constructor(Z){super(Z);if(Z instanceof Y);}READONLY_VIEW=this;toJSON(){return[...this]}static fromJSON(Z){return new Y(Z)}add(Z){let X=super.add(Z);if(this.mode==="record")this.emit({type:"add",value:Z});return X}clear(){let Z=this.mode==="record"?[...this]:null;if(super.clear(),Z)this.emit({type:"clear",values:Z})}delete(Z){let X=super.delete(Z);if(this.mode==="record")this.emit({type:"delete",value:Z});return X}subscribe(Z,X){return this.subject.subscribe(Z,X)}emit(Z){this.subject.next(Y.packUpdate(Z))}do(Z){this.mode="playback";let X=Y.unpackUpdate(Z);switch(X.type){case"add":this.add(X.value);break;case"delete":this.delete(X.value);break;case"clear":this.clear()}return this.mode="record",null}undo(Z){let X=Y.unpackUpdate(Z);switch(this.mode="playback",X.type){case"add":this.delete(X.value);break;case"delete":this.add(X.value);break;case"clear":{let G=X.values;for(let _ of G)this.add(_)}}return this.mode="record",null}static packUpdate(Z){let X=V7[Z.type]+"\x1F";if(Z.type==="clear")return X+Z.values.map(_5).join("\x1E");return X+_5(Z.value)}static unpackUpdate(Z){let[X,G]=Z.split("\x1F"),_=V7[X];if(_==="clear")return{type:"clear",values:G.split("\x1E").map($5)};return{type:_,value:$5(G)}}};var jF=V2({key:"mutex",default:!1}),PF=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)}},LB=class Y{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(Z){this.key=Z}static existing=new PF;static create(Z,X){let G=new Y(Z),{type:_,globals:$,actions:W,perspectives:H}=X(G),Q={type:_,key:Z,globals:$,actions:W,perspectives:H};return Y.existing.set(Z,Q),Q}add(...Z){switch(Z[0].type){case"atom":case"mutable_atom":this.globals.push(...Z);break;case"transaction":this.actions.push(...Z);break;case"atom_family":case"mutable_atom_family":{let[X,G]=Z;this.perspectives.push({type:"realtime_perspective",resourceAtoms:X,viewAtoms:G})}break}return this}};var MB=E2({key:"usersInRoomIndex",class:b4}),O7=E2({key:"roomIndex",class:b4}),SF={enteredAtEpoch:0},V8=O6({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(Y)=>typeof Y==="string",isBType:(Y)=>typeof Y==="string"},SF),AB=D6({key:"usersInMyRoomView",get:(Y)=>({find:Z})=>{let X=C_(V8);return[Z(X,Y)]}});var jB=V2({key:"redactor",default:{occlude:(Y)=>Y}}),PB=V2({key:"unacknowledgedUpdates",default:()=>[]});var H5=class{listeners;globalListeners;handleEvent(...Y){let[Z,...X]=Y;for(let _ of this.globalListeners)_(Z,...X);let G=this.listeners.get(Z);if(G)for(let _ of G)_(...X)}id="no_id_retrieved";emit;constructor(Y){this.emit=Y,this.listeners=new Map,this.globalListeners=new Set}on(Y,Z){let X=this.listeners.get(Y);if(X)X.add(Z);else this.listeners.set(Y,new Set([Z]));return this}onAny(Y){return this.globalListeners.add(Y),this}off(Y,Z){let X=this.listeners.get(Y);if(X)if(Z)X.delete(Z);else this.listeners.delete(Y);return this}offAny(Y){return this.globalListeners.delete(Y),this}},SB=class extends H5{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";proc;key;logger;handleLog(Y){if(Array.isArray(Y)){let[Z,...X]=Y;switch(Z){case"i":this.logger.info(...X);break;case"w":this.logger.warn(...X);break;case"e":this.logger.error(...X);break}}}constructor(Y,Z,X){super((G,..._)=>{let $=JSON.stringify([G,..._])+"\x03",W=(H)=>{if(H.code==="EPIPE")console.error("EPIPE error during write",this.proc.stdin);this.proc.stdin.removeListener("error",W)};return this.proc.stdin.once("error",W),this.proc.stdin.write($),this});if(this.proc=Y,this.key=Z,this.logger=X??{info:(...G)=>{console.info(this.id,this.key,...G)},warn:(...G)=>{console.warn(this.id,this.key,...G)},error:(...G)=>{console.error(this.id,this.key,...G)}},this.proc.stdout.on("data",(G)=>{let _=G.toString();if(_==="ALIVE"){this.logger.info(_);return}let $=_.split("\x03"),W=$[0];$[0]=this.incompleteData+W;let H=0;for(let Q of $){if(Q==="")continue;try{let J=X1(Q);this.handleEvent(...J),this.incompleteData=""}catch(J){if(J instanceof Error)console.error(["\u274C Malformed data received from child process","",Q,"",J.message].join(`
|
|
60
60
|
\u274C `));try{if(H===0){this.incompleteData=Q;let z=X1(W);this.handleEvent(...z),this.incompleteData=""}else this.incompleteData+=Q}catch(z){if(z instanceof Error)console.error(["\u274C Malformed data received from child process","",W,"",z.message].join(`
|
|
61
61
|
\u274C `))}}++H}}),this.proc.stderr.on("data",(G)=>{let _=G.toString().split("\x03"),$=_[0];_[0]=this.incompleteData+$;let W=0;for(let H of _){if(H==="")continue;try{let Q=X1(H);this.handleLog(Q),this.incompleteData=""}catch(Q){if(Q instanceof Error)console.error(["\u274C Malformed log received from child process","",H,"",Q.message].join(`
|
|
62
62
|
\u274C `));try{if(W===0){this.incompleteData=H;let J=X1($);this.handleLog(J),this.incompleteData=""}else this.incompleteData+=H}catch(J){if(J instanceof Error)console.error(["\u274C Malformed log received from child process...","",$,"",J.message].join(`
|
|
63
|
-
\u274C `))}}++W}}),Y.pid)this.id=Y.pid.toString()}},
|
|
63
|
+
\u274C `))}}++W}}),Y.pid)this.id=Y.pid.toString()}},vF=class extends H5{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(Y){super((...Z)=>{return this.out.next(Z),this});this.id=Y,this.in=new _0,this.out=new _0,this.in.subscribe("socket",(Z)=>{this.handleEvent(...Z)})}dispose(){for(let Y of this.disposalFunctions)Y()}},L7=class extends H5{incompleteData="";unprocessedEvents=[];relays;relayServices;proc;id="#####";log(...Y){this.proc.stderr.write(Q0(Y.map((Z)=>Z instanceof b4?`{ ${Z.toJSON().join(" | ")} }`:Z))+"\x03")}logger={info:(...Y)=>{this.log("i",...Y)},warn:(...Y)=>{this.log("w",...Y)},error:(...Y)=>{this.log("e",...Y)}};constructor(Y){super((Z,...X)=>{let G=JSON.stringify([Z,...X]);return this.proc.stdout.write(G+"\x03"),this});if(this.proc=Y,this.proc.stdin.resume(),this.relays=new Map,this.relayServices=[],this.proc.stdin.on("data",(Z)=>{let X=Z.toString().split("\x03"),G=X[0];X[0]=this.incompleteData+G;let _=0;for(let $ of X){if($==="")continue;try{let W=X1($);this.logger.info("\uD83C\uDFB0","received",W),this.handleEvent(...W),this.incompleteData=""}catch(W){if(W instanceof Error)this.logger.error(["received malformed data from parent process:","",$,"",W.message].join(`
|
|
64
64
|
\u274C `));try{if(_===0){this.incompleteData=$;let H=X1(G);this.logger.info("\uD83C\uDFB0","received",H),this.handleEvent(...H),this.incompleteData=""}else this.incompleteData+=$}catch(H){if(H instanceof Error)this.logger.error(["received malformed data from parent process:","",G,"",H.message].join(`
|
|
65
|
-
\u274C `))}}++_}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),this.proc.exit(0)}),this.proc.pid)this.id=this.proc.pid?.toString();this.on("user-joins",(Z)=>{this.logger.info("\uD83D\uDC64","user",Z,"joined");let X=`user::${Z}`,G=new fU(X);this.relays.set(Z,G),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let _ of this.relayServices){let $=_(G,X);if($)G.disposalFunctions.push($)}this.on(X,(..._)=>{G.in.next(_)}),G.out.subscribe("socket",(_)=>{this.emit(..._)})}),this.on("user-leaves",(Z)=>{let X=this.relays.get(Z);if(this.off(`relay:${Z}`),X)X.dispose(),this.relays.delete(Z)}),this.proc.stdout.write("ALIVE")}receiveRelay(Y){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(Y)}};var L7=new Map;var fB=L6({key:"joinRoom",do:(Y,Z,X,G)=>{let _={enteredAtEpoch:G};return W8(V8,($)=>{$.set({room:Z,user:X},_)},Y.env().store),_}}),hB=L6({key:"leaveRoom",do:({env:Y},Z,X)=>{W8(V8,(G)=>{G.delete({room:Z,user:X})},Y().store)}}),kB=L6({key:"destroyRoom",do:({set:Y,env:Z},X)=>{W8(V8,(_)=>{_.delete({room:X})},Z().store),Y(D7,(_)=>(_.delete(X),_));let G=L7.get(X);if(G)G.emit("exit"),L7.delete(X)}}),bB=V2({key:"sockets",default:null}),yB=E2({key:"socketsIndex",class:b4}),gB=E2({key:"usersIndex",class:b4}),pB=O6({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(Y)=>Y.startsWith("user::"),isBType:(Y)=>Y.startsWith("socket::")}),mB=D6({key:"userMutualSituationalAwarenessIndexes",get:(Y)=>()=>{return[Y]}});var{file:sW,serve:sE}=globalThis.Bun;import{readFileSync as w7}from"fs";import{createServer as yU}from"http";import{createServer as gU}from"https";import{resolve as Q5}from"path";function A7(Y,Z){if(Y instanceof Promise)throw Error(Z)}function hU(Y,Z){let X={},G=[];for(let _ in Y){let $=Y[_]["~standard"].validate(Z[_]);if(A7($,`Validation must be synchronous, but ${_} returned a Promise.`),$.issues){G.push(...$.issues.map((W)=>({...W,message:W.message,path:[_,...W.path??[]]})));continue}X[_]=$.value}if(G.length)return{issues:G};return{value:X}}function J5(Y){let Z=Y.runtimeEnvStrict??Y.runtimeEnv??process.env;if(Y.emptyStringAsUndefined??!1){for(let[h,g]of Object.entries(Z))if(g==="")delete Z[h]}if(!!Y.skipValidation)return Z;let _=typeof Y.client==="object"?Y.client:{},$=typeof Y.server==="object"?Y.server:{},W=typeof Y.shared==="object"?Y.shared:{},H=Y.isServer??(typeof window>"u"||("Deno"in window)),Q=H?{...$,...W,..._}:{..._,...W},J=Y.createFinalSchema?.(Q,H)["~standard"].validate(Z)??hU(Q,Z);A7(J,"Validation must be synchronous");let z=Y.onValidationError??((h)=>{throw console.error("\u274C Invalid environment variables:",h),Error("Invalid environment variables")}),U=Y.onInvalidAccess??(()=>{throw Error("\u274C Attempted to access a server-side environment variable on the client")});if(J.issues)return z(J.issues);let O=(h)=>{if(!Y.clientPrefix)return!0;return!h.startsWith(Y.clientPrefix)&&!(h in W)},L=(h)=>{return H||!O(h)},w=(h)=>{return h==="__esModule"||h==="$$typeof"},R=(Y.extends??[]).reduce((h,g)=>{return Object.assign(h,g)},{}),b=Object.assign(R,J.value);return new Proxy(b,{get(h,g){if(typeof g!=="string")return;if(w(g))return;if(!L(g))return U(g);return Reflect.get(h,g)}})}var kU="__vite_start_time"in globalThis,bU=typeof window<"u",aB="vitest"in globalThis,W4=F1("string"),R7=F1('"true" | "false" | undefined'),g1=J5({isServer:!kU&&!bU,server:{CI:F1("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:R7.pipe((Y)=>Y==="true"),FRONTEND_PORT:W4.pipe((Y)=>Number.parseInt(Y,10)),FRONTEND_ORIGINS:W4.pipe.try((Y)=>JSON.parse(Y),F1("string[]")),API_KEY_OPENAI:F1("string | undefined"),API_KEY_RESEND:F1("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:W4,VITE_DEV_FRONTEND_HOST:F1("string | undefined"),VITE_DEV_HTTPS:R7.pipe((Y)=>Y==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var N7=Q5(import.meta.dirname,"../dev"),q6=g1.VITE_DEV_HTTPS?{cert:w7(Q5(N7,"./cert.pem"),"utf-8"),key:w7(Q5(N7,"./key.pem"),"utf-8")}:void 0;function $T(Y){if(q6)return gU(q6,Y);return yU({},Y)}import dE from"path";var E=Symbol.for("drizzle:entityKind");function M(Y,Z){if(!Y||typeof Y!=="object")return!1;if(Y instanceof Z)return!0;if(!Object.prototype.hasOwnProperty.call(Z,E))throw Error(`Class "${Z.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let X=Object.getPrototypeOf(Y).constructor;if(X)while(X){if(E in X&&X[E]===Z[E])return!0;X=Object.getPrototypeOf(X)}return!1}class U0{constructor(Y,Z){this.table=Y,this.config=Z,this.name=Z.name,this.keyAsName=Z.keyAsName,this.notNull=Z.notNull,this.default=Z.default,this.defaultFn=Z.defaultFn,this.onUpdateFn=Z.onUpdateFn,this.hasDefault=Z.hasDefault,this.primary=Z.primaryKey,this.isUnique=Z.isUnique,this.uniqueName=Z.uniqueName,this.uniqueType=Z.uniqueType,this.dataType=Z.dataType,this.columnType=Z.columnType,this.generated=Z.generated,this.generatedIdentity=Z.generatedIdentity}static[E]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(Y){return Y}mapToDriverValue(Y){return Y}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class z5{static[E]="ColumnBuilder";config;constructor(Y,Z,X){this.config={name:Y,keyAsName:Y==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:Z,columnType:X,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(Y){return this.config.default=Y,this.config.hasDefault=!0,this}$defaultFn(Y){return this.config.defaultFn=Y,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(Y){return this.config.onUpdateFn=Y,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(Y){if(this.config.name!=="")return;this.config.name=Y}}var p1=Symbol.for("drizzle:Name");class F5{static[E]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(Y,Z){if(this.reference=()=>{let{name:X,columns:G,foreignColumns:_}=Y();return{name:X,columns:G,foreignTable:_[0].table,foreignColumns:_}},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 I7(Y,this)}}class I7{constructor(Y,Z){this.table=Y,this.reference=Z.reference,this.onUpdate=Z._onUpdate,this.onDelete=Z._onDelete}static[E]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:Y,columns:Z,foreignColumns:X}=this.reference(),G=Z.map((W)=>W.name),_=X.map((W)=>W.name),$=[this.table[p1],...G,X[0].table[p1],..._];return Y??`${$.join("_")}_fk`}}function j6(Y,...Z){return Y(...Z)}function K7(Y,Z){return`${Y[p1]}_${Z.join("_")}_unique`}function B7(Y,Z,X){for(let G=Z;G<Y.length;G++){let _=Y[G];if(_==="\\"){G++;continue}if(_==='"')return[Y.slice(Z,G).replace(/\\/g,""),G+1];if(X)continue;if(_===","||_==="}")return[Y.slice(Z,G).replace(/\\/g,""),G]}return[Y.slice(Z).replace(/\\/g,""),Y.length]}function T7(Y,Z=0){let X=[],G=Z,_=!1;while(G<Y.length){let $=Y[G];if($===","){if(_||G===Z)X.push("");_=!0,G++;continue}if(_=!1,$==="\\"){G+=2;continue}if($==='"'){let[Q,J]=B7(Y,G+1,!0);X.push(Q),G=J;continue}if($==="}")return[X,G+1];if($==="{"){let[Q,J]=T7(Y,G+1);X.push(Q),G=J;continue}let[W,H]=B7(Y,G,!1);X.push(W),G=H}return[X,G]}function C7(Y){let[Z]=T7(Y,1);return Z}function U5(Y){return`{${Y.map((Z)=>{if(Array.isArray(Z))return U5(Z);if(typeof Z==="string")return`"${Z.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${Z}`}).join(",")}}`}class k extends z5{foreignKeyConfigs=[];static[E]="PgColumnBuilder";array(Y){return new j7(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:G})=>{return j6((_,$)=>{let W=new F5(()=>{let H=_();return{columns:[Y],foreignColumns:[H]}});if($.onUpdate)W.onUpdate($.onUpdate);if($.onDelete)W.onDelete($.onDelete);return W.build(Z)},X,G)})}buildExtraConfigColumn(Y){return new q7(Y,this.config)}}class j extends U0{constructor(Y,Z){if(!Z.uniqueName)Z.uniqueName=K7(Y,[Z.name]);super(Y,Z);this.table=Y}static[E]="PgColumn"}class q7 extends j{static[E]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(Y){return this.indexConfig.opClass=Y,this}}class O8{static[E]="IndexedColumn";constructor(Y,Z,X,G){this.name=Y,this.keyAsName=Z,this.type=X,this.indexConfig=G}name;keyAsName;type;indexConfig}class j7 extends k{static[E]="PgArrayBuilder";constructor(Y,Z,X){super(Y,"array","PgArray");this.config.baseBuilder=Z,this.config.size=X}build(Y){let Z=this.config.baseBuilder.build(Y);return new E5(Y,this.config,Z)}}class E5 extends j{constructor(Y,Z,X,G){super(Y,Z);this.baseColumn=X,this.range=G,this.size=Z.size}size;static[E]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(Y){if(typeof Y==="string")Y=C7(Y);return Y.map((Z)=>this.baseColumn.mapFromDriverValue(Z))}mapToDriverValue(Y,Z=!1){let X=Y.map((G)=>G===null?null:M(this.baseColumn,E5)?this.baseColumn.mapToDriverValue(G,!0):this.baseColumn.mapToDriverValue(G));if(Z)return X;return U5(X)}}class P7 extends k{static[E]="PgEnumObjectColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumObjectColumn");this.config.enum=Z}build(Y){return new S7(Y,this.config)}}class S7 extends j{static[E]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}var P6=Symbol.for("drizzle:isPgEnum");function v7(Y){return!!Y&&typeof Y==="function"&&P6 in Y&&Y[P6]===!0}class x7 extends k{static[E]="PgEnumColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumColumn");this.config.enum=Z}build(Y){return new f7(Y,this.config)}}class f7 extends j{static[E]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}function D8(Y,Z){return Array.isArray(Z)?pU(Y,[...Z],void 0):mU(Y,Z,void 0)}function pU(Y,Z,X){let G=Object.assign((_)=>new x7(_??"",G),{enumName:Y,enumValues:Z,schema:X,[P6]:!0});return G}function mU(Y,Z,X){let G=Object.assign((_)=>new P7(_??"",G),{enumName:Y,enumValues:Object.values(Z),schema:X,[P6]:!0});return G}class S0{static[E]="Subquery";constructor(Y,Z,X,G=!1,_=[]){this._={brand:"Subquery",sql:Y,selectedFields:Z,alias:X,isWith:G,usedTables:_}}}class L8 extends S0{static[E]="WithSubquery"}var h7="0.44.5";var V5,O5,E0={startActiveSpan(Y,Z){if(!V5)return Z();if(!O5)O5=V5.trace.getTracer("drizzle-orm",h7);return j6((X,G)=>G.startActiveSpan(Y,(_)=>{try{return Z(_)}catch($){throw _.setStatus({code:X.SpanStatusCode.ERROR,message:$ instanceof Error?$.message:"Unknown error"}),$}finally{_.end()}}),V5,O5)}};var M0=Symbol.for("drizzle:ViewBaseConfig");var y4=Symbol.for("drizzle:Schema"),S6=Symbol.for("drizzle:Columns"),k7=Symbol.for("drizzle:ExtraConfigColumns"),D5=Symbol.for("drizzle:OriginalName"),L5=Symbol.for("drizzle:BaseName"),M8=Symbol.for("drizzle:IsAlias"),b7=Symbol.for("drizzle:ExtraConfigBuilder"),uU=Symbol.for("drizzle:IsDrizzleTable");class P{static[E]="Table";static Symbol={Name:p1,Schema:y4,OriginalName:D5,Columns:S6,ExtraConfigColumns:k7,BaseName:L5,IsAlias:M8,ExtraConfigBuilder:b7};[p1];[D5];[y4];[S6];[k7];[L5];[M8]=!1;[uU]=!0;[b7]=void 0;constructor(Y,Z,X){this[p1]=this[D5]=Y,this[y4]=Z,this[L5]=X}}function d0(Y){return Y[p1]}function g4(Y){return`${Y[y4]??"public"}.${Y[p1]}`}function M5(Y){return Y!==null&&Y!==void 0&&typeof Y.getSQL==="function"}function dU(Y){let Z={sql:"",params:[]};for(let X of Y)if(Z.sql+=X.sql,Z.params.push(...X.params),X.typings?.length){if(!Z.typings)Z.typings=[];Z.typings.push(...X.typings)}return Z}class m0{static[E]="StringChunk";value;constructor(Y){this.value=Array.isArray(Y)?Y:[Y]}getSQL(){return new f([this])}}class f{constructor(Y){this.queryChunks=Y;for(let Z of Y)if(M(Z,P)){let X=Z[P.Symbol.Schema];this.usedTables.push(X===void 0?Z[P.Symbol.Name]:X+"."+Z[P.Symbol.Name])}}static[E]="SQL";decoder=g7;shouldInlineParams=!1;usedTables=[];append(Y){return this.queryChunks.push(...Y.queryChunks),this}toQuery(Y){return E0.startActiveSpan("drizzle.buildSQL",(Z)=>{let X=this.buildQueryFromSourceParams(this.queryChunks,Y);return Z?.setAttributes({"drizzle.query.text":X.sql,"drizzle.query.params":JSON.stringify(X.params)}),X})}buildQueryFromSourceParams(Y,Z){let X=Object.assign({},Z,{inlineParams:Z.inlineParams||this.shouldInlineParams,paramStartIndex:Z.paramStartIndex||{value:0}}),{casing:G,escapeName:_,escapeParam:$,prepareTyping:W,inlineParams:H,paramStartIndex:Q}=X;return dU(Y.map((J)=>{if(M(J,m0))return{sql:J.value.join(""),params:[]};if(M(J,v6))return{sql:_(J.value),params:[]};if(J===void 0)return{sql:"",params:[]};if(Array.isArray(J)){let z=[new m0("(")];for(let[U,O]of J.entries())if(z.push(O),U<J.length-1)z.push(new m0(", "));return z.push(new m0(")")),this.buildQueryFromSourceParams(z,X)}if(M(J,f))return this.buildQueryFromSourceParams(J.queryChunks,{...X,inlineParams:H||J.shouldInlineParams});if(M(J,P)){let z=J[P.Symbol.Schema],U=J[P.Symbol.Name];return{sql:z===void 0||J[M8]?_(U):_(z)+"."+_(U),params:[]}}if(M(J,U0)){let z=G.getColumnCasing(J);if(Z.invokeSource==="indexes")return{sql:_(z),params:[]};let U=J.table[P.Symbol.Schema];return{sql:J.table[M8]||U===void 0?_(J.table[P.Symbol.Name])+"."+_(z):_(U)+"."+_(J.table[P.Symbol.Name])+"."+_(z),params:[]}}if(M(J,V1)){let z=J[M0].schema,U=J[M0].name;return{sql:z===void 0||J[M0].isAlias?_(U):_(z)+"."+_(U),params:[]}}if(M(J,A1)){if(M(J.value,w4))return{sql:$(Q.value++,J),params:[J],typings:["none"]};let z=J.value===null?null:J.encoder.mapToDriverValue(J.value);if(M(z,f))return this.buildQueryFromSourceParams([z],X);if(H)return{sql:this.mapInlineParam(z,X),params:[]};let U=["none"];if(W)U=[W(J.encoder)];return{sql:$(Q.value++,z),params:[z],typings:U}}if(M(J,w4))return{sql:$(Q.value++,J),params:[J],typings:["none"]};if(M(J,f.Aliased)&&J.fieldAlias!==void 0)return{sql:_(J.fieldAlias),params:[]};if(M(J,S0)){if(J._.isWith)return{sql:_(J._.alias),params:[]};return this.buildQueryFromSourceParams([new m0("("),J._.sql,new m0(") "),new v6(J._.alias)],X)}if(v7(J)){if(J.schema)return{sql:_(J.schema)+"."+_(J.enumName),params:[]};return{sql:_(J.enumName),params:[]}}if(M5(J)){if(J.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([J.getSQL()],X);return this.buildQueryFromSourceParams([new m0("("),J.getSQL(),new m0(")")],X)}if(H)return{sql:this.mapInlineParam(J,X),params:[]};return{sql:$(Q.value++,J),params:[J],typings:["none"]}}))}mapInlineParam(Y,{escapeString:Z}){if(Y===null)return"null";if(typeof Y==="number"||typeof Y==="boolean")return Y.toString();if(typeof Y==="string")return Z(Y);if(typeof Y==="object"){let X=Y.toString();if(X==="[object Object]")return Z(JSON.stringify(Y));return Z(X)}throw Error("Unexpected param value: "+Y)}getSQL(){return this}as(Y){if(Y===void 0)return this;return new f.Aliased(this,Y)}mapWith(Y){return this.decoder=typeof Y==="function"?{mapFromDriverValue:Y}:Y,this}inlineParams(){return this.shouldInlineParams=!0,this}if(Y){return Y?this:void 0}}class v6{constructor(Y){this.value=Y}static[E]="Name";brand;getSQL(){return new f([this])}}function y7(Y){return typeof Y==="object"&&Y!==null&&"mapToDriverValue"in Y&&typeof Y.mapToDriverValue==="function"}var g7={mapFromDriverValue:(Y)=>Y},p7={mapToDriverValue:(Y)=>Y},nT={...g7,...p7};class A1{constructor(Y,Z=p7){this.value=Y,this.encoder=Z}static[E]="Param";brand;getSQL(){return new f([this])}}function V(Y,...Z){let X=[];if(Z.length>0||Y.length>0&&Y[0]!=="")X.push(new m0(Y[0]));for(let[G,_]of Z.entries())X.push(_,new m0(Y[G+1]));return new f(X)}((Y)=>{function Z(){return new f([])}Y.empty=Z;function X(Q){return new f(Q)}Y.fromList=X;function G(Q){return new f([new m0(Q)])}Y.raw=G;function _(Q,J){let z=[];for(let[U,O]of Q.entries()){if(U>0&&J!==void 0)z.push(J);z.push(O)}return new f(z)}Y.join=_;function $(Q){return new v6(Q)}Y.identifier=$;function W(Q){return new w4(Q)}Y.placeholder=W;function H(Q,J){return new A1(Q,J)}Y.param=H})(V||(V={}));((Y)=>{class Z{constructor(X,G){this.sql=X,this.fieldAlias=G}static[E]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new Z(this.sql,this.fieldAlias)}}Y.Aliased=Z})(f||(f={}));class w4{constructor(Y){this.name=Y}static[E]="Placeholder";getSQL(){return new f([this])}}function A5(Y,Z){return Y.map((X)=>{if(M(X,w4)){if(!(X.name in Z))throw Error(`No value for placeholder "${X.name}" was provided`);return Z[X.name]}if(M(X,A1)&&M(X.value,w4)){if(!(X.value.name in Z))throw Error(`No value for placeholder "${X.value.name}" was provided`);return X.encoder.mapToDriverValue(Z[X.value.name])}return X})}var cU=Symbol.for("drizzle:IsDrizzleView");class V1{static[E]="View";[M0];[cU]=!0;constructor({name:Y,schema:Z,selectedFields:X,query:G}){this[M0]={name:Y,originalName:Y,schema:Z,selectedFields:X,query:G,isExisting:!G,isAlias:!1}}getSQL(){return new f([this])}}U0.prototype.getSQL=function(){return new f([this])};P.prototype.getSQL=function(){return new f([this])};S0.prototype.getSQL=function(){return new f([this])};class M2{constructor(Y){this.table=Y}static[E]="ColumnAliasProxyHandler";get(Y,Z){if(Z==="table")return this.table;return Y[Z]}}class A8{constructor(Y,Z){this.alias=Y,this.replaceOriginalName=Z}static[E]="TableAliasProxyHandler";get(Y,Z){if(Z===P.Symbol.IsAlias)return!0;if(Z===P.Symbol.Name)return this.alias;if(this.replaceOriginalName&&Z===P.Symbol.OriginalName)return this.alias;if(Z===M0)return{...Y[M0],name:this.alias,isAlias:!0};if(Z===P.Symbol.Columns){let G=Y[P.Symbol.Columns];if(!G)return G;let _={};return Object.keys(G).map(($)=>{_[$]=new Proxy(G[$],new M2(new Proxy(Y,this)))}),_}let X=Y[Z];if(M(X,U0))return new Proxy(X,new M2(new Proxy(Y,this)));return X}}function x6(Y,Z){return new Proxy(Y,new A8(Z,!1))}function i1(Y,Z){return new Proxy(Y,new M2(new Proxy(Y.table,new A8(Z,!1))))}function R5(Y,Z){return new f.Aliased(R8(Y.sql,Z),Y.fieldAlias)}function R8(Y,Z){return V.join(Y.queryChunks.map((X)=>{if(M(X,U0))return i1(X,Z);if(M(X,f))return R8(X,Z);if(M(X,f.Aliased))return R5(X,Z);return X}))}class f6 extends Error{static[E]="DrizzleError";constructor({message:Y,cause:Z}){super(Y);this.name="DrizzleError",this.cause=Z}}class H4 extends Error{constructor(Y,Z,X){super(`Failed query: ${Y}
|
|
66
|
-
params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrace(this,H4),X)this.cause=X}}class w5 extends f6{static[E]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class m7{static[E]="ConsoleLogWriter";write(Y){console.log(Y)}}class N5{static[E]="DefaultLogger";writer;constructor(Y){this.writer=Y?.writer??new m7}logQuery(Y,Z){let X=Z.map((_)=>{try{return JSON.stringify(_)}catch{return String(_)}}),G=X.length?` -- params: [${X.join(", ")}]`:"";this.writer.write(`Query: ${Y}${G}`)}}class I5{static[E]="NoopLogger";logQuery(){}}class G1{static[E]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(Y){return this.then(void 0,Y)}finally(Y){return this.then((Z)=>{return Y?.(),Z},(Z)=>{throw Y?.(),Z})}then(Y,Z){return this.execute().then(Y,Z)}}function u7(Y,Z,X){let G={},_=Y.reduce(($,{path:W,field:H},Q)=>{let J;if(M(H,U0))J=H;else if(M(H,f))J=H.decoder;else J=H.sql.decoder;let z=$;for(let[U,O]of W.entries())if(U<W.length-1){if(!(O in z))z[O]={};z=z[O]}else{let L=Z[Q],w=z[O]=L===null?null:J.mapFromDriverValue(L);if(X&&M(H,U0)&&W.length===2){let R=W[0];if(!(R in G))G[R]=w===null?d0(H.table):!1;else if(typeof G[R]==="string"&&G[R]!==d0(H.table))G[R]=!1}}return $},{});if(X&&Object.keys(G).length>0){for(let[$,W]of Object.entries(G))if(typeof W==="string"&&!X[W])_[$]=null}return _}function T1(Y,Z){return Object.entries(Y).reduce((X,[G,_])=>{if(typeof G!=="string")return X;let $=Z?[...Z,G]:[G];if(M(_,U0)||M(_,f)||M(_,f.Aliased))X.push({path:$,field:_});else if(M(_,P))X.push(...T1(_[P.Symbol.Columns],$));else X.push(...T1(_,$));return X},[])}function w8(Y,Z){let X=Object.keys(Y),G=Object.keys(Z);if(X.length!==G.length)return!1;for(let[_,$]of X.entries())if($!==G[_])return!1;return!0}function h6(Y,Z){let X=Object.entries(Z).filter(([,G])=>G!==void 0).map(([G,_])=>{if(M(_,f)||M(_,U0))return[G,_];else return[G,new A1(_,Y[P.Symbol.Columns][G])]});if(X.length===0)throw Error("No values to set");return Object.fromEntries(X)}function d7(Y,Z){for(let X of Z)for(let G of Object.getOwnPropertyNames(X.prototype)){if(G==="constructor")continue;Object.defineProperty(Y.prototype,G,Object.getOwnPropertyDescriptor(X.prototype,G)||Object.create(null))}}function c7(Y){return Y[P.Symbol.Columns]}function J4(Y){return M(Y,S0)?Y._.alias:M(Y,V1)?Y[M0].name:M(Y,f)?void 0:Y[P.Symbol.IsAlias]?Y[P.Symbol.Name]:Y[P.Symbol.BaseName]}function X0(Y,Z){return{name:typeof Y==="string"&&Y.length>0?Y:"",config:typeof Y==="object"?Y:Z}}function l7(Y){if(typeof Y!=="object"||Y===null)return!1;if(Y.constructor.name!=="Object")return!1;if("logger"in Y){let Z=typeof Y.logger;if(Z!=="boolean"&&(Z!=="object"||typeof Y.logger.logQuery!=="function")&&Z!=="undefined")return!1;return!0}if("schema"in Y){let Z=typeof Y.schema;if(Z!=="object"&&Z!=="undefined")return!1;return!0}if("casing"in Y){let Z=typeof Y.casing;if(Z!=="string"&&Z!=="undefined")return!1;return!0}if("mode"in Y){if(Y.mode!=="default"||Y.mode!=="planetscale"||Y.mode!==void 0)return!1;return!0}if("connection"in Y){let Z=typeof Y.connection;if(Z!=="string"&&Z!=="object"&&Z!=="undefined")return!1;return!0}if("client"in Y){let Z=typeof Y.client;if(Z!=="object"&&Z!=="function"&&Z!=="undefined")return!1;return!0}if(Object.keys(Y).length===0)return!0;return!1}class N4 extends k{static[E]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(Y){if(Y){let{name:Z,...X}=Y;this.config.generatedIdentity={type:"always",sequenceName:Z,sequenceOptions:X}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(Y){if(Y){let{name:Z,...X}=Y;this.config.generatedIdentity={type:"byDefault",sequenceName:Z,sequenceOptions:X}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class o7 extends N4{static[E]="PgBigInt53Builder";constructor(Y){super(Y,"number","PgBigInt53")}build(Y){return new i7(Y,this.config)}}class i7 extends j{static[E]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class n7 extends N4{static[E]="PgBigInt64Builder";constructor(Y){super(Y,"bigint","PgBigInt64")}build(Y){return new r7(Y,this.config)}}class r7 extends j{static[E]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(Y){return BigInt(Y)}}function s7(Y,Z){let{name:X,config:G}=X0(Y,Z);if(G.mode==="number")return new o7(X);return new n7(X)}class t7 extends k{static[E]="PgBigSerial53Builder";constructor(Y){super(Y,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new a7(Y,this.config)}}class a7 extends j{static[E]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class e7 extends k{static[E]="PgBigSerial64Builder";constructor(Y){super(Y,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(Y){return new Y$(Y,this.config)}}class Y$ extends j{static[E]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(Y){return BigInt(Y)}}function Z$(Y,Z){let{name:X,config:G}=X0(Y,Z);if(G.mode==="number")return new t7(X);return new e7(X)}class X$ extends k{static[E]="PgBooleanBuilder";constructor(Y){super(Y,"boolean","PgBoolean")}build(Y){return new G$(Y,this.config)}}class G$ extends j{static[E]="PgBoolean";getSQLType(){return"boolean"}}function N8(Y){return new X$(Y??"")}class _$ extends k{static[E]="PgCharBuilder";constructor(Y,Z){super(Y,"string","PgChar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new $$(Y,this.config)}}class $$ extends j{static[E]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function W$(Y,Z={}){let{name:X,config:G}=X0(Y,Z);return new _$(X,G)}class H$ extends k{static[E]="PgCidrBuilder";constructor(Y){super(Y,"string","PgCidr")}build(Y){return new J$(Y,this.config)}}class J$ extends j{static[E]="PgCidr";getSQLType(){return"cidr"}}function Q$(Y){return new H$(Y??"")}class z$ extends k{static[E]="PgCustomColumnBuilder";constructor(Y,Z,X){super(Y,"custom","PgCustomColumn");this.config.fieldConfig=Z,this.config.customTypeParams=X}build(Y){return new F$(Y,this.config)}}class F$ extends j{static[E]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(Y,Z){super(Y,Z);this.sqlName=Z.customTypeParams.dataType(Z.fieldConfig),this.mapTo=Z.customTypeParams.toDriver,this.mapFrom=Z.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(Y){return typeof this.mapFrom==="function"?this.mapFrom(Y):Y}mapToDriverValue(Y){return typeof this.mapTo==="function"?this.mapTo(Y):Y}}function U$(Y){return(Z,X)=>{let{name:G,config:_}=X0(Z,X);return new z$(G,_,Y)}}class Q4 extends k{static[E]="PgDateColumnBaseBuilder";defaultNow(){return this.default(V`now()`)}}class E$ extends Q4{static[E]="PgDateBuilder";constructor(Y){super(Y,"date","PgDate")}build(Y){return new k6(Y,this.config)}}class k6 extends j{static[E]="PgDate";getSQLType(){return"date"}mapFromDriverValue(Y){return new Date(Y)}mapToDriverValue(Y){return Y.toISOString()}}class V$ extends Q4{static[E]="PgDateStringBuilder";constructor(Y){super(Y,"string","PgDateString")}build(Y){return new b6(Y,this.config)}}class b6 extends j{static[E]="PgDateString";getSQLType(){return"date"}}function O$(Y,Z){let{name:X,config:G}=X0(Y,Z);if(G?.mode==="date")return new E$(X);return new V$(X)}class D$ extends k{static[E]="PgDoublePrecisionBuilder";constructor(Y){super(Y,"number","PgDoublePrecision")}build(Y){return new L$(Y,this.config)}}class L$ extends j{static[E]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function M$(Y){return new D$(Y??"")}class A$ extends k{static[E]="PgInetBuilder";constructor(Y){super(Y,"string","PgInet")}build(Y){return new R$(Y,this.config)}}class R$ extends j{static[E]="PgInet";getSQLType(){return"inet"}}function w$(Y){return new A$(Y??"")}class N$ extends N4{static[E]="PgIntegerBuilder";constructor(Y){super(Y,"number","PgInteger")}build(Y){return new I$(Y,this.config)}}class I$ extends j{static[E]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseInt(Y);return Y}}function I8(Y){return new N$(Y??"")}class K$ extends k{static[E]="PgIntervalBuilder";constructor(Y,Z){super(Y,"string","PgInterval");this.config.intervalConfig=Z}build(Y){return new B$(Y,this.config)}}class B$ extends j{static[E]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let Y=this.fields?` ${this.fields}`:"",Z=this.precision?`(${this.precision})`:"";return`interval${Y}${Z}`}}function T$(Y,Z={}){let{name:X,config:G}=X0(Y,Z);return new K$(X,G)}class C$ extends k{static[E]="PgJsonBuilder";constructor(Y){super(Y,"json","PgJson")}build(Y){return new y6(Y,this.config)}}class y6 extends j{static[E]="PgJson";constructor(Y,Z){super(Y,Z)}getSQLType(){return"json"}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}}function q$(Y){return new C$(Y??"")}class j$ extends k{static[E]="PgJsonbBuilder";constructor(Y){super(Y,"json","PgJsonb")}build(Y){return new g6(Y,this.config)}}class g6 extends j{static[E]="PgJsonb";constructor(Y,Z){super(Y,Z)}getSQLType(){return"jsonb"}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}}function P$(Y){return new j$(Y??"")}class S$ extends k{static[E]="PgLineBuilder";constructor(Y){super(Y,"array","PgLine")}build(Y){return new v$(Y,this.config)}}class v$ extends j{static[E]="PgLine";getSQLType(){return"line"}mapFromDriverValue(Y){let[Z,X,G]=Y.slice(1,-1).split(",");return[Number.parseFloat(Z),Number.parseFloat(X),Number.parseFloat(G)]}mapToDriverValue(Y){return`{${Y[0]},${Y[1]},${Y[2]}}`}}class x$ extends k{static[E]="PgLineABCBuilder";constructor(Y){super(Y,"json","PgLineABC")}build(Y){return new f$(Y,this.config)}}class f$ extends j{static[E]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(Y){let[Z,X,G]=Y.slice(1,-1).split(",");return{a:Number.parseFloat(Z),b:Number.parseFloat(X),c:Number.parseFloat(G)}}mapToDriverValue(Y){return`{${Y.a},${Y.b},${Y.c}}`}}function h$(Y,Z){let{name:X,config:G}=X0(Y,Z);if(!G?.mode||G.mode==="tuple")return new S$(X);return new x$(X)}class k$ extends k{static[E]="PgMacaddrBuilder";constructor(Y){super(Y,"string","PgMacaddr")}build(Y){return new b$(Y,this.config)}}class b$ extends j{static[E]="PgMacaddr";getSQLType(){return"macaddr"}}function y$(Y){return new k$(Y??"")}class g$ extends k{static[E]="PgMacaddr8Builder";constructor(Y){super(Y,"string","PgMacaddr8")}build(Y){return new p$(Y,this.config)}}class p$ extends j{static[E]="PgMacaddr8";getSQLType(){return"macaddr8"}}function m$(Y){return new g$(Y??"")}class u$ extends k{static[E]="PgNumericBuilder";constructor(Y,Z,X){super(Y,"string","PgNumeric");this.config.precision=Z,this.config.scale=X}build(Y){return new p6(Y,this.config)}}class p6 extends j{static[E]="PgNumeric";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue(Y){if(typeof Y==="string")return Y;return String(Y)}getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}class d$ extends k{static[E]="PgNumericNumberBuilder";constructor(Y,Z,X){super(Y,"number","PgNumericNumber");this.config.precision=Z,this.config.scale=X}build(Y){return new c$(Y,this.config)}}class c$ extends j{static[E]="PgNumericNumber";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}mapToDriverValue=String;getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}class l$ extends k{static[E]="PgNumericBigIntBuilder";constructor(Y,Z,X){super(Y,"bigint","PgNumericBigInt");this.config.precision=Z,this.config.scale=X}build(Y){return new o$(Y,this.config)}}class o$ extends j{static[E]="PgNumericBigInt";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}function i$(Y,Z){let{name:X,config:G}=X0(Y,Z),_=G?.mode;return _==="number"?new d$(X,G?.precision,G?.scale):_==="bigint"?new l$(X,G?.precision,G?.scale):new u$(X,G?.precision,G?.scale)}class n$ extends k{static[E]="PgPointTupleBuilder";constructor(Y){super(Y,"array","PgPointTuple")}build(Y){return new r$(Y,this.config)}}class r$ extends j{static[E]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(Y){if(typeof Y==="string"){let[Z,X]=Y.slice(1,-1).split(",");return[Number.parseFloat(Z),Number.parseFloat(X)]}return[Y.x,Y.y]}mapToDriverValue(Y){return`(${Y[0]},${Y[1]})`}}class s$ extends k{static[E]="PgPointObjectBuilder";constructor(Y){super(Y,"json","PgPointObject")}build(Y){return new t$(Y,this.config)}}class t$ extends j{static[E]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(Y){if(typeof Y==="string"){let[Z,X]=Y.slice(1,-1).split(",");return{x:Number.parseFloat(Z),y:Number.parseFloat(X)}}return Y}mapToDriverValue(Y){return`(${Y.x},${Y.y})`}}function a$(Y,Z){let{name:X,config:G}=X0(Y,Z);if(!G?.mode||G.mode==="tuple")return new n$(X);return new s$(X)}function lU(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 e$(Y,Z){let X=new ArrayBuffer(8),G=new DataView(X);for(let _=0;_<8;_++)G.setUint8(_,Y[Z+_]);return G.getFloat64(0,!0)}function K5(Y){let Z=lU(Y),X=0,G=Z[X];X+=1;let _=new DataView(Z.buffer),$=_.getUint32(X,G===1);X+=4;let W;if($&536870912)W=_.getUint32(X,G===1),X+=4;if(($&65535)===1){let H=e$(Z,X);X+=8;let Q=e$(Z,X);return X+=8,[H,Q]}throw Error("Unsupported geometry type")}class Y3 extends k{static[E]="PgGeometryBuilder";constructor(Y){super(Y,"array","PgGeometry")}build(Y){return new Z3(Y,this.config)}}class Z3 extends j{static[E]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){return K5(Y)}mapToDriverValue(Y){return`point(${Y[0]} ${Y[1]})`}}class X3 extends k{static[E]="PgGeometryObjectBuilder";constructor(Y){super(Y,"json","PgGeometryObject")}build(Y){return new G3(Y,this.config)}}class G3 extends j{static[E]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){let Z=K5(Y);return{x:Z[0],y:Z[1]}}mapToDriverValue(Y){return`point(${Y.x} ${Y.y})`}}function _3(Y,Z){let{name:X,config:G}=X0(Y,Z);if(!G?.mode||G.mode==="tuple")return new Y3(X);return new X3(X)}class $3 extends k{static[E]="PgRealBuilder";constructor(Y,Z){super(Y,"number","PgReal");this.config.length=Z}build(Y){return new W3(Y,this.config)}}class W3 extends j{static[E]="PgReal";constructor(Y,Z){super(Y,Z)}getSQLType(){return"real"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function H3(Y){return new $3(Y??"")}class J3 extends k{static[E]="PgSerialBuilder";constructor(Y){super(Y,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new Q3(Y,this.config)}}class Q3 extends j{static[E]="PgSerial";getSQLType(){return"serial"}}function z3(Y){return new J3(Y??"")}class F3 extends N4{static[E]="PgSmallIntBuilder";constructor(Y){super(Y,"number","PgSmallInt")}build(Y){return new U3(Y,this.config)}}class U3 extends j{static[E]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number(Y);return Y}}function E3(Y){return new F3(Y??"")}class V3 extends k{static[E]="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[E]="PgSmallSerial";getSQLType(){return"smallserial"}}function D3(Y){return new V3(Y??"")}class L3 extends k{static[E]="PgTextBuilder";constructor(Y,Z){super(Y,"string","PgText");this.config.enumValues=Z.enum}build(Y){return new M3(Y,this.config)}}class M3 extends j{static[E]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function A3(Y,Z={}){let{name:X,config:G}=X0(Y,Z);return new L3(X,G)}class R3 extends Q4{constructor(Y,Z,X){super(Y,"string","PgTime");this.withTimezone=Z,this.precision=X,this.config.withTimezone=Z,this.config.precision=X}static[E]="PgTimeBuilder";build(Y){return new m6(Y,this.config)}}class m6 extends j{static[E]="PgTime";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function w3(Y,Z={}){let{name:X,config:G}=X0(Y,Z);return new R3(X,G.withTimezone??!1,G.precision)}class N3 extends Q4{static[E]="PgTimestampBuilder";constructor(Y,Z,X){super(Y,"date","PgTimestamp");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new u6(Y,this.config)}}class u6 extends j{static[E]="PgTimestamp";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(Y)=>{return new Date(this.withTimezone?Y:Y+"+0000")};mapToDriverValue=(Y)=>{return Y.toISOString()}}class I3 extends Q4{static[E]="PgTimestampStringBuilder";constructor(Y,Z,X){super(Y,"string","PgTimestampString");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new d6(Y,this.config)}}class d6 extends j{static[E]="PgTimestampString";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function K3(Y,Z={}){let{name:X,config:G}=X0(Y,Z);if(G?.mode==="string")return new I3(X,G.withTimezone??!1,G.precision);return new N3(X,G?.withTimezone??!1,G?.precision)}class B3 extends k{static[E]="PgUUIDBuilder";constructor(Y){super(Y,"string","PgUUID")}defaultRandom(){return this.default(V`gen_random_uuid()`)}build(Y){return new c6(Y,this.config)}}class c6 extends j{static[E]="PgUUID";getSQLType(){return"uuid"}}function C1(Y){return new B3(Y??"")}class T3 extends k{static[E]="PgVarcharBuilder";constructor(Y,Z){super(Y,"string","PgVarchar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new C3(Y,this.config)}}class C3 extends j{static[E]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function t0(Y,Z={}){let{name:X,config:G}=X0(Y,Z);return new T3(X,G)}class q3 extends k{static[E]="PgBinaryVectorBuilder";constructor(Y,Z){super(Y,"string","PgBinaryVector");this.config.dimensions=Z.dimensions}build(Y){return new j3(Y,this.config)}}class j3 extends j{static[E]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function P3(Y,Z){let{name:X,config:G}=X0(Y,Z);return new q3(X,G)}class S3 extends k{static[E]="PgHalfVectorBuilder";constructor(Y,Z){super(Y,"array","PgHalfVector");this.config.dimensions=Z.dimensions}build(Y){return new v3(Y,this.config)}}class v3 extends j{static[E]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){return Y.slice(1,-1).split(",").map((Z)=>Number.parseFloat(Z))}}function x3(Y,Z){let{name:X,config:G}=X0(Y,Z);return new S3(X,G)}class f3 extends k{static[E]="PgSparseVectorBuilder";constructor(Y,Z){super(Y,"string","PgSparseVector");this.config.dimensions=Z.dimensions}build(Y){return new h3(Y,this.config)}}class h3 extends j{static[E]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function k3(Y,Z){let{name:X,config:G}=X0(Y,Z);return new f3(X,G)}class b3 extends k{static[E]="PgVectorBuilder";constructor(Y,Z){super(Y,"array","PgVector");this.config.dimensions=Z.dimensions}build(Y){return new y3(Y,this.config)}}class y3 extends j{static[E]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){return Y.slice(1,-1).split(",").map((Z)=>Number.parseFloat(Z))}}function g3(Y,Z){let{name:X,config:G}=X0(Y,Z);return new b3(X,G)}function p3(){return{bigint:s7,bigserial:Z$,boolean:N8,char:W$,cidr:Q$,customType:U$,date:O$,doublePrecision:M$,inet:w$,integer:I8,interval:T$,json:q$,jsonb:P$,line:h$,macaddr:y$,macaddr8:m$,numeric:i$,point:a$,geometry:_3,real:H3,serial:z3,smallint:E3,smallserial:D3,text:A3,time:w3,timestamp:K3,uuid:C1,varchar:t0,bit:P3,halfvec:x3,sparsevec:k3,vector:g3}}var B5=Symbol.for("drizzle:PgInlineForeignKeys"),m3=Symbol.for("drizzle:EnableRLS");class u0 extends P{static[E]="PgTable";static Symbol=Object.assign({},P.Symbol,{InlineForeignKeys:B5,EnableRLS:m3});[B5]=[];[m3]=!1;[P.Symbol.ExtraConfigBuilder]=void 0;[P.Symbol.ExtraConfigColumns]={}}function oU(Y,Z,X,G,_=Y){let $=new u0(Y,G,_),W=typeof Z==="function"?Z(p3()):Z,H=Object.fromEntries(Object.entries(W).map(([z,U])=>{let O=U;O.setName(z);let L=O.build($);return $[B5].push(...O.buildForeignKeys(L,$)),[z,L]})),Q=Object.fromEntries(Object.entries(W).map(([z,U])=>{let O=U;O.setName(z);let L=O.buildExtraConfigColumn($);return[z,L]})),J=Object.assign($,H);if(J[P.Symbol.Columns]=H,J[P.Symbol.ExtraConfigColumns]=Q,X)J[u0.Symbol.ExtraConfigBuilder]=X;return Object.assign(J,{enableRLS:()=>{return J[u0.Symbol.EnableRLS]=!0,J}})}var I4=(Y,Z,X)=>{return oU(Y,Z,X,void 0)};function u3(...Y){if(Y[0].columns)return new K8(Y[0].columns,Y[0].name);return new K8(Y)}class K8{static[E]="PgPrimaryKeyBuilder";columns;name;constructor(Y,Z){this.columns=Y,this.name=Z}build(Y){return new d3(Y,this.columns,this.name)}}class d3{constructor(Y,Z,X){this.table=Y,this.columns=Z,this.name=X}static[E]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[u0.Symbol.Name]}_${this.columns.map((Y)=>Y.name).join("_")}_pk`}}function O1(Y,Z){if(y7(Z)&&!M5(Y)&&!M(Y,A1)&&!M(Y,w4)&&!M(Y,U0)&&!M(Y,P)&&!M(Y,V1))return new A1(Y,Z);return Y}var l6=(Y,Z)=>{return V`${Y} = ${O1(Z,Y)}`},c3=(Y,Z)=>{return V`${Y} <> ${O1(Z,Y)}`};function B8(...Y){let Z=Y.filter((X)=>X!==void 0);if(Z.length===0)return;if(Z.length===1)return new f(Z);return new f([new m0("("),V.join(Z,new m0(" and ")),new m0(")")])}function l3(...Y){let Z=Y.filter((X)=>X!==void 0);if(Z.length===0)return;if(Z.length===1)return new f(Z);return new f([new m0("("),V.join(Z,new m0(" or ")),new m0(")")])}function o3(Y){return V`not ${Y}`}var i3=(Y,Z)=>{return V`${Y} > ${O1(Z,Y)}`},n3=(Y,Z)=>{return V`${Y} >= ${O1(Z,Y)}`},r3=(Y,Z)=>{return V`${Y} < ${O1(Z,Y)}`},s3=(Y,Z)=>{return V`${Y} <= ${O1(Z,Y)}`};function t3(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return V`false`;return V`${Y} in ${Z.map((X)=>O1(X,Y))}`}return V`${Y} in ${O1(Z,Y)}`}function a3(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return V`true`;return V`${Y} not in ${Z.map((X)=>O1(X,Y))}`}return V`${Y} not in ${O1(Z,Y)}`}function e3(Y){return V`${Y} is null`}function YW(Y){return V`${Y} is not null`}function ZW(Y){return V`exists ${Y}`}function XW(Y){return V`not exists ${Y}`}function GW(Y,Z,X){return V`${Y} between ${O1(Z,Y)} and ${O1(X,Y)}`}function _W(Y,Z,X){return V`${Y} not between ${O1(Z,Y)} and ${O1(X,Y)}`}function $W(Y,Z){return V`${Y} like ${Z}`}function WW(Y,Z){return V`${Y} not like ${Z}`}function HW(Y,Z){return V`${Y} ilike ${Z}`}function JW(Y,Z){return V`${Y} not ilike ${Z}`}function QW(Y){return V`${Y} asc`}function zW(Y){return V`${Y} desc`}class T5{constructor(Y,Z,X){this.sourceTable=Y,this.referencedTable=Z,this.relationName=X,this.referencedTableName=Z[P.Symbol.Name]}static[E]="Relation";referencedTableName;fieldName}class FW{constructor(Y,Z){this.table=Y,this.config=Z}static[E]="Relations"}class K4 extends T5{constructor(Y,Z,X,G){super(Y,Z,X?.relationName);this.config=X,this.isNullable=G}static[E]="One";withFieldName(Y){let Z=new K4(this.sourceTable,this.referencedTable,this.config,this.isNullable);return Z.fieldName=Y,Z}}class T8 extends T5{constructor(Y,Z,X){super(Y,Z,X?.relationName);this.config=X}static[E]="Many";withFieldName(Y){let Z=new T8(this.sourceTable,this.referencedTable,this.config);return Z.fieldName=Y,Z}}function UW(){return{and:B8,between:GW,eq:l6,exists:ZW,gt:i3,gte:n3,ilike:HW,inArray:t3,isNull:e3,isNotNull:YW,like:$W,lt:r3,lte:s3,ne:c3,not:o3,notBetween:_W,notExists:XW,notLike:WW,notIlike:JW,notInArray:a3,or:l3,sql:V}}function EW(){return{sql:V,asc:QW,desc:zW}}function VW(Y,Z){if(Object.keys(Y).length===1&&"default"in Y&&!M(Y.default,P))Y=Y.default;let X={},G={},_={};for(let[$,W]of Object.entries(Y))if(M(W,P)){let H=g4(W),Q=G[H];X[H]=$,_[$]={tsName:$,dbName:W[P.Symbol.Name],schema:W[P.Symbol.Schema],columns:W[P.Symbol.Columns],relations:Q?.relations??{},primaryKey:Q?.primaryKey??[]};for(let z of Object.values(W[P.Symbol.Columns]))if(z.primary)_[$].primaryKey.push(z);let J=W[P.Symbol.ExtraConfigBuilder]?.(W[P.Symbol.ExtraConfigColumns]);if(J){for(let z of Object.values(J))if(M(z,K8))_[$].primaryKey.push(...z.columns)}}else if(M(W,FW)){let H=g4(W.table),Q=X[H],J=W.config(Z(W.table)),z;for(let[U,O]of Object.entries(J))if(Q){let L=_[Q];if(L.relations[U]=O,z)L.primaryKey.push(...z)}else{if(!(H in G))G[H]={relations:{},primaryKey:z};G[H].relations[U]=O}}return{tables:_,tableNamesMap:X}}function iU(Y){return function(X,G){return new K4(Y,X,G,G?.fields.reduce((_,$)=>_&&$.notNull,!0)??!1)}}function nU(Y){return function(X,G){return new T8(Y,X,G)}}function OW(Y,Z,X){if(M(X,K4)&&X.config)return{fields:X.config.fields,references:X.config.references};let G=Z[g4(X.referencedTable)];if(!G)throw Error(`Table "${X.referencedTable[P.Symbol.Name]}" not found in schema`);let _=Y[G];if(!_)throw Error(`Table "${G}" not found in schema`);let $=X.sourceTable,W=Z[g4($)];if(!W)throw Error(`Table "${$[P.Symbol.Name]}" not found in schema`);let H=[];for(let Q of Object.values(_.relations))if(X.relationName&&X!==Q&&Q.relationName===X.relationName||!X.relationName&&Q.referencedTable===X.sourceTable)H.push(Q);if(H.length>1)throw X.relationName?Error(`There are multiple relations with name "${X.relationName}" in table "${G}"`):Error(`There are multiple relations between "${G}" and "${X.sourceTable[P.Symbol.Name]}". Please specify relation name`);if(H[0]&&M(H[0],K4)&&H[0].config)return{fields:H[0].config.references,references:H[0].config.fields};throw Error(`There is not enough information to infer relation "${W}.${X.fieldName}"`)}function DW(Y){return{one:iU(Y),many:nU(Y)}}function o6(Y,Z,X,G,_=($)=>$){let $={};for(let[W,H]of G.entries())if(H.isJson){let Q=Z.relations[H.tsKey],J=X[W],z=typeof J==="string"?JSON.parse(J):J;$[H.tsKey]=M(Q,K4)?z&&o6(Y,Y[H.relationTableTsKey],z,H.selection,_):z.map((U)=>o6(Y,Y[H.relationTableTsKey],U,H.selection,_))}else{let Q=_(X[W]),J=H.field,z;if(M(J,U0))z=J;else if(M(J,f))z=J.decoder;else z=J.sql.decoder;$[H.tsKey]=Q===null?null:z.mapFromDriverValue(Q)}return $}import ME from"os";import AE from"fs";var i6=new Map,C5=new Map,q5=Symbol("OriginError"),A2={};class q1 extends Promise{constructor(Y,Z,X,G,_={}){let $,W;super((H,Q)=>{$=H,W=Q});this.tagged=Array.isArray(Y.raw),this.strings=Y,this.args=Z,this.handler=X,this.canceller=G,this.options=_,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[q5]=this.handler.debug?Error():this.tagged&&rU(this.strings)}get origin(){return(this.handler.debug?this[q5].stack:this.tagged&&C5.has(this.strings)?C5.get(this.strings):C5.set(this.strings,this[q5].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 G=new Promise((_,$)=>{this.cursorFn=(W)=>{return _({value:W,done:!1}),new Promise((H)=>X=H)},this.resolve=()=>(this.active=!1,_({done:!0})),this.reject=(W)=>(this.active=!1,$(W))});return this.execute(),G},return(){return X&&X(A2),{done:!0}}})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw Error(".stream has been renamed to .forEach")}forEach(Y){return this.forEachFn=Y,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}}function rU(Y){if(i6.has(Y))return i6.get(Y);let Z=Error.stackTraceLimit;return Error.stackTraceLimit=4,i6.set(Y,Error()),Error.stackTraceLimit=Z,i6.get(Y)}class R2 extends Error{constructor(Y){super(Y.message);this.name=this.constructor.name,Object.assign(this,Y)}}var f0={connection:LW,postgres:MW,generic:AW,notSupported:RW};function LW(Y,Z,X){let{host:G,port:_}=X||Z,$=Object.assign(Error("write "+Y+" "+(Z.path||G+":"+_)),{code:Y,errno:Y,address:Z.path||G},Z.path?{}:{port:_});return Error.captureStackTrace($,LW),$}function MW(Y){let Z=new R2(Y);return Error.captureStackTrace(Z,MW),Z}function AW(Y,Z){let X=Object.assign(Error(Y+": "+Z),{code:Y});return Error.captureStackTrace(X,AW),X}function RW(Y){let Z=Object.assign(Error(Y+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:Y});return Error.captureStackTrace(Z,RW),Z}var sU={string:{to:25,from:null,serialize:(Y)=>""+Y},number:{to:0,from:[21,23,26,700,701],serialize:(Y)=>""+Y,parse:(Y)=>+Y},json:{to:114,from:[114,3802],serialize:(Y)=>JSON.stringify(Y),parse:(Y)=>JSON.parse(Y)},boolean:{to:16,from:16,serialize:(Y)=>Y===!0?"t":"f",parse:(Y)=>Y==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(Y)=>(Y instanceof Date?Y:new Date(Y)).toISOString(),parse:(Y)=>new Date(Y)},bytea:{to:17,from:17,serialize:(Y)=>"\\x"+Buffer.from(Y).toString("hex"),parse:(Y)=>Buffer.from(Y.slice(2),"hex")}};class s6{then(){j5()}catch(){j5()}finally(){j5()}}class P8 extends s6{constructor(Y){super();this.value=e6(Y)}}class n1 extends s6{constructor(Y,Z,X){super();this.value=Y,this.type=Z,this.array=X}}class t6 extends s6{constructor(Y,Z){super();this.first=Y,this.rest=Z}build(Y,Z,X,G){let _=tU.map(([$,W])=>({fn:W,i:Y.search($)})).sort(($,W)=>$.i-W.i).pop();return _.i===-1?f5(this.first,G):_.fn(this.first,this.rest,Z,X,G)}}function a6(Y,Z,X,G){let _=Y instanceof n1?Y.value:Y;if(_===void 0){if(Y instanceof n1?Y.value=G.transform.undefined:_=Y=G.transform.undefined,_===void 0)throw f0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+X.push(Y instanceof n1?(Z.push(Y.value),Y.array?Y.array[Y.type||r6(Y.value)]||Y.type||KW(Y.value):Y.type):(Z.push(Y),r6(Y)))}var NW=TW(sU);function v5(Y,Z,X,G,_,$){for(let W=1;W<Y.strings.length;W++)Z+=x5(Z,X,G,_,$)+Y.strings[W],X=Y.args[W];return Z}function x5(Y,Z,X,G,_){return Z instanceof t6?Z.build(Y,X,G,_):Z instanceof q1?S5(Z,X,G,_):Z instanceof P8?Z.value:Z&&Z[0]instanceof q1?Z.reduce(($,W)=>$+" "+S5(W,X,G,_),""):a6(Z,X,G,_)}function S5(Y,Z,X,G){return Y.fragment=!0,v5(Y,Y.strings[0],Y.args[0],Z,X,G)}function IW(Y,Z,X,G,_){return Y.map(($)=>"("+G.map((W)=>x5("values",$[W],Z,X,_)).join(",")+")").join(",")}function wW(Y,Z,X,G,_){let $=Array.isArray(Y[0]),W=Z.length?Z.flat():Object.keys($?Y[0]:Y);return IW($?Y:[Y],X,G,W,_)}function n6(Y,Z,X,G,_){if(typeof Y==="string"&&(Y=[Y].concat(Z)),Array.isArray(Y))return f5(Y,_);let $;return(Z.length?Z.flat():Object.keys(Y)).map((H)=>{return $=Y[H],($ instanceof q1?S5($,X,G,_):$ instanceof P8?$.value:a6($,X,G,_))+" as "+e6(_.transform.column.to?_.transform.column.to(H):H)}).join(",")}var tU=Object.entries({values:wW,in:(...Y)=>{let Z=wW(...Y);return Z==="()"?"(null)":Z},select:n6,as:n6,returning:n6,"\\(":n6,update(Y,Z,X,G,_){return(Z.length?Z.flat():Object.keys(Y)).map(($)=>e6(_.transform.column.to?_.transform.column.to($):$)+"="+x5("values",Y[$],X,G,_))},insert(Y,Z,X,G,_){let $=Z.length?Z.flat():Object.keys(Array.isArray(Y)?Y[0]:Y);return"("+f5($,_)+")values"+IW(Array.isArray(Y)?Y:[Y],X,G,$,_)}}).map(([Y,Z])=>[new RegExp("((?:^|[\\s(])"+Y+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),Z]);function j5(){throw f0.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:aU,parsers:eU}=NW;function KW(Y){if(Array.isArray(Y))return KW(Y[0]);return typeof Y==="string"?1009:0}var BW=function(Y){let Z=TW(Y||{});return{serializers:Object.assign({},aU,Z.serializers),parsers:Object.assign({},eU,Z.parsers)}};function TW(Y){return Object.keys(Y).reduce((Z,X)=>{if(Y[X].from&&[].concat(Y[X].from).forEach((G)=>Z.parsers[G]=Y[X].parse),Y[X].serialize)Z.serializers[Y[X].to]=Y[X].serialize,Y[X].from&&[].concat(Y[X].from).forEach((G)=>Z.serializers[G]=Y[X].serialize);return Z},{parsers:{},serializers:{}})}function f5(Y,{transform:{column:Z}}){return Y.map((X)=>e6(Z.to?Z.to(X):X)).join(",")}var e6=function(Z){return'"'+Z.replace(/"/g,'""').replace(/\./g,'"."')+'"'},r6=function Y(Z){return Z instanceof n1?Z.type:Z instanceof Date?1184:Z instanceof Uint8Array?17:Z===!0||Z===!1?16:typeof Z==="bigint"?20:Array.isArray(Z)?Y(Z[0]):0},YE=/\\/g,ZE=/"/g;function XE(Y){return Y.replace(YE,"\\\\").replace(ZE,"\\\"")}var CW=function Y(Z,X,G,_){if(Array.isArray(Z)===!1)return Z;if(!Z.length)return"{}";let $=Z[0],W=_===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=G.transform.undefined,H===void 0)throw f0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return H===null?"null":'"'+XE(X?X(H.type?H.value:H):""+H)+'"'}).join(W)+"}"},P5={i:0,char:null,str:"",quoted:!1,last:0},qW=function(Z,X,G){return P5.i=P5.last=0,jW(P5,Z,X,G)};function jW(Y,Z,X,G){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==='"')_.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,_.push(jW(Y,Z,X,G));else if(Y.char==="}"){Y.quoted=!1,Y.last<Y.i&&_.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!=='"')_.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&&_.push(X?X(Z.slice(Y.last,Y.i+1)):Z.slice(Y.last,Y.i+1)),_}var p4=(Y)=>{let Z=Y[0];for(let X=1;X<Y.length;X++)Z+=Y[X]==="_"?Y[++X].toUpperCase():Y[X];return Z},m4=(Y)=>{let Z=Y[0].toUpperCase();for(let X=1;X<Y.length;X++)Z+=Y[X]==="_"?Y[++X].toUpperCase():Y[X];return Z},u4=(Y)=>Y.replace(/_/g,"-"),C8=(Y)=>Y.replace(/([A-Z])/g,"_$1").toLowerCase(),q8=(Y)=>(Y.slice(0,1)+Y.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),j8=(Y)=>Y.replace(/-/g,"_");function h5(Y){return function Z(X,G){return typeof X==="object"&&X!==null&&(G.type===114||G.type===3802)?Array.isArray(X)?X.map((_)=>Z(_,G)):Object.entries(X).reduce((_,[$,W])=>Object.assign(_,{[Y($)]:Z(W,G)}),{}):X}}p4.column={from:p4};p4.value={from:h5(p4)};C8.column={to:C8};var k5={...p4};k5.column.to=C8;m4.column={from:m4};m4.value={from:h5(m4)};q8.column={to:q8};var b5={...m4};b5.column.to=q8;u4.column={from:u4};u4.value={from:h5(u4)};j8.column={to:j8};var y5={...u4};y5.column.to=j8;import PW from"net";import WE from"tls";import S8 from"crypto";import g5 from"stream";import{performance as SW}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=GE;function GE(Y=[]){let Z=Y.slice(),X=0;return{get length(){return Z.length-X},remove:(G)=>{let _=Z.indexOf(G);return _===-1?null:(Z.splice(_,1),G)},push:(G)=>(Z.push(G),G),shift:()=>{let G=Z[X++];if(X===Z.length)X=0,Z=[];else Z[X-1]=void 0;return G}}}var a0=Buffer.allocUnsafe(256),_E="BCcDdEFfHPpQSX".split("").reduce((Y,Z)=>{let X=Z.charCodeAt(0);return Y[Z]=()=>{return a0[0]=X,z0.i=5,z0},Y},{}),z0=Object.assign($E,_E,{N:String.fromCharCode(0),i:0,inc(Y){return z0.i+=Y,z0},str(Y){let Z=Buffer.byteLength(Y);return YY(Z),z0.i+=a0.write(Y,z0.i,Z,"utf8"),z0},i16(Y){return YY(2),a0.writeUInt16BE(Y,z0.i),z0.i+=2,z0},i32(Y,Z){if(Z||Z===0)return a0.writeUInt32BE(Y,Z),z0;return YY(4),a0.writeUInt32BE(Y,z0.i),z0.i+=4,z0},z(Y){return YY(Y),a0.fill(0,z0.i,z0.i+Y),z0.i+=Y,z0},raw(Y){return a0=Buffer.concat([a0.subarray(0,z0.i),Y]),z0.i=a0.length,z0},end(Y=1){a0.writeUInt32BE(z0.i-Y,Y);let Z=a0.subarray(0,z0.i);return z0.i=0,a0=Buffer.allocUnsafe(256),Z}}),d=z0;function YY(Y){if(a0.length-z0.i<Y){let Z=a0,X=Z.length;a0=Buffer.allocUnsafe(X+(X>>1)+Y),Z.copy(a0)}}function $E(){return z0.i=0,z0}var u5=fW,HE=1,B4=d().S().end(),vW=d().H().end(),JE=d().i32(8).i32(80877103).end(8),QE=Buffer.concat([d().E().str(d.N).i32(0).end(),B4]),zE=d().D().str("S").str(d.N).end(),w2=()=>{},FE=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),UE={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 fW(Y,Z={},{onopen:X=w2,onend:G=w2,onclose:_=w2}={}){let{ssl:$,max:W,user:H,host:Q,port:J,database:z,parsers:U,transform:O,onnotice:L,onnotify:w,onparameter:R,max_pipeline:b,keep_alive:x,backoff:h,target_session_attrs:g}=Y,B=R1(),K=HE++,C={pid:null,secret:null},q=m5(VY,Y.idle_timeout),c=m5(VY,Y.max_lifetime),n=m5(GH,Y.connect_timeout),N=null,s,p=new d4,t=Buffer.alloc(0),I0=Y.fetch_types,h0={},$1={},r1=Math.random().toString(36).slice(2),T=1,m=0,$0=0,V0=0,k0=0,a=0,J0=0,v0=0,B0=null,A0=null,o0=!1,O0=null,j1=null,c0=null,z4=null,b0=null,R0=null,P1=null,u1=null,v=null,B2=null,i0={queue:Z.closed,idleTimer:q,connect(F){c0=F,OX()},terminate:C2,execute:T2,cancel:eW,end:VY,count:0,id:K};return Z.closed&&Z.closed.push(i0),i0;async function aW(){let F;try{F=Y.socket?await Promise.resolve(Y.socket(Y)):new PW.Socket}catch(D){i4(D);return}return F.on("error",i4),F.on("close",DX),F.on("drain",EX),F}async function eW({pid:F,secret:D},l,W0){try{s=d().i32(16).i32(80877102).i32(F).i32(D).end(16),await VX(),N.once("error",W0),N.once("close",l)}catch(C0){W0(C0)}}function T2(F){if(o0)return g8(F,f0.connection("CONNECTION_DESTROYED",Y));if(F.cancelled)return;try{return F.state=C,v?B.push(F):(v=F,v.active=!0),XH(F),l0(YH(F))&&!F.describeFirst&&!F.cursorFn&&B.length<b&&(!F.options.onexecute||F.options.onexecute(i0))}catch(D){return B.length===0&&l0(B4),d1(D),!0}}function YH(F){if(F.parameters.length>=65534)throw f0.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return F.options.simple?d().Q().str(F.statement.string+d.N).end():F.describeFirst?Buffer.concat([zX(F),vW]):F.prepare?F.prepared?y8(F):Buffer.concat([zX(F),y8(F)]):ZH(F)}function zX(F){return Buffer.concat([MX(F.statement.string,F.parameters,F.statement.types,F.statement.name),mH("S",F.statement.name)])}function y8(F){return Buffer.concat([pH(F.parameters,F.statement.types,F.statement.name,F.cursorName),F.cursorFn?AX("",F.cursorRows):QE])}function ZH(F){return Buffer.concat([MX(F.statement.string,F.parameters,F.statement.types),zE,y8(F)])}function XH(F){let D=[],l=[],W0=v5(F,F.strings[0],F.args[0],D,l,Y);!F.tagged&&F.args.forEach((C0)=>a6(C0,D,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 $1[F.signature],F.parameters=F.parameters||D,F.prepared=F.prepare&&F.signature in $1,F.describeFirst=F.onlyDescribe||D.length&&!F.prepared,F.statement=F.prepared?$1[F.signature]:{string:W0,types:l,name:F.prepare?r1+T++:""},typeof Y.debug==="function"&&Y.debug(K,W0,D,l)}function l0(F,D){if(R0=R0?Buffer.concat([R0,F]):Buffer.from(F),D||R0.length>=1024)return FX(D);return A0===null&&(A0=setImmediate(FX)),!0}function FX(F){let D=N.write(R0,F);return A0!==null&&clearImmediate(A0),R0=A0=null,D}function GH(){d1(f0.connection("CONNECT_TIMEOUT",Y,N)),N.destroy()}async function UX(){if(l0(JE),!await new Promise((D)=>N.once("data",(l)=>D(l[0]===83)))&&$==="prefer")return o4();N.removeAllListeners(),N=WE.connect({socket:N,servername:PW.isIP(N.host)?void 0:N.host,...$==="require"||$==="allow"||$==="prefer"?{rejectUnauthorized:!1}:$==="verify-full"?{}:typeof $==="object"?$:{}}),N.on("secureConnect",o4),N.on("error",i4),N.on("close",DX),N.on("drain",EX)}function EX(){!v&&X(i0)}function EY(F){if(O0){if(O0.push(F),$0-=F.length,$0>0)return}t=O0?Buffer.concat(O0,a-$0):t.length===0?F:Buffer.concat([t,F],t.length+F.length);while(t.length>4){if(a=t.readUInt32BE(1),a>=t.length){$0=a-t.length,O0=[t];break}try{_H(t.subarray(0,a+1))}catch(D){v&&(v.cursorFn||v.describeFirst)&&l0(B4),d1(D)}t=t.subarray(a+1),$0=0,O0=null}}async function VX(){if(o0=!1,h0={},N||(N=await aW()),!N)return;if(n.start(),Y.socket)return $?UX():o4();if(N.on("connect",$?UX:o4),Y.path)return N.connect(Y.path);N.ssl=$,N.connect(J[V0],Q[V0]),N.host=Q[V0],N.port=J[V0],V0=(V0+1)%J.length}function OX(){setTimeout(VX,m?m+J0-SW.now():0)}function o4(){try{$1={},I0=Y.fetch_types,r1=Math.random().toString(36).slice(2),T=1,c.start(),N.on("data",EY),x&&N.setKeepAlive&&N.setKeepAlive(!0,1000*x);let F=dH();l0(F)}catch(F){i4(F)}}function i4(F){if(i0.queue===Z.connecting&&Y.host[k0+1])return;d1(F);while(B.length)g8(B.shift(),F)}function d1(F){b0&&(b0.destroy(F),b0=null),v&&g8(v,F),c0&&(g8(c0,F),c0=null)}function g8(F,D){if(F.reserve)return F.reject(D);if(!D||typeof D!=="object")D=Error(D);"query"in D||"parameters"in D||Object.defineProperties(D,{stack:{value:D.stack+F.origin.replace(/.*\n/,`
|
|
67
|
-
`),enumerable:Y.debug},query:{value:
|
|
65
|
+
\u274C `))}}++_}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),this.proc.exit(0)}),this.proc.pid)this.id=this.proc.pid?.toString();this.on("user-joins",(Z)=>{this.logger.info("\uD83D\uDC64","user",Z,"joined");let X=`user::${Z}`,G=new vF(X);this.relays.set(Z,G),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let _ of this.relayServices){let $=_(G,X);if($)G.disposalFunctions.push($)}this.on(X,(..._)=>{G.in.next(_)}),G.out.subscribe("socket",(_)=>{this.emit(..._)})}),this.on("user-leaves",(Z)=>{let X=this.relays.get(Z);if(this.off(`relay:${Z}`),X)X.dispose(),this.relays.delete(Z)}),this.proc.stdout.write("ALIVE")}receiveRelay(Y){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(Y)}};var D7=new Map;var vB=L6({key:"joinRoom",do:(Y,Z,X,G)=>{let _={enteredAtEpoch:G};return W8(V8,($)=>{$.set({room:Z,user:X},_)},Y.env().store),_}}),xB=L6({key:"leaveRoom",do:({env:Y},Z,X)=>{W8(V8,(G)=>{G.delete({room:Z,user:X})},Y().store)}}),fB=L6({key:"destroyRoom",do:({set:Y,env:Z},X)=>{W8(V8,(_)=>{_.delete({room:X})},Z().store),Y(O7,(_)=>(_.delete(X),_));let G=D7.get(X);if(G)G.emit("exit"),D7.delete(X)}}),hB=V2({key:"sockets",default:null}),kB=E2({key:"socketsIndex",class:b4}),bB=E2({key:"usersIndex",class:b4}),yB=O6({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(Y)=>Y.startsWith("user::"),isBType:(Y)=>Y.startsWith("socket::")}),gB=D6({key:"userMutualSituationalAwarenessIndexes",get:(Y)=>()=>{return[Y]}});var{file:rW,serve:nE}=globalThis.Bun;import{readFileSync as R7}from"fs";import{createServer as kF}from"http";import{createServer as bF}from"https";import{resolve as Q5}from"path";function M7(Y,Z){if(Y instanceof Promise)throw Error(Z)}function xF(Y,Z){let X={},G=[];for(let _ in Y){let $=Y[_]["~standard"].validate(Z[_]);if(M7($,`Validation must be synchronous, but ${_} returned a Promise.`),$.issues){G.push(...$.issues.map((W)=>({...W,message:W.message,path:[_,...W.path??[]]})));continue}X[_]=$.value}if(G.length)return{issues:G};return{value:X}}function J5(Y){let Z=Y.runtimeEnvStrict??Y.runtimeEnv??process.env;if(Y.emptyStringAsUndefined??!1){for(let[h,g]of Object.entries(Z))if(g==="")delete Z[h]}if(!!Y.skipValidation)return Z;let _=typeof Y.client==="object"?Y.client:{},$=typeof Y.server==="object"?Y.server:{},W=typeof Y.shared==="object"?Y.shared:{},H=Y.isServer??(typeof window>"u"||("Deno"in window)),Q=H?{...$,...W,..._}:{..._,...W},J=Y.createFinalSchema?.(Q,H)["~standard"].validate(Z)??xF(Q,Z);M7(J,"Validation must be synchronous");let z=Y.onValidationError??((h)=>{throw console.error("\u274C Invalid environment variables:",h),Error("Invalid environment variables")}),F=Y.onInvalidAccess??(()=>{throw Error("\u274C Attempted to access a server-side environment variable on the client")});if(J.issues)return z(J.issues);let O=(h)=>{if(!Y.clientPrefix)return!0;return!h.startsWith(Y.clientPrefix)&&!(h in W)},L=(h)=>{return H||!O(h)},w=(h)=>{return h==="__esModule"||h==="$$typeof"},R=(Y.extends??[]).reduce((h,g)=>{return Object.assign(h,g)},{}),b=Object.assign(R,J.value);return new Proxy(b,{get(h,g){if(typeof g!=="string")return;if(w(g))return;if(!L(g))return F(g);return Reflect.get(h,g)}})}var fF="__vite_start_time"in globalThis,hF=typeof window<"u",sB="vitest"in globalThis,W4=U1("string"),A7=U1('"true" | "false" | undefined'),g1=J5({isServer:!fF&&!hF,server:{CI:U1("string | undefined").pipe(Boolean),POSTGRES_USER:W4,POSTGRES_PASSWORD:W4,POSTGRES_DATABASE:W4,POSTGRES_HOST:W4,POSTGRES_PORT:W4.pipe((Y)=>Number.parseInt(Y,10)),BACKEND_PORT:W4.pipe((Y)=>Number.parseInt(Y,10)),RUN_WORKERS_FROM_SOURCE:A7.pipe((Y)=>Y==="true"),FRONTEND_PORT:W4.pipe((Y)=>Number.parseInt(Y,10)),FRONTEND_ORIGINS:W4.pipe.try((Y)=>JSON.parse(Y),U1("string[]")),API_KEY_OPENAI:U1("string | undefined"),API_KEY_RESEND:U1("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:W4,VITE_DEV_FRONTEND_HOST:U1("string | undefined"),VITE_DEV_HTTPS:A7.pipe((Y)=>Y==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var w7=Q5(import.meta.dirname,"../dev"),q6=g1.VITE_DEV_HTTPS?{cert:R7(Q5(w7,"./cert.pem"),"utf-8"),key:R7(Q5(w7,"./key.pem"),"utf-8")}:void 0;function GT(Y){if(q6)return bF(q6,Y);return kF({},Y)}import mE from"path";var E=Symbol.for("drizzle:entityKind");function M(Y,Z){if(!Y||typeof Y!=="object")return!1;if(Y instanceof Z)return!0;if(!Object.prototype.hasOwnProperty.call(Z,E))throw Error(`Class "${Z.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let X=Object.getPrototypeOf(Y).constructor;if(X)while(X){if(E in X&&X[E]===Z[E])return!0;X=Object.getPrototypeOf(X)}return!1}class F0{constructor(Y,Z){this.table=Y,this.config=Z,this.name=Z.name,this.keyAsName=Z.keyAsName,this.notNull=Z.notNull,this.default=Z.default,this.defaultFn=Z.defaultFn,this.onUpdateFn=Z.onUpdateFn,this.hasDefault=Z.hasDefault,this.primary=Z.primaryKey,this.isUnique=Z.isUnique,this.uniqueName=Z.uniqueName,this.uniqueType=Z.uniqueType,this.dataType=Z.dataType,this.columnType=Z.columnType,this.generated=Z.generated,this.generatedIdentity=Z.generatedIdentity}static[E]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(Y){return Y}mapToDriverValue(Y){return Y}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class z5{static[E]="ColumnBuilder";config;constructor(Y,Z,X){this.config={name:Y,keyAsName:Y==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:Z,columnType:X,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(Y){return this.config.default=Y,this.config.hasDefault=!0,this}$defaultFn(Y){return this.config.defaultFn=Y,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(Y){return this.config.onUpdateFn=Y,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(Y){if(this.config.name!=="")return;this.config.name=Y}}var p1=Symbol.for("drizzle:Name");class U5{static[E]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(Y,Z){if(this.reference=()=>{let{name:X,columns:G,foreignColumns:_}=Y();return{name:X,columns:G,foreignTable:_[0].table,foreignColumns:_}},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 N7(Y,this)}}class N7{constructor(Y,Z){this.table=Y,this.reference=Z.reference,this.onUpdate=Z._onUpdate,this.onDelete=Z._onDelete}static[E]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:Y,columns:Z,foreignColumns:X}=this.reference(),G=Z.map((W)=>W.name),_=X.map((W)=>W.name),$=[this.table[p1],...G,X[0].table[p1],..._];return Y??`${$.join("_")}_fk`}}function j6(Y,...Z){return Y(...Z)}function I7(Y,Z){return`${Y[p1]}_${Z.join("_")}_unique`}function K7(Y,Z,X){for(let G=Z;G<Y.length;G++){let _=Y[G];if(_==="\\"){G++;continue}if(_==='"')return[Y.slice(Z,G).replace(/\\/g,""),G+1];if(X)continue;if(_===","||_==="}")return[Y.slice(Z,G).replace(/\\/g,""),G]}return[Y.slice(Z).replace(/\\/g,""),Y.length]}function B7(Y,Z=0){let X=[],G=Z,_=!1;while(G<Y.length){let $=Y[G];if($===","){if(_||G===Z)X.push("");_=!0,G++;continue}if(_=!1,$==="\\"){G+=2;continue}if($==='"'){let[Q,J]=K7(Y,G+1,!0);X.push(Q),G=J;continue}if($==="}")return[X,G+1];if($==="{"){let[Q,J]=B7(Y,G+1);X.push(Q),G=J;continue}let[W,H]=K7(Y,G,!1);X.push(W),G=H}return[X,G]}function T7(Y){let[Z]=B7(Y,1);return Z}function F5(Y){return`{${Y.map((Z)=>{if(Array.isArray(Z))return F5(Z);if(typeof Z==="string")return`"${Z.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${Z}`}).join(",")}}`}class k extends z5{foreignKeyConfigs=[];static[E]="PgColumnBuilder";array(Y){return new q7(this.config.name,this,Y)}references(Y,Z={}){return this.foreignKeyConfigs.push({ref:Y,actions:Z}),this}unique(Y,Z){return this.config.isUnique=!0,this.config.uniqueName=Y,this.config.uniqueType=Z?.nulls,this}generatedAlwaysAs(Y){return this.config.generated={as:Y,type:"always",mode:"stored"},this}buildForeignKeys(Y,Z){return this.foreignKeyConfigs.map(({ref:X,actions:G})=>{return j6((_,$)=>{let W=new U5(()=>{let H=_();return{columns:[Y],foreignColumns:[H]}});if($.onUpdate)W.onUpdate($.onUpdate);if($.onDelete)W.onDelete($.onDelete);return W.build(Z)},X,G)})}buildExtraConfigColumn(Y){return new C7(Y,this.config)}}class j extends F0{constructor(Y,Z){if(!Z.uniqueName)Z.uniqueName=I7(Y,[Z.name]);super(Y,Z);this.table=Y}static[E]="PgColumn"}class C7 extends j{static[E]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(Y){return this.indexConfig.opClass=Y,this}}class O8{static[E]="IndexedColumn";constructor(Y,Z,X,G){this.name=Y,this.keyAsName=Z,this.type=X,this.indexConfig=G}name;keyAsName;type;indexConfig}class q7 extends k{static[E]="PgArrayBuilder";constructor(Y,Z,X){super(Y,"array","PgArray");this.config.baseBuilder=Z,this.config.size=X}build(Y){let Z=this.config.baseBuilder.build(Y);return new E5(Y,this.config,Z)}}class E5 extends j{constructor(Y,Z,X,G){super(Y,Z);this.baseColumn=X,this.range=G,this.size=Z.size}size;static[E]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(Y){if(typeof Y==="string")Y=T7(Y);return Y.map((Z)=>this.baseColumn.mapFromDriverValue(Z))}mapToDriverValue(Y,Z=!1){let X=Y.map((G)=>G===null?null:M(this.baseColumn,E5)?this.baseColumn.mapToDriverValue(G,!0):this.baseColumn.mapToDriverValue(G));if(Z)return X;return F5(X)}}class j7 extends k{static[E]="PgEnumObjectColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumObjectColumn");this.config.enum=Z}build(Y){return new P7(Y,this.config)}}class P7 extends j{static[E]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}var P6=Symbol.for("drizzle:isPgEnum");function S7(Y){return!!Y&&typeof Y==="function"&&P6 in Y&&Y[P6]===!0}class v7 extends k{static[E]="PgEnumColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumColumn");this.config.enum=Z}build(Y){return new x7(Y,this.config)}}class x7 extends j{static[E]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}function D8(Y,Z){return Array.isArray(Z)?yF(Y,[...Z],void 0):gF(Y,Z,void 0)}function yF(Y,Z,X){let G=Object.assign((_)=>new v7(_??"",G),{enumName:Y,enumValues:Z,schema:X,[P6]:!0});return G}function gF(Y,Z,X){let G=Object.assign((_)=>new j7(_??"",G),{enumName:Y,enumValues:Object.values(Z),schema:X,[P6]:!0});return G}class S0{static[E]="Subquery";constructor(Y,Z,X,G=!1,_=[]){this._={brand:"Subquery",sql:Y,selectedFields:Z,alias:X,isWith:G,usedTables:_}}}class L8 extends S0{static[E]="WithSubquery"}var f7="0.44.5";var V5,O5,E0={startActiveSpan(Y,Z){if(!V5)return Z();if(!O5)O5=V5.trace.getTracer("drizzle-orm",f7);return j6((X,G)=>G.startActiveSpan(Y,(_)=>{try{return Z(_)}catch($){throw _.setStatus({code:X.SpanStatusCode.ERROR,message:$ instanceof Error?$.message:"Unknown error"}),$}finally{_.end()}}),V5,O5)}};var M0=Symbol.for("drizzle:ViewBaseConfig");var y4=Symbol.for("drizzle:Schema"),S6=Symbol.for("drizzle:Columns"),h7=Symbol.for("drizzle:ExtraConfigColumns"),D5=Symbol.for("drizzle:OriginalName"),L5=Symbol.for("drizzle:BaseName"),M8=Symbol.for("drizzle:IsAlias"),k7=Symbol.for("drizzle:ExtraConfigBuilder"),pF=Symbol.for("drizzle:IsDrizzleTable");class P{static[E]="Table";static Symbol={Name:p1,Schema:y4,OriginalName:D5,Columns:S6,ExtraConfigColumns:h7,BaseName:L5,IsAlias:M8,ExtraConfigBuilder:k7};[p1];[D5];[y4];[S6];[h7];[L5];[M8]=!1;[pF]=!0;[k7]=void 0;constructor(Y,Z,X){this[p1]=this[D5]=Y,this[y4]=Z,this[L5]=X}}function d0(Y){return Y[p1]}function g4(Y){return`${Y[y4]??"public"}.${Y[p1]}`}function M5(Y){return Y!==null&&Y!==void 0&&typeof Y.getSQL==="function"}function mF(Y){let Z={sql:"",params:[]};for(let X of Y)if(Z.sql+=X.sql,Z.params.push(...X.params),X.typings?.length){if(!Z.typings)Z.typings=[];Z.typings.push(...X.typings)}return Z}class m0{static[E]="StringChunk";value;constructor(Y){this.value=Array.isArray(Y)?Y:[Y]}getSQL(){return new f([this])}}class f{constructor(Y){this.queryChunks=Y;for(let Z of Y)if(M(Z,P)){let X=Z[P.Symbol.Schema];this.usedTables.push(X===void 0?Z[P.Symbol.Name]:X+"."+Z[P.Symbol.Name])}}static[E]="SQL";decoder=y7;shouldInlineParams=!1;usedTables=[];append(Y){return this.queryChunks.push(...Y.queryChunks),this}toQuery(Y){return E0.startActiveSpan("drizzle.buildSQL",(Z)=>{let X=this.buildQueryFromSourceParams(this.queryChunks,Y);return Z?.setAttributes({"drizzle.query.text":X.sql,"drizzle.query.params":JSON.stringify(X.params)}),X})}buildQueryFromSourceParams(Y,Z){let X=Object.assign({},Z,{inlineParams:Z.inlineParams||this.shouldInlineParams,paramStartIndex:Z.paramStartIndex||{value:0}}),{casing:G,escapeName:_,escapeParam:$,prepareTyping:W,inlineParams:H,paramStartIndex:Q}=X;return mF(Y.map((J)=>{if(M(J,m0))return{sql:J.value.join(""),params:[]};if(M(J,v6))return{sql:_(J.value),params:[]};if(J===void 0)return{sql:"",params:[]};if(Array.isArray(J)){let z=[new m0("(")];for(let[F,O]of J.entries())if(z.push(O),F<J.length-1)z.push(new m0(", "));return z.push(new m0(")")),this.buildQueryFromSourceParams(z,X)}if(M(J,f))return this.buildQueryFromSourceParams(J.queryChunks,{...X,inlineParams:H||J.shouldInlineParams});if(M(J,P)){let z=J[P.Symbol.Schema],F=J[P.Symbol.Name];return{sql:z===void 0||J[M8]?_(F):_(z)+"."+_(F),params:[]}}if(M(J,F0)){let z=G.getColumnCasing(J);if(Z.invokeSource==="indexes")return{sql:_(z),params:[]};let F=J.table[P.Symbol.Schema];return{sql:J.table[M8]||F===void 0?_(J.table[P.Symbol.Name])+"."+_(z):_(F)+"."+_(J.table[P.Symbol.Name])+"."+_(z),params:[]}}if(M(J,V1)){let z=J[M0].schema,F=J[M0].name;return{sql:z===void 0||J[M0].isAlias?_(F):_(z)+"."+_(F),params:[]}}if(M(J,A1)){if(M(J.value,w4))return{sql:$(Q.value++,J),params:[J],typings:["none"]};let z=J.value===null?null:J.encoder.mapToDriverValue(J.value);if(M(z,f))return this.buildQueryFromSourceParams([z],X);if(H)return{sql:this.mapInlineParam(z,X),params:[]};let F=["none"];if(W)F=[W(J.encoder)];return{sql:$(Q.value++,z),params:[z],typings:F}}if(M(J,w4))return{sql:$(Q.value++,J),params:[J],typings:["none"]};if(M(J,f.Aliased)&&J.fieldAlias!==void 0)return{sql:_(J.fieldAlias),params:[]};if(M(J,S0)){if(J._.isWith)return{sql:_(J._.alias),params:[]};return this.buildQueryFromSourceParams([new m0("("),J._.sql,new m0(") "),new v6(J._.alias)],X)}if(S7(J)){if(J.schema)return{sql:_(J.schema)+"."+_(J.enumName),params:[]};return{sql:_(J.enumName),params:[]}}if(M5(J)){if(J.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([J.getSQL()],X);return this.buildQueryFromSourceParams([new m0("("),J.getSQL(),new m0(")")],X)}if(H)return{sql:this.mapInlineParam(J,X),params:[]};return{sql:$(Q.value++,J),params:[J],typings:["none"]}}))}mapInlineParam(Y,{escapeString:Z}){if(Y===null)return"null";if(typeof Y==="number"||typeof Y==="boolean")return Y.toString();if(typeof Y==="string")return Z(Y);if(typeof Y==="object"){let X=Y.toString();if(X==="[object Object]")return Z(JSON.stringify(Y));return Z(X)}throw Error("Unexpected param value: "+Y)}getSQL(){return this}as(Y){if(Y===void 0)return this;return new f.Aliased(this,Y)}mapWith(Y){return this.decoder=typeof Y==="function"?{mapFromDriverValue:Y}:Y,this}inlineParams(){return this.shouldInlineParams=!0,this}if(Y){return Y?this:void 0}}class v6{constructor(Y){this.value=Y}static[E]="Name";brand;getSQL(){return new f([this])}}function b7(Y){return typeof Y==="object"&&Y!==null&&"mapToDriverValue"in Y&&typeof Y.mapToDriverValue==="function"}var y7={mapFromDriverValue:(Y)=>Y},g7={mapToDriverValue:(Y)=>Y},oT={...y7,...g7};class A1{constructor(Y,Z=g7){this.value=Y,this.encoder=Z}static[E]="Param";brand;getSQL(){return new f([this])}}function V(Y,...Z){let X=[];if(Z.length>0||Y.length>0&&Y[0]!=="")X.push(new m0(Y[0]));for(let[G,_]of Z.entries())X.push(_,new m0(Y[G+1]));return new f(X)}((Y)=>{function Z(){return new f([])}Y.empty=Z;function X(Q){return new f(Q)}Y.fromList=X;function G(Q){return new f([new m0(Q)])}Y.raw=G;function _(Q,J){let z=[];for(let[F,O]of Q.entries()){if(F>0&&J!==void 0)z.push(J);z.push(O)}return new f(z)}Y.join=_;function $(Q){return new v6(Q)}Y.identifier=$;function W(Q){return new w4(Q)}Y.placeholder=W;function H(Q,J){return new A1(Q,J)}Y.param=H})(V||(V={}));((Y)=>{class Z{constructor(X,G){this.sql=X,this.fieldAlias=G}static[E]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new Z(this.sql,this.fieldAlias)}}Y.Aliased=Z})(f||(f={}));class w4{constructor(Y){this.name=Y}static[E]="Placeholder";getSQL(){return new f([this])}}function A5(Y,Z){return Y.map((X)=>{if(M(X,w4)){if(!(X.name in Z))throw Error(`No value for placeholder "${X.name}" was provided`);return Z[X.name]}if(M(X,A1)&&M(X.value,w4)){if(!(X.value.name in Z))throw Error(`No value for placeholder "${X.value.name}" was provided`);return X.encoder.mapToDriverValue(Z[X.value.name])}return X})}var uF=Symbol.for("drizzle:IsDrizzleView");class V1{static[E]="View";[M0];[uF]=!0;constructor({name:Y,schema:Z,selectedFields:X,query:G}){this[M0]={name:Y,originalName:Y,schema:Z,selectedFields:X,query:G,isExisting:!G,isAlias:!1}}getSQL(){return new f([this])}}F0.prototype.getSQL=function(){return new f([this])};P.prototype.getSQL=function(){return new f([this])};S0.prototype.getSQL=function(){return new f([this])};class M2{constructor(Y){this.table=Y}static[E]="ColumnAliasProxyHandler";get(Y,Z){if(Z==="table")return this.table;return Y[Z]}}class A8{constructor(Y,Z){this.alias=Y,this.replaceOriginalName=Z}static[E]="TableAliasProxyHandler";get(Y,Z){if(Z===P.Symbol.IsAlias)return!0;if(Z===P.Symbol.Name)return this.alias;if(this.replaceOriginalName&&Z===P.Symbol.OriginalName)return this.alias;if(Z===M0)return{...Y[M0],name:this.alias,isAlias:!0};if(Z===P.Symbol.Columns){let G=Y[P.Symbol.Columns];if(!G)return G;let _={};return Object.keys(G).map(($)=>{_[$]=new Proxy(G[$],new M2(new Proxy(Y,this)))}),_}let X=Y[Z];if(M(X,F0))return new Proxy(X,new M2(new Proxy(Y,this)));return X}}function x6(Y,Z){return new Proxy(Y,new A8(Z,!1))}function i1(Y,Z){return new Proxy(Y,new M2(new Proxy(Y.table,new A8(Z,!1))))}function R5(Y,Z){return new f.Aliased(R8(Y.sql,Z),Y.fieldAlias)}function R8(Y,Z){return V.join(Y.queryChunks.map((X)=>{if(M(X,F0))return i1(X,Z);if(M(X,f))return R8(X,Z);if(M(X,f.Aliased))return R5(X,Z);return X}))}class f6 extends Error{static[E]="DrizzleError";constructor({message:Y,cause:Z}){super(Y);this.name="DrizzleError",this.cause=Z}}class H4 extends Error{constructor(Y,Z,X){super(`Failed query: ${Y}
|
|
66
|
+
params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrace(this,H4),X)this.cause=X}}class w5 extends f6{static[E]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class p7{static[E]="ConsoleLogWriter";write(Y){console.log(Y)}}class N5{static[E]="DefaultLogger";writer;constructor(Y){this.writer=Y?.writer??new p7}logQuery(Y,Z){let X=Z.map((_)=>{try{return JSON.stringify(_)}catch{return String(_)}}),G=X.length?` -- params: [${X.join(", ")}]`:"";this.writer.write(`Query: ${Y}${G}`)}}class I5{static[E]="NoopLogger";logQuery(){}}class G1{static[E]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(Y){return this.then(void 0,Y)}finally(Y){return this.then((Z)=>{return Y?.(),Z},(Z)=>{throw Y?.(),Z})}then(Y,Z){return this.execute().then(Y,Z)}}function m7(Y,Z,X){let G={},_=Y.reduce(($,{path:W,field:H},Q)=>{let J;if(M(H,F0))J=H;else if(M(H,f))J=H.decoder;else J=H.sql.decoder;let z=$;for(let[F,O]of W.entries())if(F<W.length-1){if(!(O in z))z[O]={};z=z[O]}else{let L=Z[Q],w=z[O]=L===null?null:J.mapFromDriverValue(L);if(X&&M(H,F0)&&W.length===2){let R=W[0];if(!(R in G))G[R]=w===null?d0(H.table):!1;else if(typeof G[R]==="string"&&G[R]!==d0(H.table))G[R]=!1}}return $},{});if(X&&Object.keys(G).length>0){for(let[$,W]of Object.entries(G))if(typeof W==="string"&&!X[W])_[$]=null}return _}function T1(Y,Z){return Object.entries(Y).reduce((X,[G,_])=>{if(typeof G!=="string")return X;let $=Z?[...Z,G]:[G];if(M(_,F0)||M(_,f)||M(_,f.Aliased))X.push({path:$,field:_});else if(M(_,P))X.push(...T1(_[P.Symbol.Columns],$));else X.push(...T1(_,$));return X},[])}function w8(Y,Z){let X=Object.keys(Y),G=Object.keys(Z);if(X.length!==G.length)return!1;for(let[_,$]of X.entries())if($!==G[_])return!1;return!0}function h6(Y,Z){let X=Object.entries(Z).filter(([,G])=>G!==void 0).map(([G,_])=>{if(M(_,f)||M(_,F0))return[G,_];else return[G,new A1(_,Y[P.Symbol.Columns][G])]});if(X.length===0)throw Error("No values to set");return Object.fromEntries(X)}function u7(Y,Z){for(let X of Z)for(let G of Object.getOwnPropertyNames(X.prototype)){if(G==="constructor")continue;Object.defineProperty(Y.prototype,G,Object.getOwnPropertyDescriptor(X.prototype,G)||Object.create(null))}}function d7(Y){return Y[P.Symbol.Columns]}function J4(Y){return M(Y,S0)?Y._.alias:M(Y,V1)?Y[M0].name:M(Y,f)?void 0:Y[P.Symbol.IsAlias]?Y[P.Symbol.Name]:Y[P.Symbol.BaseName]}function X0(Y,Z){return{name:typeof Y==="string"&&Y.length>0?Y:"",config:typeof Y==="object"?Y:Z}}function c7(Y){if(typeof Y!=="object"||Y===null)return!1;if(Y.constructor.name!=="Object")return!1;if("logger"in Y){let Z=typeof Y.logger;if(Z!=="boolean"&&(Z!=="object"||typeof Y.logger.logQuery!=="function")&&Z!=="undefined")return!1;return!0}if("schema"in Y){let Z=typeof Y.schema;if(Z!=="object"&&Z!=="undefined")return!1;return!0}if("casing"in Y){let Z=typeof Y.casing;if(Z!=="string"&&Z!=="undefined")return!1;return!0}if("mode"in Y){if(Y.mode!=="default"||Y.mode!=="planetscale"||Y.mode!==void 0)return!1;return!0}if("connection"in Y){let Z=typeof Y.connection;if(Z!=="string"&&Z!=="object"&&Z!=="undefined")return!1;return!0}if("client"in Y){let Z=typeof Y.client;if(Z!=="object"&&Z!=="function"&&Z!=="undefined")return!1;return!0}if(Object.keys(Y).length===0)return!0;return!1}class N4 extends k{static[E]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(Y){if(Y){let{name:Z,...X}=Y;this.config.generatedIdentity={type:"always",sequenceName:Z,sequenceOptions:X}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(Y){if(Y){let{name:Z,...X}=Y;this.config.generatedIdentity={type:"byDefault",sequenceName:Z,sequenceOptions:X}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class l7 extends N4{static[E]="PgBigInt53Builder";constructor(Y){super(Y,"number","PgBigInt53")}build(Y){return new o7(Y,this.config)}}class o7 extends j{static[E]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class i7 extends N4{static[E]="PgBigInt64Builder";constructor(Y){super(Y,"bigint","PgBigInt64")}build(Y){return new n7(Y,this.config)}}class n7 extends j{static[E]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(Y){return BigInt(Y)}}function r7(Y,Z){let{name:X,config:G}=X0(Y,Z);if(G.mode==="number")return new l7(X);return new i7(X)}class s7 extends k{static[E]="PgBigSerial53Builder";constructor(Y){super(Y,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new t7(Y,this.config)}}class t7 extends j{static[E]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class a7 extends k{static[E]="PgBigSerial64Builder";constructor(Y){super(Y,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(Y){return new e7(Y,this.config)}}class e7 extends j{static[E]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(Y){return BigInt(Y)}}function Y$(Y,Z){let{name:X,config:G}=X0(Y,Z);if(G.mode==="number")return new s7(X);return new a7(X)}class Z$ extends k{static[E]="PgBooleanBuilder";constructor(Y){super(Y,"boolean","PgBoolean")}build(Y){return new X$(Y,this.config)}}class X$ extends j{static[E]="PgBoolean";getSQLType(){return"boolean"}}function N8(Y){return new Z$(Y??"")}class G$ extends k{static[E]="PgCharBuilder";constructor(Y,Z){super(Y,"string","PgChar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new _$(Y,this.config)}}class _$ extends j{static[E]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function $$(Y,Z={}){let{name:X,config:G}=X0(Y,Z);return new G$(X,G)}class W$ extends k{static[E]="PgCidrBuilder";constructor(Y){super(Y,"string","PgCidr")}build(Y){return new H$(Y,this.config)}}class H$ extends j{static[E]="PgCidr";getSQLType(){return"cidr"}}function J$(Y){return new W$(Y??"")}class Q$ extends k{static[E]="PgCustomColumnBuilder";constructor(Y,Z,X){super(Y,"custom","PgCustomColumn");this.config.fieldConfig=Z,this.config.customTypeParams=X}build(Y){return new z$(Y,this.config)}}class z$ extends j{static[E]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(Y,Z){super(Y,Z);this.sqlName=Z.customTypeParams.dataType(Z.fieldConfig),this.mapTo=Z.customTypeParams.toDriver,this.mapFrom=Z.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(Y){return typeof this.mapFrom==="function"?this.mapFrom(Y):Y}mapToDriverValue(Y){return typeof this.mapTo==="function"?this.mapTo(Y):Y}}function U$(Y){return(Z,X)=>{let{name:G,config:_}=X0(Z,X);return new Q$(G,_,Y)}}class Q4 extends k{static[E]="PgDateColumnBaseBuilder";defaultNow(){return this.default(V`now()`)}}class F$ extends Q4{static[E]="PgDateBuilder";constructor(Y){super(Y,"date","PgDate")}build(Y){return new k6(Y,this.config)}}class k6 extends j{static[E]="PgDate";getSQLType(){return"date"}mapFromDriverValue(Y){return new Date(Y)}mapToDriverValue(Y){return Y.toISOString()}}class E$ extends Q4{static[E]="PgDateStringBuilder";constructor(Y){super(Y,"string","PgDateString")}build(Y){return new b6(Y,this.config)}}class b6 extends j{static[E]="PgDateString";getSQLType(){return"date"}}function V$(Y,Z){let{name:X,config:G}=X0(Y,Z);if(G?.mode==="date")return new F$(X);return new E$(X)}class O$ extends k{static[E]="PgDoublePrecisionBuilder";constructor(Y){super(Y,"number","PgDoublePrecision")}build(Y){return new D$(Y,this.config)}}class D$ extends j{static[E]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function L$(Y){return new O$(Y??"")}class M$ extends k{static[E]="PgInetBuilder";constructor(Y){super(Y,"string","PgInet")}build(Y){return new A$(Y,this.config)}}class A$ extends j{static[E]="PgInet";getSQLType(){return"inet"}}function R$(Y){return new M$(Y??"")}class w$ extends N4{static[E]="PgIntegerBuilder";constructor(Y){super(Y,"number","PgInteger")}build(Y){return new N$(Y,this.config)}}class N$ extends j{static[E]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseInt(Y);return Y}}function I8(Y){return new w$(Y??"")}class I$ extends k{static[E]="PgIntervalBuilder";constructor(Y,Z){super(Y,"string","PgInterval");this.config.intervalConfig=Z}build(Y){return new K$(Y,this.config)}}class K$ extends j{static[E]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let Y=this.fields?` ${this.fields}`:"",Z=this.precision?`(${this.precision})`:"";return`interval${Y}${Z}`}}function B$(Y,Z={}){let{name:X,config:G}=X0(Y,Z);return new I$(X,G)}class T$ extends k{static[E]="PgJsonBuilder";constructor(Y){super(Y,"json","PgJson")}build(Y){return new y6(Y,this.config)}}class y6 extends j{static[E]="PgJson";constructor(Y,Z){super(Y,Z)}getSQLType(){return"json"}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}}function C$(Y){return new T$(Y??"")}class q$ extends k{static[E]="PgJsonbBuilder";constructor(Y){super(Y,"json","PgJsonb")}build(Y){return new g6(Y,this.config)}}class g6 extends j{static[E]="PgJsonb";constructor(Y,Z){super(Y,Z)}getSQLType(){return"jsonb"}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}}function j$(Y){return new q$(Y??"")}class P$ extends k{static[E]="PgLineBuilder";constructor(Y){super(Y,"array","PgLine")}build(Y){return new S$(Y,this.config)}}class S$ extends j{static[E]="PgLine";getSQLType(){return"line"}mapFromDriverValue(Y){let[Z,X,G]=Y.slice(1,-1).split(",");return[Number.parseFloat(Z),Number.parseFloat(X),Number.parseFloat(G)]}mapToDriverValue(Y){return`{${Y[0]},${Y[1]},${Y[2]}}`}}class v$ extends k{static[E]="PgLineABCBuilder";constructor(Y){super(Y,"json","PgLineABC")}build(Y){return new x$(Y,this.config)}}class x$ extends j{static[E]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(Y){let[Z,X,G]=Y.slice(1,-1).split(",");return{a:Number.parseFloat(Z),b:Number.parseFloat(X),c:Number.parseFloat(G)}}mapToDriverValue(Y){return`{${Y.a},${Y.b},${Y.c}}`}}function f$(Y,Z){let{name:X,config:G}=X0(Y,Z);if(!G?.mode||G.mode==="tuple")return new P$(X);return new v$(X)}class h$ extends k{static[E]="PgMacaddrBuilder";constructor(Y){super(Y,"string","PgMacaddr")}build(Y){return new k$(Y,this.config)}}class k$ extends j{static[E]="PgMacaddr";getSQLType(){return"macaddr"}}function b$(Y){return new h$(Y??"")}class y$ extends k{static[E]="PgMacaddr8Builder";constructor(Y){super(Y,"string","PgMacaddr8")}build(Y){return new g$(Y,this.config)}}class g$ extends j{static[E]="PgMacaddr8";getSQLType(){return"macaddr8"}}function p$(Y){return new y$(Y??"")}class m$ extends k{static[E]="PgNumericBuilder";constructor(Y,Z,X){super(Y,"string","PgNumeric");this.config.precision=Z,this.config.scale=X}build(Y){return new p6(Y,this.config)}}class p6 extends j{static[E]="PgNumeric";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue(Y){if(typeof Y==="string")return Y;return String(Y)}getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}class u$ extends k{static[E]="PgNumericNumberBuilder";constructor(Y,Z,X){super(Y,"number","PgNumericNumber");this.config.precision=Z,this.config.scale=X}build(Y){return new d$(Y,this.config)}}class d$ extends j{static[E]="PgNumericNumber";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}mapToDriverValue=String;getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}class c$ extends k{static[E]="PgNumericBigIntBuilder";constructor(Y,Z,X){super(Y,"bigint","PgNumericBigInt");this.config.precision=Z,this.config.scale=X}build(Y){return new l$(Y,this.config)}}class l$ extends j{static[E]="PgNumericBigInt";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}function o$(Y,Z){let{name:X,config:G}=X0(Y,Z),_=G?.mode;return _==="number"?new u$(X,G?.precision,G?.scale):_==="bigint"?new c$(X,G?.precision,G?.scale):new m$(X,G?.precision,G?.scale)}class i$ extends k{static[E]="PgPointTupleBuilder";constructor(Y){super(Y,"array","PgPointTuple")}build(Y){return new n$(Y,this.config)}}class n$ extends j{static[E]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(Y){if(typeof Y==="string"){let[Z,X]=Y.slice(1,-1).split(",");return[Number.parseFloat(Z),Number.parseFloat(X)]}return[Y.x,Y.y]}mapToDriverValue(Y){return`(${Y[0]},${Y[1]})`}}class r$ extends k{static[E]="PgPointObjectBuilder";constructor(Y){super(Y,"json","PgPointObject")}build(Y){return new s$(Y,this.config)}}class s$ extends j{static[E]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(Y){if(typeof Y==="string"){let[Z,X]=Y.slice(1,-1).split(",");return{x:Number.parseFloat(Z),y:Number.parseFloat(X)}}return Y}mapToDriverValue(Y){return`(${Y.x},${Y.y})`}}function t$(Y,Z){let{name:X,config:G}=X0(Y,Z);if(!G?.mode||G.mode==="tuple")return new i$(X);return new r$(X)}function dF(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 a$(Y,Z){let X=new ArrayBuffer(8),G=new DataView(X);for(let _=0;_<8;_++)G.setUint8(_,Y[Z+_]);return G.getFloat64(0,!0)}function K5(Y){let Z=dF(Y),X=0,G=Z[X];X+=1;let _=new DataView(Z.buffer),$=_.getUint32(X,G===1);X+=4;let W;if($&536870912)W=_.getUint32(X,G===1),X+=4;if(($&65535)===1){let H=a$(Z,X);X+=8;let Q=a$(Z,X);return X+=8,[H,Q]}throw Error("Unsupported geometry type")}class e$ extends k{static[E]="PgGeometryBuilder";constructor(Y){super(Y,"array","PgGeometry")}build(Y){return new Y3(Y,this.config)}}class Y3 extends j{static[E]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){return K5(Y)}mapToDriverValue(Y){return`point(${Y[0]} ${Y[1]})`}}class Z3 extends k{static[E]="PgGeometryObjectBuilder";constructor(Y){super(Y,"json","PgGeometryObject")}build(Y){return new X3(Y,this.config)}}class X3 extends j{static[E]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){let Z=K5(Y);return{x:Z[0],y:Z[1]}}mapToDriverValue(Y){return`point(${Y.x} ${Y.y})`}}function G3(Y,Z){let{name:X,config:G}=X0(Y,Z);if(!G?.mode||G.mode==="tuple")return new e$(X);return new Z3(X)}class _3 extends k{static[E]="PgRealBuilder";constructor(Y,Z){super(Y,"number","PgReal");this.config.length=Z}build(Y){return new $3(Y,this.config)}}class $3 extends j{static[E]="PgReal";constructor(Y,Z){super(Y,Z)}getSQLType(){return"real"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function W3(Y){return new _3(Y??"")}class H3 extends k{static[E]="PgSerialBuilder";constructor(Y){super(Y,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new J3(Y,this.config)}}class J3 extends j{static[E]="PgSerial";getSQLType(){return"serial"}}function Q3(Y){return new H3(Y??"")}class z3 extends N4{static[E]="PgSmallIntBuilder";constructor(Y){super(Y,"number","PgSmallInt")}build(Y){return new U3(Y,this.config)}}class U3 extends j{static[E]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number(Y);return Y}}function F3(Y){return new z3(Y??"")}class E3 extends k{static[E]="PgSmallSerialBuilder";constructor(Y){super(Y,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new V3(Y,this.config)}}class V3 extends j{static[E]="PgSmallSerial";getSQLType(){return"smallserial"}}function O3(Y){return new E3(Y??"")}class D3 extends k{static[E]="PgTextBuilder";constructor(Y,Z){super(Y,"string","PgText");this.config.enumValues=Z.enum}build(Y){return new L3(Y,this.config)}}class L3 extends j{static[E]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function M3(Y,Z={}){let{name:X,config:G}=X0(Y,Z);return new D3(X,G)}class A3 extends Q4{constructor(Y,Z,X){super(Y,"string","PgTime");this.withTimezone=Z,this.precision=X,this.config.withTimezone=Z,this.config.precision=X}static[E]="PgTimeBuilder";build(Y){return new m6(Y,this.config)}}class m6 extends j{static[E]="PgTime";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function R3(Y,Z={}){let{name:X,config:G}=X0(Y,Z);return new A3(X,G.withTimezone??!1,G.precision)}class w3 extends Q4{static[E]="PgTimestampBuilder";constructor(Y,Z,X){super(Y,"date","PgTimestamp");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new u6(Y,this.config)}}class u6 extends j{static[E]="PgTimestamp";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(Y)=>{return new Date(this.withTimezone?Y:Y+"+0000")};mapToDriverValue=(Y)=>{return Y.toISOString()}}class N3 extends Q4{static[E]="PgTimestampStringBuilder";constructor(Y,Z,X){super(Y,"string","PgTimestampString");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new d6(Y,this.config)}}class d6 extends j{static[E]="PgTimestampString";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function I3(Y,Z={}){let{name:X,config:G}=X0(Y,Z);if(G?.mode==="string")return new N3(X,G.withTimezone??!1,G.precision);return new w3(X,G?.withTimezone??!1,G?.precision)}class K3 extends k{static[E]="PgUUIDBuilder";constructor(Y){super(Y,"string","PgUUID")}defaultRandom(){return this.default(V`gen_random_uuid()`)}build(Y){return new c6(Y,this.config)}}class c6 extends j{static[E]="PgUUID";getSQLType(){return"uuid"}}function C1(Y){return new K3(Y??"")}class B3 extends k{static[E]="PgVarcharBuilder";constructor(Y,Z){super(Y,"string","PgVarchar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new T3(Y,this.config)}}class T3 extends j{static[E]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function t0(Y,Z={}){let{name:X,config:G}=X0(Y,Z);return new B3(X,G)}class C3 extends k{static[E]="PgBinaryVectorBuilder";constructor(Y,Z){super(Y,"string","PgBinaryVector");this.config.dimensions=Z.dimensions}build(Y){return new q3(Y,this.config)}}class q3 extends j{static[E]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function j3(Y,Z){let{name:X,config:G}=X0(Y,Z);return new C3(X,G)}class P3 extends k{static[E]="PgHalfVectorBuilder";constructor(Y,Z){super(Y,"array","PgHalfVector");this.config.dimensions=Z.dimensions}build(Y){return new S3(Y,this.config)}}class S3 extends j{static[E]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){return Y.slice(1,-1).split(",").map((Z)=>Number.parseFloat(Z))}}function v3(Y,Z){let{name:X,config:G}=X0(Y,Z);return new P3(X,G)}class x3 extends k{static[E]="PgSparseVectorBuilder";constructor(Y,Z){super(Y,"string","PgSparseVector");this.config.dimensions=Z.dimensions}build(Y){return new f3(Y,this.config)}}class f3 extends j{static[E]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function h3(Y,Z){let{name:X,config:G}=X0(Y,Z);return new x3(X,G)}class k3 extends k{static[E]="PgVectorBuilder";constructor(Y,Z){super(Y,"array","PgVector");this.config.dimensions=Z.dimensions}build(Y){return new b3(Y,this.config)}}class b3 extends j{static[E]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){return Y.slice(1,-1).split(",").map((Z)=>Number.parseFloat(Z))}}function y3(Y,Z){let{name:X,config:G}=X0(Y,Z);return new k3(X,G)}function g3(){return{bigint:r7,bigserial:Y$,boolean:N8,char:$$,cidr:J$,customType:U$,date:V$,doublePrecision:L$,inet:R$,integer:I8,interval:B$,json:C$,jsonb:j$,line:f$,macaddr:b$,macaddr8:p$,numeric:o$,point:t$,geometry:G3,real:W3,serial:Q3,smallint:F3,smallserial:O3,text:M3,time:R3,timestamp:I3,uuid:C1,varchar:t0,bit:j3,halfvec:v3,sparsevec:h3,vector:y3}}var B5=Symbol.for("drizzle:PgInlineForeignKeys"),p3=Symbol.for("drizzle:EnableRLS");class u0 extends P{static[E]="PgTable";static Symbol=Object.assign({},P.Symbol,{InlineForeignKeys:B5,EnableRLS:p3});[B5]=[];[p3]=!1;[P.Symbol.ExtraConfigBuilder]=void 0;[P.Symbol.ExtraConfigColumns]={}}function cF(Y,Z,X,G,_=Y){let $=new u0(Y,G,_),W=typeof Z==="function"?Z(g3()):Z,H=Object.fromEntries(Object.entries(W).map(([z,F])=>{let O=F;O.setName(z);let L=O.build($);return $[B5].push(...O.buildForeignKeys(L,$)),[z,L]})),Q=Object.fromEntries(Object.entries(W).map(([z,F])=>{let O=F;O.setName(z);let L=O.buildExtraConfigColumn($);return[z,L]})),J=Object.assign($,H);if(J[P.Symbol.Columns]=H,J[P.Symbol.ExtraConfigColumns]=Q,X)J[u0.Symbol.ExtraConfigBuilder]=X;return Object.assign(J,{enableRLS:()=>{return J[u0.Symbol.EnableRLS]=!0,J}})}var I4=(Y,Z,X)=>{return cF(Y,Z,X,void 0)};function m3(...Y){if(Y[0].columns)return new K8(Y[0].columns,Y[0].name);return new K8(Y)}class K8{static[E]="PgPrimaryKeyBuilder";columns;name;constructor(Y,Z){this.columns=Y,this.name=Z}build(Y){return new u3(Y,this.columns,this.name)}}class u3{constructor(Y,Z,X){this.table=Y,this.columns=Z,this.name=X}static[E]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[u0.Symbol.Name]}_${this.columns.map((Y)=>Y.name).join("_")}_pk`}}function O1(Y,Z){if(b7(Z)&&!M5(Y)&&!M(Y,A1)&&!M(Y,w4)&&!M(Y,F0)&&!M(Y,P)&&!M(Y,V1))return new A1(Y,Z);return Y}var l6=(Y,Z)=>{return V`${Y} = ${O1(Z,Y)}`},d3=(Y,Z)=>{return V`${Y} <> ${O1(Z,Y)}`};function B8(...Y){let Z=Y.filter((X)=>X!==void 0);if(Z.length===0)return;if(Z.length===1)return new f(Z);return new f([new m0("("),V.join(Z,new m0(" and ")),new m0(")")])}function c3(...Y){let Z=Y.filter((X)=>X!==void 0);if(Z.length===0)return;if(Z.length===1)return new f(Z);return new f([new m0("("),V.join(Z,new m0(" or ")),new m0(")")])}function l3(Y){return V`not ${Y}`}var o3=(Y,Z)=>{return V`${Y} > ${O1(Z,Y)}`},i3=(Y,Z)=>{return V`${Y} >= ${O1(Z,Y)}`},n3=(Y,Z)=>{return V`${Y} < ${O1(Z,Y)}`},r3=(Y,Z)=>{return V`${Y} <= ${O1(Z,Y)}`};function s3(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return V`false`;return V`${Y} in ${Z.map((X)=>O1(X,Y))}`}return V`${Y} in ${O1(Z,Y)}`}function t3(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return V`true`;return V`${Y} not in ${Z.map((X)=>O1(X,Y))}`}return V`${Y} not in ${O1(Z,Y)}`}function a3(Y){return V`${Y} is null`}function e3(Y){return V`${Y} is not null`}function YW(Y){return V`exists ${Y}`}function ZW(Y){return V`not exists ${Y}`}function XW(Y,Z,X){return V`${Y} between ${O1(Z,Y)} and ${O1(X,Y)}`}function GW(Y,Z,X){return V`${Y} not between ${O1(Z,Y)} and ${O1(X,Y)}`}function _W(Y,Z){return V`${Y} like ${Z}`}function $W(Y,Z){return V`${Y} not like ${Z}`}function WW(Y,Z){return V`${Y} ilike ${Z}`}function HW(Y,Z){return V`${Y} not ilike ${Z}`}function JW(Y){return V`${Y} asc`}function QW(Y){return V`${Y} desc`}class T5{constructor(Y,Z,X){this.sourceTable=Y,this.referencedTable=Z,this.relationName=X,this.referencedTableName=Z[P.Symbol.Name]}static[E]="Relation";referencedTableName;fieldName}class zW{constructor(Y,Z){this.table=Y,this.config=Z}static[E]="Relations"}class K4 extends T5{constructor(Y,Z,X,G){super(Y,Z,X?.relationName);this.config=X,this.isNullable=G}static[E]="One";withFieldName(Y){let Z=new K4(this.sourceTable,this.referencedTable,this.config,this.isNullable);return Z.fieldName=Y,Z}}class T8 extends T5{constructor(Y,Z,X){super(Y,Z,X?.relationName);this.config=X}static[E]="Many";withFieldName(Y){let Z=new T8(this.sourceTable,this.referencedTable,this.config);return Z.fieldName=Y,Z}}function UW(){return{and:B8,between:XW,eq:l6,exists:YW,gt:o3,gte:i3,ilike:WW,inArray:s3,isNull:a3,isNotNull:e3,like:_W,lt:n3,lte:r3,ne:d3,not:l3,notBetween:GW,notExists:ZW,notLike:$W,notIlike:HW,notInArray:t3,or:c3,sql:V}}function FW(){return{sql:V,asc:JW,desc:QW}}function EW(Y,Z){if(Object.keys(Y).length===1&&"default"in Y&&!M(Y.default,P))Y=Y.default;let X={},G={},_={};for(let[$,W]of Object.entries(Y))if(M(W,P)){let H=g4(W),Q=G[H];X[H]=$,_[$]={tsName:$,dbName:W[P.Symbol.Name],schema:W[P.Symbol.Schema],columns:W[P.Symbol.Columns],relations:Q?.relations??{},primaryKey:Q?.primaryKey??[]};for(let z of Object.values(W[P.Symbol.Columns]))if(z.primary)_[$].primaryKey.push(z);let J=W[P.Symbol.ExtraConfigBuilder]?.(W[P.Symbol.ExtraConfigColumns]);if(J){for(let z of Object.values(J))if(M(z,K8))_[$].primaryKey.push(...z.columns)}}else if(M(W,zW)){let H=g4(W.table),Q=X[H],J=W.config(Z(W.table)),z;for(let[F,O]of Object.entries(J))if(Q){let L=_[Q];if(L.relations[F]=O,z)L.primaryKey.push(...z)}else{if(!(H in G))G[H]={relations:{},primaryKey:z};G[H].relations[F]=O}}return{tables:_,tableNamesMap:X}}function lF(Y){return function(X,G){return new K4(Y,X,G,G?.fields.reduce((_,$)=>_&&$.notNull,!0)??!1)}}function oF(Y){return function(X,G){return new T8(Y,X,G)}}function VW(Y,Z,X){if(M(X,K4)&&X.config)return{fields:X.config.fields,references:X.config.references};let G=Z[g4(X.referencedTable)];if(!G)throw Error(`Table "${X.referencedTable[P.Symbol.Name]}" not found in schema`);let _=Y[G];if(!_)throw Error(`Table "${G}" not found in schema`);let $=X.sourceTable,W=Z[g4($)];if(!W)throw Error(`Table "${$[P.Symbol.Name]}" not found in schema`);let H=[];for(let Q of Object.values(_.relations))if(X.relationName&&X!==Q&&Q.relationName===X.relationName||!X.relationName&&Q.referencedTable===X.sourceTable)H.push(Q);if(H.length>1)throw X.relationName?Error(`There are multiple relations with name "${X.relationName}" in table "${G}"`):Error(`There are multiple relations between "${G}" and "${X.sourceTable[P.Symbol.Name]}". Please specify relation name`);if(H[0]&&M(H[0],K4)&&H[0].config)return{fields:H[0].config.references,references:H[0].config.fields};throw Error(`There is not enough information to infer relation "${W}.${X.fieldName}"`)}function OW(Y){return{one:lF(Y),many:oF(Y)}}function o6(Y,Z,X,G,_=($)=>$){let $={};for(let[W,H]of G.entries())if(H.isJson){let Q=Z.relations[H.tsKey],J=X[W],z=typeof J==="string"?JSON.parse(J):J;$[H.tsKey]=M(Q,K4)?z&&o6(Y,Y[H.relationTableTsKey],z,H.selection,_):z.map((F)=>o6(Y,Y[H.relationTableTsKey],F,H.selection,_))}else{let Q=_(X[W]),J=H.field,z;if(M(J,F0))z=J;else if(M(J,f))z=J.decoder;else z=J.sql.decoder;$[H.tsKey]=Q===null?null:z.mapFromDriverValue(Q)}return $}import DE from"os";import LE from"fs";var i6=new Map,C5=new Map,q5=Symbol("OriginError"),A2={};class q1 extends Promise{constructor(Y,Z,X,G,_={}){let $,W;super((H,Q)=>{$=H,W=Q});this.tagged=Array.isArray(Y.raw),this.strings=Y,this.args=Z,this.handler=X,this.canceller=G,this.options=_,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[q5]=this.handler.debug?Error():this.tagged&&iF(this.strings)}get origin(){return(this.handler.debug?this[q5].stack:this.tagged&&C5.has(this.strings)?C5.get(this.strings):C5.set(this.strings,this[q5].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 G=new Promise((_,$)=>{this.cursorFn=(W)=>{return _({value:W,done:!1}),new Promise((H)=>X=H)},this.resolve=()=>(this.active=!1,_({done:!0})),this.reject=(W)=>(this.active=!1,$(W))});return this.execute(),G},return(){return X&&X(A2),{done:!0}}})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw Error(".stream has been renamed to .forEach")}forEach(Y){return this.forEachFn=Y,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}}function iF(Y){if(i6.has(Y))return i6.get(Y);let Z=Error.stackTraceLimit;return Error.stackTraceLimit=4,i6.set(Y,Error()),Error.stackTraceLimit=Z,i6.get(Y)}class R2 extends Error{constructor(Y){super(Y.message);this.name=this.constructor.name,Object.assign(this,Y)}}var f0={connection:DW,postgres:LW,generic:MW,notSupported:AW};function DW(Y,Z,X){let{host:G,port:_}=X||Z,$=Object.assign(Error("write "+Y+" "+(Z.path||G+":"+_)),{code:Y,errno:Y,address:Z.path||G},Z.path?{}:{port:_});return Error.captureStackTrace($,DW),$}function LW(Y){let Z=new R2(Y);return Error.captureStackTrace(Z,LW),Z}function MW(Y,Z){let X=Object.assign(Error(Y+": "+Z),{code:Y});return Error.captureStackTrace(X,MW),X}function AW(Y){let Z=Object.assign(Error(Y+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:Y});return Error.captureStackTrace(Z,AW),Z}var nF={string:{to:25,from:null,serialize:(Y)=>""+Y},number:{to:0,from:[21,23,26,700,701],serialize:(Y)=>""+Y,parse:(Y)=>+Y},json:{to:114,from:[114,3802],serialize:(Y)=>JSON.stringify(Y),parse:(Y)=>JSON.parse(Y)},boolean:{to:16,from:16,serialize:(Y)=>Y===!0?"t":"f",parse:(Y)=>Y==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(Y)=>(Y instanceof Date?Y:new Date(Y)).toISOString(),parse:(Y)=>new Date(Y)},bytea:{to:17,from:17,serialize:(Y)=>"\\x"+Buffer.from(Y).toString("hex"),parse:(Y)=>Buffer.from(Y.slice(2),"hex")}};class s6{then(){j5()}catch(){j5()}finally(){j5()}}class P8 extends s6{constructor(Y){super();this.value=e6(Y)}}class n1 extends s6{constructor(Y,Z,X){super();this.value=Y,this.type=Z,this.array=X}}class t6 extends s6{constructor(Y,Z){super();this.first=Y,this.rest=Z}build(Y,Z,X,G){let _=rF.map(([$,W])=>({fn:W,i:Y.search($)})).sort(($,W)=>$.i-W.i).pop();return _.i===-1?f5(this.first,G):_.fn(this.first,this.rest,Z,X,G)}}function a6(Y,Z,X,G){let _=Y instanceof n1?Y.value:Y;if(_===void 0){if(Y instanceof n1?Y.value=G.transform.undefined:_=Y=G.transform.undefined,_===void 0)throw f0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+X.push(Y instanceof n1?(Z.push(Y.value),Y.array?Y.array[Y.type||r6(Y.value)]||Y.type||IW(Y.value):Y.type):(Z.push(Y),r6(Y)))}var wW=BW(nF);function v5(Y,Z,X,G,_,$){for(let W=1;W<Y.strings.length;W++)Z+=x5(Z,X,G,_,$)+Y.strings[W],X=Y.args[W];return Z}function x5(Y,Z,X,G,_){return Z instanceof t6?Z.build(Y,X,G,_):Z instanceof q1?S5(Z,X,G,_):Z instanceof P8?Z.value:Z&&Z[0]instanceof q1?Z.reduce(($,W)=>$+" "+S5(W,X,G,_),""):a6(Z,X,G,_)}function S5(Y,Z,X,G){return Y.fragment=!0,v5(Y,Y.strings[0],Y.args[0],Z,X,G)}function NW(Y,Z,X,G,_){return Y.map(($)=>"("+G.map((W)=>x5("values",$[W],Z,X,_)).join(",")+")").join(",")}function RW(Y,Z,X,G,_){let $=Array.isArray(Y[0]),W=Z.length?Z.flat():Object.keys($?Y[0]:Y);return NW($?Y:[Y],X,G,W,_)}function n6(Y,Z,X,G,_){if(typeof Y==="string"&&(Y=[Y].concat(Z)),Array.isArray(Y))return f5(Y,_);let $;return(Z.length?Z.flat():Object.keys(Y)).map((H)=>{return $=Y[H],($ instanceof q1?S5($,X,G,_):$ instanceof P8?$.value:a6($,X,G,_))+" as "+e6(_.transform.column.to?_.transform.column.to(H):H)}).join(",")}var rF=Object.entries({values:RW,in:(...Y)=>{let Z=RW(...Y);return Z==="()"?"(null)":Z},select:n6,as:n6,returning:n6,"\\(":n6,update(Y,Z,X,G,_){return(Z.length?Z.flat():Object.keys(Y)).map(($)=>e6(_.transform.column.to?_.transform.column.to($):$)+"="+x5("values",Y[$],X,G,_))},insert(Y,Z,X,G,_){let $=Z.length?Z.flat():Object.keys(Array.isArray(Y)?Y[0]:Y);return"("+f5($,_)+")values"+NW(Array.isArray(Y)?Y:[Y],X,G,$,_)}}).map(([Y,Z])=>[new RegExp("((?:^|[\\s(])"+Y+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),Z]);function j5(){throw f0.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:sF,parsers:tF}=wW;function IW(Y){if(Array.isArray(Y))return IW(Y[0]);return typeof Y==="string"?1009:0}var KW=function(Y){let Z=BW(Y||{});return{serializers:Object.assign({},sF,Z.serializers),parsers:Object.assign({},tF,Z.parsers)}};function BW(Y){return Object.keys(Y).reduce((Z,X)=>{if(Y[X].from&&[].concat(Y[X].from).forEach((G)=>Z.parsers[G]=Y[X].parse),Y[X].serialize)Z.serializers[Y[X].to]=Y[X].serialize,Y[X].from&&[].concat(Y[X].from).forEach((G)=>Z.serializers[G]=Y[X].serialize);return Z},{parsers:{},serializers:{}})}function f5(Y,{transform:{column:Z}}){return Y.map((X)=>e6(Z.to?Z.to(X):X)).join(",")}var e6=function(Z){return'"'+Z.replace(/"/g,'""').replace(/\./g,'"."')+'"'},r6=function Y(Z){return Z instanceof n1?Z.type:Z instanceof Date?1184:Z instanceof Uint8Array?17:Z===!0||Z===!1?16:typeof Z==="bigint"?20:Array.isArray(Z)?Y(Z[0]):0},aF=/\\/g,eF=/"/g;function YE(Y){return Y.replace(aF,"\\\\").replace(eF,"\\\"")}var TW=function Y(Z,X,G,_){if(Array.isArray(Z)===!1)return Z;if(!Z.length)return"{}";let $=Z[0],W=_===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=G.transform.undefined,H===void 0)throw f0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return H===null?"null":'"'+YE(X?X(H.type?H.value:H):""+H)+'"'}).join(W)+"}"},P5={i:0,char:null,str:"",quoted:!1,last:0},CW=function(Z,X,G){return P5.i=P5.last=0,qW(P5,Z,X,G)};function qW(Y,Z,X,G){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==='"')_.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,_.push(qW(Y,Z,X,G));else if(Y.char==="}"){Y.quoted=!1,Y.last<Y.i&&_.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!=='"')_.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&&_.push(X?X(Z.slice(Y.last,Y.i+1)):Z.slice(Y.last,Y.i+1)),_}var p4=(Y)=>{let Z=Y[0];for(let X=1;X<Y.length;X++)Z+=Y[X]==="_"?Y[++X].toUpperCase():Y[X];return Z},m4=(Y)=>{let Z=Y[0].toUpperCase();for(let X=1;X<Y.length;X++)Z+=Y[X]==="_"?Y[++X].toUpperCase():Y[X];return Z},u4=(Y)=>Y.replace(/_/g,"-"),C8=(Y)=>Y.replace(/([A-Z])/g,"_$1").toLowerCase(),q8=(Y)=>(Y.slice(0,1)+Y.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),j8=(Y)=>Y.replace(/-/g,"_");function h5(Y){return function Z(X,G){return typeof X==="object"&&X!==null&&(G.type===114||G.type===3802)?Array.isArray(X)?X.map((_)=>Z(_,G)):Object.entries(X).reduce((_,[$,W])=>Object.assign(_,{[Y($)]:Z(W,G)}),{}):X}}p4.column={from:p4};p4.value={from:h5(p4)};C8.column={to:C8};var k5={...p4};k5.column.to=C8;m4.column={from:m4};m4.value={from:h5(m4)};q8.column={to:q8};var b5={...m4};b5.column.to=q8;u4.column={from:u4};u4.value={from:h5(u4)};j8.column={to:j8};var y5={...u4};y5.column.to=j8;import jW from"net";import _E from"tls";import S8 from"crypto";import g5 from"stream";import{performance as PW}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=ZE;function ZE(Y=[]){let Z=Y.slice(),X=0;return{get length(){return Z.length-X},remove:(G)=>{let _=Z.indexOf(G);return _===-1?null:(Z.splice(_,1),G)},push:(G)=>(Z.push(G),G),shift:()=>{let G=Z[X++];if(X===Z.length)X=0,Z=[];else Z[X-1]=void 0;return G}}}var a0=Buffer.allocUnsafe(256),XE="BCcDdEFfHPpQSX".split("").reduce((Y,Z)=>{let X=Z.charCodeAt(0);return Y[Z]=()=>{return a0[0]=X,z0.i=5,z0},Y},{}),z0=Object.assign(GE,XE,{N:String.fromCharCode(0),i:0,inc(Y){return z0.i+=Y,z0},str(Y){let Z=Buffer.byteLength(Y);return YY(Z),z0.i+=a0.write(Y,z0.i,Z,"utf8"),z0},i16(Y){return YY(2),a0.writeUInt16BE(Y,z0.i),z0.i+=2,z0},i32(Y,Z){if(Z||Z===0)return a0.writeUInt32BE(Y,Z),z0;return YY(4),a0.writeUInt32BE(Y,z0.i),z0.i+=4,z0},z(Y){return YY(Y),a0.fill(0,z0.i,z0.i+Y),z0.i+=Y,z0},raw(Y){return a0=Buffer.concat([a0.subarray(0,z0.i),Y]),z0.i=a0.length,z0},end(Y=1){a0.writeUInt32BE(z0.i-Y,Y);let Z=a0.subarray(0,z0.i);return z0.i=0,a0=Buffer.allocUnsafe(256),Z}}),d=z0;function YY(Y){if(a0.length-z0.i<Y){let Z=a0,X=Z.length;a0=Buffer.allocUnsafe(X+(X>>1)+Y),Z.copy(a0)}}function GE(){return z0.i=0,z0}var u5=xW,$E=1,B4=d().S().end(),SW=d().H().end(),WE=d().i32(8).i32(80877103).end(8),HE=Buffer.concat([d().E().str(d.N).i32(0).end(),B4]),JE=d().D().str("S").str(d.N).end(),w2=()=>{},QE=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),zE={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 xW(Y,Z={},{onopen:X=w2,onend:G=w2,onclose:_=w2}={}){let{ssl:$,max:W,user:H,host:Q,port:J,database:z,parsers:F,transform:O,onnotice:L,onnotify:w,onparameter:R,max_pipeline:b,keep_alive:x,backoff:h,target_session_attrs:g}=Y,B=R1(),K=$E++,C={pid:null,secret:null},q=m5(VY,Y.idle_timeout),c=m5(VY,Y.max_lifetime),n=m5(XH,Y.connect_timeout),N=null,s,p=new d4,t=Buffer.alloc(0),I0=Y.fetch_types,h0={},$1={},r1=Math.random().toString(36).slice(2),T=1,m=0,$0=0,V0=0,k0=0,a=0,J0=0,v0=0,B0=null,A0=null,o0=!1,O0=null,j1=null,c0=null,z4=null,b0=null,R0=null,P1=null,u1=null,v=null,B2=null,i0={queue:Z.closed,idleTimer:q,connect(U){c0=U,OX()},terminate:C2,execute:T2,cancel:aW,end:VY,count:0,id:K};return Z.closed&&Z.closed.push(i0),i0;async function tW(){let U;try{U=Y.socket?await Promise.resolve(Y.socket(Y)):new jW.Socket}catch(D){i4(D);return}return U.on("error",i4),U.on("close",DX),U.on("drain",EX),U}async function aW({pid:U,secret:D},l,W0){try{s=d().i32(16).i32(80877102).i32(U).i32(D).end(16),await VX(),N.once("error",W0),N.once("close",l)}catch(C0){W0(C0)}}function T2(U){if(o0)return g8(U,f0.connection("CONNECTION_DESTROYED",Y));if(U.cancelled)return;try{return U.state=C,v?B.push(U):(v=U,v.active=!0),ZH(U),l0(eW(U))&&!U.describeFirst&&!U.cursorFn&&B.length<b&&(!U.options.onexecute||U.options.onexecute(i0))}catch(D){return B.length===0&&l0(B4),d1(D),!0}}function eW(U){if(U.parameters.length>=65534)throw f0.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return U.options.simple?d().Q().str(U.statement.string+d.N).end():U.describeFirst?Buffer.concat([zX(U),SW]):U.prepare?U.prepared?y8(U):Buffer.concat([zX(U),y8(U)]):YH(U)}function zX(U){return Buffer.concat([MX(U.statement.string,U.parameters,U.statement.types,U.statement.name),pH("S",U.statement.name)])}function y8(U){return Buffer.concat([gH(U.parameters,U.statement.types,U.statement.name,U.cursorName),U.cursorFn?AX("",U.cursorRows):HE])}function YH(U){return Buffer.concat([MX(U.statement.string,U.parameters,U.statement.types),JE,y8(U)])}function ZH(U){let D=[],l=[],W0=v5(U,U.strings[0],U.args[0],D,l,Y);!U.tagged&&U.args.forEach((C0)=>a6(C0,D,l,Y)),U.prepare=Y.prepare&&("prepare"in U.options?U.options.prepare:!0),U.string=W0,U.signature=U.prepare&&l+W0,U.onlyDescribe&&delete $1[U.signature],U.parameters=U.parameters||D,U.prepared=U.prepare&&U.signature in $1,U.describeFirst=U.onlyDescribe||D.length&&!U.prepared,U.statement=U.prepared?$1[U.signature]:{string:W0,types:l,name:U.prepare?r1+T++:""},typeof Y.debug==="function"&&Y.debug(K,W0,D,l)}function l0(U,D){if(R0=R0?Buffer.concat([R0,U]):Buffer.from(U),D||R0.length>=1024)return UX(D);return A0===null&&(A0=setImmediate(UX)),!0}function UX(U){let D=N.write(R0,U);return A0!==null&&clearImmediate(A0),R0=A0=null,D}function XH(){d1(f0.connection("CONNECT_TIMEOUT",Y,N)),N.destroy()}async function FX(){if(l0(WE),!await new Promise((D)=>N.once("data",(l)=>D(l[0]===83)))&&$==="prefer")return o4();N.removeAllListeners(),N=_E.connect({socket:N,servername:jW.isIP(N.host)?void 0:N.host,...$==="require"||$==="allow"||$==="prefer"?{rejectUnauthorized:!1}:$==="verify-full"?{}:typeof $==="object"?$:{}}),N.on("secureConnect",o4),N.on("error",i4),N.on("close",DX),N.on("drain",EX)}function EX(){!v&&X(i0)}function EY(U){if(O0){if(O0.push(U),$0-=U.length,$0>0)return}t=O0?Buffer.concat(O0,a-$0):t.length===0?U:Buffer.concat([t,U],t.length+U.length);while(t.length>4){if(a=t.readUInt32BE(1),a>=t.length){$0=a-t.length,O0=[t];break}try{GH(t.subarray(0,a+1))}catch(D){v&&(v.cursorFn||v.describeFirst)&&l0(B4),d1(D)}t=t.subarray(a+1),$0=0,O0=null}}async function VX(){if(o0=!1,h0={},N||(N=await tW()),!N)return;if(n.start(),Y.socket)return $?FX():o4();if(N.on("connect",$?FX:o4),Y.path)return N.connect(Y.path);N.ssl=$,N.connect(J[V0],Q[V0]),N.host=Q[V0],N.port=J[V0],V0=(V0+1)%J.length}function OX(){setTimeout(VX,m?m+J0-PW.now():0)}function o4(){try{$1={},I0=Y.fetch_types,r1=Math.random().toString(36).slice(2),T=1,c.start(),N.on("data",EY),x&&N.setKeepAlive&&N.setKeepAlive(!0,1000*x);let U=uH();l0(U)}catch(U){i4(U)}}function i4(U){if(i0.queue===Z.connecting&&Y.host[k0+1])return;d1(U);while(B.length)g8(B.shift(),U)}function d1(U){b0&&(b0.destroy(U),b0=null),v&&g8(v,U),c0&&(g8(c0,U),c0=null)}function g8(U,D){if(U.reserve)return U.reject(D);if(!D||typeof D!=="object")D=Error(D);"query"in D||"parameters"in D||Object.defineProperties(D,{stack:{value:D.stack+U.origin.replace(/.*\n/,`
|
|
67
|
+
`),enumerable:Y.debug},query:{value:U.string,enumerable:Y.debug},parameters:{value:U.parameters,enumerable:Y.debug},args:{value:U.args,enumerable:Y.debug},types:{value:U.statement&&U.statement.types,enumerable:Y.debug}}),U.reject(D)}function VY(){return z4||(!i0.reserved&&G(i0),!i0.reserved&&!c0&&!v&&B.length===0?(C2(),new Promise((U)=>N&&N.readyState!=="closed"?N.once("close",U):U())):z4=new Promise((U)=>P1=U))}function C2(){if(o0=!0,b0||v||c0||B.length)i4(f0.connection("CONNECTION_DESTROYED",Y));if(clearImmediate(A0),N)N.removeListener("data",EY),N.removeListener("connect",o4),N.readyState==="open"&&N.end(d().X().end());P1&&(P1(),z4=P1=null)}async function DX(U){if(t=Buffer.alloc(0),$0=0,O0=null,clearImmediate(A0),N.removeListener("data",EY),N.removeListener("connect",o4),q.cancel(),c.cancel(),n.cancel(),N.removeAllListeners(),N=null,c0)return OX();!U&&(v||B.length)&&i4(f0.connection("CONNECTION_CLOSED",Y,N)),m=PW.now(),U&&Y.shared.retries++,J0=(typeof h==="function"?h(Y.shared.retries):h)*1000,_(i0,f0.connection("CONNECTION_CLOSED",Y,N))}function GH(U,D=U[0]){(D===68?_H:D===100?SH:D===65?BH:D===83?$H:D===90?WH:D===67?HH:D===50?LX:D===49?JH:D===116?QH:D===84?zH:D===82?UH:D===110?LH:D===75?MH:D===69?IH:D===115?TH:D===51?CH:D===71?qH:D===78?xH:D===72?jH:D===99?vH:D===73?fH:D===86?hH:D===118?kH:D===87?PH:bH)(U)}function _H(U){let D=7,l,W0,C0,n0=v.isRaw?Array(v.statement.columns.length):{};for(let e0=0;e0<v.statement.columns.length;e0++)W0=v.statement.columns[e0],l=U.readInt32BE(D),D+=4,C0=l===-1?null:v.isRaw===!0?U.subarray(D,D+=l):W0.parser===void 0?U.toString("utf8",D,D+=l):W0.parser.array===!0?W0.parser(U.toString("utf8",D+1,D+=l)):W0.parser(U.toString("utf8",D,D+=l)),v.isRaw?n0[e0]=v.isRaw===!0?C0:O.value.from?O.value.from(C0,W0):C0:n0[W0.name]=O.value.from?O.value.from(C0,W0):C0;v.forEachFn?v.forEachFn(O.row.from?O.row.from(n0):n0,p):p[v0++]=O.row.from?O.row.from(n0):n0}function $H(U){let[D,l]=U.toString("utf8",5,U.length-1).split(d.N);if(h0[D]=l,Y.parameters[D]!==l)Y.parameters[D]=l,R&&R(D,l)}function WH(U){if(v&&v.options.simple&&v.resolve(j1||p),v=j1=null,p=new d4,n.cancel(),c0){if(g){if(!h0.in_hot_standby||!h0.default_transaction_read_only)return NH();else if(wH(g,h0))return C2()}if(I0)return c0.reserve&&(c0=null),AH();c0&&!c0.reserve&&T2(c0),Y.shared.retries=k0=0,c0=null;return}while(B.length&&(v=B.shift())&&(v.active=!0,v.cancelled))xW(Y).cancel(v.state,v.cancelled.resolve,v.cancelled.reject);if(v)return;i0.reserved?!i0.reserved.release&&U[5]===73?z4?C2():(i0.reserved=null,X(i0)):i0.reserved():z4?C2():X(i0)}function HH(U){v0=0;for(let D=U.length-1;D>0;D--){if(U[D]===32&&U[D+1]<58&&p.count===null)p.count=+U.toString("utf8",D+1,U.length-1);if(U[D-1]>=65){p.command=U.toString("utf8",5,D),p.state=C;break}}if(B2&&(B2(),B2=null),p.command==="BEGIN"&&W!==1&&!i0.reserved)return d1(f0.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(v.options.simple)return LX();if(v.cursorFn)p.count&&v.cursorFn(p),l0(B4);v.resolve(p)}function JH(){v.parsing=!1}function LX(){!p.statement&&(p.statement=v.statement),p.columns=v.statement.columns}function QH(U){let D=U.readUInt16BE(5);for(let l=0;l<D;++l)!v.statement.types[l]&&(v.statement.types[l]=U.readUInt32BE(7+l*4));v.prepare&&($1[v.signature]=v.statement),v.describeFirst&&!v.onlyDescribe&&(l0(y8(v)),v.describeFirst=!1)}function zH(U){if(p.command)j1=j1||[p],j1.push(p=new d4),p.count=null,v.statement.columns=null;let D=U.readUInt16BE(5),l=7,W0;v.statement.columns=Array(D);for(let C0=0;C0<D;++C0){W0=l;while(U[l++]!==0);let n0=U.readUInt32BE(l),e0=U.readUInt16BE(l+4),U4=U.readUInt32BE(l+6);v.statement.columns[C0]={name:O.column.from?O.column.from(U.toString("utf8",W0,l-1)):U.toString("utf8",W0,l-1),parser:F[U4],table:n0,number:e0,type:U4},l+=18}if(p.statement=v.statement,v.onlyDescribe)return v.resolve(v.statement),l0(B4)}async function UH(U,D=U.readUInt32BE(5)){(D===3?FH:D===5?EH:D===10?VH:D===11?OH:D===12?DH:D!==0?yH:w2)(U,D)}async function FH(){let U=await OY();l0(d().p().str(U).z(1).end())}async function EH(U){let D="md5"+await vW(Buffer.concat([Buffer.from(await vW(await OY()+H)),U.subarray(9)]));l0(d().p().str(D).z(1).end())}async function VH(){u1=(await S8.randomBytes(18)).toString("base64"),d().p().str("SCRAM-SHA-256"+d.N);let U=d.i;l0(d.inc(4).str("n,,n=*,r="+u1).i32(d.i-U-4,U).end())}async function OH(U){let D=U.toString("utf8",9).split(",").reduce((e0,U4)=>(e0[U4[0]]=U4.slice(2),e0),{}),l=await S8.pbkdf2Sync(await OY(),Buffer.from(D.s,"base64"),parseInt(D.i),32,"sha256"),W0=await ZY(l,"Client Key"),C0="n=*,r="+u1+",r="+D.r+",s="+D.s+",i="+D.i+",c=biws,r="+D.r;B0=(await ZY(await ZY(l,"Server Key"),C0)).toString("base64");let n0="c=biws,r="+D.r+",p="+FE(W0,Buffer.from(await ZY(await UE(W0),C0))).toString("base64");l0(d().p().str(n0).end())}function DH(U){if(U.toString("utf8",9).split(d.N,1)[0].slice(2)===B0)return;d1(f0.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),N.destroy()}function OY(){return Promise.resolve(typeof Y.pass==="function"?Y.pass():Y.pass)}function LH(){if(p.statement=v.statement,p.statement.columns=[],v.onlyDescribe)return v.resolve(v.statement),l0(B4)}function MH(U){C.pid=U.readUInt32BE(5),C.secret=U.readUInt32BE(9)}async function AH(){I0=!1,(await new q1([`
|
|
68
68
|
select b.oid, b.typarray
|
|
69
69
|
from pg_catalog.pg_type a
|
|
70
70
|
left join pg_catalog.pg_type b on b.oid = a.typelem
|
|
71
71
|
where a.typcategory = 'A'
|
|
72
72
|
group by b.oid, b.typarray
|
|
73
73
|
order by b.oid
|
|
74
|
-
`],[],T2)).forEach(({oid:D,typarray:l})=>
|
|
74
|
+
`],[],T2)).forEach(({oid:D,typarray:l})=>RH(D,l))}function RH(U,D){if(!!Y.parsers[D]&&!!Y.serializers[D])return;let l=Y.parsers[U];Y.shared.typeArrayMap[U]=D,Y.parsers[D]=(W0)=>CW(W0,l,D),Y.parsers[D].array=!0,Y.serializers[D]=(W0)=>TW(W0,Y.serializers[U],Y,D)}function wH(U,D){return U==="read-write"&&D.default_transaction_read_only==="on"||U==="read-only"&&D.default_transaction_read_only==="off"||U==="primary"&&D.in_hot_standby==="on"||U==="standby"&&D.in_hot_standby==="off"||U==="prefer-standby"&&D.in_hot_standby==="off"&&Y.host[k0]}function NH(){let U=new q1([`
|
|
75
75
|
show transaction_read_only;
|
|
76
76
|
select pg_catalog.pg_is_in_recovery()
|
|
77
|
-
`],[],T2,null,{simple:!0});
|
|
77
|
+
`],[],T2,null,{simple:!0});U.resolve=([[D],[l]])=>{h0.default_transaction_read_only=D.transaction_read_only,h0.in_hot_standby=l.pg_is_in_recovery?"on":"off"},U.execute()}function IH(U){v&&(v.cursorFn||v.describeFirst)&&l0(B4);let D=f0.postgres(p5(U));v&&v.retried?d1(v.retried):v&&v.prepared&&QE.has(D.routine)?KH(v,D):d1(D)}function KH(U,D){delete $1[U.signature],U.retried=D,T2(U)}function BH(U){if(!w)return;let D=9;while(U[D++]!==0);w(U.toString("utf8",9,D-1),U.toString("utf8",D,U.length-1))}async function TH(){try{let U=await Promise.resolve(v.cursorFn(p));v0=0,U===A2?l0(mH(v.portal)):(p=new d4,l0(AX("",v.cursorRows)))}catch(U){l0(B4),v.reject(U)}}function CH(){p.count&&v.cursorFn(p),v.resolve(p)}function qH(){b0=new g5.Writable({autoDestroy:!0,write(U,D,l){N.write(d().d().raw(U).end(),l)},destroy(U,D){D(U),N.write(d().f().str(U+d.N).end()),b0=null},final(U){N.write(d().c().end()),B2=U}}),v.resolve(b0)}function jH(){b0=new g5.Readable({read(){N.resume()}}),v.resolve(b0)}function PH(){b0=new g5.Duplex({autoDestroy:!0,read(){N.resume()},write(U,D,l){N.write(d().d().raw(U).end(),l)},destroy(U,D){D(U),N.write(d().f().str(U+d.N).end()),b0=null},final(U){N.write(d().c().end()),B2=U}}),v.resolve(b0)}function SH(U){b0&&(b0.push(U.subarray(5))||N.pause())}function vH(){b0&&b0.push(null),b0=null}function xH(U){L?L(p5(U)):console.log(p5(U))}function fH(){}function hH(){d1(f0.notSupported("FunctionCallResponse"))}function kH(){d1(f0.notSupported("NegotiateProtocolVersion"))}function bH(U){console.error("Postgres.js : Unknown Message:",U[0])}function yH(U,D){console.error("Postgres.js : Unknown Auth:",D)}function gH(U,D,l="",W0=""){let C0,n0;return d().B().str(W0+d.N).str(l+d.N).i16(0).i16(U.length),U.forEach((e0,U4)=>{if(e0===null)return d.i32(4294967295);n0=D[U4],U[U4]=e0=n0 in Y.serializers?Y.serializers[n0](e0):""+e0,C0=d.i,d.inc(4).str(e0).i32(d.i-C0-4,C0)}),d.i16(0),d.end()}function MX(U,D,l,W0=""){return d().P().str(W0+d.N).str(U+d.N).i16(D.length),D.forEach((C0,n0)=>d.i32(l[n0]||0)),d.end()}function pH(U,D=""){return d().D().str(U).str(D+d.N).end()}function AX(U="",D=0){return Buffer.concat([d().E().str(U+d.N).i32(D).end(),SW])}function mH(U=""){return Buffer.concat([d().C().str("P").str(U+d.N).end(),d().S().end()])}function uH(){return s||d().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:H,database:z,client_encoding:"UTF8"},Y.connection)).filter(([,U])=>U).map(([U,D])=>U+d.N+D).join(d.N)).z(2).end(0)}}function p5(Y){let Z={},X=5;for(let G=5;G<Y.length-1;G++)if(Y[G]===0)Z[zE[Y[X]]]=Y.toString("utf8",X+1,G),X=G+1;return Z}function vW(Y){return S8.createHash("md5").update(Y).digest("hex")}function ZY(Y,Z){return S8.createHmac("sha256",Y).update(Z).digest()}function UE(Y){return S8.createHash("sha256").update(Y).digest()}function FE(Y,Z){let X=Math.max(Y.length,Z.length),G=Buffer.allocUnsafe(X);for(let _=0;_<X;_++)G[_]=Y[_]^Z[_];return G}function m5(Y,Z){if(Z=typeof Z==="function"?Z():Z,!Z)return{cancel:w2,start:w2};let X;return{cancel(){X&&(clearTimeout(X),X=null)},start(){X&&clearTimeout(X),X=setTimeout(G,Z*1000,arguments)}};function G(_){Y.apply(null,_),X=null}}var fW=()=>{};function d5(Y,Z){let X=new Map,G="postgresjs_"+Math.random().toString(36).slice(2),_={},$,W,H=!1,Q=F.sql=Y({...Z,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...Z.connection,replication:"database"},onclose:async function(){if(H)return;W=null,_.pid=_.secret=void 0,O(await L(Q,G,Z.publications)),X.forEach((R)=>R.forEach(({onsubscribe:b})=>b()))},no_subscribe:!0}),J=Q.end,z=Q.close;return Q.end=async()=>{return H=!0,W&&await new Promise((R)=>(W.once("close",R),W.end())),J()},Q.close=async()=>{return W&&await new Promise((R)=>(W.once("close",R),W.end())),z()},F;async function F(R,b,x=fW,h=fW){if(R=OE(R),!$)$=L(Q,G,Z.publications);let g={fn:b,onsubscribe:x},B=X.has(R)?X.get(R).add(g):X.set(R,new Set([g])).get(R),K=()=>{B.delete(g),B.size===0&&X.delete(R)};return $.then((C)=>{return O(C),x(),W&&W.on("error",h),{unsubscribe:K,state:_,sql:Q}})}function O(R){W=R.stream,_.pid=R.state.pid,_.secret=R.state.secret}async function L(R,b,x){if(!x)throw Error("Missing publication names");let h=await R.unsafe(`CREATE_REPLICATION_SLOT ${b} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[g]=h,B=await R.unsafe(`START_REPLICATION SLOT ${b} LOGICAL ${g.consistent_point} (proto_version '1', publication_names '${x}')`).writable(),K={lsn:Buffer.concat(g.consistent_point.split("/").map((N)=>Buffer.from(("00000000"+N).slice(-8),"hex")))};return B.on("data",q),B.on("error",C),B.on("close",R.close),{stream:B,state:h.state};function C(N){console.error("Unexpected error during logical streaming - reconnecting",N)}function q(N){if(N[0]===119)VE(N.subarray(25),K,R.options.parsers,c,Z.transform);else if(N[0]===107&&N[17])K.lsn=N.subarray(1,9),n()}function c(N,s){let p=s.relation.schema+"."+s.relation.table;w("*",N,s),w("*:"+p,N,s),s.relation.keys.length&&w("*:"+p+"="+s.relation.keys.map((t)=>N[t.name]),N,s),w(s.command,N,s),w(s.command+":"+p,N,s),s.relation.keys.length&&w(s.command+":"+p+"="+s.relation.keys.map((t)=>N[t.name]),N,s)}function n(){let N=Buffer.alloc(34);N[0]=114,N.fill(K.lsn,1),N.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),B.write(N)}}function w(R,b,x){X.has(R)&&X.get(R).forEach(({fn:h})=>h(b,x,R))}}function EE(Y){return new Date(Date.UTC(2000,0,1)+Number(Y/BigInt(1000)))}function VE(Y,Z,X,G,_){let $=(W,[H,Q])=>(W[H.charCodeAt(0)]=Q,W);Object.entries({R:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)]={schema:W.toString("utf8",H+=4,H=W.indexOf(0,H))||"pg_catalog",table:W.toString("utf8",H+1,H=W.indexOf(0,H+1)),columns:Array(W.readUInt16BE(H+=2)),keys:[]};H+=2;let J=0,z;while(H<W.length)z=Q.columns[J++]={key:W[H++],name:_.column.from?_.column.from(W.toString("utf8",H,H=W.indexOf(0,H))):W.toString("utf8",H,H=W.indexOf(0,H)),type:W.readUInt32BE(H+=1),parser:X[W.readUInt32BE(H)],atttypmod:W.readUInt32BE(H+=4)},z.key&&Q.keys.push(z),H+=4},Y:()=>{},O:()=>{},B:(W)=>{Z.date=EE(W.readBigInt64BE(9)),Z.lsn=W.subarray(1,9)},I:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)],{row:J}=XY(W,Q.columns,H+=7,_);G(J,{command:"insert",relation:Q})},D:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)];H+=4;let J=W[H]===75;G(J||W[H]===79?XY(W,Q.columns,H+=3,_).row:null,{command:"delete",relation:Q,key:J})},U:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)];H+=4;let J=W[H]===75,z=J||W[H]===79?XY(W,Q.columns,H+=3,_):null;z&&(H=z.i);let{row:F}=XY(W,Q.columns,H+3,_);G(F,{command:"update",relation:Q,key:J,old:z&&z.row})},T:()=>{},C:()=>{}}).reduce($,{})[Y[0]](Y)}function XY(Y,Z,X,G){let _,$,W,H=G.raw?Array(Z.length):{};for(let Q=0;Q<Z.length;Q++)_=Y[X++],$=Z[Q],W=_===110?null:_===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))),G.raw?H[Q]=G.raw===!0?W:G.value.from?G.value.from(W,$):W:H[$.name]=G.value.from?G.value.from(W,$):W;return{i:X,row:G.row.from?G.row.from(H):H}}function OE(Y){let Z=Y.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!Z)throw Error("Malformed subscribe pattern: "+Y);let[,X,G,_]=Z;return(X||"*")+(G?":"+(G.indexOf(".")===-1?"public."+G:G):"")+(_?"="+_:"")}import hW from"stream";function c5(Y,Z,X=393216){return new Promise(async(G,_)=>{await Y.begin(async($)=>{let W;!Z&&([{oid:Z}]=await $`select lo_creat(-1) as oid`);let[{fd:H}]=await $`select lo_open(${Z}, ${X}) as fd`,Q={writable:z,readable:J,close:()=>$`select lo_close(${H})`.then(W),tell:()=>$`select lo_tell64(${H})`,read:(F)=>$`select loread(${H}, ${F}) as data`,write:(F)=>$`select lowrite(${H}, ${F})`,truncate:(F)=>$`select lo_truncate64(${H}, ${F})`,seek:(F,O=0)=>$`select lo_lseek64(${H}, ${F}, ${O})`,size:()=>$`
|
|
78
78
|
select
|
|
79
79
|
lo_lseek64(${H}, location, 0) as position,
|
|
80
80
|
seek.size
|
|
@@ -84,10 +84,10 @@ params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrac
|
|
|
84
84
|
tell.location
|
|
85
85
|
from (select lo_tell64($1) as location) tell
|
|
86
86
|
) seek
|
|
87
|
-
`};return G(Q),new Promise(async(U)=>W=U);async function J({highWaterMark:U=16384,start:O=0,end:L=1/0}={}){let w=L-O;return O&&await Q.seek(O),new kW.Readable({highWaterMark:U,async read(R){let b=R>w?R-w:R;w-=R;let[{data:x}]=await Q.read(b);if(this.push(x),x.length<R)this.push(null)}})}async function z({highWaterMark:U=16384,start:O=0}={}){return O&&await Q.seek(O),new kW.Writable({highWaterMark:U,write(L,w,R){Q.write(L).then(()=>R(),R)}})}}).catch(_)})}Object.assign(GY,{PostgresError:R2,toPascal:m4,pascal:b5,toCamel:p4,camel:k5,toKebab:u4,kebab:y5,fromPascal:q8,fromCamel:C8,fromKebab:j8,BigInt:{to:20,from:[20],parse:(Y)=>BigInt(Y),serialize:(Y)=>Y.toString()}});var N2=GY;function GY(Y,Z){let X=RE(Y,Z),G=X.no_subscribe||d5(GY,{...X}),_=!1,$=R1(),W=R1(),H=R1(),Q=R1(),J=R1(),z=R1(),U=R1(),O=R1(),L={connecting:W,reserved:H,closed:Q,ended:J,open:z,busy:U,full:O},w=[...Array(X.max)].map(()=>u5(X,L,{onopen:$1,onend:h0,onclose:r1})),R=b(c);return Object.assign(R,{get parameters(){return X.parameters},largeObject:c5.bind(null,R),subscribe:G,CLOSE:A2,END:A2,PostgresError:R2,options:X,reserve:g,listen:x,begin:B,close:p,end:s}),R;function b(T){return T.debug=X.debug,Object.entries(X.types).reduce((a,[J0,v0])=>{return a[J0]=(B0)=>new n1(B0,v0.to),a},m),Object.assign($0,{types:m,typed:m,unsafe:V0,notify:h,array:q,json:C,file:k0}),$0;function m(a,J0){return new n1(a,J0)}function $0(a,...J0){return a&&Array.isArray(a.raw)?new q1(a,J0,T,N):typeof a==="string"&&!J0.length?new P8(X.transform.column.to?X.transform.column.to(a):a):new t6(a,J0)}function V0(a,J0=[],v0={}){return arguments.length===2&&!Array.isArray(J0)&&(v0=J0,J0=[]),new q1([a],J0,T,N,{prepare:!1,...v0,simple:"simple"in v0?v0.simple:J0.length===0})}function k0(a,J0=[],v0={}){return arguments.length===2&&!Array.isArray(J0)&&(v0=J0,J0=[]),new q1([],J0,(A0)=>{AE.readFile(a,"utf8",(o0,O0)=>{if(o0)return A0.reject(o0);A0.strings=[O0],T(A0)})},N,{...v0,simple:"simple"in v0?v0.simple:J0.length===0})}}async function x(T,m,$0){let V0={fn:m,onlisten:$0},k0=x.sql||(x.sql=GY({...X,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(x.channels).forEach(([A0,{listeners:o0}])=>{delete x.channels[A0],Promise.all(o0.map((O0)=>x(A0,O0.fn,O0.onlisten).catch(()=>{})))})},onnotify(A0,o0){A0 in x.channels&&x.channels[A0].listeners.forEach((O0)=>O0.fn(o0))}})),a=x.channels||(x.channels={});if(T in a){a[T].listeners.push(V0);let A0=await a[T].result;return V0.onlisten&&V0.onlisten(),{state:A0.state,unlisten:B0}}a[T]={result:k0`listen ${k0.unsafe('"'+T.replace(/"/g,'""')+'"')}`,listeners:[V0]};let v0=await a[T].result;return V0.onlisten&&V0.onlisten(),{state:v0.state,unlisten:B0};async function B0(){if(T in a===!1)return;if(a[T].listeners=a[T].listeners.filter((A0)=>A0!==V0),a[T].listeners.length)return;return delete a[T],k0`unlisten ${k0.unsafe('"'+T.replace(/"/g,'""')+'"')}`}}async function h(T,m){return await R`select pg_notify(${T}, ${""+m})`}async function g(){let T=R1(),m=z.length?z.shift():await new Promise((k0,a)=>{let J0={reserve:k0,reject:a};$.push(J0),Q.length&&I0(Q.shift(),J0)});K(m,H),m.reserved=()=>T.length?m.execute(T.shift()):K(m,H),m.reserved.release=!0;let $0=b(V0);return $0.release=()=>{m.reserved=null,$1(m)},$0;function V0(k0){m.queue===O?T.push(k0):m.execute(k0)||K(m,O)}}async function B(T,m){!m&&(m=T,T="");let $0=R1(),V0=0,k0,a=null;try{return await R.unsafe("begin "+T.replace(/[^a-z ]/ig,""),[],{onexecute:v0}).execute(),await Promise.race([J0(k0,m),new Promise((B0,A0)=>k0.onclose=A0)])}catch(B0){throw B0}async function J0(B0,A0,o0){let O0=b(b0);O0.savepoint=z4,O0.prepare=(R0)=>a=R0.replace(/[^a-z0-9$-_. ]/gi);let j1,c0;o0&&await O0`savepoint ${O0(o0)}`;try{if(c0=await new Promise((R0,P1)=>{let u1=A0(O0);Promise.resolve(Array.isArray(u1)?Promise.all(u1):u1).then(R0,P1)}),j1)throw j1}catch(R0){throw await(o0?O0`rollback to ${O0(o0)}`:O0`rollback`),R0 instanceof R2&&R0.code==="25P02"&&j1||R0}if(!o0)a?await O0`prepare transaction '${O0.unsafe(a)}'`:await O0`commit`;return c0;function z4(R0,P1){if(R0&&Array.isArray(R0.raw))return z4((u1)=>u1.apply(u1,arguments));return arguments.length===1&&(P1=R0,R0=null),J0(B0,P1,"s"+V0+++(R0?"_"+R0:""))}function b0(R0){R0.catch((P1)=>j1||(j1=P1)),B0.queue===O?$0.push(R0):B0.execute(R0)||K(B0,O)}}function v0(B0){k0=B0,K(B0,H),B0.reserved=()=>$0.length?B0.execute($0.shift()):K(B0,H)}}function K(T,m){return T.queue.remove(T),m.push(T),T.queue=m,m===z?T.idleTimer.start():T.idleTimer.cancel(),T}function C(T){return new n1(T,3802)}function q(T,m){if(!Array.isArray(T))return q(Array.from(arguments));return new n1(T,m||(T.length?r6(T)||25:0),X.shared.typeArrayMap)}function c(T){if(_)return T.reject(f0.connection("CONNECTION_ENDED",X,X));if(z.length)return n(z.shift(),T);if(Q.length)return I0(Q.shift(),T);U.length?n(U.shift(),T):$.push(T)}function n(T,m){return T.execute(m)?K(T,U):K(T,O)}function N(T){return new Promise((m,$0)=>{T.state?T.active?u5(X).cancel(T.state,m,$0):T.cancelled={resolve:m,reject:$0}:($.remove(T),T.cancelled=!0,T.reject(f0.generic("57014","canceling statement due to user request")),m())})}async function s({timeout:T=null}={}){if(_)return _;await 1;let m;return _=Promise.race([new Promise(($0)=>T!==null&&(m=setTimeout(t,T*1000,$0))),Promise.all(w.map(($0)=>$0.end()).concat(x.sql?x.sql.end({timeout:0}):[],G.sql?G.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(m))}async function p(){await Promise.all(w.map((T)=>T.end()))}async function t(T){await Promise.all(w.map((m)=>m.terminate()));while($.length)$.shift().reject(f0.connection("CONNECTION_DESTROYED",X));T()}function I0(T,m){return K(T,W),T.connect(m),T}function h0(T){K(T,J)}function $1(T){if($.length===0)return K(T,z);let m=Math.ceil($.length/(W.length+1)),$0=!0;while($0&&$.length&&m-- >0){let V0=$.shift();if(V0.reserve)return V0.reserve(T);$0=T.execute(V0)}$0?K(T,U):K(T,O)}function r1(T,m){K(T,Q),T.reserved=null,T.onclose&&(T.onclose(m),T.onclose=null),X.onclose&&X.onclose(T.id),$.length&&I0(T,$.shift())}}function RE(Y,Z){if(Y&&Y.shared)return Y;let X=process.env,G=(!Y||typeof Y==="string"?Z:Y)||{},{url:_,multihost:$}=BE(Y),W=[..._.searchParams].reduce((O,[L,w])=>(O[L]=w,O),{}),H=G.hostname||G.host||$||_.hostname||X.PGHOST||"localhost",Q=G.port||_.port||X.PGPORT||5432,J=G.user||G.username||_.username||X.PGUSERNAME||X.PGUSER||TE();G.no_prepare&&(G.prepare=!1),W.sslmode&&(W.ssl=W.sslmode,delete W.sslmode),"timeout"in G&&(console.log("The timeout option is deprecated, use idle_timeout instead"),G.idle_timeout=G.timeout),W.sslrootcert==="system"&&(W.ssl="verify-full");let z=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],U={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:IE,max_pipeline:100,backoff:NE,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(H)?H:H.split(",").map((O)=>O.split(":")[0]),port:Array.isArray(Q)?Q:H.split(",").map((O)=>parseInt(O.split(":")[1]||Q)),path:G.path||H.indexOf("/")>-1&&H+"/.s.PGSQL."+Q,database:G.database||G.db||(_.pathname||"").slice(1)||X.PGDATABASE||J,user:J,pass:G.pass||G.password||_.password||X.PGPASSWORD||"",...Object.entries(U).reduce((O,[L,w])=>{let R=L in G?G[L]:(L in W)?W[L]==="disable"||W[L]==="false"?!1:W[L]:X["PG"+L.toUpperCase()]||w;return O[L]=typeof R==="string"&&z.includes(L)?+R:R,O},{}),connection:{application_name:X.PGAPPNAME||"postgres.js",...G.connection,...Object.entries(W).reduce((O,[L,w])=>((L in U)||(O[L]=w),O),{})},types:G.types||{},target_session_attrs:wE(G,_,X),onnotice:G.onnotice,onnotify:G.onnotify,onclose:G.onclose,onparameter:G.onparameter,socket:G.socket,transform:KE(G.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...BW(G.types)}}function wE(Y,Z,X){let G=Y.target_session_attrs||Z.searchParams.get("target_session_attrs")||X.PGTARGETSESSIONATTRS;if(!G||["read-write","read-only","primary","standby","prefer-standby"].includes(G))return G;throw Error("target_session_attrs "+G+" is not supported")}function NE(Y){return(0.5+Math.random()/2)*Math.min(3**Y/100,20)}function IE(){return 60*(30+Math.random()*30)}function KE(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 BE(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 TE(){try{return ME.userInfo().username}catch(Y){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class q0{static[E]="SelectionProxyHandler";config;constructor(Y){this.config={...Y}}get(Y,Z){if(Z==="_")return{...Y._,selectedFields:new Proxy(Y._.selectedFields,this)};if(Z===M0)return{...Y[M0],selectedFields:new Proxy(Y[M0].selectedFields,this)};if(typeof Z==="symbol")return Y[Z];let G=(M(Y,S0)?Y._.selectedFields:M(Y,V1)?Y[M0].selectedFields:Y)[Z];if(M(G,f.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!G.isSelectionField)return G.sql;let _=G.clone();return _.isSelectionField=!0,_}if(M(G,f)){if(this.config.sqlBehavior==="sql")return G;throw Error(`You tried to reference "${Z}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(M(G,U0)){if(this.config.alias)return new Proxy(G,new M2(new Proxy(G.table,new A8(this.config.alias,this.config.replaceOriginalName??!1))));return G}if(typeof G!=="object"||G===null)return G;return new Proxy(G,new q0(this.config))}}class bW{constructor(Y,Z){this.unique=Y,this.name=Z}static[E]="PgIndexBuilderOn";on(...Y){return new _Y(Y.map((Z)=>{if(M(Z,f))return Z;Z=Z;let X=new O8(Z.name,!!Z.keyAsName,Z.columnType,Z.indexConfig);return Z.indexConfig=JSON.parse(JSON.stringify(Z.defaultConfig)),X}),this.unique,!1,this.name)}onOnly(...Y){return new _Y(Y.map((Z)=>{if(M(Z,f))return Z;Z=Z;let X=new O8(Z.name,!!Z.keyAsName,Z.columnType,Z.indexConfig);return Z.indexConfig=Z.defaultConfig,X}),this.unique,!0,this.name)}using(Y,...Z){return new _Y(Z.map((X)=>{if(M(X,f))return X;X=X;let G=new O8(X.name,!!X.keyAsName,X.columnType,X.indexConfig);return X.indexConfig=JSON.parse(JSON.stringify(X.defaultConfig)),G}),this.unique,!0,this.name,Y)}}class _Y{static[E]="PgIndexBuilder";config;constructor(Y,Z,X,G,_="btree"){this.config={name:G,columns:Y,unique:Z,only:X,method:_}}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 yW(this.config,Y)}}class yW{static[E]="PgIndex";config;constructor(Y,Z){this.config={...Y,table:Z}}}function l5(Y){return new bW(!0,Y)}function CE(Y){return(Y.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((X)=>X.toLowerCase()).join("_")}function qE(Y){return(Y.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((X,G,_)=>{let $=_===0?G.toLowerCase():`${G[0].toUpperCase()}${G.slice(1)}`;return X+$},"")}function jE(Y){return Y}class o5{static[E]="CasingCache";cache={};cachedTables={};convert;constructor(Y){this.convert=Y==="snake_case"?CE:Y==="camelCase"?qE:jE}getColumnCasing(Y){if(!Y.keyAsName)return Y.name;let Z=Y.table[P.Symbol.Schema]??"public",X=Y.table[P.Symbol.OriginalName],G=`${Z}.${X}.${Y.name}`;if(!this.cache[G])this.cacheTable(Y.table);return this.cache[G]}cacheTable(Y){let Z=Y[P.Symbol.Schema]??"public",X=Y[P.Symbol.OriginalName],G=`${Z}.${X}`;if(!this.cachedTables[G]){for(let _ of Object.values(Y[P.Symbol.Columns])){let $=`${G}.${_.name}`;this.cache[$]=this.convert(_.name)}this.cachedTables[G]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class v8 extends V1{static[E]="PgViewBase"}class c4{static[E]="PgDialect";casing;constructor(Y){this.casing=new o5(Y?.casing)}async migrate(Y,Z,X){let G=typeof X==="string"?"__drizzle_migrations":X.migrationsTable??"__drizzle_migrations",_=typeof X==="string"?"drizzle":X.migrationsSchema??"drizzle",$=V`
|
|
87
|
+
`};return G(Q),new Promise(async(F)=>W=F);async function J({highWaterMark:F=16384,start:O=0,end:L=1/0}={}){let w=L-O;return O&&await Q.seek(O),new hW.Readable({highWaterMark:F,async read(R){let b=R>w?R-w:R;w-=R;let[{data:x}]=await Q.read(b);if(this.push(x),x.length<R)this.push(null)}})}async function z({highWaterMark:F=16384,start:O=0}={}){return O&&await Q.seek(O),new hW.Writable({highWaterMark:F,write(L,w,R){Q.write(L).then(()=>R(),R)}})}}).catch(_)})}Object.assign(GY,{PostgresError:R2,toPascal:m4,pascal:b5,toCamel:p4,camel:k5,toKebab:u4,kebab:y5,fromPascal:q8,fromCamel:C8,fromKebab:j8,BigInt:{to:20,from:[20],parse:(Y)=>BigInt(Y),serialize:(Y)=>Y.toString()}});var N2=GY;function GY(Y,Z){let X=ME(Y,Z),G=X.no_subscribe||d5(GY,{...X}),_=!1,$=R1(),W=R1(),H=R1(),Q=R1(),J=R1(),z=R1(),F=R1(),O=R1(),L={connecting:W,reserved:H,closed:Q,ended:J,open:z,busy:F,full:O},w=[...Array(X.max)].map(()=>u5(X,L,{onopen:$1,onend:h0,onclose:r1})),R=b(c);return Object.assign(R,{get parameters(){return X.parameters},largeObject:c5.bind(null,R),subscribe:G,CLOSE:A2,END:A2,PostgresError:R2,options:X,reserve:g,listen:x,begin:B,close:p,end:s}),R;function b(T){return T.debug=X.debug,Object.entries(X.types).reduce((a,[J0,v0])=>{return a[J0]=(B0)=>new n1(B0,v0.to),a},m),Object.assign($0,{types:m,typed:m,unsafe:V0,notify:h,array:q,json:C,file:k0}),$0;function m(a,J0){return new n1(a,J0)}function $0(a,...J0){return a&&Array.isArray(a.raw)?new q1(a,J0,T,N):typeof a==="string"&&!J0.length?new P8(X.transform.column.to?X.transform.column.to(a):a):new t6(a,J0)}function V0(a,J0=[],v0={}){return arguments.length===2&&!Array.isArray(J0)&&(v0=J0,J0=[]),new q1([a],J0,T,N,{prepare:!1,...v0,simple:"simple"in v0?v0.simple:J0.length===0})}function k0(a,J0=[],v0={}){return arguments.length===2&&!Array.isArray(J0)&&(v0=J0,J0=[]),new q1([],J0,(A0)=>{LE.readFile(a,"utf8",(o0,O0)=>{if(o0)return A0.reject(o0);A0.strings=[O0],T(A0)})},N,{...v0,simple:"simple"in v0?v0.simple:J0.length===0})}}async function x(T,m,$0){let V0={fn:m,onlisten:$0},k0=x.sql||(x.sql=GY({...X,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(x.channels).forEach(([A0,{listeners:o0}])=>{delete x.channels[A0],Promise.all(o0.map((O0)=>x(A0,O0.fn,O0.onlisten).catch(()=>{})))})},onnotify(A0,o0){A0 in x.channels&&x.channels[A0].listeners.forEach((O0)=>O0.fn(o0))}})),a=x.channels||(x.channels={});if(T in a){a[T].listeners.push(V0);let A0=await a[T].result;return V0.onlisten&&V0.onlisten(),{state:A0.state,unlisten:B0}}a[T]={result:k0`listen ${k0.unsafe('"'+T.replace(/"/g,'""')+'"')}`,listeners:[V0]};let v0=await a[T].result;return V0.onlisten&&V0.onlisten(),{state:v0.state,unlisten:B0};async function B0(){if(T in a===!1)return;if(a[T].listeners=a[T].listeners.filter((A0)=>A0!==V0),a[T].listeners.length)return;return delete a[T],k0`unlisten ${k0.unsafe('"'+T.replace(/"/g,'""')+'"')}`}}async function h(T,m){return await R`select pg_notify(${T}, ${""+m})`}async function g(){let T=R1(),m=z.length?z.shift():await new Promise((k0,a)=>{let J0={reserve:k0,reject:a};$.push(J0),Q.length&&I0(Q.shift(),J0)});K(m,H),m.reserved=()=>T.length?m.execute(T.shift()):K(m,H),m.reserved.release=!0;let $0=b(V0);return $0.release=()=>{m.reserved=null,$1(m)},$0;function V0(k0){m.queue===O?T.push(k0):m.execute(k0)||K(m,O)}}async function B(T,m){!m&&(m=T,T="");let $0=R1(),V0=0,k0,a=null;try{return await R.unsafe("begin "+T.replace(/[^a-z ]/ig,""),[],{onexecute:v0}).execute(),await Promise.race([J0(k0,m),new Promise((B0,A0)=>k0.onclose=A0)])}catch(B0){throw B0}async function J0(B0,A0,o0){let O0=b(b0);O0.savepoint=z4,O0.prepare=(R0)=>a=R0.replace(/[^a-z0-9$-_. ]/gi);let j1,c0;o0&&await O0`savepoint ${O0(o0)}`;try{if(c0=await new Promise((R0,P1)=>{let u1=A0(O0);Promise.resolve(Array.isArray(u1)?Promise.all(u1):u1).then(R0,P1)}),j1)throw j1}catch(R0){throw await(o0?O0`rollback to ${O0(o0)}`:O0`rollback`),R0 instanceof R2&&R0.code==="25P02"&&j1||R0}if(!o0)a?await O0`prepare transaction '${O0.unsafe(a)}'`:await O0`commit`;return c0;function z4(R0,P1){if(R0&&Array.isArray(R0.raw))return z4((u1)=>u1.apply(u1,arguments));return arguments.length===1&&(P1=R0,R0=null),J0(B0,P1,"s"+V0+++(R0?"_"+R0:""))}function b0(R0){R0.catch((P1)=>j1||(j1=P1)),B0.queue===O?$0.push(R0):B0.execute(R0)||K(B0,O)}}function v0(B0){k0=B0,K(B0,H),B0.reserved=()=>$0.length?B0.execute($0.shift()):K(B0,H)}}function K(T,m){return T.queue.remove(T),m.push(T),T.queue=m,m===z?T.idleTimer.start():T.idleTimer.cancel(),T}function C(T){return new n1(T,3802)}function q(T,m){if(!Array.isArray(T))return q(Array.from(arguments));return new n1(T,m||(T.length?r6(T)||25:0),X.shared.typeArrayMap)}function c(T){if(_)return T.reject(f0.connection("CONNECTION_ENDED",X,X));if(z.length)return n(z.shift(),T);if(Q.length)return I0(Q.shift(),T);F.length?n(F.shift(),T):$.push(T)}function n(T,m){return T.execute(m)?K(T,F):K(T,O)}function N(T){return new Promise((m,$0)=>{T.state?T.active?u5(X).cancel(T.state,m,$0):T.cancelled={resolve:m,reject:$0}:($.remove(T),T.cancelled=!0,T.reject(f0.generic("57014","canceling statement due to user request")),m())})}async function s({timeout:T=null}={}){if(_)return _;await 1;let m;return _=Promise.race([new Promise(($0)=>T!==null&&(m=setTimeout(t,T*1000,$0))),Promise.all(w.map(($0)=>$0.end()).concat(x.sql?x.sql.end({timeout:0}):[],G.sql?G.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(m))}async function p(){await Promise.all(w.map((T)=>T.end()))}async function t(T){await Promise.all(w.map((m)=>m.terminate()));while($.length)$.shift().reject(f0.connection("CONNECTION_DESTROYED",X));T()}function I0(T,m){return K(T,W),T.connect(m),T}function h0(T){K(T,J)}function $1(T){if($.length===0)return K(T,z);let m=Math.ceil($.length/(W.length+1)),$0=!0;while($0&&$.length&&m-- >0){let V0=$.shift();if(V0.reserve)return V0.reserve(T);$0=T.execute(V0)}$0?K(T,F):K(T,O)}function r1(T,m){K(T,Q),T.reserved=null,T.onclose&&(T.onclose(m),T.onclose=null),X.onclose&&X.onclose(T.id),$.length&&I0(T,$.shift())}}function ME(Y,Z){if(Y&&Y.shared)return Y;let X=process.env,G=(!Y||typeof Y==="string"?Z:Y)||{},{url:_,multihost:$}=IE(Y),W=[..._.searchParams].reduce((O,[L,w])=>(O[L]=w,O),{}),H=G.hostname||G.host||$||_.hostname||X.PGHOST||"localhost",Q=G.port||_.port||X.PGPORT||5432,J=G.user||G.username||_.username||X.PGUSERNAME||X.PGUSER||KE();G.no_prepare&&(G.prepare=!1),W.sslmode&&(W.ssl=W.sslmode,delete W.sslmode),"timeout"in G&&(console.log("The timeout option is deprecated, use idle_timeout instead"),G.idle_timeout=G.timeout),W.sslrootcert==="system"&&(W.ssl="verify-full");let z=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],F={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:wE,max_pipeline:100,backoff:RE,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(H)?H:H.split(",").map((O)=>O.split(":")[0]),port:Array.isArray(Q)?Q:H.split(",").map((O)=>parseInt(O.split(":")[1]||Q)),path:G.path||H.indexOf("/")>-1&&H+"/.s.PGSQL."+Q,database:G.database||G.db||(_.pathname||"").slice(1)||X.PGDATABASE||J,user:J,pass:G.pass||G.password||_.password||X.PGPASSWORD||"",...Object.entries(F).reduce((O,[L,w])=>{let R=L in G?G[L]:(L in W)?W[L]==="disable"||W[L]==="false"?!1:W[L]:X["PG"+L.toUpperCase()]||w;return O[L]=typeof R==="string"&&z.includes(L)?+R:R,O},{}),connection:{application_name:X.PGAPPNAME||"postgres.js",...G.connection,...Object.entries(W).reduce((O,[L,w])=>((L in F)||(O[L]=w),O),{})},types:G.types||{},target_session_attrs:AE(G,_,X),onnotice:G.onnotice,onnotify:G.onnotify,onclose:G.onclose,onparameter:G.onparameter,socket:G.socket,transform:NE(G.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...KW(G.types)}}function AE(Y,Z,X){let G=Y.target_session_attrs||Z.searchParams.get("target_session_attrs")||X.PGTARGETSESSIONATTRS;if(!G||["read-write","read-only","primary","standby","prefer-standby"].includes(G))return G;throw Error("target_session_attrs "+G+" is not supported")}function RE(Y){return(0.5+Math.random()/2)*Math.min(3**Y/100,20)}function wE(){return 60*(30+Math.random()*30)}function NE(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 IE(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 KE(){try{return DE.userInfo().username}catch(Y){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class q0{static[E]="SelectionProxyHandler";config;constructor(Y){this.config={...Y}}get(Y,Z){if(Z==="_")return{...Y._,selectedFields:new Proxy(Y._.selectedFields,this)};if(Z===M0)return{...Y[M0],selectedFields:new Proxy(Y[M0].selectedFields,this)};if(typeof Z==="symbol")return Y[Z];let G=(M(Y,S0)?Y._.selectedFields:M(Y,V1)?Y[M0].selectedFields:Y)[Z];if(M(G,f.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!G.isSelectionField)return G.sql;let _=G.clone();return _.isSelectionField=!0,_}if(M(G,f)){if(this.config.sqlBehavior==="sql")return G;throw Error(`You tried to reference "${Z}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(M(G,F0)){if(this.config.alias)return new Proxy(G,new M2(new Proxy(G.table,new A8(this.config.alias,this.config.replaceOriginalName??!1))));return G}if(typeof G!=="object"||G===null)return G;return new Proxy(G,new q0(this.config))}}class kW{constructor(Y,Z){this.unique=Y,this.name=Z}static[E]="PgIndexBuilderOn";on(...Y){return new _Y(Y.map((Z)=>{if(M(Z,f))return Z;Z=Z;let X=new O8(Z.name,!!Z.keyAsName,Z.columnType,Z.indexConfig);return Z.indexConfig=JSON.parse(JSON.stringify(Z.defaultConfig)),X}),this.unique,!1,this.name)}onOnly(...Y){return new _Y(Y.map((Z)=>{if(M(Z,f))return Z;Z=Z;let X=new O8(Z.name,!!Z.keyAsName,Z.columnType,Z.indexConfig);return Z.indexConfig=Z.defaultConfig,X}),this.unique,!0,this.name)}using(Y,...Z){return new _Y(Z.map((X)=>{if(M(X,f))return X;X=X;let G=new O8(X.name,!!X.keyAsName,X.columnType,X.indexConfig);return X.indexConfig=JSON.parse(JSON.stringify(X.defaultConfig)),G}),this.unique,!0,this.name,Y)}}class _Y{static[E]="PgIndexBuilder";config;constructor(Y,Z,X,G,_="btree"){this.config={name:G,columns:Y,unique:Z,only:X,method:_}}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 bW(this.config,Y)}}class bW{static[E]="PgIndex";config;constructor(Y,Z){this.config={...Y,table:Z}}}function l5(Y){return new kW(!0,Y)}function BE(Y){return(Y.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((X)=>X.toLowerCase()).join("_")}function TE(Y){return(Y.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((X,G,_)=>{let $=_===0?G.toLowerCase():`${G[0].toUpperCase()}${G.slice(1)}`;return X+$},"")}function CE(Y){return Y}class o5{static[E]="CasingCache";cache={};cachedTables={};convert;constructor(Y){this.convert=Y==="snake_case"?BE:Y==="camelCase"?TE:CE}getColumnCasing(Y){if(!Y.keyAsName)return Y.name;let Z=Y.table[P.Symbol.Schema]??"public",X=Y.table[P.Symbol.OriginalName],G=`${Z}.${X}.${Y.name}`;if(!this.cache[G])this.cacheTable(Y.table);return this.cache[G]}cacheTable(Y){let Z=Y[P.Symbol.Schema]??"public",X=Y[P.Symbol.OriginalName],G=`${Z}.${X}`;if(!this.cachedTables[G]){for(let _ of Object.values(Y[P.Symbol.Columns])){let $=`${G}.${_.name}`;this.cache[$]=this.convert(_.name)}this.cachedTables[G]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class v8 extends V1{static[E]="PgViewBase"}class c4{static[E]="PgDialect";casing;constructor(Y){this.casing=new o5(Y?.casing)}async migrate(Y,Z,X){let G=typeof X==="string"?"__drizzle_migrations":X.migrationsTable??"__drizzle_migrations",_=typeof X==="string"?"drizzle":X.migrationsSchema??"drizzle",$=V`
|
|
88
88
|
CREATE TABLE IF NOT EXISTS ${V.identifier(_)}.${V.identifier(G)} (
|
|
89
89
|
id SERIAL PRIMARY KEY,
|
|
90
90
|
hash text NOT NULL,
|
|
91
91
|
created_at bigint
|
|
92
92
|
)
|
|
93
|
-
`;await Z.execute(V`CREATE SCHEMA IF NOT EXISTS ${V.identifier(_)}`),await Z.execute($);let H=(await Z.all(V`select id, hash, created_at from ${V.identifier(_)}.${V.identifier(G)} order by created_at desc limit 1`))[0];await Z.transaction(async(Q)=>{for await(let J of Y)if(!H||Number(H.created_at)<J.folderMillis){for(let z of J.sql)await Q.execute(V.raw(z));await Q.execute(V`insert into ${V.identifier(_)}.${V.identifier(G)} ("hash", "created_at") values(${J.hash}, ${J.folderMillis})`)}})}escapeName(Y){return`"${Y}"`}escapeParam(Y){return`$${Y+1}`}escapeString(Y){return`'${Y.replace(/'/g,"''")}'`}buildWithCTE(Y){if(!Y?.length)return;let Z=[V`with `];for(let[X,G]of Y.entries())if(Z.push(V`${V.identifier(G._.alias)} as (${G._.sql})`),X<Y.length-1)Z.push(V`, `);return Z.push(V` `),V.join(Z)}buildDeleteQuery({table:Y,where:Z,returning:X,withList:G}){let _=this.buildWithCTE(G),$=X?V` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,W=Z?V` where ${Z}`:void 0;return V`${_}delete from ${Y}${W}${$}`}buildUpdateSet(Y,Z){let X=Y[P.Symbol.Columns],G=Object.keys(X).filter(($)=>Z[$]!==void 0||X[$]?.onUpdateFn!==void 0),_=G.length;return V.join(G.flatMap(($,W)=>{let H=X[$],Q=Z[$]??V.param(H.onUpdateFn(),H),J=V`${V.identifier(this.casing.getColumnCasing(H))} = ${Q}`;if(W<_-1)return[J,V.raw(", ")];return[J]}))}buildUpdateQuery({table:Y,set:Z,where:X,returning:G,withList:_,from:$,joins:W}){let H=this.buildWithCTE(_),Q=Y[u0.Symbol.Name],J=Y[u0.Symbol.Schema],z=Y[u0.Symbol.OriginalName],U=Q===z?void 0:Q,O=V`${J?V`${V.identifier(J)}.`:void 0}${V.identifier(z)}${U&&V` ${V.identifier(U)}`}`,L=this.buildUpdateSet(Y,Z),w=$&&V.join([V.raw(" from "),this.buildFromTable($)]),R=this.buildJoins(W),b=G?V` returning ${this.buildSelection(G,{isSingleTable:!$})}`:void 0,x=X?V` where ${X}`:void 0;return V`${H}update ${O} set ${L}${w}${R}${x}${b}`}buildSelection(Y,{isSingleTable:Z=!1}={}){let X=Y.length,G=Y.flatMap(({field:_},$)=>{let W=[];if(M(_,f.Aliased)&&_.isSelectionField)W.push(V.identifier(_.fieldAlias));else if(M(_,f.Aliased)||M(_,f)){let H=M(_,f.Aliased)?_.sql:_;if(Z)W.push(new f(H.queryChunks.map((Q)=>{if(M(Q,j))return V.identifier(this.casing.getColumnCasing(Q));return Q})));else W.push(H);if(M(_,f.Aliased))W.push(V` as ${V.identifier(_.fieldAlias)}`)}else if(M(_,U0))if(Z)W.push(V.identifier(this.casing.getColumnCasing(_)));else W.push(_);if($<X-1)W.push(V`, `);return W});return V.join(G)}buildJoins(Y){if(!Y||Y.length===0)return;let Z=[];for(let[X,G]of Y.entries()){if(X===0)Z.push(V` `);let _=G.table,$=G.lateral?V` lateral`:void 0,W=G.on?V` on ${G.on}`:void 0;if(M(_,u0)){let H=_[u0.Symbol.Name],Q=_[u0.Symbol.Schema],J=_[u0.Symbol.OriginalName],z=H===J?void 0:G.alias;Z.push(V`${V.raw(G.joinType)} join${$} ${Q?V`${V.identifier(Q)}.`:void 0}${V.identifier(J)}${z&&V` ${V.identifier(z)}`}${W}`)}else if(M(_,V1)){let H=_[M0].name,Q=_[M0].schema,J=_[M0].originalName,z=H===J?void 0:G.alias;Z.push(V`${V.raw(G.joinType)} join${$} ${Q?V`${V.identifier(Q)}.`:void 0}${V.identifier(J)}${z&&V` ${V.identifier(z)}`}${W}`)}else Z.push(V`${V.raw(G.joinType)} join${$} ${_}${W}`);if(X<Y.length-1)Z.push(V` `)}return V.join(Z)}buildFromTable(Y){if(M(Y,P)&&Y[P.Symbol.IsAlias]){let Z=V`${V.identifier(Y[P.Symbol.OriginalName])}`;if(Y[P.Symbol.Schema])Z=V`${V.identifier(Y[P.Symbol.Schema])}.${Z}`;return V`${Z} ${V.identifier(Y[P.Symbol.Name])}`}return Y}buildSelectQuery({withList:Y,fields:Z,fieldsFlat:X,where:G,having:_,table:$,joins:W,orderBy:H,groupBy:Q,limit:J,offset:z,lockingClause:U,distinct:O,setOperators:L}){let w=X??T1(Z);for(let t of w)if(M(t.field,U0)&&d0(t.field.table)!==(M($,S0)?$._.alias:M($,v8)?$[M0].name:M($,f)?void 0:d0($))&&!((I0)=>W?.some(({alias:h0})=>h0===(I0[P.Symbol.IsAlias]?d0(I0):I0[P.Symbol.BaseName])))(t.field.table)){let I0=d0(t.field.table);throw Error(`Your "${t.path.join("->")}" field references a column "${I0}"."${t.field.name}", but the table "${I0}" is not part of the query! Did you forget to join it?`)}let R=!W||W.length===0,b=this.buildWithCTE(Y),x;if(O)x=O===!0?V` distinct`:V` distinct on (${V.join(O.on,V`, `)})`;let h=this.buildSelection(w,{isSingleTable:R}),g=this.buildFromTable($),B=this.buildJoins(W),K=G?V` where ${G}`:void 0,C=_?V` having ${_}`:void 0,q;if(H&&H.length>0)q=V` order by ${V.join(H,V`, `)}`;let c;if(Q&&Q.length>0)c=V` group by ${V.join(Q,V`, `)}`;let n=typeof J==="object"||typeof J==="number"&&J>=0?V` limit ${J}`:void 0,N=z?V` offset ${z}`:void 0,s=V.empty();if(U){let t=V` for ${V.raw(U.strength)}`;if(U.config.of)t.append(V` of ${V.join(Array.isArray(U.config.of)?U.config.of:[U.config.of],V`, `)}`);if(U.config.noWait)t.append(V` nowait`);else if(U.config.skipLocked)t.append(V` skip locked`);s.append(t)}let p=V`${b}select${x} ${h} from ${g}${B}${K}${c}${C}${q}${n}${N}${s}`;if(L.length>0)return this.buildSetOperations(p,L);return p}buildSetOperations(Y,Z){let[X,...G]=Z;if(!X)throw Error("Cannot pass undefined values to any set operator");if(G.length===0)return this.buildSetOperationQuery({leftSelect:Y,setOperator:X});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:Y,setOperator:X}),G)}buildSetOperationQuery({leftSelect:Y,setOperator:{type:Z,isAll:X,rightSelect:G,limit:_,orderBy:$,offset:W}}){let H=V`(${Y.getSQL()}) `,Q=V`(${G.getSQL()})`,J;if($&&$.length>0){let L=[];for(let w of $)if(M(w,j))L.push(V.identifier(w.name));else if(M(w,f)){for(let R=0;R<w.queryChunks.length;R++){let b=w.queryChunks[R];if(M(b,j))w.queryChunks[R]=V.identifier(b.name)}L.push(V`${w}`)}else L.push(V`${w}`);J=V` order by ${V.join(L,V`, `)} `}let z=typeof _==="object"||typeof _==="number"&&_>=0?V` limit ${_}`:void 0,U=V.raw(`${Z} ${X?"all ":""}`),O=W?V` offset ${W}`:void 0;return V`${H}${U}${Q}${J}${z}${O}`}buildInsertQuery({table:Y,values:Z,onConflict:X,returning:G,withList:_,select:$,overridingSystemValue_:W}){let H=[],Q=Y[P.Symbol.Columns],J=Object.entries(Q).filter(([b,x])=>!x.shouldDisableInsert()),z=J.map(([,b])=>V.identifier(this.casing.getColumnCasing(b)));if($){let b=Z;if(M(b,f))H.push(b);else H.push(b.getSQL())}else{let b=Z;H.push(V.raw("values "));for(let[x,h]of b.entries()){let g=[];for(let[B,K]of J){let C=h[B];if(C===void 0||M(C,A1)&&C.value===void 0)if(K.defaultFn!==void 0){let q=K.defaultFn(),c=M(q,f)?q:V.param(q,K);g.push(c)}else if(!K.default&&K.onUpdateFn!==void 0){let q=K.onUpdateFn(),c=M(q,f)?q:V.param(q,K);g.push(c)}else g.push(V`default`);else g.push(C)}if(H.push(g),x<b.length-1)H.push(V`, `)}}let U=this.buildWithCTE(_),O=V.join(H),L=G?V` returning ${this.buildSelection(G,{isSingleTable:!0})}`:void 0,w=X?V` on conflict ${X}`:void 0,R=W===!0?V`overriding system value `:void 0;return V`${U}insert into ${Y} ${z} ${R}${O}${w}${L}`}buildRefreshMaterializedViewQuery({view:Y,concurrently:Z,withNoData:X}){let G=Z?V` concurrently`:void 0,_=X?V` with no data`:void 0;return V`refresh materialized view${G} ${Y}${_}`}prepareTyping(Y){if(M(Y,g6)||M(Y,y6))return"json";else if(M(Y,p6))return"decimal";else if(M(Y,m6))return"time";else if(M(Y,u6)||M(Y,d6))return"timestamp";else if(M(Y,k6)||M(Y,b6))return"date";else if(M(Y,c6))return"uuid";else return"none"}sqlToQuery(Y,Z){return Y.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:Z})}buildRelationalQueryWithoutPK({fullSchema:Y,schema:Z,tableNamesMap:X,table:G,tableConfig:_,queryConfig:$,tableAlias:W,nestedQueryRelation:H,joinOn:Q}){let J=[],z,U,O=[],L,w=[];if($===!0)J=Object.entries(_.columns).map(([x,h])=>({dbKey:h.name,tsKey:x,field:i1(h,W),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let b=Object.fromEntries(Object.entries(_.columns).map(([C,q])=>[C,i1(q,W)]));if($.where){let C=typeof $.where==="function"?$.where(b,UW()):$.where;L=C&&R8(C,W)}let x=[],h=[];if($.columns){let C=!1;for(let[q,c]of Object.entries($.columns)){if(c===void 0)continue;if(q in _.columns){if(!C&&c===!0)C=!0;h.push(q)}}if(h.length>0)h=C?h.filter((q)=>$.columns?.[q]===!0):Object.keys(_.columns).filter((q)=>!h.includes(q))}else h=Object.keys(_.columns);for(let C of h){let q=_.columns[C];x.push({tsKey:C,value:q})}let g=[];if($.with)g=Object.entries($.with).filter((C)=>!!C[1]).map(([C,q])=>({tsKey:C,queryConfig:q,relation:_.relations[C]}));let B;if($.extras){B=typeof $.extras==="function"?$.extras(b,{sql:V}):$.extras;for(let[C,q]of Object.entries(B))x.push({tsKey:C,value:R5(q,W)})}for(let{tsKey:C,value:q}of x)J.push({dbKey:M(q,f.Aliased)?q.fieldAlias:_.columns[C].name,tsKey:C,field:M(q,U0)?i1(q,W):q,relationTableTsKey:void 0,isJson:!1,selection:[]});let K=typeof $.orderBy==="function"?$.orderBy(b,EW()):$.orderBy??[];if(!Array.isArray(K))K=[K];O=K.map((C)=>{if(M(C,U0))return i1(C,W);return R8(C,W)}),z=$.limit,U=$.offset;for(let{tsKey:C,queryConfig:q,relation:c}of g){let n=OW(Z,X,c),N=g4(c.referencedTable),s=X[N],p=`${W}_${C}`,t=B8(...n.fields.map(($1,r1)=>l6(i1(n.references[r1],p),i1($1,W)))),I0=this.buildRelationalQueryWithoutPK({fullSchema:Y,schema:Z,tableNamesMap:X,table:Y[s],tableConfig:Z[s],queryConfig:M(c,K4)?q===!0?{limit:1}:{...q,limit:1}:q,tableAlias:p,joinOn:t,nestedQueryRelation:c}),h0=V`${V.identifier(p)}.${V.identifier("data")}`.as(C);w.push({on:V`true`,table:new S0(I0.sql,{},p),alias:p,joinType:"left",lateral:!0}),J.push({dbKey:C,tsKey:C,field:h0,relationTableTsKey:s,isJson:!0,selection:I0.selection})}}if(J.length===0)throw new f6({message:`No fields selected for table "${_.tsName}" ("${W}")`});let R;if(L=B8(Q,L),H){let b=V`json_build_array(${V.join(J.map(({field:g,tsKey:B,isJson:K})=>K?V`${V.identifier(`${W}_${B}`)}.${V.identifier("data")}`:M(g,f.Aliased)?g.sql:g),V`, `)})`;if(M(H,T8))b=V`coalesce(json_agg(${b}${O.length>0?V` order by ${V.join(O,V`, `)}`:void 0}), '[]'::json)`;let x=[{dbKey:"data",tsKey:"data",field:b.as("data"),isJson:!0,relationTableTsKey:_.tsName,selection:J}];if(z!==void 0||U!==void 0||O.length>0)R=this.buildSelectQuery({table:x6(G,W),fields:{},fieldsFlat:[{path:[],field:V.raw("*")}],where:L,limit:z,offset:U,orderBy:O,setOperators:[]}),L=void 0,z=void 0,U=void 0,O=[];else R=x6(G,W);R=this.buildSelectQuery({table:M(R,u0)?R:new S0(R,{},W),fields:{},fieldsFlat:x.map(({field:g})=>({path:[],field:M(g,U0)?i1(g,W):g})),joins:w,where:L,limit:z,offset:U,orderBy:O,setOperators:[]})}else R=this.buildSelectQuery({table:x6(G,W),fields:{},fieldsFlat:J.map(({field:b})=>({path:[],field:M(b,U0)?i1(b,W):b})),joins:w,where:L,limit:z,offset:U,orderBy:O,setOperators:[]});return{tableTsKey:_.tsName,sql:R,selection:J}}}class i5{static[E]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class _1{static[E]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(Y){if(this.fields=Y.fields,this.session=Y.session,this.dialect=Y.dialect,Y.withList)this.withList=Y.withList;this.distinct=Y.distinct}authToken;setToken(Y){return this.authToken=Y,this}from(Y){let Z=!!this.fields,X=Y,G;if(this.fields)G=this.fields;else if(M(X,S0))G=Object.fromEntries(Object.keys(X._.selectedFields).map((_)=>[_,X[_]]));else if(M(X,v8))G=X[M0].selectedFields;else if(M(X,f))G={};else G=c7(X);return new n5({table:X,fields:G,isPartialSelect:Z,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class gW extends i5{static[E]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:Y,fields:Z,isPartialSelect:X,session:G,dialect:_,withList:$,distinct:W}){super();this.config={withList:$,table:Y,fields:{...Z},distinct:W,setOperators:[]},this.isPartialSelect=X,this.session=G,this.dialect=_,this._={selectedFields:Z,config:this.config},this.tableName=J4(Y),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{};for(let H of m1(Y))this.usedTables.add(H)}getUsedTables(){return[...this.usedTables]}createJoin(Y,Z){return(X,G)=>{let _=this.tableName,$=J4(X);for(let W of m1(X))this.usedTables.add(W);if(typeof $==="string"&&this.config.joins?.some((W)=>W.alias===$))throw Error(`Alias "${$}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof _==="string")this.config.fields={[_]:this.config.fields};if(typeof $==="string"&&!M(X,f)){let W=M(X,S0)?X._.selectedFields:M(X,V1)?X[M0].selectedFields:X[P.Symbol.Columns];this.config.fields[$]=W}}if(typeof G==="function")G=G(new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:G,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 G=typeof X==="function"?X(PE()):X;if(!w8(this.getSelectedFields(),G.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:Y,isAll:Z,rightSelect:G}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(Y){return this.config.setOperators.push(...Y),this}where(Y){if(typeof Y==="function")Y=Y(new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=Y,this}having(Y){if(typeof Y==="function")Y=Y(new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=Y,this}groupBy(...Y){if(typeof Y[0]==="function"){let Z=Y[0](new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(Z)?Z:[Z]}else this.config.groupBy=Y;return this}orderBy(...Y){if(typeof Y[0]==="function"){let Z=Y[0](new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),X=Array.isArray(Z)?Z:[Z];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=X;else this.config.orderBy=X}else{let Z=Y;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=Z;else this.config.orderBy=Z}return this}limit(Y){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=Y;else this.config.limit=Y;return this}offset(Y){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=Y;else this.config.offset=Y;return this}for(Y,Z={}){return this.config.lockingClause={strength:Y,config:Z},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}as(Y){let Z=[];if(Z.push(...m1(this.config.table)),this.config.joins)for(let X of this.config.joins)Z.push(...m1(X.table));return new Proxy(new S0(this.getSQL(),this.config.fields,Y,!1,[...new Set(Z)]),new q0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new q0({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}$withCache(Y){return this.cacheConfig=Y===void 0?{config:{},enable:!0,autoInvalidate:!0}:Y===!1?{enable:!1}:{enable:!0,autoInvalidate:!0,...Y},this}}class n5 extends gW{static[E]="PgSelect";_prepare(Y){let{session:Z,config:X,dialect:G,joinsNotNullableMap:_,authToken:$,cacheConfig:W,usedTables:H}=this;if(!Z)throw Error("Cannot execute a query on a query builder. Please use a database instance instead.");let{fields:Q}=X;return E0.startActiveSpan("drizzle.prepareQuery",()=>{let J=T1(Q),z=Z.prepareQuery(G.sqlToQuery(this.getSQL()),J,Y,!0,void 0,{type:"select",tables:[...H]},W);return z.joinsNotNullableMap=_,z.setToken($)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}d7(n5,[G1]);function I2(Y,Z){return(X,G,..._)=>{let $=[G,..._].map((W)=>({type:Y,isAll:Z,rightSelect:W}));for(let W of $)if(!w8(X.getSelectedFields(),W.rightSelect.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return X.addSetOperators($)}}var PE=()=>({union:SE,unionAll:vE,intersect:xE,intersectAll:fE,except:hE,exceptAll:kE}),SE=I2("union",!1),vE=I2("union",!0),xE=I2("intersect",!1),fE=I2("intersect",!0),hE=I2("except",!1),kE=I2("except",!0);class x8{static[E]="PgQueryBuilder";dialect;dialectConfig;constructor(Y){this.dialect=M(Y,c4)?Y:void 0,this.dialectConfig=M(Y,c4)?void 0:Y}$with=(Y,Z)=>{let X=this;return{as:(_)=>{if(typeof _==="function")_=_(X);return new Proxy(new L8(_.getSQL(),Z??("getSelectedFields"in _?_.getSelectedFields()??{}:{}),Y,!0),new q0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...Y){let Z=this;function X($){return new _1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),withList:Y})}function G($){return new _1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),distinct:!0})}function _($,W){return new _1({fields:W??void 0,session:void 0,dialect:Z.getDialect(),distinct:{on:$}})}return{select:X,selectDistinct:G,selectDistinctOn:_}}select(Y){return new _1({fields:Y??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(Y){return new _1({fields:Y??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(Y,Z){return new _1({fields:Z??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:Y}})}getDialect(){if(!this.dialect)this.dialect=new c4(this.dialectConfig);return this.dialect}}function m1(Y){if(M(Y,u0))return[Y[y4]?`${Y[y4]}.${Y[P.Symbol.BaseName]}`:Y[P.Symbol.BaseName]];if(M(Y,S0))return Y._.usedTables??[];if(M(Y,f))return Y.usedTables??[];return[]}class $Y extends G1{constructor(Y,Z,X,G){super();this.session=Z,this.dialect=X,this.config={table:Y,withList:G}}static[E]="PgDelete";config;cacheConfig;where(Y){return this.config.where=Y,this}returning(Y=this.config.table[P.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=T1(Y),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return E0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"delete",tables:m1(this.config.table)},this.cacheConfig)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new q0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class WY{constructor(Y,Z,X,G,_){this.table=Y,this.session=Z,this.dialect=X,this.withList=G,this.overridingSystemValue_=_}static[E]="PgInsertBuilder";authToken;setToken(Y){return this.authToken=Y,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(Y){if(Y=Array.isArray(Y)?Y:[Y],Y.length===0)throw Error("values() must be called with at least one value");let Z=Y.map((X)=>{let G={},_=this.table[P.Symbol.Columns];for(let $ of Object.keys(X)){let W=X[$];G[$]=M(W,f)?W:new A1(W,_[$])}return G});return new r5(this.table,Z,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(Y){let Z=typeof Y==="function"?Y(new x8):Y;if(!M(Z,f)&&!w8(this.table[S6],Z._.selectedFields))throw Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new r5(this.table,Z,this.session,this.dialect,this.withList,!0)}}class r5 extends G1{constructor(Y,Z,X,G,_,$,W){super();this.session=X,this.dialect=G,this.config={table:Y,values:Z,withList:_,select:$,overridingSystemValue_:W}}static[E]="PgInsert";config;cacheConfig;returning(Y=this.config.table[P.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=T1(Y),this}onConflictDoNothing(Y={}){if(Y.target===void 0)this.config.onConflict=V`do nothing`;else{let Z="";Z=Array.isArray(Y.target)?Y.target.map((G)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(G))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y.target));let X=Y.where?V` where ${Y.where}`:void 0;this.config.onConflict=V`(${V.raw(Z)})${X} do nothing`}return this}onConflictDoUpdate(Y){if(Y.where&&(Y.targetWhere||Y.setWhere))throw Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let Z=Y.where?V` where ${Y.where}`:void 0,X=Y.targetWhere?V` where ${Y.targetWhere}`:void 0,G=Y.setWhere?V` where ${Y.setWhere}`:void 0,_=this.dialect.buildUpdateSet(this.config.table,h6(this.config.table,Y.set)),$="";return $=Array.isArray(Y.target)?Y.target.map((W)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(W))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y.target)),this.config.onConflict=V`(${V.raw($)})${X} do update set ${_}${Z}${G}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return E0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"insert",tables:m1(this.config.table)},this.cacheConfig)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new q0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class s5 extends G1{constructor(Y,Z,X){super();this.session=Z,this.dialect=X,this.config={view:Y}}static[E]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return E0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,Y,!0)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}class HY{constructor(Y,Z,X,G){this.table=Y,this.session=Z,this.dialect=X,this.withList=G}static[E]="PgUpdateBuilder";authToken;setToken(Y){return this.authToken=Y,this}set(Y){return new pW(this.table,h6(this.table,Y),this.session,this.dialect,this.withList).setToken(this.authToken)}}class pW extends G1{constructor(Y,Z,X,G,_){super();this.session=X,this.dialect=G,this.config={set:Z,table:Y,withList:_,joins:[]},this.tableName=J4(Y),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[E]="PgUpdate";config;tableName;joinsNotNullableMap;cacheConfig;from(Y){let Z=Y,X=J4(Z);if(typeof X==="string")this.joinsNotNullableMap[X]=!0;return this.config.from=Z,this}getTableLikeFields(Y){if(M(Y,u0))return Y[P.Symbol.Columns];else if(M(Y,S0))return Y._.selectedFields;return Y[M0].selectedFields}createJoin(Y){return(Z,X)=>{let G=J4(Z);if(typeof G==="string"&&this.config.joins.some((_)=>_.alias===G))throw Error(`Alias "${G}" is already used in this query`);if(typeof X==="function"){let _=this.config.from&&!M(this.config.from,f)?this.getTableLikeFields(this.config.from):void 0;X=X(new Proxy(this.config.table[P.Symbol.Columns],new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),_&&new Proxy(_,new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:X,table:Z,joinType:Y,alias:G}),typeof G==="string")switch(Y){case"left":{this.joinsNotNullableMap[G]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([_])=>[_,!1])),this.joinsNotNullableMap[G]=!0;break}case"inner":{this.joinsNotNullableMap[G]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([_])=>[_,!1])),this.joinsNotNullableMap[G]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(Y){return this.config.where=Y,this}returning(Y){if(!Y){if(Y=Object.assign({},this.config.table[P.Symbol.Columns]),this.config.from){let Z=J4(this.config.from);if(typeof Z==="string"&&this.config.from&&!M(this.config.from,f)){let X=this.getTableLikeFields(this.config.from);Y[Z]=X}for(let X of this.config.joins){let G=J4(X.table);if(typeof G==="string"&&!M(X.table,f)){let _=this.getTableLikeFields(X.table);Y[G]=_}}}}return this.config.returningFields=Y,this.config.returning=T1(Y),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){let Z=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"insert",tables:m1(this.config.table)},this.cacheConfig);return Z.joinsNotNullableMap=this.joinsNotNullableMap,Z}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return this._prepare().execute(Y,this.authToken)};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new q0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class f8 extends f{constructor(Y){super(f8.buildEmbeddedCount(Y.source,Y.filters).queryChunks);this.params=Y,this.mapWith(Number),this.session=Y.session,this.sql=f8.buildCount(Y.source,Y.filters)}sql;token;static[E]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(Y,Z){return V`(select count(*) from ${Y}${V.raw(" where ").if(Z)}${Z})`}static buildCount(Y,Z){return V`select count(*) as count from ${Y}${V.raw(" where ").if(Z)}${Z};`}setToken(Y){return this.token=Y,this}then(Y,Z){return Promise.resolve(this.session.count(this.sql,this.token)).then(Y,Z)}catch(Y){return this.then(void 0,Y)}finally(Y){return this.then((Z)=>{return Y?.(),Z},(Z)=>{throw Y?.(),Z})}}class a5{constructor(Y,Z,X,G,_,$,W){this.fullSchema=Y,this.schema=Z,this.tableNamesMap=X,this.table=G,this.tableConfig=_,this.dialect=$,this.session=W}static[E]="PgRelationalQueryBuilder";findMany(Y){return new t5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?Y:{},"many")}findFirst(Y){return new t5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?{...Y,limit:1}:{limit:1},"first")}}class t5 extends G1{constructor(Y,Z,X,G,_,$,W,H,Q){super();this.fullSchema=Y,this.schema=Z,this.tableNamesMap=X,this.table=G,this.tableConfig=_,this.dialect=$,this.session=W,this.config=H,this.mode=Q}static[E]="PgRelationalQuery";_prepare(Y){return E0.startActiveSpan("drizzle.prepareQuery",()=>{let{query:Z,builtQuery:X}=this._toSQL();return this.session.prepareQuery(X,void 0,Y,!0,(G,_)=>{let $=G.map((W)=>o6(this.schema,this.tableConfig,W,Z.selection,_));if(this.mode==="first")return $[0];return $})})}prepare(Y){return this._prepare(Y)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let Y=this._getQuery(),Z=this.dialect.sqlToQuery(Y.sql);return{query:Y,builtQuery:Z}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(Y){return this.authToken=Y,this}execute(){return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class e5 extends G1{constructor(Y,Z,X,G){super();this.execute=Y,this.sql=Z,this.query=X,this.mapBatchResult=G}static[E]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(Y,Z){return Z?this.mapBatchResult(Y):Y}_prepare(){return this}isResponseInArrayMode(){return!1}}class h8{constructor(Y,Z,X){if(this.dialect=Y,this.session=Z,this._=X?{schema:X.schema,fullSchema:X.fullSchema,tableNamesMap:X.tableNamesMap,session:Z}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:Z},this.query={},this._.schema)for(let[G,_]of Object.entries(this._.schema))this.query[G]=new a5(X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[G],_,Y,Z);this.$cache={invalidate:async(G)=>{}}}static[E]="PgDatabase";query;$with=(Y,Z)=>{let X=this;return{as:(_)=>{if(typeof _==="function")_=_(new x8(X.dialect));return new Proxy(new L8(_.getSQL(),Z??("getSelectedFields"in _?_.getSelectedFields()??{}:{}),Y,!0),new q0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(Y,Z){return new f8({source:Y,filters:Z,session:this.session})}$cache;with(...Y){let Z=this;function X(Q){return new _1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y})}function G(Q){return new _1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:!0})}function _(Q,J){return new _1({fields:J??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:{on:Q}})}function $(Q){return new HY(Q,Z.session,Z.dialect,Y)}function W(Q){return new WY(Q,Z.session,Z.dialect,Y)}function H(Q){return new $Y(Q,Z.session,Z.dialect,Y)}return{select:X,selectDistinct:G,selectDistinctOn:_,update:$,insert:W,delete:H}}select(Y){return new _1({fields:Y??void 0,session:this.session,dialect:this.dialect})}selectDistinct(Y){return new _1({fields:Y??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(Y,Z){return new _1({fields:Z??void 0,session:this.session,dialect:this.dialect,distinct:{on:Y}})}update(Y){return new HY(Y,this.session,this.dialect)}insert(Y){return new WY(Y,this.session,this.dialect)}delete(Y){return new $Y(Y,this.session,this.dialect)}refreshMaterializedView(Y){return new s5(Y,this.session,this.dialect)}authToken;execute(Y){let Z=typeof Y==="string"?V.raw(Y):Y.getSQL(),X=this.dialect.sqlToQuery(Z),G=this.session.prepareQuery(X,void 0,void 0,!1);return new e5(()=>G.execute(void 0,this.authToken),Z,X,(_)=>G.mapResult(_,!0))}transaction(Y,Z){return this.session.transaction(Y,Z)}}class mW{static[E]="Cache"}class k8 extends mW{strategy(){return"all"}static[E]="NoopCache";async get(Y){return}async put(Y,Z,X,G){}async onMutate(Y){}}async function YX(Y,Z){let X=`${Y}-${JSON.stringify(Z)}`,_=new TextEncoder().encode(X),$=await crypto.subtle.digest("SHA-256",_);return[...new Uint8Array($)].map((Q)=>Q.toString(16).padStart(2,"0")).join("")}class ZX{constructor(Y,Z,X,G){if(this.query=Y,this.cache=Z,this.queryMetadata=X,this.cacheConfig=G,Z&&Z.strategy()==="all"&&G===void 0)this.cacheConfig={enable:!0,autoInvalidate:!0};if(!this.cacheConfig?.enable)this.cacheConfig=void 0}authToken;getQuery(){return this.query}mapResult(Y,Z){return Y}setToken(Y){return this.authToken=Y,this}static[E]="PgPreparedQuery";joinsNotNullableMap;async queryWithCache(Y,Z,X){if(this.cache===void 0||M(this.cache,k8)||this.queryMetadata===void 0)try{return await X()}catch(G){throw new H4(Y,Z,G)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await X()}catch(G){throw new H4(Y,Z,G)}if((this.queryMetadata.type==="insert"||this.queryMetadata.type==="update"||this.queryMetadata.type==="delete")&&this.queryMetadata.tables.length>0)try{let[G]=await Promise.all([X(),this.cache.onMutate({tables:this.queryMetadata.tables})]);return G}catch(G){throw new H4(Y,Z,G)}if(!this.cacheConfig)try{return await X()}catch(G){throw new H4(Y,Z,G)}if(this.queryMetadata.type==="select"){let G=await this.cache.get(this.cacheConfig.tag??await YX(Y,Z),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(G===void 0){let _;try{_=await X()}catch($){throw new H4(Y,Z,$)}return await this.cache.put(this.cacheConfig.tag??await YX(Y,Z),_,this.cacheConfig.autoInvalidate?this.queryMetadata.tables:[],this.cacheConfig.tag!==void 0,this.cacheConfig.config),_}return G}try{return await X()}catch(G){throw new H4(Y,Z,G)}}}class XX{constructor(Y){this.dialect=Y}static[E]="PgSession";execute(Y,Z){return E0.startActiveSpan("drizzle.operation",()=>{return E0.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(Y),void 0,void 0,!1)}).setToken(Z).execute(void 0,Z)})}all(Y){return this.prepareQuery(this.dialect.sqlToQuery(Y),void 0,void 0,!1).all()}async count(Y,Z){let X=await this.execute(Y,Z);return Number(X[0].count)}}class GX extends h8{constructor(Y,Z,X,G=0){super(Y,Z,X);this.schema=X,this.nestedIndex=G}static[E]="PgTransaction";rollback(){throw new w5}getTransactionConfigSQL(Y){let Z=[];if(Y.isolationLevel)Z.push(`isolation level ${Y.isolationLevel}`);if(Y.accessMode)Z.push(Y.accessMode);if(typeof Y.deferrable==="boolean")Z.push(Y.deferrable?"deferrable":"not deferrable");return V.raw(Z.join(" "))}setTransaction(Y){return this.session.execute(V`set transaction ${this.getTransactionConfigSQL(Y)}`)}}class uW extends ZX{constructor(Y,Z,X,G,_,$,W,H,Q,J){super({sql:Z,params:X},_,$,W);this.client=Y,this.queryString=Z,this.params=X,this.logger=G,this.fields=H,this._isResponseInArrayMode=Q,this.customResultMapper=J}static[E]="PostgresJsPreparedQuery";async execute(Y={}){return E0.startActiveSpan("drizzle.execute",async(Z)=>{let X=A5(this.params,Y);Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X);let{fields:G,queryString:_,client:$,joinsNotNullableMap:W,customResultMapper:H}=this;if(!G&&!H)return E0.startActiveSpan("drizzle.driver.execute",()=>{return this.queryWithCache(_,X,async()=>{return await $.unsafe(_,X)})});let Q=await E0.startActiveSpan("drizzle.driver.execute",()=>{return Z?.setAttributes({"drizzle.query.text":_,"drizzle.query.params":JSON.stringify(X)}),this.queryWithCache(_,X,async()=>{return await $.unsafe(_,X).values()})});return E0.startActiveSpan("drizzle.mapResponse",()=>{return H?H(Q):Q.map((J)=>u7(G,J,W))})})}all(Y={}){return E0.startActiveSpan("drizzle.execute",async(Z)=>{let X=A5(this.params,Y);return Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X),E0.startActiveSpan("drizzle.driver.execute",()=>{return Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.queryWithCache(this.queryString,X,async()=>{return this.client.unsafe(this.queryString,X)})})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class b8 extends XX{constructor(Y,Z,X,G={}){super(Z);this.client=Y,this.schema=X,this.options=G,this.logger=G.logger??new I5,this.cache=G.cache??new k8}static[E]="PostgresJsSession";logger;cache;prepareQuery(Y,Z,X,G,_,$,W){return new uW(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 G=new b8(X,this.dialect,this.schema,this.options),_=new _X(this.dialect,G,this.schema);if(Z)await _.setTransaction(Z);return Y(_)})}}class _X extends GX{constructor(Y,Z,X,G=0){super(Y,Z,X,G);this.session=Z}static[E]="PostgresJsTransaction";transaction(Y){return this.session.client.savepoint((Z)=>{let X=new b8(Z,this.dialect,this.schema,this.session.options),G=new _X(this.dialect,X,this.schema);return Y(G)})}}class dW extends h8{static[E]="PostgresJsDatabase"}function K2(Y,Z={}){let X=(Q)=>Q;for(let Q of["1184","1082","1083","1114","1182","1185","1115","1231"])Y.options.parsers[Q]=X,Y.options.serializers[Q]=X;Y.options.serializers["114"]=X,Y.options.serializers["3802"]=X;let G=new c4({casing:Z.casing}),_;if(Z.logger===!0)_=new N5;else if(Z.logger!==!1)_=Z.logger;let $;if(Z.schema){let Q=VW(Z.schema,DW);$={fullSchema:Z.schema,schema:Q.tables,tableNamesMap:Q.tableNamesMap}}let W=new b8(Y,G,$,{logger:_,cache:Z.cache}),H=new dW(G,W,$);if(H.$client=Y,H.$cache=Z.cache,H.$cache)H.$cache.invalidate=Z.cache?.onMutate;return H}function JY(...Y){if(typeof Y[0]==="string"){let Z=N2(Y[0]);return K2(Z,Y[1])}if(l7(Y[0])){let{connection:Z,client:X,...G}=Y[0];if(X)return K2(X,G);if(typeof Z==="object"&&Z.url!==void 0){let{url:$,...W}=Z,H=N2($,W);return K2(H,G)}let _=N2(Z);return K2(_,G)}return K2(Y[0],Y[1])}((Y)=>{function Z(X){return K2({options:{parsers:{},serializers:{}}},X)}Y.mock=Z})(JY||(JY={}));var WX={};nH(WX,{users:()=>l4,untrackedUserColumnNames:()=>bE,twoFactorMethod:()=>nW,trackedUserColumnName:()=>yE,trackableUserColumnNames:()=>oW,signInHistory:()=>pE,role:()=>lW,players:()=>$X,passwordResetAttempts:()=>mE,games:()=>zY,banishedIps:()=>uE,accountActions:()=>gE,accountAction:()=>iW});function T4(){return t0({length:24}).$type()}function cW(Y){return V`lower(${Y})`}var QY=V`TO_CHAR(NOW() AT TIME ZONE 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"')`,lW=D8("role",["admin","user"]),l4=I4("users",{id:C1().primaryKey().defaultRandom(),username:t0({length:16}).notNull(),emailOffered:t0({length:254}).notNull(),emailVerified:t0({length:254}),password:t0({length:254}),createdAtIso:T4().notNull().default(QY),createdIp:t0({length:45}).notNull(),isActive:N8().notNull().default(!1),verifiedAtIso:T4(),userRole:lW().default("user")},(Y)=>[l5("usernameUniqueIndex").on(cW(Y.username)),l5("emailVerifiedUniqueIndex").on(cW(Y.emailVerified))]),bE=["id","createdAtIso","createdIp","isActive","verifiedAtIso"],oW=["username","emailOffered","emailVerified","password","userRole"],yE=D8("trackedUserColumnName",oW),iW=D8("accountAction",["cooldown","confirmEmail","signIn","resetPassword"]),gE=I4("accountActions",{userId:C1().references(()=>l4.id).primaryKey(),action:iW().notNull(),code:t0({length:254}).notNull(),wrongCodeCount:I8().notNull().default(0),expiresAtIso:T4().notNull()}),zY=I4("games",{id:C1().primaryKey().defaultRandom()}),$X=I4("players",{userId:C1().notNull().references(()=>l4.id,{onDelete:"cascade"}),gameId:C1().notNull().references(()=>zY.id,{onDelete:"cascade"}),score:I8().notNull()},(Y)=>[u3({name:"players_userId_gameId_pk",columns:[Y.userId,Y.gameId]})]),pE=I4("signInHistory",{id:C1().primaryKey().defaultRandom(),userId:C1().references(()=>l4.id,{onDelete:"cascade"}),signInTimeIso:T4().notNull().default(QY),ipAddress:t0({length:45}).notNull(),userAgent:t0({length:1024}),successful:N8().notNull().default(!1)}),nW=D8("twoFactorMethod",["email","phone"]),mE=I4("passwordResetAttempts",{id:C1().primaryKey().defaultRandom(),userId:C1().notNull().references(()=>l4.id,{onDelete:"cascade"}),requestedIp:t0({length:45}).notNull(),requestedAtIso:T4().notNull().default(QY),succeededIp:t0({length:45}),succeededAtIso:T4(),verificationMethod:nW().notNull()}),uE=I4("banishedIps",{ip:t0({length:45}).primaryKey(),reason:t0({length:2048}).notNull(),banishedAtIso:T4().notNull().default(QY),banishedUntilIso:T4()});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class HX{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(dE.resolve(__dirname,"notify_update.sql"));let Y=[d0(l4),d0(zY),d0($X)];await this.sql`SELECT create_notify_triggers(${this.sql.array(Y)})`,await this.sql.listen("table_update",(Z)=>{let X=Z.split(","),G=X[0],_=X[1],$=`${G}("${_}")`;if(this.observers.has($))this.observers.get($).next($)})}constructor(Y=!1,Z={host:g1.POSTGRES_HOST,port:g1.POSTGRES_PORT,user:g1.POSTGRES_USER,password:g1.POSTGRES_PASSWORD,database:g1.POSTGRES_DATABASE}){this.options=Z,this.sql=N2(Z),this.drizzle=JY(this.sql,{schema:WX,logger:Y})}observe(Y,Z){if(!this.observers.has(Y))this.observers.set(Y,new _0);this.observers.get(Y).subscribe("SINGLETON",Z)}}var FY={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 cE(Y){return Number.parseInt(Y,10)}var lE=F1(FY),oE=lE.keyof().pipe((Y)=>cE(Y)),rW=F1([oE,"string"]);var QX=new M7(process),{logger:D1}=QX;Object.assign(console,D1,{log:D1.info});D1.info("ready");var JX=tW(import.meta.dir,"..","app"),Lf=new HX({logQuery(Y,Z){D1.info("\uD83D\uDCDD query",Y,Z)}});sE({hostname:"0.0.0.0",port:g1.FRONTEND_PORT??3333,...q6??void 0,async fetch(Y){try{let Z=new Date,X=new URL(Y.url);if(D1.info(Y.method,X.pathname),X.pathname==="/")return new Response(Bun.file(tW(JX,"index.html")));if(X.pathname==="/index.html")return Response.redirect("/");let G=nE(JX,X.pathname),_=rE(G);if(!_.startsWith(JX))throw[403,"Access Denied"];if(!await sW(_).exists())return Response.redirect("/");return new Response(sW(_))}catch(Z){let X=rW(Z);if(X instanceof F1.errors===!1){let[G,_]=X,W=`${FY[G]}. ${_}`;return D1.info(`\u274C ${G}: ${W}`),new Response(W,{status:G})}if(Z instanceof Error)D1.error(Z.message);else{let G=C6(Z);D1.error("frontend server threw",G)}return new Response(FY[500],{status:500})}}});function UY(){D1.info("\uD83D\uDEEC frontend server exiting"),process.exit(0)}process.on("SIGINT",()=>{D1.info("\u2757 received SIGINT; exiting gracefully"),UY()});process.on("SIGTERM",()=>{D1.info("\u2757 received SIGTERM; exiting gracefully"),UY()});process.on("exit",()=>{D1.info("\u2757 received exit; exiting gracefully"),UY()});QX.on("timeToStop",()=>{D1.info('\u2757 backend server received signal "timeToStop"; exiting gracefully'),UY()});var{version:tE}=await Bun.file(iE.resolve(import.meta.dir,"../package.json")).json();D1.info(`\uD83D\uDEEB frontend v${tE} running at http://localhost:${g1.FRONTEND_PORT}/`);QX.emit("alive");
|
|
93
|
+
`;await Z.execute(V`CREATE SCHEMA IF NOT EXISTS ${V.identifier(_)}`),await Z.execute($);let H=(await Z.all(V`select id, hash, created_at from ${V.identifier(_)}.${V.identifier(G)} order by created_at desc limit 1`))[0];await Z.transaction(async(Q)=>{for await(let J of Y)if(!H||Number(H.created_at)<J.folderMillis){for(let z of J.sql)await Q.execute(V.raw(z));await Q.execute(V`insert into ${V.identifier(_)}.${V.identifier(G)} ("hash", "created_at") values(${J.hash}, ${J.folderMillis})`)}})}escapeName(Y){return`"${Y}"`}escapeParam(Y){return`$${Y+1}`}escapeString(Y){return`'${Y.replace(/'/g,"''")}'`}buildWithCTE(Y){if(!Y?.length)return;let Z=[V`with `];for(let[X,G]of Y.entries())if(Z.push(V`${V.identifier(G._.alias)} as (${G._.sql})`),X<Y.length-1)Z.push(V`, `);return Z.push(V` `),V.join(Z)}buildDeleteQuery({table:Y,where:Z,returning:X,withList:G}){let _=this.buildWithCTE(G),$=X?V` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,W=Z?V` where ${Z}`:void 0;return V`${_}delete from ${Y}${W}${$}`}buildUpdateSet(Y,Z){let X=Y[P.Symbol.Columns],G=Object.keys(X).filter(($)=>Z[$]!==void 0||X[$]?.onUpdateFn!==void 0),_=G.length;return V.join(G.flatMap(($,W)=>{let H=X[$],Q=Z[$]??V.param(H.onUpdateFn(),H),J=V`${V.identifier(this.casing.getColumnCasing(H))} = ${Q}`;if(W<_-1)return[J,V.raw(", ")];return[J]}))}buildUpdateQuery({table:Y,set:Z,where:X,returning:G,withList:_,from:$,joins:W}){let H=this.buildWithCTE(_),Q=Y[u0.Symbol.Name],J=Y[u0.Symbol.Schema],z=Y[u0.Symbol.OriginalName],F=Q===z?void 0:Q,O=V`${J?V`${V.identifier(J)}.`:void 0}${V.identifier(z)}${F&&V` ${V.identifier(F)}`}`,L=this.buildUpdateSet(Y,Z),w=$&&V.join([V.raw(" from "),this.buildFromTable($)]),R=this.buildJoins(W),b=G?V` returning ${this.buildSelection(G,{isSingleTable:!$})}`:void 0,x=X?V` where ${X}`:void 0;return V`${H}update ${O} set ${L}${w}${R}${x}${b}`}buildSelection(Y,{isSingleTable:Z=!1}={}){let X=Y.length,G=Y.flatMap(({field:_},$)=>{let W=[];if(M(_,f.Aliased)&&_.isSelectionField)W.push(V.identifier(_.fieldAlias));else if(M(_,f.Aliased)||M(_,f)){let H=M(_,f.Aliased)?_.sql:_;if(Z)W.push(new f(H.queryChunks.map((Q)=>{if(M(Q,j))return V.identifier(this.casing.getColumnCasing(Q));return Q})));else W.push(H);if(M(_,f.Aliased))W.push(V` as ${V.identifier(_.fieldAlias)}`)}else if(M(_,F0))if(Z)W.push(V.identifier(this.casing.getColumnCasing(_)));else W.push(_);if($<X-1)W.push(V`, `);return W});return V.join(G)}buildJoins(Y){if(!Y||Y.length===0)return;let Z=[];for(let[X,G]of Y.entries()){if(X===0)Z.push(V` `);let _=G.table,$=G.lateral?V` lateral`:void 0,W=G.on?V` on ${G.on}`:void 0;if(M(_,u0)){let H=_[u0.Symbol.Name],Q=_[u0.Symbol.Schema],J=_[u0.Symbol.OriginalName],z=H===J?void 0:G.alias;Z.push(V`${V.raw(G.joinType)} join${$} ${Q?V`${V.identifier(Q)}.`:void 0}${V.identifier(J)}${z&&V` ${V.identifier(z)}`}${W}`)}else if(M(_,V1)){let H=_[M0].name,Q=_[M0].schema,J=_[M0].originalName,z=H===J?void 0:G.alias;Z.push(V`${V.raw(G.joinType)} join${$} ${Q?V`${V.identifier(Q)}.`:void 0}${V.identifier(J)}${z&&V` ${V.identifier(z)}`}${W}`)}else Z.push(V`${V.raw(G.joinType)} join${$} ${_}${W}`);if(X<Y.length-1)Z.push(V` `)}return V.join(Z)}buildFromTable(Y){if(M(Y,P)&&Y[P.Symbol.IsAlias]){let Z=V`${V.identifier(Y[P.Symbol.OriginalName])}`;if(Y[P.Symbol.Schema])Z=V`${V.identifier(Y[P.Symbol.Schema])}.${Z}`;return V`${Z} ${V.identifier(Y[P.Symbol.Name])}`}return Y}buildSelectQuery({withList:Y,fields:Z,fieldsFlat:X,where:G,having:_,table:$,joins:W,orderBy:H,groupBy:Q,limit:J,offset:z,lockingClause:F,distinct:O,setOperators:L}){let w=X??T1(Z);for(let t of w)if(M(t.field,F0)&&d0(t.field.table)!==(M($,S0)?$._.alias:M($,v8)?$[M0].name:M($,f)?void 0:d0($))&&!((I0)=>W?.some(({alias:h0})=>h0===(I0[P.Symbol.IsAlias]?d0(I0):I0[P.Symbol.BaseName])))(t.field.table)){let I0=d0(t.field.table);throw Error(`Your "${t.path.join("->")}" field references a column "${I0}"."${t.field.name}", but the table "${I0}" is not part of the query! Did you forget to join it?`)}let R=!W||W.length===0,b=this.buildWithCTE(Y),x;if(O)x=O===!0?V` distinct`:V` distinct on (${V.join(O.on,V`, `)})`;let h=this.buildSelection(w,{isSingleTable:R}),g=this.buildFromTable($),B=this.buildJoins(W),K=G?V` where ${G}`:void 0,C=_?V` having ${_}`:void 0,q;if(H&&H.length>0)q=V` order by ${V.join(H,V`, `)}`;let c;if(Q&&Q.length>0)c=V` group by ${V.join(Q,V`, `)}`;let n=typeof J==="object"||typeof J==="number"&&J>=0?V` limit ${J}`:void 0,N=z?V` offset ${z}`:void 0,s=V.empty();if(F){let t=V` for ${V.raw(F.strength)}`;if(F.config.of)t.append(V` of ${V.join(Array.isArray(F.config.of)?F.config.of:[F.config.of],V`, `)}`);if(F.config.noWait)t.append(V` nowait`);else if(F.config.skipLocked)t.append(V` skip locked`);s.append(t)}let p=V`${b}select${x} ${h} from ${g}${B}${K}${c}${C}${q}${n}${N}${s}`;if(L.length>0)return this.buildSetOperations(p,L);return p}buildSetOperations(Y,Z){let[X,...G]=Z;if(!X)throw Error("Cannot pass undefined values to any set operator");if(G.length===0)return this.buildSetOperationQuery({leftSelect:Y,setOperator:X});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:Y,setOperator:X}),G)}buildSetOperationQuery({leftSelect:Y,setOperator:{type:Z,isAll:X,rightSelect:G,limit:_,orderBy:$,offset:W}}){let H=V`(${Y.getSQL()}) `,Q=V`(${G.getSQL()})`,J;if($&&$.length>0){let L=[];for(let w of $)if(M(w,j))L.push(V.identifier(w.name));else if(M(w,f)){for(let R=0;R<w.queryChunks.length;R++){let b=w.queryChunks[R];if(M(b,j))w.queryChunks[R]=V.identifier(b.name)}L.push(V`${w}`)}else L.push(V`${w}`);J=V` order by ${V.join(L,V`, `)} `}let z=typeof _==="object"||typeof _==="number"&&_>=0?V` limit ${_}`:void 0,F=V.raw(`${Z} ${X?"all ":""}`),O=W?V` offset ${W}`:void 0;return V`${H}${F}${Q}${J}${z}${O}`}buildInsertQuery({table:Y,values:Z,onConflict:X,returning:G,withList:_,select:$,overridingSystemValue_:W}){let H=[],Q=Y[P.Symbol.Columns],J=Object.entries(Q).filter(([b,x])=>!x.shouldDisableInsert()),z=J.map(([,b])=>V.identifier(this.casing.getColumnCasing(b)));if($){let b=Z;if(M(b,f))H.push(b);else H.push(b.getSQL())}else{let b=Z;H.push(V.raw("values "));for(let[x,h]of b.entries()){let g=[];for(let[B,K]of J){let C=h[B];if(C===void 0||M(C,A1)&&C.value===void 0)if(K.defaultFn!==void 0){let q=K.defaultFn(),c=M(q,f)?q:V.param(q,K);g.push(c)}else if(!K.default&&K.onUpdateFn!==void 0){let q=K.onUpdateFn(),c=M(q,f)?q:V.param(q,K);g.push(c)}else g.push(V`default`);else g.push(C)}if(H.push(g),x<b.length-1)H.push(V`, `)}}let F=this.buildWithCTE(_),O=V.join(H),L=G?V` returning ${this.buildSelection(G,{isSingleTable:!0})}`:void 0,w=X?V` on conflict ${X}`:void 0,R=W===!0?V`overriding system value `:void 0;return V`${F}insert into ${Y} ${z} ${R}${O}${w}${L}`}buildRefreshMaterializedViewQuery({view:Y,concurrently:Z,withNoData:X}){let G=Z?V` concurrently`:void 0,_=X?V` with no data`:void 0;return V`refresh materialized view${G} ${Y}${_}`}prepareTyping(Y){if(M(Y,g6)||M(Y,y6))return"json";else if(M(Y,p6))return"decimal";else if(M(Y,m6))return"time";else if(M(Y,u6)||M(Y,d6))return"timestamp";else if(M(Y,k6)||M(Y,b6))return"date";else if(M(Y,c6))return"uuid";else return"none"}sqlToQuery(Y,Z){return Y.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:Z})}buildRelationalQueryWithoutPK({fullSchema:Y,schema:Z,tableNamesMap:X,table:G,tableConfig:_,queryConfig:$,tableAlias:W,nestedQueryRelation:H,joinOn:Q}){let J=[],z,F,O=[],L,w=[];if($===!0)J=Object.entries(_.columns).map(([x,h])=>({dbKey:h.name,tsKey:x,field:i1(h,W),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let b=Object.fromEntries(Object.entries(_.columns).map(([C,q])=>[C,i1(q,W)]));if($.where){let C=typeof $.where==="function"?$.where(b,UW()):$.where;L=C&&R8(C,W)}let x=[],h=[];if($.columns){let C=!1;for(let[q,c]of Object.entries($.columns)){if(c===void 0)continue;if(q in _.columns){if(!C&&c===!0)C=!0;h.push(q)}}if(h.length>0)h=C?h.filter((q)=>$.columns?.[q]===!0):Object.keys(_.columns).filter((q)=>!h.includes(q))}else h=Object.keys(_.columns);for(let C of h){let q=_.columns[C];x.push({tsKey:C,value:q})}let g=[];if($.with)g=Object.entries($.with).filter((C)=>!!C[1]).map(([C,q])=>({tsKey:C,queryConfig:q,relation:_.relations[C]}));let B;if($.extras){B=typeof $.extras==="function"?$.extras(b,{sql:V}):$.extras;for(let[C,q]of Object.entries(B))x.push({tsKey:C,value:R5(q,W)})}for(let{tsKey:C,value:q}of x)J.push({dbKey:M(q,f.Aliased)?q.fieldAlias:_.columns[C].name,tsKey:C,field:M(q,F0)?i1(q,W):q,relationTableTsKey:void 0,isJson:!1,selection:[]});let K=typeof $.orderBy==="function"?$.orderBy(b,FW()):$.orderBy??[];if(!Array.isArray(K))K=[K];O=K.map((C)=>{if(M(C,F0))return i1(C,W);return R8(C,W)}),z=$.limit,F=$.offset;for(let{tsKey:C,queryConfig:q,relation:c}of g){let n=VW(Z,X,c),N=g4(c.referencedTable),s=X[N],p=`${W}_${C}`,t=B8(...n.fields.map(($1,r1)=>l6(i1(n.references[r1],p),i1($1,W)))),I0=this.buildRelationalQueryWithoutPK({fullSchema:Y,schema:Z,tableNamesMap:X,table:Y[s],tableConfig:Z[s],queryConfig:M(c,K4)?q===!0?{limit:1}:{...q,limit:1}:q,tableAlias:p,joinOn:t,nestedQueryRelation:c}),h0=V`${V.identifier(p)}.${V.identifier("data")}`.as(C);w.push({on:V`true`,table:new S0(I0.sql,{},p),alias:p,joinType:"left",lateral:!0}),J.push({dbKey:C,tsKey:C,field:h0,relationTableTsKey:s,isJson:!0,selection:I0.selection})}}if(J.length===0)throw new f6({message:`No fields selected for table "${_.tsName}" ("${W}")`});let R;if(L=B8(Q,L),H){let b=V`json_build_array(${V.join(J.map(({field:g,tsKey:B,isJson:K})=>K?V`${V.identifier(`${W}_${B}`)}.${V.identifier("data")}`:M(g,f.Aliased)?g.sql:g),V`, `)})`;if(M(H,T8))b=V`coalesce(json_agg(${b}${O.length>0?V` order by ${V.join(O,V`, `)}`:void 0}), '[]'::json)`;let x=[{dbKey:"data",tsKey:"data",field:b.as("data"),isJson:!0,relationTableTsKey:_.tsName,selection:J}];if(z!==void 0||F!==void 0||O.length>0)R=this.buildSelectQuery({table:x6(G,W),fields:{},fieldsFlat:[{path:[],field:V.raw("*")}],where:L,limit:z,offset:F,orderBy:O,setOperators:[]}),L=void 0,z=void 0,F=void 0,O=[];else R=x6(G,W);R=this.buildSelectQuery({table:M(R,u0)?R:new S0(R,{},W),fields:{},fieldsFlat:x.map(({field:g})=>({path:[],field:M(g,F0)?i1(g,W):g})),joins:w,where:L,limit:z,offset:F,orderBy:O,setOperators:[]})}else R=this.buildSelectQuery({table:x6(G,W),fields:{},fieldsFlat:J.map(({field:b})=>({path:[],field:M(b,F0)?i1(b,W):b})),joins:w,where:L,limit:z,offset:F,orderBy:O,setOperators:[]});return{tableTsKey:_.tsName,sql:R,selection:J}}}class i5{static[E]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class _1{static[E]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(Y){if(this.fields=Y.fields,this.session=Y.session,this.dialect=Y.dialect,Y.withList)this.withList=Y.withList;this.distinct=Y.distinct}authToken;setToken(Y){return this.authToken=Y,this}from(Y){let Z=!!this.fields,X=Y,G;if(this.fields)G=this.fields;else if(M(X,S0))G=Object.fromEntries(Object.keys(X._.selectedFields).map((_)=>[_,X[_]]));else if(M(X,v8))G=X[M0].selectedFields;else if(M(X,f))G={};else G=d7(X);return new n5({table:X,fields:G,isPartialSelect:Z,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class yW extends i5{static[E]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:Y,fields:Z,isPartialSelect:X,session:G,dialect:_,withList:$,distinct:W}){super();this.config={withList:$,table:Y,fields:{...Z},distinct:W,setOperators:[]},this.isPartialSelect=X,this.session=G,this.dialect=_,this._={selectedFields:Z,config:this.config},this.tableName=J4(Y),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{};for(let H of m1(Y))this.usedTables.add(H)}getUsedTables(){return[...this.usedTables]}createJoin(Y,Z){return(X,G)=>{let _=this.tableName,$=J4(X);for(let W of m1(X))this.usedTables.add(W);if(typeof $==="string"&&this.config.joins?.some((W)=>W.alias===$))throw Error(`Alias "${$}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof _==="string")this.config.fields={[_]:this.config.fields};if(typeof $==="string"&&!M(X,f)){let W=M(X,S0)?X._.selectedFields:M(X,V1)?X[M0].selectedFields:X[P.Symbol.Columns];this.config.fields[$]=W}}if(typeof G==="function")G=G(new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:G,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 G=typeof X==="function"?X(qE()):X;if(!w8(this.getSelectedFields(),G.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:Y,isAll:Z,rightSelect:G}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(Y){return this.config.setOperators.push(...Y),this}where(Y){if(typeof Y==="function")Y=Y(new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=Y,this}having(Y){if(typeof Y==="function")Y=Y(new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=Y,this}groupBy(...Y){if(typeof Y[0]==="function"){let Z=Y[0](new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(Z)?Z:[Z]}else this.config.groupBy=Y;return this}orderBy(...Y){if(typeof Y[0]==="function"){let Z=Y[0](new Proxy(this.config.fields,new q0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),X=Array.isArray(Z)?Z:[Z];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=X;else this.config.orderBy=X}else{let Z=Y;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=Z;else this.config.orderBy=Z}return this}limit(Y){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=Y;else this.config.limit=Y;return this}offset(Y){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=Y;else this.config.offset=Y;return this}for(Y,Z={}){return this.config.lockingClause={strength:Y,config:Z},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}as(Y){let Z=[];if(Z.push(...m1(this.config.table)),this.config.joins)for(let X of this.config.joins)Z.push(...m1(X.table));return new Proxy(new S0(this.getSQL(),this.config.fields,Y,!1,[...new Set(Z)]),new q0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new q0({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}$withCache(Y){return this.cacheConfig=Y===void 0?{config:{},enable:!0,autoInvalidate:!0}:Y===!1?{enable:!1}:{enable:!0,autoInvalidate:!0,...Y},this}}class n5 extends yW{static[E]="PgSelect";_prepare(Y){let{session:Z,config:X,dialect:G,joinsNotNullableMap:_,authToken:$,cacheConfig:W,usedTables:H}=this;if(!Z)throw Error("Cannot execute a query on a query builder. Please use a database instance instead.");let{fields:Q}=X;return E0.startActiveSpan("drizzle.prepareQuery",()=>{let J=T1(Q),z=Z.prepareQuery(G.sqlToQuery(this.getSQL()),J,Y,!0,void 0,{type:"select",tables:[...H]},W);return z.joinsNotNullableMap=_,z.setToken($)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}u7(n5,[G1]);function I2(Y,Z){return(X,G,..._)=>{let $=[G,..._].map((W)=>({type:Y,isAll:Z,rightSelect:W}));for(let W of $)if(!w8(X.getSelectedFields(),W.rightSelect.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return X.addSetOperators($)}}var qE=()=>({union:jE,unionAll:PE,intersect:SE,intersectAll:vE,except:xE,exceptAll:fE}),jE=I2("union",!1),PE=I2("union",!0),SE=I2("intersect",!1),vE=I2("intersect",!0),xE=I2("except",!1),fE=I2("except",!0);class x8{static[E]="PgQueryBuilder";dialect;dialectConfig;constructor(Y){this.dialect=M(Y,c4)?Y:void 0,this.dialectConfig=M(Y,c4)?void 0:Y}$with=(Y,Z)=>{let X=this;return{as:(_)=>{if(typeof _==="function")_=_(X);return new Proxy(new L8(_.getSQL(),Z??("getSelectedFields"in _?_.getSelectedFields()??{}:{}),Y,!0),new q0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...Y){let Z=this;function X($){return new _1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),withList:Y})}function G($){return new _1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),distinct:!0})}function _($,W){return new _1({fields:W??void 0,session:void 0,dialect:Z.getDialect(),distinct:{on:$}})}return{select:X,selectDistinct:G,selectDistinctOn:_}}select(Y){return new _1({fields:Y??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(Y){return new _1({fields:Y??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(Y,Z){return new _1({fields:Z??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:Y}})}getDialect(){if(!this.dialect)this.dialect=new c4(this.dialectConfig);return this.dialect}}function m1(Y){if(M(Y,u0))return[Y[y4]?`${Y[y4]}.${Y[P.Symbol.BaseName]}`:Y[P.Symbol.BaseName]];if(M(Y,S0))return Y._.usedTables??[];if(M(Y,f))return Y.usedTables??[];return[]}class $Y extends G1{constructor(Y,Z,X,G){super();this.session=Z,this.dialect=X,this.config={table:Y,withList:G}}static[E]="PgDelete";config;cacheConfig;where(Y){return this.config.where=Y,this}returning(Y=this.config.table[P.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=T1(Y),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return E0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"delete",tables:m1(this.config.table)},this.cacheConfig)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new q0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class WY{constructor(Y,Z,X,G,_){this.table=Y,this.session=Z,this.dialect=X,this.withList=G,this.overridingSystemValue_=_}static[E]="PgInsertBuilder";authToken;setToken(Y){return this.authToken=Y,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(Y){if(Y=Array.isArray(Y)?Y:[Y],Y.length===0)throw Error("values() must be called with at least one value");let Z=Y.map((X)=>{let G={},_=this.table[P.Symbol.Columns];for(let $ of Object.keys(X)){let W=X[$];G[$]=M(W,f)?W:new A1(W,_[$])}return G});return new r5(this.table,Z,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(Y){let Z=typeof Y==="function"?Y(new x8):Y;if(!M(Z,f)&&!w8(this.table[S6],Z._.selectedFields))throw Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new r5(this.table,Z,this.session,this.dialect,this.withList,!0)}}class r5 extends G1{constructor(Y,Z,X,G,_,$,W){super();this.session=X,this.dialect=G,this.config={table:Y,values:Z,withList:_,select:$,overridingSystemValue_:W}}static[E]="PgInsert";config;cacheConfig;returning(Y=this.config.table[P.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=T1(Y),this}onConflictDoNothing(Y={}){if(Y.target===void 0)this.config.onConflict=V`do nothing`;else{let Z="";Z=Array.isArray(Y.target)?Y.target.map((G)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(G))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y.target));let X=Y.where?V` where ${Y.where}`:void 0;this.config.onConflict=V`(${V.raw(Z)})${X} do nothing`}return this}onConflictDoUpdate(Y){if(Y.where&&(Y.targetWhere||Y.setWhere))throw Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let Z=Y.where?V` where ${Y.where}`:void 0,X=Y.targetWhere?V` where ${Y.targetWhere}`:void 0,G=Y.setWhere?V` where ${Y.setWhere}`:void 0,_=this.dialect.buildUpdateSet(this.config.table,h6(this.config.table,Y.set)),$="";return $=Array.isArray(Y.target)?Y.target.map((W)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(W))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y.target)),this.config.onConflict=V`(${V.raw($)})${X} do update set ${_}${Z}${G}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return E0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"insert",tables:m1(this.config.table)},this.cacheConfig)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new q0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class s5 extends G1{constructor(Y,Z,X){super();this.session=Z,this.dialect=X,this.config={view:Y}}static[E]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return E0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,Y,!0)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}class HY{constructor(Y,Z,X,G){this.table=Y,this.session=Z,this.dialect=X,this.withList=G}static[E]="PgUpdateBuilder";authToken;setToken(Y){return this.authToken=Y,this}set(Y){return new gW(this.table,h6(this.table,Y),this.session,this.dialect,this.withList).setToken(this.authToken)}}class gW extends G1{constructor(Y,Z,X,G,_){super();this.session=X,this.dialect=G,this.config={set:Z,table:Y,withList:_,joins:[]},this.tableName=J4(Y),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[E]="PgUpdate";config;tableName;joinsNotNullableMap;cacheConfig;from(Y){let Z=Y,X=J4(Z);if(typeof X==="string")this.joinsNotNullableMap[X]=!0;return this.config.from=Z,this}getTableLikeFields(Y){if(M(Y,u0))return Y[P.Symbol.Columns];else if(M(Y,S0))return Y._.selectedFields;return Y[M0].selectedFields}createJoin(Y){return(Z,X)=>{let G=J4(Z);if(typeof G==="string"&&this.config.joins.some((_)=>_.alias===G))throw Error(`Alias "${G}" is already used in this query`);if(typeof X==="function"){let _=this.config.from&&!M(this.config.from,f)?this.getTableLikeFields(this.config.from):void 0;X=X(new Proxy(this.config.table[P.Symbol.Columns],new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),_&&new Proxy(_,new q0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:X,table:Z,joinType:Y,alias:G}),typeof G==="string")switch(Y){case"left":{this.joinsNotNullableMap[G]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([_])=>[_,!1])),this.joinsNotNullableMap[G]=!0;break}case"inner":{this.joinsNotNullableMap[G]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([_])=>[_,!1])),this.joinsNotNullableMap[G]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(Y){return this.config.where=Y,this}returning(Y){if(!Y){if(Y=Object.assign({},this.config.table[P.Symbol.Columns]),this.config.from){let Z=J4(this.config.from);if(typeof Z==="string"&&this.config.from&&!M(this.config.from,f)){let X=this.getTableLikeFields(this.config.from);Y[Z]=X}for(let X of this.config.joins){let G=J4(X.table);if(typeof G==="string"&&!M(X.table,f)){let _=this.getTableLikeFields(X.table);Y[G]=_}}}}return this.config.returningFields=Y,this.config.returning=T1(Y),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){let Z=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"insert",tables:m1(this.config.table)},this.cacheConfig);return Z.joinsNotNullableMap=this.joinsNotNullableMap,Z}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return this._prepare().execute(Y,this.authToken)};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new q0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class f8 extends f{constructor(Y){super(f8.buildEmbeddedCount(Y.source,Y.filters).queryChunks);this.params=Y,this.mapWith(Number),this.session=Y.session,this.sql=f8.buildCount(Y.source,Y.filters)}sql;token;static[E]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(Y,Z){return V`(select count(*) from ${Y}${V.raw(" where ").if(Z)}${Z})`}static buildCount(Y,Z){return V`select count(*) as count from ${Y}${V.raw(" where ").if(Z)}${Z};`}setToken(Y){return this.token=Y,this}then(Y,Z){return Promise.resolve(this.session.count(this.sql,this.token)).then(Y,Z)}catch(Y){return this.then(void 0,Y)}finally(Y){return this.then((Z)=>{return Y?.(),Z},(Z)=>{throw Y?.(),Z})}}class a5{constructor(Y,Z,X,G,_,$,W){this.fullSchema=Y,this.schema=Z,this.tableNamesMap=X,this.table=G,this.tableConfig=_,this.dialect=$,this.session=W}static[E]="PgRelationalQueryBuilder";findMany(Y){return new t5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?Y:{},"many")}findFirst(Y){return new t5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?{...Y,limit:1}:{limit:1},"first")}}class t5 extends G1{constructor(Y,Z,X,G,_,$,W,H,Q){super();this.fullSchema=Y,this.schema=Z,this.tableNamesMap=X,this.table=G,this.tableConfig=_,this.dialect=$,this.session=W,this.config=H,this.mode=Q}static[E]="PgRelationalQuery";_prepare(Y){return E0.startActiveSpan("drizzle.prepareQuery",()=>{let{query:Z,builtQuery:X}=this._toSQL();return this.session.prepareQuery(X,void 0,Y,!0,(G,_)=>{let $=G.map((W)=>o6(this.schema,this.tableConfig,W,Z.selection,_));if(this.mode==="first")return $[0];return $})})}prepare(Y){return this._prepare(Y)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let Y=this._getQuery(),Z=this.dialect.sqlToQuery(Y.sql);return{query:Y,builtQuery:Z}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(Y){return this.authToken=Y,this}execute(){return E0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class e5 extends G1{constructor(Y,Z,X,G){super();this.execute=Y,this.sql=Z,this.query=X,this.mapBatchResult=G}static[E]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(Y,Z){return Z?this.mapBatchResult(Y):Y}_prepare(){return this}isResponseInArrayMode(){return!1}}class h8{constructor(Y,Z,X){if(this.dialect=Y,this.session=Z,this._=X?{schema:X.schema,fullSchema:X.fullSchema,tableNamesMap:X.tableNamesMap,session:Z}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:Z},this.query={},this._.schema)for(let[G,_]of Object.entries(this._.schema))this.query[G]=new a5(X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[G],_,Y,Z);this.$cache={invalidate:async(G)=>{}}}static[E]="PgDatabase";query;$with=(Y,Z)=>{let X=this;return{as:(_)=>{if(typeof _==="function")_=_(new x8(X.dialect));return new Proxy(new L8(_.getSQL(),Z??("getSelectedFields"in _?_.getSelectedFields()??{}:{}),Y,!0),new q0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(Y,Z){return new f8({source:Y,filters:Z,session:this.session})}$cache;with(...Y){let Z=this;function X(Q){return new _1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y})}function G(Q){return new _1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:!0})}function _(Q,J){return new _1({fields:J??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:{on:Q}})}function $(Q){return new HY(Q,Z.session,Z.dialect,Y)}function W(Q){return new WY(Q,Z.session,Z.dialect,Y)}function H(Q){return new $Y(Q,Z.session,Z.dialect,Y)}return{select:X,selectDistinct:G,selectDistinctOn:_,update:$,insert:W,delete:H}}select(Y){return new _1({fields:Y??void 0,session:this.session,dialect:this.dialect})}selectDistinct(Y){return new _1({fields:Y??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(Y,Z){return new _1({fields:Z??void 0,session:this.session,dialect:this.dialect,distinct:{on:Y}})}update(Y){return new HY(Y,this.session,this.dialect)}insert(Y){return new WY(Y,this.session,this.dialect)}delete(Y){return new $Y(Y,this.session,this.dialect)}refreshMaterializedView(Y){return new s5(Y,this.session,this.dialect)}authToken;execute(Y){let Z=typeof Y==="string"?V.raw(Y):Y.getSQL(),X=this.dialect.sqlToQuery(Z),G=this.session.prepareQuery(X,void 0,void 0,!1);return new e5(()=>G.execute(void 0,this.authToken),Z,X,(_)=>G.mapResult(_,!0))}transaction(Y,Z){return this.session.transaction(Y,Z)}}class pW{static[E]="Cache"}class k8 extends pW{strategy(){return"all"}static[E]="NoopCache";async get(Y){return}async put(Y,Z,X,G){}async onMutate(Y){}}async function YX(Y,Z){let X=`${Y}-${JSON.stringify(Z)}`,_=new TextEncoder().encode(X),$=await crypto.subtle.digest("SHA-256",_);return[...new Uint8Array($)].map((Q)=>Q.toString(16).padStart(2,"0")).join("")}class ZX{constructor(Y,Z,X,G){if(this.query=Y,this.cache=Z,this.queryMetadata=X,this.cacheConfig=G,Z&&Z.strategy()==="all"&&G===void 0)this.cacheConfig={enable:!0,autoInvalidate:!0};if(!this.cacheConfig?.enable)this.cacheConfig=void 0}authToken;getQuery(){return this.query}mapResult(Y,Z){return Y}setToken(Y){return this.authToken=Y,this}static[E]="PgPreparedQuery";joinsNotNullableMap;async queryWithCache(Y,Z,X){if(this.cache===void 0||M(this.cache,k8)||this.queryMetadata===void 0)try{return await X()}catch(G){throw new H4(Y,Z,G)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await X()}catch(G){throw new H4(Y,Z,G)}if((this.queryMetadata.type==="insert"||this.queryMetadata.type==="update"||this.queryMetadata.type==="delete")&&this.queryMetadata.tables.length>0)try{let[G]=await Promise.all([X(),this.cache.onMutate({tables:this.queryMetadata.tables})]);return G}catch(G){throw new H4(Y,Z,G)}if(!this.cacheConfig)try{return await X()}catch(G){throw new H4(Y,Z,G)}if(this.queryMetadata.type==="select"){let G=await this.cache.get(this.cacheConfig.tag??await YX(Y,Z),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(G===void 0){let _;try{_=await X()}catch($){throw new H4(Y,Z,$)}return await this.cache.put(this.cacheConfig.tag??await YX(Y,Z),_,this.cacheConfig.autoInvalidate?this.queryMetadata.tables:[],this.cacheConfig.tag!==void 0,this.cacheConfig.config),_}return G}try{return await X()}catch(G){throw new H4(Y,Z,G)}}}class XX{constructor(Y){this.dialect=Y}static[E]="PgSession";execute(Y,Z){return E0.startActiveSpan("drizzle.operation",()=>{return E0.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(Y),void 0,void 0,!1)}).setToken(Z).execute(void 0,Z)})}all(Y){return this.prepareQuery(this.dialect.sqlToQuery(Y),void 0,void 0,!1).all()}async count(Y,Z){let X=await this.execute(Y,Z);return Number(X[0].count)}}class GX extends h8{constructor(Y,Z,X,G=0){super(Y,Z,X);this.schema=X,this.nestedIndex=G}static[E]="PgTransaction";rollback(){throw new w5}getTransactionConfigSQL(Y){let Z=[];if(Y.isolationLevel)Z.push(`isolation level ${Y.isolationLevel}`);if(Y.accessMode)Z.push(Y.accessMode);if(typeof Y.deferrable==="boolean")Z.push(Y.deferrable?"deferrable":"not deferrable");return V.raw(Z.join(" "))}setTransaction(Y){return this.session.execute(V`set transaction ${this.getTransactionConfigSQL(Y)}`)}}class mW extends ZX{constructor(Y,Z,X,G,_,$,W,H,Q,J){super({sql:Z,params:X},_,$,W);this.client=Y,this.queryString=Z,this.params=X,this.logger=G,this.fields=H,this._isResponseInArrayMode=Q,this.customResultMapper=J}static[E]="PostgresJsPreparedQuery";async execute(Y={}){return E0.startActiveSpan("drizzle.execute",async(Z)=>{let X=A5(this.params,Y);Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X);let{fields:G,queryString:_,client:$,joinsNotNullableMap:W,customResultMapper:H}=this;if(!G&&!H)return E0.startActiveSpan("drizzle.driver.execute",()=>{return this.queryWithCache(_,X,async()=>{return await $.unsafe(_,X)})});let Q=await E0.startActiveSpan("drizzle.driver.execute",()=>{return Z?.setAttributes({"drizzle.query.text":_,"drizzle.query.params":JSON.stringify(X)}),this.queryWithCache(_,X,async()=>{return await $.unsafe(_,X).values()})});return E0.startActiveSpan("drizzle.mapResponse",()=>{return H?H(Q):Q.map((J)=>m7(G,J,W))})})}all(Y={}){return E0.startActiveSpan("drizzle.execute",async(Z)=>{let X=A5(this.params,Y);return Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X),E0.startActiveSpan("drizzle.driver.execute",()=>{return Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.queryWithCache(this.queryString,X,async()=>{return this.client.unsafe(this.queryString,X)})})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class b8 extends XX{constructor(Y,Z,X,G={}){super(Z);this.client=Y,this.schema=X,this.options=G,this.logger=G.logger??new I5,this.cache=G.cache??new k8}static[E]="PostgresJsSession";logger;cache;prepareQuery(Y,Z,X,G,_,$,W){return new mW(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 G=new b8(X,this.dialect,this.schema,this.options),_=new _X(this.dialect,G,this.schema);if(Z)await _.setTransaction(Z);return Y(_)})}}class _X extends GX{constructor(Y,Z,X,G=0){super(Y,Z,X,G);this.session=Z}static[E]="PostgresJsTransaction";transaction(Y){return this.session.client.savepoint((Z)=>{let X=new b8(Z,this.dialect,this.schema,this.session.options),G=new _X(this.dialect,X,this.schema);return Y(G)})}}class uW extends h8{static[E]="PostgresJsDatabase"}function K2(Y,Z={}){let X=(Q)=>Q;for(let Q of["1184","1082","1083","1114","1182","1185","1115","1231"])Y.options.parsers[Q]=X,Y.options.serializers[Q]=X;Y.options.serializers["114"]=X,Y.options.serializers["3802"]=X;let G=new c4({casing:Z.casing}),_;if(Z.logger===!0)_=new N5;else if(Z.logger!==!1)_=Z.logger;let $;if(Z.schema){let Q=EW(Z.schema,OW);$={fullSchema:Z.schema,schema:Q.tables,tableNamesMap:Q.tableNamesMap}}let W=new b8(Y,G,$,{logger:_,cache:Z.cache}),H=new uW(G,W,$);if(H.$client=Y,H.$cache=Z.cache,H.$cache)H.$cache.invalidate=Z.cache?.onMutate;return H}function JY(...Y){if(typeof Y[0]==="string"){let Z=N2(Y[0]);return K2(Z,Y[1])}if(c7(Y[0])){let{connection:Z,client:X,...G}=Y[0];if(X)return K2(X,G);if(typeof Z==="object"&&Z.url!==void 0){let{url:$,...W}=Z,H=N2($,W);return K2(H,G)}let _=N2(Z);return K2(_,G)}return K2(Y[0],Y[1])}((Y)=>{function Z(X){return K2({options:{parsers:{},serializers:{}}},X)}Y.mock=Z})(JY||(JY={}));var WX={};iH(WX,{users:()=>l4,untrackedUserColumnNames:()=>hE,twoFactorMethod:()=>iW,trackedUserColumnName:()=>kE,trackableUserColumnNames:()=>lW,signInHistory:()=>yE,role:()=>cW,players:()=>$X,passwordResetAttempts:()=>gE,games:()=>zY,banishedIps:()=>pE,accountActions:()=>bE,accountAction:()=>oW});function T4(){return t0({length:24}).$type()}function dW(Y){return V`lower(${Y})`}var QY=V`TO_CHAR(NOW() AT TIME ZONE 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"')`,cW=D8("role",["admin","user"]),l4=I4("users",{id:C1().primaryKey().defaultRandom(),username:t0({length:16}).notNull(),emailOffered:t0({length:254}).notNull(),emailVerified:t0({length:254}),password:t0({length:254}),createdAtIso:T4().notNull().default(QY),createdIp:t0({length:45}).notNull(),isActive:N8().notNull().default(!1),verifiedAtIso:T4(),userRole:cW().default("user")},(Y)=>[l5("usernameUniqueIndex").on(dW(Y.username)),l5("emailVerifiedUniqueIndex").on(dW(Y.emailVerified))]),hE=["id","createdAtIso","createdIp","isActive","verifiedAtIso"],lW=["username","emailOffered","emailVerified","password","userRole"],kE=D8("trackedUserColumnName",lW),oW=D8("accountAction",["cooldown","confirmEmail","signIn","resetPassword"]),bE=I4("accountActions",{userId:C1().references(()=>l4.id).primaryKey(),action:oW().notNull(),code:t0({length:254}).notNull(),wrongCodeCount:I8().notNull().default(0),expiresAtIso:T4().notNull()}),zY=I4("games",{id:C1().primaryKey().defaultRandom()}),$X=I4("players",{userId:C1().notNull().references(()=>l4.id,{onDelete:"cascade"}),gameId:C1().notNull().references(()=>zY.id,{onDelete:"cascade"}),score:I8().notNull()},(Y)=>[m3({name:"players_userId_gameId_pk",columns:[Y.userId,Y.gameId]})]),yE=I4("signInHistory",{id:C1().primaryKey().defaultRandom(),userId:C1().references(()=>l4.id,{onDelete:"cascade"}),signInTimeIso:T4().notNull().default(QY),ipAddress:t0({length:45}).notNull(),userAgent:t0({length:1024}),successful:N8().notNull().default(!1)}),iW=D8("twoFactorMethod",["email","phone"]),gE=I4("passwordResetAttempts",{id:C1().primaryKey().defaultRandom(),userId:C1().notNull().references(()=>l4.id,{onDelete:"cascade"}),requestedIp:t0({length:45}).notNull(),requestedAtIso:T4().notNull().default(QY),succeededIp:t0({length:45}),succeededAtIso:T4(),verificationMethod:iW().notNull()}),pE=I4("banishedIps",{ip:t0({length:45}).primaryKey(),reason:t0({length:2048}).notNull(),banishedAtIso:T4().notNull().default(QY),banishedUntilIso:T4()});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class HX{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(mE.resolve(__dirname,"notify_update.sql"));let Y=[d0(l4),d0(zY),d0($X)];await this.sql`SELECT create_notify_triggers(${this.sql.array(Y)})`,await this.sql.listen("table_update",(Z)=>{let X=Z.split(","),G=X[0],_=X[1],$=`${G}("${_}")`;if(this.observers.has($))this.observers.get($).next($)})}constructor(Y=!1,Z={host:g1.POSTGRES_HOST,port:g1.POSTGRES_PORT,user:g1.POSTGRES_USER,password:g1.POSTGRES_PASSWORD,database:g1.POSTGRES_DATABASE}){this.options=Z,this.sql=N2(Z),this.drizzle=JY(this.sql,{schema:WX,logger:Y})}observe(Y,Z){if(!this.observers.has(Y))this.observers.set(Y,new _0);this.observers.get(Y).subscribe("SINGLETON",Z)}}var UY={100:'"Continue"',101:'"Switching Protocols"',102:'"Processing"',103:'"Early Hints"',200:'"OK"',201:'"Created"',202:'"Accepted"',203:'"Non-Authoritative Information"',204:'"No Content"',205:'"Reset Content"',206:'"Partial Content"',207:'"Multi-Status"',208:'"Already Reported"',226:'"IM Used"',300:'"Multiple Choices"',301:'"Moved Permanently"',302:'"Found"',303:'"See Other"',304:'"Not Modified"',305:'"Use Proxy"',306:'"Switch Proxy"',307:'"Temporary Redirect"',308:'"Permanent Redirect"',400:'"Bad Request"',401:'"Unauthorized"',402:'"Payment Required"',403:'"Forbidden"',404:'"Not Found"',405:'"Method Not Allowed"',406:'"Not Acceptable"',407:'"Proxy Authentication Required"',408:'"Request Timeout"',409:'"Conflict"',410:'"Gone"',411:'"Length Required"',412:'"Precondition Failed"',413:'"Payload Too Large"',414:'"URI Too Long"',415:'"Unsupported Media Type"',416:'"Range Not Satisfiable"',417:'"Expectation Failed"',418:`"I'm a teapot"`,421:'"Misdirected Request"',422:'"Unprocessable Entity"',423:'"Locked"',424:'"Failed Dependency"',425:'"Too Early"',426:'"Upgrade Required"',428:'"Precondition Required"',429:'"Too Many Requests"',431:'"Request Header Fields Too Large"',451:'"Unavailable For Legal Reasons"',500:'"Internal Server Error"',501:'"Not Implemented"',502:'"Bad Gateway"',503:'"Service Unavailable"',504:'"Gateway Timeout"',505:'"HTTP Version Not Supported"',506:'"Variant Also Negotiates"',507:'"Insufficient Storage"',508:'"Loop Detected"',510:'"Not Extended"',511:'"Network Authentication Required"'};function uE(Y){return Number.parseInt(Y,10)}var dE=U1(UY),cE=dE.keyof().pipe((Y)=>uE(Y)),nW=U1([cE,"string"]);var QX=new L7(process),{logger:D1}=QX;Object.assign(console,D1,{log:D1.info});D1.info("ready");var JX=sW(import.meta.dir,"..","app"),Of=new HX({logQuery(Y,Z){D1.info("\uD83D\uDCDD query",Y,Z)}});nE({hostname:"0.0.0.0",port:g1.FRONTEND_PORT??3333,...q6??void 0,async fetch(Y){try{let Z=new Date,X=new URL(Y.url);if(D1.info(Y.method,X.pathname),X.pathname==="/")return new Response(Bun.file(sW(JX,"index.html")));if(X.pathname==="/index.html")return Response.redirect("/");let G=oE(JX,X.pathname),_=iE(G);if(!_.startsWith(JX))throw[403,"Access Denied"];if(!await rW(_).exists())return Response.redirect("/");return new Response(rW(_))}catch(Z){let X=nW(Z);if(X instanceof U1.errors===!1){let[G,_]=X,W=`${UY[G]}. ${_}`;return D1.info(`\u274C ${G}: ${W}`),new Response(W,{status:G})}if(Z instanceof Error)D1.error(Z.message);else{let G=C6(Z);D1.error("frontend server threw",G)}return new Response(UY[500],{status:500})}}});function FY(){D1.info("\uD83D\uDEEC frontend server exiting"),process.exit(0)}process.on("SIGINT",()=>{D1.info("\u2757 received SIGINT; exiting gracefully"),FY()});process.on("SIGTERM",()=>{D1.info("\u2757 received SIGTERM; exiting gracefully"),FY()});process.on("exit",()=>{D1.info("\u2757 received exit; exiting gracefully"),FY()});QX.on("timeToStop",()=>{D1.info('\u2757 backend server received signal "timeToStop"; exiting gracefully'),FY()});var{version:rE}=await Bun.file(lE.resolve(import.meta.dir,"../package.json")).json();D1.info(`\uD83D\uDEEB frontend v${rE} running at http://localhost:${g1.FRONTEND_PORT}/`);QX.emit("alive");
|