tempest.games 0.2.41 → 0.2.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var SH=Object.create;var{getPrototypeOf:PH,defineProperty:zY,getOwnPropertyNames:vH}=Object;var xH=Object.prototype.hasOwnProperty;var pE=(Y,Z,X)=>{X=Y!=null?SH(PH(Y)):{};let _=Z||!Y||!Y.__esModule?zY(X,"default",{value:Y,enumerable:!0}):X;for(let G of vH(Y))if(!xH.call(_,G))zY(_,G,{get:()=>Y[G],enumerable:!0});return _};var mE=(Y,Z)=>()=>(Z||Y((Z={exports:{}}).exports,Z),Z.exports);var fH=(Y,Z)=>{for(var X in Z)zY(Y,X,{get:Z[X],enumerable:!0,configurable:!0,set:(_)=>Z[X]=()=>_})};var uE=(Y,Z)=>()=>(Y&&(Z=Y(Y=0)),Z);var dE=import.meta.require;import hE,{join as kE,normalize as bE,resolve as b3}from"path";var E2=(Y)=>Array.isArray(Y)?Y:[Y],EX=(Y,Z)=>{let X=[[],[]];for(let _ of Y)if(Z(_))X[0].push(_);else X[1].push(_);return X},g8=Array,s1=(Y,Z)=>Y.includes(Z),OX=(Y,Z=0)=>[...new Array(Y)].map((X,_)=>_+Z),Z0=(Y,Z,X)=>{if(Y===void 0)return Z===void 0?[]:Array.isArray(Z)?Z:[Z];if(X?.prepend)if(Array.isArray(Z))Y.unshift(...Z);else Y.unshift(Z);else if(Array.isArray(Z))Y.push(...Z);else Y.push(Z);return Y},t1=(Y,Z)=>{if(Z===void 0||Z===null)return Y??[];if(Y===void 0||Y===null)return E2(Z);return Y.concat(Z)},VX=(...Y)=>Y.reduce(t1,[]),u1=(Y,Z,X)=>{if(Y===void 0)return Array.isArray(Z)?Z:[Z];let _=X?.isEqual??((G,$)=>G===$);for(let G of E2(Z))if(!Y.some(($)=>_($,G)))Y.push(G);return Y},DX=(Y,Z)=>Y.reduce((X,_)=>{let G=_[Z];return X[G]=Z0(X[G],_),X},{}),a1=(Y,Z,X)=>Y.length===Z.length&&Y.every(X?.isEqual?(_,G)=>X.isEqual(_,Z[G]):(_,G)=>_===Z[G]);var Q1=(Y,Z)=>y0(Y)===Z,y0=(Y)=>{let Z=typeof Y;return Z==="object"?Y===null?"null":"object":Z==="function"?"object":Z},U1={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},LX={...U1,function:"a function"};class MX extends Error{}var _0=(Y)=>q2(Y,MX),q2=(Y,Z=Error)=>{throw new Z(Y)};class P4 extends Error{name="ParseError"}var R=(Y)=>q2(Y,P4),v1=(Y)=>` ${Y}`;var o=(Y,Z)=>{let X={},_=Array.isArray(Y),G=!1;for(let[$,W]of Object.entries(Y).entries()){let H=_?Z($,W[1]):Z(...W,$);G||=typeof H[0]==="number";let Q=Array.isArray(H[0])||H.length===0?H:[H];for(let[J,U]of Q)if(typeof J==="object")X[J.group]=Z0(X[J.group],U);else X[J]=U}return G?Object.values(X):X};var FY=Object.entries;var g0=(Y,Z)=>(Y in Z),s2=(Y,Z)=>(Z in Y);class EY{constructor(Y){Object.assign(this,Y)}}var AX=class{};class v4 extends AX{}var hH=(Y,Z)=>{let X={},_={},G;for(G in Y)if(G in Z)X[G]=Y[G];else _[G]=Y[G];return[X,_]};var wX=(Y,Z)=>hH(Y,Z)[1],d1=(Y)=>Object.keys(Y).length===0,j2=(Y)=>[...Object.entries(Y),...Object.getOwnPropertySymbols(Y).map((Z)=>[Z,Y[Z]])],RX=(Y,Z)=>Object.defineProperties(Y,Object.getOwnPropertyDescriptors(Z)),NX=(Y)=>{let Z=Object.keys(Y).sort(),X={};for(let _=0;_<Z.length;_++)X[Z[_]]=Y[Z[_]];return X};var M1=v1("represents an uninitialized value"),IX=(Y)=>Object.values(Y).filter((Z)=>{if(typeof Z==="number")return!0;return typeof Y[Z]!=="number"});var OY={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},VY=globalThis.File??Blob,DY={ArrayBuffer,Blob,File:VY,FormData,Headers,Request,Response,URL},kH={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},S2={...OY,...DY,...kH,String,Number,Boolean},x4=(Y)=>{let Z=Object.getPrototypeOf(Y);while(Z?.constructor&&(!g0(Z.constructor.name,S2)||!(Y instanceof S2[Z.constructor.name])))Z=Object.getPrototypeOf(Z);let X=Z?.constructor?.name;if(X===void 0||X==="Object")return;return X},f4=(Y)=>typeof Y==="object"&&Y!==null?x4(Y)??"object":y0(Y);var F0=Array.isArray,bH={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"},yH={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"},gH={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"},TX={...bH,...yH,...gH},h4=(Y)=>{let Z=Object(Y).name??null;return Z&&g0(Z,S2)&&S2[Z]===Y?Z:null};var LY=(Y,Z)=>{let X=Y.prototype;while(X!==null){if(X===Z.prototype)return!0;X=Object.getPrototypeOf(X)}return!1};var KX=(Y)=>BX(Y,new Map),BX=(Y,Z)=>{if(typeof Y!=="object"||Y===null)return Y;if(Z?.has(Y))return Z.get(Y);let X=h4(Y.constructor);if(X==="Date")return new Date(Y.getTime());if(X&&X!=="Array")return Y;let _=Array.isArray(Y)?Y.slice():Object.create(Object.getPrototypeOf(Y)),G=Object.getOwnPropertyDescriptors(Y);if(Z){Z.set(Y,_);for(let $ in G){let W=G[$];if("get"in W||"set"in W)continue;W.value=BX(W.value,Z)}}return Object.defineProperties(_,G),_};var pH=(Y)=>{let Z=M1;return()=>Z===M1?Z=Y():Z},O2=(Y)=>typeof Y==="function"&&Y.length===0;var CX=class extends Function{constructor(...Y){let Z=Y.slice(0,-1),X=Y.at(-1);try{super(...Z,X)}catch(_){return _0(`Encountered an unexpected error while compiling your definition:
3
+ var SH=Object.create;var{getPrototypeOf:PH,defineProperty:zY,getOwnPropertyNames:vH}=Object;var xH=Object.prototype.hasOwnProperty;var pE=(Y,Z,X)=>{X=Y!=null?SH(PH(Y)):{};let _=Z||!Y||!Y.__esModule?zY(X,"default",{value:Y,enumerable:!0}):X;for(let G of vH(Y))if(!xH.call(_,G))zY(_,G,{get:()=>Y[G],enumerable:!0});return _};var mE=(Y,Z)=>()=>(Z||Y((Z={exports:{}}).exports,Z),Z.exports);var fH=(Y,Z)=>{for(var X in Z)zY(Y,X,{get:Z[X],enumerable:!0,configurable:!0,set:(_)=>Z[X]=()=>_})};var uE=(Y,Z)=>()=>(Y&&(Z=Y(Y=0)),Z);var dE=import.meta.require;import hE,{join as kE,normalize as bE,resolve as b3}from"path";var E2=(Y)=>Array.isArray(Y)?Y:[Y],EX=(Y,Z)=>{let X=[[],[]];for(let _ of Y)if(Z(_))X[0].push(_);else X[1].push(_);return X},g8=Array,s1=(Y,Z)=>Y.includes(Z),OX=(Y,Z=0)=>[...new Array(Y)].map((X,_)=>_+Z),Z0=(Y,Z,X)=>{if(Y===void 0)return Z===void 0?[]:Array.isArray(Z)?Z:[Z];if(X?.prepend)if(Array.isArray(Z))Y.unshift(...Z);else Y.unshift(Z);else if(Array.isArray(Z))Y.push(...Z);else Y.push(Z);return Y},t1=(Y,Z)=>{if(Z===void 0||Z===null)return Y??[];if(Y===void 0||Y===null)return E2(Z);return Y.concat(Z)},VX=(...Y)=>Y.reduce(t1,[]),d1=(Y,Z,X)=>{if(Y===void 0)return Array.isArray(Z)?Z:[Z];let _=X?.isEqual??((G,$)=>G===$);for(let G of E2(Z))if(!Y.some(($)=>_($,G)))Y.push(G);return Y},DX=(Y,Z)=>Y.reduce((X,_)=>{let G=_[Z];return X[G]=Z0(X[G],_),X},{}),a1=(Y,Z,X)=>Y.length===Z.length&&Y.every(X?.isEqual?(_,G)=>X.isEqual(_,Z[G]):(_,G)=>_===Z[G]);var Q1=(Y,Z)=>y0(Y)===Z,y0=(Y)=>{let Z=typeof Y;return Z==="object"?Y===null?"null":"object":Z==="function"?"object":Z},U1={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},LX={...U1,function:"a function"};class MX extends Error{}var _0=(Y)=>q2(Y,MX),q2=(Y,Z=Error)=>{throw new Z(Y)};class P4 extends Error{name="ParseError"}var R=(Y)=>q2(Y,P4),v1=(Y)=>` ${Y}`;var o=(Y,Z)=>{let X={},_=Array.isArray(Y),G=!1;for(let[$,W]of Object.entries(Y).entries()){let H=_?Z($,W[1]):Z(...W,$);G||=typeof H[0]==="number";let Q=Array.isArray(H[0])||H.length===0?H:[H];for(let[J,U]of Q)if(typeof J==="object")X[J.group]=Z0(X[J.group],U);else X[J]=U}return G?Object.values(X):X};var FY=Object.entries;var g0=(Y,Z)=>(Y in Z),s2=(Y,Z)=>(Z in Y);class EY{constructor(Y){Object.assign(this,Y)}}var AX=class{};class v4 extends AX{}var hH=(Y,Z)=>{let X={},_={},G;for(G in Y)if(G in Z)X[G]=Y[G];else _[G]=Y[G];return[X,_]};var wX=(Y,Z)=>hH(Y,Z)[1],c1=(Y)=>Object.keys(Y).length===0,j2=(Y)=>[...Object.entries(Y),...Object.getOwnPropertySymbols(Y).map((Z)=>[Z,Y[Z]])],RX=(Y,Z)=>Object.defineProperties(Y,Object.getOwnPropertyDescriptors(Z)),NX=(Y)=>{let Z=Object.keys(Y).sort(),X={};for(let _=0;_<Z.length;_++)X[Z[_]]=Y[Z[_]];return X};var M1=v1("represents an uninitialized value"),IX=(Y)=>Object.values(Y).filter((Z)=>{if(typeof Z==="number")return!0;return typeof Y[Z]!=="number"});var OY={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},VY=globalThis.File??Blob,DY={ArrayBuffer,Blob,File:VY,FormData,Headers,Request,Response,URL},kH={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},S2={...OY,...DY,...kH,String,Number,Boolean},x4=(Y)=>{let Z=Object.getPrototypeOf(Y);while(Z?.constructor&&(!g0(Z.constructor.name,S2)||!(Y instanceof S2[Z.constructor.name])))Z=Object.getPrototypeOf(Z);let X=Z?.constructor?.name;if(X===void 0||X==="Object")return;return X},f4=(Y)=>typeof Y==="object"&&Y!==null?x4(Y)??"object":y0(Y);var F0=Array.isArray,bH={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"},yH={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"},gH={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"},TX={...bH,...yH,...gH},h4=(Y)=>{let Z=Object(Y).name??null;return Z&&g0(Z,S2)&&S2[Z]===Y?Z:null};var LY=(Y,Z)=>{let X=Y.prototype;while(X!==null){if(X===Z.prototype)return!0;X=Object.getPrototypeOf(X)}return!1};var KX=(Y)=>BX(Y,new Map),BX=(Y,Z)=>{if(typeof Y!=="object"||Y===null)return Y;if(Z?.has(Y))return Z.get(Y);let X=h4(Y.constructor);if(X==="Date")return new Date(Y.getTime());if(X&&X!=="Array")return Y;let _=Array.isArray(Y)?Y.slice():Object.create(Object.getPrototypeOf(Y)),G=Object.getOwnPropertyDescriptors(Y);if(Z){Z.set(Y,_);for(let $ in G){let W=G[$];if("get"in W||"set"in W)continue;W.value=BX(W.value,Z)}}return Object.defineProperties(_,G),_};var pH=(Y)=>{let Z=M1;return()=>Z===M1?Z=Y():Z},O2=(Y)=>typeof Y==="function"&&Y.length===0;var CX=class extends Function{constructor(...Y){let Z=Y.slice(0,-1),X=Y.at(-1);try{super(...Z,X)}catch(_){return _0(`Encountered an unexpected error while compiling your definition:
4
4
  Message: ${_}
5
5
  Source: (${Y.slice(0,-1)}) => {
6
6
  ${Y.at(-1)}
@@ -19,46 +19,46 @@ ${X}}`:`{${$.join(", ")}}`}if(Y instanceof Date)return v2(Y);if("expression"in Y
19
19
  `+Y.map((Z)=>` \u2022 ${EJ(Z)}`).join(`
20
20
  `));Object.defineProperty(this,"arkErrors",{value:Y,enumerable:!1})}}var EJ=(Y)=>Y.toString().split(`
21
21
  `).join(`
22
- `);class f1{path=[];errors=new z1(this);root;config;queuedMorphs=[];branches=[];seen={};constructor(Y,Z){this.root=Y,this.config=Z}get data(){let Y=this.root;for(let Z of this.path)Y=Y?.[Z];return Y}get propString(){return Y2(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 m4(...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 M2(Y,this);if(this.currentBranch)this.currentBranch.error=Z;else this.errors.add(Z);return Z}applyQueuedMorphs(){while(this.queuedMorphs.length){let Y=this.queuedMorphs;this.queuedMorphs=[];for(let{path:Z,morphs:X}of Y){if(this.errors.affectsPath(Z))continue;this.applyMorphsAtPath(Z,X)}}}applyMorphsAtPath(Y,Z){let X=Y.at(-1),_;if(X!==void 0){_=this.root;for(let G=0;G<Y.length-1;G++)_=_[Y[G]]}this.path=[...Y];for(let G of Z){let $=D0(G),W=G(_===void 0?this.root:_[X],this);if(W instanceof M2){this.errors.add(W);break}if(W instanceof z1){if(!$)this.errors.merge(W);break}if(_===void 0)this.root=W;else _[X]=W;this.applyQueuedMorphs()}}}var F1=(Y,Z,X)=>{if(!X)return Z();X.path.push(Y);let _=Z();return X.path.pop(),_};class l4 extends x1{attachments;$;onFail;includesTransform;includesContextualPredicate;isCyclic;allowsRequiresContext;rootApplyStrategy;contextFreeMorph;rootApply;referencesById;shallowReferences;flatRefs;flatMorphs;allows;get shallowMorphs(){return[]}constructor(Y,Z){super((_,G,$=this.onFail)=>{if(G)return this.traverseApply(_,G),G.hasError()?G.errors:G.data;return this.rootApply(_,$)},{attach:Y});this.attachments=Y,this.$=Z,this.onFail=this.meta.onFail??this.$.resolvedConfig.onFail,this.includesTransform=this.hasKind("morph")||this.hasKind("structure")&&this.structuralMorph!==void 0,this.includesContextualPredicate=this.hasKind("predicate")&&this.inner.predicate.length!==1,this.isCyclic=this.kind==="alias",this.referencesById={[this.id]:this},this.shallowReferences=this.hasKind("structure")?[this,...this.children]:this.children.reduce((_,G)=>LJ(_,G.shallowReferences),[this]);let X=this.isStructural();this.flatRefs=[],this.flatMorphs=[];for(let _=0;_<this.children.length;_++){if(this.includesTransform||=this.children[_].includesTransform,this.includesContextualPredicate||=this.children[_].includesContextualPredicate,this.isCyclic||=this.children[_].isCyclic,!X){let G=this.children[_].flatRefs;for(let $=0;$<G.length;$++){let W=G[$];if(!this.flatRefs.some((H)=>aX(H,W))){this.flatRefs.push(W);for(let H of W.node.branches)if(H.hasKind("morph")||H.hasKind("intersection")&&H.structure?.structuralMorph!==void 0)this.flatMorphs.push({path:W.path,propString:W.propString,node:H})}}}Object.assign(this.referencesById,this.children[_].referencesById)}this.flatRefs.sort((_,G)=>_.path.length>G.path.length?1:_.path.length<G.path.length?-1:_.propString>G.propString?1:_.propString<G.propString?-1:_.node.expression<G.node.expression?-1:1),this.allowsRequiresContext=this.includesContextualPredicate||this.isCyclic,this.rootApplyStrategy=!this.allowsRequiresContext&&this.flatMorphs.length===0?this.shallowMorphs.length===0?"allows":this.shallowMorphs.every((_)=>_.length===1||_.name==="$arkStructuralMorph")?this.hasKind("union")?this.branches.some((_)=>_.shallowMorphs.length>1)?"contextual":"branchedOptimistic":this.shallowMorphs.length>1?"contextual":"optimistic":"contextual":"contextual",this.rootApply=this.createRootApply(),this.allows=this.allowsRequiresContext?(_)=>this.traverseAllows(_,new f1(_,this.$.resolvedConfig)):(_)=>this.traverseAllows(_)}createRootApply(){switch(this.rootApplyStrategy){case"allows":return(Z,X)=>{if(this.allows(Z))return Z;let _=new f1(Z,this.$.resolvedConfig);return this.traverseApply(Z,_),_.finalize(X)};case"contextual":return(Z,X)=>{let _=new f1(Z,this.$.resolvedConfig);return this.traverseApply(Z,_),_.finalize(X)};case"optimistic":this.contextFreeMorph=this.shallowMorphs[0];let Y=this.$.resolvedConfig.clone;return(Z,X)=>{if(this.allows(Z))return this.contextFreeMorph(Y&&(typeof Z==="object"&&Z!==null||typeof Z==="function")?Y(Z):Z);let _=new f1(Z,this.$.resolvedConfig);return this.traverseApply(Z,_),_.finalize(X)};case"branchedOptimistic":return this.createBranchedOptimisticRootApply();default:return this.rootApplyStrategy,_0(`Unexpected rootApplyStrategy ${this.rootApplyStrategy}`)}}compiledMeta=DJ(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=Z4(this.kind);precompilation;assert=(Y,Z)=>this(Y,Z,(X)=>X.throw());traverse(Y,Z){return this(Y,Z,null)}get in(){return this.cacheGetter("in",this.getIo("in"))}get out(){return this.cacheGetter("out",this.getIo("out"))}getIo(Y){if(!this.includesTransform)return this;let Z={};for(let[X,_]of this.innerEntries){let G=this.impl.keys[X];if(G.reduceIo)G.reduceIo(Y,Z,_);else if(G.child){let $=_;Z[X]=F0($)?$.map((W)=>W[Y]):$[Y]}else Z[X]=_}return this.$.node(this.kind,Z)}toJSON(){return this.json}toString(){return`Type<${this.expression}>`}equals(Y){let Z=D0(Y)?Y:this.$.parseDefinition(Y);return this.innerHash===Z.innerHash}ifEquals(Y){return this.equals(Y)?this:void 0}hasKind(Y){return this.kind===Y}assertHasKind(Y){if(this.kind!==Y)q2(`${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))q2(`${this.kind} node was not one of asserted kinds ${Y}`);return this}isBasis(){return s1(oX,this.kind)}isConstraint(){return s1(c8,this.kind)}isStructural(){return s1(a2,this.kind)}isRefinement(){return s1(KY,this.kind)}isRoot(){return s1(e2,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=c4.normalize(Y);return this._select(Z)}_select(Y){let Z=c4.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 c4.applyMethod[Y.method??"filter"](Z,this,Y)}transform(Y,Z){return this._transform(Y,this._createTransformContext(Z))}_createTransformContext(Y){return{root:this,selected:void 0,seen:{},path:[],parseOptions:{prereduced:Y?.prereduced??!1},undeclaredKeyHandling:void 0,...Y}}_transform(Y,Z){let X=Z.bindScope??this.$;if(Z.seen[this.id])return this.$.lazilyResolve(Z.seen[this.id]);if(Z.shouldTransform?.(this,Z)===!1)return this;let _;if(Z.seen[this.id]=()=>_,this.hasKind("structure")&&this.undeclared!==Z.undeclaredKeyHandling)Z={...Z,undeclaredKeyHandling:this.undeclared};let G=o(this.inner,(J,U)=>{if(!this.impl.keys[J].child)return[J,U];let E=U;if(!F0(E)){let L=E._transform(Y,Z);return L?[J,L]:[]}if(E.length===0)return[J,U];let V=E.flatMap((L)=>{return L._transform(Y,Z)??[]});return V.length?[J,V]:[]});delete Z.seen[this.id];let $=Object.assign(G,{meta:this.meta}),W=Z.selected&&!Z.selected.includes(this)?$:Y(this.kind,$,Z);if(W===null)return null;if(D0(W))return _=W;let H=Object.keys(W);if((H.length===0||H.length===1&&H[0]==="meta")&&!d1(this.inner))return null;if((this.kind==="required"||this.kind==="optional"||this.kind==="index")&&!("value"in W))return Z.undeclaredKeyHandling?{...W,value:N.intrinsic.unknown}:null;if(this.kind==="morph")W.in??=N.intrinsic.unknown;return _=X.node(this.kind,W,Z.parseOptions)}configureReferences(Y,Z="references"){let X=c4.normalize(Z),_=typeof Y==="string"?(H,Q)=>({...Q,meta:{...Q.meta,description:Y}}):typeof Y==="function"?(H,Q)=>({...Q,meta:Y(Q.meta)}):(H,Q)=>({...Q,meta:{...Q.meta,...Y}});if(X.boundary==="self")return this.$.node(this.kind,_(this.kind,{...this.inner,meta:this.meta}));let G=this._select(X),$=G&&E2(G),W=X.boundary==="child"?(H,Q)=>Q.root.children.includes(H):X.boundary==="shallow"?(H)=>H.kind!=="structure":()=>!0;return this.$.finalize(this.transform(_,{shouldTransform:W,selected:$}))}}var c4={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)q2(tX(Z,X));return Y},find:(Y)=>Y[0],assertFind:(Y,Z,X)=>{if(Y.length===0)q2(tX(Z,X));return Y[0]}},normalize:(Y)=>typeof Y==="function"?{boundary:"references",method:"filter",where:Y}:typeof Y==="string"?g0(Y,c4.applyBoundary)?{method:"filter",boundary:Y}:{boundary:"references",method:"filter",kind:Y}:{boundary:"references",method:"filter",...Y}},tX=(Y,Z)=>`${Y} had no references matching ${i(Z)}.`,OJ=(Y)=>Y2(Y,{stringifyNonKey:(Z)=>Z.expression}),VJ=/"(\$ark\.[^"]+)"/g,DJ=(Y)=>JSON.stringify(Y).replaceAll(VJ,"$1"),h1=(Y,Z)=>({path:Y,node:Z,propString:OJ(Y)}),aX=(Y,Z)=>Y.propString===Z.propString&&Y.node.equals(Z.node),qY=(Y,Z)=>u1(Y,Z,{isEqual:aX}),LJ=(Y,Z)=>u1(Y,Z,{isEqual:(X,_)=>X.equals(_)});class P extends Array{static init(Y,Z,X,_){return new P({kind:Y,l:Z,r:X,path:_?.path??[],optional:_?.optional??!1})}add(Y,Z,X,_){return this.push({kind:Y,l:Z,r:X,path:_?.path??[],optional:_?.optional??!1}),this}get summary(){return this.describeReasons()}describeReasons(){if(this.length===1){let{path:Y,l:Z,r:X}=this[0],_=Y2(Y);return SY(`Intersection${_&&` at ${_}`} of ${eX(Z,X)}`)}return`The following intersections result in unsatisfiable types:
22
+ `);class f1{path=[];errors=new z1(this);root;config;queuedMorphs=[];branches=[];seen={};constructor(Y,Z){this.root=Y,this.config=Z}get data(){let Y=this.root;for(let Z of this.path)Y=Y?.[Z];return Y}get propString(){return Y2(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 m4(...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 M2(Y,this);if(this.currentBranch)this.currentBranch.error=Z;else this.errors.add(Z);return Z}applyQueuedMorphs(){while(this.queuedMorphs.length){let Y=this.queuedMorphs;this.queuedMorphs=[];for(let{path:Z,morphs:X}of Y){if(this.errors.affectsPath(Z))continue;this.applyMorphsAtPath(Z,X)}}}applyMorphsAtPath(Y,Z){let X=Y.at(-1),_;if(X!==void 0){_=this.root;for(let G=0;G<Y.length-1;G++)_=_[Y[G]]}this.path=[...Y];for(let G of Z){let $=D0(G),W=G(_===void 0?this.root:_[X],this);if(W instanceof M2){this.errors.add(W);break}if(W instanceof z1){if(!$)this.errors.merge(W);break}if(_===void 0)this.root=W;else _[X]=W;this.applyQueuedMorphs()}}}var F1=(Y,Z,X)=>{if(!X)return Z();X.path.push(Y);let _=Z();return X.path.pop(),_};class l4 extends x1{attachments;$;onFail;includesTransform;includesContextualPredicate;isCyclic;allowsRequiresContext;rootApplyStrategy;contextFreeMorph;rootApply;referencesById;shallowReferences;flatRefs;flatMorphs;allows;get shallowMorphs(){return[]}constructor(Y,Z){super((_,G,$=this.onFail)=>{if(G)return this.traverseApply(_,G),G.hasError()?G.errors:G.data;return this.rootApply(_,$)},{attach:Y});this.attachments=Y,this.$=Z,this.onFail=this.meta.onFail??this.$.resolvedConfig.onFail,this.includesTransform=this.hasKind("morph")||this.hasKind("structure")&&this.structuralMorph!==void 0,this.includesContextualPredicate=this.hasKind("predicate")&&this.inner.predicate.length!==1,this.isCyclic=this.kind==="alias",this.referencesById={[this.id]:this},this.shallowReferences=this.hasKind("structure")?[this,...this.children]:this.children.reduce((_,G)=>LJ(_,G.shallowReferences),[this]);let X=this.isStructural();this.flatRefs=[],this.flatMorphs=[];for(let _=0;_<this.children.length;_++){if(this.includesTransform||=this.children[_].includesTransform,this.includesContextualPredicate||=this.children[_].includesContextualPredicate,this.isCyclic||=this.children[_].isCyclic,!X){let G=this.children[_].flatRefs;for(let $=0;$<G.length;$++){let W=G[$];if(!this.flatRefs.some((H)=>aX(H,W))){this.flatRefs.push(W);for(let H of W.node.branches)if(H.hasKind("morph")||H.hasKind("intersection")&&H.structure?.structuralMorph!==void 0)this.flatMorphs.push({path:W.path,propString:W.propString,node:H})}}}Object.assign(this.referencesById,this.children[_].referencesById)}this.flatRefs.sort((_,G)=>_.path.length>G.path.length?1:_.path.length<G.path.length?-1:_.propString>G.propString?1:_.propString<G.propString?-1:_.node.expression<G.node.expression?-1:1),this.allowsRequiresContext=this.includesContextualPredicate||this.isCyclic,this.rootApplyStrategy=!this.allowsRequiresContext&&this.flatMorphs.length===0?this.shallowMorphs.length===0?"allows":this.shallowMorphs.every((_)=>_.length===1||_.name==="$arkStructuralMorph")?this.hasKind("union")?this.branches.some((_)=>_.shallowMorphs.length>1)?"contextual":"branchedOptimistic":this.shallowMorphs.length>1?"contextual":"optimistic":"contextual":"contextual",this.rootApply=this.createRootApply(),this.allows=this.allowsRequiresContext?(_)=>this.traverseAllows(_,new f1(_,this.$.resolvedConfig)):(_)=>this.traverseAllows(_)}createRootApply(){switch(this.rootApplyStrategy){case"allows":return(Z,X)=>{if(this.allows(Z))return Z;let _=new f1(Z,this.$.resolvedConfig);return this.traverseApply(Z,_),_.finalize(X)};case"contextual":return(Z,X)=>{let _=new f1(Z,this.$.resolvedConfig);return this.traverseApply(Z,_),_.finalize(X)};case"optimistic":this.contextFreeMorph=this.shallowMorphs[0];let Y=this.$.resolvedConfig.clone;return(Z,X)=>{if(this.allows(Z))return this.contextFreeMorph(Y&&(typeof Z==="object"&&Z!==null||typeof Z==="function")?Y(Z):Z);let _=new f1(Z,this.$.resolvedConfig);return this.traverseApply(Z,_),_.finalize(X)};case"branchedOptimistic":return this.createBranchedOptimisticRootApply();default:return this.rootApplyStrategy,_0(`Unexpected rootApplyStrategy ${this.rootApplyStrategy}`)}}compiledMeta=DJ(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=Z4(this.kind);precompilation;assert=(Y,Z)=>this(Y,Z,(X)=>X.throw());traverse(Y,Z){return this(Y,Z,null)}get in(){return this.cacheGetter("in",this.getIo("in"))}get out(){return this.cacheGetter("out",this.getIo("out"))}getIo(Y){if(!this.includesTransform)return this;let Z={};for(let[X,_]of this.innerEntries){let G=this.impl.keys[X];if(G.reduceIo)G.reduceIo(Y,Z,_);else if(G.child){let $=_;Z[X]=F0($)?$.map((W)=>W[Y]):$[Y]}else Z[X]=_}return this.$.node(this.kind,Z)}toJSON(){return this.json}toString(){return`Type<${this.expression}>`}equals(Y){let Z=D0(Y)?Y:this.$.parseDefinition(Y);return this.innerHash===Z.innerHash}ifEquals(Y){return this.equals(Y)?this:void 0}hasKind(Y){return this.kind===Y}assertHasKind(Y){if(this.kind!==Y)q2(`${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))q2(`${this.kind} node was not one of asserted kinds ${Y}`);return this}isBasis(){return s1(oX,this.kind)}isConstraint(){return s1(c8,this.kind)}isStructural(){return s1(a2,this.kind)}isRefinement(){return s1(KY,this.kind)}isRoot(){return s1(e2,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=c4.normalize(Y);return this._select(Z)}_select(Y){let Z=c4.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 c4.applyMethod[Y.method??"filter"](Z,this,Y)}transform(Y,Z){return this._transform(Y,this._createTransformContext(Z))}_createTransformContext(Y){return{root:this,selected:void 0,seen:{},path:[],parseOptions:{prereduced:Y?.prereduced??!1},undeclaredKeyHandling:void 0,...Y}}_transform(Y,Z){let X=Z.bindScope??this.$;if(Z.seen[this.id])return this.$.lazilyResolve(Z.seen[this.id]);if(Z.shouldTransform?.(this,Z)===!1)return this;let _;if(Z.seen[this.id]=()=>_,this.hasKind("structure")&&this.undeclared!==Z.undeclaredKeyHandling)Z={...Z,undeclaredKeyHandling:this.undeclared};let G=o(this.inner,(J,U)=>{if(!this.impl.keys[J].child)return[J,U];let E=U;if(!F0(E)){let L=E._transform(Y,Z);return L?[J,L]:[]}if(E.length===0)return[J,U];let V=E.flatMap((L)=>{return L._transform(Y,Z)??[]});return V.length?[J,V]:[]});delete Z.seen[this.id];let $=Object.assign(G,{meta:this.meta}),W=Z.selected&&!Z.selected.includes(this)?$:Y(this.kind,$,Z);if(W===null)return null;if(D0(W))return _=W;let H=Object.keys(W);if((H.length===0||H.length===1&&H[0]==="meta")&&!c1(this.inner))return null;if((this.kind==="required"||this.kind==="optional"||this.kind==="index")&&!("value"in W))return Z.undeclaredKeyHandling?{...W,value:N.intrinsic.unknown}:null;if(this.kind==="morph")W.in??=N.intrinsic.unknown;return _=X.node(this.kind,W,Z.parseOptions)}configureReferences(Y,Z="references"){let X=c4.normalize(Z),_=typeof Y==="string"?(H,Q)=>({...Q,meta:{...Q.meta,description:Y}}):typeof Y==="function"?(H,Q)=>({...Q,meta:Y(Q.meta)}):(H,Q)=>({...Q,meta:{...Q.meta,...Y}});if(X.boundary==="self")return this.$.node(this.kind,_(this.kind,{...this.inner,meta:this.meta}));let G=this._select(X),$=G&&E2(G),W=X.boundary==="child"?(H,Q)=>Q.root.children.includes(H):X.boundary==="shallow"?(H)=>H.kind!=="structure":()=>!0;return this.$.finalize(this.transform(_,{shouldTransform:W,selected:$}))}}var c4={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)q2(tX(Z,X));return Y},find:(Y)=>Y[0],assertFind:(Y,Z,X)=>{if(Y.length===0)q2(tX(Z,X));return Y[0]}},normalize:(Y)=>typeof Y==="function"?{boundary:"references",method:"filter",where:Y}:typeof Y==="string"?g0(Y,c4.applyBoundary)?{method:"filter",boundary:Y}:{boundary:"references",method:"filter",kind:Y}:{boundary:"references",method:"filter",...Y}},tX=(Y,Z)=>`${Y} had no references matching ${i(Z)}.`,OJ=(Y)=>Y2(Y,{stringifyNonKey:(Z)=>Z.expression}),VJ=/"(\$ark\.[^"]+)"/g,DJ=(Y)=>JSON.stringify(Y).replaceAll(VJ,"$1"),h1=(Y,Z)=>({path:Y,node:Z,propString:OJ(Y)}),aX=(Y,Z)=>Y.propString===Z.propString&&Y.node.equals(Z.node),qY=(Y,Z)=>d1(Y,Z,{isEqual:aX}),LJ=(Y,Z)=>d1(Y,Z,{isEqual:(X,_)=>X.equals(_)});class P extends Array{static init(Y,Z,X,_){return new P({kind:Y,l:Z,r:X,path:_?.path??[],optional:_?.optional??!1})}add(Y,Z,X,_){return this.push({kind:Y,l:Z,r:X,path:_?.path??[],optional:_?.optional??!1}),this}get summary(){return this.describeReasons()}describeReasons(){if(this.length===1){let{path:Y,l:Z,r:X}=this[0],_=Y2(Y);return SY(`Intersection${_&&` at ${_}`} of ${eX(Z,X)}`)}return`The following intersections result in unsatisfiable types:
23
23
  \u2022 ${this.map(({path:Y,l:Z,r:X})=>`${Y}: ${eX(Z,X)}`).join(`
24
- \u2022 `)}`}throw(){return R(this.describeReasons())}invert(){let Y=this.map((Z)=>({...Z,l:Z.r,r:Z.l}));if(!(Y instanceof P))return new P(...Y);return Y}withPrefixKey(Y,Z){return this.map((X)=>({...X,path:[Y,...X.path],optional:X.optional||Z==="optional"}))}toNeverIfDisjoint(){return N.intrinsic.never}}var eX=(Y,Z)=>`${jY(Y)} and ${jY(Z)}`,jY=(Y)=>D0(Y)?Y.expression:F0(Y)?Y.map(jY).join(" | ")||"never":String(Y),SY=(Y)=>`${Y} results in an unsatisfiable type`;var X4={},E1=(Y,Z,X)=>L0(Y,Z,{$:X,invert:!1,pipe:!1}),o4=(Y,Z,X)=>L0(Y,Z,{$:X,invert:!1,pipe:!0}),L0=(Y,Z,X)=>{let _=X.pipe?"|>":"&",G=`${Y.hash}${_}${Z.hash}`;if(X4[G]!==void 0)return X4[G];if(!X.pipe){let H=`${Z.hash}${_}${Y.hash}`;if(X4[H]!==void 0){let Q=X4[H],J=Q instanceof P?Q.invert():Q;return X4[G]=J,J}}let $=!X.pipe||!Y.includesTransform&&!Z.includesTransform;if($&&Y.equals(Z))return Y;let W=$?PY(Y,Z,X):Y.hasKindIn(...e2)?MJ(Y,Z,X):PY(Y,Z,X);if(D0(W)){if(Y.equals(W))W=Y;else if(Z.equals(W))W=Z}return X4[G]=W,W},PY=(Y,Z,X)=>{let _=Y.precedence<Z.precedence?Y.kind:Z.kind,G=Y.impl.intersections[Z.kind]??Z.impl.intersections[Y.kind];if(G===void 0)return null;else if(_===Y.kind)return G(Y,Z,X);else{let $=G(Z,Y,{...X,invert:!X.invert});if($ instanceof P)$=$.invert();return $}},MJ=(Y,Z,X)=>Y.includesTransform||Z.includesTransform?X.invert?Y_(Z,Y,X):Y_(Y,Z,X):PY(Y,Z,X),Y_=(Y,Z,X)=>Y.distribute((_)=>AJ(_,Z,X),(_)=>{let G=_.filter(D0);if(G.length===0)return P.init("union",Y.branches,Z.branches);if(G.length<Y.branches.length||!Y.branches.every((H,Q)=>H.in.equals(G[Q].in)))return X.$.parseSchema(G);let $;if(G.length===1){let H=G[0];if(!$)return H;return X.$.node("morph",{...H.inner,in:H.in.configure($,"self")})}let W={branches:G};if($)W.meta=$;return X.$.parseSchema(W)}),AJ=(Y,Z,X)=>{if(Y.hasKind("morph")){let G=[...Y.morphs];if(Y.lastMorphIfNode){let $=L0(Y.lastMorphIfNode,Z,X);if($ instanceof P)return $;G[G.length-1]=$}else G.push(Z);return X.$.node("morph",{morphs:G,in:Y.inner.in})}if(Z.hasKind("morph")){let G=L0(Y,Z.in,X);if(G instanceof P)return G;return X.$.node("morph",{morphs:[Z],in:G})}return X.$.node("morph",{morphs:[Z],in:Y})};class I1 extends l4{constructor(Y,Z){super(Y,Z);Object.defineProperty(this,X1,{value:"constraint",enumerable:!1})}impliedSiblings;intersect(Y){return E1(this,Y,this.$)}}class X2 extends I1{traverseApply=(Y,Z)=>{if(!this.traverseAllows(Y,Z))Z.errorFromNodeContext(this.errorContext)};compile(Y){if(Y.traversalKind==="Allows")Y.return(this.compiledCondition);else Y.if(this.compiledNegation,()=>Y.line(`${Y.ctx}.errorFromNodeContext(${this.compiledErrorContext})`))}get errorContext(){return{code:this.kind,description:this.description,meta:this.meta,...this.inner}}get compiledErrorContext(){return L2(this.errorContext)}}var t0=(Y)=>(Z,X)=>{if(F0(Z)){if(Z.length===0)return;let G=Z.map(($)=>X.$.node(Y,$));if(Y==="predicate")return G;return G.sort(($,W)=>$.hash<W.hash?-1:1)}let _=X.$.node(Y,Z);return _.hasOpenIntersection()?[_]:_},_4=(Y)=>{let Z=Y.r.shift();if(!Z){let _=Y.l.length===0&&Y.kind==="structure"?N.intrinsic.unknown.internal:Y.ctx.$.node(Y.kind,Object.assign(Y.baseInner,wJ(Y.l)),{prereduced:!0});for(let G of Y.roots){if(_ instanceof P)return _;_=L0(G,_,Y.ctx)}return _}let X=!1;for(let _=0;_<Y.l.length;_++){let G=L0(Y.l[_],Z,Y.ctx);if(G===null)continue;if(G instanceof P)return G;if(!X){if(G.isRoot())return Y.roots.push(G),Y.l.splice(_),_4(Y);Y.l[_]=G,X=!0}else if(!Y.l.includes(G))return _0(`Unexpectedly encountered multiple distinct intersection results for refinement ${G}`)}if(!X)Y.l.push(Z);if(Y.kind==="intersection"){if(Z.impliedSiblings)for(let _ of Z.impliedSiblings)u1(Y.r,_)}return _4(Y)},G4=(Y)=>{return Object.entries(Y).flatMap(([X,_])=>(X in l8)?_:[]).sort((X,_)=>X.precedence<_.precedence?-1:X.precedence>_.precedence?1:X.kind==="predicate"&&_.kind==="predicate"?0:X.hash<_.hash?-1:1)},wJ=(Y)=>{let Z={};for(let X of Y)if(X.hasOpenIntersection())Z[X.kind]=Z0(Z[X.kind],X);else{if(Z[X.kind])return _0(`Unexpected intersection of closed refinements of kind ${X.kind}`);Z[X.kind]=X}return Z},Z_=(...Y)=>R(X_(...Y)),X_=(Y,Z,X)=>{let _=X.hasKind("morph")?"a morph":X.isUnknown()?"unknown":X.exclude(Z).defaultShortDescription;return`${PX(Y)} operand must be ${Z.description} (was ${_})`};var __=(Y,Z,X)=>new A2(Y,Z,X,X,null);class i8 extends x1{}class A2 extends x1{[X1]="generic";paramDefs;bodyDef;$;arg$;baseInstantiation;hkt;description;constructor(Y,Z,X,_,G){super((...$)=>{let W=o(this.names,(H,Q)=>{let J=this.arg$.parse($[H]);if(!J.extends(this.constraints[H]))R(RJ(Q,this.constraints[H].expression,J.expression));return[Q,J]});if(this.defIsLazy()){let H=this.bodyDef(W);return this.$.parse(H)}return this.$.parse(Z,{args:W})});this.paramDefs=Y,this.bodyDef=Z,this.$=X,this.arg$=_,this.hkt=G,this.description=G?new G().description??`a generic type for ${G.constructor.name}`:"a generic type",this.baseInstantiation=this(...this.constraints)}defIsLazy(){return this.bodyDef instanceof i8}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:uX(this.bodyDef)})}get params(){return this.cacheGetter("params",this.paramDefs.map((Y)=>typeof Y==="string"?[Y,N.intrinsic.unknown]:[Y[0],this.$.parse(Y[1])]))}get names(){return this.cacheGetter("names",this.params.map((Y)=>Y[0]))}get constraints(){return this.cacheGetter("constraints",this.params.map((Y)=>Y[1]))}get internal(){return this}get referencesById(){return this.baseInstantiation.internal.referencesById}get references(){return this.baseInstantiation.internal.references}}var RJ=(Y,Z,X)=>`${Y} must be assignable to ${Z} (was ${X})`;var NJ=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 G_ extends I1{serializedPredicate=B0(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=L2(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 vY={implementation:NJ,Node:G_};var IJ=r({kind:"divisor",collapsibleKey:"rule",keys:{rule:{parse:(Y)=>Number.isInteger(Y)?Y:R(TJ(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/KJ(Y.rule,Z.rule))})},obviatesBasisDescription:!0});class $_ extends X2{traverseAllows=(Y)=>Y%this.rule===0;compiledCondition=`data % ${this.rule} === 0`;compiledNegation=`data % ${this.rule} !== 0`;impliedBasis=N.intrinsic.number.internal;expression=`% ${this.rule}`;reduceJsonSchema(Y){if(Y.type="integer",this.rule===1)return Y;return Y.multipleOf=this.rule,Y}}var xY={implementation:IJ,Node:$_};var TJ=(Y)=>`divisor must be an integer (was ${Y})`,KJ=(Y,Z)=>{let X,_=Y,G=Z;while(G!==0)X=G,G=_%G,_=X;return _};class A1 extends X2{boundOperandKind=jJ[this.kind];compiledActual=this.boundOperandKind==="value"?"data":this.boundOperandKind==="length"?"data.length":"data.valueOf()";comparator=SJ(this.kind,this.exclusive);numericLimit=this.rule.valueOf();expression=`${this.comparator} ${this.rule}`;compiledCondition=`${this.compiledActual} ${this.comparator} ${this.numericLimit}`;compiledNegation=`${this.compiledActual} ${BJ[this.comparator]} ${this.numericLimit}`;stringLimit=this.boundOperandKind==="date"?PJ(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 BJ={"<":">=","<=":">",">":"<=",">=":"<"},CJ={min:"max",minLength:"maxLength",after:"before"},r8={parse:(Y)=>Y||void 0},n8=(Y)=>(Z)=>{if(typeof Z==="number")return{rule:Z};let{exclusive:X,..._}=Z;return X?{..._,rule:Y==="minLength"?_.rule+1:_.rule-1}:_},s8=(Y)=>(Z)=>{if(typeof Z==="number"||typeof Z==="string"||Z instanceof Date)return{rule:Z};let{exclusive:X,..._}=Z;if(!X)return _;let G=typeof _.rule==="number"?_.rule:typeof _.rule==="string"?new Date(_.rule).valueOf():_.rule.valueOf();return X?{..._,rule:Y==="after"?G+1:G-1}:_},t8=(Y)=>typeof Y==="string"||typeof Y==="number"?new Date(Y):Y,qJ=(Y,Z)=>`${Y} bound must be a positive integer (was ${Z})`,$4=(Y)=>(Z)=>{if(!Number.isInteger(Z)||Z<0)R(qJ(Y,Z));return Z},jJ={min:"value",max:"value",minLength:"length",maxLength:"length",after:"date",before:"date"},SJ=(Y,Z)=>`${g0(Y,CJ)?">":"<"}${Z?"":"="}`,PJ=(Y)=>typeof Y==="string"?Y:new Date(Y).toLocaleString(),W_=(Y)=>`Bounded expression ${Y} must be exactly one of number, string, Array, or Date`;var vJ=r({kind:"after",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:t8,serialize:(Y)=>Y.toISOString()}},normalize:s8("after"),defaults:{description:(Y)=>`${Y.collapsibleLimitString} or later`,actual:v2},intersections:{after:(Y,Z)=>Y.isStricterThan(Z)?Y:Z}});class H_ extends A1{impliedBasis=N.intrinsic.Date.internal;collapsibleLimitString=v2(this.rule);traverseAllows=(Y)=>Y>=this.rule;reduceJsonSchema(Y,Z){return Z.fallback.date({code:"date",base:Y,after:this.rule})}}var fY={implementation:vJ,Node:H_};var xJ=r({kind:"before",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:t8,serialize:(Y)=>Y.toISOString()}},normalize:s8("before"),defaults:{description:(Y)=>`${Y.collapsibleLimitString} or earlier`,actual:v2},intersections:{before:(Y,Z)=>Y.isStricterThan(Z)?Y:Z,after:(Y,Z,X)=>Y.overlapsRange(Z)?Y.overlapIsUnit(Z)?X.$.node("unit",{unit:Y.rule}):null:P.init("range",Y,Z)}});class J_ extends A1{collapsibleLimitString=v2(this.rule);traverseAllows=(Y)=>Y<=this.rule;impliedBasis=N.intrinsic.Date.internal;reduceJsonSchema(Y,Z){return Z.fallback.date({code:"date",base:Y,before:this.rule})}}var hY={implementation:xJ,Node:J_};var fJ=r({kind:"exactLength",collapsibleKey:"rule",keys:{rule:{parse:$4("exactLength")}},normalize:(Y)=>typeof Y==="number"?{rule:Y}:Y,hasAssociatedError:!0,defaults:{description:(Y)=>`exactly length ${Y.rule}`,actual:(Y)=>`${Y.length}`},intersections:{exactLength:(Y,Z,X)=>P.init("unit",X.$.node("unit",{unit:Y.rule}),X.$.node("unit",{unit:Z.rule}),{path:["length"]}),minLength:(Y,Z)=>Y.rule>=Z.rule?Y:P.init("range",Y,Z),maxLength:(Y,Z)=>Y.rule<=Z.rule?Y:P.init("range",Y,Z)}});class Q_ extends X2{traverseAllows=(Y)=>Y.length===this.rule;compiledCondition=`data.length === ${this.rule}`;compiledNegation=`data.length !== ${this.rule}`;impliedBasis=N.intrinsic.lengthBoundable.internal;expression=`== ${this.rule}`;reduceJsonSchema(Y){switch(Y.type){case"string":return Y.minLength=this.rule,Y.maxLength=this.rule,Y;case"array":return Y.minItems=this.rule,Y.maxItems=this.rule,Y;default:return R0.throwInternalOperandError("exactLength",Y)}}}var kY={implementation:fJ,Node:Q_};var hJ=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:P.init("range",Y,Z)},obviatesBasisDescription:!0});class U_ extends A1{impliedBasis=N.intrinsic.number.internal;traverseAllows=this.exclusive?(Y)=>Y<this.rule:(Y)=>Y<=this.rule;reduceJsonSchema(Y){if(this.exclusive)Y.exclusiveMaximum=this.rule;else Y.maximum=this.rule;return Y}}var bY={implementation:hJ,Node:U_};var kJ=r({kind:"maxLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:$4("maxLength")}},reduce:(Y,Z)=>Y.rule===0?Z.node("exactLength",Y):void 0,normalize:n8("maxLength"),defaults:{description:(Y)=>`at most length ${Y.rule}`,actual:(Y)=>`${Y.length}`},intersections:{maxLength:(Y,Z)=>Y.isStricterThan(Z)?Y:Z,minLength:(Y,Z,X)=>Y.overlapsRange(Z)?Y.overlapIsUnit(Z)?X.$.node("exactLength",{rule:Y.rule}):null:P.init("range",Y,Z)}});class z_ extends A1{impliedBasis=N.intrinsic.lengthBoundable.internal;traverseAllows=(Y)=>Y.length<=this.rule;reduceJsonSchema(Y){switch(Y.type){case"string":return Y.maxLength=this.rule,Y;case"array":return Y.maxItems=this.rule,Y;default:return R0.throwInternalOperandError("maxLength",Y)}}}var yY={implementation:kJ,Node:z_};var bJ=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 F_ extends A1{impliedBasis=N.intrinsic.number.internal;traverseAllows=this.exclusive?(Y)=>Y>this.rule:(Y)=>Y>=this.rule;reduceJsonSchema(Y){if(this.exclusive)Y.exclusiveMinimum=this.rule;else Y.minimum=this.rule;return Y}}var gY={implementation:bJ,Node:F_};var yJ=r({kind:"minLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:$4("minLength")}},reduce:(Y)=>Y.rule===0?N.intrinsic.unknown:void 0,normalize:n8("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 E_ extends A1{impliedBasis=N.intrinsic.lengthBoundable.internal;traverseAllows=(Y)=>Y.length>=this.rule;reduceJsonSchema(Y){switch(Y.type){case"string":return Y.minLength=this.rule,Y;case"array":return Y.minItems=this.rule,Y;default:return R0.throwInternalOperandError("minLength",Y)}}}var pY={implementation:yJ,Node:E_};var O_={min:gY.implementation,max:bY.implementation,minLength:pY.implementation,maxLength:yY.implementation,exactLength:kY.implementation,after:fY.implementation,before:hY.implementation},V_={min:gY.Node,max:bY.Node,minLength:pY.Node,maxLength:yY.Node,exactLength:kY.Node,after:fY.Node,before:hY.Node};var gJ=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 D_ extends X2{instance=new RegExp(this.rule,this.flags);expression=`${this.instance}`;traverseAllows=this.instance.test.bind(this.instance);compiledCondition=`${this.expression}.test(data)`;compiledNegation=`!${this.compiledCondition}`;impliedBasis=N.intrinsic.string.internal;reduceJsonSchema(Y,Z){if(Y.pattern)return Z.fallback.patternIntersection({code:"patternIntersection",base:Y,pattern:this.rule});return Y.pattern=this.rule,Y}}var mY={implementation:gJ,Node:D_};var i4=(Y,Z)=>{let X=pJ(Y);if(Z&&!Z.includes(X))return R(`Root of kind ${X} should be one of ${Z}`);return X},pJ=(Y)=>{if(y(Y,"root"))return Y.kind;if(typeof Y==="string")return Y[0]==="$"?"alias":(Y in U1)?"domain":"proto";if(typeof Y==="function")return"proto";if(typeof Y!=="object"||Y===null)return R(L_(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 l8)))return"intersection";if("proto"in Y)return"proto";if("domain"in Y)return"domain";return R(L_(Y))},L_=(Y)=>`${i(Y)} is not a valid type schema`,M_={},mJ=(Y)=>F0(Y)?Y.map((Z)=>Z.collapsibleJson):Y.collapsibleJson,_1={};N.nodesByRegisteredId=_1;var uY=(Y)=>{return M_[Y]??=0,`${Y}${++M_[Y]}`},dY=(Y)=>{let Z=W4[Y.kind],X=Z.applyConfig?.(Y.def,Y.$.resolvedConfig)??Y.def,_={},{meta:G,...$}=X,W=G===void 0?{}:typeof G==="string"?{description:G}:G,H=FY($).sort(([J],[U])=>Y4(J)?Y4(U)?Z4(J)-Z4(U):1:Y4(U)?-1:J<U?-1:1).filter(([J,U])=>{if(J.startsWith("meta.")){let E=J.slice(5);return W[E]=U,!1}return!0});for(let J of H){let U=J[0],E=Z.keys[U];if(!E)return R(`Key ${U} is not valid on ${Y.kind} schema`);let V=E.parse?E.parse(J[1],Y):J[1];if(V!==M1&&(V!==void 0||E.preserveUndefined))_[U]=V}if(Z.reduce&&!Y.prereduced){let J=Z.reduce(_,Y.$);if(J){if(J instanceof P)return J.throw();return uJ(J,W)}}return cY({id:Y.id,kind:Y.kind,inner:_,meta:W,$:Y.$})},cY=({id:Y,kind:Z,inner:X,meta:_,$:G,ignoreCache:$})=>{let W=W4[Z],H=FY(X),Q=[],J={};for(let[h,x]of H){let m=W.keys[h],K=m.serialize??(m.child?mJ:N1);if(J[h]=K(x),m.child===!0){let I=x;if(F0(I))Q.push(...I);else Q.push(I)}else if(typeof m.child==="function")Q.push(...m.child(x))}if(W.finalizeInnerJson)J=W.finalizeInnerJson(J);let U={...J},E={};if(!d1(_))E=o(_,(h,x)=>[h,h==="examples"?x:N1(x)]),U.meta=a8(E,"description",!0);J=a8(J,W.collapsibleKey,!1);let V=JSON.stringify({kind:Z,...J});U=a8(U,W.collapsibleKey,!1);let L=a8(U,W.collapsibleKey,!0),w=JSON.stringify({kind:Z,...U});if(G.nodesByHash[w]&&!$)return G.nodesByHash[w];let M={id:Y,kind:Z,impl:W,inner:X,innerEntries:H,innerJson:J,innerHash:V,meta:_,metaJson:E,json:U,hash:w,collapsibleJson:L,children:Q};if(Z!=="intersection"){for(let h in X)if(h!=="in"&&h!=="out")M[h]=X[h]}let k=new w_[Z](M,G);return G.nodesByHash[w]=k},A_=(Y,Z)=>{if(Y.id===Z)return Y;if(D0(_1[Z]))_0(`Unexpected attempt to overwrite node id ${Z}`);return cY({id:Z,kind:Y.kind,inner:Y.inner,meta:Y.meta,$:Y.$,ignoreCache:!0})},uJ=(Y,Z,X)=>{if(X&&D0(_1[X]))_0(`Unexpected attempt to overwrite node id ${X}`);return cY({id:X??uY(Z.alias??Y.kind),kind:Y.kind,inner:Y.inner,meta:Z,$:Y.$})},a8=(Y,Z,X)=>{let _=Object.keys(Y);if(_.length===1&&_[0]===Z){let G=Y[Z];if(X)return G;if(Q1(G,"object")&&(Object.keys(G).length===1||Array.isArray(G)))return G}return Y};var r4=(Y,Z,X)=>{if(Y.key!==Z.key)return null;let _=Y.key,G=L0(Y.value,Z.value,X),$=Y.required||Z.required?"required":"optional";if(G instanceof P)if($==="optional")G=N.intrinsic.never.internal;else return G.withPrefixKey(Y.key,Y.required&&Z.required?"required":"optional");if($==="required")return X.$.node("required",{key:_,value:G});let W=Y.hasDefault()?Z.hasDefault()?Y.default===Z.default?Y.default:R(lY(Y.default,Z.default)):Y.default:Z.hasDefault()?Z.default:M1;return X.$.node("optional",{key:_,value:G,default:W})};class n4 extends I1{required=this.kind==="required";optional=this.kind==="optional";impliedBasis=N.intrinsic.object.internal;serializedKey=Z2(this.key);compiledKey=typeof this.key==="string"?this.key:this.serializedKey;flatRefs=Z0(this.value.flatRefs.map((Y)=>h1([this.key,...Y.path],Y.node)),h1([this.key],this.value));_transform(Y,Z){Z.path.push(this.key);let X=super._transform(Y,Z);return Z.path.pop(),X}hasDefault(){return"default"in this.inner}traverseAllows=(Y,Z)=>{if(this.key in Y)return F1(this.key,()=>this.value.traverseAllows(Y[this.key],Z),Z);return this.optional};traverseApply=(Y,Z)=>{if(this.key in Y)F1(this.key,()=>this.value.traverseApply(Y[this.key],Z),Z);else if(this.hasKind("required"))Z.errorFromNodeContext(this.errorContext)};compile(Y){if(Y.if(`${this.serializedKey} in data`,()=>Y.traverseKey(this.serializedKey,`data${Y.prop(this.key)}`,this.value)),this.hasKind("required"))Y.else(()=>Y.traversalKind==="Apply"?Y.line(`ctx.errorFromNodeContext(${this.compiledErrorContext})`):Y.return(!1));if(Y.traversalKind==="Allows")Y.return(!0)}}var lY=(Y,Z)=>`Invalid intersection of default values ${i(Y)} & ${i(Z)}`;var dJ=r({kind:"optional",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{key:{},value:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y)},default:{preserveUndefined:!0}},normalize:(Y)=>Y,reduce:(Y,Z)=>{if(Z.resolvedConfig.exactOptionalPropertyTypes===!1){if(!Y.value.allows(void 0))return Z.node("optional",{...Y,value:Y.value.or(d.undefined)},{prereduced:!0})}},defaults:{description:(Y)=>`${Y.compiledKey}?: ${Y.value.description}`},intersections:{optional:r4}});class R_ extends n4{constructor(...Y){super(...Y);if("default"in this.inner)t4(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=lJ(this);defaultValueMorphRef=this.defaultValueMorph&&B0(this.defaultValueMorph)}var s4={implementation:dJ,Node:R_},cJ={},lJ=(Y)=>{if(!Y.hasDefault())return;let Z=`{${Y.compiledKey}: ${Y.value.id} = ${N1(Y.default)}}`;return cJ[Z]??=oY(Y.key,Y.value,Y.default)},oY=(Y,Z,X)=>{if(typeof X==="function")return Z.includesTransform?(G,$)=>{return F1(Y,()=>Z(G[Y]=X(),$),$),G}:(G)=>{return G[Y]=X(),G};let _=Z.includesTransform?Z.assert(X):X;return Q1(_,"object")?(G,$)=>{return F1(Y,()=>Z(G[Y]=X,$),$),G}:(G)=>{return G[Y]=_,G}},t4=(Y,Z,X)=>{let _=O2(Z);if(Q1(Z,"object")&&!_)R(oJ(X));let G=Y.in(_?Z():Z);if(G instanceof z1){if(X===null)R(`Default ${G.summary}`);let $=G.transform((W)=>W.transform((H)=>({...H,prefixPath:[X]})));R(`Default for ${$.summary}`)}return Z},oJ=(Y)=>{return`Non-primitive default ${Y===null?"":typeof Y==="number"?`for value at [${Y}] `:`for ${Z2(Y)} `}must be specified as a function like () => ({my: 'object'})`};class T1 extends l4{constructor(Y,Z){super(Y,Z);Object.defineProperty(this,X1,{value:"root",enumerable:!1})}get internal(){return this}get "~standard"(){return{vendor:"arktype",version:1,validate:(Y)=>{let Z=this(Y);if(Z instanceof z1)return Z;return{value:Z}}}}as(){return this}brand(Y){if(Y==="")return R(iJ);return this}readonly(){return this}branches=this.hasKind("union")?this.inner.branches:[this];distribute(Y,Z){let X=this.branches.map(Y);return Z?.(X)??X}get shortDescription(){return this.meta.description??this.defaultShortDescription}toJsonSchema(Y={}){let Z=BY(this.$.resolvedConfig.toJsonSchema,Y);Z.useRefs||=this.isCyclic;let X=typeof Z.dialect==="string"?{$schema:Z.dialect}:{};if(Object.assign(X,this.toJsonSchemaRecurse(Z)),Z.useRefs)X.$defs=o(this.references,(_,G)=>G.isRoot()&&!G.alwaysExpandJsonSchema?[G.id,G.toResolvedJsonSchema(Z)]:[]);return X}toJsonSchemaRecurse(Y){if(Y.useRefs&&!this.alwaysExpandJsonSchema)return{$ref:`#/$defs/${this.id}`};return this.toResolvedJsonSchema(Y)}get alwaysExpandJsonSchema(){return this.isBasis()||this.kind==="alias"||this.hasKind("union")&&this.isBoolean}toResolvedJsonSchema(Y){let Z=this.innerToJsonSchema(Y);return Object.assign(Z,this.metaJson)}intersect(Y){let Z=this.$.parseDefinition(Y),X=this.rawIntersect(Z);if(X instanceof P)return X;return this.$.finalize(X)}rawIntersect(Y){return E1(this,Y,this.$)}toNeverIfDisjoint(){return this}and(Y){let Z=this.intersect(Y);return Z instanceof P?Z.throw():Z}rawAnd(Y){let Z=this.rawIntersect(Y);return Z instanceof P?Z.throw():Z}or(Y){let Z=this.$.parseDefinition(Y);return this.$.finalize(this.rawOr(Z))}rawOr(Y){let Z=[...this.branches,...Y.branches];return this.$.node("union",Z)}map(Y){return this.$.schema(this.applyStructuralOperation("map",[Y]))}pick(...Y){return this.$.schema(this.applyStructuralOperation("pick",Y))}omit(...Y){return this.$.schema(this.applyStructuralOperation("omit",Y))}required(){return this.$.schema(this.applyStructuralOperation("required",[]))}partial(){return this.$.schema(this.applyStructuralOperation("partial",[]))}_keyof;keyof(){if(this._keyof)return this._keyof;let Y=this.applyStructuralOperation("keyof",[]).reduce((Z,X)=>Z.intersect(X).toNeverIfDisjoint(),N.intrinsic.unknown.internal);if(Y.branches.length===0)R(SY(`keyof ${this.expression}`));return this._keyof=this.$.finalize(Y)}get props(){if(this.branches.length!==1)return R(rJ(this.expression));return[...this.applyStructuralOperation("props",[])[0]]}merge(Y){let Z=this.$.parseDefinition(Y);return this.$.schema(Z.distribute((X)=>this.applyStructuralOperation("merge",[N_(X)??R(I_("merge",X.expression))])))}applyStructuralOperation(Y,Z){return this.distribute((X)=>{if(X.equals(N.intrinsic.object)&&Y!=="merge")return X;let _=N_(X);if(!_)R(I_(Y,X.expression));if(Y==="keyof")return _.keyof();if(Y==="get")return _.get(...Z);if(Y==="props")return _.props;let G=Y==="required"?"require":Y==="partial"?"optionalize":Y;return this.$.node("intersection",{...X.inner,structure:_[G](...Z)})})}get(...Y){if(Y[0]===void 0)return this;return this.$.schema(this.applyStructuralOperation("get",Y))}extract(Y){let Z=this.$.parseDefinition(Y);return this.$.schema(this.branches.filter((X)=>X.extends(Z)))}exclude(Y){let Z=this.$.parseDefinition(Y);return this.$.schema(this.branches.filter((X)=>!X.extends(Z)))}array(){return this.$.schema(this.isUnknown()?{proto:Array}:{proto:Array,sequence:this},{prereduced:!0})}overlaps(Y){return!(this.intersect(Y)instanceof P)}extends(Y){let Z=this.intersect(Y);return!(Z instanceof P)&&this.equals(Z)}ifExtends(Y){return this.extends(Y)?this:void 0}subsumes(Y){return this.$.parseDefinition(Y).extends(this)}configure(Y,Z="shallow"){return this.configureReferences(Y,Z)}describe(Y,Z="shallow"){return this.configure({description:Y},Z)}optional(){return[this,"?"]}default(Y){return t4(this,Y,null),[this,"=",Y]}from(Y){return this.assert(Y)}_pipe(...Y){let Z=Y.reduce((X,_)=>X.rawPipeOnce(_),this);return this.$.finalize(Z)}tryPipe(...Y){let Z=Y.reduce((X,_)=>X.rawPipeOnce(y(_,"root")?_:(G,$)=>{try{return _(G,$)}catch(W){return $.error({code:"predicate",predicate:_,actual:`aborted due to error:
24
+ \u2022 `)}`}throw(){return R(this.describeReasons())}invert(){let Y=this.map((Z)=>({...Z,l:Z.r,r:Z.l}));if(!(Y instanceof P))return new P(...Y);return Y}withPrefixKey(Y,Z){return this.map((X)=>({...X,path:[Y,...X.path],optional:X.optional||Z==="optional"}))}toNeverIfDisjoint(){return N.intrinsic.never}}var eX=(Y,Z)=>`${jY(Y)} and ${jY(Z)}`,jY=(Y)=>D0(Y)?Y.expression:F0(Y)?Y.map(jY).join(" | ")||"never":String(Y),SY=(Y)=>`${Y} results in an unsatisfiable type`;var X4={},E1=(Y,Z,X)=>L0(Y,Z,{$:X,invert:!1,pipe:!1}),o4=(Y,Z,X)=>L0(Y,Z,{$:X,invert:!1,pipe:!0}),L0=(Y,Z,X)=>{let _=X.pipe?"|>":"&",G=`${Y.hash}${_}${Z.hash}`;if(X4[G]!==void 0)return X4[G];if(!X.pipe){let H=`${Z.hash}${_}${Y.hash}`;if(X4[H]!==void 0){let Q=X4[H],J=Q instanceof P?Q.invert():Q;return X4[G]=J,J}}let $=!X.pipe||!Y.includesTransform&&!Z.includesTransform;if($&&Y.equals(Z))return Y;let W=$?PY(Y,Z,X):Y.hasKindIn(...e2)?MJ(Y,Z,X):PY(Y,Z,X);if(D0(W)){if(Y.equals(W))W=Y;else if(Z.equals(W))W=Z}return X4[G]=W,W},PY=(Y,Z,X)=>{let _=Y.precedence<Z.precedence?Y.kind:Z.kind,G=Y.impl.intersections[Z.kind]??Z.impl.intersections[Y.kind];if(G===void 0)return null;else if(_===Y.kind)return G(Y,Z,X);else{let $=G(Z,Y,{...X,invert:!X.invert});if($ instanceof P)$=$.invert();return $}},MJ=(Y,Z,X)=>Y.includesTransform||Z.includesTransform?X.invert?Y_(Z,Y,X):Y_(Y,Z,X):PY(Y,Z,X),Y_=(Y,Z,X)=>Y.distribute((_)=>AJ(_,Z,X),(_)=>{let G=_.filter(D0);if(G.length===0)return P.init("union",Y.branches,Z.branches);if(G.length<Y.branches.length||!Y.branches.every((H,Q)=>H.in.equals(G[Q].in)))return X.$.parseSchema(G);let $;if(G.length===1){let H=G[0];if(!$)return H;return X.$.node("morph",{...H.inner,in:H.in.configure($,"self")})}let W={branches:G};if($)W.meta=$;return X.$.parseSchema(W)}),AJ=(Y,Z,X)=>{if(Y.hasKind("morph")){let G=[...Y.morphs];if(Y.lastMorphIfNode){let $=L0(Y.lastMorphIfNode,Z,X);if($ instanceof P)return $;G[G.length-1]=$}else G.push(Z);return X.$.node("morph",{morphs:G,in:Y.inner.in})}if(Z.hasKind("morph")){let G=L0(Y,Z.in,X);if(G instanceof P)return G;return X.$.node("morph",{morphs:[Z],in:G})}return X.$.node("morph",{morphs:[Z],in:Y})};class I1 extends l4{constructor(Y,Z){super(Y,Z);Object.defineProperty(this,X1,{value:"constraint",enumerable:!1})}impliedSiblings;intersect(Y){return E1(this,Y,this.$)}}class X2 extends I1{traverseApply=(Y,Z)=>{if(!this.traverseAllows(Y,Z))Z.errorFromNodeContext(this.errorContext)};compile(Y){if(Y.traversalKind==="Allows")Y.return(this.compiledCondition);else Y.if(this.compiledNegation,()=>Y.line(`${Y.ctx}.errorFromNodeContext(${this.compiledErrorContext})`))}get errorContext(){return{code:this.kind,description:this.description,meta:this.meta,...this.inner}}get compiledErrorContext(){return L2(this.errorContext)}}var t0=(Y)=>(Z,X)=>{if(F0(Z)){if(Z.length===0)return;let G=Z.map(($)=>X.$.node(Y,$));if(Y==="predicate")return G;return G.sort(($,W)=>$.hash<W.hash?-1:1)}let _=X.$.node(Y,Z);return _.hasOpenIntersection()?[_]:_},_4=(Y)=>{let Z=Y.r.shift();if(!Z){let _=Y.l.length===0&&Y.kind==="structure"?N.intrinsic.unknown.internal:Y.ctx.$.node(Y.kind,Object.assign(Y.baseInner,wJ(Y.l)),{prereduced:!0});for(let G of Y.roots){if(_ instanceof P)return _;_=L0(G,_,Y.ctx)}return _}let X=!1;for(let _=0;_<Y.l.length;_++){let G=L0(Y.l[_],Z,Y.ctx);if(G===null)continue;if(G instanceof P)return G;if(!X){if(G.isRoot())return Y.roots.push(G),Y.l.splice(_),_4(Y);Y.l[_]=G,X=!0}else if(!Y.l.includes(G))return _0(`Unexpectedly encountered multiple distinct intersection results for refinement ${G}`)}if(!X)Y.l.push(Z);if(Y.kind==="intersection"){if(Z.impliedSiblings)for(let _ of Z.impliedSiblings)d1(Y.r,_)}return _4(Y)},G4=(Y)=>{return Object.entries(Y).flatMap(([X,_])=>(X in l8)?_:[]).sort((X,_)=>X.precedence<_.precedence?-1:X.precedence>_.precedence?1:X.kind==="predicate"&&_.kind==="predicate"?0:X.hash<_.hash?-1:1)},wJ=(Y)=>{let Z={};for(let X of Y)if(X.hasOpenIntersection())Z[X.kind]=Z0(Z[X.kind],X);else{if(Z[X.kind])return _0(`Unexpected intersection of closed refinements of kind ${X.kind}`);Z[X.kind]=X}return Z},Z_=(...Y)=>R(X_(...Y)),X_=(Y,Z,X)=>{let _=X.hasKind("morph")?"a morph":X.isUnknown()?"unknown":X.exclude(Z).defaultShortDescription;return`${PX(Y)} operand must be ${Z.description} (was ${_})`};var __=(Y,Z,X)=>new A2(Y,Z,X,X,null);class i8 extends x1{}class A2 extends x1{[X1]="generic";paramDefs;bodyDef;$;arg$;baseInstantiation;hkt;description;constructor(Y,Z,X,_,G){super((...$)=>{let W=o(this.names,(H,Q)=>{let J=this.arg$.parse($[H]);if(!J.extends(this.constraints[H]))R(RJ(Q,this.constraints[H].expression,J.expression));return[Q,J]});if(this.defIsLazy()){let H=this.bodyDef(W);return this.$.parse(H)}return this.$.parse(Z,{args:W})});this.paramDefs=Y,this.bodyDef=Z,this.$=X,this.arg$=_,this.hkt=G,this.description=G?new G().description??`a generic type for ${G.constructor.name}`:"a generic type",this.baseInstantiation=this(...this.constraints)}defIsLazy(){return this.bodyDef instanceof i8}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:uX(this.bodyDef)})}get params(){return this.cacheGetter("params",this.paramDefs.map((Y)=>typeof Y==="string"?[Y,N.intrinsic.unknown]:[Y[0],this.$.parse(Y[1])]))}get names(){return this.cacheGetter("names",this.params.map((Y)=>Y[0]))}get constraints(){return this.cacheGetter("constraints",this.params.map((Y)=>Y[1]))}get internal(){return this}get referencesById(){return this.baseInstantiation.internal.referencesById}get references(){return this.baseInstantiation.internal.references}}var RJ=(Y,Z,X)=>`${Y} must be assignable to ${Z} (was ${X})`;var NJ=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 G_ extends I1{serializedPredicate=B0(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=L2(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 vY={implementation:NJ,Node:G_};var IJ=r({kind:"divisor",collapsibleKey:"rule",keys:{rule:{parse:(Y)=>Number.isInteger(Y)?Y:R(TJ(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/KJ(Y.rule,Z.rule))})},obviatesBasisDescription:!0});class $_ extends X2{traverseAllows=(Y)=>Y%this.rule===0;compiledCondition=`data % ${this.rule} === 0`;compiledNegation=`data % ${this.rule} !== 0`;impliedBasis=N.intrinsic.number.internal;expression=`% ${this.rule}`;reduceJsonSchema(Y){if(Y.type="integer",this.rule===1)return Y;return Y.multipleOf=this.rule,Y}}var xY={implementation:IJ,Node:$_};var TJ=(Y)=>`divisor must be an integer (was ${Y})`,KJ=(Y,Z)=>{let X,_=Y,G=Z;while(G!==0)X=G,G=_%G,_=X;return _};class A1 extends X2{boundOperandKind=jJ[this.kind];compiledActual=this.boundOperandKind==="value"?"data":this.boundOperandKind==="length"?"data.length":"data.valueOf()";comparator=SJ(this.kind,this.exclusive);numericLimit=this.rule.valueOf();expression=`${this.comparator} ${this.rule}`;compiledCondition=`${this.compiledActual} ${this.comparator} ${this.numericLimit}`;compiledNegation=`${this.compiledActual} ${BJ[this.comparator]} ${this.numericLimit}`;stringLimit=this.boundOperandKind==="date"?PJ(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 BJ={"<":">=","<=":">",">":"<=",">=":"<"},CJ={min:"max",minLength:"maxLength",after:"before"},r8={parse:(Y)=>Y||void 0},n8=(Y)=>(Z)=>{if(typeof Z==="number")return{rule:Z};let{exclusive:X,..._}=Z;return X?{..._,rule:Y==="minLength"?_.rule+1:_.rule-1}:_},s8=(Y)=>(Z)=>{if(typeof Z==="number"||typeof Z==="string"||Z instanceof Date)return{rule:Z};let{exclusive:X,..._}=Z;if(!X)return _;let G=typeof _.rule==="number"?_.rule:typeof _.rule==="string"?new Date(_.rule).valueOf():_.rule.valueOf();return X?{..._,rule:Y==="after"?G+1:G-1}:_},t8=(Y)=>typeof Y==="string"||typeof Y==="number"?new Date(Y):Y,qJ=(Y,Z)=>`${Y} bound must be a positive integer (was ${Z})`,$4=(Y)=>(Z)=>{if(!Number.isInteger(Z)||Z<0)R(qJ(Y,Z));return Z},jJ={min:"value",max:"value",minLength:"length",maxLength:"length",after:"date",before:"date"},SJ=(Y,Z)=>`${g0(Y,CJ)?">":"<"}${Z?"":"="}`,PJ=(Y)=>typeof Y==="string"?Y:new Date(Y).toLocaleString(),W_=(Y)=>`Bounded expression ${Y} must be exactly one of number, string, Array, or Date`;var vJ=r({kind:"after",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:t8,serialize:(Y)=>Y.toISOString()}},normalize:s8("after"),defaults:{description:(Y)=>`${Y.collapsibleLimitString} or later`,actual:v2},intersections:{after:(Y,Z)=>Y.isStricterThan(Z)?Y:Z}});class H_ extends A1{impliedBasis=N.intrinsic.Date.internal;collapsibleLimitString=v2(this.rule);traverseAllows=(Y)=>Y>=this.rule;reduceJsonSchema(Y,Z){return Z.fallback.date({code:"date",base:Y,after:this.rule})}}var fY={implementation:vJ,Node:H_};var xJ=r({kind:"before",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:t8,serialize:(Y)=>Y.toISOString()}},normalize:s8("before"),defaults:{description:(Y)=>`${Y.collapsibleLimitString} or earlier`,actual:v2},intersections:{before:(Y,Z)=>Y.isStricterThan(Z)?Y:Z,after:(Y,Z,X)=>Y.overlapsRange(Z)?Y.overlapIsUnit(Z)?X.$.node("unit",{unit:Y.rule}):null:P.init("range",Y,Z)}});class J_ extends A1{collapsibleLimitString=v2(this.rule);traverseAllows=(Y)=>Y<=this.rule;impliedBasis=N.intrinsic.Date.internal;reduceJsonSchema(Y,Z){return Z.fallback.date({code:"date",base:Y,before:this.rule})}}var hY={implementation:xJ,Node:J_};var fJ=r({kind:"exactLength",collapsibleKey:"rule",keys:{rule:{parse:$4("exactLength")}},normalize:(Y)=>typeof Y==="number"?{rule:Y}:Y,hasAssociatedError:!0,defaults:{description:(Y)=>`exactly length ${Y.rule}`,actual:(Y)=>`${Y.length}`},intersections:{exactLength:(Y,Z,X)=>P.init("unit",X.$.node("unit",{unit:Y.rule}),X.$.node("unit",{unit:Z.rule}),{path:["length"]}),minLength:(Y,Z)=>Y.rule>=Z.rule?Y:P.init("range",Y,Z),maxLength:(Y,Z)=>Y.rule<=Z.rule?Y:P.init("range",Y,Z)}});class Q_ extends X2{traverseAllows=(Y)=>Y.length===this.rule;compiledCondition=`data.length === ${this.rule}`;compiledNegation=`data.length !== ${this.rule}`;impliedBasis=N.intrinsic.lengthBoundable.internal;expression=`== ${this.rule}`;reduceJsonSchema(Y){switch(Y.type){case"string":return Y.minLength=this.rule,Y.maxLength=this.rule,Y;case"array":return Y.minItems=this.rule,Y.maxItems=this.rule,Y;default:return R0.throwInternalOperandError("exactLength",Y)}}}var kY={implementation:fJ,Node:Q_};var hJ=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:P.init("range",Y,Z)},obviatesBasisDescription:!0});class U_ extends A1{impliedBasis=N.intrinsic.number.internal;traverseAllows=this.exclusive?(Y)=>Y<this.rule:(Y)=>Y<=this.rule;reduceJsonSchema(Y){if(this.exclusive)Y.exclusiveMaximum=this.rule;else Y.maximum=this.rule;return Y}}var bY={implementation:hJ,Node:U_};var kJ=r({kind:"maxLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:$4("maxLength")}},reduce:(Y,Z)=>Y.rule===0?Z.node("exactLength",Y):void 0,normalize:n8("maxLength"),defaults:{description:(Y)=>`at most length ${Y.rule}`,actual:(Y)=>`${Y.length}`},intersections:{maxLength:(Y,Z)=>Y.isStricterThan(Z)?Y:Z,minLength:(Y,Z,X)=>Y.overlapsRange(Z)?Y.overlapIsUnit(Z)?X.$.node("exactLength",{rule:Y.rule}):null:P.init("range",Y,Z)}});class z_ extends A1{impliedBasis=N.intrinsic.lengthBoundable.internal;traverseAllows=(Y)=>Y.length<=this.rule;reduceJsonSchema(Y){switch(Y.type){case"string":return Y.maxLength=this.rule,Y;case"array":return Y.maxItems=this.rule,Y;default:return R0.throwInternalOperandError("maxLength",Y)}}}var yY={implementation:kJ,Node:z_};var bJ=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 F_ extends A1{impliedBasis=N.intrinsic.number.internal;traverseAllows=this.exclusive?(Y)=>Y>this.rule:(Y)=>Y>=this.rule;reduceJsonSchema(Y){if(this.exclusive)Y.exclusiveMinimum=this.rule;else Y.minimum=this.rule;return Y}}var gY={implementation:bJ,Node:F_};var yJ=r({kind:"minLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:$4("minLength")}},reduce:(Y)=>Y.rule===0?N.intrinsic.unknown:void 0,normalize:n8("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 E_ extends A1{impliedBasis=N.intrinsic.lengthBoundable.internal;traverseAllows=(Y)=>Y.length>=this.rule;reduceJsonSchema(Y){switch(Y.type){case"string":return Y.minLength=this.rule,Y;case"array":return Y.minItems=this.rule,Y;default:return R0.throwInternalOperandError("minLength",Y)}}}var pY={implementation:yJ,Node:E_};var O_={min:gY.implementation,max:bY.implementation,minLength:pY.implementation,maxLength:yY.implementation,exactLength:kY.implementation,after:fY.implementation,before:hY.implementation},V_={min:gY.Node,max:bY.Node,minLength:pY.Node,maxLength:yY.Node,exactLength:kY.Node,after:fY.Node,before:hY.Node};var gJ=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 D_ extends X2{instance=new RegExp(this.rule,this.flags);expression=`${this.instance}`;traverseAllows=this.instance.test.bind(this.instance);compiledCondition=`${this.expression}.test(data)`;compiledNegation=`!${this.compiledCondition}`;impliedBasis=N.intrinsic.string.internal;reduceJsonSchema(Y,Z){if(Y.pattern)return Z.fallback.patternIntersection({code:"patternIntersection",base:Y,pattern:this.rule});return Y.pattern=this.rule,Y}}var mY={implementation:gJ,Node:D_};var i4=(Y,Z)=>{let X=pJ(Y);if(Z&&!Z.includes(X))return R(`Root of kind ${X} should be one of ${Z}`);return X},pJ=(Y)=>{if(y(Y,"root"))return Y.kind;if(typeof Y==="string")return Y[0]==="$"?"alias":(Y in U1)?"domain":"proto";if(typeof Y==="function")return"proto";if(typeof Y!=="object"||Y===null)return R(L_(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 l8)))return"intersection";if("proto"in Y)return"proto";if("domain"in Y)return"domain";return R(L_(Y))},L_=(Y)=>`${i(Y)} is not a valid type schema`,M_={},mJ=(Y)=>F0(Y)?Y.map((Z)=>Z.collapsibleJson):Y.collapsibleJson,_1={};N.nodesByRegisteredId=_1;var uY=(Y)=>{return M_[Y]??=0,`${Y}${++M_[Y]}`},dY=(Y)=>{let Z=W4[Y.kind],X=Z.applyConfig?.(Y.def,Y.$.resolvedConfig)??Y.def,_={},{meta:G,...$}=X,W=G===void 0?{}:typeof G==="string"?{description:G}:G,H=FY($).sort(([J],[U])=>Y4(J)?Y4(U)?Z4(J)-Z4(U):1:Y4(U)?-1:J<U?-1:1).filter(([J,U])=>{if(J.startsWith("meta.")){let E=J.slice(5);return W[E]=U,!1}return!0});for(let J of H){let U=J[0],E=Z.keys[U];if(!E)return R(`Key ${U} is not valid on ${Y.kind} schema`);let V=E.parse?E.parse(J[1],Y):J[1];if(V!==M1&&(V!==void 0||E.preserveUndefined))_[U]=V}if(Z.reduce&&!Y.prereduced){let J=Z.reduce(_,Y.$);if(J){if(J instanceof P)return J.throw();return uJ(J,W)}}return cY({id:Y.id,kind:Y.kind,inner:_,meta:W,$:Y.$})},cY=({id:Y,kind:Z,inner:X,meta:_,$:G,ignoreCache:$})=>{let W=W4[Z],H=FY(X),Q=[],J={};for(let[k,x]of H){let m=W.keys[k],K=m.serialize??(m.child?mJ:N1);if(J[k]=K(x),m.child===!0){let I=x;if(F0(I))Q.push(...I);else Q.push(I)}else if(typeof m.child==="function")Q.push(...m.child(x))}if(W.finalizeInnerJson)J=W.finalizeInnerJson(J);let U={...J},E={};if(!c1(_))E=o(_,(k,x)=>[k,k==="examples"?x:N1(x)]),U.meta=a8(E,"description",!0);J=a8(J,W.collapsibleKey,!1);let V=JSON.stringify({kind:Z,...J});U=a8(U,W.collapsibleKey,!1);let L=a8(U,W.collapsibleKey,!0),w=JSON.stringify({kind:Z,...U});if(G.nodesByHash[w]&&!$)return G.nodesByHash[w];let M={id:Y,kind:Z,impl:W,inner:X,innerEntries:H,innerJson:J,innerHash:V,meta:_,metaJson:E,json:U,hash:w,collapsibleJson:L,children:Q};if(Z!=="intersection"){for(let k in X)if(k!=="in"&&k!=="out")M[k]=X[k]}let h=new w_[Z](M,G);return G.nodesByHash[w]=h},A_=(Y,Z)=>{if(Y.id===Z)return Y;if(D0(_1[Z]))_0(`Unexpected attempt to overwrite node id ${Z}`);return cY({id:Z,kind:Y.kind,inner:Y.inner,meta:Y.meta,$:Y.$,ignoreCache:!0})},uJ=(Y,Z,X)=>{if(X&&D0(_1[X]))_0(`Unexpected attempt to overwrite node id ${X}`);return cY({id:X??uY(Z.alias??Y.kind),kind:Y.kind,inner:Y.inner,meta:Z,$:Y.$})},a8=(Y,Z,X)=>{let _=Object.keys(Y);if(_.length===1&&_[0]===Z){let G=Y[Z];if(X)return G;if(Q1(G,"object")&&(Object.keys(G).length===1||Array.isArray(G)))return G}return Y};var r4=(Y,Z,X)=>{if(Y.key!==Z.key)return null;let _=Y.key,G=L0(Y.value,Z.value,X),$=Y.required||Z.required?"required":"optional";if(G instanceof P)if($==="optional")G=N.intrinsic.never.internal;else return G.withPrefixKey(Y.key,Y.required&&Z.required?"required":"optional");if($==="required")return X.$.node("required",{key:_,value:G});let W=Y.hasDefault()?Z.hasDefault()?Y.default===Z.default?Y.default:R(lY(Y.default,Z.default)):Y.default:Z.hasDefault()?Z.default:M1;return X.$.node("optional",{key:_,value:G,default:W})};class n4 extends I1{required=this.kind==="required";optional=this.kind==="optional";impliedBasis=N.intrinsic.object.internal;serializedKey=Z2(this.key);compiledKey=typeof this.key==="string"?this.key:this.serializedKey;flatRefs=Z0(this.value.flatRefs.map((Y)=>h1([this.key,...Y.path],Y.node)),h1([this.key],this.value));_transform(Y,Z){Z.path.push(this.key);let X=super._transform(Y,Z);return Z.path.pop(),X}hasDefault(){return"default"in this.inner}traverseAllows=(Y,Z)=>{if(this.key in Y)return F1(this.key,()=>this.value.traverseAllows(Y[this.key],Z),Z);return this.optional};traverseApply=(Y,Z)=>{if(this.key in Y)F1(this.key,()=>this.value.traverseApply(Y[this.key],Z),Z);else if(this.hasKind("required"))Z.errorFromNodeContext(this.errorContext)};compile(Y){if(Y.if(`${this.serializedKey} in data`,()=>Y.traverseKey(this.serializedKey,`data${Y.prop(this.key)}`,this.value)),this.hasKind("required"))Y.else(()=>Y.traversalKind==="Apply"?Y.line(`ctx.errorFromNodeContext(${this.compiledErrorContext})`):Y.return(!1));if(Y.traversalKind==="Allows")Y.return(!0)}}var lY=(Y,Z)=>`Invalid intersection of default values ${i(Y)} & ${i(Z)}`;var dJ=r({kind:"optional",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{key:{},value:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y)},default:{preserveUndefined:!0}},normalize:(Y)=>Y,reduce:(Y,Z)=>{if(Z.resolvedConfig.exactOptionalPropertyTypes===!1){if(!Y.value.allows(void 0))return Z.node("optional",{...Y,value:Y.value.or(d.undefined)},{prereduced:!0})}},defaults:{description:(Y)=>`${Y.compiledKey}?: ${Y.value.description}`},intersections:{optional:r4}});class R_ extends n4{constructor(...Y){super(...Y);if("default"in this.inner)t4(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=lJ(this);defaultValueMorphRef=this.defaultValueMorph&&B0(this.defaultValueMorph)}var s4={implementation:dJ,Node:R_},cJ={},lJ=(Y)=>{if(!Y.hasDefault())return;let Z=`{${Y.compiledKey}: ${Y.value.id} = ${N1(Y.default)}}`;return cJ[Z]??=oY(Y.key,Y.value,Y.default)},oY=(Y,Z,X)=>{if(typeof X==="function")return Z.includesTransform?(G,$)=>{return F1(Y,()=>Z(G[Y]=X(),$),$),G}:(G)=>{return G[Y]=X(),G};let _=Z.includesTransform?Z.assert(X):X;return Q1(_,"object")?(G,$)=>{return F1(Y,()=>Z(G[Y]=X,$),$),G}:(G)=>{return G[Y]=_,G}},t4=(Y,Z,X)=>{let _=O2(Z);if(Q1(Z,"object")&&!_)R(oJ(X));let G=Y.in(_?Z():Z);if(G instanceof z1){if(X===null)R(`Default ${G.summary}`);let $=G.transform((W)=>W.transform((H)=>({...H,prefixPath:[X]})));R(`Default for ${$.summary}`)}return Z},oJ=(Y)=>{return`Non-primitive default ${Y===null?"":typeof Y==="number"?`for value at [${Y}] `:`for ${Z2(Y)} `}must be specified as a function like () => ({my: 'object'})`};class T1 extends l4{constructor(Y,Z){super(Y,Z);Object.defineProperty(this,X1,{value:"root",enumerable:!1})}get internal(){return this}get "~standard"(){return{vendor:"arktype",version:1,validate:(Y)=>{let Z=this(Y);if(Z instanceof z1)return Z;return{value:Z}}}}as(){return this}brand(Y){if(Y==="")return R(iJ);return this}readonly(){return this}branches=this.hasKind("union")?this.inner.branches:[this];distribute(Y,Z){let X=this.branches.map(Y);return Z?.(X)??X}get shortDescription(){return this.meta.description??this.defaultShortDescription}toJsonSchema(Y={}){let Z=BY(this.$.resolvedConfig.toJsonSchema,Y);Z.useRefs||=this.isCyclic;let X=typeof Z.dialect==="string"?{$schema:Z.dialect}:{};if(Object.assign(X,this.toJsonSchemaRecurse(Z)),Z.useRefs)X.$defs=o(this.references,(_,G)=>G.isRoot()&&!G.alwaysExpandJsonSchema?[G.id,G.toResolvedJsonSchema(Z)]:[]);return X}toJsonSchemaRecurse(Y){if(Y.useRefs&&!this.alwaysExpandJsonSchema)return{$ref:`#/$defs/${this.id}`};return this.toResolvedJsonSchema(Y)}get alwaysExpandJsonSchema(){return this.isBasis()||this.kind==="alias"||this.hasKind("union")&&this.isBoolean}toResolvedJsonSchema(Y){let Z=this.innerToJsonSchema(Y);return Object.assign(Z,this.metaJson)}intersect(Y){let Z=this.$.parseDefinition(Y),X=this.rawIntersect(Z);if(X instanceof P)return X;return this.$.finalize(X)}rawIntersect(Y){return E1(this,Y,this.$)}toNeverIfDisjoint(){return this}and(Y){let Z=this.intersect(Y);return Z instanceof P?Z.throw():Z}rawAnd(Y){let Z=this.rawIntersect(Y);return Z instanceof P?Z.throw():Z}or(Y){let Z=this.$.parseDefinition(Y);return this.$.finalize(this.rawOr(Z))}rawOr(Y){let Z=[...this.branches,...Y.branches];return this.$.node("union",Z)}map(Y){return this.$.schema(this.applyStructuralOperation("map",[Y]))}pick(...Y){return this.$.schema(this.applyStructuralOperation("pick",Y))}omit(...Y){return this.$.schema(this.applyStructuralOperation("omit",Y))}required(){return this.$.schema(this.applyStructuralOperation("required",[]))}partial(){return this.$.schema(this.applyStructuralOperation("partial",[]))}_keyof;keyof(){if(this._keyof)return this._keyof;let Y=this.applyStructuralOperation("keyof",[]).reduce((Z,X)=>Z.intersect(X).toNeverIfDisjoint(),N.intrinsic.unknown.internal);if(Y.branches.length===0)R(SY(`keyof ${this.expression}`));return this._keyof=this.$.finalize(Y)}get props(){if(this.branches.length!==1)return R(rJ(this.expression));return[...this.applyStructuralOperation("props",[])[0]]}merge(Y){let Z=this.$.parseDefinition(Y);return this.$.schema(Z.distribute((X)=>this.applyStructuralOperation("merge",[N_(X)??R(I_("merge",X.expression))])))}applyStructuralOperation(Y,Z){return this.distribute((X)=>{if(X.equals(N.intrinsic.object)&&Y!=="merge")return X;let _=N_(X);if(!_)R(I_(Y,X.expression));if(Y==="keyof")return _.keyof();if(Y==="get")return _.get(...Z);if(Y==="props")return _.props;let G=Y==="required"?"require":Y==="partial"?"optionalize":Y;return this.$.node("intersection",{...X.inner,structure:_[G](...Z)})})}get(...Y){if(Y[0]===void 0)return this;return this.$.schema(this.applyStructuralOperation("get",Y))}extract(Y){let Z=this.$.parseDefinition(Y);return this.$.schema(this.branches.filter((X)=>X.extends(Z)))}exclude(Y){let Z=this.$.parseDefinition(Y);return this.$.schema(this.branches.filter((X)=>!X.extends(Z)))}array(){return this.$.schema(this.isUnknown()?{proto:Array}:{proto:Array,sequence:this},{prereduced:!0})}overlaps(Y){return!(this.intersect(Y)instanceof P)}extends(Y){let Z=this.intersect(Y);return!(Z instanceof P)&&this.equals(Z)}ifExtends(Y){return this.extends(Y)?this:void 0}subsumes(Y){return this.$.parseDefinition(Y).extends(this)}configure(Y,Z="shallow"){return this.configureReferences(Y,Z)}describe(Y,Z="shallow"){return this.configure({description:Y},Z)}optional(){return[this,"?"]}default(Y){return t4(this,Y,null),[this,"=",Y]}from(Y){return this.assert(Y)}_pipe(...Y){let Z=Y.reduce((X,_)=>X.rawPipeOnce(_),this);return this.$.finalize(Z)}tryPipe(...Y){let Z=Y.reduce((X,_)=>X.rawPipeOnce(y(_,"root")?_:(G,$)=>{try{return _(G,$)}catch(W){return $.error({code:"predicate",predicate:_,actual:`aborted due to error:
25
25
  ${W}
26
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=o4(this,Y,this.$);if(Z instanceof P)return Z.throw();return Z}rawPipeOnce(Y){if(y(Y,"root"))return this.toNode(Y);return this.distribute((Z)=>Z.hasKind("morph")?this.$.node("morph",{in:Z.inner.in,morphs:[...Z.morphs,Y]}):this.$.node("morph",{in:Z,morphs:[Y]}),this.$.parseSchema)}narrow(Y){return this.constrainOut("predicate",Y)}constrain(Y,Z){return this._constrain("root",Y,Z)}constrainIn(Y,Z){return this._constrain("in",Y,Z)}constrainOut(Y,Z){return this._constrain("out",Y,Z)}_constrain(Y,Z,X){let _=this.$.node(Z,X);if(_.isRoot())return _.isUnknown()?this:_0(`Unexpected constraint node ${_}`);let G=Y==="root"?this:this[Y];if(G.hasKind("morph")||_.impliedBasis&&!G.extends(_.impliedBasis))return Z_(Z,_.impliedBasis,this);let $=this.$.node("intersection",{[_.kind]:_}),W=Y==="out"?o4(this,$,this.$):E1(this,$,this.$);if(W instanceof P)W.throw();return this.$.finalize(W)}onUndeclaredKey(Y){let Z=typeof Y==="string"?Y:Y.rule,X=typeof Y==="string"?!1:Y.deep;return this.$.finalize(this.transform((_,G)=>_==="structure"?Z==="ignore"?wX(G,{undeclared:1}):{...G,undeclared:Z}:G,X?void 0:{shouldTransform:(_)=>!s1(a2,_.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",H4(Y))}lessThan(Y){return this.constrain("max",H4(Y))}atLeastLength(Y){return this.constrain("minLength",Y)}atMostLength(Y){return this.constrain("maxLength",Y)}moreThanLength(Y){return this.constrain("minLength",H4(Y))}lessThanLength(Y){return this.constrain("maxLength",H4(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",H4(Y))}earlierThan(Y){return this.constrain("before",H4(Y))}}var iJ="Expected a non-empty brand name after #",H4=(Y)=>typeof Y==="object"&&!(Y instanceof Date)?{...Y,exclusive:!0}:{rule:Y,exclusive:!0},a4=(Y,Z)=>y(Z,"root")?y(Y,"root")?Y.extends(Z):Z.allows(Y):y(Y,"root")?Y.hasUnit(Z):Z===Y,N_=(Y)=>{if(Y.hasKind("morph"))return null;if(Y.hasKind("intersection"))return Y.inner.structure??(Y.basis?.domain==="object"?Y.$.bindReference(N.intrinsic.emptyStructure):null);if(Y.isBasis()&&Y.domain==="object")return Y.$.bindReference(N.intrinsic.emptyStructure);return null},rJ=(Y)=>`Props cannot be extracted from a union. Use .distribute to extract props from each branch instead. Received:
27
- ${Y}`,I_=(Y,Z)=>`${Y} operand must be an object (was ${Z})`;var c1=(Y,Z)=>o(o8(Y),(X,_)=>[_,Z]);var nJ=(Y)=>typeof Y==="string"?{reference:Y}:Y,T_=(Y)=>Y instanceof P?N.intrinsic.never.internal:Y,sJ=r({kind:"alias",hasAssociatedError:!1,collapsibleKey:"reference",keys:{reference:{serialize:(Y)=>Y.startsWith("$")?Y:`$ark.${Y}`},resolve:{}},normalize:nJ,defaults:{description:(Y)=>Y.reference},intersections:{alias:(Y,Z,X)=>X.$.lazilyResolve(()=>T_(L0(Y.resolution,Z.resolution,X)),`${Y.reference}${X.pipe?"=>":"&"}${Z.reference}`),...c1("alias",(Y,Z,X)=>{if(Z.isUnknown())return Y;if(Z.isNever())return Z;if(Z.isBasis()&&!Z.overlaps(N.intrinsic.object))return P.init("assignability",N.intrinsic.object,Z);return X.$.lazilyResolve(()=>T_(L0(Y.resolution,Z,X)),`${Y.reference}${X.pipe?"=>":"&"}${Z.id}`)})}});class K_ extends T1{expression=this.reference;structure=void 0;get resolution(){let Y=this._resolve();return _1[this.id]=Y}_resolve(){if(this.resolve)return this.resolve();if(this.reference[0]==="$")return this.$.resolveRoot(this.reference.slice(1));let Y=this.reference,Z=_1[Y],X=[];while(y(Z,"context")){if(X.includes(Z.id))return R(tJ(Z.id,X));X.push(Z.id),Z=_1[Z.id]}if(!y(Z,"root"))return _0(`Unexpected resolution for reference ${this.reference}
27
+ ${Y}`,I_=(Y,Z)=>`${Y} operand must be an object (was ${Z})`;var l1=(Y,Z)=>o(o8(Y),(X,_)=>[_,Z]);var nJ=(Y)=>typeof Y==="string"?{reference:Y}:Y,T_=(Y)=>Y instanceof P?N.intrinsic.never.internal:Y,sJ=r({kind:"alias",hasAssociatedError:!1,collapsibleKey:"reference",keys:{reference:{serialize:(Y)=>Y.startsWith("$")?Y:`$ark.${Y}`},resolve:{}},normalize:nJ,defaults:{description:(Y)=>Y.reference},intersections:{alias:(Y,Z,X)=>X.$.lazilyResolve(()=>T_(L0(Y.resolution,Z.resolution,X)),`${Y.reference}${X.pipe?"=>":"&"}${Z.reference}`),...l1("alias",(Y,Z,X)=>{if(Z.isUnknown())return Y;if(Z.isNever())return Z;if(Z.isBasis()&&!Z.overlaps(N.intrinsic.object))return P.init("assignability",N.intrinsic.object,Z);return X.$.lazilyResolve(()=>T_(L0(Y.resolution,Z,X)),`${Y.reference}${X.pipe?"=>":"&"}${Z.id}`)})}});class K_ extends T1{expression=this.reference;structure=void 0;get resolution(){let Y=this._resolve();return _1[this.id]=Y}_resolve(){if(this.resolve)return this.resolve();if(this.reference[0]==="$")return this.$.resolveRoot(this.reference.slice(1));let Y=this.reference,Z=_1[Y],X=[];while(y(Z,"context")){if(X.includes(Z.id))return R(tJ(Z.id,X));X.push(Z.id),Z=_1[Z.id]}if(!y(Z,"root"))return _0(`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 _0(`Unexpected resolution for reference ${this.reference}: ${i(Z)}`)}get defaultShortDescription(){return U1.object}innerToJsonSchema(Y){return this.resolution.toJsonSchemaRecurse(Y)}traverseAllows=(Y,Z)=>{let X=Z.seen[this.reference];if(X?.includes(Y))return!0;return Z.seen[this.reference]=Z0(X,Y),this.resolution.traverseAllows(Y,Z)};traverseApply=(Y,Z)=>{let X=Z.seen[this.reference];if(X?.includes(Y))return;Z.seen[this.reference]=Z0(X,Y),this.resolution.traverseApply(Y,Z)};compile(Y){let Z=this.resolutionId;Y.if(`ctx.seen.${Z} && ctx.seen.${Z}.includes(data)`,()=>Y.return(!0)),Y.if(`!ctx.seen.${Z}`,()=>Y.line(`ctx.seen.${Z} = []`)),Y.line(`ctx.seen.${Z}.push(data)`),Y.return(Y.invoke(Z))}}var tJ=(Y,Z)=>`Alias '${Y}' has a shallow resolution cycle: ${[...Z,Y].join("->")}`,e4={implementation:sJ,Node:K_};class x2 extends T1{traverseApply=(Y,Z)=>{if(!this.traverseAllows(Y,Z))Z.errorFromNodeContext(this.errorContext)};get errorContext(){return{code:this.kind,description:this.description,meta:this.meta,...this.inner}}get compiledErrorContext(){return L2(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 aJ=r({kind:"domain",hasAssociatedError:!0,collapsibleKey:"domain",keys:{domain:{},numberAllowsNaN:{}},normalize:(Y)=>typeof Y==="string"?{domain:Y}:s2(Y,"numberAllowsNaN")&&Y.domain!=="number"?R(e8.writeBadAllowNanMessage(Y.domain)):Y,applyConfig:(Y,Z)=>Y.numberAllowsNaN===void 0&&Y.domain==="number"&&Z.numberAllowsNaN?{...Y,numberAllowsNaN:!0}:Y,defaults:{description:(Y)=>U1[Y.domain],actual:(Y)=>Number.isNaN(Y)?"NaN":U1[y0(Y)]},intersections:{domain:(Y,Z)=>Y.domain==="number"&&Z.domain==="number"?Y.numberAllowsNaN?Z:Y:P.init("domain",Y,Z)}});class B_ extends x2{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 U1[this.domain]}innerToJsonSchema(Y){if(this.domain==="bigint"||this.domain==="symbol")return Y.fallback.domain({code:"domain",base:{},domain:this.domain});return{type:this.domain}}}var e8={implementation:aJ,Node:B_,writeBadAllowNanMessage:(Y)=>`numberAllowsNaN may only be specified with domain "number" (was ${Y})`};var eJ=r({kind:"intersection",hasAssociatedError:!0,normalize:(Y)=>{if(D0(Y))return Y;let{structure:Z,...X}=Y,_=!!Z,G=Z??{},$=o(X,(W,H)=>{if(g0(W,iX)){if(_)R(`Flattened structure key ${W} cannot be specified alongside a root 'structure' key.`);return G[W]=H,[]}return[W,H]});if(y(G,"constraint")||!d1(G))$.structure=G;return $},finalizeInnerJson:({structure:Y,...Z})=>Q1(Y,"object")?{...Y,...Z}:Z,keys:{domain:{child:!0,parse:(Y,Z)=>Z.$.node("domain",Y)},proto:{child:!0,parse:(Y,Z)=>Z.$.node("proto",Y)},structure:{child:!0,parse:(Y,Z)=>Z.$.node("structure",Y),serialize:(Y)=>{if(!Y.sequence?.minLength)return Y.collapsibleJson;let{sequence:Z,...X}=Y.collapsibleJson,{minVariadicLength:_,...G}=Z,$=G.variadic&&Object.keys(G).length===1?G.variadic:G;return{...X,sequence:$}}},divisor:{child:!0,parse:t0("divisor")},max:{child:!0,parse:t0("max")},min:{child:!0,parse:t0("min")},maxLength:{child:!0,parse:t0("maxLength")},minLength:{child:!0,parse:t0("minLength")},exactLength:{child:!0,parse:t0("exactLength")},before:{child:!0,parse:t0("before")},after:{child:!0,parse:t0("after")},pattern:{child:!0,parse:t0("pattern")},predicate:{child:!0,parse:t0("predicate")}},reduce:(Y,Z)=>C_({},Y,{$:Z,invert:!1,pipe:!1}),defaults:{description:(Y)=>{if(Y.children.length===0)return"unknown";if(Y.structure)return Y.structure.description;let Z=[];if(Y.basis&&!Y.refinements.some((X)=>X.impl.obviatesBasisDescription))Z.push(Y.basis.description);if(Y.refinements.length){let X=Y.refinements.toSorted((_,G)=>_.kind==="min"&&G.kind==="max"?-1:0).map((_)=>_.description);Z.push(...X)}if(Y.inner.predicate)Z.push(...Y.inner.predicate.map((X)=>X.description));return Z.join(" and ")},expected:(Y)=>` \u25E6 ${Y.errors.map((Z)=>Z.expected).join(`
29
+ Resolution: ${i(Z)}`);return Z}get resolutionId(){if(this.reference.includes("&")||this.reference.includes("=>"))return this.resolution.id;if(this.reference[0]!=="$")return this.reference;let Y=this.reference.slice(1),Z=this.$.resolutions[Y];if(typeof Z==="string")return Z;if(y(Z,"root"))return Z.id;return _0(`Unexpected resolution for reference ${this.reference}: ${i(Z)}`)}get defaultShortDescription(){return U1.object}innerToJsonSchema(Y){return this.resolution.toJsonSchemaRecurse(Y)}traverseAllows=(Y,Z)=>{let X=Z.seen[this.reference];if(X?.includes(Y))return!0;return Z.seen[this.reference]=Z0(X,Y),this.resolution.traverseAllows(Y,Z)};traverseApply=(Y,Z)=>{let X=Z.seen[this.reference];if(X?.includes(Y))return;Z.seen[this.reference]=Z0(X,Y),this.resolution.traverseApply(Y,Z)};compile(Y){let Z=this.resolutionId;Y.if(`ctx.seen.${Z} && ctx.seen.${Z}.includes(data)`,()=>Y.return(!0)),Y.if(`!ctx.seen.${Z}`,()=>Y.line(`ctx.seen.${Z} = []`)),Y.line(`ctx.seen.${Z}.push(data)`),Y.return(Y.invoke(Z))}}var tJ=(Y,Z)=>`Alias '${Y}' has a shallow resolution cycle: ${[...Z,Y].join("->")}`,e4={implementation:sJ,Node:K_};class x2 extends T1{traverseApply=(Y,Z)=>{if(!this.traverseAllows(Y,Z))Z.errorFromNodeContext(this.errorContext)};get errorContext(){return{code:this.kind,description:this.description,meta:this.meta,...this.inner}}get compiledErrorContext(){return L2(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 aJ=r({kind:"domain",hasAssociatedError:!0,collapsibleKey:"domain",keys:{domain:{},numberAllowsNaN:{}},normalize:(Y)=>typeof Y==="string"?{domain:Y}:s2(Y,"numberAllowsNaN")&&Y.domain!=="number"?R(e8.writeBadAllowNanMessage(Y.domain)):Y,applyConfig:(Y,Z)=>Y.numberAllowsNaN===void 0&&Y.domain==="number"&&Z.numberAllowsNaN?{...Y,numberAllowsNaN:!0}:Y,defaults:{description:(Y)=>U1[Y.domain],actual:(Y)=>Number.isNaN(Y)?"NaN":U1[y0(Y)]},intersections:{domain:(Y,Z)=>Y.domain==="number"&&Z.domain==="number"?Y.numberAllowsNaN?Z:Y:P.init("domain",Y,Z)}});class B_ extends x2{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 U1[this.domain]}innerToJsonSchema(Y){if(this.domain==="bigint"||this.domain==="symbol")return Y.fallback.domain({code:"domain",base:{},domain:this.domain});return{type:this.domain}}}var e8={implementation:aJ,Node:B_,writeBadAllowNanMessage:(Y)=>`numberAllowsNaN may only be specified with domain "number" (was ${Y})`};var eJ=r({kind:"intersection",hasAssociatedError:!0,normalize:(Y)=>{if(D0(Y))return Y;let{structure:Z,...X}=Y,_=!!Z,G=Z??{},$=o(X,(W,H)=>{if(g0(W,iX)){if(_)R(`Flattened structure key ${W} cannot be specified alongside a root 'structure' key.`);return G[W]=H,[]}return[W,H]});if(y(G,"constraint")||!c1(G))$.structure=G;return $},finalizeInnerJson:({structure:Y,...Z})=>Q1(Y,"object")?{...Y,...Z}:Z,keys:{domain:{child:!0,parse:(Y,Z)=>Z.$.node("domain",Y)},proto:{child:!0,parse:(Y,Z)=>Z.$.node("proto",Y)},structure:{child:!0,parse:(Y,Z)=>Z.$.node("structure",Y),serialize:(Y)=>{if(!Y.sequence?.minLength)return Y.collapsibleJson;let{sequence:Z,...X}=Y.collapsibleJson,{minVariadicLength:_,...G}=Z,$=G.variadic&&Object.keys(G).length===1?G.variadic:G;return{...X,sequence:$}}},divisor:{child:!0,parse:t0("divisor")},max:{child:!0,parse:t0("max")},min:{child:!0,parse:t0("min")},maxLength:{child:!0,parse:t0("maxLength")},minLength:{child:!0,parse:t0("minLength")},exactLength:{child:!0,parse:t0("exactLength")},before:{child:!0,parse:t0("before")},after:{child:!0,parse:t0("after")},pattern:{child:!0,parse:t0("pattern")},predicate:{child:!0,parse:t0("predicate")}},reduce:(Y,Z)=>C_({},Y,{$:Z,invert:!1,pipe:!1}),defaults:{description:(Y)=>{if(Y.children.length===0)return"unknown";if(Y.structure)return Y.structure.description;let Z=[];if(Y.basis&&!Y.refinements.some((X)=>X.impl.obviatesBasisDescription))Z.push(Y.basis.description);if(Y.refinements.length){let X=Y.refinements.toSorted((_,G)=>_.kind==="min"&&G.kind==="max"?-1:0).map((_)=>_.description);Z.push(...X)}if(Y.inner.predicate)Z.push(...Y.inner.predicate.map((X)=>X.description));return Z.join(" and ")},expected:(Y)=>` \u25E6 ${Y.errors.map((Z)=>Z.expected).join(`
30
30
  \u25E6 `)}`,problem:(Y)=>`(${Y.actual}) must be...
31
- ${Y.expected}`},intersections:{intersection:(Y,Z,X)=>C_(Y.inner,Z.inner,X),...c1("intersection",(Y,Z,X)=>{if(Y.children.length===0)return Z;let{domain:_,proto:G,...$}=Y.inner,W=G??_,H=W?L0(W,Z,X):Z;return H instanceof P?H:Y?.basis?.equals(H)?Y:Y.$.node("intersection",{...$,[H.kind]:H},{prereduced:!0})})}});class q_ extends T1{basis=this.inner.domain??this.inner.proto??null;refinements=this.children.filter((Y)=>Y.isRefinement());structure=this.inner.structure;expression=YQ(this);get shallowMorphs(){return this.inner.structure?.structuralMorph?[this.inner.structure.structuralMorph]:[]}get defaultShortDescription(){return this.basis?.defaultShortDescription??"present"}innerToJsonSchema(Y){return this.children.reduce((Z,X)=>X.isBasis()?X.toJsonSchemaRecurse(Y):X.reduceJsonSchema(Z,Y),{})}traverseAllows=(Y,Z)=>this.children.every((X)=>X.traverseAllows(Y,Z));traverseApply=(Y,Z)=>{let X=Z.currentErrorCount;if(this.basis){if(this.basis.traverseApply(Y,Z),Z.currentErrorCount>X)return}if(this.refinements.length){for(let _=0;_<this.refinements.length-1;_++)if(this.refinements[_].traverseApply(Y,Z),Z.failFast&&Z.currentErrorCount>X)return;if(this.refinements.at(-1).traverseApply(Y,Z),Z.currentErrorCount>X)return}if(this.structure){if(this.structure.traverseApply(Y,Z),Z.currentErrorCount>X)return}if(this.inner.predicate){for(let _=0;_<this.inner.predicate.length-1;_++)if(this.inner.predicate[_].traverseApply(Y,Z),Z.failFast&&Z.currentErrorCount>X)return;this.inner.predicate.at(-1).traverseApply(Y,Z)}};compile(Y){if(Y.traversalKind==="Allows"){for(let Z of this.children)Y.check(Z);Y.return(!0);return}if(Y.initializeErrorCount(),this.basis){if(Y.check(this.basis),this.children.length>1)Y.returnIfFail()}if(this.refinements.length){for(let Z=0;Z<this.refinements.length-1;Z++)Y.check(this.refinements[Z]),Y.returnIfFailFast();if(Y.check(this.refinements.at(-1)),this.structure||this.inner.predicate)Y.returnIfFail()}if(this.structure){if(Y.check(this.structure),this.inner.predicate)Y.returnIfFail()}if(this.inner.predicate){for(let Z=0;Z<this.inner.predicate.length-1;Z++)Y.check(this.inner.predicate[Z]),Y.returnIfFail();Y.check(this.inner.predicate.at(-1))}}}var iY={implementation:eJ,Node:q_},YQ=(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},C_=(Y,Z,X)=>{let _={},G=Y.proto??Y.domain,$=Z.proto??Z.domain,W=G?$?L0(G,$,X):G:$;if(W instanceof P)return W;if(W)_[W.kind]=W;return _4({kind:"intersection",baseInner:_,l:G4(Y),r:G4(Z),roots:[],ctx:X})};var ZQ=r({kind:"morph",hasAssociatedError:!1,keys:{in:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y)},morphs:{parse:E2,serialize:(Y)=>Y.map((Z)=>y(Z,"root")?Z.json:B0(Z))},declaredIn:{child:!1,serialize:(Y)=>Y.json},declaredOut:{child:!1,serialize:(Y)=>Y.json}},normalize:(Y)=>Y,defaults:{description:(Y)=>`a morph from ${Y.in.description} to ${Y.out?.description??"unknown"}`},intersections:{morph:(Y,Z,X)=>{if(!Y.hasEqualMorphs(Z))return R(XQ(Y.expression,Z.expression));let _=L0(Y.in,Z.in,X);if(_ instanceof P)return _;let G={morphs:Y.morphs};if(Y.declaredIn||Z.declaredIn){let $=L0(Y.in,Z.in,X);if($ instanceof P)return $.throw();else G.declaredIn=$}if(Y.declaredOut||Z.declaredOut){let $=L0(Y.out,Z.out,X);if($ instanceof P)return $.throw();else G.declaredOut=$}return _.distribute(($)=>X.$.node("morph",{...G,in:$}),X.$.parseSchema)},...c1("morph",(Y,Z,X)=>{let _=Y.inner.in?L0(Y.inner.in,Z,X):Z;return _ instanceof P?_:_.equals(Y.inner.in)?Y:X.$.node("morph",{...Y.inner,in:_})})}});class j_ extends T1{serializedMorphs=this.morphs.map(B0);compiledMorphs=`[${this.serializedMorphs}]`;lastMorph=this.inner.morphs.at(-1);lastMorphIfNode=y(this.lastMorph,"root")?this.lastMorph:void 0;introspectableIn=this.inner.in;introspectableOut=this.lastMorphIfNode?Object.assign(this.referencesById,this.lastMorphIfNode.referencesById)&&this.lastMorphIfNode.out:void 0;get shallowMorphs(){return Array.isArray(this.inner.in?.shallowMorphs)?[...this.inner.in.shallowMorphs,...this.morphs]:this.morphs}get in(){return this.declaredIn??this.inner.in?.in??N.intrinsic.unknown.internal}get out(){return this.declaredOut??this.introspectableOut??N.intrinsic.unknown.internal}declareIn(Y){return this.$.node("morph",{...this.inner,declaredIn:Y})}declareOut(Y){return this.$.node("morph",{...this.inner,declaredOut:Y})}expression=`(In: ${this.in.expression}) => ${this.lastMorphIfNode?"To":"Out"}<${this.out.expression}>`;get defaultShortDescription(){return this.in.meta.description??this.in.defaultShortDescription}innerToJsonSchema(Y){return Y.fallback.morph({code:"morph",base:this.in.toJsonSchemaRecurse(Y),out:this.introspectableOut?.toJsonSchemaRecurse(Y)??null})}compile(Y){if(Y.traversalKind==="Allows"){if(!this.introspectableIn)return;Y.return(Y.invoke(this.introspectableIn));return}if(this.introspectableIn)Y.line(Y.invoke(this.introspectableIn));Y.line(`ctx.queueMorphs(${this.compiledMorphs})`)}traverseAllows=(Y,Z)=>!this.introspectableIn||this.introspectableIn.traverseAllows(Y,Z);traverseApply=(Y,Z)=>{if(this.introspectableIn)this.introspectableIn.traverseApply(Y,Z);Z.queueMorphs(this.morphs)};hasEqualMorphs(Y){return a1(this.morphs,Y.morphs,{isEqual:(Z,X)=>Z===X||y(Z,"root")&&y(X,"root")&&Z.equals(X)})}}var rY={implementation:ZQ,Node:j_},XQ=(Y,Z)=>`The intersection of distinct morphs at a single path is indeterminate:
31
+ ${Y.expected}`},intersections:{intersection:(Y,Z,X)=>C_(Y.inner,Z.inner,X),...l1("intersection",(Y,Z,X)=>{if(Y.children.length===0)return Z;let{domain:_,proto:G,...$}=Y.inner,W=G??_,H=W?L0(W,Z,X):Z;return H instanceof P?H:Y?.basis?.equals(H)?Y:Y.$.node("intersection",{...$,[H.kind]:H},{prereduced:!0})})}});class q_ extends T1{basis=this.inner.domain??this.inner.proto??null;refinements=this.children.filter((Y)=>Y.isRefinement());structure=this.inner.structure;expression=YQ(this);get shallowMorphs(){return this.inner.structure?.structuralMorph?[this.inner.structure.structuralMorph]:[]}get defaultShortDescription(){return this.basis?.defaultShortDescription??"present"}innerToJsonSchema(Y){return this.children.reduce((Z,X)=>X.isBasis()?X.toJsonSchemaRecurse(Y):X.reduceJsonSchema(Z,Y),{})}traverseAllows=(Y,Z)=>this.children.every((X)=>X.traverseAllows(Y,Z));traverseApply=(Y,Z)=>{let X=Z.currentErrorCount;if(this.basis){if(this.basis.traverseApply(Y,Z),Z.currentErrorCount>X)return}if(this.refinements.length){for(let _=0;_<this.refinements.length-1;_++)if(this.refinements[_].traverseApply(Y,Z),Z.failFast&&Z.currentErrorCount>X)return;if(this.refinements.at(-1).traverseApply(Y,Z),Z.currentErrorCount>X)return}if(this.structure){if(this.structure.traverseApply(Y,Z),Z.currentErrorCount>X)return}if(this.inner.predicate){for(let _=0;_<this.inner.predicate.length-1;_++)if(this.inner.predicate[_].traverseApply(Y,Z),Z.failFast&&Z.currentErrorCount>X)return;this.inner.predicate.at(-1).traverseApply(Y,Z)}};compile(Y){if(Y.traversalKind==="Allows"){for(let Z of this.children)Y.check(Z);Y.return(!0);return}if(Y.initializeErrorCount(),this.basis){if(Y.check(this.basis),this.children.length>1)Y.returnIfFail()}if(this.refinements.length){for(let Z=0;Z<this.refinements.length-1;Z++)Y.check(this.refinements[Z]),Y.returnIfFailFast();if(Y.check(this.refinements.at(-1)),this.structure||this.inner.predicate)Y.returnIfFail()}if(this.structure){if(Y.check(this.structure),this.inner.predicate)Y.returnIfFail()}if(this.inner.predicate){for(let Z=0;Z<this.inner.predicate.length-1;Z++)Y.check(this.inner.predicate[Z]),Y.returnIfFail();Y.check(this.inner.predicate.at(-1))}}}var iY={implementation:eJ,Node:q_},YQ=(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},C_=(Y,Z,X)=>{let _={},G=Y.proto??Y.domain,$=Z.proto??Z.domain,W=G?$?L0(G,$,X):G:$;if(W instanceof P)return W;if(W)_[W.kind]=W;return _4({kind:"intersection",baseInner:_,l:G4(Y),r:G4(Z),roots:[],ctx:X})};var ZQ=r({kind:"morph",hasAssociatedError:!1,keys:{in:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y)},morphs:{parse:E2,serialize:(Y)=>Y.map((Z)=>y(Z,"root")?Z.json:B0(Z))},declaredIn:{child:!1,serialize:(Y)=>Y.json},declaredOut:{child:!1,serialize:(Y)=>Y.json}},normalize:(Y)=>Y,defaults:{description:(Y)=>`a morph from ${Y.in.description} to ${Y.out?.description??"unknown"}`},intersections:{morph:(Y,Z,X)=>{if(!Y.hasEqualMorphs(Z))return R(XQ(Y.expression,Z.expression));let _=L0(Y.in,Z.in,X);if(_ instanceof P)return _;let G={morphs:Y.morphs};if(Y.declaredIn||Z.declaredIn){let $=L0(Y.in,Z.in,X);if($ instanceof P)return $.throw();else G.declaredIn=$}if(Y.declaredOut||Z.declaredOut){let $=L0(Y.out,Z.out,X);if($ instanceof P)return $.throw();else G.declaredOut=$}return _.distribute(($)=>X.$.node("morph",{...G,in:$}),X.$.parseSchema)},...l1("morph",(Y,Z,X)=>{let _=Y.inner.in?L0(Y.inner.in,Z,X):Z;return _ instanceof P?_:_.equals(Y.inner.in)?Y:X.$.node("morph",{...Y.inner,in:_})})}});class j_ extends T1{serializedMorphs=this.morphs.map(B0);compiledMorphs=`[${this.serializedMorphs}]`;lastMorph=this.inner.morphs.at(-1);lastMorphIfNode=y(this.lastMorph,"root")?this.lastMorph:void 0;introspectableIn=this.inner.in;introspectableOut=this.lastMorphIfNode?Object.assign(this.referencesById,this.lastMorphIfNode.referencesById)&&this.lastMorphIfNode.out:void 0;get shallowMorphs(){return Array.isArray(this.inner.in?.shallowMorphs)?[...this.inner.in.shallowMorphs,...this.morphs]:this.morphs}get in(){return this.declaredIn??this.inner.in?.in??N.intrinsic.unknown.internal}get out(){return this.declaredOut??this.introspectableOut??N.intrinsic.unknown.internal}declareIn(Y){return this.$.node("morph",{...this.inner,declaredIn:Y})}declareOut(Y){return this.$.node("morph",{...this.inner,declaredOut:Y})}expression=`(In: ${this.in.expression}) => ${this.lastMorphIfNode?"To":"Out"}<${this.out.expression}>`;get defaultShortDescription(){return this.in.meta.description??this.in.defaultShortDescription}innerToJsonSchema(Y){return Y.fallback.morph({code:"morph",base:this.in.toJsonSchemaRecurse(Y),out:this.introspectableOut?.toJsonSchemaRecurse(Y)??null})}compile(Y){if(Y.traversalKind==="Allows"){if(!this.introspectableIn)return;Y.return(Y.invoke(this.introspectableIn));return}if(this.introspectableIn)Y.line(Y.invoke(this.introspectableIn));Y.line(`ctx.queueMorphs(${this.compiledMorphs})`)}traverseAllows=(Y,Z)=>!this.introspectableIn||this.introspectableIn.traverseAllows(Y,Z);traverseApply=(Y,Z)=>{if(this.introspectableIn)this.introspectableIn.traverseApply(Y,Z);Z.queueMorphs(this.morphs)};hasEqualMorphs(Y){return a1(this.morphs,Y.morphs,{isEqual:(Z,X)=>Z===X||y(Z,"root")&&y(X,"root")&&Z.equals(X)})}}var rY={implementation:ZQ,Node:j_},XQ=(Y,Z)=>`The intersection of distinct morphs at a single path is indeterminate:
32
32
  Left: ${Y}
33
- Right: ${Z}`;var _Q=r({kind:"proto",hasAssociatedError:!0,collapsibleKey:"proto",keys:{proto:{serialize:(Y)=>h4(Y)??N1(Y)},dateAllowsInvalid:{}},normalize:(Y)=>{let Z=typeof Y==="string"?{proto:S2[Y]}:typeof Y==="function"?D0(Y)?Y:{proto:Y}:typeof Y.proto==="string"?{...Y,proto:S2[Y.proto]}:Y;if(typeof Z.proto!=="function")R(Y8.writeInvalidSchemaMessage(Z.proto));if(s2(Z,"dateAllowsInvalid")&&Z.proto!==Date)R(Y8.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?TX[Y.builtinName]:`an instance of ${Y.proto.name}`,actual:(Y)=>Y instanceof Date&&Y.toString()==="Invalid Date"?"an invalid Date":f4(Y)},intersections:{proto:(Y,Z)=>Y.proto===Date&&Z.proto===Date?Y.dateAllowsInvalid?Z:Y:LY(Y.proto,Z.proto)?Y:LY(Z.proto,Y.proto)?Z:P.init("proto",Y,Z),domain:(Y,Z)=>Z.domain==="object"?Y:P.init("domain",N.intrinsic.object.internal,Z)}});class S_ extends x2{builtinName=h4(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 Y8={implementation:_Q,Node:S_,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 GQ=r({kind:"union",hasAssociatedError:!0,collapsibleKey:"branches",keys:{ordered:{},branches:{child:!0,parse:(Y,Z)=>{let X=[];for(let _ of Y){let G=y(_,"root")?_.branches:Z.$.parseSchema(_).branches;for(let $ of G)if($.hasKind("morph")){let W=X.findIndex((H)=>H.hasKind("morph")&&H.hasEqualMorphs($));if(W===-1)X.push($);else{let H=X[W];X[W]=Z.$.node("morph",{...H.inner,in:H.in.rawOr($.in)})}}else X.push($)}if(!Z.def.ordered)X.sort((_,G)=>_.hash<G.hash?-1:1);return X}}},normalize:(Y)=>F0(Y)?{branches:Y}:Y,reduce:(Y,Z)=>{let X=OQ(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,J4),expected:(Y)=>{let Z=DX(Y.errors,"propString"),X=Object.entries(Z).map(([_,G])=>{let $=[];for(let Q of G)u1($,Q.expected);let W=J4($),H=G.every((Q)=>Q.actual===G[0].actual)?G[0].actual:i(G[0].data);return`${_&&`${_} `}must be ${W}${H&&` (was ${H})`}`});return J4(X)},problem:(Y)=>Y.expected,message:(Y)=>Y.problem},intersections:{union:(Y,Z,X)=>{if(Y.isNever!==Z.isNever)return P.init("presence",Y,Z);let _;if(Y.ordered){if(Z.ordered)R(DQ(Y.expression,Z.expression));if(_=nY(Z.branches,Y.branches,X),_ instanceof P)_.invert()}else _=nY(Y.branches,Z.branches,X);if(_ instanceof P)return _;return X.$.parseSchema(Y.ordered||Z.ordered?{branches:_,ordered:!0}:{branches:_})},...c1("union",(Y,Z,X)=>{let _=nY(Y.branches,[Z],X);if(_ instanceof P)return _;if(_.length===1)return _[0];return X.$.parseSchema(Y.ordered?{branches:_,ordered:!0}:{branches:_})})}});class x_ extends T1{isBoolean=this.branches.length===2&&this.branches[0].hasUnit(!1)&&this.branches[1].hasUnit(!0);get branchGroups(){let Y=[],Z=-1;for(let X of this.branches){if(X.hasKind("unit")&&X.domain==="boolean"){if(Z===-1)Z=Y.length,Y.push(X);else Y[Z]=N.intrinsic.boolean;continue}Y.push(X)}return Y}unitBranches=this.branches.filter((Y)=>Y.in.hasKind("unit"));discriminant=this.discriminate();discriminantJson=this.discriminant?zQ(this.discriminant):null;expression=this.distribute((Y)=>Y.nestableExpression,EQ);createBranchedOptimisticRootApply(){return(Y,Z)=>{let X=this.traverseOptimistic(Y);if(X!==M1)return X;let _=new f1(Y,this.$.resolvedConfig);return this.traverseApply(Y,_),_.finalize(Z)}}get shallowMorphs(){return this.branches.reduce((Y,Z)=>u1(Y,Z.shallowMorphs),[])}get defaultShortDescription(){return this.distribute((Y)=>Y.defaultShortDescription,J4)}innerToJsonSchema(Y){if(this.branchGroups.length===1&&this.branchGroups[0].equals(N.intrinsic.boolean))return{type:"boolean"};let Z=this.branchGroups.map((X)=>X.toJsonSchemaRecurse(Y));if(Z.every((X)=>Object.keys(X).length===1&&s2(X,"const")))return{enum:Z.map((X)=>X.const)};return{anyOf:Z}}traverseAllows=(Y,Z)=>this.branches.some((X)=>X.traverseAllows(Y,Z));traverseApply=(Y,Z)=>{let X=[];for(let _=0;_<this.branches.length;_++){if(Z.pushBranch(),this.branches[_].traverseApply(Y,Z),!Z.hasError()){if(this.branches[_].includesTransform)return Z.queuedMorphs.push(...Z.popBranch().queuedMorphs);return Z.popBranch()}X.push(Z.popBranch().error)}Z.errorFromNodeContext({code:"union",errors:X,meta:this.meta})};traverseOptimistic=(Y)=>{for(let Z=0;Z<this.branches.length;Z++){let X=this.branches[Z];if(X.traverseAllows(Y)){if(X.contextFreeMorph)return X.contextFreeMorph(Y);return Y}}return M1};compile(Y){if(!this.discriminant||this.unitBranches.length===this.branches.length&&this.branches.length===2)return this.compileIndiscriminable(Y);let Z=this.discriminant.optionallyChainedPropString;if(this.discriminant.kind==="domain")Z=`typeof ${Z} === "object" ? ${Z} === null ? "null" : "object" : typeof ${Z} === "function" ? "object" : typeof ${Z}`;let X=this.discriminant.cases,_=Object.keys(X),{optimistic:G}=Y;if(Y.optimistic=!1,Y.block(`switch(${Z})`,()=>{for(let J in X){let U=X[J],E=J==="default"?J:`case ${J}`;Y.line(`${E}: return ${U===!0?G?Y.data:U:G?`${Y.invoke(U)} ? ${U.contextFreeMorph?`${B0(U.contextFreeMorph)}(${Y.data})`:Y.data} : "${M1}"`:Y.invoke(U)}`)}return Y}),Y.traversalKind==="Allows"){Y.return(G?`"${M1}"`:!1);return}let $=J4(this.discriminant.kind==="domain"?_.map((J)=>{let U=J.slice(1,-1);return U==="function"?U1.object:U1[U]}):_),W=this.discriminant.path.map((J)=>typeof J==="symbol"?B0(J):JSON.stringify(J)),H=JSON.stringify($),Q=this.discriminant.kind==="domain"?`${QQ}[${Z}]`:`${UQ}(${Z})`;Y.line(`ctx.errorFromNodeContext({
33
+ Right: ${Z}`;var _Q=r({kind:"proto",hasAssociatedError:!0,collapsibleKey:"proto",keys:{proto:{serialize:(Y)=>h4(Y)??N1(Y)},dateAllowsInvalid:{}},normalize:(Y)=>{let Z=typeof Y==="string"?{proto:S2[Y]}:typeof Y==="function"?D0(Y)?Y:{proto:Y}:typeof Y.proto==="string"?{...Y,proto:S2[Y.proto]}:Y;if(typeof Z.proto!=="function")R(Y8.writeInvalidSchemaMessage(Z.proto));if(s2(Z,"dateAllowsInvalid")&&Z.proto!==Date)R(Y8.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?TX[Y.builtinName]:`an instance of ${Y.proto.name}`,actual:(Y)=>Y instanceof Date&&Y.toString()==="Invalid Date"?"an invalid Date":f4(Y)},intersections:{proto:(Y,Z)=>Y.proto===Date&&Z.proto===Date?Y.dateAllowsInvalid?Z:Y:LY(Y.proto,Z.proto)?Y:LY(Z.proto,Y.proto)?Z:P.init("proto",Y,Z),domain:(Y,Z)=>Z.domain==="object"?Y:P.init("domain",N.intrinsic.object.internal,Z)}});class S_ extends x2{builtinName=h4(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 Y8={implementation:_Q,Node:S_,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 GQ=r({kind:"union",hasAssociatedError:!0,collapsibleKey:"branches",keys:{ordered:{},branches:{child:!0,parse:(Y,Z)=>{let X=[];for(let _ of Y){let G=y(_,"root")?_.branches:Z.$.parseSchema(_).branches;for(let $ of G)if($.hasKind("morph")){let W=X.findIndex((H)=>H.hasKind("morph")&&H.hasEqualMorphs($));if(W===-1)X.push($);else{let H=X[W];X[W]=Z.$.node("morph",{...H.inner,in:H.in.rawOr($.in)})}}else X.push($)}if(!Z.def.ordered)X.sort((_,G)=>_.hash<G.hash?-1:1);return X}}},normalize:(Y)=>F0(Y)?{branches:Y}:Y,reduce:(Y,Z)=>{let X=OQ(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,J4),expected:(Y)=>{let Z=DX(Y.errors,"propString"),X=Object.entries(Z).map(([_,G])=>{let $=[];for(let Q of G)d1($,Q.expected);let W=J4($),H=G.every((Q)=>Q.actual===G[0].actual)?G[0].actual:i(G[0].data);return`${_&&`${_} `}must be ${W}${H&&` (was ${H})`}`});return J4(X)},problem:(Y)=>Y.expected,message:(Y)=>Y.problem},intersections:{union:(Y,Z,X)=>{if(Y.isNever!==Z.isNever)return P.init("presence",Y,Z);let _;if(Y.ordered){if(Z.ordered)R(DQ(Y.expression,Z.expression));if(_=nY(Z.branches,Y.branches,X),_ instanceof P)_.invert()}else _=nY(Y.branches,Z.branches,X);if(_ instanceof P)return _;return X.$.parseSchema(Y.ordered||Z.ordered?{branches:_,ordered:!0}:{branches:_})},...l1("union",(Y,Z,X)=>{let _=nY(Y.branches,[Z],X);if(_ instanceof P)return _;if(_.length===1)return _[0];return X.$.parseSchema(Y.ordered?{branches:_,ordered:!0}:{branches:_})})}});class x_ extends T1{isBoolean=this.branches.length===2&&this.branches[0].hasUnit(!1)&&this.branches[1].hasUnit(!0);get branchGroups(){let Y=[],Z=-1;for(let X of this.branches){if(X.hasKind("unit")&&X.domain==="boolean"){if(Z===-1)Z=Y.length,Y.push(X);else Y[Z]=N.intrinsic.boolean;continue}Y.push(X)}return Y}unitBranches=this.branches.filter((Y)=>Y.in.hasKind("unit"));discriminant=this.discriminate();discriminantJson=this.discriminant?zQ(this.discriminant):null;expression=this.distribute((Y)=>Y.nestableExpression,EQ);createBranchedOptimisticRootApply(){return(Y,Z)=>{let X=this.traverseOptimistic(Y);if(X!==M1)return X;let _=new f1(Y,this.$.resolvedConfig);return this.traverseApply(Y,_),_.finalize(Z)}}get shallowMorphs(){return this.branches.reduce((Y,Z)=>d1(Y,Z.shallowMorphs),[])}get defaultShortDescription(){return this.distribute((Y)=>Y.defaultShortDescription,J4)}innerToJsonSchema(Y){if(this.branchGroups.length===1&&this.branchGroups[0].equals(N.intrinsic.boolean))return{type:"boolean"};let Z=this.branchGroups.map((X)=>X.toJsonSchemaRecurse(Y));if(Z.every((X)=>Object.keys(X).length===1&&s2(X,"const")))return{enum:Z.map((X)=>X.const)};return{anyOf:Z}}traverseAllows=(Y,Z)=>this.branches.some((X)=>X.traverseAllows(Y,Z));traverseApply=(Y,Z)=>{let X=[];for(let _=0;_<this.branches.length;_++){if(Z.pushBranch(),this.branches[_].traverseApply(Y,Z),!Z.hasError()){if(this.branches[_].includesTransform)return Z.queuedMorphs.push(...Z.popBranch().queuedMorphs);return Z.popBranch()}X.push(Z.popBranch().error)}Z.errorFromNodeContext({code:"union",errors:X,meta:this.meta})};traverseOptimistic=(Y)=>{for(let Z=0;Z<this.branches.length;Z++){let X=this.branches[Z];if(X.traverseAllows(Y)){if(X.contextFreeMorph)return X.contextFreeMorph(Y);return Y}}return M1};compile(Y){if(!this.discriminant||this.unitBranches.length===this.branches.length&&this.branches.length===2)return this.compileIndiscriminable(Y);let Z=this.discriminant.optionallyChainedPropString;if(this.discriminant.kind==="domain")Z=`typeof ${Z} === "object" ? ${Z} === null ? "null" : "object" : typeof ${Z} === "function" ? "object" : typeof ${Z}`;let X=this.discriminant.cases,_=Object.keys(X),{optimistic:G}=Y;if(Y.optimistic=!1,Y.block(`switch(${Z})`,()=>{for(let J in X){let U=X[J],E=J==="default"?J:`case ${J}`;Y.line(`${E}: return ${U===!0?G?Y.data:U:G?`${Y.invoke(U)} ? ${U.contextFreeMorph?`${B0(U.contextFreeMorph)}(${Y.data})`:Y.data} : "${M1}"`:Y.invoke(U)}`)}return Y}),Y.traversalKind==="Allows"){Y.return(G?`"${M1}"`:!1);return}let $=J4(this.discriminant.kind==="domain"?_.map((J)=>{let U=J.slice(1,-1);return U==="function"?U1.object:U1[U]}):_),W=this.discriminant.path.map((J)=>typeof J==="symbol"?B0(J):JSON.stringify(J)),H=JSON.stringify($),Q=this.discriminant.kind==="domain"?`${QQ}[${Z}]`:`${UQ}(${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?`${B0(X.contextFreeMorph)}(${Y.data})`:Y.data:!0));Y.return(Z?`"${M1}"`:!1)}}get nestableExpression(){return this.isBoolean?"boolean":`(${this.expression})`}discriminate(){if(this.branches.length<2||this.isCyclic)return null;if(this.unitBranches.length===this.branches.length){let G=o(this.unitBranches,($,W)=>[`${W.in.serializedValue}`,W.hasKind("morph")?W:!0]);return{kind:"unit",path:[],optionallyChainedPropString:"data",cases:G}}let Y=[];for(let G=0;G<this.branches.length-1;G++){let $=this.branches[G];for(let W=G+1;W<this.branches.length;W++){let H=this.branches[W],Q=E1($.in,H.in,$.$);if(!(Q instanceof P))continue;for(let J of Q){if(!J.kind||J.optional)continue;let U,E;if(J.kind==="domain"){let{l:L,r:w}=J;U=`"${typeof L==="string"?L:L.domain}"`,E=`"${typeof w==="string"?w:w.domain}"`}else if(J.kind==="unit")U=J.l.serializedValue,E=J.r.serializedValue;else continue;let V=Y.find((L)=>a1(L.path,J.path)&&L.kind===J.kind);if(!V)Y.push({kind:J.kind,cases:{[U]:{branchIndices:[G],condition:J.l},[E]:{branchIndices:[W],condition:J.r}},path:J.path});else{if(V.cases[U])V.cases[U].branchIndices=u1(V.cases[U].branchIndices,G);else V.cases[U]??={branchIndices:[G],condition:J.l};if(V.cases[E])V.cases[E].branchIndices=u1(V.cases[E].branchIndices,W);else V.cases[E]??={branchIndices:[W],condition:J.r}}}}}let Z=this.ordered?HQ(Y,this.branches):Y;if(!Z.length)return null;let X=$Q(Z,this),_={};for(let G in X.best.cases){let $=WQ(X,G);if($===null){_[G]=!0;continue}if($.length===this.branches.length)return null;if(this.ordered)$.sort((Q,J)=>Q.originalIndex-J.originalIndex);let W=$.map((Q)=>Q.branch),H=W.length===1?W[0]:this.$.node("union",this.ordered?{branches:W,ordered:!0}:W);Object.assign(this.referencesById,H.referencesById),_[G]=H}if(X.defaultEntries.length){let G=X.defaultEntries.map(($)=>$.branch);_.default=this.$.node("union",this.ordered?{branches:G,ordered:!0}:G,{prereduced:!0}),Object.assign(this.referencesById,_.default.referencesById)}return Object.assign(X.location,{cases:_})}}var $Q=(Y,Z)=>{let X=Y.sort(($,W)=>Object.keys(W.cases).length-Object.keys($.cases).length)[0],_={kind:X.kind,path:X.path,optionallyChainedPropString:f_(X.path)},G=Z.branches.map(($,W)=>({originalIndex:W,branch:$}));return{best:X,location:_,defaultEntries:G,node:Z}},WQ=(Y,Z)=>{let X=Y.best.cases[Z],_=JQ(X.condition,Y.location.path,Y.node.$),G=[],$=[];for(let W=0;W<Y.defaultEntries.length;W++){let H=Y.defaultEntries[W];if(X.branchIndices.includes(H.originalIndex)){let Q=P_(Y.node.branches[H.originalIndex],Y.location);if(Q===null)G=null;else G?.push({originalIndex:H.originalIndex,branch:Q})}else if(H.branch.hasKind("alias")&&_.hasKind("domain")&&_.domain==="object")G?.push(H);else{if(H.branch.in.overlaps(_)){let Q=P_(H.branch,Y.location);G?.push({originalIndex:H.originalIndex,branch:Q})}$.push(H)}}return Y.defaultEntries=$,G},HQ=(Y,Z)=>{return Y.filter((_)=>{let G=Object.values(_.cases).map(($)=>$.branchIndices);for(let $=0;$<G.length-1;$++){let W=G[$];for(let H=$+1;H<G.length;H++){let Q=G[H];for(let J of W)for(let U of Q)if(J>U){if(Z[J].overlaps(Z[U]))return!1}}}return!0})},JQ=(Y,Z,X)=>{let _=Y==="undefined"?X.node("unit",{unit:void 0}):Y==="null"?X.node("unit",{unit:null}):Y==="boolean"?X.units([!0,!1]):Y;for(let G=Z.length-1;G>=0;G--){let $=Z[G];_=X.node("intersection",typeof $==="number"?{proto:"Array",sequence:[...OX($).map((W)=>({})),_]}:{domain:"object",required:[{key:$,value:_}]})}return _},f_=(Y)=>Y.reduce((Z,X)=>Z+TY(X,!0),"data"),QQ=B0(LX),UQ=B0(i),sY={implementation:GQ,Node:x_},zQ=(Y)=>({kind:Y.kind,path:Y.path.map((Z)=>typeof Z==="string"?Z:Z2(Z)),cases:o(Y.cases,(Z,X)=>[Z,X===!0?X:X.hasKind("union")&&X.discriminantJson?X.discriminantJson:X.json])}),FQ={delimiter:" | ",finalDelimiter:" | "},EQ=(Y)=>J4(Y,FQ),J4=(Y,Z)=>{let X=Z?.delimiter??", ",_=Z?.finalDelimiter??" or ";if(Y.length===0)return"never";if(Y.length===1)return Y[0];if(Y.length===2&&Y[0]==="false"&&Y[1]==="true"||Y[0]==="true"&&Y[1]==="false")return"boolean";let G={},$=Y.filter((H)=>G[H]?!1:G[H]=!0),W=$.pop();return`${$.join(X)}${$.length?_:""}${W}`},nY=(Y,Z,X)=>{let _=Z.map(()=>[]);for(let $=0;$<Y.length;$++){let W={};for(let H=0;H<Z.length;H++){if(_[H]===null)continue;if(Y[$].equals(Z[H])){_[H]=null,W={};break}let Q=L0(Y[$],Z[H],X);if(Q instanceof P)continue;if(Q.equals(Y[$])){_[H].push(Y[$]),W={};break}if(Q.equals(Z[H]))_[H]=null;else W[H]=Q}for(let H in W)_[H][$]=W[H]}let G=_.flatMap(($,W)=>$?.flatMap((H)=>H.branches)??Z[W]);return G.length===0?P.init("union",Y,Z):G},OQ=({branches:Y,ordered:Z})=>{if(Y.length<2)return Y;let X=Y.map(()=>!0);for(let _=0;_<Y.length;_++)for(let G=_+1;G<Y.length&&X[_]&&X[G];G++){if(Y[_].equals(Y[G])){X[G]=!1;continue}let $=E1(Y[_].in,Y[G].in,Y[0].$);if($ instanceof P)continue;if(!Z)VQ(Y[_],Y[G]);if($.equals(Y[_].in))X[_]=!!Z;else if($.equals(Y[G].in))X[G]=!1}return Y.filter((_,G)=>X[G])},VQ=(Y,Z)=>{if(!Y.includesTransform&&!Z.includesTransform)return;if(!a1(Y.shallowMorphs,Z.shallowMorphs))R(v_(Y.expression,Z.expression));if(!a1(Y.flatMorphs,Z.flatMorphs,{isEqual:(X,_)=>X.propString===_.propString&&(X.node.hasKind("morph")&&_.node.hasKind("morph")?X.node.hasEqualMorphs(_.node):X.node.hasKind("intersection")&&_.node.hasKind("intersection")?X.node.structure?.structuralMorphRef===_.node.structure?.structuralMorphRef:!1)}))R(v_(Y.expression,Z.expression))},P_=(Y,Z)=>Y.transform((X,_)=>{if(X==="domain"||X==="unit")return null;return _},{shouldTransform:(X,_)=>{let G=f_(_.path);if(!Z.optionallyChainedPropString.startsWith(G))return!1;if(X.hasKind("domain")&&X.domain==="object")return!0;if((X.hasKind("domain")||Z.kind==="unit")&&G===Z.optionallyChainedPropString)return!0;return X.children.length!==0&&X.kind!=="index"}}),v_=(Y,Z)=>`An unordered union of a type including a morph and a type with overlapping input is indeterminate:
39
+ })`)}compileIndiscriminable(Y){if(Y.traversalKind==="Apply"){Y.const("errors","[]");for(let Z of this.branches)Y.line("ctx.pushBranch()").line(Y.invoke(Z)).if("!ctx.hasError()",()=>Y.return(Z.includesTransform?"ctx.queuedMorphs.push(...ctx.popBranch().queuedMorphs)":"ctx.popBranch()")).line("errors.push(ctx.popBranch().error)");Y.line(`ctx.errorFromNodeContext({ code: "union", errors, meta: ${this.compiledMeta} })`)}else{let{optimistic:Z}=Y;Y.optimistic=!1;for(let X of this.branches)Y.if(`${Y.invoke(X)}`,()=>Y.return(Z?X.contextFreeMorph?`${B0(X.contextFreeMorph)}(${Y.data})`:Y.data:!0));Y.return(Z?`"${M1}"`:!1)}}get nestableExpression(){return this.isBoolean?"boolean":`(${this.expression})`}discriminate(){if(this.branches.length<2||this.isCyclic)return null;if(this.unitBranches.length===this.branches.length){let G=o(this.unitBranches,($,W)=>[`${W.in.serializedValue}`,W.hasKind("morph")?W:!0]);return{kind:"unit",path:[],optionallyChainedPropString:"data",cases:G}}let Y=[];for(let G=0;G<this.branches.length-1;G++){let $=this.branches[G];for(let W=G+1;W<this.branches.length;W++){let H=this.branches[W],Q=E1($.in,H.in,$.$);if(!(Q instanceof P))continue;for(let J of Q){if(!J.kind||J.optional)continue;let U,E;if(J.kind==="domain"){let{l:L,r:w}=J;U=`"${typeof L==="string"?L:L.domain}"`,E=`"${typeof w==="string"?w:w.domain}"`}else if(J.kind==="unit")U=J.l.serializedValue,E=J.r.serializedValue;else continue;let V=Y.find((L)=>a1(L.path,J.path)&&L.kind===J.kind);if(!V)Y.push({kind:J.kind,cases:{[U]:{branchIndices:[G],condition:J.l},[E]:{branchIndices:[W],condition:J.r}},path:J.path});else{if(V.cases[U])V.cases[U].branchIndices=d1(V.cases[U].branchIndices,G);else V.cases[U]??={branchIndices:[G],condition:J.l};if(V.cases[E])V.cases[E].branchIndices=d1(V.cases[E].branchIndices,W);else V.cases[E]??={branchIndices:[W],condition:J.r}}}}}let Z=this.ordered?HQ(Y,this.branches):Y;if(!Z.length)return null;let X=$Q(Z,this),_={};for(let G in X.best.cases){let $=WQ(X,G);if($===null){_[G]=!0;continue}if($.length===this.branches.length)return null;if(this.ordered)$.sort((Q,J)=>Q.originalIndex-J.originalIndex);let W=$.map((Q)=>Q.branch),H=W.length===1?W[0]:this.$.node("union",this.ordered?{branches:W,ordered:!0}:W);Object.assign(this.referencesById,H.referencesById),_[G]=H}if(X.defaultEntries.length){let G=X.defaultEntries.map(($)=>$.branch);_.default=this.$.node("union",this.ordered?{branches:G,ordered:!0}:G,{prereduced:!0}),Object.assign(this.referencesById,_.default.referencesById)}return Object.assign(X.location,{cases:_})}}var $Q=(Y,Z)=>{let X=Y.sort(($,W)=>Object.keys(W.cases).length-Object.keys($.cases).length)[0],_={kind:X.kind,path:X.path,optionallyChainedPropString:f_(X.path)},G=Z.branches.map(($,W)=>({originalIndex:W,branch:$}));return{best:X,location:_,defaultEntries:G,node:Z}},WQ=(Y,Z)=>{let X=Y.best.cases[Z],_=JQ(X.condition,Y.location.path,Y.node.$),G=[],$=[];for(let W=0;W<Y.defaultEntries.length;W++){let H=Y.defaultEntries[W];if(X.branchIndices.includes(H.originalIndex)){let Q=P_(Y.node.branches[H.originalIndex],Y.location);if(Q===null)G=null;else G?.push({originalIndex:H.originalIndex,branch:Q})}else if(H.branch.hasKind("alias")&&_.hasKind("domain")&&_.domain==="object")G?.push(H);else{if(H.branch.in.overlaps(_)){let Q=P_(H.branch,Y.location);G?.push({originalIndex:H.originalIndex,branch:Q})}$.push(H)}}return Y.defaultEntries=$,G},HQ=(Y,Z)=>{return Y.filter((_)=>{let G=Object.values(_.cases).map(($)=>$.branchIndices);for(let $=0;$<G.length-1;$++){let W=G[$];for(let H=$+1;H<G.length;H++){let Q=G[H];for(let J of W)for(let U of Q)if(J>U){if(Z[J].overlaps(Z[U]))return!1}}}return!0})},JQ=(Y,Z,X)=>{let _=Y==="undefined"?X.node("unit",{unit:void 0}):Y==="null"?X.node("unit",{unit:null}):Y==="boolean"?X.units([!0,!1]):Y;for(let G=Z.length-1;G>=0;G--){let $=Z[G];_=X.node("intersection",typeof $==="number"?{proto:"Array",sequence:[...OX($).map((W)=>({})),_]}:{domain:"object",required:[{key:$,value:_}]})}return _},f_=(Y)=>Y.reduce((Z,X)=>Z+TY(X,!0),"data"),QQ=B0(LX),UQ=B0(i),sY={implementation:GQ,Node:x_},zQ=(Y)=>({kind:Y.kind,path:Y.path.map((Z)=>typeof Z==="string"?Z:Z2(Z)),cases:o(Y.cases,(Z,X)=>[Z,X===!0?X:X.hasKind("union")&&X.discriminantJson?X.discriminantJson:X.json])}),FQ={delimiter:" | ",finalDelimiter:" | "},EQ=(Y)=>J4(Y,FQ),J4=(Y,Z)=>{let X=Z?.delimiter??", ",_=Z?.finalDelimiter??" or ";if(Y.length===0)return"never";if(Y.length===1)return Y[0];if(Y.length===2&&Y[0]==="false"&&Y[1]==="true"||Y[0]==="true"&&Y[1]==="false")return"boolean";let G={},$=Y.filter((H)=>G[H]?!1:G[H]=!0),W=$.pop();return`${$.join(X)}${$.length?_:""}${W}`},nY=(Y,Z,X)=>{let _=Z.map(()=>[]);for(let $=0;$<Y.length;$++){let W={};for(let H=0;H<Z.length;H++){if(_[H]===null)continue;if(Y[$].equals(Z[H])){_[H]=null,W={};break}let Q=L0(Y[$],Z[H],X);if(Q instanceof P)continue;if(Q.equals(Y[$])){_[H].push(Y[$]),W={};break}if(Q.equals(Z[H]))_[H]=null;else W[H]=Q}for(let H in W)_[H][$]=W[H]}let G=_.flatMap(($,W)=>$?.flatMap((H)=>H.branches)??Z[W]);return G.length===0?P.init("union",Y,Z):G},OQ=({branches:Y,ordered:Z})=>{if(Y.length<2)return Y;let X=Y.map(()=>!0);for(let _=0;_<Y.length;_++)for(let G=_+1;G<Y.length&&X[_]&&X[G];G++){if(Y[_].equals(Y[G])){X[G]=!1;continue}let $=E1(Y[_].in,Y[G].in,Y[0].$);if($ instanceof P)continue;if(!Z)VQ(Y[_],Y[G]);if($.equals(Y[_].in))X[_]=!!Z;else if($.equals(Y[G].in))X[G]=!1}return Y.filter((_,G)=>X[G])},VQ=(Y,Z)=>{if(!Y.includesTransform&&!Z.includesTransform)return;if(!a1(Y.shallowMorphs,Z.shallowMorphs))R(v_(Y.expression,Z.expression));if(!a1(Y.flatMorphs,Z.flatMorphs,{isEqual:(X,_)=>X.propString===_.propString&&(X.node.hasKind("morph")&&_.node.hasKind("morph")?X.node.hasEqualMorphs(_.node):X.node.hasKind("intersection")&&_.node.hasKind("intersection")?X.node.structure?.structuralMorphRef===_.node.structure?.structuralMorphRef:!1)}))R(v_(Y.expression,Z.expression))},P_=(Y,Z)=>Y.transform((X,_)=>{if(X==="domain"||X==="unit")return null;return _},{shouldTransform:(X,_)=>{let G=f_(_.path);if(!Z.optionallyChainedPropString.startsWith(G))return!1;if(X.hasKind("domain")&&X.domain==="object")return!0;if((X.hasKind("domain")||Z.kind==="unit")&&G===Z.optionallyChainedPropString)return!0;return X.children.length!==0&&X.kind!=="index"}}),v_=(Y,Z)=>`An unordered union of a type including a morph and a type with overlapping input is indeterminate:
40
40
  Left: ${Y}
41
41
  Right: ${Z}`,DQ=(Y,Z)=>`The intersection of two ordered unions is indeterminate:
42
42
  Left: ${Y}
43
- Right: ${Z}`;var LQ=r({kind:"unit",hasAssociatedError:!0,keys:{unit:{preserveUndefined:!0,serialize:(Y)=>Y instanceof Date?Y.toISOString():N1(Y)}},normalize:(Y)=>Y,defaults:{description:(Y)=>i(Y.unit),problem:({expected:Y,actual:Z})=>`${Y===Z?`must be reference equal to ${Y} (serialized to the same value)`:`must be ${Y} (was ${Z})`}`},intersections:{unit:(Y,Z)=>P.init("unit",Y,Z),...c1("unit",(Y,Z)=>{if(Z.allows(Y.unit))return Y;let X=Z.hasKind("intersection")?Z.basis:Z;if(X){let _=X.hasKind("domain")?X:N.intrinsic.object;if(Y.domain!==_.domain){let G=Y.domain==="undefined"||Y.domain==="null"||Y.domain==="boolean"?Y.domain:N.intrinsic[Y.domain];return P.init("domain",G,_)}}return P.init("assignability",Y,Z.hasKind("intersection")?Z.children.find((_)=>!_.allows(Y.unit)):Z)})}});class k_ extends x2{compiledValue=this.json.unit;serializedValue=typeof this.unit==="string"||this.unit instanceof Date?JSON.stringify(this.compiledValue):`${this.compiledValue}`;compiledCondition=h_(this.unit,this.serializedValue);compiledNegation=h_(this.unit,this.serializedValue,"negated");expression=i(this.unit);domain=y0(this.unit);get defaultShortDescription(){return this.domain==="object"?U1.object:this.description}innerToJsonSchema(Y){return this.unit===null?{type:"null"}:N.intrinsic.jsonPrimitive.allows(this.unit)?{const:this.unit}:Y.fallback.unit({code:"unit",base:{},unit:this.unit})}traverseAllows=this.unit instanceof Date?(Y)=>Y instanceof Date&&Y.toISOString()===this.compiledValue:Number.isNaN(this.unit)?(Y)=>Number.isNaN(Y):(Y)=>Y===this.unit}var tY={implementation:LQ,Node:k_},h_=(Y,Z,X)=>{if(Y instanceof Date){let _=`data instanceof Date && data.toISOString() === ${Z}`;return X?`!(${_})`:_}if(Number.isNaN(Y))return`${X?"!":""}Number.isNaN(data)`;return`data ${X?"!":"="}== ${Z}`};var MQ=r({kind:"index",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{signature:{child:!0,parse:(Y,Z)=>{let X=Z.$.parseSchema(Y);if(!X.extends(N.intrinsic.key))return R(wQ(X.expression));let _=X.branches.filter((G)=>G.hasKind("unit"));if(_.length)return R(AQ(_.map((G)=>i(G.unit))));return X}},value:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y)}},normalize:(Y)=>Y,defaults:{description:(Y)=>`[${Y.signature.expression}]: ${Y.value.description}`},intersections:{index:(Y,Z,X)=>{if(Y.signature.equals(Z.signature)){let _=L0(Y.value,Z.value,X),G=_ instanceof P?N.intrinsic.never.internal:_;return X.$.node("index",{signature:Y.signature,value:G})}if(Y.signature.extends(Z.signature)&&Y.value.subsumes(Z.value))return Z;if(Z.signature.extends(Y.signature)&&Z.value.subsumes(Y.value))return Y;return null}}});class b_ extends I1{impliedBasis=N.intrinsic.object.internal;expression=`[${this.signature.expression}]: ${this.value.expression}`;flatRefs=Z0(this.value.flatRefs.map((Y)=>h1([this.signature,...Y.path],Y.node)),h1([this.signature],this.value));traverseAllows=(Y,Z)=>j2(Y).every((X)=>{if(this.signature.traverseAllows(X[0],Z))return F1(X[0],()=>this.value.traverseAllows(X[1],Z),Z);return!0});traverseApply=(Y,Z)=>{for(let X of j2(Y))if(this.signature.traverseAllows(X[0],Z))F1(X[0],()=>this.value.traverseApply(X[1],Z),Z)};_transform(Y,Z){Z.path.push(this.signature);let X=super._transform(Y,Z);return Z.path.pop(),X}compile(){}}var aY={implementation:MQ,Node:b_},AQ=(Y)=>`Index keys ${Y.join(", ")} should be specified as named props.`,wQ=(Y)=>`Indexed key definition '${Y}' must be a string or symbol`;var RQ=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:r4,optional:r4}});class y_ extends n4{expression=`${this.compiledKey}: ${this.value.expression}`;errorContext=Object.freeze({code:"required",missingValueDescription:this.value.defaultShortDescription,relativePath:[this.key],meta:this.meta});compiledErrorContext=L2(this.errorContext)}var eY={implementation:RQ,Node:y_};var NQ=r({kind:"sequence",hasAssociatedError:!1,collapsibleKey:"variadic",keys:{prefix:{child:!0,parse:(Y,Z)=>{if(Y.length===0)return;return Y.map((X)=>Z.$.parseSchema(X))}},optionals:{child:!0,parse:(Y,Z)=>{if(Y.length===0)return;return Y.map((X)=>Z.$.parseSchema(X))}},defaultables:{child:(Y)=>Y.map((Z)=>Z[0]),parse:(Y,Z)=>{if(Y.length===0)return;return Y.map((X)=>{let _=Z.$.parseSchema(X[0]);return t4(_,X[1],null),[_,X[1]]})},serialize:(Y)=>Y.map((Z)=>[Z[0].collapsibleJson,N1(Z[1])])},variadic:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y,Z)},minVariadicLength:{parse:(Y)=>Y===0?void 0:Y},postfix:{child:!0,parse:(Y,Z)=>{if(Y.length===0)return;return Y.map((X)=>Z.$.parseSchema(X))}}},normalize:(Y)=>{if(typeof Y==="string")return{variadic:Y};if("variadic"in Y||"prefix"in Y||"defaultables"in Y||"optionals"in Y||"postfix"in Y||"minVariadicLength"in Y){if(Y.postfix?.length){if(!Y.variadic)return R(BQ);if(Y.optionals?.length||Y.defaultables?.length)return R(ZZ)}if(Y.minVariadicLength&&!Y.variadic)return R("minVariadicLength may not be specified without a variadic element");return Y}return{variadic:Y}},reduce:(Y,Z)=>{let X=Y.minVariadicLength??0,_=Y.prefix?.slice()??[],G=Y.defaultables?.slice()??[],$=Y.optionals?.slice()??[],W=Y.postfix?.slice()??[];if(Y.variadic){while($.at(-1)?.equals(Y.variadic))$.pop();if($.length===0&&G.length===0)while(_.at(-1)?.equals(Y.variadic))_.pop(),X++;while(W[0]?.equals(Y.variadic))W.shift(),X++}else if($.length===0&&G.length===0)_.push(...W.splice(0));if(X!==Y.minVariadicLength||Y.prefix&&Y.prefix.length!==_.length)return Z.node("sequence",{...Y,prefix:_,defaultables:G,optionals:$,postfix:W,minVariadicLength:X},{prereduced:!0})},defaults:{description:(Y)=>{if(Y.isVariadicOnly)return`${Y.variadic.nestableExpression}[]`;return`[${Y.tuple.map((X)=>X.kind==="defaultables"?`${X.node.nestableExpression} = ${i(X.default)}`:X.kind==="optionals"?`${X.node.nestableExpression}?`:X.kind==="variadic"?`...${X.node.nestableExpression}[]`:X.node.expression).join(", ")}]`}},intersections:{sequence:(Y,Z,X)=>{let _=Z8({l:Y.tuple,r:Z.tuple,disjoint:new P,result:[],fixedVariants:[],ctx:X}),G=_.disjoint.length===0?[_,..._.fixedVariants]:_.fixedVariants;return G.length===0?_.disjoint:G.length===1?X.$.node("sequence",g_(G[0].result)):X.$.node("union",G.map(($)=>({proto:Array,sequence:g_($.result)})))}}});class p_ extends I1{impliedBasis=N.intrinsic.Array.internal;tuple=KQ(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 qY(this.flatRefs,this.prevariadic.flatMap((Y,Z)=>Z0(Y.node.flatRefs.map((X)=>h1([`${Z}`,...X.path],X.node)),h1([`${Z}`],Y.node)))),qY(this.flatRefs,this.variadicOrPostfix.flatMap((Y)=>Z0(Y.flatRefs.map((Z)=>h1([N.intrinsic.nonNegativeIntegerString.internal,...Z.path],Z.node)),h1([N.intrinsic.nonNegativeIntegerString.internal],Y)))),this.flatRefs}isVariadicOnly=this.prevariadic.length+this.postfixLength===0;minVariadicLength=this.inner.minVariadicLength??0;minLength=this.prefixLength+this.minVariadicLength+this.postfixLength;minLengthNode=this.minLength===0?null:this.$.node("minLength",this.minLength);maxLength=this.variadic?null:this.tuple.length;maxLengthNode=this.maxLength===null?null:this.$.node("maxLength",this.maxLength);impliedSiblings=this.minLengthNode?this.maxLengthNode?[this.minLengthNode,this.maxLengthNode]:[this.minLengthNode]:this.maxLengthNode?[this.maxLengthNode]:[];defaultValueMorphs=TQ(this);defaultValueMorphsReference=this.defaultValueMorphs.length?B0(this.defaultValueMorphs):void 0;elementAtIndex(Y,Z){if(Z<this.prevariadic.length)return this.tuple[Z];let X=Y.length-this.postfixLength;if(Z>=X)return{kind:"postfix",node:this.postfix[Z-X]};return{kind:"variadic",node:this.variadic??_0(`Unexpected attempt to access index ${Z} on ${this}`)}}traverseAllows=(Y,Z)=>{for(let X=0;X<Y.length;X++)if(!this.elementAtIndex(Y,X).node.traverseAllows(Y[X],Z))return!1;return!0};traverseApply=(Y,Z)=>{let X=0;for(;X<Y.length;X++)F1(X,()=>this.elementAtIndex(Y,X).node.traverseApply(Y[X],Z),Z)};get element(){return this.cacheGetter("element",this.$.node("union",this.children))}compile(Y){if(this.prefix)for(let[Z,X]of this.prefix.entries())Y.traverseKey(`${Z}`,`data[${Z}]`,X);for(let[Z,X]of this.defaultablesAndOptionals.entries()){let _=`${Z+this.prefixLength}`;Y.if(`${_} >= ${Y.data}.length`,()=>Y.traversalKind==="Allows"?Y.return(!0):Y.return()),Y.traverseKey(_,`data[${_}]`,X)}if(this.variadic){if(this.postfix)Y.const("firstPostfixIndex",`${Y.data}.length${this.postfix?`- ${this.postfix.length}`:""}`);if(Y.for(`i < ${this.postfix?"firstPostfixIndex":"data.length"}`,()=>Y.traverseKey("i","data[i]",this.variadic),this.prevariadic.length),this.postfix)for(let[Z,X]of this.postfix.entries()){let _=`firstPostfixIndex + ${Z}`;Y.traverseKey(_,`data[${_}]`,X)}}if(Y.traversalKind==="Allows")Y.return(!0)}_transform(Y,Z){Z.path.push(N.intrinsic.nonNegativeIntegerString.internal);let X=super._transform(Y,Z);return Z.path.pop(),X}expression=this.description;reduceJsonSchema(Y,Z){if(this.prevariadic.length)Y.prefixItems=this.prevariadic.map((X)=>{let _=X.node.toJsonSchemaRecurse(Z);if(X.kind==="defaultables"){let G=typeof X.default==="function"?X.default():X.default;_.default=N.intrinsic.jsonData.allows(G)?G:Z.fallback.defaultValue({code:"defaultValue",base:_,value:G})}return _});if(this.minLength)Y.minItems=this.minLength;if(this.variadic){let X=Object.assign(Y,{items:this.variadic.toJsonSchemaRecurse(Z)});if(this.maxLength)X.maxItems=this.maxLength;if(this.postfix){let _=this.postfix.map((G)=>G.toJsonSchemaRecurse(Z));Y=Z.fallback.arrayPostfix({code:"arrayPostfix",base:X,elements:_})}}else Y.items=!1,delete Y.maxItems;return Y}}var IQ={},TQ=(Y)=>{if(!Y.defaultables)return[];let Z=[],X="[",_=Y.prefixLength+Y.defaultablesLength-1;for(let G=Y.prefixLength;G<=_;G++){let[$,W]=Y.defaultables[G-Y.prefixLength];Z.push(oY(G,$,W)),X+=`${G}: ${$.id} = ${N1(W)}, `}return X+="]",IQ[X]??=Z},YZ={implementation:NQ,Node:p_},KQ=(Y)=>{let Z=[];if(Y.prefix)for(let X of Y.prefix)Z.push({kind:"prefix",node:X});if(Y.defaultables)for(let[X,_]of Y.defaultables)Z.push({kind:"defaultables",node:X,default:_});if(Y.optionals)for(let X of Y.optionals)Z.push({kind:"optionals",node:X});if(Y.variadic)Z.push({kind:"variadic",node:Y.variadic});if(Y.postfix)for(let X of Y.postfix)Z.push({kind:"postfix",node:X});return Z},g_=(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},{}),ZZ="A postfix required element cannot follow an optional or defaultable element",BQ="A postfix element requires a variadic element",Z8=(Y)=>{let[Z,...X]=Y.l,[_,...G]=Y.r;if(!Z||!_)return Y;let $=X.at(-1)?.kind==="postfix",W=G.at(-1)?.kind==="postfix",H=Z.kind==="prefix"||_.kind==="prefix"?"prefix":Z.kind==="postfix"||_.kind==="postfix"?"postfix":Z.kind==="variadic"&&_.kind==="variadic"?"variadic":$||W?"prefix":Z.kind==="defaultables"||_.kind==="defaultables"?"defaultables":"optionals";if(Z.kind==="prefix"&&_.kind==="variadic"&&W){let E=Z8({...Y,fixedVariants:[],r:G.map((V)=>({...V,kind:"prefix"}))});if(E.disjoint.length===0)Y.fixedVariants.push(E)}else if(_.kind==="prefix"&&Z.kind==="variadic"&&$){let E=Z8({...Y,fixedVariants:[],l:X.map((V)=>({...V,kind:"prefix"}))});if(E.disjoint.length===0)Y.fixedVariants.push(E)}let Q=L0(Z.node,_.node,Y.ctx);if(Q instanceof P)if(H==="prefix"||H==="postfix")Y.disjoint.push(...Q.withPrefixKey(H==="prefix"?Y.result.length:`-${X.length+1}`,"required")),Y.result=[...Y.result,{kind:H,node:N.intrinsic.never.internal}];else if(H==="optionals"||H==="defaultables")return Y;else return Z8({...Y,fixedVariants:[],l:X.map((E)=>({...E,kind:"prefix"})),r:X.map((E)=>({...E,kind:"prefix"}))});else if(H==="defaultables"){if(Z.kind==="defaultables"&&_.kind==="defaultables"&&Z.default!==_.default)R(lY(Z.default,_.default));Y.result=[...Y.result,{kind:H,node:Q,default:Z.kind==="defaultables"?Z.default:_.kind==="defaultables"?_.default:_0(`Unexpected defaultable intersection from ${Z.kind} and ${_.kind} elements.`)}]}else Y.result=[...Y.result,{kind:H,node:Q}];let J=Y.l.length,U=Y.r.length;if(Z.kind!=="variadic"||J>=U&&(_.kind==="variadic"||U===1))Y.l=X;if(_.kind!=="variadic"||U>=J&&(Z.kind==="variadic"||J===1))Y.r=G;return Z8(Y)};var d_=(Y)=>(Z)=>{if(Z.props.length||Z.index){let X=Z.index?.map((G)=>G[Y])??[];for(let G of Z.props)X.push(G[Y]);if(Z.undeclared)X.push(`+ (undeclared): ${Z.undeclared}`);let _=`{ ${X.join(", ")} }`;return Z.sequence?`${_} & ${Z.sequence.description}`:_}return Z.sequence?.description??"{}"},CQ=d_("description"),qQ=d_("expression"),m_=(Y,Z,X)=>{let _=Y.required?"required":"optional";if(!Z.signature.allows(Y.key))return null;let G=E1(Y.value,Z.value,X);if(G instanceof P)return _==="optional"?X.node("optional",{key:Y.key,value:N.intrinsic.never.internal}):G.withPrefixKey(Y.key,Y.kind);return null},jQ=r({kind:"structure",hasAssociatedError:!1,normalize:(Y)=>Y,applyConfig:(Y,Z)=>{if(!Y.undeclared&&Z.onUndeclaredKey!=="ignore")return{...Y,undeclared:Z.onUndeclaredKey};return Y},keys:{required:{child:!0,parse:t0("required"),reduceIo:(Y,Z,X)=>{Z.required=Z0(Z.required,X.map((_)=>_[Y]));return}},optional:{child:!0,parse:t0("optional"),reduceIo:(Y,Z,X)=>{if(Y==="in"){Z.optional=X.map((_)=>_.in);return}for(let _ of X)Z[_.outProp.kind]=Z0(Z[_.outProp.kind],_.outProp.out)}},index:{child:!0,parse:t0("index")},sequence:{child:!0,parse:t0("sequence")},undeclared:{parse:(Y)=>Y==="ignore"?void 0:Y,reduceIo:(Y,Z,X)=>{if(X!=="delete")return;if(Y==="in")delete Z.undeclared;else Z.undeclared="reject"}}},defaults:{description:CQ},intersections:{structure:(Y,Z,X)=>{let _={...Y.inner},G={...Z.inner},$=new P;if(Y.undeclared){let Q=Y.keyof();for(let J of Z.requiredKeys)if(!Q.allows(J))$.add("presence",N.intrinsic.never.internal,Z.propsByKey[J].value,{path:[J]});if(G.optional)G.optional=G.optional.filter((J)=>Q.allows(J.key));if(G.index)G.index=G.index.flatMap((J)=>{if(J.signature.extends(Q))return J;let U=E1(Q,J.signature,X.$);if(U instanceof P)return[];let E=Y6(U,J.value,X.$);if(E.required)G.required=t1(G.required,E.required);if(E.optional)G.optional=t1(G.optional,E.optional);return E.index??[]})}if(Z.undeclared){let Q=Z.keyof();for(let J of Y.requiredKeys)if(!Q.allows(J))$.add("presence",Y.propsByKey[J].value,N.intrinsic.never.internal,{path:[J]});if(_.optional)_.optional=_.optional.filter((J)=>Q.allows(J.key));if(_.index)_.index=_.index.flatMap((J)=>{if(J.signature.extends(Q))return J;let U=E1(Q,J.signature,X.$);if(U instanceof P)return[];let E=Y6(U,J.value,X.$);if(E.required)_.required=t1(_.required,E.required);if(E.optional)_.optional=t1(_.optional,E.optional);return E.index??[]})}let W={};if(Y.undeclared||Z.undeclared)W.undeclared=Y.undeclared==="reject"||Z.undeclared==="reject"?"reject":"delete";let H=_4({kind:"structure",baseInner:W,l:G4(_),r:G4(G),roots:[],ctx:X});if(H instanceof P)$.push(...H);if($.length)return $;return H}},reduce:(Y,Z)=>{if(Y.index){if(!(Y.required||Y.optional))return;let X=!1,_=Y.required??[],G=Y.optional??[],$=[...G];for(let W of Y.index){for(let H of _){let Q=m_(H,W,Z);if(Q instanceof P)return Q}for(let[H,Q]of G.entries()){let J=m_(Q,W,Z);if(J instanceof P)return J;if(J===null)continue;$[H]=J,X=!0}}if(X)return Z.node("structure",{...Y,optional:$},{prereduced:!0})}}});class c_ extends I1{impliedBasis=N.intrinsic.object.internal;impliedSiblings=this.children.flatMap((Y)=>Y.impliedSiblings??[]);props=t1(this.required,this.optional);propsByKey=o(this.props,(Y,Z)=>[Z.key,Z]);propsByKeyReference=B0(this.propsByKey);expression=qQ(this);requiredKeys=this.required?.map((Y)=>Y.key)??[];optionalKeys=this.optional?.map((Y)=>Y.key)??[];literalKeys=[...this.requiredKeys,...this.optionalKeys];_keyof;keyof(){if(this._keyof)return this._keyof;let Y=this.$.units(this.literalKeys).branches;if(this.index)for(let{signature:Z}of this.index)Y=Y.concat(Z.branches);return this._keyof=this.$.node("union",Y)}map(Y){return this.$.node("structure",this.props.flatMap(Y).reduce((Z,X)=>{let _=this.propsByKey[X.key];if(D0(X)){if(X.kind!=="required"&&X.kind!=="optional")return R(`Map result must have kind "required" or "optional" (was ${X.kind})`);return Z[X.kind]=Z0(Z[X.kind],X),Z}let G=X.kind??_?.kind??"required",$=o(X,(W,H)=>(W in s4.implementation.keys)?[W,H]:[]);return Z[G]=Z0(Z[G],this.$.node(G,$)),Z},{}))}assertHasKeys(Y){let Z=Y.filter((X)=>!a4(X,this.keyof()));if(Z.length)return R(u_(this.expression,Z))}get(Y,...Z){let X,_=!1,G=xQ(Y);if((typeof G==="string"||typeof G==="symbol")&&this.propsByKey[G])X=this.propsByKey[G].value,_=this.propsByKey[G].required;if(this.index){for(let W of this.index)if(a4(G,W.signature))X=X?.and(W.value)??W.value}if(this.sequence&&a4(G,N.intrinsic.nonNegativeIntegerString))if(y(G,"root")){if(this.sequence.variadic)X=X?.and(this.sequence.element)??this.sequence.element}else{let W=Number.parseInt(G);if(W<this.sequence.prevariadic.length){let H=this.sequence.prevariadic[W].node;X=X?.and(H)??H,_||=W<this.sequence.prefixLength}else if(this.sequence.variadic){let H=this.$.node("union",this.sequence.variadicOrPostfix);X=X?.and(H)??H}}if(!X){if(this.sequence?.variadic&&y(G,"root")&&G.extends(N.intrinsic.number))return R(fQ(G.expression,this.sequence.expression));return R(u_(this.expression,[G]))}let $=X.get(...Z);return _?$:$.or(N.intrinsic.undefined)}pick(...Y){return this.assertHasKeys(Y),this.$.node("structure",this.filterKeys("pick",Y))}omit(...Y){return this.assertHasKeys(Y),this.$.node("structure",this.filterKeys("omit",Y))}optionalize(){let{required:Y,...Z}=this.inner;return this.$.node("structure",{...Z,optional:this.props.map((X)=>X.hasKind("required")?this.$.node("optional",X.inner):X)})}require(){let{optional:Y,...Z}=this.inner;return this.$.node("structure",{...Z,required:this.props.map((X)=>X.hasKind("optional")?{key:X.key,value:X.value}:X)})}merge(Y){let Z=this.filterKeys("omit",[Y.keyof()]);if(Y.required)Z.required=Z0(Z.required,Y.required);if(Y.optional)Z.optional=Z0(Z.optional,Y.optional);if(Y.index)Z.index=Z0(Z.index,Y.index);if(Y.sequence)Z.sequence=Y.sequence;if(Y.undeclared)Z.undeclared=Y.undeclared;else delete Z.undeclared;return this.$.node("structure",Z)}filterKeys(Y,Z){let X=d8(this.inner),_=(G)=>{let $=Z.some((W)=>a4(G,W));return Y==="pick"?$:!$};if(X.required)X.required=X.required.filter((G)=>_(G.key));if(X.optional)X.optional=X.optional.filter((G)=>_(G.key));if(X.index)X.index=X.index.filter((G)=>_(G.signature));return X}traverseAllows=(Y,Z)=>this._traverse("Allows",Y,Z);traverseApply=(Y,Z)=>this._traverse("Apply",Y,Z);_traverse=(Y,Z,X)=>{let _=X?.currentErrorCount??0;for(let G=0;G<this.props.length;G++)if(Y==="Allows"){if(!this.props[G].traverseAllows(Z,X))return!1}else if(this.props[G].traverseApply(Z,X),X.failFast&&X.currentErrorCount>_)return!1;if(this.sequence){if(Y==="Allows"){if(!this.sequence.traverseAllows(Z,X))return!1}else if(this.sequence.traverseApply(Z,X),X.failFast&&X.currentErrorCount>_)return!1}if(this.index||this.undeclared==="reject"){let G=Object.keys(Z);G.push(...Object.getOwnPropertySymbols(Z));for(let $=0;$<G.length;$++){let W=G[$];if(this.index){for(let H of this.index)if(H.signature.traverseAllows(W,X)){if(Y==="Allows"){if(!F1(W,()=>H.value.traverseAllows(Z[W],X),X))return!1}else if(F1(W,()=>H.value.traverseApply(Z[W],X),X),X.failFast&&X.currentErrorCount>_)return!1}}if(this.undeclared==="reject"&&!this.declaresKey(W)){if(Y==="Allows")return!1;if(X.errorFromNodeContext({code:"predicate",expected:"removed",actual:"",relativePath:[W],meta:this.meta}),X.failFast)return!1}}}if(this.structuralMorph&&X&&!X.hasError())X.queueMorphs([this.structuralMorph]);return!0};get defaultable(){return this.cacheGetter("defaultable",this.optional?.filter((Y)=>Y.hasDefault())??[])}declaresKey=(Y)=>(Y in this.propsByKey)||this.index?.some((Z)=>Z.signature.allows(Y))||this.sequence!==void 0&&N.intrinsic.nonNegativeIntegerString.allows(Y);_compileDeclaresKey(Y){let Z=[];if(this.props.length)Z.push(`k in ${this.propsByKeyReference}`);if(this.index)for(let X of this.index)Z.push(Y.invoke(X.signature,{kind:"Allows",arg:"k"}));if(this.sequence)Z.push("$ark.intrinsic.nonNegativeIntegerString.allows(k)");return Z.join(" || ")||"false"}get structuralMorph(){return this.cacheGetter("structuralMorph",PQ(this))}structuralMorphRef=this.structuralMorph&&B0(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(["),vQ(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 R0.throwInternalOperandError("structure",Y)}}reduceObjectJsonSchema(Y,Z){if(this.props.length){Y.properties={};for(let X of this.props){let _=X.value.toJsonSchemaRecurse(Z);if(typeof X.key==="symbol"){Z.fallback.symbolKey({code:"symbolKey",base:Y,key:X.key,value:_,optional:X.optional});continue}if(X.hasDefault()){let G=typeof X.default==="function"?X.default():X.default;_.default=N.intrinsic.jsonData.allows(G)?G:Z.fallback.defaultValue({code:"defaultValue",base:_,value:G})}Y.properties[X.key]=_}if(this.requiredKeys.length&&Y.properties)Y.required=this.requiredKeys.filter((X)=>typeof X==="string"&&(X in Y.properties))}if(this.index)for(let X of this.index){let _=X.value.toJsonSchemaRecurse(Z);if(X.signature.equals(N.intrinsic.string)){Y.additionalProperties=_;continue}for(let G of X.signature.branches){if(!G.extends(N.intrinsic.string)){Y=Z.fallback.symbolKey({code:"symbolKey",base:Y,key:null,value:_,optional:!1});continue}let $={type:"string"};if(G.hasKind("morph"))$=Z.fallback.morph({code:"morph",base:G.in.toJsonSchemaRecurse(Z),out:G.out.toJsonSchemaRecurse(Z)});if(!G.hasKind("intersection"))return _0(`Unexpected index branch kind ${G.kind}.`);let{pattern:W}=G.inner;if(W){let H=Object.assign($,{pattern:W[0].rule});for(let Q=1;Q<W.length;Q++)$=Z.fallback.patternIntersection({code:"patternIntersection",base:H,pattern:W[Q].rule});Y.patternProperties??={},Y.patternProperties[H.pattern]=_}}}if(this.undeclared&&!Y.additionalProperties)Y.additionalProperties=!1;return Y}}var XZ={},SQ=(Y)=>{let Z="";for(let X=0;X<Y.defaultable.length;X++)Z+=Y.defaultable[X].defaultValueMorphRef;if(Y.sequence?.defaultValueMorphsReference)Z+=Y.sequence?.defaultValueMorphsReference;if(Y.undeclared==="delete"){if(Z+="delete !(",Y.required)for(let X of Y.required)Z+=X.compiledKey+" | ";if(Y.optional)for(let X of Y.optional)Z+=X.compiledKey+" | ";if(Y.index)for(let X of Y.index)Z+=X.signature.id+" | ";if(Y.sequence)if(Y.sequence.maxLength===null)Z+=d.nonNegativeIntegerString.id;else for(let X=0;X<Y.sequence.tuple.length;X++)Z+=X+" | ";Z+=")"}return Z},PQ=(Y)=>{let Z=SQ(Y);if(!Z)return;if(XZ[Z])return XZ[Z];let X=(_,G)=>{for(let $=0;$<Y.defaultable.length;$++)if(!(Y.defaultable[$].key in _))Y.defaultable[$].defaultValueMorph(_,G);if(Y.sequence?.defaultables)for(let $=_.length-Y.sequence.prefixLength;$<Y.sequence.defaultables.length;$++)Y.sequence.defaultValueMorphs[$](_,G);if(Y.undeclared==="delete"){for(let $ in _)if(!Y.declaresKey($))delete _[$]}return _};return XZ[Z]=X},vQ=(Y,Z)=>{let _=`(data${Z.defaultable.some((G)=>G.defaultValueMorph.length===2)||Z.sequence?.defaultValueMorphs.some((G)=>G.length===2)?", ctx":""})`;return Y.block(`${_} => `,(G)=>{for(let $=0;$<Z.defaultable.length;$++){let{serializedKey:W,defaultValueMorphRef:H}=Z.defaultable[$];G.if(`!(${W} in data)`,(Q)=>Q.line(`${H}${_}`))}if(Z.sequence?.defaultables)G.for(`i < ${Z.sequence.defaultables.length}`,($)=>$.set("data[i]",5),`data.length - ${Z.sequence.prefixLength}`);if(Z.undeclared==="delete")G.forIn("data",($)=>$.if(`!(${Z._compileDeclaresKey($)})`,(W)=>W.line("delete data[k]")));return G.return("data")})},_Z={implementation:jQ,Node:c_},xQ=(Y)=>{if(y(Y,"root")&&Y.hasKind("unit"))Y=Y.unit;if(typeof Y==="number")Y=`${Y}`;return Y},fQ=(Y,Z)=>`${Y} is not allowed as an array index on ${Z}. Use the 'nonNegativeIntegerString' keyword instead.`,Y6=(Y,Z,X)=>{let[_,G]=EX(Y.branches,(W)=>W.hasKind("unit"));if(!_.length)return{index:X.node("index",{signature:Y,value:Z})};let $={};for(let W of _){let H=X.node("required",{key:W.unit,value:Z});$[H.kind]=Z0($[H.kind],H)}if(G.length)$.index=X.node("index",{signature:G,value:Z});return $},hQ=(Y)=>y(Y,"root")?Y.expression:i(Y),u_=(Y,Z)=>`Key${Z.length===1?"":"s"} ${Z.map(hQ).join(", ")} ${Z.length===1?"does":"do"} not exist on ${Y}`;var W4={...O_,alias:e4.implementation,domain:e8.implementation,unit:tY.implementation,proto:Y8.implementation,union:sY.implementation,morph:rY.implementation,intersection:iY.implementation,divisor:xY.implementation,pattern:mY.implementation,predicate:vY.implementation,required:eY.implementation,optional:s4.implementation,index:aY.implementation,sequence:YZ.implementation,structure:_Z.implementation};N.defaultConfig=NX(Object.assign(o(W4,(Y,Z)=>[Y,Z.defaults]),{jitless:qX(),clone:KX,onUndeclaredKey:"ignore",exactOptionalPropertyTypes:!0,numberAllowsNaN:!1,dateAllowsInvalid:!1,onFail:null,keywords:{},toJsonSchema:R0.defaultConfig}));N.resolvedConfig=d4(N.defaultConfig,N.config);var w_={...V_,alias:e4.Node,domain:e8.Node,unit:tY.Node,proto:Y8.Node,union:sY.Node,morph:rY.Node,intersection:iY.Node,divisor:xY.Node,pattern:mY.Node,predicate:vY.Node,required:eY.Node,optional:s4.Node,index:aY.Node,sequence:YZ.Node,structure:_Z.Node};class Q4 extends EY{get[X1](){return"module"}}var GZ=(Y,Z)=>new Q4(o(Y,(X,_)=>[X,y(_,"module")?GZ(_,Z):Z.bindReference(_)]));var kQ=(Y)=>F0(Y)?Y:("branches"in Y)&&F0(Y.branches)?Y.branches:void 0,bQ=(Y,Z)=>R(`Node of kind ${Z} is not valid as a ${Y} definition`),l_=(Y)=>`#${Y} duplicates public alias ${Y}`,$Z={};N.ambient??={};var o_,r_="function $",yQ=(Y)=>n_(Y,s_(Y)),n_=(Y,Z)=>{let X=Z.write(r_,4),_=Z.compile()();for(let G of Y){if(G.precompilation)continue;if(G.traverseAllows=_[`${G.id}Allows`].bind(_),G.isRoot()&&!G.allowsRequiresContext)G.allows=G.traverseAllows;if(G.traverseApply=_[`${G.id}Apply`].bind(_),_[`${G.id}Optimistic`])G.traverseOptimistic=_[`${G.id}Optimistic`].bind(_);G.precompilation=X}},s_=(Y)=>new u8().return(Y.reduce((Z,X)=>{let _=new u4({kind:"Allows"}).indent();X.compile(_);let G=_.write(`${X.id}Allows`),$=new u4({kind:"Apply"}).indent();X.compile($);let W=$.write(`${X.id}Apply`),H=`${Z}${G},
43
+ Right: ${Z}`;var LQ=r({kind:"unit",hasAssociatedError:!0,keys:{unit:{preserveUndefined:!0,serialize:(Y)=>Y instanceof Date?Y.toISOString():N1(Y)}},normalize:(Y)=>Y,defaults:{description:(Y)=>i(Y.unit),problem:({expected:Y,actual:Z})=>`${Y===Z?`must be reference equal to ${Y} (serialized to the same value)`:`must be ${Y} (was ${Z})`}`},intersections:{unit:(Y,Z)=>P.init("unit",Y,Z),...l1("unit",(Y,Z)=>{if(Z.allows(Y.unit))return Y;let X=Z.hasKind("intersection")?Z.basis:Z;if(X){let _=X.hasKind("domain")?X:N.intrinsic.object;if(Y.domain!==_.domain){let G=Y.domain==="undefined"||Y.domain==="null"||Y.domain==="boolean"?Y.domain:N.intrinsic[Y.domain];return P.init("domain",G,_)}}return P.init("assignability",Y,Z.hasKind("intersection")?Z.children.find((_)=>!_.allows(Y.unit)):Z)})}});class k_ extends x2{compiledValue=this.json.unit;serializedValue=typeof this.unit==="string"||this.unit instanceof Date?JSON.stringify(this.compiledValue):`${this.compiledValue}`;compiledCondition=h_(this.unit,this.serializedValue);compiledNegation=h_(this.unit,this.serializedValue,"negated");expression=i(this.unit);domain=y0(this.unit);get defaultShortDescription(){return this.domain==="object"?U1.object:this.description}innerToJsonSchema(Y){return this.unit===null?{type:"null"}:N.intrinsic.jsonPrimitive.allows(this.unit)?{const:this.unit}:Y.fallback.unit({code:"unit",base:{},unit:this.unit})}traverseAllows=this.unit instanceof Date?(Y)=>Y instanceof Date&&Y.toISOString()===this.compiledValue:Number.isNaN(this.unit)?(Y)=>Number.isNaN(Y):(Y)=>Y===this.unit}var tY={implementation:LQ,Node:k_},h_=(Y,Z,X)=>{if(Y instanceof Date){let _=`data instanceof Date && data.toISOString() === ${Z}`;return X?`!(${_})`:_}if(Number.isNaN(Y))return`${X?"!":""}Number.isNaN(data)`;return`data ${X?"!":"="}== ${Z}`};var MQ=r({kind:"index",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{signature:{child:!0,parse:(Y,Z)=>{let X=Z.$.parseSchema(Y);if(!X.extends(N.intrinsic.key))return R(wQ(X.expression));let _=X.branches.filter((G)=>G.hasKind("unit"));if(_.length)return R(AQ(_.map((G)=>i(G.unit))));return X}},value:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y)}},normalize:(Y)=>Y,defaults:{description:(Y)=>`[${Y.signature.expression}]: ${Y.value.description}`},intersections:{index:(Y,Z,X)=>{if(Y.signature.equals(Z.signature)){let _=L0(Y.value,Z.value,X),G=_ instanceof P?N.intrinsic.never.internal:_;return X.$.node("index",{signature:Y.signature,value:G})}if(Y.signature.extends(Z.signature)&&Y.value.subsumes(Z.value))return Z;if(Z.signature.extends(Y.signature)&&Z.value.subsumes(Y.value))return Y;return null}}});class b_ extends I1{impliedBasis=N.intrinsic.object.internal;expression=`[${this.signature.expression}]: ${this.value.expression}`;flatRefs=Z0(this.value.flatRefs.map((Y)=>h1([this.signature,...Y.path],Y.node)),h1([this.signature],this.value));traverseAllows=(Y,Z)=>j2(Y).every((X)=>{if(this.signature.traverseAllows(X[0],Z))return F1(X[0],()=>this.value.traverseAllows(X[1],Z),Z);return!0});traverseApply=(Y,Z)=>{for(let X of j2(Y))if(this.signature.traverseAllows(X[0],Z))F1(X[0],()=>this.value.traverseApply(X[1],Z),Z)};_transform(Y,Z){Z.path.push(this.signature);let X=super._transform(Y,Z);return Z.path.pop(),X}compile(){}}var aY={implementation:MQ,Node:b_},AQ=(Y)=>`Index keys ${Y.join(", ")} should be specified as named props.`,wQ=(Y)=>`Indexed key definition '${Y}' must be a string or symbol`;var RQ=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:r4,optional:r4}});class y_ extends n4{expression=`${this.compiledKey}: ${this.value.expression}`;errorContext=Object.freeze({code:"required",missingValueDescription:this.value.defaultShortDescription,relativePath:[this.key],meta:this.meta});compiledErrorContext=L2(this.errorContext)}var eY={implementation:RQ,Node:y_};var NQ=r({kind:"sequence",hasAssociatedError:!1,collapsibleKey:"variadic",keys:{prefix:{child:!0,parse:(Y,Z)=>{if(Y.length===0)return;return Y.map((X)=>Z.$.parseSchema(X))}},optionals:{child:!0,parse:(Y,Z)=>{if(Y.length===0)return;return Y.map((X)=>Z.$.parseSchema(X))}},defaultables:{child:(Y)=>Y.map((Z)=>Z[0]),parse:(Y,Z)=>{if(Y.length===0)return;return Y.map((X)=>{let _=Z.$.parseSchema(X[0]);return t4(_,X[1],null),[_,X[1]]})},serialize:(Y)=>Y.map((Z)=>[Z[0].collapsibleJson,N1(Z[1])])},variadic:{child:!0,parse:(Y,Z)=>Z.$.parseSchema(Y,Z)},minVariadicLength:{parse:(Y)=>Y===0?void 0:Y},postfix:{child:!0,parse:(Y,Z)=>{if(Y.length===0)return;return Y.map((X)=>Z.$.parseSchema(X))}}},normalize:(Y)=>{if(typeof Y==="string")return{variadic:Y};if("variadic"in Y||"prefix"in Y||"defaultables"in Y||"optionals"in Y||"postfix"in Y||"minVariadicLength"in Y){if(Y.postfix?.length){if(!Y.variadic)return R(BQ);if(Y.optionals?.length||Y.defaultables?.length)return R(ZZ)}if(Y.minVariadicLength&&!Y.variadic)return R("minVariadicLength may not be specified without a variadic element");return Y}return{variadic:Y}},reduce:(Y,Z)=>{let X=Y.minVariadicLength??0,_=Y.prefix?.slice()??[],G=Y.defaultables?.slice()??[],$=Y.optionals?.slice()??[],W=Y.postfix?.slice()??[];if(Y.variadic){while($.at(-1)?.equals(Y.variadic))$.pop();if($.length===0&&G.length===0)while(_.at(-1)?.equals(Y.variadic))_.pop(),X++;while(W[0]?.equals(Y.variadic))W.shift(),X++}else if($.length===0&&G.length===0)_.push(...W.splice(0));if(X!==Y.minVariadicLength||Y.prefix&&Y.prefix.length!==_.length)return Z.node("sequence",{...Y,prefix:_,defaultables:G,optionals:$,postfix:W,minVariadicLength:X},{prereduced:!0})},defaults:{description:(Y)=>{if(Y.isVariadicOnly)return`${Y.variadic.nestableExpression}[]`;return`[${Y.tuple.map((X)=>X.kind==="defaultables"?`${X.node.nestableExpression} = ${i(X.default)}`:X.kind==="optionals"?`${X.node.nestableExpression}?`:X.kind==="variadic"?`...${X.node.nestableExpression}[]`:X.node.expression).join(", ")}]`}},intersections:{sequence:(Y,Z,X)=>{let _=Z8({l:Y.tuple,r:Z.tuple,disjoint:new P,result:[],fixedVariants:[],ctx:X}),G=_.disjoint.length===0?[_,..._.fixedVariants]:_.fixedVariants;return G.length===0?_.disjoint:G.length===1?X.$.node("sequence",g_(G[0].result)):X.$.node("union",G.map(($)=>({proto:Array,sequence:g_($.result)})))}}});class p_ extends I1{impliedBasis=N.intrinsic.Array.internal;tuple=KQ(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 qY(this.flatRefs,this.prevariadic.flatMap((Y,Z)=>Z0(Y.node.flatRefs.map((X)=>h1([`${Z}`,...X.path],X.node)),h1([`${Z}`],Y.node)))),qY(this.flatRefs,this.variadicOrPostfix.flatMap((Y)=>Z0(Y.flatRefs.map((Z)=>h1([N.intrinsic.nonNegativeIntegerString.internal,...Z.path],Z.node)),h1([N.intrinsic.nonNegativeIntegerString.internal],Y)))),this.flatRefs}isVariadicOnly=this.prevariadic.length+this.postfixLength===0;minVariadicLength=this.inner.minVariadicLength??0;minLength=this.prefixLength+this.minVariadicLength+this.postfixLength;minLengthNode=this.minLength===0?null:this.$.node("minLength",this.minLength);maxLength=this.variadic?null:this.tuple.length;maxLengthNode=this.maxLength===null?null:this.$.node("maxLength",this.maxLength);impliedSiblings=this.minLengthNode?this.maxLengthNode?[this.minLengthNode,this.maxLengthNode]:[this.minLengthNode]:this.maxLengthNode?[this.maxLengthNode]:[];defaultValueMorphs=TQ(this);defaultValueMorphsReference=this.defaultValueMorphs.length?B0(this.defaultValueMorphs):void 0;elementAtIndex(Y,Z){if(Z<this.prevariadic.length)return this.tuple[Z];let X=Y.length-this.postfixLength;if(Z>=X)return{kind:"postfix",node:this.postfix[Z-X]};return{kind:"variadic",node:this.variadic??_0(`Unexpected attempt to access index ${Z} on ${this}`)}}traverseAllows=(Y,Z)=>{for(let X=0;X<Y.length;X++)if(!this.elementAtIndex(Y,X).node.traverseAllows(Y[X],Z))return!1;return!0};traverseApply=(Y,Z)=>{let X=0;for(;X<Y.length;X++)F1(X,()=>this.elementAtIndex(Y,X).node.traverseApply(Y[X],Z),Z)};get element(){return this.cacheGetter("element",this.$.node("union",this.children))}compile(Y){if(this.prefix)for(let[Z,X]of this.prefix.entries())Y.traverseKey(`${Z}`,`data[${Z}]`,X);for(let[Z,X]of this.defaultablesAndOptionals.entries()){let _=`${Z+this.prefixLength}`;Y.if(`${_} >= ${Y.data}.length`,()=>Y.traversalKind==="Allows"?Y.return(!0):Y.return()),Y.traverseKey(_,`data[${_}]`,X)}if(this.variadic){if(this.postfix)Y.const("firstPostfixIndex",`${Y.data}.length${this.postfix?`- ${this.postfix.length}`:""}`);if(Y.for(`i < ${this.postfix?"firstPostfixIndex":"data.length"}`,()=>Y.traverseKey("i","data[i]",this.variadic),this.prevariadic.length),this.postfix)for(let[Z,X]of this.postfix.entries()){let _=`firstPostfixIndex + ${Z}`;Y.traverseKey(_,`data[${_}]`,X)}}if(Y.traversalKind==="Allows")Y.return(!0)}_transform(Y,Z){Z.path.push(N.intrinsic.nonNegativeIntegerString.internal);let X=super._transform(Y,Z);return Z.path.pop(),X}expression=this.description;reduceJsonSchema(Y,Z){if(this.prevariadic.length)Y.prefixItems=this.prevariadic.map((X)=>{let _=X.node.toJsonSchemaRecurse(Z);if(X.kind==="defaultables"){let G=typeof X.default==="function"?X.default():X.default;_.default=N.intrinsic.jsonData.allows(G)?G:Z.fallback.defaultValue({code:"defaultValue",base:_,value:G})}return _});if(this.minLength)Y.minItems=this.minLength;if(this.variadic){let X=Object.assign(Y,{items:this.variadic.toJsonSchemaRecurse(Z)});if(this.maxLength)X.maxItems=this.maxLength;if(this.postfix){let _=this.postfix.map((G)=>G.toJsonSchemaRecurse(Z));Y=Z.fallback.arrayPostfix({code:"arrayPostfix",base:X,elements:_})}}else Y.items=!1,delete Y.maxItems;return Y}}var IQ={},TQ=(Y)=>{if(!Y.defaultables)return[];let Z=[],X="[",_=Y.prefixLength+Y.defaultablesLength-1;for(let G=Y.prefixLength;G<=_;G++){let[$,W]=Y.defaultables[G-Y.prefixLength];Z.push(oY(G,$,W)),X+=`${G}: ${$.id} = ${N1(W)}, `}return X+="]",IQ[X]??=Z},YZ={implementation:NQ,Node:p_},KQ=(Y)=>{let Z=[];if(Y.prefix)for(let X of Y.prefix)Z.push({kind:"prefix",node:X});if(Y.defaultables)for(let[X,_]of Y.defaultables)Z.push({kind:"defaultables",node:X,default:_});if(Y.optionals)for(let X of Y.optionals)Z.push({kind:"optionals",node:X});if(Y.variadic)Z.push({kind:"variadic",node:Y.variadic});if(Y.postfix)for(let X of Y.postfix)Z.push({kind:"postfix",node:X});return Z},g_=(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},{}),ZZ="A postfix required element cannot follow an optional or defaultable element",BQ="A postfix element requires a variadic element",Z8=(Y)=>{let[Z,...X]=Y.l,[_,...G]=Y.r;if(!Z||!_)return Y;let $=X.at(-1)?.kind==="postfix",W=G.at(-1)?.kind==="postfix",H=Z.kind==="prefix"||_.kind==="prefix"?"prefix":Z.kind==="postfix"||_.kind==="postfix"?"postfix":Z.kind==="variadic"&&_.kind==="variadic"?"variadic":$||W?"prefix":Z.kind==="defaultables"||_.kind==="defaultables"?"defaultables":"optionals";if(Z.kind==="prefix"&&_.kind==="variadic"&&W){let E=Z8({...Y,fixedVariants:[],r:G.map((V)=>({...V,kind:"prefix"}))});if(E.disjoint.length===0)Y.fixedVariants.push(E)}else if(_.kind==="prefix"&&Z.kind==="variadic"&&$){let E=Z8({...Y,fixedVariants:[],l:X.map((V)=>({...V,kind:"prefix"}))});if(E.disjoint.length===0)Y.fixedVariants.push(E)}let Q=L0(Z.node,_.node,Y.ctx);if(Q instanceof P)if(H==="prefix"||H==="postfix")Y.disjoint.push(...Q.withPrefixKey(H==="prefix"?Y.result.length:`-${X.length+1}`,"required")),Y.result=[...Y.result,{kind:H,node:N.intrinsic.never.internal}];else if(H==="optionals"||H==="defaultables")return Y;else return Z8({...Y,fixedVariants:[],l:X.map((E)=>({...E,kind:"prefix"})),r:X.map((E)=>({...E,kind:"prefix"}))});else if(H==="defaultables"){if(Z.kind==="defaultables"&&_.kind==="defaultables"&&Z.default!==_.default)R(lY(Z.default,_.default));Y.result=[...Y.result,{kind:H,node:Q,default:Z.kind==="defaultables"?Z.default:_.kind==="defaultables"?_.default:_0(`Unexpected defaultable intersection from ${Z.kind} and ${_.kind} elements.`)}]}else Y.result=[...Y.result,{kind:H,node:Q}];let J=Y.l.length,U=Y.r.length;if(Z.kind!=="variadic"||J>=U&&(_.kind==="variadic"||U===1))Y.l=X;if(_.kind!=="variadic"||U>=J&&(Z.kind==="variadic"||J===1))Y.r=G;return Z8(Y)};var d_=(Y)=>(Z)=>{if(Z.props.length||Z.index){let X=Z.index?.map((G)=>G[Y])??[];for(let G of Z.props)X.push(G[Y]);if(Z.undeclared)X.push(`+ (undeclared): ${Z.undeclared}`);let _=`{ ${X.join(", ")} }`;return Z.sequence?`${_} & ${Z.sequence.description}`:_}return Z.sequence?.description??"{}"},CQ=d_("description"),qQ=d_("expression"),m_=(Y,Z,X)=>{let _=Y.required?"required":"optional";if(!Z.signature.allows(Y.key))return null;let G=E1(Y.value,Z.value,X);if(G instanceof P)return _==="optional"?X.node("optional",{key:Y.key,value:N.intrinsic.never.internal}):G.withPrefixKey(Y.key,Y.kind);return null},jQ=r({kind:"structure",hasAssociatedError:!1,normalize:(Y)=>Y,applyConfig:(Y,Z)=>{if(!Y.undeclared&&Z.onUndeclaredKey!=="ignore")return{...Y,undeclared:Z.onUndeclaredKey};return Y},keys:{required:{child:!0,parse:t0("required"),reduceIo:(Y,Z,X)=>{Z.required=Z0(Z.required,X.map((_)=>_[Y]));return}},optional:{child:!0,parse:t0("optional"),reduceIo:(Y,Z,X)=>{if(Y==="in"){Z.optional=X.map((_)=>_.in);return}for(let _ of X)Z[_.outProp.kind]=Z0(Z[_.outProp.kind],_.outProp.out)}},index:{child:!0,parse:t0("index")},sequence:{child:!0,parse:t0("sequence")},undeclared:{parse:(Y)=>Y==="ignore"?void 0:Y,reduceIo:(Y,Z,X)=>{if(X!=="delete")return;if(Y==="in")delete Z.undeclared;else Z.undeclared="reject"}}},defaults:{description:CQ},intersections:{structure:(Y,Z,X)=>{let _={...Y.inner},G={...Z.inner},$=new P;if(Y.undeclared){let Q=Y.keyof();for(let J of Z.requiredKeys)if(!Q.allows(J))$.add("presence",N.intrinsic.never.internal,Z.propsByKey[J].value,{path:[J]});if(G.optional)G.optional=G.optional.filter((J)=>Q.allows(J.key));if(G.index)G.index=G.index.flatMap((J)=>{if(J.signature.extends(Q))return J;let U=E1(Q,J.signature,X.$);if(U instanceof P)return[];let E=Y6(U,J.value,X.$);if(E.required)G.required=t1(G.required,E.required);if(E.optional)G.optional=t1(G.optional,E.optional);return E.index??[]})}if(Z.undeclared){let Q=Z.keyof();for(let J of Y.requiredKeys)if(!Q.allows(J))$.add("presence",Y.propsByKey[J].value,N.intrinsic.never.internal,{path:[J]});if(_.optional)_.optional=_.optional.filter((J)=>Q.allows(J.key));if(_.index)_.index=_.index.flatMap((J)=>{if(J.signature.extends(Q))return J;let U=E1(Q,J.signature,X.$);if(U instanceof P)return[];let E=Y6(U,J.value,X.$);if(E.required)_.required=t1(_.required,E.required);if(E.optional)_.optional=t1(_.optional,E.optional);return E.index??[]})}let W={};if(Y.undeclared||Z.undeclared)W.undeclared=Y.undeclared==="reject"||Z.undeclared==="reject"?"reject":"delete";let H=_4({kind:"structure",baseInner:W,l:G4(_),r:G4(G),roots:[],ctx:X});if(H instanceof P)$.push(...H);if($.length)return $;return H}},reduce:(Y,Z)=>{if(Y.index){if(!(Y.required||Y.optional))return;let X=!1,_=Y.required??[],G=Y.optional??[],$=[...G];for(let W of Y.index){for(let H of _){let Q=m_(H,W,Z);if(Q instanceof P)return Q}for(let[H,Q]of G.entries()){let J=m_(Q,W,Z);if(J instanceof P)return J;if(J===null)continue;$[H]=J,X=!0}}if(X)return Z.node("structure",{...Y,optional:$},{prereduced:!0})}}});class c_ extends I1{impliedBasis=N.intrinsic.object.internal;impliedSiblings=this.children.flatMap((Y)=>Y.impliedSiblings??[]);props=t1(this.required,this.optional);propsByKey=o(this.props,(Y,Z)=>[Z.key,Z]);propsByKeyReference=B0(this.propsByKey);expression=qQ(this);requiredKeys=this.required?.map((Y)=>Y.key)??[];optionalKeys=this.optional?.map((Y)=>Y.key)??[];literalKeys=[...this.requiredKeys,...this.optionalKeys];_keyof;keyof(){if(this._keyof)return this._keyof;let Y=this.$.units(this.literalKeys).branches;if(this.index)for(let{signature:Z}of this.index)Y=Y.concat(Z.branches);return this._keyof=this.$.node("union",Y)}map(Y){return this.$.node("structure",this.props.flatMap(Y).reduce((Z,X)=>{let _=this.propsByKey[X.key];if(D0(X)){if(X.kind!=="required"&&X.kind!=="optional")return R(`Map result must have kind "required" or "optional" (was ${X.kind})`);return Z[X.kind]=Z0(Z[X.kind],X),Z}let G=X.kind??_?.kind??"required",$=o(X,(W,H)=>(W in s4.implementation.keys)?[W,H]:[]);return Z[G]=Z0(Z[G],this.$.node(G,$)),Z},{}))}assertHasKeys(Y){let Z=Y.filter((X)=>!a4(X,this.keyof()));if(Z.length)return R(u_(this.expression,Z))}get(Y,...Z){let X,_=!1,G=xQ(Y);if((typeof G==="string"||typeof G==="symbol")&&this.propsByKey[G])X=this.propsByKey[G].value,_=this.propsByKey[G].required;if(this.index){for(let W of this.index)if(a4(G,W.signature))X=X?.and(W.value)??W.value}if(this.sequence&&a4(G,N.intrinsic.nonNegativeIntegerString))if(y(G,"root")){if(this.sequence.variadic)X=X?.and(this.sequence.element)??this.sequence.element}else{let W=Number.parseInt(G);if(W<this.sequence.prevariadic.length){let H=this.sequence.prevariadic[W].node;X=X?.and(H)??H,_||=W<this.sequence.prefixLength}else if(this.sequence.variadic){let H=this.$.node("union",this.sequence.variadicOrPostfix);X=X?.and(H)??H}}if(!X){if(this.sequence?.variadic&&y(G,"root")&&G.extends(N.intrinsic.number))return R(fQ(G.expression,this.sequence.expression));return R(u_(this.expression,[G]))}let $=X.get(...Z);return _?$:$.or(N.intrinsic.undefined)}pick(...Y){return this.assertHasKeys(Y),this.$.node("structure",this.filterKeys("pick",Y))}omit(...Y){return this.assertHasKeys(Y),this.$.node("structure",this.filterKeys("omit",Y))}optionalize(){let{required:Y,...Z}=this.inner;return this.$.node("structure",{...Z,optional:this.props.map((X)=>X.hasKind("required")?this.$.node("optional",X.inner):X)})}require(){let{optional:Y,...Z}=this.inner;return this.$.node("structure",{...Z,required:this.props.map((X)=>X.hasKind("optional")?{key:X.key,value:X.value}:X)})}merge(Y){let Z=this.filterKeys("omit",[Y.keyof()]);if(Y.required)Z.required=Z0(Z.required,Y.required);if(Y.optional)Z.optional=Z0(Z.optional,Y.optional);if(Y.index)Z.index=Z0(Z.index,Y.index);if(Y.sequence)Z.sequence=Y.sequence;if(Y.undeclared)Z.undeclared=Y.undeclared;else delete Z.undeclared;return this.$.node("structure",Z)}filterKeys(Y,Z){let X=d8(this.inner),_=(G)=>{let $=Z.some((W)=>a4(G,W));return Y==="pick"?$:!$};if(X.required)X.required=X.required.filter((G)=>_(G.key));if(X.optional)X.optional=X.optional.filter((G)=>_(G.key));if(X.index)X.index=X.index.filter((G)=>_(G.signature));return X}traverseAllows=(Y,Z)=>this._traverse("Allows",Y,Z);traverseApply=(Y,Z)=>this._traverse("Apply",Y,Z);_traverse=(Y,Z,X)=>{let _=X?.currentErrorCount??0;for(let G=0;G<this.props.length;G++)if(Y==="Allows"){if(!this.props[G].traverseAllows(Z,X))return!1}else if(this.props[G].traverseApply(Z,X),X.failFast&&X.currentErrorCount>_)return!1;if(this.sequence){if(Y==="Allows"){if(!this.sequence.traverseAllows(Z,X))return!1}else if(this.sequence.traverseApply(Z,X),X.failFast&&X.currentErrorCount>_)return!1}if(this.index||this.undeclared==="reject"){let G=Object.keys(Z);G.push(...Object.getOwnPropertySymbols(Z));for(let $=0;$<G.length;$++){let W=G[$];if(this.index){for(let H of this.index)if(H.signature.traverseAllows(W,X)){if(Y==="Allows"){if(!F1(W,()=>H.value.traverseAllows(Z[W],X),X))return!1}else if(F1(W,()=>H.value.traverseApply(Z[W],X),X),X.failFast&&X.currentErrorCount>_)return!1}}if(this.undeclared==="reject"&&!this.declaresKey(W)){if(Y==="Allows")return!1;if(X.errorFromNodeContext({code:"predicate",expected:"removed",actual:"",relativePath:[W],meta:this.meta}),X.failFast)return!1}}}if(this.structuralMorph&&X&&!X.hasError())X.queueMorphs([this.structuralMorph]);return!0};get defaultable(){return this.cacheGetter("defaultable",this.optional?.filter((Y)=>Y.hasDefault())??[])}declaresKey=(Y)=>(Y in this.propsByKey)||this.index?.some((Z)=>Z.signature.allows(Y))||this.sequence!==void 0&&N.intrinsic.nonNegativeIntegerString.allows(Y);_compileDeclaresKey(Y){let Z=[];if(this.props.length)Z.push(`k in ${this.propsByKeyReference}`);if(this.index)for(let X of this.index)Z.push(Y.invoke(X.signature,{kind:"Allows",arg:"k"}));if(this.sequence)Z.push("$ark.intrinsic.nonNegativeIntegerString.allows(k)");return Z.join(" || ")||"false"}get structuralMorph(){return this.cacheGetter("structuralMorph",PQ(this))}structuralMorphRef=this.structuralMorph&&B0(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(["),vQ(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 R0.throwInternalOperandError("structure",Y)}}reduceObjectJsonSchema(Y,Z){if(this.props.length){Y.properties={};for(let X of this.props){let _=X.value.toJsonSchemaRecurse(Z);if(typeof X.key==="symbol"){Z.fallback.symbolKey({code:"symbolKey",base:Y,key:X.key,value:_,optional:X.optional});continue}if(X.hasDefault()){let G=typeof X.default==="function"?X.default():X.default;_.default=N.intrinsic.jsonData.allows(G)?G:Z.fallback.defaultValue({code:"defaultValue",base:_,value:G})}Y.properties[X.key]=_}if(this.requiredKeys.length&&Y.properties)Y.required=this.requiredKeys.filter((X)=>typeof X==="string"&&(X in Y.properties))}if(this.index)for(let X of this.index){let _=X.value.toJsonSchemaRecurse(Z);if(X.signature.equals(N.intrinsic.string)){Y.additionalProperties=_;continue}for(let G of X.signature.branches){if(!G.extends(N.intrinsic.string)){Y=Z.fallback.symbolKey({code:"symbolKey",base:Y,key:null,value:_,optional:!1});continue}let $={type:"string"};if(G.hasKind("morph"))$=Z.fallback.morph({code:"morph",base:G.in.toJsonSchemaRecurse(Z),out:G.out.toJsonSchemaRecurse(Z)});if(!G.hasKind("intersection"))return _0(`Unexpected index branch kind ${G.kind}.`);let{pattern:W}=G.inner;if(W){let H=Object.assign($,{pattern:W[0].rule});for(let Q=1;Q<W.length;Q++)$=Z.fallback.patternIntersection({code:"patternIntersection",base:H,pattern:W[Q].rule});Y.patternProperties??={},Y.patternProperties[H.pattern]=_}}}if(this.undeclared&&!Y.additionalProperties)Y.additionalProperties=!1;return Y}}var XZ={},SQ=(Y)=>{let Z="";for(let X=0;X<Y.defaultable.length;X++)Z+=Y.defaultable[X].defaultValueMorphRef;if(Y.sequence?.defaultValueMorphsReference)Z+=Y.sequence?.defaultValueMorphsReference;if(Y.undeclared==="delete"){if(Z+="delete !(",Y.required)for(let X of Y.required)Z+=X.compiledKey+" | ";if(Y.optional)for(let X of Y.optional)Z+=X.compiledKey+" | ";if(Y.index)for(let X of Y.index)Z+=X.signature.id+" | ";if(Y.sequence)if(Y.sequence.maxLength===null)Z+=d.nonNegativeIntegerString.id;else for(let X=0;X<Y.sequence.tuple.length;X++)Z+=X+" | ";Z+=")"}return Z},PQ=(Y)=>{let Z=SQ(Y);if(!Z)return;if(XZ[Z])return XZ[Z];let X=(_,G)=>{for(let $=0;$<Y.defaultable.length;$++)if(!(Y.defaultable[$].key in _))Y.defaultable[$].defaultValueMorph(_,G);if(Y.sequence?.defaultables)for(let $=_.length-Y.sequence.prefixLength;$<Y.sequence.defaultables.length;$++)Y.sequence.defaultValueMorphs[$](_,G);if(Y.undeclared==="delete"){for(let $ in _)if(!Y.declaresKey($))delete _[$]}return _};return XZ[Z]=X},vQ=(Y,Z)=>{let _=`(data${Z.defaultable.some((G)=>G.defaultValueMorph.length===2)||Z.sequence?.defaultValueMorphs.some((G)=>G.length===2)?", ctx":""})`;return Y.block(`${_} => `,(G)=>{for(let $=0;$<Z.defaultable.length;$++){let{serializedKey:W,defaultValueMorphRef:H}=Z.defaultable[$];G.if(`!(${W} in data)`,(Q)=>Q.line(`${H}${_}`))}if(Z.sequence?.defaultables)G.for(`i < ${Z.sequence.defaultables.length}`,($)=>$.set("data[i]",5),`data.length - ${Z.sequence.prefixLength}`);if(Z.undeclared==="delete")G.forIn("data",($)=>$.if(`!(${Z._compileDeclaresKey($)})`,(W)=>W.line("delete data[k]")));return G.return("data")})},_Z={implementation:jQ,Node:c_},xQ=(Y)=>{if(y(Y,"root")&&Y.hasKind("unit"))Y=Y.unit;if(typeof Y==="number")Y=`${Y}`;return Y},fQ=(Y,Z)=>`${Y} is not allowed as an array index on ${Z}. Use the 'nonNegativeIntegerString' keyword instead.`,Y6=(Y,Z,X)=>{let[_,G]=EX(Y.branches,(W)=>W.hasKind("unit"));if(!_.length)return{index:X.node("index",{signature:Y,value:Z})};let $={};for(let W of _){let H=X.node("required",{key:W.unit,value:Z});$[H.kind]=Z0($[H.kind],H)}if(G.length)$.index=X.node("index",{signature:G,value:Z});return $},hQ=(Y)=>y(Y,"root")?Y.expression:i(Y),u_=(Y,Z)=>`Key${Z.length===1?"":"s"} ${Z.map(hQ).join(", ")} ${Z.length===1?"does":"do"} not exist on ${Y}`;var W4={...O_,alias:e4.implementation,domain:e8.implementation,unit:tY.implementation,proto:Y8.implementation,union:sY.implementation,morph:rY.implementation,intersection:iY.implementation,divisor:xY.implementation,pattern:mY.implementation,predicate:vY.implementation,required:eY.implementation,optional:s4.implementation,index:aY.implementation,sequence:YZ.implementation,structure:_Z.implementation};N.defaultConfig=NX(Object.assign(o(W4,(Y,Z)=>[Y,Z.defaults]),{jitless:qX(),clone:KX,onUndeclaredKey:"ignore",exactOptionalPropertyTypes:!0,numberAllowsNaN:!1,dateAllowsInvalid:!1,onFail:null,keywords:{},toJsonSchema:R0.defaultConfig}));N.resolvedConfig=d4(N.defaultConfig,N.config);var w_={...V_,alias:e4.Node,domain:e8.Node,unit:tY.Node,proto:Y8.Node,union:sY.Node,morph:rY.Node,intersection:iY.Node,divisor:xY.Node,pattern:mY.Node,predicate:vY.Node,required:eY.Node,optional:s4.Node,index:aY.Node,sequence:YZ.Node,structure:_Z.Node};class Q4 extends EY{get[X1](){return"module"}}var GZ=(Y,Z)=>new Q4(o(Y,(X,_)=>[X,y(_,"module")?GZ(_,Z):Z.bindReference(_)]));var kQ=(Y)=>F0(Y)?Y:("branches"in Y)&&F0(Y.branches)?Y.branches:void 0,bQ=(Y,Z)=>R(`Node of kind ${Z} is not valid as a ${Y} definition`),l_=(Y)=>`#${Y} duplicates public alias ${Y}`,$Z={};N.ambient??={};var o_,r_="function $",yQ=(Y)=>n_(Y,s_(Y)),n_=(Y,Z)=>{let X=Z.write(r_,4),_=Z.compile()();for(let G of Y){if(G.precompilation)continue;if(G.traverseAllows=_[`${G.id}Allows`].bind(_),G.isRoot()&&!G.allowsRequiresContext)G.allows=G.traverseAllows;if(G.traverseApply=_[`${G.id}Apply`].bind(_),_[`${G.id}Optimistic`])G.traverseOptimistic=_[`${G.id}Optimistic`].bind(_);G.precompilation=X}},s_=(Y)=>new u8().return(Y.reduce((Z,X)=>{let _=new u4({kind:"Allows"}).indent();X.compile(_);let G=_.write(`${X.id}Allows`),$=new u4({kind:"Apply"}).indent();X.compile($);let W=$.write(`${X.id}Apply`),H=`${Z}${G},
44
44
  ${W},
45
45
  `;if(!X.hasKind("union"))return H;let Q=new u4({kind:"Allows",optimistic:!0}).indent();X.compile(Q);let J=Q.write(`${X.id}Optimistic`);return`${H}${J},
46
46
  `},`{
47
- `)+"}");class Z6{config;resolvedConfig;name;get[X1](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(Y,Z){if(this.config=d4(N.config,Z),this.resolvedConfig=d4(N.resolvedConfig,Z),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys($Z).length}`,this.name in $Z)R(`A Scope already named ${this.name} already exists`);$Z[this.name]=this;let X=Object.entries(Y).map((_)=>this.preparseOwnAliasEntry(..._));for(let[_,G]of X){let $=_;if(_[0]==="#"){if($=_.slice(1),$ in this.aliases)R(l_($));this.aliases[$]=G}else{if($ in this.aliases)R(l_(_));this.aliases[$]=G,this.exportedNames.push($)}if(!y(G,"module")&&!y(G,"generic")&&!O2(G)){let W=this.preparseOwnDefinitionFormat(G,{alias:$});this.resolutions[$]=y(W,"root")?this.bindReference(W):this.createParseContext(W).id}}o_??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[o_.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=N.intrinsic?o(N.intrinsic,(_,G)=>_.startsWith("json")?[]:[_,this.bindReference(G)]):{}}cacheGetter(Y,Z){return Object.defineProperty(this,Y,{value:Z}),Z}get internal(){return this}_json;get json(){if(!this._json)this.export();return this._json}defineSchema(Y){return Y}generic=(...Y)=>{let Z=this;return(X,_)=>new A2(Y,_?new i8(X):X,Z,Z,_??null)};units=(Y,Z)=>{let X=[];for(let G of Y)if(!X.includes(G))X.push(G);let _=X.map((G)=>this.node("unit",{unit:G},Z));return this.node("union",_,{...Z,prereduced:!0})};lazyResolutions=[];lazilyResolve(Y,Z){let X=this.node("alias",{reference:Z??"synthetic",resolve:Y},{prereduced:!0});if(!this.resolved)this.lazyResolutions.push(X);return X}schema=(Y,Z)=>this.finalize(this.parseSchema(Y,Z));parseSchema=(Y,Z)=>this.node(i4(Y),Y,Z);preparseNode(Y,Z,X){let _=typeof Y==="string"?Y:i4(Z,Y);if(D0(Z)&&Z.kind===_)return Z;if(_==="alias"&&!X?.prereduced){let{reference:W}=e4.implementation.normalize(Z,this);if(W.startsWith("$")){let H=this.resolveRoot(W.slice(1));Z=H,_=H.kind}}else if(_==="union"&&Q1(Z,"object")){let W=kQ(Z);if(W?.length===1)Z=W[0],_=i4(Z)}if(D0(Z)&&Z.kind===_)return Z;let $=W4[_].normalize?.(Z,this)??Z;if(D0($))return $.kind===_?$:bQ(_,$.kind);return{...X,$:this,kind:_,def:$,prefix:X.alias??_}}bindReference(Y){let Z;if(D0(Y))Z=Y.$===this?Y:new Y.constructor(Y.attachments,this);else Z=Y.$===this?Y:new A2(Y.params,Y.bodyDef,Y.$,this,Y.hkt);if(!this.resolved)Object.assign(this.referencesById,Z.referencesById);return Z}resolveRoot(Y){return this.maybeResolveRoot(Y)??R(JZ(Y))}maybeResolveRoot(Y){let Z=this.maybeResolve(Y);if(y(Z,"generic"))return;return Z}maybeResolveSubalias(Y){return WZ(this.aliases,Y)??WZ(this.ambient,Y)}get ambient(){return N.ambient}maybeResolve(Y){let Z=this.resolutions[Y];if(Z){if(typeof Z!=="string")return this.bindReference(Z);let _=_1[Z];if(y(_,"root"))return this.resolutions[Y]=_;if(y(_,"context")){if(_.phase==="resolving")return this.node("alias",{reference:`$${Y}`},{prereduced:!0});if(_.phase==="resolved")return _0(`Unexpected resolved context for was uncached by its scope: ${i(_)}`);_.phase="resolving";let G=this.bindReference(this.parseOwnDefinitionFormat(_.def,_));return _.phase="resolved",_1[G.id]=G,_1[_.id]=G,this.resolutions[Y]=G}return _0(`Unexpected nodesById entry for ${Z}: ${i(_)}`)}let X=this.aliases[Y]??this.ambient?.[Y];if(!X)return this.maybeResolveSubalias(Y);if(X=this.normalizeRootScopeValue(X),y(X,"generic"))return this.resolutions[Y]=this.bindReference(X);if(y(X,"module")){if(!X.root)R(e_(Y));return this.resolutions[Y]=this.bindReference(X.root)}return this.resolutions[Y]=this.parse(X,{alias:Y})}createParseContext(Y){let Z=Y.id??uY(Y.prefix);return _1[Z]=Object.assign(Y,{[X1]:"context",$:this,id:Z,phase:"unresolved"})}traversal(Y){return new f1(Y,this.resolvedConfig)}import(...Y){return new Q4(o(this.export(...Y),(Z,X)=>[`#${Z}`,X]))}precompilation;_exportedResolutions;_exports;export(...Y){if(!this._exports){this._exports={};for(let X of this.exportedNames){let _=this.aliases[X];this._exports[X]=y(_,"module")?GZ(_,this):i_(this.maybeResolve(X))}for(let X of this.lazyResolutions)X.resolution;if(this._exportedResolutions=a_(this,this._exports),this._json=t_(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let X=s_(this.references);this.precompilation=X.write(r_,4),n_(this.references,X)}this.resolved=!0}let Z=Y.length?Y:this.exportedNames;return new Q4(o(Z,(X,_)=>[_,this._exports[_]]))}resolve(Y){return this.export()[Y]}node=(Y,Z,X={})=>{let _=this.preparseNode(Y,Z,X);if(D0(_))return this.bindReference(_);let G=this.createParseContext(_),$=dY(G),W=this.bindReference($);return _1[G.id]=W};parse=(Y,Z={})=>this.finalize(this.parseDefinition(Y,Z));parseDefinition(Y,Z={}){if(y(Y,"root"))return this.bindReference(Y);let X=this.preparseOwnDefinitionFormat(Y,Z);if(y(X,"root"))return this.bindReference(X);let _=this.createParseContext(X);_1[_.id]=_;let G=this.bindReference(this.parseOwnDefinitionFormat(Y,_));if(G.isCyclic)G=A_(G,_.id);return _1[_.id]=G,G}finalize(Y){if(i_(Y),!Y.precompilation&&!this.resolvedConfig.jitless)yQ(Y.references);return Y}}class HZ extends Z6{parseOwnDefinitionFormat(Y,Z){return dY(Z)}preparseOwnDefinitionFormat(Y,Z){return this.preparseNode(i4(Y),Y,Z)}preparseOwnAliasEntry(Y,Z){return[Y,Z]}normalizeRootScopeValue(Y){return Y}}var i_=(Y)=>{let Z=Y.references.filter((X)=>X.hasKind("alias"));for(let X of Z){Object.assign(X.referencesById,X.resolution.referencesById);for(let _ of Y.references)if(X.id in _.referencesById)Object.assign(_.referencesById,X.referencesById)}return Y},t_=(Y)=>o(Y,(Z,X)=>[Z,y(X,"root")||y(X,"generic")?X.json:y(X,"module")?t_(X):_0(`Unexpected resolution ${i(X)}`)]),WZ=(Y,Z)=>{let X=Z.indexOf(".");if(X===-1)return;let _=Z.slice(0,X),G=Y[_];if(G===void 0)return;if(!y(G,"module"))return R(gQ(_));let $=Z.slice(X+1),W=G[$];if(W===void 0)return WZ(G,$);if(y(W,"root")||y(W,"generic"))return W;if(y(W,"module"))return W.root??R(e_(Z));_0(`Unexpected resolution for alias '${Z}': ${i(W)}`)},X6=(Y,Z)=>new HZ(Y,Z),X8=new HZ({});var a_=(Y,Z)=>{let X={};for(let _ in Z){let G=Z[_];if(y(G,"module")){let $=a_(Y,G),W=o($,(H,Q)=>[`${_}.${H}`,Q]);Object.assign(X,W)}else if(y(G,"root")||y(G,"generic"))X[_]=G;else _0(`Unexpected scope resolution ${i(G)}`)}return X},JZ=(Y)=>`'${Y}' is unresolvable`,gQ=(Y)=>`'${Y}' must reference a module to be accessed using dot syntax`,e_=(Y)=>`Reference to submodule '${Y}' must specify an alias`;X8.export();var{schema:H0,node:U4,defineSchema:fw,generic:K1}=X8;var QZ="^(?:0|[1-9]\\d*)$",pQ=new RegExp(QZ),bw=B0(pQ);var YG=X6({bigint:"bigint",boolean:[{unit:!1},{unit:!0}],false:{unit:!1},never:[],null:{unit:null},number:"number",object:"object",string:"string",symbol:"symbol",true:{unit:!0},unknown:{},undefined:{unit:void 0},Array,Date},{prereducedAliases:!0}).export();N.intrinsic={...YG};var ZG=X6({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:QZ}},{prereducedAliases:!0}).export();Object.assign(N.intrinsic,ZG);var mQ=X6({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),d={...YG,...ZG,...mQ,emptyStructure:U4("structure",{},{prereduced:!0})};N.intrinsic={...d};var _G=(Y)=>typeof Y==="string"&&Y[0]==="d"&&(Y[1]==="'"||Y[1]==='"')&&Y.at(-1)===Y[1],XG=(Y)=>Y.toString()!=="Invalid Date",GG=(Y)=>Y.slice(2,-1),UZ=(Y)=>`'${Y}' could not be parsed by the Date constructor`,$G=(Y,Z)=>uQ(Y,Z),uQ=(Y,Z)=>{let X=new Date(Y);if(XG(X))return X;let _=bX(Y);if(_!==void 0){let G=new Date(_);if(XG(G))return G}return Z?R(Z===!0?UZ(Y):Z):void 0};var zZ=(Y,Z)=>{let X=Y.scanner.shiftUntil(dQ[HG[Z]]);if(Y.scanner.lookahead==="")return Y.error(lQ(X,Z));if(Y.scanner.shift(),Z==="/"){try{new RegExp(X)}catch(_){R(String(_))}Y.root=Y.ctx.$.node("intersection",{domain:"string",pattern:X},{prereduced:!0})}else if(g0(Z,FZ))Y.root=Y.ctx.$.node("unit",{unit:X});else{let _=$G(X,UZ(X));Y.root=Y.ctx.$.node("unit",{meta:X,unit:_})}},FZ={"'":1,'"':1},WG={"/":1,"'":1,'"':1},HG={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},dQ={"'":(Y)=>Y.lookahead==="'",'"':(Y)=>Y.lookahead==='"',"/":(Y)=>Y.lookahead==="/"},cQ={'"':"double-quote","'":"single-quote","/":"forward slash"},lQ=(Y,Z)=>`${Z}${Y} requires a closing ${cQ[HG[Z]]}`;var JG=(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",G6="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var QG={">":!0,">=":!0},UG={"<":!0,"<=":!0};var z4={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},zG=(Y)=>`Unmatched )${Y===""?"":` before ${Y}`}`,$6=(Y)=>`Missing ${Y}`,FG=(Y,Z)=>`Left bounds are only valid when paired with right bounds (try ...${Z}${Y})`,W6=(Y)=>`Left-bounded expressions must specify their limits using < or <= (was ${Y})`,EG=(Y,Z,X,_)=>`An expression may have at most one left bound (parsed ${Y}${z4[Z]}, ${X}${z4[_]})`;var OG=(Y,Z,X)=>VG(Y,Z,X,[]),VG=(Y,Z,X,_)=>{let G=X.parseUntilFinalizer();if(_.push(G.root),G.finalizer===">"){if(_.length!==Z.params.length)return X.error(EZ(Y,Z.names,_.map(($)=>$.expression)));return _}if(G.finalizer===",")return VG(Y,Z,X,_);return G.error($6(">"))},EZ=(Y,Z,X)=>`${Y}<${Z.join(", ")}> requires exactly ${Z.length} args (got ${X.length}${X.length===0?"":`: ${X.join(", ")}`})`;var OZ=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator();if(Z==="keyof")Y.addPrefix("keyof");else Y.root=iQ(Y,Z)},oQ=(Y,Z,X)=>{if(X.scanner.shiftUntilNonWhitespace(),X.scanner.shift()!=="<")return X.error(EZ(Y,Z.names,[]));let G=OG(Y,Z,X);return Z(...G)},iQ=(Y,Z)=>rQ(Y,Z)??nQ(Y,Z)??Y.error(Z===""?Y.scanner.lookahead==="#"?JG(Y.shiftedByOne().scanner.shiftUntilNextTerminator()):VZ(Y):JZ(Z)),rQ=(Y,Z)=>{if(Y.ctx.args?.[Z]){let _=Y.ctx.args[Z];if(typeof _!=="string")return _;return Y.ctx.$.node("alias",{reference:_},{prereduced:!0})}let X=Y.ctx.$.maybeResolve(Z);if(y(X,"root"))return X;if(X===void 0)return;if(y(X,"generic"))return oQ(Z,X,Y);return R(`Unexpected resolution ${i(X)}`)},nQ=(Y,Z)=>{let X=yX(Z);if(X!==void 0)return Y.ctx.$.node("unit",{unit:X});let _=pX(Z);if(_!==void 0)return Y.ctx.$.node("unit",{unit:_})},VZ=(Y)=>{let Z=Y.previousOperator();return Z?DZ(Z,Y.scanner.unscanned):sQ(Y.scanner.unscanned)},DZ=(Y,Z="")=>`Token '${Y}' requires a right operand${Z?` before '${Z}'`:""}`,sQ=(Y)=>`Expected an expression${Y?` before '${Y}'`:""}`;var LZ=(Y)=>Y.scanner.lookahead===""?Y.error(VZ(Y)):Y.scanner.lookahead==="("?Y.shiftedByOne().reduceGroupOpen():Y.scanner.lookaheadIsIn(WG)?zZ(Y,Y.scanner.shift()):Y.scanner.lookaheadIsIn(V2)?LZ(Y.shiftedByOne()):Y.scanner.lookahead==="d"?Y.scanner.nextLookahead in FZ?zZ(Y,`${Y.scanner.shift()}${Y.scanner.shift()}`):OZ(Y):OZ(Y);class _2 extends NY{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>(this.lookahead in _2.terminatingChars))}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...V2};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(Y,Z)=>Y===">"?Z[0]==="="?Z[1]==="=":Z.trimStart()===""||g0(Z.trimStart()[0],_2.terminatingChars):Y==="="?Z[0]!=="=":Y===","||Y==="?"}var LG=(Y,Z)=>{let X=tQ(Y,Z);if(Y.root.hasKind("unit")){if(typeof Y.root.unit==="number"){Y.reduceLeftBound(Y.root.unit,X),Y.unsetRoot();return}if(Y.root.unit instanceof Date){let _=`d'${Y.root.description??Y.root.unit.toISOString()}'`;Y.unsetRoot(),Y.reduceLeftBound(_,X);return}}return eQ(Y,X)},MG={"<":1,">":1,"=":1},tQ=(Y,Z)=>Y.scanner.lookaheadIs("=")?`${Z}${Y.scanner.shift()}`:Z;var DG=(Y,Z,X,_)=>{if(X.extends(N.intrinsic.number)){if(typeof Z!=="number")return R(MZ(Y,Z,_));return Y==="=="?["min","max"]:Y[0]===">"?["min"]:["max"]}if(X.extends(N.intrinsic.lengthBoundable)){if(typeof Z!=="number")return R(MZ(Y,Z,_));return Y==="=="?["exactLength"]:Y[0]===">"?["minLength"]:["maxLength"]}if(X.extends(N.intrinsic.Date))return Y==="=="?["after","before"]:Y[0]===">"?["after"]:["before"];return R(W_(X.expression))},aQ=(Y)=>({rule:_G(Y.limit)?GG(Y.limit):Y.limit,exclusive:Y.comparator.length===1}),eQ=(Y,Z)=>{let X=Y.unsetRoot(),_=Y.scanner.location;Y.parseOperand();let G=Y.unsetRoot(),$=Y.scanner.sliceChars(_,Y.scanner.location);if(Y.root=X,!G.hasKind("unit")||typeof G.unit!=="number"&&!(G.unit instanceof Date))return Y.error(MZ(Z,$,"right"));let W=G.unit,H=Z.length===1,Q=DG(Z,typeof W==="number"?W:$,X,"right");for(let U of Q)Y.constrainRoot(U,Z==="=="?{rule:W}:{rule:W,exclusive:H});if(!Y.branches.leftBound)return;if(!g0(Z,UG))return Y.error(W6(Z));let J=DG(Y.branches.leftBound.comparator,Y.branches.leftBound.limit,X,"left");Y.constrainRoot(J[0],aQ(Y.branches.leftBound)),Y.branches.leftBound=null},MZ=(Y,Z,X)=>`Comparator ${X==="left"?z4[Y]:Y} must be ${X==="left"?"preceded":"followed"} by a corresponding literal (was ${Z})`;var AG=(Y)=>{Y.scanner.shiftUntilNonWhitespace();let Z=Y.scanner.shiftUntilNextTerminator();Y.root=Y.root.brand(Z)};var RG=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator(),X=gX(Z,{errorOnFail:wG(Z)});if(X===0)Y.error(wG(0));Y.root=Y.root.constrain("divisor",X)},wG=(Y)=>`% operator must be followed by a non-zero integer literal (was ${Y})`;var AZ=(Y)=>{let Z=Y.scanner.shift();return Z===""?Y.finalize(""):Z==="["?Y.scanner.shift()==="]"?Y.setRoot(Y.root.array()):Y.error(YU):Z==="|"?Y.scanner.lookahead===">"?Y.shiftedByOne().pushRootToBranch("|>"):Y.pushRootToBranch(Z):Z==="&"?Y.pushRootToBranch(Z):Z===")"?Y.finalizeGroup():_2.lookaheadIsFinalizing(Z,Y.scanner.unscanned)?Y.finalize(Z):g0(Z,MG)?LG(Y,Z):Z==="%"?RG(Y):Z==="#"?AG(Y):(Z in V2)?AZ(Y):Y.error(H6(Z))},H6=(Y,Z="")=>`'${Y}' is not allowed here${Z&&` (should be ${Z})`}`,YU="Missing expected ']'";var NG=(Y)=>{let Z=Y.unsetRoot();Y.parseOperand();let X=Y.unsetRoot();if(!X.hasKind("unit"))return Y.error(ZU(X.expression));let _=X.unit instanceof Date?()=>new Date(X.unit):X.unit;return[Z,"=",_]},ZU=(Y)=>`Default value '${Y}' must a literal value`;var wZ=(Y,Z)=>{let X=Z.$.maybeResolveRoot(Y);if(X)return X;if(Y.endsWith("[]")){let $=Z.$.maybeResolveRoot(Y.slice(0,-2));if($)return $.array()}let _=new F4(new _2(Y),Z),G=XU(_);if(_.finalizer===">")R(H6(">"));return G},XU=(Y)=>{Y.parseOperand();let Z=_8(Y).root;if(!Z)return _0(`Root was unexpectedly unset after parsing string '${Y.scanner.scanned}'`);if(Y.finalizer==="=")Z=NG(Y);else if(Y.finalizer==="?")Z=[Z,"?"];if(Y.scanner.shiftUntilNonWhitespace(),Y.scanner.lookahead)R(H6(Y.scanner.lookahead));return Z},_8=(Y)=>{while(Y.finalizer===void 0)_U(Y);return Y},_U=(Y)=>Y.hasRoot()?Y.parseOperator():Y.parseOperand();class F4{root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(Y,Z){this.scanner=Y,this.ctx=Z}error(Y){return R(Y)}hasRoot(){return this.root!==void 0}setRoot(Y){this.root=Y}unsetRoot(){let Y=this.root;return this.root=void 0,Y}constrainRoot(...Y){this.root=this.root.constrain(Y[0],Y[1])}finalize(Y){if(this.groups.length)return this.error($6(")"));this.finalizeBranches(),this.finalizer=Y}reduceLeftBound(Y,Z){let X=z4[Z];if(!g0(X,QG))return this.error(W6(Z));if(this.branches.leftBound)return this.error(EG(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(zG(this.scanner.unscanned));this.branches=Y}addPrefix(Y){this.branches.prefixes.push(Y)}applyPrefixes(){while(this.branches.prefixes.length){let Y=this.branches.prefixes.pop();this.root=Y==="keyof"?this.root.keyof():_0(`Unexpected prefix '${Y}'`)}}pushRootToBranch(Y){this.assertRangeUnset(),this.applyPrefixes();let Z=this.root;if(this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd(Z)??Z,Y==="&")return;if(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,Y==="|")return;this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null}parseUntilFinalizer(){return _8(new F4(this.scanner,this.ctx))}parseOperator(){return AZ(this)}parseOperand(){return LZ(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(FG(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 GU="An empty string is not a valid generic parameter name",J6=(Y,Z,X)=>{Y.shiftUntilNonWhitespace();let _=Y.shiftUntilNextTerminator();if(_===""){if(Y.lookahead===""&&Z.length)return Z;return R(GU)}return Y.shiftUntilNonWhitespace(),$U(Y,_,Z,X)},IG="extends ",$U=(Y,Z,X,_)=>{if(Y.shiftUntilNonWhitespace(),Y.unscanned.startsWith(IG))Y.jumpForward(IG.length);else{if(Y.lookahead===",")Y.shift();return X.push(Z),J6(Y,X,_)}let G=_8(new F4(Y,_));return X.push([Z,G.root]),J6(Y,X,_)};class RZ extends x1{$;constructor(Y){super((...Z)=>new G8(Y)(...Z),{bind:Y});this.$=Y}in(Y){return new G8(this.$,Y===void 0?void 0:this.$.parse(Y))}at(Y,Z){return new G8(this.$).at(Y,Z)}case(Y,Z){return new G8(this.$).case(Y,Z)}}class G8 extends x1{$;in;key;branches=[];constructor(Y,Z){super((X)=>this.caseEntries(Object.entries(X).map(([_,G])=>_==="default"?[_,G]:[this.$.parse(_),G])));this.$=Y,this.in=Z}at(Y,Z){if(this.key)R(HU);if(this.branches.length)R(WU);return this.key=Y,Z?this.match(Z):this}case(Y,Z){return this.caseEntry(this.$.parse(Y),Z)}caseEntry(Y,Z){let _=(this.key?this.$.parse({[this.key]:Y}):Y).pipe(Z);return this.branches.push(_),this}match(Y){return this(Y)}strings(Y){return this.caseEntries(Object.entries(Y).map(([Z,X])=>Z==="default"?[Z,X]:[this.$.node("unit",{unit:Z}),X]))}caseEntries(Y){for(let Z=0;Z<Y.length;Z++){let[X,_]=Y[Z];if(X==="default"){if(Z!==Y.length-1)R("default may only be specified as the last key of a switch definition");return this.default(_)}if(typeof _!=="function")return R(`Value for case "${X}" must be a function (was ${y0(_)})`);this.caseEntry(X,_)}return this}default(Y){if(typeof Y==="function")this.case(d.unknown,Y);let Z={branches:this.branches,ordered:!0};if(Y==="never"||Y==="assert")Z.meta={onFail:TG};let X=this.$.node("union",Z);if(!this.in)return this.$.finalize(X);let _=this.in.pipe(X);if(Y==="never"||Y==="assert")_=_.configureReferences({onFail:TG},"self");return this.$.finalize(_)}}var TG=(Y)=>Y.throw(),WU="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",HU="At most one key matcher may be specified per expression";var Q6=(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 U6(Y,Z)},KG="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",BG="Only required keys may specify default values, e.g. { value: 'number = 0' }";var CG=(Y,Z)=>{let X,_={},G=j2(Y);for(let[W,H]of G){let Q=UU(W);if(Q.kind==="spread"){if(!d1(_))return R(QU);let L=Z.$.parseOwnDefinitionFormat(H,Z);if(L.equals(d.object))continue;if(!L.hasKind("intersection")||!L.basis?.equals(d.object))return R(zU(L.expression));X=L.structure;continue}if(Q.kind==="undeclared"){if(H!=="reject"&&H!=="delete"&&H!=="ignore")R(JU(H));_.undeclared=H;continue}let J=Q6(H,Z),U=Q;if(Q.kind==="required"){if(!F0(J))NZ(_,"required",{key:Q.normalized,value:J},Z);else NZ(_,"optional",J[1]==="="?{key:Q.normalized,value:J[0],default:J[2]}:{key:Q.normalized,value:J[0]},Z);continue}if(F0(J)){if(J[1]==="?")R(KG);if(J[1]==="=")R(BG)}if(Q.kind==="optional"){NZ(_,"optional",{key:Q.normalized,value:J},Z);continue}let E=Z.$.parseOwnDefinitionFormat(U.normalized,Z),V=Y6(E,J,Z.$);if(V.index)_.index=Z0(_.index,V.index);if(V.required)_.required=Z0(_.required,V.required)}let $=Z.$.node("structure",_);return Z.$.parseSchema({domain:"object",structure:X?.merge($)??$})},NZ=(Y,Z,X,_)=>{Y[Z]=Z0(Y[Z],_.$.node(Z,X))},JU=(Y)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${i(Y)})`,QU="Spread operator may only be used as the first key in an object",UU=(Y)=>typeof Y==="symbol"?{kind:"required",normalized:Y}:Y.at(-1)==="?"?Y.at(-2)===k4?{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]===k4&&Y[1]==="["&&Y.at(-1)==="]"?{kind:"required",normalized:Y.slice(1)}:Y==="..."?{kind:"spread"}:Y==="+"?{kind:"undeclared"}:{kind:"required",normalized:Y==="\\..."?"...":Y==="\\+"?"+":Y},zU=(Y)=>`Spread operand must resolve to an object literal type (was ${Y})`;var jG=(Y,Z)=>RU(Y)?xG[Y[0]](Y,Z):AU(Y)?vG[Y[1]](Y,Z):null,FU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[1],Z).keyof(),IZ=(Y,Z)=>{if(Y[2]===void 0)return R(DZ(Y[1],""));let X=Z.$.parseOwnDefinitionFormat(Y[0],Z),_=Z.$.parseOwnDefinitionFormat(Y[2],Z);if(Y[1]==="|")return Z.$.node("union",{branches:[X,_]});let G=Y[1]==="&"?E1(X,_,Z.$):o4(X,_,Z.$);if(G instanceof P)return G.throw();return G},EU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).array(),OU=(Y,Z)=>{if(typeof Y[2]!=="function")return R(SG("=>",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).pipe(Y[2])},SG=(Y,Z)=>`${Y===":"?"Narrow":"Morph"} expression requires a function following '${Y}' (was ${typeof Z})`,VU=(Y,Z)=>{if(typeof Y[2]!=="function")return R(SG(":",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).constrain("predicate",Y[2])},DU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).configureReferences(Y[2],"shallow"),PG=(Y)=>Y,LU=PG({"[]":EU,"?":()=>R(_6)}),MU=PG({"|":IZ,"&":IZ,":":VU,"=>":OU,"|>":IZ,"@":DU,"=":()=>R(G6)}),vG={...LU,...MU},AU=(Y)=>vG[Y[1]]!==void 0,wU=(Y)=>Y,xG=wU({keyof:FU,instanceof:(Y,Z)=>{if(typeof Y[1]!=="function")return R(qG(f4(Y[1])));let X=Y.slice(1).map((_)=>typeof _==="function"?Z.$.node("proto",{proto:_}):R(qG(f4(_))));return X.length===1?X[0]:Z.$.node("union",{branches:X})},"===":(Y,Z)=>Z.$.units(Y.slice(1))}),RU=(Y)=>xG[Y[0]]!==void 0,qG=(Y)=>`Expected a constructor following 'instanceof' operator (was ${Y})`;var kG=(Y,Z)=>{let X=[{}],_=0;while(_<Y.length){let G=!1;if(Y[_]==="..."&&_<Y.length-1)G=!0,_++;let $=Q6(Y[_],Z),[W,H,Q]=!F0($)?[$]:$;if(_++,G){if(!W.extends(N.intrinsic.Array))return R(TU(W.expression));X=X.flatMap((J)=>W.distribute((U)=>IU(d8(J),U)))}else X=X.map((J)=>{if(H==="?")return bG(J,W);if(H==="=")return NU(J,W,Q);return TZ(J,W)})}return Z.$.parseSchema(X.map((G)=>d1(G)?{proto:Array,exactLength:0}:{proto:Array,sequence:G}))},TZ=(Y,Z)=>{if(Y.defaultables||Y.optionals)return R(Y.variadic?ZZ:KU);if(Y.variadic)Y.postfix=Z0(Y.postfix,Z);else Y.prefix=Z0(Y.prefix,Z);return Y},bG=(Y,Z)=>{if(Y.variadic)return R(yG);return Y.optionals=Z0(Y.optionals,Z),Y},NU=(Y,Z,X)=>{if(Y.variadic)return R(yG);if(Y.optionals)return R(BU);return Y.defaultables=Z0(Y.defaultables,[[Z,X]]),Y},fG=(Y,Z)=>{if(Y.postfix)R(hG);if(Y.variadic){if(!Y.variadic.equals(Z))R(hG)}else Y.variadic=Z.internal;return Y},IU=(Y,Z)=>{let X=Z.select({method:"find",kind:"sequence"});if(!X)return fG(Y,N.intrinsic.unknown);if(X.prefix)for(let _ of X.prefix)TZ(Y,_);if(X.optionals)for(let _ of X.optionals)bG(Y,_);if(X.variadic)fG(Y,X.variadic);if(X.postfix)for(let _ of X.postfix)TZ(Y,_);return Y},TU=(Y)=>`Spread element must be an array (was ${Y})`,hG="A tuple may have at most one variadic element",KU="A required element may not follow an optional element",yG="An optional element may not follow a variadic element";var BU="A defaultable element may not follow an optional element without a default";var CU={},U6=(Y,Z)=>{if(typeof Y==="string"){if(Z.args&&Object.keys(Z.args).some((_)=>Y.includes(_)))return wZ(Y,Z);let X=CU[Z.$.name]??={};return X[Y]??=wZ(Y,Z)}return Q1(Y,"object")?qU(Y,Z):R(KZ(y0(Y)))},qU=(Y,Z)=>{let X=x4(Y);switch(X){case void 0:if(y(Y,"root"))return Y;return CG(Y,Z);case"Array":return jU(Y,Z);case"RegExp":return Z.$.node("intersection",{domain:"string",pattern:Y},{prereduced:!0});case"Function":{let _=O2(Y)?Y():Y;if(y(_,"root"))return _;return R(KZ("Function"))}default:return R(KZ(X??i(Y)))}},jU=(Y,Z)=>jG(Y,Z)??kG(Y,Z),KZ=(Y)=>`Type definitions must be strings or objects (was ${Y})`;class BZ extends x1{constructor(Y){let Z=Object.assign({errors:z1,hkt:s0,$:Y,raw:Y.parse,module:Y.constructor.module,scope:Y.constructor.scope,define:Y.define,match:Y.match,generic:Y.generic,schema:Y.schema,keywords:Y.ambient,unit:Y.unit,enumerated:Y.enumerated,instanceOf:Y.instanceOf,valueOf:Y.valueOf,or:Y.or,and:Y.and,merge:Y.merge,pipe:Y.pipe},Y.ambientAttachments);super((...X)=>{if(X.length===1)return Y.parse(X[0]);if(X.length===2&&typeof X[0]==="string"&&X[0][0]==="<"&&X[0].at(-1)===">"){let _=X[0].slice(1,-1),G=Y.parseGenericParams(_,{});return new A2(G,X[1],Y,Y,null)}return Y.parse(X)},{bind:Y,attach:Z})}}var E4=N;class z6 extends Z6{get ambientAttachments(){if(!E4.typeAttachments)return;return this.cacheGetter("ambientAttachments",o(E4.typeAttachments,(Y,Z)=>[Y,this.bindReference(Z)]))}preparseOwnAliasEntry(Y,Z){let X=Y.indexOf("<");if(X===-1){if(y(Z,"module")||y(Z,"generic"))return[Y,Z];let $=this.name==="ark"?Y:Y==="root"?this.name:`${this.name}.${Y}`,W=this.resolvedConfig.keywords?.[$];if(W)Z=[Z,"@",W];return[Y,Z]}if(Y.at(-1)!==">")R("'>' must be the last character of a generic declaration in a scope");let _=Y.slice(0,X),G=Y.slice(X+1,-1);return[_,()=>{let $=this.parseGenericParams(G,{alias:_});return __($,Z,this)}]}parseGenericParams(Y,Z){return J6(new _2(Y),[],this.createParseContext({...Z,def:Y,prefix:"generic"}))}normalizeRootScopeValue(Y){if(O2(Y)&&!y(Y,"generic"))return Y();return Y}preparseOwnDefinitionFormat(Y,Z){return{...Z,def:Y,prefix:Z.alias??"type"}}parseOwnDefinitionFormat(Y,Z){if(!(Z.alias&&(Z.alias in this.aliases))&&!Z.args)Z.args={this:Z.id};let _=U6(Y,Z);if(F0(_)){if(_[1]==="=")return R(G6);if(_[1]==="?")return R(_6)}return _}unit=(Y)=>this.units([Y]);valueOf=(Y)=>this.units(IX(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 RZ(this);declare=()=>({type:this.type});define(Y){return Y}type=new BZ(this);static scope=(Y,Z={})=>new z6(Y,Z);static module=(Y,Z={})=>this.scope(Y,Z).export()}var CZ=Object.assign(z6.scope,{define:(Y)=>Y}),e=z6;class gG extends s0{description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var SU=K1(["base",d.object],["props",d.object])((Y)=>Y.base.merge(Y.props),gG),pG=e.module({Key:d.key,Merge:SU});class mG extends s0{}var PU=K1("element")((Y)=>{let Z=Y.element.exclude(d.Array),X=Z.array();return Z.rawOr(X).pipe(E2).distribute((_)=>_.assertHasKind("morph").declareOut(X),H0)},mG),uG=e.module({root:d.Array,readonly:"root",index:d.nonNegativeIntegerString,liftFrom:PU},{name:"Array"});var qZ=H0(["string",P2.FileConstructor]),vU=qZ.rawOr(qZ.array()),dG=H0({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:vU}}),cG=e.module({root:["instanceof",FormData],value:qZ,parsed:dG,parse:H0({in:FormData,morphs:(Y)=>{let Z={};for(let[X,_]of Y)if(X in Z){let G=Z[X];if(typeof G==="string"||G instanceof P2.FileConstructor)Z[X]=[G,_];else G.push(_)}else Z[X]=_;return Z},declaredOut:dG})},{name:"FormData"});var lG=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 xU={Boolean:1,Number:1,String:1},oG=e.module({...o({...OY,...DY},(Y,Z)=>(Y in xU)?[]:[Y,["instanceof",Z]]),Array:uG,TypedArray:lG,FormData:cG});var fU=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"}),hU=H0({domain:"number",divisor:1}),F6=e.module({root:d.number,integer:hU,epoch:fU,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 _={domain:"string",pattern:{rule:Y.source,flags:Y.flags,meta:Z}};if(X)_.meta={format:X};return U4("intersection",_)},iG=N0(b4,"a well-formed integer string"),$9=e.module({root:iG,parse:H0({in:iG,morphs:(Y,Z)=>{let X=Number.parseInt(Y);return Number.isSafeInteger(X)?X:Z.error("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")},declaredOut:d.integer})},{name:"string.integer"}),kU=N0(/^[\dA-Fa-f]+$/,"hex characters only"),bU=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"}),rG=N0(/^[A-Z].*$/,"capitalized"),yU=e.module({root:H0({in:"string",morphs:(Y)=>Y.charAt(0).toUpperCase()+Y.slice(1),declaredOut:rG}),preformatted:rG},{name:"string.capitalize"}),gU=(Y)=>{let Z=Y.replaceAll(/[ -]+/g,""),X=0,_,G,$=!1;for(let W=Z.length-1;W>=0;W--){if(_=Z.substring(W,W+1),G=Number.parseInt(_,10),$)G*=2,X+=G>=10?G%10+1:G;else X+=G;$=!$}return!!(X%10===0?Z:!1)},pU=/^(?: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}))$/,mU=H0({domain:"string",pattern:{meta:"a credit card number",rule:pU.source},predicate:{meta:"a credit card number",predicate:gU}});var uU=/^([+-]?\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 dU=(Y)=>!Number.isNaN(new Date(Y).valueOf()),nG=H0({domain:"string",predicate:{meta:"a parsable date",predicate:dU}}).assertHasKind("intersection"),sG=$9.root.internal.narrow((Y,Z)=>{let X=Number.parseInt(Y),_=F6.epoch(X);if(_ instanceof z1)return Z.errors.merge(_),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),cU=e.module({root:sG,parse:H0({in:sG,morphs:(Y)=>new Date(Y),declaredOut:d.Date})},{name:"string.date.epoch"}),tG=N0(uU,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),lU=e.module({root:tG,parse:H0({in:tG,morphs:(Y)=>new Date(Y),declaredOut:d.Date})},{name:"string.date.iso"}),oU=e.module({root:nG,parse:H0({declaredIn:nG,in:"string",morphs:(Y,Z)=>{let X=new Date(Y);if(Number.isNaN(X.valueOf()))return Z.error("a parsable date");return X},declaredOut:d.Date}),iso:lU,epoch:cU},{name:"string.date"}),iU=N0(/^[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z]{2,}$/,"an email address","email"),aG="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",w2=`(${aG}[.]){3}${aG}`,rU=new RegExp(`^${w2}$`),x0="(?:[0-9a-fA-F]{1,4})",nU=new RegExp(`^((?:${x0}:){7}(?:${x0}|:)|(?:${x0}:){6}(?:${w2}|:${x0}|:)|(?:${x0}:){5}(?::${w2}|(:${x0}){1,2}|:)|(?:${x0}:){4}(?:(:${x0}){0,1}:${w2}|(:${x0}){1,3}|:)|(?:${x0}:){3}(?:(:${x0}){0,2}:${w2}|(:${x0}){1,4}|:)|(?:${x0}:){2}(?:(:${x0}){0,3}:${w2}|(:${x0}){1,5}|:)|(?:${x0}:){1}(?:(:${x0}){0,4}:${w2}|(:${x0}){1,6}|:)|(?::((?::${x0}){0,5}:${w2}|(?::${x0}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),sU=e.module({root:["v4 | v6","@","an IP address"],v4:N0(rU,"an IPv4 address","ipv4"),v6:N0(nU,"an IPv6 address","ipv6")},{name:"string.ip"}),O4="a JSON string",W9=(Y)=>{if(!(Y instanceof SyntaxError))throw Y;return`must be ${O4} (${Y})`},tU=H0({meta:O4,domain:"string",predicate:{meta:O4,predicate:(Y,Z)=>{try{return JSON.parse(Y),!0}catch(X){return Z.reject({code:"predicate",expected:O4,problem:W9(X)})}}}}),aU=(Y,Z)=>{if(Y.length===0)return Z.error({code:"predicate",expected:O4,actual:"empty"});try{return JSON.parse(Y)}catch(X){return Z.error({code:"predicate",expected:O4,problem:W9(X)})}},eU=e.module({root:tU,parse:H0({meta:"safe JSON string parser",in:"string",morphs:aU,declaredOut:d.jsonObject})},{name:"string.json"}),eG=N0(/^[a-z]*$/,"only lowercase letters"),Yz=e.module({root:H0({in:"string",morphs:(Y)=>Y.toLowerCase(),declaredOut:eG}),preformatted:eG},{name:"string.lower"}),H9=["NFC","NFD","NFKC","NFKD"],$8=o(H9,(Y,Z)=>[Z,H0({domain:"string",predicate:(X)=>X.normalize(Z)===X,meta:`${Z}-normalized unicode`})]),E6=o(H9,(Y,Z)=>[Z,H0({in:"string",morphs:(X)=>X.normalize(Z),declaredOut:$8[Z]})]),Zz=e.module({root:E6.NFC,preformatted:$8.NFC},{name:"string.normalize.NFC"}),Xz=e.module({root:E6.NFD,preformatted:$8.NFD},{name:"string.normalize.NFD"}),_z=e.module({root:E6.NFKC,preformatted:$8.NFKC},{name:"string.normalize.NFKC"}),Gz=e.module({root:E6.NFKD,preformatted:$8.NFKD},{name:"string.normalize.NFKD"}),$z=e.module({root:"NFC",NFC:Zz,NFD:Xz,NFKC:_z,NFKD:Gz},{name:"string.normalize"}),Y9=N0(p8,"a well-formed numeric string"),Wz=e.module({root:Y9,parse:H0({in:Y9,morphs:(Y)=>Number.parseFloat(Y),declaredOut:d.number})},{name:"string.numeric"}),Z9="a regex pattern",Hz=H0({domain:"string",predicate:{meta:Z9,predicate:(Y,Z)=>{try{return new RegExp(Y),!0}catch(X){return Z.reject({code:"predicate",expected:Z9,problem:String(X)})}}},meta:{format:"regex"}}),Jz=/^(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-]+)*))?$/,Qz=N0(Jz,"a semantic version (see https://semver.org/)"),X9=N0(/^\S.*\S$|^\S?$/,"trimmed"),Uz=e.module({root:H0({in:"string",morphs:(Y)=>Y.trim(),declaredOut:X9}),preformatted:X9},{name:"string.trim"}),_9=N0(/^[A-Z]*$/,"only uppercase letters"),zz=e.module({root:H0({in:"string",morphs:(Y)=>Y.toUpperCase(),declaredOut:_9}),preformatted:_9},{name:"string.upper"}),Fz=(Y)=>{if(URL.canParse)return URL.canParse(Y);try{return new URL(Y),!0}catch{return!1}},G9=H0({domain:"string",predicate:{meta:"a URL string",predicate:Fz},meta:{format:"uri"}}),Ez=e.module({root:G9,parse:H0({declaredIn:G9,in:"string",morphs:(Y,Z)=>{try{return new URL(Y)}catch{return Z.error("a URL string")}},declaredOut:H0(URL)})},{name:"string.url"}),Oz=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"}),J9=e.module({root:d.string,alpha:N0(/^[A-Za-z]*$/,"only letters"),alphanumeric:N0(/^[\dA-Za-z]*$/,"only letters and digits 0-9"),hex:kU,base64:bU,capitalize:yU,creditCard:mU,date:oU,digits:N0(/^\d*$/,"only digits 0-9"),email:iU,integer:$9,ip:sU,json:eU,lower:Yz,normalize:$z,numeric:Wz,regex:Hz,semver:Qz,trim:Uz,upper:zz,url:Ez,uuid:Oz},{name:"string"});var Q9=e.module({bigint:d.bigint,boolean:d.boolean,false:d.false,never:d.never,null:d.null,number:d.number,object:d.object,string:d.string,symbol:d.symbol,true:d.true,unknown:d.unknown,undefined:d.undefined}),U9=e.module({root:d.unknown,any:d.unknown},{name:"unknown"}),Vz=e.module({root:d.jsonObject,stringify:U4("morph",{in:d.jsonObject,morphs:(Y)=>JSON.stringify(Y),declaredOut:d.string})},{name:"object.json"}),z9=e.module({root:d.object,json:Vz},{name:"object"});class F9 extends s0{description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var Dz=K1(["K",d.key],"V")((Y)=>({domain:"object",index:{signature:Y.K,value:Y.V}}),F9);class E9 extends s0{description='pick a set of properties from an object like `Pick(User, "name | age")`'}var Lz=K1(["T",d.object],["K",d.key])((Y)=>Y.T.pick(Y.K),E9);class O9 extends s0{description='omit a set of properties from an object like `Omit(User, "age")`'}var Mz=K1(["T",d.object],["K",d.key])((Y)=>Y.T.omit(Y.K),O9);class V9 extends s0{description="make all named properties of an object optional like `Partial(User)`"}var Az=K1(["T",d.object])((Y)=>Y.T.partial(),V9);class D9 extends s0{description="make all named properties of an object required like `Required(User)`"}var wz=K1(["T",d.object])((Y)=>Y.T.required(),D9);class L9 extends s0{description='exclude branches of a union like `Exclude("boolean", "true")`'}var Rz=K1("T","U")((Y)=>Y.T.exclude(Y.U),L9);class M9 extends s0{description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var Nz=K1("T","U")((Y)=>Y.T.extract(Y.U),M9),A9=e.module({Exclude:Rz,Extract:Nz,Omit:Mz,Partial:Az,Pick:Lz,Record:Dz,Required:wz});var R2=CZ({...Q9,...A9,...oG,...pG,string:J9,number:F6,object:z9,unknown:U9},{prereducedAliases:!0,name:"ark"}),p0=R2.export();Object.assign(E4.ambient,p0);E4.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 O1=Object.assign(R2.type,E4.typeAttachments),Iz=R2.match,Tz=R2.generic,$T=R2.schema,Kz=R2.define,Bz=R2.declare;var a0=(Y)=>JSON.parse(Y),Q0=(Y)=>JSON.stringify(Y),RT=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];function V4(Y){return L6(o0.STORE,Y,void 0)}function W8(Y){return M4(o0.STORE,Y)}function SZ(...Y){if(Y.length===2)return l1(o0.STORE,...Y);return l1(o0.STORE,...Y)}function O6(Y,Z){return q9(o0.STORE,Y,Z)}function w9(Y){return S9(Y,o0.STORE)}var G2={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 jZ=(Y)=>(Z,X,_,G,...$)=>{console[Y](`${Z} ${G2[X]} \`${_}\` ${G}`,...$)},Cz={error:jZ("error"),info:jZ("info"),warn:jZ("warn")},R9=class{logLevel;filter;logger;constructor(Y,Z,X=Cz){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 qz=class{store;constructor(Y=o0.STORE){this.store=Y,T9("root",Y)}allocate(Y,Z,X){return D4(this.store,Y,Z,X)}fuse(Y,Z,X){return K9(this.store,Y,Z,X)}deallocate(Y){L4(this.store,Y)}claim(Y,Z,X){return J8(this.store,Y,Z,X)}},N9=class{store;realm;constructor(Y=o0.STORE){this.store=Y,this.realm=new qz(Y)}allocate(Y,Z,X){D4(this.store,Y,Z,X)}deallocate(Y){L4(this.store,Y)}claim(Y,Z,X){J8(this.store,Y,Z,X)}};function V6(Y){return xZ(o0.STORE,Y)}function H8(Y){return vZ(o0.STORE,Y)}var $2=class Y extends Set{mode="record";subject=new W0;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(Z,X=0){super(Z);if(Z instanceof Y)this.parent=Z,this.cacheUpdateNumber=Z.cacheUpdateNumber;if(X)this.cacheLimit=X,this.cache=new Array(X),this.subscribe("auto cache",(_)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=_})}READONLY_VIEW=this;toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(Z){let X=new Y(Z.members,Z.cacheLimit);return X.cache=Z.cache,X.cacheIdx=Z.cacheIdx,X.cacheUpdateNumber=Z.cacheUpdateNumber,X}add(Z){let X=super.add(Z);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${Q0(Z)}`);return X}clear(){let Z=this.mode==="record"?[...this]:null;if(super.clear(),Z)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(Z)}`)}delete(Z){let X=super.delete(Z);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${Q0(Z)}`);return X}parent=null;child=null;transactionUpdates=null;transaction(Z){this.mode="transaction",this.transactionUpdates=[],this.child=new Y(this);let X=this.child._subscribe("transaction",(_)=>{this.transactionUpdates?.push(_)});try{if(Z(this.child)){for(let G of this.transactionUpdates)this.doStep(G);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(_){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",_),_}finally{X(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(Z,X){return this.subject.subscribe(Z,X)}subscribe(Z,X){return this.subject.subscribe(Z,(_)=>{X(`${this.cacheUpdateNumber}=${_}`)})}emit(Z){this.subject.next(Z)}doStep(Z){let X=Z.indexOf(":"),_=Z.substring(0,X),G=Z.substring(X+1);switch(_){case"add":this.add(JSON.parse(G));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(G));break;case"tx":for(let $ of G.split(";"))this.doStep($)}}getUpdateNumber(Z){let X=Z.indexOf("=");return Number(Z.substring(0,X))}do(Z){let X=Z.indexOf("="),_=Number(Z.substring(0,X)),G=_-this.cacheUpdateNumber;if(G>0){if(G===1){this.mode="playback";let W=Z.substring(X+1);return this.doStep(W),this.mode="record",this.cacheUpdateNumber=_,null}return this.cacheUpdateNumber+1}if(Math.abs(G)<this.cacheLimit){let W=this.cacheIdx+G;if(this.cache[W]===Z)return null;this.mode="playback";let Q=!1;while(!Q){this.cacheIdx%=this.cacheLimit;let U=this.cache[this.cacheIdx];if(this.cacheIdx--,!U)return"OUT_OF_RANGE";this.undo(U),Q=this.cacheIdx===W-1}let J=Z.substring(X+1);return this.doStep(J),this.mode="record",this.cacheUpdateNumber=_,null}return"OUT_OF_RANGE"}undoStep(Z){let X=Z.indexOf(":"),_=Z.substring(0,X),G=Z.substring(X+1);switch(_){case"add":this.delete(JSON.parse(G));break;case"del":this.add(JSON.parse(G));break;case"clear":{let $=JSON.parse(G);for(let W of $)this.add(W);break}case"tx":{let $=G.split(";");for(let W=$.length-1;W>=0;W--)this.undoStep($[W])}}}undo(Z){let X=Z.indexOf("=");if(Number(Z.substring(0,X))===this.cacheUpdateNumber){this.mode="playback";let G=Z.substring(X+1);return this.undoStep(G),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}};function I9(Y=Math.random){return Y().toString(36).slice(2)}function Y0(Y){while(Y.child!==null)Y=Y.child;return Y}var Sz=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 k1(Y){let Z={key:Y.key,type:Y.type};if("family"in Y)Z.family=Y.family;return Z}var Pz=Symbol("counterfeit"),vz={atom_family:"atom",molecule_family:"molecule",mutable_atom_family:"mutable_atom",readonly_held_selector_family:"readonly_held_selector",readonly_pure_selector_family:"readonly_pure_selector",writable_held_selector_family:"writable_held_selector",writable_pure_selector_family:"writable_pure_selector"};function P9(Y,Z,X){let _=Q0(Z),G=`${Y.key}(${_})`,$=vz[Y.type],W={key:G,type:$,family:{key:Y.key,subKey:_}};if(X)W.counterfeit=!0;return W}var G1=class{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(Y,Z)=>`${Y}:${Z}`;warn;getRelatedKeys(Y){return this.relations.get(Y)}addRelation(Y,Z){let X=this.relations.get(Y),_=this.relations.get(Z);if(X)X.add(Z);else X=new Set([Z]),this.relations.set(Y,X);if(_)_.add(Y);else _=new Set([Y]),this.relations.set(Z,_)}deleteRelation(Y,Z){let X=this.relations.get(Y);if(X){if(X.delete(Z),X.size===0)this.relations.delete(Y);let _=this.relations.get(Z);if(_){if(_.delete(Y),_.size===0)this.relations.delete(Z)}}}replaceRelationsUnsafely(Y,Z){this.relations.set(Y,new Set(Z));for(let X of Z){let _=new Set().add(Y);this.relations.set(X,_)}}replaceRelationsSafely(Y,Z){let X=this.relations.get(Y),_=this.isAType?.(Y)?Y:void 0,G=_===void 0?Y:void 0;if(X)for(let $ of X){_??=$,G??=$;let W=this.relations.get($);if(W){if(W.size===1)this.relations.delete($);else W.delete(Y);this.contents.delete(this.makeContentKey(_,G))}}this.relations.set(Y,new Set(Z));for(let $ of Z){let W=this.relations.get($);if(W)W.add(Y);else W=new Set().add(Y),this.relations.set($,W)}}getContentInternal(Y){return this.contents.get(Y)}setContent(Y,Z){this.contents.set(Y,Z)}deleteContent(Y){this.contents.delete(Y)}constructor(Y,Z){if(this.a=Y.between[0],this.b=Y.between[1],this.cardinality=Y.cardinality,!Z?.externalStore)this.relations=new Map(Y.relations?.map(([X,_])=>[X,new Set(_)])),this.contents=new Map(Y.contents);if(this.isAType=Z?.isAType??null,this.isBType=Z?.isBType??null,this.isContent=Z?.isContent??null,Z?.makeContentKey)this.makeContentKey=Z.makeContentKey;if(Z?.externalStore){let X=Z.externalStore;if(this.has=(_,G)=>X.has(_,G),this.addRelation=(_,G)=>{X.addRelation(_,G)},this.deleteRelation=(_,G)=>{X.deleteRelation(_,G)},this.replaceRelationsSafely=(_,G)=>{X.replaceRelationsSafely(_,G)},this.replaceRelationsUnsafely=(_,G)=>{X.replaceRelationsUnsafely(_,G)},this.getRelatedKeys=(_)=>X.getRelatedKeys(_),X.getContent)this.getContentInternal=(_)=>{return X.getContent(_)},this.setContent=(_,G)=>{X.setContent(_,G)},this.deleteContent=(_)=>{X.deleteContent(_)};for(let[_,G]of Y.relations??[]){let $=this.isAType?.(_)?_:void 0,W=$===void 0?_:void 0;for(let H of G)$??=H,W??=H,this.addRelation($,W)}for(let[_,G]of Y.contents??[])this.setContent(_,G)}if(Z?.warn)this.warn=Z.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([Y,Z])=>[Y,[...Z]]),contents:[...this.contents.entries()]}}set(...Y){let Z,X,_;switch(Y.length){case 1:{let G=Y[0];Z=G[this.a],X=G[this.b],_=void 0;break}case 2:{let G=Y[0];if(typeof G==="string")[Z,X]=Y;else Z=G[this.a],X=G[this.b],_=Y[1];break}default:Z=Y[0],X=Y[1],_=Y[2];break}switch(this.cardinality){case"1:1":{let G=this.getRelatedKey(Z);if(G&&G!==X)this.delete(Z,G)}case"1:n":{let G=this.getRelatedKey(X);if(G&&G!==Z)this.delete(G,X)}break;case"n:n":}if(_){let G=this.makeContentKey(Z,X);this.setContent(G,_)}return this.addRelation(Z,X),this}delete(Y,Z){Z=typeof Z==="string"?Z:Y[this.b];let X=typeof Y==="string"?Y:Y[this.a];if(X===void 0&&typeof Z==="string"){let _=this.getRelatedKeys(Z);if(_)for(let G of _)this.delete(G,Z)}if(typeof X==="string"&&Z===void 0){let _=this.getRelatedKeys(X);if(_)for(let G of _)this.delete(X,G)}if(typeof X==="string"&&typeof Z==="string"){this.deleteRelation(X,Z);let _=this.makeContentKey(X,Z);this.deleteContent(_)}return this}getRelatedKey(Y){let Z=this.getRelatedKeys(Y);if(Z){if(Z.size>1)this.warn?.(`${Z.size} related keys were found for key "${Y}": (${[...Z].map((_)=>`"${_}"`).join(", ")}). Only one related key was expected.`);let X;for(let _ of Z){X=_;break}return X}}replaceRelations(Y,Z,X){let _=!Array.isArray(Z),G=_?Object.keys(Z):Z;if(X?.reckless)this.replaceRelationsUnsafely(Y,G);else this.replaceRelationsSafely(Y,G);if(_)for(let $ of G){let W=this.makeContentKey(Y,$),H=Z[$];this.setContent(W,H)}return this}getContent(Y,Z){let X=this.makeContentKey(Y,Z);return this.getContentInternal(X)}getRelationEntries(Y){let Z=Y[this.a],X=Y[this.b];if(Z!==void 0&&X===void 0){let _=this.getRelatedKeys(Z);if(_)return[..._].map((G)=>{return[G,this.getContent(Z,G)]})}if(Z===void 0&&X!==void 0){let _=this.getRelatedKeys(X);if(_)return[..._].map((G)=>{return[G,this.getContent(G,X)]})}return[]}has(Y,Z){if(Z)return this.getRelatedKeys(Y)?.has(Z)??!1;return this.relations.has(Y)}},W0=class{Subscriber;subscribers=new Map;subscribe(Y,Z){return this.subscribers.set(Y,Z),()=>{this.unsubscribe(Y)}}unsubscribe(Y){this.subscribers.delete(Y)}next(Y){let Z=this.subscribers.values();for(let X of Z)X(Y)}},xz=class extends W0{state;constructor(Y){super();this.state=Y}next(Y){this.state=Y,super.next(Y)}},fz=(Y,Z)=>{let X=Y0(Y);if(X.operation.open)return X.operation.prev.get(Z.key);return X.valueMap.get(Z.key)};function k9(Y,Z,X,_){let G=Y.disposalTraces.buffer.find(($)=>$?.key===Q0(_));switch(Y.logger.error("\u274C",Z.type,Z.key,"gets a fallback value because key",_,"is not allocated",G?`This key was previously disposed:
48
- ${G.trace}`:"(no previous disposal trace found)"),X.type){case"mutable_atom_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=new X.class;return Y.defaults.set(X.key,$),$}case"atom_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=X.default,W=$(_);return Y.defaults.set(X.key,W),W}case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=X.default(_);return Y.defaults.set(X.key,$),$}}}var kZ=class extends Promise{fate;resolve;reject;done=!1;constructor(Y){let Z,X;super((_,G)=>{Z=_,X=G});this.resolve=Z,this.reject=X,this.use(Y instanceof Promise?Y:new Promise(Y))}pass(Y,Z){if(Y===this.fate)this.resolve(Z),this.done=!0}fail(Y,Z){if(Y===this.fate)this.reject(Z),this.done=!0}use(Y){if(this===Y)return;if(Y instanceof Promise){let Z=Y;this.fate=Z,Z.then((X)=>{this.pass(Z,X)},(X)=>{this.fail(Z,X)})}else this.resolve(Y),this.fate=void 0}};function y2(Y){return"epoch"in Y.transactionMeta}function $1(Y){return"phase"in Y.transactionMeta}function b9(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},Y.logger.info("\u2B55",Z.type,Z.key,`operation start in store "${Y.config.name}"${$1(Y)?` ${Y.transactionMeta.phase} "${Y.transactionMeta.update.token.key}"`:""}`),Y}function y9(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 g9=(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)},w6=(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 pZ(Y,Z){let X=Y0(Y),{key:_,type:G}=Z,$=X.selectorAtoms.getRelatedKeys(_);if(X.logger.info("\uD83E\uDDF9",G,_,$?`evicting ${$.size} states downstream:`:"no downstream states",$??"to evict"),$){if(X.operation.open)X.logger.info("\uD83E\uDDF9",G,_,`[ ${[...X.operation.done].join(", ")} ] already done`);for(let W of $){if(g9(X,W))continue;m9(X,W),w6(X,W)}}}function p9(Y,Z){let X=Y0(Y),_=X.selectorGraph.getRelationEntries({upstreamSelectorKey:Z}).filter(([G,{source:$}])=>$===Z);for(let[G]of _){if(g9(X,G))continue;m9(X,G),w6(X,G),p9(Y,G)}}function W2(Y,Z,X){let{key:_,subject:G,type:$}=Z,W=Y.valueMap.get(_);if(W instanceof kZ&&!W.done){let H=W;if(X instanceof Promise)return H.use(X),H;return Y.valueMap.set(_,X),X}if(X instanceof Promise){let H=new kZ(X);return Y.valueMap.set(_,H),H.then(function Q(J){if(Y.valueMap.get(_)===H){switch(b9(Y,Z),W2(Y,Z,J),$){case"atom":case"mutable_atom":pZ(Y,Z);break;case"readonly_pure_selector":case"writable_pure_selector":p9(Y,_);break}y9(Y),G.next({newValue:J,oldValue:H})}}).catch((Q)=>{Y.logger.error("\uD83D\uDCA5","state",_,"rejected:",Q)}),H}return Y.valueMap.set(_,X),X}function hz(Y,Z,X){Y.logger.info("\uD83D\uDCD6",Z.type,Z.key,"reading cached value");let _=Y.valueMap.get(Z.key);if(X==="mut"&&Z.type==="mutable_atom"&&$1(Y)){let $=Z,{parent:W}=Y;if(Y.valueMap.hasOwn($.key))return _;let H=W.valueMap.get($.key);Y.logger.info("\uD83D\uDCC3","atom",$.key,"copying");let Q=H.toJSON(),J=$.class.fromJSON(Q);Y.valueMap.set($.key,J),new nZ($,W),_=J}return _}function m9(Y,Z){let X=Y.valueMap.get(Z);if(X instanceof kZ){let _=Y.writableSelectors.get(Z)??Y.readonlySelectors.get(Z);if(_)_.getFrom(Y);return}if(Y.operation.open)Y.operation.prev.set(Z,X);Y.valueMap.delete(Z),Y.logger.info("\uD83D\uDDD1","state",Z,"evicted")}function A4(Y,Z,X){if(Y.valueMap.has(Z.key))return hz(Y,Z,X);let{key:_}=Z;switch(Z.type){case"readonly_held_selector":case"readonly_pure_selector":case"writable_held_selector":case"writable_pure_selector":return Y.logger.info("\uD83E\uDDEE",Z.type,_,"computing value"),Z.getFrom(Y);case"atom":{let G;if(Z.default instanceof Function)G=Z.default();else G=Z.default;let $=W2(Y,Z,G);return Y.logger.info("\uD83D\uDC81","atom",Z.key,"could not find cached value; using default",G),$}case"mutable_atom":{let G=new Z.class,$=W2(Y,Z,G);return Y.logger.info("\uD83D\uDC81","mutable_atom",Z.key,"could not find cached value; using default",G),$}}}function mZ(Y,Z){return j0(Y,{key:Z.family.key,type:`${Z.type}_family`})}var kz=(Y)=>{let Z=Y0(Y);if(!$1(Z)){Y.logger.warn("\uD83D\uDC1E","transaction","???","abortTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}Y.logger.info("\uD83E\uDE82","transaction",Z.transactionMeta.update.token.key,"Aborting transaction"),Z.parent.child=null},u9=class extends Error{constructor(Y,Z){super(`${G2[Y.type]} ${Q0(Y.key)} not found in store "${Z.config.name}".`)}};function PZ(Y,Z,X){return(..._)=>{let G=j0(Y,Z);if(G)return G.run(_,X);throw new u9(Z,Y)}}var bZ=(Y)=>(Z)=>Y instanceof Function?Y(Z):Y;function d9(Y,Z,[X,_],G){let{key:$,subject:W,type:H}=Z,Q={oldValue:hZ(X)?X.READONLY_VIEW:X,newValue:hZ(_)?_.READONLY_VIEW:_};if(y2(Y)){switch(H){case"mutable_atom":Y.logger.info("\uD83D\uDCE2",H,$,"is now (",_,") subscribers:",W.subscribers);break;case"atom":case"writable_pure_selector":case"writable_held_selector":Y.logger.info("\uD83D\uDCE2",H,$,"went (",X,"->",_,") subscribers:",W.subscribers)}W.next(Q)}if($1(Y)&&(H==="mutable_atom"||H==="atom")){if(Y.on.transactionApplying.state===null){let J=k1(Z);if(hZ(_))return;let{timestamp:U}=Y.operation,E={type:"atom_update",token:J,timestamp:U,update:Q};Y.transactionMeta.update.subEvents.push(E),Y.logger.info("\uD83D\uDCC1","atom",$,"stowed (",X,"->",_,")");return}if(JF(Z,"tracker:signal")){let J=$.slice(1),U=Y.atoms.get(J);if(A4(Y,U,"mut").do(Q.newValue)===null===!0)pZ(Y,U)}}}var yZ=(Y,Z,X)=>{let _=A4(Y,Z,"mut"),G=bZ(X)(_);return Y.logger.info("\uD83D\uDCDD","atom",Z.key,"set to",G),G=W2(Y,Z,G),w6(Y,Z.key),pZ(Y,Z),[_,G]};function v9(Y,Z){switch(Z.type){case"mutable_atom":return yZ(Y,Z,new Z.class);case"atom":{let X=Z.default;if(X instanceof Function)X=X();return yZ(Y,Z,X)}}}function bz(Y,Z){let X;switch(Z.type){case"atom":case"mutable_atom":X=v9(Y,Z);break;case"writable_pure_selector":case"writable_held_selector":{let _=Z.getFrom(Y),G=A6(Y,Z.key);for(let W of G.values()){let H=v9(Y,W);d9(Y,Z,H,!1)}let $=Z.getFrom(Y);X=[_,$]}break}return X}function B1(Y,...Z){uZ(Y,gZ,...Z)}var M6=Symbol("RESET");function D6(Y,...Z){let X,_,G;if(Z.length===1)X=Z[0],B1(Y,X,M6);else _=Z[0],G=Z[1],B1(Y,_,G,M6)}function yz(Y,Z,X){let _,G,$,{type:W,key:H}=Z;switch(Z.type){case"writable_pure_selector":_=Z.getFrom(Y),G=bZ(X)(_),W2(Y,Z,G);break;case"writable_held_selector":$=Z.const,bZ(X)($),_=$,G=$}return Y.logger.info("\uD83D\uDCDD",W,H,"setting to",G),w6(Y,H),Z.setSelf(G),[_,G]}var gz=(Y,Z,X)=>{let _;switch(Z.type){case"atom":case"mutable_atom":_=yZ(Y,Z,X);break;case"writable_pure_selector":case"writable_held_selector":_=yz(Y,Z,X);break}return _};function pz(Y,Z,X){let{token:_,update:{newValue:G,oldValue:$}}=Z;B1(X,_,Y==="newValue"?G:$)}function mz(Y){let{stack:Z}=Y;if(Z)return`
47
+ `)+"}");class Z6{config;resolvedConfig;name;get[X1](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(Y,Z){if(this.config=d4(N.config,Z),this.resolvedConfig=d4(N.resolvedConfig,Z),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys($Z).length}`,this.name in $Z)R(`A Scope already named ${this.name} already exists`);$Z[this.name]=this;let X=Object.entries(Y).map((_)=>this.preparseOwnAliasEntry(..._));for(let[_,G]of X){let $=_;if(_[0]==="#"){if($=_.slice(1),$ in this.aliases)R(l_($));this.aliases[$]=G}else{if($ in this.aliases)R(l_(_));this.aliases[$]=G,this.exportedNames.push($)}if(!y(G,"module")&&!y(G,"generic")&&!O2(G)){let W=this.preparseOwnDefinitionFormat(G,{alias:$});this.resolutions[$]=y(W,"root")?this.bindReference(W):this.createParseContext(W).id}}o_??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[o_.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=N.intrinsic?o(N.intrinsic,(_,G)=>_.startsWith("json")?[]:[_,this.bindReference(G)]):{}}cacheGetter(Y,Z){return Object.defineProperty(this,Y,{value:Z}),Z}get internal(){return this}_json;get json(){if(!this._json)this.export();return this._json}defineSchema(Y){return Y}generic=(...Y)=>{let Z=this;return(X,_)=>new A2(Y,_?new i8(X):X,Z,Z,_??null)};units=(Y,Z)=>{let X=[];for(let G of Y)if(!X.includes(G))X.push(G);let _=X.map((G)=>this.node("unit",{unit:G},Z));return this.node("union",_,{...Z,prereduced:!0})};lazyResolutions=[];lazilyResolve(Y,Z){let X=this.node("alias",{reference:Z??"synthetic",resolve:Y},{prereduced:!0});if(!this.resolved)this.lazyResolutions.push(X);return X}schema=(Y,Z)=>this.finalize(this.parseSchema(Y,Z));parseSchema=(Y,Z)=>this.node(i4(Y),Y,Z);preparseNode(Y,Z,X){let _=typeof Y==="string"?Y:i4(Z,Y);if(D0(Z)&&Z.kind===_)return Z;if(_==="alias"&&!X?.prereduced){let{reference:W}=e4.implementation.normalize(Z,this);if(W.startsWith("$")){let H=this.resolveRoot(W.slice(1));Z=H,_=H.kind}}else if(_==="union"&&Q1(Z,"object")){let W=kQ(Z);if(W?.length===1)Z=W[0],_=i4(Z)}if(D0(Z)&&Z.kind===_)return Z;let $=W4[_].normalize?.(Z,this)??Z;if(D0($))return $.kind===_?$:bQ(_,$.kind);return{...X,$:this,kind:_,def:$,prefix:X.alias??_}}bindReference(Y){let Z;if(D0(Y))Z=Y.$===this?Y:new Y.constructor(Y.attachments,this);else Z=Y.$===this?Y:new A2(Y.params,Y.bodyDef,Y.$,this,Y.hkt);if(!this.resolved)Object.assign(this.referencesById,Z.referencesById);return Z}resolveRoot(Y){return this.maybeResolveRoot(Y)??R(JZ(Y))}maybeResolveRoot(Y){let Z=this.maybeResolve(Y);if(y(Z,"generic"))return;return Z}maybeResolveSubalias(Y){return WZ(this.aliases,Y)??WZ(this.ambient,Y)}get ambient(){return N.ambient}maybeResolve(Y){let Z=this.resolutions[Y];if(Z){if(typeof Z!=="string")return this.bindReference(Z);let _=_1[Z];if(y(_,"root"))return this.resolutions[Y]=_;if(y(_,"context")){if(_.phase==="resolving")return this.node("alias",{reference:`$${Y}`},{prereduced:!0});if(_.phase==="resolved")return _0(`Unexpected resolved context for was uncached by its scope: ${i(_)}`);_.phase="resolving";let G=this.bindReference(this.parseOwnDefinitionFormat(_.def,_));return _.phase="resolved",_1[G.id]=G,_1[_.id]=G,this.resolutions[Y]=G}return _0(`Unexpected nodesById entry for ${Z}: ${i(_)}`)}let X=this.aliases[Y]??this.ambient?.[Y];if(!X)return this.maybeResolveSubalias(Y);if(X=this.normalizeRootScopeValue(X),y(X,"generic"))return this.resolutions[Y]=this.bindReference(X);if(y(X,"module")){if(!X.root)R(e_(Y));return this.resolutions[Y]=this.bindReference(X.root)}return this.resolutions[Y]=this.parse(X,{alias:Y})}createParseContext(Y){let Z=Y.id??uY(Y.prefix);return _1[Z]=Object.assign(Y,{[X1]:"context",$:this,id:Z,phase:"unresolved"})}traversal(Y){return new f1(Y,this.resolvedConfig)}import(...Y){return new Q4(o(this.export(...Y),(Z,X)=>[`#${Z}`,X]))}precompilation;_exportedResolutions;_exports;export(...Y){if(!this._exports){this._exports={};for(let X of this.exportedNames){let _=this.aliases[X];this._exports[X]=y(_,"module")?GZ(_,this):i_(this.maybeResolve(X))}for(let X of this.lazyResolutions)X.resolution;if(this._exportedResolutions=a_(this,this._exports),this._json=t_(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let X=s_(this.references);this.precompilation=X.write(r_,4),n_(this.references,X)}this.resolved=!0}let Z=Y.length?Y:this.exportedNames;return new Q4(o(Z,(X,_)=>[_,this._exports[_]]))}resolve(Y){return this.export()[Y]}node=(Y,Z,X={})=>{let _=this.preparseNode(Y,Z,X);if(D0(_))return this.bindReference(_);let G=this.createParseContext(_),$=dY(G),W=this.bindReference($);return _1[G.id]=W};parse=(Y,Z={})=>this.finalize(this.parseDefinition(Y,Z));parseDefinition(Y,Z={}){if(y(Y,"root"))return this.bindReference(Y);let X=this.preparseOwnDefinitionFormat(Y,Z);if(y(X,"root"))return this.bindReference(X);let _=this.createParseContext(X);_1[_.id]=_;let G=this.bindReference(this.parseOwnDefinitionFormat(Y,_));if(G.isCyclic)G=A_(G,_.id);return _1[_.id]=G,G}finalize(Y){if(i_(Y),!Y.precompilation&&!this.resolvedConfig.jitless)yQ(Y.references);return Y}}class HZ extends Z6{parseOwnDefinitionFormat(Y,Z){return dY(Z)}preparseOwnDefinitionFormat(Y,Z){return this.preparseNode(i4(Y),Y,Z)}preparseOwnAliasEntry(Y,Z){return[Y,Z]}normalizeRootScopeValue(Y){return Y}}var i_=(Y)=>{let Z=Y.references.filter((X)=>X.hasKind("alias"));for(let X of Z){Object.assign(X.referencesById,X.resolution.referencesById);for(let _ of Y.references)if(X.id in _.referencesById)Object.assign(_.referencesById,X.referencesById)}return Y},t_=(Y)=>o(Y,(Z,X)=>[Z,y(X,"root")||y(X,"generic")?X.json:y(X,"module")?t_(X):_0(`Unexpected resolution ${i(X)}`)]),WZ=(Y,Z)=>{let X=Z.indexOf(".");if(X===-1)return;let _=Z.slice(0,X),G=Y[_];if(G===void 0)return;if(!y(G,"module"))return R(gQ(_));let $=Z.slice(X+1),W=G[$];if(W===void 0)return WZ(G,$);if(y(W,"root")||y(W,"generic"))return W;if(y(W,"module"))return W.root??R(e_(Z));_0(`Unexpected resolution for alias '${Z}': ${i(W)}`)},X6=(Y,Z)=>new HZ(Y,Z),X8=new HZ({});var a_=(Y,Z)=>{let X={};for(let _ in Z){let G=Z[_];if(y(G,"module")){let $=a_(Y,G),W=o($,(H,Q)=>[`${_}.${H}`,Q]);Object.assign(X,W)}else if(y(G,"root")||y(G,"generic"))X[_]=G;else _0(`Unexpected scope resolution ${i(G)}`)}return X},JZ=(Y)=>`'${Y}' is unresolvable`,gQ=(Y)=>`'${Y}' must reference a module to be accessed using dot syntax`,e_=(Y)=>`Reference to submodule '${Y}' must specify an alias`;X8.export();var{schema:H0,node:U4,defineSchema:fw,generic:K1}=X8;var QZ="^(?:0|[1-9]\\d*)$",pQ=new RegExp(QZ),bw=B0(pQ);var YG=X6({bigint:"bigint",boolean:[{unit:!1},{unit:!0}],false:{unit:!1},never:[],null:{unit:null},number:"number",object:"object",string:"string",symbol:"symbol",true:{unit:!0},unknown:{},undefined:{unit:void 0},Array,Date},{prereducedAliases:!0}).export();N.intrinsic={...YG};var ZG=X6({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:QZ}},{prereducedAliases:!0}).export();Object.assign(N.intrinsic,ZG);var mQ=X6({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),d={...YG,...ZG,...mQ,emptyStructure:U4("structure",{},{prereduced:!0})};N.intrinsic={...d};var _G=(Y)=>typeof Y==="string"&&Y[0]==="d"&&(Y[1]==="'"||Y[1]==='"')&&Y.at(-1)===Y[1],XG=(Y)=>Y.toString()!=="Invalid Date",GG=(Y)=>Y.slice(2,-1),UZ=(Y)=>`'${Y}' could not be parsed by the Date constructor`,$G=(Y,Z)=>uQ(Y,Z),uQ=(Y,Z)=>{let X=new Date(Y);if(XG(X))return X;let _=bX(Y);if(_!==void 0){let G=new Date(_);if(XG(G))return G}return Z?R(Z===!0?UZ(Y):Z):void 0};var zZ=(Y,Z)=>{let X=Y.scanner.shiftUntil(dQ[HG[Z]]);if(Y.scanner.lookahead==="")return Y.error(lQ(X,Z));if(Y.scanner.shift(),Z==="/"){try{new RegExp(X)}catch(_){R(String(_))}Y.root=Y.ctx.$.node("intersection",{domain:"string",pattern:X},{prereduced:!0})}else if(g0(Z,FZ))Y.root=Y.ctx.$.node("unit",{unit:X});else{let _=$G(X,UZ(X));Y.root=Y.ctx.$.node("unit",{meta:X,unit:_})}},FZ={"'":1,'"':1},WG={"/":1,"'":1,'"':1},HG={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},dQ={"'":(Y)=>Y.lookahead==="'",'"':(Y)=>Y.lookahead==='"',"/":(Y)=>Y.lookahead==="/"},cQ={'"':"double-quote","'":"single-quote","/":"forward slash"},lQ=(Y,Z)=>`${Z}${Y} requires a closing ${cQ[HG[Z]]}`;var JG=(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",G6="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var QG={">":!0,">=":!0},UG={"<":!0,"<=":!0};var z4={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},zG=(Y)=>`Unmatched )${Y===""?"":` before ${Y}`}`,$6=(Y)=>`Missing ${Y}`,FG=(Y,Z)=>`Left bounds are only valid when paired with right bounds (try ...${Z}${Y})`,W6=(Y)=>`Left-bounded expressions must specify their limits using < or <= (was ${Y})`,EG=(Y,Z,X,_)=>`An expression may have at most one left bound (parsed ${Y}${z4[Z]}, ${X}${z4[_]})`;var OG=(Y,Z,X)=>VG(Y,Z,X,[]),VG=(Y,Z,X,_)=>{let G=X.parseUntilFinalizer();if(_.push(G.root),G.finalizer===">"){if(_.length!==Z.params.length)return X.error(EZ(Y,Z.names,_.map(($)=>$.expression)));return _}if(G.finalizer===",")return VG(Y,Z,X,_);return G.error($6(">"))},EZ=(Y,Z,X)=>`${Y}<${Z.join(", ")}> requires exactly ${Z.length} args (got ${X.length}${X.length===0?"":`: ${X.join(", ")}`})`;var OZ=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator();if(Z==="keyof")Y.addPrefix("keyof");else Y.root=iQ(Y,Z)},oQ=(Y,Z,X)=>{if(X.scanner.shiftUntilNonWhitespace(),X.scanner.shift()!=="<")return X.error(EZ(Y,Z.names,[]));let G=OG(Y,Z,X);return Z(...G)},iQ=(Y,Z)=>rQ(Y,Z)??nQ(Y,Z)??Y.error(Z===""?Y.scanner.lookahead==="#"?JG(Y.shiftedByOne().scanner.shiftUntilNextTerminator()):VZ(Y):JZ(Z)),rQ=(Y,Z)=>{if(Y.ctx.args?.[Z]){let _=Y.ctx.args[Z];if(typeof _!=="string")return _;return Y.ctx.$.node("alias",{reference:_},{prereduced:!0})}let X=Y.ctx.$.maybeResolve(Z);if(y(X,"root"))return X;if(X===void 0)return;if(y(X,"generic"))return oQ(Z,X,Y);return R(`Unexpected resolution ${i(X)}`)},nQ=(Y,Z)=>{let X=yX(Z);if(X!==void 0)return Y.ctx.$.node("unit",{unit:X});let _=pX(Z);if(_!==void 0)return Y.ctx.$.node("unit",{unit:_})},VZ=(Y)=>{let Z=Y.previousOperator();return Z?DZ(Z,Y.scanner.unscanned):sQ(Y.scanner.unscanned)},DZ=(Y,Z="")=>`Token '${Y}' requires a right operand${Z?` before '${Z}'`:""}`,sQ=(Y)=>`Expected an expression${Y?` before '${Y}'`:""}`;var LZ=(Y)=>Y.scanner.lookahead===""?Y.error(VZ(Y)):Y.scanner.lookahead==="("?Y.shiftedByOne().reduceGroupOpen():Y.scanner.lookaheadIsIn(WG)?zZ(Y,Y.scanner.shift()):Y.scanner.lookaheadIsIn(V2)?LZ(Y.shiftedByOne()):Y.scanner.lookahead==="d"?Y.scanner.nextLookahead in FZ?zZ(Y,`${Y.scanner.shift()}${Y.scanner.shift()}`):OZ(Y):OZ(Y);class _2 extends NY{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>(this.lookahead in _2.terminatingChars))}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...V2};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(Y,Z)=>Y===">"?Z[0]==="="?Z[1]==="=":Z.trimStart()===""||g0(Z.trimStart()[0],_2.terminatingChars):Y==="="?Z[0]!=="=":Y===","||Y==="?"}var LG=(Y,Z)=>{let X=tQ(Y,Z);if(Y.root.hasKind("unit")){if(typeof Y.root.unit==="number"){Y.reduceLeftBound(Y.root.unit,X),Y.unsetRoot();return}if(Y.root.unit instanceof Date){let _=`d'${Y.root.description??Y.root.unit.toISOString()}'`;Y.unsetRoot(),Y.reduceLeftBound(_,X);return}}return eQ(Y,X)},MG={"<":1,">":1,"=":1},tQ=(Y,Z)=>Y.scanner.lookaheadIs("=")?`${Z}${Y.scanner.shift()}`:Z;var DG=(Y,Z,X,_)=>{if(X.extends(N.intrinsic.number)){if(typeof Z!=="number")return R(MZ(Y,Z,_));return Y==="=="?["min","max"]:Y[0]===">"?["min"]:["max"]}if(X.extends(N.intrinsic.lengthBoundable)){if(typeof Z!=="number")return R(MZ(Y,Z,_));return Y==="=="?["exactLength"]:Y[0]===">"?["minLength"]:["maxLength"]}if(X.extends(N.intrinsic.Date))return Y==="=="?["after","before"]:Y[0]===">"?["after"]:["before"];return R(W_(X.expression))},aQ=(Y)=>({rule:_G(Y.limit)?GG(Y.limit):Y.limit,exclusive:Y.comparator.length===1}),eQ=(Y,Z)=>{let X=Y.unsetRoot(),_=Y.scanner.location;Y.parseOperand();let G=Y.unsetRoot(),$=Y.scanner.sliceChars(_,Y.scanner.location);if(Y.root=X,!G.hasKind("unit")||typeof G.unit!=="number"&&!(G.unit instanceof Date))return Y.error(MZ(Z,$,"right"));let W=G.unit,H=Z.length===1,Q=DG(Z,typeof W==="number"?W:$,X,"right");for(let U of Q)Y.constrainRoot(U,Z==="=="?{rule:W}:{rule:W,exclusive:H});if(!Y.branches.leftBound)return;if(!g0(Z,UG))return Y.error(W6(Z));let J=DG(Y.branches.leftBound.comparator,Y.branches.leftBound.limit,X,"left");Y.constrainRoot(J[0],aQ(Y.branches.leftBound)),Y.branches.leftBound=null},MZ=(Y,Z,X)=>`Comparator ${X==="left"?z4[Y]:Y} must be ${X==="left"?"preceded":"followed"} by a corresponding literal (was ${Z})`;var AG=(Y)=>{Y.scanner.shiftUntilNonWhitespace();let Z=Y.scanner.shiftUntilNextTerminator();Y.root=Y.root.brand(Z)};var RG=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator(),X=gX(Z,{errorOnFail:wG(Z)});if(X===0)Y.error(wG(0));Y.root=Y.root.constrain("divisor",X)},wG=(Y)=>`% operator must be followed by a non-zero integer literal (was ${Y})`;var AZ=(Y)=>{let Z=Y.scanner.shift();return Z===""?Y.finalize(""):Z==="["?Y.scanner.shift()==="]"?Y.setRoot(Y.root.array()):Y.error(YU):Z==="|"?Y.scanner.lookahead===">"?Y.shiftedByOne().pushRootToBranch("|>"):Y.pushRootToBranch(Z):Z==="&"?Y.pushRootToBranch(Z):Z===")"?Y.finalizeGroup():_2.lookaheadIsFinalizing(Z,Y.scanner.unscanned)?Y.finalize(Z):g0(Z,MG)?LG(Y,Z):Z==="%"?RG(Y):Z==="#"?AG(Y):(Z in V2)?AZ(Y):Y.error(H6(Z))},H6=(Y,Z="")=>`'${Y}' is not allowed here${Z&&` (should be ${Z})`}`,YU="Missing expected ']'";var NG=(Y)=>{let Z=Y.unsetRoot();Y.parseOperand();let X=Y.unsetRoot();if(!X.hasKind("unit"))return Y.error(ZU(X.expression));let _=X.unit instanceof Date?()=>new Date(X.unit):X.unit;return[Z,"=",_]},ZU=(Y)=>`Default value '${Y}' must a literal value`;var wZ=(Y,Z)=>{let X=Z.$.maybeResolveRoot(Y);if(X)return X;if(Y.endsWith("[]")){let $=Z.$.maybeResolveRoot(Y.slice(0,-2));if($)return $.array()}let _=new F4(new _2(Y),Z),G=XU(_);if(_.finalizer===">")R(H6(">"));return G},XU=(Y)=>{Y.parseOperand();let Z=_8(Y).root;if(!Z)return _0(`Root was unexpectedly unset after parsing string '${Y.scanner.scanned}'`);if(Y.finalizer==="=")Z=NG(Y);else if(Y.finalizer==="?")Z=[Z,"?"];if(Y.scanner.shiftUntilNonWhitespace(),Y.scanner.lookahead)R(H6(Y.scanner.lookahead));return Z},_8=(Y)=>{while(Y.finalizer===void 0)_U(Y);return Y},_U=(Y)=>Y.hasRoot()?Y.parseOperator():Y.parseOperand();class F4{root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(Y,Z){this.scanner=Y,this.ctx=Z}error(Y){return R(Y)}hasRoot(){return this.root!==void 0}setRoot(Y){this.root=Y}unsetRoot(){let Y=this.root;return this.root=void 0,Y}constrainRoot(...Y){this.root=this.root.constrain(Y[0],Y[1])}finalize(Y){if(this.groups.length)return this.error($6(")"));this.finalizeBranches(),this.finalizer=Y}reduceLeftBound(Y,Z){let X=z4[Z];if(!g0(X,QG))return this.error(W6(Z));if(this.branches.leftBound)return this.error(EG(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(zG(this.scanner.unscanned));this.branches=Y}addPrefix(Y){this.branches.prefixes.push(Y)}applyPrefixes(){while(this.branches.prefixes.length){let Y=this.branches.prefixes.pop();this.root=Y==="keyof"?this.root.keyof():_0(`Unexpected prefix '${Y}'`)}}pushRootToBranch(Y){this.assertRangeUnset(),this.applyPrefixes();let Z=this.root;if(this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd(Z)??Z,Y==="&")return;if(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,Y==="|")return;this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null}parseUntilFinalizer(){return _8(new F4(this.scanner,this.ctx))}parseOperator(){return AZ(this)}parseOperand(){return LZ(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(FG(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 GU="An empty string is not a valid generic parameter name",J6=(Y,Z,X)=>{Y.shiftUntilNonWhitespace();let _=Y.shiftUntilNextTerminator();if(_===""){if(Y.lookahead===""&&Z.length)return Z;return R(GU)}return Y.shiftUntilNonWhitespace(),$U(Y,_,Z,X)},IG="extends ",$U=(Y,Z,X,_)=>{if(Y.shiftUntilNonWhitespace(),Y.unscanned.startsWith(IG))Y.jumpForward(IG.length);else{if(Y.lookahead===",")Y.shift();return X.push(Z),J6(Y,X,_)}let G=_8(new F4(Y,_));return X.push([Z,G.root]),J6(Y,X,_)};class RZ extends x1{$;constructor(Y){super((...Z)=>new G8(Y)(...Z),{bind:Y});this.$=Y}in(Y){return new G8(this.$,Y===void 0?void 0:this.$.parse(Y))}at(Y,Z){return new G8(this.$).at(Y,Z)}case(Y,Z){return new G8(this.$).case(Y,Z)}}class G8 extends x1{$;in;key;branches=[];constructor(Y,Z){super((X)=>this.caseEntries(Object.entries(X).map(([_,G])=>_==="default"?[_,G]:[this.$.parse(_),G])));this.$=Y,this.in=Z}at(Y,Z){if(this.key)R(HU);if(this.branches.length)R(WU);return this.key=Y,Z?this.match(Z):this}case(Y,Z){return this.caseEntry(this.$.parse(Y),Z)}caseEntry(Y,Z){let _=(this.key?this.$.parse({[this.key]:Y}):Y).pipe(Z);return this.branches.push(_),this}match(Y){return this(Y)}strings(Y){return this.caseEntries(Object.entries(Y).map(([Z,X])=>Z==="default"?[Z,X]:[this.$.node("unit",{unit:Z}),X]))}caseEntries(Y){for(let Z=0;Z<Y.length;Z++){let[X,_]=Y[Z];if(X==="default"){if(Z!==Y.length-1)R("default may only be specified as the last key of a switch definition");return this.default(_)}if(typeof _!=="function")return R(`Value for case "${X}" must be a function (was ${y0(_)})`);this.caseEntry(X,_)}return this}default(Y){if(typeof Y==="function")this.case(d.unknown,Y);let Z={branches:this.branches,ordered:!0};if(Y==="never"||Y==="assert")Z.meta={onFail:TG};let X=this.$.node("union",Z);if(!this.in)return this.$.finalize(X);let _=this.in.pipe(X);if(Y==="never"||Y==="assert")_=_.configureReferences({onFail:TG},"self");return this.$.finalize(_)}}var TG=(Y)=>Y.throw(),WU="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",HU="At most one key matcher may be specified per expression";var Q6=(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 U6(Y,Z)},KG="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",BG="Only required keys may specify default values, e.g. { value: 'number = 0' }";var CG=(Y,Z)=>{let X,_={},G=j2(Y);for(let[W,H]of G){let Q=UU(W);if(Q.kind==="spread"){if(!c1(_))return R(QU);let L=Z.$.parseOwnDefinitionFormat(H,Z);if(L.equals(d.object))continue;if(!L.hasKind("intersection")||!L.basis?.equals(d.object))return R(zU(L.expression));X=L.structure;continue}if(Q.kind==="undeclared"){if(H!=="reject"&&H!=="delete"&&H!=="ignore")R(JU(H));_.undeclared=H;continue}let J=Q6(H,Z),U=Q;if(Q.kind==="required"){if(!F0(J))NZ(_,"required",{key:Q.normalized,value:J},Z);else NZ(_,"optional",J[1]==="="?{key:Q.normalized,value:J[0],default:J[2]}:{key:Q.normalized,value:J[0]},Z);continue}if(F0(J)){if(J[1]==="?")R(KG);if(J[1]==="=")R(BG)}if(Q.kind==="optional"){NZ(_,"optional",{key:Q.normalized,value:J},Z);continue}let E=Z.$.parseOwnDefinitionFormat(U.normalized,Z),V=Y6(E,J,Z.$);if(V.index)_.index=Z0(_.index,V.index);if(V.required)_.required=Z0(_.required,V.required)}let $=Z.$.node("structure",_);return Z.$.parseSchema({domain:"object",structure:X?.merge($)??$})},NZ=(Y,Z,X,_)=>{Y[Z]=Z0(Y[Z],_.$.node(Z,X))},JU=(Y)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${i(Y)})`,QU="Spread operator may only be used as the first key in an object",UU=(Y)=>typeof Y==="symbol"?{kind:"required",normalized:Y}:Y.at(-1)==="?"?Y.at(-2)===k4?{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]===k4&&Y[1]==="["&&Y.at(-1)==="]"?{kind:"required",normalized:Y.slice(1)}:Y==="..."?{kind:"spread"}:Y==="+"?{kind:"undeclared"}:{kind:"required",normalized:Y==="\\..."?"...":Y==="\\+"?"+":Y},zU=(Y)=>`Spread operand must resolve to an object literal type (was ${Y})`;var jG=(Y,Z)=>RU(Y)?xG[Y[0]](Y,Z):AU(Y)?vG[Y[1]](Y,Z):null,FU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[1],Z).keyof(),IZ=(Y,Z)=>{if(Y[2]===void 0)return R(DZ(Y[1],""));let X=Z.$.parseOwnDefinitionFormat(Y[0],Z),_=Z.$.parseOwnDefinitionFormat(Y[2],Z);if(Y[1]==="|")return Z.$.node("union",{branches:[X,_]});let G=Y[1]==="&"?E1(X,_,Z.$):o4(X,_,Z.$);if(G instanceof P)return G.throw();return G},EU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).array(),OU=(Y,Z)=>{if(typeof Y[2]!=="function")return R(SG("=>",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).pipe(Y[2])},SG=(Y,Z)=>`${Y===":"?"Narrow":"Morph"} expression requires a function following '${Y}' (was ${typeof Z})`,VU=(Y,Z)=>{if(typeof Y[2]!=="function")return R(SG(":",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).constrain("predicate",Y[2])},DU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).configureReferences(Y[2],"shallow"),PG=(Y)=>Y,LU=PG({"[]":EU,"?":()=>R(_6)}),MU=PG({"|":IZ,"&":IZ,":":VU,"=>":OU,"|>":IZ,"@":DU,"=":()=>R(G6)}),vG={...LU,...MU},AU=(Y)=>vG[Y[1]]!==void 0,wU=(Y)=>Y,xG=wU({keyof:FU,instanceof:(Y,Z)=>{if(typeof Y[1]!=="function")return R(qG(f4(Y[1])));let X=Y.slice(1).map((_)=>typeof _==="function"?Z.$.node("proto",{proto:_}):R(qG(f4(_))));return X.length===1?X[0]:Z.$.node("union",{branches:X})},"===":(Y,Z)=>Z.$.units(Y.slice(1))}),RU=(Y)=>xG[Y[0]]!==void 0,qG=(Y)=>`Expected a constructor following 'instanceof' operator (was ${Y})`;var kG=(Y,Z)=>{let X=[{}],_=0;while(_<Y.length){let G=!1;if(Y[_]==="..."&&_<Y.length-1)G=!0,_++;let $=Q6(Y[_],Z),[W,H,Q]=!F0($)?[$]:$;if(_++,G){if(!W.extends(N.intrinsic.Array))return R(TU(W.expression));X=X.flatMap((J)=>W.distribute((U)=>IU(d8(J),U)))}else X=X.map((J)=>{if(H==="?")return bG(J,W);if(H==="=")return NU(J,W,Q);return TZ(J,W)})}return Z.$.parseSchema(X.map((G)=>c1(G)?{proto:Array,exactLength:0}:{proto:Array,sequence:G}))},TZ=(Y,Z)=>{if(Y.defaultables||Y.optionals)return R(Y.variadic?ZZ:KU);if(Y.variadic)Y.postfix=Z0(Y.postfix,Z);else Y.prefix=Z0(Y.prefix,Z);return Y},bG=(Y,Z)=>{if(Y.variadic)return R(yG);return Y.optionals=Z0(Y.optionals,Z),Y},NU=(Y,Z,X)=>{if(Y.variadic)return R(yG);if(Y.optionals)return R(BU);return Y.defaultables=Z0(Y.defaultables,[[Z,X]]),Y},fG=(Y,Z)=>{if(Y.postfix)R(hG);if(Y.variadic){if(!Y.variadic.equals(Z))R(hG)}else Y.variadic=Z.internal;return Y},IU=(Y,Z)=>{let X=Z.select({method:"find",kind:"sequence"});if(!X)return fG(Y,N.intrinsic.unknown);if(X.prefix)for(let _ of X.prefix)TZ(Y,_);if(X.optionals)for(let _ of X.optionals)bG(Y,_);if(X.variadic)fG(Y,X.variadic);if(X.postfix)for(let _ of X.postfix)TZ(Y,_);return Y},TU=(Y)=>`Spread element must be an array (was ${Y})`,hG="A tuple may have at most one variadic element",KU="A required element may not follow an optional element",yG="An optional element may not follow a variadic element";var BU="A defaultable element may not follow an optional element without a default";var CU={},U6=(Y,Z)=>{if(typeof Y==="string"){if(Z.args&&Object.keys(Z.args).some((_)=>Y.includes(_)))return wZ(Y,Z);let X=CU[Z.$.name]??={};return X[Y]??=wZ(Y,Z)}return Q1(Y,"object")?qU(Y,Z):R(KZ(y0(Y)))},qU=(Y,Z)=>{let X=x4(Y);switch(X){case void 0:if(y(Y,"root"))return Y;return CG(Y,Z);case"Array":return jU(Y,Z);case"RegExp":return Z.$.node("intersection",{domain:"string",pattern:Y},{prereduced:!0});case"Function":{let _=O2(Y)?Y():Y;if(y(_,"root"))return _;return R(KZ("Function"))}default:return R(KZ(X??i(Y)))}},jU=(Y,Z)=>jG(Y,Z)??kG(Y,Z),KZ=(Y)=>`Type definitions must be strings or objects (was ${Y})`;class BZ extends x1{constructor(Y){let Z=Object.assign({errors:z1,hkt:s0,$:Y,raw:Y.parse,module:Y.constructor.module,scope:Y.constructor.scope,define:Y.define,match:Y.match,generic:Y.generic,schema:Y.schema,keywords:Y.ambient,unit:Y.unit,enumerated:Y.enumerated,instanceOf:Y.instanceOf,valueOf:Y.valueOf,or:Y.or,and:Y.and,merge:Y.merge,pipe:Y.pipe},Y.ambientAttachments);super((...X)=>{if(X.length===1)return Y.parse(X[0]);if(X.length===2&&typeof X[0]==="string"&&X[0][0]==="<"&&X[0].at(-1)===">"){let _=X[0].slice(1,-1),G=Y.parseGenericParams(_,{});return new A2(G,X[1],Y,Y,null)}return Y.parse(X)},{bind:Y,attach:Z})}}var E4=N;class z6 extends Z6{get ambientAttachments(){if(!E4.typeAttachments)return;return this.cacheGetter("ambientAttachments",o(E4.typeAttachments,(Y,Z)=>[Y,this.bindReference(Z)]))}preparseOwnAliasEntry(Y,Z){let X=Y.indexOf("<");if(X===-1){if(y(Z,"module")||y(Z,"generic"))return[Y,Z];let $=this.name==="ark"?Y:Y==="root"?this.name:`${this.name}.${Y}`,W=this.resolvedConfig.keywords?.[$];if(W)Z=[Z,"@",W];return[Y,Z]}if(Y.at(-1)!==">")R("'>' must be the last character of a generic declaration in a scope");let _=Y.slice(0,X),G=Y.slice(X+1,-1);return[_,()=>{let $=this.parseGenericParams(G,{alias:_});return __($,Z,this)}]}parseGenericParams(Y,Z){return J6(new _2(Y),[],this.createParseContext({...Z,def:Y,prefix:"generic"}))}normalizeRootScopeValue(Y){if(O2(Y)&&!y(Y,"generic"))return Y();return Y}preparseOwnDefinitionFormat(Y,Z){return{...Z,def:Y,prefix:Z.alias??"type"}}parseOwnDefinitionFormat(Y,Z){if(!(Z.alias&&(Z.alias in this.aliases))&&!Z.args)Z.args={this:Z.id};let _=U6(Y,Z);if(F0(_)){if(_[1]==="=")return R(G6);if(_[1]==="?")return R(_6)}return _}unit=(Y)=>this.units([Y]);valueOf=(Y)=>this.units(IX(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 RZ(this);declare=()=>({type:this.type});define(Y){return Y}type=new BZ(this);static scope=(Y,Z={})=>new z6(Y,Z);static module=(Y,Z={})=>this.scope(Y,Z).export()}var CZ=Object.assign(z6.scope,{define:(Y)=>Y}),e=z6;class gG extends s0{description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var SU=K1(["base",d.object],["props",d.object])((Y)=>Y.base.merge(Y.props),gG),pG=e.module({Key:d.key,Merge:SU});class mG extends s0{}var PU=K1("element")((Y)=>{let Z=Y.element.exclude(d.Array),X=Z.array();return Z.rawOr(X).pipe(E2).distribute((_)=>_.assertHasKind("morph").declareOut(X),H0)},mG),uG=e.module({root:d.Array,readonly:"root",index:d.nonNegativeIntegerString,liftFrom:PU},{name:"Array"});var qZ=H0(["string",P2.FileConstructor]),vU=qZ.rawOr(qZ.array()),dG=H0({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:vU}}),cG=e.module({root:["instanceof",FormData],value:qZ,parsed:dG,parse:H0({in:FormData,morphs:(Y)=>{let Z={};for(let[X,_]of Y)if(X in Z){let G=Z[X];if(typeof G==="string"||G instanceof P2.FileConstructor)Z[X]=[G,_];else G.push(_)}else Z[X]=_;return Z},declaredOut:dG})},{name:"FormData"});var lG=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 xU={Boolean:1,Number:1,String:1},oG=e.module({...o({...OY,...DY},(Y,Z)=>(Y in xU)?[]:[Y,["instanceof",Z]]),Array:uG,TypedArray:lG,FormData:cG});var fU=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"}),hU=H0({domain:"number",divisor:1}),F6=e.module({root:d.number,integer:hU,epoch:fU,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 _={domain:"string",pattern:{rule:Y.source,flags:Y.flags,meta:Z}};if(X)_.meta={format:X};return U4("intersection",_)},iG=N0(b4,"a well-formed integer string"),$9=e.module({root:iG,parse:H0({in:iG,morphs:(Y,Z)=>{let X=Number.parseInt(Y);return Number.isSafeInteger(X)?X:Z.error("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")},declaredOut:d.integer})},{name:"string.integer"}),kU=N0(/^[\dA-Fa-f]+$/,"hex characters only"),bU=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"}),rG=N0(/^[A-Z].*$/,"capitalized"),yU=e.module({root:H0({in:"string",morphs:(Y)=>Y.charAt(0).toUpperCase()+Y.slice(1),declaredOut:rG}),preformatted:rG},{name:"string.capitalize"}),gU=(Y)=>{let Z=Y.replaceAll(/[ -]+/g,""),X=0,_,G,$=!1;for(let W=Z.length-1;W>=0;W--){if(_=Z.substring(W,W+1),G=Number.parseInt(_,10),$)G*=2,X+=G>=10?G%10+1:G;else X+=G;$=!$}return!!(X%10===0?Z:!1)},pU=/^(?: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}))$/,mU=H0({domain:"string",pattern:{meta:"a credit card number",rule:pU.source},predicate:{meta:"a credit card number",predicate:gU}});var uU=/^([+-]?\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 dU=(Y)=>!Number.isNaN(new Date(Y).valueOf()),nG=H0({domain:"string",predicate:{meta:"a parsable date",predicate:dU}}).assertHasKind("intersection"),sG=$9.root.internal.narrow((Y,Z)=>{let X=Number.parseInt(Y),_=F6.epoch(X);if(_ instanceof z1)return Z.errors.merge(_),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),cU=e.module({root:sG,parse:H0({in:sG,morphs:(Y)=>new Date(Y),declaredOut:d.Date})},{name:"string.date.epoch"}),tG=N0(uU,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),lU=e.module({root:tG,parse:H0({in:tG,morphs:(Y)=>new Date(Y),declaredOut:d.Date})},{name:"string.date.iso"}),oU=e.module({root:nG,parse:H0({declaredIn:nG,in:"string",morphs:(Y,Z)=>{let X=new Date(Y);if(Number.isNaN(X.valueOf()))return Z.error("a parsable date");return X},declaredOut:d.Date}),iso:lU,epoch:cU},{name:"string.date"}),iU=N0(/^[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z]{2,}$/,"an email address","email"),aG="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",w2=`(${aG}[.]){3}${aG}`,rU=new RegExp(`^${w2}$`),x0="(?:[0-9a-fA-F]{1,4})",nU=new RegExp(`^((?:${x0}:){7}(?:${x0}|:)|(?:${x0}:){6}(?:${w2}|:${x0}|:)|(?:${x0}:){5}(?::${w2}|(:${x0}){1,2}|:)|(?:${x0}:){4}(?:(:${x0}){0,1}:${w2}|(:${x0}){1,3}|:)|(?:${x0}:){3}(?:(:${x0}){0,2}:${w2}|(:${x0}){1,4}|:)|(?:${x0}:){2}(?:(:${x0}){0,3}:${w2}|(:${x0}){1,5}|:)|(?:${x0}:){1}(?:(:${x0}){0,4}:${w2}|(:${x0}){1,6}|:)|(?::((?::${x0}){0,5}:${w2}|(?::${x0}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),sU=e.module({root:["v4 | v6","@","an IP address"],v4:N0(rU,"an IPv4 address","ipv4"),v6:N0(nU,"an IPv6 address","ipv6")},{name:"string.ip"}),O4="a JSON string",W9=(Y)=>{if(!(Y instanceof SyntaxError))throw Y;return`must be ${O4} (${Y})`},tU=H0({meta:O4,domain:"string",predicate:{meta:O4,predicate:(Y,Z)=>{try{return JSON.parse(Y),!0}catch(X){return Z.reject({code:"predicate",expected:O4,problem:W9(X)})}}}}),aU=(Y,Z)=>{if(Y.length===0)return Z.error({code:"predicate",expected:O4,actual:"empty"});try{return JSON.parse(Y)}catch(X){return Z.error({code:"predicate",expected:O4,problem:W9(X)})}},eU=e.module({root:tU,parse:H0({meta:"safe JSON string parser",in:"string",morphs:aU,declaredOut:d.jsonObject})},{name:"string.json"}),eG=N0(/^[a-z]*$/,"only lowercase letters"),Yz=e.module({root:H0({in:"string",morphs:(Y)=>Y.toLowerCase(),declaredOut:eG}),preformatted:eG},{name:"string.lower"}),H9=["NFC","NFD","NFKC","NFKD"],$8=o(H9,(Y,Z)=>[Z,H0({domain:"string",predicate:(X)=>X.normalize(Z)===X,meta:`${Z}-normalized unicode`})]),E6=o(H9,(Y,Z)=>[Z,H0({in:"string",morphs:(X)=>X.normalize(Z),declaredOut:$8[Z]})]),Zz=e.module({root:E6.NFC,preformatted:$8.NFC},{name:"string.normalize.NFC"}),Xz=e.module({root:E6.NFD,preformatted:$8.NFD},{name:"string.normalize.NFD"}),_z=e.module({root:E6.NFKC,preformatted:$8.NFKC},{name:"string.normalize.NFKC"}),Gz=e.module({root:E6.NFKD,preformatted:$8.NFKD},{name:"string.normalize.NFKD"}),$z=e.module({root:"NFC",NFC:Zz,NFD:Xz,NFKC:_z,NFKD:Gz},{name:"string.normalize"}),Y9=N0(p8,"a well-formed numeric string"),Wz=e.module({root:Y9,parse:H0({in:Y9,morphs:(Y)=>Number.parseFloat(Y),declaredOut:d.number})},{name:"string.numeric"}),Z9="a regex pattern",Hz=H0({domain:"string",predicate:{meta:Z9,predicate:(Y,Z)=>{try{return new RegExp(Y),!0}catch(X){return Z.reject({code:"predicate",expected:Z9,problem:String(X)})}}},meta:{format:"regex"}}),Jz=/^(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-]+)*))?$/,Qz=N0(Jz,"a semantic version (see https://semver.org/)"),X9=N0(/^\S.*\S$|^\S?$/,"trimmed"),Uz=e.module({root:H0({in:"string",morphs:(Y)=>Y.trim(),declaredOut:X9}),preformatted:X9},{name:"string.trim"}),_9=N0(/^[A-Z]*$/,"only uppercase letters"),zz=e.module({root:H0({in:"string",morphs:(Y)=>Y.toUpperCase(),declaredOut:_9}),preformatted:_9},{name:"string.upper"}),Fz=(Y)=>{if(URL.canParse)return URL.canParse(Y);try{return new URL(Y),!0}catch{return!1}},G9=H0({domain:"string",predicate:{meta:"a URL string",predicate:Fz},meta:{format:"uri"}}),Ez=e.module({root:G9,parse:H0({declaredIn:G9,in:"string",morphs:(Y,Z)=>{try{return new URL(Y)}catch{return Z.error("a URL string")}},declaredOut:H0(URL)})},{name:"string.url"}),Oz=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"}),J9=e.module({root:d.string,alpha:N0(/^[A-Za-z]*$/,"only letters"),alphanumeric:N0(/^[\dA-Za-z]*$/,"only letters and digits 0-9"),hex:kU,base64:bU,capitalize:yU,creditCard:mU,date:oU,digits:N0(/^\d*$/,"only digits 0-9"),email:iU,integer:$9,ip:sU,json:eU,lower:Yz,normalize:$z,numeric:Wz,regex:Hz,semver:Qz,trim:Uz,upper:zz,url:Ez,uuid:Oz},{name:"string"});var Q9=e.module({bigint:d.bigint,boolean:d.boolean,false:d.false,never:d.never,null:d.null,number:d.number,object:d.object,string:d.string,symbol:d.symbol,true:d.true,unknown:d.unknown,undefined:d.undefined}),U9=e.module({root:d.unknown,any:d.unknown},{name:"unknown"}),Vz=e.module({root:d.jsonObject,stringify:U4("morph",{in:d.jsonObject,morphs:(Y)=>JSON.stringify(Y),declaredOut:d.string})},{name:"object.json"}),z9=e.module({root:d.object,json:Vz},{name:"object"});class F9 extends s0{description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var Dz=K1(["K",d.key],"V")((Y)=>({domain:"object",index:{signature:Y.K,value:Y.V}}),F9);class E9 extends s0{description='pick a set of properties from an object like `Pick(User, "name | age")`'}var Lz=K1(["T",d.object],["K",d.key])((Y)=>Y.T.pick(Y.K),E9);class O9 extends s0{description='omit a set of properties from an object like `Omit(User, "age")`'}var Mz=K1(["T",d.object],["K",d.key])((Y)=>Y.T.omit(Y.K),O9);class V9 extends s0{description="make all named properties of an object optional like `Partial(User)`"}var Az=K1(["T",d.object])((Y)=>Y.T.partial(),V9);class D9 extends s0{description="make all named properties of an object required like `Required(User)`"}var wz=K1(["T",d.object])((Y)=>Y.T.required(),D9);class L9 extends s0{description='exclude branches of a union like `Exclude("boolean", "true")`'}var Rz=K1("T","U")((Y)=>Y.T.exclude(Y.U),L9);class M9 extends s0{description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var Nz=K1("T","U")((Y)=>Y.T.extract(Y.U),M9),A9=e.module({Exclude:Rz,Extract:Nz,Omit:Mz,Partial:Az,Pick:Lz,Record:Dz,Required:wz});var R2=CZ({...Q9,...A9,...oG,...pG,string:J9,number:F6,object:z9,unknown:U9},{prereducedAliases:!0,name:"ark"}),p0=R2.export();Object.assign(E4.ambient,p0);E4.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 O1=Object.assign(R2.type,E4.typeAttachments),Iz=R2.match,Tz=R2.generic,$T=R2.schema,Kz=R2.define,Bz=R2.declare;function a0(Y){return JSON.parse(Y)}var Q0=(Y)=>JSON.stringify(Y),RT=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];function V4(Y){return L6(o0.STORE,Y,void 0)}function W8(Y){return M4(o0.STORE,Y)}function SZ(...Y){if(Y.length===2)return k1(o0.STORE,...Y);return k1(o0.STORE,...Y)}function O6(Y,Z){return q9(o0.STORE,Y,Z)}function w9(Y){return S9(Y,o0.STORE)}var G2={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 jZ=(Y)=>(Z,X,_,G,...$)=>{console[Y](`${Z} ${G2[X]} \`${_}\` ${G}`,...$)},Cz={error:jZ("error"),info:jZ("info"),warn:jZ("warn")},R9=class{logLevel;filter;logger;constructor(Y,Z,X=Cz){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 qz=class{store;constructor(Y=o0.STORE){this.store=Y,T9("root",Y)}allocate(Y,Z,X){return D4(this.store,Y,Z,X)}fuse(Y,Z,X){return K9(this.store,Y,Z,X)}deallocate(Y){L4(this.store,Y)}claim(Y,Z,X){return J8(this.store,Y,Z,X)}},N9=class{store;realm;constructor(Y=o0.STORE){this.store=Y,this.realm=new qz(Y)}allocate(Y,Z,X){D4(this.store,Y,Z,X)}deallocate(Y){L4(this.store,Y)}claim(Y,Z,X){J8(this.store,Y,Z,X)}};function V6(Y){return xZ(o0.STORE,Y)}function H8(Y){return vZ(o0.STORE,Y)}var $2=class Y extends Set{mode="record";subject=new W0;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(Z,X=0){super(Z);if(Z instanceof Y)this.parent=Z,this.cacheUpdateNumber=Z.cacheUpdateNumber;if(X)this.cacheLimit=X,this.cache=new Array(X),this.subscribe("auto cache",(_)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=_})}READONLY_VIEW=this;toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(Z){let X=new Y(Z.members,Z.cacheLimit);return X.cache=Z.cache,X.cacheIdx=Z.cacheIdx,X.cacheUpdateNumber=Z.cacheUpdateNumber,X}add(Z){let X=super.add(Z);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${Q0(Z)}`);return X}clear(){let Z=this.mode==="record"?[...this]:null;if(super.clear(),Z)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(Z)}`)}delete(Z){let X=super.delete(Z);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${Q0(Z)}`);return X}parent=null;child=null;transactionUpdates=null;transaction(Z){this.mode="transaction",this.transactionUpdates=[],this.child=new Y(this);let X=this.child._subscribe("transaction",(_)=>{this.transactionUpdates?.push(_)});try{if(Z(this.child)){for(let G of this.transactionUpdates)this.doStep(G);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(_){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",_),_}finally{X(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(Z,X){return this.subject.subscribe(Z,X)}subscribe(Z,X){return this.subject.subscribe(Z,(_)=>{X(`${this.cacheUpdateNumber}=${_}`)})}emit(Z){this.subject.next(Z)}doStep(Z){let X=Z.indexOf(":"),_=Z.substring(0,X),G=Z.substring(X+1);switch(_){case"add":this.add(JSON.parse(G));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(G));break;case"tx":for(let $ of G.split(";"))this.doStep($)}}getUpdateNumber(Z){let X=Z.indexOf("=");return Number(Z.substring(0,X))}do(Z){let X=Z.indexOf("="),_=Number(Z.substring(0,X)),G=_-this.cacheUpdateNumber;if(G>0){if(G===1){this.mode="playback";let W=Z.substring(X+1);return this.doStep(W),this.mode="record",this.cacheUpdateNumber=_,null}return this.cacheUpdateNumber+1}if(Math.abs(G)<this.cacheLimit){let W=this.cacheIdx+G;if(this.cache[W]===Z)return null;this.mode="playback";let Q=!1;while(!Q){this.cacheIdx%=this.cacheLimit;let U=this.cache[this.cacheIdx];if(this.cacheIdx--,!U)return"OUT_OF_RANGE";this.undo(U),Q=this.cacheIdx===W-1}let J=Z.substring(X+1);return this.doStep(J),this.mode="record",this.cacheUpdateNumber=_,null}return"OUT_OF_RANGE"}undoStep(Z){let X=Z.indexOf(":"),_=Z.substring(0,X),G=Z.substring(X+1);switch(_){case"add":this.delete(JSON.parse(G));break;case"del":this.add(JSON.parse(G));break;case"clear":{let $=JSON.parse(G);for(let W of $)this.add(W);break}case"tx":{let $=G.split(";");for(let W=$.length-1;W>=0;W--)this.undoStep($[W])}}}undo(Z){let X=Z.indexOf("=");if(Number(Z.substring(0,X))===this.cacheUpdateNumber){this.mode="playback";let G=Z.substring(X+1);return this.undoStep(G),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}};function I9(Y=Math.random){return Y().toString(36).slice(2)}function Y0(Y){while(Y.child!==null)Y=Y.child;return Y}var Sz=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 b1(Y){let Z={key:Y.key,type:Y.type};if("family"in Y)Z.family=Y.family;return Z}var Pz=Symbol("counterfeit"),vz={atom_family:"atom",molecule_family:"molecule",mutable_atom_family:"mutable_atom",readonly_held_selector_family:"readonly_held_selector",readonly_pure_selector_family:"readonly_pure_selector",writable_held_selector_family:"writable_held_selector",writable_pure_selector_family:"writable_pure_selector"};function P9(Y,Z,X){let _=Q0(Z),G=`${Y.key}(${_})`,$=vz[Y.type],W={key:G,type:$,family:{key:Y.key,subKey:_}};if(X)W.counterfeit=!0;return W}var G1=class{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(Y,Z)=>`${Y}:${Z}`;warn;getRelatedKeys(Y){return this.relations.get(Y)}addRelation(Y,Z){let X=this.relations.get(Y),_=this.relations.get(Z);if(X)X.add(Z);else X=new Set([Z]),this.relations.set(Y,X);if(_)_.add(Y);else _=new Set([Y]),this.relations.set(Z,_)}deleteRelation(Y,Z){let X=this.relations.get(Y);if(X){if(X.delete(Z),X.size===0)this.relations.delete(Y);let _=this.relations.get(Z);if(_){if(_.delete(Y),_.size===0)this.relations.delete(Z)}}}replaceRelationsUnsafely(Y,Z){this.relations.set(Y,new Set(Z));for(let X of Z){let _=new Set().add(Y);this.relations.set(X,_)}}replaceRelationsSafely(Y,Z){let X=this.relations.get(Y),_=this.isAType?.(Y)?Y:void 0,G=_===void 0?Y:void 0;if(X)for(let $ of X){_??=$,G??=$;let W=this.relations.get($);if(W){if(W.size===1)this.relations.delete($);else W.delete(Y);this.contents.delete(this.makeContentKey(_,G))}}this.relations.set(Y,new Set(Z));for(let $ of Z){let W=this.relations.get($);if(W)W.add(Y);else W=new Set().add(Y),this.relations.set($,W)}}getContentInternal(Y){return this.contents.get(Y)}setContent(Y,Z){this.contents.set(Y,Z)}deleteContent(Y){this.contents.delete(Y)}constructor(Y,Z){if(this.a=Y.between[0],this.b=Y.between[1],this.cardinality=Y.cardinality,!Z?.externalStore)this.relations=new Map(Y.relations?.map(([X,_])=>[X,new Set(_)])),this.contents=new Map(Y.contents);if(this.isAType=Z?.isAType??null,this.isBType=Z?.isBType??null,this.isContent=Z?.isContent??null,Z?.makeContentKey)this.makeContentKey=Z.makeContentKey;if(Z?.externalStore){let X=Z.externalStore;if(this.has=(_,G)=>X.has(_,G),this.addRelation=(_,G)=>{X.addRelation(_,G)},this.deleteRelation=(_,G)=>{X.deleteRelation(_,G)},this.replaceRelationsSafely=(_,G)=>{X.replaceRelationsSafely(_,G)},this.replaceRelationsUnsafely=(_,G)=>{X.replaceRelationsUnsafely(_,G)},this.getRelatedKeys=(_)=>X.getRelatedKeys(_),X.getContent)this.getContentInternal=(_)=>{return X.getContent(_)},this.setContent=(_,G)=>{X.setContent(_,G)},this.deleteContent=(_)=>{X.deleteContent(_)};for(let[_,G]of Y.relations??[]){let $=this.isAType?.(_)?_:void 0,W=$===void 0?_:void 0;for(let H of G)$??=H,W??=H,this.addRelation($,W)}for(let[_,G]of Y.contents??[])this.setContent(_,G)}if(Z?.warn)this.warn=Z.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([Y,Z])=>[Y,[...Z]]),contents:[...this.contents.entries()]}}set(...Y){let Z,X,_;switch(Y.length){case 1:{let G=Y[0];Z=G[this.a],X=G[this.b],_=void 0;break}case 2:{let G=Y[0];if(typeof G==="string")[Z,X]=Y;else Z=G[this.a],X=G[this.b],_=Y[1];break}default:Z=Y[0],X=Y[1],_=Y[2];break}switch(this.cardinality){case"1:1":{let G=this.getRelatedKey(Z);if(G&&G!==X)this.delete(Z,G)}case"1:n":{let G=this.getRelatedKey(X);if(G&&G!==Z)this.delete(G,X)}break;case"n:n":}if(_){let G=this.makeContentKey(Z,X);this.setContent(G,_)}return this.addRelation(Z,X),this}delete(Y,Z){Z=typeof Z==="string"?Z:Y[this.b];let X=typeof Y==="string"?Y:Y[this.a];if(X===void 0&&typeof Z==="string"){let _=this.getRelatedKeys(Z);if(_)for(let G of _)this.delete(G,Z)}if(typeof X==="string"&&Z===void 0){let _=this.getRelatedKeys(X);if(_)for(let G of _)this.delete(X,G)}if(typeof X==="string"&&typeof Z==="string"){this.deleteRelation(X,Z);let _=this.makeContentKey(X,Z);this.deleteContent(_)}return this}getRelatedKey(Y){let Z=this.getRelatedKeys(Y);if(Z){if(Z.size>1)this.warn?.(`${Z.size} related keys were found for key "${Y}": (${[...Z].map((_)=>`"${_}"`).join(", ")}). Only one related key was expected.`);let X;for(let _ of Z){X=_;break}return X}}replaceRelations(Y,Z,X){let _=!Array.isArray(Z),G=_?Object.keys(Z):Z;if(X?.reckless)this.replaceRelationsUnsafely(Y,G);else this.replaceRelationsSafely(Y,G);if(_)for(let $ of G){let W=this.makeContentKey(Y,$),H=Z[$];this.setContent(W,H)}return this}getContent(Y,Z){let X=this.makeContentKey(Y,Z);return this.getContentInternal(X)}getRelationEntries(Y){let Z=Y[this.a],X=Y[this.b];if(Z!==void 0&&X===void 0){let _=this.getRelatedKeys(Z);if(_)return[..._].map((G)=>{return[G,this.getContent(Z,G)]})}if(Z===void 0&&X!==void 0){let _=this.getRelatedKeys(X);if(_)return[..._].map((G)=>{return[G,this.getContent(G,X)]})}return[]}has(Y,Z){if(Z)return this.getRelatedKeys(Y)?.has(Z)??!1;return this.relations.has(Y)}},W0=class{Subscriber;subscribers=new Map;subscribe(Y,Z){return this.subscribers.set(Y,Z),()=>{this.unsubscribe(Y)}}unsubscribe(Y){this.subscribers.delete(Y)}next(Y){let Z=this.subscribers.values();for(let X of Z)X(Y)}},xz=class extends W0{state;constructor(Y){super();this.state=Y}next(Y){this.state=Y,super.next(Y)}},fz=(Y,Z)=>{let X=Y0(Y);if(X.operation.open)return X.operation.prev.get(Z.key);return X.valueMap.get(Z.key)};function k9(Y,Z,X,_){let G=Y.disposalTraces.buffer.find(($)=>$?.key===Q0(_));switch(Y.logger.error("\u274C",Z.type,Z.key,"gets a fallback value because key",_,"is not allocated",G?`This key was previously disposed:
48
+ ${G.trace}`:"(no previous disposal trace found)"),X.type){case"mutable_atom_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=new X.class;return Y.defaults.set(X.key,$),$}case"atom_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=X.default,W=$(_);return Y.defaults.set(X.key,W),W}case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(Y.defaults.has(X.key))return Y.defaults.get(X.key);let $=X.default(_);return Y.defaults.set(X.key,$),$}}}var kZ=class extends Promise{fate;resolve;reject;done=!1;constructor(Y){let Z,X;super((_,G)=>{Z=_,X=G});this.resolve=Z,this.reject=X,this.use(Y instanceof Promise?Y:new Promise(Y))}pass(Y,Z){if(Y===this.fate)this.resolve(Z),this.done=!0}fail(Y,Z){if(Y===this.fate)this.reject(Z),this.done=!0}use(Y){if(this===Y)return;if(Y instanceof Promise){let Z=Y;this.fate=Z,Z.then((X)=>{this.pass(Z,X)},(X)=>{this.fail(Z,X)})}else this.resolve(Y),this.fate=void 0}};function y2(Y){return"epoch"in Y.transactionMeta}function $1(Y){return"phase"in Y.transactionMeta}function b9(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},Y.logger.info("\u2B55",Z.type,Z.key,`operation start in store "${Y.config.name}"${$1(Y)?` ${Y.transactionMeta.phase} "${Y.transactionMeta.update.token.key}"`:""}`),Y}function y9(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 g9=(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)},w6=(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 pZ(Y,Z){let X=Y0(Y),{key:_,type:G}=Z,$=X.selectorAtoms.getRelatedKeys(_);if(X.logger.info("\uD83E\uDDF9",G,_,$?`evicting ${$.size} states downstream:`:"no downstream states",$??"to evict"),$){if(X.operation.open)X.logger.info("\uD83E\uDDF9",G,_,`[ ${[...X.operation.done].join(", ")} ] already done`);for(let W of $){if(g9(X,W))continue;m9(X,W),w6(X,W)}}}function p9(Y,Z){let X=Y0(Y),_=X.selectorGraph.getRelationEntries({upstreamSelectorKey:Z}).filter(([G,{source:$}])=>$===Z);for(let[G]of _){if(g9(X,G))continue;m9(X,G),w6(X,G),p9(Y,G)}}function W2(Y,Z,X){let{key:_,subject:G,type:$}=Z,W=Y.valueMap.get(_);if(W instanceof kZ&&!W.done){let H=W;if(X instanceof Promise)return H.use(X),H;return Y.valueMap.set(_,X),X}if(X instanceof Promise){let H=new kZ(X);return Y.valueMap.set(_,H),H.then(function Q(J){if(Y.valueMap.get(_)===H){switch(b9(Y,Z),W2(Y,Z,J),$){case"atom":case"mutable_atom":pZ(Y,Z);break;case"readonly_pure_selector":case"writable_pure_selector":p9(Y,_);break}y9(Y),G.next({newValue:J,oldValue:H})}}).catch((Q)=>{Y.logger.error("\uD83D\uDCA5","state",_,"rejected:",Q)}),H}return Y.valueMap.set(_,X),X}function hz(Y,Z,X){Y.logger.info("\uD83D\uDCD6",Z.type,Z.key,"reading cached value");let _=Y.valueMap.get(Z.key);if(X==="mut"&&Z.type==="mutable_atom"&&$1(Y)){let $=Z,{parent:W}=Y;if(Y.valueMap.hasOwn($.key))return _;let H=W.valueMap.get($.key);Y.logger.info("\uD83D\uDCC3","atom",$.key,"copying");let Q=H.toJSON(),J=$.class.fromJSON(Q);Y.valueMap.set($.key,J),new nZ($,W),_=J}return _}function m9(Y,Z){let X=Y.valueMap.get(Z);if(X instanceof kZ){let _=Y.writableSelectors.get(Z)??Y.readonlySelectors.get(Z);if(_)_.getFrom(Y);return}if(Y.operation.open)Y.operation.prev.set(Z,X);Y.valueMap.delete(Z),Y.logger.info("\uD83D\uDDD1","state",Z,"evicted")}function A4(Y,Z,X){if(Y.valueMap.has(Z.key))return hz(Y,Z,X);let{key:_}=Z;switch(Z.type){case"readonly_held_selector":case"readonly_pure_selector":case"writable_held_selector":case"writable_pure_selector":return Y.logger.info("\uD83E\uDDEE",Z.type,_,"computing value"),Z.getFrom(Y);case"atom":{let G;if(Z.default instanceof Function)G=Z.default();else G=Z.default;let $=W2(Y,Z,G);return Y.logger.info("\uD83D\uDC81","atom",Z.key,"could not find cached value; using default",G),$}case"mutable_atom":{let G=new Z.class,$=W2(Y,Z,G);return Y.logger.info("\uD83D\uDC81","mutable_atom",Z.key,"could not find cached value; using default",G),$}}}function mZ(Y,Z){return j0(Y,{key:Z.family.key,type:`${Z.type}_family`})}var kz=(Y)=>{let Z=Y0(Y);if(!$1(Z)){Y.logger.warn("\uD83D\uDC1E","transaction","???","abortTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}Y.logger.info("\uD83E\uDE82","transaction",Z.transactionMeta.update.token.key,"Aborting transaction"),Z.parent.child=null},u9=class extends Error{constructor(Y,Z){super(`${G2[Y.type]} ${Q0(Y.key)} not found in store "${Z.config.name}".`)}};function PZ(Y,Z,X){return(..._)=>{let G=j0(Y,Z);if(G)return G.run(_,X);throw new u9(Z,Y)}}var bZ=(Y)=>(Z)=>Y instanceof Function?Y(Z):Y;function d9(Y,Z,[X,_],G){let{key:$,subject:W,type:H}=Z,Q={oldValue:hZ(X)?X.READONLY_VIEW:X,newValue:hZ(_)?_.READONLY_VIEW:_};if(y2(Y)){switch(H){case"mutable_atom":Y.logger.info("\uD83D\uDCE2",H,$,"is now (",_,") subscribers:",W.subscribers);break;case"atom":case"writable_pure_selector":case"writable_held_selector":Y.logger.info("\uD83D\uDCE2",H,$,"went (",X,"->",_,") subscribers:",W.subscribers)}W.next(Q)}if($1(Y)&&(H==="mutable_atom"||H==="atom")){if(Y.on.transactionApplying.state===null){let J=b1(Z);if(hZ(_))return;let{timestamp:U}=Y.operation,E={type:"atom_update",token:J,timestamp:U,update:Q};Y.transactionMeta.update.subEvents.push(E),Y.logger.info("\uD83D\uDCC1","atom",$,"stowed (",X,"->",_,")");return}if(JF(Z,"tracker:signal")){let J=$.slice(1),U=Y.atoms.get(J);if(A4(Y,U,"mut").do(Q.newValue)===null===!0)pZ(Y,U)}}}var yZ=(Y,Z,X)=>{let _=A4(Y,Z,"mut"),G=bZ(X)(_);return Y.logger.info("\uD83D\uDCDD","atom",Z.key,"set to",G),G=W2(Y,Z,G),w6(Y,Z.key),pZ(Y,Z),[_,G]};function v9(Y,Z){switch(Z.type){case"mutable_atom":return yZ(Y,Z,new Z.class);case"atom":{let X=Z.default;if(X instanceof Function)X=X();return yZ(Y,Z,X)}}}function bz(Y,Z){let X;switch(Z.type){case"atom":case"mutable_atom":X=v9(Y,Z);break;case"writable_pure_selector":case"writable_held_selector":{let _=Z.getFrom(Y),G=A6(Y,Z.key);for(let W of G.values()){let H=v9(Y,W);d9(Y,Z,H,!1)}let $=Z.getFrom(Y);X=[_,$]}break}return X}function B1(Y,...Z){uZ(Y,gZ,...Z)}var M6=Symbol("RESET");function D6(Y,...Z){let X,_,G;if(Z.length===1)X=Z[0],B1(Y,X,M6);else _=Z[0],G=Z[1],B1(Y,_,G,M6)}function yz(Y,Z,X){let _,G,$,{type:W,key:H}=Z;switch(Z.type){case"writable_pure_selector":_=Z.getFrom(Y),G=bZ(X)(_),W2(Y,Z,G);break;case"writable_held_selector":$=Z.const,bZ(X)($),_=$,G=$}return Y.logger.info("\uD83D\uDCDD",W,H,"setting to",G),w6(Y,H),Z.setSelf(G),[_,G]}var gz=(Y,Z,X)=>{let _;switch(Z.type){case"atom":case"mutable_atom":_=yZ(Y,Z,X);break;case"writable_pure_selector":case"writable_held_selector":_=yz(Y,Z,X);break}return _};function pz(Y,Z,X){let{token:_,update:{newValue:G,oldValue:$}}=Z;B1(X,_,Y==="newValue"?G:$)}function mz(Y){let{stack:Z}=Y;if(Z)return`
49
49
  `+Z.split(`
50
50
  `)?.slice(1)?.join(`
51
51
  `);return""}function T9(Y,Z=o0.STORE){let X={key:Y,stringKey:Q0(Y),dependsOn:"any"};return Z.molecules.set(Q0(Y),X),Y}function D4(Y,Z,X,_="any"){let G=Z,$=Q0(X),W=[],H=Y0(Y);if(Array.isArray(G))for(let U of G){let E=Q0(U);if(H.molecules.get(E))Y.moleculeGraph.set(E,$,{source:E});else W.push(E)}else{let U=Q0(G);if(H.molecules.get(U))Y.moleculeGraph.set(U,$,{source:U});else W.push(U)}if(W.length===0)H.molecules.set($,{key:X,stringKey:$,dependsOn:_});let Q={type:"molecule_creation",key:X,provenance:G,timestamp:Date.now()};if($1(H)&&H.transactionMeta.phase==="building")H.transactionMeta.update.subEvents.push(Q);else H.on.moleculeCreation.next(Q);for(let U of W){let E=Y.disposalTraces.buffer.find((V)=>V?.key===U);Y.logger.error("\u274C","key",X,"allocation failed:",`Could not allocate to ${U} in store "${Y.config.name}".`,E?`
52
52
  ${U} was most recently disposed
53
53
  ${E.trace}`:`No previous disposal trace for ${U} was found.`)}return X}function K9(Y,Z,X,_){let G=`T$--${Z}==${X}++${_}`;return D4(Y,[X,_],G,"all"),G}function L4(Y,Z){let X=Q0(Z),_=Y.molecules.get(X);if(!_){let L=Y.disposalTraces.buffer.find((w)=>w?.key===X);Y.logger.error("\u274C","key",Z,"deallocation failed:",`Could not find allocation for ${X} in store "${Y.config.name}".`,L?`
54
54
  This state was most recently deallocated
55
- ${L.trace}`:`No previous disposal trace for ${X} was found.`);return}let G=Y.moleculeJoins.getRelatedKeys(_.key);if(G)for(let L of G){let w=Y.joins.get(L);if(w)w.relations.delete(_.key),w.molecules.delete(_.stringKey)}Y.moleculeJoins.delete(_.stringKey);let $=[],W=[],H={type:"molecule_disposal",key:_.key,values:W,provenance:$,timestamp:Date.now()},Q=Y0(Y);Q.molecules.delete(X);let J=$1(Q)&&Q.transactionMeta.phase==="building";if(J)Q.transactionMeta.update.subEvents.push(H);let U=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:_.stringKey});if(U)for(let[L,{source:w}]of U)if(w===_.stringKey){let M=a0(L);L4(Y,M)}else $.push(w);let E=Q.moleculeData.getRelatedKeys(_.stringKey);if(E)for(let L of E){let w=Q.families.get(L),M=q0(Y,w,_.key);W.push([w.key,M]),Q8(Y,M)}if(Q.moleculeGraph.delete(_.stringKey),Q.moleculeJoins.delete(_.stringKey),Q.moleculeData.delete(_.stringKey),!J)Q.on.moleculeDisposal.next(H);Q.molecules.delete(_.stringKey);let V=mz(new Error);Y.disposalTraces.add({key:X,trace:V})}function J8(Y,Z,X,_){let G=Q0(X),$=Y0(Y),W=$.molecules.get(G);if(!W){let V=Y.disposalTraces.buffer.find((L)=>L?.key===G);return Y.logger.error("\u274C","key",G,"claim failed:",`Could not allocate to ${G} in store "${Y.config.name}".`,V?`
55
+ ${L.trace}`:`No previous disposal trace for ${X} was found.`);return}let G=Y.moleculeJoins.getRelatedKeys(_.key);if(G)for(let L of G){let w=Y.joins.get(L);if(w)w.relations.delete(_.key),w.molecules.delete(_.stringKey)}Y.moleculeJoins.delete(_.stringKey);let $=[],W=[],H={type:"molecule_disposal",key:_.key,values:W,provenance:$,timestamp:Date.now()},Q=Y0(Y);Q.molecules.delete(X);let J=$1(Q)&&Q.transactionMeta.phase==="building";if(J)Q.transactionMeta.update.subEvents.push(H);let U=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:_.stringKey});if(U)for(let[L,{source:w}]of U)if(w===_.stringKey){let M=a0(L);L4(Y,M)}else $.push(w);let E=Q.moleculeData.getRelatedKeys(_.stringKey);if(E)for(let L of E){let w=Q.families.get(L),M=q0(Y,w,_.key),h=k1(Y,M);W.push([w.key,h]),Q8(Y,M)}if(Q.moleculeGraph.delete(_.stringKey),Q.moleculeJoins.delete(_.stringKey),Q.moleculeData.delete(_.stringKey),!J)Q.on.moleculeDisposal.next(H);Q.molecules.delete(_.stringKey);let V=mz(new Error);Y.disposalTraces.add({key:X,trace:V})}function J8(Y,Z,X,_){let G=Q0(X),$=Y0(Y),W=$.molecules.get(G);if(!W){let V=Y.disposalTraces.buffer.find((L)=>L?.key===G);return Y.logger.error("\u274C","key",G,"claim failed:",`Could not allocate to ${G} in store "${Y.config.name}".`,V?`
56
56
  ${G} was most recently disposed
57
57
  ${V.trace}`:`No previous disposal trace for ${G} was found.`),X}let H=Q0(Z),Q=$.molecules.get(H);if(!Q){let V=Y.disposalTraces.buffer.find((L)=>L?.key===H);return Y.logger.error("\u274C","key",X,"claim failed:",`Could not allocate to ${H} in store "${Y.config.name}".`,V?`
58
58
  ${H} was most recently disposed
59
- ${V.trace}`:`No previous disposal trace for ${H} was found.`),X}let J=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:W.stringKey}).filter(([,{source:V}])=>V!==G).map(([V])=>a0(V));if(_)$.moleculeGraph.delete(G);$.moleculeGraph.set({upstreamMoleculeKey:Q.stringKey,downstreamMoleculeKey:W.stringKey},{source:Q.stringKey});let U={type:"molecule_transfer",key:W.key,exclusive:Boolean(_),from:J,to:[Q.key],timestamp:Date.now()};if($1($)&&$.transactionMeta.phase==="building")$.transactionMeta.update.subEvents.push(U);return X}function uz(Y,Z,X){switch(Z){case"newValue":c9(Y,X);break;case"oldValue":Q8(X,Y.token);break}}function dz(Y,Z,X){switch(Z){case"newValue":Q8(X,Y.token);break;case"oldValue":if(c9(Y,X),Y.subType==="atom")X.valueMap.set(Y.token.key,Y.value);break}}function c9(Y,Z){let{family:X}=Y.token;if(X){let _=Z.families.get(X.key);if(_)b2(Z,_,a0(X.subKey),k2)}}function cz(Y,Z,X){switch(Z){case"newValue":D4(X,Y.provenance,Y.key);break;case"oldValue":L4(X,Y.key);break}}function lz(Y,Z,X){switch(Z){case"newValue":L4(X,Y.key);break;case"oldValue":{let _=Y.provenance.map(a0);D4(X,_,Y.key);for(let[G,$]of Y.values){let W=X.families.get(G);if(W){b2(X,W,Y.key,k2);let H=`${G}(${Q0(Y.key)})`;X.valueMap.set(H,$)}}}break}}function oz(Y,Z,X){switch(Z){case"newValue":for(let _ of Y.to)J8(X,_,Y.key,Y.exclusive?"exclusive":void 0);break;case"oldValue":{let _="exclusive";for(let G of Y.from)J8(X,G,Y.key,_),_=void 0}break}}function l9(Y,Z,X){let _=Y==="newValue"?Z.subEvents:[...Z.subEvents].reverse();for(let G of _)switch(G.type){case"atom_update":pz(Y,G,X);break;case"state_creation":uz(G,Y,X);break;case"state_disposal":dz(G,Y,X);break;case"molecule_creation":cz(G,Y,X);break;case"molecule_disposal":lz(G,Y,X);break;case"molecule_transfer":oz(G,Y,X);break;case"transaction_outcome":l9(Y,G,X);break}}function o9(Y,Z){return Y.transactionMeta.actionContinuities.getRelatedKey(Z)}function iz(Y,Z){return Y.transactionMeta.epoch.get(Z)}function rz(Y,Z){if(!y2(Y))return;let _=o9(Y,Z);if(_===void 0)return;return iz(Y,_)}function nz(Y,Z,X){if(!y2(Y))return;let G=o9(Y,Z);if(G!==void 0)Y.transactionMeta.epoch.set(G,X)}var sz=(Y,Z)=>{let X=Y0(Z),{parent:_}=X;if(_===null||!$1(X)||X.transactionMeta?.phase!=="building"){Z.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}X.transactionMeta.phase="applying",X.transactionMeta.update.output=Y,_.child=null,_.on.transactionApplying.next(X.transactionMeta);let{subEvents:G}=X.transactionMeta.update;if(Z.logger.info("\uD83D\uDEC4","transaction",X.transactionMeta.update.token.key,`Applying transaction with ${G.length} updates:`,G),l9("newValue",X.transactionMeta.update,_),y2(_))nz(_,X.transactionMeta.update.token.key,X.transactionMeta.update.epoch),j0(Z,{key:X.transactionMeta.update.token.key,type:"transaction"})?.subject.next(X.transactionMeta.update),Z.logger.info("\uD83D\uDEEC","transaction",X.transactionMeta.update.token.key,"Finished applying transaction.");else if($1(_))_.transactionMeta.update.subEvents.push(X.transactionMeta.update);_.on.transactionApplying.next(null)};function tz(Y){return{store:Y}}var o1=class extends Map{deleted=new Set;source;constructor(Y){super();this.source=Y}get(Y){if(super.has(Y))return super.get(Y);if(!this.deleted.has(Y)&&this.source.has(Y))return this.source.get(Y);return}set(Y,Z){return this.deleted.delete(Y),super.set(Y,Z)}hasOwn(Y){return super.has(Y)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){return this.deleted.add(Y),super.delete(Y)}},az=(Y,Z,X,_)=>{let G=Y0(Y),$={parent:G,child:null,on:G.on,loggers:G.loggers,logger:G.logger,config:G.config,atoms:new o1(G.atoms),atomsThatAreDefault:new Set(G.atomsThatAreDefault),families:new o1(G.families),joins:new o1(G.joins),operation:{open:!1},readonlySelectors:new o1(G.readonlySelectors),timelines:new o1(G.timelines),timelineTopics:new G1(G.timelineTopics.toJSON()),trackers:new Map,transactions:new o1(G.transactions),selectorAtoms:new G1(G.selectorAtoms.toJSON()),selectorGraph:new G1(G.selectorGraph.toJSON(),{makeContentKey:(...J)=>J.sort().join(":")}),writableSelectors:new o1(G.writableSelectors),valueMap:new o1(G.valueMap),defaults:G.defaults,disposalTraces:Y.disposalTraces.copy(),molecules:new o1(G.molecules),moleculeGraph:new G1(G.moleculeGraph.toJSON(),{makeContentKey:G.moleculeGraph.makeContentKey}),moleculeData:new G1(G.moleculeData.toJSON(),{makeContentKey:G.moleculeData.makeContentKey}),moleculeJoins:new G1(G.moleculeJoins.toJSON(),{makeContentKey:G.moleculeJoins.makeContentKey}),miscResources:new o1(G.miscResources)},W=rz(Y,Z.key),H={phase:"building",update:{type:"transaction_outcome",token:Z,id:_,epoch:W===void 0?NaN:W+1,timestamp:Date.now(),subEvents:[],params:X,output:void 0},toolkit:{get:(...J)=>l1(Q,...J),set:(...J)=>{B1(Q,...J)},reset:(...J)=>{D6(Q,...J)},run:(J,U=I9())=>PZ(Q,J,U),find:(...J)=>q0(Y,...J),json:(J)=>g2(Q,J),dispose:(...J)=>{Q8(Q,...J)},env:()=>tz(Q)}},Q=Object.assign($,{transactionMeta:H});return G.child=Q,Y.logger.info("\uD83D\uDEEB","transaction",Z.key,"Building transaction with params:",X),Q};function vZ(Y,Z){let{key:X}=Z,_=Y.transactions.has(X),G={key:X,type:"transaction",run:(H,Q)=>{let J=k1(G),U=az(Y,J,H,Q);try{let E=Y0(Y),{toolkit:V}=U.transactionMeta,L=Z.do(V,...H);return sz(L,E),L}catch(E){throw kz($),Y.logger.warn("\uD83D\uDCA5","transaction",X,"caught:",E),E}},install:(H)=>vZ(H,Z),subject:new W0},$=Y0(Y);$.transactions.set(X,G);let W=k1(G);if(!_)Y.on.transactionCreation.next(W);return W}function ez(Y,Z,X){return j0(Y,Z)(X)}var k2=Symbol("MUST_NOT_EXIST");function b2(Y,Z,X,_){let G,$;switch(_){case k2:$=!0;break;case void 0:$=!1;break}let W=Q0(X),H=Y.molecules.get(W);if(!H&&Y.config.lifespan==="immortal"){let Q=P9(Z,X,Pz);return Y.logger.warn("\uD83D\uDCA3","key",W,"was used to mint a counterfeit token for",Z.type,`"${Z.key}"`),Q}if($){G=ez(Y,Z,X);let Q=Y0(Y);if(G.family){if(y2(Q))switch(G.type){case"atom":case"mutable_atom":Y.on.atomCreation.next(G);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":Y.on.selectorCreation.next(G);break}else if($1(Q)&&Q.on.transactionApplying.state===null)Q.transactionMeta.update.subEvents.push({type:"state_creation",token:G,timestamp:Date.now()})}if(H)Q.moleculeData.set(W,Z.key)}else G=P9(Z,X);return G}var gZ=Symbol("OWN_OP"),YF=Symbol("JOIN_OP");function uZ(Y,Z,...X){let _,G,$,W,H,Q;if(X.length===2){if($=X[0],Q=X[1],"family"in $)if(W=mZ(Y,$),H=a0($.family.subKey),_=z8(Y,W,H),!_)G=b2(Y,W,H,k2),$=G;else $=_}else if(W=X[0],H=X[1],Q=X[2],_=z8(Y,W,H),!_)G=b2(Y,W,H,k2),$=G;else $=_;let J=Q===M6?"reset":"set",U;if(Z===gZ){let w=b9(Y,$);if(typeof w==="number"){let k=w,h=Y.on.operationClose.subscribe(`waiting to ${J} "${$.key}" at T-${k}`,function x(){h(),Y.logger.info("\uD83D\uDFE2",$.type,$.key,"resuming deferred",J,`from T-${k}`),uZ(Y,Z,$,Q)});return}U=w}else U=Y;if("counterfeit"in $&&"family"in $){let w=$.family.subKey,M=Y.disposalTraces.buffer.find((k)=>k?.key===w);Y.logger.error("\u274C",$.type,$.key,"could not be",J,"because key",w,"is not allocated.",M?`this key was previously disposed:${M.trace}`:"(no previous disposal trace found)");return}let E=j0(U,$),V;if(Q===M6)V=bz(U,E);else V=gz(U,E,Q);let L=Boolean(G);if(d9(U,E,V,L),Z===gZ)y9(U)}var i9=(Y,Z)=>Y0(Y).atoms.has(Z),ZF=(Y,Z)=>Y0(Y).writableSelectors.has(Z),XF=(Y,Z)=>Y0(Y).readonlySelectors.has(Z),_F=(Y,Z)=>i9(Y,Z)||ZF(Y,Z)||XF(Y,Z);function x9(Y,Z){return Y0(Y).selectorGraph.getRelationEntries({downstreamSelectorKey:Z}).filter(([_,{source:G}])=>G!==Z).map(([_,{source:G}])=>G).filter((_)=>_F(Y,_))}function A6(Y,Z,X=new Set){let _=x9(Y,Z),G=new Map;while(_.length>0){let $=_.pop();if(X.has($))continue;if(X.add($),i9(Y,$)){let W=Y.atoms.get($);G.set(W.key,W)}else _.push(...x9(Y,$))}return G}function GF(Y,Z,X,_,G){let $=Y0(Y),{type:W,key:H}=_;if(W==="atom"||W==="mutable_atom")$.selectorAtoms.set({selectorKey:X,atomKey:H}),Y.logger.info("\uD83D\uDD0D",Z,X,`discovers root atom "${H}"`);else{let Q=A6(Y,H,G);Y.logger.info("\uD83D\uDD0D",Z,X,`discovers root atoms: [ ${[...Q.values()].map((J)=>`"${J.key}"`).join(", ")} ]`);for(let{key:J}of Q.values())$.selectorAtoms=$.selectorAtoms.set({selectorKey:X,atomKey:J})}G.add(H)}function R6(Y,Z,X,_){return{get:(...G)=>{let $=Y0(Y),{token:W,familyToken:H,subKey:Q}=rZ(Y,...G),J;if("counterfeit"in W&&H&&Q){let U=j0(Y,H);J=k9(Y,W,U,Q)}else{let U=j0(Y,W);J=A4(Y,U)}return Y.logger.info("\uD83D\uDD0C",Z,X,`registers dependency ( "${W.key}" =`,J,")"),$.selectorGraph.set({upstreamSelectorKey:W.key,downstreamSelectorKey:X},{source:W.key}),GF(Y,Z,X,W,_),J},set:(...G)=>{let $=Y0(Y);uZ($,YF,...G)},find:(...G)=>q0(Y,...G),json:(G)=>g2(Y,G)}}function dZ(Y,Z,X){let _=Y0(Y),G=new W0,$=new Set,{key:W,const:H}=Z,Q="readonly_held_selector",{get:J,find:U,json:E}=R6(_,"readonly_held_selector",W,$),L={...Z,type:"readonly_held_selector",subject:G,getFrom:(M)=>{let k=M.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[h,{source:x}]of k)if(x!==W)M.selectorGraph.delete(h,W);return M.selectorAtoms.delete(W),Z.get({get:J,find:U,json:E},H),W2(M,L,H),$.clear(),H},install:(M)=>dZ(M,Z,X)};if(X)L.family=X;_.readonlySelectors.set(W,L),Y.logger.info("\u2728","readonly_held_selector",W,"=",H);let w={key:W,type:"readonly_held_selector"};if(X)w.family=X;return w}function cZ(Y,Z,X){let _=Y0(Y),G=new W0,$=new Set,W=Z.key,H="readonly_pure_selector",{get:Q,find:J,json:U}=R6(_,"readonly_pure_selector",W,$),V={...Z,type:"readonly_pure_selector",subject:G,getFrom:()=>{let w=Y0(Y),M=w.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[x,{source:m}]of M)if(m!==W)w.selectorGraph.delete(x,W);w.selectorAtoms.delete(W);let k=Z.get({get:Q,find:J,json:U}),h=W2(w,V,k);return Y.logger.info("\u2728","readonly_pure_selector",W,"=",h),$.clear(),h},install:(w)=>cZ(w,Z,X)};if(X)V.family=X;_.readonlySelectors.set(W,V);let L={key:W,type:"readonly_pure_selector"};if(X)L.family=X;return L}function lZ(Y,Z,X){let _=Y0(Y),G=new W0,$=new Set,{key:W,const:H}=Z,Q="writable_held_selector",J=R6(_,"writable_held_selector",W,$),{find:U,get:E,json:V}=J,L={find:U,get:E,json:V},k={...Z,type:"writable_held_selector",subject:G,getFrom:(x)=>{let m=x.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[K,{source:I}]of m)if(I!==W)x.selectorGraph.delete(K,W);return x.selectorAtoms.delete(W),Z.get(L,H),W2(x,k,H),Y.logger.info("\u2728","writable_held_selector",W,"=",H),$.clear(),H},setSelf:()=>{Z.set(J,H)},install:(x)=>lZ(x,Z,X)};if(X)k.family=X;_.writableSelectors.set(W,k);let h={key:W,type:"writable_held_selector"};if(X)h.family=X;return h}function oZ(Y,Z,X){let _=Y0(Y),G=new W0,$=new Set,W=Z.key,H="writable_pure_selector",Q=R6(_,"writable_pure_selector",W,$),{find:J,get:U,json:E}=Q,V={find:J,get:U,json:E},L=(x)=>{let m=x.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[q,{source:C}]of m)if(C!==W)x.selectorGraph.delete(q,W);x.selectorAtoms.delete(W);let K=Z.get(V),I=W2(x,M,K);return Y.logger.info("\u2728","writable_pure_selector",W,"=",I),$.clear(),I},M={...Z,type:"writable_pure_selector",subject:G,getFrom:L,setSelf:(x)=>{Z.set(Q,x)},install:(x)=>oZ(x,Z,X)};if(X)M.family=X;_.writableSelectors.set(W,M);let k=L(_);Y.logger.info("\u2728",M.type,M.key,"=",k);let h={key:W,type:"writable_pure_selector"};if(X)h.family=X;return h}function B9(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X){let $=lZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(_){let $=dZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(X){let $=oZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}let G=cZ(Y,Z,void 0);return Y.on.selectorCreation.next(G),G}function $F(Y,Z){let X=Y0(Y),{key:_,type:G,family:$}=Z;if(!$)Y.logger.error("\u274C",G,_,"Standalone selectors cannot be disposed.");else{if(X.molecules.get($.subKey))X.moleculeData.delete($.subKey,$.key);let H;switch(Z.type){case"writable_held_selector":X.writableSelectors.delete(_),H={key:$.key,type:"writable_held_selector_family"},j0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"writable_pure_selector":X.writableSelectors.delete(_),H={key:$.key,type:"writable_pure_selector_family"},j0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"readonly_held_selector":X.readonlySelectors.delete(_),H={key:$.key,type:"readonly_held_selector_family"},j0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"readonly_pure_selector":X.readonlySelectors.delete(_),H={key:$.key,type:"readonly_pure_selector_family"},j0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break}if(X.valueMap.delete(_),X.selectorAtoms.delete(_),X.selectorGraph.delete(_),X.moleculeData.delete($.key,$.subKey),Y.logger.info("\uD83D\uDD25",Z.type,_,"deleted"),$1(X)&&X.transactionMeta.phase==="building")X.transactionMeta.update.subEvents.push({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});else Y.on.selectorDisposal.next(Z)}}function h2(Y,Z,X){let _=Z.key,G="readonly_pure_selector_family",$={key:_,type:"readonly_pure_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","readonly_pure_selector_family",_,`Overwriting an existing ${G2[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 W0,J=Object.assign((U)=>{let E=Q0(U),V={key:_,subKey:E},L=`${_}(${E})`,w=Y0(Y),M=cZ(w,{key:L,get:Z.get(U)},V);return H.next({type:"state_creation",token:M,timestamp:Date.now()}),M},$,{internalRoles:X,subject:H,install:(U)=>h2(U,Z),default:(U)=>{return Z.get(U)({get:(...V)=>l1(Y,...V),find:(...V)=>q0(Y,...V),json:(V)=>g2(Y,V)})}});return Y.families.set(_,J),$}function M4(Y,Z,X){let _={key:Z.key,type:"atom_family"},G=Y.families.get(Z.key);if(G)Y.logger.error("\u2757","atom_family",Z.key,`Overwriting an existing ${G2[G.type]} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new W0,H=Object.assign((Q)=>{let J=Q0(Q),U={key:Z.key,subKey:J},E=`${Z.key}(${J})`,V=Y0(Y),L=Z.default,w={key:E,default:L instanceof Function?()=>L(Q):L};if(Z.effects)w.effects=Z.effects(Q);let M=f2(V,w,U);return $.next({type:"state_creation",token:M,timestamp:Date.now()}),M},_,{default:Z.default,subject:$,install:(Q)=>M4(Q,Z),internalRoles:X});if(Y.families.set(Z.key,H),Z.default instanceof Function===!1)Y.defaults.set(Z.key,Z.default);return _}function r9(Y,Z,X){let _=Z.key,G="readonly_held_selector_family",$={key:_,type:"readonly_held_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","readonly_held_selector_family",_,`Overwriting an existing ${G2[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 W0,J=Object.assign((U)=>{let E=Q0(U),V={key:_,subKey:E},L=`${_}(${E})`,w=Y0(Y),M=dZ(w,{key:L,const:Z.const(U),get:Z.get(U)},V);return H.next({type:"state_creation",token:M,timestamp:Date.now()}),M},$,{internalRoles:X,subject:H,install:(U)=>r9(U,Z),default:Z.const});return Y.families.set(_,J),$}function n9(Y,Z,X){let _=Z.key,G="writable_held_selector_family",$={key:_,type:"writable_held_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","writable_held_selector_family",_,`Overwriting an existing ${G2[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 W0,J=Object.assign((U)=>{let E=Q0(U),V={key:_,subKey:E},L=`${_}(${E})`,w=Y0(Y),M=lZ(w,{key:L,const:Z.const(U),get:Z.get(U),set:Z.set(U)},V);return H.next({type:"state_creation",token:M,timestamp:Date.now()}),M},$,{internalRoles:X,subject:H,install:(U)=>n9(U,Z),default:Z.const});return Y.families.set(_,J),$}function iZ(Y,Z,X){let _=Z.key,G="writable_pure_selector_family",$={key:_,type:"writable_pure_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","writable_pure_selector_family",_,`Overwriting an existing ${G2[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 W0,J=Object.assign((U)=>{let E=Q0(U),V={key:_,subKey:E},L=`${_}(${E})`,w=Y0(Y),M=oZ(w,{key:L,get:Z.get(U),set:Z.set(U)},V);return H.next({type:"state_creation",token:M,timestamp:Date.now()}),M},$,{internalRoles:X,subject:H,install:(U)=>iZ(U,Z),default:(U)=>{return Z.get(U)({get:(...V)=>l1(Y,...V),find:(...V)=>q0(Y,...V),json:(V)=>g2(Y,V)})}});return Y.families.set(_,J),$}function xZ(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X)return n9(Y,Z,void 0);if(_)return r9(Y,Z,void 0);if(X)return iZ(Y,Z);return h2(Y,Z)}function z8(Y,Z,X){let _=Q0(X),G=`${Z.key}(${_})`,$=Y0(Y),W;switch(Z.type){case"atom_family":case"mutable_atom_family":W=$.atoms.get(G);break;case"writable_held_selector_family":case"writable_pure_selector_family":W=$.writableSelectors.get(G);break;case"readonly_held_selector_family":case"readonly_pure_selector_family":W=$.readonlySelectors.get(G);break}if(W)return k1(W);return W}function q0(Y,Z,X){j0(Y,Z);let _=z8(Y,Z,X);if(_)return _;return b2(Y,Z,X)}function Q8(Y,...Z){let X;if(Z.length===1)X=Z[0];else{let _=Z[0],G=Z[1];X=q0(Y,_,G)}try{j0(Y,X)}catch(_){Y.logger.error("\u274C",X.type,X.key,`could not be disposed because it was not found in the store "${Y.config.name}".`);return}switch(X.type){case"atom":case"mutable_atom":s9(Y,X);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":$F(Y,X);break}}function rZ(Y,...Z){let X,_,G,$,W;if(Z.length===1){if(W=Z[0],"family"in W){if(G=mZ(Y,W),j0(Y,G),$=a0(W.family.subKey),X=z8(Y,G,$),"counterfeit"in W)return{token:W,familyToken:G,subKey:$,isNew:!1};if(!X)_=b2(Y,G,$,k2),W=_;else W=X}}else if(G=Z[0],$=Z[1],X=z8(Y,G,$),!X)_=b2(Y,G,$,k2),W=_;else W=X;return{token:W,familyToken:G,subKey:$,isNew:Boolean(_)}}function l1(Y,...Z){let{token:X,familyToken:_,subKey:G}=rZ(Y,...Z);if("counterfeit"in X&&_&&G){let W=j0(Y,_);return k9(Y,X,W,G)}let $=j0(Y,X);return A4(Y,$)}var f9=(Y,Z,X)=>{return X.subject.subscribe(`${Z.type}:${Z.key}`,(_)=>{Y.logger.info("\uD83D\uDCE2",Z.type,Z.key,"root",X.key,"went",_.oldValue,"->",_.newValue);let G=fz(Y,Z),$=A4(Y,Z);Y.logger.info("\u2728",Z.type,Z.key,"went",G,"->",$),Z.subject.next({newValue:$,oldValue:G})})};function F8(Y,Z,X,_){function G(E){if(Y.operation.open){let V=Y.on.operationClose.subscribe(`state subscription ${X}`,()=>{V(),_(E)})}else _(E)}rZ(Y,Z);let $=j0(Y,Z);Y.logger.info("\uD83D\uDC40",$.type,$.key,`Adding subscription "${X}"`);let W=$.type==="writable_pure_selector"||$.type==="readonly_pure_selector",H=new Map,Q=G;if(W){A4(Y,$);for(let[E,V]of A6(Y,$.key))H.set(E,f9(Y,$,V));Q=function E(V){let L=A6(Y,$.key);for(let[w,M]of H)if(L.get(w))L.delete(w);else M(),H.delete(w);for(let[w,M]of L)H.set(w,f9(Y,$,M));G(V)}}let J=$.subject.subscribe(X,Q);return()=>{Y.logger.info("\uD83D\uDE48",$.type,$.key,`Removing subscription "${X}"`),J();for(let E of H.values())E()}}function j0(Y,Z){let X,_=Y;while(_!==null){switch(Z.type){case"atom":case"mutable_atom":X=_.atoms.get(Z.key);break;case"writable_pure_selector":case"writable_held_selector":X=_.writableSelectors.get(Z.key);break;case"readonly_pure_selector":case"readonly_held_selector":X=_.readonlySelectors.get(Z.key);break;case"atom_family":case"mutable_atom_family":case"writable_pure_selector_family":case"readonly_pure_selector_family":case"writable_held_selector_family":case"readonly_held_selector_family":X=_.families.get(Z.key);break;case"timeline":X=_.timelines.get(Z.key);break;case"transaction":X=_.transactions.get(Z.key);break}if(X)return X;_=_.child}throw new u9(Z,Y)}var WF=(Y,Z,X,_)=>{let G=j0(Y,Z);Y.logger.info("\uD83D\uDC40","timeline",Z.key,`Adding subscription "${X}"`);let $=G.subject.subscribe(X,_);return()=>{Y.logger.info("\uD83D\uDE48","timeline",Z.key,`Removing subscription "${X}" from timeline`),$()}};var nZ=class{initializeSignalAtom(Y,Z){let X=`*${Y.key}`;Z.atoms.delete(X),Z.valueMap.delete(X);let _=Y.family?{key:`*${Y.family.key}`,subKey:Y.family.subKey}:void 0,G=f2(Z,{key:X,default:null},_,["tracker:signal"]);if(Z.parent?.valueMap.has(X)){let $=Z.parent.valueMap.get(X);Z.valueMap.set(X,$)}return G}unsubscribeFromInnerValue;unsubscribeFromState;captureSignalsFromCore(Y,Z,X){let _=Y.key,G=X.config.name,$=$1(X)?X.transactionMeta.update.token.key:"main",W=`tracker:${G}:${$}:${_}`,H=(J)=>{B1(X,Z,J)},Q=l1(X,Y);this.unsubscribeFromInnerValue=Q.subscribe(W,H),this.unsubscribeFromState=F8(X,Y,W,function J(U){if(U.newValue!==U.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=U.newValue.subscribe(W,H)}.bind(this))}supplySignalsToCore(Y,Z,X){let _=`tracker:${X.config.name}:${$1(X)?X.transactionMeta.update.token.key:"main"}:${Y.key}`;F8(X,Z,_,function G({newValue:$,oldValue:W}){let H=X.timelineTopics.getRelatedKey(Z.key);if(H&&X.timelines.get(H)?.timeTraveling){let E=WF(X,{key:H,type:"timeline"},_,function V(L){E(),B1(X,Y,(w)=>{if(L==="redo"&&$)w.do($);else if(L==="undo"&&W)w.undo(W);return w})});return}let Q=l1(X,Y),J=Q.getUpdateNumber($),U=J-Q.cacheUpdateNumber;if($&&U===1)B1(X,Y,(E)=>(E.do($),E));else{let E=Q.cacheUpdateNumber+1;X.logger.info("\u274C","mutable_atom",Y.key,"could not be updated. Expected update number",E,"but got",J)}})}mutableAtomToken;latestSignalToken;[Symbol.dispose];constructor(Y,Z){let X=Y0(Z),_=this.initializeSignalAtom(Y,X);this.mutableAtomToken=Y,this.latestSignalToken=_,this.captureSignalsFromCore(Y,_,X),this.supplySignalsToCore(Y,_,X),X.trackers.set(Y.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),X.trackers.delete(Y.key)}}};function L6(Y,Z,X){Y.logger.info("\uD83D\uDD28","atom",Z.key,`creating in store "${Y.config.name}"`);let _=Y0(Y),{key:G}=Z,$=_.atoms.get(G),W="mutable_atom";if($&&$.type===W)return Y.logger.error("\u274C",W,G,"Tried to create atom, but it already exists in the store."),k1($);let H=new W0,Q={...Z,type:W,install:(U)=>{return U.logger.info("\uD83D\uDEE0\uFE0F","atom",G,`installing in store "${U.config.name}"`),L6(U,Z,X)},subject:H};if(X)Q.family=X;_.atoms.set(Q.key,Q);let J=k1(Q);if(Z.effects){let U=0,E=[];for(let V of Z.effects){let L=V({resetSelf:()=>{D6(Y,J)},setSelf:(w)=>{B1(Y,J,w)},onSet:(w)=>F8(Y,J,`effect[${U}]`,w)});if(L)E.push(L);++U}Q.cleanup=()=>{for(let V of E)V()}}if(new nZ(J,Y),!X)B9(Y,{key:`${G}:JSON`,get:({get:U})=>U(J).toJSON(),set:({set:U},E)=>{U(J,Z.class.fromJSON(E))}});return Y.on.atomCreation.next(J),J}var HF=class{trackers=new Map;latestSignalAtoms;mutableAtoms;constructor(Y,Z){let X=M4(Z,{key:`*${Y.key}`,default:null},["mutable","updates"]);this.latestSignalAtoms=j0(Z,X),this.mutableAtoms=Y;let _=(G)=>{let{type:$,token:W}=G;if(W.family){let H=a0(W.family.subKey);switch($){case"state_creation":this.trackers.set(H,new nZ(W,Z));break;case"state_disposal":{let Q=this.trackers.get(H);if(Q)Q[Symbol.dispose](),this.trackers.delete(H)}}}};this.mutableAtoms.subject.subscribe(`store=${Z.config.name}::tracker-atom-family`,_)}};function fZ(Y,Z,X){let _={key:Z.key,type:"mutable_atom_family"},G=Y.families.get(Z.key);if(G)Y.logger.error("\u2757","mutable_atom_family",Z.key,`Overwriting an existing ${G2[G.type]} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new W0,H=Object.assign((Q)=>{let J=Q0(Q),U={key:Z.key,subKey:J},E=`${Z.key}(${J})`,V=Y0(Y),L={key:E,class:Z.class};if(Z.effects)L.effects=Z.effects(Q);let w=L6(V,L,U);return $.next({type:"state_creation",token:w,timestamp:Date.now()}),w},_,{class:Z.class,subject:$,install:(Q)=>fZ(Q,Z),internalRoles:X});return Y.families.set(Z.key,H),iZ(Y,{key:`${Z.key}:JSON`,get:(Q)=>({get:J})=>J(_,Q).toJSON(),set:(Q)=>({set:J},U)=>{J(_,Q,Z.class.fromJSON(U))}},["mutable","json"]),new HF(H,Y),_}var h9=(Y,Z)=>{let X=Y0(Z),_=`${Y.key}:JSON`;return X.families.get(_)},g2=(Y,Z)=>{if(Z.family){let _=Y0(Y),$={key:`${Z.family.key}:JSON`,type:"writable_pure_selector_family"},W=j0(_,$),H=a0(Z.family.subKey);return q0(Y,W,H)}return{type:"writable_pure_selector",key:`${Z.key}:JSON`}};var sZ=(Y)=>{let X={type:"atom",key:`*${Y.key}`};if(Y.family)X.family={key:`*${Y.family.key}`,subKey:Y.family.subKey};return X};function hZ(Y){return typeof Y==="object"&&Y!==null&&"do"in Y&&"undo"in Y&&"subscribe"in Y&&"cacheUpdateNumber"in Y&&"getUpdateNumber"in Y&&"READONLY_VIEW"in Y&&"toJSON"in Y}var C9=class{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;writableSelectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new G1({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new G1({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new G1({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new G1({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new Sz(100);molecules=new Map;moleculeJoins=new G1({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeGraph=new G1({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeData=new G1({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});miscResources=new Map;on={atomCreation:new W0,atomDisposal:new W0,selectorCreation:new W0,selectorDisposal:new W0,timelineCreation:new W0,transactionCreation:new W0,transactionApplying:new xz(null),operationClose:new W0,moleculeCreation:new W0,moleculeDisposal:new W0};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new R9("warn",(Y,Z,X)=>!w4(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},y2(Z))this.transactionMeta={epoch:new Map(Z?.transactionMeta.epoch),actionContinuities:new G1(Z?.transactionMeta.actionContinuities.toJSON())};for(let[,_]of Z.families){if(_.internalRoles?.includes("mutable")||_.internalRoles?.includes("join"))continue;_.install(this)}let X=new Set;for(let[,_]of Z.atoms){if(X.has(_.key))continue;if(_.install(this),_.type==="mutable_atom"){let G=g2(Z,_),$=sZ(_);X.add(G.key),X.add($.key)}}for(let[,_]of Z.readonlySelectors)_.install(this);for(let[,_]of Z.writableSelectors){if(X.has(_.key))continue;_.install(this)}for(let[,_]of Z.transactions)_.install(this);for(let[,_]of Z.timelines)_.install(this)}}},o0={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new C9({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function f2(Y,Z,X,_){let{key:$}=Z;Y.logger.info("\uD83D\uDD28","atom",$,`creating in store "${Y.config.name}"`);let W=Y0(Y),H=W.atoms.get($);if(H&&H.type==="atom")return Y.logger.error("\u274C","atom",$,"Tried to create atom, but it already exists in the store."),k1(H);let Q=new W0,J={...Z,type:"atom",install:(E)=>{return E.logger.info("\uD83D\uDEE0\uFE0F","atom",$,`installing in store "${E.config.name}"`),f2(E,Z,X)},subject:Q};if(X)J.family=X;if(_)J.internalRoles=_;W.atoms.set($,J);let U=k1(J);if(Z.effects){let E=0,V=[];for(let L of Z.effects){let w=L({resetSelf:()=>{D6(Y,U)},setSelf:(M)=>{B1(Y,U,M)},onSet:(M)=>F8(Y,U,`effect[${E}]`,M)});if(w)V.push(w);++E}J.cleanup=()=>{for(let L of V)L()}}return Y.on.atomCreation.next(U),U}function s9(Y,Z){let X=Y0(Y),{key:_,family:G}=Z,$=j0(X,Z);if(!G)Y.logger.error("\u274C","atom",_,"Standalone atoms cannot be disposed.");else{$.cleanup?.();let W=Y.valueMap.get($.key),H=mZ(Y,Z),J=j0(Y,H).subject,U={type:"state_disposal",subType:"atom",token:Z,value:W,timestamp:Date.now()};J.next(U);let E=$1(X);if(X.atoms.delete(_),X.valueMap.delete(_),X.selectorAtoms.delete(_),X.atomsThatAreDefault.delete(_),X.moleculeData.delete(G.key,G.subKey),Y.timelineTopics.delete(_),Z.type==="mutable_atom"){let V=sZ(Z);s9(Y,V),Y.trackers.delete(_)}if(Y.logger.info("\uD83D\uDD25","atom",_,"deleted"),E&&X.transactionMeta.phase==="building"){let V=X.transactionMeta.update.subEvents.at(-1);if(!(V?.type==="molecule_disposal"&&V.values.some(([M])=>M===$.family?.key)))X.transactionMeta.update.subEvents.push(U)}else Y.on.atomDisposal.next(Z)}}function JF(Y,Z){if("internalRoles"in Y===!1)return!1;return Y.internalRoles.includes(Z)}function T0(Y){return Y[0].toUpperCase()+Y.slice(1)}var t9=class{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(Y,Z){let X=this.toolkit;this.toolkit=Y,Z(this),this.toolkit=X}store;realm;[Symbol.dispose](){}constructor(Y,Z,X=o0.STORE){this.store=X,this.realm=new N9(X),this.options=Y,this.defaultContent=Z,this.store.miscResources.set(`join:${Y.key}`,this),this.realm.allocate("root",Y.key),this.toolkit={get:(...K)=>l1(X,...K),set:(...K)=>{B1(X,...K)},find:(...K)=>q0(X,...K),json:(K)=>g2(X,K)};let _=Y.between[0],G=Y.between[1],$=fZ(X,{key:`${Y.key}/relatedKeys`,class:$2},["join","relations"]);this.core={relatedKeysAtoms:$};let W=({get:K},I)=>K($,I),H=({set:K},I,q)=>{if(!this.store.molecules.has(Q0(I)))this.realm.allocate(Y.key,I);K($,I,(C)=>C.add(q)),K($,q,(C)=>C.add(I))},Q=({set:K},I,q)=>{K($,I,(C)=>{return C.delete(q),C}),K($,q,(C)=>{return C.delete(I),C})},J=(K,I,q)=>{let{find:C,get:g,set:n}=K,T=C($,I),t=g(T);for(let p of t){if(q.includes(p))continue;n($,p,(z0)=>{return z0.delete(I),z0})}n(T,(p)=>{return p.transaction((a)=>{a.clear();for(let z0 of q){let h0=W(K,z0),J1=h0.has(I);if(this.relations.cardinality==="1:n"){let n1=[];for(let B of h0){if(B===I)continue;let u=W(K,B);if(u.delete(z0),u.size===0)n1.push(B)}if(!J1&&h0.size>0)h0.clear();for(let B of n1){let u=[z0,B].sort(),G0=`"${u[0]}:${u[1]}"`;this.molecules.delete(G0)}}if(!J1)h0.add(I);a.add(z0)}return!0}),p})},U=(K,I,q)=>{let{set:C}=K;C($,I,(g)=>{return g.transaction((n)=>{for(let T of q)n.add(T);return!0}),g});for(let g of q)C($,g,(n)=>{return n.add(I),n});return!0},E=(K,I,q)=>{let C=W(K,I);return q?C.has(q):C.size>0},V={getRelatedKeys:(K)=>W(this.toolkit,K),addRelation:(K,I)=>{this.store.moleculeJoins.set(K,Y.key),this.store.moleculeJoins.set(I,Y.key),H(this.toolkit,K,I)},deleteRelation:(K,I)=>{Q(this.toolkit,K,I)},replaceRelationsSafely:(K,I)=>{J(this.toolkit,K,I)},replaceRelationsUnsafely:(K,I)=>{U(this.toolkit,K,I)},has:(K,I)=>E(this.toolkit,K,I)},L,w;if(Z){w=M4(X,{key:`${Y.key}/content`,default:Z},["join","content"]);let K=({get:C},g)=>C(w,g),I=({set:C},g,n)=>{C(w,g,n)};L=Object.assign(V,{getContent:(C)=>{return K(this.toolkit,C)},setContent:(C,g)=>{I(this.toolkit,C,g)},deleteContent:(C)=>{this.realm.deallocate(C)}})}else L=V;let M=new G1(Y,{externalStore:L,isAType:Y.isAType,isBType:Y.isBType,makeContentKey:(...K)=>{let[I,q]=K,C=K.sort(),g=`${C[0]}:${C[1]}`,n=X.molecules.get(Q0(I)),T=X.molecules.get(Q0(q));if(!n)this.realm.allocate(Y.key,I);if(!T)this.realm.allocate(Y.key,q);return this.realm.allocate(I,g,"all"),this.realm.claim(q,g),this.store.moleculeJoins.set(g,Y.key),g}}),k=()=>h2(X,{key:`${Y.key}/singleRelatedKey`,get:(K)=>({get:I})=>{let q=I($,K);for(let C of q)return C;return null}},["join","keys"]),h=()=>{return h2(X,{key:`${Y.key}/multipleRelatedKeys`,get:(K)=>({get:I})=>{let q=h9($,X);return I(q,K).members}},["join","keys"])},x=()=>h2(X,{key:`${Y.key}/singleRelatedEntry`,get:(K)=>({get:I})=>{let q=I($,K);for(let C of q){let g=M.isAType?.(K)?K:void 0,n=g===void 0?K:void 0;g??=C,n??=C;let T=M.makeContentKey(g,n),t=I(w,T);return[C,t]}return null}},["join","entries"]),m=()=>h2(X,{key:`${Y.key}/multipleRelatedEntries`,get:(K)=>({get:I})=>{let q=h9($,X);return I(q,K).members.map((g)=>{let n=M.isAType?.(K)?K:void 0,T=n===void 0?K:void 0;n??=g,T??=g;let t=M.makeContentKey(n,T),p=I(w,t);return[g,p]})}},["join","entries"]);switch(Y.cardinality){case"1:1":{let K=k(),I=`${_}KeyOf${T0(G)}`,q=`${G}KeyOf${T0(_)}`,C={[I]:K,[q]:K},g;if(Z){let n=x(),T=`${_}EntryOf${T0(G)}`,t=`${G}EntryOf${T0(_)}`,p={[T]:n,[t]:n};g=Object.assign(C,p)}else g=C;this.relations=M,this.states=g;break}case"1:n":{let K=k(),I=h(),q=`${_}KeyOf${T0(G)}`,C=`${G}KeysOf${T0(_)}`,g={[q]:K,[C]:I},n;if(Z){let T=x(),t=m(),p=`${_}EntryOf${T0(G)}`,a=`${G}EntriesOf${T0(_)}`,z0={[p]:T,[a]:t};n=Object.assign(g,z0)}else n=g;this.relations=M,this.states=n;break}case"n:n":{let K=h(),I=`${_}KeysOf${T0(G)}`,q=`${G}KeysOf${T0(_)}`,C={[I]:K,[q]:K},g;if(Z){let n=m(),T=`${_}EntriesOf${T0(G)}`,t=`${G}EntriesOf${T0(_)}`,p={[T]:n,[t]:n};g=Object.assign(C,p)}else g=C;this.relations=M,this.states=g}}}};function q9(Y,Z,X){return Y.joins.set(Z.key,new t9(Z,X,Y)),{key:Z.key,type:"join",a:Z.between[0],b:Z.between[1],cardinality:Z.cardinality}}function tZ(Y,Z){let X=Z.joins.get(Y.key);if(X===void 0){let G=o0.STORE.joins.get(Y.key);if(G===void 0)throw new Error(`Join "${Y.key}" not found in store "${Z.config.name}"`);X=new t9(G.options,G.defaultContent,Z),Z.joins.set(Y.key,X)}return X}function U8(Y,Z,X){let _=tZ(Y,X),G=Y0(X);if($1(G)){let{toolkit:$}=G.transactionMeta;_.transact($,({relations:W})=>{Z(W)})}else Z(_.relations)}function j9(Y,Z,X){let _=tZ(Y,X),G;switch(Y.cardinality){case"1:1":{let $=`${Y.a}KeyOf${T0(Y.b)}`,W=`${Y.b}KeyOf${T0(Y.a)}`;G={get[$](){let Q=_.states[$];return q0(X,Q,Z)},get[W](){let Q=_.states[W];return q0(X,Q,Z)}};let H=`${Y.a}EntryOf${T0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntryOf${T0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return q0(X,J,Z)},get[Q](){let J=_.states[Q];return q0(X,J,Z)}})}break}case"1:n":{let $=`${Y.a}KeyOf${T0(Y.b)}`,W=`${Y.b}KeysOf${T0(Y.a)}`;G={get[$](){let Q=_.states[$];return q0(X,Q,Z)},get[W](){let Q=_.states[W];return q0(X,Q,Z)}};let H=`${Y.a}EntryOf${T0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntriesOf${T0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return q0(X,J,Z)},get[Q](){let J=_.states[Q];return q0(X,J,Z)}})}break}case"n:n":{let $=`${Y.a}KeysOf${T0(Y.b)}`,W=`${Y.b}KeysOf${T0(Y.a)}`;G={get[$](){let Q=_.states[$];return q0(X,Q,Z)},get[W](){let Q=_.states[W];return q0(X,Q,Z)}};let H=`${Y.a}EntriesOf${T0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntriesOf${T0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return q0(X,J,Z)},get[Q](){let J=_.states[Q];return q0(X,J,Z)}})}}}return G}function S9(Y,Z){return tZ(Y,Z).core.relatedKeysAtoms}function w4(Y){return Y.startsWith("\uD83D\uDD0D ")}var QF=(Y)=>{return f2(Y,{key:"\uD83D\uDD0D Atom Token Index",default:()=>{let Z=new Map;for(let[X,_]of Y.atoms){if(w4(X))continue;let G=k1(_);if(_.family){let $=Z.get(_.family.key);if(!$||!("familyMembers"in $))$={key:_.family.key,familyMembers:new Map},Z.set(_.family.key,$);$.familyMembers.set(_.family.subKey,G)}else Z.set(X,G)}return Z},effects:[({setSelf:Z})=>{Y.on.atomCreation.subscribe("introspection",(X)=>{if(w4(X.key))return;Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W===void 0||!("familyMembers"in W))W={key:G,familyMembers:new Map},_.set(G,W);W.familyMembers.set($,X)}else _.set(X.key,X);return new Map(_)})}),Y.on.atomDisposal.subscribe("introspection",(X)=>{Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W&&"familyMembers"in W){if(W.familyMembers.delete($),W.familyMembers.size===0)_.delete(G)}}return new Map(_)})})}]},void 0)},UF=(Y)=>{return f2(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(w4(_))continue;let $=k1(G);if(G.family){let W=Z.get(G.family.key);if(!W||!("familyMembers"in W))W={key:G.family.key,familyMembers:new Map},Z.set(G.family.key,W);W.familyMembers.set(G.family.subKey,$)}else Z.set(_,$)}return Z},effects:[({setSelf:Z})=>{Y.on.selectorCreation.subscribe("introspection",(X)=>{if(w4(X.key))return;Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W===void 0||!("familyMembers"in W))W={key:G,familyMembers:new Map},_.set(G,W);W.familyMembers.set($,X)}else _.set(X.key,X);return new Map(_)})}),Y.on.selectorDisposal.subscribe("introspection",(X)=>{Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W&&"familyMembers"in W){if(W.familyMembers.delete($),W.familyMembers.size===0)_.delete(G)}}else _.delete(X.key);return new Map(_)})})}]},void 0)};var aZ=class{supported;constructor(Y){this.supported=Y}refine(Y){for(let[Z,X]of Object.entries(this.supported))try{if(X(Y)===!0&&X!==Boolean)return{type:Z,data:Y}}catch(_){try{if(Y instanceof X)return{type:Z,data:Y}}catch(G){}}return null}},e9=new aZ({number:(Y)=>typeof Y==="number",string:(Y)=>typeof Y==="string",boolean:(Y)=>typeof Y==="boolean",null:(Y)=>Y===null});function Y7(Y){if(!Y)return!1;return Object.getPrototypeOf(Y)===Object.prototype}var Z7=new aZ({object:Y7,array:(Y)=>Array.isArray(Y)}),zF=new aZ({...e9.supported,...Z7.supported}),N6=(Y)=>{if(Y===void 0)return"undefined";let Z=zF.refine(Y);if(Z)return Z.type;return Object.getPrototypeOf(Y).constructor.name};var sT=class Y{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(Z=o0.STORE){this.store=Z,this.atomIndex=QF(this.store),this.selectorIndex=UF(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(Z=Y.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let X=SZ(this.atomIndex),_=SZ(this.selectorIndex),G=[...X.values()].filter((Q)=>("familyMembers"in Q)),$=[..._.values()].filter((Q)=>("familyMembers"in Q)),W=performance.now(),H=[];if(Z.atomFamilies)for(let Q of G){let J=Q.familyMembers.values();for(let U of J){let V=this.statesCreatedAt.get(U.key)??this.auditorCreatedAt,L=W-V;H.push([U,L])}}if(Z.selectorFamilies)for(let Q of $){let J=Q.familyMembers.values();for(let U of J){let V=this.statesCreatedAt.get(U.key)??this.auditorCreatedAt,L=W-V;H.push([U,L])}}return H}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}},a9=(Y,Z)=>{let X=(_,G)=>{let W=((Q,J)=>{let U=Z(Q,J);if(U)return U;return null})(_,G);if(W?.jobComplete??W?.pathComplete)return W;let H=Array.isArray(G)?G.map((Q,J)=>[J,Q]):Y7(G)?Object.entries(G):[];for(let[Q,J]of H){let U=X([..._,Q],J);if(U?.jobComplete)return U}return{}};X([],Y)};function FF(Y,Z){return{summary:`${Y<Z?"+":"-"}${Math.abs(Y-Z)} (${Y} \u2192 ${Z})`}}function EF(Y,Z){return{summary:`${Y.length<Z.length?"+":"-"}${Math.abs(Y.length-Z.length)} ("${Y}" \u2192 "${Z}")`}}function OF(Y,Z){return{summary:`${Y} \u2192 ${Z}`}}function X7(Y,Z,X){let _="",G=[],$=[],W=[];return a9(Y,(H,Q)=>{let J;for(J of H){let U=Z[J];if(U===void 0)$.push([J,JSON.stringify(Q)]);else{let E=X(Q,U);if(E.summary!=="No Change")W.push([J,E])}}}),a9(Z,(H,Q)=>{let J;for(J of H)if(Y[J]===void 0)G.push([J,JSON.stringify(Q)])}),_=`\uFF5E${W.length} \uFF0B${G.length} \uFF0D${$.length}`,{summary:_,added:G,removed:$,changed:W}}function VF(Y,Z,X){return X7(Y,Z,X)}var DF=class{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(Y,Z,X){this.leafRefinery=Y,this.treeRefinery=Z,this.leafDiffers={},this.treeDiffers={};for(let _ of Object.keys(Y.supported)){let G=X[_];this.leafDiffers[_]=G}for(let _ of Object.keys(Z.supported)){let G=X[_];this.treeDiffers[_]=G}}diff(Y,Z){if(Y===Z)return{summary:"No Change"};let X=this.leafRefinery.refine(Y)??this.treeRefinery.refine(Y),_=this.leafRefinery.refine(Z)??this.treeRefinery.refine(Z);if(X!==null&&_!==null){if(X.type===_.type){if(X.type in this.leafDiffers)return this.leafDiffers[X.type](X.data,_.data);if(X.type in this.treeDiffers)return this.treeDiffers[X.type](X.data,_.data,(H,Q)=>this.diff(H,Q))}}let G=N6(Y),$=N6(Z);if(G===$)return{summary:`${G} \u2192 ${$}`};return{summary:`Type change: ${G} \u2192 ${$}`}}},tT=new DF(e9,Z7,{number:FF,string:EF,boolean:OF,null:()=>({summary:"No Change"}),object:X7,array:VF});var LF=class extends Map{set(Y,Z){if(this.has(Y))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:Y,value:Z}),this;return super.set(Y,Z)}clear(){throw new Error("Cannot clear an InvariantMap")}},_K=class Y{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(Z){this.key=Z}static existing=new LF;static create(Z,X){let _=new Y(Z),{type:G,globals:$,actions:W,perspectives:H}=X(_),Q={type:G,key:Z,globals:$,actions:W,perspectives:H};return Y.existing.set(Z,Q),Q}add(...Z){switch(Z[0].type){case"atom":case"mutable_atom":this.globals.push(...Z);break;case"transaction":this.actions.push(...Z);break;case"atom_family":case"mutable_atom_family":{let[_,G]=Z;this.perspectives.push({type:"realtime_perspective",resourceAtoms:_,viewAtoms:G})}break}return this}};var GK=V4({key:"usersInRoomIndex",class:$2}),eZ=V4({key:"roomIndex",class:$2}),MF={enteredAtEpoch:0},E8=O6({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(Y)=>typeof Y==="string",isBType:(Y)=>typeof Y==="string"},MF),$K=V6({key:"usersInMyRoomView",get:(Y)=>({find:Z})=>{let X=w9(E8);return[Z(X,Y)]}});import{spawn as AF}from"child_process";var Y5=class{listeners;globalListeners;handleEvent(Y,...Z){for(let _ of this.globalListeners)_(Y,...Z);let X=this.listeners.get(Y);if(X)for(let _ of X)_(...Z)}id="no_id_retrieved";emit;constructor(Y){this.emit=Y,this.listeners=new Map,this.globalListeners=new Set}on(Y,Z){let X=this.listeners.get(Y);if(X)X.add(Z);else this.listeners.set(Y,new Set([Z]));return this}onAny(Y){return this.globalListeners.add(Y),this}off(Y,Z){let X=this.listeners.get(Y);if(X)if(Z)X.delete(Z);else this.listeners.delete(Y);return this}offAny(Y){return this.globalListeners.delete(Y),this}},wF=class extends Y5{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;key;logger;handleLog(Y){if(Array.isArray(Y)){let[Z,...X]=Y;switch(Z){case"i":this.logger.info(...X);break;case"w":this.logger.warn(...X);break;case"e":this.logger.error(...X);break;default:return}}}constructor(Y,Z,X){super((_,...G)=>{let $=JSON.stringify([_,...G])+"\x03",W=(H)=>{if(H.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",W)};return this.process.stdin.once("error",W),this.process.stdin.write($),this});if(this.process=Y,this.key=Z,this.logger=X??{info:(..._)=>{console.info(this.id,this.key,..._)},warn:(..._)=>{console.warn(this.id,this.key,..._)},error:(..._)=>{console.error(this.id,this.key,..._)}},this.process.stdout.on("data",(_)=>{let G=_.toString();if(G==="ALIVE")return;this.unprocessedEvents.push(...G.split("\x03"));let $=this.unprocessedEvents.shift();this.incompleteData+=$??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let W=a0(this.incompleteData);this.handleEvent(...W);while(this.unprocessedEvents.length>0){let H=this.unprocessedEvents.shift();if(H){if(this.unprocessedEvents.length===0)this.incompleteData=H;W=a0(H),this.handleEvent(...W)}}this.incompleteData=""}catch(W){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(W)}}),this.process.stderr.on("data",(_)=>{let G=_.toString();this.unprocessedLogs.push(...G.split("\x03"));let $=this.unprocessedLogs.shift();this.incompleteLog+=$??"";try{let W=a0(this.incompleteLog);this.handleLog(W);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)W=a0(this.incompleteLog),this.handleLog(W)}catch(W){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(W),console.error("\u274C\u274C\u274C\uFE0F")}}),Y.pid)this.id=Y.pid.toString()}},RF=class extends Y5{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(Y){super((...Z)=>{return this.out.next(Z),this});this.id=Y,this.in=new W0,this.out=new W0,this.in.subscribe("socket",(Z)=>{this.handleEvent(...Z)})}dispose(){for(let Y of this.disposalFunctions)Y()}},_7=class extends Y5{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...Y){this.process.stderr.write(Q0(Y.map((Z)=>Z instanceof $2?`{ ${Z.toJSON().members.join(" | ")} }`:Z))+"\x03")}logger={info:(...Y)=>{this.log("i",...Y)},warn:(...Y)=>{this.log("w",...Y)},error:(...Y)=>{this.log("e",...Y)}};constructor(){super((Y,...Z)=>{let X=JSON.stringify([Y,...Z]);return this.process.stdout.write(X+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(Y)=>{let Z=Y.toString();this.unprocessedEvents.push(...Z.split("\x03"));let X=this.unprocessedEvents.shift();this.incompleteData+=X??"";try{let _=a0(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",_),this.handleEvent(..._);while(this.unprocessedEvents.length>0){let G=this.unprocessedEvents.shift();if(G){if(this.unprocessedEvents.length===0)this.incompleteData=G;let $=a0(G);this.handleEvent(...$)}}this.incompleteData=""}catch(_){if(_ instanceof Error)this.logger.error("\u2757",_.message,_.cause,_.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(Y)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${Y}`)}),process.on("end",()=>{this.logger.info("\uD83D\uDD25",this.id,"ended"),process.exit(0)}),process.on("SIGTERM",()=>{this.logger.error("\uD83D\uDD25",this.id,"terminated"),process.exit(0)}),process.on("SIGINT",()=>{this.logger.error("\uD83D\uDD25",this.id,"interrupted"),process.exit(0)}),process.pid)this.id=process.pid?.toString();this.on("user-joins",(Y)=>{this.logger.info("\uD83D\uDC64","user",Y,"joined");let Z=new RF(`user:${Y}`);this.relays.set(Y,Z),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let X of this.relayServices){let _=X(Z);if(_)Z.disposalFunctions.push(_)}this.on(`user:${Y}`,(...X)=>{Z.in.next(X)}),Z.out.subscribe("socket",(X)=>{this.emit(...X)})}),this.on("user-leaves",(Y)=>{let Z=this.relays.get(Y);if(this.off(`relay:${Y}`),Z)Z.dispose(),this.relays.delete(Y)}),process.stdout.write("ALIVE")}relay(Y){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(Y)}},G7=W8({key:"roomArguments",default:["echo",["Hello World!"]]}),NF=V6({key:"room",get:(Y)=>async({get:Z,find:X})=>{let _=X(G7,Y),G=Z(_),[$,W]=G,H=await new Promise((Q)=>{let J=AF($,W,{env:process.env}),U=(E)=>{if(E.toString()==="ALIVE")J.stdout.off("data",U),Q(J)};J.stdout.on("data",U)});return new wF(H,Y)}}),VK=H8({key:"createRoom",do:({get:Y,set:Z,find:X},_,G,$)=>{let W=$?[G,$]:[G],H=X(G7,_);Z(H,W),Z(eZ,(U)=>U.add(_));let Q=X(NF,_);return Y(Q)}}),DK=H8({key:"joinRoom",do:(Y,Z,X,_)=>{let G={enteredAtEpoch:_};return U8(E8,($)=>{$.set({room:Z,user:X},G)},Y.env().store),G}}),LK=H8({key:"leaveRoom",do:(Y,Z,X)=>{U8(E8,(_)=>{_.delete({room:Z,user:X})},Y.env().store)}}),MK=H8({key:"destroyRoom",do:(Y,Z)=>{U8(E8,(X)=>{X.delete({room:Z})},Y.env().store),Y.set(eZ,(X)=>(X.delete(Z),X))}});var AK=W8({key:"redactor",default:{occlude:(Y)=>Y}}),wK=W8({key:"unacknowledgedUpdates",default:()=>[]}),RK=W8({key:"sockets",default:null}),NK=V4({key:"socketsIndex",class:$2}),IK=V4({key:"usersIndex",class:$2}),TK=O6({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(Y)=>Y.startsWith("user::"),isBType:(Y)=>Y.startsWith("socket::")});var{file:k3,serve:yE}=globalThis.Bun;import{readFileSync as H7}from"fs";import{createServer as BF}from"http";import{createServer as CF}from"https";import{resolve as X5}from"path";function $7(Y,Z){if(Y instanceof Promise)throw new Error(Z)}function IF(Y,Z){let X={},_=[];for(let G in Y){let $=Y[G]["~standard"].validate(Z[G]);if($7($,`Validation must be synchronous, but ${G} returned a Promise.`),$.issues){_.push(...$.issues.map((W)=>({...W,message:W.message,path:[G,...W.path??[]]})));continue}X[G]=$.value}if(_.length)return{issues:_};return{value:X}}function Z5(Y){let Z=Y.runtimeEnvStrict??Y.runtimeEnv??process.env;if(Y.emptyStringAsUndefined??!1){for(let[x,m]of Object.entries(Z))if(m==="")delete Z[x]}if(!!Y.skipValidation)return Z;let G=typeof Y.client==="object"?Y.client:{},$=typeof Y.server==="object"?Y.server:{},W=typeof Y.shared==="object"?Y.shared:{},H=Y.isServer??(typeof window==="undefined"||("Deno"in window)),Q=H?{...$,...W,...G}:{...G,...W},J=Y.createFinalSchema?.(Q,H)["~standard"].validate(Z)??IF(Q,Z);$7(J,"Validation must be synchronous");let U=Y.onValidationError??((x)=>{throw console.error("\u274C Invalid environment variables:",x),new Error("Invalid environment variables")}),E=Y.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(J.issues)return U(J.issues);let V=(x)=>{if(!Y.clientPrefix)return!0;return!x.startsWith(Y.clientPrefix)&&!(x in W)},L=(x)=>{return H||!V(x)},w=(x)=>{return x==="__esModule"||x==="$$typeof"},M=(Y.extends??[]).reduce((x,m)=>{return Object.assign(x,m)},{}),k=Object.assign(M,J.value);return new Proxy(k,{get(x,m){if(typeof m!=="string")return;if(w(m))return;if(!L(m))return E(m);return Reflect.get(x,m)}})}var TF="__vite_start_time"in globalThis,KF=typeof window!=="undefined",hK="vitest"in globalThis,H2=O1("string"),W7=O1('"true" | "false" | undefined'),b1=Z5({isServer:!TF&&!KF,server:{CI:O1("string | undefined").pipe(Boolean),POSTGRES_USER:H2,POSTGRES_PASSWORD:H2,POSTGRES_DATABASE:H2,POSTGRES_HOST:H2,POSTGRES_PORT:H2.pipe((Y)=>Number.parseInt(Y,10)),BACKEND_PORT:H2.pipe((Y)=>Number.parseInt(Y,10)),RUN_WORKERS_FROM_SOURCE:W7.pipe((Y)=>Y==="true"),FRONTEND_PORT:H2.pipe((Y)=>Number.parseInt(Y,10)),FRONTEND_ORIGINS:H2.pipe.try((Y)=>JSON.parse(Y),O1("string[]")),API_KEY_OPENAI:O1("string | undefined"),API_KEY_RESEND:O1("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:H2,VITE_DEV_FRONTEND_HOST:O1("string | undefined"),VITE_DEV_HTTPS:W7.pipe((Y)=>Y==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var J7=X5(import.meta.dirname,"../dev"),I6=b1.VITE_DEV_HTTPS?{cert:H7(X5(J7,"./cert.pem"),"utf-8"),key:H7(X5(J7,"./key.pem"),"utf-8")}:void 0;function uK(Y){if(I6)return CF(I6,Y);return BF({},Y)}import PE from"path";var F=Symbol.for("drizzle:entityKind");function A(Y,Z){if(!Y||typeof Y!=="object")return!1;if(Y instanceof Z)return!0;if(!Object.prototype.hasOwnProperty.call(Z,F))throw new Error(`Class "${Z.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let X=Object.getPrototypeOf(Y).constructor;if(X)while(X){if(F in X&&X[F]===Z[F])return!0;X=Object.getPrototypeOf(X)}return!1}class E0{constructor(Y,Z){this.table=Y,this.config=Z,this.name=Z.name,this.keyAsName=Z.keyAsName,this.notNull=Z.notNull,this.default=Z.default,this.defaultFn=Z.defaultFn,this.onUpdateFn=Z.onUpdateFn,this.hasDefault=Z.hasDefault,this.primary=Z.primaryKey,this.isUnique=Z.isUnique,this.uniqueName=Z.uniqueName,this.uniqueType=Z.uniqueType,this.dataType=Z.dataType,this.columnType=Z.columnType,this.generated=Z.generated,this.generatedIdentity=Z.generatedIdentity}static[F]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(Y){return Y}mapToDriverValue(Y){return Y}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class _5{static[F]="ColumnBuilder";config;constructor(Y,Z,X){this.config={name:Y,keyAsName:Y==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:Z,columnType:X,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(Y){return this.config.default=Y,this.config.hasDefault=!0,this}$defaultFn(Y){return this.config.defaultFn=Y,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(Y){return this.config.onUpdateFn=Y,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(Y){if(this.config.name!=="")return;this.config.name=Y}}var y1=Symbol.for("drizzle:Name");class G5{static[F]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(Y,Z){if(this.reference=()=>{let{name:X,columns:_,foreignColumns:G}=Y();return{name:X,columns:_,foreignTable:G[0].table,foreignColumns:G}},Z)this._onUpdate=Z.onUpdate,this._onDelete=Z.onDelete}onUpdate(Y){return this._onUpdate=Y===void 0?"no action":Y,this}onDelete(Y){return this._onDelete=Y===void 0?"no action":Y,this}build(Y){return new Q7(Y,this)}}class Q7{constructor(Y,Z){this.table=Y,this.reference=Z.reference,this.onUpdate=Z._onUpdate,this.onDelete=Z._onDelete}static[F]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:Y,columns:Z,foreignColumns:X}=this.reference(),_=Z.map((W)=>W.name),G=X.map((W)=>W.name),$=[this.table[y1],..._,X[0].table[y1],...G];return Y??`${$.join("_")}_fk`}}function T6(Y,...Z){return Y(...Z)}function U7(Y,Z){return`${Y[y1]}_${Z.join("_")}_unique`}function z7(Y,Z,X){for(let _=Z;_<Y.length;_++){let G=Y[_];if(G==="\\"){_++;continue}if(G==='"')return[Y.slice(Z,_).replace(/\\/g,""),_+1];if(X)continue;if(G===","||G==="}")return[Y.slice(Z,_).replace(/\\/g,""),_]}return[Y.slice(Z).replace(/\\/g,""),Y.length]}function F7(Y,Z=0){let X=[],_=Z,G=!1;while(_<Y.length){let $=Y[_];if($===","){if(G||_===Z)X.push("");G=!0,_++;continue}if(G=!1,$==="\\"){_+=2;continue}if($==='"'){let[Q,J]=z7(Y,_+1,!0);X.push(Q),_=J;continue}if($==="}")return[X,_+1];if($==="{"){let[Q,J]=F7(Y,_+1);X.push(Q),_=J;continue}let[W,H]=z7(Y,_,!1);X.push(W),_=H}return[X,_]}function E7(Y){let[Z]=F7(Y,1);return Z}function $5(Y){return`{${Y.map((Z)=>{if(Array.isArray(Z))return $5(Z);if(typeof Z==="string")return`"${Z.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${Z}`}).join(",")}}`}class b extends _5{foreignKeyConfigs=[];static[F]="PgColumnBuilder";array(Y){return new V7(this.config.name,this,Y)}references(Y,Z={}){return this.foreignKeyConfigs.push({ref:Y,actions:Z}),this}unique(Y,Z){return this.config.isUnique=!0,this.config.uniqueName=Y,this.config.uniqueType=Z?.nulls,this}generatedAlwaysAs(Y){return this.config.generated={as:Y,type:"always",mode:"stored"},this}buildForeignKeys(Y,Z){return this.foreignKeyConfigs.map(({ref:X,actions:_})=>{return T6((G,$)=>{let W=new G5(()=>{let H=G();return{columns:[Y],foreignColumns:[H]}});if($.onUpdate)W.onUpdate($.onUpdate);if($.onDelete)W.onDelete($.onDelete);return W.build(Z)},X,_)})}buildExtraConfigColumn(Y){return new O7(Y,this.config)}}class j extends E0{constructor(Y,Z){if(!Z.uniqueName)Z.uniqueName=U7(Y,[Z.name]);super(Y,Z);this.table=Y}static[F]="PgColumn"}class O7 extends j{static[F]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(Y){return this.indexConfig.opClass=Y,this}}class O8{static[F]="IndexedColumn";constructor(Y,Z,X,_){this.name=Y,this.keyAsName=Z,this.type=X,this.indexConfig=_}name;keyAsName;type;indexConfig}class V7 extends b{static[F]="PgArrayBuilder";constructor(Y,Z,X){super(Y,"array","PgArray");this.config.baseBuilder=Z,this.config.size=X}build(Y){let Z=this.config.baseBuilder.build(Y);return new W5(Y,this.config,Z)}}class W5 extends j{constructor(Y,Z,X,_){super(Y,Z);this.baseColumn=X,this.range=_,this.size=Z.size}size;static[F]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(Y){if(typeof Y==="string")Y=E7(Y);return Y.map((Z)=>this.baseColumn.mapFromDriverValue(Z))}mapToDriverValue(Y,Z=!1){let X=Y.map((_)=>_===null?null:A(this.baseColumn,W5)?this.baseColumn.mapToDriverValue(_,!0):this.baseColumn.mapToDriverValue(_));if(Z)return X;return $5(X)}}class D7 extends b{static[F]="PgEnumObjectColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumObjectColumn");this.config.enum=Z}build(Y){return new L7(Y,this.config)}}class L7 extends j{static[F]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}var K6=Symbol.for("drizzle:isPgEnum");function M7(Y){return!!Y&&typeof Y==="function"&&K6 in Y&&Y[K6]===!0}class A7 extends b{static[F]="PgEnumColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumColumn");this.config.enum=Z}build(Y){return new w7(Y,this.config)}}class w7 extends j{static[F]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}function V8(Y,Z){return Array.isArray(Z)?qF(Y,[...Z],void 0):jF(Y,Z,void 0)}function qF(Y,Z,X){let _=Object.assign((G)=>new A7(G??"",_),{enumName:Y,enumValues:Z,schema:X,[K6]:!0});return _}function jF(Y,Z,X){let _=Object.assign((G)=>new D7(G??"",_),{enumName:Y,enumValues:Object.values(Z),schema:X,[K6]:!0});return _}class P0{static[F]="Subquery";constructor(Y,Z,X,_=!1,G=[]){this._={brand:"Subquery",sql:Y,selectedFields:Z,alias:X,isWith:_,usedTables:G}}}class D8 extends P0{static[F]="WithSubquery"}var R7="0.44.4";var H5,J5,O0={startActiveSpan(Y,Z){if(!H5)return Z();if(!J5)J5=H5.trace.getTracer("drizzle-orm",R7);return T6((X,_)=>_.startActiveSpan(Y,(G)=>{try{return Z(G)}catch($){throw G.setStatus({code:X.SpanStatusCode.ERROR,message:$ instanceof Error?$.message:"Unknown error"}),$}finally{G.end()}}),H5,J5)}};var M0=Symbol.for("drizzle:ViewBaseConfig");var p2=Symbol.for("drizzle:Schema"),B6=Symbol.for("drizzle:Columns"),N7=Symbol.for("drizzle:ExtraConfigColumns"),Q5=Symbol.for("drizzle:OriginalName"),U5=Symbol.for("drizzle:BaseName"),L8=Symbol.for("drizzle:IsAlias"),I7=Symbol.for("drizzle:ExtraConfigBuilder"),SF=Symbol.for("drizzle:IsDrizzleTable");class S{static[F]="Table";static Symbol={Name:y1,Schema:p2,OriginalName:Q5,Columns:B6,ExtraConfigColumns:N7,BaseName:U5,IsAlias:L8,ExtraConfigBuilder:I7};[y1];[Q5];[p2];[B6];[N7];[U5];[L8]=!1;[SF]=!0;[I7]=void 0;constructor(Y,Z,X){this[y1]=this[Q5]=Y,this[p2]=Z,this[U5]=X}}function d0(Y){return Y[y1]}function m2(Y){return`${Y[p2]??"public"}.${Y[y1]}`}function z5(Y){return Y!==null&&Y!==void 0&&typeof Y.getSQL==="function"}function PF(Y){let Z={sql:"",params:[]};for(let X of Y)if(Z.sql+=X.sql,Z.params.push(...X.params),X.typings?.length){if(!Z.typings)Z.typings=[];Z.typings.push(...X.typings)}return Z}class m0{static[F]="StringChunk";value;constructor(Y){this.value=Array.isArray(Y)?Y:[Y]}getSQL(){return new f([this])}}class f{constructor(Y){this.queryChunks=Y;for(let Z of Y)if(A(Z,S)){let X=Z[S.Symbol.Schema];this.usedTables.push(X===void 0?Z[S.Symbol.Name]:X+"."+Z[S.Symbol.Name])}}static[F]="SQL";decoder=K7;shouldInlineParams=!1;usedTables=[];append(Y){return this.queryChunks.push(...Y.queryChunks),this}toQuery(Y){return O0.startActiveSpan("drizzle.buildSQL",(Z)=>{let X=this.buildQueryFromSourceParams(this.queryChunks,Y);return Z?.setAttributes({"drizzle.query.text":X.sql,"drizzle.query.params":JSON.stringify(X.params)}),X})}buildQueryFromSourceParams(Y,Z){let X=Object.assign({},Z,{inlineParams:Z.inlineParams||this.shouldInlineParams,paramStartIndex:Z.paramStartIndex||{value:0}}),{casing:_,escapeName:G,escapeParam:$,prepareTyping:W,inlineParams:H,paramStartIndex:Q}=X;return PF(Y.map((J)=>{if(A(J,m0))return{sql:J.value.join(""),params:[]};if(A(J,C6))return{sql:G(J.value),params:[]};if(J===void 0)return{sql:"",params:[]};if(Array.isArray(J)){let U=[new m0("(")];for(let[E,V]of J.entries())if(U.push(V),E<J.length-1)U.push(new m0(", "));return U.push(new m0(")")),this.buildQueryFromSourceParams(U,X)}if(A(J,f))return this.buildQueryFromSourceParams(J.queryChunks,{...X,inlineParams:H||J.shouldInlineParams});if(A(J,S)){let U=J[S.Symbol.Schema],E=J[S.Symbol.Name];return{sql:U===void 0||J[L8]?G(E):G(U)+"."+G(E),params:[]}}if(A(J,E0)){let U=_.getColumnCasing(J);if(Z.invokeSource==="indexes")return{sql:G(U),params:[]};let E=J.table[S.Symbol.Schema];return{sql:J.table[L8]||E===void 0?G(J.table[S.Symbol.Name])+"."+G(U):G(E)+"."+G(J.table[S.Symbol.Name])+"."+G(U),params:[]}}if(A(J,V1)){let U=J[M0].schema,E=J[M0].name;return{sql:U===void 0||J[M0].isAlias?G(E):G(U)+"."+G(E),params:[]}}if(A(J,w1)){if(A(J.value,N2))return{sql:$(Q.value++,J),params:[J],typings:["none"]};let U=J.value===null?null:J.encoder.mapToDriverValue(J.value);if(A(U,f))return this.buildQueryFromSourceParams([U],X);if(H)return{sql:this.mapInlineParam(U,X),params:[]};let E=["none"];if(W)E=[W(J.encoder)];return{sql:$(Q.value++,U),params:[U],typings:E}}if(A(J,N2))return{sql:$(Q.value++,J),params:[J],typings:["none"]};if(A(J,f.Aliased)&&J.fieldAlias!==void 0)return{sql:G(J.fieldAlias),params:[]};if(A(J,P0)){if(J._.isWith)return{sql:G(J._.alias),params:[]};return this.buildQueryFromSourceParams([new m0("("),J._.sql,new m0(") "),new C6(J._.alias)],X)}if(M7(J)){if(J.schema)return{sql:G(J.schema)+"."+G(J.enumName),params:[]};return{sql:G(J.enumName),params:[]}}if(z5(J)){if(J.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([J.getSQL()],X);return this.buildQueryFromSourceParams([new m0("("),J.getSQL(),new m0(")")],X)}if(H)return{sql:this.mapInlineParam(J,X),params:[]};return{sql:$(Q.value++,J),params:[J],typings:["none"]}}))}mapInlineParam(Y,{escapeString:Z}){if(Y===null)return"null";if(typeof Y==="number"||typeof Y==="boolean")return Y.toString();if(typeof Y==="string")return Z(Y);if(typeof Y==="object"){let X=Y.toString();if(X==="[object Object]")return Z(JSON.stringify(Y));return Z(X)}throw new Error("Unexpected param value: "+Y)}getSQL(){return this}as(Y){if(Y===void 0)return this;return new f.Aliased(this,Y)}mapWith(Y){return this.decoder=typeof Y==="function"?{mapFromDriverValue:Y}:Y,this}inlineParams(){return this.shouldInlineParams=!0,this}if(Y){return Y?this:void 0}}class C6{constructor(Y){this.value=Y}static[F]="Name";brand;getSQL(){return new f([this])}}function T7(Y){return typeof Y==="object"&&Y!==null&&"mapToDriverValue"in Y&&typeof Y.mapToDriverValue==="function"}var K7={mapFromDriverValue:(Y)=>Y},B7={mapToDriverValue:(Y)=>Y},PB={...K7,...B7};class w1{constructor(Y,Z=B7){this.value=Y,this.encoder=Z}static[F]="Param";brand;getSQL(){return new f([this])}}function O(Y,...Z){let X=[];if(Z.length>0||Y.length>0&&Y[0]!=="")X.push(new m0(Y[0]));for(let[_,G]of Z.entries())X.push(G,new m0(Y[_+1]));return new f(X)}((Y)=>{function Z(){return new f([])}Y.empty=Z;function X(Q){return new f(Q)}Y.fromList=X;function _(Q){return new f([new m0(Q)])}Y.raw=_;function G(Q,J){let U=[];for(let[E,V]of Q.entries()){if(E>0&&J!==void 0)U.push(J);U.push(V)}return new f(U)}Y.join=G;function $(Q){return new C6(Q)}Y.identifier=$;function W(Q){return new N2(Q)}Y.placeholder=W;function H(Q,J){return new w1(Q,J)}Y.param=H})(O||(O={}));((Y)=>{class Z{constructor(X,_){this.sql=X,this.fieldAlias=_}static[F]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new Z(this.sql,this.fieldAlias)}}Y.Aliased=Z})(f||(f={}));class N2{constructor(Y){this.name=Y}static[F]="Placeholder";getSQL(){return new f([this])}}function F5(Y,Z){return Y.map((X)=>{if(A(X,N2)){if(!(X.name in Z))throw new Error(`No value for placeholder "${X.name}" was provided`);return Z[X.name]}if(A(X,w1)&&A(X.value,N2)){if(!(X.value.name in Z))throw new Error(`No value for placeholder "${X.value.name}" was provided`);return X.encoder.mapToDriverValue(Z[X.value.name])}return X})}var vF=Symbol.for("drizzle:IsDrizzleView");class V1{static[F]="View";[M0];[vF]=!0;constructor({name:Y,schema:Z,selectedFields:X,query:_}){this[M0]={name:Y,originalName:Y,schema:Z,selectedFields:X,query:_,isExisting:!_,isAlias:!1}}getSQL(){return new f([this])}}E0.prototype.getSQL=function(){return new f([this])};S.prototype.getSQL=function(){return new f([this])};P0.prototype.getSQL=function(){return new f([this])};class R4{constructor(Y){this.table=Y}static[F]="ColumnAliasProxyHandler";get(Y,Z){if(Z==="table")return this.table;return Y[Z]}}class M8{constructor(Y,Z){this.alias=Y,this.replaceOriginalName=Z}static[F]="TableAliasProxyHandler";get(Y,Z){if(Z===S.Symbol.IsAlias)return!0;if(Z===S.Symbol.Name)return this.alias;if(this.replaceOriginalName&&Z===S.Symbol.OriginalName)return this.alias;if(Z===M0)return{...Y[M0],name:this.alias,isAlias:!0};if(Z===S.Symbol.Columns){let _=Y[S.Symbol.Columns];if(!_)return _;let G={};return Object.keys(_).map(($)=>{G[$]=new Proxy(_[$],new R4(new Proxy(Y,this)))}),G}let X=Y[Z];if(A(X,E0))return new Proxy(X,new R4(new Proxy(Y,this)));return X}}function q6(Y,Z){return new Proxy(Y,new M8(Z,!1))}function i1(Y,Z){return new Proxy(Y,new R4(new Proxy(Y.table,new M8(Z,!1))))}function E5(Y,Z){return new f.Aliased(A8(Y.sql,Z),Y.fieldAlias)}function A8(Y,Z){return O.join(Y.queryChunks.map((X)=>{if(A(X,E0))return i1(X,Z);if(A(X,f))return A8(X,Z);if(A(X,f.Aliased))return E5(X,Z);return X}))}class j6 extends Error{static[F]="DrizzleError";constructor({message:Y,cause:Z}){super(Y);this.name="DrizzleError",this.cause=Z}}class J2 extends Error{constructor(Y,Z,X){super(`Failed query: ${Y}
60
- params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrace(this,J2),X)this.cause=X}}class O5 extends j6{static[F]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class C7{static[F]="ConsoleLogWriter";write(Y){console.log(Y)}}class V5{static[F]="DefaultLogger";writer;constructor(Y){this.writer=Y?.writer??new C7}logQuery(Y,Z){let X=Z.map((G)=>{try{return JSON.stringify(G)}catch{return String(G)}}),_=X.length?` -- params: [${X.join(", ")}]`:"";this.writer.write(`Query: ${Y}${_}`)}}class D5{static[F]="NoopLogger";logQuery(){}}class W1{static[F]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(Y){return this.then(void 0,Y)}finally(Y){return this.then((Z)=>{return Y?.(),Z},(Z)=>{throw Y?.(),Z})}then(Y,Z){return this.execute().then(Y,Z)}}function q7(Y,Z,X){let _={},G=Y.reduce(($,{path:W,field:H},Q)=>{let J;if(A(H,E0))J=H;else if(A(H,f))J=H.decoder;else J=H.sql.decoder;let U=$;for(let[E,V]of W.entries())if(E<W.length-1){if(!(V in U))U[V]={};U=U[V]}else{let L=Z[Q],w=U[V]=L===null?null:J.mapFromDriverValue(L);if(X&&A(H,E0)&&W.length===2){let M=W[0];if(!(M in _))_[M]=w===null?d0(H.table):!1;else if(typeof _[M]==="string"&&_[M]!==d0(H.table))_[M]=!1}}return $},{});if(X&&Object.keys(_).length>0){for(let[$,W]of Object.entries(_))if(typeof W==="string"&&!X[W])G[$]=null}return G}function C1(Y,Z){return Object.entries(Y).reduce((X,[_,G])=>{if(typeof _!=="string")return X;let $=Z?[...Z,_]:[_];if(A(G,E0)||A(G,f)||A(G,f.Aliased))X.push({path:$,field:G});else if(A(G,S))X.push(...C1(G[S.Symbol.Columns],$));else X.push(...C1(G,$));return X},[])}function w8(Y,Z){let X=Object.keys(Y),_=Object.keys(Z);if(X.length!==_.length)return!1;for(let[G,$]of X.entries())if($!==_[G])return!1;return!0}function S6(Y,Z){let X=Object.entries(Z).filter(([,_])=>_!==void 0).map(([_,G])=>{if(A(G,f)||A(G,E0))return[_,G];else return[_,new w1(G,Y[S.Symbol.Columns][_])]});if(X.length===0)throw new Error("No values to set");return Object.fromEntries(X)}function j7(Y,Z){for(let X of Z)for(let _ of Object.getOwnPropertyNames(X.prototype)){if(_==="constructor")continue;Object.defineProperty(Y.prototype,_,Object.getOwnPropertyDescriptor(X.prototype,_)||Object.create(null))}}function S7(Y){return Y[S.Symbol.Columns]}function Q2(Y){return A(Y,P0)?Y._.alias:A(Y,V1)?Y[M0].name:A(Y,f)?void 0:Y[S.Symbol.IsAlias]?Y[S.Symbol.Name]:Y[S.Symbol.BaseName]}function X0(Y,Z){return{name:typeof Y==="string"&&Y.length>0?Y:"",config:typeof Y==="object"?Y:Z}}function P7(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 I2 extends b{static[F]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(Y){if(Y){let{name:Z,...X}=Y;this.config.generatedIdentity={type:"always",sequenceName:Z,sequenceOptions:X}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(Y){if(Y){let{name:Z,...X}=Y;this.config.generatedIdentity={type:"byDefault",sequenceName:Z,sequenceOptions:X}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class v7 extends I2{static[F]="PgBigInt53Builder";constructor(Y){super(Y,"number","PgBigInt53")}build(Y){return new x7(Y,this.config)}}class x7 extends j{static[F]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class f7 extends I2{static[F]="PgBigInt64Builder";constructor(Y){super(Y,"bigint","PgBigInt64")}build(Y){return new h7(Y,this.config)}}class h7 extends j{static[F]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(Y){return BigInt(Y)}}function k7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new v7(X);return new f7(X)}class b7 extends b{static[F]="PgBigSerial53Builder";constructor(Y){super(Y,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new y7(Y,this.config)}}class y7 extends j{static[F]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class g7 extends b{static[F]="PgBigSerial64Builder";constructor(Y){super(Y,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(Y){return new p7(Y,this.config)}}class p7 extends j{static[F]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(Y){return BigInt(Y)}}function m7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new b7(X);return new g7(X)}class u7 extends b{static[F]="PgBooleanBuilder";constructor(Y){super(Y,"boolean","PgBoolean")}build(Y){return new d7(Y,this.config)}}class d7 extends j{static[F]="PgBoolean";getSQLType(){return"boolean"}}function R8(Y){return new u7(Y??"")}class c7 extends b{static[F]="PgCharBuilder";constructor(Y,Z){super(Y,"string","PgChar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new l7(Y,this.config)}}class l7 extends j{static[F]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function o7(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new c7(X,_)}class i7 extends b{static[F]="PgCidrBuilder";constructor(Y){super(Y,"string","PgCidr")}build(Y){return new r7(Y,this.config)}}class r7 extends j{static[F]="PgCidr";getSQLType(){return"cidr"}}function n7(Y){return new i7(Y??"")}class s7 extends b{static[F]="PgCustomColumnBuilder";constructor(Y,Z,X){super(Y,"custom","PgCustomColumn");this.config.fieldConfig=Z,this.config.customTypeParams=X}build(Y){return new t7(Y,this.config)}}class t7 extends j{static[F]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(Y,Z){super(Y,Z);this.sqlName=Z.customTypeParams.dataType(Z.fieldConfig),this.mapTo=Z.customTypeParams.toDriver,this.mapFrom=Z.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(Y){return typeof this.mapFrom==="function"?this.mapFrom(Y):Y}mapToDriverValue(Y){return typeof this.mapTo==="function"?this.mapTo(Y):Y}}function a7(Y){return(Z,X)=>{let{name:_,config:G}=X0(Z,X);return new s7(_,G,Y)}}class U2 extends b{static[F]="PgDateColumnBaseBuilder";defaultNow(){return this.default(O`now()`)}}class e7 extends U2{static[F]="PgDateBuilder";constructor(Y){super(Y,"date","PgDate")}build(Y){return new P6(Y,this.config)}}class P6 extends j{static[F]="PgDate";getSQLType(){return"date"}mapFromDriverValue(Y){return new Date(Y)}mapToDriverValue(Y){return Y.toISOString()}}class Y$ extends U2{static[F]="PgDateStringBuilder";constructor(Y){super(Y,"string","PgDateString")}build(Y){return new v6(Y,this.config)}}class v6 extends j{static[F]="PgDateString";getSQLType(){return"date"}}function Z$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="date")return new e7(X);return new Y$(X)}class X$ extends b{static[F]="PgDoublePrecisionBuilder";constructor(Y){super(Y,"number","PgDoublePrecision")}build(Y){return new _$(Y,this.config)}}class _$ extends j{static[F]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function G$(Y){return new X$(Y??"")}class $$ extends b{static[F]="PgInetBuilder";constructor(Y){super(Y,"string","PgInet")}build(Y){return new W$(Y,this.config)}}class W$ extends j{static[F]="PgInet";getSQLType(){return"inet"}}function H$(Y){return new $$(Y??"")}class J$ extends I2{static[F]="PgIntegerBuilder";constructor(Y){super(Y,"number","PgInteger")}build(Y){return new Q$(Y,this.config)}}class Q$ extends j{static[F]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseInt(Y);return Y}}function N8(Y){return new J$(Y??"")}class U$ extends b{static[F]="PgIntervalBuilder";constructor(Y,Z){super(Y,"string","PgInterval");this.config.intervalConfig=Z}build(Y){return new z$(Y,this.config)}}class z$ extends j{static[F]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let Y=this.fields?` ${this.fields}`:"",Z=this.precision?`(${this.precision})`:"";return`interval${Y}${Z}`}}function F$(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new U$(X,_)}class E$ extends b{static[F]="PgJsonBuilder";constructor(Y){super(Y,"json","PgJson")}build(Y){return new x6(Y,this.config)}}class x6 extends j{static[F]="PgJson";constructor(Y,Z){super(Y,Z)}getSQLType(){return"json"}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}}function O$(Y){return new E$(Y??"")}class V$ extends b{static[F]="PgJsonbBuilder";constructor(Y){super(Y,"json","PgJsonb")}build(Y){return new f6(Y,this.config)}}class f6 extends j{static[F]="PgJsonb";constructor(Y,Z){super(Y,Z)}getSQLType(){return"jsonb"}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}}function D$(Y){return new V$(Y??"")}class L$ extends b{static[F]="PgLineBuilder";constructor(Y){super(Y,"array","PgLine")}build(Y){return new M$(Y,this.config)}}class M$ extends j{static[F]="PgLine";getSQLType(){return"line"}mapFromDriverValue(Y){let[Z,X,_]=Y.slice(1,-1).split(",");return[Number.parseFloat(Z),Number.parseFloat(X),Number.parseFloat(_)]}mapToDriverValue(Y){return`{${Y[0]},${Y[1]},${Y[2]}}`}}class A$ extends b{static[F]="PgLineABCBuilder";constructor(Y){super(Y,"json","PgLineABC")}build(Y){return new w$(Y,this.config)}}class w$ extends j{static[F]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(Y){let[Z,X,_]=Y.slice(1,-1).split(",");return{a:Number.parseFloat(Z),b:Number.parseFloat(X),c:Number.parseFloat(_)}}mapToDriverValue(Y){return`{${Y.a},${Y.b},${Y.c}}`}}function R$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new L$(X);return new A$(X)}class N$ extends b{static[F]="PgMacaddrBuilder";constructor(Y){super(Y,"string","PgMacaddr")}build(Y){return new I$(Y,this.config)}}class I$ extends j{static[F]="PgMacaddr";getSQLType(){return"macaddr"}}function T$(Y){return new N$(Y??"")}class K$ extends b{static[F]="PgMacaddr8Builder";constructor(Y){super(Y,"string","PgMacaddr8")}build(Y){return new B$(Y,this.config)}}class B$ extends j{static[F]="PgMacaddr8";getSQLType(){return"macaddr8"}}function C$(Y){return new K$(Y??"")}class q$ extends b{static[F]="PgNumericBuilder";constructor(Y,Z,X){super(Y,"string","PgNumeric");this.config.precision=Z,this.config.scale=X}build(Y){return new h6(Y,this.config)}}class h6 extends j{static[F]="PgNumeric";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue(Y){if(typeof Y==="string")return Y;return String(Y)}getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}class j$ extends b{static[F]="PgNumericNumberBuilder";constructor(Y,Z,X){super(Y,"number","PgNumericNumber");this.config.precision=Z,this.config.scale=X}build(Y){return new S$(Y,this.config)}}class S$ extends j{static[F]="PgNumericNumber";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}mapToDriverValue=String;getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}class P$ extends b{static[F]="PgNumericBigIntBuilder";constructor(Y,Z,X){super(Y,"bigint","PgNumericBigInt");this.config.precision=Z,this.config.scale=X}build(Y){return new v$(Y,this.config)}}class v$ extends j{static[F]="PgNumericBigInt";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}function x$(Y,Z){let{name:X,config:_}=X0(Y,Z),G=_?.mode;return G==="number"?new j$(X,_?.precision,_?.scale):G==="bigint"?new P$(X,_?.precision,_?.scale):new q$(X,_?.precision,_?.scale)}class f$ extends b{static[F]="PgPointTupleBuilder";constructor(Y){super(Y,"array","PgPointTuple")}build(Y){return new h$(Y,this.config)}}class h$ extends j{static[F]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(Y){if(typeof Y==="string"){let[Z,X]=Y.slice(1,-1).split(",");return[Number.parseFloat(Z),Number.parseFloat(X)]}return[Y.x,Y.y]}mapToDriverValue(Y){return`(${Y[0]},${Y[1]})`}}class k$ extends b{static[F]="PgPointObjectBuilder";constructor(Y){super(Y,"json","PgPointObject")}build(Y){return new b$(Y,this.config)}}class b$ extends j{static[F]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(Y){if(typeof Y==="string"){let[Z,X]=Y.slice(1,-1).split(",");return{x:Number.parseFloat(Z),y:Number.parseFloat(X)}}return Y}mapToDriverValue(Y){return`(${Y.x},${Y.y})`}}function y$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new f$(X);return new k$(X)}function xF(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 g$(Y,Z){let X=new ArrayBuffer(8),_=new DataView(X);for(let G=0;G<8;G++)_.setUint8(G,Y[Z+G]);return _.getFloat64(0,!0)}function L5(Y){let Z=xF(Y),X=0,_=Z[X];X+=1;let G=new DataView(Z.buffer),$=G.getUint32(X,_===1);X+=4;let W;if($&536870912)W=G.getUint32(X,_===1),X+=4;if(($&65535)===1){let H=g$(Z,X);X+=8;let Q=g$(Z,X);return X+=8,[H,Q]}throw new Error("Unsupported geometry type")}class p$ extends b{static[F]="PgGeometryBuilder";constructor(Y){super(Y,"array","PgGeometry")}build(Y){return new m$(Y,this.config)}}class m$ extends j{static[F]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){return L5(Y)}mapToDriverValue(Y){return`point(${Y[0]} ${Y[1]})`}}class u$ extends b{static[F]="PgGeometryObjectBuilder";constructor(Y){super(Y,"json","PgGeometryObject")}build(Y){return new d$(Y,this.config)}}class d$ extends j{static[F]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){let Z=L5(Y);return{x:Z[0],y:Z[1]}}mapToDriverValue(Y){return`point(${Y.x} ${Y.y})`}}function c$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new p$(X);return new u$(X)}class l$ extends b{static[F]="PgRealBuilder";constructor(Y,Z){super(Y,"number","PgReal");this.config.length=Z}build(Y){return new o$(Y,this.config)}}class o$ extends j{static[F]="PgReal";constructor(Y,Z){super(Y,Z)}getSQLType(){return"real"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function i$(Y){return new l$(Y??"")}class r$ extends b{static[F]="PgSerialBuilder";constructor(Y){super(Y,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new n$(Y,this.config)}}class n$ extends j{static[F]="PgSerial";getSQLType(){return"serial"}}function s$(Y){return new r$(Y??"")}class t$ extends I2{static[F]="PgSmallIntBuilder";constructor(Y){super(Y,"number","PgSmallInt")}build(Y){return new a$(Y,this.config)}}class a$ extends j{static[F]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number(Y);return Y}}function e$(Y){return new t$(Y??"")}class YW extends b{static[F]="PgSmallSerialBuilder";constructor(Y){super(Y,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new ZW(Y,this.config)}}class ZW extends j{static[F]="PgSmallSerial";getSQLType(){return"smallserial"}}function XW(Y){return new YW(Y??"")}class _W extends b{static[F]="PgTextBuilder";constructor(Y,Z){super(Y,"string","PgText");this.config.enumValues=Z.enum}build(Y){return new GW(Y,this.config)}}class GW extends j{static[F]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function $W(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new _W(X,_)}class WW extends U2{constructor(Y,Z,X){super(Y,"string","PgTime");this.withTimezone=Z,this.precision=X,this.config.withTimezone=Z,this.config.precision=X}static[F]="PgTimeBuilder";build(Y){return new k6(Y,this.config)}}class k6 extends j{static[F]="PgTime";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function HW(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new WW(X,_.withTimezone??!1,_.precision)}class JW extends U2{static[F]="PgTimestampBuilder";constructor(Y,Z,X){super(Y,"date","PgTimestamp");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new b6(Y,this.config)}}class b6 extends j{static[F]="PgTimestamp";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(Y)=>{return new Date(this.withTimezone?Y:Y+"+0000")};mapToDriverValue=(Y)=>{return Y.toISOString()}}class QW extends U2{static[F]="PgTimestampStringBuilder";constructor(Y,Z,X){super(Y,"string","PgTimestampString");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new y6(Y,this.config)}}class y6 extends j{static[F]="PgTimestampString";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function UW(Y,Z={}){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="string")return new QW(X,_.withTimezone??!1,_.precision);return new JW(X,_?.withTimezone??!1,_?.precision)}class zW extends b{static[F]="PgUUIDBuilder";constructor(Y){super(Y,"string","PgUUID")}defaultRandom(){return this.default(O`gen_random_uuid()`)}build(Y){return new g6(Y,this.config)}}class g6 extends j{static[F]="PgUUID";getSQLType(){return"uuid"}}function q1(Y){return new zW(Y??"")}class FW extends b{static[F]="PgVarcharBuilder";constructor(Y,Z){super(Y,"string","PgVarchar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new EW(Y,this.config)}}class EW extends j{static[F]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function e0(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new FW(X,_)}class OW extends b{static[F]="PgBinaryVectorBuilder";constructor(Y,Z){super(Y,"string","PgBinaryVector");this.config.dimensions=Z.dimensions}build(Y){return new VW(Y,this.config)}}class VW extends j{static[F]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function DW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new OW(X,_)}class LW extends b{static[F]="PgHalfVectorBuilder";constructor(Y,Z){super(Y,"array","PgHalfVector");this.config.dimensions=Z.dimensions}build(Y){return new MW(Y,this.config)}}class MW extends j{static[F]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){return Y.slice(1,-1).split(",").map((Z)=>Number.parseFloat(Z))}}function AW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new LW(X,_)}class wW extends b{static[F]="PgSparseVectorBuilder";constructor(Y,Z){super(Y,"string","PgSparseVector");this.config.dimensions=Z.dimensions}build(Y){return new RW(Y,this.config)}}class RW extends j{static[F]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function NW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new wW(X,_)}class IW extends b{static[F]="PgVectorBuilder";constructor(Y,Z){super(Y,"array","PgVector");this.config.dimensions=Z.dimensions}build(Y){return new TW(Y,this.config)}}class TW extends j{static[F]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){return Y.slice(1,-1).split(",").map((Z)=>Number.parseFloat(Z))}}function KW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new IW(X,_)}function BW(){return{bigint:k7,bigserial:m7,boolean:R8,char:o7,cidr:n7,customType:a7,date:Z$,doublePrecision:G$,inet:H$,integer:N8,interval:F$,json:O$,jsonb:D$,line:R$,macaddr:T$,macaddr8:C$,numeric:x$,point:y$,geometry:c$,real:i$,serial:s$,smallint:e$,smallserial:XW,text:$W,time:HW,timestamp:UW,uuid:q1,varchar:e0,bit:DW,halfvec:AW,sparsevec:NW,vector:KW}}var M5=Symbol.for("drizzle:PgInlineForeignKeys"),CW=Symbol.for("drizzle:EnableRLS");class u0 extends S{static[F]="PgTable";static Symbol=Object.assign({},S.Symbol,{InlineForeignKeys:M5,EnableRLS:CW});[M5]=[];[CW]=!1;[S.Symbol.ExtraConfigBuilder]=void 0;[S.Symbol.ExtraConfigColumns]={}}function fF(Y,Z,X,_,G=Y){let $=new u0(Y,_,G),W=typeof Z==="function"?Z(BW()):Z,H=Object.fromEntries(Object.entries(W).map(([U,E])=>{let V=E;V.setName(U);let L=V.build($);return $[M5].push(...V.buildForeignKeys(L,$)),[U,L]})),Q=Object.fromEntries(Object.entries(W).map(([U,E])=>{let V=E;V.setName(U);let L=V.buildExtraConfigColumn($);return[U,L]})),J=Object.assign($,H);if(J[S.Symbol.Columns]=H,J[S.Symbol.ExtraConfigColumns]=Q,X)J[u0.Symbol.ExtraConfigBuilder]=X;return Object.assign(J,{enableRLS:()=>{return J[u0.Symbol.EnableRLS]=!0,J}})}var T2=(Y,Z,X)=>{return fF(Y,Z,X,void 0)};function qW(...Y){if(Y[0].columns)return new I8(Y[0].columns,Y[0].name);return new I8(Y)}class I8{static[F]="PgPrimaryKeyBuilder";columns;name;constructor(Y,Z){this.columns=Y,this.name=Z}build(Y){return new jW(Y,this.columns,this.name)}}class jW{constructor(Y,Z,X){this.table=Y,this.columns=Z,this.name=X}static[F]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[u0.Symbol.Name]}_${this.columns.map((Y)=>Y.name).join("_")}_pk`}}function D1(Y,Z){if(T7(Z)&&!z5(Y)&&!A(Y,w1)&&!A(Y,N2)&&!A(Y,E0)&&!A(Y,S)&&!A(Y,V1))return new w1(Y,Z);return Y}var p6=(Y,Z)=>{return O`${Y} = ${D1(Z,Y)}`},SW=(Y,Z)=>{return O`${Y} <> ${D1(Z,Y)}`};function T8(...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("("),O.join(Z,new m0(" and ")),new m0(")")])}function PW(...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("("),O.join(Z,new m0(" or ")),new m0(")")])}function vW(Y){return O`not ${Y}`}var xW=(Y,Z)=>{return O`${Y} > ${D1(Z,Y)}`},fW=(Y,Z)=>{return O`${Y} >= ${D1(Z,Y)}`},hW=(Y,Z)=>{return O`${Y} < ${D1(Z,Y)}`},kW=(Y,Z)=>{return O`${Y} <= ${D1(Z,Y)}`};function bW(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return O`false`;return O`${Y} in ${Z.map((X)=>D1(X,Y))}`}return O`${Y} in ${D1(Z,Y)}`}function yW(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return O`true`;return O`${Y} not in ${Z.map((X)=>D1(X,Y))}`}return O`${Y} not in ${D1(Z,Y)}`}function gW(Y){return O`${Y} is null`}function pW(Y){return O`${Y} is not null`}function mW(Y){return O`exists ${Y}`}function uW(Y){return O`not exists ${Y}`}function dW(Y,Z,X){return O`${Y} between ${D1(Z,Y)} and ${D1(X,Y)}`}function cW(Y,Z,X){return O`${Y} not between ${D1(Z,Y)} and ${D1(X,Y)}`}function lW(Y,Z){return O`${Y} like ${Z}`}function oW(Y,Z){return O`${Y} not like ${Z}`}function iW(Y,Z){return O`${Y} ilike ${Z}`}function rW(Y,Z){return O`${Y} not ilike ${Z}`}function nW(Y){return O`${Y} asc`}function sW(Y){return O`${Y} desc`}class A5{constructor(Y,Z,X){this.sourceTable=Y,this.referencedTable=Z,this.relationName=X,this.referencedTableName=Z[S.Symbol.Name]}static[F]="Relation";referencedTableName;fieldName}class tW{constructor(Y,Z){this.table=Y,this.config=Z}static[F]="Relations"}class K2 extends A5{constructor(Y,Z,X,_){super(Y,Z,X?.relationName);this.config=X,this.isNullable=_}static[F]="One";withFieldName(Y){let Z=new K2(this.sourceTable,this.referencedTable,this.config,this.isNullable);return Z.fieldName=Y,Z}}class K8 extends A5{constructor(Y,Z,X){super(Y,Z,X?.relationName);this.config=X}static[F]="Many";withFieldName(Y){let Z=new K8(this.sourceTable,this.referencedTable,this.config);return Z.fieldName=Y,Z}}function aW(){return{and:T8,between:dW,eq:p6,exists:mW,gt:xW,gte:fW,ilike:iW,inArray:bW,isNull:gW,isNotNull:pW,like:lW,lt:hW,lte:kW,ne:SW,not:vW,notBetween:cW,notExists:uW,notLike:oW,notIlike:rW,notInArray:yW,or:PW,sql:O}}function eW(){return{sql:O,asc:nW,desc:sW}}function Y3(Y,Z){if(Object.keys(Y).length===1&&"default"in Y&&!A(Y.default,S))Y=Y.default;let X={},_={},G={};for(let[$,W]of Object.entries(Y))if(A(W,S)){let H=m2(W),Q=_[H];X[H]=$,G[$]={tsName:$,dbName:W[S.Symbol.Name],schema:W[S.Symbol.Schema],columns:W[S.Symbol.Columns],relations:Q?.relations??{},primaryKey:Q?.primaryKey??[]};for(let U of Object.values(W[S.Symbol.Columns]))if(U.primary)G[$].primaryKey.push(U);let J=W[S.Symbol.ExtraConfigBuilder]?.(W[S.Symbol.ExtraConfigColumns]);if(J){for(let U of Object.values(J))if(A(U,I8))G[$].primaryKey.push(...U.columns)}}else if(A(W,tW)){let H=m2(W.table),Q=X[H],J=W.config(Z(W.table)),U;for(let[E,V]of Object.entries(J))if(Q){let L=G[Q];if(L.relations[E]=V,U)L.primaryKey.push(...U)}else{if(!(H in _))_[H]={relations:{},primaryKey:U};_[H].relations[E]=V}}return{tables:G,tableNamesMap:X}}function hF(Y){return function Z(X,_){return new K2(Y,X,_,_?.fields.reduce((G,$)=>G&&$.notNull,!0)??!1)}}function kF(Y){return function Z(X,_){return new K8(Y,X,_)}}function Z3(Y,Z,X){if(A(X,K2)&&X.config)return{fields:X.config.fields,references:X.config.references};let _=Z[m2(X.referencedTable)];if(!_)throw new Error(`Table "${X.referencedTable[S.Symbol.Name]}" not found in schema`);let G=Y[_];if(!G)throw new Error(`Table "${_}" not found in schema`);let $=X.sourceTable,W=Z[m2($)];if(!W)throw new Error(`Table "${$[S.Symbol.Name]}" not found in schema`);let H=[];for(let Q of Object.values(G.relations))if(X.relationName&&X!==Q&&Q.relationName===X.relationName||!X.relationName&&Q.referencedTable===X.sourceTable)H.push(Q);if(H.length>1)throw X.relationName?new Error(`There are multiple relations with name "${X.relationName}" in table "${_}"`):new Error(`There are multiple relations between "${_}" and "${X.sourceTable[S.Symbol.Name]}". Please specify relation name`);if(H[0]&&A(H[0],K2)&&H[0].config)return{fields:H[0].config.references,references:H[0].config.fields};throw new Error(`There is not enough information to infer relation "${W}.${X.fieldName}"`)}function X3(Y){return{one:hF(Y),many:kF(Y)}}function m6(Y,Z,X,_,G=($)=>$){let $={};for(let[W,H]of _.entries())if(H.isJson){let Q=Z.relations[H.tsKey],J=X[W],U=typeof J==="string"?JSON.parse(J):J;$[H.tsKey]=A(Q,K2)?U&&m6(Y,Y[H.relationTableTsKey],U,H.selection,G):U.map((E)=>m6(Y,Y[H.relationTableTsKey],E,H.selection,G))}else{let Q=G(X[W]),J=H.field,U;if(A(J,E0))U=J;else if(A(J,f))U=J.decoder;else U=J.sql.decoder;$[H.tsKey]=Q===null?null:U.mapFromDriverValue(Q)}return $}import WE from"os";import HE from"fs";var u6=new Map,w5=new Map,R5=Symbol("OriginError"),N4={};class j1 extends Promise{constructor(Y,Z,X,_,G={}){let $,W;super((H,Q)=>{$=H,W=Q});this.tagged=Array.isArray(Y.raw),this.strings=Y,this.args=Z,this.handler=X,this.canceller=_,this.options=G,this.state=null,this.statement=null,this.resolve=(H)=>(this.active=!1,$(H)),this.reject=(H)=>(this.active=!1,W(H)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[R5]=this.handler.debug?new Error:this.tagged&&bF(this.strings)}get origin(){return(this.handler.debug?this[R5].stack:this.tagged&&w5.has(this.strings)?w5.get(this.strings):w5.set(this.strings,this[R5].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(Y=1,Z){if(this.options.simple=!1,typeof Y==="function")Z=Y,Y=1;if(this.cursorRows=Y,typeof Z==="function")return this.cursorFn=Z,this;let X;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};X&&X();let _=new Promise((G,$)=>{this.cursorFn=(W)=>{return G({value:W,done:!1}),new Promise((H)=>X=H)},this.resolve=()=>(this.active=!1,G({done:!0})),this.reject=(W)=>(this.active=!1,$(W))});return this.execute(),_},return(){return X&&X(N4),{done:!0}}})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw new Error(".stream has been renamed to .forEach")}forEach(Y){return this.forEachFn=Y,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}}function bF(Y){if(u6.has(Y))return u6.get(Y);let Z=Error.stackTraceLimit;return Error.stackTraceLimit=4,u6.set(Y,new Error),Error.stackTraceLimit=Z,u6.get(Y)}class I4 extends Error{constructor(Y){super(Y.message);this.name=this.constructor.name,Object.assign(this,Y)}}var f0={connection:_3,postgres:G3,generic:$3,notSupported:W3};function _3(Y,Z,X){let{host:_,port:G}=X||Z,$=Object.assign(new Error("write "+Y+" "+(Z.path||_+":"+G)),{code:Y,errno:Y,address:Z.path||_},Z.path?{}:{port:G});return Error.captureStackTrace($,_3),$}function G3(Y){let Z=new I4(Y);return Error.captureStackTrace(Z,G3),Z}function $3(Y,Z){let X=Object.assign(new Error(Y+": "+Z),{code:Y});return Error.captureStackTrace(X,$3),X}function W3(Y){let Z=Object.assign(new Error(Y+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:Y});return Error.captureStackTrace(Z,W3),Z}var yF={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 l6{then(){N5()}catch(){N5()}finally(){N5()}}class j8 extends l6{constructor(Y){super();this.value=r6(Y)}}class r1 extends l6{constructor(Y,Z,X){super();this.value=Y,this.type=Z,this.array=X}}class o6 extends l6{constructor(Y,Z){super();this.first=Y,this.rest=Z}build(Y,Z,X,_){let G=gF.map(([$,W])=>({fn:W,i:Y.search($)})).sort(($,W)=>$.i-W.i).pop();return G.i===-1?C5(this.first,_):G.fn(this.first,this.rest,Z,X,_)}}function i6(Y,Z,X,_){let G=Y instanceof r1?Y.value:Y;if(G===void 0){if(Y instanceof r1?Y.value=_.transform.undefined:G=Y=_.transform.undefined,G===void 0)throw f0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+X.push(Y instanceof r1?(Z.push(Y.value),Y.array?Y.array[Y.type||c6(Y.value)]||Y.type||U3(Y.value):Y.type):(Z.push(Y),c6(Y)))}var J3=F3(yF);function K5(Y,Z,X,_,G,$){for(let W=1;W<Y.strings.length;W++)Z+=B5(Z,X,_,G,$)+Y.strings[W],X=Y.args[W];return Z}function B5(Y,Z,X,_,G){return Z instanceof o6?Z.build(Y,X,_,G):Z instanceof j1?T5(Z,X,_,G):Z instanceof j8?Z.value:Z&&Z[0]instanceof j1?Z.reduce(($,W)=>$+" "+T5(W,X,_,G),""):i6(Z,X,_,G)}function T5(Y,Z,X,_){return Y.fragment=!0,K5(Y,Y.strings[0],Y.args[0],Z,X,_)}function Q3(Y,Z,X,_,G){return Y.map(($)=>"("+_.map((W)=>B5("values",$[W],Z,X,G)).join(",")+")").join(",")}function H3(Y,Z,X,_,G){let $=Array.isArray(Y[0]),W=Z.length?Z.flat():Object.keys($?Y[0]:Y);return Q3($?Y:[Y],X,_,W,G)}function d6(Y,Z,X,_,G){if(typeof Y==="string"&&(Y=[Y].concat(Z)),Array.isArray(Y))return C5(Y,G);let $;return(Z.length?Z.flat():Object.keys(Y)).map((H)=>{return $=Y[H],($ instanceof j1?T5($,X,_,G):$ instanceof j8?$.value:i6($,X,_,G))+" as "+r6(G.transform.column.to?G.transform.column.to(H):H)}).join(",")}var gF=Object.entries({values:H3,in:(...Y)=>{let Z=H3(...Y);return Z==="()"?"(null)":Z},select:d6,as:d6,returning:d6,"\\(":d6,update(Y,Z,X,_,G){return(Z.length?Z.flat():Object.keys(Y)).map(($)=>r6(G.transform.column.to?G.transform.column.to($):$)+"="+B5("values",Y[$],X,_,G))},insert(Y,Z,X,_,G){let $=Z.length?Z.flat():Object.keys(Array.isArray(Y)?Y[0]:Y);return"("+C5($,G)+")values"+Q3(Array.isArray(Y)?Y:[Y],X,_,$,G)}}).map(([Y,Z])=>[new RegExp("((?:^|[\\s(])"+Y+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),Z]);function N5(){throw f0.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:pF,parsers:mF}=J3;function U3(Y){if(Array.isArray(Y))return U3(Y[0]);return typeof Y==="string"?1009:0}var z3=function(Y){let Z=F3(Y||{});return{serializers:Object.assign({},pF,Z.serializers),parsers:Object.assign({},mF,Z.parsers)}};function F3(Y){return Object.keys(Y).reduce((Z,X)=>{if(Y[X].from&&[].concat(Y[X].from).forEach((_)=>Z.parsers[_]=Y[X].parse),Y[X].serialize)Z.serializers[Y[X].to]=Y[X].serialize,Y[X].from&&[].concat(Y[X].from).forEach((_)=>Z.serializers[_]=Y[X].serialize);return Z},{parsers:{},serializers:{}})}function C5(Y,{transform:{column:Z}}){return Y.map((X)=>r6(Z.to?Z.to(X):X)).join(",")}var r6=function Y(Z){return'"'+Z.replace(/"/g,'""').replace(/\./g,'"."')+'"'},c6=function Y(Z){return Z instanceof r1?Z.type:Z instanceof Date?1184:Z instanceof Uint8Array?17:Z===!0||Z===!1?16:typeof Z==="bigint"?20:Array.isArray(Z)?Y(Z[0]):0},uF=/\\/g,dF=/"/g;function cF(Y){return Y.replace(uF,"\\\\").replace(dF,"\\\"")}var E3=function Y(Z,X,_,G){if(Array.isArray(Z)===!1)return Z;if(!Z.length)return"{}";let $=Z[0],W=G===1020?";":",";if(Array.isArray($)&&!$.type)return"{"+Z.map((H)=>Y(H,X,_,G)).join(W)+"}";return"{"+Z.map((H)=>{if(H===void 0){if(H=_.transform.undefined,H===void 0)throw f0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return H===null?"null":'"'+cF(X?X(H.type?H.value:H):""+H)+'"'}).join(W)+"}"},I5={i:0,char:null,str:"",quoted:!1,last:0},O3=function Y(Z,X,_){return I5.i=I5.last=0,V3(I5,Z,X,_)};function V3(Y,Z,X,_){let G=[],$=_===1020?";":",";for(;Y.i<Z.length;Y.i++){if(Y.char=Z[Y.i],Y.quoted)if(Y.char==="\\")Y.str+=Z[++Y.i];else if(Y.char==='"')G.push(X?X(Y.str):Y.str),Y.str="",Y.quoted=Z[Y.i+1]==='"',Y.last=Y.i+2;else Y.str+=Y.char;else if(Y.char==='"')Y.quoted=!0;else if(Y.char==="{")Y.last=++Y.i,G.push(V3(Y,Z,X,_));else if(Y.char==="}"){Y.quoted=!1,Y.last<Y.i&&G.push(X?X(Z.slice(Y.last,Y.i)):Z.slice(Y.last,Y.i)),Y.last=Y.i+1;break}else if(Y.char===$&&Y.p!=="}"&&Y.p!=='"')G.push(X?X(Z.slice(Y.last,Y.i)):Z.slice(Y.last,Y.i)),Y.last=Y.i+1;Y.p=Y.char}return Y.last<Y.i&&G.push(X?X(Z.slice(Y.last,Y.i+1)):Z.slice(Y.last,Y.i+1)),G}var u2=(Y)=>{let Z=Y[0];for(let X=1;X<Y.length;X++)Z+=Y[X]==="_"?Y[++X].toUpperCase():Y[X];return Z},d2=(Y)=>{let Z=Y[0].toUpperCase();for(let X=1;X<Y.length;X++)Z+=Y[X]==="_"?Y[++X].toUpperCase():Y[X];return Z},c2=(Y)=>Y.replace(/_/g,"-"),B8=(Y)=>Y.replace(/([A-Z])/g,"_$1").toLowerCase(),C8=(Y)=>(Y.slice(0,1)+Y.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),q8=(Y)=>Y.replace(/-/g,"_");function q5(Y){return function Z(X,_){return typeof X==="object"&&X!==null&&(_.type===114||_.type===3802)?Array.isArray(X)?X.map((G)=>Z(G,_)):Object.entries(X).reduce((G,[$,W])=>Object.assign(G,{[Y($)]:Z(W,_)}),{}):X}}u2.column={from:u2};u2.value={from:q5(u2)};B8.column={to:B8};var j5={...u2};j5.column.to=B8;d2.column={from:d2};d2.value={from:q5(d2)};C8.column={to:C8};var S5={...d2};S5.column.to=C8;c2.column={from:c2};c2.value={from:q5(c2)};q8.column={to:q8};var P5={...c2};P5.column.to=q8;import D3 from"net";import rF from"tls";import S8 from"crypto";import v5 from"stream";import{performance as L3}from"perf_hooks";class l2 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=lF;function lF(Y=[]){let Z=Y.slice(),X=0;return{get length(){return Z.length-X},remove:(_)=>{let G=Z.indexOf(_);return G===-1?null:(Z.splice(G,1),_)},push:(_)=>(Z.push(_),_),shift:()=>{let _=Z[X++];if(X===Z.length)X=0,Z=[];else Z[X-1]=void 0;return _}}}var Y1=Buffer.allocUnsafe(256),oF="BCcDdEFfHPpQSX".split("").reduce((Y,Z)=>{let X=Z.charCodeAt(0);return Y[Z]=()=>{return Y1[0]=X,U0.i=5,U0},Y},{}),U0=Object.assign(iF,oF,{N:String.fromCharCode(0),i:0,inc(Y){return U0.i+=Y,U0},str(Y){let Z=Buffer.byteLength(Y);return n6(Z),U0.i+=Y1.write(Y,U0.i,Z,"utf8"),U0},i16(Y){return n6(2),Y1.writeUInt16BE(Y,U0.i),U0.i+=2,U0},i32(Y,Z){if(Z||Z===0)return Y1.writeUInt32BE(Y,Z),U0;return n6(4),Y1.writeUInt32BE(Y,U0.i),U0.i+=4,U0},z(Y){return n6(Y),Y1.fill(0,U0.i,U0.i+Y),U0.i+=Y,U0},raw(Y){return Y1=Buffer.concat([Y1.subarray(0,U0.i),Y]),U0.i=Y1.length,U0},end(Y=1){Y1.writeUInt32BE(U0.i-Y,Y);let Z=Y1.subarray(0,U0.i);return U0.i=0,Y1=Buffer.allocUnsafe(256),Z}}),c=U0;function n6(Y){if(Y1.length-U0.i<Y){let Z=Y1,X=Z.length;Y1=Buffer.allocUnsafe(X+(X>>1)+Y),Z.copy(Y1)}}function iF(){return U0.i=0,U0}var h5=w3,nF=1,B2=c().S().end(),M3=c().H().end(),sF=c().i32(8).i32(80877103).end(8),tF=Buffer.concat([c().E().str(c.N).i32(0).end(),B2]),aF=c().D().str("S").str(c.N).end(),T4=()=>{},eF=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),YE={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 w3(Y,Z={},{onopen:X=T4,onend:_=T4,onclose:G=T4}={}){let{ssl:$,max:W,user:H,host:Q,port:J,database:U,parsers:E,transform:V,onnotice:L,onnotify:w,onparameter:M,max_pipeline:k,keep_alive:h,backoff:x,target_session_attrs:m}=Y,K=R1(),I=nF++,q={pid:null,secret:null},C=f5(QY,Y.idle_timeout),g=f5(QY,Y.max_lifetime),n=f5(d3,Y.connect_timeout),T=null,t,p=new l2,a=Buffer.alloc(0),z0=Y.fetch_types,h0={},J1={},n1=Math.random().toString(36).slice(2),B=1,u=0,G0=0,I0=0,k0=0,s=0,J0=0,v0=0,K0=null,A0=null,i0=!1,V0=null,S1=null,c0=null,z2=null,b0=null,w0=null,P1=null,p1=null,v=null,q4=null,r0={queue:Z.closed,idleTimer:C,connect(z){c0=z,JX()},terminate:S4,execute:j4,cancel:g3,end:QY,count:0,id:I};return Z.closed&&Z.closed.push(r0),r0;async function y3(){let z;try{z=Y.socket?await Promise.resolve(Y.socket(Y)):new D3.Socket}catch(D){n2(D);return}return z.on("error",n2),z.on("close",QX),z.on("drain",WX),z}async function g3({pid:z,secret:D},l,$0){try{t=c().i32(16).i32(80877102).i32(z).i32(D).end(16),await HX(),T.once("error",$0),T.once("close",l)}catch(C0){$0(C0)}}function j4(z){if(i0)return y8(z,f0.connection("CONNECTION_DESTROYED",Y));if(z.cancelled)return;try{return z.state=q,v?K.push(z):(v=z,v.active=!0),u3(z),l0(p3(z))&&!z.describeFirst&&!z.cursorFn&&K.length<k&&(!z.options.onexecute||z.options.onexecute(r0))}catch(D){return K.length===0&&l0(B2),m1(D),!0}}function p3(z){if(z.parameters.length>=65534)throw f0.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return z.options.simple?c().Q().str(z.statement.string+c.N).end():z.describeFirst?Buffer.concat([_X(z),M3]):z.prepare?z.prepared?b8(z):Buffer.concat([_X(z),b8(z)]):m3(z)}function _X(z){return Buffer.concat([zX(z.statement.string,z.parameters,z.statement.types,z.statement.name),CH("S",z.statement.name)])}function b8(z){return Buffer.concat([BH(z.parameters,z.statement.types,z.statement.name,z.cursorName),z.cursorFn?FX("",z.cursorRows):tF])}function m3(z){return Buffer.concat([zX(z.statement.string,z.parameters,z.statement.types),aF,b8(z)])}function u3(z){let D=[],l=[],$0=K5(z,z.strings[0],z.args[0],D,l,Y);!z.tagged&&z.args.forEach((C0)=>i6(C0,D,l,Y)),z.prepare=Y.prepare&&("prepare"in z.options?z.options.prepare:!0),z.string=$0,z.signature=z.prepare&&l+$0,z.onlyDescribe&&delete J1[z.signature],z.parameters=z.parameters||D,z.prepared=z.prepare&&z.signature in J1,z.describeFirst=z.onlyDescribe||D.length&&!z.prepared,z.statement=z.prepared?J1[z.signature]:{string:$0,types:l,name:z.prepare?n1+B++:""},typeof Y.debug==="function"&&Y.debug(I,$0,D,l)}function l0(z,D){if(w0=w0?Buffer.concat([w0,z]):Buffer.from(z),D||w0.length>=1024)return GX(D);return A0===null&&(A0=setImmediate(GX)),!0}function GX(z){let D=T.write(w0,z);return A0!==null&&clearImmediate(A0),w0=A0=null,D}function d3(){m1(f0.connection("CONNECT_TIMEOUT",Y,T)),T.destroy()}async function $X(){if(l0(sF),!await new Promise((D)=>T.once("data",(l)=>D(l[0]===83)))&&$==="prefer")return r2();T.removeAllListeners(),T=rF.connect({socket:T,servername:D3.isIP(T.host)?void 0:T.host,...$==="require"||$==="allow"||$==="prefer"?{rejectUnauthorized:!1}:$==="verify-full"?{}:typeof $==="object"?$:{}}),T.on("secureConnect",r2),T.on("error",n2),T.on("close",QX),T.on("drain",WX)}function WX(){!v&&X(r0)}function JY(z){if(V0){if(V0.push(z),G0-=z.length,G0>0)return}a=V0?Buffer.concat(V0,s-G0):a.length===0?z:Buffer.concat([a,z],a.length+z.length);while(a.length>4){if(s=a.readUInt32BE(1),s>=a.length){G0=s-a.length,V0=[a];break}try{c3(a.subarray(0,s+1))}catch(D){v&&(v.cursorFn||v.describeFirst)&&l0(B2),m1(D)}a=a.subarray(s+1),G0=0,V0=null}}async function HX(){if(i0=!1,h0={},T||(T=await y3()),!T)return;if(n.start(),Y.socket)return $?$X():r2();if(T.on("connect",$?$X:r2),Y.path)return T.connect(Y.path);T.ssl=$,T.connect(J[I0],Q[I0]),T.host=Q[I0],T.port=J[I0],I0=(I0+1)%J.length}function JX(){setTimeout(HX,u?u+J0-L3.now():0)}function r2(){try{J1={},z0=Y.fetch_types,n1=Math.random().toString(36).slice(2),B=1,g.start(),T.on("data",JY),h&&T.setKeepAlive&&T.setKeepAlive(!0,1000*h);let z=jH();l0(z)}catch(z){n2(z)}}function n2(z){if(r0.queue===Z.connecting&&Y.host[k0+1])return;m1(z);while(K.length)y8(K.shift(),z)}function m1(z){b0&&(b0.destroy(z),b0=null),v&&y8(v,z),c0&&(y8(c0,z),c0=null)}function y8(z,D){if(z.reserve)return z.reject(D);if(!D||typeof D!=="object")D=new Error(D);"query"in D||"parameters"in D||Object.defineProperties(D,{stack:{value:D.stack+z.origin.replace(/.*\n/,`
61
- `),enumerable:Y.debug},query:{value:z.string,enumerable:Y.debug},parameters:{value:z.parameters,enumerable:Y.debug},args:{value:z.args,enumerable:Y.debug},types:{value:z.statement&&z.statement.types,enumerable:Y.debug}}),z.reject(D)}function QY(){return z2||(!r0.reserved&&_(r0),!r0.reserved&&!c0&&!v&&K.length===0?(S4(),new Promise((z)=>T&&T.readyState!=="closed"?T.once("close",z):z())):z2=new Promise((z)=>P1=z))}function S4(){if(i0=!0,b0||v||c0||K.length)n2(f0.connection("CONNECTION_DESTROYED",Y));if(clearImmediate(A0),T)T.removeListener("data",JY),T.removeListener("connect",r2),T.readyState==="open"&&T.end(c().X().end());P1&&(P1(),z2=P1=null)}async function QX(z){if(a=Buffer.alloc(0),G0=0,V0=null,clearImmediate(A0),T.removeListener("data",JY),T.removeListener("connect",r2),C.cancel(),g.cancel(),n.cancel(),T.removeAllListeners(),T=null,c0)return JX();!z&&(v||K.length)&&n2(f0.connection("CONNECTION_CLOSED",Y,T)),u=L3.now(),z&&Y.shared.retries++,J0=(typeof x==="function"?x(Y.shared.retries):x)*1000,G(r0,f0.connection("CONNECTION_CLOSED",Y,T))}function c3(z,D=z[0]){(D===68?l3:D===100?MH:D===65?FH:D===83?o3:D===90?i3:D===67?r3:D===50?UX:D===49?n3:D===116?s3:D===84?t3:D===82?a3:D===110?GH:D===75?$H:D===69?UH:D===115?EH:D===51?OH:D===71?VH:D===78?wH:D===72?DH:D===99?AH:D===73?RH:D===86?NH:D===118?IH:D===87?LH:TH)(z)}function l3(z){let D=7,l,$0,C0,n0=v.isRaw?new Array(v.statement.columns.length):{};for(let Z1=0;Z1<v.statement.columns.length;Z1++)$0=v.statement.columns[Z1],l=z.readInt32BE(D),D+=4,C0=l===-1?null:v.isRaw===!0?z.subarray(D,D+=l):$0.parser===void 0?z.toString("utf8",D,D+=l):$0.parser.array===!0?$0.parser(z.toString("utf8",D+1,D+=l)):$0.parser(z.toString("utf8",D,D+=l)),v.isRaw?n0[Z1]=v.isRaw===!0?C0:V.value.from?V.value.from(C0,$0):C0:n0[$0.name]=V.value.from?V.value.from(C0,$0):C0;v.forEachFn?v.forEachFn(V.row.from?V.row.from(n0):n0,p):p[v0++]=V.row.from?V.row.from(n0):n0}function o3(z){let[D,l]=z.toString("utf8",5,z.length-1).split(c.N);if(h0[D]=l,Y.parameters[D]!==l)Y.parameters[D]=l,M&&M(D,l)}function i3(z){if(v&&v.options.simple&&v.resolve(S1||p),v=S1=null,p=new l2,n.cancel(),c0){if(m){if(!h0.in_hot_standby||!h0.default_transaction_read_only)return QH();else if(JH(m,h0))return S4()}if(z0)return c0.reserve&&(c0=null),WH();c0&&!c0.reserve&&j4(c0),Y.shared.retries=k0=0,c0=null;return}while(K.length&&(v=K.shift())&&(v.active=!0,v.cancelled))w3(Y).cancel(v.state,v.cancelled.resolve,v.cancelled.reject);if(v)return;r0.reserved?!r0.reserved.release&&z[5]===73?z2?S4():(r0.reserved=null,X(r0)):r0.reserved():z2?S4():X(r0)}function r3(z){v0=0;for(let D=z.length-1;D>0;D--){if(z[D]===32&&z[D+1]<58&&p.count===null)p.count=+z.toString("utf8",D+1,z.length-1);if(z[D-1]>=65){p.command=z.toString("utf8",5,D),p.state=q;break}}if(q4&&(q4(),q4=null),p.command==="BEGIN"&&W!==1&&!r0.reserved)return m1(f0.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(v.options.simple)return UX();if(v.cursorFn)p.count&&v.cursorFn(p),l0(B2);v.resolve(p)}function n3(){v.parsing=!1}function UX(){!p.statement&&(p.statement=v.statement),p.columns=v.statement.columns}function s3(z){let D=z.readUInt16BE(5);for(let l=0;l<D;++l)!v.statement.types[l]&&(v.statement.types[l]=z.readUInt32BE(7+l*4));v.prepare&&(J1[v.signature]=v.statement),v.describeFirst&&!v.onlyDescribe&&(l0(b8(v)),v.describeFirst=!1)}function t3(z){if(p.command)S1=S1||[p],S1.push(p=new l2),p.count=null,v.statement.columns=null;let D=z.readUInt16BE(5),l=7,$0;v.statement.columns=Array(D);for(let C0=0;C0<D;++C0){$0=l;while(z[l++]!==0);let n0=z.readUInt32BE(l),Z1=z.readUInt16BE(l+4),F2=z.readUInt32BE(l+6);v.statement.columns[C0]={name:V.column.from?V.column.from(z.toString("utf8",$0,l-1)):z.toString("utf8",$0,l-1),parser:E[F2],table:n0,number:Z1,type:F2},l+=18}if(p.statement=v.statement,v.onlyDescribe)return v.resolve(v.statement),l0(B2)}async function a3(z,D=z.readUInt32BE(5)){(D===3?e3:D===5?YH:D===10?ZH:D===11?XH:D===12?_H:D!==0?KH:T4)(z,D)}async function e3(){let z=await UY();l0(c().p().str(z).z(1).end())}async function YH(z){let D="md5"+await A3(Buffer.concat([Buffer.from(await A3(await UY()+H)),z.subarray(9)]));l0(c().p().str(D).z(1).end())}async function ZH(){p1=(await S8.randomBytes(18)).toString("base64"),c().p().str("SCRAM-SHA-256"+c.N);let z=c.i;l0(c.inc(4).str("n,,n=*,r="+p1).i32(c.i-z-4,z).end())}async function XH(z){let D=z.toString("utf8",9).split(",").reduce((Z1,F2)=>(Z1[F2[0]]=F2.slice(2),Z1),{}),l=await S8.pbkdf2Sync(await UY(),Buffer.from(D.s,"base64"),parseInt(D.i),32,"sha256"),$0=await s6(l,"Client Key"),C0="n=*,r="+p1+",r="+D.r+",s="+D.s+",i="+D.i+",c=biws,r="+D.r;K0=(await s6(await s6(l,"Server Key"),C0)).toString("base64");let n0="c=biws,r="+D.r+",p="+XE($0,Buffer.from(await s6(await ZE($0),C0))).toString("base64");l0(c().p().str(n0).end())}function _H(z){if(z.toString("utf8",9).split(c.N,1)[0].slice(2)===K0)return;m1(f0.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),T.destroy()}function UY(){return Promise.resolve(typeof Y.pass==="function"?Y.pass():Y.pass)}function GH(){if(p.statement=v.statement,p.statement.columns=[],v.onlyDescribe)return v.resolve(v.statement),l0(B2)}function $H(z){q.pid=z.readUInt32BE(5),q.secret=z.readUInt32BE(9)}async function WH(){z0=!1,(await new j1([`
59
+ ${V.trace}`:`No previous disposal trace for ${H} was found.`),X}let J=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:W.stringKey}).filter(([,{source:V}])=>V!==G).map(([V])=>a0(V));if(_)$.moleculeGraph.delete(G);$.moleculeGraph.set({upstreamMoleculeKey:Q.stringKey,downstreamMoleculeKey:W.stringKey},{source:Q.stringKey});let U={type:"molecule_transfer",key:W.key,exclusive:Boolean(_),from:J,to:[Q.key],timestamp:Date.now()};if($1($)&&$.transactionMeta.phase==="building")$.transactionMeta.update.subEvents.push(U);return X}function uz(Y,Z,X){switch(Z){case"newValue":c9(Y,X);break;case"oldValue":Q8(X,Y.token);break}}function dz(Y,Z,X){switch(Z){case"newValue":Q8(X,Y.token);break;case"oldValue":if(c9(Y,X),Y.subType==="atom")X.valueMap.set(Y.token.key,Y.value);break}}function c9(Y,Z){let{family:X}=Y.token;if(X){let _=Z.families.get(X.key);if(_)b2(Z,_,a0(X.subKey),k2)}}function cz(Y,Z,X){switch(Z){case"newValue":D4(X,Y.provenance,Y.key);break;case"oldValue":L4(X,Y.key);break}}function lz(Y,Z,X){switch(Z){case"newValue":L4(X,Y.key);break;case"oldValue":{let _=Y.provenance.map(a0);D4(X,_,Y.key);for(let[G,$]of Y.values){let W=X.families.get(G);if(W){b2(X,W,Y.key,k2);let H=`${G}(${Q0(Y.key)})`;X.valueMap.set(H,$)}}}break}}function oz(Y,Z,X){switch(Z){case"newValue":for(let _ of Y.to)J8(X,_,Y.key,Y.exclusive?"exclusive":void 0);break;case"oldValue":{let _="exclusive";for(let G of Y.from)J8(X,G,Y.key,_),_=void 0}break}}function l9(Y,Z,X){let _=Y==="newValue"?Z.subEvents:[...Z.subEvents].reverse();for(let G of _)switch(G.type){case"atom_update":pz(Y,G,X);break;case"state_creation":uz(G,Y,X);break;case"state_disposal":dz(G,Y,X);break;case"molecule_creation":cz(G,Y,X);break;case"molecule_disposal":lz(G,Y,X);break;case"molecule_transfer":oz(G,Y,X);break;case"transaction_outcome":l9(Y,G,X);break}}function o9(Y,Z){return Y.transactionMeta.actionContinuities.getRelatedKey(Z)}function iz(Y,Z){return Y.transactionMeta.epoch.get(Z)}function rz(Y,Z){if(!y2(Y))return;let _=o9(Y,Z);if(_===void 0)return;return iz(Y,_)}function nz(Y,Z,X){if(!y2(Y))return;let G=o9(Y,Z);if(G!==void 0)Y.transactionMeta.epoch.set(G,X)}var sz=(Y,Z)=>{let X=Y0(Z),{parent:_}=X;if(_===null||!$1(X)||X.transactionMeta?.phase!=="building"){Z.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}X.transactionMeta.phase="applying",X.transactionMeta.update.output=Y,_.child=null,_.on.transactionApplying.next(X.transactionMeta);let{subEvents:G}=X.transactionMeta.update;if(Z.logger.info("\uD83D\uDEC4","transaction",X.transactionMeta.update.token.key,`Applying transaction with ${G.length} updates:`,G),l9("newValue",X.transactionMeta.update,_),y2(_))nz(_,X.transactionMeta.update.token.key,X.transactionMeta.update.epoch),j0(Z,{key:X.transactionMeta.update.token.key,type:"transaction"})?.subject.next(X.transactionMeta.update),Z.logger.info("\uD83D\uDEEC","transaction",X.transactionMeta.update.token.key,"Finished applying transaction.");else if($1(_))_.transactionMeta.update.subEvents.push(X.transactionMeta.update);_.on.transactionApplying.next(null)};function tz(Y){return{store:Y}}var o1=class extends Map{deleted=new Set;source;constructor(Y){super();this.source=Y}get(Y){if(super.has(Y))return super.get(Y);if(!this.deleted.has(Y)&&this.source.has(Y))return this.source.get(Y);return}set(Y,Z){return this.deleted.delete(Y),super.set(Y,Z)}hasOwn(Y){return super.has(Y)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){return this.deleted.add(Y),super.delete(Y)}},az=(Y,Z,X,_)=>{let G=Y0(Y),$={parent:G,child:null,on:G.on,loggers:G.loggers,logger:G.logger,config:G.config,atoms:new o1(G.atoms),atomsThatAreDefault:new Set(G.atomsThatAreDefault),families:new o1(G.families),joins:new o1(G.joins),operation:{open:!1},readonlySelectors:new o1(G.readonlySelectors),timelines:new o1(G.timelines),timelineTopics:new G1(G.timelineTopics.toJSON()),trackers:new Map,transactions:new o1(G.transactions),selectorAtoms:new G1(G.selectorAtoms.toJSON()),selectorGraph:new G1(G.selectorGraph.toJSON(),{makeContentKey:(...J)=>J.sort().join(":")}),writableSelectors:new o1(G.writableSelectors),valueMap:new o1(G.valueMap),defaults:G.defaults,disposalTraces:Y.disposalTraces.copy(),molecules:new o1(G.molecules),moleculeGraph:new G1(G.moleculeGraph.toJSON(),{makeContentKey:G.moleculeGraph.makeContentKey}),moleculeData:new G1(G.moleculeData.toJSON(),{makeContentKey:G.moleculeData.makeContentKey}),moleculeJoins:new G1(G.moleculeJoins.toJSON(),{makeContentKey:G.moleculeJoins.makeContentKey}),miscResources:new o1(G.miscResources)},W=rz(Y,Z.key),H={phase:"building",update:{type:"transaction_outcome",token:Z,id:_,epoch:W===void 0?NaN:W+1,timestamp:Date.now(),subEvents:[],params:X,output:void 0},toolkit:{get:(...J)=>k1(Q,...J),set:(...J)=>{B1(Q,...J)},reset:(...J)=>{D6(Q,...J)},run:(J,U=I9())=>PZ(Q,J,U),find:(...J)=>q0(Y,...J),json:(J)=>g2(Q,J),dispose:(...J)=>{Q8(Q,...J)},env:()=>tz(Q)}},Q=Object.assign($,{transactionMeta:H});return G.child=Q,Y.logger.info("\uD83D\uDEEB","transaction",Z.key,"Building transaction with params:",X),Q};function vZ(Y,Z){let{key:X}=Z,_=Y.transactions.has(X),G={key:X,type:"transaction",run:(H,Q)=>{let J=b1(G),U=az(Y,J,H,Q);try{let E=Y0(Y),{toolkit:V}=U.transactionMeta,L=Z.do(V,...H);return sz(L,E),L}catch(E){throw kz($),Y.logger.warn("\uD83D\uDCA5","transaction",X,"caught:",E),E}},install:(H)=>vZ(H,Z),subject:new W0},$=Y0(Y);$.transactions.set(X,G);let W=b1(G);if(!_)Y.on.transactionCreation.next(W);return W}function ez(Y,Z,X){return j0(Y,Z)(X)}var k2=Symbol("MUST_NOT_EXIST");function b2(Y,Z,X,_){let G,$;switch(_){case k2:$=!0;break;case void 0:$=!1;break}let W=Q0(X),H=Y.molecules.get(W);if(!H&&Y.config.lifespan==="immortal"){let Q=P9(Z,X,Pz);return Y.logger.warn("\uD83D\uDCA3","key",W,"was used to mint a counterfeit token for",Z.type,`"${Z.key}"`),Q}if($){G=ez(Y,Z,X);let Q=Y0(Y);if(G.family){if(y2(Q))switch(G.type){case"atom":case"mutable_atom":Y.on.atomCreation.next(G);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":Y.on.selectorCreation.next(G);break}else if($1(Q)&&Q.on.transactionApplying.state===null)Q.transactionMeta.update.subEvents.push({type:"state_creation",token:G,timestamp:Date.now()})}if(H)Q.moleculeData.set(W,Z.key)}else G=P9(Z,X);return G}var gZ=Symbol("OWN_OP"),YF=Symbol("JOIN_OP");function uZ(Y,Z,...X){let _,G,$,W,H,Q;if(X.length===2){if($=X[0],Q=X[1],"family"in $)if(W=mZ(Y,$),H=a0($.family.subKey),_=z8(Y,W,H),!_)G=b2(Y,W,H,k2),$=G;else $=_}else if(W=X[0],H=X[1],Q=X[2],_=z8(Y,W,H),!_)G=b2(Y,W,H,k2),$=G;else $=_;let J=Q===M6?"reset":"set",U;if(Z===gZ){let w=b9(Y,$);if(typeof w==="number"){let h=w,k=Y.on.operationClose.subscribe(`waiting to ${J} "${$.key}" at T-${h}`,function x(){k(),Y.logger.info("\uD83D\uDFE2",$.type,$.key,"resuming deferred",J,`from T-${h}`),uZ(Y,Z,$,Q)});return}U=w}else U=Y;if("counterfeit"in $&&"family"in $){let w=$.family.subKey,M=Y.disposalTraces.buffer.find((h)=>h?.key===w);Y.logger.error("\u274C",$.type,$.key,"could not be",J,"because key",w,"is not allocated.",M?`this key was previously disposed:${M.trace}`:"(no previous disposal trace found)");return}let E=j0(U,$),V;if(Q===M6)V=bz(U,E);else V=gz(U,E,Q);let L=Boolean(G);if(d9(U,E,V,L),Z===gZ)y9(U)}var i9=(Y,Z)=>Y0(Y).atoms.has(Z),ZF=(Y,Z)=>Y0(Y).writableSelectors.has(Z),XF=(Y,Z)=>Y0(Y).readonlySelectors.has(Z),_F=(Y,Z)=>i9(Y,Z)||ZF(Y,Z)||XF(Y,Z);function x9(Y,Z){return Y0(Y).selectorGraph.getRelationEntries({downstreamSelectorKey:Z}).filter(([_,{source:G}])=>G!==Z).map(([_,{source:G}])=>G).filter((_)=>_F(Y,_))}function A6(Y,Z,X=new Set){let _=x9(Y,Z),G=new Map;while(_.length>0){let $=_.pop();if(X.has($))continue;if(X.add($),i9(Y,$)){let W=Y.atoms.get($);G.set(W.key,W)}else _.push(...x9(Y,$))}return G}function GF(Y,Z,X,_,G){let $=Y0(Y),{type:W,key:H}=_;if(W==="atom"||W==="mutable_atom")$.selectorAtoms.set({selectorKey:X,atomKey:H}),Y.logger.info("\uD83D\uDD0D",Z,X,`discovers root atom "${H}"`);else{let Q=A6(Y,H,G);Y.logger.info("\uD83D\uDD0D",Z,X,`discovers root atoms: [ ${[...Q.values()].map((J)=>`"${J.key}"`).join(", ")} ]`);for(let{key:J}of Q.values())$.selectorAtoms=$.selectorAtoms.set({selectorKey:X,atomKey:J})}G.add(H)}function R6(Y,Z,X,_){return{get:(...G)=>{let $=Y0(Y),{token:W,familyToken:H,subKey:Q}=rZ(Y,...G),J;if("counterfeit"in W&&H&&Q){let U=j0(Y,H);J=k9(Y,W,U,Q)}else{let U=j0(Y,W);J=A4(Y,U)}return Y.logger.info("\uD83D\uDD0C",Z,X,`registers dependency ( "${W.key}" =`,J,")"),$.selectorGraph.set({upstreamSelectorKey:W.key,downstreamSelectorKey:X},{source:W.key}),GF(Y,Z,X,W,_),J},set:(...G)=>{let $=Y0(Y);uZ($,YF,...G)},find:(...G)=>q0(Y,...G),json:(G)=>g2(Y,G)}}function dZ(Y,Z,X){let _=Y0(Y),G=new W0,$=new Set,{key:W,const:H}=Z,Q="readonly_held_selector",{get:J,find:U,json:E}=R6(_,"readonly_held_selector",W,$),L={...Z,type:"readonly_held_selector",subject:G,getFrom:(M)=>{let h=M.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[k,{source:x}]of h)if(x!==W)M.selectorGraph.delete(k,W);return M.selectorAtoms.delete(W),Z.get({get:J,find:U,json:E},H),W2(M,L,H),$.clear(),H},install:(M)=>dZ(M,Z,X)};if(X)L.family=X;_.readonlySelectors.set(W,L),Y.logger.info("\u2728","readonly_held_selector",W,"=",H);let w={key:W,type:"readonly_held_selector"};if(X)w.family=X;return w}function cZ(Y,Z,X){let _=Y0(Y),G=new W0,$=new Set,W=Z.key,H="readonly_pure_selector",{get:Q,find:J,json:U}=R6(_,"readonly_pure_selector",W,$),V={...Z,type:"readonly_pure_selector",subject:G,getFrom:()=>{let w=Y0(Y),M=w.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[x,{source:m}]of M)if(m!==W)w.selectorGraph.delete(x,W);w.selectorAtoms.delete(W);let h=Z.get({get:Q,find:J,json:U}),k=W2(w,V,h);return Y.logger.info("\u2728","readonly_pure_selector",W,"=",k),$.clear(),k},install:(w)=>cZ(w,Z,X)};if(X)V.family=X;_.readonlySelectors.set(W,V);let L={key:W,type:"readonly_pure_selector"};if(X)L.family=X;return L}function lZ(Y,Z,X){let _=Y0(Y),G=new W0,$=new Set,{key:W,const:H}=Z,Q="writable_held_selector",J=R6(_,"writable_held_selector",W,$),{find:U,get:E,json:V}=J,L={find:U,get:E,json:V},h={...Z,type:"writable_held_selector",subject:G,getFrom:(x)=>{let m=x.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[K,{source:I}]of m)if(I!==W)x.selectorGraph.delete(K,W);return x.selectorAtoms.delete(W),Z.get(L,H),W2(x,h,H),Y.logger.info("\u2728","writable_held_selector",W,"=",H),$.clear(),H},setSelf:()=>{Z.set(J,H)},install:(x)=>lZ(x,Z,X)};if(X)h.family=X;_.writableSelectors.set(W,h);let k={key:W,type:"writable_held_selector"};if(X)k.family=X;return k}function oZ(Y,Z,X){let _=Y0(Y),G=new W0,$=new Set,W=Z.key,H="writable_pure_selector",Q=R6(_,"writable_pure_selector",W,$),{find:J,get:U,json:E}=Q,V={find:J,get:U,json:E},L=(x)=>{let m=x.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[q,{source:C}]of m)if(C!==W)x.selectorGraph.delete(q,W);x.selectorAtoms.delete(W);let K=Z.get(V),I=W2(x,M,K);return Y.logger.info("\u2728","writable_pure_selector",W,"=",I),$.clear(),I},M={...Z,type:"writable_pure_selector",subject:G,getFrom:L,setSelf:(x)=>{Z.set(Q,x)},install:(x)=>oZ(x,Z,X)};if(X)M.family=X;_.writableSelectors.set(W,M);let h=L(_);Y.logger.info("\u2728",M.type,M.key,"=",h);let k={key:W,type:"writable_pure_selector"};if(X)k.family=X;return k}function B9(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X){let $=lZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(_){let $=dZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(X){let $=oZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}let G=cZ(Y,Z,void 0);return Y.on.selectorCreation.next(G),G}function $F(Y,Z){let X=Y0(Y),{key:_,type:G,family:$}=Z;if(!$)Y.logger.error("\u274C",G,_,"Standalone selectors cannot be disposed.");else{if(X.molecules.get($.subKey))X.moleculeData.delete($.subKey,$.key);let H;switch(Z.type){case"writable_held_selector":X.writableSelectors.delete(_),H={key:$.key,type:"writable_held_selector_family"},j0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"writable_pure_selector":X.writableSelectors.delete(_),H={key:$.key,type:"writable_pure_selector_family"},j0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"readonly_held_selector":X.readonlySelectors.delete(_),H={key:$.key,type:"readonly_held_selector_family"},j0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break;case"readonly_pure_selector":X.readonlySelectors.delete(_),H={key:$.key,type:"readonly_pure_selector_family"},j0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});break}if(X.valueMap.delete(_),X.selectorAtoms.delete(_),X.selectorGraph.delete(_),X.moleculeData.delete($.key,$.subKey),Y.logger.info("\uD83D\uDD25",Z.type,_,"deleted"),$1(X)&&X.transactionMeta.phase==="building")X.transactionMeta.update.subEvents.push({type:"state_disposal",subType:"selector",token:Z,timestamp:Date.now()});else Y.on.selectorDisposal.next(Z)}}function h2(Y,Z,X){let _=Z.key,G="readonly_pure_selector_family",$={key:_,type:"readonly_pure_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","readonly_pure_selector_family",_,`Overwriting an existing ${G2[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 W0,J=Object.assign((U)=>{let E=Q0(U),V={key:_,subKey:E},L=`${_}(${E})`,w=Y0(Y),M=cZ(w,{key:L,get:Z.get(U)},V);return H.next({type:"state_creation",token:M,timestamp:Date.now()}),M},$,{internalRoles:X,subject:H,install:(U)=>h2(U,Z),default:(U)=>{return Z.get(U)({get:(...V)=>k1(Y,...V),find:(...V)=>q0(Y,...V),json:(V)=>g2(Y,V)})}});return Y.families.set(_,J),$}function M4(Y,Z,X){let _={key:Z.key,type:"atom_family"},G=Y.families.get(Z.key);if(G)Y.logger.error("\u2757","atom_family",Z.key,`Overwriting an existing ${G2[G.type]} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new W0,H=Object.assign((Q)=>{let J=Q0(Q),U={key:Z.key,subKey:J},E=`${Z.key}(${J})`,V=Y0(Y),L=Z.default,w={key:E,default:L instanceof Function?()=>L(Q):L};if(Z.effects)w.effects=Z.effects(Q);let M=f2(V,w,U);return $.next({type:"state_creation",token:M,timestamp:Date.now()}),M},_,{default:Z.default,subject:$,install:(Q)=>M4(Q,Z),internalRoles:X});if(Y.families.set(Z.key,H),Z.default instanceof Function===!1)Y.defaults.set(Z.key,Z.default);return _}function r9(Y,Z,X){let _=Z.key,G="readonly_held_selector_family",$={key:_,type:"readonly_held_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","readonly_held_selector_family",_,`Overwriting an existing ${G2[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 W0,J=Object.assign((U)=>{let E=Q0(U),V={key:_,subKey:E},L=`${_}(${E})`,w=Y0(Y),M=dZ(w,{key:L,const:Z.const(U),get:Z.get(U)},V);return H.next({type:"state_creation",token:M,timestamp:Date.now()}),M},$,{internalRoles:X,subject:H,install:(U)=>r9(U,Z),default:Z.const});return Y.families.set(_,J),$}function n9(Y,Z,X){let _=Z.key,G="writable_held_selector_family",$={key:_,type:"writable_held_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","writable_held_selector_family",_,`Overwriting an existing ${G2[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 W0,J=Object.assign((U)=>{let E=Q0(U),V={key:_,subKey:E},L=`${_}(${E})`,w=Y0(Y),M=lZ(w,{key:L,const:Z.const(U),get:Z.get(U),set:Z.set(U)},V);return H.next({type:"state_creation",token:M,timestamp:Date.now()}),M},$,{internalRoles:X,subject:H,install:(U)=>n9(U,Z),default:Z.const});return Y.families.set(_,J),$}function iZ(Y,Z,X){let _=Z.key,G="writable_pure_selector_family",$={key:_,type:"writable_pure_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","writable_pure_selector_family",_,`Overwriting an existing ${G2[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 W0,J=Object.assign((U)=>{let E=Q0(U),V={key:_,subKey:E},L=`${_}(${E})`,w=Y0(Y),M=oZ(w,{key:L,get:Z.get(U),set:Z.set(U)},V);return H.next({type:"state_creation",token:M,timestamp:Date.now()}),M},$,{internalRoles:X,subject:H,install:(U)=>iZ(U,Z),default:(U)=>{return Z.get(U)({get:(...V)=>k1(Y,...V),find:(...V)=>q0(Y,...V),json:(V)=>g2(Y,V)})}});return Y.families.set(_,J),$}function xZ(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X)return n9(Y,Z,void 0);if(_)return r9(Y,Z,void 0);if(X)return iZ(Y,Z);return h2(Y,Z)}function z8(Y,Z,X){let _=Q0(X),G=`${Z.key}(${_})`,$=Y0(Y),W;switch(Z.type){case"atom_family":case"mutable_atom_family":W=$.atoms.get(G);break;case"writable_held_selector_family":case"writable_pure_selector_family":W=$.writableSelectors.get(G);break;case"readonly_held_selector_family":case"readonly_pure_selector_family":W=$.readonlySelectors.get(G);break}if(W)return b1(W);return W}function q0(Y,Z,X){j0(Y,Z);let _=z8(Y,Z,X);if(_)return _;return b2(Y,Z,X)}function Q8(Y,...Z){let X;if(Z.length===1)X=Z[0];else{let _=Z[0],G=Z[1];X=q0(Y,_,G)}try{j0(Y,X)}catch(_){Y.logger.error("\u274C",X.type,X.key,`could not be disposed because it was not found in the store "${Y.config.name}".`);return}switch(X.type){case"atom":case"mutable_atom":s9(Y,X);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":$F(Y,X);break}}function rZ(Y,...Z){let X,_,G,$,W;if(Z.length===1){if(W=Z[0],"family"in W){if(G=mZ(Y,W),j0(Y,G),$=a0(W.family.subKey),X=z8(Y,G,$),"counterfeit"in W)return{token:W,familyToken:G,subKey:$,isNew:!1};if(!X)_=b2(Y,G,$,k2),W=_;else W=X}}else if(G=Z[0],$=Z[1],X=z8(Y,G,$),!X)_=b2(Y,G,$,k2),W=_;else W=X;return{token:W,familyToken:G,subKey:$,isNew:Boolean(_)}}function k1(Y,...Z){let{token:X,familyToken:_,subKey:G}=rZ(Y,...Z);if("counterfeit"in X&&_&&G){let W=j0(Y,_);return k9(Y,X,W,G)}let $=j0(Y,X);return A4(Y,$)}var f9=(Y,Z,X)=>{return X.subject.subscribe(`${Z.type}:${Z.key}`,(_)=>{Y.logger.info("\uD83D\uDCE2",Z.type,Z.key,"root",X.key,"went",_.oldValue,"->",_.newValue);let G=fz(Y,Z),$=A4(Y,Z);Y.logger.info("\u2728",Z.type,Z.key,"went",G,"->",$),Z.subject.next({newValue:$,oldValue:G})})};function F8(Y,Z,X,_){function G(E){if(Y.operation.open){let V=Y.on.operationClose.subscribe(`state subscription ${X}`,()=>{V(),_(E)})}else _(E)}rZ(Y,Z);let $=j0(Y,Z);Y.logger.info("\uD83D\uDC40",$.type,$.key,`Adding subscription "${X}"`);let W=$.type==="writable_pure_selector"||$.type==="readonly_pure_selector",H=new Map,Q=G;if(W){A4(Y,$);for(let[E,V]of A6(Y,$.key))H.set(E,f9(Y,$,V));Q=function E(V){let L=A6(Y,$.key);for(let[w,M]of H)if(L.get(w))L.delete(w);else M(),H.delete(w);for(let[w,M]of L)H.set(w,f9(Y,$,M));G(V)}}let J=$.subject.subscribe(X,Q);return()=>{Y.logger.info("\uD83D\uDE48",$.type,$.key,`Removing subscription "${X}"`),J();for(let E of H.values())E()}}function j0(Y,Z){let X,_=Y;while(_!==null){switch(Z.type){case"atom":case"mutable_atom":X=_.atoms.get(Z.key);break;case"writable_pure_selector":case"writable_held_selector":X=_.writableSelectors.get(Z.key);break;case"readonly_pure_selector":case"readonly_held_selector":X=_.readonlySelectors.get(Z.key);break;case"atom_family":case"mutable_atom_family":case"writable_pure_selector_family":case"readonly_pure_selector_family":case"writable_held_selector_family":case"readonly_held_selector_family":X=_.families.get(Z.key);break;case"timeline":X=_.timelines.get(Z.key);break;case"transaction":X=_.transactions.get(Z.key);break}if(X)return X;_=_.child}throw new u9(Z,Y)}var WF=(Y,Z,X,_)=>{let G=j0(Y,Z);Y.logger.info("\uD83D\uDC40","timeline",Z.key,`Adding subscription "${X}"`);let $=G.subject.subscribe(X,_);return()=>{Y.logger.info("\uD83D\uDE48","timeline",Z.key,`Removing subscription "${X}" from timeline`),$()}};var nZ=class{initializeSignalAtom(Y,Z){let X=`*${Y.key}`;Z.atoms.delete(X),Z.valueMap.delete(X);let _=Y.family?{key:`*${Y.family.key}`,subKey:Y.family.subKey}:void 0,G=f2(Z,{key:X,default:null},_,["tracker:signal"]);if(Z.parent?.valueMap.has(X)){let $=Z.parent.valueMap.get(X);Z.valueMap.set(X,$)}return G}unsubscribeFromInnerValue;unsubscribeFromState;captureSignalsFromCore(Y,Z,X){let _=Y.key,G=X.config.name,$=$1(X)?X.transactionMeta.update.token.key:"main",W=`tracker:${G}:${$}:${_}`,H=(J)=>{B1(X,Z,J)},Q=k1(X,Y);this.unsubscribeFromInnerValue=Q.subscribe(W,H),this.unsubscribeFromState=F8(X,Y,W,function J(U){if(U.newValue!==U.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=U.newValue.subscribe(W,H)}.bind(this))}supplySignalsToCore(Y,Z,X){let _=`tracker:${X.config.name}:${$1(X)?X.transactionMeta.update.token.key:"main"}:${Y.key}`;F8(X,Z,_,function G({newValue:$,oldValue:W}){let H=X.timelineTopics.getRelatedKey(Z.key);if(H&&X.timelines.get(H)?.timeTraveling){let E=WF(X,{key:H,type:"timeline"},_,function V(L){E(),B1(X,Y,(w)=>{if(L==="redo"&&$)w.do($);else if(L==="undo"&&W)w.undo(W);return w})});return}let Q=k1(X,Y),J=Q.getUpdateNumber($),U=J-Q.cacheUpdateNumber;if($&&U===1)B1(X,Y,(E)=>(E.do($),E));else{let E=Q.cacheUpdateNumber+1;X.logger.info("\u274C","mutable_atom",Y.key,"could not be updated. Expected update number",E,"but got",J)}})}mutableAtomToken;latestSignalToken;[Symbol.dispose];constructor(Y,Z){let X=Y0(Z),_=this.initializeSignalAtom(Y,X);this.mutableAtomToken=Y,this.latestSignalToken=_,this.captureSignalsFromCore(Y,_,X),this.supplySignalsToCore(Y,_,X),X.trackers.set(Y.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),X.trackers.delete(Y.key)}}};function L6(Y,Z,X){Y.logger.info("\uD83D\uDD28","atom",Z.key,`creating in store "${Y.config.name}"`);let _=Y0(Y),{key:G}=Z,$=_.atoms.get(G),W="mutable_atom";if($&&$.type===W)return Y.logger.error("\u274C",W,G,"Tried to create atom, but it already exists in the store."),b1($);let H=new W0,Q={...Z,type:W,install:(U)=>{return U.logger.info("\uD83D\uDEE0\uFE0F","atom",G,`installing in store "${U.config.name}"`),L6(U,Z,X)},subject:H};if(X)Q.family=X;_.atoms.set(Q.key,Q);let J=b1(Q);if(Z.effects){let U=0,E=[];for(let V of Z.effects){let L=V({resetSelf:()=>{D6(Y,J)},setSelf:(w)=>{B1(Y,J,w)},onSet:(w)=>F8(Y,J,`effect[${U}]`,w)});if(L)E.push(L);++U}Q.cleanup=()=>{for(let V of E)V()}}if(new nZ(J,Y),!X)B9(Y,{key:`${G}:JSON`,get:({get:U})=>U(J).toJSON(),set:({set:U},E)=>{U(J,Z.class.fromJSON(E))}});return Y.on.atomCreation.next(J),J}var HF=class{trackers=new Map;latestSignalAtoms;mutableAtoms;constructor(Y,Z){let X=M4(Z,{key:`*${Y.key}`,default:null},["mutable","updates"]);this.latestSignalAtoms=j0(Z,X),this.mutableAtoms=Y;let _=(G)=>{let{type:$,token:W}=G;if(W.family){let H=a0(W.family.subKey);switch($){case"state_creation":this.trackers.set(H,new nZ(W,Z));break;case"state_disposal":{let Q=this.trackers.get(H);if(Q)Q[Symbol.dispose](),this.trackers.delete(H)}}}};this.mutableAtoms.subject.subscribe(`store=${Z.config.name}::tracker-atom-family`,_)}};function fZ(Y,Z,X){let _={key:Z.key,type:"mutable_atom_family"},G=Y.families.get(Z.key);if(G)Y.logger.error("\u2757","mutable_atom_family",Z.key,`Overwriting an existing ${G2[G.type]} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new W0,H=Object.assign((Q)=>{let J=Q0(Q),U={key:Z.key,subKey:J},E=`${Z.key}(${J})`,V=Y0(Y),L={key:E,class:Z.class};if(Z.effects)L.effects=Z.effects(Q);let w=L6(V,L,U);return $.next({type:"state_creation",token:w,timestamp:Date.now()}),w},_,{class:Z.class,subject:$,install:(Q)=>fZ(Q,Z),internalRoles:X});return Y.families.set(Z.key,H),iZ(Y,{key:`${Z.key}:JSON`,get:(Q)=>({get:J})=>J(_,Q).toJSON(),set:(Q)=>({set:J},U)=>{J(_,Q,Z.class.fromJSON(U))}},["mutable","json"]),new HF(H,Y),_}var h9=(Y,Z)=>{let X=Y0(Z),_=`${Y.key}:JSON`;return X.families.get(_)},g2=(Y,Z)=>{if(Z.family){let _=Y0(Y),$={key:`${Z.family.key}:JSON`,type:"writable_pure_selector_family"},W=j0(_,$),H=a0(Z.family.subKey);return q0(Y,W,H)}return{type:"writable_pure_selector",key:`${Z.key}:JSON`}};var sZ=(Y)=>{let X={type:"atom",key:`*${Y.key}`};if(Y.family)X.family={key:`*${Y.family.key}`,subKey:Y.family.subKey};return X};function hZ(Y){return typeof Y==="object"&&Y!==null&&"do"in Y&&"undo"in Y&&"subscribe"in Y&&"cacheUpdateNumber"in Y&&"getUpdateNumber"in Y&&"READONLY_VIEW"in Y&&"toJSON"in Y}var C9=class{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;writableSelectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new G1({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new G1({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new G1({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new G1({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new Sz(100);molecules=new Map;moleculeJoins=new G1({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeGraph=new G1({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeData=new G1({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});miscResources=new Map;on={atomCreation:new W0,atomDisposal:new W0,selectorCreation:new W0,selectorDisposal:new W0,timelineCreation:new W0,transactionCreation:new W0,transactionApplying:new xz(null),operationClose:new W0,moleculeCreation:new W0,moleculeDisposal:new W0};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new R9("warn",(Y,Z,X)=>!w4(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},y2(Z))this.transactionMeta={epoch:new Map(Z?.transactionMeta.epoch),actionContinuities:new G1(Z?.transactionMeta.actionContinuities.toJSON())};for(let[,_]of Z.families){if(_.internalRoles?.includes("mutable")||_.internalRoles?.includes("join"))continue;_.install(this)}let X=new Set;for(let[,_]of Z.atoms){if(X.has(_.key))continue;if(_.install(this),_.type==="mutable_atom"){let G=g2(Z,_),$=sZ(_);X.add(G.key),X.add($.key)}}for(let[,_]of Z.readonlySelectors)_.install(this);for(let[,_]of Z.writableSelectors){if(X.has(_.key))continue;_.install(this)}for(let[,_]of Z.transactions)_.install(this);for(let[,_]of Z.timelines)_.install(this)}}},o0={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new C9({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function f2(Y,Z,X,_){let{key:$}=Z;Y.logger.info("\uD83D\uDD28","atom",$,`creating in store "${Y.config.name}"`);let W=Y0(Y),H=W.atoms.get($);if(H&&H.type==="atom")return Y.logger.error("\u274C","atom",$,"Tried to create atom, but it already exists in the store."),b1(H);let Q=new W0,J={...Z,type:"atom",install:(E)=>{return E.logger.info("\uD83D\uDEE0\uFE0F","atom",$,`installing in store "${E.config.name}"`),f2(E,Z,X)},subject:Q};if(X)J.family=X;if(_)J.internalRoles=_;W.atoms.set($,J);let U=b1(J);if(Z.effects){let E=0,V=[];for(let L of Z.effects){let w=L({resetSelf:()=>{D6(Y,U)},setSelf:(M)=>{B1(Y,U,M)},onSet:(M)=>F8(Y,U,`effect[${E}]`,M)});if(w)V.push(w);++E}J.cleanup=()=>{for(let L of V)L()}}return Y.on.atomCreation.next(U),U}function s9(Y,Z){let X=Y0(Y),{key:_,family:G}=Z,$=j0(X,Z);if(!G)Y.logger.error("\u274C","atom",_,"Standalone atoms cannot be disposed.");else{$.cleanup?.();let W=Y.valueMap.get($.key),H=mZ(Y,Z),J=j0(Y,H).subject,U={type:"state_disposal",subType:"atom",token:Z,value:W,timestamp:Date.now()};J.next(U);let E=$1(X);if(X.atoms.delete(_),X.valueMap.delete(_),X.selectorAtoms.delete(_),X.atomsThatAreDefault.delete(_),X.moleculeData.delete(G.key,G.subKey),Y.timelineTopics.delete(_),Z.type==="mutable_atom"){let V=sZ(Z);s9(Y,V),Y.trackers.delete(_)}if(Y.logger.info("\uD83D\uDD25","atom",_,"deleted"),E&&X.transactionMeta.phase==="building"){let V=X.transactionMeta.update.subEvents.at(-1);if(!(V?.type==="molecule_disposal"&&V.values.some(([M])=>M===$.family?.key)))X.transactionMeta.update.subEvents.push(U)}else Y.on.atomDisposal.next(Z)}}function JF(Y,Z){if("internalRoles"in Y===!1)return!1;return Y.internalRoles.includes(Z)}function T0(Y){return Y[0].toUpperCase()+Y.slice(1)}var t9=class{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(Y,Z){let X=this.toolkit;this.toolkit=Y,Z(this),this.toolkit=X}store;realm;[Symbol.dispose](){}constructor(Y,Z,X=o0.STORE){this.store=X,this.realm=new N9(X),this.options=Y,this.defaultContent=Z,this.store.miscResources.set(`join:${Y.key}`,this),this.realm.allocate("root",Y.key),this.toolkit={get:(...K)=>k1(X,...K),set:(...K)=>{B1(X,...K)},find:(...K)=>q0(X,...K),json:(K)=>g2(X,K)};let _=Y.between[0],G=Y.between[1],$=fZ(X,{key:`${Y.key}/relatedKeys`,class:$2},["join","relations"]);this.core={relatedKeysAtoms:$};let W=({get:K},I)=>K($,I),H=({set:K},I,q)=>{if(!this.store.molecules.has(Q0(I)))this.realm.allocate(Y.key,I);K($,I,(C)=>C.add(q)),K($,q,(C)=>C.add(I))},Q=({set:K},I,q)=>{K($,I,(C)=>{return C.delete(q),C}),K($,q,(C)=>{return C.delete(I),C})},J=(K,I,q)=>{let{find:C,get:g,set:n}=K,T=C($,I),t=g(T);for(let p of t){if(q.includes(p))continue;n($,p,(z0)=>{return z0.delete(I),z0})}n(T,(p)=>{return p.transaction((a)=>{a.clear();for(let z0 of q){let h0=W(K,z0),J1=h0.has(I);if(this.relations.cardinality==="1:n"){let n1=[];for(let B of h0){if(B===I)continue;let u=W(K,B);if(u.delete(z0),u.size===0)n1.push(B)}if(!J1&&h0.size>0)h0.clear();for(let B of n1){let u=[z0,B].sort(),G0=`"${u[0]}:${u[1]}"`;this.molecules.delete(G0)}}if(!J1)h0.add(I);a.add(z0)}return!0}),p})},U=(K,I,q)=>{let{set:C}=K;C($,I,(g)=>{return g.transaction((n)=>{for(let T of q)n.add(T);return!0}),g});for(let g of q)C($,g,(n)=>{return n.add(I),n});return!0},E=(K,I,q)=>{let C=W(K,I);return q?C.has(q):C.size>0},V={getRelatedKeys:(K)=>W(this.toolkit,K),addRelation:(K,I)=>{this.store.moleculeJoins.set(K,Y.key),this.store.moleculeJoins.set(I,Y.key),H(this.toolkit,K,I)},deleteRelation:(K,I)=>{Q(this.toolkit,K,I)},replaceRelationsSafely:(K,I)=>{J(this.toolkit,K,I)},replaceRelationsUnsafely:(K,I)=>{U(this.toolkit,K,I)},has:(K,I)=>E(this.toolkit,K,I)},L,w;if(Z){w=M4(X,{key:`${Y.key}/content`,default:Z},["join","content"]);let K=({get:C},g)=>C(w,g),I=({set:C},g,n)=>{C(w,g,n)};L=Object.assign(V,{getContent:(C)=>{return K(this.toolkit,C)},setContent:(C,g)=>{I(this.toolkit,C,g)},deleteContent:(C)=>{this.realm.deallocate(C)}})}else L=V;let M=new G1(Y,{externalStore:L,isAType:Y.isAType,isBType:Y.isBType,makeContentKey:(...K)=>{let[I,q]=K,C=K.sort(),g=`${C[0]}:${C[1]}`,n=X.molecules.get(Q0(I)),T=X.molecules.get(Q0(q));if(!n)this.realm.allocate(Y.key,I);if(!T)this.realm.allocate(Y.key,q);return this.realm.allocate(I,g,"all"),this.realm.claim(q,g),this.store.moleculeJoins.set(g,Y.key),g}}),h=()=>h2(X,{key:`${Y.key}/singleRelatedKey`,get:(K)=>({get:I})=>{let q=I($,K);for(let C of q)return C;return null}},["join","keys"]),k=()=>{return h2(X,{key:`${Y.key}/multipleRelatedKeys`,get:(K)=>({get:I})=>{let q=h9($,X);return I(q,K).members}},["join","keys"])},x=()=>h2(X,{key:`${Y.key}/singleRelatedEntry`,get:(K)=>({get:I})=>{let q=I($,K);for(let C of q){let g=M.isAType?.(K)?K:void 0,n=g===void 0?K:void 0;g??=C,n??=C;let T=M.makeContentKey(g,n),t=I(w,T);return[C,t]}return null}},["join","entries"]),m=()=>h2(X,{key:`${Y.key}/multipleRelatedEntries`,get:(K)=>({get:I})=>{let q=h9($,X);return I(q,K).members.map((g)=>{let n=M.isAType?.(K)?K:void 0,T=n===void 0?K:void 0;n??=g,T??=g;let t=M.makeContentKey(n,T),p=I(w,t);return[g,p]})}},["join","entries"]);switch(Y.cardinality){case"1:1":{let K=h(),I=`${_}KeyOf${T0(G)}`,q=`${G}KeyOf${T0(_)}`,C={[I]:K,[q]:K},g;if(Z){let n=x(),T=`${_}EntryOf${T0(G)}`,t=`${G}EntryOf${T0(_)}`,p={[T]:n,[t]:n};g=Object.assign(C,p)}else g=C;this.relations=M,this.states=g;break}case"1:n":{let K=h(),I=k(),q=`${_}KeyOf${T0(G)}`,C=`${G}KeysOf${T0(_)}`,g={[q]:K,[C]:I},n;if(Z){let T=x(),t=m(),p=`${_}EntryOf${T0(G)}`,a=`${G}EntriesOf${T0(_)}`,z0={[p]:T,[a]:t};n=Object.assign(g,z0)}else n=g;this.relations=M,this.states=n;break}case"n:n":{let K=k(),I=`${_}KeysOf${T0(G)}`,q=`${G}KeysOf${T0(_)}`,C={[I]:K,[q]:K},g;if(Z){let n=m(),T=`${_}EntriesOf${T0(G)}`,t=`${G}EntriesOf${T0(_)}`,p={[T]:n,[t]:n};g=Object.assign(C,p)}else g=C;this.relations=M,this.states=g}}}};function q9(Y,Z,X){return Y.joins.set(Z.key,new t9(Z,X,Y)),{key:Z.key,type:"join",a:Z.between[0],b:Z.between[1],cardinality:Z.cardinality}}function tZ(Y,Z){let X=Z.joins.get(Y.key);if(X===void 0){let G=o0.STORE.joins.get(Y.key);if(G===void 0)throw new Error(`Join "${Y.key}" not found in store "${Z.config.name}"`);X=new t9(G.options,G.defaultContent,Z),Z.joins.set(Y.key,X)}return X}function U8(Y,Z,X){let _=tZ(Y,X),G=Y0(X);if($1(G)){let{toolkit:$}=G.transactionMeta;_.transact($,({relations:W})=>{Z(W)})}else Z(_.relations)}function j9(Y,Z,X){let _=tZ(Y,X),G;switch(Y.cardinality){case"1:1":{let $=`${Y.a}KeyOf${T0(Y.b)}`,W=`${Y.b}KeyOf${T0(Y.a)}`;G={get[$](){let Q=_.states[$];return q0(X,Q,Z)},get[W](){let Q=_.states[W];return q0(X,Q,Z)}};let H=`${Y.a}EntryOf${T0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntryOf${T0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return q0(X,J,Z)},get[Q](){let J=_.states[Q];return q0(X,J,Z)}})}break}case"1:n":{let $=`${Y.a}KeyOf${T0(Y.b)}`,W=`${Y.b}KeysOf${T0(Y.a)}`;G={get[$](){let Q=_.states[$];return q0(X,Q,Z)},get[W](){let Q=_.states[W];return q0(X,Q,Z)}};let H=`${Y.a}EntryOf${T0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntriesOf${T0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return q0(X,J,Z)},get[Q](){let J=_.states[Q];return q0(X,J,Z)}})}break}case"n:n":{let $=`${Y.a}KeysOf${T0(Y.b)}`,W=`${Y.b}KeysOf${T0(Y.a)}`;G={get[$](){let Q=_.states[$];return q0(X,Q,Z)},get[W](){let Q=_.states[W];return q0(X,Q,Z)}};let H=`${Y.a}EntriesOf${T0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntriesOf${T0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return q0(X,J,Z)},get[Q](){let J=_.states[Q];return q0(X,J,Z)}})}}}return G}function S9(Y,Z){return tZ(Y,Z).core.relatedKeysAtoms}function w4(Y){return Y.startsWith("\uD83D\uDD0D ")}var QF=(Y)=>{return f2(Y,{key:"\uD83D\uDD0D Atom Token Index",default:()=>{let Z=new Map;for(let[X,_]of Y.atoms){if(w4(X))continue;let G=b1(_);if(_.family){let $=Z.get(_.family.key);if(!$||!("familyMembers"in $))$={key:_.family.key,familyMembers:new Map},Z.set(_.family.key,$);$.familyMembers.set(_.family.subKey,G)}else Z.set(X,G)}return Z},effects:[({setSelf:Z})=>{Y.on.atomCreation.subscribe("introspection",(X)=>{if(w4(X.key))return;Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W===void 0||!("familyMembers"in W))W={key:G,familyMembers:new Map},_.set(G,W);W.familyMembers.set($,X)}else _.set(X.key,X);return new Map(_)})}),Y.on.atomDisposal.subscribe("introspection",(X)=>{Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W&&"familyMembers"in W){if(W.familyMembers.delete($),W.familyMembers.size===0)_.delete(G)}}return new Map(_)})})}]},void 0)},UF=(Y)=>{return f2(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(w4(_))continue;let $=b1(G);if(G.family){let W=Z.get(G.family.key);if(!W||!("familyMembers"in W))W={key:G.family.key,familyMembers:new Map},Z.set(G.family.key,W);W.familyMembers.set(G.family.subKey,$)}else Z.set(_,$)}return Z},effects:[({setSelf:Z})=>{Y.on.selectorCreation.subscribe("introspection",(X)=>{if(w4(X.key))return;Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W===void 0||!("familyMembers"in W))W={key:G,familyMembers:new Map},_.set(G,W);W.familyMembers.set($,X)}else _.set(X.key,X);return new Map(_)})}),Y.on.selectorDisposal.subscribe("introspection",(X)=>{Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W&&"familyMembers"in W){if(W.familyMembers.delete($),W.familyMembers.size===0)_.delete(G)}}else _.delete(X.key);return new Map(_)})})}]},void 0)};var aZ=class{supported;constructor(Y){this.supported=Y}refine(Y){for(let[Z,X]of Object.entries(this.supported))try{if(X(Y)===!0&&X!==Boolean)return{type:Z,data:Y}}catch(_){try{if(Y instanceof X)return{type:Z,data:Y}}catch(G){}}return null}},e9=new aZ({number:(Y)=>typeof Y==="number",string:(Y)=>typeof Y==="string",boolean:(Y)=>typeof Y==="boolean",null:(Y)=>Y===null});function Y7(Y){if(!Y)return!1;return Object.getPrototypeOf(Y)===Object.prototype}var Z7=new aZ({object:Y7,array:(Y)=>Array.isArray(Y)}),zF=new aZ({...e9.supported,...Z7.supported}),N6=(Y)=>{if(Y===void 0)return"undefined";let Z=zF.refine(Y);if(Z)return Z.type;return Object.getPrototypeOf(Y).constructor.name};var sT=class Y{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(Z=o0.STORE){this.store=Z,this.atomIndex=QF(this.store),this.selectorIndex=UF(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(Z=Y.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let X=SZ(this.atomIndex),_=SZ(this.selectorIndex),G=[...X.values()].filter((Q)=>("familyMembers"in Q)),$=[..._.values()].filter((Q)=>("familyMembers"in Q)),W=performance.now(),H=[];if(Z.atomFamilies)for(let Q of G){let J=Q.familyMembers.values();for(let U of J){let V=this.statesCreatedAt.get(U.key)??this.auditorCreatedAt,L=W-V;H.push([U,L])}}if(Z.selectorFamilies)for(let Q of $){let J=Q.familyMembers.values();for(let U of J){let V=this.statesCreatedAt.get(U.key)??this.auditorCreatedAt,L=W-V;H.push([U,L])}}return H}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}},a9=(Y,Z)=>{let X=(_,G)=>{let W=((Q,J)=>{let U=Z(Q,J);if(U)return U;return null})(_,G);if(W?.jobComplete??W?.pathComplete)return W;let H=Array.isArray(G)?G.map((Q,J)=>[J,Q]):Y7(G)?Object.entries(G):[];for(let[Q,J]of H){let U=X([..._,Q],J);if(U?.jobComplete)return U}return{}};X([],Y)};function FF(Y,Z){return{summary:`${Y<Z?"+":"-"}${Math.abs(Y-Z)} (${Y} \u2192 ${Z})`}}function EF(Y,Z){return{summary:`${Y.length<Z.length?"+":"-"}${Math.abs(Y.length-Z.length)} ("${Y}" \u2192 "${Z}")`}}function OF(Y,Z){return{summary:`${Y} \u2192 ${Z}`}}function X7(Y,Z,X){let _="",G=[],$=[],W=[];return a9(Y,(H,Q)=>{let J;for(J of H){let U=Z[J];if(U===void 0)$.push([J,JSON.stringify(Q)]);else{let E=X(Q,U);if(E.summary!=="No Change")W.push([J,E])}}}),a9(Z,(H,Q)=>{let J;for(J of H)if(Y[J]===void 0)G.push([J,JSON.stringify(Q)])}),_=`\uFF5E${W.length} \uFF0B${G.length} \uFF0D${$.length}`,{summary:_,added:G,removed:$,changed:W}}function VF(Y,Z,X){return X7(Y,Z,X)}var DF=class{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(Y,Z,X){this.leafRefinery=Y,this.treeRefinery=Z,this.leafDiffers={},this.treeDiffers={};for(let _ of Object.keys(Y.supported)){let G=X[_];this.leafDiffers[_]=G}for(let _ of Object.keys(Z.supported)){let G=X[_];this.treeDiffers[_]=G}}diff(Y,Z){if(Y===Z)return{summary:"No Change"};let X=this.leafRefinery.refine(Y)??this.treeRefinery.refine(Y),_=this.leafRefinery.refine(Z)??this.treeRefinery.refine(Z);if(X!==null&&_!==null){if(X.type===_.type){if(X.type in this.leafDiffers)return this.leafDiffers[X.type](X.data,_.data);if(X.type in this.treeDiffers)return this.treeDiffers[X.type](X.data,_.data,(H,Q)=>this.diff(H,Q))}}let G=N6(Y),$=N6(Z);if(G===$)return{summary:`${G} \u2192 ${$}`};return{summary:`Type change: ${G} \u2192 ${$}`}}},tT=new DF(e9,Z7,{number:FF,string:EF,boolean:OF,null:()=>({summary:"No Change"}),object:X7,array:VF});var LF=class extends Map{set(Y,Z){if(this.has(Y))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:Y,value:Z}),this;return super.set(Y,Z)}clear(){throw new Error("Cannot clear an InvariantMap")}},_K=class Y{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(Z){this.key=Z}static existing=new LF;static create(Z,X){let _=new Y(Z),{type:G,globals:$,actions:W,perspectives:H}=X(_),Q={type:G,key:Z,globals:$,actions:W,perspectives:H};return Y.existing.set(Z,Q),Q}add(...Z){switch(Z[0].type){case"atom":case"mutable_atom":this.globals.push(...Z);break;case"transaction":this.actions.push(...Z);break;case"atom_family":case"mutable_atom_family":{let[_,G]=Z;this.perspectives.push({type:"realtime_perspective",resourceAtoms:_,viewAtoms:G})}break}return this}};var GK=V4({key:"usersInRoomIndex",class:$2}),eZ=V4({key:"roomIndex",class:$2}),MF={enteredAtEpoch:0},E8=O6({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(Y)=>typeof Y==="string",isBType:(Y)=>typeof Y==="string"},MF),$K=V6({key:"usersInMyRoomView",get:(Y)=>({find:Z})=>{let X=w9(E8);return[Z(X,Y)]}});import{spawn as AF}from"child_process";var Y5=class{listeners;globalListeners;handleEvent(Y,...Z){for(let _ of this.globalListeners)_(Y,...Z);let X=this.listeners.get(Y);if(X)for(let _ of X)_(...Z)}id="no_id_retrieved";emit;constructor(Y){this.emit=Y,this.listeners=new Map,this.globalListeners=new Set}on(Y,Z){let X=this.listeners.get(Y);if(X)X.add(Z);else this.listeners.set(Y,new Set([Z]));return this}onAny(Y){return this.globalListeners.add(Y),this}off(Y,Z){let X=this.listeners.get(Y);if(X)if(Z)X.delete(Z);else this.listeners.delete(Y);return this}offAny(Y){return this.globalListeners.delete(Y),this}},wF=class extends Y5{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;key;logger;handleLog(Y){if(Array.isArray(Y)){let[Z,...X]=Y;switch(Z){case"i":this.logger.info(...X);break;case"w":this.logger.warn(...X);break;case"e":this.logger.error(...X);break;default:return}}}constructor(Y,Z,X){super((_,...G)=>{let $=JSON.stringify([_,...G])+"\x03",W=(H)=>{if(H.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",W)};return this.process.stdin.once("error",W),this.process.stdin.write($),this});if(this.process=Y,this.key=Z,this.logger=X??{info:(..._)=>{console.info(this.id,this.key,..._)},warn:(..._)=>{console.warn(this.id,this.key,..._)},error:(..._)=>{console.error(this.id,this.key,..._)}},this.process.stdout.on("data",(_)=>{let G=_.toString();if(G==="ALIVE")return;this.unprocessedEvents.push(...G.split("\x03"));let $=this.unprocessedEvents.shift();this.incompleteData+=$??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let W=a0(this.incompleteData);this.handleEvent(...W);while(this.unprocessedEvents.length>0){let H=this.unprocessedEvents.shift();if(H){if(this.unprocessedEvents.length===0)this.incompleteData=H;W=a0(H),this.handleEvent(...W)}}this.incompleteData=""}catch(W){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(W)}}),this.process.stderr.on("data",(_)=>{let G=_.toString();this.unprocessedLogs.push(...G.split("\x03"));let $=this.unprocessedLogs.shift();this.incompleteLog+=$??"";try{let W=a0(this.incompleteLog);this.handleLog(W);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)W=a0(this.incompleteLog),this.handleLog(W)}catch(W){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(W),console.error("\u274C\u274C\u274C\uFE0F")}}),Y.pid)this.id=Y.pid.toString()}},RF=class extends Y5{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(Y){super((...Z)=>{return this.out.next(Z),this});this.id=Y,this.in=new W0,this.out=new W0,this.in.subscribe("socket",(Z)=>{this.handleEvent(...Z)})}dispose(){for(let Y of this.disposalFunctions)Y()}},_7=class extends Y5{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...Y){this.process.stderr.write(Q0(Y.map((Z)=>Z instanceof $2?`{ ${Z.toJSON().members.join(" | ")} }`:Z))+"\x03")}logger={info:(...Y)=>{this.log("i",...Y)},warn:(...Y)=>{this.log("w",...Y)},error:(...Y)=>{this.log("e",...Y)}};constructor(){super((Y,...Z)=>{let X=JSON.stringify([Y,...Z]);return this.process.stdout.write(X+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(Y)=>{let Z=Y.toString();this.unprocessedEvents.push(...Z.split("\x03"));let X=this.unprocessedEvents.shift();this.incompleteData+=X??"";try{let _=a0(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",_),this.handleEvent(..._);while(this.unprocessedEvents.length>0){let G=this.unprocessedEvents.shift();if(G){if(this.unprocessedEvents.length===0)this.incompleteData=G;let $=a0(G);this.handleEvent(...$)}}this.incompleteData=""}catch(_){if(_ instanceof Error)this.logger.error("\u2757",_.message,_.cause,_.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(Y)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${Y}`)}),process.on("end",()=>{this.logger.info("\uD83D\uDD25",this.id,"ended"),process.exit(0)}),process.on("SIGTERM",()=>{this.logger.error("\uD83D\uDD25",this.id,"terminated"),process.exit(0)}),process.on("SIGINT",()=>{this.logger.error("\uD83D\uDD25",this.id,"interrupted"),process.exit(0)}),process.pid)this.id=process.pid?.toString();this.on("user-joins",(Y)=>{this.logger.info("\uD83D\uDC64","user",Y,"joined");let Z=new RF(`user:${Y}`);this.relays.set(Y,Z),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let X of this.relayServices){let _=X(Z);if(_)Z.disposalFunctions.push(_)}this.on(`user:${Y}`,(...X)=>{Z.in.next(X)}),Z.out.subscribe("socket",(X)=>{this.emit(...X)})}),this.on("user-leaves",(Y)=>{let Z=this.relays.get(Y);if(this.off(`relay:${Y}`),Z)Z.dispose(),this.relays.delete(Y)}),process.stdout.write("ALIVE")}relay(Y){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(Y)}},G7=W8({key:"roomArguments",default:["echo",["Hello World!"]]}),NF=V6({key:"room",get:(Y)=>async({get:Z,find:X})=>{let _=X(G7,Y),G=Z(_),[$,W]=G,H=await new Promise((Q)=>{let J=AF($,W,{env:process.env}),U=(E)=>{if(E.toString()==="ALIVE")J.stdout.off("data",U),Q(J)};J.stdout.on("data",U)});return new wF(H,Y)}}),VK=H8({key:"createRoom",do:({get:Y,set:Z,find:X},_,G,$)=>{let W=$?[G,$]:[G],H=X(G7,_);Z(H,W),Z(eZ,(U)=>U.add(_));let Q=X(NF,_);return Y(Q)}}),DK=H8({key:"joinRoom",do:(Y,Z,X,_)=>{let G={enteredAtEpoch:_};return U8(E8,($)=>{$.set({room:Z,user:X},G)},Y.env().store),G}}),LK=H8({key:"leaveRoom",do:(Y,Z,X)=>{U8(E8,(_)=>{_.delete({room:Z,user:X})},Y.env().store)}}),MK=H8({key:"destroyRoom",do:(Y,Z)=>{U8(E8,(X)=>{X.delete({room:Z})},Y.env().store),Y.set(eZ,(X)=>(X.delete(Z),X))}});var AK=W8({key:"redactor",default:{occlude:(Y)=>Y}}),wK=W8({key:"unacknowledgedUpdates",default:()=>[]}),RK=W8({key:"sockets",default:null}),NK=V4({key:"socketsIndex",class:$2}),IK=V4({key:"usersIndex",class:$2}),TK=O6({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(Y)=>Y.startsWith("user::"),isBType:(Y)=>Y.startsWith("socket::")});var{file:k3,serve:yE}=globalThis.Bun;import{readFileSync as H7}from"fs";import{createServer as BF}from"http";import{createServer as CF}from"https";import{resolve as X5}from"path";function $7(Y,Z){if(Y instanceof Promise)throw new Error(Z)}function IF(Y,Z){let X={},_=[];for(let G in Y){let $=Y[G]["~standard"].validate(Z[G]);if($7($,`Validation must be synchronous, but ${G} returned a Promise.`),$.issues){_.push(...$.issues.map((W)=>({...W,message:W.message,path:[G,...W.path??[]]})));continue}X[G]=$.value}if(_.length)return{issues:_};return{value:X}}function Z5(Y){let Z=Y.runtimeEnvStrict??Y.runtimeEnv??process.env;if(Y.emptyStringAsUndefined??!1){for(let[x,m]of Object.entries(Z))if(m==="")delete Z[x]}if(!!Y.skipValidation)return Z;let G=typeof Y.client==="object"?Y.client:{},$=typeof Y.server==="object"?Y.server:{},W=typeof Y.shared==="object"?Y.shared:{},H=Y.isServer??(typeof window==="undefined"||("Deno"in window)),Q=H?{...$,...W,...G}:{...G,...W},J=Y.createFinalSchema?.(Q,H)["~standard"].validate(Z)??IF(Q,Z);$7(J,"Validation must be synchronous");let U=Y.onValidationError??((x)=>{throw console.error("\u274C Invalid environment variables:",x),new Error("Invalid environment variables")}),E=Y.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(J.issues)return U(J.issues);let V=(x)=>{if(!Y.clientPrefix)return!0;return!x.startsWith(Y.clientPrefix)&&!(x in W)},L=(x)=>{return H||!V(x)},w=(x)=>{return x==="__esModule"||x==="$$typeof"},M=(Y.extends??[]).reduce((x,m)=>{return Object.assign(x,m)},{}),h=Object.assign(M,J.value);return new Proxy(h,{get(x,m){if(typeof m!=="string")return;if(w(m))return;if(!L(m))return E(m);return Reflect.get(x,m)}})}var TF="__vite_start_time"in globalThis,KF=typeof window!=="undefined",hK="vitest"in globalThis,H2=O1("string"),W7=O1('"true" | "false" | undefined'),y1=Z5({isServer:!TF&&!KF,server:{CI:O1("string | undefined").pipe(Boolean),POSTGRES_USER:H2,POSTGRES_PASSWORD:H2,POSTGRES_DATABASE:H2,POSTGRES_HOST:H2,POSTGRES_PORT:H2.pipe((Y)=>Number.parseInt(Y,10)),BACKEND_PORT:H2.pipe((Y)=>Number.parseInt(Y,10)),RUN_WORKERS_FROM_SOURCE:W7.pipe((Y)=>Y==="true"),FRONTEND_PORT:H2.pipe((Y)=>Number.parseInt(Y,10)),FRONTEND_ORIGINS:H2.pipe.try((Y)=>JSON.parse(Y),O1("string[]")),API_KEY_OPENAI:O1("string | undefined"),API_KEY_RESEND:O1("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:H2,VITE_DEV_FRONTEND_HOST:O1("string | undefined"),VITE_DEV_HTTPS:W7.pipe((Y)=>Y==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var J7=X5(import.meta.dirname,"../dev"),I6=y1.VITE_DEV_HTTPS?{cert:H7(X5(J7,"./cert.pem"),"utf-8"),key:H7(X5(J7,"./key.pem"),"utf-8")}:void 0;function uK(Y){if(I6)return CF(I6,Y);return BF({},Y)}import PE from"path";var F=Symbol.for("drizzle:entityKind");function A(Y,Z){if(!Y||typeof Y!=="object")return!1;if(Y instanceof Z)return!0;if(!Object.prototype.hasOwnProperty.call(Z,F))throw new Error(`Class "${Z.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let X=Object.getPrototypeOf(Y).constructor;if(X)while(X){if(F in X&&X[F]===Z[F])return!0;X=Object.getPrototypeOf(X)}return!1}class E0{constructor(Y,Z){this.table=Y,this.config=Z,this.name=Z.name,this.keyAsName=Z.keyAsName,this.notNull=Z.notNull,this.default=Z.default,this.defaultFn=Z.defaultFn,this.onUpdateFn=Z.onUpdateFn,this.hasDefault=Z.hasDefault,this.primary=Z.primaryKey,this.isUnique=Z.isUnique,this.uniqueName=Z.uniqueName,this.uniqueType=Z.uniqueType,this.dataType=Z.dataType,this.columnType=Z.columnType,this.generated=Z.generated,this.generatedIdentity=Z.generatedIdentity}static[F]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(Y){return Y}mapToDriverValue(Y){return Y}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class _5{static[F]="ColumnBuilder";config;constructor(Y,Z,X){this.config={name:Y,keyAsName:Y==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:Z,columnType:X,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(Y){return this.config.default=Y,this.config.hasDefault=!0,this}$defaultFn(Y){return this.config.defaultFn=Y,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(Y){return this.config.onUpdateFn=Y,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(Y){if(this.config.name!=="")return;this.config.name=Y}}var g1=Symbol.for("drizzle:Name");class G5{static[F]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(Y,Z){if(this.reference=()=>{let{name:X,columns:_,foreignColumns:G}=Y();return{name:X,columns:_,foreignTable:G[0].table,foreignColumns:G}},Z)this._onUpdate=Z.onUpdate,this._onDelete=Z.onDelete}onUpdate(Y){return this._onUpdate=Y===void 0?"no action":Y,this}onDelete(Y){return this._onDelete=Y===void 0?"no action":Y,this}build(Y){return new Q7(Y,this)}}class Q7{constructor(Y,Z){this.table=Y,this.reference=Z.reference,this.onUpdate=Z._onUpdate,this.onDelete=Z._onDelete}static[F]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:Y,columns:Z,foreignColumns:X}=this.reference(),_=Z.map((W)=>W.name),G=X.map((W)=>W.name),$=[this.table[g1],..._,X[0].table[g1],...G];return Y??`${$.join("_")}_fk`}}function T6(Y,...Z){return Y(...Z)}function U7(Y,Z){return`${Y[g1]}_${Z.join("_")}_unique`}function z7(Y,Z,X){for(let _=Z;_<Y.length;_++){let G=Y[_];if(G==="\\"){_++;continue}if(G==='"')return[Y.slice(Z,_).replace(/\\/g,""),_+1];if(X)continue;if(G===","||G==="}")return[Y.slice(Z,_).replace(/\\/g,""),_]}return[Y.slice(Z).replace(/\\/g,""),Y.length]}function F7(Y,Z=0){let X=[],_=Z,G=!1;while(_<Y.length){let $=Y[_];if($===","){if(G||_===Z)X.push("");G=!0,_++;continue}if(G=!1,$==="\\"){_+=2;continue}if($==='"'){let[Q,J]=z7(Y,_+1,!0);X.push(Q),_=J;continue}if($==="}")return[X,_+1];if($==="{"){let[Q,J]=F7(Y,_+1);X.push(Q),_=J;continue}let[W,H]=z7(Y,_,!1);X.push(W),_=H}return[X,_]}function E7(Y){let[Z]=F7(Y,1);return Z}function $5(Y){return`{${Y.map((Z)=>{if(Array.isArray(Z))return $5(Z);if(typeof Z==="string")return`"${Z.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${Z}`}).join(",")}}`}class b extends _5{foreignKeyConfigs=[];static[F]="PgColumnBuilder";array(Y){return new V7(this.config.name,this,Y)}references(Y,Z={}){return this.foreignKeyConfigs.push({ref:Y,actions:Z}),this}unique(Y,Z){return this.config.isUnique=!0,this.config.uniqueName=Y,this.config.uniqueType=Z?.nulls,this}generatedAlwaysAs(Y){return this.config.generated={as:Y,type:"always",mode:"stored"},this}buildForeignKeys(Y,Z){return this.foreignKeyConfigs.map(({ref:X,actions:_})=>{return T6((G,$)=>{let W=new G5(()=>{let H=G();return{columns:[Y],foreignColumns:[H]}});if($.onUpdate)W.onUpdate($.onUpdate);if($.onDelete)W.onDelete($.onDelete);return W.build(Z)},X,_)})}buildExtraConfigColumn(Y){return new O7(Y,this.config)}}class j extends E0{constructor(Y,Z){if(!Z.uniqueName)Z.uniqueName=U7(Y,[Z.name]);super(Y,Z);this.table=Y}static[F]="PgColumn"}class O7 extends j{static[F]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(Y){return this.indexConfig.opClass=Y,this}}class O8{static[F]="IndexedColumn";constructor(Y,Z,X,_){this.name=Y,this.keyAsName=Z,this.type=X,this.indexConfig=_}name;keyAsName;type;indexConfig}class V7 extends b{static[F]="PgArrayBuilder";constructor(Y,Z,X){super(Y,"array","PgArray");this.config.baseBuilder=Z,this.config.size=X}build(Y){let Z=this.config.baseBuilder.build(Y);return new W5(Y,this.config,Z)}}class W5 extends j{constructor(Y,Z,X,_){super(Y,Z);this.baseColumn=X,this.range=_,this.size=Z.size}size;static[F]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(Y){if(typeof Y==="string")Y=E7(Y);return Y.map((Z)=>this.baseColumn.mapFromDriverValue(Z))}mapToDriverValue(Y,Z=!1){let X=Y.map((_)=>_===null?null:A(this.baseColumn,W5)?this.baseColumn.mapToDriverValue(_,!0):this.baseColumn.mapToDriverValue(_));if(Z)return X;return $5(X)}}class D7 extends b{static[F]="PgEnumObjectColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumObjectColumn");this.config.enum=Z}build(Y){return new L7(Y,this.config)}}class L7 extends j{static[F]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}var K6=Symbol.for("drizzle:isPgEnum");function M7(Y){return!!Y&&typeof Y==="function"&&K6 in Y&&Y[K6]===!0}class A7 extends b{static[F]="PgEnumColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumColumn");this.config.enum=Z}build(Y){return new w7(Y,this.config)}}class w7 extends j{static[F]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}function V8(Y,Z){return Array.isArray(Z)?qF(Y,[...Z],void 0):jF(Y,Z,void 0)}function qF(Y,Z,X){let _=Object.assign((G)=>new A7(G??"",_),{enumName:Y,enumValues:Z,schema:X,[K6]:!0});return _}function jF(Y,Z,X){let _=Object.assign((G)=>new D7(G??"",_),{enumName:Y,enumValues:Object.values(Z),schema:X,[K6]:!0});return _}class P0{static[F]="Subquery";constructor(Y,Z,X,_=!1,G=[]){this._={brand:"Subquery",sql:Y,selectedFields:Z,alias:X,isWith:_,usedTables:G}}}class D8 extends P0{static[F]="WithSubquery"}var R7="0.44.4";var H5,J5,O0={startActiveSpan(Y,Z){if(!H5)return Z();if(!J5)J5=H5.trace.getTracer("drizzle-orm",R7);return T6((X,_)=>_.startActiveSpan(Y,(G)=>{try{return Z(G)}catch($){throw G.setStatus({code:X.SpanStatusCode.ERROR,message:$ instanceof Error?$.message:"Unknown error"}),$}finally{G.end()}}),H5,J5)}};var M0=Symbol.for("drizzle:ViewBaseConfig");var p2=Symbol.for("drizzle:Schema"),B6=Symbol.for("drizzle:Columns"),N7=Symbol.for("drizzle:ExtraConfigColumns"),Q5=Symbol.for("drizzle:OriginalName"),U5=Symbol.for("drizzle:BaseName"),L8=Symbol.for("drizzle:IsAlias"),I7=Symbol.for("drizzle:ExtraConfigBuilder"),SF=Symbol.for("drizzle:IsDrizzleTable");class S{static[F]="Table";static Symbol={Name:g1,Schema:p2,OriginalName:Q5,Columns:B6,ExtraConfigColumns:N7,BaseName:U5,IsAlias:L8,ExtraConfigBuilder:I7};[g1];[Q5];[p2];[B6];[N7];[U5];[L8]=!1;[SF]=!0;[I7]=void 0;constructor(Y,Z,X){this[g1]=this[Q5]=Y,this[p2]=Z,this[U5]=X}}function d0(Y){return Y[g1]}function m2(Y){return`${Y[p2]??"public"}.${Y[g1]}`}function z5(Y){return Y!==null&&Y!==void 0&&typeof Y.getSQL==="function"}function PF(Y){let Z={sql:"",params:[]};for(let X of Y)if(Z.sql+=X.sql,Z.params.push(...X.params),X.typings?.length){if(!Z.typings)Z.typings=[];Z.typings.push(...X.typings)}return Z}class m0{static[F]="StringChunk";value;constructor(Y){this.value=Array.isArray(Y)?Y:[Y]}getSQL(){return new f([this])}}class f{constructor(Y){this.queryChunks=Y;for(let Z of Y)if(A(Z,S)){let X=Z[S.Symbol.Schema];this.usedTables.push(X===void 0?Z[S.Symbol.Name]:X+"."+Z[S.Symbol.Name])}}static[F]="SQL";decoder=K7;shouldInlineParams=!1;usedTables=[];append(Y){return this.queryChunks.push(...Y.queryChunks),this}toQuery(Y){return O0.startActiveSpan("drizzle.buildSQL",(Z)=>{let X=this.buildQueryFromSourceParams(this.queryChunks,Y);return Z?.setAttributes({"drizzle.query.text":X.sql,"drizzle.query.params":JSON.stringify(X.params)}),X})}buildQueryFromSourceParams(Y,Z){let X=Object.assign({},Z,{inlineParams:Z.inlineParams||this.shouldInlineParams,paramStartIndex:Z.paramStartIndex||{value:0}}),{casing:_,escapeName:G,escapeParam:$,prepareTyping:W,inlineParams:H,paramStartIndex:Q}=X;return PF(Y.map((J)=>{if(A(J,m0))return{sql:J.value.join(""),params:[]};if(A(J,C6))return{sql:G(J.value),params:[]};if(J===void 0)return{sql:"",params:[]};if(Array.isArray(J)){let U=[new m0("(")];for(let[E,V]of J.entries())if(U.push(V),E<J.length-1)U.push(new m0(", "));return U.push(new m0(")")),this.buildQueryFromSourceParams(U,X)}if(A(J,f))return this.buildQueryFromSourceParams(J.queryChunks,{...X,inlineParams:H||J.shouldInlineParams});if(A(J,S)){let U=J[S.Symbol.Schema],E=J[S.Symbol.Name];return{sql:U===void 0||J[L8]?G(E):G(U)+"."+G(E),params:[]}}if(A(J,E0)){let U=_.getColumnCasing(J);if(Z.invokeSource==="indexes")return{sql:G(U),params:[]};let E=J.table[S.Symbol.Schema];return{sql:J.table[L8]||E===void 0?G(J.table[S.Symbol.Name])+"."+G(U):G(E)+"."+G(J.table[S.Symbol.Name])+"."+G(U),params:[]}}if(A(J,V1)){let U=J[M0].schema,E=J[M0].name;return{sql:U===void 0||J[M0].isAlias?G(E):G(U)+"."+G(E),params:[]}}if(A(J,w1)){if(A(J.value,N2))return{sql:$(Q.value++,J),params:[J],typings:["none"]};let U=J.value===null?null:J.encoder.mapToDriverValue(J.value);if(A(U,f))return this.buildQueryFromSourceParams([U],X);if(H)return{sql:this.mapInlineParam(U,X),params:[]};let E=["none"];if(W)E=[W(J.encoder)];return{sql:$(Q.value++,U),params:[U],typings:E}}if(A(J,N2))return{sql:$(Q.value++,J),params:[J],typings:["none"]};if(A(J,f.Aliased)&&J.fieldAlias!==void 0)return{sql:G(J.fieldAlias),params:[]};if(A(J,P0)){if(J._.isWith)return{sql:G(J._.alias),params:[]};return this.buildQueryFromSourceParams([new m0("("),J._.sql,new m0(") "),new C6(J._.alias)],X)}if(M7(J)){if(J.schema)return{sql:G(J.schema)+"."+G(J.enumName),params:[]};return{sql:G(J.enumName),params:[]}}if(z5(J)){if(J.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([J.getSQL()],X);return this.buildQueryFromSourceParams([new m0("("),J.getSQL(),new m0(")")],X)}if(H)return{sql:this.mapInlineParam(J,X),params:[]};return{sql:$(Q.value++,J),params:[J],typings:["none"]}}))}mapInlineParam(Y,{escapeString:Z}){if(Y===null)return"null";if(typeof Y==="number"||typeof Y==="boolean")return Y.toString();if(typeof Y==="string")return Z(Y);if(typeof Y==="object"){let X=Y.toString();if(X==="[object Object]")return Z(JSON.stringify(Y));return Z(X)}throw new Error("Unexpected param value: "+Y)}getSQL(){return this}as(Y){if(Y===void 0)return this;return new f.Aliased(this,Y)}mapWith(Y){return this.decoder=typeof Y==="function"?{mapFromDriverValue:Y}:Y,this}inlineParams(){return this.shouldInlineParams=!0,this}if(Y){return Y?this:void 0}}class C6{constructor(Y){this.value=Y}static[F]="Name";brand;getSQL(){return new f([this])}}function T7(Y){return typeof Y==="object"&&Y!==null&&"mapToDriverValue"in Y&&typeof Y.mapToDriverValue==="function"}var K7={mapFromDriverValue:(Y)=>Y},B7={mapToDriverValue:(Y)=>Y},PB={...K7,...B7};class w1{constructor(Y,Z=B7){this.value=Y,this.encoder=Z}static[F]="Param";brand;getSQL(){return new f([this])}}function O(Y,...Z){let X=[];if(Z.length>0||Y.length>0&&Y[0]!=="")X.push(new m0(Y[0]));for(let[_,G]of Z.entries())X.push(G,new m0(Y[_+1]));return new f(X)}((Y)=>{function Z(){return new f([])}Y.empty=Z;function X(Q){return new f(Q)}Y.fromList=X;function _(Q){return new f([new m0(Q)])}Y.raw=_;function G(Q,J){let U=[];for(let[E,V]of Q.entries()){if(E>0&&J!==void 0)U.push(J);U.push(V)}return new f(U)}Y.join=G;function $(Q){return new C6(Q)}Y.identifier=$;function W(Q){return new N2(Q)}Y.placeholder=W;function H(Q,J){return new w1(Q,J)}Y.param=H})(O||(O={}));((Y)=>{class Z{constructor(X,_){this.sql=X,this.fieldAlias=_}static[F]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new Z(this.sql,this.fieldAlias)}}Y.Aliased=Z})(f||(f={}));class N2{constructor(Y){this.name=Y}static[F]="Placeholder";getSQL(){return new f([this])}}function F5(Y,Z){return Y.map((X)=>{if(A(X,N2)){if(!(X.name in Z))throw new Error(`No value for placeholder "${X.name}" was provided`);return Z[X.name]}if(A(X,w1)&&A(X.value,N2)){if(!(X.value.name in Z))throw new Error(`No value for placeholder "${X.value.name}" was provided`);return X.encoder.mapToDriverValue(Z[X.value.name])}return X})}var vF=Symbol.for("drizzle:IsDrizzleView");class V1{static[F]="View";[M0];[vF]=!0;constructor({name:Y,schema:Z,selectedFields:X,query:_}){this[M0]={name:Y,originalName:Y,schema:Z,selectedFields:X,query:_,isExisting:!_,isAlias:!1}}getSQL(){return new f([this])}}E0.prototype.getSQL=function(){return new f([this])};S.prototype.getSQL=function(){return new f([this])};P0.prototype.getSQL=function(){return new f([this])};class R4{constructor(Y){this.table=Y}static[F]="ColumnAliasProxyHandler";get(Y,Z){if(Z==="table")return this.table;return Y[Z]}}class M8{constructor(Y,Z){this.alias=Y,this.replaceOriginalName=Z}static[F]="TableAliasProxyHandler";get(Y,Z){if(Z===S.Symbol.IsAlias)return!0;if(Z===S.Symbol.Name)return this.alias;if(this.replaceOriginalName&&Z===S.Symbol.OriginalName)return this.alias;if(Z===M0)return{...Y[M0],name:this.alias,isAlias:!0};if(Z===S.Symbol.Columns){let _=Y[S.Symbol.Columns];if(!_)return _;let G={};return Object.keys(_).map(($)=>{G[$]=new Proxy(_[$],new R4(new Proxy(Y,this)))}),G}let X=Y[Z];if(A(X,E0))return new Proxy(X,new R4(new Proxy(Y,this)));return X}}function q6(Y,Z){return new Proxy(Y,new M8(Z,!1))}function i1(Y,Z){return new Proxy(Y,new R4(new Proxy(Y.table,new M8(Z,!1))))}function E5(Y,Z){return new f.Aliased(A8(Y.sql,Z),Y.fieldAlias)}function A8(Y,Z){return O.join(Y.queryChunks.map((X)=>{if(A(X,E0))return i1(X,Z);if(A(X,f))return A8(X,Z);if(A(X,f.Aliased))return E5(X,Z);return X}))}class j6 extends Error{static[F]="DrizzleError";constructor({message:Y,cause:Z}){super(Y);this.name="DrizzleError",this.cause=Z}}class J2 extends Error{constructor(Y,Z,X){super(`Failed query: ${Y}
60
+ params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrace(this,J2),X)this.cause=X}}class O5 extends j6{static[F]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class C7{static[F]="ConsoleLogWriter";write(Y){console.log(Y)}}class V5{static[F]="DefaultLogger";writer;constructor(Y){this.writer=Y?.writer??new C7}logQuery(Y,Z){let X=Z.map((G)=>{try{return JSON.stringify(G)}catch{return String(G)}}),_=X.length?` -- params: [${X.join(", ")}]`:"";this.writer.write(`Query: ${Y}${_}`)}}class D5{static[F]="NoopLogger";logQuery(){}}class W1{static[F]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(Y){return this.then(void 0,Y)}finally(Y){return this.then((Z)=>{return Y?.(),Z},(Z)=>{throw Y?.(),Z})}then(Y,Z){return this.execute().then(Y,Z)}}function q7(Y,Z,X){let _={},G=Y.reduce(($,{path:W,field:H},Q)=>{let J;if(A(H,E0))J=H;else if(A(H,f))J=H.decoder;else J=H.sql.decoder;let U=$;for(let[E,V]of W.entries())if(E<W.length-1){if(!(V in U))U[V]={};U=U[V]}else{let L=Z[Q],w=U[V]=L===null?null:J.mapFromDriverValue(L);if(X&&A(H,E0)&&W.length===2){let M=W[0];if(!(M in _))_[M]=w===null?d0(H.table):!1;else if(typeof _[M]==="string"&&_[M]!==d0(H.table))_[M]=!1}}return $},{});if(X&&Object.keys(_).length>0){for(let[$,W]of Object.entries(_))if(typeof W==="string"&&!X[W])G[$]=null}return G}function C1(Y,Z){return Object.entries(Y).reduce((X,[_,G])=>{if(typeof _!=="string")return X;let $=Z?[...Z,_]:[_];if(A(G,E0)||A(G,f)||A(G,f.Aliased))X.push({path:$,field:G});else if(A(G,S))X.push(...C1(G[S.Symbol.Columns],$));else X.push(...C1(G,$));return X},[])}function w8(Y,Z){let X=Object.keys(Y),_=Object.keys(Z);if(X.length!==_.length)return!1;for(let[G,$]of X.entries())if($!==_[G])return!1;return!0}function S6(Y,Z){let X=Object.entries(Z).filter(([,_])=>_!==void 0).map(([_,G])=>{if(A(G,f)||A(G,E0))return[_,G];else return[_,new w1(G,Y[S.Symbol.Columns][_])]});if(X.length===0)throw new Error("No values to set");return Object.fromEntries(X)}function j7(Y,Z){for(let X of Z)for(let _ of Object.getOwnPropertyNames(X.prototype)){if(_==="constructor")continue;Object.defineProperty(Y.prototype,_,Object.getOwnPropertyDescriptor(X.prototype,_)||Object.create(null))}}function S7(Y){return Y[S.Symbol.Columns]}function Q2(Y){return A(Y,P0)?Y._.alias:A(Y,V1)?Y[M0].name:A(Y,f)?void 0:Y[S.Symbol.IsAlias]?Y[S.Symbol.Name]:Y[S.Symbol.BaseName]}function X0(Y,Z){return{name:typeof Y==="string"&&Y.length>0?Y:"",config:typeof Y==="object"?Y:Z}}function P7(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 I2 extends b{static[F]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(Y){if(Y){let{name:Z,...X}=Y;this.config.generatedIdentity={type:"always",sequenceName:Z,sequenceOptions:X}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(Y){if(Y){let{name:Z,...X}=Y;this.config.generatedIdentity={type:"byDefault",sequenceName:Z,sequenceOptions:X}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class v7 extends I2{static[F]="PgBigInt53Builder";constructor(Y){super(Y,"number","PgBigInt53")}build(Y){return new x7(Y,this.config)}}class x7 extends j{static[F]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class f7 extends I2{static[F]="PgBigInt64Builder";constructor(Y){super(Y,"bigint","PgBigInt64")}build(Y){return new h7(Y,this.config)}}class h7 extends j{static[F]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(Y){return BigInt(Y)}}function k7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new v7(X);return new f7(X)}class b7 extends b{static[F]="PgBigSerial53Builder";constructor(Y){super(Y,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new y7(Y,this.config)}}class y7 extends j{static[F]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class g7 extends b{static[F]="PgBigSerial64Builder";constructor(Y){super(Y,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(Y){return new p7(Y,this.config)}}class p7 extends j{static[F]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(Y){return BigInt(Y)}}function m7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new b7(X);return new g7(X)}class u7 extends b{static[F]="PgBooleanBuilder";constructor(Y){super(Y,"boolean","PgBoolean")}build(Y){return new d7(Y,this.config)}}class d7 extends j{static[F]="PgBoolean";getSQLType(){return"boolean"}}function R8(Y){return new u7(Y??"")}class c7 extends b{static[F]="PgCharBuilder";constructor(Y,Z){super(Y,"string","PgChar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new l7(Y,this.config)}}class l7 extends j{static[F]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function o7(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new c7(X,_)}class i7 extends b{static[F]="PgCidrBuilder";constructor(Y){super(Y,"string","PgCidr")}build(Y){return new r7(Y,this.config)}}class r7 extends j{static[F]="PgCidr";getSQLType(){return"cidr"}}function n7(Y){return new i7(Y??"")}class s7 extends b{static[F]="PgCustomColumnBuilder";constructor(Y,Z,X){super(Y,"custom","PgCustomColumn");this.config.fieldConfig=Z,this.config.customTypeParams=X}build(Y){return new t7(Y,this.config)}}class t7 extends j{static[F]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(Y,Z){super(Y,Z);this.sqlName=Z.customTypeParams.dataType(Z.fieldConfig),this.mapTo=Z.customTypeParams.toDriver,this.mapFrom=Z.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(Y){return typeof this.mapFrom==="function"?this.mapFrom(Y):Y}mapToDriverValue(Y){return typeof this.mapTo==="function"?this.mapTo(Y):Y}}function a7(Y){return(Z,X)=>{let{name:_,config:G}=X0(Z,X);return new s7(_,G,Y)}}class U2 extends b{static[F]="PgDateColumnBaseBuilder";defaultNow(){return this.default(O`now()`)}}class e7 extends U2{static[F]="PgDateBuilder";constructor(Y){super(Y,"date","PgDate")}build(Y){return new P6(Y,this.config)}}class P6 extends j{static[F]="PgDate";getSQLType(){return"date"}mapFromDriverValue(Y){return new Date(Y)}mapToDriverValue(Y){return Y.toISOString()}}class Y$ extends U2{static[F]="PgDateStringBuilder";constructor(Y){super(Y,"string","PgDateString")}build(Y){return new v6(Y,this.config)}}class v6 extends j{static[F]="PgDateString";getSQLType(){return"date"}}function Z$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="date")return new e7(X);return new Y$(X)}class X$ extends b{static[F]="PgDoublePrecisionBuilder";constructor(Y){super(Y,"number","PgDoublePrecision")}build(Y){return new _$(Y,this.config)}}class _$ extends j{static[F]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function G$(Y){return new X$(Y??"")}class $$ extends b{static[F]="PgInetBuilder";constructor(Y){super(Y,"string","PgInet")}build(Y){return new W$(Y,this.config)}}class W$ extends j{static[F]="PgInet";getSQLType(){return"inet"}}function H$(Y){return new $$(Y??"")}class J$ extends I2{static[F]="PgIntegerBuilder";constructor(Y){super(Y,"number","PgInteger")}build(Y){return new Q$(Y,this.config)}}class Q$ extends j{static[F]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseInt(Y);return Y}}function N8(Y){return new J$(Y??"")}class U$ extends b{static[F]="PgIntervalBuilder";constructor(Y,Z){super(Y,"string","PgInterval");this.config.intervalConfig=Z}build(Y){return new z$(Y,this.config)}}class z$ extends j{static[F]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let Y=this.fields?` ${this.fields}`:"",Z=this.precision?`(${this.precision})`:"";return`interval${Y}${Z}`}}function F$(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new U$(X,_)}class E$ extends b{static[F]="PgJsonBuilder";constructor(Y){super(Y,"json","PgJson")}build(Y){return new x6(Y,this.config)}}class x6 extends j{static[F]="PgJson";constructor(Y,Z){super(Y,Z)}getSQLType(){return"json"}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}}function O$(Y){return new E$(Y??"")}class V$ extends b{static[F]="PgJsonbBuilder";constructor(Y){super(Y,"json","PgJsonb")}build(Y){return new f6(Y,this.config)}}class f6 extends j{static[F]="PgJsonb";constructor(Y,Z){super(Y,Z)}getSQLType(){return"jsonb"}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}}function D$(Y){return new V$(Y??"")}class L$ extends b{static[F]="PgLineBuilder";constructor(Y){super(Y,"array","PgLine")}build(Y){return new M$(Y,this.config)}}class M$ extends j{static[F]="PgLine";getSQLType(){return"line"}mapFromDriverValue(Y){let[Z,X,_]=Y.slice(1,-1).split(",");return[Number.parseFloat(Z),Number.parseFloat(X),Number.parseFloat(_)]}mapToDriverValue(Y){return`{${Y[0]},${Y[1]},${Y[2]}}`}}class A$ extends b{static[F]="PgLineABCBuilder";constructor(Y){super(Y,"json","PgLineABC")}build(Y){return new w$(Y,this.config)}}class w$ extends j{static[F]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(Y){let[Z,X,_]=Y.slice(1,-1).split(",");return{a:Number.parseFloat(Z),b:Number.parseFloat(X),c:Number.parseFloat(_)}}mapToDriverValue(Y){return`{${Y.a},${Y.b},${Y.c}}`}}function R$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new L$(X);return new A$(X)}class N$ extends b{static[F]="PgMacaddrBuilder";constructor(Y){super(Y,"string","PgMacaddr")}build(Y){return new I$(Y,this.config)}}class I$ extends j{static[F]="PgMacaddr";getSQLType(){return"macaddr"}}function T$(Y){return new N$(Y??"")}class K$ extends b{static[F]="PgMacaddr8Builder";constructor(Y){super(Y,"string","PgMacaddr8")}build(Y){return new B$(Y,this.config)}}class B$ extends j{static[F]="PgMacaddr8";getSQLType(){return"macaddr8"}}function C$(Y){return new K$(Y??"")}class q$ extends b{static[F]="PgNumericBuilder";constructor(Y,Z,X){super(Y,"string","PgNumeric");this.config.precision=Z,this.config.scale=X}build(Y){return new h6(Y,this.config)}}class h6 extends j{static[F]="PgNumeric";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue(Y){if(typeof Y==="string")return Y;return String(Y)}getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}class j$ extends b{static[F]="PgNumericNumberBuilder";constructor(Y,Z,X){super(Y,"number","PgNumericNumber");this.config.precision=Z,this.config.scale=X}build(Y){return new S$(Y,this.config)}}class S$ extends j{static[F]="PgNumericNumber";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}mapToDriverValue=String;getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}class P$ extends b{static[F]="PgNumericBigIntBuilder";constructor(Y,Z,X){super(Y,"bigint","PgNumericBigInt");this.config.precision=Z,this.config.scale=X}build(Y){return new v$(Y,this.config)}}class v$ extends j{static[F]="PgNumericBigInt";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}function x$(Y,Z){let{name:X,config:_}=X0(Y,Z),G=_?.mode;return G==="number"?new j$(X,_?.precision,_?.scale):G==="bigint"?new P$(X,_?.precision,_?.scale):new q$(X,_?.precision,_?.scale)}class f$ extends b{static[F]="PgPointTupleBuilder";constructor(Y){super(Y,"array","PgPointTuple")}build(Y){return new h$(Y,this.config)}}class h$ extends j{static[F]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(Y){if(typeof Y==="string"){let[Z,X]=Y.slice(1,-1).split(",");return[Number.parseFloat(Z),Number.parseFloat(X)]}return[Y.x,Y.y]}mapToDriverValue(Y){return`(${Y[0]},${Y[1]})`}}class k$ extends b{static[F]="PgPointObjectBuilder";constructor(Y){super(Y,"json","PgPointObject")}build(Y){return new b$(Y,this.config)}}class b$ extends j{static[F]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(Y){if(typeof Y==="string"){let[Z,X]=Y.slice(1,-1).split(",");return{x:Number.parseFloat(Z),y:Number.parseFloat(X)}}return Y}mapToDriverValue(Y){return`(${Y.x},${Y.y})`}}function y$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new f$(X);return new k$(X)}function xF(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 g$(Y,Z){let X=new ArrayBuffer(8),_=new DataView(X);for(let G=0;G<8;G++)_.setUint8(G,Y[Z+G]);return _.getFloat64(0,!0)}function L5(Y){let Z=xF(Y),X=0,_=Z[X];X+=1;let G=new DataView(Z.buffer),$=G.getUint32(X,_===1);X+=4;let W;if($&536870912)W=G.getUint32(X,_===1),X+=4;if(($&65535)===1){let H=g$(Z,X);X+=8;let Q=g$(Z,X);return X+=8,[H,Q]}throw new Error("Unsupported geometry type")}class p$ extends b{static[F]="PgGeometryBuilder";constructor(Y){super(Y,"array","PgGeometry")}build(Y){return new m$(Y,this.config)}}class m$ extends j{static[F]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){return L5(Y)}mapToDriverValue(Y){return`point(${Y[0]} ${Y[1]})`}}class u$ extends b{static[F]="PgGeometryObjectBuilder";constructor(Y){super(Y,"json","PgGeometryObject")}build(Y){return new d$(Y,this.config)}}class d$ extends j{static[F]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){let Z=L5(Y);return{x:Z[0],y:Z[1]}}mapToDriverValue(Y){return`point(${Y.x} ${Y.y})`}}function c$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new p$(X);return new u$(X)}class l$ extends b{static[F]="PgRealBuilder";constructor(Y,Z){super(Y,"number","PgReal");this.config.length=Z}build(Y){return new o$(Y,this.config)}}class o$ extends j{static[F]="PgReal";constructor(Y,Z){super(Y,Z)}getSQLType(){return"real"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function i$(Y){return new l$(Y??"")}class r$ extends b{static[F]="PgSerialBuilder";constructor(Y){super(Y,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new n$(Y,this.config)}}class n$ extends j{static[F]="PgSerial";getSQLType(){return"serial"}}function s$(Y){return new r$(Y??"")}class t$ extends I2{static[F]="PgSmallIntBuilder";constructor(Y){super(Y,"number","PgSmallInt")}build(Y){return new a$(Y,this.config)}}class a$ extends j{static[F]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number(Y);return Y}}function e$(Y){return new t$(Y??"")}class YW extends b{static[F]="PgSmallSerialBuilder";constructor(Y){super(Y,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new ZW(Y,this.config)}}class ZW extends j{static[F]="PgSmallSerial";getSQLType(){return"smallserial"}}function XW(Y){return new YW(Y??"")}class _W extends b{static[F]="PgTextBuilder";constructor(Y,Z){super(Y,"string","PgText");this.config.enumValues=Z.enum}build(Y){return new GW(Y,this.config)}}class GW extends j{static[F]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function $W(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new _W(X,_)}class WW extends U2{constructor(Y,Z,X){super(Y,"string","PgTime");this.withTimezone=Z,this.precision=X,this.config.withTimezone=Z,this.config.precision=X}static[F]="PgTimeBuilder";build(Y){return new k6(Y,this.config)}}class k6 extends j{static[F]="PgTime";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function HW(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new WW(X,_.withTimezone??!1,_.precision)}class JW extends U2{static[F]="PgTimestampBuilder";constructor(Y,Z,X){super(Y,"date","PgTimestamp");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new b6(Y,this.config)}}class b6 extends j{static[F]="PgTimestamp";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(Y)=>{return new Date(this.withTimezone?Y:Y+"+0000")};mapToDriverValue=(Y)=>{return Y.toISOString()}}class QW extends U2{static[F]="PgTimestampStringBuilder";constructor(Y,Z,X){super(Y,"string","PgTimestampString");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new y6(Y,this.config)}}class y6 extends j{static[F]="PgTimestampString";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function UW(Y,Z={}){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="string")return new QW(X,_.withTimezone??!1,_.precision);return new JW(X,_?.withTimezone??!1,_?.precision)}class zW extends b{static[F]="PgUUIDBuilder";constructor(Y){super(Y,"string","PgUUID")}defaultRandom(){return this.default(O`gen_random_uuid()`)}build(Y){return new g6(Y,this.config)}}class g6 extends j{static[F]="PgUUID";getSQLType(){return"uuid"}}function q1(Y){return new zW(Y??"")}class FW extends b{static[F]="PgVarcharBuilder";constructor(Y,Z){super(Y,"string","PgVarchar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new EW(Y,this.config)}}class EW extends j{static[F]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function e0(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new FW(X,_)}class OW extends b{static[F]="PgBinaryVectorBuilder";constructor(Y,Z){super(Y,"string","PgBinaryVector");this.config.dimensions=Z.dimensions}build(Y){return new VW(Y,this.config)}}class VW extends j{static[F]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function DW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new OW(X,_)}class LW extends b{static[F]="PgHalfVectorBuilder";constructor(Y,Z){super(Y,"array","PgHalfVector");this.config.dimensions=Z.dimensions}build(Y){return new MW(Y,this.config)}}class MW extends j{static[F]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){return Y.slice(1,-1).split(",").map((Z)=>Number.parseFloat(Z))}}function AW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new LW(X,_)}class wW extends b{static[F]="PgSparseVectorBuilder";constructor(Y,Z){super(Y,"string","PgSparseVector");this.config.dimensions=Z.dimensions}build(Y){return new RW(Y,this.config)}}class RW extends j{static[F]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function NW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new wW(X,_)}class IW extends b{static[F]="PgVectorBuilder";constructor(Y,Z){super(Y,"array","PgVector");this.config.dimensions=Z.dimensions}build(Y){return new TW(Y,this.config)}}class TW extends j{static[F]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){return Y.slice(1,-1).split(",").map((Z)=>Number.parseFloat(Z))}}function KW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new IW(X,_)}function BW(){return{bigint:k7,bigserial:m7,boolean:R8,char:o7,cidr:n7,customType:a7,date:Z$,doublePrecision:G$,inet:H$,integer:N8,interval:F$,json:O$,jsonb:D$,line:R$,macaddr:T$,macaddr8:C$,numeric:x$,point:y$,geometry:c$,real:i$,serial:s$,smallint:e$,smallserial:XW,text:$W,time:HW,timestamp:UW,uuid:q1,varchar:e0,bit:DW,halfvec:AW,sparsevec:NW,vector:KW}}var M5=Symbol.for("drizzle:PgInlineForeignKeys"),CW=Symbol.for("drizzle:EnableRLS");class u0 extends S{static[F]="PgTable";static Symbol=Object.assign({},S.Symbol,{InlineForeignKeys:M5,EnableRLS:CW});[M5]=[];[CW]=!1;[S.Symbol.ExtraConfigBuilder]=void 0;[S.Symbol.ExtraConfigColumns]={}}function fF(Y,Z,X,_,G=Y){let $=new u0(Y,_,G),W=typeof Z==="function"?Z(BW()):Z,H=Object.fromEntries(Object.entries(W).map(([U,E])=>{let V=E;V.setName(U);let L=V.build($);return $[M5].push(...V.buildForeignKeys(L,$)),[U,L]})),Q=Object.fromEntries(Object.entries(W).map(([U,E])=>{let V=E;V.setName(U);let L=V.buildExtraConfigColumn($);return[U,L]})),J=Object.assign($,H);if(J[S.Symbol.Columns]=H,J[S.Symbol.ExtraConfigColumns]=Q,X)J[u0.Symbol.ExtraConfigBuilder]=X;return Object.assign(J,{enableRLS:()=>{return J[u0.Symbol.EnableRLS]=!0,J}})}var T2=(Y,Z,X)=>{return fF(Y,Z,X,void 0)};function qW(...Y){if(Y[0].columns)return new I8(Y[0].columns,Y[0].name);return new I8(Y)}class I8{static[F]="PgPrimaryKeyBuilder";columns;name;constructor(Y,Z){this.columns=Y,this.name=Z}build(Y){return new jW(Y,this.columns,this.name)}}class jW{constructor(Y,Z,X){this.table=Y,this.columns=Z,this.name=X}static[F]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[u0.Symbol.Name]}_${this.columns.map((Y)=>Y.name).join("_")}_pk`}}function D1(Y,Z){if(T7(Z)&&!z5(Y)&&!A(Y,w1)&&!A(Y,N2)&&!A(Y,E0)&&!A(Y,S)&&!A(Y,V1))return new w1(Y,Z);return Y}var p6=(Y,Z)=>{return O`${Y} = ${D1(Z,Y)}`},SW=(Y,Z)=>{return O`${Y} <> ${D1(Z,Y)}`};function T8(...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("("),O.join(Z,new m0(" and ")),new m0(")")])}function PW(...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("("),O.join(Z,new m0(" or ")),new m0(")")])}function vW(Y){return O`not ${Y}`}var xW=(Y,Z)=>{return O`${Y} > ${D1(Z,Y)}`},fW=(Y,Z)=>{return O`${Y} >= ${D1(Z,Y)}`},hW=(Y,Z)=>{return O`${Y} < ${D1(Z,Y)}`},kW=(Y,Z)=>{return O`${Y} <= ${D1(Z,Y)}`};function bW(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return O`false`;return O`${Y} in ${Z.map((X)=>D1(X,Y))}`}return O`${Y} in ${D1(Z,Y)}`}function yW(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return O`true`;return O`${Y} not in ${Z.map((X)=>D1(X,Y))}`}return O`${Y} not in ${D1(Z,Y)}`}function gW(Y){return O`${Y} is null`}function pW(Y){return O`${Y} is not null`}function mW(Y){return O`exists ${Y}`}function uW(Y){return O`not exists ${Y}`}function dW(Y,Z,X){return O`${Y} between ${D1(Z,Y)} and ${D1(X,Y)}`}function cW(Y,Z,X){return O`${Y} not between ${D1(Z,Y)} and ${D1(X,Y)}`}function lW(Y,Z){return O`${Y} like ${Z}`}function oW(Y,Z){return O`${Y} not like ${Z}`}function iW(Y,Z){return O`${Y} ilike ${Z}`}function rW(Y,Z){return O`${Y} not ilike ${Z}`}function nW(Y){return O`${Y} asc`}function sW(Y){return O`${Y} desc`}class A5{constructor(Y,Z,X){this.sourceTable=Y,this.referencedTable=Z,this.relationName=X,this.referencedTableName=Z[S.Symbol.Name]}static[F]="Relation";referencedTableName;fieldName}class tW{constructor(Y,Z){this.table=Y,this.config=Z}static[F]="Relations"}class K2 extends A5{constructor(Y,Z,X,_){super(Y,Z,X?.relationName);this.config=X,this.isNullable=_}static[F]="One";withFieldName(Y){let Z=new K2(this.sourceTable,this.referencedTable,this.config,this.isNullable);return Z.fieldName=Y,Z}}class K8 extends A5{constructor(Y,Z,X){super(Y,Z,X?.relationName);this.config=X}static[F]="Many";withFieldName(Y){let Z=new K8(this.sourceTable,this.referencedTable,this.config);return Z.fieldName=Y,Z}}function aW(){return{and:T8,between:dW,eq:p6,exists:mW,gt:xW,gte:fW,ilike:iW,inArray:bW,isNull:gW,isNotNull:pW,like:lW,lt:hW,lte:kW,ne:SW,not:vW,notBetween:cW,notExists:uW,notLike:oW,notIlike:rW,notInArray:yW,or:PW,sql:O}}function eW(){return{sql:O,asc:nW,desc:sW}}function Y3(Y,Z){if(Object.keys(Y).length===1&&"default"in Y&&!A(Y.default,S))Y=Y.default;let X={},_={},G={};for(let[$,W]of Object.entries(Y))if(A(W,S)){let H=m2(W),Q=_[H];X[H]=$,G[$]={tsName:$,dbName:W[S.Symbol.Name],schema:W[S.Symbol.Schema],columns:W[S.Symbol.Columns],relations:Q?.relations??{},primaryKey:Q?.primaryKey??[]};for(let U of Object.values(W[S.Symbol.Columns]))if(U.primary)G[$].primaryKey.push(U);let J=W[S.Symbol.ExtraConfigBuilder]?.(W[S.Symbol.ExtraConfigColumns]);if(J){for(let U of Object.values(J))if(A(U,I8))G[$].primaryKey.push(...U.columns)}}else if(A(W,tW)){let H=m2(W.table),Q=X[H],J=W.config(Z(W.table)),U;for(let[E,V]of Object.entries(J))if(Q){let L=G[Q];if(L.relations[E]=V,U)L.primaryKey.push(...U)}else{if(!(H in _))_[H]={relations:{},primaryKey:U};_[H].relations[E]=V}}return{tables:G,tableNamesMap:X}}function hF(Y){return function Z(X,_){return new K2(Y,X,_,_?.fields.reduce((G,$)=>G&&$.notNull,!0)??!1)}}function kF(Y){return function Z(X,_){return new K8(Y,X,_)}}function Z3(Y,Z,X){if(A(X,K2)&&X.config)return{fields:X.config.fields,references:X.config.references};let _=Z[m2(X.referencedTable)];if(!_)throw new Error(`Table "${X.referencedTable[S.Symbol.Name]}" not found in schema`);let G=Y[_];if(!G)throw new Error(`Table "${_}" not found in schema`);let $=X.sourceTable,W=Z[m2($)];if(!W)throw new Error(`Table "${$[S.Symbol.Name]}" not found in schema`);let H=[];for(let Q of Object.values(G.relations))if(X.relationName&&X!==Q&&Q.relationName===X.relationName||!X.relationName&&Q.referencedTable===X.sourceTable)H.push(Q);if(H.length>1)throw X.relationName?new Error(`There are multiple relations with name "${X.relationName}" in table "${_}"`):new Error(`There are multiple relations between "${_}" and "${X.sourceTable[S.Symbol.Name]}". Please specify relation name`);if(H[0]&&A(H[0],K2)&&H[0].config)return{fields:H[0].config.references,references:H[0].config.fields};throw new Error(`There is not enough information to infer relation "${W}.${X.fieldName}"`)}function X3(Y){return{one:hF(Y),many:kF(Y)}}function m6(Y,Z,X,_,G=($)=>$){let $={};for(let[W,H]of _.entries())if(H.isJson){let Q=Z.relations[H.tsKey],J=X[W],U=typeof J==="string"?JSON.parse(J):J;$[H.tsKey]=A(Q,K2)?U&&m6(Y,Y[H.relationTableTsKey],U,H.selection,G):U.map((E)=>m6(Y,Y[H.relationTableTsKey],E,H.selection,G))}else{let Q=G(X[W]),J=H.field,U;if(A(J,E0))U=J;else if(A(J,f))U=J.decoder;else U=J.sql.decoder;$[H.tsKey]=Q===null?null:U.mapFromDriverValue(Q)}return $}import WE from"os";import HE from"fs";var u6=new Map,w5=new Map,R5=Symbol("OriginError"),N4={};class j1 extends Promise{constructor(Y,Z,X,_,G={}){let $,W;super((H,Q)=>{$=H,W=Q});this.tagged=Array.isArray(Y.raw),this.strings=Y,this.args=Z,this.handler=X,this.canceller=_,this.options=G,this.state=null,this.statement=null,this.resolve=(H)=>(this.active=!1,$(H)),this.reject=(H)=>(this.active=!1,W(H)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[R5]=this.handler.debug?new Error:this.tagged&&bF(this.strings)}get origin(){return(this.handler.debug?this[R5].stack:this.tagged&&w5.has(this.strings)?w5.get(this.strings):w5.set(this.strings,this[R5].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(Y=1,Z){if(this.options.simple=!1,typeof Y==="function")Z=Y,Y=1;if(this.cursorRows=Y,typeof Z==="function")return this.cursorFn=Z,this;let X;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};X&&X();let _=new Promise((G,$)=>{this.cursorFn=(W)=>{return G({value:W,done:!1}),new Promise((H)=>X=H)},this.resolve=()=>(this.active=!1,G({done:!0})),this.reject=(W)=>(this.active=!1,$(W))});return this.execute(),_},return(){return X&&X(N4),{done:!0}}})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw new Error(".stream has been renamed to .forEach")}forEach(Y){return this.forEachFn=Y,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}}function bF(Y){if(u6.has(Y))return u6.get(Y);let Z=Error.stackTraceLimit;return Error.stackTraceLimit=4,u6.set(Y,new Error),Error.stackTraceLimit=Z,u6.get(Y)}class I4 extends Error{constructor(Y){super(Y.message);this.name=this.constructor.name,Object.assign(this,Y)}}var f0={connection:_3,postgres:G3,generic:$3,notSupported:W3};function _3(Y,Z,X){let{host:_,port:G}=X||Z,$=Object.assign(new Error("write "+Y+" "+(Z.path||_+":"+G)),{code:Y,errno:Y,address:Z.path||_},Z.path?{}:{port:G});return Error.captureStackTrace($,_3),$}function G3(Y){let Z=new I4(Y);return Error.captureStackTrace(Z,G3),Z}function $3(Y,Z){let X=Object.assign(new Error(Y+": "+Z),{code:Y});return Error.captureStackTrace(X,$3),X}function W3(Y){let Z=Object.assign(new Error(Y+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:Y});return Error.captureStackTrace(Z,W3),Z}var yF={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 l6{then(){N5()}catch(){N5()}finally(){N5()}}class j8 extends l6{constructor(Y){super();this.value=r6(Y)}}class r1 extends l6{constructor(Y,Z,X){super();this.value=Y,this.type=Z,this.array=X}}class o6 extends l6{constructor(Y,Z){super();this.first=Y,this.rest=Z}build(Y,Z,X,_){let G=gF.map(([$,W])=>({fn:W,i:Y.search($)})).sort(($,W)=>$.i-W.i).pop();return G.i===-1?C5(this.first,_):G.fn(this.first,this.rest,Z,X,_)}}function i6(Y,Z,X,_){let G=Y instanceof r1?Y.value:Y;if(G===void 0){if(Y instanceof r1?Y.value=_.transform.undefined:G=Y=_.transform.undefined,G===void 0)throw f0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+X.push(Y instanceof r1?(Z.push(Y.value),Y.array?Y.array[Y.type||c6(Y.value)]||Y.type||U3(Y.value):Y.type):(Z.push(Y),c6(Y)))}var J3=F3(yF);function K5(Y,Z,X,_,G,$){for(let W=1;W<Y.strings.length;W++)Z+=B5(Z,X,_,G,$)+Y.strings[W],X=Y.args[W];return Z}function B5(Y,Z,X,_,G){return Z instanceof o6?Z.build(Y,X,_,G):Z instanceof j1?T5(Z,X,_,G):Z instanceof j8?Z.value:Z&&Z[0]instanceof j1?Z.reduce(($,W)=>$+" "+T5(W,X,_,G),""):i6(Z,X,_,G)}function T5(Y,Z,X,_){return Y.fragment=!0,K5(Y,Y.strings[0],Y.args[0],Z,X,_)}function Q3(Y,Z,X,_,G){return Y.map(($)=>"("+_.map((W)=>B5("values",$[W],Z,X,G)).join(",")+")").join(",")}function H3(Y,Z,X,_,G){let $=Array.isArray(Y[0]),W=Z.length?Z.flat():Object.keys($?Y[0]:Y);return Q3($?Y:[Y],X,_,W,G)}function d6(Y,Z,X,_,G){if(typeof Y==="string"&&(Y=[Y].concat(Z)),Array.isArray(Y))return C5(Y,G);let $;return(Z.length?Z.flat():Object.keys(Y)).map((H)=>{return $=Y[H],($ instanceof j1?T5($,X,_,G):$ instanceof j8?$.value:i6($,X,_,G))+" as "+r6(G.transform.column.to?G.transform.column.to(H):H)}).join(",")}var gF=Object.entries({values:H3,in:(...Y)=>{let Z=H3(...Y);return Z==="()"?"(null)":Z},select:d6,as:d6,returning:d6,"\\(":d6,update(Y,Z,X,_,G){return(Z.length?Z.flat():Object.keys(Y)).map(($)=>r6(G.transform.column.to?G.transform.column.to($):$)+"="+B5("values",Y[$],X,_,G))},insert(Y,Z,X,_,G){let $=Z.length?Z.flat():Object.keys(Array.isArray(Y)?Y[0]:Y);return"("+C5($,G)+")values"+Q3(Array.isArray(Y)?Y:[Y],X,_,$,G)}}).map(([Y,Z])=>[new RegExp("((?:^|[\\s(])"+Y+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),Z]);function N5(){throw f0.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:pF,parsers:mF}=J3;function U3(Y){if(Array.isArray(Y))return U3(Y[0]);return typeof Y==="string"?1009:0}var z3=function(Y){let Z=F3(Y||{});return{serializers:Object.assign({},pF,Z.serializers),parsers:Object.assign({},mF,Z.parsers)}};function F3(Y){return Object.keys(Y).reduce((Z,X)=>{if(Y[X].from&&[].concat(Y[X].from).forEach((_)=>Z.parsers[_]=Y[X].parse),Y[X].serialize)Z.serializers[Y[X].to]=Y[X].serialize,Y[X].from&&[].concat(Y[X].from).forEach((_)=>Z.serializers[_]=Y[X].serialize);return Z},{parsers:{},serializers:{}})}function C5(Y,{transform:{column:Z}}){return Y.map((X)=>r6(Z.to?Z.to(X):X)).join(",")}var r6=function Y(Z){return'"'+Z.replace(/"/g,'""').replace(/\./g,'"."')+'"'},c6=function Y(Z){return Z instanceof r1?Z.type:Z instanceof Date?1184:Z instanceof Uint8Array?17:Z===!0||Z===!1?16:typeof Z==="bigint"?20:Array.isArray(Z)?Y(Z[0]):0},uF=/\\/g,dF=/"/g;function cF(Y){return Y.replace(uF,"\\\\").replace(dF,"\\\"")}var E3=function Y(Z,X,_,G){if(Array.isArray(Z)===!1)return Z;if(!Z.length)return"{}";let $=Z[0],W=G===1020?";":",";if(Array.isArray($)&&!$.type)return"{"+Z.map((H)=>Y(H,X,_,G)).join(W)+"}";return"{"+Z.map((H)=>{if(H===void 0){if(H=_.transform.undefined,H===void 0)throw f0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return H===null?"null":'"'+cF(X?X(H.type?H.value:H):""+H)+'"'}).join(W)+"}"},I5={i:0,char:null,str:"",quoted:!1,last:0},O3=function Y(Z,X,_){return I5.i=I5.last=0,V3(I5,Z,X,_)};function V3(Y,Z,X,_){let G=[],$=_===1020?";":",";for(;Y.i<Z.length;Y.i++){if(Y.char=Z[Y.i],Y.quoted)if(Y.char==="\\")Y.str+=Z[++Y.i];else if(Y.char==='"')G.push(X?X(Y.str):Y.str),Y.str="",Y.quoted=Z[Y.i+1]==='"',Y.last=Y.i+2;else Y.str+=Y.char;else if(Y.char==='"')Y.quoted=!0;else if(Y.char==="{")Y.last=++Y.i,G.push(V3(Y,Z,X,_));else if(Y.char==="}"){Y.quoted=!1,Y.last<Y.i&&G.push(X?X(Z.slice(Y.last,Y.i)):Z.slice(Y.last,Y.i)),Y.last=Y.i+1;break}else if(Y.char===$&&Y.p!=="}"&&Y.p!=='"')G.push(X?X(Z.slice(Y.last,Y.i)):Z.slice(Y.last,Y.i)),Y.last=Y.i+1;Y.p=Y.char}return Y.last<Y.i&&G.push(X?X(Z.slice(Y.last,Y.i+1)):Z.slice(Y.last,Y.i+1)),G}var u2=(Y)=>{let Z=Y[0];for(let X=1;X<Y.length;X++)Z+=Y[X]==="_"?Y[++X].toUpperCase():Y[X];return Z},d2=(Y)=>{let Z=Y[0].toUpperCase();for(let X=1;X<Y.length;X++)Z+=Y[X]==="_"?Y[++X].toUpperCase():Y[X];return Z},c2=(Y)=>Y.replace(/_/g,"-"),B8=(Y)=>Y.replace(/([A-Z])/g,"_$1").toLowerCase(),C8=(Y)=>(Y.slice(0,1)+Y.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),q8=(Y)=>Y.replace(/-/g,"_");function q5(Y){return function Z(X,_){return typeof X==="object"&&X!==null&&(_.type===114||_.type===3802)?Array.isArray(X)?X.map((G)=>Z(G,_)):Object.entries(X).reduce((G,[$,W])=>Object.assign(G,{[Y($)]:Z(W,_)}),{}):X}}u2.column={from:u2};u2.value={from:q5(u2)};B8.column={to:B8};var j5={...u2};j5.column.to=B8;d2.column={from:d2};d2.value={from:q5(d2)};C8.column={to:C8};var S5={...d2};S5.column.to=C8;c2.column={from:c2};c2.value={from:q5(c2)};q8.column={to:q8};var P5={...c2};P5.column.to=q8;import D3 from"net";import rF from"tls";import S8 from"crypto";import v5 from"stream";import{performance as L3}from"perf_hooks";class l2 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=lF;function lF(Y=[]){let Z=Y.slice(),X=0;return{get length(){return Z.length-X},remove:(_)=>{let G=Z.indexOf(_);return G===-1?null:(Z.splice(G,1),_)},push:(_)=>(Z.push(_),_),shift:()=>{let _=Z[X++];if(X===Z.length)X=0,Z=[];else Z[X-1]=void 0;return _}}}var Y1=Buffer.allocUnsafe(256),oF="BCcDdEFfHPpQSX".split("").reduce((Y,Z)=>{let X=Z.charCodeAt(0);return Y[Z]=()=>{return Y1[0]=X,U0.i=5,U0},Y},{}),U0=Object.assign(iF,oF,{N:String.fromCharCode(0),i:0,inc(Y){return U0.i+=Y,U0},str(Y){let Z=Buffer.byteLength(Y);return n6(Z),U0.i+=Y1.write(Y,U0.i,Z,"utf8"),U0},i16(Y){return n6(2),Y1.writeUInt16BE(Y,U0.i),U0.i+=2,U0},i32(Y,Z){if(Z||Z===0)return Y1.writeUInt32BE(Y,Z),U0;return n6(4),Y1.writeUInt32BE(Y,U0.i),U0.i+=4,U0},z(Y){return n6(Y),Y1.fill(0,U0.i,U0.i+Y),U0.i+=Y,U0},raw(Y){return Y1=Buffer.concat([Y1.subarray(0,U0.i),Y]),U0.i=Y1.length,U0},end(Y=1){Y1.writeUInt32BE(U0.i-Y,Y);let Z=Y1.subarray(0,U0.i);return U0.i=0,Y1=Buffer.allocUnsafe(256),Z}}),c=U0;function n6(Y){if(Y1.length-U0.i<Y){let Z=Y1,X=Z.length;Y1=Buffer.allocUnsafe(X+(X>>1)+Y),Z.copy(Y1)}}function iF(){return U0.i=0,U0}var h5=w3,nF=1,B2=c().S().end(),M3=c().H().end(),sF=c().i32(8).i32(80877103).end(8),tF=Buffer.concat([c().E().str(c.N).i32(0).end(),B2]),aF=c().D().str("S").str(c.N).end(),T4=()=>{},eF=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),YE={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 w3(Y,Z={},{onopen:X=T4,onend:_=T4,onclose:G=T4}={}){let{ssl:$,max:W,user:H,host:Q,port:J,database:U,parsers:E,transform:V,onnotice:L,onnotify:w,onparameter:M,max_pipeline:h,keep_alive:k,backoff:x,target_session_attrs:m}=Y,K=R1(),I=nF++,q={pid:null,secret:null},C=f5(QY,Y.idle_timeout),g=f5(QY,Y.max_lifetime),n=f5(d3,Y.connect_timeout),T=null,t,p=new l2,a=Buffer.alloc(0),z0=Y.fetch_types,h0={},J1={},n1=Math.random().toString(36).slice(2),B=1,u=0,G0=0,I0=0,k0=0,s=0,J0=0,v0=0,K0=null,A0=null,i0=!1,V0=null,S1=null,c0=null,z2=null,b0=null,w0=null,P1=null,m1=null,v=null,q4=null,r0={queue:Z.closed,idleTimer:C,connect(z){c0=z,JX()},terminate:S4,execute:j4,cancel:g3,end:QY,count:0,id:I};return Z.closed&&Z.closed.push(r0),r0;async function y3(){let z;try{z=Y.socket?await Promise.resolve(Y.socket(Y)):new D3.Socket}catch(D){n2(D);return}return z.on("error",n2),z.on("close",QX),z.on("drain",WX),z}async function g3({pid:z,secret:D},l,$0){try{t=c().i32(16).i32(80877102).i32(z).i32(D).end(16),await HX(),T.once("error",$0),T.once("close",l)}catch(C0){$0(C0)}}function j4(z){if(i0)return y8(z,f0.connection("CONNECTION_DESTROYED",Y));if(z.cancelled)return;try{return z.state=q,v?K.push(z):(v=z,v.active=!0),u3(z),l0(p3(z))&&!z.describeFirst&&!z.cursorFn&&K.length<h&&(!z.options.onexecute||z.options.onexecute(r0))}catch(D){return K.length===0&&l0(B2),u1(D),!0}}function p3(z){if(z.parameters.length>=65534)throw f0.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return z.options.simple?c().Q().str(z.statement.string+c.N).end():z.describeFirst?Buffer.concat([_X(z),M3]):z.prepare?z.prepared?b8(z):Buffer.concat([_X(z),b8(z)]):m3(z)}function _X(z){return Buffer.concat([zX(z.statement.string,z.parameters,z.statement.types,z.statement.name),CH("S",z.statement.name)])}function b8(z){return Buffer.concat([BH(z.parameters,z.statement.types,z.statement.name,z.cursorName),z.cursorFn?FX("",z.cursorRows):tF])}function m3(z){return Buffer.concat([zX(z.statement.string,z.parameters,z.statement.types),aF,b8(z)])}function u3(z){let D=[],l=[],$0=K5(z,z.strings[0],z.args[0],D,l,Y);!z.tagged&&z.args.forEach((C0)=>i6(C0,D,l,Y)),z.prepare=Y.prepare&&("prepare"in z.options?z.options.prepare:!0),z.string=$0,z.signature=z.prepare&&l+$0,z.onlyDescribe&&delete J1[z.signature],z.parameters=z.parameters||D,z.prepared=z.prepare&&z.signature in J1,z.describeFirst=z.onlyDescribe||D.length&&!z.prepared,z.statement=z.prepared?J1[z.signature]:{string:$0,types:l,name:z.prepare?n1+B++:""},typeof Y.debug==="function"&&Y.debug(I,$0,D,l)}function l0(z,D){if(w0=w0?Buffer.concat([w0,z]):Buffer.from(z),D||w0.length>=1024)return GX(D);return A0===null&&(A0=setImmediate(GX)),!0}function GX(z){let D=T.write(w0,z);return A0!==null&&clearImmediate(A0),w0=A0=null,D}function d3(){u1(f0.connection("CONNECT_TIMEOUT",Y,T)),T.destroy()}async function $X(){if(l0(sF),!await new Promise((D)=>T.once("data",(l)=>D(l[0]===83)))&&$==="prefer")return r2();T.removeAllListeners(),T=rF.connect({socket:T,servername:D3.isIP(T.host)?void 0:T.host,...$==="require"||$==="allow"||$==="prefer"?{rejectUnauthorized:!1}:$==="verify-full"?{}:typeof $==="object"?$:{}}),T.on("secureConnect",r2),T.on("error",n2),T.on("close",QX),T.on("drain",WX)}function WX(){!v&&X(r0)}function JY(z){if(V0){if(V0.push(z),G0-=z.length,G0>0)return}a=V0?Buffer.concat(V0,s-G0):a.length===0?z:Buffer.concat([a,z],a.length+z.length);while(a.length>4){if(s=a.readUInt32BE(1),s>=a.length){G0=s-a.length,V0=[a];break}try{c3(a.subarray(0,s+1))}catch(D){v&&(v.cursorFn||v.describeFirst)&&l0(B2),u1(D)}a=a.subarray(s+1),G0=0,V0=null}}async function HX(){if(i0=!1,h0={},T||(T=await y3()),!T)return;if(n.start(),Y.socket)return $?$X():r2();if(T.on("connect",$?$X:r2),Y.path)return T.connect(Y.path);T.ssl=$,T.connect(J[I0],Q[I0]),T.host=Q[I0],T.port=J[I0],I0=(I0+1)%J.length}function JX(){setTimeout(HX,u?u+J0-L3.now():0)}function r2(){try{J1={},z0=Y.fetch_types,n1=Math.random().toString(36).slice(2),B=1,g.start(),T.on("data",JY),k&&T.setKeepAlive&&T.setKeepAlive(!0,1000*k);let z=jH();l0(z)}catch(z){n2(z)}}function n2(z){if(r0.queue===Z.connecting&&Y.host[k0+1])return;u1(z);while(K.length)y8(K.shift(),z)}function u1(z){b0&&(b0.destroy(z),b0=null),v&&y8(v,z),c0&&(y8(c0,z),c0=null)}function y8(z,D){if(z.reserve)return z.reject(D);if(!D||typeof D!=="object")D=new Error(D);"query"in D||"parameters"in D||Object.defineProperties(D,{stack:{value:D.stack+z.origin.replace(/.*\n/,`
61
+ `),enumerable:Y.debug},query:{value:z.string,enumerable:Y.debug},parameters:{value:z.parameters,enumerable:Y.debug},args:{value:z.args,enumerable:Y.debug},types:{value:z.statement&&z.statement.types,enumerable:Y.debug}}),z.reject(D)}function QY(){return z2||(!r0.reserved&&_(r0),!r0.reserved&&!c0&&!v&&K.length===0?(S4(),new Promise((z)=>T&&T.readyState!=="closed"?T.once("close",z):z())):z2=new Promise((z)=>P1=z))}function S4(){if(i0=!0,b0||v||c0||K.length)n2(f0.connection("CONNECTION_DESTROYED",Y));if(clearImmediate(A0),T)T.removeListener("data",JY),T.removeListener("connect",r2),T.readyState==="open"&&T.end(c().X().end());P1&&(P1(),z2=P1=null)}async function QX(z){if(a=Buffer.alloc(0),G0=0,V0=null,clearImmediate(A0),T.removeListener("data",JY),T.removeListener("connect",r2),C.cancel(),g.cancel(),n.cancel(),T.removeAllListeners(),T=null,c0)return JX();!z&&(v||K.length)&&n2(f0.connection("CONNECTION_CLOSED",Y,T)),u=L3.now(),z&&Y.shared.retries++,J0=(typeof x==="function"?x(Y.shared.retries):x)*1000,G(r0,f0.connection("CONNECTION_CLOSED",Y,T))}function c3(z,D=z[0]){(D===68?l3:D===100?MH:D===65?FH:D===83?o3:D===90?i3:D===67?r3:D===50?UX:D===49?n3:D===116?s3:D===84?t3:D===82?a3:D===110?GH:D===75?$H:D===69?UH:D===115?EH:D===51?OH:D===71?VH:D===78?wH:D===72?DH:D===99?AH:D===73?RH:D===86?NH:D===118?IH:D===87?LH:TH)(z)}function l3(z){let D=7,l,$0,C0,n0=v.isRaw?new Array(v.statement.columns.length):{};for(let Z1=0;Z1<v.statement.columns.length;Z1++)$0=v.statement.columns[Z1],l=z.readInt32BE(D),D+=4,C0=l===-1?null:v.isRaw===!0?z.subarray(D,D+=l):$0.parser===void 0?z.toString("utf8",D,D+=l):$0.parser.array===!0?$0.parser(z.toString("utf8",D+1,D+=l)):$0.parser(z.toString("utf8",D,D+=l)),v.isRaw?n0[Z1]=v.isRaw===!0?C0:V.value.from?V.value.from(C0,$0):C0:n0[$0.name]=V.value.from?V.value.from(C0,$0):C0;v.forEachFn?v.forEachFn(V.row.from?V.row.from(n0):n0,p):p[v0++]=V.row.from?V.row.from(n0):n0}function o3(z){let[D,l]=z.toString("utf8",5,z.length-1).split(c.N);if(h0[D]=l,Y.parameters[D]!==l)Y.parameters[D]=l,M&&M(D,l)}function i3(z){if(v&&v.options.simple&&v.resolve(S1||p),v=S1=null,p=new l2,n.cancel(),c0){if(m){if(!h0.in_hot_standby||!h0.default_transaction_read_only)return QH();else if(JH(m,h0))return S4()}if(z0)return c0.reserve&&(c0=null),WH();c0&&!c0.reserve&&j4(c0),Y.shared.retries=k0=0,c0=null;return}while(K.length&&(v=K.shift())&&(v.active=!0,v.cancelled))w3(Y).cancel(v.state,v.cancelled.resolve,v.cancelled.reject);if(v)return;r0.reserved?!r0.reserved.release&&z[5]===73?z2?S4():(r0.reserved=null,X(r0)):r0.reserved():z2?S4():X(r0)}function r3(z){v0=0;for(let D=z.length-1;D>0;D--){if(z[D]===32&&z[D+1]<58&&p.count===null)p.count=+z.toString("utf8",D+1,z.length-1);if(z[D-1]>=65){p.command=z.toString("utf8",5,D),p.state=q;break}}if(q4&&(q4(),q4=null),p.command==="BEGIN"&&W!==1&&!r0.reserved)return u1(f0.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(v.options.simple)return UX();if(v.cursorFn)p.count&&v.cursorFn(p),l0(B2);v.resolve(p)}function n3(){v.parsing=!1}function UX(){!p.statement&&(p.statement=v.statement),p.columns=v.statement.columns}function s3(z){let D=z.readUInt16BE(5);for(let l=0;l<D;++l)!v.statement.types[l]&&(v.statement.types[l]=z.readUInt32BE(7+l*4));v.prepare&&(J1[v.signature]=v.statement),v.describeFirst&&!v.onlyDescribe&&(l0(b8(v)),v.describeFirst=!1)}function t3(z){if(p.command)S1=S1||[p],S1.push(p=new l2),p.count=null,v.statement.columns=null;let D=z.readUInt16BE(5),l=7,$0;v.statement.columns=Array(D);for(let C0=0;C0<D;++C0){$0=l;while(z[l++]!==0);let n0=z.readUInt32BE(l),Z1=z.readUInt16BE(l+4),F2=z.readUInt32BE(l+6);v.statement.columns[C0]={name:V.column.from?V.column.from(z.toString("utf8",$0,l-1)):z.toString("utf8",$0,l-1),parser:E[F2],table:n0,number:Z1,type:F2},l+=18}if(p.statement=v.statement,v.onlyDescribe)return v.resolve(v.statement),l0(B2)}async function a3(z,D=z.readUInt32BE(5)){(D===3?e3:D===5?YH:D===10?ZH:D===11?XH:D===12?_H:D!==0?KH:T4)(z,D)}async function e3(){let z=await UY();l0(c().p().str(z).z(1).end())}async function YH(z){let D="md5"+await A3(Buffer.concat([Buffer.from(await A3(await UY()+H)),z.subarray(9)]));l0(c().p().str(D).z(1).end())}async function ZH(){m1=(await S8.randomBytes(18)).toString("base64"),c().p().str("SCRAM-SHA-256"+c.N);let z=c.i;l0(c.inc(4).str("n,,n=*,r="+m1).i32(c.i-z-4,z).end())}async function XH(z){let D=z.toString("utf8",9).split(",").reduce((Z1,F2)=>(Z1[F2[0]]=F2.slice(2),Z1),{}),l=await S8.pbkdf2Sync(await UY(),Buffer.from(D.s,"base64"),parseInt(D.i),32,"sha256"),$0=await s6(l,"Client Key"),C0="n=*,r="+m1+",r="+D.r+",s="+D.s+",i="+D.i+",c=biws,r="+D.r;K0=(await s6(await s6(l,"Server Key"),C0)).toString("base64");let n0="c=biws,r="+D.r+",p="+XE($0,Buffer.from(await s6(await ZE($0),C0))).toString("base64");l0(c().p().str(n0).end())}function _H(z){if(z.toString("utf8",9).split(c.N,1)[0].slice(2)===K0)return;u1(f0.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),T.destroy()}function UY(){return Promise.resolve(typeof Y.pass==="function"?Y.pass():Y.pass)}function GH(){if(p.statement=v.statement,p.statement.columns=[],v.onlyDescribe)return v.resolve(v.statement),l0(B2)}function $H(z){q.pid=z.readUInt32BE(5),q.secret=z.readUInt32BE(9)}async function WH(){z0=!1,(await new j1([`
62
62
  select b.oid, b.typarray
63
63
  from pg_catalog.pg_type a
64
64
  left join pg_catalog.pg_type b on b.oid = a.typelem
@@ -68,7 +68,7 @@ params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrac
68
68
  `],[],j4)).forEach(({oid:D,typarray:l})=>HH(D,l))}function HH(z,D){if(!!Y.parsers[D]&&!!Y.serializers[D])return;let l=Y.parsers[z];Y.shared.typeArrayMap[z]=D,Y.parsers[D]=($0)=>O3($0,l,D),Y.parsers[D].array=!0,Y.serializers[D]=($0)=>E3($0,Y.serializers[z],Y,D)}function JH(z,D){return z==="read-write"&&D.default_transaction_read_only==="on"||z==="read-only"&&D.default_transaction_read_only==="off"||z==="primary"&&D.in_hot_standby==="on"||z==="standby"&&D.in_hot_standby==="off"||z==="prefer-standby"&&D.in_hot_standby==="off"&&Y.host[k0]}function QH(){let z=new j1([`
69
69
  show transaction_read_only;
70
70
  select pg_catalog.pg_is_in_recovery()
71
- `],[],j4,null,{simple:!0});z.resolve=([[D],[l]])=>{h0.default_transaction_read_only=D.transaction_read_only,h0.in_hot_standby=l.pg_is_in_recovery?"on":"off"},z.execute()}function UH(z){v&&(v.cursorFn||v.describeFirst)&&l0(B2);let D=f0.postgres(x5(z));v&&v.retried?m1(v.retried):v&&v.prepared&&eF.has(D.routine)?zH(v,D):m1(D)}function zH(z,D){delete J1[z.signature],z.retried=D,j4(z)}function FH(z){if(!w)return;let D=9;while(z[D++]!==0);w(z.toString("utf8",9,D-1),z.toString("utf8",D,z.length-1))}async function EH(){try{let z=await Promise.resolve(v.cursorFn(p));v0=0,z===N4?l0(qH(v.portal)):(p=new l2,l0(FX("",v.cursorRows)))}catch(z){l0(B2),v.reject(z)}}function OH(){p.count&&v.cursorFn(p),v.resolve(p)}function VH(){b0=new v5.Writable({autoDestroy:!0,write(z,D,l){T.write(c().d().raw(z).end(),l)},destroy(z,D){D(z),T.write(c().f().str(z+c.N).end()),b0=null},final(z){T.write(c().c().end()),q4=z}}),v.resolve(b0)}function DH(){b0=new v5.Readable({read(){T.resume()}}),v.resolve(b0)}function LH(){b0=new v5.Duplex({autoDestroy:!0,read(){T.resume()},write(z,D,l){T.write(c().d().raw(z).end(),l)},destroy(z,D){D(z),T.write(c().f().str(z+c.N).end()),b0=null},final(z){T.write(c().c().end()),q4=z}}),v.resolve(b0)}function MH(z){b0&&(b0.push(z.subarray(5))||T.pause())}function AH(){b0&&b0.push(null),b0=null}function wH(z){L?L(x5(z)):console.log(x5(z))}function RH(){}function NH(){m1(f0.notSupported("FunctionCallResponse"))}function IH(){m1(f0.notSupported("NegotiateProtocolVersion"))}function TH(z){console.error("Postgres.js : Unknown Message:",z[0])}function KH(z,D){console.error("Postgres.js : Unknown Auth:",D)}function BH(z,D,l="",$0=""){let C0,n0;return c().B().str($0+c.N).str(l+c.N).i16(0).i16(z.length),z.forEach((Z1,F2)=>{if(Z1===null)return c.i32(4294967295);n0=D[F2],z[F2]=Z1=n0 in Y.serializers?Y.serializers[n0](Z1):""+Z1,C0=c.i,c.inc(4).str(Z1).i32(c.i-C0-4,C0)}),c.i16(0),c.end()}function zX(z,D,l,$0=""){return c().P().str($0+c.N).str(z+c.N).i16(D.length),D.forEach((C0,n0)=>c.i32(l[n0]||0)),c.end()}function CH(z,D=""){return c().D().str(z).str(D+c.N).end()}function FX(z="",D=0){return Buffer.concat([c().E().str(z+c.N).i32(D).end(),M3])}function qH(z=""){return Buffer.concat([c().C().str("P").str(z+c.N).end(),c().S().end()])}function jH(){return t||c().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:H,database:U,client_encoding:"UTF8"},Y.connection)).filter(([,z])=>z).map(([z,D])=>z+c.N+D).join(c.N)).z(2).end(0)}}function x5(Y){let Z={},X=5;for(let _=5;_<Y.length-1;_++)if(Y[_]===0)Z[YE[Y[X]]]=Y.toString("utf8",X+1,_),X=_+1;return Z}function A3(Y){return S8.createHash("md5").update(Y).digest("hex")}function s6(Y,Z){return S8.createHmac("sha256",Y).update(Z).digest()}function ZE(Y){return S8.createHash("sha256").update(Y).digest()}function XE(Y,Z){let X=Math.max(Y.length,Z.length),_=Buffer.allocUnsafe(X);for(let G=0;G<X;G++)_[G]=Y[G]^Z[G];return _}function f5(Y,Z){if(Z=typeof Z==="function"?Z():Z,!Z)return{cancel:T4,start:T4};let X;return{cancel(){X&&(clearTimeout(X),X=null)},start(){X&&clearTimeout(X),X=setTimeout(_,Z*1000,arguments)}};function _(G){Y.apply(null,G),X=null}}var R3=()=>{};function k5(Y,Z){let X=new Map,_="postgresjs_"+Math.random().toString(36).slice(2),G={},$,W,H=!1,Q=E.sql=Y({...Z,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...Z.connection,replication:"database"},onclose:async function(){if(H)return;W=null,G.pid=G.secret=void 0,V(await L(Q,_,Z.publications)),X.forEach((M)=>M.forEach(({onsubscribe:k})=>k()))},no_subscribe:!0}),J=Q.end,U=Q.close;return Q.end=async()=>{return H=!0,W&&await new Promise((M)=>(W.once("close",M),W.end())),J()},Q.close=async()=>{return W&&await new Promise((M)=>(W.once("close",M),W.end())),U()},E;async function E(M,k,h=R3,x=R3){if(M=$E(M),!$)$=L(Q,_,Z.publications);let m={fn:k,onsubscribe:h},K=X.has(M)?X.get(M).add(m):X.set(M,new Set([m])).get(M),I=()=>{K.delete(m),K.size===0&&X.delete(M)};return $.then((q)=>{return V(q),h(),W&&W.on("error",x),{unsubscribe:I,state:G,sql:Q}})}function V(M){W=M.stream,G.pid=M.state.pid,G.secret=M.state.secret}async function L(M,k,h){if(!h)throw new Error("Missing publication names");let x=await M.unsafe(`CREATE_REPLICATION_SLOT ${k} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[m]=x,K=await M.unsafe(`START_REPLICATION SLOT ${k} LOGICAL ${m.consistent_point} (proto_version '1', publication_names '${h}')`).writable(),I={lsn:Buffer.concat(m.consistent_point.split("/").map((T)=>Buffer.from(("00000000"+T).slice(-8),"hex")))};return K.on("data",C),K.on("error",q),K.on("close",M.close),{stream:K,state:x.state};function q(T){console.error("Unexpected error during logical streaming - reconnecting",T)}function C(T){if(T[0]===119)GE(T.subarray(25),I,M.options.parsers,g,Z.transform);else if(T[0]===107&&T[17])I.lsn=T.subarray(1,9),n()}function g(T,t){let p=t.relation.schema+"."+t.relation.table;w("*",T,t),w("*:"+p,T,t),t.relation.keys.length&&w("*:"+p+"="+t.relation.keys.map((a)=>T[a.name]),T,t),w(t.command,T,t),w(t.command+":"+p,T,t),t.relation.keys.length&&w(t.command+":"+p+"="+t.relation.keys.map((a)=>T[a.name]),T,t)}function n(){let T=Buffer.alloc(34);T[0]=114,T.fill(I.lsn,1),T.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),K.write(T)}}function w(M,k,h){X.has(M)&&X.get(M).forEach(({fn:x})=>x(k,h,M))}}function _E(Y){return new Date(Date.UTC(2000,0,1)+Number(Y/BigInt(1000)))}function GE(Y,Z,X,_,G){let $=(W,[H,Q])=>(W[H.charCodeAt(0)]=Q,W);Object.entries({R:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)]={schema:W.toString("utf8",H+=4,H=W.indexOf(0,H))||"pg_catalog",table:W.toString("utf8",H+1,H=W.indexOf(0,H+1)),columns:Array(W.readUInt16BE(H+=2)),keys:[]};H+=2;let J=0,U;while(H<W.length)U=Q.columns[J++]={key:W[H++],name:G.column.from?G.column.from(W.toString("utf8",H,H=W.indexOf(0,H))):W.toString("utf8",H,H=W.indexOf(0,H)),type:W.readUInt32BE(H+=1),parser:X[W.readUInt32BE(H)],atttypmod:W.readUInt32BE(H+=4)},U.key&&Q.keys.push(U),H+=4},Y:()=>{},O:()=>{},B:(W)=>{Z.date=_E(W.readBigInt64BE(9)),Z.lsn=W.subarray(1,9)},I:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)],{row:J}=t6(W,Q.columns,H+=7,G);_(J,{command:"insert",relation:Q})},D:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)];H+=4;let J=W[H]===75;_(J||W[H]===79?t6(W,Q.columns,H+=3,G).row:null,{command:"delete",relation:Q,key:J})},U:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)];H+=4;let J=W[H]===75,U=J||W[H]===79?t6(W,Q.columns,H+=3,G):null;U&&(H=U.i);let{row:E}=t6(W,Q.columns,H+3,G);_(E,{command:"update",relation:Q,key:J,old:U&&U.row})},T:()=>{},C:()=>{}}).reduce($,{})[Y[0]](Y)}function t6(Y,Z,X,_){let G,$,W,H=_.raw?new Array(Z.length):{};for(let Q=0;Q<Z.length;Q++)G=Y[X++],$=Z[Q],W=G===110?null:G===117?void 0:$.parser===void 0?Y.toString("utf8",X+4,X+=4+Y.readUInt32BE(X)):$.parser.array===!0?$.parser(Y.toString("utf8",X+5,X+=4+Y.readUInt32BE(X))):$.parser(Y.toString("utf8",X+4,X+=4+Y.readUInt32BE(X))),_.raw?H[Q]=_.raw===!0?W:_.value.from?_.value.from(W,$):W:H[$.name]=_.value.from?_.value.from(W,$):W;return{i:X,row:_.row.from?_.row.from(H):H}}function $E(Y){let Z=Y.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!Z)throw new Error("Malformed subscribe pattern: "+Y);let[,X,_,G]=Z;return(X||"*")+(_?":"+(_.indexOf(".")===-1?"public."+_:_):"")+(G?"="+G:"")}import N3 from"stream";function b5(Y,Z,X=393216){return new Promise(async(_,G)=>{await Y.begin(async($)=>{let W;!Z&&([{oid:Z}]=await $`select lo_creat(-1) as oid`);let[{fd:H}]=await $`select lo_open(${Z}, ${X}) as fd`,Q={writable:U,readable:J,close:()=>$`select lo_close(${H})`.then(W),tell:()=>$`select lo_tell64(${H})`,read:(E)=>$`select loread(${H}, ${E}) as data`,write:(E)=>$`select lowrite(${H}, ${E})`,truncate:(E)=>$`select lo_truncate64(${H}, ${E})`,seek:(E,V=0)=>$`select lo_lseek64(${H}, ${E}, ${V})`,size:()=>$`
71
+ `],[],j4,null,{simple:!0});z.resolve=([[D],[l]])=>{h0.default_transaction_read_only=D.transaction_read_only,h0.in_hot_standby=l.pg_is_in_recovery?"on":"off"},z.execute()}function UH(z){v&&(v.cursorFn||v.describeFirst)&&l0(B2);let D=f0.postgres(x5(z));v&&v.retried?u1(v.retried):v&&v.prepared&&eF.has(D.routine)?zH(v,D):u1(D)}function zH(z,D){delete J1[z.signature],z.retried=D,j4(z)}function FH(z){if(!w)return;let D=9;while(z[D++]!==0);w(z.toString("utf8",9,D-1),z.toString("utf8",D,z.length-1))}async function EH(){try{let z=await Promise.resolve(v.cursorFn(p));v0=0,z===N4?l0(qH(v.portal)):(p=new l2,l0(FX("",v.cursorRows)))}catch(z){l0(B2),v.reject(z)}}function OH(){p.count&&v.cursorFn(p),v.resolve(p)}function VH(){b0=new v5.Writable({autoDestroy:!0,write(z,D,l){T.write(c().d().raw(z).end(),l)},destroy(z,D){D(z),T.write(c().f().str(z+c.N).end()),b0=null},final(z){T.write(c().c().end()),q4=z}}),v.resolve(b0)}function DH(){b0=new v5.Readable({read(){T.resume()}}),v.resolve(b0)}function LH(){b0=new v5.Duplex({autoDestroy:!0,read(){T.resume()},write(z,D,l){T.write(c().d().raw(z).end(),l)},destroy(z,D){D(z),T.write(c().f().str(z+c.N).end()),b0=null},final(z){T.write(c().c().end()),q4=z}}),v.resolve(b0)}function MH(z){b0&&(b0.push(z.subarray(5))||T.pause())}function AH(){b0&&b0.push(null),b0=null}function wH(z){L?L(x5(z)):console.log(x5(z))}function RH(){}function NH(){u1(f0.notSupported("FunctionCallResponse"))}function IH(){u1(f0.notSupported("NegotiateProtocolVersion"))}function TH(z){console.error("Postgres.js : Unknown Message:",z[0])}function KH(z,D){console.error("Postgres.js : Unknown Auth:",D)}function BH(z,D,l="",$0=""){let C0,n0;return c().B().str($0+c.N).str(l+c.N).i16(0).i16(z.length),z.forEach((Z1,F2)=>{if(Z1===null)return c.i32(4294967295);n0=D[F2],z[F2]=Z1=n0 in Y.serializers?Y.serializers[n0](Z1):""+Z1,C0=c.i,c.inc(4).str(Z1).i32(c.i-C0-4,C0)}),c.i16(0),c.end()}function zX(z,D,l,$0=""){return c().P().str($0+c.N).str(z+c.N).i16(D.length),D.forEach((C0,n0)=>c.i32(l[n0]||0)),c.end()}function CH(z,D=""){return c().D().str(z).str(D+c.N).end()}function FX(z="",D=0){return Buffer.concat([c().E().str(z+c.N).i32(D).end(),M3])}function qH(z=""){return Buffer.concat([c().C().str("P").str(z+c.N).end(),c().S().end()])}function jH(){return t||c().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:H,database:U,client_encoding:"UTF8"},Y.connection)).filter(([,z])=>z).map(([z,D])=>z+c.N+D).join(c.N)).z(2).end(0)}}function x5(Y){let Z={},X=5;for(let _=5;_<Y.length-1;_++)if(Y[_]===0)Z[YE[Y[X]]]=Y.toString("utf8",X+1,_),X=_+1;return Z}function A3(Y){return S8.createHash("md5").update(Y).digest("hex")}function s6(Y,Z){return S8.createHmac("sha256",Y).update(Z).digest()}function ZE(Y){return S8.createHash("sha256").update(Y).digest()}function XE(Y,Z){let X=Math.max(Y.length,Z.length),_=Buffer.allocUnsafe(X);for(let G=0;G<X;G++)_[G]=Y[G]^Z[G];return _}function f5(Y,Z){if(Z=typeof Z==="function"?Z():Z,!Z)return{cancel:T4,start:T4};let X;return{cancel(){X&&(clearTimeout(X),X=null)},start(){X&&clearTimeout(X),X=setTimeout(_,Z*1000,arguments)}};function _(G){Y.apply(null,G),X=null}}var R3=()=>{};function k5(Y,Z){let X=new Map,_="postgresjs_"+Math.random().toString(36).slice(2),G={},$,W,H=!1,Q=E.sql=Y({...Z,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...Z.connection,replication:"database"},onclose:async function(){if(H)return;W=null,G.pid=G.secret=void 0,V(await L(Q,_,Z.publications)),X.forEach((M)=>M.forEach(({onsubscribe:h})=>h()))},no_subscribe:!0}),J=Q.end,U=Q.close;return Q.end=async()=>{return H=!0,W&&await new Promise((M)=>(W.once("close",M),W.end())),J()},Q.close=async()=>{return W&&await new Promise((M)=>(W.once("close",M),W.end())),U()},E;async function E(M,h,k=R3,x=R3){if(M=$E(M),!$)$=L(Q,_,Z.publications);let m={fn:h,onsubscribe:k},K=X.has(M)?X.get(M).add(m):X.set(M,new Set([m])).get(M),I=()=>{K.delete(m),K.size===0&&X.delete(M)};return $.then((q)=>{return V(q),k(),W&&W.on("error",x),{unsubscribe:I,state:G,sql:Q}})}function V(M){W=M.stream,G.pid=M.state.pid,G.secret=M.state.secret}async function L(M,h,k){if(!k)throw new Error("Missing publication names");let x=await M.unsafe(`CREATE_REPLICATION_SLOT ${h} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[m]=x,K=await M.unsafe(`START_REPLICATION SLOT ${h} LOGICAL ${m.consistent_point} (proto_version '1', publication_names '${k}')`).writable(),I={lsn:Buffer.concat(m.consistent_point.split("/").map((T)=>Buffer.from(("00000000"+T).slice(-8),"hex")))};return K.on("data",C),K.on("error",q),K.on("close",M.close),{stream:K,state:x.state};function q(T){console.error("Unexpected error during logical streaming - reconnecting",T)}function C(T){if(T[0]===119)GE(T.subarray(25),I,M.options.parsers,g,Z.transform);else if(T[0]===107&&T[17])I.lsn=T.subarray(1,9),n()}function g(T,t){let p=t.relation.schema+"."+t.relation.table;w("*",T,t),w("*:"+p,T,t),t.relation.keys.length&&w("*:"+p+"="+t.relation.keys.map((a)=>T[a.name]),T,t),w(t.command,T,t),w(t.command+":"+p,T,t),t.relation.keys.length&&w(t.command+":"+p+"="+t.relation.keys.map((a)=>T[a.name]),T,t)}function n(){let T=Buffer.alloc(34);T[0]=114,T.fill(I.lsn,1),T.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),K.write(T)}}function w(M,h,k){X.has(M)&&X.get(M).forEach(({fn:x})=>x(h,k,M))}}function _E(Y){return new Date(Date.UTC(2000,0,1)+Number(Y/BigInt(1000)))}function GE(Y,Z,X,_,G){let $=(W,[H,Q])=>(W[H.charCodeAt(0)]=Q,W);Object.entries({R:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)]={schema:W.toString("utf8",H+=4,H=W.indexOf(0,H))||"pg_catalog",table:W.toString("utf8",H+1,H=W.indexOf(0,H+1)),columns:Array(W.readUInt16BE(H+=2)),keys:[]};H+=2;let J=0,U;while(H<W.length)U=Q.columns[J++]={key:W[H++],name:G.column.from?G.column.from(W.toString("utf8",H,H=W.indexOf(0,H))):W.toString("utf8",H,H=W.indexOf(0,H)),type:W.readUInt32BE(H+=1),parser:X[W.readUInt32BE(H)],atttypmod:W.readUInt32BE(H+=4)},U.key&&Q.keys.push(U),H+=4},Y:()=>{},O:()=>{},B:(W)=>{Z.date=_E(W.readBigInt64BE(9)),Z.lsn=W.subarray(1,9)},I:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)],{row:J}=t6(W,Q.columns,H+=7,G);_(J,{command:"insert",relation:Q})},D:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)];H+=4;let J=W[H]===75;_(J||W[H]===79?t6(W,Q.columns,H+=3,G).row:null,{command:"delete",relation:Q,key:J})},U:(W)=>{let H=1,Q=Z[W.readUInt32BE(H)];H+=4;let J=W[H]===75,U=J||W[H]===79?t6(W,Q.columns,H+=3,G):null;U&&(H=U.i);let{row:E}=t6(W,Q.columns,H+3,G);_(E,{command:"update",relation:Q,key:J,old:U&&U.row})},T:()=>{},C:()=>{}}).reduce($,{})[Y[0]](Y)}function t6(Y,Z,X,_){let G,$,W,H=_.raw?new Array(Z.length):{};for(let Q=0;Q<Z.length;Q++)G=Y[X++],$=Z[Q],W=G===110?null:G===117?void 0:$.parser===void 0?Y.toString("utf8",X+4,X+=4+Y.readUInt32BE(X)):$.parser.array===!0?$.parser(Y.toString("utf8",X+5,X+=4+Y.readUInt32BE(X))):$.parser(Y.toString("utf8",X+4,X+=4+Y.readUInt32BE(X))),_.raw?H[Q]=_.raw===!0?W:_.value.from?_.value.from(W,$):W:H[$.name]=_.value.from?_.value.from(W,$):W;return{i:X,row:_.row.from?_.row.from(H):H}}function $E(Y){let Z=Y.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!Z)throw new Error("Malformed subscribe pattern: "+Y);let[,X,_,G]=Z;return(X||"*")+(_?":"+(_.indexOf(".")===-1?"public."+_:_):"")+(G?"="+G:"")}import N3 from"stream";function b5(Y,Z,X=393216){return new Promise(async(_,G)=>{await Y.begin(async($)=>{let W;!Z&&([{oid:Z}]=await $`select lo_creat(-1) as oid`);let[{fd:H}]=await $`select lo_open(${Z}, ${X}) as fd`,Q={writable:U,readable:J,close:()=>$`select lo_close(${H})`.then(W),tell:()=>$`select lo_tell64(${H})`,read:(E)=>$`select loread(${H}, ${E}) as data`,write:(E)=>$`select lowrite(${H}, ${E})`,truncate:(E)=>$`select lo_truncate64(${H}, ${E})`,seek:(E,V=0)=>$`select lo_lseek64(${H}, ${E}, ${V})`,size:()=>$`
72
72
  select
73
73
  lo_lseek64(${H}, location, 0) as position,
74
74
  seek.size
@@ -78,10 +78,10 @@ params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrac
78
78
  tell.location
79
79
  from (select lo_tell64($1) as location) tell
80
80
  ) seek
81
- `};return _(Q),new Promise(async(E)=>W=E);async function J({highWaterMark:E=16384,start:V=0,end:L=1/0}={}){let w=L-V;return V&&await Q.seek(V),new N3.Readable({highWaterMark:E,async read(M){let k=M>w?M-w:M;w-=M;let[{data:h}]=await Q.read(k);if(this.push(h),h.length<M)this.push(null)}})}async function U({highWaterMark:E=16384,start:V=0}={}){return V&&await Q.seek(V),new N3.Writable({highWaterMark:E,write(L,w,M){Q.write(L).then(()=>M(),M)}})}}).catch(G)})}Object.assign(a6,{PostgresError:I4,toPascal:d2,pascal:S5,toCamel:u2,camel:j5,toKebab:c2,kebab:P5,fromPascal:C8,fromCamel:B8,fromKebab:q8,BigInt:{to:20,from:[20],parse:(Y)=>BigInt(Y),serialize:(Y)=>Y.toString()}});var K4=a6;function a6(Y,Z){let X=JE(Y,Z),_=X.no_subscribe||k5(a6,{...X}),G=!1,$=R1(),W=R1(),H=R1(),Q=R1(),J=R1(),U=R1(),E=R1(),V=R1(),L={connecting:W,reserved:H,closed:Q,ended:J,open:U,busy:E,full:V},w=[...Array(X.max)].map(()=>h5(X,L,{onopen:J1,onend:h0,onclose:n1})),M=k(g);return Object.assign(M,{get parameters(){return X.parameters},largeObject:b5.bind(null,M),subscribe:_,CLOSE:N4,END:N4,PostgresError:I4,options:X,reserve:m,listen:h,begin:K,close:p,end:t}),M;function k(B){return B.debug=X.debug,Object.entries(X.types).reduce((s,[J0,v0])=>{return s[J0]=(K0)=>new r1(K0,v0.to),s},u),Object.assign(G0,{types:u,typed:u,unsafe:I0,notify:x,array:C,json:q,file:k0}),G0;function u(s,J0){return new r1(s,J0)}function G0(s,...J0){return s&&Array.isArray(s.raw)?new j1(s,J0,B,T):typeof s==="string"&&!J0.length?new j8(X.transform.column.to?X.transform.column.to(s):s):new o6(s,J0)}function I0(s,J0=[],v0={}){return arguments.length===2&&!Array.isArray(J0)&&(v0=J0,J0=[]),new j1([s],J0,B,T,{prepare:!1,...v0,simple:"simple"in v0?v0.simple:J0.length===0})}function k0(s,J0=[],v0={}){return arguments.length===2&&!Array.isArray(J0)&&(v0=J0,J0=[]),new j1([],J0,(A0)=>{HE.readFile(s,"utf8",(i0,V0)=>{if(i0)return A0.reject(i0);A0.strings=[V0],B(A0)})},T,{...v0,simple:"simple"in v0?v0.simple:J0.length===0})}}async function h(B,u,G0){let I0={fn:u,onlisten:G0},k0=h.sql||(h.sql=a6({...X,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(h.channels).forEach(([A0,{listeners:i0}])=>{delete h.channels[A0],Promise.all(i0.map((V0)=>h(A0,V0.fn,V0.onlisten).catch(()=>{})))})},onnotify(A0,i0){A0 in h.channels&&h.channels[A0].listeners.forEach((V0)=>V0.fn(i0))}})),s=h.channels||(h.channels={});if(B in s){s[B].listeners.push(I0);let A0=await s[B].result;return I0.onlisten&&I0.onlisten(),{state:A0.state,unlisten:K0}}s[B]={result:k0`listen ${k0.unsafe('"'+B.replace(/"/g,'""')+'"')}`,listeners:[I0]};let v0=await s[B].result;return I0.onlisten&&I0.onlisten(),{state:v0.state,unlisten:K0};async function K0(){if(B in s===!1)return;if(s[B].listeners=s[B].listeners.filter((A0)=>A0!==I0),s[B].listeners.length)return;return delete s[B],k0`unlisten ${k0.unsafe('"'+B.replace(/"/g,'""')+'"')}`}}async function x(B,u){return await M`select pg_notify(${B}, ${""+u})`}async function m(){let B=R1(),u=U.length?U.shift():await new Promise((k0,s)=>{let J0={reserve:k0,reject:s};$.push(J0),Q.length&&z0(Q.shift(),J0)});I(u,H),u.reserved=()=>B.length?u.execute(B.shift()):I(u,H),u.reserved.release=!0;let G0=k(I0);return G0.release=()=>{u.reserved=null,J1(u)},G0;function I0(k0){u.queue===V?B.push(k0):u.execute(k0)||I(u,V)}}async function K(B,u){!u&&(u=B,B="");let G0=R1(),I0=0,k0,s=null;try{return await M.unsafe("begin "+B.replace(/[^a-z ]/ig,""),[],{onexecute:v0}).execute(),await Promise.race([J0(k0,u),new Promise((K0,A0)=>k0.onclose=A0)])}catch(K0){throw K0}async function J0(K0,A0,i0){let V0=k(b0);V0.savepoint=z2,V0.prepare=(w0)=>s=w0.replace(/[^a-z0-9$-_. ]/gi);let S1,c0;i0&&await V0`savepoint ${V0(i0)}`;try{if(c0=await new Promise((w0,P1)=>{let p1=A0(V0);Promise.resolve(Array.isArray(p1)?Promise.all(p1):p1).then(w0,P1)}),S1)throw S1}catch(w0){throw await(i0?V0`rollback to ${V0(i0)}`:V0`rollback`),w0 instanceof I4&&w0.code==="25P02"&&S1||w0}if(!i0)s?await V0`prepare transaction '${V0.unsafe(s)}'`:await V0`commit`;return c0;function z2(w0,P1){if(w0&&Array.isArray(w0.raw))return z2((p1)=>p1.apply(p1,arguments));return arguments.length===1&&(P1=w0,w0=null),J0(K0,P1,"s"+I0+++(w0?"_"+w0:""))}function b0(w0){w0.catch((P1)=>S1||(S1=P1)),K0.queue===V?G0.push(w0):K0.execute(w0)||I(K0,V)}}function v0(K0){k0=K0,I(K0,H),K0.reserved=()=>G0.length?K0.execute(G0.shift()):I(K0,H)}}function I(B,u){return B.queue.remove(B),u.push(B),B.queue=u,u===U?B.idleTimer.start():B.idleTimer.cancel(),B}function q(B){return new r1(B,3802)}function C(B,u){if(!Array.isArray(B))return C(Array.from(arguments));return new r1(B,u||(B.length?c6(B)||25:0),X.shared.typeArrayMap)}function g(B){if(G)return B.reject(f0.connection("CONNECTION_ENDED",X,X));if(U.length)return n(U.shift(),B);if(Q.length)return z0(Q.shift(),B);E.length?n(E.shift(),B):$.push(B)}function n(B,u){return B.execute(u)?I(B,E):I(B,V)}function T(B){return new Promise((u,G0)=>{B.state?B.active?h5(X).cancel(B.state,u,G0):B.cancelled={resolve:u,reject:G0}:($.remove(B),B.cancelled=!0,B.reject(f0.generic("57014","canceling statement due to user request")),u())})}async function t({timeout:B=null}={}){if(G)return G;await 1;let u;return G=Promise.race([new Promise((G0)=>B!==null&&(u=setTimeout(a,B*1000,G0))),Promise.all(w.map((G0)=>G0.end()).concat(h.sql?h.sql.end({timeout:0}):[],_.sql?_.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(u))}async function p(){await Promise.all(w.map((B)=>B.end()))}async function a(B){await Promise.all(w.map((u)=>u.terminate()));while($.length)$.shift().reject(f0.connection("CONNECTION_DESTROYED",X));B()}function z0(B,u){return I(B,W),B.connect(u),B}function h0(B){I(B,J)}function J1(B){if($.length===0)return I(B,U);let u=Math.ceil($.length/(W.length+1)),G0=!0;while(G0&&$.length&&u-- >0){let I0=$.shift();if(I0.reserve)return I0.reserve(B);G0=B.execute(I0)}G0?I(B,E):I(B,V)}function n1(B,u){I(B,Q),B.reserved=null,B.onclose&&(B.onclose(u),B.onclose=null),X.onclose&&X.onclose(B.id),$.length&&z0(B,$.shift())}}function JE(Y,Z){if(Y&&Y.shared)return Y;let X=process.env,_=(!Y||typeof Y==="string"?Z:Y)||{},{url:G,multihost:$}=EE(Y),W=[...G.searchParams].reduce((V,[L,w])=>(V[L]=w,V),{}),H=_.hostname||_.host||$||G.hostname||X.PGHOST||"localhost",Q=_.port||G.port||X.PGPORT||5432,J=_.user||_.username||G.username||X.PGUSERNAME||X.PGUSER||OE();_.no_prepare&&(_.prepare=!1),W.sslmode&&(W.ssl=W.sslmode,delete W.sslmode),"timeout"in _&&(console.log("The timeout option is deprecated, use idle_timeout instead"),_.idle_timeout=_.timeout),W.sslrootcert==="system"&&(W.ssl="verify-full");let U=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],E={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:zE,max_pipeline:100,backoff:UE,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(H)?H:H.split(",").map((V)=>V.split(":")[0]),port:Array.isArray(Q)?Q:H.split(",").map((V)=>parseInt(V.split(":")[1]||Q)),path:_.path||H.indexOf("/")>-1&&H+"/.s.PGSQL."+Q,database:_.database||_.db||(G.pathname||"").slice(1)||X.PGDATABASE||J,user:J,pass:_.pass||_.password||G.password||X.PGPASSWORD||"",...Object.entries(E).reduce((V,[L,w])=>{let M=L in _?_[L]:(L in W)?W[L]==="disable"||W[L]==="false"?!1:W[L]:X["PG"+L.toUpperCase()]||w;return V[L]=typeof M==="string"&&U.includes(L)?+M:M,V},{}),connection:{application_name:X.PGAPPNAME||"postgres.js",..._.connection,...Object.entries(W).reduce((V,[L,w])=>((L in E)||(V[L]=w),V),{})},types:_.types||{},target_session_attrs:QE(_,G,X),onnotice:_.onnotice,onnotify:_.onnotify,onclose:_.onclose,onparameter:_.onparameter,socket:_.socket,transform:FE(_.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...z3(_.types)}}function QE(Y,Z,X){let _=Y.target_session_attrs||Z.searchParams.get("target_session_attrs")||X.PGTARGETSESSIONATTRS;if(!_||["read-write","read-only","primary","standby","prefer-standby"].includes(_))return _;throw new Error("target_session_attrs "+_+" is not supported")}function UE(Y){return(0.5+Math.random()/2)*Math.min(3**Y/100,20)}function zE(){return 60*(30+Math.random()*30)}function FE(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 EE(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 OE(){try{return WE.userInfo().username}catch(Y){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class S0{static[F]="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 _=(A(Y,P0)?Y._.selectedFields:A(Y,V1)?Y[M0].selectedFields:Y)[Z];if(A(_,f.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!_.isSelectionField)return _.sql;let G=_.clone();return G.isSelectionField=!0,G}if(A(_,f)){if(this.config.sqlBehavior==="sql")return _;throw new Error(`You tried to reference "${Z}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(A(_,E0)){if(this.config.alias)return new Proxy(_,new R4(new Proxy(_.table,new M8(this.config.alias,this.config.replaceOriginalName??!1))));return _}if(typeof _!=="object"||_===null)return _;return new Proxy(_,new S0(this.config))}}class I3{constructor(Y,Z){this.unique=Y,this.name=Z}static[F]="PgIndexBuilderOn";on(...Y){return new e6(Y.map((Z)=>{if(A(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 e6(Y.map((Z)=>{if(A(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 e6(Z.map((X)=>{if(A(X,f))return X;X=X;let _=new O8(X.name,!!X.keyAsName,X.columnType,X.indexConfig);return X.indexConfig=JSON.parse(JSON.stringify(X.defaultConfig)),_}),this.unique,!0,this.name,Y)}}class e6{static[F]="PgIndexBuilder";config;constructor(Y,Z,X,_,G="btree"){this.config={name:_,columns:Y,unique:Z,only:X,method:G}}concurrently(){return this.config.concurrently=!0,this}with(Y){return this.config.with=Y,this}where(Y){return this.config.where=Y,this}build(Y){return new T3(this.config,Y)}}class T3{static[F]="PgIndex";config;constructor(Y,Z){this.config={...Y,table:Z}}}function y5(Y){return new I3(!0,Y)}function VE(Y){return(Y.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((X)=>X.toLowerCase()).join("_")}function DE(Y){return(Y.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((X,_,G)=>{let $=G===0?_.toLowerCase():`${_[0].toUpperCase()}${_.slice(1)}`;return X+$},"")}function LE(Y){return Y}class g5{static[F]="CasingCache";cache={};cachedTables={};convert;constructor(Y){this.convert=Y==="snake_case"?VE:Y==="camelCase"?DE:LE}getColumnCasing(Y){if(!Y.keyAsName)return Y.name;let Z=Y.table[S.Symbol.Schema]??"public",X=Y.table[S.Symbol.OriginalName],_=`${Z}.${X}.${Y.name}`;if(!this.cache[_])this.cacheTable(Y.table);return this.cache[_]}cacheTable(Y){let Z=Y[S.Symbol.Schema]??"public",X=Y[S.Symbol.OriginalName],_=`${Z}.${X}`;if(!this.cachedTables[_]){for(let G of Object.values(Y[S.Symbol.Columns])){let $=`${_}.${G.name}`;this.cache[$]=this.convert(G.name)}this.cachedTables[_]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class P8 extends V1{static[F]="PgViewBase"}class o2{static[F]="PgDialect";casing;constructor(Y){this.casing=new g5(Y?.casing)}async migrate(Y,Z,X){let _=typeof X==="string"?"__drizzle_migrations":X.migrationsTable??"__drizzle_migrations",G=typeof X==="string"?"drizzle":X.migrationsSchema??"drizzle",$=O`
81
+ `};return _(Q),new Promise(async(E)=>W=E);async function J({highWaterMark:E=16384,start:V=0,end:L=1/0}={}){let w=L-V;return V&&await Q.seek(V),new N3.Readable({highWaterMark:E,async read(M){let h=M>w?M-w:M;w-=M;let[{data:k}]=await Q.read(h);if(this.push(k),k.length<M)this.push(null)}})}async function U({highWaterMark:E=16384,start:V=0}={}){return V&&await Q.seek(V),new N3.Writable({highWaterMark:E,write(L,w,M){Q.write(L).then(()=>M(),M)}})}}).catch(G)})}Object.assign(a6,{PostgresError:I4,toPascal:d2,pascal:S5,toCamel:u2,camel:j5,toKebab:c2,kebab:P5,fromPascal:C8,fromCamel:B8,fromKebab:q8,BigInt:{to:20,from:[20],parse:(Y)=>BigInt(Y),serialize:(Y)=>Y.toString()}});var K4=a6;function a6(Y,Z){let X=JE(Y,Z),_=X.no_subscribe||k5(a6,{...X}),G=!1,$=R1(),W=R1(),H=R1(),Q=R1(),J=R1(),U=R1(),E=R1(),V=R1(),L={connecting:W,reserved:H,closed:Q,ended:J,open:U,busy:E,full:V},w=[...Array(X.max)].map(()=>h5(X,L,{onopen:J1,onend:h0,onclose:n1})),M=h(g);return Object.assign(M,{get parameters(){return X.parameters},largeObject:b5.bind(null,M),subscribe:_,CLOSE:N4,END:N4,PostgresError:I4,options:X,reserve:m,listen:k,begin:K,close:p,end:t}),M;function h(B){return B.debug=X.debug,Object.entries(X.types).reduce((s,[J0,v0])=>{return s[J0]=(K0)=>new r1(K0,v0.to),s},u),Object.assign(G0,{types:u,typed:u,unsafe:I0,notify:x,array:C,json:q,file:k0}),G0;function u(s,J0){return new r1(s,J0)}function G0(s,...J0){return s&&Array.isArray(s.raw)?new j1(s,J0,B,T):typeof s==="string"&&!J0.length?new j8(X.transform.column.to?X.transform.column.to(s):s):new o6(s,J0)}function I0(s,J0=[],v0={}){return arguments.length===2&&!Array.isArray(J0)&&(v0=J0,J0=[]),new j1([s],J0,B,T,{prepare:!1,...v0,simple:"simple"in v0?v0.simple:J0.length===0})}function k0(s,J0=[],v0={}){return arguments.length===2&&!Array.isArray(J0)&&(v0=J0,J0=[]),new j1([],J0,(A0)=>{HE.readFile(s,"utf8",(i0,V0)=>{if(i0)return A0.reject(i0);A0.strings=[V0],B(A0)})},T,{...v0,simple:"simple"in v0?v0.simple:J0.length===0})}}async function k(B,u,G0){let I0={fn:u,onlisten:G0},k0=k.sql||(k.sql=a6({...X,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(k.channels).forEach(([A0,{listeners:i0}])=>{delete k.channels[A0],Promise.all(i0.map((V0)=>k(A0,V0.fn,V0.onlisten).catch(()=>{})))})},onnotify(A0,i0){A0 in k.channels&&k.channels[A0].listeners.forEach((V0)=>V0.fn(i0))}})),s=k.channels||(k.channels={});if(B in s){s[B].listeners.push(I0);let A0=await s[B].result;return I0.onlisten&&I0.onlisten(),{state:A0.state,unlisten:K0}}s[B]={result:k0`listen ${k0.unsafe('"'+B.replace(/"/g,'""')+'"')}`,listeners:[I0]};let v0=await s[B].result;return I0.onlisten&&I0.onlisten(),{state:v0.state,unlisten:K0};async function K0(){if(B in s===!1)return;if(s[B].listeners=s[B].listeners.filter((A0)=>A0!==I0),s[B].listeners.length)return;return delete s[B],k0`unlisten ${k0.unsafe('"'+B.replace(/"/g,'""')+'"')}`}}async function x(B,u){return await M`select pg_notify(${B}, ${""+u})`}async function m(){let B=R1(),u=U.length?U.shift():await new Promise((k0,s)=>{let J0={reserve:k0,reject:s};$.push(J0),Q.length&&z0(Q.shift(),J0)});I(u,H),u.reserved=()=>B.length?u.execute(B.shift()):I(u,H),u.reserved.release=!0;let G0=h(I0);return G0.release=()=>{u.reserved=null,J1(u)},G0;function I0(k0){u.queue===V?B.push(k0):u.execute(k0)||I(u,V)}}async function K(B,u){!u&&(u=B,B="");let G0=R1(),I0=0,k0,s=null;try{return await M.unsafe("begin "+B.replace(/[^a-z ]/ig,""),[],{onexecute:v0}).execute(),await Promise.race([J0(k0,u),new Promise((K0,A0)=>k0.onclose=A0)])}catch(K0){throw K0}async function J0(K0,A0,i0){let V0=h(b0);V0.savepoint=z2,V0.prepare=(w0)=>s=w0.replace(/[^a-z0-9$-_. ]/gi);let S1,c0;i0&&await V0`savepoint ${V0(i0)}`;try{if(c0=await new Promise((w0,P1)=>{let m1=A0(V0);Promise.resolve(Array.isArray(m1)?Promise.all(m1):m1).then(w0,P1)}),S1)throw S1}catch(w0){throw await(i0?V0`rollback to ${V0(i0)}`:V0`rollback`),w0 instanceof I4&&w0.code==="25P02"&&S1||w0}if(!i0)s?await V0`prepare transaction '${V0.unsafe(s)}'`:await V0`commit`;return c0;function z2(w0,P1){if(w0&&Array.isArray(w0.raw))return z2((m1)=>m1.apply(m1,arguments));return arguments.length===1&&(P1=w0,w0=null),J0(K0,P1,"s"+I0+++(w0?"_"+w0:""))}function b0(w0){w0.catch((P1)=>S1||(S1=P1)),K0.queue===V?G0.push(w0):K0.execute(w0)||I(K0,V)}}function v0(K0){k0=K0,I(K0,H),K0.reserved=()=>G0.length?K0.execute(G0.shift()):I(K0,H)}}function I(B,u){return B.queue.remove(B),u.push(B),B.queue=u,u===U?B.idleTimer.start():B.idleTimer.cancel(),B}function q(B){return new r1(B,3802)}function C(B,u){if(!Array.isArray(B))return C(Array.from(arguments));return new r1(B,u||(B.length?c6(B)||25:0),X.shared.typeArrayMap)}function g(B){if(G)return B.reject(f0.connection("CONNECTION_ENDED",X,X));if(U.length)return n(U.shift(),B);if(Q.length)return z0(Q.shift(),B);E.length?n(E.shift(),B):$.push(B)}function n(B,u){return B.execute(u)?I(B,E):I(B,V)}function T(B){return new Promise((u,G0)=>{B.state?B.active?h5(X).cancel(B.state,u,G0):B.cancelled={resolve:u,reject:G0}:($.remove(B),B.cancelled=!0,B.reject(f0.generic("57014","canceling statement due to user request")),u())})}async function t({timeout:B=null}={}){if(G)return G;await 1;let u;return G=Promise.race([new Promise((G0)=>B!==null&&(u=setTimeout(a,B*1000,G0))),Promise.all(w.map((G0)=>G0.end()).concat(k.sql?k.sql.end({timeout:0}):[],_.sql?_.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(u))}async function p(){await Promise.all(w.map((B)=>B.end()))}async function a(B){await Promise.all(w.map((u)=>u.terminate()));while($.length)$.shift().reject(f0.connection("CONNECTION_DESTROYED",X));B()}function z0(B,u){return I(B,W),B.connect(u),B}function h0(B){I(B,J)}function J1(B){if($.length===0)return I(B,U);let u=Math.ceil($.length/(W.length+1)),G0=!0;while(G0&&$.length&&u-- >0){let I0=$.shift();if(I0.reserve)return I0.reserve(B);G0=B.execute(I0)}G0?I(B,E):I(B,V)}function n1(B,u){I(B,Q),B.reserved=null,B.onclose&&(B.onclose(u),B.onclose=null),X.onclose&&X.onclose(B.id),$.length&&z0(B,$.shift())}}function JE(Y,Z){if(Y&&Y.shared)return Y;let X=process.env,_=(!Y||typeof Y==="string"?Z:Y)||{},{url:G,multihost:$}=EE(Y),W=[...G.searchParams].reduce((V,[L,w])=>(V[L]=w,V),{}),H=_.hostname||_.host||$||G.hostname||X.PGHOST||"localhost",Q=_.port||G.port||X.PGPORT||5432,J=_.user||_.username||G.username||X.PGUSERNAME||X.PGUSER||OE();_.no_prepare&&(_.prepare=!1),W.sslmode&&(W.ssl=W.sslmode,delete W.sslmode),"timeout"in _&&(console.log("The timeout option is deprecated, use idle_timeout instead"),_.idle_timeout=_.timeout),W.sslrootcert==="system"&&(W.ssl="verify-full");let U=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],E={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:zE,max_pipeline:100,backoff:UE,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(H)?H:H.split(",").map((V)=>V.split(":")[0]),port:Array.isArray(Q)?Q:H.split(",").map((V)=>parseInt(V.split(":")[1]||Q)),path:_.path||H.indexOf("/")>-1&&H+"/.s.PGSQL."+Q,database:_.database||_.db||(G.pathname||"").slice(1)||X.PGDATABASE||J,user:J,pass:_.pass||_.password||G.password||X.PGPASSWORD||"",...Object.entries(E).reduce((V,[L,w])=>{let M=L in _?_[L]:(L in W)?W[L]==="disable"||W[L]==="false"?!1:W[L]:X["PG"+L.toUpperCase()]||w;return V[L]=typeof M==="string"&&U.includes(L)?+M:M,V},{}),connection:{application_name:X.PGAPPNAME||"postgres.js",..._.connection,...Object.entries(W).reduce((V,[L,w])=>((L in E)||(V[L]=w),V),{})},types:_.types||{},target_session_attrs:QE(_,G,X),onnotice:_.onnotice,onnotify:_.onnotify,onclose:_.onclose,onparameter:_.onparameter,socket:_.socket,transform:FE(_.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...z3(_.types)}}function QE(Y,Z,X){let _=Y.target_session_attrs||Z.searchParams.get("target_session_attrs")||X.PGTARGETSESSIONATTRS;if(!_||["read-write","read-only","primary","standby","prefer-standby"].includes(_))return _;throw new Error("target_session_attrs "+_+" is not supported")}function UE(Y){return(0.5+Math.random()/2)*Math.min(3**Y/100,20)}function zE(){return 60*(30+Math.random()*30)}function FE(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 EE(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 OE(){try{return WE.userInfo().username}catch(Y){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class S0{static[F]="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 _=(A(Y,P0)?Y._.selectedFields:A(Y,V1)?Y[M0].selectedFields:Y)[Z];if(A(_,f.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!_.isSelectionField)return _.sql;let G=_.clone();return G.isSelectionField=!0,G}if(A(_,f)){if(this.config.sqlBehavior==="sql")return _;throw new Error(`You tried to reference "${Z}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(A(_,E0)){if(this.config.alias)return new Proxy(_,new R4(new Proxy(_.table,new M8(this.config.alias,this.config.replaceOriginalName??!1))));return _}if(typeof _!=="object"||_===null)return _;return new Proxy(_,new S0(this.config))}}class I3{constructor(Y,Z){this.unique=Y,this.name=Z}static[F]="PgIndexBuilderOn";on(...Y){return new e6(Y.map((Z)=>{if(A(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 e6(Y.map((Z)=>{if(A(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 e6(Z.map((X)=>{if(A(X,f))return X;X=X;let _=new O8(X.name,!!X.keyAsName,X.columnType,X.indexConfig);return X.indexConfig=JSON.parse(JSON.stringify(X.defaultConfig)),_}),this.unique,!0,this.name,Y)}}class e6{static[F]="PgIndexBuilder";config;constructor(Y,Z,X,_,G="btree"){this.config={name:_,columns:Y,unique:Z,only:X,method:G}}concurrently(){return this.config.concurrently=!0,this}with(Y){return this.config.with=Y,this}where(Y){return this.config.where=Y,this}build(Y){return new T3(this.config,Y)}}class T3{static[F]="PgIndex";config;constructor(Y,Z){this.config={...Y,table:Z}}}function y5(Y){return new I3(!0,Y)}function VE(Y){return(Y.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((X)=>X.toLowerCase()).join("_")}function DE(Y){return(Y.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((X,_,G)=>{let $=G===0?_.toLowerCase():`${_[0].toUpperCase()}${_.slice(1)}`;return X+$},"")}function LE(Y){return Y}class g5{static[F]="CasingCache";cache={};cachedTables={};convert;constructor(Y){this.convert=Y==="snake_case"?VE:Y==="camelCase"?DE:LE}getColumnCasing(Y){if(!Y.keyAsName)return Y.name;let Z=Y.table[S.Symbol.Schema]??"public",X=Y.table[S.Symbol.OriginalName],_=`${Z}.${X}.${Y.name}`;if(!this.cache[_])this.cacheTable(Y.table);return this.cache[_]}cacheTable(Y){let Z=Y[S.Symbol.Schema]??"public",X=Y[S.Symbol.OriginalName],_=`${Z}.${X}`;if(!this.cachedTables[_]){for(let G of Object.values(Y[S.Symbol.Columns])){let $=`${_}.${G.name}`;this.cache[$]=this.convert(G.name)}this.cachedTables[_]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class P8 extends V1{static[F]="PgViewBase"}class o2{static[F]="PgDialect";casing;constructor(Y){this.casing=new g5(Y?.casing)}async migrate(Y,Z,X){let _=typeof X==="string"?"__drizzle_migrations":X.migrationsTable??"__drizzle_migrations",G=typeof X==="string"?"drizzle":X.migrationsSchema??"drizzle",$=O`
82
82
  CREATE TABLE IF NOT EXISTS ${O.identifier(G)}.${O.identifier(_)} (
83
83
  id SERIAL PRIMARY KEY,
84
84
  hash text NOT NULL,
85
85
  created_at bigint
86
86
  )
87
- `;await Z.execute(O`CREATE SCHEMA IF NOT EXISTS ${O.identifier(G)}`),await Z.execute($);let H=(await Z.all(O`select id, hash, created_at from ${O.identifier(G)}.${O.identifier(_)} order by created_at desc limit 1`))[0];await Z.transaction(async(Q)=>{for await(let J of Y)if(!H||Number(H.created_at)<J.folderMillis){for(let U of J.sql)await Q.execute(O.raw(U));await Q.execute(O`insert into ${O.identifier(G)}.${O.identifier(_)} ("hash", "created_at") values(${J.hash}, ${J.folderMillis})`)}})}escapeName(Y){return`"${Y}"`}escapeParam(Y){return`$${Y+1}`}escapeString(Y){return`'${Y.replace(/'/g,"''")}'`}buildWithCTE(Y){if(!Y?.length)return;let Z=[O`with `];for(let[X,_]of Y.entries())if(Z.push(O`${O.identifier(_._.alias)} as (${_._.sql})`),X<Y.length-1)Z.push(O`, `);return Z.push(O` `),O.join(Z)}buildDeleteQuery({table:Y,where:Z,returning:X,withList:_}){let G=this.buildWithCTE(_),$=X?O` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,W=Z?O` where ${Z}`:void 0;return O`${G}delete from ${Y}${W}${$}`}buildUpdateSet(Y,Z){let X=Y[S.Symbol.Columns],_=Object.keys(X).filter(($)=>Z[$]!==void 0||X[$]?.onUpdateFn!==void 0),G=_.length;return O.join(_.flatMap(($,W)=>{let H=X[$],Q=Z[$]??O.param(H.onUpdateFn(),H),J=O`${O.identifier(this.casing.getColumnCasing(H))} = ${Q}`;if(W<G-1)return[J,O.raw(", ")];return[J]}))}buildUpdateQuery({table:Y,set:Z,where:X,returning:_,withList:G,from:$,joins:W}){let H=this.buildWithCTE(G),Q=Y[u0.Symbol.Name],J=Y[u0.Symbol.Schema],U=Y[u0.Symbol.OriginalName],E=Q===U?void 0:Q,V=O`${J?O`${O.identifier(J)}.`:void 0}${O.identifier(U)}${E&&O` ${O.identifier(E)}`}`,L=this.buildUpdateSet(Y,Z),w=$&&O.join([O.raw(" from "),this.buildFromTable($)]),M=this.buildJoins(W),k=_?O` returning ${this.buildSelection(_,{isSingleTable:!$})}`:void 0,h=X?O` where ${X}`:void 0;return O`${H}update ${V} set ${L}${w}${M}${h}${k}`}buildSelection(Y,{isSingleTable:Z=!1}={}){let X=Y.length,_=Y.flatMap(({field:G},$)=>{let W=[];if(A(G,f.Aliased)&&G.isSelectionField)W.push(O.identifier(G.fieldAlias));else if(A(G,f.Aliased)||A(G,f)){let H=A(G,f.Aliased)?G.sql:G;if(Z)W.push(new f(H.queryChunks.map((Q)=>{if(A(Q,j))return O.identifier(this.casing.getColumnCasing(Q));return Q})));else W.push(H);if(A(G,f.Aliased))W.push(O` as ${O.identifier(G.fieldAlias)}`)}else if(A(G,E0))if(Z)W.push(O.identifier(this.casing.getColumnCasing(G)));else W.push(G);if($<X-1)W.push(O`, `);return W});return O.join(_)}buildJoins(Y){if(!Y||Y.length===0)return;let Z=[];for(let[X,_]of Y.entries()){if(X===0)Z.push(O` `);let G=_.table,$=_.lateral?O` lateral`:void 0,W=_.on?O` on ${_.on}`:void 0;if(A(G,u0)){let H=G[u0.Symbol.Name],Q=G[u0.Symbol.Schema],J=G[u0.Symbol.OriginalName],U=H===J?void 0:_.alias;Z.push(O`${O.raw(_.joinType)} join${$} ${Q?O`${O.identifier(Q)}.`:void 0}${O.identifier(J)}${U&&O` ${O.identifier(U)}`}${W}`)}else if(A(G,V1)){let H=G[M0].name,Q=G[M0].schema,J=G[M0].originalName,U=H===J?void 0:_.alias;Z.push(O`${O.raw(_.joinType)} join${$} ${Q?O`${O.identifier(Q)}.`:void 0}${O.identifier(J)}${U&&O` ${O.identifier(U)}`}${W}`)}else Z.push(O`${O.raw(_.joinType)} join${$} ${G}${W}`);if(X<Y.length-1)Z.push(O` `)}return O.join(Z)}buildFromTable(Y){if(A(Y,S)&&Y[S.Symbol.IsAlias]){let Z=O`${O.identifier(Y[S.Symbol.OriginalName])}`;if(Y[S.Symbol.Schema])Z=O`${O.identifier(Y[S.Symbol.Schema])}.${Z}`;return O`${Z} ${O.identifier(Y[S.Symbol.Name])}`}return Y}buildSelectQuery({withList:Y,fields:Z,fieldsFlat:X,where:_,having:G,table:$,joins:W,orderBy:H,groupBy:Q,limit:J,offset:U,lockingClause:E,distinct:V,setOperators:L}){let w=X??C1(Z);for(let a of w)if(A(a.field,E0)&&d0(a.field.table)!==(A($,P0)?$._.alias:A($,P8)?$[M0].name:A($,f)?void 0:d0($))&&!((z0)=>W?.some(({alias:h0})=>h0===(z0[S.Symbol.IsAlias]?d0(z0):z0[S.Symbol.BaseName])))(a.field.table)){let z0=d0(a.field.table);throw new Error(`Your "${a.path.join("->")}" field references a column "${z0}"."${a.field.name}", but the table "${z0}" is not part of the query! Did you forget to join it?`)}let M=!W||W.length===0,k=this.buildWithCTE(Y),h;if(V)h=V===!0?O` distinct`:O` distinct on (${O.join(V.on,O`, `)})`;let x=this.buildSelection(w,{isSingleTable:M}),m=this.buildFromTable($),K=this.buildJoins(W),I=_?O` where ${_}`:void 0,q=G?O` having ${G}`:void 0,C;if(H&&H.length>0)C=O` order by ${O.join(H,O`, `)}`;let g;if(Q&&Q.length>0)g=O` group by ${O.join(Q,O`, `)}`;let n=typeof J==="object"||typeof J==="number"&&J>=0?O` limit ${J}`:void 0,T=U?O` offset ${U}`:void 0,t=O.empty();if(E){let a=O` for ${O.raw(E.strength)}`;if(E.config.of)a.append(O` of ${O.join(Array.isArray(E.config.of)?E.config.of:[E.config.of],O`, `)}`);if(E.config.noWait)a.append(O` nowait`);else if(E.config.skipLocked)a.append(O` skip locked`);t.append(a)}let p=O`${k}select${h} ${x} from ${m}${K}${I}${g}${q}${C}${n}${T}${t}`;if(L.length>0)return this.buildSetOperations(p,L);return p}buildSetOperations(Y,Z){let[X,..._]=Z;if(!X)throw new Error("Cannot pass undefined values to any set operator");if(_.length===0)return this.buildSetOperationQuery({leftSelect:Y,setOperator:X});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:Y,setOperator:X}),_)}buildSetOperationQuery({leftSelect:Y,setOperator:{type:Z,isAll:X,rightSelect:_,limit:G,orderBy:$,offset:W}}){let H=O`(${Y.getSQL()}) `,Q=O`(${_.getSQL()})`,J;if($&&$.length>0){let L=[];for(let w of $)if(A(w,j))L.push(O.identifier(w.name));else if(A(w,f)){for(let M=0;M<w.queryChunks.length;M++){let k=w.queryChunks[M];if(A(k,j))w.queryChunks[M]=O.identifier(k.name)}L.push(O`${w}`)}else L.push(O`${w}`);J=O` order by ${O.join(L,O`, `)} `}let U=typeof G==="object"||typeof G==="number"&&G>=0?O` limit ${G}`:void 0,E=O.raw(`${Z} ${X?"all ":""}`),V=W?O` offset ${W}`:void 0;return O`${H}${E}${Q}${J}${U}${V}`}buildInsertQuery({table:Y,values:Z,onConflict:X,returning:_,withList:G,select:$,overridingSystemValue_:W}){let H=[],Q=Y[S.Symbol.Columns],J=Object.entries(Q).filter(([k,h])=>!h.shouldDisableInsert()),U=J.map(([,k])=>O.identifier(this.casing.getColumnCasing(k)));if($){let k=Z;if(A(k,f))H.push(k);else H.push(k.getSQL())}else{let k=Z;H.push(O.raw("values "));for(let[h,x]of k.entries()){let m=[];for(let[K,I]of J){let q=x[K];if(q===void 0||A(q,w1)&&q.value===void 0)if(I.defaultFn!==void 0){let C=I.defaultFn(),g=A(C,f)?C:O.param(C,I);m.push(g)}else if(!I.default&&I.onUpdateFn!==void 0){let C=I.onUpdateFn(),g=A(C,f)?C:O.param(C,I);m.push(g)}else m.push(O`default`);else m.push(q)}if(H.push(m),h<k.length-1)H.push(O`, `)}}let E=this.buildWithCTE(G),V=O.join(H),L=_?O` returning ${this.buildSelection(_,{isSingleTable:!0})}`:void 0,w=X?O` on conflict ${X}`:void 0,M=W===!0?O`overriding system value `:void 0;return O`${E}insert into ${Y} ${U} ${M}${V}${w}${L}`}buildRefreshMaterializedViewQuery({view:Y,concurrently:Z,withNoData:X}){let _=Z?O` concurrently`:void 0,G=X?O` with no data`:void 0;return O`refresh materialized view${_} ${Y}${G}`}prepareTyping(Y){if(A(Y,f6)||A(Y,x6))return"json";else if(A(Y,h6))return"decimal";else if(A(Y,k6))return"time";else if(A(Y,b6)||A(Y,y6))return"timestamp";else if(A(Y,P6)||A(Y,v6))return"date";else if(A(Y,g6))return"uuid";else return"none"}sqlToQuery(Y,Z){return Y.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:Z})}buildRelationalQueryWithoutPK({fullSchema:Y,schema:Z,tableNamesMap:X,table:_,tableConfig:G,queryConfig:$,tableAlias:W,nestedQueryRelation:H,joinOn:Q}){let J=[],U,E,V=[],L,w=[];if($===!0)J=Object.entries(G.columns).map(([h,x])=>({dbKey:x.name,tsKey:h,field:i1(x,W),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let k=Object.fromEntries(Object.entries(G.columns).map(([q,C])=>[q,i1(C,W)]));if($.where){let q=typeof $.where==="function"?$.where(k,aW()):$.where;L=q&&A8(q,W)}let h=[],x=[];if($.columns){let q=!1;for(let[C,g]of Object.entries($.columns)){if(g===void 0)continue;if(C in G.columns){if(!q&&g===!0)q=!0;x.push(C)}}if(x.length>0)x=q?x.filter((C)=>$.columns?.[C]===!0):Object.keys(G.columns).filter((C)=>!x.includes(C))}else x=Object.keys(G.columns);for(let q of x){let C=G.columns[q];h.push({tsKey:q,value:C})}let m=[];if($.with)m=Object.entries($.with).filter((q)=>!!q[1]).map(([q,C])=>({tsKey:q,queryConfig:C,relation:G.relations[q]}));let K;if($.extras){K=typeof $.extras==="function"?$.extras(k,{sql:O}):$.extras;for(let[q,C]of Object.entries(K))h.push({tsKey:q,value:E5(C,W)})}for(let{tsKey:q,value:C}of h)J.push({dbKey:A(C,f.Aliased)?C.fieldAlias:G.columns[q].name,tsKey:q,field:A(C,E0)?i1(C,W):C,relationTableTsKey:void 0,isJson:!1,selection:[]});let I=typeof $.orderBy==="function"?$.orderBy(k,eW()):$.orderBy??[];if(!Array.isArray(I))I=[I];V=I.map((q)=>{if(A(q,E0))return i1(q,W);return A8(q,W)}),U=$.limit,E=$.offset;for(let{tsKey:q,queryConfig:C,relation:g}of m){let n=Z3(Z,X,g),T=m2(g.referencedTable),t=X[T],p=`${W}_${q}`,a=T8(...n.fields.map((J1,n1)=>p6(i1(n.references[n1],p),i1(J1,W)))),z0=this.buildRelationalQueryWithoutPK({fullSchema:Y,schema:Z,tableNamesMap:X,table:Y[t],tableConfig:Z[t],queryConfig:A(g,K2)?C===!0?{limit:1}:{...C,limit:1}:C,tableAlias:p,joinOn:a,nestedQueryRelation:g}),h0=O`${O.identifier(p)}.${O.identifier("data")}`.as(q);w.push({on:O`true`,table:new P0(z0.sql,{},p),alias:p,joinType:"left",lateral:!0}),J.push({dbKey:q,tsKey:q,field:h0,relationTableTsKey:t,isJson:!0,selection:z0.selection})}}if(J.length===0)throw new j6({message:`No fields selected for table "${G.tsName}" ("${W}")`});let M;if(L=T8(Q,L),H){let k=O`json_build_array(${O.join(J.map(({field:m,tsKey:K,isJson:I})=>I?O`${O.identifier(`${W}_${K}`)}.${O.identifier("data")}`:A(m,f.Aliased)?m.sql:m),O`, `)})`;if(A(H,K8))k=O`coalesce(json_agg(${k}${V.length>0?O` order by ${O.join(V,O`, `)}`:void 0}), '[]'::json)`;let h=[{dbKey:"data",tsKey:"data",field:k.as("data"),isJson:!0,relationTableTsKey:G.tsName,selection:J}];if(U!==void 0||E!==void 0||V.length>0)M=this.buildSelectQuery({table:q6(_,W),fields:{},fieldsFlat:[{path:[],field:O.raw("*")}],where:L,limit:U,offset:E,orderBy:V,setOperators:[]}),L=void 0,U=void 0,E=void 0,V=[];else M=q6(_,W);M=this.buildSelectQuery({table:A(M,u0)?M:new P0(M,{},W),fields:{},fieldsFlat:h.map(({field:m})=>({path:[],field:A(m,E0)?i1(m,W):m})),joins:w,where:L,limit:U,offset:E,orderBy:V,setOperators:[]})}else M=this.buildSelectQuery({table:q6(_,W),fields:{},fieldsFlat:J.map(({field:k})=>({path:[],field:A(k,E0)?i1(k,W):k})),joins:w,where:L,limit:U,offset:E,orderBy:V,setOperators:[]});return{tableTsKey:G.tsName,sql:M,selection:J}}}class p5{static[F]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class H1{static[F]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(Y){if(this.fields=Y.fields,this.session=Y.session,this.dialect=Y.dialect,Y.withList)this.withList=Y.withList;this.distinct=Y.distinct}authToken;setToken(Y){return this.authToken=Y,this}from(Y){let Z=!!this.fields,X=Y,_;if(this.fields)_=this.fields;else if(A(X,P0))_=Object.fromEntries(Object.keys(X._.selectedFields).map((G)=>[G,X[G]]));else if(A(X,P8))_=X[M0].selectedFields;else if(A(X,f))_={};else _=S7(X);return new m5({table:X,fields:_,isPartialSelect:Z,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class K3 extends p5{static[F]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:Y,fields:Z,isPartialSelect:X,session:_,dialect:G,withList:$,distinct:W}){super();this.config={withList:$,table:Y,fields:{...Z},distinct:W,setOperators:[]},this.isPartialSelect=X,this.session=_,this.dialect=G,this._={selectedFields:Z,config:this.config},this.tableName=Q2(Y),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{};for(let H of g1(Y))this.usedTables.add(H)}getUsedTables(){return[...this.usedTables]}createJoin(Y,Z){return(X,_)=>{let G=this.tableName,$=Q2(X);for(let W of g1(X))this.usedTables.add(W);if(typeof $==="string"&&this.config.joins?.some((W)=>W.alias===$))throw new Error(`Alias "${$}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof G==="string")this.config.fields={[G]:this.config.fields};if(typeof $==="string"&&!A(X,f)){let W=A(X,P0)?X._.selectedFields:A(X,V1)?X[M0].selectedFields:X[S.Symbol.Columns];this.config.fields[$]=W}}if(typeof _==="function")_=_(new Proxy(this.config.fields,new S0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:_,table:X,joinType:Y,alias:$,lateral:Z}),typeof $==="string")switch(Y){case"left":{this.joinsNotNullableMap[$]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([W])=>[W,!1])),this.joinsNotNullableMap[$]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[$]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([W])=>[W,!1])),this.joinsNotNullableMap[$]=!1;break}}return this}}leftJoin=this.createJoin("left",!1);leftJoinLateral=this.createJoin("left",!0);rightJoin=this.createJoin("right",!1);innerJoin=this.createJoin("inner",!1);innerJoinLateral=this.createJoin("inner",!0);fullJoin=this.createJoin("full",!1);crossJoin=this.createJoin("cross",!1);crossJoinLateral=this.createJoin("cross",!0);createSetOperator(Y,Z){return(X)=>{let _=typeof X==="function"?X(ME()):X;if(!w8(this.getSelectedFields(),_.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:Y,isAll:Z,rightSelect:_}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(Y){return this.config.setOperators.push(...Y),this}where(Y){if(typeof Y==="function")Y=Y(new Proxy(this.config.fields,new S0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=Y,this}having(Y){if(typeof Y==="function")Y=Y(new Proxy(this.config.fields,new S0({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 S0({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 S0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),X=Array.isArray(Z)?Z:[Z];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=X;else this.config.orderBy=X}else{let Z=Y;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=Z;else this.config.orderBy=Z}return this}limit(Y){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=Y;else this.config.limit=Y;return this}offset(Y){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=Y;else this.config.offset=Y;return this}for(Y,Z={}){return this.config.lockingClause={strength:Y,config:Z},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}as(Y){let Z=[];if(Z.push(...g1(this.config.table)),this.config.joins)for(let X of this.config.joins)Z.push(...g1(X.table));return new Proxy(new P0(this.getSQL(),this.config.fields,Y,!1,[...new Set(Z)]),new S0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new S0({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 m5 extends K3{static[F]="PgSelect";_prepare(Y){let{session:Z,config:X,dialect:_,joinsNotNullableMap:G,authToken:$,cacheConfig:W,usedTables:H}=this;if(!Z)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");let{fields:Q}=X;return O0.startActiveSpan("drizzle.prepareQuery",()=>{let J=C1(Q),U=Z.prepareQuery(_.sqlToQuery(this.getSQL()),J,Y,!0,void 0,{type:"select",tables:[...H]},W);return U.joinsNotNullableMap=G,U.setToken($)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return O0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}j7(m5,[W1]);function B4(Y,Z){return(X,_,...G)=>{let $=[_,...G].map((W)=>({type:Y,isAll:Z,rightSelect:W}));for(let W of $)if(!w8(X.getSelectedFields(),W.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return X.addSetOperators($)}}var ME=()=>({union:AE,unionAll:wE,intersect:RE,intersectAll:NE,except:IE,exceptAll:TE}),AE=B4("union",!1),wE=B4("union",!0),RE=B4("intersect",!1),NE=B4("intersect",!0),IE=B4("except",!1),TE=B4("except",!0);class v8{static[F]="PgQueryBuilder";dialect;dialectConfig;constructor(Y){this.dialect=A(Y,o2)?Y:void 0,this.dialectConfig=A(Y,o2)?void 0:Y}$with=(Y,Z)=>{let X=this;return{as:(G)=>{if(typeof G==="function")G=G(X);return new Proxy(new D8(G.getSQL(),Z??("getSelectedFields"in G?G.getSelectedFields()??{}:{}),Y,!0),new S0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...Y){let Z=this;function X($){return new H1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),withList:Y})}function _($){return new H1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),distinct:!0})}function G($,W){return new H1({fields:W??void 0,session:void 0,dialect:Z.getDialect(),distinct:{on:$}})}return{select:X,selectDistinct:_,selectDistinctOn:G}}select(Y){return new H1({fields:Y??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(Y){return new H1({fields:Y??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(Y,Z){return new H1({fields:Z??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:Y}})}getDialect(){if(!this.dialect)this.dialect=new o2(this.dialectConfig);return this.dialect}}function g1(Y){if(A(Y,u0))return[Y[p2]?`${Y[p2]}.${Y[S.Symbol.BaseName]}`:Y[S.Symbol.BaseName]];if(A(Y,P0))return Y._.usedTables??[];if(A(Y,f))return Y.usedTables??[];return[]}class YY extends W1{constructor(Y,Z,X,_){super();this.session=Z,this.dialect=X,this.config={table:Y,withList:_}}static[F]="PgDelete";config;cacheConfig;where(Y){return this.config.where=Y,this}returning(Y=this.config.table[S.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=C1(Y),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return O0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"delete",tables:g1(this.config.table)},this.cacheConfig)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return O0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new S0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class ZY{constructor(Y,Z,X,_,G){this.table=Y,this.session=Z,this.dialect=X,this.withList=_,this.overridingSystemValue_=G}static[F]="PgInsertBuilder";authToken;setToken(Y){return this.authToken=Y,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(Y){if(Y=Array.isArray(Y)?Y:[Y],Y.length===0)throw new Error("values() must be called with at least one value");let Z=Y.map((X)=>{let _={},G=this.table[S.Symbol.Columns];for(let $ of Object.keys(X)){let W=X[$];_[$]=A(W,f)?W:new w1(W,G[$])}return _});return new u5(this.table,Z,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(Y){let Z=typeof Y==="function"?Y(new v8):Y;if(!A(Z,f)&&!w8(this.table[B6],Z._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new u5(this.table,Z,this.session,this.dialect,this.withList,!0)}}class u5 extends W1{constructor(Y,Z,X,_,G,$,W){super();this.session=X,this.dialect=_,this.config={table:Y,values:Z,withList:G,select:$,overridingSystemValue_:W}}static[F]="PgInsert";config;cacheConfig;returning(Y=this.config.table[S.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=C1(Y),this}onConflictDoNothing(Y={}){if(Y.target===void 0)this.config.onConflict=O`do nothing`;else{let Z="";Z=Array.isArray(Y.target)?Y.target.map((_)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(_))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y.target));let X=Y.where?O` where ${Y.where}`:void 0;this.config.onConflict=O`(${O.raw(Z)})${X} do nothing`}return this}onConflictDoUpdate(Y){if(Y.where&&(Y.targetWhere||Y.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let Z=Y.where?O` where ${Y.where}`:void 0,X=Y.targetWhere?O` where ${Y.targetWhere}`:void 0,_=Y.setWhere?O` where ${Y.setWhere}`:void 0,G=this.dialect.buildUpdateSet(this.config.table,S6(this.config.table,Y.set)),$="";return $=Array.isArray(Y.target)?Y.target.map((W)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(W))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y.target)),this.config.onConflict=O`(${O.raw($)})${X} do update set ${G}${Z}${_}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return O0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"insert",tables:g1(this.config.table)},this.cacheConfig)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return O0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new S0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class d5 extends W1{constructor(Y,Z,X){super();this.session=Z,this.dialect=X,this.config={view:Y}}static[F]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return O0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,Y,!0)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return O0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}class XY{constructor(Y,Z,X,_){this.table=Y,this.session=Z,this.dialect=X,this.withList=_}static[F]="PgUpdateBuilder";authToken;setToken(Y){return this.authToken=Y,this}set(Y){return new B3(this.table,S6(this.table,Y),this.session,this.dialect,this.withList).setToken(this.authToken)}}class B3 extends W1{constructor(Y,Z,X,_,G){super();this.session=X,this.dialect=_,this.config={set:Z,table:Y,withList:G,joins:[]},this.tableName=Q2(Y),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[F]="PgUpdate";config;tableName;joinsNotNullableMap;cacheConfig;from(Y){let Z=Y,X=Q2(Z);if(typeof X==="string")this.joinsNotNullableMap[X]=!0;return this.config.from=Z,this}getTableLikeFields(Y){if(A(Y,u0))return Y[S.Symbol.Columns];else if(A(Y,P0))return Y._.selectedFields;return Y[M0].selectedFields}createJoin(Y){return(Z,X)=>{let _=Q2(Z);if(typeof _==="string"&&this.config.joins.some((G)=>G.alias===_))throw new Error(`Alias "${_}" is already used in this query`);if(typeof X==="function"){let G=this.config.from&&!A(this.config.from,f)?this.getTableLikeFields(this.config.from):void 0;X=X(new Proxy(this.config.table[S.Symbol.Columns],new S0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),G&&new Proxy(G,new S0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:X,table:Z,joinType:Y,alias:_}),typeof _==="string")switch(Y){case"left":{this.joinsNotNullableMap[_]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([G])=>[G,!1])),this.joinsNotNullableMap[_]=!0;break}case"inner":{this.joinsNotNullableMap[_]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([G])=>[G,!1])),this.joinsNotNullableMap[_]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(Y){return this.config.where=Y,this}returning(Y){if(!Y){if(Y=Object.assign({},this.config.table[S.Symbol.Columns]),this.config.from){let Z=Q2(this.config.from);if(typeof Z==="string"&&this.config.from&&!A(this.config.from,f)){let X=this.getTableLikeFields(this.config.from);Y[Z]=X}for(let X of this.config.joins){let _=Q2(X.table);if(typeof _==="string"&&!A(X.table,f)){let G=this.getTableLikeFields(X.table);Y[_]=G}}}}return this.config.returningFields=Y,this.config.returning=C1(Y),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){let Z=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"insert",tables:g1(this.config.table)},this.cacheConfig);return Z.joinsNotNullableMap=this.joinsNotNullableMap,Z}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return this._prepare().execute(Y,this.authToken)};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new S0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class x8 extends f{constructor(Y){super(x8.buildEmbeddedCount(Y.source,Y.filters).queryChunks);this.params=Y,this.mapWith(Number),this.session=Y.session,this.sql=x8.buildCount(Y.source,Y.filters)}sql;token;static[F]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(Y,Z){return O`(select count(*) from ${Y}${O.raw(" where ").if(Z)}${Z})`}static buildCount(Y,Z){return O`select count(*) as count from ${Y}${O.raw(" where ").if(Z)}${Z};`}setToken(Y){return this.token=Y,this}then(Y,Z){return Promise.resolve(this.session.count(this.sql,this.token)).then(Y,Z)}catch(Y){return this.then(void 0,Y)}finally(Y){return this.then((Z)=>{return Y?.(),Z},(Z)=>{throw Y?.(),Z})}}class l5{constructor(Y,Z,X,_,G,$,W){this.fullSchema=Y,this.schema=Z,this.tableNamesMap=X,this.table=_,this.tableConfig=G,this.dialect=$,this.session=W}static[F]="PgRelationalQueryBuilder";findMany(Y){return new c5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?Y:{},"many")}findFirst(Y){return new c5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?{...Y,limit:1}:{limit:1},"first")}}class c5 extends W1{constructor(Y,Z,X,_,G,$,W,H,Q){super();this.fullSchema=Y,this.schema=Z,this.tableNamesMap=X,this.table=_,this.tableConfig=G,this.dialect=$,this.session=W,this.config=H,this.mode=Q}static[F]="PgRelationalQuery";_prepare(Y){return O0.startActiveSpan("drizzle.prepareQuery",()=>{let{query:Z,builtQuery:X}=this._toSQL();return this.session.prepareQuery(X,void 0,Y,!0,(_,G)=>{let $=_.map((W)=>m6(this.schema,this.tableConfig,W,Z.selection,G));if(this.mode==="first")return $[0];return $})})}prepare(Y){return this._prepare(Y)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let Y=this._getQuery(),Z=this.dialect.sqlToQuery(Y.sql);return{query:Y,builtQuery:Z}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(Y){return this.authToken=Y,this}execute(){return O0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class o5 extends W1{constructor(Y,Z,X,_){super();this.execute=Y,this.sql=Z,this.query=X,this.mapBatchResult=_}static[F]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(Y,Z){return Z?this.mapBatchResult(Y):Y}_prepare(){return this}isResponseInArrayMode(){return!1}}class f8{constructor(Y,Z,X){if(this.dialect=Y,this.session=Z,this._=X?{schema:X.schema,fullSchema:X.fullSchema,tableNamesMap:X.tableNamesMap,session:Z}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:Z},this.query={},this._.schema)for(let[_,G]of Object.entries(this._.schema))this.query[_]=new l5(X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[_],G,Y,Z);this.$cache={invalidate:async(_)=>{}}}static[F]="PgDatabase";query;$with=(Y,Z)=>{let X=this;return{as:(G)=>{if(typeof G==="function")G=G(new v8(X.dialect));return new Proxy(new D8(G.getSQL(),Z??("getSelectedFields"in G?G.getSelectedFields()??{}:{}),Y,!0),new S0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(Y,Z){return new x8({source:Y,filters:Z,session:this.session})}$cache;with(...Y){let Z=this;function X(Q){return new H1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y})}function _(Q){return new H1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:!0})}function G(Q,J){return new H1({fields:J??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:{on:Q}})}function $(Q){return new XY(Q,Z.session,Z.dialect,Y)}function W(Q){return new ZY(Q,Z.session,Z.dialect,Y)}function H(Q){return new YY(Q,Z.session,Z.dialect,Y)}return{select:X,selectDistinct:_,selectDistinctOn:G,update:$,insert:W,delete:H}}select(Y){return new H1({fields:Y??void 0,session:this.session,dialect:this.dialect})}selectDistinct(Y){return new H1({fields:Y??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(Y,Z){return new H1({fields:Z??void 0,session:this.session,dialect:this.dialect,distinct:{on:Y}})}update(Y){return new XY(Y,this.session,this.dialect)}insert(Y){return new ZY(Y,this.session,this.dialect)}delete(Y){return new YY(Y,this.session,this.dialect)}refreshMaterializedView(Y){return new d5(Y,this.session,this.dialect)}authToken;execute(Y){let Z=typeof Y==="string"?O.raw(Y):Y.getSQL(),X=this.dialect.sqlToQuery(Z),_=this.session.prepareQuery(X,void 0,void 0,!1);return new o5(()=>_.execute(void 0,this.authToken),Z,X,(G)=>_.mapResult(G,!0))}transaction(Y,Z){return this.session.transaction(Y,Z)}}class C3{static[F]="Cache"}class h8 extends C3{strategy(){return"all"}static[F]="NoopCache";async get(Y){return}async put(Y,Z,X,_){}async onMutate(Y){}}async function i5(Y,Z){let X=`${Y}-${JSON.stringify(Z)}`,G=new TextEncoder().encode(X),$=await crypto.subtle.digest("SHA-256",G);return[...new Uint8Array($)].map((Q)=>Q.toString(16).padStart(2,"0")).join("")}class r5{constructor(Y,Z,X,_){if(this.query=Y,this.cache=Z,this.queryMetadata=X,this.cacheConfig=_,Z&&Z.strategy()==="all"&&_===void 0)this.cacheConfig={enable:!0,autoInvalidate:!0};if(!this.cacheConfig?.enable)this.cacheConfig=void 0}authToken;getQuery(){return this.query}mapResult(Y,Z){return Y}setToken(Y){return this.authToken=Y,this}static[F]="PgPreparedQuery";joinsNotNullableMap;async queryWithCache(Y,Z,X){if(this.cache===void 0||A(this.cache,h8)||this.queryMetadata===void 0)try{return await X()}catch(_){throw new J2(Y,Z,_)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await X()}catch(_){throw new J2(Y,Z,_)}if((this.queryMetadata.type==="insert"||this.queryMetadata.type==="update"||this.queryMetadata.type==="delete")&&this.queryMetadata.tables.length>0)try{let[_]=await Promise.all([X(),this.cache.onMutate({tables:this.queryMetadata.tables})]);return _}catch(_){throw new J2(Y,Z,_)}if(!this.cacheConfig)try{return await X()}catch(_){throw new J2(Y,Z,_)}if(this.queryMetadata.type==="select"){let _=await this.cache.get(this.cacheConfig.tag??await i5(Y,Z),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(_===void 0){let G;try{G=await X()}catch($){throw new J2(Y,Z,$)}return await this.cache.put(this.cacheConfig.tag??await i5(Y,Z),G,this.cacheConfig.autoInvalidate?this.queryMetadata.tables:[],this.cacheConfig.tag!==void 0,this.cacheConfig.config),G}return _}try{return await X()}catch(_){throw new J2(Y,Z,_)}}}class n5{constructor(Y){this.dialect=Y}static[F]="PgSession";execute(Y,Z){return O0.startActiveSpan("drizzle.operation",()=>{return O0.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(Y),void 0,void 0,!1)}).setToken(Z).execute(void 0,Z)})}all(Y){return this.prepareQuery(this.dialect.sqlToQuery(Y),void 0,void 0,!1).all()}async count(Y,Z){let X=await this.execute(Y,Z);return Number(X[0].count)}}class s5 extends f8{constructor(Y,Z,X,_=0){super(Y,Z,X);this.schema=X,this.nestedIndex=_}static[F]="PgTransaction";rollback(){throw new O5}getTransactionConfigSQL(Y){let Z=[];if(Y.isolationLevel)Z.push(`isolation level ${Y.isolationLevel}`);if(Y.accessMode)Z.push(Y.accessMode);if(typeof Y.deferrable==="boolean")Z.push(Y.deferrable?"deferrable":"not deferrable");return O.raw(Z.join(" "))}setTransaction(Y){return this.session.execute(O`set transaction ${this.getTransactionConfigSQL(Y)}`)}}class q3 extends r5{constructor(Y,Z,X,_,G,$,W,H,Q,J){super({sql:Z,params:X},G,$,W);this.client=Y,this.queryString=Z,this.params=X,this.logger=_,this.fields=H,this._isResponseInArrayMode=Q,this.customResultMapper=J}static[F]="PostgresJsPreparedQuery";async execute(Y={}){return O0.startActiveSpan("drizzle.execute",async(Z)=>{let X=F5(this.params,Y);Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X);let{fields:_,queryString:G,client:$,joinsNotNullableMap:W,customResultMapper:H}=this;if(!_&&!H)return O0.startActiveSpan("drizzle.driver.execute",()=>{return this.queryWithCache(G,X,async()=>{return await $.unsafe(G,X)})});let Q=await O0.startActiveSpan("drizzle.driver.execute",()=>{return Z?.setAttributes({"drizzle.query.text":G,"drizzle.query.params":JSON.stringify(X)}),this.queryWithCache(G,X,async()=>{return await $.unsafe(G,X).values()})});return O0.startActiveSpan("drizzle.mapResponse",()=>{return H?H(Q):Q.map((J)=>q7(_,J,W))})})}all(Y={}){return O0.startActiveSpan("drizzle.execute",async(Z)=>{let X=F5(this.params,Y);return Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X),O0.startActiveSpan("drizzle.driver.execute",()=>{return Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.queryWithCache(this.queryString,X,async()=>{return this.client.unsafe(this.queryString,X)})})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class k8 extends n5{constructor(Y,Z,X,_={}){super(Z);this.client=Y,this.schema=X,this.options=_,this.logger=_.logger??new D5,this.cache=_.cache??new h8}static[F]="PostgresJsSession";logger;cache;prepareQuery(Y,Z,X,_,G,$,W){return new q3(this.client,Y.sql,Y.params,this.logger,this.cache,$,W,Z,_,G)}query(Y,Z){return this.logger.logQuery(Y,Z),this.client.unsafe(Y,Z).values()}queryObjects(Y,Z){return this.client.unsafe(Y,Z)}transaction(Y,Z){return this.client.begin(async(X)=>{let _=new k8(X,this.dialect,this.schema,this.options),G=new t5(this.dialect,_,this.schema);if(Z)await G.setTransaction(Z);return Y(G)})}}class t5 extends s5{constructor(Y,Z,X,_=0){super(Y,Z,X,_);this.session=Z}static[F]="PostgresJsTransaction";transaction(Y){return this.session.client.savepoint((Z)=>{let X=new k8(Z,this.dialect,this.schema,this.session.options),_=new t5(this.dialect,X,this.schema);return Y(_)})}}class j3 extends f8{static[F]="PostgresJsDatabase"}function C4(Y,Z={}){let X=(Q)=>Q;for(let Q of["1184","1082","1083","1114","1182","1185","1115","1231"])Y.options.parsers[Q]=X,Y.options.serializers[Q]=X;Y.options.serializers["114"]=X,Y.options.serializers["3802"]=X;let _=new o2({casing:Z.casing}),G;if(Z.logger===!0)G=new V5;else if(Z.logger!==!1)G=Z.logger;let $;if(Z.schema){let Q=Y3(Z.schema,X3);$={fullSchema:Z.schema,schema:Q.tables,tableNamesMap:Q.tableNamesMap}}let W=new k8(Y,_,$,{logger:G,cache:Z.cache}),H=new j3(_,W,$);if(H.$client=Y,H.$cache=Z.cache,H.$cache)H.$cache.invalidate=Z.cache?.onMutate;return H}function _Y(...Y){if(typeof Y[0]==="string"){let Z=K4(Y[0]);return C4(Z,Y[1])}if(P7(Y[0])){let{connection:Z,client:X,..._}=Y[0];if(X)return C4(X,_);if(typeof Z==="object"&&Z.url!==void 0){let{url:$,...W}=Z,H=K4($,W);return C4(H,_)}let G=K4(Z);return C4(G,_)}return C4(Y[0],Y[1])}((Y)=>{function Z(X){return C4({options:{parsers:{},serializers:{}}},X)}Y.mock=Z})(_Y||(_Y={}));var e5={};fH(e5,{users:()=>i2,untrackedUserColumnNames:()=>KE,twoFactorMethod:()=>f3,trackedUserColumnName:()=>BE,trackableUserColumnNames:()=>v3,signInHistory:()=>qE,role:()=>P3,players:()=>a5,passwordResetAttempts:()=>jE,games:()=>$Y,banishedIps:()=>SE,accountActions:()=>CE,accountAction:()=>x3});function C2(){return e0({length:24}).$type()}function S3(Y){return O`lower(${Y})`}var GY=O`TO_CHAR(NOW() AT TIME ZONE 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"')`,P3=V8("role",["admin","user"]),i2=T2("users",{id:q1().primaryKey().defaultRandom(),username:e0({length:16}).notNull(),emailOffered:e0({length:254}).notNull(),emailVerified:e0({length:254}),password:e0({length:254}),createdAtIso:C2().notNull().default(GY),createdIp:e0({length:45}).notNull(),isActive:R8().notNull().default(!1),verifiedAtIso:C2(),userRole:P3().default("user")},(Y)=>[y5("usernameUniqueIndex").on(S3(Y.username)),y5("emailVerifiedUniqueIndex").on(S3(Y.emailVerified))]),KE=["id","createdAtIso","createdIp","isActive","verifiedAtIso"],v3=["username","emailOffered","emailVerified","password","userRole"],BE=V8("trackedUserColumnName",v3),x3=V8("accountAction",["cooldown","confirmEmail","signIn","resetPassword"]),CE=T2("accountActions",{userId:q1().references(()=>i2.id).primaryKey(),action:x3().notNull(),code:e0({length:254}).notNull(),wrongCodeCount:N8().notNull().default(0),expiresAtIso:C2().notNull()}),$Y=T2("games",{id:q1().primaryKey().defaultRandom()}),a5=T2("players",{userId:q1().notNull().references(()=>i2.id,{onDelete:"cascade"}),gameId:q1().notNull().references(()=>$Y.id,{onDelete:"cascade"}),score:N8().notNull()},(Y)=>[qW({name:"players_userId_gameId_pk",columns:[Y.userId,Y.gameId]})]),qE=T2("signInHistory",{id:q1().primaryKey().defaultRandom(),userId:q1().references(()=>i2.id,{onDelete:"cascade"}),signInTimeIso:C2().notNull().default(GY),ipAddress:e0({length:45}).notNull(),userAgent:e0({length:1024}),successful:R8().notNull().default(!1)}),f3=V8("twoFactorMethod",["email","phone"]),jE=T2("passwordResetAttempts",{id:q1().primaryKey().defaultRandom(),userId:q1().notNull().references(()=>i2.id,{onDelete:"cascade"}),requestedIp:e0({length:45}).notNull(),requestedAtIso:C2().notNull().default(GY),succeededIp:e0({length:45}),succeededAtIso:C2(),verificationMethod:f3().notNull()}),SE=T2("banishedIps",{ip:e0({length:45}).primaryKey(),reason:e0({length:2048}).notNull(),banishedAtIso:C2().notNull().default(GY),banishedUntilIso:C2()});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class YX{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(PE.resolve(__dirname,"notify_update.sql"));let Y=[d0(i2),d0($Y),d0(a5)];await this.sql`SELECT create_notify_triggers(${this.sql.array(Y)})`,await this.sql.listen("table_update",(Z)=>{let X=Z.split(","),_=X[0],G=X[1],$=`${_}("${G}")`;if(this.observers.has($))this.observers.get($).next($)})}constructor(Y=!1,Z={host:b1.POSTGRES_HOST,port:b1.POSTGRES_PORT,user:b1.POSTGRES_USER,password:b1.POSTGRES_PASSWORD,database:b1.POSTGRES_DATABASE}){this.options=Z,this.sql=K4(Z),this.drizzle=_Y(this.sql,{schema:e5,logger:Y})}observe(Y,Z){if(!this.observers.has(Y))this.observers.set(Y,new W0);this.observers.get(Y).subscribe("SINGLETON",Z)}}var WY={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 vE(Y){return Number.parseInt(Y,10)}var xE=O1(WY),fE=xE.keyof().pipe((Y)=>vE(Y)),h3=O1([fE,"string"]);var XX=new _7,{logger:L1}=XX;Object.assign(console,L1,{log:L1.info});L1.info("ready");var ZX=b3(import.meta.dir,"..","app"),Yf=new YX({logQuery(Y,Z){L1.info("\uD83D\uDCDD query",Y,Z)}});yE({hostname:"0.0.0.0",port:b1.FRONTEND_PORT??3333,...I6??void 0,async fetch(Y){try{let Z=new Date,X=new URL(Y.url);if(L1.info(Y.method,X.pathname),X.pathname==="/")return new Response(Bun.file(b3(ZX,"index.html")));if(X.pathname==="/index.html")return Response.redirect("/");let _=kE(ZX,X.pathname),G=bE(_);if(!G.startsWith(ZX))throw[403,"Access Denied"];if(!await k3(G).exists())return Response.redirect("/");return new Response(k3(G))}catch(Z){let X=h3(Z);if(X instanceof O1.errors===!1){let[_,G]=X,W=`${WY[_]}. ${G}`;return L1.info(`\u274C ${_}: ${W}`),new Response(W,{status:_})}if(Z instanceof Error)L1.error(Z.message);else{let _=N6(Z);L1.error("frontend server threw",_)}return new Response(WY[500],{status:500})}}});function HY(){L1.info("\uD83D\uDEEC frontend server exiting"),process.exit(0)}process.on("SIGINT",()=>{L1.info("\u2757 received SIGINT; exiting gracefully"),HY()});process.on("SIGTERM",()=>{L1.info("\u2757 received SIGTERM; exiting gracefully"),HY()});process.on("exit",()=>{L1.info("\u2757 received exit; exiting gracefully"),HY()});XX.on("timeToStop",()=>{L1.info('\u2757 backend server received signal "timeToStop"; exiting gracefully'),HY()});var{version:gE}=await Bun.file(hE.resolve(import.meta.dir,"../package.json")).json();L1.info(`\uD83D\uDEEB frontend v${gE} running at http://localhost:${b1.FRONTEND_PORT}/`);XX.emit("alive");
87
+ `;await Z.execute(O`CREATE SCHEMA IF NOT EXISTS ${O.identifier(G)}`),await Z.execute($);let H=(await Z.all(O`select id, hash, created_at from ${O.identifier(G)}.${O.identifier(_)} order by created_at desc limit 1`))[0];await Z.transaction(async(Q)=>{for await(let J of Y)if(!H||Number(H.created_at)<J.folderMillis){for(let U of J.sql)await Q.execute(O.raw(U));await Q.execute(O`insert into ${O.identifier(G)}.${O.identifier(_)} ("hash", "created_at") values(${J.hash}, ${J.folderMillis})`)}})}escapeName(Y){return`"${Y}"`}escapeParam(Y){return`$${Y+1}`}escapeString(Y){return`'${Y.replace(/'/g,"''")}'`}buildWithCTE(Y){if(!Y?.length)return;let Z=[O`with `];for(let[X,_]of Y.entries())if(Z.push(O`${O.identifier(_._.alias)} as (${_._.sql})`),X<Y.length-1)Z.push(O`, `);return Z.push(O` `),O.join(Z)}buildDeleteQuery({table:Y,where:Z,returning:X,withList:_}){let G=this.buildWithCTE(_),$=X?O` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,W=Z?O` where ${Z}`:void 0;return O`${G}delete from ${Y}${W}${$}`}buildUpdateSet(Y,Z){let X=Y[S.Symbol.Columns],_=Object.keys(X).filter(($)=>Z[$]!==void 0||X[$]?.onUpdateFn!==void 0),G=_.length;return O.join(_.flatMap(($,W)=>{let H=X[$],Q=Z[$]??O.param(H.onUpdateFn(),H),J=O`${O.identifier(this.casing.getColumnCasing(H))} = ${Q}`;if(W<G-1)return[J,O.raw(", ")];return[J]}))}buildUpdateQuery({table:Y,set:Z,where:X,returning:_,withList:G,from:$,joins:W}){let H=this.buildWithCTE(G),Q=Y[u0.Symbol.Name],J=Y[u0.Symbol.Schema],U=Y[u0.Symbol.OriginalName],E=Q===U?void 0:Q,V=O`${J?O`${O.identifier(J)}.`:void 0}${O.identifier(U)}${E&&O` ${O.identifier(E)}`}`,L=this.buildUpdateSet(Y,Z),w=$&&O.join([O.raw(" from "),this.buildFromTable($)]),M=this.buildJoins(W),h=_?O` returning ${this.buildSelection(_,{isSingleTable:!$})}`:void 0,k=X?O` where ${X}`:void 0;return O`${H}update ${V} set ${L}${w}${M}${k}${h}`}buildSelection(Y,{isSingleTable:Z=!1}={}){let X=Y.length,_=Y.flatMap(({field:G},$)=>{let W=[];if(A(G,f.Aliased)&&G.isSelectionField)W.push(O.identifier(G.fieldAlias));else if(A(G,f.Aliased)||A(G,f)){let H=A(G,f.Aliased)?G.sql:G;if(Z)W.push(new f(H.queryChunks.map((Q)=>{if(A(Q,j))return O.identifier(this.casing.getColumnCasing(Q));return Q})));else W.push(H);if(A(G,f.Aliased))W.push(O` as ${O.identifier(G.fieldAlias)}`)}else if(A(G,E0))if(Z)W.push(O.identifier(this.casing.getColumnCasing(G)));else W.push(G);if($<X-1)W.push(O`, `);return W});return O.join(_)}buildJoins(Y){if(!Y||Y.length===0)return;let Z=[];for(let[X,_]of Y.entries()){if(X===0)Z.push(O` `);let G=_.table,$=_.lateral?O` lateral`:void 0,W=_.on?O` on ${_.on}`:void 0;if(A(G,u0)){let H=G[u0.Symbol.Name],Q=G[u0.Symbol.Schema],J=G[u0.Symbol.OriginalName],U=H===J?void 0:_.alias;Z.push(O`${O.raw(_.joinType)} join${$} ${Q?O`${O.identifier(Q)}.`:void 0}${O.identifier(J)}${U&&O` ${O.identifier(U)}`}${W}`)}else if(A(G,V1)){let H=G[M0].name,Q=G[M0].schema,J=G[M0].originalName,U=H===J?void 0:_.alias;Z.push(O`${O.raw(_.joinType)} join${$} ${Q?O`${O.identifier(Q)}.`:void 0}${O.identifier(J)}${U&&O` ${O.identifier(U)}`}${W}`)}else Z.push(O`${O.raw(_.joinType)} join${$} ${G}${W}`);if(X<Y.length-1)Z.push(O` `)}return O.join(Z)}buildFromTable(Y){if(A(Y,S)&&Y[S.Symbol.IsAlias]){let Z=O`${O.identifier(Y[S.Symbol.OriginalName])}`;if(Y[S.Symbol.Schema])Z=O`${O.identifier(Y[S.Symbol.Schema])}.${Z}`;return O`${Z} ${O.identifier(Y[S.Symbol.Name])}`}return Y}buildSelectQuery({withList:Y,fields:Z,fieldsFlat:X,where:_,having:G,table:$,joins:W,orderBy:H,groupBy:Q,limit:J,offset:U,lockingClause:E,distinct:V,setOperators:L}){let w=X??C1(Z);for(let a of w)if(A(a.field,E0)&&d0(a.field.table)!==(A($,P0)?$._.alias:A($,P8)?$[M0].name:A($,f)?void 0:d0($))&&!((z0)=>W?.some(({alias:h0})=>h0===(z0[S.Symbol.IsAlias]?d0(z0):z0[S.Symbol.BaseName])))(a.field.table)){let z0=d0(a.field.table);throw new Error(`Your "${a.path.join("->")}" field references a column "${z0}"."${a.field.name}", but the table "${z0}" is not part of the query! Did you forget to join it?`)}let M=!W||W.length===0,h=this.buildWithCTE(Y),k;if(V)k=V===!0?O` distinct`:O` distinct on (${O.join(V.on,O`, `)})`;let x=this.buildSelection(w,{isSingleTable:M}),m=this.buildFromTable($),K=this.buildJoins(W),I=_?O` where ${_}`:void 0,q=G?O` having ${G}`:void 0,C;if(H&&H.length>0)C=O` order by ${O.join(H,O`, `)}`;let g;if(Q&&Q.length>0)g=O` group by ${O.join(Q,O`, `)}`;let n=typeof J==="object"||typeof J==="number"&&J>=0?O` limit ${J}`:void 0,T=U?O` offset ${U}`:void 0,t=O.empty();if(E){let a=O` for ${O.raw(E.strength)}`;if(E.config.of)a.append(O` of ${O.join(Array.isArray(E.config.of)?E.config.of:[E.config.of],O`, `)}`);if(E.config.noWait)a.append(O` nowait`);else if(E.config.skipLocked)a.append(O` skip locked`);t.append(a)}let p=O`${h}select${k} ${x} from ${m}${K}${I}${g}${q}${C}${n}${T}${t}`;if(L.length>0)return this.buildSetOperations(p,L);return p}buildSetOperations(Y,Z){let[X,..._]=Z;if(!X)throw new Error("Cannot pass undefined values to any set operator");if(_.length===0)return this.buildSetOperationQuery({leftSelect:Y,setOperator:X});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:Y,setOperator:X}),_)}buildSetOperationQuery({leftSelect:Y,setOperator:{type:Z,isAll:X,rightSelect:_,limit:G,orderBy:$,offset:W}}){let H=O`(${Y.getSQL()}) `,Q=O`(${_.getSQL()})`,J;if($&&$.length>0){let L=[];for(let w of $)if(A(w,j))L.push(O.identifier(w.name));else if(A(w,f)){for(let M=0;M<w.queryChunks.length;M++){let h=w.queryChunks[M];if(A(h,j))w.queryChunks[M]=O.identifier(h.name)}L.push(O`${w}`)}else L.push(O`${w}`);J=O` order by ${O.join(L,O`, `)} `}let U=typeof G==="object"||typeof G==="number"&&G>=0?O` limit ${G}`:void 0,E=O.raw(`${Z} ${X?"all ":""}`),V=W?O` offset ${W}`:void 0;return O`${H}${E}${Q}${J}${U}${V}`}buildInsertQuery({table:Y,values:Z,onConflict:X,returning:_,withList:G,select:$,overridingSystemValue_:W}){let H=[],Q=Y[S.Symbol.Columns],J=Object.entries(Q).filter(([h,k])=>!k.shouldDisableInsert()),U=J.map(([,h])=>O.identifier(this.casing.getColumnCasing(h)));if($){let h=Z;if(A(h,f))H.push(h);else H.push(h.getSQL())}else{let h=Z;H.push(O.raw("values "));for(let[k,x]of h.entries()){let m=[];for(let[K,I]of J){let q=x[K];if(q===void 0||A(q,w1)&&q.value===void 0)if(I.defaultFn!==void 0){let C=I.defaultFn(),g=A(C,f)?C:O.param(C,I);m.push(g)}else if(!I.default&&I.onUpdateFn!==void 0){let C=I.onUpdateFn(),g=A(C,f)?C:O.param(C,I);m.push(g)}else m.push(O`default`);else m.push(q)}if(H.push(m),k<h.length-1)H.push(O`, `)}}let E=this.buildWithCTE(G),V=O.join(H),L=_?O` returning ${this.buildSelection(_,{isSingleTable:!0})}`:void 0,w=X?O` on conflict ${X}`:void 0,M=W===!0?O`overriding system value `:void 0;return O`${E}insert into ${Y} ${U} ${M}${V}${w}${L}`}buildRefreshMaterializedViewQuery({view:Y,concurrently:Z,withNoData:X}){let _=Z?O` concurrently`:void 0,G=X?O` with no data`:void 0;return O`refresh materialized view${_} ${Y}${G}`}prepareTyping(Y){if(A(Y,f6)||A(Y,x6))return"json";else if(A(Y,h6))return"decimal";else if(A(Y,k6))return"time";else if(A(Y,b6)||A(Y,y6))return"timestamp";else if(A(Y,P6)||A(Y,v6))return"date";else if(A(Y,g6))return"uuid";else return"none"}sqlToQuery(Y,Z){return Y.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:Z})}buildRelationalQueryWithoutPK({fullSchema:Y,schema:Z,tableNamesMap:X,table:_,tableConfig:G,queryConfig:$,tableAlias:W,nestedQueryRelation:H,joinOn:Q}){let J=[],U,E,V=[],L,w=[];if($===!0)J=Object.entries(G.columns).map(([k,x])=>({dbKey:x.name,tsKey:k,field:i1(x,W),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let h=Object.fromEntries(Object.entries(G.columns).map(([q,C])=>[q,i1(C,W)]));if($.where){let q=typeof $.where==="function"?$.where(h,aW()):$.where;L=q&&A8(q,W)}let k=[],x=[];if($.columns){let q=!1;for(let[C,g]of Object.entries($.columns)){if(g===void 0)continue;if(C in G.columns){if(!q&&g===!0)q=!0;x.push(C)}}if(x.length>0)x=q?x.filter((C)=>$.columns?.[C]===!0):Object.keys(G.columns).filter((C)=>!x.includes(C))}else x=Object.keys(G.columns);for(let q of x){let C=G.columns[q];k.push({tsKey:q,value:C})}let m=[];if($.with)m=Object.entries($.with).filter((q)=>!!q[1]).map(([q,C])=>({tsKey:q,queryConfig:C,relation:G.relations[q]}));let K;if($.extras){K=typeof $.extras==="function"?$.extras(h,{sql:O}):$.extras;for(let[q,C]of Object.entries(K))k.push({tsKey:q,value:E5(C,W)})}for(let{tsKey:q,value:C}of k)J.push({dbKey:A(C,f.Aliased)?C.fieldAlias:G.columns[q].name,tsKey:q,field:A(C,E0)?i1(C,W):C,relationTableTsKey:void 0,isJson:!1,selection:[]});let I=typeof $.orderBy==="function"?$.orderBy(h,eW()):$.orderBy??[];if(!Array.isArray(I))I=[I];V=I.map((q)=>{if(A(q,E0))return i1(q,W);return A8(q,W)}),U=$.limit,E=$.offset;for(let{tsKey:q,queryConfig:C,relation:g}of m){let n=Z3(Z,X,g),T=m2(g.referencedTable),t=X[T],p=`${W}_${q}`,a=T8(...n.fields.map((J1,n1)=>p6(i1(n.references[n1],p),i1(J1,W)))),z0=this.buildRelationalQueryWithoutPK({fullSchema:Y,schema:Z,tableNamesMap:X,table:Y[t],tableConfig:Z[t],queryConfig:A(g,K2)?C===!0?{limit:1}:{...C,limit:1}:C,tableAlias:p,joinOn:a,nestedQueryRelation:g}),h0=O`${O.identifier(p)}.${O.identifier("data")}`.as(q);w.push({on:O`true`,table:new P0(z0.sql,{},p),alias:p,joinType:"left",lateral:!0}),J.push({dbKey:q,tsKey:q,field:h0,relationTableTsKey:t,isJson:!0,selection:z0.selection})}}if(J.length===0)throw new j6({message:`No fields selected for table "${G.tsName}" ("${W}")`});let M;if(L=T8(Q,L),H){let h=O`json_build_array(${O.join(J.map(({field:m,tsKey:K,isJson:I})=>I?O`${O.identifier(`${W}_${K}`)}.${O.identifier("data")}`:A(m,f.Aliased)?m.sql:m),O`, `)})`;if(A(H,K8))h=O`coalesce(json_agg(${h}${V.length>0?O` order by ${O.join(V,O`, `)}`:void 0}), '[]'::json)`;let k=[{dbKey:"data",tsKey:"data",field:h.as("data"),isJson:!0,relationTableTsKey:G.tsName,selection:J}];if(U!==void 0||E!==void 0||V.length>0)M=this.buildSelectQuery({table:q6(_,W),fields:{},fieldsFlat:[{path:[],field:O.raw("*")}],where:L,limit:U,offset:E,orderBy:V,setOperators:[]}),L=void 0,U=void 0,E=void 0,V=[];else M=q6(_,W);M=this.buildSelectQuery({table:A(M,u0)?M:new P0(M,{},W),fields:{},fieldsFlat:k.map(({field:m})=>({path:[],field:A(m,E0)?i1(m,W):m})),joins:w,where:L,limit:U,offset:E,orderBy:V,setOperators:[]})}else M=this.buildSelectQuery({table:q6(_,W),fields:{},fieldsFlat:J.map(({field:h})=>({path:[],field:A(h,E0)?i1(h,W):h})),joins:w,where:L,limit:U,offset:E,orderBy:V,setOperators:[]});return{tableTsKey:G.tsName,sql:M,selection:J}}}class p5{static[F]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class H1{static[F]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(Y){if(this.fields=Y.fields,this.session=Y.session,this.dialect=Y.dialect,Y.withList)this.withList=Y.withList;this.distinct=Y.distinct}authToken;setToken(Y){return this.authToken=Y,this}from(Y){let Z=!!this.fields,X=Y,_;if(this.fields)_=this.fields;else if(A(X,P0))_=Object.fromEntries(Object.keys(X._.selectedFields).map((G)=>[G,X[G]]));else if(A(X,P8))_=X[M0].selectedFields;else if(A(X,f))_={};else _=S7(X);return new m5({table:X,fields:_,isPartialSelect:Z,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class K3 extends p5{static[F]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:Y,fields:Z,isPartialSelect:X,session:_,dialect:G,withList:$,distinct:W}){super();this.config={withList:$,table:Y,fields:{...Z},distinct:W,setOperators:[]},this.isPartialSelect=X,this.session=_,this.dialect=G,this._={selectedFields:Z,config:this.config},this.tableName=Q2(Y),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{};for(let H of p1(Y))this.usedTables.add(H)}getUsedTables(){return[...this.usedTables]}createJoin(Y,Z){return(X,_)=>{let G=this.tableName,$=Q2(X);for(let W of p1(X))this.usedTables.add(W);if(typeof $==="string"&&this.config.joins?.some((W)=>W.alias===$))throw new Error(`Alias "${$}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof G==="string")this.config.fields={[G]:this.config.fields};if(typeof $==="string"&&!A(X,f)){let W=A(X,P0)?X._.selectedFields:A(X,V1)?X[M0].selectedFields:X[S.Symbol.Columns];this.config.fields[$]=W}}if(typeof _==="function")_=_(new Proxy(this.config.fields,new S0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:_,table:X,joinType:Y,alias:$,lateral:Z}),typeof $==="string")switch(Y){case"left":{this.joinsNotNullableMap[$]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([W])=>[W,!1])),this.joinsNotNullableMap[$]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[$]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([W])=>[W,!1])),this.joinsNotNullableMap[$]=!1;break}}return this}}leftJoin=this.createJoin("left",!1);leftJoinLateral=this.createJoin("left",!0);rightJoin=this.createJoin("right",!1);innerJoin=this.createJoin("inner",!1);innerJoinLateral=this.createJoin("inner",!0);fullJoin=this.createJoin("full",!1);crossJoin=this.createJoin("cross",!1);crossJoinLateral=this.createJoin("cross",!0);createSetOperator(Y,Z){return(X)=>{let _=typeof X==="function"?X(ME()):X;if(!w8(this.getSelectedFields(),_.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:Y,isAll:Z,rightSelect:_}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(Y){return this.config.setOperators.push(...Y),this}where(Y){if(typeof Y==="function")Y=Y(new Proxy(this.config.fields,new S0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=Y,this}having(Y){if(typeof Y==="function")Y=Y(new Proxy(this.config.fields,new S0({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 S0({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 S0({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(...p1(this.config.table)),this.config.joins)for(let X of this.config.joins)Z.push(...p1(X.table));return new Proxy(new P0(this.getSQL(),this.config.fields,Y,!1,[...new Set(Z)]),new S0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new S0({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 m5 extends K3{static[F]="PgSelect";_prepare(Y){let{session:Z,config:X,dialect:_,joinsNotNullableMap:G,authToken:$,cacheConfig:W,usedTables:H}=this;if(!Z)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");let{fields:Q}=X;return O0.startActiveSpan("drizzle.prepareQuery",()=>{let J=C1(Q),U=Z.prepareQuery(_.sqlToQuery(this.getSQL()),J,Y,!0,void 0,{type:"select",tables:[...H]},W);return U.joinsNotNullableMap=G,U.setToken($)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return O0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}j7(m5,[W1]);function B4(Y,Z){return(X,_,...G)=>{let $=[_,...G].map((W)=>({type:Y,isAll:Z,rightSelect:W}));for(let W of $)if(!w8(X.getSelectedFields(),W.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return X.addSetOperators($)}}var ME=()=>({union:AE,unionAll:wE,intersect:RE,intersectAll:NE,except:IE,exceptAll:TE}),AE=B4("union",!1),wE=B4("union",!0),RE=B4("intersect",!1),NE=B4("intersect",!0),IE=B4("except",!1),TE=B4("except",!0);class v8{static[F]="PgQueryBuilder";dialect;dialectConfig;constructor(Y){this.dialect=A(Y,o2)?Y:void 0,this.dialectConfig=A(Y,o2)?void 0:Y}$with=(Y,Z)=>{let X=this;return{as:(G)=>{if(typeof G==="function")G=G(X);return new Proxy(new D8(G.getSQL(),Z??("getSelectedFields"in G?G.getSelectedFields()??{}:{}),Y,!0),new S0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...Y){let Z=this;function X($){return new H1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),withList:Y})}function _($){return new H1({fields:$??void 0,session:void 0,dialect:Z.getDialect(),distinct:!0})}function G($,W){return new H1({fields:W??void 0,session:void 0,dialect:Z.getDialect(),distinct:{on:$}})}return{select:X,selectDistinct:_,selectDistinctOn:G}}select(Y){return new H1({fields:Y??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(Y){return new H1({fields:Y??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(Y,Z){return new H1({fields:Z??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:Y}})}getDialect(){if(!this.dialect)this.dialect=new o2(this.dialectConfig);return this.dialect}}function p1(Y){if(A(Y,u0))return[Y[p2]?`${Y[p2]}.${Y[S.Symbol.BaseName]}`:Y[S.Symbol.BaseName]];if(A(Y,P0))return Y._.usedTables??[];if(A(Y,f))return Y.usedTables??[];return[]}class YY extends W1{constructor(Y,Z,X,_){super();this.session=Z,this.dialect=X,this.config={table:Y,withList:_}}static[F]="PgDelete";config;cacheConfig;where(Y){return this.config.where=Y,this}returning(Y=this.config.table[S.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=C1(Y),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return O0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"delete",tables:p1(this.config.table)},this.cacheConfig)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return O0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new S0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class ZY{constructor(Y,Z,X,_,G){this.table=Y,this.session=Z,this.dialect=X,this.withList=_,this.overridingSystemValue_=G}static[F]="PgInsertBuilder";authToken;setToken(Y){return this.authToken=Y,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(Y){if(Y=Array.isArray(Y)?Y:[Y],Y.length===0)throw new Error("values() must be called with at least one value");let Z=Y.map((X)=>{let _={},G=this.table[S.Symbol.Columns];for(let $ of Object.keys(X)){let W=X[$];_[$]=A(W,f)?W:new w1(W,G[$])}return _});return new u5(this.table,Z,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(Y){let Z=typeof Y==="function"?Y(new v8):Y;if(!A(Z,f)&&!w8(this.table[B6],Z._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new u5(this.table,Z,this.session,this.dialect,this.withList,!0)}}class u5 extends W1{constructor(Y,Z,X,_,G,$,W){super();this.session=X,this.dialect=_,this.config={table:Y,values:Z,withList:G,select:$,overridingSystemValue_:W}}static[F]="PgInsert";config;cacheConfig;returning(Y=this.config.table[S.Symbol.Columns]){return this.config.returningFields=Y,this.config.returning=C1(Y),this}onConflictDoNothing(Y={}){if(Y.target===void 0)this.config.onConflict=O`do nothing`;else{let Z="";Z=Array.isArray(Y.target)?Y.target.map((_)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(_))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y.target));let X=Y.where?O` where ${Y.where}`:void 0;this.config.onConflict=O`(${O.raw(Z)})${X} do nothing`}return this}onConflictDoUpdate(Y){if(Y.where&&(Y.targetWhere||Y.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let Z=Y.where?O` where ${Y.where}`:void 0,X=Y.targetWhere?O` where ${Y.targetWhere}`:void 0,_=Y.setWhere?O` where ${Y.setWhere}`:void 0,G=this.dialect.buildUpdateSet(this.config.table,S6(this.config.table,Y.set)),$="";return $=Array.isArray(Y.target)?Y.target.map((W)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(W))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y.target)),this.config.onConflict=O`(${O.raw($)})${X} do update set ${G}${Z}${_}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return O0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"insert",tables:p1(this.config.table)},this.cacheConfig)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return O0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new S0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class d5 extends W1{constructor(Y,Z,X){super();this.session=Z,this.dialect=X,this.config={view:Y}}static[F]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){return O0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,Y,!0)})}prepare(Y){return this._prepare(Y)}authToken;setToken(Y){return this.authToken=Y,this}execute=(Y)=>{return O0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(Y,this.authToken)})}}class XY{constructor(Y,Z,X,_){this.table=Y,this.session=Z,this.dialect=X,this.withList=_}static[F]="PgUpdateBuilder";authToken;setToken(Y){return this.authToken=Y,this}set(Y){return new B3(this.table,S6(this.table,Y),this.session,this.dialect,this.withList).setToken(this.authToken)}}class B3 extends W1{constructor(Y,Z,X,_,G){super();this.session=X,this.dialect=_,this.config={set:Z,table:Y,withList:G,joins:[]},this.tableName=Q2(Y),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[F]="PgUpdate";config;tableName;joinsNotNullableMap;cacheConfig;from(Y){let Z=Y,X=Q2(Z);if(typeof X==="string")this.joinsNotNullableMap[X]=!0;return this.config.from=Z,this}getTableLikeFields(Y){if(A(Y,u0))return Y[S.Symbol.Columns];else if(A(Y,P0))return Y._.selectedFields;return Y[M0].selectedFields}createJoin(Y){return(Z,X)=>{let _=Q2(Z);if(typeof _==="string"&&this.config.joins.some((G)=>G.alias===_))throw new Error(`Alias "${_}" is already used in this query`);if(typeof X==="function"){let G=this.config.from&&!A(this.config.from,f)?this.getTableLikeFields(this.config.from):void 0;X=X(new Proxy(this.config.table[S.Symbol.Columns],new S0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),G&&new Proxy(G,new S0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:X,table:Z,joinType:Y,alias:_}),typeof _==="string")switch(Y){case"left":{this.joinsNotNullableMap[_]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([G])=>[G,!1])),this.joinsNotNullableMap[_]=!0;break}case"inner":{this.joinsNotNullableMap[_]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([G])=>[G,!1])),this.joinsNotNullableMap[_]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(Y){return this.config.where=Y,this}returning(Y){if(!Y){if(Y=Object.assign({},this.config.table[S.Symbol.Columns]),this.config.from){let Z=Q2(this.config.from);if(typeof Z==="string"&&this.config.from&&!A(this.config.from,f)){let X=this.getTableLikeFields(this.config.from);Y[Z]=X}for(let X of this.config.joins){let _=Q2(X.table);if(typeof _==="string"&&!A(X.table,f)){let G=this.getTableLikeFields(X.table);Y[_]=G}}}}return this.config.returningFields=Y,this.config.returning=C1(Y),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:Y,...Z}=this.dialect.sqlToQuery(this.getSQL());return Z}_prepare(Y){let Z=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,Y,!0,void 0,{type:"insert",tables:p1(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 S0({alias:d0(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class x8 extends f{constructor(Y){super(x8.buildEmbeddedCount(Y.source,Y.filters).queryChunks);this.params=Y,this.mapWith(Number),this.session=Y.session,this.sql=x8.buildCount(Y.source,Y.filters)}sql;token;static[F]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(Y,Z){return O`(select count(*) from ${Y}${O.raw(" where ").if(Z)}${Z})`}static buildCount(Y,Z){return O`select count(*) as count from ${Y}${O.raw(" where ").if(Z)}${Z};`}setToken(Y){return this.token=Y,this}then(Y,Z){return Promise.resolve(this.session.count(this.sql,this.token)).then(Y,Z)}catch(Y){return this.then(void 0,Y)}finally(Y){return this.then((Z)=>{return Y?.(),Z},(Z)=>{throw Y?.(),Z})}}class l5{constructor(Y,Z,X,_,G,$,W){this.fullSchema=Y,this.schema=Z,this.tableNamesMap=X,this.table=_,this.tableConfig=G,this.dialect=$,this.session=W}static[F]="PgRelationalQueryBuilder";findMany(Y){return new c5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?Y:{},"many")}findFirst(Y){return new c5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,Y?{...Y,limit:1}:{limit:1},"first")}}class c5 extends W1{constructor(Y,Z,X,_,G,$,W,H,Q){super();this.fullSchema=Y,this.schema=Z,this.tableNamesMap=X,this.table=_,this.tableConfig=G,this.dialect=$,this.session=W,this.config=H,this.mode=Q}static[F]="PgRelationalQuery";_prepare(Y){return O0.startActiveSpan("drizzle.prepareQuery",()=>{let{query:Z,builtQuery:X}=this._toSQL();return this.session.prepareQuery(X,void 0,Y,!0,(_,G)=>{let $=_.map((W)=>m6(this.schema,this.tableConfig,W,Z.selection,G));if(this.mode==="first")return $[0];return $})})}prepare(Y){return this._prepare(Y)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let Y=this._getQuery(),Z=this.dialect.sqlToQuery(Y.sql);return{query:Y,builtQuery:Z}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(Y){return this.authToken=Y,this}execute(){return O0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class o5 extends W1{constructor(Y,Z,X,_){super();this.execute=Y,this.sql=Z,this.query=X,this.mapBatchResult=_}static[F]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(Y,Z){return Z?this.mapBatchResult(Y):Y}_prepare(){return this}isResponseInArrayMode(){return!1}}class f8{constructor(Y,Z,X){if(this.dialect=Y,this.session=Z,this._=X?{schema:X.schema,fullSchema:X.fullSchema,tableNamesMap:X.tableNamesMap,session:Z}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:Z},this.query={},this._.schema)for(let[_,G]of Object.entries(this._.schema))this.query[_]=new l5(X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[_],G,Y,Z);this.$cache={invalidate:async(_)=>{}}}static[F]="PgDatabase";query;$with=(Y,Z)=>{let X=this;return{as:(G)=>{if(typeof G==="function")G=G(new v8(X.dialect));return new Proxy(new D8(G.getSQL(),Z??("getSelectedFields"in G?G.getSelectedFields()??{}:{}),Y,!0),new S0({alias:Y,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(Y,Z){return new x8({source:Y,filters:Z,session:this.session})}$cache;with(...Y){let Z=this;function X(Q){return new H1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y})}function _(Q){return new H1({fields:Q??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:!0})}function G(Q,J){return new H1({fields:J??void 0,session:Z.session,dialect:Z.dialect,withList:Y,distinct:{on:Q}})}function $(Q){return new XY(Q,Z.session,Z.dialect,Y)}function W(Q){return new ZY(Q,Z.session,Z.dialect,Y)}function H(Q){return new YY(Q,Z.session,Z.dialect,Y)}return{select:X,selectDistinct:_,selectDistinctOn:G,update:$,insert:W,delete:H}}select(Y){return new H1({fields:Y??void 0,session:this.session,dialect:this.dialect})}selectDistinct(Y){return new H1({fields:Y??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(Y,Z){return new H1({fields:Z??void 0,session:this.session,dialect:this.dialect,distinct:{on:Y}})}update(Y){return new XY(Y,this.session,this.dialect)}insert(Y){return new ZY(Y,this.session,this.dialect)}delete(Y){return new YY(Y,this.session,this.dialect)}refreshMaterializedView(Y){return new d5(Y,this.session,this.dialect)}authToken;execute(Y){let Z=typeof Y==="string"?O.raw(Y):Y.getSQL(),X=this.dialect.sqlToQuery(Z),_=this.session.prepareQuery(X,void 0,void 0,!1);return new o5(()=>_.execute(void 0,this.authToken),Z,X,(G)=>_.mapResult(G,!0))}transaction(Y,Z){return this.session.transaction(Y,Z)}}class C3{static[F]="Cache"}class h8 extends C3{strategy(){return"all"}static[F]="NoopCache";async get(Y){return}async put(Y,Z,X,_){}async onMutate(Y){}}async function i5(Y,Z){let X=`${Y}-${JSON.stringify(Z)}`,G=new TextEncoder().encode(X),$=await crypto.subtle.digest("SHA-256",G);return[...new Uint8Array($)].map((Q)=>Q.toString(16).padStart(2,"0")).join("")}class r5{constructor(Y,Z,X,_){if(this.query=Y,this.cache=Z,this.queryMetadata=X,this.cacheConfig=_,Z&&Z.strategy()==="all"&&_===void 0)this.cacheConfig={enable:!0,autoInvalidate:!0};if(!this.cacheConfig?.enable)this.cacheConfig=void 0}authToken;getQuery(){return this.query}mapResult(Y,Z){return Y}setToken(Y){return this.authToken=Y,this}static[F]="PgPreparedQuery";joinsNotNullableMap;async queryWithCache(Y,Z,X){if(this.cache===void 0||A(this.cache,h8)||this.queryMetadata===void 0)try{return await X()}catch(_){throw new J2(Y,Z,_)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await X()}catch(_){throw new J2(Y,Z,_)}if((this.queryMetadata.type==="insert"||this.queryMetadata.type==="update"||this.queryMetadata.type==="delete")&&this.queryMetadata.tables.length>0)try{let[_]=await Promise.all([X(),this.cache.onMutate({tables:this.queryMetadata.tables})]);return _}catch(_){throw new J2(Y,Z,_)}if(!this.cacheConfig)try{return await X()}catch(_){throw new J2(Y,Z,_)}if(this.queryMetadata.type==="select"){let _=await this.cache.get(this.cacheConfig.tag??await i5(Y,Z),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(_===void 0){let G;try{G=await X()}catch($){throw new J2(Y,Z,$)}return await this.cache.put(this.cacheConfig.tag??await i5(Y,Z),G,this.cacheConfig.autoInvalidate?this.queryMetadata.tables:[],this.cacheConfig.tag!==void 0,this.cacheConfig.config),G}return _}try{return await X()}catch(_){throw new J2(Y,Z,_)}}}class n5{constructor(Y){this.dialect=Y}static[F]="PgSession";execute(Y,Z){return O0.startActiveSpan("drizzle.operation",()=>{return O0.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(Y),void 0,void 0,!1)}).setToken(Z).execute(void 0,Z)})}all(Y){return this.prepareQuery(this.dialect.sqlToQuery(Y),void 0,void 0,!1).all()}async count(Y,Z){let X=await this.execute(Y,Z);return Number(X[0].count)}}class s5 extends f8{constructor(Y,Z,X,_=0){super(Y,Z,X);this.schema=X,this.nestedIndex=_}static[F]="PgTransaction";rollback(){throw new O5}getTransactionConfigSQL(Y){let Z=[];if(Y.isolationLevel)Z.push(`isolation level ${Y.isolationLevel}`);if(Y.accessMode)Z.push(Y.accessMode);if(typeof Y.deferrable==="boolean")Z.push(Y.deferrable?"deferrable":"not deferrable");return O.raw(Z.join(" "))}setTransaction(Y){return this.session.execute(O`set transaction ${this.getTransactionConfigSQL(Y)}`)}}class q3 extends r5{constructor(Y,Z,X,_,G,$,W,H,Q,J){super({sql:Z,params:X},G,$,W);this.client=Y,this.queryString=Z,this.params=X,this.logger=_,this.fields=H,this._isResponseInArrayMode=Q,this.customResultMapper=J}static[F]="PostgresJsPreparedQuery";async execute(Y={}){return O0.startActiveSpan("drizzle.execute",async(Z)=>{let X=F5(this.params,Y);Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X);let{fields:_,queryString:G,client:$,joinsNotNullableMap:W,customResultMapper:H}=this;if(!_&&!H)return O0.startActiveSpan("drizzle.driver.execute",()=>{return this.queryWithCache(G,X,async()=>{return await $.unsafe(G,X)})});let Q=await O0.startActiveSpan("drizzle.driver.execute",()=>{return Z?.setAttributes({"drizzle.query.text":G,"drizzle.query.params":JSON.stringify(X)}),this.queryWithCache(G,X,async()=>{return await $.unsafe(G,X).values()})});return O0.startActiveSpan("drizzle.mapResponse",()=>{return H?H(Q):Q.map((J)=>q7(_,J,W))})})}all(Y={}){return O0.startActiveSpan("drizzle.execute",async(Z)=>{let X=F5(this.params,Y);return Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X),O0.startActiveSpan("drizzle.driver.execute",()=>{return Z?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.queryWithCache(this.queryString,X,async()=>{return this.client.unsafe(this.queryString,X)})})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class k8 extends n5{constructor(Y,Z,X,_={}){super(Z);this.client=Y,this.schema=X,this.options=_,this.logger=_.logger??new D5,this.cache=_.cache??new h8}static[F]="PostgresJsSession";logger;cache;prepareQuery(Y,Z,X,_,G,$,W){return new q3(this.client,Y.sql,Y.params,this.logger,this.cache,$,W,Z,_,G)}query(Y,Z){return this.logger.logQuery(Y,Z),this.client.unsafe(Y,Z).values()}queryObjects(Y,Z){return this.client.unsafe(Y,Z)}transaction(Y,Z){return this.client.begin(async(X)=>{let _=new k8(X,this.dialect,this.schema,this.options),G=new t5(this.dialect,_,this.schema);if(Z)await G.setTransaction(Z);return Y(G)})}}class t5 extends s5{constructor(Y,Z,X,_=0){super(Y,Z,X,_);this.session=Z}static[F]="PostgresJsTransaction";transaction(Y){return this.session.client.savepoint((Z)=>{let X=new k8(Z,this.dialect,this.schema,this.session.options),_=new t5(this.dialect,X,this.schema);return Y(_)})}}class j3 extends f8{static[F]="PostgresJsDatabase"}function C4(Y,Z={}){let X=(Q)=>Q;for(let Q of["1184","1082","1083","1114","1182","1185","1115","1231"])Y.options.parsers[Q]=X,Y.options.serializers[Q]=X;Y.options.serializers["114"]=X,Y.options.serializers["3802"]=X;let _=new o2({casing:Z.casing}),G;if(Z.logger===!0)G=new V5;else if(Z.logger!==!1)G=Z.logger;let $;if(Z.schema){let Q=Y3(Z.schema,X3);$={fullSchema:Z.schema,schema:Q.tables,tableNamesMap:Q.tableNamesMap}}let W=new k8(Y,_,$,{logger:G,cache:Z.cache}),H=new j3(_,W,$);if(H.$client=Y,H.$cache=Z.cache,H.$cache)H.$cache.invalidate=Z.cache?.onMutate;return H}function _Y(...Y){if(typeof Y[0]==="string"){let Z=K4(Y[0]);return C4(Z,Y[1])}if(P7(Y[0])){let{connection:Z,client:X,..._}=Y[0];if(X)return C4(X,_);if(typeof Z==="object"&&Z.url!==void 0){let{url:$,...W}=Z,H=K4($,W);return C4(H,_)}let G=K4(Z);return C4(G,_)}return C4(Y[0],Y[1])}((Y)=>{function Z(X){return C4({options:{parsers:{},serializers:{}}},X)}Y.mock=Z})(_Y||(_Y={}));var e5={};fH(e5,{users:()=>i2,untrackedUserColumnNames:()=>KE,twoFactorMethod:()=>f3,trackedUserColumnName:()=>BE,trackableUserColumnNames:()=>v3,signInHistory:()=>qE,role:()=>P3,players:()=>a5,passwordResetAttempts:()=>jE,games:()=>$Y,banishedIps:()=>SE,accountActions:()=>CE,accountAction:()=>x3});function C2(){return e0({length:24}).$type()}function S3(Y){return O`lower(${Y})`}var GY=O`TO_CHAR(NOW() AT TIME ZONE 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"')`,P3=V8("role",["admin","user"]),i2=T2("users",{id:q1().primaryKey().defaultRandom(),username:e0({length:16}).notNull(),emailOffered:e0({length:254}).notNull(),emailVerified:e0({length:254}),password:e0({length:254}),createdAtIso:C2().notNull().default(GY),createdIp:e0({length:45}).notNull(),isActive:R8().notNull().default(!1),verifiedAtIso:C2(),userRole:P3().default("user")},(Y)=>[y5("usernameUniqueIndex").on(S3(Y.username)),y5("emailVerifiedUniqueIndex").on(S3(Y.emailVerified))]),KE=["id","createdAtIso","createdIp","isActive","verifiedAtIso"],v3=["username","emailOffered","emailVerified","password","userRole"],BE=V8("trackedUserColumnName",v3),x3=V8("accountAction",["cooldown","confirmEmail","signIn","resetPassword"]),CE=T2("accountActions",{userId:q1().references(()=>i2.id).primaryKey(),action:x3().notNull(),code:e0({length:254}).notNull(),wrongCodeCount:N8().notNull().default(0),expiresAtIso:C2().notNull()}),$Y=T2("games",{id:q1().primaryKey().defaultRandom()}),a5=T2("players",{userId:q1().notNull().references(()=>i2.id,{onDelete:"cascade"}),gameId:q1().notNull().references(()=>$Y.id,{onDelete:"cascade"}),score:N8().notNull()},(Y)=>[qW({name:"players_userId_gameId_pk",columns:[Y.userId,Y.gameId]})]),qE=T2("signInHistory",{id:q1().primaryKey().defaultRandom(),userId:q1().references(()=>i2.id,{onDelete:"cascade"}),signInTimeIso:C2().notNull().default(GY),ipAddress:e0({length:45}).notNull(),userAgent:e0({length:1024}),successful:R8().notNull().default(!1)}),f3=V8("twoFactorMethod",["email","phone"]),jE=T2("passwordResetAttempts",{id:q1().primaryKey().defaultRandom(),userId:q1().notNull().references(()=>i2.id,{onDelete:"cascade"}),requestedIp:e0({length:45}).notNull(),requestedAtIso:C2().notNull().default(GY),succeededIp:e0({length:45}),succeededAtIso:C2(),verificationMethod:f3().notNull()}),SE=T2("banishedIps",{ip:e0({length:45}).primaryKey(),reason:e0({length:2048}).notNull(),banishedAtIso:C2().notNull().default(GY),banishedUntilIso:C2()});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class YX{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(PE.resolve(__dirname,"notify_update.sql"));let Y=[d0(i2),d0($Y),d0(a5)];await this.sql`SELECT create_notify_triggers(${this.sql.array(Y)})`,await this.sql.listen("table_update",(Z)=>{let X=Z.split(","),_=X[0],G=X[1],$=`${_}("${G}")`;if(this.observers.has($))this.observers.get($).next($)})}constructor(Y=!1,Z={host:y1.POSTGRES_HOST,port:y1.POSTGRES_PORT,user:y1.POSTGRES_USER,password:y1.POSTGRES_PASSWORD,database:y1.POSTGRES_DATABASE}){this.options=Z,this.sql=K4(Z),this.drizzle=_Y(this.sql,{schema:e5,logger:Y})}observe(Y,Z){if(!this.observers.has(Y))this.observers.set(Y,new W0);this.observers.get(Y).subscribe("SINGLETON",Z)}}var WY={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 vE(Y){return Number.parseInt(Y,10)}var xE=O1(WY),fE=xE.keyof().pipe((Y)=>vE(Y)),h3=O1([fE,"string"]);var XX=new _7,{logger:L1}=XX;Object.assign(console,L1,{log:L1.info});L1.info("ready");var ZX=b3(import.meta.dir,"..","app"),Yf=new YX({logQuery(Y,Z){L1.info("\uD83D\uDCDD query",Y,Z)}});yE({hostname:"0.0.0.0",port:y1.FRONTEND_PORT??3333,...I6??void 0,async fetch(Y){try{let Z=new Date,X=new URL(Y.url);if(L1.info(Y.method,X.pathname),X.pathname==="/")return new Response(Bun.file(b3(ZX,"index.html")));if(X.pathname==="/index.html")return Response.redirect("/");let _=kE(ZX,X.pathname),G=bE(_);if(!G.startsWith(ZX))throw[403,"Access Denied"];if(!await k3(G).exists())return Response.redirect("/");return new Response(k3(G))}catch(Z){let X=h3(Z);if(X instanceof O1.errors===!1){let[_,G]=X,W=`${WY[_]}. ${G}`;return L1.info(`\u274C ${_}: ${W}`),new Response(W,{status:_})}if(Z instanceof Error)L1.error(Z.message);else{let _=N6(Z);L1.error("frontend server threw",_)}return new Response(WY[500],{status:500})}}});function HY(){L1.info("\uD83D\uDEEC frontend server exiting"),process.exit(0)}process.on("SIGINT",()=>{L1.info("\u2757 received SIGINT; exiting gracefully"),HY()});process.on("SIGTERM",()=>{L1.info("\u2757 received SIGTERM; exiting gracefully"),HY()});process.on("exit",()=>{L1.info("\u2757 received exit; exiting gracefully"),HY()});XX.on("timeToStop",()=>{L1.info('\u2757 backend server received signal "timeToStop"; exiting gracefully'),HY()});var{version:gE}=await Bun.file(hE.resolve(import.meta.dir,"../package.json")).json();L1.info(`\uD83D\uDEEB frontend v${gE} running at http://localhost:${y1.FRONTEND_PORT}/`);XX.emit("alive");