tempest.games 0.2.37 → 0.2.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/app/assets/{index-hdtDD69B.js → index-B04_csD_.js} +12 -12
- package/app/index.html +1 -1
- package/bin/backend.bun.js +2 -2
- package/bin/backend.worker.game.bun.js +7 -7
- package/bin/backend.worker.tribunal.bun.js +25 -25
- package/bin/frontend.bun.js +2 -2
- package/bin/setup-db.bun.js +52 -52
- package/package.json +9 -9
package/bin/frontend.bun.js
CHANGED
|
@@ -44,7 +44,7 @@ Right: ${Z}`;var HQ=n({kind:"unit",hasAssociatedError:!0,keys:{unit:{preserveUnd
|
|
|
44
44
|
${W},
|
|
45
45
|
`;if(!X.hasKind("union"))return H;let Q=new p2({kind:"Allows",optimistic:!0}).indent();X.compile(Q);let J=Q.write(`${X.id}Optimistic`);return`${H}${J},
|
|
46
46
|
`},`{
|
|
47
|
-
`)+"}");class e8{config;resolvedConfig;name;get[Z1](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(Y,Z){if(this.config=m2(T.config,Z),this.resolvedConfig=m2(T.resolvedConfig,Z),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(XZ).length}`,this.name in XZ)w(`A Scope already named ${this.name} already exists`);XZ[this.name]=this;let X=Object.entries(Y).map((_)=>this.preparseOwnAliasEntry(..._));for(let[_,G]of X){let $=_;if(_[0]==="#"){if($=_.slice(1),$ in this.aliases)w(y_($));this.aliases[$]=G}else{if($ in this.aliases)w(y_(_));this.aliases[$]=G,this.exportedNames.push($)}if(!g(G,"module")&&!g(G,"generic")&&!E4(G)){let W=this.preparseOwnDefinitionFormat(G,{alias:$});this.resolutions[$]=g(W,"root")?this.bindReference(W):this.createParseContext(W).id}}g_??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[g_.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=T.intrinsic?i(T.intrinsic,(_,G)=>_.startsWith("json")?[]:[_,this.bindReference(G)]):{}}cacheGetter(Y,Z){return Object.defineProperty(this,Y,{value:Z}),Z}get internal(){return this}_json;get json(){if(!this._json)this.export();return this._json}defineSchema(Y){return Y}generic=(...Y)=>{let Z=this;return(X,_)=>new M4(Y,_?new l8(X):X,Z,Z,_??null)};units=(Y,Z)=>{let X=[];for(let G of Y)if(!X.includes(G))X.push(G);let _=X.map((G)=>this.node("unit",{unit:G},Z));return this.node("union",_,{...Z,prereduced:!0})};lazyResolutions=[];lazilyResolve(Y,Z){let X=this.node("alias",{reference:Z??"synthetic",resolve:Y},{prereduced:!0});if(!this.resolved)this.lazyResolutions.push(X);return X}schema=(Y,Z)=>this.finalize(this.parseSchema(Y,Z));parseSchema=(Y,Z)=>this.node(l2(Y),Y,Z);preparseNode(Y,Z,X){let _=typeof Y==="string"?Y:l2(Z,Y);if(L0(Z)&&Z.kind===_)return Z;if(_==="alias"&&!X?.prereduced){let{reference:W}=t2.implementation.normalize(Z,this);if(W.startsWith("$")){let H=this.resolveRoot(W.slice(1));Z=H,_=H.kind}}else if(_==="union"&&J1(Z,"object")){let W=BQ(Z);if(W?.length===1)Z=W[0],_=l2(Z)}if(L0(Z)&&Z.kind===_)return Z;let $=G2[_].normalize?.(Z,this)??Z;if(L0($))return $.kind===_?$:CQ(_,$.kind);return{...X,$:this,kind:_,def:$,prefix:X.alias??_}}bindReference(Y){let Z;if(L0(Y))Z=Y.$===this?Y:new Y.constructor(Y.attachments,this);else Z=Y.$===this?Y:new M4(Y.params,Y.bodyDef,Y.$,this,Y.hkt);if(!this.resolved)Object.assign(this.referencesById,Z.referencesById);return Z}resolveRoot(Y){return this.maybeResolveRoot(Y)??w($Z(Y))}maybeResolveRoot(Y){let Z=this.maybeResolve(Y);if(g(Z,"generic"))return;return Z}maybeResolveSubalias(Y){return _Z(this.aliases,Y)??_Z(this.ambient,Y)}get ambient(){return T.ambient}maybeResolve(Y){let Z=this.resolutions[Y];if(Z){if(typeof Z!=="string")return this.bindReference(Z);let _=X1[Z];if(g(_,"root"))return this.resolutions[Y]=_;if(g(_,"context")){if(_.phase==="resolving")return this.node("alias",{reference:`$${Y}`},{prereduced:!0});if(_.phase==="resolved")return _0(`Unexpected resolved context for was uncached by its scope: ${r(_)}`);_.phase="resolving";let G=this.bindReference(this.parseOwnDefinitionFormat(_.def,_));return _.phase="resolved",X1[G.id]=G,X1[_.id]=G,this.resolutions[Y]=G}return _0(`Unexpected nodesById entry for ${Z}: ${r(_)}`)}let X=this.aliases[Y]??this.ambient?.[Y];if(!X)return this.maybeResolveSubalias(Y);if(X=this.normalizeRootScopeValue(X),g(X,"generic"))return this.resolutions[Y]=this.bindReference(X);if(g(X,"module")){if(!X.root)w(o_(Y));return this.resolutions[Y]=this.bindReference(X.root)}return this.resolutions[Y]=this.parse(X,{alias:Y})}createParseContext(Y){let Z=Y.id??gY(Y.prefix);return X1[Z]=Object.assign(Y,{[Z1]:"context",$:this,id:Z,phase:"unresolved"})}traversal(Y){return new f1(Y,this.resolvedConfig)}import(...Y){return new H2(i(this.export(...Y),(Z,X)=>[`#${Z}`,X]))}precompilation;_exportedResolutions;_exports;export(...Y){if(!this._exports){this._exports={};for(let X of this.exportedNames){let _=this.aliases[X];this._exports[X]=g(_,"module")?ZZ(_,this):p_(this.maybeResolve(X))}for(let X of this.lazyResolutions)X.resolution;if(this._exportedResolutions=l_(this,this._exports),this._json=c_(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let X=d_(this.references);this.precompilation=X.write(m_,4),u_(this.references,X)}this.resolved=!0}let Z=Y.length?Y:this.exportedNames;return new H2(i(Z,(X,_)=>[_,this._exports[_]]))}resolve(Y){return this.export()[Y]}node=(Y,Z,X={})=>{let _=this.preparseNode(Y,Z,X);if(L0(_))return this.bindReference(_);let G=this.createParseContext(_),$=pY(G),W=this.bindReference($);return X1[G.id]=W};parse=(Y,Z={})=>this.finalize(this.parseDefinition(Y,Z));parseDefinition(Y,Z={}){if(g(Y,"root"))return this.bindReference(Y);let X=this.preparseOwnDefinitionFormat(Y,Z);if(g(X,"root"))return this.bindReference(X);let _=this.createParseContext(X);X1[_.id]=_;let G=this.bindReference(this.parseOwnDefinitionFormat(Y,_));if(G.isCyclic)G=F_(G,_.id);return X1[_.id]=G,G}finalize(Y){if(p_(Y),!Y.precompilation&&!this.resolvedConfig.jitless)qQ(Y.references);return Y}}class GZ extends e8{parseOwnDefinitionFormat(Y,Z){return pY(Z)}preparseOwnDefinitionFormat(Y,Z){return this.preparseNode(l2(Y),Y,Z)}preparseOwnAliasEntry(Y,Z){return[Y,Z]}normalizeRootScopeValue(Y){return Y}}var p_=(Y)=>{let Z=Y.references.filter((X)=>X.hasKind("alias"));for(let X of Z){Object.assign(X.referencesById,X.resolution.referencesById);for(let _ of Y.references)if(X.id in _.referencesById)Object.assign(_.referencesById,X.referencesById)}return Y},c_=(Y)=>i(Y,(Z,X)=>[Z,g(X,"root")||g(X,"generic")?X.json:g(X,"module")?c_(X):_0(`Unexpected resolution ${r(X)}`)]),_Z=(Y,Z)=>{let X=Z.indexOf(".");if(X===-1)return;let _=Z.slice(0,X),G=Y[_];if(G===void 0)return;if(!g(G,"module"))return w(jQ(_));let $=Z.slice(X+1),W=G[$];if(W===void 0)return _Z(G,$);if(g(W,"root")||g(W,"generic"))return W;if(g(W,"module"))return W.root??w(o_(Z));_0(`Unexpected resolution for alias '${Z}': ${r(W)}`)},Y6=(Y,Z)=>new GZ(Y,Z),Y8=new GZ({});var l_=(Y,Z)=>{let X={};for(let _ in Z){let G=Z[_];if(g(G,"module")){let $=l_(Y,G),W=i($,(H,Q)=>[`${_}.${H}`,Q]);Object.assign(X,W)}else if(g(G,"root")||g(G,"generic"))X[_]=G;else _0(`Unexpected scope resolution ${r(G)}`)}return X},$Z=(Y)=>`'${Y}' is unresolvable`,jQ=(Y)=>`'${Y}' must reference a module to be accessed using dot syntax`,o_=(Y)=>`Reference to submodule '${Y}' must specify an alias`;Y8.export();var{schema:H0,node:J2,defineSchema:Kw,generic:B1}=Y8;var WZ="^(?:0|[1-9]\\d*)$",SQ=new RegExp(WZ),qw=C0(SQ);var i_=Y6({bigint:"bigint",boolean:[{unit:!1},{unit:!0}],false:{unit:!1},never:[],null:{unit:null},number:"number",object:"object",string:"string",symbol:"symbol",true:{unit:!0},unknown:{},undefined:{unit:void 0},Array,Date},{prereducedAliases:!0}).export();T.intrinsic={...i_};var r_=Y6({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:WZ}},{prereducedAliases:!0}).export();Object.assign(T.intrinsic,r_);var PQ=Y6({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),d={...i_,...r_,...PQ,emptyStructure:J2("structure",{},{prereduced:!0})};T.intrinsic={...d};var s_=(Y)=>typeof Y==="string"&&Y[0]==="d"&&(Y[1]==="'"||Y[1]==='"')&&Y.at(-1)===Y[1],n_=(Y)=>Y.toString()!=="Invalid Date",t_=(Y)=>Y.slice(2,-1),HZ=(Y)=>`'${Y}' could not be parsed by the Date constructor`,a_=(Y,Z)=>vQ(Y,Z),vQ=(Y,Z)=>{let X=new Date(Y);if(n_(X))return X;let _=SX(Y);if(_!==void 0){let G=new Date(_);if(n_(G))return G}return Z?w(Z===!0?HZ(Y):Z):void 0};var JZ=(Y,Z)=>{let X=Y.scanner.shiftUntil(xQ[YG[Z]]);if(Y.scanner.lookahead==="")return Y.error(hQ(X,Z));if(Y.scanner.shift(),Z==="/"){try{new RegExp(X)}catch(_){w(String(_))}Y.root=Y.ctx.$.node("intersection",{domain:"string",pattern:X},{prereduced:!0})}else if(y0(Z,QZ))Y.root=Y.ctx.$.node("unit",{unit:X});else{let _=a_(X,HZ(X));Y.root=Y.ctx.$.node("unit",{meta:X,unit:_})}},QZ={"'":1,'"':1},e_={"/":1,"'":1,'"':1},YG={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},xQ={"'":(Y)=>Y.lookahead==="'",'"':(Y)=>Y.lookahead==='"',"/":(Y)=>Y.lookahead==="/"},fQ={'"':"double-quote","'":"single-quote","/":"forward slash"},hQ=(Y,Z)=>`${Z}${Y} requires a closing ${fQ[YG[Z]]}`;var ZG=(Y)=>`Private type references should not include '#'. Use '${Y}' instead.`,Z6="Optional definitions like 'string?' are only valid as properties in an object or tuple",X6="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var XG={">":!0,">=":!0},_G={"<":!0,"<=":!0};var Q2={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},GG=(Y)=>`Unmatched )${Y===""?"":` before ${Y}`}`,_6=(Y)=>`Missing ${Y}`,$G=(Y,Z)=>`Left bounds are only valid when paired with right bounds (try ...${Z}${Y})`,G6=(Y)=>`Left-bounded expressions must specify their limits using < or <= (was ${Y})`,WG=(Y,Z,X,_)=>`An expression may have at most one left bound (parsed ${Y}${Q2[Z]}, ${X}${Q2[_]})`;var HG=(Y,Z,X)=>JG(Y,Z,X,[]),JG=(Y,Z,X,_)=>{let G=X.parseUntilFinalizer();if(_.push(G.root),G.finalizer===">"){if(_.length!==Z.params.length)return X.error(UZ(Y,Z.names,_.map(($)=>$.expression)));return _}if(G.finalizer===",")return JG(Y,Z,X,_);return G.error(_6(">"))},UZ=(Y,Z,X)=>`${Y}<${Z.join(", ")}> requires exactly ${Z.length} args (got ${X.length}${X.length===0?"":`: ${X.join(", ")}`})`;var zZ=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator();if(Z==="keyof")Y.addPrefix("keyof");else Y.root=bQ(Y,Z)},kQ=(Y,Z,X)=>{if(X.scanner.shiftUntilNonWhitespace(),X.scanner.shift()!=="<")return X.error(UZ(Y,Z.names,[]));let G=HG(Y,Z,X);return Z(...G)},bQ=(Y,Z)=>yQ(Y,Z)??gQ(Y,Z)??Y.error(Z===""?Y.scanner.lookahead==="#"?ZG(Y.shiftedByOne().scanner.shiftUntilNextTerminator()):FZ(Y):$Z(Z)),yQ=(Y,Z)=>{if(Y.ctx.args?.[Z]){let _=Y.ctx.args[Z];if(typeof _!=="string")return _;return Y.ctx.$.node("alias",{reference:_},{prereduced:!0})}let X=Y.ctx.$.maybeResolve(Z);if(g(X,"root"))return X;if(X===void 0)return;if(g(X,"generic"))return kQ(Z,X,Y);return w(`Unexpected resolution ${r(X)}`)},gQ=(Y,Z)=>{let X=PX(Z);if(X!==void 0)return Y.ctx.$.node("unit",{unit:X});let _=xX(Z);if(_!==void 0)return Y.ctx.$.node("unit",{unit:_})},FZ=(Y)=>{let Z=Y.previousOperator();return Z?EZ(Z,Y.scanner.unscanned):pQ(Y.scanner.unscanned)},EZ=(Y,Z="")=>`Token '${Y}' requires a right operand${Z?` before '${Z}'`:""}`,pQ=(Y)=>`Expected an expression${Y?` before '${Y}'`:""}`;var OZ=(Y)=>Y.scanner.lookahead===""?Y.error(FZ(Y)):Y.scanner.lookahead==="("?Y.shiftedByOne().reduceGroupOpen():Y.scanner.lookaheadIsIn(e_)?JZ(Y,Y.scanner.shift()):Y.scanner.lookaheadIsIn(O4)?OZ(Y.shiftedByOne()):Y.scanner.lookahead==="d"?Y.scanner.nextLookahead in QZ?JZ(Y,`${Y.scanner.shift()}${Y.scanner.shift()}`):zZ(Y):zZ(Y);class _4 extends AY{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>(this.lookahead in _4.terminatingChars))}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...O4};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(Y,Z)=>Y===">"?Z[0]==="="?Z[1]==="=":Z.trimStart()===""||y0(Z.trimStart()[0],_4.terminatingChars):Y==="="?Z[0]!=="=":Y===","||Y==="?"}var UG=(Y,Z)=>{let X=mQ(Y,Z);if(Y.root.hasKind("unit")){if(typeof Y.root.unit==="number"){Y.reduceLeftBound(Y.root.unit,X),Y.unsetRoot();return}if(Y.root.unit instanceof Date){let _=`d'${Y.root.description??Y.root.unit.toISOString()}'`;Y.unsetRoot(),Y.reduceLeftBound(_,X);return}}return dQ(Y,X)},zG={"<":1,">":1,"=":1},mQ=(Y,Z)=>Y.scanner.lookaheadIs("=")?`${Z}${Y.scanner.shift()}`:Z;var QG=(Y,Z,X,_)=>{if(X.extends(T.intrinsic.number)){if(typeof Z!=="number")return w(VZ(Y,Z,_));return Y==="=="?["min","max"]:Y[0]===">"?["min"]:["max"]}if(X.extends(T.intrinsic.lengthBoundable)){if(typeof Z!=="number")return w(VZ(Y,Z,_));return Y==="=="?["exactLength"]:Y[0]===">"?["minLength"]:["maxLength"]}if(X.extends(T.intrinsic.Date))return Y==="=="?["after","before"]:Y[0]===">"?["after"]:["before"];return w(eX(X.expression))},uQ=(Y)=>({rule:s_(Y.limit)?t_(Y.limit):Y.limit,exclusive:Y.comparator.length===1}),dQ=(Y,Z)=>{let X=Y.unsetRoot(),_=Y.scanner.location;Y.parseOperand();let G=Y.unsetRoot(),$=Y.scanner.sliceChars(_,Y.scanner.location);if(Y.root=X,!G.hasKind("unit")||typeof G.unit!=="number"&&!(G.unit instanceof Date))return Y.error(VZ(Z,$,"right"));let W=G.unit,H=Z.length===1,Q=QG(Z,typeof W==="number"?W:$,X,"right");for(let U of Q)Y.constrainRoot(U,Z==="=="?{rule:W}:{rule:W,exclusive:H});if(!Y.branches.leftBound)return;if(!y0(Z,_G))return Y.error(G6(Z));let J=QG(Y.branches.leftBound.comparator,Y.branches.leftBound.limit,X,"left");Y.constrainRoot(J[0],uQ(Y.branches.leftBound)),Y.branches.leftBound=null},VZ=(Y,Z,X)=>`Comparator ${X==="left"?Q2[Y]:Y} must be ${X==="left"?"preceded":"followed"} by a corresponding literal (was ${Z})`;var FG=(Y)=>{Y.scanner.shiftUntilNonWhitespace();let Z=Y.scanner.shiftUntilNextTerminator();Y.root=Y.root.brand(Z)};var OG=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator(),X=vX(Z,{errorOnFail:EG(Z)});if(X===0)Y.error(EG(0));Y.root=Y.root.constrain("divisor",X)},EG=(Y)=>`% operator must be followed by a non-zero integer literal (was ${Y})`;var DZ=(Y)=>{let Z=Y.scanner.shift();return Z===""?Y.finalize(""):Z==="["?Y.scanner.shift()==="]"?Y.setRoot(Y.root.array()):Y.error(cQ):Z==="|"?Y.scanner.lookahead===">"?Y.shiftedByOne().pushRootToBranch("|>"):Y.pushRootToBranch(Z):Z==="&"?Y.pushRootToBranch(Z):Z===")"?Y.finalizeGroup():_4.lookaheadIsFinalizing(Z,Y.scanner.unscanned)?Y.finalize(Z):y0(Z,zG)?UG(Y,Z):Z==="%"?OG(Y):Z==="#"?FG(Y):(Z in O4)?DZ(Y):Y.error($6(Z))},$6=(Y,Z="")=>`'${Y}' is not allowed here${Z&&` (should be ${Z})`}`,cQ="Missing expected ']'";var VG=(Y)=>{let Z=Y.unsetRoot();Y.parseOperand();let X=Y.unsetRoot();if(!X.hasKind("unit"))return Y.error(lQ(X.expression));let _=X.unit instanceof Date?()=>new Date(X.unit):X.unit;return[Z,"=",_]},lQ=(Y)=>`Default value '${Y}' must a literal value`;var LZ=(Y,Z)=>{let X=Z.$.maybeResolveRoot(Y);if(X)return X;if(Y.endsWith("[]")){let $=Z.$.maybeResolveRoot(Y.slice(0,-2));if($)return $.array()}let _=new U2(new _4(Y),Z),G=oQ(_);if(_.finalizer===">")w($6(">"));return G},oQ=(Y)=>{Y.parseOperand();let Z=Z8(Y).root;if(!Z)return _0(`Root was unexpectedly unset after parsing string '${Y.scanner.scanned}'`);if(Y.finalizer==="=")Z=VG(Y);else if(Y.finalizer==="?")Z=[Z,"?"];if(Y.scanner.shiftUntilNonWhitespace(),Y.scanner.lookahead)w($6(Y.scanner.lookahead));return Z},Z8=(Y)=>{while(Y.finalizer===void 0)iQ(Y);return Y},iQ=(Y)=>Y.hasRoot()?Y.parseOperator():Y.parseOperand();class U2{root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(Y,Z){this.scanner=Y,this.ctx=Z}error(Y){return w(Y)}hasRoot(){return this.root!==void 0}setRoot(Y){this.root=Y}unsetRoot(){let Y=this.root;return this.root=void 0,Y}constrainRoot(...Y){this.root=this.root.constrain(Y[0],Y[1])}finalize(Y){if(this.groups.length)return this.error(_6(")"));this.finalizeBranches(),this.finalizer=Y}reduceLeftBound(Y,Z){let X=Q2[Z];if(!y0(X,XG))return this.error(G6(Z));if(this.branches.leftBound)return this.error(WG(this.branches.leftBound.limit,this.branches.leftBound.comparator,Y,X));this.branches.leftBound={comparator:X,limit:Y}}finalizeBranches(){if(this.assertRangeUnset(),this.branches.pipe){this.pushRootToBranch("|>"),this.root=this.branches.pipe;return}if(this.branches.union){this.pushRootToBranch("|"),this.root=this.branches.union;return}if(this.branches.intersection){this.pushRootToBranch("&"),this.root=this.branches.intersection;return}this.applyPrefixes()}finalizeGroup(){this.finalizeBranches();let Y=this.groups.pop();if(!Y)return this.error(GG(this.scanner.unscanned));this.branches=Y}addPrefix(Y){this.branches.prefixes.push(Y)}applyPrefixes(){while(this.branches.prefixes.length){let Y=this.branches.prefixes.pop();this.root=Y==="keyof"?this.root.keyof():_0(`Unexpected prefix '${Y}'`)}}pushRootToBranch(Y){this.assertRangeUnset(),this.applyPrefixes();let Z=this.root;if(this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd(Z)??Z,Y==="&")return;if(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,Y==="|")return;this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null}parseUntilFinalizer(){return Z8(new U2(this.scanner,this.ctx))}parseOperator(){return DZ(this)}parseOperand(){return OZ(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error($G(this.branches.leftBound.limit,this.branches.leftBound.comparator))}reduceGroupOpen(){this.groups.push(this.branches),this.branches={prefixes:[],leftBound:null,union:null,intersection:null,pipe:null}}previousOperator(){return this.branches.leftBound?.comparator??this.branches.prefixes.at(-1)??(this.branches.intersection?"&":this.branches.union?"|":this.branches.pipe?"|>":void 0)}shiftedByOne(){return this.scanner.shift(),this}}var rQ="An empty string is not a valid generic parameter name",W6=(Y,Z,X)=>{Y.shiftUntilNonWhitespace();let _=Y.shiftUntilNextTerminator();if(_===""){if(Y.lookahead===""&&Z.length)return Z;return w(rQ)}return Y.shiftUntilNonWhitespace(),nQ(Y,_,Z,X)},DG="extends ",nQ=(Y,Z,X,_)=>{if(Y.shiftUntilNonWhitespace(),Y.unscanned.startsWith(DG))Y.jumpForward(DG.length);else{if(Y.lookahead===",")Y.shift();return X.push(Z),W6(Y,X,_)}let G=Z8(new U2(Y,_));return X.push([Z,G.root]),W6(Y,X,_)};class MZ extends x1{$;constructor(Y){super((...Z)=>new X8(Y)(...Z),{bind:Y});this.$=Y}in(Y){return new X8(this.$,Y===void 0?void 0:this.$.parse(Y))}at(Y,Z){return new X8(this.$).at(Y,Z)}case(Y,Z){return new X8(this.$).case(Y,Z)}}class X8 extends x1{$;in;key;branches=[];constructor(Y,Z){super((X)=>this.caseEntries(Object.entries(X).map(([_,G])=>_==="default"?[_,G]:[this.$.parse(_),G])));this.$=Y,this.in=Z}at(Y,Z){if(this.key)w(tQ);if(this.branches.length)w(sQ);return this.key=Y,Z?this.match(Z):this}case(Y,Z){return this.caseEntry(this.$.parse(Y),Z)}caseEntry(Y,Z){let _=(this.key?this.$.parse({[this.key]:Y}):Y).pipe(Z);return this.branches.push(_),this}match(Y){return this(Y)}strings(Y){return this.caseEntries(Object.entries(Y).map(([Z,X])=>Z==="default"?[Z,X]:[this.$.node("unit",{unit:Z}),X]))}caseEntries(Y){for(let Z=0;Z<Y.length;Z++){let[X,_]=Y[Z];if(X==="default"){if(Z!==Y.length-1)w("default may only be specified as the last key of a switch definition");return this.default(_)}if(typeof _!=="function")return w(`Value for case "${X}" must be a function (was ${b0(_)})`);this.caseEntry(X,_)}return this}default(Y){if(typeof Y==="function")this.case(d.unknown,Y);let Z={branches:this.branches,ordered:!0};if(Y==="never"||Y==="assert")Z.meta={onFail:LG};let X=this.$.node("union",Z);if(!this.in)return this.$.finalize(X);let _=this.in.pipe(X);if(Y==="never"||Y==="assert")_=_.configureReferences({onFail:LG},"self");return this.$.finalize(_)}}var LG=(Y)=>Y.throw(),sQ="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",tQ="At most one key matcher may be specified per expression";var H6=(Y,Z)=>{if(E0(Y)){if(Y[1]==="=")return[Z.$.parseOwnDefinitionFormat(Y[0],Z),"=",Y[2]];if(Y[1]==="?")return[Z.$.parseOwnDefinitionFormat(Y[0],Z),"?"]}return J6(Y,Z)},MG="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",AG="Only required keys may specify default values, e.g. { value: 'number = 0' }";var wG=(Y,Z)=>{let X,_={},G=j4(Y);for(let[W,H]of G){let Q=YU(W);if(Q.kind==="spread"){if(!u1(_))return w(eQ);let L=Z.$.parseOwnDefinitionFormat(H,Z);if(L.equals(d.object))continue;if(!L.hasKind("intersection")||!L.basis?.equals(d.object))return w(ZU(L.expression));X=L.structure;continue}if(Q.kind==="undeclared"){if(H!=="reject"&&H!=="delete"&&H!=="ignore")w(aQ(H));_.undeclared=H;continue}let J=H6(H,Z),U=Q;if(Q.kind==="required"){if(!E0(J))AZ(_,"required",{key:Q.normalized,value:J},Z);else AZ(_,"optional",J[1]==="="?{key:Q.normalized,value:J[0],default:J[2]}:{key:Q.normalized,value:J[0]},Z);continue}if(E0(J)){if(J[1]==="?")w(MG);if(J[1]==="=")w(AG)}if(Q.kind==="optional"){AZ(_,"optional",{key:Q.normalized,value:J},Z);continue}let E=Z.$.parseOwnDefinitionFormat(U.normalized,Z),V=a8(E,J,Z.$);if(V.index)_.index=Z0(_.index,V.index);if(V.required)_.required=Z0(_.required,V.required)}let $=Z.$.node("structure",_);return Z.$.parseSchema({domain:"object",structure:X?.merge($)??$})},AZ=(Y,Z,X,_)=>{Y[Z]=Z0(Y[Z],_.$.node(Z,X))},aQ=(Y)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${r(Y)})`,eQ="Spread operator may only be used as the first key in an object",YU=(Y)=>typeof Y==="symbol"?{kind:"required",normalized:Y}:Y.at(-1)==="?"?Y.at(-2)===f2?{kind:"required",normalized:`${Y.slice(0,-2)}?`}:{kind:"optional",normalized:Y.slice(0,-1)}:Y[0]==="["&&Y.at(-1)==="]"?{kind:"index",normalized:Y.slice(1,-1)}:Y[0]===f2&&Y[1]==="["&&Y.at(-1)==="]"?{kind:"required",normalized:Y.slice(1)}:Y==="..."?{kind:"spread"}:Y==="+"?{kind:"undeclared"}:{kind:"required",normalized:Y==="\\..."?"...":Y==="\\+"?"+":Y},ZU=(Y)=>`Spread operand must resolve to an object literal type (was ${Y})`;var NG=(Y,Z)=>zU(Y)?BG[Y[0]](Y,Z):QU(Y)?KG[Y[1]](Y,Z):null,XU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[1],Z).keyof(),wZ=(Y,Z)=>{if(Y[2]===void 0)return w(EZ(Y[1],""));let X=Z.$.parseOwnDefinitionFormat(Y[0],Z),_=Z.$.parseOwnDefinitionFormat(Y[2],Z);if(Y[1]==="|")return Z.$.node("union",{branches:[X,_]});let G=Y[1]==="&"?F1(X,_,Z.$):c2(X,_,Z.$);if(G instanceof P)return G.throw();return G},_U=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).array(),GU=(Y,Z)=>{if(typeof Y[2]!=="function")return w(IG("=>",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).pipe(Y[2])},IG=(Y,Z)=>`${Y===":"?"Narrow":"Morph"} expression requires a function following '${Y}' (was ${typeof Z})`,$U=(Y,Z)=>{if(typeof Y[2]!=="function")return w(IG(":",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).constrain("predicate",Y[2])},WU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).configureReferences(Y[2],"shallow"),TG=(Y)=>Y,HU=TG({"[]":_U,"?":()=>w(Z6)}),JU=TG({"|":wZ,"&":wZ,":":$U,"=>":GU,"|>":wZ,"@":WU,"=":()=>w(X6)}),KG={...HU,...JU},QU=(Y)=>KG[Y[1]]!==void 0,UU=(Y)=>Y,BG=UU({keyof:XU,instanceof:(Y,Z)=>{if(typeof Y[1]!=="function")return w(RG(v2(Y[1])));let X=Y.slice(1).map((_)=>typeof _==="function"?Z.$.node("proto",{proto:_}):w(RG(v2(_))));return X.length===1?X[0]:Z.$.node("union",{branches:X})},"===":(Y,Z)=>Z.$.units(Y.slice(1))}),zU=(Y)=>BG[Y[0]]!==void 0,RG=(Y)=>`Expected a constructor following 'instanceof' operator (was ${Y})`;var jG=(Y,Z)=>{let X=[{}],_=0;while(_<Y.length){let G=!1;if(Y[_]==="..."&&_<Y.length-1)G=!0,_++;let $=H6(Y[_],Z),[W,H,Q]=!E0($)?[$]:$;if(_++,G){if(!W.extends(T.intrinsic.Array))return w(OU(W.expression));X=X.flatMap((J)=>W.distribute((U)=>EU(m8(J),U)))}else X=X.map((J)=>{if(H==="?")return SG(J,W);if(H==="=")return FU(J,W,Q);return RZ(J,W)})}return Z.$.parseSchema(X.map((G)=>u1(G)?{proto:Array,exactLength:0}:{proto:Array,sequence:G}))},RZ=(Y,Z)=>{if(Y.defaultables||Y.optionals)return w(Y.variadic?aY:VU);if(Y.variadic)Y.postfix=Z0(Y.postfix,Z);else Y.prefix=Z0(Y.prefix,Z);return Y},SG=(Y,Z)=>{if(Y.variadic)return w(PG);return Y.optionals=Z0(Y.optionals,Z),Y},FU=(Y,Z,X)=>{if(Y.variadic)return w(PG);if(Y.optionals)return w(DU);return Y.defaultables=Z0(Y.defaultables,[[Z,X]]),Y},CG=(Y,Z)=>{if(Y.postfix)w(qG);if(Y.variadic){if(!Y.variadic.equals(Z))w(qG)}else Y.variadic=Z.internal;return Y},EU=(Y,Z)=>{let X=Z.select({method:"find",kind:"sequence"});if(!X)return CG(Y,T.intrinsic.unknown);if(X.prefix)for(let _ of X.prefix)RZ(Y,_);if(X.optionals)for(let _ of X.optionals)SG(Y,_);if(X.variadic)CG(Y,X.variadic);if(X.postfix)for(let _ of X.postfix)RZ(Y,_);return Y},OU=(Y)=>`Spread element must be an array (was ${Y})`,qG="A tuple may have at most one variadic element",VU="A required element may not follow an optional element",PG="An optional element may not follow a variadic element";var DU="A defaultable element may not follow an optional element without a default";var LU={},J6=(Y,Z)=>{if(typeof Y==="string"){if(Z.args&&Object.keys(Z.args).some((_)=>Y.includes(_)))return LZ(Y,Z);let X=LU[Z.$.name]??={};return X[Y]??=LZ(Y,Z)}return J1(Y,"object")?MU(Y,Z):w(NZ(b0(Y)))},MU=(Y,Z)=>{let X=P2(Y);switch(X){case void 0:if(g(Y,"root"))return Y;return wG(Y,Z);case"Array":return AU(Y,Z);case"RegExp":return Z.$.node("intersection",{domain:"string",pattern:Y},{prereduced:!0});case"Function":{let _=E4(Y)?Y():Y;if(g(_,"root"))return _;return w(NZ("Function"))}default:return w(NZ(X??r(Y)))}},AU=(Y,Z)=>NG(Y,Z)??jG(Y,Z),NZ=(Y)=>`Type definitions must be strings or objects (was ${Y})`;class IZ extends x1{constructor(Y){let Z=Object.assign({errors:U1,hkt:s0,$:Y,raw:Y.parse,module:Y.constructor.module,scope:Y.constructor.scope,define:Y.define,match:Y.match,generic:Y.generic,schema:Y.schema,keywords:Y.ambient,unit:Y.unit,enumerated:Y.enumerated,instanceOf:Y.instanceOf,valueOf:Y.valueOf,or:Y.or,and:Y.and,merge:Y.merge,pipe:Y.pipe},Y.ambientAttachments);super((...X)=>{if(X.length===1)return Y.parse(X[0]);if(X.length===2&&typeof X[0]==="string"&&X[0][0]==="<"&&X[0].at(-1)===">"){let _=X[0].slice(1,-1),G=Y.parseGenericParams(_,{});return new M4(G,X[1],Y,Y,null)}return Y.parse(X)},{bind:Y,attach:Z})}}var z2=T;class Q6 extends e8{get ambientAttachments(){if(!z2.typeAttachments)return;return this.cacheGetter("ambientAttachments",i(z2.typeAttachments,(Y,Z)=>[Y,this.bindReference(Z)]))}preparseOwnAliasEntry(Y,Z){let X=Y.indexOf("<");if(X===-1){if(g(Z,"module")||g(Z,"generic"))return[Y,Z];let $=this.name==="ark"?Y:Y==="root"?this.name:`${this.name}.${Y}`,W=this.resolvedConfig.keywords?.[$];if(W)Z=[Z,"@",W];return[Y,Z]}if(Y.at(-1)!==">")w("'>' must be the last character of a generic declaration in a scope");let _=Y.slice(0,X),G=Y.slice(X+1,-1);return[_,()=>{let $=this.parseGenericParams(G,{alias:_});return sX($,Z,this)}]}parseGenericParams(Y,Z){return W6(new _4(Y),[],this.createParseContext({...Z,def:Y,prefix:"generic"}))}normalizeRootScopeValue(Y){if(E4(Y)&&!g(Y,"generic"))return Y();return Y}preparseOwnDefinitionFormat(Y,Z){return{...Z,def:Y,prefix:Z.alias??"type"}}parseOwnDefinitionFormat(Y,Z){if(!(Z.alias&&(Z.alias in this.aliases))&&!Z.args)Z.args={this:Z.id};let _=J6(Y,Z);if(E0(_)){if(_[1]==="=")return w(X6);if(_[1]==="?")return w(Z6)}return _}unit=(Y)=>this.units([Y]);valueOf=(Y)=>this.units(DX(Y));enumerated=(...Y)=>this.units(Y);instanceOf=(Y)=>this.node("proto",{proto:Y},{prereduced:!0});or=(...Y)=>this.schema(Y.map((Z)=>this.parse(Z)));and=(...Y)=>Y.reduce((Z,X)=>Z.and(this.parse(X)),this.intrinsic.unknown);merge=(...Y)=>Y.reduce((Z,X)=>Z.merge(this.parse(X)),this.intrinsic.object);pipe=(...Y)=>this.intrinsic.unknown.pipe(...Y);match=new MZ(this);declare=()=>({type:this.type});define(Y){return Y}type=new IZ(this);static scope=(Y,Z={})=>new Q6(Y,Z);static module=(Y,Z={})=>this.scope(Y,Z).export()}var TZ=Object.assign(Q6.scope,{define:(Y)=>Y}),Y0=Q6;class vG extends s0{description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var wU=B1(["base",d.object],["props",d.object])((Y)=>Y.base.merge(Y.props),vG),xG=Y0.module({Key:d.key,Merge:wU});class fG extends s0{}var RU=B1("element")((Y)=>{let Z=Y.element.exclude(d.Array),X=Z.array();return Z.rawOr(X).pipe(F4).distribute((_)=>_.assertHasKind("morph").declareOut(X),H0)},fG),hG=Y0.module({root:d.Array,readonly:"root",index:d.nonNegativeIntegerString,liftFrom:RU},{name:"Array"});var KZ=H0(["string",P4.FileConstructor]),NU=KZ.rawOr(KZ.array()),kG=H0({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:NU}}),bG=Y0.module({root:["instanceof",FormData],value:KZ,parsed:kG,parse:H0({in:FormData,morphs:(Y)=>{let Z={};for(let[X,_]of Y)if(X in Z){let G=Z[X];if(typeof G==="string"||G instanceof P4.FileConstructor)Z[X]=[G,_];else G.push(_)}else Z[X]=_;return Z},declaredOut:kG})},{name:"FormData"});var yG=Y0.module({Int8:["instanceof",Int8Array],Uint8:["instanceof",Uint8Array],Uint8Clamped:["instanceof",Uint8ClampedArray],Int16:["instanceof",Int16Array],Uint16:["instanceof",Uint16Array],Int32:["instanceof",Int32Array],Uint32:["instanceof",Uint32Array],Float32:["instanceof",Float32Array],Float64:["instanceof",Float64Array],BigInt64:["instanceof",BigInt64Array],BigUint64:["instanceof",BigUint64Array]},{name:"TypedArray"});var IU={Boolean:1,Number:1,String:1},gG=Y0.module({...i({...zY,...EY},(Y,Z)=>(Y in IU)?[]:[Y,["instanceof",Z]]),Array:hG,TypedArray:yG,FormData:bG});var TU=H0({domain:{domain:"number",meta:"a number representing a Unix timestamp"},divisor:{rule:1,meta:"an integer representing a Unix timestamp"},min:{rule:-8640000000000000,meta:"a Unix timestamp after -8640000000000000"},max:{rule:8640000000000000,meta:"a Unix timestamp before 8640000000000000"},meta:"an integer representing a safe Unix timestamp"}),KU=H0({domain:"number",divisor:1}),U6=Y0.module({root:d.number,integer:KU,epoch:TU,safe:H0({domain:{domain:"number",numberAllowsNaN:!1},min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER}),NaN:["===",Number.NaN],Infinity:["===",Number.POSITIVE_INFINITY],NegativeInfinity:["===",Number.NEGATIVE_INFINITY]},{name:"number"});var I0=(Y,Z,X)=>{let _={domain:"string",pattern:{rule:Y.source,flags:Y.flags,meta:Z}};if(X)_.meta={format:X};return J2("intersection",_)},pG=I0(h2,"a well-formed integer string"),aG=Y0.module({root:pG,parse:H0({in:pG,morphs:(Y,Z)=>{let X=Number.parseInt(Y);return Number.isSafeInteger(X)?X:Z.error("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")},declaredOut:d.integer})},{name:"string.integer"}),BU=I0(/^[\dA-Fa-f]+$/,"hex characters only"),CU=Y0.module({root:I0(/^(?:[\d+/A-Za-z]{4})*(?:[\d+/A-Za-z]{2}==|[\d+/A-Za-z]{3}=)?$/,"base64-encoded"),url:I0(/^(?:[\w-]{4})*(?:[\w-]{2}(?:==|%3D%3D)?|[\w-]{3}(?:=|%3D)?)?$/,"base64url-encoded")},{name:"string.base64"}),mG=I0(/^[A-Z].*$/,"capitalized"),qU=Y0.module({root:H0({in:"string",morphs:(Y)=>Y.charAt(0).toUpperCase()+Y.slice(1),declaredOut:mG}),preformatted:mG},{name:"string.capitalize"}),jU=(Y)=>{let Z=Y.replaceAll(/[ -]+/g,""),X=0,_,G,$=!1;for(let W=Z.length-1;W>=0;W--){if(_=Z.substring(W,W+1),G=Number.parseInt(_,10),$)G*=2,X+=G>=10?G%10+1:G;else X+=G;$=!$}return!!(X%10===0?Z:!1)},SU=/^(?:4\d{12}(?:\d{3,6})?|5[1-5]\d{14}|(222[1-9]|22[3-9]\d|2[3-6]\d{2}|27[01]\d|2720)\d{12}|6(?:011|5\d\d)\d{12,15}|3[47]\d{13}|3(?:0[0-5]|[68]\d)\d{11}|(?:2131|1800|35\d{3})\d{11}|6[27]\d{14}|^(81\d{14,17}))$/,PU=H0({domain:"string",pattern:{meta:"a credit card number",rule:SU.source},predicate:{meta:"a credit card number",predicate:jU}});var vU=/^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))(T((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([,.]\d+(?!:))?)?(\17[0-5]\d([,.]\d+)?)?([Zz]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;var xU=(Y)=>!Number.isNaN(new Date(Y).valueOf()),uG=H0({domain:"string",predicate:{meta:"a parsable date",predicate:xU}}).assertHasKind("intersection"),dG=aG.root.internal.narrow((Y,Z)=>{let X=Number.parseInt(Y),_=U6.epoch(X);if(_ instanceof U1)return Z.errors.merge(_),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),fU=Y0.module({root:dG,parse:H0({in:dG,morphs:(Y)=>new Date(Y),declaredOut:d.Date})},{name:"string.date.epoch"}),cG=I0(vU,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),hU=Y0.module({root:cG,parse:H0({in:cG,morphs:(Y)=>new Date(Y),declaredOut:d.Date})},{name:"string.date.iso"}),kU=Y0.module({root:uG,parse:H0({declaredIn:uG,in:"string",morphs:(Y,Z)=>{let X=new Date(Y);if(Number.isNaN(X.valueOf()))return Z.error("a parsable date");return X},declaredOut:d.Date}),iso:hU,epoch:fU},{name:"string.date"}),bU=I0(/^[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z]{2,}$/,"an email address","email"),lG="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",A4=`(${lG}[.]){3}${lG}`,yU=new RegExp(`^${A4}$`),v0="(?:[0-9a-fA-F]{1,4})",gU=new RegExp(`^((?:${v0}:){7}(?:${v0}|:)|(?:${v0}:){6}(?:${A4}|:${v0}|:)|(?:${v0}:){5}(?::${A4}|(:${v0}){1,2}|:)|(?:${v0}:){4}(?:(:${v0}){0,1}:${A4}|(:${v0}){1,3}|:)|(?:${v0}:){3}(?:(:${v0}){0,2}:${A4}|(:${v0}){1,4}|:)|(?:${v0}:){2}(?:(:${v0}){0,3}:${A4}|(:${v0}){1,5}|:)|(?:${v0}:){1}(?:(:${v0}){0,4}:${A4}|(:${v0}){1,6}|:)|(?::((?::${v0}){0,5}:${A4}|(?::${v0}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),pU=Y0.module({root:["v4 | v6","@","an IP address"],v4:I0(yU,"an IPv4 address","ipv4"),v6:I0(gU,"an IPv6 address","ipv6")},{name:"string.ip"}),F2="a JSON string",eG=(Y)=>{if(!(Y instanceof SyntaxError))throw Y;return`must be ${F2} (${Y})`},mU=H0({meta:F2,domain:"string",predicate:{meta:F2,predicate:(Y,Z)=>{try{return JSON.parse(Y),!0}catch(X){return Z.reject({code:"predicate",expected:F2,problem:eG(X)})}}}}),uU=(Y,Z)=>{if(Y.length===0)return Z.error({code:"predicate",expected:F2,actual:"empty"});try{return JSON.parse(Y)}catch(X){return Z.error({code:"predicate",expected:F2,problem:eG(X)})}},dU=Y0.module({root:mU,parse:H0({meta:"safe JSON string parser",in:"string",morphs:uU,declaredOut:d.jsonObject})},{name:"string.json"}),oG=I0(/^[a-z]*$/,"only lowercase letters"),cU=Y0.module({root:H0({in:"string",morphs:(Y)=>Y.toLowerCase(),declaredOut:oG}),preformatted:oG},{name:"string.lower"}),Y9=["NFC","NFD","NFKC","NFKD"],_8=i(Y9,(Y,Z)=>[Z,H0({domain:"string",predicate:(X)=>X.normalize(Z)===X,meta:`${Z}-normalized unicode`})]),z6=i(Y9,(Y,Z)=>[Z,H0({in:"string",morphs:(X)=>X.normalize(Z),declaredOut:_8[Z]})]),lU=Y0.module({root:z6.NFC,preformatted:_8.NFC},{name:"string.normalize.NFC"}),oU=Y0.module({root:z6.NFD,preformatted:_8.NFD},{name:"string.normalize.NFD"}),iU=Y0.module({root:z6.NFKC,preformatted:_8.NFKC},{name:"string.normalize.NFKC"}),rU=Y0.module({root:z6.NFKD,preformatted:_8.NFKD},{name:"string.normalize.NFKD"}),nU=Y0.module({root:"NFC",NFC:lU,NFD:oU,NFKC:iU,NFKD:rU},{name:"string.normalize"}),iG=I0(y8,"a well-formed numeric string"),sU=Y0.module({root:iG,parse:H0({in:iG,morphs:(Y)=>Number.parseFloat(Y),declaredOut:d.number})},{name:"string.numeric"}),rG="a regex pattern",tU=H0({domain:"string",predicate:{meta:rG,predicate:(Y,Z)=>{try{return new RegExp(Y),!0}catch(X){return Z.reject({code:"predicate",expected:rG,problem:String(X)})}}},meta:{format:"regex"}}),aU=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[A-Za-z-][\dA-Za-z-]*)(?:\.(?:0|[1-9]\d*|\d*[A-Za-z-][\dA-Za-z-]*))*))?(?:\+([\dA-Za-z-]+(?:\.[\dA-Za-z-]+)*))?$/,eU=I0(aU,"a semantic version (see https://semver.org/)"),nG=I0(/^\S.*\S$|^\S?$/,"trimmed"),Yz=Y0.module({root:H0({in:"string",morphs:(Y)=>Y.trim(),declaredOut:nG}),preformatted:nG},{name:"string.trim"}),sG=I0(/^[A-Z]*$/,"only uppercase letters"),Zz=Y0.module({root:H0({in:"string",morphs:(Y)=>Y.toUpperCase(),declaredOut:sG}),preformatted:sG},{name:"string.upper"}),Xz=(Y)=>{if(URL.canParse)return URL.canParse(Y);try{return new URL(Y),!0}catch{return!1}},tG=H0({domain:"string",predicate:{meta:"a URL string",predicate:Xz},meta:{format:"uri"}}),_z=Y0.module({root:tG,parse:H0({declaredIn:tG,in:"string",morphs:(Y,Z)=>{try{return new URL(Y)}catch{return Z.error("a URL string")}},declaredOut:H0(URL)})},{name:"string.url"}),Gz=Y0.module({root:["versioned | nil | max","@",{description:"a UUID",format:"uuid"}],"#nil":"'00000000-0000-0000-0000-000000000000'","#max":"'ffffffff-ffff-ffff-ffff-ffffffffffff'","#versioned":/[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}/i,v1:I0(/^[\da-f]{8}-[\da-f]{4}-1[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv1"),v2:I0(/^[\da-f]{8}-[\da-f]{4}-2[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv2"),v3:I0(/^[\da-f]{8}-[\da-f]{4}-3[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv3"),v4:I0(/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv4"),v5:I0(/^[\da-f]{8}-[\da-f]{4}-5[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv5"),v6:I0(/^[\da-f]{8}-[\da-f]{4}-6[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv6"),v7:I0(/^[\da-f]{8}-[\da-f]{4}-7[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv7"),v8:I0(/^[\da-f]{8}-[\da-f]{4}-8[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv8")},{name:"string.uuid"}),Z9=Y0.module({root:d.string,alpha:I0(/^[A-Za-z]*$/,"only letters"),alphanumeric:I0(/^[\dA-Za-z]*$/,"only letters and digits 0-9"),hex:BU,base64:CU,capitalize:qU,creditCard:PU,date:kU,digits:I0(/^\d*$/,"only digits 0-9"),email:bU,integer:aG,ip:pU,json:dU,lower:cU,normalize:nU,numeric:sU,regex:tU,semver:eU,trim:Yz,upper:Zz,url:_z,uuid:Gz},{name:"string"});var X9=Y0.module({bigint:d.bigint,boolean:d.boolean,false:d.false,never:d.never,null:d.null,number:d.number,object:d.object,string:d.string,symbol:d.symbol,true:d.true,unknown:d.unknown,undefined:d.undefined}),_9=Y0.module({root:d.unknown,any:d.unknown},{name:"unknown"}),$z=Y0.module({root:d.jsonObject,stringify:J2("morph",{in:d.jsonObject,morphs:(Y)=>JSON.stringify(Y),declaredOut:d.string})},{name:"object.json"}),G9=Y0.module({root:d.object,json:$z},{name:"object"});class $9 extends s0{description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var Wz=B1(["K",d.key],"V")((Y)=>({domain:"object",index:{signature:Y.K,value:Y.V}}),$9);class W9 extends s0{description='pick a set of properties from an object like `Pick(User, "name | age")`'}var Hz=B1(["T",d.object],["K",d.key])((Y)=>Y.T.pick(Y.K),W9);class H9 extends s0{description='omit a set of properties from an object like `Omit(User, "age")`'}var Jz=B1(["T",d.object],["K",d.key])((Y)=>Y.T.omit(Y.K),H9);class J9 extends s0{description="make all named properties of an object optional like `Partial(User)`"}var Qz=B1(["T",d.object])((Y)=>Y.T.partial(),J9);class Q9 extends s0{description="make all named properties of an object required like `Required(User)`"}var Uz=B1(["T",d.object])((Y)=>Y.T.required(),Q9);class U9 extends s0{description='exclude branches of a union like `Exclude("boolean", "true")`'}var zz=B1("T","U")((Y)=>Y.T.exclude(Y.U),U9);class z9 extends s0{description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var Fz=B1("T","U")((Y)=>Y.T.extract(Y.U),z9),F9=Y0.module({Exclude:zz,Extract:Fz,Omit:Jz,Partial:Qz,Pick:Hz,Record:Wz,Required:Uz});var w4=TZ({...X9,...F9,...gG,...xG,string:Z9,number:U6,object:G9,unknown:_9},{prereducedAliases:!0,name:"ark"}),g0=w4.export();Object.assign(z2.ambient,g0);z2.typeAttachments={string:g0.string.root,number:g0.number.root,bigint:g0.bigint,boolean:g0.boolean,symbol:g0.symbol,undefined:g0.undefined,null:g0.null,object:g0.object.root,unknown:g0.unknown.root,false:g0.false,true:g0.true,never:g0.never,arrayIndex:g0.Array.index,Key:g0.Key,Record:g0.Record,Array:g0.Array.root,Date:g0.Date};var E1=Object.assign(w4.type,z2.typeAttachments),Ez=w4.match,Oz=w4.generic,sI=w4.schema,Vz=w4.define,Dz=w4.declare;var O1=(Y)=>JSON.parse(Y),U0=(Y)=>JSON.stringify(Y),FT=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];function E2(Y){return V6(o0.STORE,Y,void 0)}function G8(Y){return D2(o0.STORE,Y)}function CZ(...Y){if(Y.length===2)return c1(o0.STORE,...Y);return c1(o0.STORE,...Y)}function F6(Y,Z){return R9(o0.STORE,Y,Z)}function E9(Y){return I9(Y,o0.STORE)}var BZ=(Y)=>(Z,X,_,G,...$)=>{console[Y](`${Z} ${X} "${_}" ${G}`,...$)},Lz={error:BZ("error"),info:BZ("info"),warn:BZ("warn")},O9=class{logLevel;filter;logger;constructor(Y,Z,X=Lz){this.logLevel=Y,this.filter=Z,this.logger=X}error=(...Y)=>{if(this.logLevel!==null){let Z=this.filter?.(...Y)??!0;if(Z===!0)this.logger.error(...Y);else if(Z)this.logger.error(...Z)}};info=(...Y)=>{if(this.logLevel==="info"){let Z=this.filter?.(...Y)??!0;if(Z===!0)this.logger.info(...Y);else if(Z)this.logger.info(...Z)}};warn=(...Y)=>{if(this.logLevel!=="error"&&this.logLevel!==null){let Z=this.filter?.(...Y)??!0;if(Z===!0)this.logger.warn(...Y);else if(Z)this.logger.warn(...Z)}}};var Mz=class{store;constructor(Y=o0.STORE){this.store=Y,L9("root",Y)}allocate(Y,Z,X){return O2(this.store,Y,Z,X)}fuse(Y,Z,X){return M9(this.store,Y,Z,X)}deallocate(Y){V2(this.store,Y)}claim(Y,Z,X){return W8(this.store,Y,Z,X)}},V9=class{store;realm;constructor(Y=o0.STORE){this.store=Y,this.realm=new Mz(Y)}allocate(Y,Z,X){O2(this.store,Y,Z,X)}deallocate(Y){V2(this.store,Y)}claim(Y,Z,X){W8(this.store,Y,Z,X)}};function E6(Y){return SZ(o0.STORE,Y)}function $8(Y){return jZ(o0.STORE,Y)}var G4=class Y extends Set{mode="record";subject=new W0;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(Z,X=0){super(Z);if(Z instanceof Y)this.parent=Z,this.cacheUpdateNumber=Z.cacheUpdateNumber;if(X)this.cacheLimit=X,this.cache=new Array(X),this.subscribe("auto cache",(_)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=_})}view(){return this}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(Z){let X=new Y(Z.members,Z.cacheLimit);return X.cache=Z.cache,X.cacheIdx=Z.cacheIdx,X.cacheUpdateNumber=Z.cacheUpdateNumber,X}add(Z){let X=super.add(Z);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${U0(Z)}`);return X}clear(){let Z=this.mode==="record"?[...this]:null;if(super.clear(),Z)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(Z)}`)}delete(Z){let X=super.delete(Z);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${U0(Z)}`);return X}parent=null;child=null;transactionUpdates=null;transaction(Z){this.mode="transaction",this.transactionUpdates=[],this.child=new Y(this);let X=this.child._subscribe("transaction",(_)=>{this.transactionUpdates?.push(_)});try{if(Z(this.child)){for(let G of this.transactionUpdates)this.doStep(G);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(_){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",_),_}finally{X(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(Z,X){return this.subject.subscribe(Z,X)}subscribe(Z,X){return this.subject.subscribe(Z,(_)=>{X(`${this.cacheUpdateNumber}=${_}`)})}emit(Z){this.subject.next(Z)}doStep(Z){let X=Z.indexOf(":"),_=Z.substring(0,X),G=Z.substring(X+1);switch(_){case"add":this.add(JSON.parse(G));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(G));break;case"tx":for(let $ of G.split(";"))this.doStep($)}}getUpdateNumber(Z){let X=Z.indexOf("=");return Number(Z.substring(0,X))}do(Z){let X=Z.indexOf("="),_=Number(Z.substring(0,X)),G=_-this.cacheUpdateNumber;if(G>0){if(G===1){this.mode="playback";let W=Z.substring(X+1);return this.doStep(W),this.mode="record",this.cacheUpdateNumber=_,null}return this.cacheUpdateNumber+1}if(Math.abs(G)<this.cacheLimit){let W=this.cacheIdx+G;if(this.cache[W]===Z)return null;this.mode="playback";let Q=!1;while(!Q){this.cacheIdx%=this.cacheLimit;let U=this.cache[this.cacheIdx];if(this.cacheIdx--,!U)return"OUT_OF_RANGE";this.undo(U),Q=this.cacheIdx===W-1}let J=Z.substring(X+1);return this.doStep(J),this.mode="record",this.cacheUpdateNumber=_,null}return"OUT_OF_RANGE"}undoStep(Z){let X=Z.indexOf(":"),_=Z.substring(0,X),G=Z.substring(X+1);switch(_){case"add":this.delete(JSON.parse(G));break;case"del":this.add(JSON.parse(G));break;case"clear":{let $=JSON.parse(G);for(let W of $)this.add(W);break}case"tx":{let $=G.split(";");for(let W=$.length-1;W>=0;W--)this.undoStep($[W])}}}undo(Z){let X=Z.indexOf("=");if(Number(Z.substring(0,X))===this.cacheUpdateNumber){this.mode="playback";let G=Z.substring(X+1);return this.undoStep(G),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}};function D9(Y=Math.random){return Y().toString(36).slice(2)}function o(Y){while(Y.child!==null)Y=Y.child;return Y}var wz=class Y{_buffer;_index=0;constructor(Z){let X;if(typeof Z==="number")X=Z;else X=Z.length;this._buffer=Array.from({length:X})}get buffer(){return this._buffer}get index(){return this._index}add(Z){this._buffer[this._index]=Z,this._index=(this._index+1)%this._buffer.length}copy(){let Z=new Y([...this._buffer]);return Z._index=this._index,Z}},Rz={atom_family:"atom",molecule_family:"molecule",mutable_atom_family:"mutable_atom",readonly_held_selector_family:"readonly_held_selector",readonly_pure_selector_family:"readonly_pure_selector",writable_held_selector_family:"writable_held_selector",writable_pure_selector_family:"writable_pure_selector"};function Nz(Y,Z){let X=U0(Z),_=`${Y.key}(${X})`,G=Rz[Y.type],$={key:_,type:G};return Object.assign($,{family:{key:Y.key,subKey:X}}),Object.assign($,{counterfeit:!0}),$}function $4(Y){let Z={key:Y.key,type:Y.type};if("family"in Y)Z.family=Y.family;return Z}var _1=class{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(Y,Z)=>`${Y}:${Z}`;warn;getRelatedKeys(Y){return this.relations.get(Y)}addRelation(Y,Z){let X=this.relations.get(Y),_=this.relations.get(Z);if(X)X.add(Z);else X=new Set([Z]),this.relations.set(Y,X);if(_)_.add(Y);else _=new Set([Y]),this.relations.set(Z,_)}deleteRelation(Y,Z){let X=this.relations.get(Y);if(X){if(X.delete(Z),X.size===0)this.relations.delete(Y);let _=this.relations.get(Z);if(_){if(_.delete(Y),_.size===0)this.relations.delete(Z)}}}replaceRelationsUnsafely(Y,Z){this.relations.set(Y,new Set(Z));for(let X of Z){let _=new Set().add(Y);this.relations.set(X,_)}}replaceRelationsSafely(Y,Z){let X=this.relations.get(Y),_=this.isAType?.(Y)?Y:void 0,G=_===void 0?Y:void 0;if(X)for(let $ of X){_??=$,G??=$;let W=this.relations.get($);if(W){if(W.size===1)this.relations.delete($);else W.delete(Y);this.contents.delete(this.makeContentKey(_,G))}}this.relations.set(Y,new Set(Z));for(let $ of Z){let W=this.relations.get($);if(W)W.add(Y);else W=new Set().add(Y),this.relations.set($,W)}}getContentInternal(Y){return this.contents.get(Y)}setContent(Y,Z){this.contents.set(Y,Z)}deleteContent(Y){this.contents.delete(Y)}constructor(Y,Z){if(this.a=Y.between[0],this.b=Y.between[1],this.cardinality=Y.cardinality,!Z?.externalStore)this.relations=new Map(Y.relations?.map(([X,_])=>[X,new Set(_)])),this.contents=new Map(Y.contents);if(this.isAType=Z?.isAType??null,this.isBType=Z?.isBType??null,this.isContent=Z?.isContent??null,Z?.makeContentKey)this.makeContentKey=Z.makeContentKey;if(Z?.externalStore){let X=Z.externalStore;if(this.has=(_,G)=>X.has(_,G),this.addRelation=(_,G)=>{X.addRelation(_,G)},this.deleteRelation=(_,G)=>{X.deleteRelation(_,G)},this.replaceRelationsSafely=(_,G)=>{X.replaceRelationsSafely(_,G)},this.replaceRelationsUnsafely=(_,G)=>{X.replaceRelationsUnsafely(_,G)},this.getRelatedKeys=(_)=>X.getRelatedKeys(_),X.getContent)this.getContentInternal=(_)=>{return X.getContent(_)},this.setContent=(_,G)=>{X.setContent(_,G)},this.deleteContent=(_)=>{X.deleteContent(_)};for(let[_,G]of Y.relations??[]){let $=this.isAType?.(_)?_:void 0,W=$===void 0?_:void 0;for(let H of G)$??=H,W??=H,this.addRelation($,W)}for(let[_,G]of Y.contents??[])this.setContent(_,G)}if(Z?.warn)this.warn=Z.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([Y,Z])=>[Y,[...Z]]),contents:[...this.contents.entries()]}}set(...Y){let Z,X,_;switch(Y.length){case 1:{let G=Y[0];Z=G[this.a],X=G[this.b],_=void 0;break}case 2:{let G=Y[0];if(typeof G==="string")[Z,X]=Y;else Z=G[this.a],X=G[this.b],_=Y[1];break}default:Z=Y[0],X=Y[1],_=Y[2];break}switch(this.cardinality){case"1:1":{let G=this.getRelatedKey(Z);if(G&&G!==X)this.delete(Z,G)}case"1:n":{let G=this.getRelatedKey(X);if(G&&G!==Z)this.delete(G,X)}break;case"n:n":}if(_){let G=this.makeContentKey(Z,X);this.setContent(G,_)}return this.addRelation(Z,X),this}delete(Y,Z){Z=typeof Z==="string"?Z:Y[this.b];let X=typeof Y==="string"?Y:Y[this.a];if(X===void 0&&typeof Z==="string"){let _=this.getRelatedKeys(Z);if(_)for(let G of _)this.delete(G,Z)}if(typeof X==="string"&&Z===void 0){let _=this.getRelatedKeys(X);if(_)for(let G of _)this.delete(X,G)}if(typeof X==="string"&&typeof Z==="string"){this.deleteRelation(X,Z);let _=this.makeContentKey(X,Z);this.deleteContent(_)}return this}getRelatedKey(Y){let Z=this.getRelatedKeys(Y);if(Z){if(Z.size>1)this.warn?.(`${Z.size} related keys were found for key "${Y}": (${[...Z].map((_)=>`"${_}"`).join(", ")}). Only one related key was expected.`);let X;for(let _ of Z){X=_;break}return X}}replaceRelations(Y,Z,X){let _=!Array.isArray(Z),G=_?Object.keys(Z):Z;if(X?.reckless)this.replaceRelationsUnsafely(Y,G);else this.replaceRelationsSafely(Y,G);if(_)for(let $ of G){let W=this.makeContentKey(Y,$),H=Z[$];this.setContent(W,H)}return this}getContent(Y,Z){let X=this.makeContentKey(Y,Z);return this.getContentInternal(X)}getRelationEntries(Y){let Z=Y[this.a],X=Y[this.b];if(Z!==void 0&&X===void 0){let _=this.getRelatedKeys(Z);if(_)return[..._].map((G)=>{return[G,this.getContent(Z,G)]})}if(Z===void 0&&X!==void 0){let _=this.getRelatedKeys(X);if(_)return[..._].map((G)=>{return[G,this.getContent(G,X)]})}return[]}has(Y,Z){if(Z)return this.getRelatedKeys(Y)?.has(Z)??!1;return this.relations.has(Y)}},W0=class{Subscriber;subscribers=new Map;subscribe(Y,Z){return this.subscribers.set(Y,Z),()=>{this.unsubscribe(Y)}}unsubscribe(Y){this.subscribers.delete(Y)}next(Y){let Z=this.subscribers.values();for(let X of Z)X(Y)}},Iz=class extends W0{state;constructor(Y){super();this.state=Y}next(Y){this.state=Y,super.next(Y)}},Tz=(Y,Z)=>{let X=o(Y);if(X.operation.open)return X.operation.prev.get(Z.key);return X.valueMap.get(Z.key)},vZ=class extends Promise{fate;resolve;reject;done=!1;constructor(Y){let Z,X;super((_,G)=>{Z=_,X=G});this.resolve=Z,this.reject=X,this.use(Y instanceof Promise?Y:new Promise(Y))}pass(Y,Z){if(Y===this.fate)this.resolve(Z),this.done=!0}fail(Y,Z){if(Y===this.fate)this.reject(Z),this.done=!0}use(Y){if(this===Y)return;if(Y instanceof Promise){let Z=Y;this.fate=Z,Z.then((X)=>{this.pass(Z,X)},(X)=>{this.fail(Z,X)})}else this.resolve(Y),this.fate=void 0}};function R4(Y){return"epoch"in Y.transactionMeta}function G1(Y){return"phase"in Y.transactionMeta}var q9=(Y,Z)=>{if(Y.operation.open){let X=performance.now();return Y.logger.info("\u2757",Z.type,Z.key,`deferring setState at T-${X} until setState for "${Y.operation.token.key}" is done`),X}Y.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:Z},Y.logger.info("\u2B55",Z.type,Z.key,`operation start in store "${Y.config.name}"${!G1(Y)?"":` ${Y.transactionMeta.phase} "${Y.transactionMeta.update.key}"`}`)},j9=(Y)=>{if(Y.operation.open)Y.logger.info("\uD83D\uDD34",Y.operation.token.type,Y.operation.token.key,`operation done in store "${Y.config.name}"`);Y.operation={open:!1},Y.on.operationClose.next(Y.operation)},S9=(Y,Z)=>{if(!Y.operation.open)return Y.logger.error("\uD83D\uDC1E","unknown",Z,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return Y.operation.done.has(Z)},U8=(Y,Z)=>{if(!Y.operation.open){Y.logger.error("\uD83D\uDC1E","unknown",Z,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}Y.operation.done.add(Z)};function xZ(Y,Z){let X=o(Y),{key:_,type:G}=Z,$=X.selectorAtoms.getRelatedKeys(_);if(X.logger.info("\uD83E\uDDF9",G,_,$?`evicting ${$.size} states downstream:`:"no downstream states",$??"to evict"),$){if(X.operation.open)X.logger.info("\uD83E\uDDF9",G,_,`[ ${[...X.operation.done].join(", ")} ] already done`);for(let W of $){if(S9(X,W))continue;v9(X,W),U8(X,W)}}}function P9(Y,Z){let X=o(Y),_=X.selectorGraph.getRelationEntries({upstreamSelectorKey:Z}).filter(([G,{source:$}])=>$===Z);for(let[G]of _){if(S9(X,G))continue;v9(X,G),U8(X,G),P9(Y,G)}}function o1(Y,Z,X){let{key:_,subject:G,type:$}=Z,W=Y.valueMap.get(_);if(W instanceof vZ&&!W.done){let H=W;if(X instanceof Promise)return H.use(X),H;return Y.valueMap.set(_,X),X}if(X instanceof Promise){let H=new vZ(X);return Y.valueMap.set(_,H),H.then(function Q(J){if(Y.valueMap.get(_)===H){switch(q9(Y,Z),o1(Y,Z,J),$){case"atom":case"mutable_atom":xZ(Y,Z);break;case"readonly_held_selector":case"readonly_pure_selector":case"writable_held_selector":case"writable_pure_selector":P9(Y,_);break}j9(Y),G.next({newValue:J,oldValue:H})}}).catch((Q)=>{Y.logger.error("\uD83D\uDCA5","state",_,"rejected:",Q)}),H}return Y.valueMap.set(_,X),X}function Kz(Y,Z,X){Y.logger.info("\uD83D\uDCD6",Z.type,Z.key,"reading cached value");let _=Y.valueMap.get(Z.key);if(X==="mut"&&Z.type==="mutable_atom"&&G1(Y)){let $=Z,{parent:W}=Y;if(Y.valueMap.hasOwn($.key))return _;let H=W.valueMap.get($.key);Y.logger.info("\uD83D\uDCC3","atom",$.key,"copying");let Q=H.toJSON(),J=$.class.fromJSON(Q);Y.valueMap.set($.key,J),new uZ($,W),_=J}return _}function v9(Y,Z){let X=Y.valueMap.get(Z);if(X instanceof vZ){let _=Y.writableSelectors.get(Z)??Y.readonlySelectors.get(Z);if(_)_.get();return}if(Y.operation.open)Y.operation.prev.set(Z,X);Y.valueMap.delete(Z),Y.logger.info("\uD83D\uDDD1","state",Z,"evicted")}function L2(Y,Z,X){if(Y.valueMap.has(Z.key))return Kz(Y,Z,X);let{key:_}=Z;switch(Z.type){case"readonly_held_selector":case"readonly_pure_selector":case"writable_held_selector":case"writable_pure_selector":return Y.logger.info("\uD83E\uDDEE",Z.type,_,"computing value"),Z.get();case"atom":{let G;if(Z.default instanceof Function)G=Z.default();else G=Z.default;let $=o1(Y,Z,G);return Y.logger.info("\uD83D\uDC81","atom",Z.key,"could not find cached value; using default",G),$}case"mutable_atom":{let G=new Z.class,$=o1(Y,Z,G);return Y.logger.info("\uD83D\uDC81","mutable_atom",Z.key,"could not find cached value; using default",G),$}}}var hZ=(Y)=>(Z)=>Y instanceof Function?Y(Z):Y;function Bz(Y,Z){if("internalRoles"in Y===!1)return!1;return Y.internalRoles.includes(Z)}var Cz=(Y,Z,X)=>{switch(Z.type){case"mutable_atom":Y.logger.info("\uD83D\uDCE2",Z.type,Z.key,"is now (",X.newValue,") subscribers:",Z.subject.subscribers);break;case"atom":case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":Y.logger.info("\uD83D\uDCE2",Z.type,Z.key,"went (",X.oldValue,"->",X.newValue,") subscribers:",Z.subject.subscribers)}Z.subject.next(X)},fZ=(Y,Z,X)=>{let _=L2(Y,Z,"mut"),G=hZ(X)(_);Y.logger.info("\uD83D\uDCDD","atom",Z.key,"set to",G),G=o1(Y,Z,G),U8(Y,Z.key),xZ(Y,Z);let $={oldValue:_,newValue:G};if(!G1(Y)){Cz(Y,Z,$);return}if(Y.on.transactionApplying.state===null){let{key:W}=Z;if(ez($.newValue))return;let H={type:"atom_update",key:W,...$};if(Z.family)H.family=Z.family;Y.transactionMeta.update.updates.push(H),Y.logger.info("\uD83D\uDCC1","atom",W,"stowed (",$.oldValue,"->",$.newValue,")")}else if(Bz(Z,"tracker:signal")){let W=Z.key.slice(1),H=Y.atoms.get(W);if(L2(Y,H,"mut").do($.newValue)===null===!0)xZ(Y,H)}};function T9(Y,Z){switch(Z.type){case"mutable_atom":fZ(Y,Z,new Z.class);return;case"atom":{let X=Z.default;if(X instanceof Function)X=X();fZ(Y,Z,X)}}}function qz(Y,Z){switch(Z.type){case"atom":case"mutable_atom":T9(Y,Z);break;case"writable_pure_selector":case"writable_held_selector":{let X=L6(Y,Z.key);for(let _ of X.values())T9(Y,_)}break}}function jz(Y,Z){if(Z.family){let X=Y.families.get(Z.family.key);if(X)return X}}var x9=(Y,Z,X)=>{switch(Z.type){case"atom":case"mutable_atom":fZ(Y,Z,X);break;case"writable_pure_selector":case"writable_held_selector":Z.set(X);break}};function w1(Y,...Z){let X,_,G,$;if(Z.length===2){if(X=Z[0],$=Z[1],X.family)_=jz(Y,X),G=O1(X.family.subKey),X=Q0(Y,_,G)}else _=Z[0],G=Z[1],$=Z[2],X=Q0(Y,_,G);let W=$===D6?"reset":"set";if("counterfeit"in X&&"family"in X){let J=X.family.subKey,U=Y.disposalTraces.buffer.find((E)=>E?.key===J);Y.logger.error("\u274C",X.type,X.key,"could not be",W,`because it was not found in the store "${Y.config.name}".`,U?`This state was previously disposed:
|
|
47
|
+
`)+"}");class e8{config;resolvedConfig;name;get[Z1](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(Y,Z){if(this.config=m2(T.config,Z),this.resolvedConfig=m2(T.resolvedConfig,Z),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(XZ).length}`,this.name in XZ)w(`A Scope already named ${this.name} already exists`);XZ[this.name]=this;let X=Object.entries(Y).map((_)=>this.preparseOwnAliasEntry(..._));for(let[_,G]of X){let $=_;if(_[0]==="#"){if($=_.slice(1),$ in this.aliases)w(y_($));this.aliases[$]=G}else{if($ in this.aliases)w(y_(_));this.aliases[$]=G,this.exportedNames.push($)}if(!g(G,"module")&&!g(G,"generic")&&!E4(G)){let W=this.preparseOwnDefinitionFormat(G,{alias:$});this.resolutions[$]=g(W,"root")?this.bindReference(W):this.createParseContext(W).id}}g_??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[g_.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=T.intrinsic?i(T.intrinsic,(_,G)=>_.startsWith("json")?[]:[_,this.bindReference(G)]):{}}cacheGetter(Y,Z){return Object.defineProperty(this,Y,{value:Z}),Z}get internal(){return this}_json;get json(){if(!this._json)this.export();return this._json}defineSchema(Y){return Y}generic=(...Y)=>{let Z=this;return(X,_)=>new M4(Y,_?new l8(X):X,Z,Z,_??null)};units=(Y,Z)=>{let X=[];for(let G of Y)if(!X.includes(G))X.push(G);let _=X.map((G)=>this.node("unit",{unit:G},Z));return this.node("union",_,{...Z,prereduced:!0})};lazyResolutions=[];lazilyResolve(Y,Z){let X=this.node("alias",{reference:Z??"synthetic",resolve:Y},{prereduced:!0});if(!this.resolved)this.lazyResolutions.push(X);return X}schema=(Y,Z)=>this.finalize(this.parseSchema(Y,Z));parseSchema=(Y,Z)=>this.node(l2(Y),Y,Z);preparseNode(Y,Z,X){let _=typeof Y==="string"?Y:l2(Z,Y);if(L0(Z)&&Z.kind===_)return Z;if(_==="alias"&&!X?.prereduced){let{reference:W}=t2.implementation.normalize(Z,this);if(W.startsWith("$")){let H=this.resolveRoot(W.slice(1));Z=H,_=H.kind}}else if(_==="union"&&J1(Z,"object")){let W=BQ(Z);if(W?.length===1)Z=W[0],_=l2(Z)}if(L0(Z)&&Z.kind===_)return Z;let $=G2[_].normalize?.(Z,this)??Z;if(L0($))return $.kind===_?$:CQ(_,$.kind);return{...X,$:this,kind:_,def:$,prefix:X.alias??_}}bindReference(Y){let Z;if(L0(Y))Z=Y.$===this?Y:new Y.constructor(Y.attachments,this);else Z=Y.$===this?Y:new M4(Y.params,Y.bodyDef,Y.$,this,Y.hkt);if(!this.resolved)Object.assign(this.referencesById,Z.referencesById);return Z}resolveRoot(Y){return this.maybeResolveRoot(Y)??w($Z(Y))}maybeResolveRoot(Y){let Z=this.maybeResolve(Y);if(g(Z,"generic"))return;return Z}maybeResolveSubalias(Y){return _Z(this.aliases,Y)??_Z(this.ambient,Y)}get ambient(){return T.ambient}maybeResolve(Y){let Z=this.resolutions[Y];if(Z){if(typeof Z!=="string")return this.bindReference(Z);let _=X1[Z];if(g(_,"root"))return this.resolutions[Y]=_;if(g(_,"context")){if(_.phase==="resolving")return this.node("alias",{reference:`$${Y}`},{prereduced:!0});if(_.phase==="resolved")return _0(`Unexpected resolved context for was uncached by its scope: ${r(_)}`);_.phase="resolving";let G=this.bindReference(this.parseOwnDefinitionFormat(_.def,_));return _.phase="resolved",X1[G.id]=G,X1[_.id]=G,this.resolutions[Y]=G}return _0(`Unexpected nodesById entry for ${Z}: ${r(_)}`)}let X=this.aliases[Y]??this.ambient?.[Y];if(!X)return this.maybeResolveSubalias(Y);if(X=this.normalizeRootScopeValue(X),g(X,"generic"))return this.resolutions[Y]=this.bindReference(X);if(g(X,"module")){if(!X.root)w(o_(Y));return this.resolutions[Y]=this.bindReference(X.root)}return this.resolutions[Y]=this.parse(X,{alias:Y})}createParseContext(Y){let Z=Y.id??gY(Y.prefix);return X1[Z]=Object.assign(Y,{[Z1]:"context",$:this,id:Z,phase:"unresolved"})}traversal(Y){return new f1(Y,this.resolvedConfig)}import(...Y){return new H2(i(this.export(...Y),(Z,X)=>[`#${Z}`,X]))}precompilation;_exportedResolutions;_exports;export(...Y){if(!this._exports){this._exports={};for(let X of this.exportedNames){let _=this.aliases[X];this._exports[X]=g(_,"module")?ZZ(_,this):p_(this.maybeResolve(X))}for(let X of this.lazyResolutions)X.resolution;if(this._exportedResolutions=l_(this,this._exports),this._json=c_(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let X=d_(this.references);this.precompilation=X.write(m_,4),u_(this.references,X)}this.resolved=!0}let Z=Y.length?Y:this.exportedNames;return new H2(i(Z,(X,_)=>[_,this._exports[_]]))}resolve(Y){return this.export()[Y]}node=(Y,Z,X={})=>{let _=this.preparseNode(Y,Z,X);if(L0(_))return this.bindReference(_);let G=this.createParseContext(_),$=pY(G),W=this.bindReference($);return X1[G.id]=W};parse=(Y,Z={})=>this.finalize(this.parseDefinition(Y,Z));parseDefinition(Y,Z={}){if(g(Y,"root"))return this.bindReference(Y);let X=this.preparseOwnDefinitionFormat(Y,Z);if(g(X,"root"))return this.bindReference(X);let _=this.createParseContext(X);X1[_.id]=_;let G=this.bindReference(this.parseOwnDefinitionFormat(Y,_));if(G.isCyclic)G=F_(G,_.id);return X1[_.id]=G,G}finalize(Y){if(p_(Y),!Y.precompilation&&!this.resolvedConfig.jitless)qQ(Y.references);return Y}}class GZ extends e8{parseOwnDefinitionFormat(Y,Z){return pY(Z)}preparseOwnDefinitionFormat(Y,Z){return this.preparseNode(l2(Y),Y,Z)}preparseOwnAliasEntry(Y,Z){return[Y,Z]}normalizeRootScopeValue(Y){return Y}}var p_=(Y)=>{let Z=Y.references.filter((X)=>X.hasKind("alias"));for(let X of Z){Object.assign(X.referencesById,X.resolution.referencesById);for(let _ of Y.references)if(X.id in _.referencesById)Object.assign(_.referencesById,X.referencesById)}return Y},c_=(Y)=>i(Y,(Z,X)=>[Z,g(X,"root")||g(X,"generic")?X.json:g(X,"module")?c_(X):_0(`Unexpected resolution ${r(X)}`)]),_Z=(Y,Z)=>{let X=Z.indexOf(".");if(X===-1)return;let _=Z.slice(0,X),G=Y[_];if(G===void 0)return;if(!g(G,"module"))return w(jQ(_));let $=Z.slice(X+1),W=G[$];if(W===void 0)return _Z(G,$);if(g(W,"root")||g(W,"generic"))return W;if(g(W,"module"))return W.root??w(o_(Z));_0(`Unexpected resolution for alias '${Z}': ${r(W)}`)},Y6=(Y,Z)=>new GZ(Y,Z),Y8=new GZ({});var l_=(Y,Z)=>{let X={};for(let _ in Z){let G=Z[_];if(g(G,"module")){let $=l_(Y,G),W=i($,(H,Q)=>[`${_}.${H}`,Q]);Object.assign(X,W)}else if(g(G,"root")||g(G,"generic"))X[_]=G;else _0(`Unexpected scope resolution ${r(G)}`)}return X},$Z=(Y)=>`'${Y}' is unresolvable`,jQ=(Y)=>`'${Y}' must reference a module to be accessed using dot syntax`,o_=(Y)=>`Reference to submodule '${Y}' must specify an alias`;Y8.export();var{schema:H0,node:J2,defineSchema:Kw,generic:B1}=Y8;var WZ="^(?:0|[1-9]\\d*)$",SQ=new RegExp(WZ),qw=C0(SQ);var i_=Y6({bigint:"bigint",boolean:[{unit:!1},{unit:!0}],false:{unit:!1},never:[],null:{unit:null},number:"number",object:"object",string:"string",symbol:"symbol",true:{unit:!0},unknown:{},undefined:{unit:void 0},Array,Date},{prereducedAliases:!0}).export();T.intrinsic={...i_};var r_=Y6({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:WZ}},{prereducedAliases:!0}).export();Object.assign(T.intrinsic,r_);var PQ=Y6({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),d={...i_,...r_,...PQ,emptyStructure:J2("structure",{},{prereduced:!0})};T.intrinsic={...d};var s_=(Y)=>typeof Y==="string"&&Y[0]==="d"&&(Y[1]==="'"||Y[1]==='"')&&Y.at(-1)===Y[1],n_=(Y)=>Y.toString()!=="Invalid Date",t_=(Y)=>Y.slice(2,-1),HZ=(Y)=>`'${Y}' could not be parsed by the Date constructor`,a_=(Y,Z)=>vQ(Y,Z),vQ=(Y,Z)=>{let X=new Date(Y);if(n_(X))return X;let _=SX(Y);if(_!==void 0){let G=new Date(_);if(n_(G))return G}return Z?w(Z===!0?HZ(Y):Z):void 0};var JZ=(Y,Z)=>{let X=Y.scanner.shiftUntil(xQ[YG[Z]]);if(Y.scanner.lookahead==="")return Y.error(hQ(X,Z));if(Y.scanner.shift(),Z==="/"){try{new RegExp(X)}catch(_){w(String(_))}Y.root=Y.ctx.$.node("intersection",{domain:"string",pattern:X},{prereduced:!0})}else if(y0(Z,QZ))Y.root=Y.ctx.$.node("unit",{unit:X});else{let _=a_(X,HZ(X));Y.root=Y.ctx.$.node("unit",{meta:X,unit:_})}},QZ={"'":1,'"':1},e_={"/":1,"'":1,'"':1},YG={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},xQ={"'":(Y)=>Y.lookahead==="'",'"':(Y)=>Y.lookahead==='"',"/":(Y)=>Y.lookahead==="/"},fQ={'"':"double-quote","'":"single-quote","/":"forward slash"},hQ=(Y,Z)=>`${Z}${Y} requires a closing ${fQ[YG[Z]]}`;var ZG=(Y)=>`Private type references should not include '#'. Use '${Y}' instead.`,Z6="Optional definitions like 'string?' are only valid as properties in an object or tuple",X6="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var XG={">":!0,">=":!0},_G={"<":!0,"<=":!0};var Q2={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},GG=(Y)=>`Unmatched )${Y===""?"":` before ${Y}`}`,_6=(Y)=>`Missing ${Y}`,$G=(Y,Z)=>`Left bounds are only valid when paired with right bounds (try ...${Z}${Y})`,G6=(Y)=>`Left-bounded expressions must specify their limits using < or <= (was ${Y})`,WG=(Y,Z,X,_)=>`An expression may have at most one left bound (parsed ${Y}${Q2[Z]}, ${X}${Q2[_]})`;var HG=(Y,Z,X)=>JG(Y,Z,X,[]),JG=(Y,Z,X,_)=>{let G=X.parseUntilFinalizer();if(_.push(G.root),G.finalizer===">"){if(_.length!==Z.params.length)return X.error(UZ(Y,Z.names,_.map(($)=>$.expression)));return _}if(G.finalizer===",")return JG(Y,Z,X,_);return G.error(_6(">"))},UZ=(Y,Z,X)=>`${Y}<${Z.join(", ")}> requires exactly ${Z.length} args (got ${X.length}${X.length===0?"":`: ${X.join(", ")}`})`;var zZ=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator();if(Z==="keyof")Y.addPrefix("keyof");else Y.root=bQ(Y,Z)},kQ=(Y,Z,X)=>{if(X.scanner.shiftUntilNonWhitespace(),X.scanner.shift()!=="<")return X.error(UZ(Y,Z.names,[]));let G=HG(Y,Z,X);return Z(...G)},bQ=(Y,Z)=>yQ(Y,Z)??gQ(Y,Z)??Y.error(Z===""?Y.scanner.lookahead==="#"?ZG(Y.shiftedByOne().scanner.shiftUntilNextTerminator()):FZ(Y):$Z(Z)),yQ=(Y,Z)=>{if(Y.ctx.args?.[Z]){let _=Y.ctx.args[Z];if(typeof _!=="string")return _;return Y.ctx.$.node("alias",{reference:_},{prereduced:!0})}let X=Y.ctx.$.maybeResolve(Z);if(g(X,"root"))return X;if(X===void 0)return;if(g(X,"generic"))return kQ(Z,X,Y);return w(`Unexpected resolution ${r(X)}`)},gQ=(Y,Z)=>{let X=PX(Z);if(X!==void 0)return Y.ctx.$.node("unit",{unit:X});let _=xX(Z);if(_!==void 0)return Y.ctx.$.node("unit",{unit:_})},FZ=(Y)=>{let Z=Y.previousOperator();return Z?EZ(Z,Y.scanner.unscanned):pQ(Y.scanner.unscanned)},EZ=(Y,Z="")=>`Token '${Y}' requires a right operand${Z?` before '${Z}'`:""}`,pQ=(Y)=>`Expected an expression${Y?` before '${Y}'`:""}`;var OZ=(Y)=>Y.scanner.lookahead===""?Y.error(FZ(Y)):Y.scanner.lookahead==="("?Y.shiftedByOne().reduceGroupOpen():Y.scanner.lookaheadIsIn(e_)?JZ(Y,Y.scanner.shift()):Y.scanner.lookaheadIsIn(O4)?OZ(Y.shiftedByOne()):Y.scanner.lookahead==="d"?Y.scanner.nextLookahead in QZ?JZ(Y,`${Y.scanner.shift()}${Y.scanner.shift()}`):zZ(Y):zZ(Y);class _4 extends AY{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>(this.lookahead in _4.terminatingChars))}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...O4};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(Y,Z)=>Y===">"?Z[0]==="="?Z[1]==="=":Z.trimStart()===""||y0(Z.trimStart()[0],_4.terminatingChars):Y==="="?Z[0]!=="=":Y===","||Y==="?"}var UG=(Y,Z)=>{let X=mQ(Y,Z);if(Y.root.hasKind("unit")){if(typeof Y.root.unit==="number"){Y.reduceLeftBound(Y.root.unit,X),Y.unsetRoot();return}if(Y.root.unit instanceof Date){let _=`d'${Y.root.description??Y.root.unit.toISOString()}'`;Y.unsetRoot(),Y.reduceLeftBound(_,X);return}}return dQ(Y,X)},zG={"<":1,">":1,"=":1},mQ=(Y,Z)=>Y.scanner.lookaheadIs("=")?`${Z}${Y.scanner.shift()}`:Z;var QG=(Y,Z,X,_)=>{if(X.extends(T.intrinsic.number)){if(typeof Z!=="number")return w(VZ(Y,Z,_));return Y==="=="?["min","max"]:Y[0]===">"?["min"]:["max"]}if(X.extends(T.intrinsic.lengthBoundable)){if(typeof Z!=="number")return w(VZ(Y,Z,_));return Y==="=="?["exactLength"]:Y[0]===">"?["minLength"]:["maxLength"]}if(X.extends(T.intrinsic.Date))return Y==="=="?["after","before"]:Y[0]===">"?["after"]:["before"];return w(eX(X.expression))},uQ=(Y)=>({rule:s_(Y.limit)?t_(Y.limit):Y.limit,exclusive:Y.comparator.length===1}),dQ=(Y,Z)=>{let X=Y.unsetRoot(),_=Y.scanner.location;Y.parseOperand();let G=Y.unsetRoot(),$=Y.scanner.sliceChars(_,Y.scanner.location);if(Y.root=X,!G.hasKind("unit")||typeof G.unit!=="number"&&!(G.unit instanceof Date))return Y.error(VZ(Z,$,"right"));let W=G.unit,H=Z.length===1,Q=QG(Z,typeof W==="number"?W:$,X,"right");for(let U of Q)Y.constrainRoot(U,Z==="=="?{rule:W}:{rule:W,exclusive:H});if(!Y.branches.leftBound)return;if(!y0(Z,_G))return Y.error(G6(Z));let J=QG(Y.branches.leftBound.comparator,Y.branches.leftBound.limit,X,"left");Y.constrainRoot(J[0],uQ(Y.branches.leftBound)),Y.branches.leftBound=null},VZ=(Y,Z,X)=>`Comparator ${X==="left"?Q2[Y]:Y} must be ${X==="left"?"preceded":"followed"} by a corresponding literal (was ${Z})`;var FG=(Y)=>{Y.scanner.shiftUntilNonWhitespace();let Z=Y.scanner.shiftUntilNextTerminator();Y.root=Y.root.brand(Z)};var OG=(Y)=>{let Z=Y.scanner.shiftUntilNextTerminator(),X=vX(Z,{errorOnFail:EG(Z)});if(X===0)Y.error(EG(0));Y.root=Y.root.constrain("divisor",X)},EG=(Y)=>`% operator must be followed by a non-zero integer literal (was ${Y})`;var DZ=(Y)=>{let Z=Y.scanner.shift();return Z===""?Y.finalize(""):Z==="["?Y.scanner.shift()==="]"?Y.setRoot(Y.root.array()):Y.error(cQ):Z==="|"?Y.scanner.lookahead===">"?Y.shiftedByOne().pushRootToBranch("|>"):Y.pushRootToBranch(Z):Z==="&"?Y.pushRootToBranch(Z):Z===")"?Y.finalizeGroup():_4.lookaheadIsFinalizing(Z,Y.scanner.unscanned)?Y.finalize(Z):y0(Z,zG)?UG(Y,Z):Z==="%"?OG(Y):Z==="#"?FG(Y):(Z in O4)?DZ(Y):Y.error($6(Z))},$6=(Y,Z="")=>`'${Y}' is not allowed here${Z&&` (should be ${Z})`}`,cQ="Missing expected ']'";var VG=(Y)=>{let Z=Y.unsetRoot();Y.parseOperand();let X=Y.unsetRoot();if(!X.hasKind("unit"))return Y.error(lQ(X.expression));let _=X.unit instanceof Date?()=>new Date(X.unit):X.unit;return[Z,"=",_]},lQ=(Y)=>`Default value '${Y}' must a literal value`;var LZ=(Y,Z)=>{let X=Z.$.maybeResolveRoot(Y);if(X)return X;if(Y.endsWith("[]")){let $=Z.$.maybeResolveRoot(Y.slice(0,-2));if($)return $.array()}let _=new U2(new _4(Y),Z),G=oQ(_);if(_.finalizer===">")w($6(">"));return G},oQ=(Y)=>{Y.parseOperand();let Z=Z8(Y).root;if(!Z)return _0(`Root was unexpectedly unset after parsing string '${Y.scanner.scanned}'`);if(Y.finalizer==="=")Z=VG(Y);else if(Y.finalizer==="?")Z=[Z,"?"];if(Y.scanner.shiftUntilNonWhitespace(),Y.scanner.lookahead)w($6(Y.scanner.lookahead));return Z},Z8=(Y)=>{while(Y.finalizer===void 0)iQ(Y);return Y},iQ=(Y)=>Y.hasRoot()?Y.parseOperator():Y.parseOperand();class U2{root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(Y,Z){this.scanner=Y,this.ctx=Z}error(Y){return w(Y)}hasRoot(){return this.root!==void 0}setRoot(Y){this.root=Y}unsetRoot(){let Y=this.root;return this.root=void 0,Y}constrainRoot(...Y){this.root=this.root.constrain(Y[0],Y[1])}finalize(Y){if(this.groups.length)return this.error(_6(")"));this.finalizeBranches(),this.finalizer=Y}reduceLeftBound(Y,Z){let X=Q2[Z];if(!y0(X,XG))return this.error(G6(Z));if(this.branches.leftBound)return this.error(WG(this.branches.leftBound.limit,this.branches.leftBound.comparator,Y,X));this.branches.leftBound={comparator:X,limit:Y}}finalizeBranches(){if(this.assertRangeUnset(),this.branches.pipe){this.pushRootToBranch("|>"),this.root=this.branches.pipe;return}if(this.branches.union){this.pushRootToBranch("|"),this.root=this.branches.union;return}if(this.branches.intersection){this.pushRootToBranch("&"),this.root=this.branches.intersection;return}this.applyPrefixes()}finalizeGroup(){this.finalizeBranches();let Y=this.groups.pop();if(!Y)return this.error(GG(this.scanner.unscanned));this.branches=Y}addPrefix(Y){this.branches.prefixes.push(Y)}applyPrefixes(){while(this.branches.prefixes.length){let Y=this.branches.prefixes.pop();this.root=Y==="keyof"?this.root.keyof():_0(`Unexpected prefix '${Y}'`)}}pushRootToBranch(Y){this.assertRangeUnset(),this.applyPrefixes();let Z=this.root;if(this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd(Z)??Z,Y==="&")return;if(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,Y==="|")return;this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null}parseUntilFinalizer(){return Z8(new U2(this.scanner,this.ctx))}parseOperator(){return DZ(this)}parseOperand(){return OZ(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error($G(this.branches.leftBound.limit,this.branches.leftBound.comparator))}reduceGroupOpen(){this.groups.push(this.branches),this.branches={prefixes:[],leftBound:null,union:null,intersection:null,pipe:null}}previousOperator(){return this.branches.leftBound?.comparator??this.branches.prefixes.at(-1)??(this.branches.intersection?"&":this.branches.union?"|":this.branches.pipe?"|>":void 0)}shiftedByOne(){return this.scanner.shift(),this}}var rQ="An empty string is not a valid generic parameter name",W6=(Y,Z,X)=>{Y.shiftUntilNonWhitespace();let _=Y.shiftUntilNextTerminator();if(_===""){if(Y.lookahead===""&&Z.length)return Z;return w(rQ)}return Y.shiftUntilNonWhitespace(),nQ(Y,_,Z,X)},DG="extends ",nQ=(Y,Z,X,_)=>{if(Y.shiftUntilNonWhitespace(),Y.unscanned.startsWith(DG))Y.jumpForward(DG.length);else{if(Y.lookahead===",")Y.shift();return X.push(Z),W6(Y,X,_)}let G=Z8(new U2(Y,_));return X.push([Z,G.root]),W6(Y,X,_)};class MZ extends x1{$;constructor(Y){super((...Z)=>new X8(Y)(...Z),{bind:Y});this.$=Y}in(Y){return new X8(this.$,Y===void 0?void 0:this.$.parse(Y))}at(Y,Z){return new X8(this.$).at(Y,Z)}case(Y,Z){return new X8(this.$).case(Y,Z)}}class X8 extends x1{$;in;key;branches=[];constructor(Y,Z){super((X)=>this.caseEntries(Object.entries(X).map(([_,G])=>_==="default"?[_,G]:[this.$.parse(_),G])));this.$=Y,this.in=Z}at(Y,Z){if(this.key)w(tQ);if(this.branches.length)w(sQ);return this.key=Y,Z?this.match(Z):this}case(Y,Z){return this.caseEntry(this.$.parse(Y),Z)}caseEntry(Y,Z){let _=(this.key?this.$.parse({[this.key]:Y}):Y).pipe(Z);return this.branches.push(_),this}match(Y){return this(Y)}strings(Y){return this.caseEntries(Object.entries(Y).map(([Z,X])=>Z==="default"?[Z,X]:[this.$.node("unit",{unit:Z}),X]))}caseEntries(Y){for(let Z=0;Z<Y.length;Z++){let[X,_]=Y[Z];if(X==="default"){if(Z!==Y.length-1)w("default may only be specified as the last key of a switch definition");return this.default(_)}if(typeof _!=="function")return w(`Value for case "${X}" must be a function (was ${b0(_)})`);this.caseEntry(X,_)}return this}default(Y){if(typeof Y==="function")this.case(d.unknown,Y);let Z={branches:this.branches,ordered:!0};if(Y==="never"||Y==="assert")Z.meta={onFail:LG};let X=this.$.node("union",Z);if(!this.in)return this.$.finalize(X);let _=this.in.pipe(X);if(Y==="never"||Y==="assert")_=_.configureReferences({onFail:LG},"self");return this.$.finalize(_)}}var LG=(Y)=>Y.throw(),sQ="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",tQ="At most one key matcher may be specified per expression";var H6=(Y,Z)=>{if(E0(Y)){if(Y[1]==="=")return[Z.$.parseOwnDefinitionFormat(Y[0],Z),"=",Y[2]];if(Y[1]==="?")return[Z.$.parseOwnDefinitionFormat(Y[0],Z),"?"]}return J6(Y,Z)},MG="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",AG="Only required keys may specify default values, e.g. { value: 'number = 0' }";var wG=(Y,Z)=>{let X,_={},G=j4(Y);for(let[W,H]of G){let Q=YU(W);if(Q.kind==="spread"){if(!u1(_))return w(eQ);let L=Z.$.parseOwnDefinitionFormat(H,Z);if(L.equals(d.object))continue;if(!L.hasKind("intersection")||!L.basis?.equals(d.object))return w(ZU(L.expression));X=L.structure;continue}if(Q.kind==="undeclared"){if(H!=="reject"&&H!=="delete"&&H!=="ignore")w(aQ(H));_.undeclared=H;continue}let J=H6(H,Z),U=Q;if(Q.kind==="required"){if(!E0(J))AZ(_,"required",{key:Q.normalized,value:J},Z);else AZ(_,"optional",J[1]==="="?{key:Q.normalized,value:J[0],default:J[2]}:{key:Q.normalized,value:J[0]},Z);continue}if(E0(J)){if(J[1]==="?")w(MG);if(J[1]==="=")w(AG)}if(Q.kind==="optional"){AZ(_,"optional",{key:Q.normalized,value:J},Z);continue}let E=Z.$.parseOwnDefinitionFormat(U.normalized,Z),V=a8(E,J,Z.$);if(V.index)_.index=Z0(_.index,V.index);if(V.required)_.required=Z0(_.required,V.required)}let $=Z.$.node("structure",_);return Z.$.parseSchema({domain:"object",structure:X?.merge($)??$})},AZ=(Y,Z,X,_)=>{Y[Z]=Z0(Y[Z],_.$.node(Z,X))},aQ=(Y)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${r(Y)})`,eQ="Spread operator may only be used as the first key in an object",YU=(Y)=>typeof Y==="symbol"?{kind:"required",normalized:Y}:Y.at(-1)==="?"?Y.at(-2)===f2?{kind:"required",normalized:`${Y.slice(0,-2)}?`}:{kind:"optional",normalized:Y.slice(0,-1)}:Y[0]==="["&&Y.at(-1)==="]"?{kind:"index",normalized:Y.slice(1,-1)}:Y[0]===f2&&Y[1]==="["&&Y.at(-1)==="]"?{kind:"required",normalized:Y.slice(1)}:Y==="..."?{kind:"spread"}:Y==="+"?{kind:"undeclared"}:{kind:"required",normalized:Y==="\\..."?"...":Y==="\\+"?"+":Y},ZU=(Y)=>`Spread operand must resolve to an object literal type (was ${Y})`;var NG=(Y,Z)=>zU(Y)?BG[Y[0]](Y,Z):QU(Y)?KG[Y[1]](Y,Z):null,XU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[1],Z).keyof(),wZ=(Y,Z)=>{if(Y[2]===void 0)return w(EZ(Y[1],""));let X=Z.$.parseOwnDefinitionFormat(Y[0],Z),_=Z.$.parseOwnDefinitionFormat(Y[2],Z);if(Y[1]==="|")return Z.$.node("union",{branches:[X,_]});let G=Y[1]==="&"?F1(X,_,Z.$):c2(X,_,Z.$);if(G instanceof P)return G.throw();return G},_U=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).array(),GU=(Y,Z)=>{if(typeof Y[2]!=="function")return w(IG("=>",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).pipe(Y[2])},IG=(Y,Z)=>`${Y===":"?"Narrow":"Morph"} expression requires a function following '${Y}' (was ${typeof Z})`,$U=(Y,Z)=>{if(typeof Y[2]!=="function")return w(IG(":",Y[2]));return Z.$.parseOwnDefinitionFormat(Y[0],Z).constrain("predicate",Y[2])},WU=(Y,Z)=>Z.$.parseOwnDefinitionFormat(Y[0],Z).configureReferences(Y[2],"shallow"),TG=(Y)=>Y,HU=TG({"[]":_U,"?":()=>w(Z6)}),JU=TG({"|":wZ,"&":wZ,":":$U,"=>":GU,"|>":wZ,"@":WU,"=":()=>w(X6)}),KG={...HU,...JU},QU=(Y)=>KG[Y[1]]!==void 0,UU=(Y)=>Y,BG=UU({keyof:XU,instanceof:(Y,Z)=>{if(typeof Y[1]!=="function")return w(RG(v2(Y[1])));let X=Y.slice(1).map((_)=>typeof _==="function"?Z.$.node("proto",{proto:_}):w(RG(v2(_))));return X.length===1?X[0]:Z.$.node("union",{branches:X})},"===":(Y,Z)=>Z.$.units(Y.slice(1))}),zU=(Y)=>BG[Y[0]]!==void 0,RG=(Y)=>`Expected a constructor following 'instanceof' operator (was ${Y})`;var jG=(Y,Z)=>{let X=[{}],_=0;while(_<Y.length){let G=!1;if(Y[_]==="..."&&_<Y.length-1)G=!0,_++;let $=H6(Y[_],Z),[W,H,Q]=!E0($)?[$]:$;if(_++,G){if(!W.extends(T.intrinsic.Array))return w(OU(W.expression));X=X.flatMap((J)=>W.distribute((U)=>EU(m8(J),U)))}else X=X.map((J)=>{if(H==="?")return SG(J,W);if(H==="=")return FU(J,W,Q);return RZ(J,W)})}return Z.$.parseSchema(X.map((G)=>u1(G)?{proto:Array,exactLength:0}:{proto:Array,sequence:G}))},RZ=(Y,Z)=>{if(Y.defaultables||Y.optionals)return w(Y.variadic?aY:VU);if(Y.variadic)Y.postfix=Z0(Y.postfix,Z);else Y.prefix=Z0(Y.prefix,Z);return Y},SG=(Y,Z)=>{if(Y.variadic)return w(PG);return Y.optionals=Z0(Y.optionals,Z),Y},FU=(Y,Z,X)=>{if(Y.variadic)return w(PG);if(Y.optionals)return w(DU);return Y.defaultables=Z0(Y.defaultables,[[Z,X]]),Y},CG=(Y,Z)=>{if(Y.postfix)w(qG);if(Y.variadic){if(!Y.variadic.equals(Z))w(qG)}else Y.variadic=Z.internal;return Y},EU=(Y,Z)=>{let X=Z.select({method:"find",kind:"sequence"});if(!X)return CG(Y,T.intrinsic.unknown);if(X.prefix)for(let _ of X.prefix)RZ(Y,_);if(X.optionals)for(let _ of X.optionals)SG(Y,_);if(X.variadic)CG(Y,X.variadic);if(X.postfix)for(let _ of X.postfix)RZ(Y,_);return Y},OU=(Y)=>`Spread element must be an array (was ${Y})`,qG="A tuple may have at most one variadic element",VU="A required element may not follow an optional element",PG="An optional element may not follow a variadic element";var DU="A defaultable element may not follow an optional element without a default";var LU={},J6=(Y,Z)=>{if(typeof Y==="string"){if(Z.args&&Object.keys(Z.args).some((_)=>Y.includes(_)))return LZ(Y,Z);let X=LU[Z.$.name]??={};return X[Y]??=LZ(Y,Z)}return J1(Y,"object")?MU(Y,Z):w(NZ(b0(Y)))},MU=(Y,Z)=>{let X=P2(Y);switch(X){case void 0:if(g(Y,"root"))return Y;return wG(Y,Z);case"Array":return AU(Y,Z);case"RegExp":return Z.$.node("intersection",{domain:"string",pattern:Y},{prereduced:!0});case"Function":{let _=E4(Y)?Y():Y;if(g(_,"root"))return _;return w(NZ("Function"))}default:return w(NZ(X??r(Y)))}},AU=(Y,Z)=>NG(Y,Z)??jG(Y,Z),NZ=(Y)=>`Type definitions must be strings or objects (was ${Y})`;class IZ extends x1{constructor(Y){let Z=Object.assign({errors:U1,hkt:s0,$:Y,raw:Y.parse,module:Y.constructor.module,scope:Y.constructor.scope,define:Y.define,match:Y.match,generic:Y.generic,schema:Y.schema,keywords:Y.ambient,unit:Y.unit,enumerated:Y.enumerated,instanceOf:Y.instanceOf,valueOf:Y.valueOf,or:Y.or,and:Y.and,merge:Y.merge,pipe:Y.pipe},Y.ambientAttachments);super((...X)=>{if(X.length===1)return Y.parse(X[0]);if(X.length===2&&typeof X[0]==="string"&&X[0][0]==="<"&&X[0].at(-1)===">"){let _=X[0].slice(1,-1),G=Y.parseGenericParams(_,{});return new M4(G,X[1],Y,Y,null)}return Y.parse(X)},{bind:Y,attach:Z})}}var z2=T;class Q6 extends e8{get ambientAttachments(){if(!z2.typeAttachments)return;return this.cacheGetter("ambientAttachments",i(z2.typeAttachments,(Y,Z)=>[Y,this.bindReference(Z)]))}preparseOwnAliasEntry(Y,Z){let X=Y.indexOf("<");if(X===-1){if(g(Z,"module")||g(Z,"generic"))return[Y,Z];let $=this.name==="ark"?Y:Y==="root"?this.name:`${this.name}.${Y}`,W=this.resolvedConfig.keywords?.[$];if(W)Z=[Z,"@",W];return[Y,Z]}if(Y.at(-1)!==">")w("'>' must be the last character of a generic declaration in a scope");let _=Y.slice(0,X),G=Y.slice(X+1,-1);return[_,()=>{let $=this.parseGenericParams(G,{alias:_});return sX($,Z,this)}]}parseGenericParams(Y,Z){return W6(new _4(Y),[],this.createParseContext({...Z,def:Y,prefix:"generic"}))}normalizeRootScopeValue(Y){if(E4(Y)&&!g(Y,"generic"))return Y();return Y}preparseOwnDefinitionFormat(Y,Z){return{...Z,def:Y,prefix:Z.alias??"type"}}parseOwnDefinitionFormat(Y,Z){if(!(Z.alias&&(Z.alias in this.aliases))&&!Z.args)Z.args={this:Z.id};let _=J6(Y,Z);if(E0(_)){if(_[1]==="=")return w(X6);if(_[1]==="?")return w(Z6)}return _}unit=(Y)=>this.units([Y]);valueOf=(Y)=>this.units(DX(Y));enumerated=(...Y)=>this.units(Y);instanceOf=(Y)=>this.node("proto",{proto:Y},{prereduced:!0});or=(...Y)=>this.schema(Y.map((Z)=>this.parse(Z)));and=(...Y)=>Y.reduce((Z,X)=>Z.and(this.parse(X)),this.intrinsic.unknown);merge=(...Y)=>Y.reduce((Z,X)=>Z.merge(this.parse(X)),this.intrinsic.object);pipe=(...Y)=>this.intrinsic.unknown.pipe(...Y);match=new MZ(this);declare=()=>({type:this.type});define(Y){return Y}type=new IZ(this);static scope=(Y,Z={})=>new Q6(Y,Z);static module=(Y,Z={})=>this.scope(Y,Z).export()}var TZ=Object.assign(Q6.scope,{define:(Y)=>Y}),Y0=Q6;class vG extends s0{description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var wU=B1(["base",d.object],["props",d.object])((Y)=>Y.base.merge(Y.props),vG),xG=Y0.module({Key:d.key,Merge:wU});class fG extends s0{}var RU=B1("element")((Y)=>{let Z=Y.element.exclude(d.Array),X=Z.array();return Z.rawOr(X).pipe(F4).distribute((_)=>_.assertHasKind("morph").declareOut(X),H0)},fG),hG=Y0.module({root:d.Array,readonly:"root",index:d.nonNegativeIntegerString,liftFrom:RU},{name:"Array"});var KZ=H0(["string",P4.FileConstructor]),NU=KZ.rawOr(KZ.array()),kG=H0({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:NU}}),bG=Y0.module({root:["instanceof",FormData],value:KZ,parsed:kG,parse:H0({in:FormData,morphs:(Y)=>{let Z={};for(let[X,_]of Y)if(X in Z){let G=Z[X];if(typeof G==="string"||G instanceof P4.FileConstructor)Z[X]=[G,_];else G.push(_)}else Z[X]=_;return Z},declaredOut:kG})},{name:"FormData"});var yG=Y0.module({Int8:["instanceof",Int8Array],Uint8:["instanceof",Uint8Array],Uint8Clamped:["instanceof",Uint8ClampedArray],Int16:["instanceof",Int16Array],Uint16:["instanceof",Uint16Array],Int32:["instanceof",Int32Array],Uint32:["instanceof",Uint32Array],Float32:["instanceof",Float32Array],Float64:["instanceof",Float64Array],BigInt64:["instanceof",BigInt64Array],BigUint64:["instanceof",BigUint64Array]},{name:"TypedArray"});var IU={Boolean:1,Number:1,String:1},gG=Y0.module({...i({...zY,...EY},(Y,Z)=>(Y in IU)?[]:[Y,["instanceof",Z]]),Array:hG,TypedArray:yG,FormData:bG});var TU=H0({domain:{domain:"number",meta:"a number representing a Unix timestamp"},divisor:{rule:1,meta:"an integer representing a Unix timestamp"},min:{rule:-8640000000000000,meta:"a Unix timestamp after -8640000000000000"},max:{rule:8640000000000000,meta:"a Unix timestamp before 8640000000000000"},meta:"an integer representing a safe Unix timestamp"}),KU=H0({domain:"number",divisor:1}),U6=Y0.module({root:d.number,integer:KU,epoch:TU,safe:H0({domain:{domain:"number",numberAllowsNaN:!1},min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER}),NaN:["===",Number.NaN],Infinity:["===",Number.POSITIVE_INFINITY],NegativeInfinity:["===",Number.NEGATIVE_INFINITY]},{name:"number"});var I0=(Y,Z,X)=>{let _={domain:"string",pattern:{rule:Y.source,flags:Y.flags,meta:Z}};if(X)_.meta={format:X};return J2("intersection",_)},pG=I0(h2,"a well-formed integer string"),aG=Y0.module({root:pG,parse:H0({in:pG,morphs:(Y,Z)=>{let X=Number.parseInt(Y);return Number.isSafeInteger(X)?X:Z.error("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")},declaredOut:d.integer})},{name:"string.integer"}),BU=I0(/^[\dA-Fa-f]+$/,"hex characters only"),CU=Y0.module({root:I0(/^(?:[\d+/A-Za-z]{4})*(?:[\d+/A-Za-z]{2}==|[\d+/A-Za-z]{3}=)?$/,"base64-encoded"),url:I0(/^(?:[\w-]{4})*(?:[\w-]{2}(?:==|%3D%3D)?|[\w-]{3}(?:=|%3D)?)?$/,"base64url-encoded")},{name:"string.base64"}),mG=I0(/^[A-Z].*$/,"capitalized"),qU=Y0.module({root:H0({in:"string",morphs:(Y)=>Y.charAt(0).toUpperCase()+Y.slice(1),declaredOut:mG}),preformatted:mG},{name:"string.capitalize"}),jU=(Y)=>{let Z=Y.replaceAll(/[ -]+/g,""),X=0,_,G,$=!1;for(let W=Z.length-1;W>=0;W--){if(_=Z.substring(W,W+1),G=Number.parseInt(_,10),$)G*=2,X+=G>=10?G%10+1:G;else X+=G;$=!$}return!!(X%10===0?Z:!1)},SU=/^(?:4\d{12}(?:\d{3,6})?|5[1-5]\d{14}|(222[1-9]|22[3-9]\d|2[3-6]\d{2}|27[01]\d|2720)\d{12}|6(?:011|5\d\d)\d{12,15}|3[47]\d{13}|3(?:0[0-5]|[68]\d)\d{11}|(?:2131|1800|35\d{3})\d{11}|6[27]\d{14}|^(81\d{14,17}))$/,PU=H0({domain:"string",pattern:{meta:"a credit card number",rule:SU.source},predicate:{meta:"a credit card number",predicate:jU}});var vU=/^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))(T((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([,.]\d+(?!:))?)?(\17[0-5]\d([,.]\d+)?)?([Zz]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;var xU=(Y)=>!Number.isNaN(new Date(Y).valueOf()),uG=H0({domain:"string",predicate:{meta:"a parsable date",predicate:xU}}).assertHasKind("intersection"),dG=aG.root.internal.narrow((Y,Z)=>{let X=Number.parseInt(Y),_=U6.epoch(X);if(_ instanceof U1)return Z.errors.merge(_),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),fU=Y0.module({root:dG,parse:H0({in:dG,morphs:(Y)=>new Date(Y),declaredOut:d.Date})},{name:"string.date.epoch"}),cG=I0(vU,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),hU=Y0.module({root:cG,parse:H0({in:cG,morphs:(Y)=>new Date(Y),declaredOut:d.Date})},{name:"string.date.iso"}),kU=Y0.module({root:uG,parse:H0({declaredIn:uG,in:"string",morphs:(Y,Z)=>{let X=new Date(Y);if(Number.isNaN(X.valueOf()))return Z.error("a parsable date");return X},declaredOut:d.Date}),iso:hU,epoch:fU},{name:"string.date"}),bU=I0(/^[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z]{2,}$/,"an email address","email"),lG="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",A4=`(${lG}[.]){3}${lG}`,yU=new RegExp(`^${A4}$`),v0="(?:[0-9a-fA-F]{1,4})",gU=new RegExp(`^((?:${v0}:){7}(?:${v0}|:)|(?:${v0}:){6}(?:${A4}|:${v0}|:)|(?:${v0}:){5}(?::${A4}|(:${v0}){1,2}|:)|(?:${v0}:){4}(?:(:${v0}){0,1}:${A4}|(:${v0}){1,3}|:)|(?:${v0}:){3}(?:(:${v0}){0,2}:${A4}|(:${v0}){1,4}|:)|(?:${v0}:){2}(?:(:${v0}){0,3}:${A4}|(:${v0}){1,5}|:)|(?:${v0}:){1}(?:(:${v0}){0,4}:${A4}|(:${v0}){1,6}|:)|(?::((?::${v0}){0,5}:${A4}|(?::${v0}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),pU=Y0.module({root:["v4 | v6","@","an IP address"],v4:I0(yU,"an IPv4 address","ipv4"),v6:I0(gU,"an IPv6 address","ipv6")},{name:"string.ip"}),F2="a JSON string",eG=(Y)=>{if(!(Y instanceof SyntaxError))throw Y;return`must be ${F2} (${Y})`},mU=H0({meta:F2,domain:"string",predicate:{meta:F2,predicate:(Y,Z)=>{try{return JSON.parse(Y),!0}catch(X){return Z.reject({code:"predicate",expected:F2,problem:eG(X)})}}}}),uU=(Y,Z)=>{if(Y.length===0)return Z.error({code:"predicate",expected:F2,actual:"empty"});try{return JSON.parse(Y)}catch(X){return Z.error({code:"predicate",expected:F2,problem:eG(X)})}},dU=Y0.module({root:mU,parse:H0({meta:"safe JSON string parser",in:"string",morphs:uU,declaredOut:d.jsonObject})},{name:"string.json"}),oG=I0(/^[a-z]*$/,"only lowercase letters"),cU=Y0.module({root:H0({in:"string",morphs:(Y)=>Y.toLowerCase(),declaredOut:oG}),preformatted:oG},{name:"string.lower"}),Y9=["NFC","NFD","NFKC","NFKD"],_8=i(Y9,(Y,Z)=>[Z,H0({domain:"string",predicate:(X)=>X.normalize(Z)===X,meta:`${Z}-normalized unicode`})]),z6=i(Y9,(Y,Z)=>[Z,H0({in:"string",morphs:(X)=>X.normalize(Z),declaredOut:_8[Z]})]),lU=Y0.module({root:z6.NFC,preformatted:_8.NFC},{name:"string.normalize.NFC"}),oU=Y0.module({root:z6.NFD,preformatted:_8.NFD},{name:"string.normalize.NFD"}),iU=Y0.module({root:z6.NFKC,preformatted:_8.NFKC},{name:"string.normalize.NFKC"}),rU=Y0.module({root:z6.NFKD,preformatted:_8.NFKD},{name:"string.normalize.NFKD"}),nU=Y0.module({root:"NFC",NFC:lU,NFD:oU,NFKC:iU,NFKD:rU},{name:"string.normalize"}),iG=I0(y8,"a well-formed numeric string"),sU=Y0.module({root:iG,parse:H0({in:iG,morphs:(Y)=>Number.parseFloat(Y),declaredOut:d.number})},{name:"string.numeric"}),rG="a regex pattern",tU=H0({domain:"string",predicate:{meta:rG,predicate:(Y,Z)=>{try{return new RegExp(Y),!0}catch(X){return Z.reject({code:"predicate",expected:rG,problem:String(X)})}}},meta:{format:"regex"}}),aU=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[A-Za-z-][\dA-Za-z-]*)(?:\.(?:0|[1-9]\d*|\d*[A-Za-z-][\dA-Za-z-]*))*))?(?:\+([\dA-Za-z-]+(?:\.[\dA-Za-z-]+)*))?$/,eU=I0(aU,"a semantic version (see https://semver.org/)"),nG=I0(/^\S.*\S$|^\S?$/,"trimmed"),Yz=Y0.module({root:H0({in:"string",morphs:(Y)=>Y.trim(),declaredOut:nG}),preformatted:nG},{name:"string.trim"}),sG=I0(/^[A-Z]*$/,"only uppercase letters"),Zz=Y0.module({root:H0({in:"string",morphs:(Y)=>Y.toUpperCase(),declaredOut:sG}),preformatted:sG},{name:"string.upper"}),Xz=(Y)=>{if(URL.canParse)return URL.canParse(Y);try{return new URL(Y),!0}catch{return!1}},tG=H0({domain:"string",predicate:{meta:"a URL string",predicate:Xz},meta:{format:"uri"}}),_z=Y0.module({root:tG,parse:H0({declaredIn:tG,in:"string",morphs:(Y,Z)=>{try{return new URL(Y)}catch{return Z.error("a URL string")}},declaredOut:H0(URL)})},{name:"string.url"}),Gz=Y0.module({root:["versioned | nil | max","@",{description:"a UUID",format:"uuid"}],"#nil":"'00000000-0000-0000-0000-000000000000'","#max":"'ffffffff-ffff-ffff-ffff-ffffffffffff'","#versioned":/[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}/i,v1:I0(/^[\da-f]{8}-[\da-f]{4}-1[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv1"),v2:I0(/^[\da-f]{8}-[\da-f]{4}-2[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv2"),v3:I0(/^[\da-f]{8}-[\da-f]{4}-3[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv3"),v4:I0(/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv4"),v5:I0(/^[\da-f]{8}-[\da-f]{4}-5[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv5"),v6:I0(/^[\da-f]{8}-[\da-f]{4}-6[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv6"),v7:I0(/^[\da-f]{8}-[\da-f]{4}-7[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv7"),v8:I0(/^[\da-f]{8}-[\da-f]{4}-8[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv8")},{name:"string.uuid"}),Z9=Y0.module({root:d.string,alpha:I0(/^[A-Za-z]*$/,"only letters"),alphanumeric:I0(/^[\dA-Za-z]*$/,"only letters and digits 0-9"),hex:BU,base64:CU,capitalize:qU,creditCard:PU,date:kU,digits:I0(/^\d*$/,"only digits 0-9"),email:bU,integer:aG,ip:pU,json:dU,lower:cU,normalize:nU,numeric:sU,regex:tU,semver:eU,trim:Yz,upper:Zz,url:_z,uuid:Gz},{name:"string"});var X9=Y0.module({bigint:d.bigint,boolean:d.boolean,false:d.false,never:d.never,null:d.null,number:d.number,object:d.object,string:d.string,symbol:d.symbol,true:d.true,unknown:d.unknown,undefined:d.undefined}),_9=Y0.module({root:d.unknown,any:d.unknown},{name:"unknown"}),$z=Y0.module({root:d.jsonObject,stringify:J2("morph",{in:d.jsonObject,morphs:(Y)=>JSON.stringify(Y),declaredOut:d.string})},{name:"object.json"}),G9=Y0.module({root:d.object,json:$z},{name:"object"});class $9 extends s0{description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var Wz=B1(["K",d.key],"V")((Y)=>({domain:"object",index:{signature:Y.K,value:Y.V}}),$9);class W9 extends s0{description='pick a set of properties from an object like `Pick(User, "name | age")`'}var Hz=B1(["T",d.object],["K",d.key])((Y)=>Y.T.pick(Y.K),W9);class H9 extends s0{description='omit a set of properties from an object like `Omit(User, "age")`'}var Jz=B1(["T",d.object],["K",d.key])((Y)=>Y.T.omit(Y.K),H9);class J9 extends s0{description="make all named properties of an object optional like `Partial(User)`"}var Qz=B1(["T",d.object])((Y)=>Y.T.partial(),J9);class Q9 extends s0{description="make all named properties of an object required like `Required(User)`"}var Uz=B1(["T",d.object])((Y)=>Y.T.required(),Q9);class U9 extends s0{description='exclude branches of a union like `Exclude("boolean", "true")`'}var zz=B1("T","U")((Y)=>Y.T.exclude(Y.U),U9);class z9 extends s0{description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var Fz=B1("T","U")((Y)=>Y.T.extract(Y.U),z9),F9=Y0.module({Exclude:zz,Extract:Fz,Omit:Jz,Partial:Qz,Pick:Hz,Record:Wz,Required:Uz});var w4=TZ({...X9,...F9,...gG,...xG,string:Z9,number:U6,object:G9,unknown:_9},{prereducedAliases:!0,name:"ark"}),g0=w4.export();Object.assign(z2.ambient,g0);z2.typeAttachments={string:g0.string.root,number:g0.number.root,bigint:g0.bigint,boolean:g0.boolean,symbol:g0.symbol,undefined:g0.undefined,null:g0.null,object:g0.object.root,unknown:g0.unknown.root,false:g0.false,true:g0.true,never:g0.never,arrayIndex:g0.Array.index,Key:g0.Key,Record:g0.Record,Array:g0.Array.root,Date:g0.Date};var E1=Object.assign(w4.type,z2.typeAttachments),Ez=w4.match,Oz=w4.generic,sI=w4.schema,Vz=w4.define,Dz=w4.declare;var O1=(Y)=>JSON.parse(Y),U0=(Y)=>JSON.stringify(Y),FT=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];function E2(Y){return V6(o0.STORE,Y,void 0)}function G8(Y){return D2(o0.STORE,Y)}function CZ(...Y){if(Y.length===2)return c1(o0.STORE,...Y);return c1(o0.STORE,...Y)}function F6(Y,Z){return R9(o0.STORE,Y,Z)}function E9(Y){return I9(Y,o0.STORE)}var BZ=(Y)=>(Z,X,_,G,...$)=>{console[Y](`${Z} ${X} "${_}" ${G}`,...$)},Lz={error:BZ("error"),info:BZ("info"),warn:BZ("warn")},O9=class{logLevel;filter;logger;constructor(Y,Z,X=Lz){this.logLevel=Y,this.filter=Z,this.logger=X}error=(...Y)=>{if(this.logLevel!==null){let Z=this.filter?.(...Y)??!0;if(Z===!0)this.logger.error(...Y);else if(Z)this.logger.error(...Z)}};info=(...Y)=>{if(this.logLevel==="info"){let Z=this.filter?.(...Y)??!0;if(Z===!0)this.logger.info(...Y);else if(Z)this.logger.info(...Z)}};warn=(...Y)=>{if(this.logLevel!=="error"&&this.logLevel!==null){let Z=this.filter?.(...Y)??!0;if(Z===!0)this.logger.warn(...Y);else if(Z)this.logger.warn(...Z)}}};var Mz=class{store;constructor(Y=o0.STORE){this.store=Y,L9("root",Y)}allocate(Y,Z,X){return O2(this.store,Y,Z,X)}fuse(Y,Z,X){return M9(this.store,Y,Z,X)}deallocate(Y){V2(this.store,Y)}claim(Y,Z,X){return W8(this.store,Y,Z,X)}},V9=class{store;realm;constructor(Y=o0.STORE){this.store=Y,this.realm=new Mz(Y)}allocate(Y,Z,X){O2(this.store,Y,Z,X)}deallocate(Y){V2(this.store,Y)}claim(Y,Z,X){W8(this.store,Y,Z,X)}};function E6(Y){return SZ(o0.STORE,Y)}function $8(Y){return jZ(o0.STORE,Y)}var G4=class Y extends Set{mode="record";subject=new W0;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(Z,X=0){super(Z);if(Z instanceof Y)this.parent=Z,this.cacheUpdateNumber=Z.cacheUpdateNumber;if(X)this.cacheLimit=X,this.cache=new Array(X),this.subscribe("auto cache",(_)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=_})}view(){return this}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(Z){let X=new Y(Z.members,Z.cacheLimit);return X.cache=Z.cache,X.cacheIdx=Z.cacheIdx,X.cacheUpdateNumber=Z.cacheUpdateNumber,X}add(Z){let X=super.add(Z);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${U0(Z)}`);return X}clear(){let Z=this.mode==="record"?[...this]:null;if(super.clear(),Z)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(Z)}`)}delete(Z){let X=super.delete(Z);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${U0(Z)}`);return X}parent=null;child=null;transactionUpdates=null;transaction(Z){this.mode="transaction",this.transactionUpdates=[],this.child=new Y(this);let X=this.child._subscribe("transaction",(_)=>{this.transactionUpdates?.push(_)});try{if(Z(this.child)){for(let G of this.transactionUpdates)this.doStep(G);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(_){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",_),_}finally{X(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(Z,X){return this.subject.subscribe(Z,X)}subscribe(Z,X){return this.subject.subscribe(Z,(_)=>{X(`${this.cacheUpdateNumber}=${_}`)})}emit(Z){this.subject.next(Z)}doStep(Z){let X=Z.indexOf(":"),_=Z.substring(0,X),G=Z.substring(X+1);switch(_){case"add":this.add(JSON.parse(G));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(G));break;case"tx":for(let $ of G.split(";"))this.doStep($)}}getUpdateNumber(Z){let X=Z.indexOf("=");return Number(Z.substring(0,X))}do(Z){let X=Z.indexOf("="),_=Number(Z.substring(0,X)),G=_-this.cacheUpdateNumber;if(G>0){if(G===1){this.mode="playback";let W=Z.substring(X+1);return this.doStep(W),this.mode="record",this.cacheUpdateNumber=_,null}return this.cacheUpdateNumber+1}if(Math.abs(G)<this.cacheLimit){let W=this.cacheIdx+G;if(this.cache[W]===Z)return null;this.mode="playback";let Q=!1;while(!Q){this.cacheIdx%=this.cacheLimit;let U=this.cache[this.cacheIdx];if(this.cacheIdx--,!U)return"OUT_OF_RANGE";this.undo(U),Q=this.cacheIdx===W-1}let J=Z.substring(X+1);return this.doStep(J),this.mode="record",this.cacheUpdateNumber=_,null}return"OUT_OF_RANGE"}undoStep(Z){let X=Z.indexOf(":"),_=Z.substring(0,X),G=Z.substring(X+1);switch(_){case"add":this.delete(JSON.parse(G));break;case"del":this.add(JSON.parse(G));break;case"clear":{let $=JSON.parse(G);for(let W of $)this.add(W);break}case"tx":{let $=G.split(";");for(let W=$.length-1;W>=0;W--)this.undoStep($[W])}}}undo(Z){let X=Z.indexOf("=");if(Number(Z.substring(0,X))===this.cacheUpdateNumber){this.mode="playback";let G=Z.substring(X+1);return this.undoStep(G),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}};function D9(Y=Math.random){return Y().toString(36).slice(2)}function o(Y){while(Y.child!==null)Y=Y.child;return Y}var wz=class Y{_buffer;_index=0;constructor(Z){let X;if(typeof Z==="number")X=Z;else X=Z.length;this._buffer=Array.from({length:X})}get buffer(){return this._buffer}get index(){return this._index}add(Z){this._buffer[this._index]=Z,this._index=(this._index+1)%this._buffer.length}copy(){let Z=new Y([...this._buffer]);return Z._index=this._index,Z}},Rz={atom_family:"atom",molecule_family:"molecule",mutable_atom_family:"mutable_atom",readonly_held_selector_family:"readonly_held_selector",readonly_pure_selector_family:"readonly_pure_selector",writable_held_selector_family:"writable_held_selector",writable_pure_selector_family:"writable_pure_selector"};function Nz(Y,Z){let X=U0(Z),_=`${Y.key}(${X})`,G=Rz[Y.type],$={key:_,type:G};return Object.assign($,{family:{key:Y.key,subKey:X}}),Object.assign($,{counterfeit:!0}),$}function $4(Y){let Z={key:Y.key,type:Y.type};if("family"in Y)Z.family=Y.family;return Z}var _1=class{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(Y,Z)=>`${Y}:${Z}`;warn;getRelatedKeys(Y){return this.relations.get(Y)}addRelation(Y,Z){let X=this.relations.get(Y),_=this.relations.get(Z);if(X)X.add(Z);else X=new Set([Z]),this.relations.set(Y,X);if(_)_.add(Y);else _=new Set([Y]),this.relations.set(Z,_)}deleteRelation(Y,Z){let X=this.relations.get(Y);if(X){if(X.delete(Z),X.size===0)this.relations.delete(Y);let _=this.relations.get(Z);if(_){if(_.delete(Y),_.size===0)this.relations.delete(Z)}}}replaceRelationsUnsafely(Y,Z){this.relations.set(Y,new Set(Z));for(let X of Z){let _=new Set().add(Y);this.relations.set(X,_)}}replaceRelationsSafely(Y,Z){let X=this.relations.get(Y),_=this.isAType?.(Y)?Y:void 0,G=_===void 0?Y:void 0;if(X)for(let $ of X){_??=$,G??=$;let W=this.relations.get($);if(W){if(W.size===1)this.relations.delete($);else W.delete(Y);this.contents.delete(this.makeContentKey(_,G))}}this.relations.set(Y,new Set(Z));for(let $ of Z){let W=this.relations.get($);if(W)W.add(Y);else W=new Set().add(Y),this.relations.set($,W)}}getContentInternal(Y){return this.contents.get(Y)}setContent(Y,Z){this.contents.set(Y,Z)}deleteContent(Y){this.contents.delete(Y)}constructor(Y,Z){if(this.a=Y.between[0],this.b=Y.between[1],this.cardinality=Y.cardinality,!Z?.externalStore)this.relations=new Map(Y.relations?.map(([X,_])=>[X,new Set(_)])),this.contents=new Map(Y.contents);if(this.isAType=Z?.isAType??null,this.isBType=Z?.isBType??null,this.isContent=Z?.isContent??null,Z?.makeContentKey)this.makeContentKey=Z.makeContentKey;if(Z?.externalStore){let X=Z.externalStore;if(this.has=(_,G)=>X.has(_,G),this.addRelation=(_,G)=>{X.addRelation(_,G)},this.deleteRelation=(_,G)=>{X.deleteRelation(_,G)},this.replaceRelationsSafely=(_,G)=>{X.replaceRelationsSafely(_,G)},this.replaceRelationsUnsafely=(_,G)=>{X.replaceRelationsUnsafely(_,G)},this.getRelatedKeys=(_)=>X.getRelatedKeys(_),X.getContent)this.getContentInternal=(_)=>{return X.getContent(_)},this.setContent=(_,G)=>{X.setContent(_,G)},this.deleteContent=(_)=>{X.deleteContent(_)};for(let[_,G]of Y.relations??[]){let $=this.isAType?.(_)?_:void 0,W=$===void 0?_:void 0;for(let H of G)$??=H,W??=H,this.addRelation($,W)}for(let[_,G]of Y.contents??[])this.setContent(_,G)}if(Z?.warn)this.warn=Z.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([Y,Z])=>[Y,[...Z]]),contents:[...this.contents.entries()]}}set(...Y){let Z,X,_;switch(Y.length){case 1:{let G=Y[0];Z=G[this.a],X=G[this.b],_=void 0;break}case 2:{let G=Y[0];if(typeof G==="string")[Z,X]=Y;else Z=G[this.a],X=G[this.b],_=Y[1];break}default:Z=Y[0],X=Y[1],_=Y[2];break}switch(this.cardinality){case"1:1":{let G=this.getRelatedKey(Z);if(G&&G!==X)this.delete(Z,G)}case"1:n":{let G=this.getRelatedKey(X);if(G&&G!==Z)this.delete(G,X)}break;case"n:n":}if(_){let G=this.makeContentKey(Z,X);this.setContent(G,_)}return this.addRelation(Z,X),this}delete(Y,Z){Z=typeof Z==="string"?Z:Y[this.b];let X=typeof Y==="string"?Y:Y[this.a];if(X===void 0&&typeof Z==="string"){let _=this.getRelatedKeys(Z);if(_)for(let G of _)this.delete(G,Z)}if(typeof X==="string"&&Z===void 0){let _=this.getRelatedKeys(X);if(_)for(let G of _)this.delete(X,G)}if(typeof X==="string"&&typeof Z==="string"){this.deleteRelation(X,Z);let _=this.makeContentKey(X,Z);this.deleteContent(_)}return this}getRelatedKey(Y){let Z=this.getRelatedKeys(Y);if(Z){if(Z.size>1)this.warn?.(`${Z.size} related keys were found for key "${Y}": (${[...Z].map((_)=>`"${_}"`).join(", ")}). Only one related key was expected.`);let X;for(let _ of Z){X=_;break}return X}}replaceRelations(Y,Z,X){let _=!Array.isArray(Z),G=_?Object.keys(Z):Z;if(X?.reckless)this.replaceRelationsUnsafely(Y,G);else this.replaceRelationsSafely(Y,G);if(_)for(let $ of G){let W=this.makeContentKey(Y,$),H=Z[$];this.setContent(W,H)}return this}getContent(Y,Z){let X=this.makeContentKey(Y,Z);return this.getContentInternal(X)}getRelationEntries(Y){let Z=Y[this.a],X=Y[this.b];if(Z!==void 0&&X===void 0){let _=this.getRelatedKeys(Z);if(_)return[..._].map((G)=>{return[G,this.getContent(Z,G)]})}if(Z===void 0&&X!==void 0){let _=this.getRelatedKeys(X);if(_)return[..._].map((G)=>{return[G,this.getContent(G,X)]})}return[]}has(Y,Z){if(Z)return this.getRelatedKeys(Y)?.has(Z)??!1;return this.relations.has(Y)}},W0=class{Subscriber;subscribers=new Map;subscribe(Y,Z){return this.subscribers.set(Y,Z),()=>{this.unsubscribe(Y)}}unsubscribe(Y){this.subscribers.delete(Y)}next(Y){let Z=this.subscribers.values();for(let X of Z)X(Y)}},Iz=class extends W0{state;constructor(Y){super();this.state=Y}next(Y){this.state=Y,super.next(Y)}},Tz=(Y,Z)=>{let X=o(Y);if(X.operation.open)return X.operation.prev.get(Z.key);return X.valueMap.get(Z.key)},vZ=class extends Promise{fate;resolve;reject;done=!1;constructor(Y){let Z,X;super((_,G)=>{Z=_,X=G});this.resolve=Z,this.reject=X,this.use(Y instanceof Promise?Y:new Promise(Y))}pass(Y,Z){if(Y===this.fate)this.resolve(Z),this.done=!0}fail(Y,Z){if(Y===this.fate)this.reject(Z),this.done=!0}use(Y){if(this===Y)return;if(Y instanceof Promise){let Z=Y;this.fate=Z,Z.then((X)=>{this.pass(Z,X)},(X)=>{this.fail(Z,X)})}else this.resolve(Y),this.fate=void 0}};function R4(Y){return"epoch"in Y.transactionMeta}function G1(Y){return"phase"in Y.transactionMeta}var q9=(Y,Z)=>{if(Y.operation.open){let X=performance.now();return Y.logger.info("\u2757",Z.type,Z.key,`deferring setState at T-${X} until setState for "${Y.operation.token.key}" is done`),X}Y.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:Z},Y.logger.info("\u2B55",Z.type,Z.key,`operation start in store "${Y.config.name}"${!G1(Y)?"":` ${Y.transactionMeta.phase} "${Y.transactionMeta.update.key}"`}`)},j9=(Y)=>{if(Y.operation.open)Y.logger.info("\uD83D\uDD34",Y.operation.token.type,Y.operation.token.key,`operation done in store "${Y.config.name}"`);Y.operation={open:!1},Y.on.operationClose.next(Y.operation)},S9=(Y,Z)=>{if(!Y.operation.open)return Y.logger.error("\uD83D\uDC1E","unknown",Z,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return Y.operation.done.has(Z)},U8=(Y,Z)=>{if(!Y.operation.open){Y.logger.error("\uD83D\uDC1E","unknown",Z,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}Y.operation.done.add(Z)};function xZ(Y,Z){let X=o(Y),{key:_,type:G}=Z,$=X.selectorAtoms.getRelatedKeys(_);if(X.logger.info("\uD83E\uDDF9",G,_,$?`evicting ${$.size} states downstream:`:"no downstream states",$??"to evict"),$){if(X.operation.open)X.logger.info("\uD83E\uDDF9",G,_,`[ ${[...X.operation.done].join(", ")} ] already done`);for(let W of $){if(S9(X,W))continue;v9(X,W),U8(X,W)}}}function P9(Y,Z){let X=o(Y),_=X.selectorGraph.getRelationEntries({upstreamSelectorKey:Z}).filter(([G,{source:$}])=>$===Z);for(let[G]of _){if(S9(X,G))continue;v9(X,G),U8(X,G),P9(Y,G)}}function o1(Y,Z,X){let{key:_,subject:G,type:$}=Z,W=Y.valueMap.get(_);if(W instanceof vZ&&!W.done){let H=W;if(X instanceof Promise)return H.use(X),H;return Y.valueMap.set(_,X),X}if(X instanceof Promise){let H=new vZ(X);return Y.valueMap.set(_,H),H.then(function Q(J){if(Y.valueMap.get(_)===H){switch(q9(Y,Z),o1(Y,Z,J),$){case"atom":case"mutable_atom":xZ(Y,Z);break;case"readonly_pure_selector":case"writable_pure_selector":P9(Y,_);break}j9(Y),G.next({newValue:J,oldValue:H})}}).catch((Q)=>{Y.logger.error("\uD83D\uDCA5","state",_,"rejected:",Q)}),H}return Y.valueMap.set(_,X),X}function Kz(Y,Z,X){Y.logger.info("\uD83D\uDCD6",Z.type,Z.key,"reading cached value");let _=Y.valueMap.get(Z.key);if(X==="mut"&&Z.type==="mutable_atom"&&G1(Y)){let $=Z,{parent:W}=Y;if(Y.valueMap.hasOwn($.key))return _;let H=W.valueMap.get($.key);Y.logger.info("\uD83D\uDCC3","atom",$.key,"copying");let Q=H.toJSON(),J=$.class.fromJSON(Q);Y.valueMap.set($.key,J),new uZ($,W),_=J}return _}function v9(Y,Z){let X=Y.valueMap.get(Z);if(X instanceof vZ){let _=Y.writableSelectors.get(Z)??Y.readonlySelectors.get(Z);if(_)_.get();return}if(Y.operation.open)Y.operation.prev.set(Z,X);Y.valueMap.delete(Z),Y.logger.info("\uD83D\uDDD1","state",Z,"evicted")}function L2(Y,Z,X){if(Y.valueMap.has(Z.key))return Kz(Y,Z,X);let{key:_}=Z;switch(Z.type){case"readonly_held_selector":case"readonly_pure_selector":case"writable_held_selector":case"writable_pure_selector":return Y.logger.info("\uD83E\uDDEE",Z.type,_,"computing value"),Z.get();case"atom":{let G;if(Z.default instanceof Function)G=Z.default();else G=Z.default;let $=o1(Y,Z,G);return Y.logger.info("\uD83D\uDC81","atom",Z.key,"could not find cached value; using default",G),$}case"mutable_atom":{let G=new Z.class,$=o1(Y,Z,G);return Y.logger.info("\uD83D\uDC81","mutable_atom",Z.key,"could not find cached value; using default",G),$}}}var hZ=(Y)=>(Z)=>Y instanceof Function?Y(Z):Y;function Bz(Y,Z){if("internalRoles"in Y===!1)return!1;return Y.internalRoles.includes(Z)}var Cz=(Y,Z,X)=>{switch(Z.type){case"mutable_atom":Y.logger.info("\uD83D\uDCE2",Z.type,Z.key,"is now (",X.newValue,") subscribers:",Z.subject.subscribers);break;case"atom":case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":Y.logger.info("\uD83D\uDCE2",Z.type,Z.key,"went (",X.oldValue,"->",X.newValue,") subscribers:",Z.subject.subscribers)}Z.subject.next(X)},fZ=(Y,Z,X)=>{let _=L2(Y,Z,"mut"),G=hZ(X)(_);Y.logger.info("\uD83D\uDCDD","atom",Z.key,"set to",G),G=o1(Y,Z,G),U8(Y,Z.key),xZ(Y,Z);let $={oldValue:_,newValue:G};if(!G1(Y)){Cz(Y,Z,$);return}if(Y.on.transactionApplying.state===null){let{key:W}=Z;if(ez($.newValue))return;let H={type:"atom_update",key:W,...$};if(Z.family)H.family=Z.family;Y.transactionMeta.update.updates.push(H),Y.logger.info("\uD83D\uDCC1","atom",W,"stowed (",$.oldValue,"->",$.newValue,")")}else if(Bz(Z,"tracker:signal")){let W=Z.key.slice(1),H=Y.atoms.get(W);if(L2(Y,H,"mut").do($.newValue)===null===!0)xZ(Y,H)}};function T9(Y,Z){switch(Z.type){case"mutable_atom":fZ(Y,Z,new Z.class);return;case"atom":{let X=Z.default;if(X instanceof Function)X=X();fZ(Y,Z,X)}}}function qz(Y,Z){switch(Z.type){case"atom":case"mutable_atom":T9(Y,Z);break;case"writable_pure_selector":case"writable_held_selector":{let X=L6(Y,Z.key);for(let _ of X.values())T9(Y,_)}break}}function jz(Y,Z){if(Z.family){let X=Y.families.get(Z.family.key);if(X)return X}}var x9=(Y,Z,X)=>{switch(Z.type){case"atom":case"mutable_atom":fZ(Y,Z,X);break;case"writable_pure_selector":case"writable_held_selector":Z.set(X);break}};function w1(Y,...Z){let X,_,G,$;if(Z.length===2){if(X=Z[0],$=Z[1],X.family)_=jz(Y,X),G=O1(X.family.subKey),X=Q0(Y,_,G)}else _=Z[0],G=Z[1],$=Z[2],X=Q0(Y,_,G);let W=$===D6?"reset":"set";if("counterfeit"in X&&"family"in X){let J=X.family.subKey,U=Y.disposalTraces.buffer.find((E)=>E?.key===J);Y.logger.error("\u274C",X.type,X.key,"could not be",W,`because it was not found in the store "${Y.config.name}".`,U?`This state was previously disposed:
|
|
48
48
|
${U.trace}`:"No previous disposal trace was found.");return}let H=q9(Y,X);if(H){let J=Y.on.operationClose.subscribe(`waiting to ${W} "${X.key}" at T-${H}`,function U(){J(),Y.logger.info("\uD83D\uDFE2",X.type,X.key,"resuming deferred",W,`from T-${H}`),w1(Y,X,$)});return}let Q=u0(Y,X);if($===D6)qz(Y,Q);else x9(Y,Q,$);j9(Y)}var D6=Symbol("RESET");function O6(Y,...Z){let X,_,G;if(Z.length===1)X=Z[0],w1(Y,X,D6);else _=Z[0],G=Z[1],w1(Y,_,G,D6)}var f9=(Y,Z)=>o(Y).atoms.has(Z),Sz=(Y,Z)=>o(Y).writableSelectors.has(Z),Pz=(Y,Z)=>o(Y).readonlySelectors.has(Z),vz=(Y,Z)=>f9(Y,Z)||Sz(Y,Z)||Pz(Y,Z),K9=(Y,Z)=>{return o(Y).selectorGraph.getRelationEntries({downstreamSelectorKey:Z}).filter(([_,{source:G}])=>G!==Z).map(([_,{source:G}])=>G).filter((_)=>vz(Y,_))},L6=(Y,Z,X=new Set)=>{let _=K9(Y,Z),G=new Map;while(_.length>0){let $=_.pop();if(X.has($))continue;if(X.add($),f9(Y,$)){let W=Y.atoms.get($);G.set(W.key,W)}else _.push(...K9(Y,$))}return G},xz=(Y,Z,X,_,G)=>{let $=o(Y),{type:W,key:H}=_;if(W==="atom"||W==="mutable_atom")$.selectorAtoms.set({selectorKey:X,atomKey:H}),Y.logger.info("\uD83D\uDD0D",Z,X,`discovers root atom "${H}"`);else{let Q=L6(Y,H,G);Y.logger.info("\uD83D\uDD0D",Z,X,`discovers root atoms: [ ${[...Q.values()].map((J)=>`"${J.key}"`).join(", ")} ]`);for(let{key:J}of Q.values())$.selectorAtoms=$.selectorAtoms.set({selectorKey:X,atomKey:J})}G.add(H)},M6=(Y,Z,X,_)=>({get:(...G)=>{let $=o(Y),W;if(G.length===2){let[U,E]=G;W=Q0(Y,U,E)}else[W]=G;let H=u0(Y,W),Q=L2(Y,H),J=W.key;return Y.logger.info("\uD83D\uDD0C",Z,X,`registers dependency ( "${J}" =`,Q,")"),$.selectorGraph.set({upstreamSelectorKey:J,downstreamSelectorKey:X},{source:W.key}),xz(Y,Z,X,W,_),Q},set:(...G)=>{let $,W;if(G.length===2)$=G[0],W=G[1];else{let J=G[0],U=G[1];W=G[2],$=Q0(Y,J,U)}let H=o(Y),Q=u0(H,$);x9(H,Q,W)},find:(...G)=>Q0(Y,...G),json:(G)=>b4(Y,G)}),kZ=(Y,Z,X)=>{let _=o(Y),G=new W0,$=new Set,{key:W,const:H}=Z,Q="readonly_held_selector",{get:J,find:U,json:E}=M6(_,"readonly_held_selector",W,$),L={...Z,type:"readonly_held_selector",subject:G,install:(M)=>kZ(M,Z,X),get:()=>{let M=o(Y),y=M.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[k,{source:h}]of y)if(h!==W)M.selectorGraph.delete(k,W);return M.selectorAtoms.delete(W),Z.get({get:J,find:U,json:E},H),o1(o(Y),L,H),$.clear(),H},...X&&{family:X}};_.readonlySelectors.set(W,L),Y.logger.info("\u2728","readonly_held_selector",W,"=",H);let R={key:W,type:"readonly_held_selector"};if(X)R.family=X;return R},bZ=(Y,Z,X)=>{let _=o(Y),G=new W0,$=new Set,W=Z.key,H="readonly_pure_selector",{get:Q,find:J,json:U}=M6(_,"readonly_pure_selector",W,$),V={...Z,type:"readonly_pure_selector",subject:G,install:(R)=>bZ(R,Z,X),get:()=>{let R=o(Y),M=R.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[h,{source:f}]of M)if(f!==W)R.selectorGraph.delete(h,W);R.selectorAtoms.delete(W);let y=Z.get({get:Q,find:J,json:U}),k=o1(R,V,y);return Y.logger.info("\u2728","readonly_pure_selector",W,"=",k),$.clear(),k},...X&&{family:X}};_.readonlySelectors.set(W,V);let L={key:W,type:"readonly_pure_selector"};if(X)L.family=X;return L},fz=(Y)=>{let Z=o(Y);if(!G1(Z)){Y.logger.warn("\uD83D\uDC1E","transaction","???","abortTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}Y.logger.info("\uD83E\uDE82","transaction",Z.transactionMeta.update.key,"Aborting transaction"),Z.parent.child=null};function T0(Y){return Y[0].toUpperCase()+Y.slice(1)}function k4(Y){return Y.type.split("_").map(T0).join(" ")}var yZ=class extends Error{constructor(Y,Z){super(`${k4(Y)} ${U0(Y.key)} not found in store "${Z.config.name}".`)}};function qZ(Y,Z,X){return(..._)=>{let G=u0(Y,Z);if(G)return G.run(_,X);throw new yZ(Z,Y)}}function hz(Y,Z,X){let{key:_,newValue:G,oldValue:$}=Z,W=Y==="newValue"?G:$,H={key:_,type:"atom"};if(Z.family)Object.assign(H,{family:Z.family});w1(X,H,W)}function kz(Y){let{stack:Z}=Y;if(Z)return`
|
|
49
49
|
`+Z.split(`
|
|
50
50
|
`)?.slice(1)?.join(`
|
|
@@ -56,7 +56,7 @@ ${L.trace}`:`No previous disposal trace for ${X} was found.`);return}let G=Y.mol
|
|
|
56
56
|
${G} was most recently disposed
|
|
57
57
|
${V.trace}`:`No previous disposal trace for ${G} was found.`),X}let H=U0(Z),Q=$.molecules.get(H);if(!Q){let V=Y.disposalTraces.buffer.find((L)=>L?.key===H);return Y.logger.error("\u274C","molecule",X,"claim failed:",`Could not allocate to ${H} in store "${Y.config.name}".`,V?`
|
|
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])=>O1(V));if(_)$.moleculeGraph.delete(G);$.moleculeGraph.set({upstreamMoleculeKey:Q.stringKey,downstreamMoleculeKey:W.stringKey},{source:Q.stringKey});let U={type:"molecule_transfer",key:W.key,exclusive:Boolean(_),from:J,to:[Q.key]};if(G1($)&&$.transactionMeta.phase==="building")$.transactionMeta.update.updates.push(U);return X}function bz(Y,Z,X){switch(Z){case"newValue":h9(Y,X);break;case"oldValue":H8(X,Y.token);break}}function yz(Y,Z,X){switch(Z){case"newValue":H8(X,Y.token);break;case"oldValue":if(h9(Y,X),Y.subType==="atom")X.valueMap.set(Y.token.key,Y.value);break}}function h9(Y,Z){let{family:X}=Y.token;if(X){let _=Z.families.get(X.key);if(_)Q0(Z,_,O1(X.subKey))}}function gz(Y,Z,X){switch(Z){case"newValue":O2(X,Y.provenance,Y.key);break;case"oldValue":V2(X,Y.key);break}}function pz(Y,Z,X){switch(Z){case"newValue":V2(X,Y.key);break;case"oldValue":{let _=Y.provenance.map(O1);O2(X,_,Y.key);for(let[G,$]of Y.values){let W=X.families.get(G);if(W){Q0(X,W,Y.key);let H=`${G}(${U0(Y.key)})`;X.valueMap.set(H,$)}}}break}}function mz(Y,Z,X){switch(Z){case"newValue":for(let _ of Y.to)W8(X,_,Y.key,Y.exclusive?"exclusive":void 0);break;case"oldValue":{let _="exclusive";for(let G of Y.from)W8(X,G,Y.key,_),_=void 0}break}}function k9(Y,Z,X){let _=Y==="newValue"?Z.updates:[...Z.updates].reverse();for(let G of _)switch(G.type){case"atom_update":case"selector_update":hz(Y,G,X);break;case"state_creation":bz(G,Y,X);break;case"state_disposal":yz(G,Y,X);break;case"molecule_creation":gz(G,Y,X);break;case"molecule_disposal":pz(G,Y,X);break;case"molecule_transfer":mz(G,Y,X);break;case"transaction_update":k9(Y,G,X);break}}function b9(Y,Z){return Y.transactionMeta.actionContinuities.getRelatedKey(Z)}function uz(Y,Z){return Y.transactionMeta.epoch.get(Z)}function dz(Y,Z){if(!R4(Y))return;let _=b9(Y,Z);if(_===void 0)return;return uz(Y,_)}function cz(Y,Z,X){if(!R4(Y))return;let G=b9(Y,Z);if(G!==void 0)Y.transactionMeta.epoch.set(G,X)}var lz=(Y,Z)=>{let X=o(Z),{parent:_}=X;if(_===null||!G1(X)||X.transactionMeta?.phase!=="building"){Z.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}X.transactionMeta.phase="applying",X.transactionMeta.update.output=Y,_.child=null,_.on.transactionApplying.next(X.transactionMeta);let{updates:G}=X.transactionMeta.update;if(Z.logger.info("\uD83D\uDEC4","transaction",X.transactionMeta.update.key,`Applying transaction with ${G.length} updates:`,G),k9("newValue",X.transactionMeta.update,_),R4(_))cz(_,X.transactionMeta.update.key,X.transactionMeta.update.epoch),u0(Z,{key:X.transactionMeta.update.key,type:"transaction"})?.subject.next(X.transactionMeta.update),Z.logger.info("\uD83D\uDEEC","transaction",X.transactionMeta.update.key,"Finished applying transaction.");else if(G1(_))_.transactionMeta.update.updates.push(X.transactionMeta.update);_.on.transactionApplying.next(null)};function oz(Y){return{store:Y}}var l1=class extends Map{deleted=new Set;source;constructor(Y){super();this.source=Y}get(Y){if(super.has(Y))return super.get(Y);if(!this.deleted.has(Y)&&this.source.has(Y))return this.source.get(Y);return}set(Y,Z){return this.deleted.delete(Y),super.set(Y,Z)}hasOwn(Y){return super.has(Y)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){return this.deleted.add(Y),super.delete(Y)}},iz=(Y,Z,X,_)=>{let G=o(Y),$={parent:G,child:null,on:G.on,loggers:G.loggers,logger:G.logger,config:G.config,atoms:new l1(G.atoms),atomsThatAreDefault:new Set(G.atomsThatAreDefault),families:new l1(G.families),joins:new l1(G.joins),operation:{open:!1},readonlySelectors:new l1(G.readonlySelectors),timelines:new l1(G.timelines),timelineTopics:new _1(G.timelineTopics.toJSON()),trackers:new Map,transactions:new l1(G.transactions),selectorAtoms:new _1(G.selectorAtoms.toJSON()),selectorGraph:new _1(G.selectorGraph.toJSON(),{makeContentKey:(...J)=>J.sort().join(":")}),writableSelectors:new l1(G.writableSelectors),valueMap:new l1(G.valueMap),defaults:G.defaults,disposalTraces:Y.disposalTraces.copy(),molecules:new l1(G.molecules),moleculeGraph:new _1(G.moleculeGraph.toJSON(),{makeContentKey:G.moleculeGraph.makeContentKey}),moleculeData:new _1(G.moleculeData.toJSON(),{makeContentKey:G.moleculeData.makeContentKey}),moleculeJoins:new _1(G.moleculeJoins.toJSON(),{makeContentKey:G.moleculeJoins.makeContentKey}),miscResources:new l1(G.miscResources)},W=dz(Y,Z),H={phase:"building",update:{type:"transaction_update",key:Z,id:_,epoch:W===void 0?NaN:W+1,updates:[],params:X,output:void 0},toolkit:{get:(...J)=>c1(Q,...J),set:(...J)=>{w1(Q,...J)},reset:(...J)=>{O6(Q,...J)},run:(J,U=D9())=>qZ(Q,J,U),find:(...J)=>Q0(Y,...J),json:(J)=>b4(Q,J),dispose:(...J)=>{H8(Q,...J)},env:()=>oz(Q)}},Q=Object.assign($,{transactionMeta:H});return G.child=Q,Y.logger.info("\uD83D\uDEEB","transaction",Z,"Building transaction with params:",X),Q};function jZ(Y,Z){let{key:X}=Z,_=Y.transactions.has(X),G={key:X,type:"transaction",run:(H,Q)=>{let J=iz(Y,X,H,Q);try{let U=o(Y),{toolkit:E}=J.transactionMeta,V=Z.do(E,...H);return lz(V,U),V}catch(U){throw fz($),Y.logger.warn("\uD83D\uDCA5","transaction",X,"caught:",U),U}},install:(H)=>jZ(H,Z),subject:new W0},$=o(Y);$.transactions.set(X,G);let W=$4(G);if(!_)Y.on.transactionCreation.next(W);return W}var gZ=(Y,Z,X)=>{let _=o(Y),G=new W0,$=new Set,{key:W,const:H}=Z,Q="writable_held_selector",J=M6(_,"writable_held_selector",W,$),{find:U,get:E,json:V}=J,L={find:U,get:E,json:V},R=(h=Z.get,f=o(Y))=>{let I=f.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[N,{source:q}]of I)if(q!==W)f.selectorGraph.delete(N,W);return f.selectorAtoms.delete(W),h(L,H),o1(f,y,H),Y.logger.info("\u2728","writable_held_selector",W,"=",H),$.clear(),H},y={...Z,type:"writable_held_selector",subject:G,install:(h)=>gZ(h,Z,X),get:R,set:(h)=>{let f=o(Y),I=R(Z.get,f),N=hZ(h)(I);if(Y.logger.info("\uD83D\uDCDD","writable_held_selector",W,"set (",I,"->",N,")"),o1(f,y,N),U8(f,W),R4(f))G.next({newValue:N,oldValue:I});Z.set(J,N)},...X&&{family:X}};_.writableSelectors.set(W,y);let k={key:W,type:"writable_held_selector"};if(X)k.family=X;return k},pZ=(Y,Z,X)=>{let _=o(Y),G=new W0,$=new Set,W=Z.key,H="writable_pure_selector",Q=M6(_,"writable_pure_selector",W,$),{find:J,get:U,json:E}=Q,V={find:J,get:U,json:E},L=(h=Z.get,f=o(Y))=>{let I=f.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[C,{source:p}]of I)if(p!==W)f.selectorGraph.delete(C,W);f.selectorAtoms.delete(W);let N=h(V),q=o1(f,M,N);return Y.logger.info("\u2728","writable_pure_selector",W,"=",q),$.clear(),N},M={...Z,type:"writable_pure_selector",subject:G,install:(h)=>pZ(h,Z,X),get:L,set:(h)=>{let f=o(Y),I=L(Z.get,f),N=hZ(h)(I);if(Y.logger.info("\uD83D\uDCDD","writable_pure_selector",W,"set (",I,"->",N,")"),o1(f,M,N),U8(f,Z.key),R4(f))G.next({newValue:N,oldValue:I});Z.set(Q,N)},...X&&{family:X}};_.writableSelectors.set(W,M);let y=L();Y.logger.info("\u2728",M.type,M.key,"=",y);let k={key:W,type:"writable_pure_selector"};if(X)k.family=X;return k};function A9(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X){let $=gZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(_){let $=kZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(X){let $=pZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}let G=bZ(Y,Z,void 0);return Y.on.selectorCreation.next(G),G}function rz(Y,Z){let X=o(Y),{key:_,type:G,family:$}=Z;if(!$)Y.logger.error("\u274C",G,_,"Standalone selectors cannot be disposed.");else{if(X.molecules.get($.subKey))X.moleculeData.delete($.subKey,$.key);let H;switch(Z.type){case"writable_held_selector":X.writableSelectors.delete(_),H={key:$.key,type:"writable_held_selector_family"},u0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z});break;case"writable_pure_selector":X.writableSelectors.delete(_),H={key:$.key,type:"writable_pure_selector_family"},u0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z});break;case"readonly_held_selector":X.readonlySelectors.delete(_),H={key:$.key,type:"readonly_held_selector_family"},u0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z});break;case"readonly_pure_selector":X.readonlySelectors.delete(_),H={key:$.key,type:"readonly_pure_selector_family"},u0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z});break}if(X.valueMap.delete(_),X.selectorAtoms.delete(_),X.selectorGraph.delete(_),X.moleculeData.delete($.key,$.subKey),Y.logger.info("\uD83D\uDD25",Z.type,_,"deleted"),G1(X)&&X.transactionMeta.phase==="building")X.transactionMeta.update.updates.push({type:"state_disposal",subType:"selector",token:Z});else Y.on.selectorDisposal.next(Z)}}function h4(Y,Z,X){let _=Z.key,G="readonly_pure_selector_family",$={key:_,type:"readonly_pure_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","readonly_pure_selector_family",_,`Overwriting an existing ${k4(W)} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new W0,J=Object.assign((U)=>{let E=U0(U),V={key:_,subKey:E},L=`${_}(${E})`,R=o(Y),M=bZ(R,{key:L,get:Z.get(U)},V);return H.next({type:"state_creation",token:M}),M},$,{internalRoles:X,subject:H,install:(U)=>h4(U,Z),default:(U)=>{return Z.get(U)({get:(...V)=>c1(Y,...V),find:(...V)=>Q0(Y,...V),json:(V)=>b4(Y,V)})}});return Y.families.set(_,J),$}function D2(Y,Z,X){let _={key:Z.key,type:"atom_family"},G=Y.families.get(Z.key);if(G)Y.logger.error("\u2757","atom_family",Z.key,`Overwriting an existing ${k4(G)} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new W0,H=Object.assign((Q)=>{let J=U0(Q),U={key:Z.key,subKey:J},E=`${Z.key}(${J})`,V=o(Y),L=Z.default,R={key:E,default:L instanceof Function?()=>L(Q):L};if(Z.effects)R.effects=Z.effects(Q);let M=f4(V,R,U);return $.next({type:"state_creation",token:M}),M},_,{subject:$,install:(Q)=>D2(Q,Z),internalRoles:X});return Y.families.set(Z.key,H),Y.defaults.set(Z.key,Z.default),_}function y9(Y,Z,X){let _=Z.key,G="readonly_held_selector_family",$={key:_,type:"readonly_held_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","readonly_held_selector_family",_,`Overwriting an existing ${k4(W)} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new W0,J=Object.assign((U)=>{let E=U0(U),V={key:_,subKey:E},L=`${_}(${E})`,R=o(Y),M=kZ(R,{key:L,const:Z.const(U),get:Z.get(U)},V);return H.next({type:"state_creation",token:M}),M},$,{internalRoles:X,subject:H,install:(U)=>y9(U,Z),default:Z.const});return Y.families.set(_,J),$}function g9(Y,Z,X){let _=Z.key,G="writable_held_selector_family",$={key:_,type:"writable_held_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","writable_held_selector_family",_,`Overwriting an existing ${k4(W)} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new W0,J=Object.assign((U)=>{let E=U0(U),V={key:_,subKey:E},L=`${_}(${E})`,R=o(Y),M=gZ(R,{key:L,const:Z.const(U),get:Z.get(U),set:Z.set(U)},V);return H.next({type:"state_creation",token:M}),M},$,{internalRoles:X,subject:H,install:(U)=>g9(U,Z),default:Z.const});return Y.families.set(_,J),$}function mZ(Y,Z,X){let _=Z.key,G="writable_pure_selector_family",$={key:_,type:"writable_pure_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","writable_pure_selector_family",_,`Overwriting an existing ${k4(W)} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new W0,J=Object.assign((U)=>{let E=U0(U),V={key:_,subKey:E},L=`${_}(${E})`,R=o(Y),M=pZ(R,{key:L,get:Z.get(U),set:Z.set(U)},V);return H.next({type:"state_creation",token:M}),M},$,{internalRoles:X,subject:H,install:(U)=>mZ(U,Z),default:(U)=>{return Z.get(U)({get:(...V)=>c1(Y,...V),find:(...V)=>Q0(Y,...V),json:(V)=>b4(Y,V)})}});return Y.families.set(_,J),$}function SZ(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X)return g9(Y,Z,void 0);if(_)return y9(Y,Z,void 0);if(X)return mZ(Y,Z);return h4(Y,Z)}function nz(Y,Z,X){let _=Y.families.get(Z.key);if(_===void 0)throw new yZ(Z,Y);let G=_(X),$=o(Y);if(G.family){if(R4($))switch(G.type){case"atom":case"mutable_atom":Y.on.atomCreation.next(G);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":Y.on.selectorCreation.next(G);break}else if(G1($)&&$.on.transactionApplying.state===null)$.transactionMeta.update.updates.push({type:"state_creation",token:G})}return G}function sz(Y,Z,X){let _=U0(X),G=`${Z.key}(${_})`,$=o(Y),W;switch(Z.type){case"atom_family":case"mutable_atom_family":W=$.atoms.get(G);break;case"writable_held_selector_family":case"writable_pure_selector_family":W=$.writableSelectors.get(G);break;case"readonly_held_selector_family":case"readonly_pure_selector_family":W=$.readonlySelectors.get(G);break}if(W)return $4(W);return W}function Q0(Y,Z,X){let _=sz(Y,Z,X);if(_)return _;let G=U0(X),$=Y.molecules.get(G);if(!$&&Y.config.lifespan==="immortal"){let W=Nz(Z,X);return Y.logger.error("\u274C",W.type,W.key,`was not found in store "${Y.config.name}"; returned a counterfeit token.`),W}if(_=nz(Y,Z,X),$)o(Y).moleculeData.set(G,Z.key);return _}function H8(Y,...Z){let X;if(Z.length===1)X=Z[0];else{let _=Z[0],G=Z[1];X=Q0(Y,_,G)}try{u0(Y,X)}catch(_){Y.logger.error("\u274C",X.type,X.key,`could not be disposed because it was not found in the store "${Y.config.name}".`);return}switch(X.type){case"atom":case"mutable_atom":p9(Y,X);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":rz(Y,X);break}}function c1(Y,...Z){let X,_,G;if(Z.length===1)X=Z[0];else _=Z[0],G=Z[1],X=Q0(Y,_,G);if("counterfeit"in X&&"family"in X){_=Y.families.get(X.family.key);let $=X.family.subKey,W=Y.disposalTraces.buffer.find((H)=>H?.key===$);switch(Y.logger.error("\u274C",X.type,X.key,`could not be retrieved because it was not found in the store "${Y.config.name}".`,W?`This state was previously disposed:
|
|
59
|
+
${V.trace}`:`No previous disposal trace for ${H} was found.`),X}let J=Y.moleculeGraph.getRelationEntries({downstreamMoleculeKey:W.stringKey}).filter(([,{source:V}])=>V!==G).map(([V])=>O1(V));if(_)$.moleculeGraph.delete(G);$.moleculeGraph.set({upstreamMoleculeKey:Q.stringKey,downstreamMoleculeKey:W.stringKey},{source:Q.stringKey});let U={type:"molecule_transfer",key:W.key,exclusive:Boolean(_),from:J,to:[Q.key]};if(G1($)&&$.transactionMeta.phase==="building")$.transactionMeta.update.updates.push(U);return X}function bz(Y,Z,X){switch(Z){case"newValue":h9(Y,X);break;case"oldValue":H8(X,Y.token);break}}function yz(Y,Z,X){switch(Z){case"newValue":H8(X,Y.token);break;case"oldValue":if(h9(Y,X),Y.subType==="atom")X.valueMap.set(Y.token.key,Y.value);break}}function h9(Y,Z){let{family:X}=Y.token;if(X){let _=Z.families.get(X.key);if(_)Q0(Z,_,O1(X.subKey))}}function gz(Y,Z,X){switch(Z){case"newValue":O2(X,Y.provenance,Y.key);break;case"oldValue":V2(X,Y.key);break}}function pz(Y,Z,X){switch(Z){case"newValue":V2(X,Y.key);break;case"oldValue":{let _=Y.provenance.map(O1);O2(X,_,Y.key);for(let[G,$]of Y.values){let W=X.families.get(G);if(W){Q0(X,W,Y.key);let H=`${G}(${U0(Y.key)})`;X.valueMap.set(H,$)}}}break}}function mz(Y,Z,X){switch(Z){case"newValue":for(let _ of Y.to)W8(X,_,Y.key,Y.exclusive?"exclusive":void 0);break;case"oldValue":{let _="exclusive";for(let G of Y.from)W8(X,G,Y.key,_),_=void 0}break}}function k9(Y,Z,X){let _=Y==="newValue"?Z.updates:[...Z.updates].reverse();for(let G of _)switch(G.type){case"atom_update":case"selector_update":hz(Y,G,X);break;case"state_creation":bz(G,Y,X);break;case"state_disposal":yz(G,Y,X);break;case"molecule_creation":gz(G,Y,X);break;case"molecule_disposal":pz(G,Y,X);break;case"molecule_transfer":mz(G,Y,X);break;case"transaction_update":k9(Y,G,X);break}}function b9(Y,Z){return Y.transactionMeta.actionContinuities.getRelatedKey(Z)}function uz(Y,Z){return Y.transactionMeta.epoch.get(Z)}function dz(Y,Z){if(!R4(Y))return;let _=b9(Y,Z);if(_===void 0)return;return uz(Y,_)}function cz(Y,Z,X){if(!R4(Y))return;let G=b9(Y,Z);if(G!==void 0)Y.transactionMeta.epoch.set(G,X)}var lz=(Y,Z)=>{let X=o(Z),{parent:_}=X;if(_===null||!G1(X)||X.transactionMeta?.phase!=="building"){Z.logger.warn("\uD83D\uDC1E","transaction","???","applyTransaction called outside of a transaction. This is probably a bug in AtomIO.");return}X.transactionMeta.phase="applying",X.transactionMeta.update.output=Y,_.child=null,_.on.transactionApplying.next(X.transactionMeta);let{updates:G}=X.transactionMeta.update;if(Z.logger.info("\uD83D\uDEC4","transaction",X.transactionMeta.update.key,`Applying transaction with ${G.length} updates:`,G),k9("newValue",X.transactionMeta.update,_),R4(_))cz(_,X.transactionMeta.update.key,X.transactionMeta.update.epoch),u0(Z,{key:X.transactionMeta.update.key,type:"transaction"})?.subject.next(X.transactionMeta.update),Z.logger.info("\uD83D\uDEEC","transaction",X.transactionMeta.update.key,"Finished applying transaction.");else if(G1(_))_.transactionMeta.update.updates.push(X.transactionMeta.update);_.on.transactionApplying.next(null)};function oz(Y){return{store:Y}}var l1=class extends Map{deleted=new Set;source;constructor(Y){super();this.source=Y}get(Y){if(super.has(Y))return super.get(Y);if(!this.deleted.has(Y)&&this.source.has(Y))return this.source.get(Y);return}set(Y,Z){return this.deleted.delete(Y),super.set(Y,Z)}hasOwn(Y){return super.has(Y)}has(Y){return!this.deleted.has(Y)&&(super.has(Y)||this.source.has(Y))}delete(Y){return this.deleted.add(Y),super.delete(Y)}},iz=(Y,Z,X,_)=>{let G=o(Y),$={parent:G,child:null,on:G.on,loggers:G.loggers,logger:G.logger,config:G.config,atoms:new l1(G.atoms),atomsThatAreDefault:new Set(G.atomsThatAreDefault),families:new l1(G.families),joins:new l1(G.joins),operation:{open:!1},readonlySelectors:new l1(G.readonlySelectors),timelines:new l1(G.timelines),timelineTopics:new _1(G.timelineTopics.toJSON()),trackers:new Map,transactions:new l1(G.transactions),selectorAtoms:new _1(G.selectorAtoms.toJSON()),selectorGraph:new _1(G.selectorGraph.toJSON(),{makeContentKey:(...J)=>J.sort().join(":")}),writableSelectors:new l1(G.writableSelectors),valueMap:new l1(G.valueMap),defaults:G.defaults,disposalTraces:Y.disposalTraces.copy(),molecules:new l1(G.molecules),moleculeGraph:new _1(G.moleculeGraph.toJSON(),{makeContentKey:G.moleculeGraph.makeContentKey}),moleculeData:new _1(G.moleculeData.toJSON(),{makeContentKey:G.moleculeData.makeContentKey}),moleculeJoins:new _1(G.moleculeJoins.toJSON(),{makeContentKey:G.moleculeJoins.makeContentKey}),miscResources:new l1(G.miscResources)},W=dz(Y,Z),H={phase:"building",update:{type:"transaction_update",key:Z,id:_,epoch:W===void 0?NaN:W+1,updates:[],params:X,output:void 0},toolkit:{get:(...J)=>c1(Q,...J),set:(...J)=>{w1(Q,...J)},reset:(...J)=>{O6(Q,...J)},run:(J,U=D9())=>qZ(Q,J,U),find:(...J)=>Q0(Y,...J),json:(J)=>b4(Q,J),dispose:(...J)=>{H8(Q,...J)},env:()=>oz(Q)}},Q=Object.assign($,{transactionMeta:H});return G.child=Q,Y.logger.info("\uD83D\uDEEB","transaction",Z,"Building transaction with params:",X),Q};function jZ(Y,Z){let{key:X}=Z,_=Y.transactions.has(X),G={key:X,type:"transaction",run:(H,Q)=>{let J=iz(Y,X,H,Q);try{let U=o(Y),{toolkit:E}=J.transactionMeta,V=Z.do(E,...H);return lz(V,U),V}catch(U){throw fz($),Y.logger.warn("\uD83D\uDCA5","transaction",X,"caught:",U),U}},install:(H)=>jZ(H,Z),subject:new W0},$=o(Y);$.transactions.set(X,G);let W=$4(G);if(!_)Y.on.transactionCreation.next(W);return W}var gZ=(Y,Z,X)=>{let _=o(Y),G=new W0,$=new Set,{key:W,const:H}=Z,Q="writable_held_selector",J=M6(_,"writable_held_selector",W,$),{find:U,get:E,json:V}=J,L={find:U,get:E,json:V},R=(h=Z.get,f=o(Y))=>{let I=f.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[N,{source:q}]of I)if(q!==W)f.selectorGraph.delete(N,W);return f.selectorAtoms.delete(W),h(L,H),o1(f,y,H),Y.logger.info("\u2728","writable_held_selector",W,"=",H),$.clear(),H},y={...Z,type:"writable_held_selector",subject:G,install:(h)=>gZ(h,Z,X),get:R,set:(h)=>{let f=o(Y),I=R(Z.get,f),N=hZ(h)(I);if(Y.logger.info("\uD83D\uDCDD","writable_held_selector",W,"set (",I,"->",N,")"),o1(f,y,N),U8(f,W),R4(f))G.next({newValue:N,oldValue:I});Z.set(J,N)},...X&&{family:X}};_.writableSelectors.set(W,y);let k={key:W,type:"writable_held_selector"};if(X)k.family=X;return k},pZ=(Y,Z,X)=>{let _=o(Y),G=new W0,$=new Set,W=Z.key,H="writable_pure_selector",Q=M6(_,"writable_pure_selector",W,$),{find:J,get:U,json:E}=Q,V={find:J,get:U,json:E},L=(h=Z.get,f=o(Y))=>{let I=f.selectorGraph.getRelationEntries({downstreamSelectorKey:W});for(let[C,{source:p}]of I)if(p!==W)f.selectorGraph.delete(C,W);f.selectorAtoms.delete(W);let N=h(V),q=o1(f,M,N);return Y.logger.info("\u2728","writable_pure_selector",W,"=",q),$.clear(),q},M={...Z,type:"writable_pure_selector",subject:G,install:(h)=>pZ(h,Z,X),get:L,set:(h)=>{let f=o(Y),I=L(Z.get,f),N=hZ(h)(I);if(Y.logger.info("\uD83D\uDCDD","writable_pure_selector",W,"set (",I,"->",N,")"),o1(f,M,N),U8(f,Z.key),R4(f))G.next({newValue:N,oldValue:I});Z.set(Q,N)},...X&&{family:X}};_.writableSelectors.set(W,M);let y=L();Y.logger.info("\u2728",M.type,M.key,"=",y);let k={key:W,type:"writable_pure_selector"};if(X)k.family=X;return k};function A9(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X){let $=gZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(_){let $=kZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}if(X){let $=pZ(Y,Z,void 0);return Y.on.selectorCreation.next($),$}let G=bZ(Y,Z,void 0);return Y.on.selectorCreation.next(G),G}function rz(Y,Z){let X=o(Y),{key:_,type:G,family:$}=Z;if(!$)Y.logger.error("\u274C",G,_,"Standalone selectors cannot be disposed.");else{if(X.molecules.get($.subKey))X.moleculeData.delete($.subKey,$.key);let H;switch(Z.type){case"writable_held_selector":X.writableSelectors.delete(_),H={key:$.key,type:"writable_held_selector_family"},u0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z});break;case"writable_pure_selector":X.writableSelectors.delete(_),H={key:$.key,type:"writable_pure_selector_family"},u0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z});break;case"readonly_held_selector":X.readonlySelectors.delete(_),H={key:$.key,type:"readonly_held_selector_family"},u0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z});break;case"readonly_pure_selector":X.readonlySelectors.delete(_),H={key:$.key,type:"readonly_pure_selector_family"},u0(Y,H).subject.next({type:"state_disposal",subType:"selector",token:Z});break}if(X.valueMap.delete(_),X.selectorAtoms.delete(_),X.selectorGraph.delete(_),X.moleculeData.delete($.key,$.subKey),Y.logger.info("\uD83D\uDD25",Z.type,_,"deleted"),G1(X)&&X.transactionMeta.phase==="building")X.transactionMeta.update.updates.push({type:"state_disposal",subType:"selector",token:Z});else Y.on.selectorDisposal.next(Z)}}function h4(Y,Z,X){let _=Z.key,G="readonly_pure_selector_family",$={key:_,type:"readonly_pure_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","readonly_pure_selector_family",_,`Overwriting an existing ${k4(W)} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new W0,J=Object.assign((U)=>{let E=U0(U),V={key:_,subKey:E},L=`${_}(${E})`,R=o(Y),M=bZ(R,{key:L,get:Z.get(U)},V);return H.next({type:"state_creation",token:M}),M},$,{internalRoles:X,subject:H,install:(U)=>h4(U,Z),default:(U)=>{return Z.get(U)({get:(...V)=>c1(Y,...V),find:(...V)=>Q0(Y,...V),json:(V)=>b4(Y,V)})}});return Y.families.set(_,J),$}function D2(Y,Z,X){let _={key:Z.key,type:"atom_family"},G=Y.families.get(Z.key);if(G)Y.logger.error("\u2757","atom_family",Z.key,`Overwriting an existing ${k4(G)} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new W0,H=Object.assign((Q)=>{let J=U0(Q),U={key:Z.key,subKey:J},E=`${Z.key}(${J})`,V=o(Y),L=Z.default,R={key:E,default:L instanceof Function?()=>L(Q):L};if(Z.effects)R.effects=Z.effects(Q);let M=f4(V,R,U);return $.next({type:"state_creation",token:M}),M},_,{subject:$,install:(Q)=>D2(Q,Z),internalRoles:X});return Y.families.set(Z.key,H),Y.defaults.set(Z.key,Z.default),_}function y9(Y,Z,X){let _=Z.key,G="readonly_held_selector_family",$={key:_,type:"readonly_held_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","readonly_held_selector_family",_,`Overwriting an existing ${k4(W)} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new W0,J=Object.assign((U)=>{let E=U0(U),V={key:_,subKey:E},L=`${_}(${E})`,R=o(Y),M=kZ(R,{key:L,const:Z.const(U),get:Z.get(U)},V);return H.next({type:"state_creation",token:M}),M},$,{internalRoles:X,subject:H,install:(U)=>y9(U,Z),default:Z.const});return Y.families.set(_,J),$}function g9(Y,Z,X){let _=Z.key,G="writable_held_selector_family",$={key:_,type:"writable_held_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","writable_held_selector_family",_,`Overwriting an existing ${k4(W)} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new W0,J=Object.assign((U)=>{let E=U0(U),V={key:_,subKey:E},L=`${_}(${E})`,R=o(Y),M=gZ(R,{key:L,const:Z.const(U),get:Z.get(U),set:Z.set(U)},V);return H.next({type:"state_creation",token:M}),M},$,{internalRoles:X,subject:H,install:(U)=>g9(U,Z),default:Z.const});return Y.families.set(_,J),$}function mZ(Y,Z,X){let _=Z.key,G="writable_pure_selector_family",$={key:_,type:"writable_pure_selector_family"},W=Y.families.get(_);if(W)Y.logger.error("\u2757","writable_pure_selector_family",_,`Overwriting an existing ${k4(W)} "${W.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let H=new W0,J=Object.assign((U)=>{let E=U0(U),V={key:_,subKey:E},L=`${_}(${E})`,R=o(Y),M=pZ(R,{key:L,get:Z.get(U),set:Z.set(U)},V);return H.next({type:"state_creation",token:M}),M},$,{internalRoles:X,subject:H,install:(U)=>mZ(U,Z),default:(U)=>{return Z.get(U)({get:(...V)=>c1(Y,...V),find:(...V)=>Q0(Y,...V),json:(V)=>b4(Y,V)})}});return Y.families.set(_,J),$}function SZ(Y,Z){let X="set"in Z,_="const"in Z;if(_&&X)return g9(Y,Z,void 0);if(_)return y9(Y,Z,void 0);if(X)return mZ(Y,Z);return h4(Y,Z)}function nz(Y,Z,X){let _=Y.families.get(Z.key);if(_===void 0)throw new yZ(Z,Y);let G=_(X),$=o(Y);if(G.family){if(R4($))switch(G.type){case"atom":case"mutable_atom":Y.on.atomCreation.next(G);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":Y.on.selectorCreation.next(G);break}else if(G1($)&&$.on.transactionApplying.state===null)$.transactionMeta.update.updates.push({type:"state_creation",token:G})}return G}function sz(Y,Z,X){let _=U0(X),G=`${Z.key}(${_})`,$=o(Y),W;switch(Z.type){case"atom_family":case"mutable_atom_family":W=$.atoms.get(G);break;case"writable_held_selector_family":case"writable_pure_selector_family":W=$.writableSelectors.get(G);break;case"readonly_held_selector_family":case"readonly_pure_selector_family":W=$.readonlySelectors.get(G);break}if(W)return $4(W);return W}function Q0(Y,Z,X){let _=sz(Y,Z,X);if(_)return _;let G=U0(X),$=Y.molecules.get(G);if(!$&&Y.config.lifespan==="immortal"){let W=Nz(Z,X);return Y.logger.error("\u274C",W.type,W.key,`was not found in store "${Y.config.name}"; returned a counterfeit token.`),W}if(_=nz(Y,Z,X),$)o(Y).moleculeData.set(G,Z.key);return _}function H8(Y,...Z){let X;if(Z.length===1)X=Z[0];else{let _=Z[0],G=Z[1];X=Q0(Y,_,G)}try{u0(Y,X)}catch(_){Y.logger.error("\u274C",X.type,X.key,`could not be disposed because it was not found in the store "${Y.config.name}".`);return}switch(X.type){case"atom":case"mutable_atom":p9(Y,X);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":rz(Y,X);break}}function c1(Y,...Z){let X,_,G;if(Z.length===1)X=Z[0];else _=Z[0],G=Z[1],X=Q0(Y,_,G);if("counterfeit"in X&&"family"in X){_=Y.families.get(X.family.key);let $=X.family.subKey,W=Y.disposalTraces.buffer.find((H)=>H?.key===$);switch(Y.logger.error("\u274C",X.type,X.key,`could not be retrieved because it was not found in the store "${Y.config.name}".`,W?`This state was previously disposed:
|
|
60
60
|
${W.trace}`:"No previous disposal trace was found."),_.type){case"atom_family":case"mutable_atom_family":return Y.defaults.get(_.key);case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(Y.defaults.has(_.key))return Y.defaults.get(X.family.key);let H=u0(Y,_).default($);return Y.defaults.set(_.key,H),H}}}return L2(Y,u0(Y,X))}var B9=(Y,Z,X)=>{return X.subject.subscribe(`${Z.type}:${Z.key}`,(_)=>{Y.logger.info("\uD83D\uDCE2",Z.type,Z.key,"root",X.key,"went",_.oldValue,"->",_.newValue);let G=Tz(Y,Z),$=L2(Y,Z);Y.logger.info("\u2728",Z.type,Z.key,"went",G,"->",$),Z.subject.next({newValue:$,oldValue:G})})};function Q8(Y,Z,X,_){function G(E){if(Y.operation.open){let V=Y.on.operationClose.subscribe(`state subscription ${X}`,()=>{V(),_(E)})}else _(E)}let $=u0(Y,Z);Y.logger.info("\uD83D\uDC40",$.type,$.key,`Adding subscription "${X}"`);let W=$.type==="writable_pure_selector"||$.type==="readonly_pure_selector",H=new Map,Q=G;if(W){L2(Y,$);for(let[E,V]of L6(Y,$.key))H.set(E,B9(Y,$,V));Q=function E(V){let L=L6(Y,$.key);for(let[R,M]of H)if(L.get(R))L.delete(R);else M(),H.delete(R);for(let[R,M]of L)H.set(R,B9(Y,$,M));G(V)}}let J=$.subject.subscribe(X,Q);return()=>{Y.logger.info("\uD83D\uDE48",$.type,$.key,`Removing subscription "${X}"`),J();for(let E of H.values())E()}}function u0(Y,Z){let X,_=Y;while(_!==null){switch(Z.type){case"atom":case"mutable_atom":X=_.atoms.get(Z.key);break;case"writable_pure_selector":case"writable_held_selector":X=_.writableSelectors.get(Z.key);break;case"readonly_pure_selector":case"readonly_held_selector":X=_.readonlySelectors.get(Z.key);break;case"atom_family":case"mutable_atom_family":case"writable_pure_selector_family":case"readonly_pure_selector_family":case"writable_held_selector_family":case"readonly_held_selector_family":X=_.families.get(Z.key);break;case"timeline":X=_.timelines.get(Z.key);break;case"transaction":X=_.transactions.get(Z.key);break}if(X)return X;_=_.child}throw new yZ(Z,Y)}var tz=(Y,Z,X,_)=>{let G=u0(Y,Z);Y.logger.info("\uD83D\uDC40","timeline",Z.key,`Adding subscription "${X}"`);let $=G.subject.subscribe(X,_);return()=>{Y.logger.info("\uD83D\uDE48","timeline",Z.key,`Removing subscription "${X}" from timeline`),$()}};var uZ=class{initializeSignalAtom(Y,Z){let X=`*${Y.key}`;Z.atoms.delete(X),Z.valueMap.delete(X);let _=Y.family?{key:`*${Y.family.key}`,subKey:Y.family.subKey}:void 0,G=f4(Z,{key:X,default:null},_,["tracker:signal"]);if(Z.parent?.valueMap.has(X)){let $=Z.parent.valueMap.get(X);Z.valueMap.set(X,$)}return G}unsubscribeFromInnerValue;unsubscribeFromState;captureSignalsFromCore(Y,Z,X){let _=Y.key,G=X.config.name,$=G1(X)?X.transactionMeta.update.key:"main",W=`tracker:${G}:${$}:${_}`,H=(J)=>{w1(X,Z,J)},Q=c1(X,Y);this.unsubscribeFromInnerValue=Q.subscribe(W,H),this.unsubscribeFromState=Q8(X,Y,W,function J(U){if(U.newValue!==U.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=U.newValue.subscribe(W,H)}.bind(this))}supplySignalsToCore(Y,Z,X){let _=`tracker:${X.config.name}:${G1(X)?X.transactionMeta.update.key:"main"}:${Y.key}`;Q8(X,Z,_,function G({newValue:$,oldValue:W}){let H=X.timelineTopics.getRelatedKey(Z.key);if(H&&X.timelines.get(H)?.timeTraveling){let E=tz(X,{key:H,type:"timeline"},_,function V(L){E(),w1(X,Y,(R)=>{if(L==="redo"&&$)R.do($);else if(L==="undo"&&W)R.undo(W);return R})});return}let Q=c1(X,Y),J=Q.getUpdateNumber($),U=J-Q.cacheUpdateNumber;if($&&U===1)w1(X,Y,(E)=>(E.do($),E));else{let E=Q.cacheUpdateNumber+1;X.logger.info("\u274C","mutable_atom",Y.key,"could not be updated. Expected update number",E,"but got",J)}})}mutableAtomToken;latestSignalToken;[Symbol.dispose];constructor(Y,Z){let X=o(Z),_=this.initializeSignalAtom(Y,X);this.mutableAtomToken=Y,this.latestSignalToken=_,this.captureSignalsFromCore(Y,_,X),this.supplySignalsToCore(Y,_,X),X.trackers.set(Y.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),X.trackers.delete(Y.key)}}};function V6(Y,Z,X){Y.logger.info("\uD83D\uDD28","atom",Z.key,`creating in store "${Y.config.name}"`);let _=o(Y),{key:G}=Z,$=_.atoms.get(G),W="mutable_atom";if($&&$.type===W)return Y.logger.error("\u274C",W,G,"Tried to create atom, but it already exists in the store."),$4($);let H=new W0,Q={...Z,type:W,install:(U)=>{return U.logger.info("\uD83D\uDEE0\uFE0F","atom",G,`installing in store "${U.config.name}"`),V6(U,Z,X)},subject:H};if(X)Q.family=X;_.atoms.set(Q.key,Q);let J=$4(Q);if(Z.effects){let U=0,E=[];for(let V of Z.effects){let L=V({resetSelf:()=>{O6(Y,J)},setSelf:(R)=>{w1(Y,J,R)},onSet:(R)=>Q8(Y,J,`effect[${U}]`,R)});if(L)E.push(L);++U}Q.cleanup=()=>{for(let V of E)V()}}if(new uZ(J,Y),!X)A9(Y,{key:`${G}:JSON`,get:({get:U})=>U(J).toJSON(),set:({set:U},E)=>{U(J,Z.class.fromJSON(E))}});return Y.on.atomCreation.next(J),J}var az=class{trackers=new Map;latestSignalAtoms;mutableAtoms;constructor(Y,Z){let X=D2(Z,{key:`*${Y.key}`,default:null},["mutable","updates"]);this.latestSignalAtoms=u0(Z,X),this.mutableAtoms=Y;let _=(G)=>{let{type:$,token:W}=G;if(W.family){let H=O1(W.family.subKey);switch($){case"state_creation":this.trackers.set(H,new uZ(W,Z));break;case"state_disposal":{let Q=this.trackers.get(H);if(Q)Q[Symbol.dispose](),this.trackers.delete(H)}}}};this.mutableAtoms.subject.subscribe(`store=${Z.config.name}::tracker-atom-family`,_)}};function PZ(Y,Z,X){let _={key:Z.key,type:"mutable_atom_family"},G=Y.families.get(Z.key);if(G)Y.logger.error("\u2757","mutable_atom_family",Z.key,`Overwriting an existing ${k4(G)} "${G.key}" in store "${Y.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let $=new W0,H=Object.assign((Q)=>{let J=U0(Q),U={key:Z.key,subKey:J},E=`${Z.key}(${J})`,V=o(Y),L={key:E,class:Z.class};if(Z.effects)L.effects=Z.effects(Q);let R=V6(V,L,U);return $.next({type:"state_creation",token:R}),R},_,{subject:$,install:(Q)=>PZ(Q,Z),internalRoles:X});return Y.families.set(Z.key,H),mZ(Y,{key:`${Z.key}:JSON`,get:(Q)=>({get:J})=>J(_,Q).toJSON(),set:(Q)=>({set:J},U)=>{J(_,Q,Z.class.fromJSON(U))}},["mutable","json"]),new az(H,Y),_}var C9=(Y,Z)=>{let X=o(Z),_=`${Y.key}:JSON`;return X.families.get(_)},b4=(Y,Z)=>{if(Z.family){let _=o(Y),$={key:`${Z.family.key}:JSON`,type:"writable_pure_selector_family"},W=u0(_,$),H=JSON.parse(Z.family.subKey);return Q0(Y,W,H)}return{type:"writable_pure_selector",key:`${Z.key}:JSON`}};var dZ=(Y)=>{let X={type:"atom",key:`*${Y.key}`};if(Y.family)X.family={key:`*${Y.family.key}`,subKey:Y.family.subKey};return X};function ez(Y){return typeof Y==="object"&&Y!==null&&"do"in Y&&"undo"in Y&&"subscribe"in Y}var w9=class{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;writableSelectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new _1({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new _1({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new _1({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new _1({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new wz(100);molecules=new Map;moleculeJoins=new _1({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeGraph=new _1({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});moleculeData=new _1({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...Y)=>Y.sort().join(":")});miscResources=new Map;on={atomCreation:new W0,atomDisposal:new W0,selectorCreation:new W0,selectorDisposal:new W0,timelineCreation:new W0,transactionCreation:new W0,transactionApplying:new Iz(null),operationClose:new W0,moleculeCreation:new W0,moleculeDisposal:new W0};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new O9("warn",(Y,Z,X)=>!M2(X))];logger={error:(...Y)=>{for(let Z of this.loggers)Z.error(...Y)},info:(...Y)=>{for(let Z of this.loggers)Z.info(...Y)},warn:(...Y)=>{for(let Z of this.loggers)Z.warn(...Y)}};constructor(Y,Z=null){if(this.config={...Z?.config,...Y},Z!==null){if(this.operation={...Z?.operation},R4(Z))this.transactionMeta={epoch:new Map(Z?.transactionMeta.epoch),actionContinuities:new _1(Z?.transactionMeta.actionContinuities.toJSON())};for(let[,_]of Z.families){if(_.internalRoles?.includes("mutable")||_.internalRoles?.includes("join"))continue;_.install(this)}let X=new Set;for(let[,_]of Z.atoms){if(X.has(_.key))continue;if(_.install(this),_.type==="mutable_atom"){let G=b4(Z,_),$=dZ(_);X.add(G.key),X.add($.key)}}for(let[,_]of Z.readonlySelectors)_.install(this);for(let[,_]of Z.writableSelectors){if(X.has(_.key))continue;_.install(this)}for(let[,_]of Z.transactions)_.install(this);for(let[,_]of Z.timelines)_.install(this)}}},o0={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new w9({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function f4(Y,Z,X,_){let{key:$}=Z;Y.logger.info("\uD83D\uDD28","atom",$,`creating in store "${Y.config.name}"`);let W=o(Y),H=W.atoms.get($);if(H&&H.type==="atom")return Y.logger.error("\u274C","atom",$,"Tried to create atom, but it already exists in the store."),$4(H);let Q=new W0,J={...Z,type:"atom",install:(E)=>{return E.logger.info("\uD83D\uDEE0\uFE0F","atom",$,`installing in store "${E.config.name}"`),f4(E,Z,X)},subject:Q};if(X)J.family=X;if(_)J.internalRoles=_;W.atoms.set($,J);let U=$4(J);if(Z.effects){let E=0,V=[];for(let L of Z.effects){let R=L({resetSelf:()=>{O6(Y,U)},setSelf:(M)=>{w1(Y,U,M)},onSet:(M)=>Q8(Y,U,`effect[${E}]`,M)});if(R)V.push(R);++E}J.cleanup=()=>{for(let L of V)L()}}return Y.on.atomCreation.next(U),U}function p9(Y,Z){let X=o(Y),{key:_,family:G}=Z,$=u0(X,Z);if(!G)Y.logger.error("\u274C","atom",_,"Standalone atoms cannot be disposed.");else{$.cleanup?.();let W=Y.valueMap.get($.key),H=u0(Y,{key:G.key,type:"atom_family"}),Q={type:"state_disposal",subType:"atom",token:Z,value:W};H.subject.next(Q);let J=G1(X);if(X.atoms.delete(_),X.valueMap.delete(_),X.selectorAtoms.delete(_),X.atomsThatAreDefault.delete(_),X.moleculeData.delete(G.key,G.subKey),Y.timelineTopics.delete(_),Z.type==="mutable_atom"){let U=dZ(Z);p9(Y,U),Y.trackers.delete(_)}if(Y.logger.info("\uD83D\uDD25","atom",_,"deleted"),J&&X.transactionMeta.phase==="building"){let U=X.transactionMeta.update.updates.at(-1);if(!(U?.type==="molecule_disposal"&&U.values.some(([L])=>L===$.family?.key)))X.transactionMeta.update.updates.push(Q)}else Y.on.atomDisposal.next(Z)}}var m9=class{toolkit;options;defaultContent;molecules=new Map;relations;states;core;transact(Y,Z){let X=this.toolkit;this.toolkit=Y,Z(this),this.toolkit=X}store;realm;[Symbol.dispose](){}constructor(Y,Z,X=o0.STORE){this.store=X,this.realm=new V9(X),this.options=Y,this.defaultContent=Z,this.store.miscResources.set(`join:${Y.key}`,this),this.realm.allocate("root",Y.key),this.toolkit={get:(...I)=>c1(X,...I),set:(...I)=>{w1(X,...I)},find:(...I)=>Q0(X,...I),json:(I)=>b4(X,I)};let _=Y.between[0],G=Y.between[1],$=PZ(X,{key:`${Y.key}/relatedKeys`,class:G4},["join","relations"]);this.core={relatedKeysAtoms:$};let W=({get:I},N)=>I($,N),H=({set:I},N,q)=>{if(!this.store.molecules.has(U0(N)))this.realm.allocate(Y.key,N);I($,N,(C)=>C.add(q)),I($,q,(C)=>C.add(N))},Q=({set:I},N,q)=>{I($,N,(C)=>{return C.delete(q),C}),I($,q,(C)=>{return C.delete(N),C})},J=(I,N,q)=>{let{find:C,get:p,set:s}=I,K=C($,N),a=p(K);for(let m of a){if(q.includes(m))continue;s($,m,(F0)=>{return F0.delete(N),F0})}s(K,(m)=>{return m.transaction((e)=>{e.clear();for(let F0 of q){let f0=W(I,F0),H1=f0.has(N);if(this.relations.cardinality==="1:n"){let n1=[];for(let B of f0){if(B===N)continue;let u=W(I,B);if(u.delete(F0),u.size===0)n1.push(B)}if(!H1&&f0.size>0)f0.clear();for(let B of n1){let u=[F0,B].sort(),G0=`"${u[0]}:${u[1]}"`;this.molecules.delete(G0)}}if(!H1)f0.add(N);e.add(F0)}return!0}),m})},U=(I,N,q)=>{let{set:C}=I;C($,N,(p)=>{return p.transaction((s)=>{for(let K of q)s.add(K);return!0}),p});for(let p of q)C($,p,(s)=>{return s.add(N),s});return!0},E=(I,N,q)=>{let C=W(I,N);return q?C.has(q):C.size>0},V={getRelatedKeys:(I)=>W(this.toolkit,I),addRelation:(I,N)=>{this.store.moleculeJoins.set(I,Y.key),this.store.moleculeJoins.set(N,Y.key),H(this.toolkit,I,N)},deleteRelation:(I,N)=>{Q(this.toolkit,I,N)},replaceRelationsSafely:(I,N)=>{J(this.toolkit,I,N)},replaceRelationsUnsafely:(I,N)=>{U(this.toolkit,I,N)},has:(I,N)=>E(this.toolkit,I,N)},L,R;if(Z){R=D2(X,{key:`${Y.key}/content`,default:Z},["join","content"]);let I=({get:C},p)=>C(R,p),N=({set:C},p,s)=>{C(R,p,s)};L=Object.assign(V,{getContent:(C)=>{return I(this.toolkit,C)},setContent:(C,p)=>{N(this.toolkit,C,p)},deleteContent:(C)=>{this.realm.deallocate(C)}})}else L=V;let M=new _1(Y,{externalStore:L,isAType:Y.isAType,isBType:Y.isBType,makeContentKey:(...I)=>{let[N,q]=I,C=I.sort(),p=`${C[0]}:${C[1]}`,s=X.molecules.get(U0(N)),K=X.molecules.get(U0(q));if(!s)this.realm.allocate(Y.key,N);if(!K)this.realm.allocate(Y.key,q);return this.realm.allocate(N,p,"all"),this.realm.claim(q,p),this.store.moleculeJoins.set(p,Y.key),p}}),y=()=>h4(X,{key:`${Y.key}/singleRelatedKey`,get:(I)=>({get:N})=>{let q=N($,I);for(let C of q)return C;return null}},["join","keys"]),k=()=>{return h4(X,{key:`${Y.key}/multipleRelatedKeys`,get:(I)=>({get:N})=>{let q=C9($,X);return N(q,I).members}},["join","keys"])},h=()=>h4(X,{key:`${Y.key}/singleRelatedEntry`,get:(I)=>({get:N})=>{let q=N($,I);for(let C of q){let p=M.isAType?.(I)?I:void 0,s=p===void 0?I:void 0;p??=C,s??=C;let K=M.makeContentKey(p,s),a=N(R,K);return[C,a]}return null}},["join","entries"]),f=()=>h4(X,{key:`${Y.key}/multipleRelatedEntries`,get:(I)=>({get:N})=>{let q=C9($,X);return N(q,I).members.map((p)=>{let s=M.isAType?.(I)?I:void 0,K=s===void 0?I:void 0;s??=p,K??=p;let a=M.makeContentKey(s,K),m=N(R,a);return[p,m]})}},["join","entries"]);switch(Y.cardinality){case"1:1":{let I=y(),N=`${_}KeyOf${T0(G)}`,q=`${G}KeyOf${T0(_)}`,C={[N]:I,[q]:I},p;if(Z){let s=h(),K=`${_}EntryOf${T0(G)}`,a=`${G}EntryOf${T0(_)}`,m={[K]:s,[a]:s};p=Object.assign(C,m)}else p=C;this.relations=M,this.states=p;break}case"1:n":{let I=y(),N=k(),q=`${_}KeyOf${T0(G)}`,C=`${G}KeysOf${T0(_)}`,p={[q]:I,[C]:N},s;if(Z){let K=h(),a=f(),m=`${_}EntryOf${T0(G)}`,e=`${G}EntriesOf${T0(_)}`,F0={[m]:K,[e]:a};s=Object.assign(p,F0)}else s=p;this.relations=M,this.states=s;break}case"n:n":{let I=k(),N=`${_}KeysOf${T0(G)}`,q=`${G}KeysOf${T0(_)}`,C={[N]:I,[q]:I},p;if(Z){let s=f(),K=`${_}EntriesOf${T0(G)}`,a=`${G}EntriesOf${T0(_)}`,m={[K]:s,[a]:s};p=Object.assign(C,m)}else p=C;this.relations=M,this.states=p}}}};function R9(Y,Z,X){return Y.joins.set(Z.key,new m9(Z,X,Y)),{key:Z.key,type:"join",a:Z.between[0],b:Z.between[1],cardinality:Z.cardinality}}function cZ(Y,Z){let X=Z.joins.get(Y.key);if(X===void 0){let G=o0.STORE.joins.get(Y.key);if(G===void 0)throw new Error(`Join "${Y.key}" not found in store "${Z.config.name}"`);X=new m9(G.options,G.defaultContent,Z),Z.joins.set(Y.key,X)}return X}function J8(Y,Z,X){let _=cZ(Y,X),G=o(X);if(G1(G)){let{toolkit:$}=G.transactionMeta;_.transact($,({relations:W})=>{Z(W)})}else Z(_.relations)}function N9(Y,Z,X){let _=cZ(Y,X),G;switch(Y.cardinality){case"1:1":{let $=`${Y.a}KeyOf${T0(Y.b)}`,W=`${Y.b}KeyOf${T0(Y.a)}`;G={get[$](){let Q=_.states[$];return Q0(X,Q,Z)},get[W](){let Q=_.states[W];return Q0(X,Q,Z)}};let H=`${Y.a}EntryOf${T0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntryOf${T0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return Q0(X,J,Z)},get[Q](){let J=_.states[Q];return Q0(X,J,Z)}})}break}case"1:n":{let $=`${Y.a}KeyOf${T0(Y.b)}`,W=`${Y.b}KeysOf${T0(Y.a)}`;G={get[$](){let Q=_.states[$];return Q0(X,Q,Z)},get[W](){let Q=_.states[W];return Q0(X,Q,Z)}};let H=`${Y.a}EntryOf${T0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntriesOf${T0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return Q0(X,J,Z)},get[Q](){let J=_.states[Q];return Q0(X,J,Z)}})}break}case"n:n":{let $=`${Y.a}KeysOf${T0(Y.b)}`,W=`${Y.b}KeysOf${T0(Y.a)}`;G={get[$](){let Q=_.states[$];return Q0(X,Q,Z)},get[W](){let Q=_.states[W];return Q0(X,Q,Z)}};let H=`${Y.a}EntriesOf${T0(Y.b)}`;if(H in _.states){let Q=`${Y.b}EntriesOf${T0(Y.a)}`;Object.assign(G,{get[H](){let J=_.states[H];return Q0(X,J,Z)},get[Q](){let J=_.states[Q];return Q0(X,J,Z)}})}}}return G}function I9(Y,Z){return cZ(Y,Z).core.relatedKeysAtoms}function M2(Y){return Y.startsWith("\uD83D\uDD0D ")}var YF=(Y)=>{return f4(Y,{key:"\uD83D\uDD0D Atom Token Index",default:()=>{let Z=new Map;for(let[X,_]of Y.atoms){if(M2(X))continue;let G=$4(_);if(_.family){let $=Z.get(_.family.key);if(!$||!("familyMembers"in $))$={key:_.family.key,familyMembers:new Map},Z.set(_.family.key,$);$.familyMembers.set(_.family.subKey,G)}else Z.set(X,G)}return Z},effects:[({setSelf:Z})=>{Y.on.atomCreation.subscribe("introspection",(X)=>{if(M2(X.key))return;Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W===void 0||!("familyMembers"in W))W={key:G,familyMembers:new Map},_.set(G,W);W.familyMembers.set($,X)}else _.set(X.key,X);return new Map(_)})}),Y.on.atomDisposal.subscribe("introspection",(X)=>{Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W&&"familyMembers"in W){if(W.familyMembers.delete($),W.familyMembers.size===0)_.delete(G)}}return new Map(_)})})}]},void 0)},ZF=(Y)=>{return f4(Y,{key:"\uD83D\uDD0D Selector Token Index",default:()=>{let Z=new Map;for(let X of[Y.readonlySelectors,Y.writableSelectors])for(let[_,G]of X){if(M2(_))continue;let $=$4(G);if(G.family){let W=Z.get(G.family.key);if(!W||!("familyMembers"in W))W={key:G.family.key,familyMembers:new Map},Z.set(G.family.key,W);W.familyMembers.set(G.family.subKey,$)}else Z.set(_,$)}return Z},effects:[({setSelf:Z})=>{Y.on.selectorCreation.subscribe("introspection",(X)=>{if(M2(X.key))return;Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W===void 0||!("familyMembers"in W))W={key:G,familyMembers:new Map},_.set(G,W);W.familyMembers.set($,X)}else _.set(X.key,X);return new Map(_)})}),Y.on.selectorDisposal.subscribe("introspection",(X)=>{Z((_)=>{if(X.family){let{key:G,subKey:$}=X.family,W=_.get(G);if(W&&"familyMembers"in W){if(W.familyMembers.delete($),W.familyMembers.size===0)_.delete(G)}}else _.delete(X.key);return new Map(_)})})}]},void 0)};var lZ=class{supported;constructor(Y){this.supported=Y}refine(Y){for(let[Z,X]of Object.entries(this.supported))try{if(X(Y)===!0&&X!==Boolean)return{type:Z,data:Y}}catch(_){try{if(Y instanceof X)return{type:Z,data:Y}}catch(G){}}return null}},d9=new lZ({number:(Y)=>typeof Y==="number",string:(Y)=>typeof Y==="string",boolean:(Y)=>typeof Y==="boolean",null:(Y)=>Y===null});function c9(Y){if(!Y)return!1;return Object.getPrototypeOf(Y)===Object.prototype}var l9=new lZ({object:c9,array:(Y)=>Array.isArray(Y)}),XF=new lZ({...d9.supported,...l9.supported}),A6=(Y)=>{if(Y===void 0)return"undefined";let Z=XF.refine(Y);if(Z)return Z.type;return Object.getPrototypeOf(Y).constructor.name};var mT=class Y{store;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(Z=o0.STORE){this.store=Z,this.atomIndex=YF(this.store),this.selectorIndex=ZF(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.set(X,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:X})=>{this.statesCreatedAt.delete(X)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(Z=Y.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let X=CZ(this.atomIndex),_=CZ(this.selectorIndex),G=[...X.values()].filter((Q)=>("familyMembers"in Q)),$=[..._.values()].filter((Q)=>("familyMembers"in Q)),W=performance.now(),H=[];if(Z.atomFamilies)for(let Q of G){let J=Q.familyMembers.values();for(let U of J){let V=this.statesCreatedAt.get(U.key)??this.auditorCreatedAt,L=W-V;H.push([U,L])}}if(Z.selectorFamilies)for(let Q of $){let J=Q.familyMembers.values();for(let U of J){let V=this.statesCreatedAt.get(U.key)??this.auditorCreatedAt,L=W-V;H.push([U,L])}}return H}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}},u9=(Y,Z)=>{let X=(_,G)=>{let W=((Q,J)=>{let U=Z(Q,J);if(U)return U;return null})(_,G);if(W?.jobComplete??W?.pathComplete)return W;let H=Array.isArray(G)?G.map((Q,J)=>[J,Q]):c9(G)?Object.entries(G):[];for(let[Q,J]of H){let U=X([..._,Q],J);if(U?.jobComplete)return U}return{}};X([],Y)};function _F(Y,Z){return{summary:`${Y<Z?"+":"-"}${Math.abs(Y-Z)} (${Y} \u2192 ${Z})`}}function GF(Y,Z){return{summary:`${Y.length<Z.length?"+":"-"}${Math.abs(Y.length-Z.length)} ("${Y}" \u2192 "${Z}")`}}function $F(Y,Z){return{summary:`${Y} \u2192 ${Z}`}}function o9(Y,Z,X){let _="",G=[],$=[],W=[];return u9(Y,(H,Q)=>{let J;for(J of H){let U=Z[J];if(U===void 0)$.push([J,JSON.stringify(Q)]);else{let E=X(Q,U);if(E.summary!=="No Change")W.push([J,E])}}}),u9(Z,(H,Q)=>{let J;for(J of H)if(Y[J]===void 0)G.push([J,JSON.stringify(Q)])}),_=`\uFF5E${W.length} \uFF0B${G.length} \uFF0D${$.length}`,{summary:_,added:G,removed:$,changed:W}}function WF(Y,Z,X){return o9(Y,Z,X)}var HF=class{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(Y,Z,X){this.leafRefinery=Y,this.treeRefinery=Z,this.leafDiffers={},this.treeDiffers={};for(let _ of Object.keys(Y.supported)){let G=X[_];this.leafDiffers[_]=G}for(let _ of Object.keys(Z.supported)){let G=X[_];this.treeDiffers[_]=G}}diff(Y,Z){if(Y===Z)return{summary:"No Change"};let X=this.leafRefinery.refine(Y)??this.treeRefinery.refine(Y),_=this.leafRefinery.refine(Z)??this.treeRefinery.refine(Z);if(X!==null&&_!==null){if(X.type===_.type){if(X.type in this.leafDiffers)return this.leafDiffers[X.type](X.data,_.data);if(X.type in this.treeDiffers)return this.treeDiffers[X.type](X.data,_.data,(H,Q)=>this.diff(H,Q))}}let G=A6(Y),$=A6(Z);if(G===$)return{summary:`${G} \u2192 ${$}`};return{summary:`Type change: ${G} \u2192 ${$}`}}},uT=new HF(d9,l9,{number:_F,string:GF,boolean:$F,null:()=>({summary:"No Change"}),object:o9,array:WF});var JF=class extends Map{set(Y,Z){if(this.has(Y))return console.warn("Tried to set a key that already exists in an InvariantMap",{key:Y,value:Z}),this;return super.set(Y,Z)}clear(){throw new Error("Cannot clear an InvariantMap")}},rT=class Y{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(Z){this.key=Z}static existing=new JF;static create(Z,X){let _=new Y(Z),{type:G,globals:$,actions:W,perspectives:H}=X(_),Q={type:G,key:Z,globals:$,actions:W,perspectives:H};return Y.existing.set(Z,Q),Q}add(...Z){switch(Z[0].type){case"atom":case"mutable_atom":this.globals.push(...Z);break;case"transaction":this.actions.push(...Z);break;case"atom_family":case"mutable_atom_family":{let[_,G]=Z;this.perspectives.push({type:"realtime_perspective",resourceAtoms:_,viewAtoms:G})}break}return this}};var nT=E2({key:"usersInRoomIndex",class:G4}),oZ=E2({key:"roomIndex",class:G4}),QF={enteredAtEpoch:0},z8=F6({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:(Y)=>typeof Y==="string",isBType:(Y)=>typeof Y==="string"},QF),sT=E6({key:"usersInMyRoomView",get:(Y)=>({find:Z})=>{let X=E9(z8);return[Z(X,Y)]}});import{spawn as UF}from"child_process";var iZ=class{listeners;globalListeners;handleEvent(Y,...Z){for(let _ of this.globalListeners)_(Y,...Z);let X=this.listeners.get(Y);if(X)for(let _ of X)_(...Z)}id="no_id_retrieved";emit;constructor(Y){this.emit=Y,this.listeners=new Map,this.globalListeners=new Set}on(Y,Z){let X=this.listeners.get(Y);if(X)X.add(Z);else this.listeners.set(Y,new Set([Z]));return this}onAny(Y){return this.globalListeners.add(Y),this}off(Y,Z){let X=this.listeners.get(Y);if(X)if(Z)X.delete(Z);else this.listeners.delete(Y);return this}offAny(Y){return this.globalListeners.delete(Y),this}},zF=class extends iZ{incompleteData="";unprocessedEvents=[];incompleteLog="";unprocessedLogs=[];id="#####";process;key;logger;handleLog(Y){if(Array.isArray(Y)){let[Z,...X]=Y;switch(Z){case"i":this.logger.info(...X);break;case"w":this.logger.warn(...X);break;case"e":this.logger.error(...X);break;default:return}}}constructor(Y,Z,X){super((_,...G)=>{let $=JSON.stringify([_,...G])+"\x03",W=(H)=>{if(H.code==="EPIPE")console.error("EPIPE error during write",this.process.stdin);this.process.stdin.removeListener("error",W)};return this.process.stdin.once("error",W),this.process.stdin.write($),this});if(this.process=Y,this.key=Z,this.logger=X??{info:(..._)=>{console.info(this.id,this.key,..._)},warn:(..._)=>{console.warn(this.id,this.key,..._)},error:(..._)=>{console.error(this.id,this.key,..._)}},this.process.stdout.on("data",(_)=>{let G=_.toString();if(G==="ALIVE")return;this.unprocessedEvents.push(...G.split("\x03"));let $=this.unprocessedEvents.shift();this.incompleteData+=$??"";try{if(this.incompleteData.startsWith("error"))console.log("\u2757",this.incompleteData);let W=O1(this.incompleteData);this.handleEvent(...W);while(this.unprocessedEvents.length>0){let H=this.unprocessedEvents.shift();if(H){if(this.unprocessedEvents.length===0)this.incompleteData=H;W=O1(H),this.handleEvent(...W)}}this.incompleteData=""}catch(W){console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.warn(this.incompleteData),console.warn("\u26A0\uFE0F----------------\u26A0\uFE0F"),console.error(W)}}),this.process.stderr.on("data",(_)=>{let G=_.toString();this.unprocessedLogs.push(...G.split("\x03"));let $=this.unprocessedLogs.shift();this.incompleteLog+=$??"";try{let W=O1(this.incompleteLog);this.handleLog(W);while(this.unprocessedLogs.length>0)if(this.incompleteLog=this.unprocessedLogs.shift()??"",this.incompleteLog)W=O1(this.incompleteLog),this.handleLog(W)}catch(W){console.error("\u274C\u274C\u274C"),console.error(this.incompleteLog),console.error(W),console.error("\u274C\u274C\u274C\uFE0F")}}),Y.pid)this.id=Y.pid.toString()}},FF=class extends iZ{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(Y){super((...Z)=>{return this.out.next(Z),this});this.id=Y,this.in=new W0,this.out=new W0,this.in.subscribe("socket",(Z)=>{this.handleEvent(...Z)})}dispose(){for(let Y of this.disposalFunctions)Y()}},i9=class extends iZ{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...Y){this.process.stderr.write(U0(Y.map((Z)=>Z instanceof G4?`{ ${Z.toJSON().members.join(" | ")} }`:Z))+"\x03")}logger={info:(...Y)=>{this.log("i",...Y)},warn:(...Y)=>{this.log("w",...Y)},error:(...Y)=>{this.log("e",...Y)}};constructor(){super((Y,...Z)=>{let X=JSON.stringify([Y,...Z]);return this.process.stdout.write(X+"\x03"),this});if(this.process=process,this.process.stdin.resume(),this.relays=new Map,this.relayServices=[],this.process.stdin.on("data",(Y)=>{let Z=Y.toString();this.unprocessedEvents.push(...Z.split("\x03"));let X=this.unprocessedEvents.shift();this.incompleteData+=X??"";try{let _=O1(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",_),this.handleEvent(..._);while(this.unprocessedEvents.length>0){let G=this.unprocessedEvents.shift();if(G){if(this.unprocessedEvents.length===0)this.incompleteData=G;let $=O1(G);this.handleEvent(...$)}}this.incompleteData=""}catch(_){if(_ instanceof Error)this.logger.error("\u2757",_.message,_.cause,_.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(Y)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${Y}`)}),process.on("end",()=>{this.logger.info("\uD83D\uDD25",this.id,"ended"),process.exit(0)}),process.on("SIGTERM",()=>{this.logger.error("\uD83D\uDD25",this.id,"terminated"),process.exit(0)}),process.on("SIGINT",()=>{this.logger.error("\uD83D\uDD25",this.id,"interrupted"),process.exit(0)}),process.pid)this.id=process.pid?.toString();this.on("user-joins",(Y)=>{this.logger.info("\uD83D\uDC64","user",Y,"joined");let Z=new FF(`user:${Y}`);this.relays.set(Y,Z),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let X of this.relayServices){let _=X(Z);if(_)Z.disposalFunctions.push(_)}this.on(`user:${Y}`,(...X)=>{Z.in.next(X)}),Z.out.subscribe("socket",(X)=>{this.emit(...X)})}),this.on("user-leaves",(Y)=>{let Z=this.relays.get(Y);if(this.off(`relay:${Y}`),Z)Z.dispose(),this.relays.delete(Y)}),process.stdout.write("ALIVE")}relay(Y){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(Y)}},r9=G8({key:"roomArguments",default:["echo",["Hello World!"]]}),EF=E6({key:"room",get:(Y)=>async({get:Z,find:X})=>{let _=X(r9,Y),G=Z(_),[$,W]=G,H=await new Promise((Q)=>{let J=UF($,W,{env:process.env}),U=(E)=>{if(E.toString()==="ALIVE")J.stdout.off("data",U),Q(J)};J.stdout.on("data",U)});return new zF(H,Y)}}),WK=$8({key:"createRoom",do:({get:Y,set:Z,find:X},_,G,$)=>{let W=$?[G,$]:[G],H=X(r9,_);Z(H,W),Z(oZ,(U)=>U.add(_));let Q=X(EF,_);return Y(Q)}}),HK=$8({key:"joinRoom",do:(Y,Z,X,_)=>{let G={enteredAtEpoch:_};return J8(z8,($)=>{$.set({room:Z,user:X},G)},Y.env().store),G}}),JK=$8({key:"leaveRoom",do:(Y,Z,X)=>{J8(z8,(_)=>{_.delete({room:Z,user:X})},Y.env().store)}}),QK=$8({key:"destroyRoom",do:(Y,Z)=>{J8(z8,(X)=>{X.delete({room:Z})},Y.env().store),Y.set(oZ,(X)=>(X.delete(Z),X))}});var UK=G8({key:"redactor",default:{occlude:(Y)=>Y}}),zK=G8({key:"unacknowledgedUpdates",default:()=>[]}),FK=G8({key:"sockets",default:null}),EK=E2({key:"socketsIndex",class:G4}),OK=E2({key:"usersIndex",class:G4}),VK=F6({key:"usersOfSockets",between:["user","socket"],cardinality:"1:1",isAType:(Y)=>Y.startsWith("user::"),isBType:(Y)=>Y.startsWith("socket::")});var{file:B3,serve:jE}=globalThis.Bun;import{readFileSync as t9}from"fs";import{createServer as LF}from"http";import{createServer as MF}from"https";import{resolve as nZ}from"path";function n9(Y,Z){if(Y instanceof Promise)throw new Error(Z)}function OF(Y,Z){let X={},_=[];for(let G in Y){let $=Y[G]["~standard"].validate(Z[G]);if(n9($,`Validation must be synchronous, but ${G} returned a Promise.`),$.issues){_.push(...$.issues.map((W)=>({...W,message:W.message,path:[G,...W.path??[]]})));continue}X[G]=$.value}if(_.length)return{issues:_};return{value:X}}function rZ(Y){let Z=Y.runtimeEnvStrict??Y.runtimeEnv??process.env;if(Y.emptyStringAsUndefined??!1){for(let[h,f]of Object.entries(Z))if(f==="")delete Z[h]}if(!!Y.skipValidation)return Z;let G=typeof Y.client==="object"?Y.client:{},$=typeof Y.server==="object"?Y.server:{},W=typeof Y.shared==="object"?Y.shared:{},H=Y.isServer??(typeof window==="undefined"||("Deno"in window)),Q=H?{...$,...W,...G}:{...G,...W},J=Y.createFinalSchema?.(Q,H)["~standard"].validate(Z)??OF(Q,Z);n9(J,"Validation must be synchronous");let U=Y.onValidationError??((h)=>{throw console.error("\u274C Invalid environment variables:",h),new Error("Invalid environment variables")}),E=Y.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(J.issues)return U(J.issues);let V=(h)=>{if(!Y.clientPrefix)return!0;return!h.startsWith(Y.clientPrefix)&&!(h in W)},L=(h)=>{return H||!V(h)},R=(h)=>{return h==="__esModule"||h==="$$typeof"},M=(Y.extends??[]).reduce((h,f)=>{return Object.assign(h,f)},{}),y=Object.assign(M,J.value);return new Proxy(y,{get(h,f){if(typeof f!=="string")return;if(R(f))return;if(!L(f))return E(f);return Reflect.get(h,f)}})}var VF="__vite_start_time"in globalThis,DF=typeof window!=="undefined",BK="vitest"in globalThis,W4=E1("string"),s9=E1('"true" | "false" | undefined'),k1=rZ({isServer:!VF&&!DF,server:{CI:E1("string | undefined").pipe(Boolean),POSTGRES_USER:W4,POSTGRES_PASSWORD:W4,POSTGRES_DATABASE:W4,POSTGRES_HOST:W4,POSTGRES_PORT:W4.pipe((Y)=>Number.parseInt(Y,10)),BACKEND_PORT:W4.pipe((Y)=>Number.parseInt(Y,10)),RUN_WORKERS_FROM_SOURCE:s9.pipe((Y)=>Y==="true"),FRONTEND_PORT:W4.pipe((Y)=>Number.parseInt(Y,10)),FRONTEND_ORIGINS:W4.pipe.try((Y)=>JSON.parse(Y),E1("string[]")),API_KEY_OPENAI:E1("string | undefined"),API_KEY_RESEND:E1("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:W4,VITE_DEV_FRONTEND_HOST:E1("string | undefined"),VITE_DEV_HTTPS:s9.pipe((Y)=>Y==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var a9=nZ(import.meta.dirname,"../dev"),w6=k1.VITE_DEV_HTTPS?{cert:t9(nZ(a9,"./cert.pem"),"utf-8"),key:t9(nZ(a9,"./key.pem"),"utf-8")}:void 0;function xK(Y){if(w6)return MF(w6,Y);return LF({},Y)}import NE from"path";var F=Symbol.for("drizzle:entityKind");function A(Y,Z){if(!Y||typeof Y!=="object")return!1;if(Y instanceof Z)return!0;if(!Object.prototype.hasOwnProperty.call(Z,F))throw new Error(`Class "${Z.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let X=Object.getPrototypeOf(Y).constructor;if(X)while(X){if(F in X&&X[F]===Z[F])return!0;X=Object.getPrototypeOf(X)}return!1}class O0{constructor(Y,Z){this.table=Y,this.config=Z,this.name=Z.name,this.keyAsName=Z.keyAsName,this.notNull=Z.notNull,this.default=Z.default,this.defaultFn=Z.defaultFn,this.onUpdateFn=Z.onUpdateFn,this.hasDefault=Z.hasDefault,this.primary=Z.primaryKey,this.isUnique=Z.isUnique,this.uniqueName=Z.uniqueName,this.uniqueType=Z.uniqueType,this.dataType=Z.dataType,this.columnType=Z.columnType,this.generated=Z.generated,this.generatedIdentity=Z.generatedIdentity}static[F]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(Y){return Y}mapToDriverValue(Y){return Y}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class sZ{static[F]="ColumnBuilder";config;constructor(Y,Z,X){this.config={name:Y,keyAsName:Y==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:Z,columnType:X,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(Y){return this.config.default=Y,this.config.hasDefault=!0,this}$defaultFn(Y){return this.config.defaultFn=Y,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(Y){return this.config.onUpdateFn=Y,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(Y){if(this.config.name!=="")return;this.config.name=Y}}var b1=Symbol.for("drizzle:Name");class tZ{static[F]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(Y,Z){if(this.reference=()=>{let{name:X,columns:_,foreignColumns:G}=Y();return{name:X,columns:_,foreignTable:G[0].table,foreignColumns:G}},Z)this._onUpdate=Z.onUpdate,this._onDelete=Z.onDelete}onUpdate(Y){return this._onUpdate=Y===void 0?"no action":Y,this}onDelete(Y){return this._onDelete=Y===void 0?"no action":Y,this}build(Y){return new e9(Y,this)}}class e9{constructor(Y,Z){this.table=Y,this.reference=Z.reference,this.onUpdate=Z._onUpdate,this.onDelete=Z._onDelete}static[F]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:Y,columns:Z,foreignColumns:X}=this.reference(),_=Z.map((W)=>W.name),G=X.map((W)=>W.name),$=[this.table[b1],..._,X[0].table[b1],...G];return Y??`${$.join("_")}_fk`}}function R6(Y,...Z){return Y(...Z)}function Y7(Y,Z){return`${Y[b1]}_${Z.join("_")}_unique`}function Z7(Y,Z,X){for(let _=Z;_<Y.length;_++){let G=Y[_];if(G==="\\"){_++;continue}if(G==='"')return[Y.slice(Z,_).replace(/\\/g,""),_+1];if(X)continue;if(G===","||G==="}")return[Y.slice(Z,_).replace(/\\/g,""),_]}return[Y.slice(Z).replace(/\\/g,""),Y.length]}function X7(Y,Z=0){let X=[],_=Z,G=!1;while(_<Y.length){let $=Y[_];if($===","){if(G||_===Z)X.push("");G=!0,_++;continue}if(G=!1,$==="\\"){_+=2;continue}if($==='"'){let[Q,J]=Z7(Y,_+1,!0);X.push(Q),_=J;continue}if($==="}")return[X,_+1];if($==="{"){let[Q,J]=X7(Y,_+1);X.push(Q),_=J;continue}let[W,H]=Z7(Y,_,!1);X.push(W),_=H}return[X,_]}function _7(Y){let[Z]=X7(Y,1);return Z}function aZ(Y){return`{${Y.map((Z)=>{if(Array.isArray(Z))return aZ(Z);if(typeof Z==="string")return`"${Z.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${Z}`}).join(",")}}`}class b extends sZ{foreignKeyConfigs=[];static[F]="PgColumnBuilder";array(Y){return new $7(this.config.name,this,Y)}references(Y,Z={}){return this.foreignKeyConfigs.push({ref:Y,actions:Z}),this}unique(Y,Z){return this.config.isUnique=!0,this.config.uniqueName=Y,this.config.uniqueType=Z?.nulls,this}generatedAlwaysAs(Y){return this.config.generated={as:Y,type:"always",mode:"stored"},this}buildForeignKeys(Y,Z){return this.foreignKeyConfigs.map(({ref:X,actions:_})=>{return R6((G,$)=>{let W=new tZ(()=>{let H=G();return{columns:[Y],foreignColumns:[H]}});if($.onUpdate)W.onUpdate($.onUpdate);if($.onDelete)W.onDelete($.onDelete);return W.build(Z)},X,_)})}buildExtraConfigColumn(Y){return new G7(Y,this.config)}}class j extends O0{constructor(Y,Z){if(!Z.uniqueName)Z.uniqueName=Y7(Y,[Z.name]);super(Y,Z);this.table=Y}static[F]="PgColumn"}class G7 extends j{static[F]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(Y){return this.indexConfig.opClass=Y,this}}class F8{static[F]="IndexedColumn";constructor(Y,Z,X,_){this.name=Y,this.keyAsName=Z,this.type=X,this.indexConfig=_}name;keyAsName;type;indexConfig}class $7 extends b{static[F]="PgArrayBuilder";constructor(Y,Z,X){super(Y,"array","PgArray");this.config.baseBuilder=Z,this.config.size=X}build(Y){let Z=this.config.baseBuilder.build(Y);return new eZ(Y,this.config,Z)}}class eZ extends j{constructor(Y,Z,X,_){super(Y,Z);this.baseColumn=X,this.range=_,this.size=Z.size}size;static[F]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(Y){if(typeof Y==="string")Y=_7(Y);return Y.map((Z)=>this.baseColumn.mapFromDriverValue(Z))}mapToDriverValue(Y,Z=!1){let X=Y.map((_)=>_===null?null:A(this.baseColumn,eZ)?this.baseColumn.mapToDriverValue(_,!0):this.baseColumn.mapToDriverValue(_));if(Z)return X;return aZ(X)}}class W7 extends b{static[F]="PgEnumObjectColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumObjectColumn");this.config.enum=Z}build(Y){return new H7(Y,this.config)}}class H7 extends j{static[F]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}var N6=Symbol.for("drizzle:isPgEnum");function J7(Y){return!!Y&&typeof Y==="function"&&N6 in Y&&Y[N6]===!0}class Q7 extends b{static[F]="PgEnumColumnBuilder";constructor(Y,Z){super(Y,"string","PgEnumColumn");this.config.enum=Z}build(Y){return new U7(Y,this.config)}}class U7 extends j{static[F]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(Y,Z){super(Y,Z);this.enum=Z.enum}getSQLType(){return this.enum.enumName}}function E8(Y,Z){return Array.isArray(Z)?AF(Y,[...Z],void 0):wF(Y,Z,void 0)}function AF(Y,Z,X){let _=Object.assign((G)=>new Q7(G??"",_),{enumName:Y,enumValues:Z,schema:X,[N6]:!0});return _}function wF(Y,Z,X){let _=Object.assign((G)=>new W7(G??"",_),{enumName:Y,enumValues:Object.values(Z),schema:X,[N6]:!0});return _}class S0{static[F]="Subquery";constructor(Y,Z,X,_=!1,G=[]){this._={brand:"Subquery",sql:Y,selectedFields:Z,alias:X,isWith:_,usedTables:G}}}class O8 extends S0{static[F]="WithSubquery"}var z7="0.44.4";var Y5,Z5,V0={startActiveSpan(Y,Z){if(!Y5)return Z();if(!Z5)Z5=Y5.trace.getTracer("drizzle-orm",z7);return R6((X,_)=>_.startActiveSpan(Y,(G)=>{try{return Z(G)}catch($){throw G.setStatus({code:X.SpanStatusCode.ERROR,message:$ instanceof Error?$.message:"Unknown error"}),$}finally{G.end()}}),Y5,Z5)}};var A0=Symbol.for("drizzle:ViewBaseConfig");var y4=Symbol.for("drizzle:Schema"),I6=Symbol.for("drizzle:Columns"),F7=Symbol.for("drizzle:ExtraConfigColumns"),X5=Symbol.for("drizzle:OriginalName"),_5=Symbol.for("drizzle:BaseName"),V8=Symbol.for("drizzle:IsAlias"),E7=Symbol.for("drizzle:ExtraConfigBuilder"),RF=Symbol.for("drizzle:IsDrizzleTable");class S{static[F]="Table";static Symbol={Name:b1,Schema:y4,OriginalName:X5,Columns:I6,ExtraConfigColumns:F7,BaseName:_5,IsAlias:V8,ExtraConfigBuilder:E7};[b1];[X5];[y4];[I6];[F7];[_5];[V8]=!1;[RF]=!0;[E7]=void 0;constructor(Y,Z,X){this[b1]=this[X5]=Y,this[y4]=Z,this[_5]=X}}function d0(Y){return Y[b1]}function g4(Y){return`${Y[y4]??"public"}.${Y[b1]}`}function G5(Y){return Y!==null&&Y!==void 0&&typeof Y.getSQL==="function"}function NF(Y){let Z={sql:"",params:[]};for(let X of Y)if(Z.sql+=X.sql,Z.params.push(...X.params),X.typings?.length){if(!Z.typings)Z.typings=[];Z.typings.push(...X.typings)}return Z}class p0{static[F]="StringChunk";value;constructor(Y){this.value=Array.isArray(Y)?Y:[Y]}getSQL(){return new x([this])}}class x{constructor(Y){this.queryChunks=Y;for(let Z of Y)if(A(Z,S)){let X=Z[S.Symbol.Schema];this.usedTables.push(X===void 0?Z[S.Symbol.Name]:X+"."+Z[S.Symbol.Name])}}static[F]="SQL";decoder=V7;shouldInlineParams=!1;usedTables=[];append(Y){return this.queryChunks.push(...Y.queryChunks),this}toQuery(Y){return V0.startActiveSpan("drizzle.buildSQL",(Z)=>{let X=this.buildQueryFromSourceParams(this.queryChunks,Y);return Z?.setAttributes({"drizzle.query.text":X.sql,"drizzle.query.params":JSON.stringify(X.params)}),X})}buildQueryFromSourceParams(Y,Z){let X=Object.assign({},Z,{inlineParams:Z.inlineParams||this.shouldInlineParams,paramStartIndex:Z.paramStartIndex||{value:0}}),{casing:_,escapeName:G,escapeParam:$,prepareTyping:W,inlineParams:H,paramStartIndex:Q}=X;return NF(Y.map((J)=>{if(A(J,p0))return{sql:J.value.join(""),params:[]};if(A(J,T6))return{sql:G(J.value),params:[]};if(J===void 0)return{sql:"",params:[]};if(Array.isArray(J)){let U=[new p0("(")];for(let[E,V]of J.entries())if(U.push(V),E<J.length-1)U.push(new p0(", "));return U.push(new p0(")")),this.buildQueryFromSourceParams(U,X)}if(A(J,x))return this.buildQueryFromSourceParams(J.queryChunks,{...X,inlineParams:H||J.shouldInlineParams});if(A(J,S)){let U=J[S.Symbol.Schema],E=J[S.Symbol.Name];return{sql:U===void 0||J[V8]?G(E):G(U)+"."+G(E),params:[]}}if(A(J,O0)){let U=_.getColumnCasing(J);if(Z.invokeSource==="indexes")return{sql:G(U),params:[]};let E=J.table[S.Symbol.Schema];return{sql:J.table[V8]||E===void 0?G(J.table[S.Symbol.Name])+"."+G(U):G(E)+"."+G(J.table[S.Symbol.Name])+"."+G(U),params:[]}}if(A(J,V1)){let U=J[A0].schema,E=J[A0].name;return{sql:U===void 0||J[A0].isAlias?G(E):G(U)+"."+G(E),params:[]}}if(A(J,R1)){if(A(J.value,N4))return{sql:$(Q.value++,J),params:[J],typings:["none"]};let U=J.value===null?null:J.encoder.mapToDriverValue(J.value);if(A(U,x))return this.buildQueryFromSourceParams([U],X);if(H)return{sql:this.mapInlineParam(U,X),params:[]};let E=["none"];if(W)E=[W(J.encoder)];return{sql:$(Q.value++,U),params:[U],typings:E}}if(A(J,N4))return{sql:$(Q.value++,J),params:[J],typings:["none"]};if(A(J,x.Aliased)&&J.fieldAlias!==void 0)return{sql:G(J.fieldAlias),params:[]};if(A(J,S0)){if(J._.isWith)return{sql:G(J._.alias),params:[]};return this.buildQueryFromSourceParams([new p0("("),J._.sql,new p0(") "),new T6(J._.alias)],X)}if(J7(J)){if(J.schema)return{sql:G(J.schema)+"."+G(J.enumName),params:[]};return{sql:G(J.enumName),params:[]}}if(G5(J)){if(J.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([J.getSQL()],X);return this.buildQueryFromSourceParams([new p0("("),J.getSQL(),new p0(")")],X)}if(H)return{sql:this.mapInlineParam(J,X),params:[]};return{sql:$(Q.value++,J),params:[J],typings:["none"]}}))}mapInlineParam(Y,{escapeString:Z}){if(Y===null)return"null";if(typeof Y==="number"||typeof Y==="boolean")return Y.toString();if(typeof Y==="string")return Z(Y);if(typeof Y==="object"){let X=Y.toString();if(X==="[object Object]")return Z(JSON.stringify(Y));return Z(X)}throw new Error("Unexpected param value: "+Y)}getSQL(){return this}as(Y){if(Y===void 0)return this;return new x.Aliased(this,Y)}mapWith(Y){return this.decoder=typeof Y==="function"?{mapFromDriverValue:Y}:Y,this}inlineParams(){return this.shouldInlineParams=!0,this}if(Y){return Y?this:void 0}}class T6{constructor(Y){this.value=Y}static[F]="Name";brand;getSQL(){return new x([this])}}function O7(Y){return typeof Y==="object"&&Y!==null&&"mapToDriverValue"in Y&&typeof Y.mapToDriverValue==="function"}var V7={mapFromDriverValue:(Y)=>Y},D7={mapToDriverValue:(Y)=>Y},NB={...V7,...D7};class R1{constructor(Y,Z=D7){this.value=Y,this.encoder=Z}static[F]="Param";brand;getSQL(){return new x([this])}}function O(Y,...Z){let X=[];if(Z.length>0||Y.length>0&&Y[0]!=="")X.push(new p0(Y[0]));for(let[_,G]of Z.entries())X.push(G,new p0(Y[_+1]));return new x(X)}((Y)=>{function Z(){return new x([])}Y.empty=Z;function X(Q){return new x(Q)}Y.fromList=X;function _(Q){return new x([new p0(Q)])}Y.raw=_;function G(Q,J){let U=[];for(let[E,V]of Q.entries()){if(E>0&&J!==void 0)U.push(J);U.push(V)}return new x(U)}Y.join=G;function $(Q){return new T6(Q)}Y.identifier=$;function W(Q){return new N4(Q)}Y.placeholder=W;function H(Q,J){return new R1(Q,J)}Y.param=H})(O||(O={}));((Y)=>{class Z{constructor(X,_){this.sql=X,this.fieldAlias=_}static[F]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new Z(this.sql,this.fieldAlias)}}Y.Aliased=Z})(x||(x={}));class N4{constructor(Y){this.name=Y}static[F]="Placeholder";getSQL(){return new x([this])}}function $5(Y,Z){return Y.map((X)=>{if(A(X,N4)){if(!(X.name in Z))throw new Error(`No value for placeholder "${X.name}" was provided`);return Z[X.name]}if(A(X,R1)&&A(X.value,N4)){if(!(X.value.name in Z))throw new Error(`No value for placeholder "${X.value.name}" was provided`);return X.encoder.mapToDriverValue(Z[X.value.name])}return X})}var IF=Symbol.for("drizzle:IsDrizzleView");class V1{static[F]="View";[A0];[IF]=!0;constructor({name:Y,schema:Z,selectedFields:X,query:_}){this[A0]={name:Y,originalName:Y,schema:Z,selectedFields:X,query:_,isExisting:!_,isAlias:!1}}getSQL(){return new x([this])}}O0.prototype.getSQL=function(){return new x([this])};S.prototype.getSQL=function(){return new x([this])};S0.prototype.getSQL=function(){return new x([this])};class A2{constructor(Y){this.table=Y}static[F]="ColumnAliasProxyHandler";get(Y,Z){if(Z==="table")return this.table;return Y[Z]}}class D8{constructor(Y,Z){this.alias=Y,this.replaceOriginalName=Z}static[F]="TableAliasProxyHandler";get(Y,Z){if(Z===S.Symbol.IsAlias)return!0;if(Z===S.Symbol.Name)return this.alias;if(this.replaceOriginalName&&Z===S.Symbol.OriginalName)return this.alias;if(Z===A0)return{...Y[A0],name:this.alias,isAlias:!0};if(Z===S.Symbol.Columns){let _=Y[S.Symbol.Columns];if(!_)return _;let G={};return Object.keys(_).map(($)=>{G[$]=new Proxy(_[$],new A2(new Proxy(Y,this)))}),G}let X=Y[Z];if(A(X,O0))return new Proxy(X,new A2(new Proxy(Y,this)));return X}}function K6(Y,Z){return new Proxy(Y,new D8(Z,!1))}function i1(Y,Z){return new Proxy(Y,new A2(new Proxy(Y.table,new D8(Z,!1))))}function W5(Y,Z){return new x.Aliased(L8(Y.sql,Z),Y.fieldAlias)}function L8(Y,Z){return O.join(Y.queryChunks.map((X)=>{if(A(X,O0))return i1(X,Z);if(A(X,x))return L8(X,Z);if(A(X,x.Aliased))return W5(X,Z);return X}))}class B6 extends Error{static[F]="DrizzleError";constructor({message:Y,cause:Z}){super(Y);this.name="DrizzleError",this.cause=Z}}class H4 extends Error{constructor(Y,Z,X){super(`Failed query: ${Y}
|
|
61
61
|
params: ${Z}`);if(this.query=Y,this.params=Z,this.cause=X,Error.captureStackTrace(this,H4),X)this.cause=X}}class H5 extends B6{static[F]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class L7{static[F]="ConsoleLogWriter";write(Y){console.log(Y)}}class J5{static[F]="DefaultLogger";writer;constructor(Y){this.writer=Y?.writer??new L7}logQuery(Y,Z){let X=Z.map((G)=>{try{return JSON.stringify(G)}catch{return String(G)}}),_=X.length?` -- params: [${X.join(", ")}]`:"";this.writer.write(`Query: ${Y}${_}`)}}class Q5{static[F]="NoopLogger";logQuery(){}}class $1{static[F]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(Y){return this.then(void 0,Y)}finally(Y){return this.then((Z)=>{return Y?.(),Z},(Z)=>{throw Y?.(),Z})}then(Y,Z){return this.execute().then(Y,Z)}}function M7(Y,Z,X){let _={},G=Y.reduce(($,{path:W,field:H},Q)=>{let J;if(A(H,O0))J=H;else if(A(H,x))J=H.decoder;else J=H.sql.decoder;let U=$;for(let[E,V]of W.entries())if(E<W.length-1){if(!(V in U))U[V]={};U=U[V]}else{let L=Z[Q],R=U[V]=L===null?null:J.mapFromDriverValue(L);if(X&&A(H,O0)&&W.length===2){let M=W[0];if(!(M in _))_[M]=R===null?d0(H.table):!1;else if(typeof _[M]==="string"&&_[M]!==d0(H.table))_[M]=!1}}return $},{});if(X&&Object.keys(_).length>0){for(let[$,W]of Object.entries(_))if(typeof W==="string"&&!X[W])G[$]=null}return G}function C1(Y,Z){return Object.entries(Y).reduce((X,[_,G])=>{if(typeof _!=="string")return X;let $=Z?[...Z,_]:[_];if(A(G,O0)||A(G,x)||A(G,x.Aliased))X.push({path:$,field:G});else if(A(G,S))X.push(...C1(G[S.Symbol.Columns],$));else X.push(...C1(G,$));return X},[])}function M8(Y,Z){let X=Object.keys(Y),_=Object.keys(Z);if(X.length!==_.length)return!1;for(let[G,$]of X.entries())if($!==_[G])return!1;return!0}function C6(Y,Z){let X=Object.entries(Z).filter(([,_])=>_!==void 0).map(([_,G])=>{if(A(G,x)||A(G,O0))return[_,G];else return[_,new R1(G,Y[S.Symbol.Columns][_])]});if(X.length===0)throw new Error("No values to set");return Object.fromEntries(X)}function A7(Y,Z){for(let X of Z)for(let _ of Object.getOwnPropertyNames(X.prototype)){if(_==="constructor")continue;Object.defineProperty(Y.prototype,_,Object.getOwnPropertyDescriptor(X.prototype,_)||Object.create(null))}}function w7(Y){return Y[S.Symbol.Columns]}function J4(Y){return A(Y,S0)?Y._.alias:A(Y,V1)?Y[A0].name:A(Y,x)?void 0:Y[S.Symbol.IsAlias]?Y[S.Symbol.Name]:Y[S.Symbol.BaseName]}function X0(Y,Z){return{name:typeof Y==="string"&&Y.length>0?Y:"",config:typeof Y==="object"?Y:Z}}function R7(Y){if(typeof Y!=="object"||Y===null)return!1;if(Y.constructor.name!=="Object")return!1;if("logger"in Y){let Z=typeof Y.logger;if(Z!=="boolean"&&(Z!=="object"||typeof Y.logger.logQuery!=="function")&&Z!=="undefined")return!1;return!0}if("schema"in Y){let Z=typeof Y.schema;if(Z!=="object"&&Z!=="undefined")return!1;return!0}if("casing"in Y){let Z=typeof Y.casing;if(Z!=="string"&&Z!=="undefined")return!1;return!0}if("mode"in Y){if(Y.mode!=="default"||Y.mode!=="planetscale"||Y.mode!==void 0)return!1;return!0}if("connection"in Y){let Z=typeof Y.connection;if(Z!=="string"&&Z!=="object"&&Z!=="undefined")return!1;return!0}if("client"in Y){let Z=typeof Y.client;if(Z!=="object"&&Z!=="function"&&Z!=="undefined")return!1;return!0}if(Object.keys(Y).length===0)return!0;return!1}class I4 extends b{static[F]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(Y){if(Y){let{name:Z,...X}=Y;this.config.generatedIdentity={type:"always",sequenceName:Z,sequenceOptions:X}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(Y){if(Y){let{name:Z,...X}=Y;this.config.generatedIdentity={type:"byDefault",sequenceName:Z,sequenceOptions:X}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class N7 extends I4{static[F]="PgBigInt53Builder";constructor(Y){super(Y,"number","PgBigInt53")}build(Y){return new I7(Y,this.config)}}class I7 extends j{static[F]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class T7 extends I4{static[F]="PgBigInt64Builder";constructor(Y){super(Y,"bigint","PgBigInt64")}build(Y){return new K7(Y,this.config)}}class K7 extends j{static[F]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(Y){return BigInt(Y)}}function B7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new N7(X);return new T7(X)}class C7 extends b{static[F]="PgBigSerial53Builder";constructor(Y){super(Y,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new q7(Y,this.config)}}class q7 extends j{static[F]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}}class j7 extends b{static[F]="PgBigSerial64Builder";constructor(Y){super(Y,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(Y){return new S7(Y,this.config)}}class S7 extends j{static[F]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(Y){return BigInt(Y)}}function P7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_.mode==="number")return new C7(X);return new j7(X)}class v7 extends b{static[F]="PgBooleanBuilder";constructor(Y){super(Y,"boolean","PgBoolean")}build(Y){return new x7(Y,this.config)}}class x7 extends j{static[F]="PgBoolean";getSQLType(){return"boolean"}}function A8(Y){return new v7(Y??"")}class f7 extends b{static[F]="PgCharBuilder";constructor(Y,Z){super(Y,"string","PgChar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new h7(Y,this.config)}}class h7 extends j{static[F]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function k7(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new f7(X,_)}class b7 extends b{static[F]="PgCidrBuilder";constructor(Y){super(Y,"string","PgCidr")}build(Y){return new y7(Y,this.config)}}class y7 extends j{static[F]="PgCidr";getSQLType(){return"cidr"}}function g7(Y){return new b7(Y??"")}class p7 extends b{static[F]="PgCustomColumnBuilder";constructor(Y,Z,X){super(Y,"custom","PgCustomColumn");this.config.fieldConfig=Z,this.config.customTypeParams=X}build(Y){return new m7(Y,this.config)}}class m7 extends j{static[F]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(Y,Z){super(Y,Z);this.sqlName=Z.customTypeParams.dataType(Z.fieldConfig),this.mapTo=Z.customTypeParams.toDriver,this.mapFrom=Z.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(Y){return typeof this.mapFrom==="function"?this.mapFrom(Y):Y}mapToDriverValue(Y){return typeof this.mapTo==="function"?this.mapTo(Y):Y}}function u7(Y){return(Z,X)=>{let{name:_,config:G}=X0(Z,X);return new p7(_,G,Y)}}class Q4 extends b{static[F]="PgDateColumnBaseBuilder";defaultNow(){return this.default(O`now()`)}}class d7 extends Q4{static[F]="PgDateBuilder";constructor(Y){super(Y,"date","PgDate")}build(Y){return new q6(Y,this.config)}}class q6 extends j{static[F]="PgDate";getSQLType(){return"date"}mapFromDriverValue(Y){return new Date(Y)}mapToDriverValue(Y){return Y.toISOString()}}class c7 extends Q4{static[F]="PgDateStringBuilder";constructor(Y){super(Y,"string","PgDateString")}build(Y){return new j6(Y,this.config)}}class j6 extends j{static[F]="PgDateString";getSQLType(){return"date"}}function l7(Y,Z){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="date")return new d7(X);return new c7(X)}class o7 extends b{static[F]="PgDoublePrecisionBuilder";constructor(Y){super(Y,"number","PgDoublePrecision")}build(Y){return new i7(Y,this.config)}}class i7 extends j{static[F]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function r7(Y){return new o7(Y??"")}class n7 extends b{static[F]="PgInetBuilder";constructor(Y){super(Y,"string","PgInet")}build(Y){return new s7(Y,this.config)}}class s7 extends j{static[F]="PgInet";getSQLType(){return"inet"}}function t7(Y){return new n7(Y??"")}class a7 extends I4{static[F]="PgIntegerBuilder";constructor(Y){super(Y,"number","PgInteger")}build(Y){return new e7(Y,this.config)}}class e7 extends j{static[F]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(Y){if(typeof Y==="string")return Number.parseInt(Y);return Y}}function w8(Y){return new a7(Y??"")}class Y$ extends b{static[F]="PgIntervalBuilder";constructor(Y,Z){super(Y,"string","PgInterval");this.config.intervalConfig=Z}build(Y){return new Z$(Y,this.config)}}class Z$ extends j{static[F]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let Y=this.fields?` ${this.fields}`:"",Z=this.precision?`(${this.precision})`:"";return`interval${Y}${Z}`}}function X$(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new Y$(X,_)}class _$ extends b{static[F]="PgJsonBuilder";constructor(Y){super(Y,"json","PgJson")}build(Y){return new S6(Y,this.config)}}class S6 extends j{static[F]="PgJson";constructor(Y,Z){super(Y,Z)}getSQLType(){return"json"}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}}function G$(Y){return new _$(Y??"")}class $$ extends b{static[F]="PgJsonbBuilder";constructor(Y){super(Y,"json","PgJsonb")}build(Y){return new P6(Y,this.config)}}class P6 extends j{static[F]="PgJsonb";constructor(Y,Z){super(Y,Z)}getSQLType(){return"jsonb"}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){if(typeof Y==="string")try{return JSON.parse(Y)}catch{return Y}return Y}}function W$(Y){return new $$(Y??"")}class H$ extends b{static[F]="PgLineBuilder";constructor(Y){super(Y,"array","PgLine")}build(Y){return new J$(Y,this.config)}}class J$ extends j{static[F]="PgLine";getSQLType(){return"line"}mapFromDriverValue(Y){let[Z,X,_]=Y.slice(1,-1).split(",");return[Number.parseFloat(Z),Number.parseFloat(X),Number.parseFloat(_)]}mapToDriverValue(Y){return`{${Y[0]},${Y[1]},${Y[2]}}`}}class Q$ extends b{static[F]="PgLineABCBuilder";constructor(Y){super(Y,"json","PgLineABC")}build(Y){return new U$(Y,this.config)}}class U$ extends j{static[F]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(Y){let[Z,X,_]=Y.slice(1,-1).split(",");return{a:Number.parseFloat(Z),b:Number.parseFloat(X),c:Number.parseFloat(_)}}mapToDriverValue(Y){return`{${Y.a},${Y.b},${Y.c}}`}}function z$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new H$(X);return new Q$(X)}class F$ extends b{static[F]="PgMacaddrBuilder";constructor(Y){super(Y,"string","PgMacaddr")}build(Y){return new E$(Y,this.config)}}class E$ extends j{static[F]="PgMacaddr";getSQLType(){return"macaddr"}}function O$(Y){return new F$(Y??"")}class V$ extends b{static[F]="PgMacaddr8Builder";constructor(Y){super(Y,"string","PgMacaddr8")}build(Y){return new D$(Y,this.config)}}class D$ extends j{static[F]="PgMacaddr8";getSQLType(){return"macaddr8"}}function L$(Y){return new V$(Y??"")}class M$ extends b{static[F]="PgNumericBuilder";constructor(Y,Z,X){super(Y,"string","PgNumeric");this.config.precision=Z,this.config.scale=X}build(Y){return new v6(Y,this.config)}}class v6 extends j{static[F]="PgNumeric";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue(Y){if(typeof Y==="string")return Y;return String(Y)}getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}class A$ extends b{static[F]="PgNumericNumberBuilder";constructor(Y,Z,X){super(Y,"number","PgNumericNumber");this.config.precision=Z,this.config.scale=X}build(Y){return new w$(Y,this.config)}}class w$ extends j{static[F]="PgNumericNumber";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue(Y){if(typeof Y==="number")return Y;return Number(Y)}mapToDriverValue=String;getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}class R$ extends b{static[F]="PgNumericBigIntBuilder";constructor(Y,Z,X){super(Y,"bigint","PgNumericBigInt");this.config.precision=Z,this.config.scale=X}build(Y){return new N$(Y,this.config)}}class N$ extends j{static[F]="PgNumericBigInt";precision;scale;constructor(Y,Z){super(Y,Z);this.precision=Z.precision,this.scale=Z.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){if(this.precision!==void 0&&this.scale!==void 0)return`numeric(${this.precision}, ${this.scale})`;else if(this.precision===void 0)return"numeric";else return`numeric(${this.precision})`}}function I$(Y,Z){let{name:X,config:_}=X0(Y,Z),G=_?.mode;return G==="number"?new A$(X,_?.precision,_?.scale):G==="bigint"?new R$(X,_?.precision,_?.scale):new M$(X,_?.precision,_?.scale)}class T$ extends b{static[F]="PgPointTupleBuilder";constructor(Y){super(Y,"array","PgPointTuple")}build(Y){return new K$(Y,this.config)}}class K$ extends j{static[F]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(Y){if(typeof Y==="string"){let[Z,X]=Y.slice(1,-1).split(",");return[Number.parseFloat(Z),Number.parseFloat(X)]}return[Y.x,Y.y]}mapToDriverValue(Y){return`(${Y[0]},${Y[1]})`}}class B$ extends b{static[F]="PgPointObjectBuilder";constructor(Y){super(Y,"json","PgPointObject")}build(Y){return new C$(Y,this.config)}}class C$ extends j{static[F]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(Y){if(typeof Y==="string"){let[Z,X]=Y.slice(1,-1).split(",");return{x:Number.parseFloat(Z),y:Number.parseFloat(X)}}return Y}mapToDriverValue(Y){return`(${Y.x},${Y.y})`}}function q$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new T$(X);return new B$(X)}function TF(Y){let Z=[];for(let X=0;X<Y.length;X+=2)Z.push(Number.parseInt(Y.slice(X,X+2),16));return new Uint8Array(Z)}function j$(Y,Z){let X=new ArrayBuffer(8),_=new DataView(X);for(let G=0;G<8;G++)_.setUint8(G,Y[Z+G]);return _.getFloat64(0,!0)}function U5(Y){let Z=TF(Y),X=0,_=Z[X];X+=1;let G=new DataView(Z.buffer),$=G.getUint32(X,_===1);X+=4;let W;if($&536870912)W=G.getUint32(X,_===1),X+=4;if(($&65535)===1){let H=j$(Z,X);X+=8;let Q=j$(Z,X);return X+=8,[H,Q]}throw new Error("Unsupported geometry type")}class S$ extends b{static[F]="PgGeometryBuilder";constructor(Y){super(Y,"array","PgGeometry")}build(Y){return new P$(Y,this.config)}}class P$ extends j{static[F]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){return U5(Y)}mapToDriverValue(Y){return`point(${Y[0]} ${Y[1]})`}}class v$ extends b{static[F]="PgGeometryObjectBuilder";constructor(Y){super(Y,"json","PgGeometryObject")}build(Y){return new x$(Y,this.config)}}class x$ extends j{static[F]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(Y){let Z=U5(Y);return{x:Z[0],y:Z[1]}}mapToDriverValue(Y){return`point(${Y.x} ${Y.y})`}}function f$(Y,Z){let{name:X,config:_}=X0(Y,Z);if(!_?.mode||_.mode==="tuple")return new S$(X);return new v$(X)}class h$ extends b{static[F]="PgRealBuilder";constructor(Y,Z){super(Y,"number","PgReal");this.config.length=Z}build(Y){return new k$(Y,this.config)}}class k$ extends j{static[F]="PgReal";constructor(Y,Z){super(Y,Z)}getSQLType(){return"real"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number.parseFloat(Y);return Y}}function b$(Y){return new h$(Y??"")}class y$ extends b{static[F]="PgSerialBuilder";constructor(Y){super(Y,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new g$(Y,this.config)}}class g$ extends j{static[F]="PgSerial";getSQLType(){return"serial"}}function p$(Y){return new y$(Y??"")}class m$ extends I4{static[F]="PgSmallIntBuilder";constructor(Y){super(Y,"number","PgSmallInt")}build(Y){return new u$(Y,this.config)}}class u$ extends j{static[F]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(Y)=>{if(typeof Y==="string")return Number(Y);return Y}}function d$(Y){return new m$(Y??"")}class c$ extends b{static[F]="PgSmallSerialBuilder";constructor(Y){super(Y,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(Y){return new l$(Y,this.config)}}class l$ extends j{static[F]="PgSmallSerial";getSQLType(){return"smallserial"}}function o$(Y){return new c$(Y??"")}class i$ extends b{static[F]="PgTextBuilder";constructor(Y,Z){super(Y,"string","PgText");this.config.enumValues=Z.enum}build(Y){return new r$(Y,this.config)}}class r$ extends j{static[F]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function n$(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new i$(X,_)}class s$ extends Q4{constructor(Y,Z,X){super(Y,"string","PgTime");this.withTimezone=Z,this.precision=X,this.config.withTimezone=Z,this.config.precision=X}static[F]="PgTimeBuilder";build(Y){return new x6(Y,this.config)}}class x6 extends j{static[F]="PgTime";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function t$(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new s$(X,_.withTimezone??!1,_.precision)}class a$ extends Q4{static[F]="PgTimestampBuilder";constructor(Y,Z,X){super(Y,"date","PgTimestamp");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new f6(Y,this.config)}}class f6 extends j{static[F]="PgTimestamp";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(Y)=>{return new Date(this.withTimezone?Y:Y+"+0000")};mapToDriverValue=(Y)=>{return Y.toISOString()}}class e$ extends Q4{static[F]="PgTimestampStringBuilder";constructor(Y,Z,X){super(Y,"string","PgTimestampString");this.config.withTimezone=Z,this.config.precision=X}build(Y){return new h6(Y,this.config)}}class h6 extends j{static[F]="PgTimestampString";withTimezone;precision;constructor(Y,Z){super(Y,Z);this.withTimezone=Z.withTimezone,this.precision=Z.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function YW(Y,Z={}){let{name:X,config:_}=X0(Y,Z);if(_?.mode==="string")return new e$(X,_.withTimezone??!1,_.precision);return new a$(X,_?.withTimezone??!1,_?.precision)}class ZW extends b{static[F]="PgUUIDBuilder";constructor(Y){super(Y,"string","PgUUID")}defaultRandom(){return this.default(O`gen_random_uuid()`)}build(Y){return new k6(Y,this.config)}}class k6 extends j{static[F]="PgUUID";getSQLType(){return"uuid"}}function q1(Y){return new ZW(Y??"")}class XW extends b{static[F]="PgVarcharBuilder";constructor(Y,Z){super(Y,"string","PgVarchar");this.config.length=Z.length,this.config.enumValues=Z.enum}build(Y){return new _W(Y,this.config)}}class _W extends j{static[F]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function a0(Y,Z={}){let{name:X,config:_}=X0(Y,Z);return new XW(X,_)}class GW extends b{static[F]="PgBinaryVectorBuilder";constructor(Y,Z){super(Y,"string","PgBinaryVector");this.config.dimensions=Z.dimensions}build(Y){return new $W(Y,this.config)}}class $W extends j{static[F]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function WW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new GW(X,_)}class HW extends b{static[F]="PgHalfVectorBuilder";constructor(Y,Z){super(Y,"array","PgHalfVector");this.config.dimensions=Z.dimensions}build(Y){return new JW(Y,this.config)}}class JW extends j{static[F]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){return Y.slice(1,-1).split(",").map((Z)=>Number.parseFloat(Z))}}function QW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new HW(X,_)}class UW extends b{static[F]="PgSparseVectorBuilder";constructor(Y,Z){super(Y,"string","PgSparseVector");this.config.dimensions=Z.dimensions}build(Y){return new zW(Y,this.config)}}class zW extends j{static[F]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function FW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new UW(X,_)}class EW extends b{static[F]="PgVectorBuilder";constructor(Y,Z){super(Y,"array","PgVector");this.config.dimensions=Z.dimensions}build(Y){return new OW(Y,this.config)}}class OW extends j{static[F]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(Y){return JSON.stringify(Y)}mapFromDriverValue(Y){return Y.slice(1,-1).split(",").map((Z)=>Number.parseFloat(Z))}}function VW(Y,Z){let{name:X,config:_}=X0(Y,Z);return new EW(X,_)}function DW(){return{bigint:B7,bigserial:P7,boolean:A8,char:k7,cidr:g7,customType:u7,date:l7,doublePrecision:r7,inet:t7,integer:w8,interval:X$,json:G$,jsonb:W$,line:z$,macaddr:O$,macaddr8:L$,numeric:I$,point:q$,geometry:f$,real:b$,serial:p$,smallint:d$,smallserial:o$,text:n$,time:t$,timestamp:YW,uuid:q1,varchar:a0,bit:WW,halfvec:QW,sparsevec:FW,vector:VW}}var z5=Symbol.for("drizzle:PgInlineForeignKeys"),LW=Symbol.for("drizzle:EnableRLS");class m0 extends S{static[F]="PgTable";static Symbol=Object.assign({},S.Symbol,{InlineForeignKeys:z5,EnableRLS:LW});[z5]=[];[LW]=!1;[S.Symbol.ExtraConfigBuilder]=void 0;[S.Symbol.ExtraConfigColumns]={}}function KF(Y,Z,X,_,G=Y){let $=new m0(Y,_,G),W=typeof Z==="function"?Z(DW()):Z,H=Object.fromEntries(Object.entries(W).map(([U,E])=>{let V=E;V.setName(U);let L=V.build($);return $[z5].push(...V.buildForeignKeys(L,$)),[U,L]})),Q=Object.fromEntries(Object.entries(W).map(([U,E])=>{let V=E;V.setName(U);let L=V.buildExtraConfigColumn($);return[U,L]})),J=Object.assign($,H);if(J[S.Symbol.Columns]=H,J[S.Symbol.ExtraConfigColumns]=Q,X)J[m0.Symbol.ExtraConfigBuilder]=X;return Object.assign(J,{enableRLS:()=>{return J[m0.Symbol.EnableRLS]=!0,J}})}var T4=(Y,Z,X)=>{return KF(Y,Z,X,void 0)};function MW(...Y){if(Y[0].columns)return new R8(Y[0].columns,Y[0].name);return new R8(Y)}class R8{static[F]="PgPrimaryKeyBuilder";columns;name;constructor(Y,Z){this.columns=Y,this.name=Z}build(Y){return new AW(Y,this.columns,this.name)}}class AW{constructor(Y,Z,X){this.table=Y,this.columns=Z,this.name=X}static[F]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[m0.Symbol.Name]}_${this.columns.map((Y)=>Y.name).join("_")}_pk`}}function D1(Y,Z){if(O7(Z)&&!G5(Y)&&!A(Y,R1)&&!A(Y,N4)&&!A(Y,O0)&&!A(Y,S)&&!A(Y,V1))return new R1(Y,Z);return Y}var b6=(Y,Z)=>{return O`${Y} = ${D1(Z,Y)}`},wW=(Y,Z)=>{return O`${Y} <> ${D1(Z,Y)}`};function N8(...Y){let Z=Y.filter((X)=>X!==void 0);if(Z.length===0)return;if(Z.length===1)return new x(Z);return new x([new p0("("),O.join(Z,new p0(" and ")),new p0(")")])}function RW(...Y){let Z=Y.filter((X)=>X!==void 0);if(Z.length===0)return;if(Z.length===1)return new x(Z);return new x([new p0("("),O.join(Z,new p0(" or ")),new p0(")")])}function NW(Y){return O`not ${Y}`}var IW=(Y,Z)=>{return O`${Y} > ${D1(Z,Y)}`},TW=(Y,Z)=>{return O`${Y} >= ${D1(Z,Y)}`},KW=(Y,Z)=>{return O`${Y} < ${D1(Z,Y)}`},BW=(Y,Z)=>{return O`${Y} <= ${D1(Z,Y)}`};function CW(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return O`false`;return O`${Y} in ${Z.map((X)=>D1(X,Y))}`}return O`${Y} in ${D1(Z,Y)}`}function qW(Y,Z){if(Array.isArray(Z)){if(Z.length===0)return O`true`;return O`${Y} not in ${Z.map((X)=>D1(X,Y))}`}return O`${Y} not in ${D1(Z,Y)}`}function jW(Y){return O`${Y} is null`}function SW(Y){return O`${Y} is not null`}function PW(Y){return O`exists ${Y}`}function vW(Y){return O`not exists ${Y}`}function xW(Y,Z,X){return O`${Y} between ${D1(Z,Y)} and ${D1(X,Y)}`}function fW(Y,Z,X){return O`${Y} not between ${D1(Z,Y)} and ${D1(X,Y)}`}function hW(Y,Z){return O`${Y} like ${Z}`}function kW(Y,Z){return O`${Y} not like ${Z}`}function bW(Y,Z){return O`${Y} ilike ${Z}`}function yW(Y,Z){return O`${Y} not ilike ${Z}`}function gW(Y){return O`${Y} asc`}function pW(Y){return O`${Y} desc`}class F5{constructor(Y,Z,X){this.sourceTable=Y,this.referencedTable=Z,this.relationName=X,this.referencedTableName=Z[S.Symbol.Name]}static[F]="Relation";referencedTableName;fieldName}class mW{constructor(Y,Z){this.table=Y,this.config=Z}static[F]="Relations"}class K4 extends F5{constructor(Y,Z,X,_){super(Y,Z,X?.relationName);this.config=X,this.isNullable=_}static[F]="One";withFieldName(Y){let Z=new K4(this.sourceTable,this.referencedTable,this.config,this.isNullable);return Z.fieldName=Y,Z}}class I8 extends F5{constructor(Y,Z,X){super(Y,Z,X?.relationName);this.config=X}static[F]="Many";withFieldName(Y){let Z=new I8(this.sourceTable,this.referencedTable,this.config);return Z.fieldName=Y,Z}}function uW(){return{and:N8,between:xW,eq:b6,exists:PW,gt:IW,gte:TW,ilike:bW,inArray:CW,isNull:jW,isNotNull:SW,like:hW,lt:KW,lte:BW,ne:wW,not:NW,notBetween:fW,notExists:vW,notLike:kW,notIlike:yW,notInArray:qW,or:RW,sql:O}}function dW(){return{sql:O,asc:gW,desc:pW}}function cW(Y,Z){if(Object.keys(Y).length===1&&"default"in Y&&!A(Y.default,S))Y=Y.default;let X={},_={},G={};for(let[$,W]of Object.entries(Y))if(A(W,S)){let H=g4(W),Q=_[H];X[H]=$,G[$]={tsName:$,dbName:W[S.Symbol.Name],schema:W[S.Symbol.Schema],columns:W[S.Symbol.Columns],relations:Q?.relations??{},primaryKey:Q?.primaryKey??[]};for(let U of Object.values(W[S.Symbol.Columns]))if(U.primary)G[$].primaryKey.push(U);let J=W[S.Symbol.ExtraConfigBuilder]?.(W[S.Symbol.ExtraConfigColumns]);if(J){for(let U of Object.values(J))if(A(U,R8))G[$].primaryKey.push(...U.columns)}}else if(A(W,mW)){let H=g4(W.table),Q=X[H],J=W.config(Z(W.table)),U;for(let[E,V]of Object.entries(J))if(Q){let L=G[Q];if(L.relations[E]=V,U)L.primaryKey.push(...U)}else{if(!(H in _))_[H]={relations:{},primaryKey:U};_[H].relations[E]=V}}return{tables:G,tableNamesMap:X}}function BF(Y){return function Z(X,_){return new K4(Y,X,_,_?.fields.reduce((G,$)=>G&&$.notNull,!0)??!1)}}function CF(Y){return function Z(X,_){return new I8(Y,X,_)}}function lW(Y,Z,X){if(A(X,K4)&&X.config)return{fields:X.config.fields,references:X.config.references};let _=Z[g4(X.referencedTable)];if(!_)throw new Error(`Table "${X.referencedTable[S.Symbol.Name]}" not found in schema`);let G=Y[_];if(!G)throw new Error(`Table "${_}" not found in schema`);let $=X.sourceTable,W=Z[g4($)];if(!W)throw new Error(`Table "${$[S.Symbol.Name]}" not found in schema`);let H=[];for(let Q of Object.values(G.relations))if(X.relationName&&X!==Q&&Q.relationName===X.relationName||!X.relationName&&Q.referencedTable===X.sourceTable)H.push(Q);if(H.length>1)throw X.relationName?new Error(`There are multiple relations with name "${X.relationName}" in table "${_}"`):new Error(`There are multiple relations between "${_}" and "${X.sourceTable[S.Symbol.Name]}". Please specify relation name`);if(H[0]&&A(H[0],K4)&&H[0].config)return{fields:H[0].config.references,references:H[0].config.fields};throw new Error(`There is not enough information to infer relation "${W}.${X.fieldName}"`)}function oW(Y){return{one:BF(Y),many:CF(Y)}}function y6(Y,Z,X,_,G=($)=>$){let $={};for(let[W,H]of _.entries())if(H.isJson){let Q=Z.relations[H.tsKey],J=X[W],U=typeof J==="string"?JSON.parse(J):J;$[H.tsKey]=A(Q,K4)?U&&y6(Y,Y[H.relationTableTsKey],U,H.selection,G):U.map((E)=>y6(Y,Y[H.relationTableTsKey],E,H.selection,G))}else{let Q=G(X[W]),J=H.field,U;if(A(J,O0))U=J;else if(A(J,x))U=J.decoder;else U=J.sql.decoder;$[H.tsKey]=Q===null?null:U.mapFromDriverValue(Q)}return $}import tF from"os";import aF from"fs";var g6=new Map,E5=new Map,O5=Symbol("OriginError"),w2={};class j1 extends Promise{constructor(Y,Z,X,_,G={}){let $,W;super((H,Q)=>{$=H,W=Q});this.tagged=Array.isArray(Y.raw),this.strings=Y,this.args=Z,this.handler=X,this.canceller=_,this.options=G,this.state=null,this.statement=null,this.resolve=(H)=>(this.active=!1,$(H)),this.reject=(H)=>(this.active=!1,W(H)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[O5]=this.handler.debug?new Error:this.tagged&&qF(this.strings)}get origin(){return(this.handler.debug?this[O5].stack:this.tagged&&E5.has(this.strings)?E5.get(this.strings):E5.set(this.strings,this[O5].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(Y=1,Z){if(this.options.simple=!1,typeof Y==="function")Z=Y,Y=1;if(this.cursorRows=Y,typeof Z==="function")return this.cursorFn=Z,this;let X;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};X&&X();let _=new Promise((G,$)=>{this.cursorFn=(W)=>{return G({value:W,done:!1}),new Promise((H)=>X=H)},this.resolve=()=>(this.active=!1,G({done:!0})),this.reject=(W)=>(this.active=!1,$(W))});return this.execute(),_},return(){return X&&X(w2),{done:!0}}})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw new Error(".stream has been renamed to .forEach")}forEach(Y){return this.forEachFn=Y,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}}function qF(Y){if(g6.has(Y))return g6.get(Y);let Z=Error.stackTraceLimit;return Error.stackTraceLimit=4,g6.set(Y,new Error),Error.stackTraceLimit=Z,g6.get(Y)}class R2 extends Error{constructor(Y){super(Y.message);this.name=this.constructor.name,Object.assign(this,Y)}}var x0={connection:iW,postgres:rW,generic:nW,notSupported:sW};function iW(Y,Z,X){let{host:_,port:G}=X||Z,$=Object.assign(new Error("write "+Y+" "+(Z.path||_+":"+G)),{code:Y,errno:Y,address:Z.path||_},Z.path?{}:{port:G});return Error.captureStackTrace($,iW),$}function rW(Y){let Z=new R2(Y);return Error.captureStackTrace(Z,rW),Z}function nW(Y,Z){let X=Object.assign(new Error(Y+": "+Z),{code:Y});return Error.captureStackTrace(X,nW),X}function sW(Y){let Z=Object.assign(new Error(Y+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:Y});return Error.captureStackTrace(Z,sW),Z}var jF={string:{to:25,from:null,serialize:(Y)=>""+Y},number:{to:0,from:[21,23,26,700,701],serialize:(Y)=>""+Y,parse:(Y)=>+Y},json:{to:114,from:[114,3802],serialize:(Y)=>JSON.stringify(Y),parse:(Y)=>JSON.parse(Y)},boolean:{to:16,from:16,serialize:(Y)=>Y===!0?"t":"f",parse:(Y)=>Y==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(Y)=>(Y instanceof Date?Y:new Date(Y)).toISOString(),parse:(Y)=>new Date(Y)},bytea:{to:17,from:17,serialize:(Y)=>"\\x"+Buffer.from(Y).toString("hex"),parse:(Y)=>Buffer.from(Y.slice(2),"hex")}};class u6{then(){V5()}catch(){V5()}finally(){V5()}}class C8 extends u6{constructor(Y){super();this.value=l6(Y)}}class r1 extends u6{constructor(Y,Z,X){super();this.value=Y,this.type=Z,this.array=X}}class d6 extends u6{constructor(Y,Z){super();this.first=Y,this.rest=Z}build(Y,Z,X,_){let G=SF.map(([$,W])=>({fn:W,i:Y.search($)})).sort(($,W)=>$.i-W.i).pop();return G.i===-1?w5(this.first,_):G.fn(this.first,this.rest,Z,X,_)}}function c6(Y,Z,X,_){let G=Y instanceof r1?Y.value:Y;if(G===void 0){if(Y instanceof r1?Y.value=_.transform.undefined:G=Y=_.transform.undefined,G===void 0)throw x0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+X.push(Y instanceof r1?(Z.push(Y.value),Y.array?Y.array[Y.type||m6(Y.value)]||Y.type||Y3(Y.value):Y.type):(Z.push(Y),m6(Y)))}var aW=X3(jF);function M5(Y,Z,X,_,G,$){for(let W=1;W<Y.strings.length;W++)Z+=A5(Z,X,_,G,$)+Y.strings[W],X=Y.args[W];return Z}function A5(Y,Z,X,_,G){return Z instanceof d6?Z.build(Y,X,_,G):Z instanceof j1?L5(Z,X,_,G):Z instanceof C8?Z.value:Z&&Z[0]instanceof j1?Z.reduce(($,W)=>$+" "+L5(W,X,_,G),""):c6(Z,X,_,G)}function L5(Y,Z,X,_){return Y.fragment=!0,M5(Y,Y.strings[0],Y.args[0],Z,X,_)}function eW(Y,Z,X,_,G){return Y.map(($)=>"("+_.map((W)=>A5("values",$[W],Z,X,G)).join(",")+")").join(",")}function tW(Y,Z,X,_,G){let $=Array.isArray(Y[0]),W=Z.length?Z.flat():Object.keys($?Y[0]:Y);return eW($?Y:[Y],X,_,W,G)}function p6(Y,Z,X,_,G){if(typeof Y==="string"&&(Y=[Y].concat(Z)),Array.isArray(Y))return w5(Y,G);let $;return(Z.length?Z.flat():Object.keys(Y)).map((H)=>{return $=Y[H],($ instanceof j1?L5($,X,_,G):$ instanceof C8?$.value:c6($,X,_,G))+" as "+l6(G.transform.column.to?G.transform.column.to(H):H)}).join(",")}var SF=Object.entries({values:tW,in:(...Y)=>{let Z=tW(...Y);return Z==="()"?"(null)":Z},select:p6,as:p6,returning:p6,"\\(":p6,update(Y,Z,X,_,G){return(Z.length?Z.flat():Object.keys(Y)).map(($)=>l6(G.transform.column.to?G.transform.column.to($):$)+"="+A5("values",Y[$],X,_,G))},insert(Y,Z,X,_,G){let $=Z.length?Z.flat():Object.keys(Array.isArray(Y)?Y[0]:Y);return"("+w5($,G)+")values"+eW(Array.isArray(Y)?Y:[Y],X,_,$,G)}}).map(([Y,Z])=>[new RegExp("((?:^|[\\s(])"+Y+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),Z]);function V5(){throw x0.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:PF,parsers:vF}=aW;function Y3(Y){if(Array.isArray(Y))return Y3(Y[0]);return typeof Y==="string"?1009:0}var Z3=function(Y){let Z=X3(Y||{});return{serializers:Object.assign({},PF,Z.serializers),parsers:Object.assign({},vF,Z.parsers)}};function X3(Y){return Object.keys(Y).reduce((Z,X)=>{if(Y[X].from&&[].concat(Y[X].from).forEach((_)=>Z.parsers[_]=Y[X].parse),Y[X].serialize)Z.serializers[Y[X].to]=Y[X].serialize,Y[X].from&&[].concat(Y[X].from).forEach((_)=>Z.serializers[_]=Y[X].serialize);return Z},{parsers:{},serializers:{}})}function w5(Y,{transform:{column:Z}}){return Y.map((X)=>l6(Z.to?Z.to(X):X)).join(",")}var l6=function Y(Z){return'"'+Z.replace(/"/g,'""').replace(/\./g,'"."')+'"'},m6=function Y(Z){return Z instanceof r1?Z.type:Z instanceof Date?1184:Z instanceof Uint8Array?17:Z===!0||Z===!1?16:typeof Z==="bigint"?20:Array.isArray(Z)?Y(Z[0]):0},xF=/\\/g,fF=/"/g;function hF(Y){return Y.replace(xF,"\\\\").replace(fF,"\\\"")}var _3=function Y(Z,X,_,G){if(Array.isArray(Z)===!1)return Z;if(!Z.length)return"{}";let $=Z[0],W=G===1020?";":",";if(Array.isArray($)&&!$.type)return"{"+Z.map((H)=>Y(H,X,_,G)).join(W)+"}";return"{"+Z.map((H)=>{if(H===void 0){if(H=_.transform.undefined,H===void 0)throw x0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return H===null?"null":'"'+hF(X?X(H.type?H.value:H):""+H)+'"'}).join(W)+"}"},D5={i:0,char:null,str:"",quoted:!1,last:0},G3=function Y(Z,X,_){return D5.i=D5.last=0,$3(D5,Z,X,_)};function $3(Y,Z,X,_){let G=[],$=_===1020?";":",";for(;Y.i<Z.length;Y.i++){if(Y.char=Z[Y.i],Y.quoted)if(Y.char==="\\")Y.str+=Z[++Y.i];else if(Y.char==='"')G.push(X?X(Y.str):Y.str),Y.str="",Y.quoted=Z[Y.i+1]==='"',Y.last=Y.i+2;else Y.str+=Y.char;else if(Y.char==='"')Y.quoted=!0;else if(Y.char==="{")Y.last=++Y.i,G.push($3(Y,Z,X,_));else if(Y.char==="}"){Y.quoted=!1,Y.last<Y.i&&G.push(X?X(Z.slice(Y.last,Y.i)):Z.slice(Y.last,Y.i)),Y.last=Y.i+1;break}else if(Y.char===$&&Y.p!=="}"&&Y.p!=='"')G.push(X?X(Z.slice(Y.last,Y.i)):Z.slice(Y.last,Y.i)),Y.last=Y.i+1;Y.p=Y.char}return Y.last<Y.i&&G.push(X?X(Z.slice(Y.last,Y.i+1)):Z.slice(Y.last,Y.i+1)),G}var p4=(Y)=>{let Z=Y[0];for(let X=1;X<Y.length;X++)Z+=Y[X]==="_"?Y[++X].toUpperCase():Y[X];return Z},m4=(Y)=>{let Z=Y[0].toUpperCase();for(let X=1;X<Y.length;X++)Z+=Y[X]==="_"?Y[++X].toUpperCase():Y[X];return Z},u4=(Y)=>Y.replace(/_/g,"-"),T8=(Y)=>Y.replace(/([A-Z])/g,"_$1").toLowerCase(),K8=(Y)=>(Y.slice(0,1)+Y.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),B8=(Y)=>Y.replace(/-/g,"_");function R5(Y){return function Z(X,_){return typeof X==="object"&&X!==null&&(_.type===114||_.type===3802)?Array.isArray(X)?X.map((G)=>Z(G,_)):Object.entries(X).reduce((G,[$,W])=>Object.assign(G,{[Y($)]:Z(W,_)}),{}):X}}p4.column={from:p4};p4.value={from:R5(p4)};T8.column={to:T8};var N5={...p4};N5.column.to=T8;m4.column={from:m4};m4.value={from:R5(m4)};K8.column={to:K8};var I5={...m4};I5.column.to=K8;u4.column={from:u4};u4.value={from:R5(u4)};B8.column={to:B8};var T5={...u4};T5.column.to=B8;import W3 from"net";import gF from"tls";import q8 from"crypto";import K5 from"stream";import{performance as H3}from"perf_hooks";class d4 extends Array{constructor(){super();Object.defineProperties(this,{count:{value:null,writable:!0},state:{value:null,writable:!0},command:{value:null,writable:!0},columns:{value:null,writable:!0},statement:{value:null,writable:!0}})}static get[Symbol.species](){return Array}}var N1=kF;function kF(Y=[]){let Z=Y.slice(),X=0;return{get length(){return Z.length-X},remove:(_)=>{let G=Z.indexOf(_);return G===-1?null:(Z.splice(G,1),_)},push:(_)=>(Z.push(_),_),shift:()=>{let _=Z[X++];if(X===Z.length)X=0,Z=[];else Z[X-1]=void 0;return _}}}var e0=Buffer.allocUnsafe(256),bF="BCcDdEFfHPpQSX".split("").reduce((Y,Z)=>{let X=Z.charCodeAt(0);return Y[Z]=()=>{return e0[0]=X,z0.i=5,z0},Y},{}),z0=Object.assign(yF,bF,{N:String.fromCharCode(0),i:0,inc(Y){return z0.i+=Y,z0},str(Y){let Z=Buffer.byteLength(Y);return o6(Z),z0.i+=e0.write(Y,z0.i,Z,"utf8"),z0},i16(Y){return o6(2),e0.writeUInt16BE(Y,z0.i),z0.i+=2,z0},i32(Y,Z){if(Z||Z===0)return e0.writeUInt32BE(Y,Z),z0;return o6(4),e0.writeUInt32BE(Y,z0.i),z0.i+=4,z0},z(Y){return o6(Y),e0.fill(0,z0.i,z0.i+Y),z0.i+=Y,z0},raw(Y){return e0=Buffer.concat([e0.subarray(0,z0.i),Y]),z0.i=e0.length,z0},end(Y=1){e0.writeUInt32BE(z0.i-Y,Y);let Z=e0.subarray(0,z0.i);return z0.i=0,e0=Buffer.allocUnsafe(256),Z}}),c=z0;function o6(Y){if(e0.length-z0.i<Y){let Z=e0,X=Z.length;e0=Buffer.allocUnsafe(X+(X>>1)+Y),Z.copy(e0)}}function yF(){return z0.i=0,z0}var q5=U3,pF=1,B4=c().S().end(),J3=c().H().end(),mF=c().i32(8).i32(80877103).end(8),uF=Buffer.concat([c().E().str(c.N).i32(0).end(),B4]),dF=c().D().str("S").str(c.N).end(),N2=()=>{},cF=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),lF={83:"severity_local",86:"severity",67:"code",77:"message",68:"detail",72:"hint",80:"position",112:"internal_position",113:"internal_query",87:"where",115:"schema_name",116:"table_name",99:"column_name",100:"data type_name",110:"constraint_name",70:"file",76:"line",82:"routine"};function U3(Y,Z={},{onopen:X=N2,onend:_=N2,onclose:G=N2}={}){let{ssl:$,max:W,user:H,host:Q,port:J,database:U,parsers:E,transform:V,onnotice:L,onnotify:R,onparameter:M,max_pipeline:y,keep_alive:k,backoff:h,target_session_attrs:f}=Y,I=N1(),N=pF++,q={pid:null,secret:null},C=C5(WY,Y.idle_timeout),p=C5(WY,Y.max_lifetime),s=C5(x3,Y.connect_timeout),K=null,a,m=new d4,e=Buffer.alloc(0),F0=Y.fetch_types,f0={},H1={},n1=Math.random().toString(36).slice(2),B=1,u=0,G0=0,K0=0,h0=0,t=0,J0=0,P0=0,B0=null,w0=null,i0=!1,D0=null,S1=null,c0=null,U4=null,k0=null,R0=null,P1=null,g1=null,v=null,B2=null,r0={queue:Z.closed,idleTimer:C,connect(z){c0=z,ZX()},terminate:q2,execute:C2,cancel:j3,end:WY,count:0,id:N};return Z.closed&&Z.closed.push(r0),r0;async function q3(){let z;try{z=Y.socket?await Promise.resolve(Y.socket(Y)):new W3.Socket}catch(D){i4(D);return}return z.on("error",i4),z.on("close",XX),z.on("drain",e5),z}async function j3({pid:z,secret:D},l,$0){try{a=c().i32(16).i32(80877102).i32(z).i32(D).end(16),await YX(),K.once("error",$0),K.once("close",l)}catch(q0){$0(q0)}}function C2(z){if(i0)return k8(z,x0.connection("CONNECTION_DESTROYED",Y));if(z.cancelled)return;try{return z.state=q,v?I.push(z):(v=z,v.active=!0),v3(z),l0(S3(z))&&!z.describeFirst&&!z.cursorFn&&I.length<y&&(!z.options.onexecute||z.options.onexecute(r0))}catch(D){return I.length===0&&l0(B4),p1(D),!0}}function S3(z){if(z.parameters.length>=65534)throw x0.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return z.options.simple?c().Q().str(z.statement.string+c.N).end():z.describeFirst?Buffer.concat([s5(z),J3]):z.prepare?z.prepared?h8(z):Buffer.concat([s5(z),h8(z)]):P3(z)}function s5(z){return Buffer.concat([GX(z.statement.string,z.parameters,z.statement.types,z.statement.name),LH("S",z.statement.name)])}function h8(z){return Buffer.concat([DH(z.parameters,z.statement.types,z.statement.name,z.cursorName),z.cursorFn?$X("",z.cursorRows):uF])}function P3(z){return Buffer.concat([GX(z.statement.string,z.parameters,z.statement.types),dF,h8(z)])}function v3(z){let D=[],l=[],$0=M5(z,z.strings[0],z.args[0],D,l,Y);!z.tagged&&z.args.forEach((q0)=>c6(q0,D,l,Y)),z.prepare=Y.prepare&&("prepare"in z.options?z.options.prepare:!0),z.string=$0,z.signature=z.prepare&&l+$0,z.onlyDescribe&&delete H1[z.signature],z.parameters=z.parameters||D,z.prepared=z.prepare&&z.signature in H1,z.describeFirst=z.onlyDescribe||D.length&&!z.prepared,z.statement=z.prepared?H1[z.signature]:{string:$0,types:l,name:z.prepare?n1+B++:""},typeof Y.debug==="function"&&Y.debug(N,$0,D,l)}function l0(z,D){if(R0=R0?Buffer.concat([R0,z]):Buffer.from(z),D||R0.length>=1024)return t5(D);return w0===null&&(w0=setImmediate(t5)),!0}function t5(z){let D=K.write(R0,z);return w0!==null&&clearImmediate(w0),R0=w0=null,D}function x3(){p1(x0.connection("CONNECT_TIMEOUT",Y,K)),K.destroy()}async function a5(){if(l0(mF),!await new Promise((D)=>K.once("data",(l)=>D(l[0]===83)))&&$==="prefer")return o4();K.removeAllListeners(),K=gF.connect({socket:K,servername:W3.isIP(K.host)?void 0:K.host,...$==="require"||$==="allow"||$==="prefer"?{rejectUnauthorized:!1}:$==="verify-full"?{}:typeof $==="object"?$:{}}),K.on("secureConnect",o4),K.on("error",i4),K.on("close",XX),K.on("drain",e5)}function e5(){!v&&X(r0)}function $Y(z){if(D0){if(D0.push(z),G0-=z.length,G0>0)return}e=D0?Buffer.concat(D0,t-G0):e.length===0?z:Buffer.concat([e,z],e.length+z.length);while(e.length>4){if(t=e.readUInt32BE(1),t>=e.length){G0=t-e.length,D0=[e];break}try{f3(e.subarray(0,t+1))}catch(D){v&&(v.cursorFn||v.describeFirst)&&l0(B4),p1(D)}e=e.subarray(t+1),G0=0,D0=null}}async function YX(){if(i0=!1,f0={},K||(K=await q3()),!K)return;if(s.start(),Y.socket)return $?a5():o4();if(K.on("connect",$?a5:o4),Y.path)return K.connect(Y.path);K.ssl=$,K.connect(J[K0],Q[K0]),K.host=Q[K0],K.port=J[K0],K0=(K0+1)%J.length}function ZX(){setTimeout(YX,u?u+J0-H3.now():0)}function o4(){try{H1={},F0=Y.fetch_types,n1=Math.random().toString(36).slice(2),B=1,p.start(),K.on("data",$Y),k&&K.setKeepAlive&&K.setKeepAlive(!0,1000*k);let z=AH();l0(z)}catch(z){i4(z)}}function i4(z){if(r0.queue===Z.connecting&&Y.host[h0+1])return;p1(z);while(I.length)k8(I.shift(),z)}function p1(z){k0&&(k0.destroy(z),k0=null),v&&k8(v,z),c0&&(k8(c0,z),c0=null)}function k8(z,D){if(z.reserve)return z.reject(D);if(!D||typeof D!=="object")D=new Error(D);"query"in D||"parameters"in D||Object.defineProperties(D,{stack:{value:D.stack+z.origin.replace(/.*\n/,`
|
|
62
62
|
`),enumerable:Y.debug},query:{value:z.string,enumerable:Y.debug},parameters:{value:z.parameters,enumerable:Y.debug},args:{value:z.args,enumerable:Y.debug},types:{value:z.statement&&z.statement.types,enumerable:Y.debug}}),z.reject(D)}function WY(){return U4||(!r0.reserved&&_(r0),!r0.reserved&&!c0&&!v&&I.length===0?(q2(),new Promise((z)=>K&&K.readyState!=="closed"?K.once("close",z):z())):U4=new Promise((z)=>P1=z))}function q2(){if(i0=!0,k0||v||c0||I.length)i4(x0.connection("CONNECTION_DESTROYED",Y));if(clearImmediate(w0),K)K.removeListener("data",$Y),K.removeListener("connect",o4),K.readyState==="open"&&K.end(c().X().end());P1&&(P1(),U4=P1=null)}async function XX(z){if(e=Buffer.alloc(0),G0=0,D0=null,clearImmediate(w0),K.removeListener("data",$Y),K.removeListener("connect",o4),C.cancel(),p.cancel(),s.cancel(),K.removeAllListeners(),K=null,c0)return ZX();!z&&(v||I.length)&&i4(x0.connection("CONNECTION_CLOSED",Y,K)),u=H3.now(),z&&Y.shared.retries++,J0=(typeof h==="function"?h(Y.shared.retries):h)*1000,G(r0,x0.connection("CONNECTION_CLOSED",Y,K))}function f3(z,D=z[0]){(D===68?h3:D===100?JH:D===65?XH:D===83?k3:D===90?b3:D===67?y3:D===50?_X:D===49?g3:D===116?p3:D===84?m3:D===82?u3:D===110?r3:D===75?n3:D===69?YH:D===115?_H:D===51?GH:D===71?$H:D===78?UH:D===72?WH:D===99?QH:D===73?zH:D===86?FH:D===118?EH:D===87?HH:OH)(z)}function h3(z){let D=7,l,$0,q0,n0=v.isRaw?new Array(v.statement.columns.length):{};for(let Y1=0;Y1<v.statement.columns.length;Y1++)$0=v.statement.columns[Y1],l=z.readInt32BE(D),D+=4,q0=l===-1?null:v.isRaw===!0?z.subarray(D,D+=l):$0.parser===void 0?z.toString("utf8",D,D+=l):$0.parser.array===!0?$0.parser(z.toString("utf8",D+1,D+=l)):$0.parser(z.toString("utf8",D,D+=l)),v.isRaw?n0[Y1]=v.isRaw===!0?q0:V.value.from?V.value.from(q0,$0):q0:n0[$0.name]=V.value.from?V.value.from(q0,$0):q0;v.forEachFn?v.forEachFn(V.row.from?V.row.from(n0):n0,m):m[P0++]=V.row.from?V.row.from(n0):n0}function k3(z){let[D,l]=z.toString("utf8",5,z.length-1).split(c.N);if(f0[D]=l,Y.parameters[D]!==l)Y.parameters[D]=l,M&&M(D,l)}function b3(z){if(v&&v.options.simple&&v.resolve(S1||m),v=S1=null,m=new d4,s.cancel(),c0){if(f){if(!f0.in_hot_standby||!f0.default_transaction_read_only)return e3();else if(a3(f,f0))return q2()}if(F0)return c0.reserve&&(c0=null),s3();c0&&!c0.reserve&&C2(c0),Y.shared.retries=h0=0,c0=null;return}while(I.length&&(v=I.shift())&&(v.active=!0,v.cancelled))U3(Y).cancel(v.state,v.cancelled.resolve,v.cancelled.reject);if(v)return;r0.reserved?!r0.reserved.release&&z[5]===73?U4?q2():(r0.reserved=null,X(r0)):r0.reserved():U4?q2():X(r0)}function y3(z){P0=0;for(let D=z.length-1;D>0;D--){if(z[D]===32&&z[D+1]<58&&m.count===null)m.count=+z.toString("utf8",D+1,z.length-1);if(z[D-1]>=65){m.command=z.toString("utf8",5,D),m.state=q;break}}if(B2&&(B2(),B2=null),m.command==="BEGIN"&&W!==1&&!r0.reserved)return p1(x0.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(v.options.simple)return _X();if(v.cursorFn)m.count&&v.cursorFn(m),l0(B4);v.resolve(m)}function g3(){v.parsing=!1}function _X(){!m.statement&&(m.statement=v.statement),m.columns=v.statement.columns}function p3(z){let D=z.readUInt16BE(5);for(let l=0;l<D;++l)!v.statement.types[l]&&(v.statement.types[l]=z.readUInt32BE(7+l*4));v.prepare&&(H1[v.signature]=v.statement),v.describeFirst&&!v.onlyDescribe&&(l0(h8(v)),v.describeFirst=!1)}function m3(z){if(m.command)S1=S1||[m],S1.push(m=new d4),m.count=null,v.statement.columns=null;let D=z.readUInt16BE(5),l=7,$0;v.statement.columns=Array(D);for(let q0=0;q0<D;++q0){$0=l;while(z[l++]!==0);let n0=z.readUInt32BE(l),Y1=z.readUInt16BE(l+4),z4=z.readUInt32BE(l+6);v.statement.columns[q0]={name:V.column.from?V.column.from(z.toString("utf8",$0,l-1)):z.toString("utf8",$0,l-1),parser:E[z4],table:n0,number:Y1,type:z4},l+=18}if(m.statement=v.statement,v.onlyDescribe)return v.resolve(v.statement),l0(B4)}async function u3(z,D=z.readUInt32BE(5)){(D===3?d3:D===5?c3:D===10?l3:D===11?o3:D===12?i3:D!==0?VH:N2)(z,D)}async function d3(){let z=await HY();l0(c().p().str(z).z(1).end())}async function c3(z){let D="md5"+await Q3(Buffer.concat([Buffer.from(await Q3(await HY()+H)),z.subarray(9)]));l0(c().p().str(D).z(1).end())}async function l3(){g1=(await q8.randomBytes(18)).toString("base64"),c().p().str("SCRAM-SHA-256"+c.N);let z=c.i;l0(c.inc(4).str("n,,n=*,r="+g1).i32(c.i-z-4,z).end())}async function o3(z){let D=z.toString("utf8",9).split(",").reduce((Y1,z4)=>(Y1[z4[0]]=z4.slice(2),Y1),{}),l=await q8.pbkdf2Sync(await HY(),Buffer.from(D.s,"base64"),parseInt(D.i),32,"sha256"),$0=await i6(l,"Client Key"),q0="n=*,r="+g1+",r="+D.r+",s="+D.s+",i="+D.i+",c=biws,r="+D.r;B0=(await i6(await i6(l,"Server Key"),q0)).toString("base64");let n0="c=biws,r="+D.r+",p="+iF($0,Buffer.from(await i6(await oF($0),q0))).toString("base64");l0(c().p().str(n0).end())}function i3(z){if(z.toString("utf8",9).split(c.N,1)[0].slice(2)===B0)return;p1(x0.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),K.destroy()}function HY(){return Promise.resolve(typeof Y.pass==="function"?Y.pass():Y.pass)}function r3(){if(m.statement=v.statement,m.statement.columns=[],v.onlyDescribe)return v.resolve(v.statement),l0(B4)}function n3(z){q.pid=z.readUInt32BE(5),q.secret=z.readUInt32BE(9)}async function s3(){F0=!1,(await new j1([`
|