tempest.games 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,26 +1,26 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var N_=Object.create;var{getPrototypeOf:B_,defineProperty:K9,getOwnPropertyNames:R_}=Object;var Z_=Object.prototype.hasOwnProperty;var S_=(W,$,X)=>{X=W!=null?N_(B_(W)):{};let Y=$||!W||!W.__esModule?K9(X,"default",{value:W,enumerable:!0}):X;for(let J of R_(W))if(!Z_.call(Y,J))K9(Y,J,{get:()=>W[J],enumerable:!0});return Y};var q_=(W,$)=>()=>($||W(($={exports:{}}).exports,$),$.exports);var C_=(W,$)=>{for(var X in $)K9(W,X,{get:$[X],enumerable:!0,configurable:!0,set:(Y)=>$[X]=()=>Y})};var sE=(W,$)=>()=>(W&&($=W(W=0)),$);var GG=import.meta.require;var ZH=q_((GP,RH)=>{var i4=GG("os"),n4=GG("path");function BH(W){let $=process.env.XDG_CACHE_HOME||n4.join(i4.homedir(),".cache");return n4.join($,W)}function IV(W){return n4.join(i4.homedir(),"Library","Caches",W)}function jV(W){let $=process.env.LOCALAPPDATA||n4.join(i4.homedir(),"AppData","Local");return n4.join($,W,"Cache")}var fV=function(){switch(i4.platform()){case"darwin":return IV;case"win32":return jV;case"aix":case"android":case"freebsd":case"linux":case"netbsd":case"openbsd":case"sunos":return BH;default:return console.error(`(node:${process.pid}) [cachedir] Warning: the platform "${i4.platform()}" is not currently supported by node-cachedir, falling back to "posix". Please file an issue with your platform here: https://github.com/LinusU/node-cachedir/issues/new`),BH}}();RH.exports=function W($){if(typeof $!=="string")throw new TypeError("id is not a string");if($.length===0)throw new Error("id cannot be empty");if(/[^0-9a-zA-Z-]/.test($))throw new Error("id cannot contain special characters");return fV($)}});class m$ extends Promise{fate;resolve;reject;done=!1;constructor(W){let $,X;super((Y,J)=>{$=Y,X=J});this.resolve=$,this.reject=X,this.use(W instanceof Promise?W:new Promise(W))}pass(W,$){if(W===this.fate)this.resolve($),this.done=!0}fail(W,$){if(W===this.fate)this.reject($),this.done=!0}use(W){if(W instanceof Promise){let $=W;this.fate=$,$.then((X)=>{this.pass($,X)},(X)=>{this.fail($,X)})}else this.resolve(W),this.fate=void 0}}var XN=(W,$,X=QG.STORE)=>{return HG(X,{key:`${W.key}:JSON`,get:({get:Y})=>$.toJson(Y(W)),set:({set:Y},J)=>{Y(W,$.fromJson(J))}})};function GN(W,$,X){return L9(W,{key:`${$.key}:JSON`,get:(J)=>({get:G})=>{let H=G($,J);return X.toJson(H)},set:(J)=>({set:G},H)=>{G($,J,X.fromJson(H))}},["mutable","json"])}var p$=(W)=>JSON.parse(W),Z1=(W)=>JSON.stringify(W),QN=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];function J0(W){while(W.child!==null)W=W.child;return W}class t6{_buffer;_index=0;constructor(W){let $;if(typeof W==="number")$=W;else $=W.length;this._buffer=Array.from({length:$})}get buffer(){return this._buffer}get index(){return this._index}add(W){this._buffer[this._index]=W,this._index=(this._index+1)%this._buffer.length}copy(){let W=new t6([...this._buffer]);return W._index=this._index,W}}var k_={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function zG(W,$){let X=Z1($),Y=`${W.key}(${X})`,J=k_[W.type],G={key:Y,type:J};return Object.assign(G,{family:{key:W.key,subKey:X}}),Object.assign(G,{counterfeit:!0}),G}function u$(W){let $={key:W.key,type:W.type};if("family"in W)$.family=W.family;return $}var A9=(W)=>($,X,Y,J,...G)=>{console[W](`${$} ${X} "${Y}" ${J}`,...G)},I_={error:A9("error"),info:A9("info"),warn:A9("warn")};class E9{logLevel;filter;logger;constructor(W,$,X=I_){this.logLevel=W,this.filter=$,this.logger=X}error=(...W)=>{if((this.filter?.(...W)??!0)&&this.logLevel!==null)this.logger.error(...W)};info=(...W)=>{if((this.filter?.(...W)??!0)&&this.logLevel==="info")this.logger.info(...W)};warn=(...W)=>{if((this.filter?.(...W)??!0)&&this.logLevel!=="error"&&this.logLevel!==null)this.logger.warn(...W)}}class IW{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(W,$)=>`${W}:${$}`;warn;getRelatedKeys(W){return this.relations.get(W)}addRelation(W,$){let X=this.relations.get(W),Y=this.relations.get($);if(X)X.add($);else X=new Set([$]),this.relations.set(W,X);if(Y)Y.add(W);else Y=new Set([W]),this.relations.set($,Y)}deleteRelation(W,$){let X=this.relations.get(W);if(X){if(X.delete($),X.size===0)this.relations.delete(W);let Y=this.relations.get($);if(Y){if(Y.delete(W),Y.size===0)this.relations.delete($)}}}replaceRelationsUnsafely(W,$){this.relations.set(W,new Set($));for(let X of $){let Y=new Set().add(W);this.relations.set(X,Y)}}replaceRelationsSafely(W,$){let X=this.relations.get(W),Y=this.isAType?.(W)?W:void 0,J=Y===void 0?W:void 0;if(X)for(let G of X){Y??=G,J??=G;let H=this.relations.get(G);if(H){if(H.size===1)this.relations.delete(G);else H.delete(W);this.contents.delete(this.makeContentKey(Y,J))}}this.relations.set(W,new Set($));for(let G of $){let H=this.relations.get(G);if(H)H.add(W);else H=new Set().add(W),this.relations.set(G,H)}}getContentInternal(W){return this.contents.get(W)}setContent(W,$){this.contents.set(W,$)}deleteContent(W){this.contents.delete(W)}constructor(W,$){if(this.a=W.between[0],this.b=W.between[1],this.cardinality=W.cardinality,!$?.externalStore)this.relations=new Map(W.relations?.map(([X,Y])=>[X,new Set(Y)])),this.contents=new Map(W.contents);if(this.isAType=$?.isAType??null,this.isBType=$?.isBType??null,this.isContent=$?.isContent??null,$?.makeContentKey)this.makeContentKey=$.makeContentKey;if($?.externalStore){let X=$.externalStore;if(this.has=(Y,J)=>X.has(Y,J),this.addRelation=(Y,J)=>{X.addRelation(Y,J)},this.deleteRelation=(Y,J)=>{X.deleteRelation(Y,J)},this.replaceRelationsSafely=(Y,J)=>{X.replaceRelationsSafely(Y,J)},this.replaceRelationsUnsafely=(Y,J)=>{X.replaceRelationsUnsafely(Y,J)},this.getRelatedKeys=(Y)=>X.getRelatedKeys(Y),X.getContent)this.getContentInternal=(Y)=>{return X.getContent(Y)},this.setContent=(Y,J)=>{X.setContent(Y,J)},this.deleteContent=(Y)=>{X.deleteContent(Y)};for(let[Y,J]of W.relations??[]){let G=this.isAType?.(Y)?Y:void 0,H=G===void 0?Y:void 0;for(let Q of J)G??=Q,H??=Q,this.addRelation(G,H)}for(let[Y,J]of W.contents??[])this.setContent(Y,J)}if($?.warn)this.warn=$.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([W,$])=>[W,[...$]]),contents:[...this.contents.entries()]}}set(...W){let $,X,Y;switch(W.length){case 1:{let J=W[0];$=J[this.a],X=J[this.b],Y=void 0;break}case 2:{let J=W[0];if(typeof J==="string")[$,X]=W;else $=J[this.a],X=J[this.b],Y=W[1];break}default:{$=W[0],X=W[1],Y=W[2];break}}switch(this.cardinality){case"1:1":{let J=this.getRelatedKey($);if(J&&J!==X)this.delete($,J)}case"1:n":{let J=this.getRelatedKey(X);if(J&&J!==$)this.delete(J,X)}break;case"n:n":}if(Y){let J=this.makeContentKey($,X);this.setContent(J,Y)}return this.addRelation($,X),this}delete(W,$){$=typeof $==="string"?$:W[this.b];let X=typeof W==="string"?W:W[this.a];if(X===void 0&&typeof $==="string"){let Y=this.getRelatedKeys($);if(Y)for(let J of Y)this.delete(J,$)}if(typeof X==="string"&&$===void 0){let Y=this.getRelatedKeys(X);if(Y)for(let J of Y)this.delete(X,J)}if(typeof X==="string"&&typeof $==="string"){this.deleteRelation(X,$);let Y=this.makeContentKey(X,$);this.deleteContent(Y)}return this}getRelatedKey(W){let $=this.getRelatedKeys(W);if($){if($.size>1)this.warn?.(`${$.size} related keys were found for key "${W}": (${[...$].map((Y)=>`"${Y}"`).join(", ")}). Only one related key was expected.`);let X;for(let Y of $){X=Y;break}return X}}replaceRelations(W,$,X){let Y=!Array.isArray($),J=Y?Object.keys($):$;if(X?.reckless)this.replaceRelationsUnsafely(W,J);else this.replaceRelationsSafely(W,J);if(Y)for(let G of J){let H=this.makeContentKey(W,G),Q=$[G];this.setContent(H,Q)}return this}getContent(W,$){let X=this.makeContentKey(W,$);return this.getContentInternal(X)}getRelationEntries(W){let $=W[this.a],X=W[this.b];if($!==void 0&&X===void 0){let Y=this.getRelatedKeys($);if(Y)return[...Y].map((J)=>{return[J,this.getContent($,J)]})}if($===void 0&&X!==void 0){let Y=this.getRelatedKeys(X);if(Y)return[...Y].map((J)=>{return[J,this.getContent(J,X)]})}return[]}has(W,$){if($)return this.getRelatedKeys(W)?.has($)??!1;return this.relations.has(W)}}class Z0{Subscriber;subscribers=new Map;subscribe(W,$){return this.subscribers.set(W,$),()=>{this.unsubscribe(W)}}unsubscribe(W){this.subscribers.delete(W)}next(W){let $=this.subscribers.values();for(let X of $)X(W)}}class N9 extends Z0{state;constructor(W){super();this.state=W}next(W){this.state=W,super.next(W)}}function I8(W){return"epoch"in W.transactionMeta}function d1(W){return"phase"in W.transactionMeta}function FG(W){return W[0].toUpperCase()+W.slice(1)}function a6(W){return W.type.split("_").map(FG).join(" ")}class c$ extends Error{constructor(W,$){super(`${a6(W)} ${Z1(W.key)} not found in store "${$.config.name}".`)}}var s6=(W)=>($)=>W instanceof Function?W($):W;var K2=(W,$)=>{if(W.valueMap.has($.key))return W.logger.info("\uD83D\uDCD6",$.type,$.key,"reading cached value"),TG($,W);switch($.type){case"selector":case"readonly_selector":return W.logger.info("\uD83E\uDDEE",$.type,$.key,"computing value"),$.get();case"atom":case"mutable_atom":{let X=$.default,Y;if(X instanceof Function)Y=X();else Y=X;return W.logger.info("\uD83D\uDC81","atom",$.key,"could not find cached value; using default",Y),Y}}};var UG=(W,$)=>{if(W.operation.open){let X=performance.now();return W.logger.info("\u2757",$.type,$.key,`deferring setState at T-${X} until setState for "${W.operation.token.key}" is done`),X}W.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:$},W.logger.info("\u2B55",$.type,$.key,`operation start in store "${W.config.name}"${!d1(W)?"":` ${W.transactionMeta.phase} "${W.transactionMeta.update.key}"`}`)},wG=(W)=>{if(W.operation.open)W.logger.info("\uD83D\uDD34",W.operation.token.type,W.operation.token.key,`operation done in store "${W.config.name}"`);W.operation={open:!1},W.on.operationClose.next(W.operation)},MG=(W,$)=>{if(!W.operation.open)return W.logger.error("\uD83D\uDC1E","unknown",$,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return W.operation.done.has($)},j8=(W,$)=>{if(!W.operation.open){W.logger.error("\uD83D\uDC1E","unknown",$,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}W.operation.done.add($)};var _G=(W,$,X)=>{switch($.type){case"mutable_atom":W.logger.info("\uD83D\uDCE2",$.type,$.key,"is now (",X.newValue,") subscribers:",$.subject.subscribers);break;case"atom":case"selector":case"readonly_selector":W.logger.info("\uD83D\uDCE2",$.type,$.key,"went (",X.oldValue,"->",X.newValue,") subscribers:",$.subject.subscribers)}$.subject.next(X)};var B9=(W,$)=>{let X=J0(W),Y=X.selectorAtoms.getRelatedKeys($.key);if(X.logger.info("\uD83E\uDDF9",$.type,$.key,Y?`evicting ${Y.size} states downstream:`:"no downstream states",Y??"to evict"),Y){if(X.operation.open)X.logger.info("\uD83E\uDDF9",$.type,$.key,`[ ${[...X.operation.done].join(", ")} ] already done`);for(let J of Y){if(MG(X,J))continue;DG(J,X),j8(X,J)}}};var VG=(W,$,X)=>{let Y=K2(W,$),J=Y;if($.type==="mutable_atom"&&d1(W)){let{parent:H}=W;J=d$(W,$,H)}if(J=s6(X)(J),W.logger.info("\uD83D\uDCDD","atom",$.key,"set to",J),J=jW(W,$.key,J,$.subject),KG(W,$.key))LG(W,$.key);j8(W,$.key),B9(W,$);let G={oldValue:Y,newValue:J};if(!d1(W)){_G(W,$,G);return}if(W.on.transactionApplying.state===null){let{key:H}=$;if(OG(G.newValue))return;let Q={type:"atom_update",key:H,...G};if($.family)Q.family=$.family;W.transactionMeta.update.updates.push(Q),W.logger.info("\uD83D\uDCC1","atom",H,"stowed (",G.oldValue,"->",G.newValue,")")}else if($.key.startsWith("*")){let H=$.key.slice(1),Q=W.atoms.get(H),z=W.valueMap.get(H);if(Q.type==="mutable_atom"&&d1(W)){let{parent:T}=W;z=d$(W,Q,T)}if(z.do(G.newValue)===null)B9(W,Q)}};var e6=(W,$,X)=>{switch($.type){case"atom":case"mutable_atom":VG(W,$,X);break;case"selector":$.set(X);break}};var WX=(W,$)=>J0(W).atoms.has($),j_=(W,$)=>J0(W).selectors.has($),f_=(W,$)=>J0(W).readonlySelectors.has($),AG=(W,$)=>WX(W,$)||j_(W,$)||f_(W,$);var $X=(W,$)=>{return J0($).selectorGraph.getRelationEntries({downstreamSelectorKey:W}).filter(([Y,{source:J}])=>J!==W).map(([Y,{source:J}])=>J).filter((Y)=>AG($,Y))};var R9=(W,$,X)=>{let Y=[],J=$X(W,X);while(J.length>0){let G=J.shift();if($.has(G))continue;if($.add(G),!WX(X,G))J.push(...$X(G,X));else if(!Y.includes(G))Y.push(G)}return Y},EG=(W,$)=>{let X=W.key,Y=$X(X,$),J=new Set;return Y.flatMap((G)=>WX($,G)?G:R9(G,J,$))};var NG=(W,$,X,Y)=>{let J=J0(Y);if($.type==="atom"||$.type==="mutable_atom")J.selectorAtoms.set({selectorKey:W,atomKey:$.key}),Y.logger.info("\uD83D\uDD0D","selector",W,`discovers root atom "${$.key}"`);else{let G=R9($.key,X,Y);Y.logger.info("\uD83D\uDD0D","selector",W,`discovers root atoms: [ ${G.map((H)=>`"${H}"`).join(", ")} ]`);for(let H of G)J.selectorAtoms=J.selectorAtoms.set({selectorKey:W,atomKey:H})}X.add($.key)};var XX=(W,$,X)=>({get:(...Y)=>{let J=J0(X),G;if(Y.length===2){let[z,F]=Y;G=l1(X,z,F)}else[G]=Y;let H=P1(X,G),Q=K2(X,H);return X.logger.info("\uD83D\uDD0C","selector",W,`registers dependency ( "${G.key}" =`,Q,")"),J.selectorGraph.set({upstreamSelectorKey:G.key,downstreamSelectorKey:W},{source:G.key}),NG(W,G,$,X),Q},set:(...Y)=>{let J,G;if(Y.length===2)J=Y[0],G=Y[1];else{let z=Y[0],F=Y[1];G=Y[2],J=l1(X,z,F)}let H=J0(X),Q=P1(H,J);e6(H,Q,G)},find:(...Y)=>l1(X,...Y),json:(Y)=>f8(X,Y)});var Z9=(W,$,X)=>{let Y=J0(W),J=new Z0,G=new Set,{get:H,find:Q,json:z}=XX($.key,G,Y),F=()=>{let V=$.get({get:H,find:Q,json:z});return jW(J0(W),$.key,V,J),G.clear(),V},T={...$,subject:J,install:(V)=>Z9(V,$,X),get:F,type:"readonly_selector",...X&&{family:X}};Y.readonlySelectors.set($.key,T);let U=F();W.logger.info("\u2728",T.type,T.key,"=",U);let M={key:$.key,type:"readonly_selector"};if(X)M.family=X;return M};var l$=(W,$,X)=>{let Y=J0(W),J=new Z0,G=new Set,H=XX($.key,G,Y),{find:Q,get:z,json:F}=H,T={find:Q,get:z,json:F},U=(I=$.get,C=J0(W))=>{let B=I(T);return jW(C,$.key,B,J),G.clear(),B},V={...$,subject:J,install:(I)=>l$(I,$,X),get:U,set:(I)=>{let C=J0(W),B=U($.get,C),q=s6(I)(B);if(W.logger.info("\uD83D\uDCDD","selector",$.key,"set (",B,"->",q,")"),jW(C,$.key,q,J),j8(C,$.key),I8(C))J.next({newValue:q,oldValue:B});$.set(H,q)},type:"selector",...X&&{family:X}};Y.selectors.set($.key,V);let K=U();W.logger.info("\u2728",V.type,V.key,"=",K);let N={key:$.key,type:"selector"};if(X)N.family=X;return N};function HG(W,$){if("set"in $){let J=l$(W,$,void 0);return W.on.selectorCreation.next(J),J}let Y=Z9(W,$,void 0);return W.on.selectorCreation.next(Y),Y}function L9(W,$,X){let Y={key:$.key,type:"selector_family"},J=W.families.get($.key);if(J)W.logger.error("\u2757","selector_family",$.key,`Overwriting an existing ${a6(J)} "${J.key}" in store "${W.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let G=new Z0,Q=Object.assign((z)=>{let F=Z1(z),T={key:$.key,subKey:F},U=`${$.key}(${F})`,M=J0(W),V=l$(M,{key:U,get:$.get(z),set:$.set(z)},T);return G.next({type:"state_creation",token:V}),V},Y,{internalRoles:X,subject:G,install:(z)=>L9(z,$),default:(z)=>{return $.get(z)({get:(...T)=>o$(W,...T),find:(...T)=>l1(W,...T),json:(T)=>f8(W,T)})}});return W.families.set($.key,Q),Y}function BG(W,$,X){let Y=W.families.get($.key);if(Y===void 0)throw new c$($,W);let J=Y(X),G=J0(W);if(J.family){if(I8(G))switch(J.type){case"atom":case"mutable_atom":W.on.atomCreation.next(J);break;case"selector":case"readonly_selector":W.on.selectorCreation.next(J);break}else if(d1(G)&&G.on.transactionApplying.state===null)G.transactionMeta.update.updates.push({type:"state_creation",token:J})}return J}function RG(W,$,X){let Y=Z1(X),J=`${$.key}(${Y})`,G=J0(W),H;switch($.type){case"atom_family":case"mutable_atom_family":H=G.atoms.get(J);break;case"selector_family":H=G.selectors.get(J);break;case"readonly_selector_family":H=G.readonlySelectors.get(J);break}if(H)return u$(H);return H}function l1(W,$,X){let Y=RG(W,$,X);if(Y)return Y;let J=Z1(X),G=W.molecules.get(J);if(!G&&W.config.lifespan==="immortal"){let H=zG($,X);return W.logger.error("\u274C",H.type,H.key,`was not found in store "${W.config.name}"; returned a counterfeit token.`),H}if(Y=BG(W,$,X),G)J0(W).moleculeData.set(J,$.key);return Y}function ZG(W,$){if($.family){let X=W.families.get($.family.key);if(X)return X}}function L2(W,...$){let X,Y,J,G;if($.length===2){if(X=$[0],G=$[1],Y=ZG(W,X)??null,Y)J=X.family?p$(X.family.subKey):null,X=l1(W,Y,J)}else Y=$[0],J=$[1],G=$[2],X=l1(W,Y,J);if("counterfeit"in X&&"family"in X){let z=X.family.subKey,F=W.disposalTraces.buffer.find((T)=>T?.key===z);W.logger.error("\u274C",X.type,X.key,`could not be set because it was not found in the store "${W.config.name}".`,F?`This state was previously disposed:
3
+ var N_=Object.create;var{getPrototypeOf:R_,defineProperty:K9,getOwnPropertyNames:B_}=Object;var Z_=Object.prototype.hasOwnProperty;var S_=(W,$,X)=>{X=W!=null?N_(R_(W)):{};let Y=$||!W||!W.__esModule?K9(X,"default",{value:W,enumerable:!0}):X;for(let J of B_(W))if(!Z_.call(Y,J))K9(Y,J,{get:()=>W[J],enumerable:!0});return Y};var q_=(W,$)=>()=>($||W(($={exports:{}}).exports,$),$.exports);var C_=(W,$)=>{for(var X in $)K9(W,X,{get:$[X],enumerable:!0,configurable:!0,set:(Y)=>$[X]=()=>Y})};var sE=(W,$)=>()=>(W&&($=W(W=0)),$);var GG=import.meta.require;var ZH=q_((GP,BH)=>{var i4=GG("os"),n4=GG("path");function RH(W){let $=process.env.XDG_CACHE_HOME||n4.join(i4.homedir(),".cache");return n4.join($,W)}function IO(W){return n4.join(i4.homedir(),"Library","Caches",W)}function jO(W){let $=process.env.LOCALAPPDATA||n4.join(i4.homedir(),"AppData","Local");return n4.join($,W,"Cache")}var fO=function(){switch(i4.platform()){case"darwin":return IO;case"win32":return jO;case"aix":case"android":case"freebsd":case"linux":case"netbsd":case"openbsd":case"sunos":return RH;default:return console.error(`(node:${process.pid}) [cachedir] Warning: the platform "${i4.platform()}" is not currently supported by node-cachedir, falling back to "posix". Please file an issue with your platform here: https://github.com/LinusU/node-cachedir/issues/new`),RH}}();BH.exports=function W($){if(typeof $!=="string")throw new TypeError("id is not a string");if($.length===0)throw new Error("id cannot be empty");if(/[^0-9a-zA-Z-]/.test($))throw new Error("id cannot contain special characters");return fO($)}});class m$ extends Promise{fate;resolve;reject;done=!1;constructor(W){let $,X;super((Y,J)=>{$=Y,X=J});this.resolve=$,this.reject=X,this.use(W instanceof Promise?W:new Promise(W))}pass(W,$){if(W===this.fate)this.resolve($),this.done=!0}fail(W,$){if(W===this.fate)this.reject($),this.done=!0}use(W){if(W instanceof Promise){let $=W;this.fate=$,$.then((X)=>{this.pass($,X)},(X)=>{this.fail($,X)})}else this.resolve(W),this.fate=void 0}}var XN=(W,$,X=QG.STORE)=>{return HG(X,{key:`${W.key}:JSON`,get:({get:Y})=>$.toJson(Y(W)),set:({set:Y},J)=>{Y(W,$.fromJson(J))}})};function GN(W,$,X){return L9(W,{key:`${$.key}:JSON`,get:(J)=>({get:G})=>{let H=G($,J);return X.toJson(H)},set:(J)=>({set:G},H)=>{G($,J,X.fromJson(H))}},["mutable","json"])}var p$=(W)=>JSON.parse(W),Z1=(W)=>JSON.stringify(W),QN=[Array.prototype,Boolean.prototype,Number.prototype,Object.prototype,String.prototype];function J0(W){while(W.child!==null)W=W.child;return W}class t6{_buffer;_index=0;constructor(W){let $;if(typeof W==="number")$=W;else $=W.length;this._buffer=Array.from({length:$})}get buffer(){return this._buffer}get index(){return this._index}add(W){this._buffer[this._index]=W,this._index=(this._index+1)%this._buffer.length}copy(){let W=new t6([...this._buffer]);return W._index=this._index,W}}var k_={atom_family:"atom",mutable_atom_family:"mutable_atom",selector_family:"selector",readonly_selector_family:"readonly_selector",molecule_family:"molecule"};function zG(W,$){let X=Z1($),Y=`${W.key}(${X})`,J=k_[W.type],G={key:Y,type:J};return Object.assign(G,{family:{key:W.key,subKey:X}}),Object.assign(G,{counterfeit:!0}),G}function u$(W){let $={key:W.key,type:W.type};if("family"in W)$.family=W.family;return $}var A9=(W)=>($,X,Y,J,...G)=>{console[W](`${$} ${X} "${Y}" ${J}`,...G)},I_={error:A9("error"),info:A9("info"),warn:A9("warn")};class E9{logLevel;filter;logger;constructor(W,$,X=I_){this.logLevel=W,this.filter=$,this.logger=X}error=(...W)=>{if((this.filter?.(...W)??!0)&&this.logLevel!==null)this.logger.error(...W)};info=(...W)=>{if((this.filter?.(...W)??!0)&&this.logLevel==="info")this.logger.info(...W)};warn=(...W)=>{if((this.filter?.(...W)??!0)&&this.logLevel!=="error"&&this.logLevel!==null)this.logger.warn(...W)}}class IW{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(W,$)=>`${W}:${$}`;warn;getRelatedKeys(W){return this.relations.get(W)}addRelation(W,$){let X=this.relations.get(W),Y=this.relations.get($);if(X)X.add($);else X=new Set([$]),this.relations.set(W,X);if(Y)Y.add(W);else Y=new Set([W]),this.relations.set($,Y)}deleteRelation(W,$){let X=this.relations.get(W);if(X){if(X.delete($),X.size===0)this.relations.delete(W);let Y=this.relations.get($);if(Y){if(Y.delete(W),Y.size===0)this.relations.delete($)}}}replaceRelationsUnsafely(W,$){this.relations.set(W,new Set($));for(let X of $){let Y=new Set().add(W);this.relations.set(X,Y)}}replaceRelationsSafely(W,$){let X=this.relations.get(W),Y=this.isAType?.(W)?W:void 0,J=Y===void 0?W:void 0;if(X)for(let G of X){Y??=G,J??=G;let H=this.relations.get(G);if(H){if(H.size===1)this.relations.delete(G);else H.delete(W);this.contents.delete(this.makeContentKey(Y,J))}}this.relations.set(W,new Set($));for(let G of $){let H=this.relations.get(G);if(H)H.add(W);else H=new Set().add(W),this.relations.set(G,H)}}getContentInternal(W){return this.contents.get(W)}setContent(W,$){this.contents.set(W,$)}deleteContent(W){this.contents.delete(W)}constructor(W,$){if(this.a=W.between[0],this.b=W.between[1],this.cardinality=W.cardinality,!$?.externalStore)this.relations=new Map(W.relations?.map(([X,Y])=>[X,new Set(Y)])),this.contents=new Map(W.contents);if(this.isAType=$?.isAType??null,this.isBType=$?.isBType??null,this.isContent=$?.isContent??null,$?.makeContentKey)this.makeContentKey=$.makeContentKey;if($?.externalStore){let X=$.externalStore;if(this.has=(Y,J)=>X.has(Y,J),this.addRelation=(Y,J)=>{X.addRelation(Y,J)},this.deleteRelation=(Y,J)=>{X.deleteRelation(Y,J)},this.replaceRelationsSafely=(Y,J)=>{X.replaceRelationsSafely(Y,J)},this.replaceRelationsUnsafely=(Y,J)=>{X.replaceRelationsUnsafely(Y,J)},this.getRelatedKeys=(Y)=>X.getRelatedKeys(Y),X.getContent)this.getContentInternal=(Y)=>{return X.getContent(Y)},this.setContent=(Y,J)=>{X.setContent(Y,J)},this.deleteContent=(Y)=>{X.deleteContent(Y)};for(let[Y,J]of W.relations??[]){let G=this.isAType?.(Y)?Y:void 0,H=G===void 0?Y:void 0;for(let Q of J)G??=Q,H??=Q,this.addRelation(G,H)}for(let[Y,J]of W.contents??[])this.setContent(Y,J)}if($?.warn)this.warn=$.warn}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([W,$])=>[W,[...$]]),contents:[...this.contents.entries()]}}set(...W){let $,X,Y;switch(W.length){case 1:{let J=W[0];$=J[this.a],X=J[this.b],Y=void 0;break}case 2:{let J=W[0];if(typeof J==="string")[$,X]=W;else $=J[this.a],X=J[this.b],Y=W[1];break}default:{$=W[0],X=W[1],Y=W[2];break}}switch(this.cardinality){case"1:1":{let J=this.getRelatedKey($);if(J&&J!==X)this.delete($,J)}case"1:n":{let J=this.getRelatedKey(X);if(J&&J!==$)this.delete(J,X)}break;case"n:n":}if(Y){let J=this.makeContentKey($,X);this.setContent(J,Y)}return this.addRelation($,X),this}delete(W,$){$=typeof $==="string"?$:W[this.b];let X=typeof W==="string"?W:W[this.a];if(X===void 0&&typeof $==="string"){let Y=this.getRelatedKeys($);if(Y)for(let J of Y)this.delete(J,$)}if(typeof X==="string"&&$===void 0){let Y=this.getRelatedKeys(X);if(Y)for(let J of Y)this.delete(X,J)}if(typeof X==="string"&&typeof $==="string"){this.deleteRelation(X,$);let Y=this.makeContentKey(X,$);this.deleteContent(Y)}return this}getRelatedKey(W){let $=this.getRelatedKeys(W);if($){if($.size>1)this.warn?.(`${$.size} related keys were found for key "${W}": (${[...$].map((Y)=>`"${Y}"`).join(", ")}). Only one related key was expected.`);let X;for(let Y of $){X=Y;break}return X}}replaceRelations(W,$,X){let Y=!Array.isArray($),J=Y?Object.keys($):$;if(X?.reckless)this.replaceRelationsUnsafely(W,J);else this.replaceRelationsSafely(W,J);if(Y)for(let G of J){let H=this.makeContentKey(W,G),Q=$[G];this.setContent(H,Q)}return this}getContent(W,$){let X=this.makeContentKey(W,$);return this.getContentInternal(X)}getRelationEntries(W){let $=W[this.a],X=W[this.b];if($!==void 0&&X===void 0){let Y=this.getRelatedKeys($);if(Y)return[...Y].map((J)=>{return[J,this.getContent($,J)]})}if($===void 0&&X!==void 0){let Y=this.getRelatedKeys(X);if(Y)return[...Y].map((J)=>{return[J,this.getContent(J,X)]})}return[]}has(W,$){if($)return this.getRelatedKeys(W)?.has($)??!1;return this.relations.has(W)}}class Z0{Subscriber;subscribers=new Map;subscribe(W,$){return this.subscribers.set(W,$),()=>{this.unsubscribe(W)}}unsubscribe(W){this.subscribers.delete(W)}next(W){let $=this.subscribers.values();for(let X of $)X(W)}}class N9 extends Z0{state;constructor(W){super();this.state=W}next(W){this.state=W,super.next(W)}}function I8(W){return"epoch"in W.transactionMeta}function d1(W){return"phase"in W.transactionMeta}function FG(W){return W[0].toUpperCase()+W.slice(1)}function a6(W){return W.type.split("_").map(FG).join(" ")}class c$ extends Error{constructor(W,$){super(`${a6(W)} ${Z1(W.key)} not found in store "${$.config.name}".`)}}var s6=(W)=>($)=>W instanceof Function?W($):W;var K2=(W,$)=>{if(W.valueMap.has($.key))return W.logger.info("\uD83D\uDCD6",$.type,$.key,"reading cached value"),TG($,W);switch($.type){case"selector":case"readonly_selector":return W.logger.info("\uD83E\uDDEE",$.type,$.key,"computing value"),$.get();case"atom":case"mutable_atom":{let X=$.default,Y;if(X instanceof Function)Y=X();else Y=X;return W.logger.info("\uD83D\uDC81","atom",$.key,"could not find cached value; using default",Y),Y}}};var UG=(W,$)=>{if(W.operation.open){let X=performance.now();return W.logger.info("\u2757",$.type,$.key,`deferring setState at T-${X} until setState for "${W.operation.token.key}" is done`),X}W.operation={open:!0,done:new Set,prev:new Map,time:Date.now(),token:$},W.logger.info("\u2B55",$.type,$.key,`operation start in store "${W.config.name}"${!d1(W)?"":` ${W.transactionMeta.phase} "${W.transactionMeta.update.key}"`}`)},wG=(W)=>{if(W.operation.open)W.logger.info("\uD83D\uDD34",W.operation.token.type,W.operation.token.key,`operation done in store "${W.config.name}"`);W.operation={open:!1},W.on.operationClose.next(W.operation)},MG=(W,$)=>{if(!W.operation.open)return W.logger.error("\uD83D\uDC1E","unknown",$,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0;return W.operation.done.has($)},j8=(W,$)=>{if(!W.operation.open){W.logger.error("\uD83D\uDC1E","unknown",$,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}W.operation.done.add($)};var _G=(W,$,X)=>{switch($.type){case"mutable_atom":W.logger.info("\uD83D\uDCE2",$.type,$.key,"is now (",X.newValue,") subscribers:",$.subject.subscribers);break;case"atom":case"selector":case"readonly_selector":W.logger.info("\uD83D\uDCE2",$.type,$.key,"went (",X.oldValue,"->",X.newValue,") subscribers:",$.subject.subscribers)}$.subject.next(X)};var R9=(W,$)=>{let X=J0(W),Y=X.selectorAtoms.getRelatedKeys($.key);if(X.logger.info("\uD83E\uDDF9",$.type,$.key,Y?`evicting ${Y.size} states downstream:`:"no downstream states",Y??"to evict"),Y){if(X.operation.open)X.logger.info("\uD83E\uDDF9",$.type,$.key,`[ ${[...X.operation.done].join(", ")} ] already done`);for(let J of Y){if(MG(X,J))continue;DG(J,X),j8(X,J)}}};var OG=(W,$,X)=>{let Y=K2(W,$),J=Y;if($.type==="mutable_atom"&&d1(W)){let{parent:H}=W;J=d$(W,$,H)}if(J=s6(X)(J),W.logger.info("\uD83D\uDCDD","atom",$.key,"set to",J),J=jW(W,$.key,J,$.subject),KG(W,$.key))LG(W,$.key);j8(W,$.key),R9(W,$);let G={oldValue:Y,newValue:J};if(!d1(W)){_G(W,$,G);return}if(W.on.transactionApplying.state===null){let{key:H}=$;if(VG(G.newValue))return;let Q={type:"atom_update",key:H,...G};if($.family)Q.family=$.family;W.transactionMeta.update.updates.push(Q),W.logger.info("\uD83D\uDCC1","atom",H,"stowed (",G.oldValue,"->",G.newValue,")")}else if($.key.startsWith("*")){let H=$.key.slice(1),Q=W.atoms.get(H),z=W.valueMap.get(H);if(Q.type==="mutable_atom"&&d1(W)){let{parent:T}=W;z=d$(W,Q,T)}if(z.do(G.newValue)===null)R9(W,Q)}};var e6=(W,$,X)=>{switch($.type){case"atom":case"mutable_atom":OG(W,$,X);break;case"selector":$.set(X);break}};var WX=(W,$)=>J0(W).atoms.has($),j_=(W,$)=>J0(W).selectors.has($),f_=(W,$)=>J0(W).readonlySelectors.has($),AG=(W,$)=>WX(W,$)||j_(W,$)||f_(W,$);var $X=(W,$)=>{return J0($).selectorGraph.getRelationEntries({downstreamSelectorKey:W}).filter(([Y,{source:J}])=>J!==W).map(([Y,{source:J}])=>J).filter((Y)=>AG($,Y))};var B9=(W,$,X)=>{let Y=[],J=$X(W,X);while(J.length>0){let G=J.shift();if($.has(G))continue;if($.add(G),!WX(X,G))J.push(...$X(G,X));else if(!Y.includes(G))Y.push(G)}return Y},EG=(W,$)=>{let X=W.key,Y=$X(X,$),J=new Set;return Y.flatMap((G)=>WX($,G)?G:B9(G,J,$))};var NG=(W,$,X,Y)=>{let J=J0(Y);if($.type==="atom"||$.type==="mutable_atom")J.selectorAtoms.set({selectorKey:W,atomKey:$.key}),Y.logger.info("\uD83D\uDD0D","selector",W,`discovers root atom "${$.key}"`);else{let G=B9($.key,X,Y);Y.logger.info("\uD83D\uDD0D","selector",W,`discovers root atoms: [ ${G.map((H)=>`"${H}"`).join(", ")} ]`);for(let H of G)J.selectorAtoms=J.selectorAtoms.set({selectorKey:W,atomKey:H})}X.add($.key)};var XX=(W,$,X)=>({get:(...Y)=>{let J=J0(X),G;if(Y.length===2){let[z,F]=Y;G=l1(X,z,F)}else[G]=Y;let H=P1(X,G),Q=K2(X,H);return X.logger.info("\uD83D\uDD0C","selector",W,`registers dependency ( "${G.key}" =`,Q,")"),J.selectorGraph.set({upstreamSelectorKey:G.key,downstreamSelectorKey:W},{source:G.key}),NG(W,G,$,X),Q},set:(...Y)=>{let J,G;if(Y.length===2)J=Y[0],G=Y[1];else{let z=Y[0],F=Y[1];G=Y[2],J=l1(X,z,F)}let H=J0(X),Q=P1(H,J);e6(H,Q,G)},find:(...Y)=>l1(X,...Y),json:(Y)=>f8(X,Y)});var Z9=(W,$,X)=>{let Y=J0(W),J=new Z0,G=new Set,{get:H,find:Q,json:z}=XX($.key,G,Y),F=()=>{let O=$.get({get:H,find:Q,json:z});return jW(J0(W),$.key,O,J),G.clear(),O},T={...$,subject:J,install:(O)=>Z9(O,$,X),get:F,type:"readonly_selector",...X&&{family:X}};Y.readonlySelectors.set($.key,T);let U=F();W.logger.info("\u2728",T.type,T.key,"=",U);let M={key:$.key,type:"readonly_selector"};if(X)M.family=X;return M};var l$=(W,$,X)=>{let Y=J0(W),J=new Z0,G=new Set,H=XX($.key,G,Y),{find:Q,get:z,json:F}=H,T={find:Q,get:z,json:F},U=(I=$.get,C=J0(W))=>{let R=I(T);return jW(C,$.key,R,J),G.clear(),R},O={...$,subject:J,install:(I)=>l$(I,$,X),get:U,set:(I)=>{let C=J0(W),R=U($.get,C),q=s6(I)(R);if(W.logger.info("\uD83D\uDCDD","selector",$.key,"set (",R,"->",q,")"),jW(C,$.key,q,J),j8(C,$.key),I8(C))J.next({newValue:q,oldValue:R});$.set(H,q)},type:"selector",...X&&{family:X}};Y.selectors.set($.key,O);let K=U();W.logger.info("\u2728",O.type,O.key,"=",K);let N={key:$.key,type:"selector"};if(X)N.family=X;return N};function HG(W,$){if("set"in $){let J=l$(W,$,void 0);return W.on.selectorCreation.next(J),J}let Y=Z9(W,$,void 0);return W.on.selectorCreation.next(Y),Y}function L9(W,$,X){let Y={key:$.key,type:"selector_family"},J=W.families.get($.key);if(J)W.logger.error("\u2757","selector_family",$.key,`Overwriting an existing ${a6(J)} "${J.key}" in store "${W.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let G=new Z0,Q=Object.assign((z)=>{let F=Z1(z),T={key:$.key,subKey:F},U=`${$.key}(${F})`,M=J0(W),O=l$(M,{key:U,get:$.get(z),set:$.set(z)},T);return G.next({type:"state_creation",token:O}),O},Y,{internalRoles:X,subject:G,install:(z)=>L9(z,$),default:(z)=>{return $.get(z)({get:(...T)=>o$(W,...T),find:(...T)=>l1(W,...T),json:(T)=>f8(W,T)})}});return W.families.set($.key,Q),Y}function RG(W,$,X){let Y=W.families.get($.key);if(Y===void 0)throw new c$($,W);let J=Y(X),G=J0(W);if(J.family){if(I8(G))switch(J.type){case"atom":case"mutable_atom":W.on.atomCreation.next(J);break;case"selector":case"readonly_selector":W.on.selectorCreation.next(J);break}else if(d1(G)&&G.on.transactionApplying.state===null)G.transactionMeta.update.updates.push({type:"state_creation",token:J})}return J}function BG(W,$,X){let Y=Z1(X),J=`${$.key}(${Y})`,G=J0(W),H;switch($.type){case"atom_family":case"mutable_atom_family":H=G.atoms.get(J);break;case"selector_family":H=G.selectors.get(J);break;case"readonly_selector_family":H=G.readonlySelectors.get(J);break}if(H)return u$(H);return H}function l1(W,$,X){let Y=BG(W,$,X);if(Y)return Y;let J=Z1(X),G=W.molecules.get(J);if(!G&&W.config.lifespan==="immortal"){let H=zG($,X);return W.logger.error("\u274C",H.type,H.key,`was not found in store "${W.config.name}"; returned a counterfeit token.`),H}if(Y=RG(W,$,X),G)J0(W).moleculeData.set(J,$.key);return Y}function ZG(W,$){if($.family){let X=W.families.get($.family.key);if(X)return X}}function L2(W,...$){let X,Y,J,G;if($.length===2){if(X=$[0],G=$[1],Y=ZG(W,X)??null,Y)J=X.family?p$(X.family.subKey):null,X=l1(W,Y,J)}else Y=$[0],J=$[1],G=$[2],X=l1(W,Y,J);if("counterfeit"in X&&"family"in X){let z=X.family.subKey,F=W.disposalTraces.buffer.find((T)=>T?.key===z);W.logger.error("\u274C",X.type,X.key,`could not be set because it was not found in the store "${W.config.name}".`,F?`This state was previously disposed:
4
4
  ${F.trace}`:"No previous disposal trace was found.");return}let H=UG(W,X);if(H){let z=W.on.operationClose.subscribe(`waiting to set "${X.key}" at T-${H}`,()=>{z(),W.logger.info("\uD83D\uDFE2",X.type,X.key,`resuming deferred setState from T-${H}`),L2(W,X,G)});return}let Q=P1(W,X);e6(W,Q,G),wG(W)}function o$(W,...$){let X,Y,J;if($.length===1)X=$[0];else Y=$[0],J=$[1],X=l1(W,Y,J);if("counterfeit"in X&&"family"in X){Y=W.families.get(X.family.key);let G=X.family.subKey,H=W.disposalTraces.buffer.find((Q)=>Q?.key===G);switch(W.logger.error("\u274C",X.type,X.key,`could not be retrieved because it was not found in the store "${W.config.name}".`,H?`This state was previously disposed:
5
- ${H.trace}`:"No previous disposal trace was found."),Y.type){case"atom_family":case"mutable_atom_family":return W.defaults.get(Y.key);case"selector_family":case"readonly_selector_family":{if(W.defaults.has(Y.key))return W.defaults.get(X.family.key);let Q=P1(W,Y).default(G);return W.defaults.set(Y.key,Q),Q}}}return K2(W,P1(W,X))}class SG{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new IW({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new IW({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...W)=>W.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new IW({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new IW({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new t6(100);molecules=new Map;moleculeJoins=new IW({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...W)=>W.sort().join(":")});moleculeGraph=new IW({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...W)=>W.sort().join(":")});moleculeData=new IW({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...W)=>W.sort().join(":")});miscResources=new Map;on={atomCreation:new Z0,atomDisposal:new Z0,selectorCreation:new Z0,selectorDisposal:new Z0,timelineCreation:new Z0,transactionCreation:new Z0,transactionApplying:new N9(null),operationClose:new Z0,moleculeCreation:new Z0,moleculeDisposal:new Z0};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new E9("warn",(W,$,X)=>!CG(X))];logger={error:(...W)=>{for(let $ of this.loggers)$.error(...W)},info:(...W)=>{for(let $ of this.loggers)$.info(...W)},warn:(...W)=>{for(let $ of this.loggers)$.warn(...W)}};constructor(W,$=null){if(this.config={...$?.config,...W},$!==null){if(this.valueMap=new Map($?.valueMap),this.operation={...$?.operation},I8($))this.transactionMeta={epoch:new Map($?.transactionMeta.epoch),actionContinuities:new IW($?.transactionMeta.actionContinuities.toJSON())};for(let[,Y]of $.families){if(Y.internalRoles?.includes("mutable")||Y.internalRoles?.includes("join"))continue;Y.install(this)}let X=new Set;for(let[,Y]of $.atoms){if(X.has(Y.key))continue;if(Y.install(this),Y.type==="mutable_atom"){let J=f8($,Y),G=qG(Y);X.add(J.key),X.add(G.key)}}for(let[,Y]of $.readonlySelectors)Y.install(this);for(let[,Y]of $.selectors){if(X.has(Y.key))continue;Y.install(this)}for(let[,Y]of $.transactions)Y.install(this);for(let[,Y]of $.timelines)Y.install(this)}}}var QG={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new SG({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function P1(W,$){let X,Y=W;while(Y!==null){switch($.type){case"atom":case"mutable_atom":X=Y.atoms.get($.key);break;case"selector":X=Y.selectors.get($.key);break;case"readonly_selector":X=Y.readonlySelectors.get($.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":X=Y.families.get($.key);break;case"timeline":X=Y.timelines.get($.key);break;case"transaction":X=Y.transactions.get($.key);break}if(X)return X;Y=Y.child}throw new c$($,W)}var kG=(W,$)=>{let X=J0(W);if(X.operation.open)return X.operation.prev.get($.key);return X.valueMap.get($.key)};var S9=(W,$)=>{let X=J0(W);return EG($,W).map((J)=>{let G=X.atoms.get(J);if(G===void 0)throw new Error(`Atom "${J}", a dependency of selector "${$.key}", not found in store "${W.config.name}".`);return G.subject.subscribe(`${$.type}:${$.key}`,(H)=>{W.logger.info("\uD83D\uDCE2",$.type,$.key,"root",J,"went",H.oldValue,"->",H.newValue);let Q=kG(X,$),z=K2(X,$);W.logger.info("\u2728",$.type,$.key,"went",Q,"->",z),$.subject.next({newValue:z,oldValue:Q})})})};function i$(W,$,X,Y){function J(U){if(W.operation.open){let M=W.on.operationClose.subscribe(`state subscription ${X}`,()=>{M(),Y(U)})}else Y(U)}let G=P1(W,$);W.logger.info("\uD83D\uDC40",G.type,G.key,`Adding subscription "${X}"`);let H=G.type==="selector"||G.type==="readonly_selector",Q=null,z=J;if(H)Q=S9(W,G),z=(U)=>{if(Q)Q.length=0,Q.push(...S9(W,G));J(U)};let F=G.subject.subscribe(X,z);return()=>{if(W.logger.info("\uD83D\uDE48",G.type,G.key,`Removing subscription "${X}"`),F(),Q)for(let U of Q)U()}}var IG=(W,$,X,Y)=>{let J=P1(W,$);W.logger.info("\uD83D\uDC40","timeline",$.key,`Adding subscription "${X}"`);let G=J.subject.subscribe(X,Y);return()=>{W.logger.info("\uD83D\uDE48","timeline",$.key,`Removing subscription "${X}" from timeline`),G()}};class q9{initializeState(W,$){let X=`*${W.key}`;$.atoms.delete(X),$.valueMap.delete(X);let Y=W.family?{key:`*${W.family.key}`,subKey:W.family.subKey}:void 0,J=C9($,{key:X,default:null},Y);if($.parent?.valueMap.has(X)){let G=$.parent.valueMap.get(X);$.valueMap.set(X,G)}return J}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(W,$,X){let Y=`tracker:${X.config.name}:${d1(X)?X.transactionMeta.update.key:"main"}:${W.key}`,J=o$(X,W);this.unsubscribeFromInnerValue=J.subscribe(Y,(G)=>{L2(X,$,G)}),this.unsubscribeFromState=i$(X,W,Y,(G)=>{if(G.newValue!==G.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=G.newValue.subscribe(Y,(H)=>{L2(X,$,H)})})}updateCore(W,$,X){let Y=`tracker:${X.config.name}:${d1(X)?X.transactionMeta.update.key:"main"}:${W.key}`;i$(X,$,Y,({newValue:J,oldValue:G})=>{let H=X.timelineTopics.getRelatedKey($.key);if(H){if(X.timelines.get(H)?.timeTraveling){let F=IG(X,{key:H,type:"timeline"},Y,(T)=>{F(),L2(X,W,(U)=>{if(T==="redo"&&J)U.do(J);else if(T==="undo"&&G)U.undo(G);return U})});return}}let Q=X.on.operationClose.subscribe(Y,()=>{Q();let z=o$(X,W),F=J===null?-1:z.getUpdateNumber(J),T=F-z.cacheUpdateNumber;if(J&&T===1)L2(X,W,(U)=>(U.do(J),U));else X.logger.info("\u274C","mutable_atom",W.key,`could not be updated. Expected update number ${z.cacheUpdateNumber+1}, but got ${F}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(W,$){this.mutableState=W;let X=J0($);this.latestUpdateState=this.initializeState(W,X),this.observeCore(W,this.latestUpdateState,X),this.updateCore(W,this.latestUpdateState,X),X.trackers.set(W.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),X.trackers.delete(W.key)}}}var f8=(W,$)=>{if($.family){let Y=J0(W),G={key:`${$.family.key}:JSON`,type:"selector_family"},H=P1(Y,G),Q=JSON.parse($.family.subKey);return l1(W,H,Q)}return{type:"selector",key:`${$.key}:JSON`}};var qG=(W)=>{let X={type:"atom",key:`*${W.key}`};if(W.family)X.family={key:`*${W.family.key}`,subKey:W.family.subKey};return X};function OG(W){return typeof W==="object"&&W!==null&&"do"in W&&"undo"in W&&"subscribe"in W}function d$(W,$,X){let Y=X.valueMap.get($.key),J=W.valueMap.get($.key);if(Y!==J)return J;if(Y===void 0)return $.default();X.logger.info("\uD83D\uDCC3","atom",$.key,"copying");let G=$.toJson(Y),H=$.fromJson(G);return W.valueMap.set($.key,H),new q9($,X),H}function jW(W,$,X,Y){let J=W.valueMap.get($);if(J instanceof m$)J.use(X);if(X instanceof Promise){let G=new m$(X);return W.valueMap.set($,G),G.then((H)=>{jW(W,$,H,Y),Y.next({newValue:H,oldValue:G})}).catch((H)=>{W.logger.error("\uD83D\uDCA5","state",$,"rejected:",H)}),G}return W.valueMap.set($,X),X}var TG=(W,$)=>{let X=$.valueMap.get(W.key);if(W.type==="mutable_atom"&&d1($)){let{parent:Y}=$;X=d$($,W,Y)}return X},DG=(W,$)=>{let X=$.valueMap.get(W);if(X instanceof m$){let Y=X,J=$.selectors.get(W)??$.readonlySelectors.get(W);if(J)Y.use(J.get());return}if($.operation.open)$.operation.prev.set(W,X);$.valueMap.delete(W),$.logger.info("\uD83D\uDDD1","state",W,"evicted")};var KG=(W,$)=>{return J0(W).atomsThatAreDefault.has($)},jG=(W,$)=>{let X=J0(W);X.atomsThatAreDefault=new Set(X.atomsThatAreDefault).add($)},LG=(W,$)=>{let X=J0(W);X.atomsThatAreDefault=new Set(J0(W).atomsThatAreDefault),X.atomsThatAreDefault.delete($)};function C9(W,$,X){W.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${W.config.name}"`);let Y=J0(W),J=Y.atoms.get($.key);if(J&&J.type==="atom")return W.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),u$(J);let G=new Z0,H={...$,type:"atom",install:(F)=>{return F.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${F.config.name}"`),C9(F,$,X)},subject:G};if(X)H.family=X;let Q=$.default;if($.default instanceof Function)Q=$.default();Y.atoms.set(H.key,H),jG(W,$.key),jW(Y,$.key,Q,G);let z=u$(H);if($.effects){let F=0,T=[];for(let U of $.effects){let M=U({setSelf:(V)=>{L2(W,z,V)},onSet:(V)=>i$(W,z,`effect[${F}]`,V)});if(M)T.push(M);++F}H.cleanup=()=>{for(let U of T)U()}}return z}class P8 extends Set{mode="record";subject=new Z0;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(W,$=0){super(W);if(W instanceof P8)this.parent=W,this.cacheUpdateNumber=W.cacheUpdateNumber;if($)this.cacheLimit=$,this.cache=new Array($),this.subscribe("auto cache",(X)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=X})}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(W){let $=new P8(W.members,W.cacheLimit);return $.cache=W.cache,$.cacheIdx=W.cacheIdx,$.cacheUpdateNumber=W.cacheUpdateNumber,$}add(W){let $=super.add(W);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${Z1(W)}`);return $}clear(){let W=this.mode==="record"?[...this]:null;if(super.clear(),W)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(W)}`)}delete(W){let $=super.delete(W);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${Z1(W)}`);return $}parent=null;child=null;transactionUpdates=null;transaction(W){this.mode="transaction",this.transactionUpdates=[],this.child=new P8(this);let $=this.child._subscribe("transaction",(X)=>{this.transactionUpdates?.push(X)});try{if(W(this.child)){for(let Y of this.transactionUpdates)this.doStep(Y);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(X){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",X),X}finally{$(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(W,$){return this.subject.subscribe(W,$)}subscribe(W,$){return this.subject.subscribe(W,(X)=>{$(`${this.cacheUpdateNumber}=${X}`)})}emit(W){this.subject.next(W)}doStep(W){let $=W.indexOf(":"),X=W.substring(0,$),Y=W.substring($+1);switch(X){case"add":this.add(JSON.parse(Y));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(Y));break;case"tx":for(let J of Y.split(";"))this.doStep(J)}}getUpdateNumber(W){let $=W.indexOf("=");return Number(W.substring(0,$))}do(W){let $=W.indexOf("="),X=Number(W.substring(0,$)),Y=X-this.cacheUpdateNumber;if(Y>0){if(Y===1){this.mode="playback";let G=W.substring($+1);return this.doStep(G),this.mode="record",this.cacheUpdateNumber=X,null}return this.cacheUpdateNumber+1}if(Math.abs(Y)<this.cacheLimit){let G=this.cacheIdx+Y;if(this.cache[G]===W)return null;this.mode="playback";let Q=!1;while(!Q){this.cacheIdx%=this.cacheLimit;let F=this.cache[this.cacheIdx];if(this.cacheIdx--,!F)return"OUT_OF_RANGE";this.undo(F),Q=this.cacheIdx===G-1}let z=W.substring($+1);return this.doStep(z),this.mode="record",this.cacheUpdateNumber=X,null}return"OUT_OF_RANGE"}undoStep(W){let $=W.indexOf(":"),X=W.substring(0,$),Y=W.substring($+1);switch(X){case"add":this.delete(JSON.parse(Y));break;case"del":this.add(JSON.parse(Y));break;case"clear":{let J=JSON.parse(Y);for(let G of J)this.add(G);break}case"tx":{let J=Y.split(";");for(let G=J.length-1;G>=0;G--)this.undoStep(J[G])}}}undo(W){let $=W.indexOf("=");if(Number(W.substring(0,$))===this.cacheUpdateNumber){this.mode="playback";let Y=W.substring($+1);return this.undoStep(Y),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}function CG(W){return W.startsWith("\uD83D\uDD0D ")}class YX{listeners;globalListeners;handleEvent(W,...$){for(let Y of this.globalListeners)Y(W,...$);let X=this.listeners.get(W);if(X)for(let Y of X)Y(...$)}id="no_id_retrieved";emit;constructor(W){this.emit=W,this.listeners=new Map,this.globalListeners=new Set}on(W,$){let X=this.listeners.get(W);if(X)X.add($);else this.listeners.set(W,new Set([$]));return this}onAny(W){return this.globalListeners.add(W),this}off(W,$){let X=this.listeners.get(W);if(X)if($)X.delete($);else this.listeners.delete(W);return this}offAny(W){return this.globalListeners.delete(W),this}}class fG extends YX{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(W){super((...$)=>{return this.out.next($),this});this.id=W,this.in=new Z0,this.out=new Z0,this.in.subscribe("socket",($)=>{this.handleEvent(...$)})}dispose(){for(let W of this.disposalFunctions)W()}}class k9 extends YX{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...W){this.process.stderr.write(Z1(W.map(($)=>$ instanceof P8?`{ ${$.toJSON().members.join(" | ")} }`:$))+"\x03")}logger={info:(...W)=>{this.log("i",...W)},warn:(...W)=>{this.log("w",...W)},error:(...W)=>{this.log("e",...W)}};constructor(){super((W,...$)=>{let X=JSON.stringify([W,...$]);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",(W)=>{let $=W.toString();this.unprocessedEvents.push(...$.split("\x03"));let X=this.unprocessedEvents.shift();this.incompleteData+=X??"";try{let Y=p$(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",Y),this.handleEvent(...Y);while(this.unprocessedEvents.length>0){let J=this.unprocessedEvents.shift();if(J){if(this.unprocessedEvents.length===0)this.incompleteData=J;let G=p$(J);this.handleEvent(...G)}}this.incompleteData=""}catch(Y){if(Y instanceof Error)this.logger.error("\u2757",Y.message,Y.cause,Y.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(W)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${W}`)}),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",(W)=>{this.logger.info("\uD83D\uDC64","user",W,"joined");let $=new fG(`user:${W}`);this.relays.set(W,$),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let X of this.relayServices){let Y=X($);if(Y)$.disposalFunctions.push(Y)}this.on(`user:${W}`,(...X)=>{$.in.next(X)}),$.out.subscribe("socket",(X)=>{this.emit(...X)})}),this.on("user-leaves",(W)=>{let $=this.relays.get(W);if(this.off(`relay:${W}`),$)$.dispose(),this.relays.delete(W)}),process.stdout.write("ALIVE")}relay(W){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(W)}}var xG=Symbol("Let zodToJsonSchema decide on which parser to use");var PG={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},vG=(W)=>typeof W==="string"?{...PG,name:W}:{...PG,...W};var bG=(W)=>{let $=vG(W),X=$.name!==void 0?[...$.basePath,$.definitionPath,$.name]:$.basePath;return{...$,currentPath:X,propertyPath:void 0,seen:new Map(Object.entries($.definitions).map(([Y,J])=>[J._def,{def:J._def,path:[...$.basePath,$.definitionPath,Y],jsonSchema:void 0}]))}};function I9(W,$,X,Y){if(!Y?.errorMessages)return;if(X)W.errorMessage={...W.errorMessage,[$]:X}}function V0(W,$,X,Y,J){W[$]=X,I9(W,$,Y,J)}var K0;(function(W){W.assertEqual=(J)=>J;function $(J){}W.assertIs=$;function X(J){throw new Error}W.assertNever=X,W.arrayToEnum=(J)=>{let G={};for(let H of J)G[H]=H;return G},W.getValidEnumValues=(J)=>{let G=W.objectKeys(J).filter((Q)=>typeof J[J[Q]]!=="number"),H={};for(let Q of G)H[Q]=J[Q];return W.objectValues(H)},W.objectValues=(J)=>{return W.objectKeys(J).map(function(G){return J[G]})},W.objectKeys=typeof Object.keys==="function"?(J)=>Object.keys(J):(J)=>{let G=[];for(let H in J)if(Object.prototype.hasOwnProperty.call(J,H))G.push(H);return G},W.find=(J,G)=>{for(let H of J)if(G(H))return H;return},W.isInteger=typeof Number.isInteger==="function"?(J)=>Number.isInteger(J):(J)=>typeof J==="number"&&isFinite(J)&&Math.floor(J)===J;function Y(J,G=" | "){return J.map((H)=>typeof H==="string"?`'${H}'`:H).join(G)}W.joinValues=Y,W.jsonStringifyReplacer=(J,G)=>{if(typeof G==="bigint")return G.toString();return G}})(K0||(K0={}));var yG;(function(W){W.mergeShapes=($,X)=>{return{...$,...X}}})(yG||(yG={}));var p=K0.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),A2=(W)=>{switch(typeof W){case"undefined":return p.undefined;case"string":return p.string;case"number":return isNaN(W)?p.nan:p.number;case"boolean":return p.boolean;case"function":return p.function;case"bigint":return p.bigint;case"symbol":return p.symbol;case"object":if(Array.isArray(W))return p.array;if(W===null)return p.null;if(W.then&&typeof W.then==="function"&&W.catch&&typeof W.catch==="function")return p.promise;if(typeof Map!=="undefined"&&W instanceof Map)return p.map;if(typeof Set!=="undefined"&&W instanceof Set)return p.set;if(typeof Date!=="undefined"&&W instanceof Date)return p.date;return p.object;default:return p.unknown}},Z=K0.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class $W extends Error{get errors(){return this.issues}constructor(W){super();this.issues=[],this.addIssue=(X)=>{this.issues=[...this.issues,X]},this.addIssues=(X=[])=>{this.issues=[...this.issues,...X]};let $=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,$);else this.__proto__=$;this.name="ZodError",this.issues=W}format(W){let $=W||function(J){return J.message},X={_errors:[]},Y=(J)=>{for(let G of J.issues)if(G.code==="invalid_union")G.unionErrors.map(Y);else if(G.code==="invalid_return_type")Y(G.returnTypeError);else if(G.code==="invalid_arguments")Y(G.argumentsError);else if(G.path.length===0)X._errors.push($(G));else{let H=X,Q=0;while(Q<G.path.length){let z=G.path[Q];if(Q!==G.path.length-1)H[z]=H[z]||{_errors:[]};else H[z]=H[z]||{_errors:[]},H[z]._errors.push($(G));H=H[z],Q++}}};return Y(this),X}static assert(W){if(!(W instanceof $W))throw new Error(`Not a ZodError: ${W}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,K0.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(W=($)=>$.message){let $={},X=[];for(let Y of this.issues)if(Y.path.length>0)$[Y.path[0]]=$[Y.path[0]]||[],$[Y.path[0]].push(W(Y));else X.push(W(Y));return{formErrors:X,fieldErrors:$}}get formErrors(){return this.flatten()}}$W.create=(W)=>{return new $W(W)};var s$=(W,$)=>{let X;switch(W.code){case Z.invalid_type:if(W.received===p.undefined)X="Required";else X=`Expected ${W.expected}, received ${W.received}`;break;case Z.invalid_literal:X=`Invalid literal value, expected ${JSON.stringify(W.expected,K0.jsonStringifyReplacer)}`;break;case Z.unrecognized_keys:X=`Unrecognized key(s) in object: ${K0.joinValues(W.keys,", ")}`;break;case Z.invalid_union:X="Invalid input";break;case Z.invalid_union_discriminator:X=`Invalid discriminator value. Expected ${K0.joinValues(W.options)}`;break;case Z.invalid_enum_value:X=`Invalid enum value. Expected ${K0.joinValues(W.options)}, received '${W.received}'`;break;case Z.invalid_arguments:X="Invalid function arguments";break;case Z.invalid_return_type:X="Invalid function return type";break;case Z.invalid_date:X="Invalid date";break;case Z.invalid_string:if(typeof W.validation==="object")if("includes"in W.validation){if(X=`Invalid input: must include "${W.validation.includes}"`,typeof W.validation.position==="number")X=`${X} at one or more positions greater than or equal to ${W.validation.position}`}else if("startsWith"in W.validation)X=`Invalid input: must start with "${W.validation.startsWith}"`;else if("endsWith"in W.validation)X=`Invalid input: must end with "${W.validation.endsWith}"`;else K0.assertNever(W.validation);else if(W.validation!=="regex")X=`Invalid ${W.validation}`;else X="Invalid";break;case Z.too_small:if(W.type==="array")X=`Array must contain ${W.exact?"exactly":W.inclusive?"at least":"more than"} ${W.minimum} element(s)`;else if(W.type==="string")X=`String must contain ${W.exact?"exactly":W.inclusive?"at least":"over"} ${W.minimum} character(s)`;else if(W.type==="number")X=`Number must be ${W.exact?"exactly equal to ":W.inclusive?"greater than or equal to ":"greater than "}${W.minimum}`;else if(W.type==="date")X=`Date must be ${W.exact?"exactly equal to ":W.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(W.minimum))}`;else X="Invalid input";break;case Z.too_big:if(W.type==="array")X=`Array must contain ${W.exact?"exactly":W.inclusive?"at most":"less than"} ${W.maximum} element(s)`;else if(W.type==="string")X=`String must contain ${W.exact?"exactly":W.inclusive?"at most":"under"} ${W.maximum} character(s)`;else if(W.type==="number")X=`Number must be ${W.exact?"exactly":W.inclusive?"less than or equal to":"less than"} ${W.maximum}`;else if(W.type==="bigint")X=`BigInt must be ${W.exact?"exactly":W.inclusive?"less than or equal to":"less than"} ${W.maximum}`;else if(W.type==="date")X=`Date must be ${W.exact?"exactly":W.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(W.maximum))}`;else X="Invalid input";break;case Z.custom:X="Invalid input";break;case Z.invalid_intersection_types:X="Intersection results could not be merged";break;case Z.not_multiple_of:X=`Number must be a multiple of ${W.multipleOf}`;break;case Z.not_finite:X="Number must be finite";break;default:X=$.defaultError,K0.assertNever(W)}return{message:X}},P_=s$;function f9(){return P_}var P9=(W)=>{let{data:$,path:X,errorMaps:Y,issueData:J}=W,G=[...X,...J.path||[]],H={...J,path:G};if(J.message!==void 0)return{...J,path:G,message:J.message};let Q="",z=Y.filter((F)=>!!F).slice().reverse();for(let F of z)Q=F(H,{data:$,defaultError:Q}).message;return{...J,path:G,message:Q}};function b(W,$){let X=f9(),Y=P9({issueData:$,data:W.data,path:W.path,errorMaps:[W.common.contextualErrorMap,W.schemaErrorMap,X,X===s$?void 0:s$].filter((J)=>!!J)});W.common.issues.push(Y)}class S1{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(W,$){let X=[];for(let Y of $){if(Y.status==="aborted")return W0;if(Y.status==="dirty")W.dirty();X.push(Y.value)}return{status:W.value,value:X}}static async mergeObjectAsync(W,$){let X=[];for(let Y of $){let J=await Y.key,G=await Y.value;X.push({key:J,value:G})}return S1.mergeObjectSync(W,X)}static mergeObjectSync(W,$){let X={};for(let Y of $){let{key:J,value:G}=Y;if(J.status==="aborted")return W0;if(G.status==="aborted")return W0;if(J.status==="dirty")W.dirty();if(G.status==="dirty")W.dirty();if(J.value!=="__proto__"&&(typeof G.value!=="undefined"||Y.alwaysSet))X[J.value]=G.value}return{status:W.value,value:X}}}var W0=Object.freeze({status:"aborted"}),n$=(W)=>({status:"dirty",value:W}),x1=(W)=>({status:"valid",value:W}),hG=(W)=>W.status==="aborted",gG=(W)=>W.status==="dirty",v8=(W)=>W.status==="valid",JX=(W)=>typeof Promise!=="undefined"&&W instanceof Promise;function GX(W,$,X,Y){if(X==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?W!==$||!Y:!$.has(W))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:$.get(W)}function pG(W,$,X,Y,J){if(Y==="m")throw new TypeError("Private method is not writable");if(Y==="a"&&!J)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?W!==$||!J:!$.has(W))throw new TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:$.set(W,X),X}var l;(function(W){W.errToObj=($)=>typeof $==="string"?{message:$}:$||{},W.toString=($)=>typeof $==="string"?$:$===null||$===void 0?void 0:$.message})(l||(l={}));var r$,t$;class DW{constructor(W,$,X,Y){this._cachedPath=[],this.parent=W,this.data=$,this._path=X,this._key=Y}get path(){if(!this._cachedPath.length)if(this._key instanceof Array)this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var mG=(W,$)=>{if(v8($))return{success:!0,data:$.value};else{if(!W.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let X=new $W(W.common.issues);return this._error=X,this._error}}}};function G0(W){if(!W)return{};let{errorMap:$,invalid_type_error:X,required_error:Y,description:J}=W;if($&&(X||Y))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if($)return{errorMap:$,description:J};return{errorMap:(H,Q)=>{var z,F;let{message:T}=W;if(H.code==="invalid_enum_value")return{message:T!==null&&T!==void 0?T:Q.defaultError};if(typeof Q.data==="undefined")return{message:(z=T!==null&&T!==void 0?T:Y)!==null&&z!==void 0?z:Q.defaultError};if(H.code!=="invalid_type")return{message:Q.defaultError};return{message:(F=T!==null&&T!==void 0?T:X)!==null&&F!==void 0?F:Q.defaultError}},description:J}}class T0{get description(){return this._def.description}_getType(W){return A2(W.data)}_getOrReturnCtx(W,$){return $||{common:W.parent.common,data:W.data,parsedType:A2(W.data),schemaErrorMap:this._def.errorMap,path:W.path,parent:W.parent}}_processInputParams(W){return{status:new S1,ctx:{common:W.parent.common,data:W.data,parsedType:A2(W.data),schemaErrorMap:this._def.errorMap,path:W.path,parent:W.parent}}}_parseSync(W){let $=this._parse(W);if(JX($))throw new Error("Synchronous parse encountered promise.");return $}_parseAsync(W){let $=this._parse(W);return Promise.resolve($)}parse(W,$){let X=this.safeParse(W,$);if(X.success)return X.data;throw X.error}safeParse(W,$){var X;let Y={common:{issues:[],async:(X=$===null||$===void 0?void 0:$.async)!==null&&X!==void 0?X:!1,contextualErrorMap:$===null||$===void 0?void 0:$.errorMap},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:W,parsedType:A2(W)},J=this._parseSync({data:W,path:Y.path,parent:Y});return mG(Y,J)}"~validate"(W){var $,X;let Y={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:W,parsedType:A2(W)};if(!this["~standard"].async)try{let J=this._parseSync({data:W,path:[],parent:Y});return v8(J)?{value:J.value}:{issues:Y.common.issues}}catch(J){if((X=($=J===null||J===void 0?void 0:J.message)===null||$===void 0?void 0:$.toLowerCase())===null||X===void 0?void 0:X.includes("encountered"))this["~standard"].async=!0;Y.common={issues:[],async:!0}}return this._parseAsync({data:W,path:[],parent:Y}).then((J)=>v8(J)?{value:J.value}:{issues:Y.common.issues})}async parseAsync(W,$){let X=await this.safeParseAsync(W,$);if(X.success)return X.data;throw X.error}async safeParseAsync(W,$){let X={common:{issues:[],contextualErrorMap:$===null||$===void 0?void 0:$.errorMap,async:!0},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:W,parsedType:A2(W)},Y=this._parse({data:W,path:X.path,parent:X}),J=await(JX(Y)?Y:Promise.resolve(Y));return mG(X,J)}refine(W,$){let X=(Y)=>{if(typeof $==="string"||typeof $==="undefined")return{message:$};else if(typeof $==="function")return $(Y);else return $};return this._refinement((Y,J)=>{let G=W(Y),H=()=>J.addIssue({code:Z.custom,...X(Y)});if(typeof Promise!=="undefined"&&G instanceof Promise)return G.then((Q)=>{if(!Q)return H(),!1;else return!0});if(!G)return H(),!1;else return!0})}refinement(W,$){return this._refinement((X,Y)=>{if(!W(X))return Y.addIssue(typeof $==="function"?$(X,Y):$),!1;else return!0})}_refinement(W){return new PW({schema:this,typeName:S.ZodEffects,effect:{type:"refinement",refinement:W}})}superRefine(W){return this._refinement(W)}constructor(W){this.spa=this.safeParseAsync,this._def=W,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:($)=>this["~validate"]($)}}optional(){return XW.create(this,this._def)}nullable(){return E2.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return fW.create(this)}promise(){return g8.create(this,this._def)}or(W){return X4.create([this,W],this._def)}and(W){return Y4.create(this,W,this._def)}transform(W){return new PW({...G0(this._def),schema:this,typeName:S.ZodEffects,effect:{type:"transform",transform:W}})}default(W){let $=typeof W==="function"?W:()=>W;return new Q4({...G0(this._def),innerType:this,defaultValue:$,typeName:S.ZodDefault})}brand(){return new b9({typeName:S.ZodBranded,type:this,...G0(this._def)})}catch(W){let $=typeof W==="function"?W:()=>W;return new z4({...G0(this._def),innerType:this,catchValue:$,typeName:S.ZodCatch})}describe(W){return new this.constructor({...this._def,description:W})}pipe(W){return MX.create(this,W)}readonly(){return F4.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var x_=/^c[^\s-]{8,}$/i,v_=/^[0-9a-z]+$/,b_=/^[0-9A-HJKMNP-TV-Z]{26}$/i,y_=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,h_=/^[a-z0-9_-]{21}$/i,g_=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,m_=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,p_=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,u_="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",j9,c_=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,d_=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,l_=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,o_=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,i_=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,n_=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,uG="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",r_=new RegExp(`^${uG}$`);function cG(W){let $="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";if(W.precision)$=`${$}\\.\\d{${W.precision}}`;else if(W.precision==null)$=`${$}(\\.\\d+)?`;return $}function t_(W){return new RegExp(`^${cG(W)}$`)}function a_(W){let $=`${uG}T${cG(W)}`,X=[];if(X.push(W.local?"Z?":"Z"),W.offset)X.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${X.join("|")})`,new RegExp(`^${$}$`)}function s_(W,$){if(($==="v4"||!$)&&c_.test(W))return!0;if(($==="v6"||!$)&&l_.test(W))return!0;return!1}function e_(W,$){if(!g_.test(W))return!1;try{let[X]=W.split("."),Y=X.replace(/-/g,"+").replace(/_/g,"/").padEnd(X.length+(4-X.length%4)%4,"="),J=JSON.parse(atob(Y));if(typeof J!=="object"||J===null)return!1;if(!J.typ||!J.alg)return!1;if($&&J.alg!==$)return!1;return!0}catch(X){return!1}}function WD(W,$){if(($==="v4"||!$)&&d_.test(W))return!0;if(($==="v6"||!$)&&o_.test(W))return!0;return!1}class lW extends T0{_parse(W){if(this._def.coerce)W.data=String(W.data);if(this._getType(W)!==p.string){let J=this._getOrReturnCtx(W);return b(J,{code:Z.invalid_type,expected:p.string,received:J.parsedType}),W0}let X=new S1,Y=void 0;for(let J of this._def.checks)if(J.kind==="min"){if(W.data.length<J.value)Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="max"){if(W.data.length>J.value)Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="length"){let G=W.data.length>J.value,H=W.data.length<J.value;if(G||H){if(Y=this._getOrReturnCtx(W,Y),G)b(Y,{code:Z.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});else if(H)b(Y,{code:Z.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});X.dirty()}}else if(J.kind==="email"){if(!p_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"email",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="emoji"){if(!j9)j9=new RegExp(u_,"u");if(!j9.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"emoji",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="uuid"){if(!y_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"uuid",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="nanoid"){if(!h_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"nanoid",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="cuid"){if(!x_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"cuid",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="cuid2"){if(!v_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"cuid2",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="ulid"){if(!b_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"ulid",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="url")try{new URL(W.data)}catch(G){Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"url",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="regex"){if(J.regex.lastIndex=0,!J.regex.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"regex",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="trim")W.data=W.data.trim();else if(J.kind==="includes"){if(!W.data.includes(J.value,J.position))Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.invalid_string,validation:{includes:J.value,position:J.position},message:J.message}),X.dirty()}else if(J.kind==="toLowerCase")W.data=W.data.toLowerCase();else if(J.kind==="toUpperCase")W.data=W.data.toUpperCase();else if(J.kind==="startsWith"){if(!W.data.startsWith(J.value))Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.invalid_string,validation:{startsWith:J.value},message:J.message}),X.dirty()}else if(J.kind==="endsWith"){if(!W.data.endsWith(J.value))Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.invalid_string,validation:{endsWith:J.value},message:J.message}),X.dirty()}else if(J.kind==="datetime"){if(!a_(J).test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.invalid_string,validation:"datetime",message:J.message}),X.dirty()}else if(J.kind==="date"){if(!r_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.invalid_string,validation:"date",message:J.message}),X.dirty()}else if(J.kind==="time"){if(!t_(J).test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.invalid_string,validation:"time",message:J.message}),X.dirty()}else if(J.kind==="duration"){if(!m_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"duration",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="ip"){if(!s_(W.data,J.version))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"ip",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="jwt"){if(!e_(W.data,J.alg))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"jwt",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="cidr"){if(!WD(W.data,J.version))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"cidr",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="base64"){if(!i_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"base64",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="base64url"){if(!n_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"base64url",code:Z.invalid_string,message:J.message}),X.dirty()}else K0.assertNever(J);return{status:X.value,value:W.data}}_regex(W,$,X){return this.refinement((Y)=>W.test(Y),{validation:$,code:Z.invalid_string,...l.errToObj(X)})}_addCheck(W){return new lW({...this._def,checks:[...this._def.checks,W]})}email(W){return this._addCheck({kind:"email",...l.errToObj(W)})}url(W){return this._addCheck({kind:"url",...l.errToObj(W)})}emoji(W){return this._addCheck({kind:"emoji",...l.errToObj(W)})}uuid(W){return this._addCheck({kind:"uuid",...l.errToObj(W)})}nanoid(W){return this._addCheck({kind:"nanoid",...l.errToObj(W)})}cuid(W){return this._addCheck({kind:"cuid",...l.errToObj(W)})}cuid2(W){return this._addCheck({kind:"cuid2",...l.errToObj(W)})}ulid(W){return this._addCheck({kind:"ulid",...l.errToObj(W)})}base64(W){return this._addCheck({kind:"base64",...l.errToObj(W)})}base64url(W){return this._addCheck({kind:"base64url",...l.errToObj(W)})}jwt(W){return this._addCheck({kind:"jwt",...l.errToObj(W)})}ip(W){return this._addCheck({kind:"ip",...l.errToObj(W)})}cidr(W){return this._addCheck({kind:"cidr",...l.errToObj(W)})}datetime(W){var $,X;if(typeof W==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:W});return this._addCheck({kind:"datetime",precision:typeof(W===null||W===void 0?void 0:W.precision)==="undefined"?null:W===null||W===void 0?void 0:W.precision,offset:($=W===null||W===void 0?void 0:W.offset)!==null&&$!==void 0?$:!1,local:(X=W===null||W===void 0?void 0:W.local)!==null&&X!==void 0?X:!1,...l.errToObj(W===null||W===void 0?void 0:W.message)})}date(W){return this._addCheck({kind:"date",message:W})}time(W){if(typeof W==="string")return this._addCheck({kind:"time",precision:null,message:W});return this._addCheck({kind:"time",precision:typeof(W===null||W===void 0?void 0:W.precision)==="undefined"?null:W===null||W===void 0?void 0:W.precision,...l.errToObj(W===null||W===void 0?void 0:W.message)})}duration(W){return this._addCheck({kind:"duration",...l.errToObj(W)})}regex(W,$){return this._addCheck({kind:"regex",regex:W,...l.errToObj($)})}includes(W,$){return this._addCheck({kind:"includes",value:W,position:$===null||$===void 0?void 0:$.position,...l.errToObj($===null||$===void 0?void 0:$.message)})}startsWith(W,$){return this._addCheck({kind:"startsWith",value:W,...l.errToObj($)})}endsWith(W,$){return this._addCheck({kind:"endsWith",value:W,...l.errToObj($)})}min(W,$){return this._addCheck({kind:"min",value:W,...l.errToObj($)})}max(W,$){return this._addCheck({kind:"max",value:W,...l.errToObj($)})}length(W,$){return this._addCheck({kind:"length",value:W,...l.errToObj($)})}nonempty(W){return this.min(1,l.errToObj(W))}trim(){return new lW({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new lW({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new lW({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((W)=>W.kind==="datetime")}get isDate(){return!!this._def.checks.find((W)=>W.kind==="date")}get isTime(){return!!this._def.checks.find((W)=>W.kind==="time")}get isDuration(){return!!this._def.checks.find((W)=>W.kind==="duration")}get isEmail(){return!!this._def.checks.find((W)=>W.kind==="email")}get isURL(){return!!this._def.checks.find((W)=>W.kind==="url")}get isEmoji(){return!!this._def.checks.find((W)=>W.kind==="emoji")}get isUUID(){return!!this._def.checks.find((W)=>W.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((W)=>W.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((W)=>W.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((W)=>W.kind==="cuid2")}get isULID(){return!!this._def.checks.find((W)=>W.kind==="ulid")}get isIP(){return!!this._def.checks.find((W)=>W.kind==="ip")}get isCIDR(){return!!this._def.checks.find((W)=>W.kind==="cidr")}get isBase64(){return!!this._def.checks.find((W)=>W.kind==="base64")}get isBase64url(){return!!this._def.checks.find((W)=>W.kind==="base64url")}get minLength(){let W=null;for(let $ of this._def.checks)if($.kind==="min"){if(W===null||$.value>W)W=$.value}return W}get maxLength(){let W=null;for(let $ of this._def.checks)if($.kind==="max"){if(W===null||$.value<W)W=$.value}return W}}lW.create=(W)=>{var $;return new lW({checks:[],typeName:S.ZodString,coerce:($=W===null||W===void 0?void 0:W.coerce)!==null&&$!==void 0?$:!1,...G0(W)})};function $D(W,$){let X=(W.toString().split(".")[1]||"").length,Y=($.toString().split(".")[1]||"").length,J=X>Y?X:Y,G=parseInt(W.toFixed(J).replace(".","")),H=parseInt($.toFixed(J).replace(".",""));return G%H/Math.pow(10,J)}class b8 extends T0{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(W){if(this._def.coerce)W.data=Number(W.data);if(this._getType(W)!==p.number){let J=this._getOrReturnCtx(W);return b(J,{code:Z.invalid_type,expected:p.number,received:J.parsedType}),W0}let X=void 0,Y=new S1;for(let J of this._def.checks)if(J.kind==="int"){if(!K0.isInteger(W.data))X=this._getOrReturnCtx(W,X),b(X,{code:Z.invalid_type,expected:"integer",received:"float",message:J.message}),Y.dirty()}else if(J.kind==="min"){if(J.inclusive?W.data<J.value:W.data<=J.value)X=this._getOrReturnCtx(W,X),b(X,{code:Z.too_small,minimum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),Y.dirty()}else if(J.kind==="max"){if(J.inclusive?W.data>J.value:W.data>=J.value)X=this._getOrReturnCtx(W,X),b(X,{code:Z.too_big,maximum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),Y.dirty()}else if(J.kind==="multipleOf"){if($D(W.data,J.value)!==0)X=this._getOrReturnCtx(W,X),b(X,{code:Z.not_multiple_of,multipleOf:J.value,message:J.message}),Y.dirty()}else if(J.kind==="finite"){if(!Number.isFinite(W.data))X=this._getOrReturnCtx(W,X),b(X,{code:Z.not_finite,message:J.message}),Y.dirty()}else K0.assertNever(J);return{status:Y.value,value:W.data}}gte(W,$){return this.setLimit("min",W,!0,l.toString($))}gt(W,$){return this.setLimit("min",W,!1,l.toString($))}lte(W,$){return this.setLimit("max",W,!0,l.toString($))}lt(W,$){return this.setLimit("max",W,!1,l.toString($))}setLimit(W,$,X,Y){return new b8({...this._def,checks:[...this._def.checks,{kind:W,value:$,inclusive:X,message:l.toString(Y)}]})}_addCheck(W){return new b8({...this._def,checks:[...this._def.checks,W]})}int(W){return this._addCheck({kind:"int",message:l.toString(W)})}positive(W){return this._addCheck({kind:"min",value:0,inclusive:!1,message:l.toString(W)})}negative(W){return this._addCheck({kind:"max",value:0,inclusive:!1,message:l.toString(W)})}nonpositive(W){return this._addCheck({kind:"max",value:0,inclusive:!0,message:l.toString(W)})}nonnegative(W){return this._addCheck({kind:"min",value:0,inclusive:!0,message:l.toString(W)})}multipleOf(W,$){return this._addCheck({kind:"multipleOf",value:W,message:l.toString($)})}finite(W){return this._addCheck({kind:"finite",message:l.toString(W)})}safe(W){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:l.toString(W)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:l.toString(W)})}get minValue(){let W=null;for(let $ of this._def.checks)if($.kind==="min"){if(W===null||$.value>W)W=$.value}return W}get maxValue(){let W=null;for(let $ of this._def.checks)if($.kind==="max"){if(W===null||$.value<W)W=$.value}return W}get isInt(){return!!this._def.checks.find((W)=>W.kind==="int"||W.kind==="multipleOf"&&K0.isInteger(W.value))}get isFinite(){let W=null,$=null;for(let X of this._def.checks)if(X.kind==="finite"||X.kind==="int"||X.kind==="multipleOf")return!0;else if(X.kind==="min"){if($===null||X.value>$)$=X.value}else if(X.kind==="max"){if(W===null||X.value<W)W=X.value}return Number.isFinite($)&&Number.isFinite(W)}}b8.create=(W)=>{return new b8({checks:[],typeName:S.ZodNumber,coerce:(W===null||W===void 0?void 0:W.coerce)||!1,...G0(W)})};class y8 extends T0{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(W){if(this._def.coerce)try{W.data=BigInt(W.data)}catch(J){return this._getInvalidInput(W)}if(this._getType(W)!==p.bigint)return this._getInvalidInput(W);let X=void 0,Y=new S1;for(let J of this._def.checks)if(J.kind==="min"){if(J.inclusive?W.data<J.value:W.data<=J.value)X=this._getOrReturnCtx(W,X),b(X,{code:Z.too_small,type:"bigint",minimum:J.value,inclusive:J.inclusive,message:J.message}),Y.dirty()}else if(J.kind==="max"){if(J.inclusive?W.data>J.value:W.data>=J.value)X=this._getOrReturnCtx(W,X),b(X,{code:Z.too_big,type:"bigint",maximum:J.value,inclusive:J.inclusive,message:J.message}),Y.dirty()}else if(J.kind==="multipleOf"){if(W.data%J.value!==BigInt(0))X=this._getOrReturnCtx(W,X),b(X,{code:Z.not_multiple_of,multipleOf:J.value,message:J.message}),Y.dirty()}else K0.assertNever(J);return{status:Y.value,value:W.data}}_getInvalidInput(W){let $=this._getOrReturnCtx(W);return b($,{code:Z.invalid_type,expected:p.bigint,received:$.parsedType}),W0}gte(W,$){return this.setLimit("min",W,!0,l.toString($))}gt(W,$){return this.setLimit("min",W,!1,l.toString($))}lte(W,$){return this.setLimit("max",W,!0,l.toString($))}lt(W,$){return this.setLimit("max",W,!1,l.toString($))}setLimit(W,$,X,Y){return new y8({...this._def,checks:[...this._def.checks,{kind:W,value:$,inclusive:X,message:l.toString(Y)}]})}_addCheck(W){return new y8({...this._def,checks:[...this._def.checks,W]})}positive(W){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:l.toString(W)})}negative(W){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:l.toString(W)})}nonpositive(W){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:l.toString(W)})}nonnegative(W){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:l.toString(W)})}multipleOf(W,$){return this._addCheck({kind:"multipleOf",value:W,message:l.toString($)})}get minValue(){let W=null;for(let $ of this._def.checks)if($.kind==="min"){if(W===null||$.value>W)W=$.value}return W}get maxValue(){let W=null;for(let $ of this._def.checks)if($.kind==="max"){if(W===null||$.value<W)W=$.value}return W}}y8.create=(W)=>{var $;return new y8({checks:[],typeName:S.ZodBigInt,coerce:($=W===null||W===void 0?void 0:W.coerce)!==null&&$!==void 0?$:!1,...G0(W)})};class HX extends T0{_parse(W){if(this._def.coerce)W.data=Boolean(W.data);if(this._getType(W)!==p.boolean){let X=this._getOrReturnCtx(W);return b(X,{code:Z.invalid_type,expected:p.boolean,received:X.parsedType}),W0}return x1(W.data)}}HX.create=(W)=>{return new HX({typeName:S.ZodBoolean,coerce:(W===null||W===void 0?void 0:W.coerce)||!1,...G0(W)})};class e$ extends T0{_parse(W){if(this._def.coerce)W.data=new Date(W.data);if(this._getType(W)!==p.date){let J=this._getOrReturnCtx(W);return b(J,{code:Z.invalid_type,expected:p.date,received:J.parsedType}),W0}if(isNaN(W.data.getTime())){let J=this._getOrReturnCtx(W);return b(J,{code:Z.invalid_date}),W0}let X=new S1,Y=void 0;for(let J of this._def.checks)if(J.kind==="min"){if(W.data.getTime()<J.value)Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.too_small,message:J.message,inclusive:!0,exact:!1,minimum:J.value,type:"date"}),X.dirty()}else if(J.kind==="max"){if(W.data.getTime()>J.value)Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.too_big,message:J.message,inclusive:!0,exact:!1,maximum:J.value,type:"date"}),X.dirty()}else K0.assertNever(J);return{status:X.value,value:new Date(W.data.getTime())}}_addCheck(W){return new e$({...this._def,checks:[...this._def.checks,W]})}min(W,$){return this._addCheck({kind:"min",value:W.getTime(),message:l.toString($)})}max(W,$){return this._addCheck({kind:"max",value:W.getTime(),message:l.toString($)})}get minDate(){let W=null;for(let $ of this._def.checks)if($.kind==="min"){if(W===null||$.value>W)W=$.value}return W!=null?new Date(W):null}get maxDate(){let W=null;for(let $ of this._def.checks)if($.kind==="max"){if(W===null||$.value<W)W=$.value}return W!=null?new Date(W):null}}e$.create=(W)=>{return new e$({checks:[],coerce:(W===null||W===void 0?void 0:W.coerce)||!1,typeName:S.ZodDate,...G0(W)})};class QX extends T0{_parse(W){if(this._getType(W)!==p.symbol){let X=this._getOrReturnCtx(W);return b(X,{code:Z.invalid_type,expected:p.symbol,received:X.parsedType}),W0}return x1(W.data)}}QX.create=(W)=>{return new QX({typeName:S.ZodSymbol,...G0(W)})};class W4 extends T0{_parse(W){if(this._getType(W)!==p.undefined){let X=this._getOrReturnCtx(W);return b(X,{code:Z.invalid_type,expected:p.undefined,received:X.parsedType}),W0}return x1(W.data)}}W4.create=(W)=>{return new W4({typeName:S.ZodUndefined,...G0(W)})};class $4 extends T0{_parse(W){if(this._getType(W)!==p.null){let X=this._getOrReturnCtx(W);return b(X,{code:Z.invalid_type,expected:p.null,received:X.parsedType}),W0}return x1(W.data)}}$4.create=(W)=>{return new $4({typeName:S.ZodNull,...G0(W)})};class zX extends T0{constructor(){super(...arguments);this._any=!0}_parse(W){return x1(W.data)}}zX.create=(W)=>{return new zX({typeName:S.ZodAny,...G0(W)})};class d2 extends T0{constructor(){super(...arguments);this._unknown=!0}_parse(W){return x1(W.data)}}d2.create=(W)=>{return new d2({typeName:S.ZodUnknown,...G0(W)})};class oW extends T0{_parse(W){let $=this._getOrReturnCtx(W);return b($,{code:Z.invalid_type,expected:p.never,received:$.parsedType}),W0}}oW.create=(W)=>{return new oW({typeName:S.ZodNever,...G0(W)})};class FX extends T0{_parse(W){if(this._getType(W)!==p.undefined){let X=this._getOrReturnCtx(W);return b(X,{code:Z.invalid_type,expected:p.void,received:X.parsedType}),W0}return x1(W.data)}}FX.create=(W)=>{return new FX({typeName:S.ZodVoid,...G0(W)})};class fW extends T0{_parse(W){let{ctx:$,status:X}=this._processInputParams(W),Y=this._def;if($.parsedType!==p.array)return b($,{code:Z.invalid_type,expected:p.array,received:$.parsedType}),W0;if(Y.exactLength!==null){let G=$.data.length>Y.exactLength.value,H=$.data.length<Y.exactLength.value;if(G||H)b($,{code:G?Z.too_big:Z.too_small,minimum:H?Y.exactLength.value:void 0,maximum:G?Y.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:Y.exactLength.message}),X.dirty()}if(Y.minLength!==null){if($.data.length<Y.minLength.value)b($,{code:Z.too_small,minimum:Y.minLength.value,type:"array",inclusive:!0,exact:!1,message:Y.minLength.message}),X.dirty()}if(Y.maxLength!==null){if($.data.length>Y.maxLength.value)b($,{code:Z.too_big,maximum:Y.maxLength.value,type:"array",inclusive:!0,exact:!1,message:Y.maxLength.message}),X.dirty()}if($.common.async)return Promise.all([...$.data].map((G,H)=>{return Y.type._parseAsync(new DW($,G,$.path,H))})).then((G)=>{return S1.mergeArray(X,G)});let J=[...$.data].map((G,H)=>{return Y.type._parseSync(new DW($,G,$.path,H))});return S1.mergeArray(X,J)}get element(){return this._def.type}min(W,$){return new fW({...this._def,minLength:{value:W,message:l.toString($)}})}max(W,$){return new fW({...this._def,maxLength:{value:W,message:l.toString($)}})}length(W,$){return new fW({...this._def,exactLength:{value:W,message:l.toString($)}})}nonempty(W){return this.min(1,W)}}fW.create=(W,$)=>{return new fW({type:W,minLength:null,maxLength:null,exactLength:null,typeName:S.ZodArray,...G0($)})};function x8(W){if(W instanceof l0){let $={};for(let X in W.shape){let Y=W.shape[X];$[X]=XW.create(x8(Y))}return new l0({...W._def,shape:()=>$})}else if(W instanceof fW)return new fW({...W._def,type:x8(W.element)});else if(W instanceof XW)return XW.create(x8(W.unwrap()));else if(W instanceof E2)return E2.create(x8(W.unwrap()));else if(W instanceof iW)return iW.create(W.items.map(($)=>x8($)));else return W}class l0 extends T0{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let W=this._def.shape(),$=K0.objectKeys(W);return this._cached={shape:W,keys:$}}_parse(W){if(this._getType(W)!==p.object){let z=this._getOrReturnCtx(W);return b(z,{code:Z.invalid_type,expected:p.object,received:z.parsedType}),W0}let{status:X,ctx:Y}=this._processInputParams(W),{shape:J,keys:G}=this._getCached(),H=[];if(!(this._def.catchall instanceof oW&&this._def.unknownKeys==="strip")){for(let z in Y.data)if(!G.includes(z))H.push(z)}let Q=[];for(let z of G){let F=J[z],T=Y.data[z];Q.push({key:{status:"valid",value:z},value:F._parse(new DW(Y,T,Y.path,z)),alwaysSet:z in Y.data})}if(this._def.catchall instanceof oW){let z=this._def.unknownKeys;if(z==="passthrough")for(let F of H)Q.push({key:{status:"valid",value:F},value:{status:"valid",value:Y.data[F]}});else if(z==="strict"){if(H.length>0)b(Y,{code:Z.unrecognized_keys,keys:H}),X.dirty()}else if(z==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let z=this._def.catchall;for(let F of H){let T=Y.data[F];Q.push({key:{status:"valid",value:F},value:z._parse(new DW(Y,T,Y.path,F)),alwaysSet:F in Y.data})}}if(Y.common.async)return Promise.resolve().then(async()=>{let z=[];for(let F of Q){let T=await F.key,U=await F.value;z.push({key:T,value:U,alwaysSet:F.alwaysSet})}return z}).then((z)=>{return S1.mergeObjectSync(X,z)});else return S1.mergeObjectSync(X,Q)}get shape(){return this._def.shape()}strict(W){return l.errToObj,new l0({...this._def,unknownKeys:"strict",...W!==void 0?{errorMap:($,X)=>{var Y,J,G,H;let Q=(G=(J=(Y=this._def).errorMap)===null||J===void 0?void 0:J.call(Y,$,X).message)!==null&&G!==void 0?G:X.defaultError;if($.code==="unrecognized_keys")return{message:(H=l.errToObj(W).message)!==null&&H!==void 0?H:Q};return{message:Q}}}:{}})}strip(){return new l0({...this._def,unknownKeys:"strip"})}passthrough(){return new l0({...this._def,unknownKeys:"passthrough"})}extend(W){return new l0({...this._def,shape:()=>({...this._def.shape(),...W})})}merge(W){return new l0({unknownKeys:W._def.unknownKeys,catchall:W._def.catchall,shape:()=>({...this._def.shape(),...W._def.shape()}),typeName:S.ZodObject})}setKey(W,$){return this.augment({[W]:$})}catchall(W){return new l0({...this._def,catchall:W})}pick(W){let $={};return K0.objectKeys(W).forEach((X)=>{if(W[X]&&this.shape[X])$[X]=this.shape[X]}),new l0({...this._def,shape:()=>$})}omit(W){let $={};return K0.objectKeys(this.shape).forEach((X)=>{if(!W[X])$[X]=this.shape[X]}),new l0({...this._def,shape:()=>$})}deepPartial(){return x8(this)}partial(W){let $={};return K0.objectKeys(this.shape).forEach((X)=>{let Y=this.shape[X];if(W&&!W[X])$[X]=Y;else $[X]=Y.optional()}),new l0({...this._def,shape:()=>$})}required(W){let $={};return K0.objectKeys(this.shape).forEach((X)=>{if(W&&!W[X])$[X]=this.shape[X];else{let J=this.shape[X];while(J instanceof XW)J=J._def.innerType;$[X]=J}}),new l0({...this._def,shape:()=>$})}keyof(){return dG(K0.objectKeys(this.shape))}}l0.create=(W,$)=>{return new l0({shape:()=>W,unknownKeys:"strip",catchall:oW.create(),typeName:S.ZodObject,...G0($)})};l0.strictCreate=(W,$)=>{return new l0({shape:()=>W,unknownKeys:"strict",catchall:oW.create(),typeName:S.ZodObject,...G0($)})};l0.lazycreate=(W,$)=>{return new l0({shape:W,unknownKeys:"strip",catchall:oW.create(),typeName:S.ZodObject,...G0($)})};class X4 extends T0{_parse(W){let{ctx:$}=this._processInputParams(W),X=this._def.options;function Y(J){for(let H of J)if(H.result.status==="valid")return H.result;for(let H of J)if(H.result.status==="dirty")return $.common.issues.push(...H.ctx.common.issues),H.result;let G=J.map((H)=>new $W(H.ctx.common.issues));return b($,{code:Z.invalid_union,unionErrors:G}),W0}if($.common.async)return Promise.all(X.map(async(J)=>{let G={...$,common:{...$.common,issues:[]},parent:null};return{result:await J._parseAsync({data:$.data,path:$.path,parent:G}),ctx:G}})).then(Y);else{let J=void 0,G=[];for(let Q of X){let z={...$,common:{...$.common,issues:[]},parent:null},F=Q._parseSync({data:$.data,path:$.path,parent:z});if(F.status==="valid")return F;else if(F.status==="dirty"&&!J)J={result:F,ctx:z};if(z.common.issues.length)G.push(z.common.issues)}if(J)return $.common.issues.push(...J.ctx.common.issues),J.result;let H=G.map((Q)=>new $W(Q));return b($,{code:Z.invalid_union,unionErrors:H}),W0}}get options(){return this._def.options}}X4.create=(W,$)=>{return new X4({options:W,typeName:S.ZodUnion,...G0($)})};var dW=(W)=>{if(W instanceof J4)return dW(W.schema);else if(W instanceof PW)return dW(W.innerType());else if(W instanceof G4)return[W.value];else if(W instanceof l2)return W.options;else if(W instanceof H4)return K0.objectValues(W.enum);else if(W instanceof Q4)return dW(W._def.innerType);else if(W instanceof W4)return[void 0];else if(W instanceof $4)return[null];else if(W instanceof XW)return[void 0,...dW(W.unwrap())];else if(W instanceof E2)return[null,...dW(W.unwrap())];else if(W instanceof b9)return dW(W.unwrap());else if(W instanceof F4)return dW(W.unwrap());else if(W instanceof z4)return dW(W._def.innerType);else return[]};class v9 extends T0{_parse(W){let{ctx:$}=this._processInputParams(W);if($.parsedType!==p.object)return b($,{code:Z.invalid_type,expected:p.object,received:$.parsedType}),W0;let X=this.discriminator,Y=$.data[X],J=this.optionsMap.get(Y);if(!J)return b($,{code:Z.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[X]}),W0;if($.common.async)return J._parseAsync({data:$.data,path:$.path,parent:$});else return J._parseSync({data:$.data,path:$.path,parent:$})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(W,$,X){let Y=new Map;for(let J of $){let G=dW(J.shape[W]);if(!G.length)throw new Error(`A discriminator value for key \`${W}\` could not be extracted from all schema options`);for(let H of G){if(Y.has(H))throw new Error(`Discriminator property ${String(W)} has duplicate value ${String(H)}`);Y.set(H,J)}}return new v9({typeName:S.ZodDiscriminatedUnion,discriminator:W,options:$,optionsMap:Y,...G0(X)})}}function x9(W,$){let X=A2(W),Y=A2($);if(W===$)return{valid:!0,data:W};else if(X===p.object&&Y===p.object){let J=K0.objectKeys($),G=K0.objectKeys(W).filter((Q)=>J.indexOf(Q)!==-1),H={...W,...$};for(let Q of G){let z=x9(W[Q],$[Q]);if(!z.valid)return{valid:!1};H[Q]=z.data}return{valid:!0,data:H}}else if(X===p.array&&Y===p.array){if(W.length!==$.length)return{valid:!1};let J=[];for(let G=0;G<W.length;G++){let H=W[G],Q=$[G],z=x9(H,Q);if(!z.valid)return{valid:!1};J.push(z.data)}return{valid:!0,data:J}}else if(X===p.date&&Y===p.date&&+W===+$)return{valid:!0,data:W};else return{valid:!1}}class Y4 extends T0{_parse(W){let{status:$,ctx:X}=this._processInputParams(W),Y=(J,G)=>{if(hG(J)||hG(G))return W0;let H=x9(J.value,G.value);if(!H.valid)return b(X,{code:Z.invalid_intersection_types}),W0;if(gG(J)||gG(G))$.dirty();return{status:$.value,value:H.data}};if(X.common.async)return Promise.all([this._def.left._parseAsync({data:X.data,path:X.path,parent:X}),this._def.right._parseAsync({data:X.data,path:X.path,parent:X})]).then(([J,G])=>Y(J,G));else return Y(this._def.left._parseSync({data:X.data,path:X.path,parent:X}),this._def.right._parseSync({data:X.data,path:X.path,parent:X}))}}Y4.create=(W,$,X)=>{return new Y4({left:W,right:$,typeName:S.ZodIntersection,...G0(X)})};class iW extends T0{_parse(W){let{status:$,ctx:X}=this._processInputParams(W);if(X.parsedType!==p.array)return b(X,{code:Z.invalid_type,expected:p.array,received:X.parsedType}),W0;if(X.data.length<this._def.items.length)return b(X,{code:Z.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),W0;if(!this._def.rest&&X.data.length>this._def.items.length)b(X,{code:Z.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let J=[...X.data].map((G,H)=>{let Q=this._def.items[H]||this._def.rest;if(!Q)return null;return Q._parse(new DW(X,G,X.path,H))}).filter((G)=>!!G);if(X.common.async)return Promise.all(J).then((G)=>{return S1.mergeArray($,G)});else return S1.mergeArray($,J)}get items(){return this._def.items}rest(W){return new iW({...this._def,rest:W})}}iW.create=(W,$)=>{if(!Array.isArray(W))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new iW({items:W,typeName:S.ZodTuple,rest:null,...G0($)})};class TX extends T0{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(W){let{status:$,ctx:X}=this._processInputParams(W);if(X.parsedType!==p.object)return b(X,{code:Z.invalid_type,expected:p.object,received:X.parsedType}),W0;let Y=[],J=this._def.keyType,G=this._def.valueType;for(let H in X.data)Y.push({key:J._parse(new DW(X,H,X.path,H)),value:G._parse(new DW(X,X.data[H],X.path,H)),alwaysSet:H in X.data});if(X.common.async)return S1.mergeObjectAsync($,Y);else return S1.mergeObjectSync($,Y)}get element(){return this._def.valueType}static create(W,$,X){if($ instanceof T0)return new TX({keyType:W,valueType:$,typeName:S.ZodRecord,...G0(X)});return new TX({keyType:lW.create(),valueType:W,typeName:S.ZodRecord,...G0($)})}}class UX extends T0{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(W){let{status:$,ctx:X}=this._processInputParams(W);if(X.parsedType!==p.map)return b(X,{code:Z.invalid_type,expected:p.map,received:X.parsedType}),W0;let Y=this._def.keyType,J=this._def.valueType,G=[...X.data.entries()].map(([H,Q],z)=>{return{key:Y._parse(new DW(X,H,X.path,[z,"key"])),value:J._parse(new DW(X,Q,X.path,[z,"value"]))}});if(X.common.async){let H=new Map;return Promise.resolve().then(async()=>{for(let Q of G){let z=await Q.key,F=await Q.value;if(z.status==="aborted"||F.status==="aborted")return W0;if(z.status==="dirty"||F.status==="dirty")$.dirty();H.set(z.value,F.value)}return{status:$.value,value:H}})}else{let H=new Map;for(let Q of G){let{key:z,value:F}=Q;if(z.status==="aborted"||F.status==="aborted")return W0;if(z.status==="dirty"||F.status==="dirty")$.dirty();H.set(z.value,F.value)}return{status:$.value,value:H}}}}UX.create=(W,$,X)=>{return new UX({valueType:$,keyType:W,typeName:S.ZodMap,...G0(X)})};class h8 extends T0{_parse(W){let{status:$,ctx:X}=this._processInputParams(W);if(X.parsedType!==p.set)return b(X,{code:Z.invalid_type,expected:p.set,received:X.parsedType}),W0;let Y=this._def;if(Y.minSize!==null){if(X.data.size<Y.minSize.value)b(X,{code:Z.too_small,minimum:Y.minSize.value,type:"set",inclusive:!0,exact:!1,message:Y.minSize.message}),$.dirty()}if(Y.maxSize!==null){if(X.data.size>Y.maxSize.value)b(X,{code:Z.too_big,maximum:Y.maxSize.value,type:"set",inclusive:!0,exact:!1,message:Y.maxSize.message}),$.dirty()}let J=this._def.valueType;function G(Q){let z=new Set;for(let F of Q){if(F.status==="aborted")return W0;if(F.status==="dirty")$.dirty();z.add(F.value)}return{status:$.value,value:z}}let H=[...X.data.values()].map((Q,z)=>J._parse(new DW(X,Q,X.path,z)));if(X.common.async)return Promise.all(H).then((Q)=>G(Q));else return G(H)}min(W,$){return new h8({...this._def,minSize:{value:W,message:l.toString($)}})}max(W,$){return new h8({...this._def,maxSize:{value:W,message:l.toString($)}})}size(W,$){return this.min(W,$).max(W,$)}nonempty(W){return this.min(1,W)}}h8.create=(W,$)=>{return new h8({valueType:W,minSize:null,maxSize:null,typeName:S.ZodSet,...G0($)})};class a$ extends T0{constructor(){super(...arguments);this.validate=this.implement}_parse(W){let{ctx:$}=this._processInputParams(W);if($.parsedType!==p.function)return b($,{code:Z.invalid_type,expected:p.function,received:$.parsedType}),W0;function X(H,Q){return P9({data:H,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,f9(),s$].filter((z)=>!!z),issueData:{code:Z.invalid_arguments,argumentsError:Q}})}function Y(H,Q){return P9({data:H,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,f9(),s$].filter((z)=>!!z),issueData:{code:Z.invalid_return_type,returnTypeError:Q}})}let J={errorMap:$.common.contextualErrorMap},G=$.data;if(this._def.returns instanceof g8){let H=this;return x1(async function(...Q){let z=new $W([]),F=await H._def.args.parseAsync(Q,J).catch((M)=>{throw z.addIssue(X(Q,M)),z}),T=await Reflect.apply(G,this,F);return await H._def.returns._def.type.parseAsync(T,J).catch((M)=>{throw z.addIssue(Y(T,M)),z})})}else{let H=this;return x1(function(...Q){let z=H._def.args.safeParse(Q,J);if(!z.success)throw new $W([X(Q,z.error)]);let F=Reflect.apply(G,this,z.data),T=H._def.returns.safeParse(F,J);if(!T.success)throw new $W([Y(F,T.error)]);return T.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...W){return new a$({...this._def,args:iW.create(W).rest(d2.create())})}returns(W){return new a$({...this._def,returns:W})}implement(W){return this.parse(W)}strictImplement(W){return this.parse(W)}static create(W,$,X){return new a$({args:W?W:iW.create([]).rest(d2.create()),returns:$||d2.create(),typeName:S.ZodFunction,...G0(X)})}}class J4 extends T0{get schema(){return this._def.getter()}_parse(W){let{ctx:$}=this._processInputParams(W);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}}J4.create=(W,$)=>{return new J4({getter:W,typeName:S.ZodLazy,...G0($)})};class G4 extends T0{_parse(W){if(W.data!==this._def.value){let $=this._getOrReturnCtx(W);return b($,{received:$.data,code:Z.invalid_literal,expected:this._def.value}),W0}return{status:"valid",value:W.data}}get value(){return this._def.value}}G4.create=(W,$)=>{return new G4({value:W,typeName:S.ZodLiteral,...G0($)})};function dG(W,$){return new l2({values:W,typeName:S.ZodEnum,...G0($)})}class l2 extends T0{constructor(){super(...arguments);r$.set(this,void 0)}_parse(W){if(typeof W.data!=="string"){let $=this._getOrReturnCtx(W),X=this._def.values;return b($,{expected:K0.joinValues(X),received:$.parsedType,code:Z.invalid_type}),W0}if(!GX(this,r$,"f"))pG(this,r$,new Set(this._def.values),"f");if(!GX(this,r$,"f").has(W.data)){let $=this._getOrReturnCtx(W),X=this._def.values;return b($,{received:$.data,code:Z.invalid_enum_value,options:X}),W0}return x1(W.data)}get options(){return this._def.values}get enum(){let W={};for(let $ of this._def.values)W[$]=$;return W}get Values(){let W={};for(let $ of this._def.values)W[$]=$;return W}get Enum(){let W={};for(let $ of this._def.values)W[$]=$;return W}extract(W,$=this._def){return l2.create(W,{...this._def,...$})}exclude(W,$=this._def){return l2.create(this.options.filter((X)=>!W.includes(X)),{...this._def,...$})}}r$=new WeakMap;l2.create=dG;class H4 extends T0{constructor(){super(...arguments);t$.set(this,void 0)}_parse(W){let $=K0.getValidEnumValues(this._def.values),X=this._getOrReturnCtx(W);if(X.parsedType!==p.string&&X.parsedType!==p.number){let Y=K0.objectValues($);return b(X,{expected:K0.joinValues(Y),received:X.parsedType,code:Z.invalid_type}),W0}if(!GX(this,t$,"f"))pG(this,t$,new Set(K0.getValidEnumValues(this._def.values)),"f");if(!GX(this,t$,"f").has(W.data)){let Y=K0.objectValues($);return b(X,{received:X.data,code:Z.invalid_enum_value,options:Y}),W0}return x1(W.data)}get enum(){return this._def.values}}t$=new WeakMap;H4.create=(W,$)=>{return new H4({values:W,typeName:S.ZodNativeEnum,...G0($)})};class g8 extends T0{unwrap(){return this._def.type}_parse(W){let{ctx:$}=this._processInputParams(W);if($.parsedType!==p.promise&&$.common.async===!1)return b($,{code:Z.invalid_type,expected:p.promise,received:$.parsedType}),W0;let X=$.parsedType===p.promise?$.data:Promise.resolve($.data);return x1(X.then((Y)=>{return this._def.type.parseAsync(Y,{path:$.path,errorMap:$.common.contextualErrorMap})}))}}g8.create=(W,$)=>{return new g8({type:W,typeName:S.ZodPromise,...G0($)})};class PW extends T0{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===S.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(W){let{status:$,ctx:X}=this._processInputParams(W),Y=this._def.effect||null,J={addIssue:(G)=>{if(b(X,G),G.fatal)$.abort();else $.dirty()},get path(){return X.path}};if(J.addIssue=J.addIssue.bind(J),Y.type==="preprocess"){let G=Y.transform(X.data,J);if(X.common.async)return Promise.resolve(G).then(async(H)=>{if($.value==="aborted")return W0;let Q=await this._def.schema._parseAsync({data:H,path:X.path,parent:X});if(Q.status==="aborted")return W0;if(Q.status==="dirty")return n$(Q.value);if($.value==="dirty")return n$(Q.value);return Q});else{if($.value==="aborted")return W0;let H=this._def.schema._parseSync({data:G,path:X.path,parent:X});if(H.status==="aborted")return W0;if(H.status==="dirty")return n$(H.value);if($.value==="dirty")return n$(H.value);return H}}if(Y.type==="refinement"){let G=(H)=>{let Q=Y.refinement(H,J);if(X.common.async)return Promise.resolve(Q);if(Q instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return H};if(X.common.async===!1){let H=this._def.schema._parseSync({data:X.data,path:X.path,parent:X});if(H.status==="aborted")return W0;if(H.status==="dirty")$.dirty();return G(H.value),{status:$.value,value:H.value}}else return this._def.schema._parseAsync({data:X.data,path:X.path,parent:X}).then((H)=>{if(H.status==="aborted")return W0;if(H.status==="dirty")$.dirty();return G(H.value).then(()=>{return{status:$.value,value:H.value}})})}if(Y.type==="transform")if(X.common.async===!1){let G=this._def.schema._parseSync({data:X.data,path:X.path,parent:X});if(!v8(G))return G;let H=Y.transform(G.value,J);if(H instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:H}}else return this._def.schema._parseAsync({data:X.data,path:X.path,parent:X}).then((G)=>{if(!v8(G))return G;return Promise.resolve(Y.transform(G.value,J)).then((H)=>({status:$.value,value:H}))});K0.assertNever(Y)}}PW.create=(W,$,X)=>{return new PW({schema:W,typeName:S.ZodEffects,effect:$,...G0(X)})};PW.createWithPreprocess=(W,$,X)=>{return new PW({schema:$,effect:{type:"preprocess",transform:W},typeName:S.ZodEffects,...G0(X)})};class XW extends T0{_parse(W){if(this._getType(W)===p.undefined)return x1(void 0);return this._def.innerType._parse(W)}unwrap(){return this._def.innerType}}XW.create=(W,$)=>{return new XW({innerType:W,typeName:S.ZodOptional,...G0($)})};class E2 extends T0{_parse(W){if(this._getType(W)===p.null)return x1(null);return this._def.innerType._parse(W)}unwrap(){return this._def.innerType}}E2.create=(W,$)=>{return new E2({innerType:W,typeName:S.ZodNullable,...G0($)})};class Q4 extends T0{_parse(W){let{ctx:$}=this._processInputParams(W),X=$.data;if($.parsedType===p.undefined)X=this._def.defaultValue();return this._def.innerType._parse({data:X,path:$.path,parent:$})}removeDefault(){return this._def.innerType}}Q4.create=(W,$)=>{return new Q4({innerType:W,typeName:S.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...G0($)})};class z4 extends T0{_parse(W){let{ctx:$}=this._processInputParams(W),X={...$,common:{...$.common,issues:[]}},Y=this._def.innerType._parse({data:X.data,path:X.path,parent:{...X}});if(JX(Y))return Y.then((J)=>{return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new $W(X.common.issues)},input:X.data})}});else return{status:"valid",value:Y.status==="valid"?Y.value:this._def.catchValue({get error(){return new $W(X.common.issues)},input:X.data})}}removeCatch(){return this._def.innerType}}z4.create=(W,$)=>{return new z4({innerType:W,typeName:S.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...G0($)})};class wX extends T0{_parse(W){if(this._getType(W)!==p.nan){let X=this._getOrReturnCtx(W);return b(X,{code:Z.invalid_type,expected:p.nan,received:X.parsedType}),W0}return{status:"valid",value:W.data}}}wX.create=(W)=>{return new wX({typeName:S.ZodNaN,...G0(W)})};var LZ=Symbol("zod_brand");class b9 extends T0{_parse(W){let{ctx:$}=this._processInputParams(W),X=$.data;return this._def.type._parse({data:X,path:$.path,parent:$})}unwrap(){return this._def.type}}class MX extends T0{_parse(W){let{status:$,ctx:X}=this._processInputParams(W);if(X.common.async)return(async()=>{let J=await this._def.in._parseAsync({data:X.data,path:X.path,parent:X});if(J.status==="aborted")return W0;if(J.status==="dirty")return $.dirty(),n$(J.value);else return this._def.out._parseAsync({data:J.value,path:X.path,parent:X})})();else{let Y=this._def.in._parseSync({data:X.data,path:X.path,parent:X});if(Y.status==="aborted")return W0;if(Y.status==="dirty")return $.dirty(),{status:"dirty",value:Y.value};else return this._def.out._parseSync({data:Y.value,path:X.path,parent:X})}}static create(W,$){return new MX({in:W,out:$,typeName:S.ZodPipeline})}}class F4 extends T0{_parse(W){let $=this._def.innerType._parse(W),X=(Y)=>{if(v8(Y))Y.value=Object.freeze(Y.value);return Y};return JX($)?$.then((Y)=>X(Y)):X($)}unwrap(){return this._def.innerType}}F4.create=(W,$)=>{return new F4({innerType:W,typeName:S.ZodReadonly,...G0($)})};var AZ={object:l0.lazycreate},S;(function(W){W.ZodString="ZodString",W.ZodNumber="ZodNumber",W.ZodNaN="ZodNaN",W.ZodBigInt="ZodBigInt",W.ZodBoolean="ZodBoolean",W.ZodDate="ZodDate",W.ZodSymbol="ZodSymbol",W.ZodUndefined="ZodUndefined",W.ZodNull="ZodNull",W.ZodAny="ZodAny",W.ZodUnknown="ZodUnknown",W.ZodNever="ZodNever",W.ZodVoid="ZodVoid",W.ZodArray="ZodArray",W.ZodObject="ZodObject",W.ZodUnion="ZodUnion",W.ZodDiscriminatedUnion="ZodDiscriminatedUnion",W.ZodIntersection="ZodIntersection",W.ZodTuple="ZodTuple",W.ZodRecord="ZodRecord",W.ZodMap="ZodMap",W.ZodSet="ZodSet",W.ZodFunction="ZodFunction",W.ZodLazy="ZodLazy",W.ZodLiteral="ZodLiteral",W.ZodEnum="ZodEnum",W.ZodEffects="ZodEffects",W.ZodNativeEnum="ZodNativeEnum",W.ZodOptional="ZodOptional",W.ZodNullable="ZodNullable",W.ZodDefault="ZodDefault",W.ZodCatch="ZodCatch",W.ZodPromise="ZodPromise",W.ZodBranded="ZodBranded",W.ZodPipeline="ZodPipeline",W.ZodReadonly="ZodReadonly"})(S||(S={}));var EZ=lW.create,NZ=b8.create,BZ=wX.create,RZ=y8.create,ZZ=HX.create,SZ=e$.create,qZ=QX.create,CZ=W4.create,kZ=$4.create,IZ=zX.create,jZ=d2.create,fZ=oW.create,PZ=FX.create,xZ=fW.create,vZ=l0.create,bZ=l0.strictCreate,yZ=X4.create,hZ=v9.create,gZ=Y4.create,mZ=iW.create,pZ=TX.create,uZ=UX.create,cZ=h8.create,dZ=a$.create,lZ=J4.create,oZ=G4.create,iZ=l2.create,nZ=H4.create,rZ=g8.create,tZ=PW.create,aZ=XW.create,sZ=E2.create,eZ=PW.createWithPreprocess,WS=MX.create;function lG(){return{}}function oG(W,$){let X={type:"array"};if(W.type?._def&&W.type?._def?.typeName!==S.ZodAny)X.items=s(W.type._def,{...$,currentPath:[...$.currentPath,"items"]});if(W.minLength)V0(X,"minItems",W.minLength.value,W.minLength.message,$);if(W.maxLength)V0(X,"maxItems",W.maxLength.value,W.maxLength.message,$);if(W.exactLength)V0(X,"minItems",W.exactLength.value,W.exactLength.message,$),V0(X,"maxItems",W.exactLength.value,W.exactLength.message,$);return X}function iG(W,$){let X={type:"integer",format:"int64"};if(!W.checks)return X;for(let Y of W.checks)switch(Y.kind){case"min":if($.target==="jsonSchema7")if(Y.inclusive)V0(X,"minimum",Y.value,Y.message,$);else V0(X,"exclusiveMinimum",Y.value,Y.message,$);else{if(!Y.inclusive)X.exclusiveMinimum=!0;V0(X,"minimum",Y.value,Y.message,$)}break;case"max":if($.target==="jsonSchema7")if(Y.inclusive)V0(X,"maximum",Y.value,Y.message,$);else V0(X,"exclusiveMaximum",Y.value,Y.message,$);else{if(!Y.inclusive)X.exclusiveMaximum=!0;V0(X,"maximum",Y.value,Y.message,$)}break;case"multipleOf":V0(X,"multipleOf",Y.value,Y.message,$);break}return X}function nG(){return{type:"boolean"}}function _X(W,$){return s(W.type._def,$)}var rG=(W,$)=>{return s(W.innerType._def,$)};function y9(W,$,X){let Y=X??$.dateStrategy;if(Array.isArray(Y))return{anyOf:Y.map((J,G)=>y9(W,$,J))};switch(Y){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return XD(W,$)}}var XD=(W,$)=>{let X={type:"integer",format:"unix-time"};if($.target==="openApi3")return X;for(let Y of W.checks)switch(Y.kind){case"min":V0(X,"minimum",Y.value,Y.message,$);break;case"max":V0(X,"maximum",Y.value,Y.message,$);break}return X};function tG(W,$){return{...s(W.innerType._def,$),default:W.defaultValue()}}function aG(W,$){return $.effectStrategy==="input"?s(W.schema._def,$):{}}function sG(W){return{type:"string",enum:Array.from(W.values)}}var YD=(W)=>{if("type"in W&&W.type==="string")return!1;return"allOf"in W};function eG(W,$){let X=[s(W.left._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),s(W.right._def,{...$,currentPath:[...$.currentPath,"allOf","1"]})].filter((G)=>!!G),Y=$.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,J=[];return X.forEach((G)=>{if(YD(G)){if(J.push(...G.allOf),G.unevaluatedProperties===void 0)Y=void 0}else{let H=G;if("additionalProperties"in G&&G.additionalProperties===!1){let{additionalProperties:Q,...z}=G;H=z}else Y=void 0;J.push(H)}}),J.length?{allOf:J,...Y}:void 0}function W3(W,$){let X=typeof W.value;if(X!=="bigint"&&X!=="number"&&X!=="boolean"&&X!=="string")return{type:Array.isArray(W.value)?"array":"object"};if($.target==="openApi3")return{type:X==="bigint"?"integer":X,enum:[W.value]};return{type:X==="bigint"?"integer":X,const:W.value}}var h9=void 0,VW={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(h9===void 0)h9=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return h9},uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function DX(W,$){let X={type:"string"};if(W.checks)for(let Y of W.checks)switch(Y.kind){case"min":V0(X,"minLength",typeof X.minLength==="number"?Math.max(X.minLength,Y.value):Y.value,Y.message,$);break;case"max":V0(X,"maxLength",typeof X.maxLength==="number"?Math.min(X.maxLength,Y.value):Y.value,Y.message,$);break;case"email":switch($.emailStrategy){case"format:email":OW(X,"email",Y.message,$);break;case"format:idn-email":OW(X,"idn-email",Y.message,$);break;case"pattern:zod":q1(X,VW.email,Y.message,$);break}break;case"url":OW(X,"uri",Y.message,$);break;case"uuid":OW(X,"uuid",Y.message,$);break;case"regex":q1(X,Y.regex,Y.message,$);break;case"cuid":q1(X,VW.cuid,Y.message,$);break;case"cuid2":q1(X,VW.cuid2,Y.message,$);break;case"startsWith":q1(X,RegExp(`^${g9(Y.value,$)}`),Y.message,$);break;case"endsWith":q1(X,RegExp(`${g9(Y.value,$)}$`),Y.message,$);break;case"datetime":OW(X,"date-time",Y.message,$);break;case"date":OW(X,"date",Y.message,$);break;case"time":OW(X,"time",Y.message,$);break;case"duration":OW(X,"duration",Y.message,$);break;case"length":V0(X,"minLength",typeof X.minLength==="number"?Math.max(X.minLength,Y.value):Y.value,Y.message,$),V0(X,"maxLength",typeof X.maxLength==="number"?Math.min(X.maxLength,Y.value):Y.value,Y.message,$);break;case"includes":{q1(X,RegExp(g9(Y.value,$)),Y.message,$);break}case"ip":{if(Y.version!=="v6")OW(X,"ipv4",Y.message,$);if(Y.version!=="v4")OW(X,"ipv6",Y.message,$);break}case"base64url":q1(X,VW.base64url,Y.message,$);break;case"jwt":q1(X,VW.jwt,Y.message,$);break;case"cidr":{if(Y.version!=="v6")q1(X,VW.ipv4Cidr,Y.message,$);if(Y.version!=="v4")q1(X,VW.ipv6Cidr,Y.message,$);break}case"emoji":q1(X,VW.emoji(),Y.message,$);break;case"ulid":{q1(X,VW.ulid,Y.message,$);break}case"base64":{switch($.base64Strategy){case"format:binary":{OW(X,"binary",Y.message,$);break}case"contentEncoding:base64":{V0(X,"contentEncoding","base64",Y.message,$);break}case"pattern:zod":{q1(X,VW.base64,Y.message,$);break}}break}case"nanoid":q1(X,VW.nanoid,Y.message,$);case"toLowerCase":case"toUpperCase":case"trim":break;default:((J)=>{})(Y)}return X}function g9(W,$){return $.patternStrategy==="escape"?GD(W):W}var JD=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function GD(W){let $="";for(let X=0;X<W.length;X++){if(!JD.has(W[X]))$+="\\";$+=W[X]}return $}function OW(W,$,X,Y){if(W.format||W.anyOf?.some((J)=>J.format)){if(!W.anyOf)W.anyOf=[];if(W.format){if(W.anyOf.push({format:W.format,...W.errorMessage&&Y.errorMessages&&{errorMessage:{format:W.errorMessage.format}}}),delete W.format,W.errorMessage){if(delete W.errorMessage.format,Object.keys(W.errorMessage).length===0)delete W.errorMessage}}W.anyOf.push({format:$,...X&&Y.errorMessages&&{errorMessage:{format:X}}})}else V0(W,"format",$,X,Y)}function q1(W,$,X,Y){if(W.pattern||W.allOf?.some((J)=>J.pattern)){if(!W.allOf)W.allOf=[];if(W.pattern){if(W.allOf.push({pattern:W.pattern,...W.errorMessage&&Y.errorMessages&&{errorMessage:{pattern:W.errorMessage.pattern}}}),delete W.pattern,W.errorMessage){if(delete W.errorMessage.pattern,Object.keys(W.errorMessage).length===0)delete W.errorMessage}}W.allOf.push({pattern:$3($,Y),...X&&Y.errorMessages&&{errorMessage:{pattern:X}}})}else V0(W,"pattern",$3($,Y),X,Y)}function $3(W,$){if(!$.applyRegexFlags||!W.flags)return W.source;let X={i:W.flags.includes("i"),m:W.flags.includes("m"),s:W.flags.includes("s")},Y=X.i?W.source.toLowerCase():W.source,J="",G=!1,H=!1,Q=!1;for(let z=0;z<Y.length;z++){if(G){J+=Y[z],G=!1;continue}if(X.i){if(H){if(Y[z].match(/[a-z]/)){if(Q)J+=Y[z],J+=`${Y[z-2]}-${Y[z]}`.toUpperCase(),Q=!1;else if(Y[z+1]==="-"&&Y[z+2]?.match(/[a-z]/))J+=Y[z],Q=!0;else J+=`${Y[z]}${Y[z].toUpperCase()}`;continue}}else if(Y[z].match(/[a-z]/)){J+=`[${Y[z]}${Y[z].toUpperCase()}]`;continue}}if(X.m){if(Y[z]==="^"){J+=`(^|(?<=[\r
5
+ ${H.trace}`:"No previous disposal trace was found."),Y.type){case"atom_family":case"mutable_atom_family":return W.defaults.get(Y.key);case"selector_family":case"readonly_selector_family":{if(W.defaults.has(Y.key))return W.defaults.get(X.family.key);let Q=P1(W,Y).default(G);return W.defaults.set(Y.key,Q),Q}}}return K2(W,P1(W,X))}class SG{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;selectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new IW({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new IW({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...W)=>W.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new IW({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new IW({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new t6(100);molecules=new Map;moleculeJoins=new IW({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...W)=>W.sort().join(":")});moleculeGraph=new IW({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...W)=>W.sort().join(":")});moleculeData=new IW({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...W)=>W.sort().join(":")});miscResources=new Map;on={atomCreation:new Z0,atomDisposal:new Z0,selectorCreation:new Z0,selectorDisposal:new Z0,timelineCreation:new Z0,transactionCreation:new Z0,transactionApplying:new N9(null),operationClose:new Z0,moleculeCreation:new Z0,moleculeDisposal:new Z0};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral"};loggers=[new E9("warn",(W,$,X)=>!CG(X))];logger={error:(...W)=>{for(let $ of this.loggers)$.error(...W)},info:(...W)=>{for(let $ of this.loggers)$.info(...W)},warn:(...W)=>{for(let $ of this.loggers)$.warn(...W)}};constructor(W,$=null){if(this.config={...$?.config,...W},$!==null){if(this.valueMap=new Map($?.valueMap),this.operation={...$?.operation},I8($))this.transactionMeta={epoch:new Map($?.transactionMeta.epoch),actionContinuities:new IW($?.transactionMeta.actionContinuities.toJSON())};for(let[,Y]of $.families){if(Y.internalRoles?.includes("mutable")||Y.internalRoles?.includes("join"))continue;Y.install(this)}let X=new Set;for(let[,Y]of $.atoms){if(X.has(Y.key))continue;if(Y.install(this),Y.type==="mutable_atom"){let J=f8($,Y),G=qG(Y);X.add(J.key),X.add(G.key)}}for(let[,Y]of $.readonlySelectors)Y.install(this);for(let[,Y]of $.selectors){if(X.has(Y.key))continue;Y.install(this)}for(let[,Y]of $.transactions)Y.install(this);for(let[,Y]of $.timelines)Y.install(this)}}}var QG={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new SG({name:"IMPLICIT_STORE",lifespan:"ephemeral"}),globalThis.ATOM_IO_IMPLICIT_STORE}};function P1(W,$){let X,Y=W;while(Y!==null){switch($.type){case"atom":case"mutable_atom":X=Y.atoms.get($.key);break;case"selector":X=Y.selectors.get($.key);break;case"readonly_selector":X=Y.readonlySelectors.get($.key);break;case"atom_family":case"mutable_atom_family":case"selector_family":case"readonly_selector_family":X=Y.families.get($.key);break;case"timeline":X=Y.timelines.get($.key);break;case"transaction":X=Y.transactions.get($.key);break}if(X)return X;Y=Y.child}throw new c$($,W)}var kG=(W,$)=>{let X=J0(W);if(X.operation.open)return X.operation.prev.get($.key);return X.valueMap.get($.key)};var S9=(W,$)=>{let X=J0(W);return EG($,W).map((J)=>{let G=X.atoms.get(J);if(G===void 0)throw new Error(`Atom "${J}", a dependency of selector "${$.key}", not found in store "${W.config.name}".`);return G.subject.subscribe(`${$.type}:${$.key}`,(H)=>{W.logger.info("\uD83D\uDCE2",$.type,$.key,"root",J,"went",H.oldValue,"->",H.newValue);let Q=kG(X,$),z=K2(X,$);W.logger.info("\u2728",$.type,$.key,"went",Q,"->",z),$.subject.next({newValue:z,oldValue:Q})})})};function i$(W,$,X,Y){function J(U){if(W.operation.open){let M=W.on.operationClose.subscribe(`state subscription ${X}`,()=>{M(),Y(U)})}else Y(U)}let G=P1(W,$);W.logger.info("\uD83D\uDC40",G.type,G.key,`Adding subscription "${X}"`);let H=G.type==="selector"||G.type==="readonly_selector",Q=null,z=J;if(H)Q=S9(W,G),z=(U)=>{if(Q)Q.length=0,Q.push(...S9(W,G));J(U)};let F=G.subject.subscribe(X,z);return()=>{if(W.logger.info("\uD83D\uDE48",G.type,G.key,`Removing subscription "${X}"`),F(),Q)for(let U of Q)U()}}var IG=(W,$,X,Y)=>{let J=P1(W,$);W.logger.info("\uD83D\uDC40","timeline",$.key,`Adding subscription "${X}"`);let G=J.subject.subscribe(X,Y);return()=>{W.logger.info("\uD83D\uDE48","timeline",$.key,`Removing subscription "${X}" from timeline`),G()}};class q9{initializeState(W,$){let X=`*${W.key}`;$.atoms.delete(X),$.valueMap.delete(X);let Y=W.family?{key:`*${W.family.key}`,subKey:W.family.subKey}:void 0,J=C9($,{key:X,default:null},Y);if($.parent?.valueMap.has(X)){let G=$.parent.valueMap.get(X);$.valueMap.set(X,G)}return J}unsubscribeFromInnerValue;unsubscribeFromState;observeCore(W,$,X){let Y=`tracker:${X.config.name}:${d1(X)?X.transactionMeta.update.key:"main"}:${W.key}`,J=o$(X,W);this.unsubscribeFromInnerValue=J.subscribe(Y,(G)=>{L2(X,$,G)}),this.unsubscribeFromState=i$(X,W,Y,(G)=>{if(G.newValue!==G.oldValue)this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=G.newValue.subscribe(Y,(H)=>{L2(X,$,H)})})}updateCore(W,$,X){let Y=`tracker:${X.config.name}:${d1(X)?X.transactionMeta.update.key:"main"}:${W.key}`;i$(X,$,Y,({newValue:J,oldValue:G})=>{let H=X.timelineTopics.getRelatedKey($.key);if(H){if(X.timelines.get(H)?.timeTraveling){let F=IG(X,{key:H,type:"timeline"},Y,(T)=>{F(),L2(X,W,(U)=>{if(T==="redo"&&J)U.do(J);else if(T==="undo"&&G)U.undo(G);return U})});return}}let Q=X.on.operationClose.subscribe(Y,()=>{Q();let z=o$(X,W),F=J===null?-1:z.getUpdateNumber(J),T=F-z.cacheUpdateNumber;if(J&&T===1)L2(X,W,(U)=>(U.do(J),U));else X.logger.info("\u274C","mutable_atom",W.key,`could not be updated. Expected update number ${z.cacheUpdateNumber+1}, but got ${F}`)})})}mutableState;latestUpdateState;[Symbol.dispose];constructor(W,$){this.mutableState=W;let X=J0($);this.latestUpdateState=this.initializeState(W,X),this.observeCore(W,this.latestUpdateState,X),this.updateCore(W,this.latestUpdateState,X),X.trackers.set(W.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),X.trackers.delete(W.key)}}}var f8=(W,$)=>{if($.family){let Y=J0(W),G={key:`${$.family.key}:JSON`,type:"selector_family"},H=P1(Y,G),Q=JSON.parse($.family.subKey);return l1(W,H,Q)}return{type:"selector",key:`${$.key}:JSON`}};var qG=(W)=>{let X={type:"atom",key:`*${W.key}`};if(W.family)X.family={key:`*${W.family.key}`,subKey:W.family.subKey};return X};function VG(W){return typeof W==="object"&&W!==null&&"do"in W&&"undo"in W&&"subscribe"in W}function d$(W,$,X){let Y=X.valueMap.get($.key),J=W.valueMap.get($.key);if(Y!==J)return J;if(Y===void 0)return $.default();X.logger.info("\uD83D\uDCC3","atom",$.key,"copying");let G=$.toJson(Y),H=$.fromJson(G);return W.valueMap.set($.key,H),new q9($,X),H}function jW(W,$,X,Y){let J=W.valueMap.get($);if(J instanceof m$)J.use(X);if(X instanceof Promise){let G=new m$(X);return W.valueMap.set($,G),G.then((H)=>{jW(W,$,H,Y),Y.next({newValue:H,oldValue:G})}).catch((H)=>{W.logger.error("\uD83D\uDCA5","state",$,"rejected:",H)}),G}return W.valueMap.set($,X),X}var TG=(W,$)=>{let X=$.valueMap.get(W.key);if(W.type==="mutable_atom"&&d1($)){let{parent:Y}=$;X=d$($,W,Y)}return X},DG=(W,$)=>{let X=$.valueMap.get(W);if(X instanceof m$){let Y=X,J=$.selectors.get(W)??$.readonlySelectors.get(W);if(J)Y.use(J.get());return}if($.operation.open)$.operation.prev.set(W,X);$.valueMap.delete(W),$.logger.info("\uD83D\uDDD1","state",W,"evicted")};var KG=(W,$)=>{return J0(W).atomsThatAreDefault.has($)},jG=(W,$)=>{let X=J0(W);X.atomsThatAreDefault=new Set(X.atomsThatAreDefault).add($)},LG=(W,$)=>{let X=J0(W);X.atomsThatAreDefault=new Set(J0(W).atomsThatAreDefault),X.atomsThatAreDefault.delete($)};function C9(W,$,X){W.logger.info("\uD83D\uDD28","atom",$.key,`creating in store "${W.config.name}"`);let Y=J0(W),J=Y.atoms.get($.key);if(J&&J.type==="atom")return W.logger.error("\u274C","atom",$.key,"Tried to create atom, but it already exists in the store."),u$(J);let G=new Z0,H={...$,type:"atom",install:(F)=>{return F.logger.info("\uD83D\uDEE0\uFE0F","atom",$.key,`installing in store "${F.config.name}"`),C9(F,$,X)},subject:G};if(X)H.family=X;let Q=$.default;if($.default instanceof Function)Q=$.default();Y.atoms.set(H.key,H),jG(W,$.key),jW(Y,$.key,Q,G);let z=u$(H);if($.effects){let F=0,T=[];for(let U of $.effects){let M=U({setSelf:(O)=>{L2(W,z,O)},onSet:(O)=>i$(W,z,`effect[${F}]`,O)});if(M)T.push(M);++F}H.cleanup=()=>{for(let U of T)U()}}return z}class P8 extends Set{mode="record";subject=new Z0;cacheLimit=0;cache=[];cacheIdx=-1;cacheUpdateNumber=-1;constructor(W,$=0){super(W);if(W instanceof P8)this.parent=W,this.cacheUpdateNumber=W.cacheUpdateNumber;if($)this.cacheLimit=$,this.cache=new Array($),this.subscribe("auto cache",(X)=>{this.cacheIdx++,this.cacheIdx%=this.cacheLimit,this.cache[this.cacheIdx]=X})}toJSON(){return{members:[...this],cache:this.cache,cacheLimit:this.cacheLimit,cacheIdx:this.cacheIdx,cacheUpdateNumber:this.cacheUpdateNumber}}static fromJSON(W){let $=new P8(W.members,W.cacheLimit);return $.cache=W.cache,$.cacheIdx=W.cacheIdx,$.cacheUpdateNumber=W.cacheUpdateNumber,$}add(W){let $=super.add(W);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`add:${Z1(W)}`);return $}clear(){let W=this.mode==="record"?[...this]:null;if(super.clear(),W)this.cacheUpdateNumber++,this.emit(`clear:${JSON.stringify(W)}`)}delete(W){let $=super.delete(W);if(this.mode==="record")this.cacheUpdateNumber++,this.emit(`del:${Z1(W)}`);return $}parent=null;child=null;transactionUpdates=null;transaction(W){this.mode="transaction",this.transactionUpdates=[],this.child=new P8(this);let $=this.child._subscribe("transaction",(X)=>{this.transactionUpdates?.push(X)});try{if(W(this.child)){for(let Y of this.transactionUpdates)this.doStep(Y);this.cacheUpdateNumber++,this.emit(`tx:${this.transactionUpdates.join(";")}`)}}catch(X){throw console.warn("Did not apply transaction to SetRTX; this error was thrown:",X),X}finally{$(),this.child=null,this.transactionUpdates=null,this.mode="record"}}_subscribe(W,$){return this.subject.subscribe(W,$)}subscribe(W,$){return this.subject.subscribe(W,(X)=>{$(`${this.cacheUpdateNumber}=${X}`)})}emit(W){this.subject.next(W)}doStep(W){let $=W.indexOf(":"),X=W.substring(0,$),Y=W.substring($+1);switch(X){case"add":this.add(JSON.parse(Y));break;case"clear":this.clear();break;case"del":this.delete(JSON.parse(Y));break;case"tx":for(let J of Y.split(";"))this.doStep(J)}}getUpdateNumber(W){let $=W.indexOf("=");return Number(W.substring(0,$))}do(W){let $=W.indexOf("="),X=Number(W.substring(0,$)),Y=X-this.cacheUpdateNumber;if(Y>0){if(Y===1){this.mode="playback";let G=W.substring($+1);return this.doStep(G),this.mode="record",this.cacheUpdateNumber=X,null}return this.cacheUpdateNumber+1}if(Math.abs(Y)<this.cacheLimit){let G=this.cacheIdx+Y;if(this.cache[G]===W)return null;this.mode="playback";let Q=!1;while(!Q){this.cacheIdx%=this.cacheLimit;let F=this.cache[this.cacheIdx];if(this.cacheIdx--,!F)return"OUT_OF_RANGE";this.undo(F),Q=this.cacheIdx===G-1}let z=W.substring($+1);return this.doStep(z),this.mode="record",this.cacheUpdateNumber=X,null}return"OUT_OF_RANGE"}undoStep(W){let $=W.indexOf(":"),X=W.substring(0,$),Y=W.substring($+1);switch(X){case"add":this.delete(JSON.parse(Y));break;case"del":this.add(JSON.parse(Y));break;case"clear":{let J=JSON.parse(Y);for(let G of J)this.add(G);break}case"tx":{let J=Y.split(";");for(let G=J.length-1;G>=0;G--)this.undoStep(J[G])}}}undo(W){let $=W.indexOf("=");if(Number(W.substring(0,$))===this.cacheUpdateNumber){this.mode="playback";let Y=W.substring($+1);return this.undoStep(Y),this.mode="record",this.cacheUpdateNumber--,null}return this.cacheUpdateNumber}}function CG(W){return W.startsWith("\uD83D\uDD0D ")}class YX{listeners;globalListeners;handleEvent(W,...$){for(let Y of this.globalListeners)Y(W,...$);let X=this.listeners.get(W);if(X)for(let Y of X)Y(...$)}id="no_id_retrieved";emit;constructor(W){this.emit=W,this.listeners=new Map,this.globalListeners=new Set}on(W,$){let X=this.listeners.get(W);if(X)X.add($);else this.listeners.set(W,new Set([$]));return this}onAny(W){return this.globalListeners.add(W),this}off(W,$){let X=this.listeners.get(W);if(X)if($)X.delete($);else this.listeners.delete(W);return this}offAny(W){return this.globalListeners.delete(W),this}}class fG extends YX{in;out;id="no_id_retrieved";disposalFunctions=[];constructor(W){super((...$)=>{return this.out.next($),this});this.id=W,this.in=new Z0,this.out=new Z0,this.in.subscribe("socket",($)=>{this.handleEvent(...$)})}dispose(){for(let W of this.disposalFunctions)W()}}class k9 extends YX{incompleteData="";unprocessedEvents=[];relays;relayServices;process;id="#####";log(...W){this.process.stderr.write(Z1(W.map(($)=>$ instanceof P8?`{ ${$.toJSON().members.join(" | ")} }`:$))+"\x03")}logger={info:(...W)=>{this.log("i",...W)},warn:(...W)=>{this.log("w",...W)},error:(...W)=>{this.log("e",...W)}};constructor(){super((W,...$)=>{let X=JSON.stringify([W,...$]);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",(W)=>{let $=W.toString();this.unprocessedEvents.push(...$.split("\x03"));let X=this.unprocessedEvents.shift();this.incompleteData+=X??"";try{let Y=p$(this.incompleteData);this.logger.info("\uD83C\uDFB0","received",Y),this.handleEvent(...Y);while(this.unprocessedEvents.length>0){let J=this.unprocessedEvents.shift();if(J){if(this.unprocessedEvents.length===0)this.incompleteData=J;let G=p$(J);this.handleEvent(...G)}}this.incompleteData=""}catch(Y){if(Y instanceof Error)this.logger.error("\u2757",Y.message,Y.cause,Y.stack)}}),this.on("exit",()=>{this.logger.info("\uD83D\uDD25",this.id,'received "exit"'),process.exit(0)}),process.on("exit",(W)=>{this.logger.info("\uD83D\uDD25",this.id,`exited with code ${W}`)}),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",(W)=>{this.logger.info("\uD83D\uDC64","user",W,"joined");let $=new fG(`user:${W}`);this.relays.set(W,$),this.logger.info("\uD83D\uDD17","attaching services:",`[${[...this.relayServices.keys()].join(", ")}]`);for(let X of this.relayServices){let Y=X($);if(Y)$.disposalFunctions.push(Y)}this.on(`user:${W}`,(...X)=>{$.in.next(X)}),$.out.subscribe("socket",(X)=>{this.emit(...X)})}),this.on("user-leaves",(W)=>{let $=this.relays.get(W);if(this.off(`relay:${W}`),$)$.dispose(),this.relays.delete(W)}),process.stdout.write("ALIVE")}relay(W){this.logger.info("\uD83D\uDD17","running relay method"),this.relayServices.push(W)}}var xG=Symbol("Let zodToJsonSchema decide on which parser to use");var PG={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},vG=(W)=>typeof W==="string"?{...PG,name:W}:{...PG,...W};var bG=(W)=>{let $=vG(W),X=$.name!==void 0?[...$.basePath,$.definitionPath,$.name]:$.basePath;return{...$,currentPath:X,propertyPath:void 0,seen:new Map(Object.entries($.definitions).map(([Y,J])=>[J._def,{def:J._def,path:[...$.basePath,$.definitionPath,Y],jsonSchema:void 0}]))}};function I9(W,$,X,Y){if(!Y?.errorMessages)return;if(X)W.errorMessage={...W.errorMessage,[$]:X}}function O0(W,$,X,Y,J){W[$]=X,I9(W,$,Y,J)}var K0;(function(W){W.assertEqual=(J)=>J;function $(J){}W.assertIs=$;function X(J){throw new Error}W.assertNever=X,W.arrayToEnum=(J)=>{let G={};for(let H of J)G[H]=H;return G},W.getValidEnumValues=(J)=>{let G=W.objectKeys(J).filter((Q)=>typeof J[J[Q]]!=="number"),H={};for(let Q of G)H[Q]=J[Q];return W.objectValues(H)},W.objectValues=(J)=>{return W.objectKeys(J).map(function(G){return J[G]})},W.objectKeys=typeof Object.keys==="function"?(J)=>Object.keys(J):(J)=>{let G=[];for(let H in J)if(Object.prototype.hasOwnProperty.call(J,H))G.push(H);return G},W.find=(J,G)=>{for(let H of J)if(G(H))return H;return},W.isInteger=typeof Number.isInteger==="function"?(J)=>Number.isInteger(J):(J)=>typeof J==="number"&&isFinite(J)&&Math.floor(J)===J;function Y(J,G=" | "){return J.map((H)=>typeof H==="string"?`'${H}'`:H).join(G)}W.joinValues=Y,W.jsonStringifyReplacer=(J,G)=>{if(typeof G==="bigint")return G.toString();return G}})(K0||(K0={}));var yG;(function(W){W.mergeShapes=($,X)=>{return{...$,...X}}})(yG||(yG={}));var p=K0.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),A2=(W)=>{switch(typeof W){case"undefined":return p.undefined;case"string":return p.string;case"number":return isNaN(W)?p.nan:p.number;case"boolean":return p.boolean;case"function":return p.function;case"bigint":return p.bigint;case"symbol":return p.symbol;case"object":if(Array.isArray(W))return p.array;if(W===null)return p.null;if(W.then&&typeof W.then==="function"&&W.catch&&typeof W.catch==="function")return p.promise;if(typeof Map!=="undefined"&&W instanceof Map)return p.map;if(typeof Set!=="undefined"&&W instanceof Set)return p.set;if(typeof Date!=="undefined"&&W instanceof Date)return p.date;return p.object;default:return p.unknown}},Z=K0.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class $W extends Error{get errors(){return this.issues}constructor(W){super();this.issues=[],this.addIssue=(X)=>{this.issues=[...this.issues,X]},this.addIssues=(X=[])=>{this.issues=[...this.issues,...X]};let $=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,$);else this.__proto__=$;this.name="ZodError",this.issues=W}format(W){let $=W||function(J){return J.message},X={_errors:[]},Y=(J)=>{for(let G of J.issues)if(G.code==="invalid_union")G.unionErrors.map(Y);else if(G.code==="invalid_return_type")Y(G.returnTypeError);else if(G.code==="invalid_arguments")Y(G.argumentsError);else if(G.path.length===0)X._errors.push($(G));else{let H=X,Q=0;while(Q<G.path.length){let z=G.path[Q];if(Q!==G.path.length-1)H[z]=H[z]||{_errors:[]};else H[z]=H[z]||{_errors:[]},H[z]._errors.push($(G));H=H[z],Q++}}};return Y(this),X}static assert(W){if(!(W instanceof $W))throw new Error(`Not a ZodError: ${W}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,K0.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(W=($)=>$.message){let $={},X=[];for(let Y of this.issues)if(Y.path.length>0)$[Y.path[0]]=$[Y.path[0]]||[],$[Y.path[0]].push(W(Y));else X.push(W(Y));return{formErrors:X,fieldErrors:$}}get formErrors(){return this.flatten()}}$W.create=(W)=>{return new $W(W)};var s$=(W,$)=>{let X;switch(W.code){case Z.invalid_type:if(W.received===p.undefined)X="Required";else X=`Expected ${W.expected}, received ${W.received}`;break;case Z.invalid_literal:X=`Invalid literal value, expected ${JSON.stringify(W.expected,K0.jsonStringifyReplacer)}`;break;case Z.unrecognized_keys:X=`Unrecognized key(s) in object: ${K0.joinValues(W.keys,", ")}`;break;case Z.invalid_union:X="Invalid input";break;case Z.invalid_union_discriminator:X=`Invalid discriminator value. Expected ${K0.joinValues(W.options)}`;break;case Z.invalid_enum_value:X=`Invalid enum value. Expected ${K0.joinValues(W.options)}, received '${W.received}'`;break;case Z.invalid_arguments:X="Invalid function arguments";break;case Z.invalid_return_type:X="Invalid function return type";break;case Z.invalid_date:X="Invalid date";break;case Z.invalid_string:if(typeof W.validation==="object")if("includes"in W.validation){if(X=`Invalid input: must include "${W.validation.includes}"`,typeof W.validation.position==="number")X=`${X} at one or more positions greater than or equal to ${W.validation.position}`}else if("startsWith"in W.validation)X=`Invalid input: must start with "${W.validation.startsWith}"`;else if("endsWith"in W.validation)X=`Invalid input: must end with "${W.validation.endsWith}"`;else K0.assertNever(W.validation);else if(W.validation!=="regex")X=`Invalid ${W.validation}`;else X="Invalid";break;case Z.too_small:if(W.type==="array")X=`Array must contain ${W.exact?"exactly":W.inclusive?"at least":"more than"} ${W.minimum} element(s)`;else if(W.type==="string")X=`String must contain ${W.exact?"exactly":W.inclusive?"at least":"over"} ${W.minimum} character(s)`;else if(W.type==="number")X=`Number must be ${W.exact?"exactly equal to ":W.inclusive?"greater than or equal to ":"greater than "}${W.minimum}`;else if(W.type==="date")X=`Date must be ${W.exact?"exactly equal to ":W.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(W.minimum))}`;else X="Invalid input";break;case Z.too_big:if(W.type==="array")X=`Array must contain ${W.exact?"exactly":W.inclusive?"at most":"less than"} ${W.maximum} element(s)`;else if(W.type==="string")X=`String must contain ${W.exact?"exactly":W.inclusive?"at most":"under"} ${W.maximum} character(s)`;else if(W.type==="number")X=`Number must be ${W.exact?"exactly":W.inclusive?"less than or equal to":"less than"} ${W.maximum}`;else if(W.type==="bigint")X=`BigInt must be ${W.exact?"exactly":W.inclusive?"less than or equal to":"less than"} ${W.maximum}`;else if(W.type==="date")X=`Date must be ${W.exact?"exactly":W.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(W.maximum))}`;else X="Invalid input";break;case Z.custom:X="Invalid input";break;case Z.invalid_intersection_types:X="Intersection results could not be merged";break;case Z.not_multiple_of:X=`Number must be a multiple of ${W.multipleOf}`;break;case Z.not_finite:X="Number must be finite";break;default:X=$.defaultError,K0.assertNever(W)}return{message:X}},P_=s$;function f9(){return P_}var P9=(W)=>{let{data:$,path:X,errorMaps:Y,issueData:J}=W,G=[...X,...J.path||[]],H={...J,path:G};if(J.message!==void 0)return{...J,path:G,message:J.message};let Q="",z=Y.filter((F)=>!!F).slice().reverse();for(let F of z)Q=F(H,{data:$,defaultError:Q}).message;return{...J,path:G,message:Q}};function b(W,$){let X=f9(),Y=P9({issueData:$,data:W.data,path:W.path,errorMaps:[W.common.contextualErrorMap,W.schemaErrorMap,X,X===s$?void 0:s$].filter((J)=>!!J)});W.common.issues.push(Y)}class S1{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(W,$){let X=[];for(let Y of $){if(Y.status==="aborted")return W0;if(Y.status==="dirty")W.dirty();X.push(Y.value)}return{status:W.value,value:X}}static async mergeObjectAsync(W,$){let X=[];for(let Y of $){let J=await Y.key,G=await Y.value;X.push({key:J,value:G})}return S1.mergeObjectSync(W,X)}static mergeObjectSync(W,$){let X={};for(let Y of $){let{key:J,value:G}=Y;if(J.status==="aborted")return W0;if(G.status==="aborted")return W0;if(J.status==="dirty")W.dirty();if(G.status==="dirty")W.dirty();if(J.value!=="__proto__"&&(typeof G.value!=="undefined"||Y.alwaysSet))X[J.value]=G.value}return{status:W.value,value:X}}}var W0=Object.freeze({status:"aborted"}),n$=(W)=>({status:"dirty",value:W}),x1=(W)=>({status:"valid",value:W}),hG=(W)=>W.status==="aborted",gG=(W)=>W.status==="dirty",v8=(W)=>W.status==="valid",JX=(W)=>typeof Promise!=="undefined"&&W instanceof Promise;function GX(W,$,X,Y){if(X==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?W!==$||!Y:!$.has(W))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:$.get(W)}function pG(W,$,X,Y,J){if(Y==="m")throw new TypeError("Private method is not writable");if(Y==="a"&&!J)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?W!==$||!J:!$.has(W))throw new TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:$.set(W,X),X}var l;(function(W){W.errToObj=($)=>typeof $==="string"?{message:$}:$||{},W.toString=($)=>typeof $==="string"?$:$===null||$===void 0?void 0:$.message})(l||(l={}));var r$,t$;class DW{constructor(W,$,X,Y){this._cachedPath=[],this.parent=W,this.data=$,this._path=X,this._key=Y}get path(){if(!this._cachedPath.length)if(this._key instanceof Array)this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var mG=(W,$)=>{if(v8($))return{success:!0,data:$.value};else{if(!W.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let X=new $W(W.common.issues);return this._error=X,this._error}}}};function G0(W){if(!W)return{};let{errorMap:$,invalid_type_error:X,required_error:Y,description:J}=W;if($&&(X||Y))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if($)return{errorMap:$,description:J};return{errorMap:(H,Q)=>{var z,F;let{message:T}=W;if(H.code==="invalid_enum_value")return{message:T!==null&&T!==void 0?T:Q.defaultError};if(typeof Q.data==="undefined")return{message:(z=T!==null&&T!==void 0?T:Y)!==null&&z!==void 0?z:Q.defaultError};if(H.code!=="invalid_type")return{message:Q.defaultError};return{message:(F=T!==null&&T!==void 0?T:X)!==null&&F!==void 0?F:Q.defaultError}},description:J}}class T0{get description(){return this._def.description}_getType(W){return A2(W.data)}_getOrReturnCtx(W,$){return $||{common:W.parent.common,data:W.data,parsedType:A2(W.data),schemaErrorMap:this._def.errorMap,path:W.path,parent:W.parent}}_processInputParams(W){return{status:new S1,ctx:{common:W.parent.common,data:W.data,parsedType:A2(W.data),schemaErrorMap:this._def.errorMap,path:W.path,parent:W.parent}}}_parseSync(W){let $=this._parse(W);if(JX($))throw new Error("Synchronous parse encountered promise.");return $}_parseAsync(W){let $=this._parse(W);return Promise.resolve($)}parse(W,$){let X=this.safeParse(W,$);if(X.success)return X.data;throw X.error}safeParse(W,$){var X;let Y={common:{issues:[],async:(X=$===null||$===void 0?void 0:$.async)!==null&&X!==void 0?X:!1,contextualErrorMap:$===null||$===void 0?void 0:$.errorMap},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:W,parsedType:A2(W)},J=this._parseSync({data:W,path:Y.path,parent:Y});return mG(Y,J)}"~validate"(W){var $,X;let Y={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:W,parsedType:A2(W)};if(!this["~standard"].async)try{let J=this._parseSync({data:W,path:[],parent:Y});return v8(J)?{value:J.value}:{issues:Y.common.issues}}catch(J){if((X=($=J===null||J===void 0?void 0:J.message)===null||$===void 0?void 0:$.toLowerCase())===null||X===void 0?void 0:X.includes("encountered"))this["~standard"].async=!0;Y.common={issues:[],async:!0}}return this._parseAsync({data:W,path:[],parent:Y}).then((J)=>v8(J)?{value:J.value}:{issues:Y.common.issues})}async parseAsync(W,$){let X=await this.safeParseAsync(W,$);if(X.success)return X.data;throw X.error}async safeParseAsync(W,$){let X={common:{issues:[],contextualErrorMap:$===null||$===void 0?void 0:$.errorMap,async:!0},path:($===null||$===void 0?void 0:$.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:W,parsedType:A2(W)},Y=this._parse({data:W,path:X.path,parent:X}),J=await(JX(Y)?Y:Promise.resolve(Y));return mG(X,J)}refine(W,$){let X=(Y)=>{if(typeof $==="string"||typeof $==="undefined")return{message:$};else if(typeof $==="function")return $(Y);else return $};return this._refinement((Y,J)=>{let G=W(Y),H=()=>J.addIssue({code:Z.custom,...X(Y)});if(typeof Promise!=="undefined"&&G instanceof Promise)return G.then((Q)=>{if(!Q)return H(),!1;else return!0});if(!G)return H(),!1;else return!0})}refinement(W,$){return this._refinement((X,Y)=>{if(!W(X))return Y.addIssue(typeof $==="function"?$(X,Y):$),!1;else return!0})}_refinement(W){return new PW({schema:this,typeName:S.ZodEffects,effect:{type:"refinement",refinement:W}})}superRefine(W){return this._refinement(W)}constructor(W){this.spa=this.safeParseAsync,this._def=W,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:($)=>this["~validate"]($)}}optional(){return XW.create(this,this._def)}nullable(){return E2.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return fW.create(this)}promise(){return g8.create(this,this._def)}or(W){return X4.create([this,W],this._def)}and(W){return Y4.create(this,W,this._def)}transform(W){return new PW({...G0(this._def),schema:this,typeName:S.ZodEffects,effect:{type:"transform",transform:W}})}default(W){let $=typeof W==="function"?W:()=>W;return new Q4({...G0(this._def),innerType:this,defaultValue:$,typeName:S.ZodDefault})}brand(){return new b9({typeName:S.ZodBranded,type:this,...G0(this._def)})}catch(W){let $=typeof W==="function"?W:()=>W;return new z4({...G0(this._def),innerType:this,catchValue:$,typeName:S.ZodCatch})}describe(W){return new this.constructor({...this._def,description:W})}pipe(W){return MX.create(this,W)}readonly(){return F4.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var x_=/^c[^\s-]{8,}$/i,v_=/^[0-9a-z]+$/,b_=/^[0-9A-HJKMNP-TV-Z]{26}$/i,y_=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,h_=/^[a-z0-9_-]{21}$/i,g_=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,m_=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,p_=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,u_="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",j9,c_=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,d_=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,l_=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,o_=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,i_=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,n_=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,uG="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",r_=new RegExp(`^${uG}$`);function cG(W){let $="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";if(W.precision)$=`${$}\\.\\d{${W.precision}}`;else if(W.precision==null)$=`${$}(\\.\\d+)?`;return $}function t_(W){return new RegExp(`^${cG(W)}$`)}function a_(W){let $=`${uG}T${cG(W)}`,X=[];if(X.push(W.local?"Z?":"Z"),W.offset)X.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${X.join("|")})`,new RegExp(`^${$}$`)}function s_(W,$){if(($==="v4"||!$)&&c_.test(W))return!0;if(($==="v6"||!$)&&l_.test(W))return!0;return!1}function e_(W,$){if(!g_.test(W))return!1;try{let[X]=W.split("."),Y=X.replace(/-/g,"+").replace(/_/g,"/").padEnd(X.length+(4-X.length%4)%4,"="),J=JSON.parse(atob(Y));if(typeof J!=="object"||J===null)return!1;if(!J.typ||!J.alg)return!1;if($&&J.alg!==$)return!1;return!0}catch(X){return!1}}function WD(W,$){if(($==="v4"||!$)&&d_.test(W))return!0;if(($==="v6"||!$)&&o_.test(W))return!0;return!1}class lW extends T0{_parse(W){if(this._def.coerce)W.data=String(W.data);if(this._getType(W)!==p.string){let J=this._getOrReturnCtx(W);return b(J,{code:Z.invalid_type,expected:p.string,received:J.parsedType}),W0}let X=new S1,Y=void 0;for(let J of this._def.checks)if(J.kind==="min"){if(W.data.length<J.value)Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="max"){if(W.data.length>J.value)Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="length"){let G=W.data.length>J.value,H=W.data.length<J.value;if(G||H){if(Y=this._getOrReturnCtx(W,Y),G)b(Y,{code:Z.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});else if(H)b(Y,{code:Z.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});X.dirty()}}else if(J.kind==="email"){if(!p_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"email",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="emoji"){if(!j9)j9=new RegExp(u_,"u");if(!j9.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"emoji",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="uuid"){if(!y_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"uuid",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="nanoid"){if(!h_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"nanoid",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="cuid"){if(!x_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"cuid",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="cuid2"){if(!v_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"cuid2",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="ulid"){if(!b_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"ulid",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="url")try{new URL(W.data)}catch(G){Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"url",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="regex"){if(J.regex.lastIndex=0,!J.regex.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"regex",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="trim")W.data=W.data.trim();else if(J.kind==="includes"){if(!W.data.includes(J.value,J.position))Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.invalid_string,validation:{includes:J.value,position:J.position},message:J.message}),X.dirty()}else if(J.kind==="toLowerCase")W.data=W.data.toLowerCase();else if(J.kind==="toUpperCase")W.data=W.data.toUpperCase();else if(J.kind==="startsWith"){if(!W.data.startsWith(J.value))Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.invalid_string,validation:{startsWith:J.value},message:J.message}),X.dirty()}else if(J.kind==="endsWith"){if(!W.data.endsWith(J.value))Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.invalid_string,validation:{endsWith:J.value},message:J.message}),X.dirty()}else if(J.kind==="datetime"){if(!a_(J).test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.invalid_string,validation:"datetime",message:J.message}),X.dirty()}else if(J.kind==="date"){if(!r_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.invalid_string,validation:"date",message:J.message}),X.dirty()}else if(J.kind==="time"){if(!t_(J).test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.invalid_string,validation:"time",message:J.message}),X.dirty()}else if(J.kind==="duration"){if(!m_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"duration",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="ip"){if(!s_(W.data,J.version))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"ip",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="jwt"){if(!e_(W.data,J.alg))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"jwt",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="cidr"){if(!WD(W.data,J.version))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"cidr",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="base64"){if(!i_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"base64",code:Z.invalid_string,message:J.message}),X.dirty()}else if(J.kind==="base64url"){if(!n_.test(W.data))Y=this._getOrReturnCtx(W,Y),b(Y,{validation:"base64url",code:Z.invalid_string,message:J.message}),X.dirty()}else K0.assertNever(J);return{status:X.value,value:W.data}}_regex(W,$,X){return this.refinement((Y)=>W.test(Y),{validation:$,code:Z.invalid_string,...l.errToObj(X)})}_addCheck(W){return new lW({...this._def,checks:[...this._def.checks,W]})}email(W){return this._addCheck({kind:"email",...l.errToObj(W)})}url(W){return this._addCheck({kind:"url",...l.errToObj(W)})}emoji(W){return this._addCheck({kind:"emoji",...l.errToObj(W)})}uuid(W){return this._addCheck({kind:"uuid",...l.errToObj(W)})}nanoid(W){return this._addCheck({kind:"nanoid",...l.errToObj(W)})}cuid(W){return this._addCheck({kind:"cuid",...l.errToObj(W)})}cuid2(W){return this._addCheck({kind:"cuid2",...l.errToObj(W)})}ulid(W){return this._addCheck({kind:"ulid",...l.errToObj(W)})}base64(W){return this._addCheck({kind:"base64",...l.errToObj(W)})}base64url(W){return this._addCheck({kind:"base64url",...l.errToObj(W)})}jwt(W){return this._addCheck({kind:"jwt",...l.errToObj(W)})}ip(W){return this._addCheck({kind:"ip",...l.errToObj(W)})}cidr(W){return this._addCheck({kind:"cidr",...l.errToObj(W)})}datetime(W){var $,X;if(typeof W==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:W});return this._addCheck({kind:"datetime",precision:typeof(W===null||W===void 0?void 0:W.precision)==="undefined"?null:W===null||W===void 0?void 0:W.precision,offset:($=W===null||W===void 0?void 0:W.offset)!==null&&$!==void 0?$:!1,local:(X=W===null||W===void 0?void 0:W.local)!==null&&X!==void 0?X:!1,...l.errToObj(W===null||W===void 0?void 0:W.message)})}date(W){return this._addCheck({kind:"date",message:W})}time(W){if(typeof W==="string")return this._addCheck({kind:"time",precision:null,message:W});return this._addCheck({kind:"time",precision:typeof(W===null||W===void 0?void 0:W.precision)==="undefined"?null:W===null||W===void 0?void 0:W.precision,...l.errToObj(W===null||W===void 0?void 0:W.message)})}duration(W){return this._addCheck({kind:"duration",...l.errToObj(W)})}regex(W,$){return this._addCheck({kind:"regex",regex:W,...l.errToObj($)})}includes(W,$){return this._addCheck({kind:"includes",value:W,position:$===null||$===void 0?void 0:$.position,...l.errToObj($===null||$===void 0?void 0:$.message)})}startsWith(W,$){return this._addCheck({kind:"startsWith",value:W,...l.errToObj($)})}endsWith(W,$){return this._addCheck({kind:"endsWith",value:W,...l.errToObj($)})}min(W,$){return this._addCheck({kind:"min",value:W,...l.errToObj($)})}max(W,$){return this._addCheck({kind:"max",value:W,...l.errToObj($)})}length(W,$){return this._addCheck({kind:"length",value:W,...l.errToObj($)})}nonempty(W){return this.min(1,l.errToObj(W))}trim(){return new lW({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new lW({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new lW({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((W)=>W.kind==="datetime")}get isDate(){return!!this._def.checks.find((W)=>W.kind==="date")}get isTime(){return!!this._def.checks.find((W)=>W.kind==="time")}get isDuration(){return!!this._def.checks.find((W)=>W.kind==="duration")}get isEmail(){return!!this._def.checks.find((W)=>W.kind==="email")}get isURL(){return!!this._def.checks.find((W)=>W.kind==="url")}get isEmoji(){return!!this._def.checks.find((W)=>W.kind==="emoji")}get isUUID(){return!!this._def.checks.find((W)=>W.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((W)=>W.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((W)=>W.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((W)=>W.kind==="cuid2")}get isULID(){return!!this._def.checks.find((W)=>W.kind==="ulid")}get isIP(){return!!this._def.checks.find((W)=>W.kind==="ip")}get isCIDR(){return!!this._def.checks.find((W)=>W.kind==="cidr")}get isBase64(){return!!this._def.checks.find((W)=>W.kind==="base64")}get isBase64url(){return!!this._def.checks.find((W)=>W.kind==="base64url")}get minLength(){let W=null;for(let $ of this._def.checks)if($.kind==="min"){if(W===null||$.value>W)W=$.value}return W}get maxLength(){let W=null;for(let $ of this._def.checks)if($.kind==="max"){if(W===null||$.value<W)W=$.value}return W}}lW.create=(W)=>{var $;return new lW({checks:[],typeName:S.ZodString,coerce:($=W===null||W===void 0?void 0:W.coerce)!==null&&$!==void 0?$:!1,...G0(W)})};function $D(W,$){let X=(W.toString().split(".")[1]||"").length,Y=($.toString().split(".")[1]||"").length,J=X>Y?X:Y,G=parseInt(W.toFixed(J).replace(".","")),H=parseInt($.toFixed(J).replace(".",""));return G%H/Math.pow(10,J)}class b8 extends T0{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(W){if(this._def.coerce)W.data=Number(W.data);if(this._getType(W)!==p.number){let J=this._getOrReturnCtx(W);return b(J,{code:Z.invalid_type,expected:p.number,received:J.parsedType}),W0}let X=void 0,Y=new S1;for(let J of this._def.checks)if(J.kind==="int"){if(!K0.isInteger(W.data))X=this._getOrReturnCtx(W,X),b(X,{code:Z.invalid_type,expected:"integer",received:"float",message:J.message}),Y.dirty()}else if(J.kind==="min"){if(J.inclusive?W.data<J.value:W.data<=J.value)X=this._getOrReturnCtx(W,X),b(X,{code:Z.too_small,minimum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),Y.dirty()}else if(J.kind==="max"){if(J.inclusive?W.data>J.value:W.data>=J.value)X=this._getOrReturnCtx(W,X),b(X,{code:Z.too_big,maximum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),Y.dirty()}else if(J.kind==="multipleOf"){if($D(W.data,J.value)!==0)X=this._getOrReturnCtx(W,X),b(X,{code:Z.not_multiple_of,multipleOf:J.value,message:J.message}),Y.dirty()}else if(J.kind==="finite"){if(!Number.isFinite(W.data))X=this._getOrReturnCtx(W,X),b(X,{code:Z.not_finite,message:J.message}),Y.dirty()}else K0.assertNever(J);return{status:Y.value,value:W.data}}gte(W,$){return this.setLimit("min",W,!0,l.toString($))}gt(W,$){return this.setLimit("min",W,!1,l.toString($))}lte(W,$){return this.setLimit("max",W,!0,l.toString($))}lt(W,$){return this.setLimit("max",W,!1,l.toString($))}setLimit(W,$,X,Y){return new b8({...this._def,checks:[...this._def.checks,{kind:W,value:$,inclusive:X,message:l.toString(Y)}]})}_addCheck(W){return new b8({...this._def,checks:[...this._def.checks,W]})}int(W){return this._addCheck({kind:"int",message:l.toString(W)})}positive(W){return this._addCheck({kind:"min",value:0,inclusive:!1,message:l.toString(W)})}negative(W){return this._addCheck({kind:"max",value:0,inclusive:!1,message:l.toString(W)})}nonpositive(W){return this._addCheck({kind:"max",value:0,inclusive:!0,message:l.toString(W)})}nonnegative(W){return this._addCheck({kind:"min",value:0,inclusive:!0,message:l.toString(W)})}multipleOf(W,$){return this._addCheck({kind:"multipleOf",value:W,message:l.toString($)})}finite(W){return this._addCheck({kind:"finite",message:l.toString(W)})}safe(W){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:l.toString(W)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:l.toString(W)})}get minValue(){let W=null;for(let $ of this._def.checks)if($.kind==="min"){if(W===null||$.value>W)W=$.value}return W}get maxValue(){let W=null;for(let $ of this._def.checks)if($.kind==="max"){if(W===null||$.value<W)W=$.value}return W}get isInt(){return!!this._def.checks.find((W)=>W.kind==="int"||W.kind==="multipleOf"&&K0.isInteger(W.value))}get isFinite(){let W=null,$=null;for(let X of this._def.checks)if(X.kind==="finite"||X.kind==="int"||X.kind==="multipleOf")return!0;else if(X.kind==="min"){if($===null||X.value>$)$=X.value}else if(X.kind==="max"){if(W===null||X.value<W)W=X.value}return Number.isFinite($)&&Number.isFinite(W)}}b8.create=(W)=>{return new b8({checks:[],typeName:S.ZodNumber,coerce:(W===null||W===void 0?void 0:W.coerce)||!1,...G0(W)})};class y8 extends T0{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(W){if(this._def.coerce)try{W.data=BigInt(W.data)}catch(J){return this._getInvalidInput(W)}if(this._getType(W)!==p.bigint)return this._getInvalidInput(W);let X=void 0,Y=new S1;for(let J of this._def.checks)if(J.kind==="min"){if(J.inclusive?W.data<J.value:W.data<=J.value)X=this._getOrReturnCtx(W,X),b(X,{code:Z.too_small,type:"bigint",minimum:J.value,inclusive:J.inclusive,message:J.message}),Y.dirty()}else if(J.kind==="max"){if(J.inclusive?W.data>J.value:W.data>=J.value)X=this._getOrReturnCtx(W,X),b(X,{code:Z.too_big,type:"bigint",maximum:J.value,inclusive:J.inclusive,message:J.message}),Y.dirty()}else if(J.kind==="multipleOf"){if(W.data%J.value!==BigInt(0))X=this._getOrReturnCtx(W,X),b(X,{code:Z.not_multiple_of,multipleOf:J.value,message:J.message}),Y.dirty()}else K0.assertNever(J);return{status:Y.value,value:W.data}}_getInvalidInput(W){let $=this._getOrReturnCtx(W);return b($,{code:Z.invalid_type,expected:p.bigint,received:$.parsedType}),W0}gte(W,$){return this.setLimit("min",W,!0,l.toString($))}gt(W,$){return this.setLimit("min",W,!1,l.toString($))}lte(W,$){return this.setLimit("max",W,!0,l.toString($))}lt(W,$){return this.setLimit("max",W,!1,l.toString($))}setLimit(W,$,X,Y){return new y8({...this._def,checks:[...this._def.checks,{kind:W,value:$,inclusive:X,message:l.toString(Y)}]})}_addCheck(W){return new y8({...this._def,checks:[...this._def.checks,W]})}positive(W){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:l.toString(W)})}negative(W){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:l.toString(W)})}nonpositive(W){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:l.toString(W)})}nonnegative(W){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:l.toString(W)})}multipleOf(W,$){return this._addCheck({kind:"multipleOf",value:W,message:l.toString($)})}get minValue(){let W=null;for(let $ of this._def.checks)if($.kind==="min"){if(W===null||$.value>W)W=$.value}return W}get maxValue(){let W=null;for(let $ of this._def.checks)if($.kind==="max"){if(W===null||$.value<W)W=$.value}return W}}y8.create=(W)=>{var $;return new y8({checks:[],typeName:S.ZodBigInt,coerce:($=W===null||W===void 0?void 0:W.coerce)!==null&&$!==void 0?$:!1,...G0(W)})};class HX extends T0{_parse(W){if(this._def.coerce)W.data=Boolean(W.data);if(this._getType(W)!==p.boolean){let X=this._getOrReturnCtx(W);return b(X,{code:Z.invalid_type,expected:p.boolean,received:X.parsedType}),W0}return x1(W.data)}}HX.create=(W)=>{return new HX({typeName:S.ZodBoolean,coerce:(W===null||W===void 0?void 0:W.coerce)||!1,...G0(W)})};class e$ extends T0{_parse(W){if(this._def.coerce)W.data=new Date(W.data);if(this._getType(W)!==p.date){let J=this._getOrReturnCtx(W);return b(J,{code:Z.invalid_type,expected:p.date,received:J.parsedType}),W0}if(isNaN(W.data.getTime())){let J=this._getOrReturnCtx(W);return b(J,{code:Z.invalid_date}),W0}let X=new S1,Y=void 0;for(let J of this._def.checks)if(J.kind==="min"){if(W.data.getTime()<J.value)Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.too_small,message:J.message,inclusive:!0,exact:!1,minimum:J.value,type:"date"}),X.dirty()}else if(J.kind==="max"){if(W.data.getTime()>J.value)Y=this._getOrReturnCtx(W,Y),b(Y,{code:Z.too_big,message:J.message,inclusive:!0,exact:!1,maximum:J.value,type:"date"}),X.dirty()}else K0.assertNever(J);return{status:X.value,value:new Date(W.data.getTime())}}_addCheck(W){return new e$({...this._def,checks:[...this._def.checks,W]})}min(W,$){return this._addCheck({kind:"min",value:W.getTime(),message:l.toString($)})}max(W,$){return this._addCheck({kind:"max",value:W.getTime(),message:l.toString($)})}get minDate(){let W=null;for(let $ of this._def.checks)if($.kind==="min"){if(W===null||$.value>W)W=$.value}return W!=null?new Date(W):null}get maxDate(){let W=null;for(let $ of this._def.checks)if($.kind==="max"){if(W===null||$.value<W)W=$.value}return W!=null?new Date(W):null}}e$.create=(W)=>{return new e$({checks:[],coerce:(W===null||W===void 0?void 0:W.coerce)||!1,typeName:S.ZodDate,...G0(W)})};class QX extends T0{_parse(W){if(this._getType(W)!==p.symbol){let X=this._getOrReturnCtx(W);return b(X,{code:Z.invalid_type,expected:p.symbol,received:X.parsedType}),W0}return x1(W.data)}}QX.create=(W)=>{return new QX({typeName:S.ZodSymbol,...G0(W)})};class W4 extends T0{_parse(W){if(this._getType(W)!==p.undefined){let X=this._getOrReturnCtx(W);return b(X,{code:Z.invalid_type,expected:p.undefined,received:X.parsedType}),W0}return x1(W.data)}}W4.create=(W)=>{return new W4({typeName:S.ZodUndefined,...G0(W)})};class $4 extends T0{_parse(W){if(this._getType(W)!==p.null){let X=this._getOrReturnCtx(W);return b(X,{code:Z.invalid_type,expected:p.null,received:X.parsedType}),W0}return x1(W.data)}}$4.create=(W)=>{return new $4({typeName:S.ZodNull,...G0(W)})};class zX extends T0{constructor(){super(...arguments);this._any=!0}_parse(W){return x1(W.data)}}zX.create=(W)=>{return new zX({typeName:S.ZodAny,...G0(W)})};class d2 extends T0{constructor(){super(...arguments);this._unknown=!0}_parse(W){return x1(W.data)}}d2.create=(W)=>{return new d2({typeName:S.ZodUnknown,...G0(W)})};class oW extends T0{_parse(W){let $=this._getOrReturnCtx(W);return b($,{code:Z.invalid_type,expected:p.never,received:$.parsedType}),W0}}oW.create=(W)=>{return new oW({typeName:S.ZodNever,...G0(W)})};class FX extends T0{_parse(W){if(this._getType(W)!==p.undefined){let X=this._getOrReturnCtx(W);return b(X,{code:Z.invalid_type,expected:p.void,received:X.parsedType}),W0}return x1(W.data)}}FX.create=(W)=>{return new FX({typeName:S.ZodVoid,...G0(W)})};class fW extends T0{_parse(W){let{ctx:$,status:X}=this._processInputParams(W),Y=this._def;if($.parsedType!==p.array)return b($,{code:Z.invalid_type,expected:p.array,received:$.parsedType}),W0;if(Y.exactLength!==null){let G=$.data.length>Y.exactLength.value,H=$.data.length<Y.exactLength.value;if(G||H)b($,{code:G?Z.too_big:Z.too_small,minimum:H?Y.exactLength.value:void 0,maximum:G?Y.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:Y.exactLength.message}),X.dirty()}if(Y.minLength!==null){if($.data.length<Y.minLength.value)b($,{code:Z.too_small,minimum:Y.minLength.value,type:"array",inclusive:!0,exact:!1,message:Y.minLength.message}),X.dirty()}if(Y.maxLength!==null){if($.data.length>Y.maxLength.value)b($,{code:Z.too_big,maximum:Y.maxLength.value,type:"array",inclusive:!0,exact:!1,message:Y.maxLength.message}),X.dirty()}if($.common.async)return Promise.all([...$.data].map((G,H)=>{return Y.type._parseAsync(new DW($,G,$.path,H))})).then((G)=>{return S1.mergeArray(X,G)});let J=[...$.data].map((G,H)=>{return Y.type._parseSync(new DW($,G,$.path,H))});return S1.mergeArray(X,J)}get element(){return this._def.type}min(W,$){return new fW({...this._def,minLength:{value:W,message:l.toString($)}})}max(W,$){return new fW({...this._def,maxLength:{value:W,message:l.toString($)}})}length(W,$){return new fW({...this._def,exactLength:{value:W,message:l.toString($)}})}nonempty(W){return this.min(1,W)}}fW.create=(W,$)=>{return new fW({type:W,minLength:null,maxLength:null,exactLength:null,typeName:S.ZodArray,...G0($)})};function x8(W){if(W instanceof l0){let $={};for(let X in W.shape){let Y=W.shape[X];$[X]=XW.create(x8(Y))}return new l0({...W._def,shape:()=>$})}else if(W instanceof fW)return new fW({...W._def,type:x8(W.element)});else if(W instanceof XW)return XW.create(x8(W.unwrap()));else if(W instanceof E2)return E2.create(x8(W.unwrap()));else if(W instanceof iW)return iW.create(W.items.map(($)=>x8($)));else return W}class l0 extends T0{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let W=this._def.shape(),$=K0.objectKeys(W);return this._cached={shape:W,keys:$}}_parse(W){if(this._getType(W)!==p.object){let z=this._getOrReturnCtx(W);return b(z,{code:Z.invalid_type,expected:p.object,received:z.parsedType}),W0}let{status:X,ctx:Y}=this._processInputParams(W),{shape:J,keys:G}=this._getCached(),H=[];if(!(this._def.catchall instanceof oW&&this._def.unknownKeys==="strip")){for(let z in Y.data)if(!G.includes(z))H.push(z)}let Q=[];for(let z of G){let F=J[z],T=Y.data[z];Q.push({key:{status:"valid",value:z},value:F._parse(new DW(Y,T,Y.path,z)),alwaysSet:z in Y.data})}if(this._def.catchall instanceof oW){let z=this._def.unknownKeys;if(z==="passthrough")for(let F of H)Q.push({key:{status:"valid",value:F},value:{status:"valid",value:Y.data[F]}});else if(z==="strict"){if(H.length>0)b(Y,{code:Z.unrecognized_keys,keys:H}),X.dirty()}else if(z==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let z=this._def.catchall;for(let F of H){let T=Y.data[F];Q.push({key:{status:"valid",value:F},value:z._parse(new DW(Y,T,Y.path,F)),alwaysSet:F in Y.data})}}if(Y.common.async)return Promise.resolve().then(async()=>{let z=[];for(let F of Q){let T=await F.key,U=await F.value;z.push({key:T,value:U,alwaysSet:F.alwaysSet})}return z}).then((z)=>{return S1.mergeObjectSync(X,z)});else return S1.mergeObjectSync(X,Q)}get shape(){return this._def.shape()}strict(W){return l.errToObj,new l0({...this._def,unknownKeys:"strict",...W!==void 0?{errorMap:($,X)=>{var Y,J,G,H;let Q=(G=(J=(Y=this._def).errorMap)===null||J===void 0?void 0:J.call(Y,$,X).message)!==null&&G!==void 0?G:X.defaultError;if($.code==="unrecognized_keys")return{message:(H=l.errToObj(W).message)!==null&&H!==void 0?H:Q};return{message:Q}}}:{}})}strip(){return new l0({...this._def,unknownKeys:"strip"})}passthrough(){return new l0({...this._def,unknownKeys:"passthrough"})}extend(W){return new l0({...this._def,shape:()=>({...this._def.shape(),...W})})}merge(W){return new l0({unknownKeys:W._def.unknownKeys,catchall:W._def.catchall,shape:()=>({...this._def.shape(),...W._def.shape()}),typeName:S.ZodObject})}setKey(W,$){return this.augment({[W]:$})}catchall(W){return new l0({...this._def,catchall:W})}pick(W){let $={};return K0.objectKeys(W).forEach((X)=>{if(W[X]&&this.shape[X])$[X]=this.shape[X]}),new l0({...this._def,shape:()=>$})}omit(W){let $={};return K0.objectKeys(this.shape).forEach((X)=>{if(!W[X])$[X]=this.shape[X]}),new l0({...this._def,shape:()=>$})}deepPartial(){return x8(this)}partial(W){let $={};return K0.objectKeys(this.shape).forEach((X)=>{let Y=this.shape[X];if(W&&!W[X])$[X]=Y;else $[X]=Y.optional()}),new l0({...this._def,shape:()=>$})}required(W){let $={};return K0.objectKeys(this.shape).forEach((X)=>{if(W&&!W[X])$[X]=this.shape[X];else{let J=this.shape[X];while(J instanceof XW)J=J._def.innerType;$[X]=J}}),new l0({...this._def,shape:()=>$})}keyof(){return dG(K0.objectKeys(this.shape))}}l0.create=(W,$)=>{return new l0({shape:()=>W,unknownKeys:"strip",catchall:oW.create(),typeName:S.ZodObject,...G0($)})};l0.strictCreate=(W,$)=>{return new l0({shape:()=>W,unknownKeys:"strict",catchall:oW.create(),typeName:S.ZodObject,...G0($)})};l0.lazycreate=(W,$)=>{return new l0({shape:W,unknownKeys:"strip",catchall:oW.create(),typeName:S.ZodObject,...G0($)})};class X4 extends T0{_parse(W){let{ctx:$}=this._processInputParams(W),X=this._def.options;function Y(J){for(let H of J)if(H.result.status==="valid")return H.result;for(let H of J)if(H.result.status==="dirty")return $.common.issues.push(...H.ctx.common.issues),H.result;let G=J.map((H)=>new $W(H.ctx.common.issues));return b($,{code:Z.invalid_union,unionErrors:G}),W0}if($.common.async)return Promise.all(X.map(async(J)=>{let G={...$,common:{...$.common,issues:[]},parent:null};return{result:await J._parseAsync({data:$.data,path:$.path,parent:G}),ctx:G}})).then(Y);else{let J=void 0,G=[];for(let Q of X){let z={...$,common:{...$.common,issues:[]},parent:null},F=Q._parseSync({data:$.data,path:$.path,parent:z});if(F.status==="valid")return F;else if(F.status==="dirty"&&!J)J={result:F,ctx:z};if(z.common.issues.length)G.push(z.common.issues)}if(J)return $.common.issues.push(...J.ctx.common.issues),J.result;let H=G.map((Q)=>new $W(Q));return b($,{code:Z.invalid_union,unionErrors:H}),W0}}get options(){return this._def.options}}X4.create=(W,$)=>{return new X4({options:W,typeName:S.ZodUnion,...G0($)})};var dW=(W)=>{if(W instanceof J4)return dW(W.schema);else if(W instanceof PW)return dW(W.innerType());else if(W instanceof G4)return[W.value];else if(W instanceof l2)return W.options;else if(W instanceof H4)return K0.objectValues(W.enum);else if(W instanceof Q4)return dW(W._def.innerType);else if(W instanceof W4)return[void 0];else if(W instanceof $4)return[null];else if(W instanceof XW)return[void 0,...dW(W.unwrap())];else if(W instanceof E2)return[null,...dW(W.unwrap())];else if(W instanceof b9)return dW(W.unwrap());else if(W instanceof F4)return dW(W.unwrap());else if(W instanceof z4)return dW(W._def.innerType);else return[]};class v9 extends T0{_parse(W){let{ctx:$}=this._processInputParams(W);if($.parsedType!==p.object)return b($,{code:Z.invalid_type,expected:p.object,received:$.parsedType}),W0;let X=this.discriminator,Y=$.data[X],J=this.optionsMap.get(Y);if(!J)return b($,{code:Z.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[X]}),W0;if($.common.async)return J._parseAsync({data:$.data,path:$.path,parent:$});else return J._parseSync({data:$.data,path:$.path,parent:$})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(W,$,X){let Y=new Map;for(let J of $){let G=dW(J.shape[W]);if(!G.length)throw new Error(`A discriminator value for key \`${W}\` could not be extracted from all schema options`);for(let H of G){if(Y.has(H))throw new Error(`Discriminator property ${String(W)} has duplicate value ${String(H)}`);Y.set(H,J)}}return new v9({typeName:S.ZodDiscriminatedUnion,discriminator:W,options:$,optionsMap:Y,...G0(X)})}}function x9(W,$){let X=A2(W),Y=A2($);if(W===$)return{valid:!0,data:W};else if(X===p.object&&Y===p.object){let J=K0.objectKeys($),G=K0.objectKeys(W).filter((Q)=>J.indexOf(Q)!==-1),H={...W,...$};for(let Q of G){let z=x9(W[Q],$[Q]);if(!z.valid)return{valid:!1};H[Q]=z.data}return{valid:!0,data:H}}else if(X===p.array&&Y===p.array){if(W.length!==$.length)return{valid:!1};let J=[];for(let G=0;G<W.length;G++){let H=W[G],Q=$[G],z=x9(H,Q);if(!z.valid)return{valid:!1};J.push(z.data)}return{valid:!0,data:J}}else if(X===p.date&&Y===p.date&&+W===+$)return{valid:!0,data:W};else return{valid:!1}}class Y4 extends T0{_parse(W){let{status:$,ctx:X}=this._processInputParams(W),Y=(J,G)=>{if(hG(J)||hG(G))return W0;let H=x9(J.value,G.value);if(!H.valid)return b(X,{code:Z.invalid_intersection_types}),W0;if(gG(J)||gG(G))$.dirty();return{status:$.value,value:H.data}};if(X.common.async)return Promise.all([this._def.left._parseAsync({data:X.data,path:X.path,parent:X}),this._def.right._parseAsync({data:X.data,path:X.path,parent:X})]).then(([J,G])=>Y(J,G));else return Y(this._def.left._parseSync({data:X.data,path:X.path,parent:X}),this._def.right._parseSync({data:X.data,path:X.path,parent:X}))}}Y4.create=(W,$,X)=>{return new Y4({left:W,right:$,typeName:S.ZodIntersection,...G0(X)})};class iW extends T0{_parse(W){let{status:$,ctx:X}=this._processInputParams(W);if(X.parsedType!==p.array)return b(X,{code:Z.invalid_type,expected:p.array,received:X.parsedType}),W0;if(X.data.length<this._def.items.length)return b(X,{code:Z.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),W0;if(!this._def.rest&&X.data.length>this._def.items.length)b(X,{code:Z.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let J=[...X.data].map((G,H)=>{let Q=this._def.items[H]||this._def.rest;if(!Q)return null;return Q._parse(new DW(X,G,X.path,H))}).filter((G)=>!!G);if(X.common.async)return Promise.all(J).then((G)=>{return S1.mergeArray($,G)});else return S1.mergeArray($,J)}get items(){return this._def.items}rest(W){return new iW({...this._def,rest:W})}}iW.create=(W,$)=>{if(!Array.isArray(W))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new iW({items:W,typeName:S.ZodTuple,rest:null,...G0($)})};class TX extends T0{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(W){let{status:$,ctx:X}=this._processInputParams(W);if(X.parsedType!==p.object)return b(X,{code:Z.invalid_type,expected:p.object,received:X.parsedType}),W0;let Y=[],J=this._def.keyType,G=this._def.valueType;for(let H in X.data)Y.push({key:J._parse(new DW(X,H,X.path,H)),value:G._parse(new DW(X,X.data[H],X.path,H)),alwaysSet:H in X.data});if(X.common.async)return S1.mergeObjectAsync($,Y);else return S1.mergeObjectSync($,Y)}get element(){return this._def.valueType}static create(W,$,X){if($ instanceof T0)return new TX({keyType:W,valueType:$,typeName:S.ZodRecord,...G0(X)});return new TX({keyType:lW.create(),valueType:W,typeName:S.ZodRecord,...G0($)})}}class UX extends T0{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(W){let{status:$,ctx:X}=this._processInputParams(W);if(X.parsedType!==p.map)return b(X,{code:Z.invalid_type,expected:p.map,received:X.parsedType}),W0;let Y=this._def.keyType,J=this._def.valueType,G=[...X.data.entries()].map(([H,Q],z)=>{return{key:Y._parse(new DW(X,H,X.path,[z,"key"])),value:J._parse(new DW(X,Q,X.path,[z,"value"]))}});if(X.common.async){let H=new Map;return Promise.resolve().then(async()=>{for(let Q of G){let z=await Q.key,F=await Q.value;if(z.status==="aborted"||F.status==="aborted")return W0;if(z.status==="dirty"||F.status==="dirty")$.dirty();H.set(z.value,F.value)}return{status:$.value,value:H}})}else{let H=new Map;for(let Q of G){let{key:z,value:F}=Q;if(z.status==="aborted"||F.status==="aborted")return W0;if(z.status==="dirty"||F.status==="dirty")$.dirty();H.set(z.value,F.value)}return{status:$.value,value:H}}}}UX.create=(W,$,X)=>{return new UX({valueType:$,keyType:W,typeName:S.ZodMap,...G0(X)})};class h8 extends T0{_parse(W){let{status:$,ctx:X}=this._processInputParams(W);if(X.parsedType!==p.set)return b(X,{code:Z.invalid_type,expected:p.set,received:X.parsedType}),W0;let Y=this._def;if(Y.minSize!==null){if(X.data.size<Y.minSize.value)b(X,{code:Z.too_small,minimum:Y.minSize.value,type:"set",inclusive:!0,exact:!1,message:Y.minSize.message}),$.dirty()}if(Y.maxSize!==null){if(X.data.size>Y.maxSize.value)b(X,{code:Z.too_big,maximum:Y.maxSize.value,type:"set",inclusive:!0,exact:!1,message:Y.maxSize.message}),$.dirty()}let J=this._def.valueType;function G(Q){let z=new Set;for(let F of Q){if(F.status==="aborted")return W0;if(F.status==="dirty")$.dirty();z.add(F.value)}return{status:$.value,value:z}}let H=[...X.data.values()].map((Q,z)=>J._parse(new DW(X,Q,X.path,z)));if(X.common.async)return Promise.all(H).then((Q)=>G(Q));else return G(H)}min(W,$){return new h8({...this._def,minSize:{value:W,message:l.toString($)}})}max(W,$){return new h8({...this._def,maxSize:{value:W,message:l.toString($)}})}size(W,$){return this.min(W,$).max(W,$)}nonempty(W){return this.min(1,W)}}h8.create=(W,$)=>{return new h8({valueType:W,minSize:null,maxSize:null,typeName:S.ZodSet,...G0($)})};class a$ extends T0{constructor(){super(...arguments);this.validate=this.implement}_parse(W){let{ctx:$}=this._processInputParams(W);if($.parsedType!==p.function)return b($,{code:Z.invalid_type,expected:p.function,received:$.parsedType}),W0;function X(H,Q){return P9({data:H,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,f9(),s$].filter((z)=>!!z),issueData:{code:Z.invalid_arguments,argumentsError:Q}})}function Y(H,Q){return P9({data:H,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,f9(),s$].filter((z)=>!!z),issueData:{code:Z.invalid_return_type,returnTypeError:Q}})}let J={errorMap:$.common.contextualErrorMap},G=$.data;if(this._def.returns instanceof g8){let H=this;return x1(async function(...Q){let z=new $W([]),F=await H._def.args.parseAsync(Q,J).catch((M)=>{throw z.addIssue(X(Q,M)),z}),T=await Reflect.apply(G,this,F);return await H._def.returns._def.type.parseAsync(T,J).catch((M)=>{throw z.addIssue(Y(T,M)),z})})}else{let H=this;return x1(function(...Q){let z=H._def.args.safeParse(Q,J);if(!z.success)throw new $W([X(Q,z.error)]);let F=Reflect.apply(G,this,z.data),T=H._def.returns.safeParse(F,J);if(!T.success)throw new $W([Y(F,T.error)]);return T.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...W){return new a$({...this._def,args:iW.create(W).rest(d2.create())})}returns(W){return new a$({...this._def,returns:W})}implement(W){return this.parse(W)}strictImplement(W){return this.parse(W)}static create(W,$,X){return new a$({args:W?W:iW.create([]).rest(d2.create()),returns:$||d2.create(),typeName:S.ZodFunction,...G0(X)})}}class J4 extends T0{get schema(){return this._def.getter()}_parse(W){let{ctx:$}=this._processInputParams(W);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}}J4.create=(W,$)=>{return new J4({getter:W,typeName:S.ZodLazy,...G0($)})};class G4 extends T0{_parse(W){if(W.data!==this._def.value){let $=this._getOrReturnCtx(W);return b($,{received:$.data,code:Z.invalid_literal,expected:this._def.value}),W0}return{status:"valid",value:W.data}}get value(){return this._def.value}}G4.create=(W,$)=>{return new G4({value:W,typeName:S.ZodLiteral,...G0($)})};function dG(W,$){return new l2({values:W,typeName:S.ZodEnum,...G0($)})}class l2 extends T0{constructor(){super(...arguments);r$.set(this,void 0)}_parse(W){if(typeof W.data!=="string"){let $=this._getOrReturnCtx(W),X=this._def.values;return b($,{expected:K0.joinValues(X),received:$.parsedType,code:Z.invalid_type}),W0}if(!GX(this,r$,"f"))pG(this,r$,new Set(this._def.values),"f");if(!GX(this,r$,"f").has(W.data)){let $=this._getOrReturnCtx(W),X=this._def.values;return b($,{received:$.data,code:Z.invalid_enum_value,options:X}),W0}return x1(W.data)}get options(){return this._def.values}get enum(){let W={};for(let $ of this._def.values)W[$]=$;return W}get Values(){let W={};for(let $ of this._def.values)W[$]=$;return W}get Enum(){let W={};for(let $ of this._def.values)W[$]=$;return W}extract(W,$=this._def){return l2.create(W,{...this._def,...$})}exclude(W,$=this._def){return l2.create(this.options.filter((X)=>!W.includes(X)),{...this._def,...$})}}r$=new WeakMap;l2.create=dG;class H4 extends T0{constructor(){super(...arguments);t$.set(this,void 0)}_parse(W){let $=K0.getValidEnumValues(this._def.values),X=this._getOrReturnCtx(W);if(X.parsedType!==p.string&&X.parsedType!==p.number){let Y=K0.objectValues($);return b(X,{expected:K0.joinValues(Y),received:X.parsedType,code:Z.invalid_type}),W0}if(!GX(this,t$,"f"))pG(this,t$,new Set(K0.getValidEnumValues(this._def.values)),"f");if(!GX(this,t$,"f").has(W.data)){let Y=K0.objectValues($);return b(X,{received:X.data,code:Z.invalid_enum_value,options:Y}),W0}return x1(W.data)}get enum(){return this._def.values}}t$=new WeakMap;H4.create=(W,$)=>{return new H4({values:W,typeName:S.ZodNativeEnum,...G0($)})};class g8 extends T0{unwrap(){return this._def.type}_parse(W){let{ctx:$}=this._processInputParams(W);if($.parsedType!==p.promise&&$.common.async===!1)return b($,{code:Z.invalid_type,expected:p.promise,received:$.parsedType}),W0;let X=$.parsedType===p.promise?$.data:Promise.resolve($.data);return x1(X.then((Y)=>{return this._def.type.parseAsync(Y,{path:$.path,errorMap:$.common.contextualErrorMap})}))}}g8.create=(W,$)=>{return new g8({type:W,typeName:S.ZodPromise,...G0($)})};class PW extends T0{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===S.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(W){let{status:$,ctx:X}=this._processInputParams(W),Y=this._def.effect||null,J={addIssue:(G)=>{if(b(X,G),G.fatal)$.abort();else $.dirty()},get path(){return X.path}};if(J.addIssue=J.addIssue.bind(J),Y.type==="preprocess"){let G=Y.transform(X.data,J);if(X.common.async)return Promise.resolve(G).then(async(H)=>{if($.value==="aborted")return W0;let Q=await this._def.schema._parseAsync({data:H,path:X.path,parent:X});if(Q.status==="aborted")return W0;if(Q.status==="dirty")return n$(Q.value);if($.value==="dirty")return n$(Q.value);return Q});else{if($.value==="aborted")return W0;let H=this._def.schema._parseSync({data:G,path:X.path,parent:X});if(H.status==="aborted")return W0;if(H.status==="dirty")return n$(H.value);if($.value==="dirty")return n$(H.value);return H}}if(Y.type==="refinement"){let G=(H)=>{let Q=Y.refinement(H,J);if(X.common.async)return Promise.resolve(Q);if(Q instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return H};if(X.common.async===!1){let H=this._def.schema._parseSync({data:X.data,path:X.path,parent:X});if(H.status==="aborted")return W0;if(H.status==="dirty")$.dirty();return G(H.value),{status:$.value,value:H.value}}else return this._def.schema._parseAsync({data:X.data,path:X.path,parent:X}).then((H)=>{if(H.status==="aborted")return W0;if(H.status==="dirty")$.dirty();return G(H.value).then(()=>{return{status:$.value,value:H.value}})})}if(Y.type==="transform")if(X.common.async===!1){let G=this._def.schema._parseSync({data:X.data,path:X.path,parent:X});if(!v8(G))return G;let H=Y.transform(G.value,J);if(H instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:H}}else return this._def.schema._parseAsync({data:X.data,path:X.path,parent:X}).then((G)=>{if(!v8(G))return G;return Promise.resolve(Y.transform(G.value,J)).then((H)=>({status:$.value,value:H}))});K0.assertNever(Y)}}PW.create=(W,$,X)=>{return new PW({schema:W,typeName:S.ZodEffects,effect:$,...G0(X)})};PW.createWithPreprocess=(W,$,X)=>{return new PW({schema:$,effect:{type:"preprocess",transform:W},typeName:S.ZodEffects,...G0(X)})};class XW extends T0{_parse(W){if(this._getType(W)===p.undefined)return x1(void 0);return this._def.innerType._parse(W)}unwrap(){return this._def.innerType}}XW.create=(W,$)=>{return new XW({innerType:W,typeName:S.ZodOptional,...G0($)})};class E2 extends T0{_parse(W){if(this._getType(W)===p.null)return x1(null);return this._def.innerType._parse(W)}unwrap(){return this._def.innerType}}E2.create=(W,$)=>{return new E2({innerType:W,typeName:S.ZodNullable,...G0($)})};class Q4 extends T0{_parse(W){let{ctx:$}=this._processInputParams(W),X=$.data;if($.parsedType===p.undefined)X=this._def.defaultValue();return this._def.innerType._parse({data:X,path:$.path,parent:$})}removeDefault(){return this._def.innerType}}Q4.create=(W,$)=>{return new Q4({innerType:W,typeName:S.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...G0($)})};class z4 extends T0{_parse(W){let{ctx:$}=this._processInputParams(W),X={...$,common:{...$.common,issues:[]}},Y=this._def.innerType._parse({data:X.data,path:X.path,parent:{...X}});if(JX(Y))return Y.then((J)=>{return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new $W(X.common.issues)},input:X.data})}});else return{status:"valid",value:Y.status==="valid"?Y.value:this._def.catchValue({get error(){return new $W(X.common.issues)},input:X.data})}}removeCatch(){return this._def.innerType}}z4.create=(W,$)=>{return new z4({innerType:W,typeName:S.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...G0($)})};class wX extends T0{_parse(W){if(this._getType(W)!==p.nan){let X=this._getOrReturnCtx(W);return b(X,{code:Z.invalid_type,expected:p.nan,received:X.parsedType}),W0}return{status:"valid",value:W.data}}}wX.create=(W)=>{return new wX({typeName:S.ZodNaN,...G0(W)})};var LZ=Symbol("zod_brand");class b9 extends T0{_parse(W){let{ctx:$}=this._processInputParams(W),X=$.data;return this._def.type._parse({data:X,path:$.path,parent:$})}unwrap(){return this._def.type}}class MX extends T0{_parse(W){let{status:$,ctx:X}=this._processInputParams(W);if(X.common.async)return(async()=>{let J=await this._def.in._parseAsync({data:X.data,path:X.path,parent:X});if(J.status==="aborted")return W0;if(J.status==="dirty")return $.dirty(),n$(J.value);else return this._def.out._parseAsync({data:J.value,path:X.path,parent:X})})();else{let Y=this._def.in._parseSync({data:X.data,path:X.path,parent:X});if(Y.status==="aborted")return W0;if(Y.status==="dirty")return $.dirty(),{status:"dirty",value:Y.value};else return this._def.out._parseSync({data:Y.value,path:X.path,parent:X})}}static create(W,$){return new MX({in:W,out:$,typeName:S.ZodPipeline})}}class F4 extends T0{_parse(W){let $=this._def.innerType._parse(W),X=(Y)=>{if(v8(Y))Y.value=Object.freeze(Y.value);return Y};return JX($)?$.then((Y)=>X(Y)):X($)}unwrap(){return this._def.innerType}}F4.create=(W,$)=>{return new F4({innerType:W,typeName:S.ZodReadonly,...G0($)})};var AZ={object:l0.lazycreate},S;(function(W){W.ZodString="ZodString",W.ZodNumber="ZodNumber",W.ZodNaN="ZodNaN",W.ZodBigInt="ZodBigInt",W.ZodBoolean="ZodBoolean",W.ZodDate="ZodDate",W.ZodSymbol="ZodSymbol",W.ZodUndefined="ZodUndefined",W.ZodNull="ZodNull",W.ZodAny="ZodAny",W.ZodUnknown="ZodUnknown",W.ZodNever="ZodNever",W.ZodVoid="ZodVoid",W.ZodArray="ZodArray",W.ZodObject="ZodObject",W.ZodUnion="ZodUnion",W.ZodDiscriminatedUnion="ZodDiscriminatedUnion",W.ZodIntersection="ZodIntersection",W.ZodTuple="ZodTuple",W.ZodRecord="ZodRecord",W.ZodMap="ZodMap",W.ZodSet="ZodSet",W.ZodFunction="ZodFunction",W.ZodLazy="ZodLazy",W.ZodLiteral="ZodLiteral",W.ZodEnum="ZodEnum",W.ZodEffects="ZodEffects",W.ZodNativeEnum="ZodNativeEnum",W.ZodOptional="ZodOptional",W.ZodNullable="ZodNullable",W.ZodDefault="ZodDefault",W.ZodCatch="ZodCatch",W.ZodPromise="ZodPromise",W.ZodBranded="ZodBranded",W.ZodPipeline="ZodPipeline",W.ZodReadonly="ZodReadonly"})(S||(S={}));var EZ=lW.create,NZ=b8.create,RZ=wX.create,BZ=y8.create,ZZ=HX.create,SZ=e$.create,qZ=QX.create,CZ=W4.create,kZ=$4.create,IZ=zX.create,jZ=d2.create,fZ=oW.create,PZ=FX.create,xZ=fW.create,vZ=l0.create,bZ=l0.strictCreate,yZ=X4.create,hZ=v9.create,gZ=Y4.create,mZ=iW.create,pZ=TX.create,uZ=UX.create,cZ=h8.create,dZ=a$.create,lZ=J4.create,oZ=G4.create,iZ=l2.create,nZ=H4.create,rZ=g8.create,tZ=PW.create,aZ=XW.create,sZ=E2.create,eZ=PW.createWithPreprocess,WS=MX.create;function lG(){return{}}function oG(W,$){let X={type:"array"};if(W.type?._def&&W.type?._def?.typeName!==S.ZodAny)X.items=s(W.type._def,{...$,currentPath:[...$.currentPath,"items"]});if(W.minLength)O0(X,"minItems",W.minLength.value,W.minLength.message,$);if(W.maxLength)O0(X,"maxItems",W.maxLength.value,W.maxLength.message,$);if(W.exactLength)O0(X,"minItems",W.exactLength.value,W.exactLength.message,$),O0(X,"maxItems",W.exactLength.value,W.exactLength.message,$);return X}function iG(W,$){let X={type:"integer",format:"int64"};if(!W.checks)return X;for(let Y of W.checks)switch(Y.kind){case"min":if($.target==="jsonSchema7")if(Y.inclusive)O0(X,"minimum",Y.value,Y.message,$);else O0(X,"exclusiveMinimum",Y.value,Y.message,$);else{if(!Y.inclusive)X.exclusiveMinimum=!0;O0(X,"minimum",Y.value,Y.message,$)}break;case"max":if($.target==="jsonSchema7")if(Y.inclusive)O0(X,"maximum",Y.value,Y.message,$);else O0(X,"exclusiveMaximum",Y.value,Y.message,$);else{if(!Y.inclusive)X.exclusiveMaximum=!0;O0(X,"maximum",Y.value,Y.message,$)}break;case"multipleOf":O0(X,"multipleOf",Y.value,Y.message,$);break}return X}function nG(){return{type:"boolean"}}function _X(W,$){return s(W.type._def,$)}var rG=(W,$)=>{return s(W.innerType._def,$)};function y9(W,$,X){let Y=X??$.dateStrategy;if(Array.isArray(Y))return{anyOf:Y.map((J,G)=>y9(W,$,J))};switch(Y){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return XD(W,$)}}var XD=(W,$)=>{let X={type:"integer",format:"unix-time"};if($.target==="openApi3")return X;for(let Y of W.checks)switch(Y.kind){case"min":O0(X,"minimum",Y.value,Y.message,$);break;case"max":O0(X,"maximum",Y.value,Y.message,$);break}return X};function tG(W,$){return{...s(W.innerType._def,$),default:W.defaultValue()}}function aG(W,$){return $.effectStrategy==="input"?s(W.schema._def,$):{}}function sG(W){return{type:"string",enum:Array.from(W.values)}}var YD=(W)=>{if("type"in W&&W.type==="string")return!1;return"allOf"in W};function eG(W,$){let X=[s(W.left._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),s(W.right._def,{...$,currentPath:[...$.currentPath,"allOf","1"]})].filter((G)=>!!G),Y=$.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,J=[];return X.forEach((G)=>{if(YD(G)){if(J.push(...G.allOf),G.unevaluatedProperties===void 0)Y=void 0}else{let H=G;if("additionalProperties"in G&&G.additionalProperties===!1){let{additionalProperties:Q,...z}=G;H=z}else Y=void 0;J.push(H)}}),J.length?{allOf:J,...Y}:void 0}function W3(W,$){let X=typeof W.value;if(X!=="bigint"&&X!=="number"&&X!=="boolean"&&X!=="string")return{type:Array.isArray(W.value)?"array":"object"};if($.target==="openApi3")return{type:X==="bigint"?"integer":X,enum:[W.value]};return{type:X==="bigint"?"integer":X,const:W.value}}var h9=void 0,OW={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(h9===void 0)h9=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return h9},uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function DX(W,$){let X={type:"string"};if(W.checks)for(let Y of W.checks)switch(Y.kind){case"min":O0(X,"minLength",typeof X.minLength==="number"?Math.max(X.minLength,Y.value):Y.value,Y.message,$);break;case"max":O0(X,"maxLength",typeof X.maxLength==="number"?Math.min(X.maxLength,Y.value):Y.value,Y.message,$);break;case"email":switch($.emailStrategy){case"format:email":VW(X,"email",Y.message,$);break;case"format:idn-email":VW(X,"idn-email",Y.message,$);break;case"pattern:zod":q1(X,OW.email,Y.message,$);break}break;case"url":VW(X,"uri",Y.message,$);break;case"uuid":VW(X,"uuid",Y.message,$);break;case"regex":q1(X,Y.regex,Y.message,$);break;case"cuid":q1(X,OW.cuid,Y.message,$);break;case"cuid2":q1(X,OW.cuid2,Y.message,$);break;case"startsWith":q1(X,RegExp(`^${g9(Y.value,$)}`),Y.message,$);break;case"endsWith":q1(X,RegExp(`${g9(Y.value,$)}$`),Y.message,$);break;case"datetime":VW(X,"date-time",Y.message,$);break;case"date":VW(X,"date",Y.message,$);break;case"time":VW(X,"time",Y.message,$);break;case"duration":VW(X,"duration",Y.message,$);break;case"length":O0(X,"minLength",typeof X.minLength==="number"?Math.max(X.minLength,Y.value):Y.value,Y.message,$),O0(X,"maxLength",typeof X.maxLength==="number"?Math.min(X.maxLength,Y.value):Y.value,Y.message,$);break;case"includes":{q1(X,RegExp(g9(Y.value,$)),Y.message,$);break}case"ip":{if(Y.version!=="v6")VW(X,"ipv4",Y.message,$);if(Y.version!=="v4")VW(X,"ipv6",Y.message,$);break}case"base64url":q1(X,OW.base64url,Y.message,$);break;case"jwt":q1(X,OW.jwt,Y.message,$);break;case"cidr":{if(Y.version!=="v6")q1(X,OW.ipv4Cidr,Y.message,$);if(Y.version!=="v4")q1(X,OW.ipv6Cidr,Y.message,$);break}case"emoji":q1(X,OW.emoji(),Y.message,$);break;case"ulid":{q1(X,OW.ulid,Y.message,$);break}case"base64":{switch($.base64Strategy){case"format:binary":{VW(X,"binary",Y.message,$);break}case"contentEncoding:base64":{O0(X,"contentEncoding","base64",Y.message,$);break}case"pattern:zod":{q1(X,OW.base64,Y.message,$);break}}break}case"nanoid":q1(X,OW.nanoid,Y.message,$);case"toLowerCase":case"toUpperCase":case"trim":break;default:((J)=>{})(Y)}return X}function g9(W,$){return $.patternStrategy==="escape"?GD(W):W}var JD=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function GD(W){let $="";for(let X=0;X<W.length;X++){if(!JD.has(W[X]))$+="\\";$+=W[X]}return $}function VW(W,$,X,Y){if(W.format||W.anyOf?.some((J)=>J.format)){if(!W.anyOf)W.anyOf=[];if(W.format){if(W.anyOf.push({format:W.format,...W.errorMessage&&Y.errorMessages&&{errorMessage:{format:W.errorMessage.format}}}),delete W.format,W.errorMessage){if(delete W.errorMessage.format,Object.keys(W.errorMessage).length===0)delete W.errorMessage}}W.anyOf.push({format:$,...X&&Y.errorMessages&&{errorMessage:{format:X}}})}else O0(W,"format",$,X,Y)}function q1(W,$,X,Y){if(W.pattern||W.allOf?.some((J)=>J.pattern)){if(!W.allOf)W.allOf=[];if(W.pattern){if(W.allOf.push({pattern:W.pattern,...W.errorMessage&&Y.errorMessages&&{errorMessage:{pattern:W.errorMessage.pattern}}}),delete W.pattern,W.errorMessage){if(delete W.errorMessage.pattern,Object.keys(W.errorMessage).length===0)delete W.errorMessage}}W.allOf.push({pattern:$3($,Y),...X&&Y.errorMessages&&{errorMessage:{pattern:X}}})}else O0(W,"pattern",$3($,Y),X,Y)}function $3(W,$){if(!$.applyRegexFlags||!W.flags)return W.source;let X={i:W.flags.includes("i"),m:W.flags.includes("m"),s:W.flags.includes("s")},Y=X.i?W.source.toLowerCase():W.source,J="",G=!1,H=!1,Q=!1;for(let z=0;z<Y.length;z++){if(G){J+=Y[z],G=!1;continue}if(X.i){if(H){if(Y[z].match(/[a-z]/)){if(Q)J+=Y[z],J+=`${Y[z-2]}-${Y[z]}`.toUpperCase(),Q=!1;else if(Y[z+1]==="-"&&Y[z+2]?.match(/[a-z]/))J+=Y[z],Q=!0;else J+=`${Y[z]}${Y[z].toUpperCase()}`;continue}}else if(Y[z].match(/[a-z]/)){J+=`[${Y[z]}${Y[z].toUpperCase()}]`;continue}}if(X.m){if(Y[z]==="^"){J+=`(^|(?<=[\r
6
6
  ]))`;continue}else if(Y[z]==="$"){J+=`($|(?=[\r
7
7
  ]))`;continue}}if(X.s&&Y[z]==="."){J+=H?`${Y[z]}\r
8
8
  `:`[${Y[z]}\r
9
- ]`;continue}if(J+=Y[z],Y[z]==="\\")G=!0;else if(H&&Y[z]==="]")H=!1;else if(!H&&Y[z]==="[")H=!0}try{new RegExp(J)}catch{return console.warn(`Could not convert regex pattern at ${$.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),W.source}return J}function VX(W,$){if($.target==="openAi")console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");if($.target==="openApi3"&&W.keyType?._def.typeName===S.ZodEnum)return{type:"object",required:W.keyType._def.values,properties:W.keyType._def.values.reduce((Y,J)=>({...Y,[J]:s(W.valueType._def,{...$,currentPath:[...$.currentPath,"properties",J]})??{}}),{}),additionalProperties:$.rejectedAdditionalProperties};let X={type:"object",additionalProperties:s(W.valueType._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??$.allowedAdditionalProperties};if($.target==="openApi3")return X;if(W.keyType?._def.typeName===S.ZodString&&W.keyType._def.checks?.length){let{type:Y,...J}=DX(W.keyType._def,$);return{...X,propertyNames:J}}else if(W.keyType?._def.typeName===S.ZodEnum)return{...X,propertyNames:{enum:W.keyType._def.values}};else if(W.keyType?._def.typeName===S.ZodBranded&&W.keyType._def.type._def.typeName===S.ZodString&&W.keyType._def.type._def.checks?.length){let{type:Y,...J}=_X(W.keyType._def,$);return{...X,propertyNames:J}}return X}function X3(W,$){if($.mapStrategy==="record")return VX(W,$);let X=s(W.keyType._def,{...$,currentPath:[...$.currentPath,"items","items","0"]})||{},Y=s(W.valueType._def,{...$,currentPath:[...$.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[X,Y],minItems:2,maxItems:2}}}function Y3(W){let $=W.values,Y=Object.keys(W.values).filter((G)=>{return typeof $[$[G]]!=="number"}).map((G)=>$[G]),J=Array.from(new Set(Y.map((G)=>typeof G)));return{type:J.length===1?J[0]==="string"?"string":"number":["string","number"],enum:Y}}function J3(){return{not:{}}}function G3(W){return W.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var T4={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function Q3(W,$){if($.target==="openApi3")return H3(W,$);let X=W.options instanceof Map?Array.from(W.options.values()):W.options;if(X.every((Y)=>(Y._def.typeName in T4)&&(!Y._def.checks||!Y._def.checks.length))){let Y=X.reduce((J,G)=>{let H=T4[G._def.typeName];return H&&!J.includes(H)?[...J,H]:J},[]);return{type:Y.length>1?Y:Y[0]}}else if(X.every((Y)=>Y._def.typeName==="ZodLiteral"&&!Y.description)){let Y=X.reduce((J,G)=>{let H=typeof G._def.value;switch(H){case"string":case"number":case"boolean":return[...J,H];case"bigint":return[...J,"integer"];case"object":if(G._def.value===null)return[...J,"null"];case"symbol":case"undefined":case"function":default:return J}},[]);if(Y.length===X.length){let J=Y.filter((G,H,Q)=>Q.indexOf(G)===H);return{type:J.length>1?J:J[0],enum:X.reduce((G,H)=>{return G.includes(H._def.value)?G:[...G,H._def.value]},[])}}}else if(X.every((Y)=>Y._def.typeName==="ZodEnum"))return{type:"string",enum:X.reduce((Y,J)=>[...Y,...J._def.values.filter((G)=>!Y.includes(G))],[])};return H3(W,$)}var H3=(W,$)=>{let X=(W.options instanceof Map?Array.from(W.options.values()):W.options).map((Y,J)=>s(Y._def,{...$,currentPath:[...$.currentPath,"anyOf",`${J}`]})).filter((Y)=>!!Y&&(!$.strictUnions||typeof Y==="object"&&Object.keys(Y).length>0));return X.length?{anyOf:X}:void 0};function z3(W,$){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(W.innerType._def.typeName)&&(!W.innerType._def.checks||!W.innerType._def.checks.length)){if($.target==="openApi3")return{type:T4[W.innerType._def.typeName],nullable:!0};return{type:[T4[W.innerType._def.typeName],"null"]}}if($.target==="openApi3"){let Y=s(W.innerType._def,{...$,currentPath:[...$.currentPath]});if(Y&&"$ref"in Y)return{allOf:[Y],nullable:!0};return Y&&{...Y,nullable:!0}}let X=s(W.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","0"]});return X&&{anyOf:[X,{type:"null"}]}}function F3(W,$){let X={type:"number"};if(!W.checks)return X;for(let Y of W.checks)switch(Y.kind){case"int":X.type="integer",I9(X,"type",Y.message,$);break;case"min":if($.target==="jsonSchema7")if(Y.inclusive)V0(X,"minimum",Y.value,Y.message,$);else V0(X,"exclusiveMinimum",Y.value,Y.message,$);else{if(!Y.inclusive)X.exclusiveMinimum=!0;V0(X,"minimum",Y.value,Y.message,$)}break;case"max":if($.target==="jsonSchema7")if(Y.inclusive)V0(X,"maximum",Y.value,Y.message,$);else V0(X,"exclusiveMaximum",Y.value,Y.message,$);else{if(!Y.inclusive)X.exclusiveMaximum=!0;V0(X,"maximum",Y.value,Y.message,$)}break;case"multipleOf":V0(X,"multipleOf",Y.value,Y.message,$);break}return X}function T3(W,$){let X=$.target==="openAi",Y={type:"object",properties:{}},J=[],G=W.shape();for(let Q in G){let z=G[Q];if(z===void 0||z._def===void 0)continue;let F=QD(z);if(F&&X){if(z instanceof XW)z=z._def.innerType;if(!z.isNullable())z=z.nullable();F=!1}let T=s(z._def,{...$,currentPath:[...$.currentPath,"properties",Q],propertyPath:[...$.currentPath,"properties",Q]});if(T===void 0)continue;if(Y.properties[Q]=T,!F)J.push(Q)}if(J.length)Y.required=J;let H=HD(W,$);if(H!==void 0)Y.additionalProperties=H;return Y}function HD(W,$){if(W.catchall._def.typeName!=="ZodNever")return s(W.catchall._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]});switch(W.unknownKeys){case"passthrough":return $.allowedAdditionalProperties;case"strict":return $.rejectedAdditionalProperties;case"strip":return $.removeAdditionalStrategy==="strict"?$.allowedAdditionalProperties:$.rejectedAdditionalProperties}}function QD(W){try{return W.isOptional()}catch{return!0}}var U3=(W,$)=>{if($.currentPath.toString()===$.propertyPath?.toString())return s(W.innerType._def,$);let X=s(W.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","1"]});return X?{anyOf:[{not:{}},X]}:{}};var w3=(W,$)=>{if($.pipeStrategy==="input")return s(W.in._def,$);else if($.pipeStrategy==="output")return s(W.out._def,$);let X=s(W.in._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),Y=s(W.out._def,{...$,currentPath:[...$.currentPath,"allOf",X?"1":"0"]});return{allOf:[X,Y].filter((J)=>J!==void 0)}};function M3(W,$){return s(W.type._def,$)}function _3(W,$){let Y={type:"array",uniqueItems:!0,items:s(W.valueType._def,{...$,currentPath:[...$.currentPath,"items"]})};if(W.minSize)V0(Y,"minItems",W.minSize.value,W.minSize.message,$);if(W.maxSize)V0(Y,"maxItems",W.maxSize.value,W.maxSize.message,$);return Y}function D3(W,$){if(W.rest)return{type:"array",minItems:W.items.length,items:W.items.map((X,Y)=>s(X._def,{...$,currentPath:[...$.currentPath,"items",`${Y}`]})).reduce((X,Y)=>Y===void 0?X:[...X,Y],[]),additionalItems:s(W.rest._def,{...$,currentPath:[...$.currentPath,"additionalItems"]})};else return{type:"array",minItems:W.items.length,maxItems:W.items.length,items:W.items.map((X,Y)=>s(X._def,{...$,currentPath:[...$.currentPath,"items",`${Y}`]})).reduce((X,Y)=>Y===void 0?X:[...X,Y],[])}}function V3(){return{not:{}}}function O3(){return{}}var K3=(W,$)=>{return s(W.innerType._def,$)};var L3=(W,$,X)=>{switch($){case S.ZodString:return DX(W,X);case S.ZodNumber:return F3(W,X);case S.ZodObject:return T3(W,X);case S.ZodBigInt:return iG(W,X);case S.ZodBoolean:return nG();case S.ZodDate:return y9(W,X);case S.ZodUndefined:return V3();case S.ZodNull:return G3(X);case S.ZodArray:return oG(W,X);case S.ZodUnion:case S.ZodDiscriminatedUnion:return Q3(W,X);case S.ZodIntersection:return eG(W,X);case S.ZodTuple:return D3(W,X);case S.ZodRecord:return VX(W,X);case S.ZodLiteral:return W3(W,X);case S.ZodEnum:return sG(W);case S.ZodNativeEnum:return Y3(W);case S.ZodNullable:return z3(W,X);case S.ZodOptional:return U3(W,X);case S.ZodMap:return X3(W,X);case S.ZodSet:return _3(W,X);case S.ZodLazy:return()=>W.getter()._def;case S.ZodPromise:return M3(W,X);case S.ZodNaN:case S.ZodNever:return J3();case S.ZodEffects:return aG(W,X);case S.ZodAny:return lG();case S.ZodUnknown:return O3();case S.ZodDefault:return tG(W,X);case S.ZodBranded:return _X(W,X);case S.ZodReadonly:return K3(W,X);case S.ZodCatch:return rG(W,X);case S.ZodPipeline:return w3(W,X);case S.ZodFunction:case S.ZodVoid:case S.ZodSymbol:return;default:return((Y)=>{return})($)}};function s(W,$,X=!1){let Y=$.seen.get(W);if($.override){let Q=$.override?.(W,$,Y,X);if(Q!==xG)return Q}if(Y&&!X){let Q=zD(Y,$);if(Q!==void 0)return Q}let J={def:W,path:$.currentPath,jsonSchema:void 0};$.seen.set(W,J);let G=L3(W,W.typeName,$),H=typeof G==="function"?s(G(),$):G;if(H)TD(W,$,H);if($.postProcess){let Q=$.postProcess(H,W,$);return J.jsonSchema=H,Q}return J.jsonSchema=H,H}var zD=(W,$)=>{switch($.$refStrategy){case"root":return{$ref:W.path.join("/")};case"relative":return{$ref:FD($.currentPath,W.path)};case"none":case"seen":{if(W.path.length<$.currentPath.length&&W.path.every((X,Y)=>$.currentPath[Y]===X))return console.warn(`Recursive reference detected at ${$.currentPath.join("/")}! Defaulting to any`),{};return $.$refStrategy==="seen"?{}:void 0}}},FD=(W,$)=>{let X=0;for(;X<W.length&&X<$.length;X++)if(W[X]!==$[X])break;return[(W.length-X).toString(),...$.slice(X)].join("/")},TD=(W,$,X)=>{if(W.description){if(X.description=W.description,$.markdownDescription)X.markdownDescription=W.description}return X};var A3=(W,$)=>{let X=bG($),Y=typeof $==="object"&&$.definitions?Object.entries($.definitions).reduce((z,[F,T])=>({...z,[F]:s(T._def,{...X,currentPath:[...X.basePath,X.definitionPath,F]},!0)??{}}),{}):void 0,J=typeof $==="string"?$:$?.nameStrategy==="title"?void 0:$?.name,G=s(W._def,J===void 0?X:{...X,currentPath:[...X.basePath,X.definitionPath,J]},!1)??{},H=typeof $==="object"&&$.name!==void 0&&$.nameStrategy==="title"?$.name:void 0;if(H!==void 0)G.title=H;let Q=J===void 0?Y?{...G,[X.definitionPath]:Y}:G:{$ref:[...X.$refStrategy==="relative"?[]:X.basePath,X.definitionPath,J].join("/"),[X.definitionPath]:{...Y,[J]:G}};if(X.target==="jsonSchema7")Q.$schema="http://json-schema.org/draft-07/schema#";else if(X.target==="jsonSchema2019-09"||X.target==="openAi")Q.$schema="https://json-schema.org/draft/2019-09/schema#";if(X.target==="openAi"&&(("anyOf"in Q)||("oneOf"in Q)||("allOf"in Q)||("type"in Q)&&Array.isArray(Q.type)))console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");return Q};var E3=A3;function N3(W,$){return function X({schema:Y,fallback:J,toJsonSchema:G=E3}){let H=G(Y);return async function Q(z,F=3){let T,U=[];while(U.length<F){T=await W(z,H,J,U);let M=await Y["~standard"].validate(T);if("value"in M)return M.value;$?.warn(`safegen failed to generate well-formed data.
9
+ ]`;continue}if(J+=Y[z],Y[z]==="\\")G=!0;else if(H&&Y[z]==="]")H=!1;else if(!H&&Y[z]==="[")H=!0}try{new RegExp(J)}catch{return console.warn(`Could not convert regex pattern at ${$.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),W.source}return J}function OX(W,$){if($.target==="openAi")console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");if($.target==="openApi3"&&W.keyType?._def.typeName===S.ZodEnum)return{type:"object",required:W.keyType._def.values,properties:W.keyType._def.values.reduce((Y,J)=>({...Y,[J]:s(W.valueType._def,{...$,currentPath:[...$.currentPath,"properties",J]})??{}}),{}),additionalProperties:$.rejectedAdditionalProperties};let X={type:"object",additionalProperties:s(W.valueType._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]})??$.allowedAdditionalProperties};if($.target==="openApi3")return X;if(W.keyType?._def.typeName===S.ZodString&&W.keyType._def.checks?.length){let{type:Y,...J}=DX(W.keyType._def,$);return{...X,propertyNames:J}}else if(W.keyType?._def.typeName===S.ZodEnum)return{...X,propertyNames:{enum:W.keyType._def.values}};else if(W.keyType?._def.typeName===S.ZodBranded&&W.keyType._def.type._def.typeName===S.ZodString&&W.keyType._def.type._def.checks?.length){let{type:Y,...J}=_X(W.keyType._def,$);return{...X,propertyNames:J}}return X}function X3(W,$){if($.mapStrategy==="record")return OX(W,$);let X=s(W.keyType._def,{...$,currentPath:[...$.currentPath,"items","items","0"]})||{},Y=s(W.valueType._def,{...$,currentPath:[...$.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[X,Y],minItems:2,maxItems:2}}}function Y3(W){let $=W.values,Y=Object.keys(W.values).filter((G)=>{return typeof $[$[G]]!=="number"}).map((G)=>$[G]),J=Array.from(new Set(Y.map((G)=>typeof G)));return{type:J.length===1?J[0]==="string"?"string":"number":["string","number"],enum:Y}}function J3(){return{not:{}}}function G3(W){return W.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var T4={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function Q3(W,$){if($.target==="openApi3")return H3(W,$);let X=W.options instanceof Map?Array.from(W.options.values()):W.options;if(X.every((Y)=>(Y._def.typeName in T4)&&(!Y._def.checks||!Y._def.checks.length))){let Y=X.reduce((J,G)=>{let H=T4[G._def.typeName];return H&&!J.includes(H)?[...J,H]:J},[]);return{type:Y.length>1?Y:Y[0]}}else if(X.every((Y)=>Y._def.typeName==="ZodLiteral"&&!Y.description)){let Y=X.reduce((J,G)=>{let H=typeof G._def.value;switch(H){case"string":case"number":case"boolean":return[...J,H];case"bigint":return[...J,"integer"];case"object":if(G._def.value===null)return[...J,"null"];case"symbol":case"undefined":case"function":default:return J}},[]);if(Y.length===X.length){let J=Y.filter((G,H,Q)=>Q.indexOf(G)===H);return{type:J.length>1?J:J[0],enum:X.reduce((G,H)=>{return G.includes(H._def.value)?G:[...G,H._def.value]},[])}}}else if(X.every((Y)=>Y._def.typeName==="ZodEnum"))return{type:"string",enum:X.reduce((Y,J)=>[...Y,...J._def.values.filter((G)=>!Y.includes(G))],[])};return H3(W,$)}var H3=(W,$)=>{let X=(W.options instanceof Map?Array.from(W.options.values()):W.options).map((Y,J)=>s(Y._def,{...$,currentPath:[...$.currentPath,"anyOf",`${J}`]})).filter((Y)=>!!Y&&(!$.strictUnions||typeof Y==="object"&&Object.keys(Y).length>0));return X.length?{anyOf:X}:void 0};function z3(W,$){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(W.innerType._def.typeName)&&(!W.innerType._def.checks||!W.innerType._def.checks.length)){if($.target==="openApi3")return{type:T4[W.innerType._def.typeName],nullable:!0};return{type:[T4[W.innerType._def.typeName],"null"]}}if($.target==="openApi3"){let Y=s(W.innerType._def,{...$,currentPath:[...$.currentPath]});if(Y&&"$ref"in Y)return{allOf:[Y],nullable:!0};return Y&&{...Y,nullable:!0}}let X=s(W.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","0"]});return X&&{anyOf:[X,{type:"null"}]}}function F3(W,$){let X={type:"number"};if(!W.checks)return X;for(let Y of W.checks)switch(Y.kind){case"int":X.type="integer",I9(X,"type",Y.message,$);break;case"min":if($.target==="jsonSchema7")if(Y.inclusive)O0(X,"minimum",Y.value,Y.message,$);else O0(X,"exclusiveMinimum",Y.value,Y.message,$);else{if(!Y.inclusive)X.exclusiveMinimum=!0;O0(X,"minimum",Y.value,Y.message,$)}break;case"max":if($.target==="jsonSchema7")if(Y.inclusive)O0(X,"maximum",Y.value,Y.message,$);else O0(X,"exclusiveMaximum",Y.value,Y.message,$);else{if(!Y.inclusive)X.exclusiveMaximum=!0;O0(X,"maximum",Y.value,Y.message,$)}break;case"multipleOf":O0(X,"multipleOf",Y.value,Y.message,$);break}return X}function T3(W,$){let X=$.target==="openAi",Y={type:"object",properties:{}},J=[],G=W.shape();for(let Q in G){let z=G[Q];if(z===void 0||z._def===void 0)continue;let F=QD(z);if(F&&X){if(z instanceof XW)z=z._def.innerType;if(!z.isNullable())z=z.nullable();F=!1}let T=s(z._def,{...$,currentPath:[...$.currentPath,"properties",Q],propertyPath:[...$.currentPath,"properties",Q]});if(T===void 0)continue;if(Y.properties[Q]=T,!F)J.push(Q)}if(J.length)Y.required=J;let H=HD(W,$);if(H!==void 0)Y.additionalProperties=H;return Y}function HD(W,$){if(W.catchall._def.typeName!=="ZodNever")return s(W.catchall._def,{...$,currentPath:[...$.currentPath,"additionalProperties"]});switch(W.unknownKeys){case"passthrough":return $.allowedAdditionalProperties;case"strict":return $.rejectedAdditionalProperties;case"strip":return $.removeAdditionalStrategy==="strict"?$.allowedAdditionalProperties:$.rejectedAdditionalProperties}}function QD(W){try{return W.isOptional()}catch{return!0}}var U3=(W,$)=>{if($.currentPath.toString()===$.propertyPath?.toString())return s(W.innerType._def,$);let X=s(W.innerType._def,{...$,currentPath:[...$.currentPath,"anyOf","1"]});return X?{anyOf:[{not:{}},X]}:{}};var w3=(W,$)=>{if($.pipeStrategy==="input")return s(W.in._def,$);else if($.pipeStrategy==="output")return s(W.out._def,$);let X=s(W.in._def,{...$,currentPath:[...$.currentPath,"allOf","0"]}),Y=s(W.out._def,{...$,currentPath:[...$.currentPath,"allOf",X?"1":"0"]});return{allOf:[X,Y].filter((J)=>J!==void 0)}};function M3(W,$){return s(W.type._def,$)}function _3(W,$){let Y={type:"array",uniqueItems:!0,items:s(W.valueType._def,{...$,currentPath:[...$.currentPath,"items"]})};if(W.minSize)O0(Y,"minItems",W.minSize.value,W.minSize.message,$);if(W.maxSize)O0(Y,"maxItems",W.maxSize.value,W.maxSize.message,$);return Y}function D3(W,$){if(W.rest)return{type:"array",minItems:W.items.length,items:W.items.map((X,Y)=>s(X._def,{...$,currentPath:[...$.currentPath,"items",`${Y}`]})).reduce((X,Y)=>Y===void 0?X:[...X,Y],[]),additionalItems:s(W.rest._def,{...$,currentPath:[...$.currentPath,"additionalItems"]})};else return{type:"array",minItems:W.items.length,maxItems:W.items.length,items:W.items.map((X,Y)=>s(X._def,{...$,currentPath:[...$.currentPath,"items",`${Y}`]})).reduce((X,Y)=>Y===void 0?X:[...X,Y],[])}}function O3(){return{not:{}}}function V3(){return{}}var K3=(W,$)=>{return s(W.innerType._def,$)};var L3=(W,$,X)=>{switch($){case S.ZodString:return DX(W,X);case S.ZodNumber:return F3(W,X);case S.ZodObject:return T3(W,X);case S.ZodBigInt:return iG(W,X);case S.ZodBoolean:return nG();case S.ZodDate:return y9(W,X);case S.ZodUndefined:return O3();case S.ZodNull:return G3(X);case S.ZodArray:return oG(W,X);case S.ZodUnion:case S.ZodDiscriminatedUnion:return Q3(W,X);case S.ZodIntersection:return eG(W,X);case S.ZodTuple:return D3(W,X);case S.ZodRecord:return OX(W,X);case S.ZodLiteral:return W3(W,X);case S.ZodEnum:return sG(W);case S.ZodNativeEnum:return Y3(W);case S.ZodNullable:return z3(W,X);case S.ZodOptional:return U3(W,X);case S.ZodMap:return X3(W,X);case S.ZodSet:return _3(W,X);case S.ZodLazy:return()=>W.getter()._def;case S.ZodPromise:return M3(W,X);case S.ZodNaN:case S.ZodNever:return J3();case S.ZodEffects:return aG(W,X);case S.ZodAny:return lG();case S.ZodUnknown:return V3();case S.ZodDefault:return tG(W,X);case S.ZodBranded:return _X(W,X);case S.ZodReadonly:return K3(W,X);case S.ZodCatch:return rG(W,X);case S.ZodPipeline:return w3(W,X);case S.ZodFunction:case S.ZodVoid:case S.ZodSymbol:return;default:return((Y)=>{return})($)}};function s(W,$,X=!1){let Y=$.seen.get(W);if($.override){let Q=$.override?.(W,$,Y,X);if(Q!==xG)return Q}if(Y&&!X){let Q=zD(Y,$);if(Q!==void 0)return Q}let J={def:W,path:$.currentPath,jsonSchema:void 0};$.seen.set(W,J);let G=L3(W,W.typeName,$),H=typeof G==="function"?s(G(),$):G;if(H)TD(W,$,H);if($.postProcess){let Q=$.postProcess(H,W,$);return J.jsonSchema=H,Q}return J.jsonSchema=H,H}var zD=(W,$)=>{switch($.$refStrategy){case"root":return{$ref:W.path.join("/")};case"relative":return{$ref:FD($.currentPath,W.path)};case"none":case"seen":{if(W.path.length<$.currentPath.length&&W.path.every((X,Y)=>$.currentPath[Y]===X))return console.warn(`Recursive reference detected at ${$.currentPath.join("/")}! Defaulting to any`),{};return $.$refStrategy==="seen"?{}:void 0}}},FD=(W,$)=>{let X=0;for(;X<W.length&&X<$.length;X++)if(W[X]!==$[X])break;return[(W.length-X).toString(),...$.slice(X)].join("/")},TD=(W,$,X)=>{if(W.description){if(X.description=W.description,$.markdownDescription)X.markdownDescription=W.description}return X};var A3=(W,$)=>{let X=bG($),Y=typeof $==="object"&&$.definitions?Object.entries($.definitions).reduce((z,[F,T])=>({...z,[F]:s(T._def,{...X,currentPath:[...X.basePath,X.definitionPath,F]},!0)??{}}),{}):void 0,J=typeof $==="string"?$:$?.nameStrategy==="title"?void 0:$?.name,G=s(W._def,J===void 0?X:{...X,currentPath:[...X.basePath,X.definitionPath,J]},!1)??{},H=typeof $==="object"&&$.name!==void 0&&$.nameStrategy==="title"?$.name:void 0;if(H!==void 0)G.title=H;let Q=J===void 0?Y?{...G,[X.definitionPath]:Y}:G:{$ref:[...X.$refStrategy==="relative"?[]:X.basePath,X.definitionPath,J].join("/"),[X.definitionPath]:{...Y,[J]:G}};if(X.target==="jsonSchema7")Q.$schema="http://json-schema.org/draft-07/schema#";else if(X.target==="jsonSchema2019-09"||X.target==="openAi")Q.$schema="https://json-schema.org/draft/2019-09/schema#";if(X.target==="openAi"&&(("anyOf"in Q)||("oneOf"in Q)||("allOf"in Q)||("type"in Q)&&Array.isArray(Q.type)))console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.");return Q};var E3=A3;function N3(W,$){return function X({schema:Y,fallback:J,toJsonSchema:G=E3}){let H=G(Y);return async function Q(z,F=3){let T,U=[];while(U.length<F){T=await W(z,H,J,U);let M=await Y["~standard"].validate(T);if("value"in M)return M.value;$?.warn(`safegen failed to generate well-formed data.
10
10
  `,`Here's what was returned last time:
11
11
  `,JSON.stringify(T,null,"\t"),`
12
12
  `,`Here are the issues returned from our validation:
13
- `,JSON.stringify(M.issues,null,"\t")),U.push({response:T,error:M})}return $?.error(`safegen was unable to generate well-formed data after ${F} failed attempts.`),J}}}function B3(W){return["Please generate a response in JSON that conforms to the following JSON Schema:",JSON.stringify(W,null,2)].join(`
14
- `)}var OX="RFC3986",KX={RFC1738:(W)=>String(W).replace(/%20/g,"+"),RFC3986:(W)=>String(W)},R3="RFC1738";var UD=Array.isArray,xW=(()=>{let W=[];for(let $=0;$<256;++$)W.push("%"+(($<16?"0":"")+$.toString(16)).toUpperCase());return W})();var m9=1024,Z3=(W,$,X,Y,J)=>{if(W.length===0)return W;let G=W;if(typeof W==="symbol")G=Symbol.prototype.toString.call(W);else if(typeof W!=="string")G=String(W);if(X==="iso-8859-1")return escape(G).replace(/%u[0-9a-f]{4}/gi,function(Q){return"%26%23"+parseInt(Q.slice(2),16)+"%3B"});let H="";for(let Q=0;Q<G.length;Q+=m9){let z=G.length>=m9?G.slice(Q,Q+m9):G,F=[];for(let T=0;T<z.length;++T){let U=z.charCodeAt(T);if(U===45||U===46||U===95||U===126||U>=48&&U<=57||U>=65&&U<=90||U>=97&&U<=122||J===R3&&(U===40||U===41)){F[F.length]=z.charAt(T);continue}if(U<128){F[F.length]=xW[U];continue}if(U<2048){F[F.length]=xW[192|U>>6]+xW[128|U&63];continue}if(U<55296||U>=57344){F[F.length]=xW[224|U>>12]+xW[128|U>>6&63]+xW[128|U&63];continue}T+=1,U=65536+((U&1023)<<10|z.charCodeAt(T)&1023),F[F.length]=xW[240|U>>18]+xW[128|U>>12&63]+xW[128|U>>6&63]+xW[128|U&63]}H+=F.join("")}return H};function S3(W){if(!W||typeof W!=="object")return!1;return!!(W.constructor&&W.constructor.isBuffer&&W.constructor.isBuffer(W))}function p9(W,$){if(UD(W)){let X=[];for(let Y=0;Y<W.length;Y+=1)X.push($(W[Y]));return X}return $(W)}var wD=Object.prototype.hasOwnProperty,q3={brackets(W){return String(W)+"[]"},comma:"comma",indices(W,$){return String(W)+"["+$+"]"},repeat(W){return String(W)}},vW=Array.isArray,MD=Array.prototype.push,C3=function(W,$){MD.apply(W,vW($)?$:[$])},_D=Date.prototype.toISOString,$1={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Z3,encodeValuesOnly:!1,format:OX,formatter:KX[OX],indices:!1,serializeDate(W){return _D.call(W)},skipNulls:!1,strictNullHandling:!1};function DD(W){return typeof W==="string"||typeof W==="number"||typeof W==="boolean"||typeof W==="symbol"||typeof W==="bigint"}var u9={};function k3(W,$,X,Y,J,G,H,Q,z,F,T,U,M,V,K,N,I,C){let B=W,q=C,m=0,c=!1;while((q=q.get(u9))!==void 0&&!c){let E=q.get(W);if(m+=1,typeof E!=="undefined")if(E===m)throw new RangeError("Cyclic object value");else c=!0;if(typeof q.get(u9)==="undefined")m=0}if(typeof F==="function")B=F($,B);else if(B instanceof Date)B=M?.(B);else if(X==="comma"&&vW(B))B=p9(B,function(E){if(E instanceof Date)return M?.(E);return E});if(B===null){if(G)return z&&!N?z($,$1.encoder,I,"key",V):$;B=""}if(DD(B)||S3(B)){if(z){let E=N?$:z($,$1.encoder,I,"key",V);return[K?.(E)+"="+K?.(z(B,$1.encoder,I,"value",V))]}return[K?.($)+"="+K?.(String(B))]}let v=[];if(typeof B==="undefined")return v;let h;if(X==="comma"&&vW(B)){if(N&&z)B=p9(B,z);h=[{value:B.length>0?B.join(",")||null:void 0}]}else if(vW(F))h=F;else{let E=Object.keys(B);h=T?E.sort(T):E}let U0=Q?String($).replace(/\./g,"%2E"):String($),m0=Y&&vW(B)&&B.length===1?U0+"[]":U0;if(J&&vW(B)&&B.length===0)return m0+"[]";for(let E=0;E<h.length;++E){let _0=h[E],e=typeof _0==="object"&&typeof _0.value!=="undefined"?_0.value:B[_0];if(H&&e===null)continue;let w0=U&&Q?_0.replace(/\./g,"%2E"):_0,s0=vW(B)?typeof X==="function"?X(m0,w0):m0:m0+(U?"."+w0:"["+w0+"]");C.set(W,m);let D1=new WeakMap;D1.set(u9,C),C3(v,k3(e,s0,X,Y,J,G,H,Q,X==="comma"&&N&&vW(B)?null:z,F,T,U,M,V,K,N,I,D1))}return v}function VD(W=$1){if(typeof W.allowEmptyArrays!=="undefined"&&typeof W.allowEmptyArrays!=="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof W.encodeDotInKeys!=="undefined"&&typeof W.encodeDotInKeys!=="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(W.encoder!==null&&typeof W.encoder!=="undefined"&&typeof W.encoder!=="function")throw new TypeError("Encoder has to be a function.");let $=W.charset||$1.charset;if(typeof W.charset!=="undefined"&&W.charset!=="utf-8"&&W.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let X=OX;if(typeof W.format!=="undefined"){if(!wD.call(KX,W.format))throw new TypeError("Unknown format option provided.");X=W.format}let Y=KX[X],J=$1.filter;if(typeof W.filter==="function"||vW(W.filter))J=W.filter;let G;if(W.arrayFormat&&W.arrayFormat in q3)G=W.arrayFormat;else if("indices"in W)G=W.indices?"indices":"repeat";else G=$1.arrayFormat;if("commaRoundTrip"in W&&typeof W.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let H=typeof W.allowDots==="undefined"?!!W.encodeDotInKeys===!0?!0:$1.allowDots:!!W.allowDots;return{addQueryPrefix:typeof W.addQueryPrefix==="boolean"?W.addQueryPrefix:$1.addQueryPrefix,allowDots:H,allowEmptyArrays:typeof W.allowEmptyArrays==="boolean"?!!W.allowEmptyArrays:$1.allowEmptyArrays,arrayFormat:G,charset:$,charsetSentinel:typeof W.charsetSentinel==="boolean"?W.charsetSentinel:$1.charsetSentinel,commaRoundTrip:!!W.commaRoundTrip,delimiter:typeof W.delimiter==="undefined"?$1.delimiter:W.delimiter,encode:typeof W.encode==="boolean"?W.encode:$1.encode,encodeDotInKeys:typeof W.encodeDotInKeys==="boolean"?W.encodeDotInKeys:$1.encodeDotInKeys,encoder:typeof W.encoder==="function"?W.encoder:$1.encoder,encodeValuesOnly:typeof W.encodeValuesOnly==="boolean"?W.encodeValuesOnly:$1.encodeValuesOnly,filter:J,format:X,formatter:Y,serializeDate:typeof W.serializeDate==="function"?W.serializeDate:$1.serializeDate,skipNulls:typeof W.skipNulls==="boolean"?W.skipNulls:$1.skipNulls,sort:typeof W.sort==="function"?W.sort:null,strictNullHandling:typeof W.strictNullHandling==="boolean"?W.strictNullHandling:$1.strictNullHandling}}function c9(W,$={}){let X=W,Y=VD($),J,G;if(typeof Y.filter==="function")G=Y.filter,X=G("",X);else if(vW(Y.filter))G=Y.filter,J=G;let H=[];if(typeof X!=="object"||X===null)return"";let Q=q3[Y.arrayFormat],z=Q==="comma"&&Y.commaRoundTrip;if(!J)J=Object.keys(X);if(Y.sort)J.sort(Y.sort);let F=new WeakMap;for(let M=0;M<J.length;++M){let V=J[M];if(Y.skipNulls&&X[V]===null)continue;C3(H,k3(X[V],V,Q,z,Y.allowEmptyArrays,Y.strictNullHandling,Y.skipNulls,Y.encodeDotInKeys,Y.encode?Y.encoder:null,Y.filter,Y.sort,Y.allowDots,Y.serializeDate,Y.format,Y.formatter,Y.encodeValuesOnly,Y.charset,F))}let T=H.join(Y.delimiter),U=Y.addQueryPrefix===!0?"?":"";if(Y.charsetSentinel)if(Y.charset==="iso-8859-1")U+="utf8=%26%2310003%3B&";else U+="utf8=%E2%9C%93&";return T.length>0?U+T:""}var o2="4.96.2";var I3=!1,i2=void 0,d9=void 0,KD=void 0,LD=void 0,AD=void 0,l9=void 0,ED=void 0,LX=void 0,o9=void 0,i9=void 0,n9=void 0,AX=void 0,r9=void 0;function j3(W,$={auto:!1}){if(I3)throw new Error(`you must \`import 'openai/shims/${W.kind}'\` before importing anything else from openai`);if(i2)throw new Error(`can't \`import 'openai/shims/${W.kind}'\` after \`import 'openai/shims/${i2}'\``);I3=$.auto,i2=W.kind,d9=W.fetch,KD=W.Request,LD=W.Response,AD=W.Headers,l9=W.FormData,ED=W.Blob,LX=W.File,o9=W.ReadableStream,i9=W.getMultipartRequestOptions,n9=W.getDefaultAgent,AX=W.fileFromPath,r9=W.isFsReadStream}class t9{constructor(W){this.body=W}get[Symbol.toStringTag](){return"MultipartBody"}}function f3({manuallyImported:W}={}){let $=W?"You may need to use polyfills":"Add one of these imports before your first `import \u2026 from 'openai'`:\n- `import 'openai/shims/node'` (if you're running on Node)\n- `import 'openai/shims/web'` (otherwise)\n",X,Y,J,G;try{X=fetch,Y=Request,J=Response,G=Headers}catch(H){throw new Error(`this environment is missing the following Web Fetch API type: ${H.message}. ${$}`)}return{kind:"web",fetch:X,Request:Y,Response:J,Headers:G,FormData:typeof FormData!=="undefined"?FormData:class H{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${$}`)}},Blob:typeof Blob!=="undefined"?Blob:class H{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${$}`)}},File:typeof File!=="undefined"?File:class H{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${$}`)}},ReadableStream:typeof ReadableStream!=="undefined"?ReadableStream:class H{constructor(){throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${$}`)}},getMultipartRequestOptions:async(H,Q)=>({...Q,body:new t9(H)}),getDefaultAgent:(H)=>{return},fileFromPath:()=>{throw new Error("The `fileFromPath` function is only supported in Node. See the README for more details: https://www.github.com/openai/openai-node#file-uploads")},isFsReadStream:(H)=>!1}}import{ReadStream as BD}from"fs";function P3(){let W=f3();function $(X){return X instanceof BD}return{...W,isFsReadStream:$}}var a9=()=>{if(!i2)j3(P3(),{auto:!0})};a9();class o extends Error{}class r0 extends o{constructor(W,$,X,Y){super(`${r0.makeMessage(W,$,X)}`);this.status=W,this.headers=Y,this.request_id=Y?.["x-request-id"],this.error=$;let J=$;this.code=J?.code,this.param=J?.param,this.type=J?.type}static makeMessage(W,$,X){let Y=$?.message?typeof $.message==="string"?$.message:JSON.stringify($.message):$?JSON.stringify($):X;if(W&&Y)return`${W} ${Y}`;if(W)return`${W} status code (no body)`;if(Y)return Y;return"(no status code or body)"}static generate(W,$,X,Y){if(!W||!Y)return new n2({message:X,cause:kX($)});let J=$?.error;if(W===400)return new EX(W,J,X,Y);if(W===401)return new NX(W,J,X,Y);if(W===403)return new BX(W,J,X,Y);if(W===404)return new RX(W,J,X,Y);if(W===409)return new ZX(W,J,X,Y);if(W===422)return new SX(W,J,X,Y);if(W===429)return new qX(W,J,X,Y);if(W>=500)return new CX(W,J,X,Y);return new r0(W,J,X,Y)}}class X1 extends r0{constructor({message:W}={}){super(void 0,void 0,W||"Request was aborted.",void 0)}}class n2 extends r0{constructor({message:W,cause:$}){super(void 0,void 0,W||"Connection error.",void 0);if($)this.cause=$}}class r2 extends n2{constructor({message:W}={}){super({message:W??"Request timed out."})}}class EX extends r0{}class NX extends r0{}class BX extends r0{}class RX extends r0{}class ZX extends r0{}class SX extends r0{}class qX extends r0{}class CX extends r0{}class U4 extends o{constructor(){super("Could not parse response content as the length limit was reached")}}class w4 extends o{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}var IX=function(W,$,X,Y,J){if(Y==="m")throw new TypeError("Private method is not writable");if(Y==="a"&&!J)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?W!==$||!J:!$.has(W))throw new TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:$.set(W,X),X},t2=function(W,$,X,Y){if(X==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?W!==$||!Y:!$.has(W))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:$.get(W)},o1;class m8{constructor(){o1.set(this,void 0),this.buffer=new Uint8Array,IX(this,o1,null,"f")}decode(W){if(W==null)return[];let $=W instanceof ArrayBuffer?new Uint8Array(W):typeof W==="string"?new TextEncoder().encode(W):W,X=new Uint8Array(this.buffer.length+$.length);X.set(this.buffer),X.set($,this.buffer.length),this.buffer=X;let Y=[],J;while((J=ZD(this.buffer,t2(this,o1,"f")))!=null){if(J.carriage&&t2(this,o1,"f")==null){IX(this,o1,J.index,"f");continue}if(t2(this,o1,"f")!=null&&(J.index!==t2(this,o1,"f")+1||J.carriage)){Y.push(this.decodeText(this.buffer.slice(0,t2(this,o1,"f")-1))),this.buffer=this.buffer.slice(t2(this,o1,"f")),IX(this,o1,null,"f");continue}let G=t2(this,o1,"f")!==null?J.preceding-1:J.preceding,H=this.decodeText(this.buffer.slice(0,G));Y.push(H),this.buffer=this.buffer.slice(J.index),IX(this,o1,null,"f")}return Y}decodeText(W){if(W==null)return"";if(typeof W==="string")return W;if(typeof Buffer!=="undefined"){if(W instanceof Buffer)return W.toString();if(W instanceof Uint8Array)return Buffer.from(W).toString();throw new o(`Unexpected: received non-Uint8Array (${W.constructor.name}) stream chunk in an environment with a global "Buffer" defined, which this library assumes to be Node. Please report this error.`)}if(typeof TextDecoder!=="undefined"){if(W instanceof Uint8Array||W instanceof ArrayBuffer)return this.textDecoder??(this.textDecoder=new TextDecoder("utf8")),this.textDecoder.decode(W);throw new o(`Unexpected: received non-Uint8Array/ArrayBuffer (${W.constructor.name}) in a web platform. Please report this error.`)}throw new o("Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.")}flush(){if(!this.buffer.length)return[];return this.decode(`
13
+ `,JSON.stringify(M.issues,null,"\t")),U.push({response:T,error:M})}return $?.error(`safegen was unable to generate well-formed data after ${F} failed attempts.`),J}}}function R3(W){return["Please generate a response in JSON that conforms to the following JSON Schema:",JSON.stringify(W,null,2)].join(`
14
+ `)}var VX="RFC3986",KX={RFC1738:(W)=>String(W).replace(/%20/g,"+"),RFC3986:(W)=>String(W)},B3="RFC1738";var UD=Array.isArray,xW=(()=>{let W=[];for(let $=0;$<256;++$)W.push("%"+(($<16?"0":"")+$.toString(16)).toUpperCase());return W})();var m9=1024,Z3=(W,$,X,Y,J)=>{if(W.length===0)return W;let G=W;if(typeof W==="symbol")G=Symbol.prototype.toString.call(W);else if(typeof W!=="string")G=String(W);if(X==="iso-8859-1")return escape(G).replace(/%u[0-9a-f]{4}/gi,function(Q){return"%26%23"+parseInt(Q.slice(2),16)+"%3B"});let H="";for(let Q=0;Q<G.length;Q+=m9){let z=G.length>=m9?G.slice(Q,Q+m9):G,F=[];for(let T=0;T<z.length;++T){let U=z.charCodeAt(T);if(U===45||U===46||U===95||U===126||U>=48&&U<=57||U>=65&&U<=90||U>=97&&U<=122||J===B3&&(U===40||U===41)){F[F.length]=z.charAt(T);continue}if(U<128){F[F.length]=xW[U];continue}if(U<2048){F[F.length]=xW[192|U>>6]+xW[128|U&63];continue}if(U<55296||U>=57344){F[F.length]=xW[224|U>>12]+xW[128|U>>6&63]+xW[128|U&63];continue}T+=1,U=65536+((U&1023)<<10|z.charCodeAt(T)&1023),F[F.length]=xW[240|U>>18]+xW[128|U>>12&63]+xW[128|U>>6&63]+xW[128|U&63]}H+=F.join("")}return H};function S3(W){if(!W||typeof W!=="object")return!1;return!!(W.constructor&&W.constructor.isBuffer&&W.constructor.isBuffer(W))}function p9(W,$){if(UD(W)){let X=[];for(let Y=0;Y<W.length;Y+=1)X.push($(W[Y]));return X}return $(W)}var wD=Object.prototype.hasOwnProperty,q3={brackets(W){return String(W)+"[]"},comma:"comma",indices(W,$){return String(W)+"["+$+"]"},repeat(W){return String(W)}},vW=Array.isArray,MD=Array.prototype.push,C3=function(W,$){MD.apply(W,vW($)?$:[$])},_D=Date.prototype.toISOString,$1={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Z3,encodeValuesOnly:!1,format:VX,formatter:KX[VX],indices:!1,serializeDate(W){return _D.call(W)},skipNulls:!1,strictNullHandling:!1};function DD(W){return typeof W==="string"||typeof W==="number"||typeof W==="boolean"||typeof W==="symbol"||typeof W==="bigint"}var u9={};function k3(W,$,X,Y,J,G,H,Q,z,F,T,U,M,O,K,N,I,C){let R=W,q=C,m=0,c=!1;while((q=q.get(u9))!==void 0&&!c){let E=q.get(W);if(m+=1,typeof E!=="undefined")if(E===m)throw new RangeError("Cyclic object value");else c=!0;if(typeof q.get(u9)==="undefined")m=0}if(typeof F==="function")R=F($,R);else if(R instanceof Date)R=M?.(R);else if(X==="comma"&&vW(R))R=p9(R,function(E){if(E instanceof Date)return M?.(E);return E});if(R===null){if(G)return z&&!N?z($,$1.encoder,I,"key",O):$;R=""}if(DD(R)||S3(R)){if(z){let E=N?$:z($,$1.encoder,I,"key",O);return[K?.(E)+"="+K?.(z(R,$1.encoder,I,"value",O))]}return[K?.($)+"="+K?.(String(R))]}let v=[];if(typeof R==="undefined")return v;let h;if(X==="comma"&&vW(R)){if(N&&z)R=p9(R,z);h=[{value:R.length>0?R.join(",")||null:void 0}]}else if(vW(F))h=F;else{let E=Object.keys(R);h=T?E.sort(T):E}let U0=Q?String($).replace(/\./g,"%2E"):String($),m0=Y&&vW(R)&&R.length===1?U0+"[]":U0;if(J&&vW(R)&&R.length===0)return m0+"[]";for(let E=0;E<h.length;++E){let _0=h[E],e=typeof _0==="object"&&typeof _0.value!=="undefined"?_0.value:R[_0];if(H&&e===null)continue;let w0=U&&Q?_0.replace(/\./g,"%2E"):_0,s0=vW(R)?typeof X==="function"?X(m0,w0):m0:m0+(U?"."+w0:"["+w0+"]");C.set(W,m);let D1=new WeakMap;D1.set(u9,C),C3(v,k3(e,s0,X,Y,J,G,H,Q,X==="comma"&&N&&vW(R)?null:z,F,T,U,M,O,K,N,I,D1))}return v}function OD(W=$1){if(typeof W.allowEmptyArrays!=="undefined"&&typeof W.allowEmptyArrays!=="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof W.encodeDotInKeys!=="undefined"&&typeof W.encodeDotInKeys!=="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(W.encoder!==null&&typeof W.encoder!=="undefined"&&typeof W.encoder!=="function")throw new TypeError("Encoder has to be a function.");let $=W.charset||$1.charset;if(typeof W.charset!=="undefined"&&W.charset!=="utf-8"&&W.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let X=VX;if(typeof W.format!=="undefined"){if(!wD.call(KX,W.format))throw new TypeError("Unknown format option provided.");X=W.format}let Y=KX[X],J=$1.filter;if(typeof W.filter==="function"||vW(W.filter))J=W.filter;let G;if(W.arrayFormat&&W.arrayFormat in q3)G=W.arrayFormat;else if("indices"in W)G=W.indices?"indices":"repeat";else G=$1.arrayFormat;if("commaRoundTrip"in W&&typeof W.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let H=typeof W.allowDots==="undefined"?!!W.encodeDotInKeys===!0?!0:$1.allowDots:!!W.allowDots;return{addQueryPrefix:typeof W.addQueryPrefix==="boolean"?W.addQueryPrefix:$1.addQueryPrefix,allowDots:H,allowEmptyArrays:typeof W.allowEmptyArrays==="boolean"?!!W.allowEmptyArrays:$1.allowEmptyArrays,arrayFormat:G,charset:$,charsetSentinel:typeof W.charsetSentinel==="boolean"?W.charsetSentinel:$1.charsetSentinel,commaRoundTrip:!!W.commaRoundTrip,delimiter:typeof W.delimiter==="undefined"?$1.delimiter:W.delimiter,encode:typeof W.encode==="boolean"?W.encode:$1.encode,encodeDotInKeys:typeof W.encodeDotInKeys==="boolean"?W.encodeDotInKeys:$1.encodeDotInKeys,encoder:typeof W.encoder==="function"?W.encoder:$1.encoder,encodeValuesOnly:typeof W.encodeValuesOnly==="boolean"?W.encodeValuesOnly:$1.encodeValuesOnly,filter:J,format:X,formatter:Y,serializeDate:typeof W.serializeDate==="function"?W.serializeDate:$1.serializeDate,skipNulls:typeof W.skipNulls==="boolean"?W.skipNulls:$1.skipNulls,sort:typeof W.sort==="function"?W.sort:null,strictNullHandling:typeof W.strictNullHandling==="boolean"?W.strictNullHandling:$1.strictNullHandling}}function c9(W,$={}){let X=W,Y=OD($),J,G;if(typeof Y.filter==="function")G=Y.filter,X=G("",X);else if(vW(Y.filter))G=Y.filter,J=G;let H=[];if(typeof X!=="object"||X===null)return"";let Q=q3[Y.arrayFormat],z=Q==="comma"&&Y.commaRoundTrip;if(!J)J=Object.keys(X);if(Y.sort)J.sort(Y.sort);let F=new WeakMap;for(let M=0;M<J.length;++M){let O=J[M];if(Y.skipNulls&&X[O]===null)continue;C3(H,k3(X[O],O,Q,z,Y.allowEmptyArrays,Y.strictNullHandling,Y.skipNulls,Y.encodeDotInKeys,Y.encode?Y.encoder:null,Y.filter,Y.sort,Y.allowDots,Y.serializeDate,Y.format,Y.formatter,Y.encodeValuesOnly,Y.charset,F))}let T=H.join(Y.delimiter),U=Y.addQueryPrefix===!0?"?":"";if(Y.charsetSentinel)if(Y.charset==="iso-8859-1")U+="utf8=%26%2310003%3B&";else U+="utf8=%E2%9C%93&";return T.length>0?U+T:""}var o2="4.96.2";var I3=!1,i2=void 0,d9=void 0,KD=void 0,LD=void 0,AD=void 0,l9=void 0,ED=void 0,LX=void 0,o9=void 0,i9=void 0,n9=void 0,AX=void 0,r9=void 0;function j3(W,$={auto:!1}){if(I3)throw new Error(`you must \`import 'openai/shims/${W.kind}'\` before importing anything else from openai`);if(i2)throw new Error(`can't \`import 'openai/shims/${W.kind}'\` after \`import 'openai/shims/${i2}'\``);I3=$.auto,i2=W.kind,d9=W.fetch,KD=W.Request,LD=W.Response,AD=W.Headers,l9=W.FormData,ED=W.Blob,LX=W.File,o9=W.ReadableStream,i9=W.getMultipartRequestOptions,n9=W.getDefaultAgent,AX=W.fileFromPath,r9=W.isFsReadStream}class t9{constructor(W){this.body=W}get[Symbol.toStringTag](){return"MultipartBody"}}function f3({manuallyImported:W}={}){let $=W?"You may need to use polyfills":"Add one of these imports before your first `import \u2026 from 'openai'`:\n- `import 'openai/shims/node'` (if you're running on Node)\n- `import 'openai/shims/web'` (otherwise)\n",X,Y,J,G;try{X=fetch,Y=Request,J=Response,G=Headers}catch(H){throw new Error(`this environment is missing the following Web Fetch API type: ${H.message}. ${$}`)}return{kind:"web",fetch:X,Request:Y,Response:J,Headers:G,FormData:typeof FormData!=="undefined"?FormData:class H{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${$}`)}},Blob:typeof Blob!=="undefined"?Blob:class H{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${$}`)}},File:typeof File!=="undefined"?File:class H{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${$}`)}},ReadableStream:typeof ReadableStream!=="undefined"?ReadableStream:class H{constructor(){throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${$}`)}},getMultipartRequestOptions:async(H,Q)=>({...Q,body:new t9(H)}),getDefaultAgent:(H)=>{return},fileFromPath:()=>{throw new Error("The `fileFromPath` function is only supported in Node. See the README for more details: https://www.github.com/openai/openai-node#file-uploads")},isFsReadStream:(H)=>!1}}import{ReadStream as RD}from"fs";function P3(){let W=f3();function $(X){return X instanceof RD}return{...W,isFsReadStream:$}}var a9=()=>{if(!i2)j3(P3(),{auto:!0})};a9();class o extends Error{}class r0 extends o{constructor(W,$,X,Y){super(`${r0.makeMessage(W,$,X)}`);this.status=W,this.headers=Y,this.request_id=Y?.["x-request-id"],this.error=$;let J=$;this.code=J?.code,this.param=J?.param,this.type=J?.type}static makeMessage(W,$,X){let Y=$?.message?typeof $.message==="string"?$.message:JSON.stringify($.message):$?JSON.stringify($):X;if(W&&Y)return`${W} ${Y}`;if(W)return`${W} status code (no body)`;if(Y)return Y;return"(no status code or body)"}static generate(W,$,X,Y){if(!W||!Y)return new n2({message:X,cause:kX($)});let J=$?.error;if(W===400)return new EX(W,J,X,Y);if(W===401)return new NX(W,J,X,Y);if(W===403)return new RX(W,J,X,Y);if(W===404)return new BX(W,J,X,Y);if(W===409)return new ZX(W,J,X,Y);if(W===422)return new SX(W,J,X,Y);if(W===429)return new qX(W,J,X,Y);if(W>=500)return new CX(W,J,X,Y);return new r0(W,J,X,Y)}}class X1 extends r0{constructor({message:W}={}){super(void 0,void 0,W||"Request was aborted.",void 0)}}class n2 extends r0{constructor({message:W,cause:$}){super(void 0,void 0,W||"Connection error.",void 0);if($)this.cause=$}}class r2 extends n2{constructor({message:W}={}){super({message:W??"Request timed out."})}}class EX extends r0{}class NX extends r0{}class RX extends r0{}class BX extends r0{}class ZX extends r0{}class SX extends r0{}class qX extends r0{}class CX extends r0{}class U4 extends o{constructor(){super("Could not parse response content as the length limit was reached")}}class w4 extends o{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}var IX=function(W,$,X,Y,J){if(Y==="m")throw new TypeError("Private method is not writable");if(Y==="a"&&!J)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?W!==$||!J:!$.has(W))throw new TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:$.set(W,X),X},t2=function(W,$,X,Y){if(X==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?W!==$||!Y:!$.has(W))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:$.get(W)},o1;class m8{constructor(){o1.set(this,void 0),this.buffer=new Uint8Array,IX(this,o1,null,"f")}decode(W){if(W==null)return[];let $=W instanceof ArrayBuffer?new Uint8Array(W):typeof W==="string"?new TextEncoder().encode(W):W,X=new Uint8Array(this.buffer.length+$.length);X.set(this.buffer),X.set($,this.buffer.length),this.buffer=X;let Y=[],J;while((J=ZD(this.buffer,t2(this,o1,"f")))!=null){if(J.carriage&&t2(this,o1,"f")==null){IX(this,o1,J.index,"f");continue}if(t2(this,o1,"f")!=null&&(J.index!==t2(this,o1,"f")+1||J.carriage)){Y.push(this.decodeText(this.buffer.slice(0,t2(this,o1,"f")-1))),this.buffer=this.buffer.slice(t2(this,o1,"f")),IX(this,o1,null,"f");continue}let G=t2(this,o1,"f")!==null?J.preceding-1:J.preceding,H=this.decodeText(this.buffer.slice(0,G));Y.push(H),this.buffer=this.buffer.slice(J.index),IX(this,o1,null,"f")}return Y}decodeText(W){if(W==null)return"";if(typeof W==="string")return W;if(typeof Buffer!=="undefined"){if(W instanceof Buffer)return W.toString();if(W instanceof Uint8Array)return Buffer.from(W).toString();throw new o(`Unexpected: received non-Uint8Array (${W.constructor.name}) stream chunk in an environment with a global "Buffer" defined, which this library assumes to be Node. Please report this error.`)}if(typeof TextDecoder!=="undefined"){if(W instanceof Uint8Array||W instanceof ArrayBuffer)return this.textDecoder??(this.textDecoder=new TextDecoder("utf8")),this.textDecoder.decode(W);throw new o(`Unexpected: received non-Uint8Array/ArrayBuffer (${W.constructor.name}) in a web platform. Please report this error.`)}throw new o("Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.")}flush(){if(!this.buffer.length)return[];return this.decode(`
15
15
  `)}}o1=new WeakMap;m8.NEWLINE_CHARS=new Set([`
16
16
  `,"\r"]);m8.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function ZD(W,$){for(let J=$??0;J<W.length;J++){if(W[J]===10)return{preceding:J,index:J+1,carriage:!1};if(W[J]===13)return{preceding:J,index:J+1,carriage:!0}}return null}function x3(W){for(let Y=0;Y<W.length-1;Y++){if(W[Y]===10&&W[Y+1]===10)return Y+2;if(W[Y]===13&&W[Y+1]===13)return Y+2;if(W[Y]===13&&W[Y+1]===10&&Y+3<W.length&&W[Y+2]===13&&W[Y+3]===10)return Y+4}return-1}function s9(W){if(W[Symbol.asyncIterator])return W;let $=W.getReader();return{async next(){try{let X=await $.read();if(X?.done)$.releaseLock();return X}catch(X){throw $.releaseLock(),X}},async return(){let X=$.cancel();return $.releaseLock(),await X,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}class i1{constructor(W,$){this.iterator=W,this.controller=$}static fromSSEResponse(W,$){let X=!1;async function*Y(){if(X)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");X=!0;let J=!1;try{for await(let G of SD(W,$)){if(J)continue;if(G.data.startsWith("[DONE]")){J=!0;continue}if(G.event===null||G.event.startsWith("response.")||G.event.startsWith("transcript.")){let H;try{H=JSON.parse(G.data)}catch(Q){throw console.error("Could not parse message into JSON:",G.data),console.error("From chunk:",G.raw),Q}if(H&&H.error)throw new r0(void 0,H.error,void 0,e9(W.headers));yield H}else{let H;try{H=JSON.parse(G.data)}catch(Q){throw console.error("Could not parse message into JSON:",G.data),console.error("From chunk:",G.raw),Q}if(G.event=="error")throw new r0(void 0,H.error,H.message,void 0);yield{event:G.event,data:H}}}J=!0}catch(G){if(G instanceof Error&&G.name==="AbortError")return;throw G}finally{if(!J)$.abort()}}return new i1(Y,$)}static fromReadableStream(W,$){let X=!1;async function*Y(){let G=new m8,H=s9(W);for await(let Q of H)for(let z of G.decode(Q))yield z;for(let Q of G.flush())yield Q}async function*J(){if(X)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");X=!0;let G=!1;try{for await(let H of Y()){if(G)continue;if(H)yield JSON.parse(H)}G=!0}catch(H){if(H instanceof Error&&H.name==="AbortError")return;throw H}finally{if(!G)$.abort()}}return new i1(J,$)}[Symbol.asyncIterator](){return this.iterator()}tee(){let W=[],$=[],X=this.iterator(),Y=(J)=>{return{next:()=>{if(J.length===0){let G=X.next();W.push(G),$.push(G)}return J.shift()}}};return[new i1(()=>Y(W),this.controller),new i1(()=>Y($),this.controller)]}toReadableStream(){let W=this,$,X=new TextEncoder;return new o9({async start(){$=W[Symbol.asyncIterator]()},async pull(Y){try{let{value:J,done:G}=await $.next();if(G)return Y.close();let H=X.encode(JSON.stringify(J)+`
17
17
  `);Y.enqueue(H)}catch(J){Y.error(J)}},async cancel(){await $.return?.()}})}}async function*SD(W,$){if(!W.body)throw $.abort(),new o("Attempted to iterate over a response with no body");let X=new v3,Y=new m8,J=s9(W.body);for await(let G of qD(J))for(let H of Y.decode(G)){let Q=X.decode(H);if(Q)yield Q}for(let G of Y.flush()){let H=X.decode(G);if(H)yield H}}async function*qD(W){let $=new Uint8Array;for await(let X of W){if(X==null)continue;let Y=X instanceof ArrayBuffer?new Uint8Array(X):typeof X==="string"?new TextEncoder().encode(X):X,J=new Uint8Array($.length+Y.length);J.set($),J.set(Y,$.length),$=J;let G;while((G=x3($))!==-1)yield $.slice(0,G),$=$.slice(G)}if($.length>0)yield $}class v3{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(W){if(W.endsWith("\r"))W=W.substring(0,W.length-1);if(!W){if(!this.event&&!this.data.length)return null;let J={event:this.event,data:this.data.join(`
18
- `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],J}if(this.chunks.push(W),W.startsWith(":"))return null;let[$,X,Y]=CD(W,":");if(Y.startsWith(" "))Y=Y.substring(1);if($==="event")this.event=Y;else if($==="data")this.data.push(Y);return null}}function CD(W,$){let X=W.indexOf($);if(X!==-1)return[W.substring(0,X),$,W.substring(X+$.length)];return[W,"",""]}var b3=(W)=>W!=null&&typeof W==="object"&&typeof W.url==="string"&&typeof W.blob==="function",y3=(W)=>W!=null&&typeof W==="object"&&typeof W.name==="string"&&typeof W.lastModified==="number"&&M4(W),M4=(W)=>W!=null&&typeof W==="object"&&typeof W.size==="number"&&typeof W.type==="string"&&typeof W.text==="function"&&typeof W.slice==="function"&&typeof W.arrayBuffer==="function",kD=(W)=>{return y3(W)||b3(W)||r9(W)};async function XJ(W,$,X){if(W=await W,y3(W))return W;if(b3(W)){let J=await W.blob();$||($=new URL(W.url).pathname.split(/[\\/]/).pop()??"unknown_file");let G=M4(J)?[await J.arrayBuffer()]:[J];return new LX(G,$,X)}let Y=await ID(W);if($||($=fD(W)??"unknown_file"),!X?.type){let J=Y[0]?.type;if(typeof J==="string")X={...X,type:J}}return new LX(Y,$,X)}async function ID(W){let $=[];if(typeof W==="string"||ArrayBuffer.isView(W)||W instanceof ArrayBuffer)$.push(W);else if(M4(W))$.push(await W.arrayBuffer());else if(PD(W))for await(let X of W)$.push(X);else throw new Error(`Unexpected data type: ${typeof W}; constructor: ${W?.constructor?.name}; props: ${jD(W)}`);return $}function jD(W){return`[${Object.getOwnPropertyNames(W).map((X)=>`"${X}"`).join(", ")}]`}function fD(W){return WJ(W.name)||WJ(W.filename)||WJ(W.path)?.split(/[\\/]/).pop()}var WJ=(W)=>{if(typeof W==="string")return W;if(typeof Buffer!=="undefined"&&W instanceof Buffer)return String(W);return},PD=(W)=>W!=null&&typeof W==="object"&&typeof W[Symbol.asyncIterator]==="function",YJ=(W)=>W&&typeof W==="object"&&W.body&&W[Symbol.toStringTag]==="MultipartBody";var YW=async(W)=>{let $=await h3(W.body);return i9($,W)},h3=async(W)=>{let $=new l9;return await Promise.all(Object.entries(W||{}).map(([X,Y])=>$J($,X,Y))),$};var $J=async(W,$,X)=>{if(X===void 0)return;if(X==null)throw new TypeError(`Received null for "${$}"; to pass null in FormData, you must use the string 'null'`);if(typeof X==="string"||typeof X==="number"||typeof X==="boolean")W.append($,String(X));else if(kD(X)){let Y=await XJ(X);W.append($,Y)}else if(Array.isArray(X))await Promise.all(X.map((Y)=>$J(W,$+"[]",Y)));else if(typeof X==="object")await Promise.all(Object.entries(X).map(([Y,J])=>$J(W,`${$}[${Y}]`,J)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${X} instead`)};var vD=function(W,$,X,Y,J){if(Y==="m")throw new TypeError("Private method is not writable");if(Y==="a"&&!J)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?W!==$||!J:!$.has(W))throw new TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:$.set(W,X),X},bD=function(W,$,X,Y){if(X==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?W!==$||!Y:!$.has(W))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:$.get(W)},jX;a9();async function d3(W){let{response:$}=W;if(W.options.stream){if(nW("response",$.status,$.url,$.headers,$.body),W.options.__streamClass)return W.options.__streamClass.fromSSEResponse($,W.controller);return i1.fromSSEResponse($,W.controller)}if($.status===204)return null;if(W.options.__binaryResponse)return $;let Y=$.headers.get("content-type")?.split(";")[0]?.trim();if(Y?.includes("application/json")||Y?.endsWith("+json")){let H=await $.json();return nW("response",$.status,$.url,$.headers,H),l3(H,$)}let G=await $.text();return nW("response",$.status,$.url,$.headers,G),G}function l3(W,$){if(!W||typeof W!=="object"||Array.isArray(W))return W;return Object.defineProperty(W,"_request_id",{value:$.headers.get("x-request-id"),enumerable:!1})}class PX extends Promise{constructor(W,$=d3){super((X)=>{X(null)});this.responsePromise=W,this.parseResponse=$}_thenUnwrap(W){return new PX(this.responsePromise,async($)=>l3(W(await this.parseResponse($),$),$.response))}asResponse(){return this.responsePromise.then((W)=>W.response)}async withResponse(){let[W,$]=await Promise.all([this.parse(),this.asResponse()]);return{data:W,response:$,request_id:$.headers.get("x-request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then(this.parseResponse);return this.parsedPromise}then(W,$){return this.parse().then(W,$)}catch(W){return this.parse().catch(W)}finally(W){return this.parse().finally(W)}}class GJ{constructor({baseURL:W,maxRetries:$=2,timeout:X=600000,httpAgent:Y,fetch:J}){this.baseURL=W,this.maxRetries=JJ("maxRetries",$),this.timeout=JJ("timeout",X),this.httpAgent=Y,this.fetch=J??d9}authHeaders(W){return{}}defaultHeaders(W){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...mD(),...this.authHeaders(W)}}validateHeaders(W,$){}defaultIdempotencyKey(){return`stainless-node-retry-${dD()}`}get(W,$){return this.methodRequest("get",W,$)}post(W,$){return this.methodRequest("post",W,$)}patch(W,$){return this.methodRequest("patch",W,$)}put(W,$){return this.methodRequest("put",W,$)}delete(W,$){return this.methodRequest("delete",W,$)}methodRequest(W,$,X){return this.request(Promise.resolve(X).then(async(Y)=>{let J=Y&&M4(Y?.body)?new DataView(await Y.body.arrayBuffer()):Y?.body instanceof DataView?Y.body:Y?.body instanceof ArrayBuffer?new DataView(Y.body):Y&&ArrayBuffer.isView(Y?.body)?new DataView(Y.body.buffer):Y?.body;return{method:W,path:$,...Y,body:J}}))}getAPIList(W,$,X){return this.requestAPIList($,{method:"get",path:W,...X})}calculateContentLength(W){if(typeof W==="string"){if(typeof Buffer!=="undefined")return Buffer.byteLength(W,"utf8").toString();if(typeof TextEncoder!=="undefined")return new TextEncoder().encode(W).length.toString()}else if(ArrayBuffer.isView(W))return W.byteLength.toString();return null}buildRequest(W,{retryCount:$=0}={}){let X={...W},{method:Y,path:J,query:G,headers:H={}}=X,Q=ArrayBuffer.isView(X.body)||X.__binaryRequest&&typeof X.body==="string"?X.body:YJ(X.body)?X.body.body:X.body?JSON.stringify(X.body,null,2):null,z=this.calculateContentLength(Q),F=this.buildURL(J,G);if("timeout"in X)JJ("timeout",X.timeout);X.timeout=X.timeout??this.timeout;let T=X.httpAgent??this.httpAgent??n9(F),U=X.timeout+1000;if(typeof T?.options?.timeout==="number"&&U>(T.options.timeout??0))T.options.timeout=U;if(this.idempotencyHeader&&Y!=="get"){if(!W.idempotencyKey)W.idempotencyKey=this.defaultIdempotencyKey();H[this.idempotencyHeader]=W.idempotencyKey}let M=this.buildHeaders({options:X,headers:H,contentLength:z,retryCount:$});return{req:{method:Y,...Q&&{body:Q},headers:M,...T&&{agent:T},signal:X.signal??null},url:F,timeout:X.timeout}}buildHeaders({options:W,headers:$,contentLength:X,retryCount:Y}){let J={};if(X)J["content-length"]=X;let G=this.defaultHeaders(W);if(u3(J,G),u3(J,$),YJ(W.body)&&i2!=="node")delete J["content-type"];if(fX(G,"x-stainless-retry-count")===void 0&&fX($,"x-stainless-retry-count")===void 0)J["x-stainless-retry-count"]=String(Y);if(fX(G,"x-stainless-timeout")===void 0&&fX($,"x-stainless-timeout")===void 0&&W.timeout)J["x-stainless-timeout"]=String(Math.trunc(W.timeout/1000));return this.validateHeaders(J,$),J}async prepareOptions(W){}async prepareRequest(W,{url:$,options:X}){}parseHeaders(W){return!W?{}:(Symbol.iterator in W)?Object.fromEntries(Array.from(W).map(($)=>[...$])):{...W}}makeStatusError(W,$,X,Y){return r0.generate(W,$,X,Y)}request(W,$=null){return new PX(this.makeRequest(W,$))}async makeRequest(W,$){let X=await W,Y=X.maxRetries??this.maxRetries;if($==null)$=Y;await this.prepareOptions(X);let{req:J,url:G,timeout:H}=this.buildRequest(X,{retryCount:Y-$});if(await this.prepareRequest(J,{url:G,options:X}),nW("request",G,X,J.headers),X.signal?.aborted)throw new X1;let Q=new AbortController,z=await this.fetchWithTimeout(G,J,H,Q).catch(kX);if(z instanceof Error){if(X.signal?.aborted)throw new X1;if($)return this.retryRequest(X,$);if(z.name==="AbortError")throw new r2;throw new n2({cause:z})}let F=e9(z.headers);if(!z.ok){if($&&this.shouldRetry(z)){let N=`retrying, ${$} attempts remaining`;return nW(`response (error; ${N})`,z.status,G,F),this.retryRequest(X,$,F)}let T=await z.text().catch((N)=>kX(N).message),U=pD(T),M=U?void 0:T;throw nW(`response (error; ${$?"(error; no more retries left)":"(error; not retryable)"})`,z.status,G,F,M),this.makeStatusError(z.status,U,M,F)}return{response:z,options:X,controller:Q}}requestAPIList(W,$){let X=this.makeRequest($,null);return new o3(this,X,W)}buildURL(W,$){let X=cD(W)?new URL(W):new URL(this.baseURL+(this.baseURL.endsWith("/")&&W.startsWith("/")?W.slice(1):W)),Y=this.defaultQuery();if(!i3(Y))$={...Y,...$};if(typeof $==="object"&&$&&!Array.isArray($))X.search=this.stringifyQuery($);return X.toString()}stringifyQuery(W){return Object.entries(W).filter(([$,X])=>typeof X!=="undefined").map(([$,X])=>{if(typeof X==="string"||typeof X==="number"||typeof X==="boolean")return`${encodeURIComponent($)}=${encodeURIComponent(X)}`;if(X===null)return`${encodeURIComponent($)}=`;throw new o(`Cannot stringify type ${typeof X}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}async fetchWithTimeout(W,$,X,Y){let{signal:J,...G}=$||{};if(J)J.addEventListener("abort",()=>Y.abort());let H=setTimeout(()=>Y.abort(),X),Q={signal:Y.signal,...G};if(Q.method)Q.method=Q.method.toUpperCase();return this.fetch.call(void 0,W,Q).finally(()=>{clearTimeout(H)})}shouldRetry(W){let $=W.headers.get("x-should-retry");if($==="true")return!0;if($==="false")return!1;if(W.status===408)return!0;if(W.status===409)return!0;if(W.status===429)return!0;if(W.status>=500)return!0;return!1}async retryRequest(W,$,X){let Y,J=X?.["retry-after-ms"];if(J){let H=parseFloat(J);if(!Number.isNaN(H))Y=H}let G=X?.["retry-after"];if(G&&!Y){let H=parseFloat(G);if(!Number.isNaN(H))Y=H*1000;else Y=Date.parse(G)-Date.now()}if(!(Y&&0<=Y&&Y<60000)){let H=W.maxRetries??this.maxRetries;Y=this.calculateDefaultRetryTimeoutMillis($,H)}return await rW(Y),this.makeRequest(W,$-1)}calculateDefaultRetryTimeoutMillis(W,$){let J=$-W,G=Math.min(0.5*Math.pow(2,J),8),H=1-Math.random()*0.25;return G*H*1000}getUserAgent(){return`${this.constructor.name}/JS ${o2}`}}class xX{constructor(W,$,X,Y){jX.set(this,void 0),vD(this,jX,W,"f"),this.options=Y,this.response=$,this.body=X}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageInfo()!=null}async getNextPage(){let W=this.nextPageInfo();if(!W)throw new o("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");let $={...this.options};if("params"in W&&typeof $.query==="object")$.query={...$.query,...W.params};else if("url"in W){let X=[...Object.entries($.query||{}),...W.url.searchParams.entries()];for(let[Y,J]of X)W.url.searchParams.set(Y,J);$.query=void 0,$.path=W.url.toString()}return await bD(this,jX,"f").requestAPIList(this.constructor,$)}async*iterPages(){let W=this;yield W;while(W.hasNextPage())W=await W.getNextPage(),yield W}async*[(jX=new WeakMap,Symbol.asyncIterator)](){for await(let W of this.iterPages())for(let $ of W.getPaginatedItems())yield $}}class o3 extends PX{constructor(W,$,X){super($,async(Y)=>new X(W,Y.response,await d3(Y),Y.options))}async*[Symbol.asyncIterator](){let W=await this;for await(let $ of W)yield $}}var e9=(W)=>{return new Proxy(Object.fromEntries(W.entries()),{get($,X){let Y=X.toString();return $[Y.toLowerCase()]||$[Y]}})},yD={method:!0,path:!0,query:!0,body:!0,headers:!0,maxRetries:!0,stream:!0,timeout:!0,httpAgent:!0,signal:!0,idempotencyKey:!0,__metadata:!0,__binaryRequest:!0,__binaryResponse:!0,__streamClass:!0},H0=(W)=>{return typeof W==="object"&&W!==null&&!i3(W)&&Object.keys(W).every(($)=>n3(yD,$))},hD=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":o2,"X-Stainless-OS":m3(Deno.build.os),"X-Stainless-Arch":g3(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime!=="undefined")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":o2,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":process.version};if(Object.prototype.toString.call(typeof process!=="undefined"?process:0)==="[object process]")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":o2,"X-Stainless-OS":m3(process.platform),"X-Stainless-Arch":g3(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let W=gD();if(W)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":o2,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${W.browser}`,"X-Stainless-Runtime-Version":W.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":o2,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function gD(){if(typeof navigator==="undefined"||!navigator)return null;let W=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:$,pattern:X}of W){let Y=X.exec(navigator.userAgent);if(Y){let J=Y[1]||0,G=Y[2]||0,H=Y[3]||0;return{browser:$,version:`${J}.${G}.${H}`}}}return null}var g3=(W)=>{if(W==="x32")return"x32";if(W==="x86_64"||W==="x64")return"x64";if(W==="arm")return"arm";if(W==="aarch64"||W==="arm64")return"arm64";if(W)return`other:${W}`;return"unknown"},m3=(W)=>{if(W=W.toLowerCase(),W.includes("ios"))return"iOS";if(W==="android")return"Android";if(W==="darwin")return"MacOS";if(W==="win32")return"Windows";if(W==="freebsd")return"FreeBSD";if(W==="openbsd")return"OpenBSD";if(W==="linux")return"Linux";if(W)return`Other:${W}`;return"Unknown"},p3,mD=()=>{return p3??(p3=hD())},pD=(W)=>{try{return JSON.parse(W)}catch($){return}},uD=/^[a-z][a-z0-9+.-]*:/i,cD=(W)=>{return uD.test(W)},rW=(W)=>new Promise(($)=>setTimeout($,W)),JJ=(W,$)=>{if(typeof $!=="number"||!Number.isInteger($))throw new o(`${W} must be an integer`);if($<0)throw new o(`${W} must be a positive integer`);return $},kX=(W)=>{if(W instanceof Error)return W;if(typeof W==="object"&&W!==null)try{return new Error(JSON.stringify(W))}catch{}return new Error(W)};var _4=(W)=>{if(typeof process!=="undefined")return process.env?.[W]?.trim()??void 0;if(typeof Deno!=="undefined")return Deno.env?.get?.(W)?.trim();return};function i3(W){if(!W)return!0;for(let $ in W)return!1;return!0}function n3(W,$){return Object.prototype.hasOwnProperty.call(W,$)}function u3(W,$){for(let X in $){if(!n3($,X))continue;let Y=X.toLowerCase();if(!Y)continue;let J=$[X];if(J===null)delete W[Y];else if(J!==void 0)W[Y]=J}}var c3=new Set(["authorization","api-key"]);function nW(W,...$){if(typeof process!=="undefined"&&process?.env?.DEBUG==="true"){let X=$.map((Y)=>{if(!Y)return Y;if(Y.headers){let G={...Y,headers:{...Y.headers}};for(let H in Y.headers)if(c3.has(H.toLowerCase()))G.headers[H]="REDACTED";return G}let J=null;for(let G in Y)if(c3.has(G.toLowerCase()))J??(J={...Y}),J[G]="REDACTED";return J??Y});console.log(`OpenAI:DEBUG:${W}`,...X)}}var dD=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(W)=>{let $=Math.random()*16|0;return(W==="x"?$:$&3|8).toString(16)})},r3=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},lD=(W)=>{return typeof W?.get==="function"};var fX=(W,$)=>{let X=$.toLowerCase();if(lD(W)){let Y=$[0]?.toUpperCase()+$.substring(1).replace(/([^\w])(\w)/g,(J,G,H)=>G+H.toUpperCase());for(let J of[$,X,$.toUpperCase(),Y]){let G=W.get(J);if(G)return G}}for(let[Y,J]of Object.entries(W))if(Y.toLowerCase()===X){if(Array.isArray(J)){if(J.length<=1)return J[0];return console.warn(`Received ${J.length} entries for the ${$} header, using the first entry.`),J[0]}return J}return};var t3=(W)=>{if(typeof Buffer!=="undefined"){let $=Buffer.from(W,"base64");return Array.from(new Float32Array($.buffer,$.byteOffset,$.length/Float32Array.BYTES_PER_ELEMENT))}else{let $=atob(W),X=$.length,Y=new Uint8Array(X);for(let J=0;J<X;J++)Y[J]=$.charCodeAt(J);return Array.from(new Float32Array(Y.buffer))}};function D4(W){return W!=null&&typeof W==="object"&&!Array.isArray(W)}class tW extends xX{constructor(W,$,X,Y){super(W,$,X,Y);this.data=X.data||[],this.object=X.object}getPaginatedItems(){return this.data??[]}nextPageParams(){return null}nextPageInfo(){return null}}class L0 extends xX{constructor(W,$,X,Y){super(W,$,X,Y);this.data=X.data||[],this.has_more=X.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageParams(){let W=this.nextPageInfo();if(!W)return null;if("params"in W)return W.params;let $=Object.fromEntries(W.url.searchParams);if(!Object.keys($).length)return null;return $}nextPageInfo(){let W=this.getPaginatedItems();if(!W.length)return null;let $=W[W.length-1]?.id;if(!$)return null;return{params:{after:$}}}}class f{constructor(W){this._client=W}}class V4 extends f{list(W,$={},X){if(H0($))return this.list(W,{},$);return this._client.getAPIList(`/chat/completions/${W}/messages`,HJ,{query:$,...X})}}class a2 extends f{constructor(){super(...arguments);this.messages=new V4(this._client)}create(W,$){return this._client.post("/chat/completions",{body:W,...$,stream:W.stream??!1})}retrieve(W,$){return this._client.get(`/chat/completions/${W}`,$)}update(W,$,X){return this._client.post(`/chat/completions/${W}`,{body:$,...X})}list(W={},$){if(H0(W))return this.list({},W);return this._client.getAPIList("/chat/completions",s2,{query:W,...$})}del(W,$){return this._client.delete(`/chat/completions/${W}`,$)}}class s2 extends L0{}class HJ extends L0{}a2.ChatCompletionsPage=s2;a2.Messages=V4;class B2 extends f{constructor(){super(...arguments);this.completions=new a2(this._client)}}B2.Completions=a2;B2.ChatCompletionsPage=s2;class O4 extends f{create(W,$){return this._client.post("/audio/speech",{body:W,...$,headers:{Accept:"application/octet-stream",...$?.headers},__binaryResponse:!0})}}class K4 extends f{create(W,$){return this._client.post("/audio/transcriptions",YW({body:W,...$,stream:W.stream??!1,__metadata:{model:W.model}}))}}class L4 extends f{create(W,$){return this._client.post("/audio/translations",YW({body:W,...$,__metadata:{model:W.model}}))}}class aW extends f{constructor(){super(...arguments);this.transcriptions=new K4(this._client),this.translations=new L4(this._client),this.speech=new O4(this._client)}}aW.Transcriptions=K4;aW.Translations=L4;aW.Speech=O4;class e2 extends f{create(W,$){return this._client.post("/batches",{body:W,...$})}retrieve(W,$){return this._client.get(`/batches/${W}`,$)}list(W={},$){if(H0(W))return this.list({},W);return this._client.getAPIList("/batches",p8,{query:W,...$})}cancel(W,$){return this._client.post(`/batches/${W}/cancel`,$)}}class p8 extends L0{}e2.BatchesPage=p8;var KW=function(W,$,X,Y,J){if(Y==="m")throw new TypeError("Private method is not writable");if(Y==="a"&&!J)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?W!==$||!J:!$.has(W))throw new TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:$.set(W,X),X},u0=function(W,$,X,Y){if(X==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?W!==$||!Y:!$.has(W))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:$.get(W)},QJ,vX,bX,A4,E4,yX,N4,sW,B4,hX,gX,u8,a3;class W8{constructor(){QJ.add(this),this.controller=new AbortController,vX.set(this,void 0),bX.set(this,()=>{}),A4.set(this,()=>{}),E4.set(this,void 0),yX.set(this,()=>{}),N4.set(this,()=>{}),sW.set(this,{}),B4.set(this,!1),hX.set(this,!1),gX.set(this,!1),u8.set(this,!1),KW(this,vX,new Promise((W,$)=>{KW(this,bX,W,"f"),KW(this,A4,$,"f")}),"f"),KW(this,E4,new Promise((W,$)=>{KW(this,yX,W,"f"),KW(this,N4,$,"f")}),"f"),u0(this,vX,"f").catch(()=>{}),u0(this,E4,"f").catch(()=>{})}_run(W){setTimeout(()=>{W().then(()=>{this._emitFinal(),this._emit("end")},u0(this,QJ,"m",a3).bind(this))},0)}_connected(){if(this.ended)return;u0(this,bX,"f").call(this),this._emit("connect")}get ended(){return u0(this,B4,"f")}get errored(){return u0(this,hX,"f")}get aborted(){return u0(this,gX,"f")}abort(){this.controller.abort()}on(W,$){return(u0(this,sW,"f")[W]||(u0(this,sW,"f")[W]=[])).push({listener:$}),this}off(W,$){let X=u0(this,sW,"f")[W];if(!X)return this;let Y=X.findIndex((J)=>J.listener===$);if(Y>=0)X.splice(Y,1);return this}once(W,$){return(u0(this,sW,"f")[W]||(u0(this,sW,"f")[W]=[])).push({listener:$,once:!0}),this}emitted(W){return new Promise(($,X)=>{if(KW(this,u8,!0,"f"),W!=="error")this.once("error",X);this.once(W,$)})}async done(){KW(this,u8,!0,"f"),await u0(this,E4,"f")}_emit(W,...$){if(u0(this,B4,"f"))return;if(W==="end")KW(this,B4,!0,"f"),u0(this,yX,"f").call(this);let X=u0(this,sW,"f")[W];if(X)u0(this,sW,"f")[W]=X.filter((Y)=>!Y.once),X.forEach(({listener:Y})=>Y(...$));if(W==="abort"){let Y=$[0];if(!u0(this,u8,"f")&&!X?.length)Promise.reject(Y);u0(this,A4,"f").call(this,Y),u0(this,N4,"f").call(this,Y),this._emit("end");return}if(W==="error"){let Y=$[0];if(!u0(this,u8,"f")&&!X?.length)Promise.reject(Y);u0(this,A4,"f").call(this,Y),u0(this,N4,"f").call(this,Y),this._emit("end")}}_emitFinal(){}}vX=new WeakMap,bX=new WeakMap,A4=new WeakMap,E4=new WeakMap,yX=new WeakMap,N4=new WeakMap,sW=new WeakMap,B4=new WeakMap,hX=new WeakMap,gX=new WeakMap,u8=new WeakMap,QJ=new WeakSet,a3=function W($){if(KW(this,hX,!0,"f"),$ instanceof Error&&$.name==="AbortError")$=new X1;if($ instanceof X1)return KW(this,gX,!0,"f"),this._emit("abort",$);if($ instanceof o)return this._emit("error",$);if($ instanceof Error){let X=new o($.message);return X.cause=$,this._emit("error",X)}return this._emit("error",new o(String($)))};var i=function(W,$,X,Y){if(X==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?W!==$||!Y:!$.has(W))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:$.get(W)},n1=function(W,$,X,Y,J){if(Y==="m")throw new TypeError("Private method is not writable");if(Y==="a"&&!J)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?W!==$||!J:!$.has(W))throw new TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:$.set(W,X),X},M1,zJ,bW,mX,LW,X8,c8,$8,cX,r1,pX,uX,S4,R4,Z4,s3,e3,WH,$H,XH,YH,JH;class t1 extends W8{constructor(){super(...arguments);M1.add(this),zJ.set(this,[]),bW.set(this,{}),mX.set(this,{}),LW.set(this,void 0),X8.set(this,void 0),c8.set(this,void 0),$8.set(this,void 0),cX.set(this,void 0),r1.set(this,void 0),pX.set(this,void 0),uX.set(this,void 0),S4.set(this,void 0)}[(zJ=new WeakMap,bW=new WeakMap,mX=new WeakMap,LW=new WeakMap,X8=new WeakMap,c8=new WeakMap,$8=new WeakMap,cX=new WeakMap,r1=new WeakMap,pX=new WeakMap,uX=new WeakMap,S4=new WeakMap,M1=new WeakSet,Symbol.asyncIterator)](){let W=[],$=[],X=!1;return this.on("event",(Y)=>{let J=$.shift();if(J)J.resolve(Y);else W.push(Y)}),this.on("end",()=>{X=!0;for(let Y of $)Y.resolve(void 0);$.length=0}),this.on("abort",(Y)=>{X=!0;for(let J of $)J.reject(Y);$.length=0}),this.on("error",(Y)=>{X=!0;for(let J of $)J.reject(Y);$.length=0}),{next:async()=>{if(!W.length){if(X)return{value:void 0,done:!0};return new Promise((J,G)=>$.push({resolve:J,reject:G})).then((J)=>J?{value:J,done:!1}:{value:void 0,done:!0})}return{value:W.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}static fromReadableStream(W){let $=new t1;return $._run(()=>$._fromReadableStream(W)),$}async _fromReadableStream(W,$){let X=$?.signal;if(X){if(X.aborted)this.controller.abort();X.addEventListener("abort",()=>this.controller.abort())}this._connected();let Y=i1.fromReadableStream(W,this.controller);for await(let J of Y)i(this,M1,"m",R4).call(this,J);if(Y.controller.signal?.aborted)throw new X1;return this._addRun(i(this,M1,"m",Z4).call(this))}toReadableStream(){return new i1(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(W,$,X,Y,J){let G=new t1;return G._run(()=>G._runToolAssistantStream(W,$,X,Y,{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),G}async _createToolAssistantStream(W,$,X,Y,J){let G=J?.signal;if(G){if(G.aborted)this.controller.abort();G.addEventListener("abort",()=>this.controller.abort())}let H={...Y,stream:!0},Q=await W.submitToolOutputs($,X,H,{...J,signal:this.controller.signal});this._connected();for await(let z of Q)i(this,M1,"m",R4).call(this,z);if(Q.controller.signal?.aborted)throw new X1;return this._addRun(i(this,M1,"m",Z4).call(this))}static createThreadAssistantStream(W,$,X){let Y=new t1;return Y._run(()=>Y._threadAssistantStream(W,$,{...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"stream"}})),Y}static createAssistantStream(W,$,X,Y){let J=new t1;return J._run(()=>J._runAssistantStream(W,$,X,{...Y,headers:{...Y?.headers,"X-Stainless-Helper-Method":"stream"}})),J}currentEvent(){return i(this,pX,"f")}currentRun(){return i(this,uX,"f")}currentMessageSnapshot(){return i(this,LW,"f")}currentRunStepSnapshot(){return i(this,S4,"f")}async finalRunSteps(){return await this.done(),Object.values(i(this,bW,"f"))}async finalMessages(){return await this.done(),Object.values(i(this,mX,"f"))}async finalRun(){if(await this.done(),!i(this,X8,"f"))throw Error("Final run was not received.");return i(this,X8,"f")}async _createThreadAssistantStream(W,$,X){let Y=X?.signal;if(Y){if(Y.aborted)this.controller.abort();Y.addEventListener("abort",()=>this.controller.abort())}let J={...$,stream:!0},G=await W.createAndRun(J,{...X,signal:this.controller.signal});this._connected();for await(let H of G)i(this,M1,"m",R4).call(this,H);if(G.controller.signal?.aborted)throw new X1;return this._addRun(i(this,M1,"m",Z4).call(this))}async _createAssistantStream(W,$,X,Y){let J=Y?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}let G={...X,stream:!0},H=await W.create($,G,{...Y,signal:this.controller.signal});this._connected();for await(let Q of H)i(this,M1,"m",R4).call(this,Q);if(H.controller.signal?.aborted)throw new X1;return this._addRun(i(this,M1,"m",Z4).call(this))}static accumulateDelta(W,$){for(let[X,Y]of Object.entries($)){if(!W.hasOwnProperty(X)){W[X]=Y;continue}let J=W[X];if(J===null||J===void 0){W[X]=Y;continue}if(X==="index"||X==="type"){W[X]=Y;continue}if(typeof J==="string"&&typeof Y==="string")J+=Y;else if(typeof J==="number"&&typeof Y==="number")J+=Y;else if(D4(J)&&D4(Y))J=this.accumulateDelta(J,Y);else if(Array.isArray(J)&&Array.isArray(Y)){if(J.every((G)=>typeof G==="string"||typeof G==="number")){J.push(...Y);continue}for(let G of Y){if(!D4(G))throw new Error(`Expected array delta entry to be an object but got: ${G}`);let H=G.index;if(H==null)throw console.error(G),new Error("Expected array delta entry to have an `index` property");if(typeof H!=="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${H}`);let Q=J[H];if(Q==null)J.push(G);else J[H]=this.accumulateDelta(Q,G)}continue}else throw Error(`Unhandled record type: ${X}, deltaValue: ${Y}, accValue: ${J}`);W[X]=J}return W}_addRun(W){return W}async _threadAssistantStream(W,$,X){return await this._createThreadAssistantStream($,W,X)}async _runAssistantStream(W,$,X,Y){return await this._createAssistantStream($,W,X,Y)}async _runToolAssistantStream(W,$,X,Y,J){return await this._createToolAssistantStream(X,W,$,Y,J)}}R4=function W($){if(this.ended)return;switch(n1(this,pX,$,"f"),i(this,M1,"m",WH).call(this,$),$.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":i(this,M1,"m",JH).call(this,$);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":i(this,M1,"m",e3).call(this,$);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":i(this,M1,"m",s3).call(this,$);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:aD($)}},Z4=function W(){if(this.ended)throw new o("stream has ended, this shouldn't happen");if(!i(this,X8,"f"))throw Error("Final run has not been received");return i(this,X8,"f")},s3=function W($){let[X,Y]=i(this,M1,"m",XH).call(this,$,i(this,LW,"f"));n1(this,LW,X,"f"),i(this,mX,"f")[X.id]=X;for(let J of Y){let G=X.content[J.index];if(G?.type=="text")this._emit("textCreated",G.text)}switch($.event){case"thread.message.created":this._emit("messageCreated",$.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",$.data.delta,X),$.data.delta.content)for(let J of $.data.delta.content){if(J.type=="text"&&J.text){let G=J.text,H=X.content[J.index];if(H&&H.type=="text")this._emit("textDelta",G,H.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(J.index!=i(this,c8,"f")){if(i(this,$8,"f"))switch(i(this,$8,"f").type){case"text":this._emit("textDone",i(this,$8,"f").text,i(this,LW,"f"));break;case"image_file":this._emit("imageFileDone",i(this,$8,"f").image_file,i(this,LW,"f"));break}n1(this,c8,J.index,"f")}n1(this,$8,X.content[J.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(i(this,c8,"f")!==void 0){let J=$.data.content[i(this,c8,"f")];if(J)switch(J.type){case"image_file":this._emit("imageFileDone",J.image_file,i(this,LW,"f"));break;case"text":this._emit("textDone",J.text,i(this,LW,"f"));break}}if(i(this,LW,"f"))this._emit("messageDone",$.data);n1(this,LW,void 0,"f")}},e3=function W($){let X=i(this,M1,"m",$H).call(this,$);switch(n1(this,S4,X,"f"),$.event){case"thread.run.step.created":this._emit("runStepCreated",$.data);break;case"thread.run.step.delta":let Y=$.data.delta;if(Y.step_details&&Y.step_details.type=="tool_calls"&&Y.step_details.tool_calls&&X.step_details.type=="tool_calls")for(let G of Y.step_details.tool_calls)if(G.index==i(this,cX,"f"))this._emit("toolCallDelta",G,X.step_details.tool_calls[G.index]);else{if(i(this,r1,"f"))this._emit("toolCallDone",i(this,r1,"f"));if(n1(this,cX,G.index,"f"),n1(this,r1,X.step_details.tool_calls[G.index],"f"),i(this,r1,"f"))this._emit("toolCallCreated",i(this,r1,"f"))}this._emit("runStepDelta",$.data.delta,X);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":if(n1(this,S4,void 0,"f"),$.data.step_details.type=="tool_calls"){if(i(this,r1,"f"))this._emit("toolCallDone",i(this,r1,"f")),n1(this,r1,void 0,"f")}this._emit("runStepDone",$.data,X);break;case"thread.run.step.in_progress":break}},WH=function W($){i(this,zJ,"f").push($),this._emit("event",$)},$H=function W($){switch($.event){case"thread.run.step.created":return i(this,bW,"f")[$.data.id]=$.data,$.data;case"thread.run.step.delta":let X=i(this,bW,"f")[$.data.id];if(!X)throw Error("Received a RunStepDelta before creation of a snapshot");let Y=$.data;if(Y.delta){let J=t1.accumulateDelta(X,Y.delta);i(this,bW,"f")[$.data.id]=J}return i(this,bW,"f")[$.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":i(this,bW,"f")[$.data.id]=$.data;break}if(i(this,bW,"f")[$.data.id])return i(this,bW,"f")[$.data.id];throw new Error("No snapshot available")},XH=function W($,X){let Y=[];switch($.event){case"thread.message.created":return[$.data,Y];case"thread.message.delta":if(!X)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let J=$.data;if(J.delta.content)for(let G of J.delta.content)if(G.index in X.content){let H=X.content[G.index];X.content[G.index]=i(this,M1,"m",YH).call(this,G,H)}else X.content[G.index]=G,Y.push(G);return[X,Y];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(X)return[X,Y];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},YH=function W($,X){return t1.accumulateDelta(X,$)},JH=function W($){switch(n1(this,uX,$.data,"f"),$.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":if(n1(this,X8,$.data,"f"),i(this,r1,"f"))this._emit("toolCallDone",i(this,r1,"f")),n1(this,r1,void 0,"f");break;case"thread.run.cancelling":break}};function aD(W){}class d8 extends f{create(W,$){return this._client.post("/assistants",{body:W,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(W,$){return this._client.get(`/assistants/${W}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(W,$,X){return this._client.post(`/assistants/${W}`,{body:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}list(W={},$){if(H0(W))return this.list({},W);return this._client.getAPIList("/assistants",q4,{query:W,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(W,$){return this._client.delete(`/assistants/${W}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class q4 extends L0{}d8.AssistantsPage=q4;function FJ(W){return typeof W.parse==="function"}var R2=(W)=>{return W?.role==="assistant"},TJ=(W)=>{return W?.role==="function"},UJ=(W)=>{return W?.role==="tool"};function C4(W){return W?.$brand==="auto-parseable-response-format"}function Y8(W){return W?.$brand==="auto-parseable-tool"}function GH(W,$){if(!$||!wJ($))return{...W,choices:W.choices.map((X)=>({...X,message:{...X.message,parsed:null,...X.message.tool_calls?{tool_calls:X.message.tool_calls}:void 0}}))};return k4(W,$)}function k4(W,$){let X=W.choices.map((Y)=>{if(Y.finish_reason==="length")throw new U4;if(Y.finish_reason==="content_filter")throw new w4;return{...Y,message:{...Y.message,...Y.message.tool_calls?{tool_calls:Y.message.tool_calls?.map((J)=>WV($,J))??void 0}:void 0,parsed:Y.message.content&&!Y.message.refusal?eD($,Y.message.content):null}}});return{...W,choices:X}}function eD(W,$){if(W.response_format?.type!=="json_schema")return null;if(W.response_format?.type==="json_schema"){if("$parseRaw"in W.response_format)return W.response_format.$parseRaw($);return JSON.parse($)}return null}function WV(W,$){let X=W.tools?.find((Y)=>Y.function?.name===$.function.name);return{...$,function:{...$.function,parsed_arguments:Y8(X)?X.$parseRaw($.function.arguments):X?.function.strict?JSON.parse($.function.arguments):null}}}function HH(W,$){if(!W)return!1;let X=W.tools?.find((Y)=>Y.function?.name===$.function.name);return Y8(X)||X?.function.strict||!1}function wJ(W){if(C4(W.response_format))return!0;return W.tools?.some(($)=>Y8($)||$.type==="function"&&$.function.strict===!0)??!1}function QH(W){for(let $ of W??[]){if($.type!=="function")throw new o(`Currently only \`function\` tool types support auto-parsing; Received \`${$.type}\``);if($.function.strict!==!0)throw new o(`The \`${$.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var v1=function(W,$,X,Y){if(X==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?W!==$||!Y:!$.has(W))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:$.get(W)},A1,MJ,dX,_J,DJ,VJ,FH,OJ,zH=10;class I4 extends W8{constructor(){super(...arguments);A1.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(W){this._chatCompletions.push(W),this._emit("chatCompletion",W);let $=W.choices[0]?.message;if($)this._addMessage($);return W}_addMessage(W,$=!0){if(!("content"in W))W.content=null;if(this.messages.push(W),$){if(this._emit("message",W),(TJ(W)||UJ(W))&&W.content)this._emit("functionCallResult",W.content);else if(R2(W)&&W.function_call)this._emit("functionCall",W.function_call);else if(R2(W)&&W.tool_calls){for(let X of W.tool_calls)if(X.type==="function")this._emit("functionCall",X.function)}}}async finalChatCompletion(){await this.done();let W=this._chatCompletions[this._chatCompletions.length-1];if(!W)throw new o("stream ended without producing a ChatCompletion");return W}async finalContent(){return await this.done(),v1(this,A1,"m",MJ).call(this)}async finalMessage(){return await this.done(),v1(this,A1,"m",dX).call(this)}async finalFunctionCall(){return await this.done(),v1(this,A1,"m",_J).call(this)}async finalFunctionCallResult(){return await this.done(),v1(this,A1,"m",DJ).call(this)}async totalUsage(){return await this.done(),v1(this,A1,"m",VJ).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let W=this._chatCompletions[this._chatCompletions.length-1];if(W)this._emit("finalChatCompletion",W);let $=v1(this,A1,"m",dX).call(this);if($)this._emit("finalMessage",$);let X=v1(this,A1,"m",MJ).call(this);if(X)this._emit("finalContent",X);let Y=v1(this,A1,"m",_J).call(this);if(Y)this._emit("finalFunctionCall",Y);let J=v1(this,A1,"m",DJ).call(this);if(J!=null)this._emit("finalFunctionCallResult",J);if(this._chatCompletions.some((G)=>G.usage))this._emit("totalUsage",v1(this,A1,"m",VJ).call(this))}async _createChatCompletion(W,$,X){let Y=X?.signal;if(Y){if(Y.aborted)this.controller.abort();Y.addEventListener("abort",()=>this.controller.abort())}v1(this,A1,"m",FH).call(this,$);let J=await W.chat.completions.create({...$,stream:!1},{...X,signal:this.controller.signal});return this._connected(),this._addChatCompletion(k4(J,$))}async _runChatCompletion(W,$,X){for(let Y of $.messages)this._addMessage(Y,!1);return await this._createChatCompletion(W,$,X)}async _runFunctions(W,$,X){let{function_call:J="auto",stream:G,...H}=$,Q=typeof J!=="string"&&J?.name,{maxChatCompletions:z=zH}=X||{},F={};for(let U of $.functions)F[U.name||U.function.name]=U;let T=$.functions.map((U)=>({name:U.name||U.function.name,parameters:U.parameters,description:U.description}));for(let U of $.messages)this._addMessage(U,!1);for(let U=0;U<z;++U){let V=(await this._createChatCompletion(W,{...H,function_call:J,functions:T,messages:[...this.messages]},X)).choices[0]?.message;if(!V)throw new o("missing message in ChatCompletion response");if(!V.function_call)return;let{name:K,arguments:N}=V.function_call,I=F[K];if(!I){let m=`Invalid function_call: ${JSON.stringify(K)}. Available options are: ${T.map((c)=>JSON.stringify(c.name)).join(", ")}. Please try again`;this._addMessage({role:"function",name:K,content:m});continue}else if(Q&&Q!==K){let m=`Invalid function_call: ${JSON.stringify(K)}. ${JSON.stringify(Q)} requested. Please try again`;this._addMessage({role:"function",name:K,content:m});continue}let C;try{C=FJ(I)?await I.parse(N):N}catch(m){this._addMessage({role:"function",name:K,content:m instanceof Error?m.message:String(m)});continue}let B=await I.function(C,this),q=v1(this,A1,"m",OJ).call(this,B);if(this._addMessage({role:"function",name:K,content:q}),Q)return}}async _runTools(W,$,X){let{tool_choice:J="auto",stream:G,...H}=$,Q=typeof J!=="string"&&J?.function?.name,{maxChatCompletions:z=zH}=X||{},F=$.tools.map((M)=>{if(Y8(M)){if(!M.$callback)throw new o("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:M.$callback,name:M.function.name,description:M.function.description||"",parameters:M.function.parameters,parse:M.$parseRaw,strict:!0}}}return M}),T={};for(let M of F)if(M.type==="function")T[M.function.name||M.function.function.name]=M.function;let U="tools"in $?F.map((M)=>M.type==="function"?{type:"function",function:{name:M.function.name||M.function.function.name,parameters:M.function.parameters,description:M.function.description,strict:M.function.strict}}:M):void 0;for(let M of $.messages)this._addMessage(M,!1);for(let M=0;M<z;++M){let K=(await this._createChatCompletion(W,{...H,tool_choice:J,tools:U,messages:[...this.messages]},X)).choices[0]?.message;if(!K)throw new o("missing message in ChatCompletion response");if(!K.tool_calls?.length)return;for(let N of K.tool_calls){if(N.type!=="function")continue;let I=N.id,{name:C,arguments:B}=N.function,q=T[C];if(!q){let h=`Invalid tool_call: ${JSON.stringify(C)}. Available options are: ${Object.keys(T).map((U0)=>JSON.stringify(U0)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:I,content:h});continue}else if(Q&&Q!==C){let h=`Invalid tool_call: ${JSON.stringify(C)}. ${JSON.stringify(Q)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:I,content:h});continue}let m;try{m=FJ(q)?await q.parse(B):B}catch(h){let U0=h instanceof Error?h.message:String(h);this._addMessage({role:"tool",tool_call_id:I,content:U0});continue}let c=await q.function(m,this),v=v1(this,A1,"m",OJ).call(this,c);if(this._addMessage({role:"tool",tool_call_id:I,content:v}),Q)return}}return}}A1=new WeakSet,MJ=function W(){return v1(this,A1,"m",dX).call(this).content??null},dX=function W(){let $=this.messages.length;while($-- >0){let X=this.messages[$];if(R2(X)){let{function_call:Y,...J}=X,G={...J,content:X.content??null,refusal:X.refusal??null};if(Y)G.function_call=Y;return G}}throw new o("stream ended without producing a ChatCompletionMessage with role=assistant")},_J=function W(){for(let $=this.messages.length-1;$>=0;$--){let X=this.messages[$];if(R2(X)&&X?.function_call)return X.function_call;if(R2(X)&&X?.tool_calls?.length)return X.tool_calls.at(-1)?.function}return},DJ=function W(){for(let $=this.messages.length-1;$>=0;$--){let X=this.messages[$];if(TJ(X)&&X.content!=null)return X.content;if(UJ(X)&&X.content!=null&&typeof X.content==="string"&&this.messages.some((Y)=>Y.role==="assistant"&&Y.tool_calls?.some((J)=>J.type==="function"&&J.id===X.tool_call_id)))return X.content}return},VJ=function W(){let $={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:X}of this._chatCompletions)if(X)$.completion_tokens+=X.completion_tokens,$.prompt_tokens+=X.prompt_tokens,$.total_tokens+=X.total_tokens;return $},FH=function W($){if($.n!=null&&$.n>1)throw new o("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},OJ=function W($){return typeof $==="string"?$:$===void 0?"undefined":JSON.stringify($)};class l8 extends I4{static runFunctions(W,$,X){let Y=new l8,J={...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return Y._run(()=>Y._runFunctions(W,$,J)),Y}static runTools(W,$,X){let Y=new l8,J={...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"runTools"}};return Y._run(()=>Y._runTools(W,$,J)),Y}_addMessage(W,$=!0){if(super._addMessage(W,$),R2(W)&&W.content)this._emit("content",W.content)}}var T1={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511};class TH extends Error{}class UH extends Error{}function $V(W,$=T1.ALL){if(typeof W!=="string")throw new TypeError(`expecting str, got ${typeof W}`);if(!W.trim())throw new Error(`${W} is empty`);return XV(W.trim(),$)}var XV=(W,$)=>{let X=W.length,Y=0,J=(M)=>{throw new TH(`${M} at position ${Y}`)},G=(M)=>{throw new UH(`${M} at position ${Y}`)},H=()=>{if(U(),Y>=X)J("Unexpected end of input");if(W[Y]==='"')return Q();if(W[Y]==="{")return z();if(W[Y]==="[")return F();if(W.substring(Y,Y+4)==="null"||T1.NULL&$&&X-Y<4&&"null".startsWith(W.substring(Y)))return Y+=4,null;if(W.substring(Y,Y+4)==="true"||T1.BOOL&$&&X-Y<4&&"true".startsWith(W.substring(Y)))return Y+=4,!0;if(W.substring(Y,Y+5)==="false"||T1.BOOL&$&&X-Y<5&&"false".startsWith(W.substring(Y)))return Y+=5,!1;if(W.substring(Y,Y+8)==="Infinity"||T1.INFINITY&$&&X-Y<8&&"Infinity".startsWith(W.substring(Y)))return Y+=8,1/0;if(W.substring(Y,Y+9)==="-Infinity"||T1.MINUS_INFINITY&$&&1<X-Y&&X-Y<9&&"-Infinity".startsWith(W.substring(Y)))return Y+=9,-1/0;if(W.substring(Y,Y+3)==="NaN"||T1.NAN&$&&X-Y<3&&"NaN".startsWith(W.substring(Y)))return Y+=3,NaN;return T()},Q=()=>{let M=Y,V=!1;Y++;while(Y<X&&(W[Y]!=='"'||V&&W[Y-1]==="\\"))V=W[Y]==="\\"?!V:!1,Y++;if(W.charAt(Y)=='"')try{return JSON.parse(W.substring(M,++Y-Number(V)))}catch(K){G(String(K))}else if(T1.STR&$)try{return JSON.parse(W.substring(M,Y-Number(V))+'"')}catch(K){return JSON.parse(W.substring(M,W.lastIndexOf("\\"))+'"')}J("Unterminated string literal")},z=()=>{Y++,U();let M={};try{while(W[Y]!=="}"){if(U(),Y>=X&&T1.OBJ&$)return M;let V=Q();U(),Y++;try{let K=H();Object.defineProperty(M,V,{value:K,writable:!0,enumerable:!0,configurable:!0})}catch(K){if(T1.OBJ&$)return M;else throw K}if(U(),W[Y]===",")Y++}}catch(V){if(T1.OBJ&$)return M;else J("Expected '}' at end of object")}return Y++,M},F=()=>{Y++;let M=[];try{while(W[Y]!=="]")if(M.push(H()),U(),W[Y]===",")Y++}catch(V){if(T1.ARR&$)return M;J("Expected ']' at end of array")}return Y++,M},T=()=>{if(Y===0){if(W==="-"&&T1.NUM&$)J("Not sure what '-' is");try{return JSON.parse(W)}catch(V){if(T1.NUM&$)try{if(W[W.length-1]===".")return JSON.parse(W.substring(0,W.lastIndexOf(".")));return JSON.parse(W.substring(0,W.lastIndexOf("e")))}catch(K){}G(String(V))}}let M=Y;if(W[Y]==="-")Y++;while(W[Y]&&!",]}".includes(W[Y]))Y++;if(Y==X&&!(T1.NUM&$))J("Unterminated number literal");try{return JSON.parse(W.substring(M,Y))}catch(V){if(W.substring(M,Y)==="-"&&T1.NUM&$)J("Not sure what '-' is");try{return JSON.parse(W.substring(M,W.lastIndexOf("e")))}catch(K){G(String(K))}}},U=()=>{while(Y<X&&`
19
- \r `.includes(W[Y]))Y++};return H()},KJ=(W)=>$V(W,T1.ALL^T1.NUM);var o8=function(W,$,X,Y,J){if(Y==="m")throw new TypeError("Private method is not writable");if(Y==="a"&&!J)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?W!==$||!J:!$.has(W))throw new TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:$.set(W,X),X},B0=function(W,$,X,Y){if(X==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?W!==$||!Y:!$.has(W))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:$.get(W)},Y1,eW,i8,Z2,LJ,lX,AJ,EJ,NJ,oX,BJ,wH;class J8 extends I4{constructor(W){super();Y1.add(this),eW.set(this,void 0),i8.set(this,void 0),Z2.set(this,void 0),o8(this,eW,W,"f"),o8(this,i8,[],"f")}get currentChatCompletionSnapshot(){return B0(this,Z2,"f")}static fromReadableStream(W){let $=new J8(null);return $._run(()=>$._fromReadableStream(W)),$}static createChatCompletion(W,$,X){let Y=new J8($);return Y._run(()=>Y._runChatCompletion(W,{...$,stream:!0},{...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"stream"}})),Y}async _createChatCompletion(W,$,X){super._createChatCompletion;let Y=X?.signal;if(Y){if(Y.aborted)this.controller.abort();Y.addEventListener("abort",()=>this.controller.abort())}B0(this,Y1,"m",LJ).call(this);let J=await W.chat.completions.create({...$,stream:!0},{...X,signal:this.controller.signal});this._connected();for await(let G of J)B0(this,Y1,"m",AJ).call(this,G);if(J.controller.signal?.aborted)throw new X1;return this._addChatCompletion(B0(this,Y1,"m",oX).call(this))}async _fromReadableStream(W,$){let X=$?.signal;if(X){if(X.aborted)this.controller.abort();X.addEventListener("abort",()=>this.controller.abort())}B0(this,Y1,"m",LJ).call(this),this._connected();let Y=i1.fromReadableStream(W,this.controller),J;for await(let G of Y){if(J&&J!==G.id)this._addChatCompletion(B0(this,Y1,"m",oX).call(this));B0(this,Y1,"m",AJ).call(this,G),J=G.id}if(Y.controller.signal?.aborted)throw new X1;return this._addChatCompletion(B0(this,Y1,"m",oX).call(this))}[(eW=new WeakMap,i8=new WeakMap,Z2=new WeakMap,Y1=new WeakSet,LJ=function W(){if(this.ended)return;o8(this,Z2,void 0,"f")},lX=function W($){let X=B0(this,i8,"f")[$.index];if(X)return X;return X={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},B0(this,i8,"f")[$.index]=X,X},AJ=function W($){if(this.ended)return;let X=B0(this,Y1,"m",wH).call(this,$);this._emit("chunk",$,X);for(let Y of $.choices){let J=X.choices[Y.index];if(Y.delta.content!=null&&J.message?.role==="assistant"&&J.message?.content)this._emit("content",Y.delta.content,J.message.content),this._emit("content.delta",{delta:Y.delta.content,snapshot:J.message.content,parsed:J.message.parsed});if(Y.delta.refusal!=null&&J.message?.role==="assistant"&&J.message?.refusal)this._emit("refusal.delta",{delta:Y.delta.refusal,snapshot:J.message.refusal});if(Y.logprobs?.content!=null&&J.message?.role==="assistant")this._emit("logprobs.content.delta",{content:Y.logprobs?.content,snapshot:J.logprobs?.content??[]});if(Y.logprobs?.refusal!=null&&J.message?.role==="assistant")this._emit("logprobs.refusal.delta",{refusal:Y.logprobs?.refusal,snapshot:J.logprobs?.refusal??[]});let G=B0(this,Y1,"m",lX).call(this,J);if(J.finish_reason){if(B0(this,Y1,"m",NJ).call(this,J),G.current_tool_call_index!=null)B0(this,Y1,"m",EJ).call(this,J,G.current_tool_call_index)}for(let H of Y.delta.tool_calls??[]){if(G.current_tool_call_index!==H.index){if(B0(this,Y1,"m",NJ).call(this,J),G.current_tool_call_index!=null)B0(this,Y1,"m",EJ).call(this,J,G.current_tool_call_index)}G.current_tool_call_index=H.index}for(let H of Y.delta.tool_calls??[]){let Q=J.message.tool_calls?.[H.index];if(!Q?.type)continue;if(Q?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:Q.function?.name,index:H.index,arguments:Q.function.arguments,parsed_arguments:Q.function.parsed_arguments,arguments_delta:H.function?.arguments??""});else _H(Q?.type)}}},EJ=function W($,X){if(B0(this,Y1,"m",lX).call(this,$).done_tool_calls.has(X))return;let J=$.message.tool_calls?.[X];if(!J)throw new Error("no tool call snapshot");if(!J.type)throw new Error("tool call snapshot missing `type`");if(J.type==="function"){let G=B0(this,eW,"f")?.tools?.find((H)=>H.type==="function"&&H.function.name===J.function.name);this._emit("tool_calls.function.arguments.done",{name:J.function.name,index:X,arguments:J.function.arguments,parsed_arguments:Y8(G)?G.$parseRaw(J.function.arguments):G?.function.strict?JSON.parse(J.function.arguments):null})}else _H(J.type)},NJ=function W($){let X=B0(this,Y1,"m",lX).call(this,$);if($.message.content&&!X.content_done){X.content_done=!0;let Y=B0(this,Y1,"m",BJ).call(this);this._emit("content.done",{content:$.message.content,parsed:Y?Y.$parseRaw($.message.content):null})}if($.message.refusal&&!X.refusal_done)X.refusal_done=!0,this._emit("refusal.done",{refusal:$.message.refusal});if($.logprobs?.content&&!X.logprobs_content_done)X.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:$.logprobs.content});if($.logprobs?.refusal&&!X.logprobs_refusal_done)X.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:$.logprobs.refusal})},oX=function W(){if(this.ended)throw new o("stream has ended, this shouldn't happen");let $=B0(this,Z2,"f");if(!$)throw new o("request ended without sending any chunks");return o8(this,Z2,void 0,"f"),o8(this,i8,[],"f"),YV($,B0(this,eW,"f"))},BJ=function W(){let $=B0(this,eW,"f")?.response_format;if(C4($))return $;return null},wH=function W($){var X,Y,J,G;let H=B0(this,Z2,"f"),{choices:Q,...z}=$;if(!H)H=o8(this,Z2,{...z,choices:[]},"f");else Object.assign(H,z);for(let{delta:F,finish_reason:T,index:U,logprobs:M=null,...V}of $.choices){let K=H.choices[U];if(!K)K=H.choices[U]={finish_reason:T,index:U,message:{},logprobs:M,...V};if(M)if(!K.logprobs)K.logprobs=Object.assign({},M);else{let{content:c,refusal:v,...h}=M;if(MH(h),Object.assign(K.logprobs,h),c)(X=K.logprobs).content??(X.content=[]),K.logprobs.content.push(...c);if(v)(Y=K.logprobs).refusal??(Y.refusal=[]),K.logprobs.refusal.push(...v)}if(T){if(K.finish_reason=T,B0(this,eW,"f")&&wJ(B0(this,eW,"f"))){if(T==="length")throw new U4;if(T==="content_filter")throw new w4}}if(Object.assign(K,V),!F)continue;let{content:N,refusal:I,function_call:C,role:B,tool_calls:q,...m}=F;if(MH(m),Object.assign(K.message,m),I)K.message.refusal=(K.message.refusal||"")+I;if(B)K.message.role=B;if(C)if(!K.message.function_call)K.message.function_call=C;else{if(C.name)K.message.function_call.name=C.name;if(C.arguments)(J=K.message.function_call).arguments??(J.arguments=""),K.message.function_call.arguments+=C.arguments}if(N){if(K.message.content=(K.message.content||"")+N,!K.message.refusal&&B0(this,Y1,"m",BJ).call(this))K.message.parsed=KJ(K.message.content)}if(q){if(!K.message.tool_calls)K.message.tool_calls=[];for(let{index:c,id:v,type:h,function:U0,...m0}of q){let E=(G=K.message.tool_calls)[c]??(G[c]={});if(Object.assign(E,m0),v)E.id=v;if(h)E.type=h;if(U0)E.function??(E.function={name:U0.name??"",arguments:""});if(U0?.name)E.function.name=U0.name;if(U0?.arguments){if(E.function.arguments+=U0.arguments,HH(B0(this,eW,"f"),E))E.function.parsed_arguments=KJ(E.function.arguments)}}}}return H},Symbol.asyncIterator)](){let W=[],$=[],X=!1;return this.on("chunk",(Y)=>{let J=$.shift();if(J)J.resolve(Y);else W.push(Y)}),this.on("end",()=>{X=!0;for(let Y of $)Y.resolve(void 0);$.length=0}),this.on("abort",(Y)=>{X=!0;for(let J of $)J.reject(Y);$.length=0}),this.on("error",(Y)=>{X=!0;for(let J of $)J.reject(Y);$.length=0}),{next:async()=>{if(!W.length){if(X)return{value:void 0,done:!0};return new Promise((J,G)=>$.push({resolve:J,reject:G})).then((J)=>J?{value:J,done:!1}:{value:void 0,done:!0})}return{value:W.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new i1(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function YV(W,$){let{id:X,choices:Y,created:J,model:G,system_fingerprint:H,...Q}=W,z={...Q,id:X,choices:Y.map(({message:F,finish_reason:T,index:U,logprobs:M,...V})=>{if(!T)throw new o(`missing finish_reason for choice ${U}`);let{content:K=null,function_call:N,tool_calls:I,...C}=F,B=F.role;if(!B)throw new o(`missing role for choice ${U}`);if(N){let{arguments:q,name:m}=N;if(q==null)throw new o(`missing function_call.arguments for choice ${U}`);if(!m)throw new o(`missing function_call.name for choice ${U}`);return{...V,message:{content:K,function_call:{arguments:q,name:m},role:B,refusal:F.refusal??null},finish_reason:T,index:U,logprobs:M}}if(I)return{...V,index:U,finish_reason:T,logprobs:M,message:{...C,role:B,content:K,refusal:F.refusal??null,tool_calls:I.map((q,m)=>{let{function:c,type:v,id:h,...U0}=q,{arguments:m0,name:E,..._0}=c||{};if(h==null)throw new o(`missing choices[${U}].tool_calls[${m}].id
18
+ `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],J}if(this.chunks.push(W),W.startsWith(":"))return null;let[$,X,Y]=CD(W,":");if(Y.startsWith(" "))Y=Y.substring(1);if($==="event")this.event=Y;else if($==="data")this.data.push(Y);return null}}function CD(W,$){let X=W.indexOf($);if(X!==-1)return[W.substring(0,X),$,W.substring(X+$.length)];return[W,"",""]}var b3=(W)=>W!=null&&typeof W==="object"&&typeof W.url==="string"&&typeof W.blob==="function",y3=(W)=>W!=null&&typeof W==="object"&&typeof W.name==="string"&&typeof W.lastModified==="number"&&M4(W),M4=(W)=>W!=null&&typeof W==="object"&&typeof W.size==="number"&&typeof W.type==="string"&&typeof W.text==="function"&&typeof W.slice==="function"&&typeof W.arrayBuffer==="function",kD=(W)=>{return y3(W)||b3(W)||r9(W)};async function XJ(W,$,X){if(W=await W,y3(W))return W;if(b3(W)){let J=await W.blob();$||($=new URL(W.url).pathname.split(/[\\/]/).pop()??"unknown_file");let G=M4(J)?[await J.arrayBuffer()]:[J];return new LX(G,$,X)}let Y=await ID(W);if($||($=fD(W)??"unknown_file"),!X?.type){let J=Y[0]?.type;if(typeof J==="string")X={...X,type:J}}return new LX(Y,$,X)}async function ID(W){let $=[];if(typeof W==="string"||ArrayBuffer.isView(W)||W instanceof ArrayBuffer)$.push(W);else if(M4(W))$.push(await W.arrayBuffer());else if(PD(W))for await(let X of W)$.push(X);else throw new Error(`Unexpected data type: ${typeof W}; constructor: ${W?.constructor?.name}; props: ${jD(W)}`);return $}function jD(W){return`[${Object.getOwnPropertyNames(W).map((X)=>`"${X}"`).join(", ")}]`}function fD(W){return WJ(W.name)||WJ(W.filename)||WJ(W.path)?.split(/[\\/]/).pop()}var WJ=(W)=>{if(typeof W==="string")return W;if(typeof Buffer!=="undefined"&&W instanceof Buffer)return String(W);return},PD=(W)=>W!=null&&typeof W==="object"&&typeof W[Symbol.asyncIterator]==="function",YJ=(W)=>W&&typeof W==="object"&&W.body&&W[Symbol.toStringTag]==="MultipartBody";var YW=async(W)=>{let $=await h3(W.body);return i9($,W)},h3=async(W)=>{let $=new l9;return await Promise.all(Object.entries(W||{}).map(([X,Y])=>$J($,X,Y))),$};var $J=async(W,$,X)=>{if(X===void 0)return;if(X==null)throw new TypeError(`Received null for "${$}"; to pass null in FormData, you must use the string 'null'`);if(typeof X==="string"||typeof X==="number"||typeof X==="boolean")W.append($,String(X));else if(kD(X)){let Y=await XJ(X);W.append($,Y)}else if(Array.isArray(X))await Promise.all(X.map((Y)=>$J(W,$+"[]",Y)));else if(typeof X==="object")await Promise.all(Object.entries(X).map(([Y,J])=>$J(W,`${$}[${Y}]`,J)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${X} instead`)};var vD=function(W,$,X,Y,J){if(Y==="m")throw new TypeError("Private method is not writable");if(Y==="a"&&!J)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?W!==$||!J:!$.has(W))throw new TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:$.set(W,X),X},bD=function(W,$,X,Y){if(X==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?W!==$||!Y:!$.has(W))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:$.get(W)},jX;a9();async function d3(W){let{response:$}=W;if(W.options.stream){if(nW("response",$.status,$.url,$.headers,$.body),W.options.__streamClass)return W.options.__streamClass.fromSSEResponse($,W.controller);return i1.fromSSEResponse($,W.controller)}if($.status===204)return null;if(W.options.__binaryResponse)return $;let Y=$.headers.get("content-type")?.split(";")[0]?.trim();if(Y?.includes("application/json")||Y?.endsWith("+json")){let H=await $.json();return nW("response",$.status,$.url,$.headers,H),l3(H,$)}let G=await $.text();return nW("response",$.status,$.url,$.headers,G),G}function l3(W,$){if(!W||typeof W!=="object"||Array.isArray(W))return W;return Object.defineProperty(W,"_request_id",{value:$.headers.get("x-request-id"),enumerable:!1})}class PX extends Promise{constructor(W,$=d3){super((X)=>{X(null)});this.responsePromise=W,this.parseResponse=$}_thenUnwrap(W){return new PX(this.responsePromise,async($)=>l3(W(await this.parseResponse($),$),$.response))}asResponse(){return this.responsePromise.then((W)=>W.response)}async withResponse(){let[W,$]=await Promise.all([this.parse(),this.asResponse()]);return{data:W,response:$,request_id:$.headers.get("x-request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then(this.parseResponse);return this.parsedPromise}then(W,$){return this.parse().then(W,$)}catch(W){return this.parse().catch(W)}finally(W){return this.parse().finally(W)}}class GJ{constructor({baseURL:W,maxRetries:$=2,timeout:X=600000,httpAgent:Y,fetch:J}){this.baseURL=W,this.maxRetries=JJ("maxRetries",$),this.timeout=JJ("timeout",X),this.httpAgent=Y,this.fetch=J??d9}authHeaders(W){return{}}defaultHeaders(W){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...mD(),...this.authHeaders(W)}}validateHeaders(W,$){}defaultIdempotencyKey(){return`stainless-node-retry-${dD()}`}get(W,$){return this.methodRequest("get",W,$)}post(W,$){return this.methodRequest("post",W,$)}patch(W,$){return this.methodRequest("patch",W,$)}put(W,$){return this.methodRequest("put",W,$)}delete(W,$){return this.methodRequest("delete",W,$)}methodRequest(W,$,X){return this.request(Promise.resolve(X).then(async(Y)=>{let J=Y&&M4(Y?.body)?new DataView(await Y.body.arrayBuffer()):Y?.body instanceof DataView?Y.body:Y?.body instanceof ArrayBuffer?new DataView(Y.body):Y&&ArrayBuffer.isView(Y?.body)?new DataView(Y.body.buffer):Y?.body;return{method:W,path:$,...Y,body:J}}))}getAPIList(W,$,X){return this.requestAPIList($,{method:"get",path:W,...X})}calculateContentLength(W){if(typeof W==="string"){if(typeof Buffer!=="undefined")return Buffer.byteLength(W,"utf8").toString();if(typeof TextEncoder!=="undefined")return new TextEncoder().encode(W).length.toString()}else if(ArrayBuffer.isView(W))return W.byteLength.toString();return null}buildRequest(W,{retryCount:$=0}={}){let X={...W},{method:Y,path:J,query:G,headers:H={}}=X,Q=ArrayBuffer.isView(X.body)||X.__binaryRequest&&typeof X.body==="string"?X.body:YJ(X.body)?X.body.body:X.body?JSON.stringify(X.body,null,2):null,z=this.calculateContentLength(Q),F=this.buildURL(J,G);if("timeout"in X)JJ("timeout",X.timeout);X.timeout=X.timeout??this.timeout;let T=X.httpAgent??this.httpAgent??n9(F),U=X.timeout+1000;if(typeof T?.options?.timeout==="number"&&U>(T.options.timeout??0))T.options.timeout=U;if(this.idempotencyHeader&&Y!=="get"){if(!W.idempotencyKey)W.idempotencyKey=this.defaultIdempotencyKey();H[this.idempotencyHeader]=W.idempotencyKey}let M=this.buildHeaders({options:X,headers:H,contentLength:z,retryCount:$});return{req:{method:Y,...Q&&{body:Q},headers:M,...T&&{agent:T},signal:X.signal??null},url:F,timeout:X.timeout}}buildHeaders({options:W,headers:$,contentLength:X,retryCount:Y}){let J={};if(X)J["content-length"]=X;let G=this.defaultHeaders(W);if(u3(J,G),u3(J,$),YJ(W.body)&&i2!=="node")delete J["content-type"];if(fX(G,"x-stainless-retry-count")===void 0&&fX($,"x-stainless-retry-count")===void 0)J["x-stainless-retry-count"]=String(Y);if(fX(G,"x-stainless-timeout")===void 0&&fX($,"x-stainless-timeout")===void 0&&W.timeout)J["x-stainless-timeout"]=String(Math.trunc(W.timeout/1000));return this.validateHeaders(J,$),J}async prepareOptions(W){}async prepareRequest(W,{url:$,options:X}){}parseHeaders(W){return!W?{}:(Symbol.iterator in W)?Object.fromEntries(Array.from(W).map(($)=>[...$])):{...W}}makeStatusError(W,$,X,Y){return r0.generate(W,$,X,Y)}request(W,$=null){return new PX(this.makeRequest(W,$))}async makeRequest(W,$){let X=await W,Y=X.maxRetries??this.maxRetries;if($==null)$=Y;await this.prepareOptions(X);let{req:J,url:G,timeout:H}=this.buildRequest(X,{retryCount:Y-$});if(await this.prepareRequest(J,{url:G,options:X}),nW("request",G,X,J.headers),X.signal?.aborted)throw new X1;let Q=new AbortController,z=await this.fetchWithTimeout(G,J,H,Q).catch(kX);if(z instanceof Error){if(X.signal?.aborted)throw new X1;if($)return this.retryRequest(X,$);if(z.name==="AbortError")throw new r2;throw new n2({cause:z})}let F=e9(z.headers);if(!z.ok){if($&&this.shouldRetry(z)){let N=`retrying, ${$} attempts remaining`;return nW(`response (error; ${N})`,z.status,G,F),this.retryRequest(X,$,F)}let T=await z.text().catch((N)=>kX(N).message),U=pD(T),M=U?void 0:T;throw nW(`response (error; ${$?"(error; no more retries left)":"(error; not retryable)"})`,z.status,G,F,M),this.makeStatusError(z.status,U,M,F)}return{response:z,options:X,controller:Q}}requestAPIList(W,$){let X=this.makeRequest($,null);return new o3(this,X,W)}buildURL(W,$){let X=cD(W)?new URL(W):new URL(this.baseURL+(this.baseURL.endsWith("/")&&W.startsWith("/")?W.slice(1):W)),Y=this.defaultQuery();if(!i3(Y))$={...Y,...$};if(typeof $==="object"&&$&&!Array.isArray($))X.search=this.stringifyQuery($);return X.toString()}stringifyQuery(W){return Object.entries(W).filter(([$,X])=>typeof X!=="undefined").map(([$,X])=>{if(typeof X==="string"||typeof X==="number"||typeof X==="boolean")return`${encodeURIComponent($)}=${encodeURIComponent(X)}`;if(X===null)return`${encodeURIComponent($)}=`;throw new o(`Cannot stringify type ${typeof X}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}async fetchWithTimeout(W,$,X,Y){let{signal:J,...G}=$||{};if(J)J.addEventListener("abort",()=>Y.abort());let H=setTimeout(()=>Y.abort(),X),Q={signal:Y.signal,...G};if(Q.method)Q.method=Q.method.toUpperCase();return this.fetch.call(void 0,W,Q).finally(()=>{clearTimeout(H)})}shouldRetry(W){let $=W.headers.get("x-should-retry");if($==="true")return!0;if($==="false")return!1;if(W.status===408)return!0;if(W.status===409)return!0;if(W.status===429)return!0;if(W.status>=500)return!0;return!1}async retryRequest(W,$,X){let Y,J=X?.["retry-after-ms"];if(J){let H=parseFloat(J);if(!Number.isNaN(H))Y=H}let G=X?.["retry-after"];if(G&&!Y){let H=parseFloat(G);if(!Number.isNaN(H))Y=H*1000;else Y=Date.parse(G)-Date.now()}if(!(Y&&0<=Y&&Y<60000)){let H=W.maxRetries??this.maxRetries;Y=this.calculateDefaultRetryTimeoutMillis($,H)}return await rW(Y),this.makeRequest(W,$-1)}calculateDefaultRetryTimeoutMillis(W,$){let J=$-W,G=Math.min(0.5*Math.pow(2,J),8),H=1-Math.random()*0.25;return G*H*1000}getUserAgent(){return`${this.constructor.name}/JS ${o2}`}}class xX{constructor(W,$,X,Y){jX.set(this,void 0),vD(this,jX,W,"f"),this.options=Y,this.response=$,this.body=X}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageInfo()!=null}async getNextPage(){let W=this.nextPageInfo();if(!W)throw new o("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");let $={...this.options};if("params"in W&&typeof $.query==="object")$.query={...$.query,...W.params};else if("url"in W){let X=[...Object.entries($.query||{}),...W.url.searchParams.entries()];for(let[Y,J]of X)W.url.searchParams.set(Y,J);$.query=void 0,$.path=W.url.toString()}return await bD(this,jX,"f").requestAPIList(this.constructor,$)}async*iterPages(){let W=this;yield W;while(W.hasNextPage())W=await W.getNextPage(),yield W}async*[(jX=new WeakMap,Symbol.asyncIterator)](){for await(let W of this.iterPages())for(let $ of W.getPaginatedItems())yield $}}class o3 extends PX{constructor(W,$,X){super($,async(Y)=>new X(W,Y.response,await d3(Y),Y.options))}async*[Symbol.asyncIterator](){let W=await this;for await(let $ of W)yield $}}var e9=(W)=>{return new Proxy(Object.fromEntries(W.entries()),{get($,X){let Y=X.toString();return $[Y.toLowerCase()]||$[Y]}})},yD={method:!0,path:!0,query:!0,body:!0,headers:!0,maxRetries:!0,stream:!0,timeout:!0,httpAgent:!0,signal:!0,idempotencyKey:!0,__metadata:!0,__binaryRequest:!0,__binaryResponse:!0,__streamClass:!0},H0=(W)=>{return typeof W==="object"&&W!==null&&!i3(W)&&Object.keys(W).every(($)=>n3(yD,$))},hD=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":o2,"X-Stainless-OS":m3(Deno.build.os),"X-Stainless-Arch":g3(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime!=="undefined")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":o2,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":process.version};if(Object.prototype.toString.call(typeof process!=="undefined"?process:0)==="[object process]")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":o2,"X-Stainless-OS":m3(process.platform),"X-Stainless-Arch":g3(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let W=gD();if(W)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":o2,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${W.browser}`,"X-Stainless-Runtime-Version":W.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":o2,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function gD(){if(typeof navigator==="undefined"||!navigator)return null;let W=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:$,pattern:X}of W){let Y=X.exec(navigator.userAgent);if(Y){let J=Y[1]||0,G=Y[2]||0,H=Y[3]||0;return{browser:$,version:`${J}.${G}.${H}`}}}return null}var g3=(W)=>{if(W==="x32")return"x32";if(W==="x86_64"||W==="x64")return"x64";if(W==="arm")return"arm";if(W==="aarch64"||W==="arm64")return"arm64";if(W)return`other:${W}`;return"unknown"},m3=(W)=>{if(W=W.toLowerCase(),W.includes("ios"))return"iOS";if(W==="android")return"Android";if(W==="darwin")return"MacOS";if(W==="win32")return"Windows";if(W==="freebsd")return"FreeBSD";if(W==="openbsd")return"OpenBSD";if(W==="linux")return"Linux";if(W)return`Other:${W}`;return"Unknown"},p3,mD=()=>{return p3??(p3=hD())},pD=(W)=>{try{return JSON.parse(W)}catch($){return}},uD=/^[a-z][a-z0-9+.-]*:/i,cD=(W)=>{return uD.test(W)},rW=(W)=>new Promise(($)=>setTimeout($,W)),JJ=(W,$)=>{if(typeof $!=="number"||!Number.isInteger($))throw new o(`${W} must be an integer`);if($<0)throw new o(`${W} must be a positive integer`);return $},kX=(W)=>{if(W instanceof Error)return W;if(typeof W==="object"&&W!==null)try{return new Error(JSON.stringify(W))}catch{}return new Error(W)};var _4=(W)=>{if(typeof process!=="undefined")return process.env?.[W]?.trim()??void 0;if(typeof Deno!=="undefined")return Deno.env?.get?.(W)?.trim();return};function i3(W){if(!W)return!0;for(let $ in W)return!1;return!0}function n3(W,$){return Object.prototype.hasOwnProperty.call(W,$)}function u3(W,$){for(let X in $){if(!n3($,X))continue;let Y=X.toLowerCase();if(!Y)continue;let J=$[X];if(J===null)delete W[Y];else if(J!==void 0)W[Y]=J}}var c3=new Set(["authorization","api-key"]);function nW(W,...$){if(typeof process!=="undefined"&&process?.env?.DEBUG==="true"){let X=$.map((Y)=>{if(!Y)return Y;if(Y.headers){let G={...Y,headers:{...Y.headers}};for(let H in Y.headers)if(c3.has(H.toLowerCase()))G.headers[H]="REDACTED";return G}let J=null;for(let G in Y)if(c3.has(G.toLowerCase()))J??(J={...Y}),J[G]="REDACTED";return J??Y});console.log(`OpenAI:DEBUG:${W}`,...X)}}var dD=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(W)=>{let $=Math.random()*16|0;return(W==="x"?$:$&3|8).toString(16)})},r3=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},lD=(W)=>{return typeof W?.get==="function"};var fX=(W,$)=>{let X=$.toLowerCase();if(lD(W)){let Y=$[0]?.toUpperCase()+$.substring(1).replace(/([^\w])(\w)/g,(J,G,H)=>G+H.toUpperCase());for(let J of[$,X,$.toUpperCase(),Y]){let G=W.get(J);if(G)return G}}for(let[Y,J]of Object.entries(W))if(Y.toLowerCase()===X){if(Array.isArray(J)){if(J.length<=1)return J[0];return console.warn(`Received ${J.length} entries for the ${$} header, using the first entry.`),J[0]}return J}return};var t3=(W)=>{if(typeof Buffer!=="undefined"){let $=Buffer.from(W,"base64");return Array.from(new Float32Array($.buffer,$.byteOffset,$.length/Float32Array.BYTES_PER_ELEMENT))}else{let $=atob(W),X=$.length,Y=new Uint8Array(X);for(let J=0;J<X;J++)Y[J]=$.charCodeAt(J);return Array.from(new Float32Array(Y.buffer))}};function D4(W){return W!=null&&typeof W==="object"&&!Array.isArray(W)}class tW extends xX{constructor(W,$,X,Y){super(W,$,X,Y);this.data=X.data||[],this.object=X.object}getPaginatedItems(){return this.data??[]}nextPageParams(){return null}nextPageInfo(){return null}}class L0 extends xX{constructor(W,$,X,Y){super(W,$,X,Y);this.data=X.data||[],this.has_more=X.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageParams(){let W=this.nextPageInfo();if(!W)return null;if("params"in W)return W.params;let $=Object.fromEntries(W.url.searchParams);if(!Object.keys($).length)return null;return $}nextPageInfo(){let W=this.getPaginatedItems();if(!W.length)return null;let $=W[W.length-1]?.id;if(!$)return null;return{params:{after:$}}}}class f{constructor(W){this._client=W}}class O4 extends f{list(W,$={},X){if(H0($))return this.list(W,{},$);return this._client.getAPIList(`/chat/completions/${W}/messages`,HJ,{query:$,...X})}}class a2 extends f{constructor(){super(...arguments);this.messages=new O4(this._client)}create(W,$){return this._client.post("/chat/completions",{body:W,...$,stream:W.stream??!1})}retrieve(W,$){return this._client.get(`/chat/completions/${W}`,$)}update(W,$,X){return this._client.post(`/chat/completions/${W}`,{body:$,...X})}list(W={},$){if(H0(W))return this.list({},W);return this._client.getAPIList("/chat/completions",s2,{query:W,...$})}del(W,$){return this._client.delete(`/chat/completions/${W}`,$)}}class s2 extends L0{}class HJ extends L0{}a2.ChatCompletionsPage=s2;a2.Messages=O4;class R2 extends f{constructor(){super(...arguments);this.completions=new a2(this._client)}}R2.Completions=a2;R2.ChatCompletionsPage=s2;class V4 extends f{create(W,$){return this._client.post("/audio/speech",{body:W,...$,headers:{Accept:"application/octet-stream",...$?.headers},__binaryResponse:!0})}}class K4 extends f{create(W,$){return this._client.post("/audio/transcriptions",YW({body:W,...$,stream:W.stream??!1,__metadata:{model:W.model}}))}}class L4 extends f{create(W,$){return this._client.post("/audio/translations",YW({body:W,...$,__metadata:{model:W.model}}))}}class aW extends f{constructor(){super(...arguments);this.transcriptions=new K4(this._client),this.translations=new L4(this._client),this.speech=new V4(this._client)}}aW.Transcriptions=K4;aW.Translations=L4;aW.Speech=V4;class e2 extends f{create(W,$){return this._client.post("/batches",{body:W,...$})}retrieve(W,$){return this._client.get(`/batches/${W}`,$)}list(W={},$){if(H0(W))return this.list({},W);return this._client.getAPIList("/batches",p8,{query:W,...$})}cancel(W,$){return this._client.post(`/batches/${W}/cancel`,$)}}class p8 extends L0{}e2.BatchesPage=p8;var KW=function(W,$,X,Y,J){if(Y==="m")throw new TypeError("Private method is not writable");if(Y==="a"&&!J)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?W!==$||!J:!$.has(W))throw new TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:$.set(W,X),X},u0=function(W,$,X,Y){if(X==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?W!==$||!Y:!$.has(W))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:$.get(W)},QJ,vX,bX,A4,E4,yX,N4,sW,R4,hX,gX,u8,a3;class W8{constructor(){QJ.add(this),this.controller=new AbortController,vX.set(this,void 0),bX.set(this,()=>{}),A4.set(this,()=>{}),E4.set(this,void 0),yX.set(this,()=>{}),N4.set(this,()=>{}),sW.set(this,{}),R4.set(this,!1),hX.set(this,!1),gX.set(this,!1),u8.set(this,!1),KW(this,vX,new Promise((W,$)=>{KW(this,bX,W,"f"),KW(this,A4,$,"f")}),"f"),KW(this,E4,new Promise((W,$)=>{KW(this,yX,W,"f"),KW(this,N4,$,"f")}),"f"),u0(this,vX,"f").catch(()=>{}),u0(this,E4,"f").catch(()=>{})}_run(W){setTimeout(()=>{W().then(()=>{this._emitFinal(),this._emit("end")},u0(this,QJ,"m",a3).bind(this))},0)}_connected(){if(this.ended)return;u0(this,bX,"f").call(this),this._emit("connect")}get ended(){return u0(this,R4,"f")}get errored(){return u0(this,hX,"f")}get aborted(){return u0(this,gX,"f")}abort(){this.controller.abort()}on(W,$){return(u0(this,sW,"f")[W]||(u0(this,sW,"f")[W]=[])).push({listener:$}),this}off(W,$){let X=u0(this,sW,"f")[W];if(!X)return this;let Y=X.findIndex((J)=>J.listener===$);if(Y>=0)X.splice(Y,1);return this}once(W,$){return(u0(this,sW,"f")[W]||(u0(this,sW,"f")[W]=[])).push({listener:$,once:!0}),this}emitted(W){return new Promise(($,X)=>{if(KW(this,u8,!0,"f"),W!=="error")this.once("error",X);this.once(W,$)})}async done(){KW(this,u8,!0,"f"),await u0(this,E4,"f")}_emit(W,...$){if(u0(this,R4,"f"))return;if(W==="end")KW(this,R4,!0,"f"),u0(this,yX,"f").call(this);let X=u0(this,sW,"f")[W];if(X)u0(this,sW,"f")[W]=X.filter((Y)=>!Y.once),X.forEach(({listener:Y})=>Y(...$));if(W==="abort"){let Y=$[0];if(!u0(this,u8,"f")&&!X?.length)Promise.reject(Y);u0(this,A4,"f").call(this,Y),u0(this,N4,"f").call(this,Y),this._emit("end");return}if(W==="error"){let Y=$[0];if(!u0(this,u8,"f")&&!X?.length)Promise.reject(Y);u0(this,A4,"f").call(this,Y),u0(this,N4,"f").call(this,Y),this._emit("end")}}_emitFinal(){}}vX=new WeakMap,bX=new WeakMap,A4=new WeakMap,E4=new WeakMap,yX=new WeakMap,N4=new WeakMap,sW=new WeakMap,R4=new WeakMap,hX=new WeakMap,gX=new WeakMap,u8=new WeakMap,QJ=new WeakSet,a3=function W($){if(KW(this,hX,!0,"f"),$ instanceof Error&&$.name==="AbortError")$=new X1;if($ instanceof X1)return KW(this,gX,!0,"f"),this._emit("abort",$);if($ instanceof o)return this._emit("error",$);if($ instanceof Error){let X=new o($.message);return X.cause=$,this._emit("error",X)}return this._emit("error",new o(String($)))};var i=function(W,$,X,Y){if(X==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?W!==$||!Y:!$.has(W))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:$.get(W)},n1=function(W,$,X,Y,J){if(Y==="m")throw new TypeError("Private method is not writable");if(Y==="a"&&!J)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?W!==$||!J:!$.has(W))throw new TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:$.set(W,X),X},M1,zJ,bW,mX,LW,X8,c8,$8,cX,r1,pX,uX,S4,B4,Z4,s3,e3,WH,$H,XH,YH,JH;class t1 extends W8{constructor(){super(...arguments);M1.add(this),zJ.set(this,[]),bW.set(this,{}),mX.set(this,{}),LW.set(this,void 0),X8.set(this,void 0),c8.set(this,void 0),$8.set(this,void 0),cX.set(this,void 0),r1.set(this,void 0),pX.set(this,void 0),uX.set(this,void 0),S4.set(this,void 0)}[(zJ=new WeakMap,bW=new WeakMap,mX=new WeakMap,LW=new WeakMap,X8=new WeakMap,c8=new WeakMap,$8=new WeakMap,cX=new WeakMap,r1=new WeakMap,pX=new WeakMap,uX=new WeakMap,S4=new WeakMap,M1=new WeakSet,Symbol.asyncIterator)](){let W=[],$=[],X=!1;return this.on("event",(Y)=>{let J=$.shift();if(J)J.resolve(Y);else W.push(Y)}),this.on("end",()=>{X=!0;for(let Y of $)Y.resolve(void 0);$.length=0}),this.on("abort",(Y)=>{X=!0;for(let J of $)J.reject(Y);$.length=0}),this.on("error",(Y)=>{X=!0;for(let J of $)J.reject(Y);$.length=0}),{next:async()=>{if(!W.length){if(X)return{value:void 0,done:!0};return new Promise((J,G)=>$.push({resolve:J,reject:G})).then((J)=>J?{value:J,done:!1}:{value:void 0,done:!0})}return{value:W.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}static fromReadableStream(W){let $=new t1;return $._run(()=>$._fromReadableStream(W)),$}async _fromReadableStream(W,$){let X=$?.signal;if(X){if(X.aborted)this.controller.abort();X.addEventListener("abort",()=>this.controller.abort())}this._connected();let Y=i1.fromReadableStream(W,this.controller);for await(let J of Y)i(this,M1,"m",B4).call(this,J);if(Y.controller.signal?.aborted)throw new X1;return this._addRun(i(this,M1,"m",Z4).call(this))}toReadableStream(){return new i1(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(W,$,X,Y,J){let G=new t1;return G._run(()=>G._runToolAssistantStream(W,$,X,Y,{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),G}async _createToolAssistantStream(W,$,X,Y,J){let G=J?.signal;if(G){if(G.aborted)this.controller.abort();G.addEventListener("abort",()=>this.controller.abort())}let H={...Y,stream:!0},Q=await W.submitToolOutputs($,X,H,{...J,signal:this.controller.signal});this._connected();for await(let z of Q)i(this,M1,"m",B4).call(this,z);if(Q.controller.signal?.aborted)throw new X1;return this._addRun(i(this,M1,"m",Z4).call(this))}static createThreadAssistantStream(W,$,X){let Y=new t1;return Y._run(()=>Y._threadAssistantStream(W,$,{...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"stream"}})),Y}static createAssistantStream(W,$,X,Y){let J=new t1;return J._run(()=>J._runAssistantStream(W,$,X,{...Y,headers:{...Y?.headers,"X-Stainless-Helper-Method":"stream"}})),J}currentEvent(){return i(this,pX,"f")}currentRun(){return i(this,uX,"f")}currentMessageSnapshot(){return i(this,LW,"f")}currentRunStepSnapshot(){return i(this,S4,"f")}async finalRunSteps(){return await this.done(),Object.values(i(this,bW,"f"))}async finalMessages(){return await this.done(),Object.values(i(this,mX,"f"))}async finalRun(){if(await this.done(),!i(this,X8,"f"))throw Error("Final run was not received.");return i(this,X8,"f")}async _createThreadAssistantStream(W,$,X){let Y=X?.signal;if(Y){if(Y.aborted)this.controller.abort();Y.addEventListener("abort",()=>this.controller.abort())}let J={...$,stream:!0},G=await W.createAndRun(J,{...X,signal:this.controller.signal});this._connected();for await(let H of G)i(this,M1,"m",B4).call(this,H);if(G.controller.signal?.aborted)throw new X1;return this._addRun(i(this,M1,"m",Z4).call(this))}async _createAssistantStream(W,$,X,Y){let J=Y?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}let G={...X,stream:!0},H=await W.create($,G,{...Y,signal:this.controller.signal});this._connected();for await(let Q of H)i(this,M1,"m",B4).call(this,Q);if(H.controller.signal?.aborted)throw new X1;return this._addRun(i(this,M1,"m",Z4).call(this))}static accumulateDelta(W,$){for(let[X,Y]of Object.entries($)){if(!W.hasOwnProperty(X)){W[X]=Y;continue}let J=W[X];if(J===null||J===void 0){W[X]=Y;continue}if(X==="index"||X==="type"){W[X]=Y;continue}if(typeof J==="string"&&typeof Y==="string")J+=Y;else if(typeof J==="number"&&typeof Y==="number")J+=Y;else if(D4(J)&&D4(Y))J=this.accumulateDelta(J,Y);else if(Array.isArray(J)&&Array.isArray(Y)){if(J.every((G)=>typeof G==="string"||typeof G==="number")){J.push(...Y);continue}for(let G of Y){if(!D4(G))throw new Error(`Expected array delta entry to be an object but got: ${G}`);let H=G.index;if(H==null)throw console.error(G),new Error("Expected array delta entry to have an `index` property");if(typeof H!=="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${H}`);let Q=J[H];if(Q==null)J.push(G);else J[H]=this.accumulateDelta(Q,G)}continue}else throw Error(`Unhandled record type: ${X}, deltaValue: ${Y}, accValue: ${J}`);W[X]=J}return W}_addRun(W){return W}async _threadAssistantStream(W,$,X){return await this._createThreadAssistantStream($,W,X)}async _runAssistantStream(W,$,X,Y){return await this._createAssistantStream($,W,X,Y)}async _runToolAssistantStream(W,$,X,Y,J){return await this._createToolAssistantStream(X,W,$,Y,J)}}B4=function W($){if(this.ended)return;switch(n1(this,pX,$,"f"),i(this,M1,"m",WH).call(this,$),$.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":i(this,M1,"m",JH).call(this,$);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":i(this,M1,"m",e3).call(this,$);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":i(this,M1,"m",s3).call(this,$);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:aD($)}},Z4=function W(){if(this.ended)throw new o("stream has ended, this shouldn't happen");if(!i(this,X8,"f"))throw Error("Final run has not been received");return i(this,X8,"f")},s3=function W($){let[X,Y]=i(this,M1,"m",XH).call(this,$,i(this,LW,"f"));n1(this,LW,X,"f"),i(this,mX,"f")[X.id]=X;for(let J of Y){let G=X.content[J.index];if(G?.type=="text")this._emit("textCreated",G.text)}switch($.event){case"thread.message.created":this._emit("messageCreated",$.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",$.data.delta,X),$.data.delta.content)for(let J of $.data.delta.content){if(J.type=="text"&&J.text){let G=J.text,H=X.content[J.index];if(H&&H.type=="text")this._emit("textDelta",G,H.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(J.index!=i(this,c8,"f")){if(i(this,$8,"f"))switch(i(this,$8,"f").type){case"text":this._emit("textDone",i(this,$8,"f").text,i(this,LW,"f"));break;case"image_file":this._emit("imageFileDone",i(this,$8,"f").image_file,i(this,LW,"f"));break}n1(this,c8,J.index,"f")}n1(this,$8,X.content[J.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(i(this,c8,"f")!==void 0){let J=$.data.content[i(this,c8,"f")];if(J)switch(J.type){case"image_file":this._emit("imageFileDone",J.image_file,i(this,LW,"f"));break;case"text":this._emit("textDone",J.text,i(this,LW,"f"));break}}if(i(this,LW,"f"))this._emit("messageDone",$.data);n1(this,LW,void 0,"f")}},e3=function W($){let X=i(this,M1,"m",$H).call(this,$);switch(n1(this,S4,X,"f"),$.event){case"thread.run.step.created":this._emit("runStepCreated",$.data);break;case"thread.run.step.delta":let Y=$.data.delta;if(Y.step_details&&Y.step_details.type=="tool_calls"&&Y.step_details.tool_calls&&X.step_details.type=="tool_calls")for(let G of Y.step_details.tool_calls)if(G.index==i(this,cX,"f"))this._emit("toolCallDelta",G,X.step_details.tool_calls[G.index]);else{if(i(this,r1,"f"))this._emit("toolCallDone",i(this,r1,"f"));if(n1(this,cX,G.index,"f"),n1(this,r1,X.step_details.tool_calls[G.index],"f"),i(this,r1,"f"))this._emit("toolCallCreated",i(this,r1,"f"))}this._emit("runStepDelta",$.data.delta,X);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":if(n1(this,S4,void 0,"f"),$.data.step_details.type=="tool_calls"){if(i(this,r1,"f"))this._emit("toolCallDone",i(this,r1,"f")),n1(this,r1,void 0,"f")}this._emit("runStepDone",$.data,X);break;case"thread.run.step.in_progress":break}},WH=function W($){i(this,zJ,"f").push($),this._emit("event",$)},$H=function W($){switch($.event){case"thread.run.step.created":return i(this,bW,"f")[$.data.id]=$.data,$.data;case"thread.run.step.delta":let X=i(this,bW,"f")[$.data.id];if(!X)throw Error("Received a RunStepDelta before creation of a snapshot");let Y=$.data;if(Y.delta){let J=t1.accumulateDelta(X,Y.delta);i(this,bW,"f")[$.data.id]=J}return i(this,bW,"f")[$.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":i(this,bW,"f")[$.data.id]=$.data;break}if(i(this,bW,"f")[$.data.id])return i(this,bW,"f")[$.data.id];throw new Error("No snapshot available")},XH=function W($,X){let Y=[];switch($.event){case"thread.message.created":return[$.data,Y];case"thread.message.delta":if(!X)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let J=$.data;if(J.delta.content)for(let G of J.delta.content)if(G.index in X.content){let H=X.content[G.index];X.content[G.index]=i(this,M1,"m",YH).call(this,G,H)}else X.content[G.index]=G,Y.push(G);return[X,Y];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(X)return[X,Y];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},YH=function W($,X){return t1.accumulateDelta(X,$)},JH=function W($){switch(n1(this,uX,$.data,"f"),$.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":if(n1(this,X8,$.data,"f"),i(this,r1,"f"))this._emit("toolCallDone",i(this,r1,"f")),n1(this,r1,void 0,"f");break;case"thread.run.cancelling":break}};function aD(W){}class d8 extends f{create(W,$){return this._client.post("/assistants",{body:W,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(W,$){return this._client.get(`/assistants/${W}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(W,$,X){return this._client.post(`/assistants/${W}`,{body:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}list(W={},$){if(H0(W))return this.list({},W);return this._client.getAPIList("/assistants",q4,{query:W,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(W,$){return this._client.delete(`/assistants/${W}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class q4 extends L0{}d8.AssistantsPage=q4;function FJ(W){return typeof W.parse==="function"}var B2=(W)=>{return W?.role==="assistant"},TJ=(W)=>{return W?.role==="function"},UJ=(W)=>{return W?.role==="tool"};function C4(W){return W?.$brand==="auto-parseable-response-format"}function Y8(W){return W?.$brand==="auto-parseable-tool"}function GH(W,$){if(!$||!wJ($))return{...W,choices:W.choices.map((X)=>({...X,message:{...X.message,parsed:null,...X.message.tool_calls?{tool_calls:X.message.tool_calls}:void 0}}))};return k4(W,$)}function k4(W,$){let X=W.choices.map((Y)=>{if(Y.finish_reason==="length")throw new U4;if(Y.finish_reason==="content_filter")throw new w4;return{...Y,message:{...Y.message,...Y.message.tool_calls?{tool_calls:Y.message.tool_calls?.map((J)=>WO($,J))??void 0}:void 0,parsed:Y.message.content&&!Y.message.refusal?eD($,Y.message.content):null}}});return{...W,choices:X}}function eD(W,$){if(W.response_format?.type!=="json_schema")return null;if(W.response_format?.type==="json_schema"){if("$parseRaw"in W.response_format)return W.response_format.$parseRaw($);return JSON.parse($)}return null}function WO(W,$){let X=W.tools?.find((Y)=>Y.function?.name===$.function.name);return{...$,function:{...$.function,parsed_arguments:Y8(X)?X.$parseRaw($.function.arguments):X?.function.strict?JSON.parse($.function.arguments):null}}}function HH(W,$){if(!W)return!1;let X=W.tools?.find((Y)=>Y.function?.name===$.function.name);return Y8(X)||X?.function.strict||!1}function wJ(W){if(C4(W.response_format))return!0;return W.tools?.some(($)=>Y8($)||$.type==="function"&&$.function.strict===!0)??!1}function QH(W){for(let $ of W??[]){if($.type!=="function")throw new o(`Currently only \`function\` tool types support auto-parsing; Received \`${$.type}\``);if($.function.strict!==!0)throw new o(`The \`${$.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var v1=function(W,$,X,Y){if(X==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?W!==$||!Y:!$.has(W))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:$.get(W)},A1,MJ,dX,_J,DJ,OJ,FH,VJ,zH=10;class I4 extends W8{constructor(){super(...arguments);A1.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(W){this._chatCompletions.push(W),this._emit("chatCompletion",W);let $=W.choices[0]?.message;if($)this._addMessage($);return W}_addMessage(W,$=!0){if(!("content"in W))W.content=null;if(this.messages.push(W),$){if(this._emit("message",W),(TJ(W)||UJ(W))&&W.content)this._emit("functionCallResult",W.content);else if(B2(W)&&W.function_call)this._emit("functionCall",W.function_call);else if(B2(W)&&W.tool_calls){for(let X of W.tool_calls)if(X.type==="function")this._emit("functionCall",X.function)}}}async finalChatCompletion(){await this.done();let W=this._chatCompletions[this._chatCompletions.length-1];if(!W)throw new o("stream ended without producing a ChatCompletion");return W}async finalContent(){return await this.done(),v1(this,A1,"m",MJ).call(this)}async finalMessage(){return await this.done(),v1(this,A1,"m",dX).call(this)}async finalFunctionCall(){return await this.done(),v1(this,A1,"m",_J).call(this)}async finalFunctionCallResult(){return await this.done(),v1(this,A1,"m",DJ).call(this)}async totalUsage(){return await this.done(),v1(this,A1,"m",OJ).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let W=this._chatCompletions[this._chatCompletions.length-1];if(W)this._emit("finalChatCompletion",W);let $=v1(this,A1,"m",dX).call(this);if($)this._emit("finalMessage",$);let X=v1(this,A1,"m",MJ).call(this);if(X)this._emit("finalContent",X);let Y=v1(this,A1,"m",_J).call(this);if(Y)this._emit("finalFunctionCall",Y);let J=v1(this,A1,"m",DJ).call(this);if(J!=null)this._emit("finalFunctionCallResult",J);if(this._chatCompletions.some((G)=>G.usage))this._emit("totalUsage",v1(this,A1,"m",OJ).call(this))}async _createChatCompletion(W,$,X){let Y=X?.signal;if(Y){if(Y.aborted)this.controller.abort();Y.addEventListener("abort",()=>this.controller.abort())}v1(this,A1,"m",FH).call(this,$);let J=await W.chat.completions.create({...$,stream:!1},{...X,signal:this.controller.signal});return this._connected(),this._addChatCompletion(k4(J,$))}async _runChatCompletion(W,$,X){for(let Y of $.messages)this._addMessage(Y,!1);return await this._createChatCompletion(W,$,X)}async _runFunctions(W,$,X){let{function_call:J="auto",stream:G,...H}=$,Q=typeof J!=="string"&&J?.name,{maxChatCompletions:z=zH}=X||{},F={};for(let U of $.functions)F[U.name||U.function.name]=U;let T=$.functions.map((U)=>({name:U.name||U.function.name,parameters:U.parameters,description:U.description}));for(let U of $.messages)this._addMessage(U,!1);for(let U=0;U<z;++U){let O=(await this._createChatCompletion(W,{...H,function_call:J,functions:T,messages:[...this.messages]},X)).choices[0]?.message;if(!O)throw new o("missing message in ChatCompletion response");if(!O.function_call)return;let{name:K,arguments:N}=O.function_call,I=F[K];if(!I){let m=`Invalid function_call: ${JSON.stringify(K)}. Available options are: ${T.map((c)=>JSON.stringify(c.name)).join(", ")}. Please try again`;this._addMessage({role:"function",name:K,content:m});continue}else if(Q&&Q!==K){let m=`Invalid function_call: ${JSON.stringify(K)}. ${JSON.stringify(Q)} requested. Please try again`;this._addMessage({role:"function",name:K,content:m});continue}let C;try{C=FJ(I)?await I.parse(N):N}catch(m){this._addMessage({role:"function",name:K,content:m instanceof Error?m.message:String(m)});continue}let R=await I.function(C,this),q=v1(this,A1,"m",VJ).call(this,R);if(this._addMessage({role:"function",name:K,content:q}),Q)return}}async _runTools(W,$,X){let{tool_choice:J="auto",stream:G,...H}=$,Q=typeof J!=="string"&&J?.function?.name,{maxChatCompletions:z=zH}=X||{},F=$.tools.map((M)=>{if(Y8(M)){if(!M.$callback)throw new o("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:M.$callback,name:M.function.name,description:M.function.description||"",parameters:M.function.parameters,parse:M.$parseRaw,strict:!0}}}return M}),T={};for(let M of F)if(M.type==="function")T[M.function.name||M.function.function.name]=M.function;let U="tools"in $?F.map((M)=>M.type==="function"?{type:"function",function:{name:M.function.name||M.function.function.name,parameters:M.function.parameters,description:M.function.description,strict:M.function.strict}}:M):void 0;for(let M of $.messages)this._addMessage(M,!1);for(let M=0;M<z;++M){let K=(await this._createChatCompletion(W,{...H,tool_choice:J,tools:U,messages:[...this.messages]},X)).choices[0]?.message;if(!K)throw new o("missing message in ChatCompletion response");if(!K.tool_calls?.length)return;for(let N of K.tool_calls){if(N.type!=="function")continue;let I=N.id,{name:C,arguments:R}=N.function,q=T[C];if(!q){let h=`Invalid tool_call: ${JSON.stringify(C)}. Available options are: ${Object.keys(T).map((U0)=>JSON.stringify(U0)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:I,content:h});continue}else if(Q&&Q!==C){let h=`Invalid tool_call: ${JSON.stringify(C)}. ${JSON.stringify(Q)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:I,content:h});continue}let m;try{m=FJ(q)?await q.parse(R):R}catch(h){let U0=h instanceof Error?h.message:String(h);this._addMessage({role:"tool",tool_call_id:I,content:U0});continue}let c=await q.function(m,this),v=v1(this,A1,"m",VJ).call(this,c);if(this._addMessage({role:"tool",tool_call_id:I,content:v}),Q)return}}return}}A1=new WeakSet,MJ=function W(){return v1(this,A1,"m",dX).call(this).content??null},dX=function W(){let $=this.messages.length;while($-- >0){let X=this.messages[$];if(B2(X)){let{function_call:Y,...J}=X,G={...J,content:X.content??null,refusal:X.refusal??null};if(Y)G.function_call=Y;return G}}throw new o("stream ended without producing a ChatCompletionMessage with role=assistant")},_J=function W(){for(let $=this.messages.length-1;$>=0;$--){let X=this.messages[$];if(B2(X)&&X?.function_call)return X.function_call;if(B2(X)&&X?.tool_calls?.length)return X.tool_calls.at(-1)?.function}return},DJ=function W(){for(let $=this.messages.length-1;$>=0;$--){let X=this.messages[$];if(TJ(X)&&X.content!=null)return X.content;if(UJ(X)&&X.content!=null&&typeof X.content==="string"&&this.messages.some((Y)=>Y.role==="assistant"&&Y.tool_calls?.some((J)=>J.type==="function"&&J.id===X.tool_call_id)))return X.content}return},OJ=function W(){let $={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:X}of this._chatCompletions)if(X)$.completion_tokens+=X.completion_tokens,$.prompt_tokens+=X.prompt_tokens,$.total_tokens+=X.total_tokens;return $},FH=function W($){if($.n!=null&&$.n>1)throw new o("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},VJ=function W($){return typeof $==="string"?$:$===void 0?"undefined":JSON.stringify($)};class l8 extends I4{static runFunctions(W,$,X){let Y=new l8,J={...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return Y._run(()=>Y._runFunctions(W,$,J)),Y}static runTools(W,$,X){let Y=new l8,J={...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"runTools"}};return Y._run(()=>Y._runTools(W,$,J)),Y}_addMessage(W,$=!0){if(super._addMessage(W,$),B2(W)&&W.content)this._emit("content",W.content)}}var T1={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511};class TH extends Error{}class UH extends Error{}function $O(W,$=T1.ALL){if(typeof W!=="string")throw new TypeError(`expecting str, got ${typeof W}`);if(!W.trim())throw new Error(`${W} is empty`);return XO(W.trim(),$)}var XO=(W,$)=>{let X=W.length,Y=0,J=(M)=>{throw new TH(`${M} at position ${Y}`)},G=(M)=>{throw new UH(`${M} at position ${Y}`)},H=()=>{if(U(),Y>=X)J("Unexpected end of input");if(W[Y]==='"')return Q();if(W[Y]==="{")return z();if(W[Y]==="[")return F();if(W.substring(Y,Y+4)==="null"||T1.NULL&$&&X-Y<4&&"null".startsWith(W.substring(Y)))return Y+=4,null;if(W.substring(Y,Y+4)==="true"||T1.BOOL&$&&X-Y<4&&"true".startsWith(W.substring(Y)))return Y+=4,!0;if(W.substring(Y,Y+5)==="false"||T1.BOOL&$&&X-Y<5&&"false".startsWith(W.substring(Y)))return Y+=5,!1;if(W.substring(Y,Y+8)==="Infinity"||T1.INFINITY&$&&X-Y<8&&"Infinity".startsWith(W.substring(Y)))return Y+=8,1/0;if(W.substring(Y,Y+9)==="-Infinity"||T1.MINUS_INFINITY&$&&1<X-Y&&X-Y<9&&"-Infinity".startsWith(W.substring(Y)))return Y+=9,-1/0;if(W.substring(Y,Y+3)==="NaN"||T1.NAN&$&&X-Y<3&&"NaN".startsWith(W.substring(Y)))return Y+=3,NaN;return T()},Q=()=>{let M=Y,O=!1;Y++;while(Y<X&&(W[Y]!=='"'||O&&W[Y-1]==="\\"))O=W[Y]==="\\"?!O:!1,Y++;if(W.charAt(Y)=='"')try{return JSON.parse(W.substring(M,++Y-Number(O)))}catch(K){G(String(K))}else if(T1.STR&$)try{return JSON.parse(W.substring(M,Y-Number(O))+'"')}catch(K){return JSON.parse(W.substring(M,W.lastIndexOf("\\"))+'"')}J("Unterminated string literal")},z=()=>{Y++,U();let M={};try{while(W[Y]!=="}"){if(U(),Y>=X&&T1.OBJ&$)return M;let O=Q();U(),Y++;try{let K=H();Object.defineProperty(M,O,{value:K,writable:!0,enumerable:!0,configurable:!0})}catch(K){if(T1.OBJ&$)return M;else throw K}if(U(),W[Y]===",")Y++}}catch(O){if(T1.OBJ&$)return M;else J("Expected '}' at end of object")}return Y++,M},F=()=>{Y++;let M=[];try{while(W[Y]!=="]")if(M.push(H()),U(),W[Y]===",")Y++}catch(O){if(T1.ARR&$)return M;J("Expected ']' at end of array")}return Y++,M},T=()=>{if(Y===0){if(W==="-"&&T1.NUM&$)J("Not sure what '-' is");try{return JSON.parse(W)}catch(O){if(T1.NUM&$)try{if(W[W.length-1]===".")return JSON.parse(W.substring(0,W.lastIndexOf(".")));return JSON.parse(W.substring(0,W.lastIndexOf("e")))}catch(K){}G(String(O))}}let M=Y;if(W[Y]==="-")Y++;while(W[Y]&&!",]}".includes(W[Y]))Y++;if(Y==X&&!(T1.NUM&$))J("Unterminated number literal");try{return JSON.parse(W.substring(M,Y))}catch(O){if(W.substring(M,Y)==="-"&&T1.NUM&$)J("Not sure what '-' is");try{return JSON.parse(W.substring(M,W.lastIndexOf("e")))}catch(K){G(String(K))}}},U=()=>{while(Y<X&&`
19
+ \r `.includes(W[Y]))Y++};return H()},KJ=(W)=>$O(W,T1.ALL^T1.NUM);var o8=function(W,$,X,Y,J){if(Y==="m")throw new TypeError("Private method is not writable");if(Y==="a"&&!J)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?W!==$||!J:!$.has(W))throw new TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:$.set(W,X),X},R0=function(W,$,X,Y){if(X==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?W!==$||!Y:!$.has(W))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:$.get(W)},Y1,eW,i8,Z2,LJ,lX,AJ,EJ,NJ,oX,RJ,wH;class J8 extends I4{constructor(W){super();Y1.add(this),eW.set(this,void 0),i8.set(this,void 0),Z2.set(this,void 0),o8(this,eW,W,"f"),o8(this,i8,[],"f")}get currentChatCompletionSnapshot(){return R0(this,Z2,"f")}static fromReadableStream(W){let $=new J8(null);return $._run(()=>$._fromReadableStream(W)),$}static createChatCompletion(W,$,X){let Y=new J8($);return Y._run(()=>Y._runChatCompletion(W,{...$,stream:!0},{...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"stream"}})),Y}async _createChatCompletion(W,$,X){super._createChatCompletion;let Y=X?.signal;if(Y){if(Y.aborted)this.controller.abort();Y.addEventListener("abort",()=>this.controller.abort())}R0(this,Y1,"m",LJ).call(this);let J=await W.chat.completions.create({...$,stream:!0},{...X,signal:this.controller.signal});this._connected();for await(let G of J)R0(this,Y1,"m",AJ).call(this,G);if(J.controller.signal?.aborted)throw new X1;return this._addChatCompletion(R0(this,Y1,"m",oX).call(this))}async _fromReadableStream(W,$){let X=$?.signal;if(X){if(X.aborted)this.controller.abort();X.addEventListener("abort",()=>this.controller.abort())}R0(this,Y1,"m",LJ).call(this),this._connected();let Y=i1.fromReadableStream(W,this.controller),J;for await(let G of Y){if(J&&J!==G.id)this._addChatCompletion(R0(this,Y1,"m",oX).call(this));R0(this,Y1,"m",AJ).call(this,G),J=G.id}if(Y.controller.signal?.aborted)throw new X1;return this._addChatCompletion(R0(this,Y1,"m",oX).call(this))}[(eW=new WeakMap,i8=new WeakMap,Z2=new WeakMap,Y1=new WeakSet,LJ=function W(){if(this.ended)return;o8(this,Z2,void 0,"f")},lX=function W($){let X=R0(this,i8,"f")[$.index];if(X)return X;return X={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},R0(this,i8,"f")[$.index]=X,X},AJ=function W($){if(this.ended)return;let X=R0(this,Y1,"m",wH).call(this,$);this._emit("chunk",$,X);for(let Y of $.choices){let J=X.choices[Y.index];if(Y.delta.content!=null&&J.message?.role==="assistant"&&J.message?.content)this._emit("content",Y.delta.content,J.message.content),this._emit("content.delta",{delta:Y.delta.content,snapshot:J.message.content,parsed:J.message.parsed});if(Y.delta.refusal!=null&&J.message?.role==="assistant"&&J.message?.refusal)this._emit("refusal.delta",{delta:Y.delta.refusal,snapshot:J.message.refusal});if(Y.logprobs?.content!=null&&J.message?.role==="assistant")this._emit("logprobs.content.delta",{content:Y.logprobs?.content,snapshot:J.logprobs?.content??[]});if(Y.logprobs?.refusal!=null&&J.message?.role==="assistant")this._emit("logprobs.refusal.delta",{refusal:Y.logprobs?.refusal,snapshot:J.logprobs?.refusal??[]});let G=R0(this,Y1,"m",lX).call(this,J);if(J.finish_reason){if(R0(this,Y1,"m",NJ).call(this,J),G.current_tool_call_index!=null)R0(this,Y1,"m",EJ).call(this,J,G.current_tool_call_index)}for(let H of Y.delta.tool_calls??[]){if(G.current_tool_call_index!==H.index){if(R0(this,Y1,"m",NJ).call(this,J),G.current_tool_call_index!=null)R0(this,Y1,"m",EJ).call(this,J,G.current_tool_call_index)}G.current_tool_call_index=H.index}for(let H of Y.delta.tool_calls??[]){let Q=J.message.tool_calls?.[H.index];if(!Q?.type)continue;if(Q?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:Q.function?.name,index:H.index,arguments:Q.function.arguments,parsed_arguments:Q.function.parsed_arguments,arguments_delta:H.function?.arguments??""});else _H(Q?.type)}}},EJ=function W($,X){if(R0(this,Y1,"m",lX).call(this,$).done_tool_calls.has(X))return;let J=$.message.tool_calls?.[X];if(!J)throw new Error("no tool call snapshot");if(!J.type)throw new Error("tool call snapshot missing `type`");if(J.type==="function"){let G=R0(this,eW,"f")?.tools?.find((H)=>H.type==="function"&&H.function.name===J.function.name);this._emit("tool_calls.function.arguments.done",{name:J.function.name,index:X,arguments:J.function.arguments,parsed_arguments:Y8(G)?G.$parseRaw(J.function.arguments):G?.function.strict?JSON.parse(J.function.arguments):null})}else _H(J.type)},NJ=function W($){let X=R0(this,Y1,"m",lX).call(this,$);if($.message.content&&!X.content_done){X.content_done=!0;let Y=R0(this,Y1,"m",RJ).call(this);this._emit("content.done",{content:$.message.content,parsed:Y?Y.$parseRaw($.message.content):null})}if($.message.refusal&&!X.refusal_done)X.refusal_done=!0,this._emit("refusal.done",{refusal:$.message.refusal});if($.logprobs?.content&&!X.logprobs_content_done)X.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:$.logprobs.content});if($.logprobs?.refusal&&!X.logprobs_refusal_done)X.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:$.logprobs.refusal})},oX=function W(){if(this.ended)throw new o("stream has ended, this shouldn't happen");let $=R0(this,Z2,"f");if(!$)throw new o("request ended without sending any chunks");return o8(this,Z2,void 0,"f"),o8(this,i8,[],"f"),YO($,R0(this,eW,"f"))},RJ=function W(){let $=R0(this,eW,"f")?.response_format;if(C4($))return $;return null},wH=function W($){var X,Y,J,G;let H=R0(this,Z2,"f"),{choices:Q,...z}=$;if(!H)H=o8(this,Z2,{...z,choices:[]},"f");else Object.assign(H,z);for(let{delta:F,finish_reason:T,index:U,logprobs:M=null,...O}of $.choices){let K=H.choices[U];if(!K)K=H.choices[U]={finish_reason:T,index:U,message:{},logprobs:M,...O};if(M)if(!K.logprobs)K.logprobs=Object.assign({},M);else{let{content:c,refusal:v,...h}=M;if(MH(h),Object.assign(K.logprobs,h),c)(X=K.logprobs).content??(X.content=[]),K.logprobs.content.push(...c);if(v)(Y=K.logprobs).refusal??(Y.refusal=[]),K.logprobs.refusal.push(...v)}if(T){if(K.finish_reason=T,R0(this,eW,"f")&&wJ(R0(this,eW,"f"))){if(T==="length")throw new U4;if(T==="content_filter")throw new w4}}if(Object.assign(K,O),!F)continue;let{content:N,refusal:I,function_call:C,role:R,tool_calls:q,...m}=F;if(MH(m),Object.assign(K.message,m),I)K.message.refusal=(K.message.refusal||"")+I;if(R)K.message.role=R;if(C)if(!K.message.function_call)K.message.function_call=C;else{if(C.name)K.message.function_call.name=C.name;if(C.arguments)(J=K.message.function_call).arguments??(J.arguments=""),K.message.function_call.arguments+=C.arguments}if(N){if(K.message.content=(K.message.content||"")+N,!K.message.refusal&&R0(this,Y1,"m",RJ).call(this))K.message.parsed=KJ(K.message.content)}if(q){if(!K.message.tool_calls)K.message.tool_calls=[];for(let{index:c,id:v,type:h,function:U0,...m0}of q){let E=(G=K.message.tool_calls)[c]??(G[c]={});if(Object.assign(E,m0),v)E.id=v;if(h)E.type=h;if(U0)E.function??(E.function={name:U0.name??"",arguments:""});if(U0?.name)E.function.name=U0.name;if(U0?.arguments){if(E.function.arguments+=U0.arguments,HH(R0(this,eW,"f"),E))E.function.parsed_arguments=KJ(E.function.arguments)}}}}return H},Symbol.asyncIterator)](){let W=[],$=[],X=!1;return this.on("chunk",(Y)=>{let J=$.shift();if(J)J.resolve(Y);else W.push(Y)}),this.on("end",()=>{X=!0;for(let Y of $)Y.resolve(void 0);$.length=0}),this.on("abort",(Y)=>{X=!0;for(let J of $)J.reject(Y);$.length=0}),this.on("error",(Y)=>{X=!0;for(let J of $)J.reject(Y);$.length=0}),{next:async()=>{if(!W.length){if(X)return{value:void 0,done:!0};return new Promise((J,G)=>$.push({resolve:J,reject:G})).then((J)=>J?{value:J,done:!1}:{value:void 0,done:!0})}return{value:W.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new i1(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function YO(W,$){let{id:X,choices:Y,created:J,model:G,system_fingerprint:H,...Q}=W,z={...Q,id:X,choices:Y.map(({message:F,finish_reason:T,index:U,logprobs:M,...O})=>{if(!T)throw new o(`missing finish_reason for choice ${U}`);let{content:K=null,function_call:N,tool_calls:I,...C}=F,R=F.role;if(!R)throw new o(`missing role for choice ${U}`);if(N){let{arguments:q,name:m}=N;if(q==null)throw new o(`missing function_call.arguments for choice ${U}`);if(!m)throw new o(`missing function_call.name for choice ${U}`);return{...O,message:{content:K,function_call:{arguments:q,name:m},role:R,refusal:F.refusal??null},finish_reason:T,index:U,logprobs:M}}if(I)return{...O,index:U,finish_reason:T,logprobs:M,message:{...C,role:R,content:K,refusal:F.refusal??null,tool_calls:I.map((q,m)=>{let{function:c,type:v,id:h,...U0}=q,{arguments:m0,name:E,..._0}=c||{};if(h==null)throw new o(`missing choices[${U}].tool_calls[${m}].id
20
20
  ${iX(W)}`);if(v==null)throw new o(`missing choices[${U}].tool_calls[${m}].type
21
21
  ${iX(W)}`);if(E==null)throw new o(`missing choices[${U}].tool_calls[${m}].function.name
22
22
  ${iX(W)}`);if(m0==null)throw new o(`missing choices[${U}].tool_calls[${m}].function.arguments
23
- ${iX(W)}`);return{...U0,id:h,type:v,function:{..._0,name:E,arguments:m0}}})}};return{...V,message:{...C,content:K,role:B,refusal:F.refusal??null},finish_reason:T,index:U,logprobs:M}}),created:J,model:G,object:"chat.completion",...H?{system_fingerprint:H}:{}};return GH(z,$)}function iX(W){return JSON.stringify(W)}function MH(W){return}function _H(W){}class G8 extends J8{static fromReadableStream(W){let $=new G8(null);return $._run(()=>$._fromReadableStream(W)),$}static runFunctions(W,$,X){let Y=new G8(null),J={...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return Y._run(()=>Y._runFunctions(W,$,J)),Y}static runTools(W,$,X){let Y=new G8($),J={...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"runTools"}};return Y._run(()=>Y._runTools(W,$,J)),Y}}class nX extends f{parse(W,$){return QH(W.tools),this._client.chat.completions.create(W,{...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"beta.chat.completions.parse"}})._thenUnwrap((X)=>k4(X,W))}runFunctions(W,$){if(W.stream)return G8.runFunctions(this._client,W,$);return l8.runFunctions(this._client,W,$)}runTools(W,$){if(W.stream)return G8.runTools(this._client,W,$);return l8.runTools(this._client,W,$)}stream(W,$){return J8.createChatCompletion(this._client,W,$)}}class j4 extends f{constructor(){super(...arguments);this.completions=new nX(this._client)}}(function(W){W.Completions=nX})(j4||(j4={}));class f4 extends f{create(W,$){return this._client.post("/realtime/sessions",{body:W,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class P4 extends f{create(W,$){return this._client.post("/realtime/transcription_sessions",{body:W,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class H8 extends f{constructor(){super(...arguments);this.sessions=new f4(this._client),this.transcriptionSessions=new P4(this._client)}}H8.Sessions=f4;H8.TranscriptionSessions=P4;class n8 extends f{create(W,$,X){return this._client.post(`/threads/${W}/messages`,{body:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}retrieve(W,$,X){return this._client.get(`/threads/${W}/messages/${$}`,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}update(W,$,X,Y){return this._client.post(`/threads/${W}/messages/${$}`,{body:X,...Y,headers:{"OpenAI-Beta":"assistants=v2",...Y?.headers}})}list(W,$={},X){if(H0($))return this.list(W,{},$);return this._client.getAPIList(`/threads/${W}/messages`,x4,{query:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}del(W,$,X){return this._client.delete(`/threads/${W}/messages/${$}`,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}}class x4 extends L0{}n8.MessagesPage=x4;class r8 extends f{retrieve(W,$,X,Y={},J){if(H0(Y))return this.retrieve(W,$,X,{},Y);return this._client.get(`/threads/${W}/runs/${$}/steps/${X}`,{query:Y,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}list(W,$,X={},Y){if(H0(X))return this.list(W,$,{},X);return this._client.getAPIList(`/threads/${W}/runs/${$}/steps`,v4,{query:X,...Y,headers:{"OpenAI-Beta":"assistants=v2",...Y?.headers}})}}class v4 extends L0{}r8.RunStepsPage=v4;class S2 extends f{constructor(){super(...arguments);this.steps=new r8(this._client)}create(W,$,X){let{include:Y,...J}=$;return this._client.post(`/threads/${W}/runs`,{query:{include:Y},body:J,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers},stream:$.stream??!1})}retrieve(W,$,X){return this._client.get(`/threads/${W}/runs/${$}`,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}update(W,$,X,Y){return this._client.post(`/threads/${W}/runs/${$}`,{body:X,...Y,headers:{"OpenAI-Beta":"assistants=v2",...Y?.headers}})}list(W,$={},X){if(H0($))return this.list(W,{},$);return this._client.getAPIList(`/threads/${W}/runs`,b4,{query:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}cancel(W,$,X){return this._client.post(`/threads/${W}/runs/${$}/cancel`,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}async createAndPoll(W,$,X){let Y=await this.create(W,$,X);return await this.poll(W,Y.id,X)}createAndStream(W,$,X){return t1.createAssistantStream(W,this._client.beta.threads.runs,$,X)}async poll(W,$,X){let Y={...X?.headers,"X-Stainless-Poll-Helper":"true"};if(X?.pollIntervalMs)Y["X-Stainless-Custom-Poll-Interval"]=X.pollIntervalMs.toString();while(!0){let{data:J,response:G}=await this.retrieve(W,$,{...X,headers:{...X?.headers,...Y}}).withResponse();switch(J.status){case"queued":case"in_progress":case"cancelling":let H=5000;if(X?.pollIntervalMs)H=X.pollIntervalMs;else{let Q=G.headers.get("openai-poll-after-ms");if(Q){let z=parseInt(Q);if(!isNaN(z))H=z}}await rW(H);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return J}}}stream(W,$,X){return t1.createAssistantStream(W,this._client.beta.threads.runs,$,X)}submitToolOutputs(W,$,X,Y){return this._client.post(`/threads/${W}/runs/${$}/submit_tool_outputs`,{body:X,...Y,headers:{"OpenAI-Beta":"assistants=v2",...Y?.headers},stream:X.stream??!1})}async submitToolOutputsAndPoll(W,$,X,Y){let J=await this.submitToolOutputs(W,$,X,Y);return await this.poll(W,J.id,Y)}submitToolOutputsStream(W,$,X,Y){return t1.createToolAssistantStream(W,$,this._client.beta.threads.runs,X,Y)}}class b4 extends L0{}S2.RunsPage=b4;S2.Steps=r8;S2.RunStepsPage=v4;class W2 extends f{constructor(){super(...arguments);this.runs=new S2(this._client),this.messages=new n8(this._client)}create(W={},$){if(H0(W))return this.create({},W);return this._client.post("/threads",{body:W,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(W,$){return this._client.get(`/threads/${W}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(W,$,X){return this._client.post(`/threads/${W}`,{body:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}del(W,$){return this._client.delete(`/threads/${W}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}createAndRun(W,$){return this._client.post("/threads/runs",{body:W,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers},stream:W.stream??!1})}async createAndRunPoll(W,$){let X=await this.createAndRun(W,$);return await this.runs.poll(X.thread_id,X.id,$)}createAndRunStream(W,$){return t1.createThreadAssistantStream(W,this._client.beta.threads,$)}}W2.Runs=S2;W2.RunsPage=b4;W2.Messages=n8;W2.MessagesPage=x4;class yW extends f{constructor(){super(...arguments);this.realtime=new H8(this._client),this.chat=new j4(this._client),this.assistants=new d8(this._client),this.threads=new W2(this._client)}}yW.Realtime=H8;yW.Assistants=d8;yW.AssistantsPage=q4;yW.Threads=W2;class t8 extends f{create(W,$){return this._client.post("/completions",{body:W,...$,stream:W.stream??!1})}}class a8 extends f{create(W,$){let X=!!W.encoding_format,Y=X?W.encoding_format:"base64";if(X)nW("Request","User defined encoding_format:",W.encoding_format);let J=this._client.post("/embeddings",{body:{...W,encoding_format:Y},...$});if(X)return J;return nW("response","Decoding base64 embeddings to float32 array"),J._thenUnwrap((G)=>{if(G&&G.data)G.data.forEach((H)=>{let Q=H.embedding;H.embedding=t3(Q)});return G})}}class s8 extends f{retrieve(W,$,X,Y){return this._client.get(`/evals/${W}/runs/${$}/output_items/${X}`,Y)}list(W,$,X={},Y){if(H0(X))return this.list(W,$,{},X);return this._client.getAPIList(`/evals/${W}/runs/${$}/output_items`,y4,{query:X,...Y})}}class y4 extends L0{}s8.OutputItemListResponsesPage=y4;class q2 extends f{constructor(){super(...arguments);this.outputItems=new s8(this._client)}create(W,$,X){return this._client.post(`/evals/${W}/runs`,{body:$,...X})}retrieve(W,$,X){return this._client.get(`/evals/${W}/runs/${$}`,X)}list(W,$={},X){if(H0($))return this.list(W,{},$);return this._client.getAPIList(`/evals/${W}/runs`,h4,{query:$,...X})}del(W,$,X){return this._client.delete(`/evals/${W}/runs/${$}`,X)}cancel(W,$,X){return this._client.post(`/evals/${W}/runs/${$}`,X)}}class h4 extends L0{}q2.RunListResponsesPage=h4;q2.OutputItems=s8;q2.OutputItemListResponsesPage=y4;class $2 extends f{constructor(){super(...arguments);this.runs=new q2(this._client)}create(W,$){return this._client.post("/evals",{body:W,...$})}retrieve(W,$){return this._client.get(`/evals/${W}`,$)}update(W,$,X){return this._client.post(`/evals/${W}`,{body:$,...X})}list(W={},$){if(H0(W))return this.list({},W);return this._client.getAPIList("/evals",e8,{query:W,...$})}del(W,$){return this._client.delete(`/evals/${W}`,$)}}class e8 extends L0{}$2.EvalListResponsesPage=e8;$2.Runs=q2;$2.RunListResponsesPage=h4;class Q8 extends f{create(W,$){return this._client.post("/files",YW({body:W,...$}))}retrieve(W,$){return this._client.get(`/files/${W}`,$)}list(W={},$){if(H0(W))return this.list({},W);return this._client.getAPIList("/files",W$,{query:W,...$})}del(W,$){return this._client.delete(`/files/${W}`,$)}content(W,$){return this._client.get(`/files/${W}/content`,{...$,headers:{Accept:"application/binary",...$?.headers},__binaryResponse:!0})}retrieveContent(W,$){return this._client.get(`/files/${W}/content`,$)}async waitForProcessing(W,{pollInterval:$=5000,maxWait:X=1800000}={}){let Y=new Set(["processed","error","deleted"]),J=Date.now(),G=await this.retrieve(W);while(!G.status||!Y.has(G.status))if(await rW($),G=await this.retrieve(W),Date.now()-J>X)throw new r2({message:`Giving up on waiting for file ${W} to finish processing after ${X} milliseconds.`});return G}}class W$ extends L0{}Q8.FileObjectsPage=W$;class $$ extends f{create(W,$,X){return this._client.getAPIList(`/fine_tuning/checkpoints/${W}/permissions`,g4,{body:$,method:"post",...X})}retrieve(W,$={},X){if(H0($))return this.retrieve(W,{},$);return this._client.get(`/fine_tuning/checkpoints/${W}/permissions`,{query:$,...X})}del(W,$,X){return this._client.delete(`/fine_tuning/checkpoints/${W}/permissions/${$}`,X)}}class g4 extends tW{}$$.PermissionCreateResponsesPage=g4;class z8 extends f{constructor(){super(...arguments);this.permissions=new $$(this._client)}}z8.Permissions=$$;z8.PermissionCreateResponsesPage=g4;class X$ extends f{list(W,$={},X){if(H0($))return this.list(W,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${W}/checkpoints`,m4,{query:$,...X})}}class m4 extends L0{}X$.FineTuningJobCheckpointsPage=m4;class X2 extends f{constructor(){super(...arguments);this.checkpoints=new X$(this._client)}create(W,$){return this._client.post("/fine_tuning/jobs",{body:W,...$})}retrieve(W,$){return this._client.get(`/fine_tuning/jobs/${W}`,$)}list(W={},$){if(H0(W))return this.list({},W);return this._client.getAPIList("/fine_tuning/jobs",p4,{query:W,...$})}cancel(W,$){return this._client.post(`/fine_tuning/jobs/${W}/cancel`,$)}listEvents(W,$={},X){if(H0($))return this.listEvents(W,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${W}/events`,u4,{query:$,...X})}}class p4 extends L0{}class u4 extends L0{}X2.FineTuningJobsPage=p4;X2.FineTuningJobEventsPage=u4;X2.Checkpoints=X$;X2.FineTuningJobCheckpointsPage=m4;class hW extends f{constructor(){super(...arguments);this.jobs=new X2(this._client),this.checkpoints=new z8(this._client)}}hW.Jobs=X2;hW.FineTuningJobsPage=p4;hW.FineTuningJobEventsPage=u4;hW.Checkpoints=z8;class Y$ extends f{createVariation(W,$){return this._client.post("/images/variations",YW({body:W,...$}))}edit(W,$){return this._client.post("/images/edits",YW({body:W,...$}))}generate(W,$){return this._client.post("/images/generations",{body:W,...$})}}class F8 extends f{retrieve(W,$){return this._client.get(`/models/${W}`,$)}list(W){return this._client.getAPIList("/models",J$,W)}del(W,$){return this._client.delete(`/models/${W}`,$)}}class J$ extends tW{}F8.ModelsPage=J$;class G$ extends f{create(W,$){return this._client.post("/moderations",{body:W,...$})}}function DH(W,$){if(!$||!AV($))return{...W,output_parsed:null,output:W.output.map((X)=>{if(X.type==="function_call")return{...X,parsed_arguments:null};if(X.type==="message")return{...X,content:X.content.map((Y)=>({...Y,parsed:null}))};else return X})};return RJ(W,$)}function RJ(W,$){let X=W.output.map((J)=>{if(J.type==="function_call")return{...J,parsed_arguments:BV($,J)};if(J.type==="message"){let G=J.content.map((H)=>{if(H.type==="output_text")return{...H,parsed:LV($,H.text)};return H});return{...J,content:G}}return J}),Y=Object.assign({},W,{output:X});if(!Object.getOwnPropertyDescriptor(W,"output_text"))ZJ(Y);return Object.defineProperty(Y,"output_parsed",{enumerable:!0,get(){for(let J of Y.output){if(J.type!=="message")continue;for(let G of J.content)if(G.type==="output_text"&&G.parsed!==null)return G.parsed}return null}}),Y}function LV(W,$){if(W.text?.format?.type!=="json_schema")return null;if("$parseRaw"in W.text?.format)return(W.text?.format).$parseRaw($);return JSON.parse($)}function AV(W){if(C4(W.text?.format))return!0;return!1}function EV(W){return W?.$brand==="auto-parseable-tool"}function NV(W,$){return W.find((X)=>X.type==="function"&&X.name===$)}function BV(W,$){let X=NV(W.tools??[],$.name);return{...$,...$,parsed_arguments:EV(X)?X.$parseRaw($.arguments):X?.strict?JSON.parse($.arguments):null}}function ZJ(W){let $=[];for(let X of W.output){if(X.type!=="message")continue;for(let Y of X.content)if(Y.type==="output_text")$.push(Y.text)}W.output_text=$.join("")}class c4 extends f{list(W,$={},X){if(H0($))return this.list(W,{},$);return this._client.getAPIList(`/responses/${W}/input_items`,SJ,{query:$,...X})}}var H$=function(W,$,X,Y,J){if(Y==="m")throw new TypeError("Private method is not writable");if(Y==="a"&&!J)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?W!==$||!J:!$.has(W))throw new TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:$.set(W,X),X},C2=function(W,$,X,Y){if(X==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?W!==$||!Y:!$.has(W))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:$.get(W)},Q$,rX,k2,tX,VH,OH,KH,LH;class aX extends W8{constructor(W){super();Q$.add(this),rX.set(this,void 0),k2.set(this,void 0),tX.set(this,void 0),H$(this,rX,W,"f")}static createResponse(W,$,X){let Y=new aX($);return Y._run(()=>Y._createResponse(W,$,{...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"stream"}})),Y}async _createResponse(W,$,X){let Y=X?.signal;if(Y){if(Y.aborted)this.controller.abort();Y.addEventListener("abort",()=>this.controller.abort())}C2(this,Q$,"m",VH).call(this);let J=await W.responses.create({...$,stream:!0},{...X,signal:this.controller.signal});this._connected();for await(let G of J)C2(this,Q$,"m",OH).call(this,G);if(J.controller.signal?.aborted)throw new X1;return C2(this,Q$,"m",KH).call(this)}[(rX=new WeakMap,k2=new WeakMap,tX=new WeakMap,Q$=new WeakSet,VH=function W(){if(this.ended)return;H$(this,k2,void 0,"f")},OH=function W($){if(this.ended)return;let X=C2(this,Q$,"m",LH).call(this,$);switch(this._emit("event",$),$.type){case"response.output_text.delta":{let Y=X.output[$.output_index];if(!Y)throw new o(`missing output at index ${$.output_index}`);if(Y.type==="message"){let J=Y.content[$.content_index];if(!J)throw new o(`missing content at index ${$.content_index}`);if(J.type!=="output_text")throw new o(`expected content to be 'output_text', got ${J.type}`);this._emit("response.output_text.delta",{...$,snapshot:J.text})}break}case"response.function_call_arguments.delta":{let Y=X.output[$.output_index];if(!Y)throw new o(`missing output at index ${$.output_index}`);if(Y.type==="function_call")this._emit("response.function_call_arguments.delta",{...$,snapshot:Y.arguments});break}default:this._emit($.type,$);break}},KH=function W(){if(this.ended)throw new o("stream has ended, this shouldn't happen");let $=C2(this,k2,"f");if(!$)throw new o("request ended without sending any events");H$(this,k2,void 0,"f");let X=ZV($,C2(this,rX,"f"));return H$(this,tX,X,"f"),X},LH=function W($){let X=C2(this,k2,"f");if(!X){if($.type!=="response.created")throw new o(`When snapshot hasn't been set yet, expected 'response.created' event, got ${$.type}`);return X=H$(this,k2,$.response,"f"),X}switch($.type){case"response.output_item.added":{X.output.push($.item);break}case"response.content_part.added":{let Y=X.output[$.output_index];if(!Y)throw new o(`missing output at index ${$.output_index}`);if(Y.type==="message")Y.content.push($.part);break}case"response.output_text.delta":{let Y=X.output[$.output_index];if(!Y)throw new o(`missing output at index ${$.output_index}`);if(Y.type==="message"){let J=Y.content[$.content_index];if(!J)throw new o(`missing content at index ${$.content_index}`);if(J.type!=="output_text")throw new o(`expected content to be 'output_text', got ${J.type}`);J.text+=$.delta}break}case"response.function_call_arguments.delta":{let Y=X.output[$.output_index];if(!Y)throw new o(`missing output at index ${$.output_index}`);if(Y.type==="function_call")Y.arguments+=$.delta;break}case"response.completed":{H$(this,k2,$.response,"f");break}}return X},Symbol.asyncIterator)](){let W=[],$=[],X=!1;return this.on("event",(Y)=>{let J=$.shift();if(J)J.resolve(Y);else W.push(Y)}),this.on("end",()=>{X=!0;for(let Y of $)Y.resolve(void 0);$.length=0}),this.on("abort",(Y)=>{X=!0;for(let J of $)J.reject(Y);$.length=0}),this.on("error",(Y)=>{X=!0;for(let J of $)J.reject(Y);$.length=0}),{next:async()=>{if(!W.length){if(X)return{value:void 0,done:!0};return new Promise((J,G)=>$.push({resolve:J,reject:G})).then((J)=>J?{value:J,done:!1}:{value:void 0,done:!0})}return{value:W.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}async finalResponse(){await this.done();let W=C2(this,tX,"f");if(!W)throw new o("stream ended without producing a ChatCompletion");return W}}function ZV(W,$){return DH(W,$)}class T8 extends f{constructor(){super(...arguments);this.inputItems=new c4(this._client)}create(W,$){return this._client.post("/responses",{body:W,...$,stream:W.stream??!1})._thenUnwrap((X)=>{if("object"in X&&X.object==="response")ZJ(X);return X})}retrieve(W,$={},X){if(H0($))return this.retrieve(W,{},$);return this._client.get(`/responses/${W}`,{query:$,...X})}del(W,$){return this._client.delete(`/responses/${W}`,{...$,headers:{Accept:"*/*",...$?.headers}})}parse(W,$){return this._client.responses.create(W,$)._thenUnwrap((X)=>RJ(X,W))}stream(W,$){return aX.createResponse(this._client,W,$)}}class SJ extends L0{}T8.InputItems=c4;class d4 extends f{create(W,$,X){return this._client.post(`/uploads/${W}/parts`,YW({body:$,...X}))}}class U8 extends f{constructor(){super(...arguments);this.parts=new d4(this._client)}create(W,$){return this._client.post("/uploads",{body:W,...$})}cancel(W,$){return this._client.post(`/uploads/${W}/cancel`,$)}complete(W,$,X){return this._client.post(`/uploads/${W}/complete`,{body:$,...X})}}U8.Parts=d4;var AH=async(W)=>{let $=await Promise.allSettled(W),X=$.filter((J)=>J.status==="rejected");if(X.length){for(let J of X)console.error(J.reason);throw new Error(`${X.length} promise(s) failed - see the above errors`)}let Y=[];for(let J of $)if(J.status==="fulfilled")Y.push(J.value);return Y};class w8 extends f{create(W,$,X){return this._client.post(`/vector_stores/${W}/files`,{body:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}retrieve(W,$,X){return this._client.get(`/vector_stores/${W}/files/${$}`,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}update(W,$,X,Y){return this._client.post(`/vector_stores/${W}/files/${$}`,{body:X,...Y,headers:{"OpenAI-Beta":"assistants=v2",...Y?.headers}})}list(W,$={},X){if(H0($))return this.list(W,{},$);return this._client.getAPIList(`/vector_stores/${W}/files`,M8,{query:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}del(W,$,X){return this._client.delete(`/vector_stores/${W}/files/${$}`,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}async createAndPoll(W,$,X){let Y=await this.create(W,$,X);return await this.poll(W,Y.id,X)}async poll(W,$,X){let Y={...X?.headers,"X-Stainless-Poll-Helper":"true"};if(X?.pollIntervalMs)Y["X-Stainless-Custom-Poll-Interval"]=X.pollIntervalMs.toString();while(!0){let J=await this.retrieve(W,$,{...X,headers:Y}).withResponse(),G=J.data;switch(G.status){case"in_progress":let H=5000;if(X?.pollIntervalMs)H=X.pollIntervalMs;else{let Q=J.response.headers.get("openai-poll-after-ms");if(Q){let z=parseInt(Q);if(!isNaN(z))H=z}}await rW(H);break;case"failed":case"completed":return G}}}async upload(W,$,X){let Y=await this._client.files.create({file:$,purpose:"assistants"},X);return this.create(W,{file_id:Y.id},X)}async uploadAndPoll(W,$,X){let Y=await this.upload(W,$,X);return await this.poll(W,Y.id,X)}content(W,$,X){return this._client.getAPIList(`/vector_stores/${W}/files/${$}/content`,l4,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}}class M8 extends L0{}class l4 extends tW{}w8.VectorStoreFilesPage=M8;w8.FileContentResponsesPage=l4;class o4 extends f{create(W,$,X){return this._client.post(`/vector_stores/${W}/file_batches`,{body:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}retrieve(W,$,X){return this._client.get(`/vector_stores/${W}/file_batches/${$}`,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}cancel(W,$,X){return this._client.post(`/vector_stores/${W}/file_batches/${$}/cancel`,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}async createAndPoll(W,$,X){let Y=await this.create(W,$);return await this.poll(W,Y.id,X)}listFiles(W,$,X={},Y){if(H0(X))return this.listFiles(W,$,{},X);return this._client.getAPIList(`/vector_stores/${W}/file_batches/${$}/files`,M8,{query:X,...Y,headers:{"OpenAI-Beta":"assistants=v2",...Y?.headers}})}async poll(W,$,X){let Y={...X?.headers,"X-Stainless-Poll-Helper":"true"};if(X?.pollIntervalMs)Y["X-Stainless-Custom-Poll-Interval"]=X.pollIntervalMs.toString();while(!0){let{data:J,response:G}=await this.retrieve(W,$,{...X,headers:Y}).withResponse();switch(J.status){case"in_progress":let H=5000;if(X?.pollIntervalMs)H=X.pollIntervalMs;else{let Q=G.headers.get("openai-poll-after-ms");if(Q){let z=parseInt(Q);if(!isNaN(z))H=z}}await rW(H);break;case"failed":case"cancelled":case"completed":return J}}}async uploadAndPoll(W,{files:$,fileIds:X=[]},Y){if($==null||$.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let J=Y?.maxConcurrency??5,G=Math.min(J,$.length),H=this._client,Q=$.values(),z=[...X];async function F(U){for(let M of U){let V=await H.files.create({file:M,purpose:"assistants"},Y);z.push(V.id)}}let T=Array(G).fill(Q).map(F);return await AH(T),await this.createAndPoll(W,{file_ids:z})}}class JW extends f{constructor(){super(...arguments);this.files=new w8(this._client),this.fileBatches=new o4(this._client)}create(W,$){return this._client.post("/vector_stores",{body:W,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(W,$){return this._client.get(`/vector_stores/${W}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(W,$,X){return this._client.post(`/vector_stores/${W}`,{body:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}list(W={},$){if(H0(W))return this.list({},W);return this._client.getAPIList("/vector_stores",z$,{query:W,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(W,$){return this._client.delete(`/vector_stores/${W}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}search(W,$,X){return this._client.getAPIList(`/vector_stores/${W}/search`,F$,{body:$,method:"post",...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}}class z$ extends L0{}class F$ extends tW{}JW.VectorStoresPage=z$;JW.VectorStoreSearchResponsesPage=F$;JW.Files=w8;JW.VectorStoreFilesPage=M8;JW.FileContentResponsesPage=l4;JW.FileBatches=o4;var EH;class Q0 extends GJ{constructor({baseURL:W=_4("OPENAI_BASE_URL"),apiKey:$=_4("OPENAI_API_KEY"),organization:X=_4("OPENAI_ORG_ID")??null,project:Y=_4("OPENAI_PROJECT_ID")??null,...J}={}){if($===void 0)throw new o("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");let G={apiKey:$,organization:X,project:Y,...J,baseURL:W||"https://api.openai.com/v1"};if(!G.dangerouslyAllowBrowser&&r3())throw new o(`It looks like you're running in a browser-like environment.
23
+ ${iX(W)}`);return{...U0,id:h,type:v,function:{..._0,name:E,arguments:m0}}})}};return{...O,message:{...C,content:K,role:R,refusal:F.refusal??null},finish_reason:T,index:U,logprobs:M}}),created:J,model:G,object:"chat.completion",...H?{system_fingerprint:H}:{}};return GH(z,$)}function iX(W){return JSON.stringify(W)}function MH(W){return}function _H(W){}class G8 extends J8{static fromReadableStream(W){let $=new G8(null);return $._run(()=>$._fromReadableStream(W)),$}static runFunctions(W,$,X){let Y=new G8(null),J={...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return Y._run(()=>Y._runFunctions(W,$,J)),Y}static runTools(W,$,X){let Y=new G8($),J={...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"runTools"}};return Y._run(()=>Y._runTools(W,$,J)),Y}}class nX extends f{parse(W,$){return QH(W.tools),this._client.chat.completions.create(W,{...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"beta.chat.completions.parse"}})._thenUnwrap((X)=>k4(X,W))}runFunctions(W,$){if(W.stream)return G8.runFunctions(this._client,W,$);return l8.runFunctions(this._client,W,$)}runTools(W,$){if(W.stream)return G8.runTools(this._client,W,$);return l8.runTools(this._client,W,$)}stream(W,$){return J8.createChatCompletion(this._client,W,$)}}class j4 extends f{constructor(){super(...arguments);this.completions=new nX(this._client)}}(function(W){W.Completions=nX})(j4||(j4={}));class f4 extends f{create(W,$){return this._client.post("/realtime/sessions",{body:W,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class P4 extends f{create(W,$){return this._client.post("/realtime/transcription_sessions",{body:W,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class H8 extends f{constructor(){super(...arguments);this.sessions=new f4(this._client),this.transcriptionSessions=new P4(this._client)}}H8.Sessions=f4;H8.TranscriptionSessions=P4;class n8 extends f{create(W,$,X){return this._client.post(`/threads/${W}/messages`,{body:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}retrieve(W,$,X){return this._client.get(`/threads/${W}/messages/${$}`,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}update(W,$,X,Y){return this._client.post(`/threads/${W}/messages/${$}`,{body:X,...Y,headers:{"OpenAI-Beta":"assistants=v2",...Y?.headers}})}list(W,$={},X){if(H0($))return this.list(W,{},$);return this._client.getAPIList(`/threads/${W}/messages`,x4,{query:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}del(W,$,X){return this._client.delete(`/threads/${W}/messages/${$}`,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}}class x4 extends L0{}n8.MessagesPage=x4;class r8 extends f{retrieve(W,$,X,Y={},J){if(H0(Y))return this.retrieve(W,$,X,{},Y);return this._client.get(`/threads/${W}/runs/${$}/steps/${X}`,{query:Y,...J,headers:{"OpenAI-Beta":"assistants=v2",...J?.headers}})}list(W,$,X={},Y){if(H0(X))return this.list(W,$,{},X);return this._client.getAPIList(`/threads/${W}/runs/${$}/steps`,v4,{query:X,...Y,headers:{"OpenAI-Beta":"assistants=v2",...Y?.headers}})}}class v4 extends L0{}r8.RunStepsPage=v4;class S2 extends f{constructor(){super(...arguments);this.steps=new r8(this._client)}create(W,$,X){let{include:Y,...J}=$;return this._client.post(`/threads/${W}/runs`,{query:{include:Y},body:J,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers},stream:$.stream??!1})}retrieve(W,$,X){return this._client.get(`/threads/${W}/runs/${$}`,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}update(W,$,X,Y){return this._client.post(`/threads/${W}/runs/${$}`,{body:X,...Y,headers:{"OpenAI-Beta":"assistants=v2",...Y?.headers}})}list(W,$={},X){if(H0($))return this.list(W,{},$);return this._client.getAPIList(`/threads/${W}/runs`,b4,{query:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}cancel(W,$,X){return this._client.post(`/threads/${W}/runs/${$}/cancel`,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}async createAndPoll(W,$,X){let Y=await this.create(W,$,X);return await this.poll(W,Y.id,X)}createAndStream(W,$,X){return t1.createAssistantStream(W,this._client.beta.threads.runs,$,X)}async poll(W,$,X){let Y={...X?.headers,"X-Stainless-Poll-Helper":"true"};if(X?.pollIntervalMs)Y["X-Stainless-Custom-Poll-Interval"]=X.pollIntervalMs.toString();while(!0){let{data:J,response:G}=await this.retrieve(W,$,{...X,headers:{...X?.headers,...Y}}).withResponse();switch(J.status){case"queued":case"in_progress":case"cancelling":let H=5000;if(X?.pollIntervalMs)H=X.pollIntervalMs;else{let Q=G.headers.get("openai-poll-after-ms");if(Q){let z=parseInt(Q);if(!isNaN(z))H=z}}await rW(H);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return J}}}stream(W,$,X){return t1.createAssistantStream(W,this._client.beta.threads.runs,$,X)}submitToolOutputs(W,$,X,Y){return this._client.post(`/threads/${W}/runs/${$}/submit_tool_outputs`,{body:X,...Y,headers:{"OpenAI-Beta":"assistants=v2",...Y?.headers},stream:X.stream??!1})}async submitToolOutputsAndPoll(W,$,X,Y){let J=await this.submitToolOutputs(W,$,X,Y);return await this.poll(W,J.id,Y)}submitToolOutputsStream(W,$,X,Y){return t1.createToolAssistantStream(W,$,this._client.beta.threads.runs,X,Y)}}class b4 extends L0{}S2.RunsPage=b4;S2.Steps=r8;S2.RunStepsPage=v4;class W2 extends f{constructor(){super(...arguments);this.runs=new S2(this._client),this.messages=new n8(this._client)}create(W={},$){if(H0(W))return this.create({},W);return this._client.post("/threads",{body:W,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(W,$){return this._client.get(`/threads/${W}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(W,$,X){return this._client.post(`/threads/${W}`,{body:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}del(W,$){return this._client.delete(`/threads/${W}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}createAndRun(W,$){return this._client.post("/threads/runs",{body:W,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers},stream:W.stream??!1})}async createAndRunPoll(W,$){let X=await this.createAndRun(W,$);return await this.runs.poll(X.thread_id,X.id,$)}createAndRunStream(W,$){return t1.createThreadAssistantStream(W,this._client.beta.threads,$)}}W2.Runs=S2;W2.RunsPage=b4;W2.Messages=n8;W2.MessagesPage=x4;class yW extends f{constructor(){super(...arguments);this.realtime=new H8(this._client),this.chat=new j4(this._client),this.assistants=new d8(this._client),this.threads=new W2(this._client)}}yW.Realtime=H8;yW.Assistants=d8;yW.AssistantsPage=q4;yW.Threads=W2;class t8 extends f{create(W,$){return this._client.post("/completions",{body:W,...$,stream:W.stream??!1})}}class a8 extends f{create(W,$){let X=!!W.encoding_format,Y=X?W.encoding_format:"base64";if(X)nW("Request","User defined encoding_format:",W.encoding_format);let J=this._client.post("/embeddings",{body:{...W,encoding_format:Y},...$});if(X)return J;return nW("response","Decoding base64 embeddings to float32 array"),J._thenUnwrap((G)=>{if(G&&G.data)G.data.forEach((H)=>{let Q=H.embedding;H.embedding=t3(Q)});return G})}}class s8 extends f{retrieve(W,$,X,Y){return this._client.get(`/evals/${W}/runs/${$}/output_items/${X}`,Y)}list(W,$,X={},Y){if(H0(X))return this.list(W,$,{},X);return this._client.getAPIList(`/evals/${W}/runs/${$}/output_items`,y4,{query:X,...Y})}}class y4 extends L0{}s8.OutputItemListResponsesPage=y4;class q2 extends f{constructor(){super(...arguments);this.outputItems=new s8(this._client)}create(W,$,X){return this._client.post(`/evals/${W}/runs`,{body:$,...X})}retrieve(W,$,X){return this._client.get(`/evals/${W}/runs/${$}`,X)}list(W,$={},X){if(H0($))return this.list(W,{},$);return this._client.getAPIList(`/evals/${W}/runs`,h4,{query:$,...X})}del(W,$,X){return this._client.delete(`/evals/${W}/runs/${$}`,X)}cancel(W,$,X){return this._client.post(`/evals/${W}/runs/${$}`,X)}}class h4 extends L0{}q2.RunListResponsesPage=h4;q2.OutputItems=s8;q2.OutputItemListResponsesPage=y4;class $2 extends f{constructor(){super(...arguments);this.runs=new q2(this._client)}create(W,$){return this._client.post("/evals",{body:W,...$})}retrieve(W,$){return this._client.get(`/evals/${W}`,$)}update(W,$,X){return this._client.post(`/evals/${W}`,{body:$,...X})}list(W={},$){if(H0(W))return this.list({},W);return this._client.getAPIList("/evals",e8,{query:W,...$})}del(W,$){return this._client.delete(`/evals/${W}`,$)}}class e8 extends L0{}$2.EvalListResponsesPage=e8;$2.Runs=q2;$2.RunListResponsesPage=h4;class Q8 extends f{create(W,$){return this._client.post("/files",YW({body:W,...$}))}retrieve(W,$){return this._client.get(`/files/${W}`,$)}list(W={},$){if(H0(W))return this.list({},W);return this._client.getAPIList("/files",W$,{query:W,...$})}del(W,$){return this._client.delete(`/files/${W}`,$)}content(W,$){return this._client.get(`/files/${W}/content`,{...$,headers:{Accept:"application/binary",...$?.headers},__binaryResponse:!0})}retrieveContent(W,$){return this._client.get(`/files/${W}/content`,$)}async waitForProcessing(W,{pollInterval:$=5000,maxWait:X=1800000}={}){let Y=new Set(["processed","error","deleted"]),J=Date.now(),G=await this.retrieve(W);while(!G.status||!Y.has(G.status))if(await rW($),G=await this.retrieve(W),Date.now()-J>X)throw new r2({message:`Giving up on waiting for file ${W} to finish processing after ${X} milliseconds.`});return G}}class W$ extends L0{}Q8.FileObjectsPage=W$;class $$ extends f{create(W,$,X){return this._client.getAPIList(`/fine_tuning/checkpoints/${W}/permissions`,g4,{body:$,method:"post",...X})}retrieve(W,$={},X){if(H0($))return this.retrieve(W,{},$);return this._client.get(`/fine_tuning/checkpoints/${W}/permissions`,{query:$,...X})}del(W,$,X){return this._client.delete(`/fine_tuning/checkpoints/${W}/permissions/${$}`,X)}}class g4 extends tW{}$$.PermissionCreateResponsesPage=g4;class z8 extends f{constructor(){super(...arguments);this.permissions=new $$(this._client)}}z8.Permissions=$$;z8.PermissionCreateResponsesPage=g4;class X$ extends f{list(W,$={},X){if(H0($))return this.list(W,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${W}/checkpoints`,m4,{query:$,...X})}}class m4 extends L0{}X$.FineTuningJobCheckpointsPage=m4;class X2 extends f{constructor(){super(...arguments);this.checkpoints=new X$(this._client)}create(W,$){return this._client.post("/fine_tuning/jobs",{body:W,...$})}retrieve(W,$){return this._client.get(`/fine_tuning/jobs/${W}`,$)}list(W={},$){if(H0(W))return this.list({},W);return this._client.getAPIList("/fine_tuning/jobs",p4,{query:W,...$})}cancel(W,$){return this._client.post(`/fine_tuning/jobs/${W}/cancel`,$)}listEvents(W,$={},X){if(H0($))return this.listEvents(W,{},$);return this._client.getAPIList(`/fine_tuning/jobs/${W}/events`,u4,{query:$,...X})}}class p4 extends L0{}class u4 extends L0{}X2.FineTuningJobsPage=p4;X2.FineTuningJobEventsPage=u4;X2.Checkpoints=X$;X2.FineTuningJobCheckpointsPage=m4;class hW extends f{constructor(){super(...arguments);this.jobs=new X2(this._client),this.checkpoints=new z8(this._client)}}hW.Jobs=X2;hW.FineTuningJobsPage=p4;hW.FineTuningJobEventsPage=u4;hW.Checkpoints=z8;class Y$ extends f{createVariation(W,$){return this._client.post("/images/variations",YW({body:W,...$}))}edit(W,$){return this._client.post("/images/edits",YW({body:W,...$}))}generate(W,$){return this._client.post("/images/generations",{body:W,...$})}}class F8 extends f{retrieve(W,$){return this._client.get(`/models/${W}`,$)}list(W){return this._client.getAPIList("/models",J$,W)}del(W,$){return this._client.delete(`/models/${W}`,$)}}class J$ extends tW{}F8.ModelsPage=J$;class G$ extends f{create(W,$){return this._client.post("/moderations",{body:W,...$})}}function DH(W,$){if(!$||!AO($))return{...W,output_parsed:null,output:W.output.map((X)=>{if(X.type==="function_call")return{...X,parsed_arguments:null};if(X.type==="message")return{...X,content:X.content.map((Y)=>({...Y,parsed:null}))};else return X})};return BJ(W,$)}function BJ(W,$){let X=W.output.map((J)=>{if(J.type==="function_call")return{...J,parsed_arguments:RO($,J)};if(J.type==="message"){let G=J.content.map((H)=>{if(H.type==="output_text")return{...H,parsed:LO($,H.text)};return H});return{...J,content:G}}return J}),Y=Object.assign({},W,{output:X});if(!Object.getOwnPropertyDescriptor(W,"output_text"))ZJ(Y);return Object.defineProperty(Y,"output_parsed",{enumerable:!0,get(){for(let J of Y.output){if(J.type!=="message")continue;for(let G of J.content)if(G.type==="output_text"&&G.parsed!==null)return G.parsed}return null}}),Y}function LO(W,$){if(W.text?.format?.type!=="json_schema")return null;if("$parseRaw"in W.text?.format)return(W.text?.format).$parseRaw($);return JSON.parse($)}function AO(W){if(C4(W.text?.format))return!0;return!1}function EO(W){return W?.$brand==="auto-parseable-tool"}function NO(W,$){return W.find((X)=>X.type==="function"&&X.name===$)}function RO(W,$){let X=NO(W.tools??[],$.name);return{...$,...$,parsed_arguments:EO(X)?X.$parseRaw($.arguments):X?.strict?JSON.parse($.arguments):null}}function ZJ(W){let $=[];for(let X of W.output){if(X.type!=="message")continue;for(let Y of X.content)if(Y.type==="output_text")$.push(Y.text)}W.output_text=$.join("")}class c4 extends f{list(W,$={},X){if(H0($))return this.list(W,{},$);return this._client.getAPIList(`/responses/${W}/input_items`,SJ,{query:$,...X})}}var H$=function(W,$,X,Y,J){if(Y==="m")throw new TypeError("Private method is not writable");if(Y==="a"&&!J)throw new TypeError("Private accessor was defined without a setter");if(typeof $==="function"?W!==$||!J:!$.has(W))throw new TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?J.call(W,X):J?J.value=X:$.set(W,X),X},C2=function(W,$,X,Y){if(X==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof $==="function"?W!==$||!Y:!$.has(W))throw new TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:$.get(W)},Q$,rX,k2,tX,OH,VH,KH,LH;class aX extends W8{constructor(W){super();Q$.add(this),rX.set(this,void 0),k2.set(this,void 0),tX.set(this,void 0),H$(this,rX,W,"f")}static createResponse(W,$,X){let Y=new aX($);return Y._run(()=>Y._createResponse(W,$,{...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"stream"}})),Y}async _createResponse(W,$,X){let Y=X?.signal;if(Y){if(Y.aborted)this.controller.abort();Y.addEventListener("abort",()=>this.controller.abort())}C2(this,Q$,"m",OH).call(this);let J=await W.responses.create({...$,stream:!0},{...X,signal:this.controller.signal});this._connected();for await(let G of J)C2(this,Q$,"m",VH).call(this,G);if(J.controller.signal?.aborted)throw new X1;return C2(this,Q$,"m",KH).call(this)}[(rX=new WeakMap,k2=new WeakMap,tX=new WeakMap,Q$=new WeakSet,OH=function W(){if(this.ended)return;H$(this,k2,void 0,"f")},VH=function W($){if(this.ended)return;let X=C2(this,Q$,"m",LH).call(this,$);switch(this._emit("event",$),$.type){case"response.output_text.delta":{let Y=X.output[$.output_index];if(!Y)throw new o(`missing output at index ${$.output_index}`);if(Y.type==="message"){let J=Y.content[$.content_index];if(!J)throw new o(`missing content at index ${$.content_index}`);if(J.type!=="output_text")throw new o(`expected content to be 'output_text', got ${J.type}`);this._emit("response.output_text.delta",{...$,snapshot:J.text})}break}case"response.function_call_arguments.delta":{let Y=X.output[$.output_index];if(!Y)throw new o(`missing output at index ${$.output_index}`);if(Y.type==="function_call")this._emit("response.function_call_arguments.delta",{...$,snapshot:Y.arguments});break}default:this._emit($.type,$);break}},KH=function W(){if(this.ended)throw new o("stream has ended, this shouldn't happen");let $=C2(this,k2,"f");if(!$)throw new o("request ended without sending any events");H$(this,k2,void 0,"f");let X=ZO($,C2(this,rX,"f"));return H$(this,tX,X,"f"),X},LH=function W($){let X=C2(this,k2,"f");if(!X){if($.type!=="response.created")throw new o(`When snapshot hasn't been set yet, expected 'response.created' event, got ${$.type}`);return X=H$(this,k2,$.response,"f"),X}switch($.type){case"response.output_item.added":{X.output.push($.item);break}case"response.content_part.added":{let Y=X.output[$.output_index];if(!Y)throw new o(`missing output at index ${$.output_index}`);if(Y.type==="message")Y.content.push($.part);break}case"response.output_text.delta":{let Y=X.output[$.output_index];if(!Y)throw new o(`missing output at index ${$.output_index}`);if(Y.type==="message"){let J=Y.content[$.content_index];if(!J)throw new o(`missing content at index ${$.content_index}`);if(J.type!=="output_text")throw new o(`expected content to be 'output_text', got ${J.type}`);J.text+=$.delta}break}case"response.function_call_arguments.delta":{let Y=X.output[$.output_index];if(!Y)throw new o(`missing output at index ${$.output_index}`);if(Y.type==="function_call")Y.arguments+=$.delta;break}case"response.completed":{H$(this,k2,$.response,"f");break}}return X},Symbol.asyncIterator)](){let W=[],$=[],X=!1;return this.on("event",(Y)=>{let J=$.shift();if(J)J.resolve(Y);else W.push(Y)}),this.on("end",()=>{X=!0;for(let Y of $)Y.resolve(void 0);$.length=0}),this.on("abort",(Y)=>{X=!0;for(let J of $)J.reject(Y);$.length=0}),this.on("error",(Y)=>{X=!0;for(let J of $)J.reject(Y);$.length=0}),{next:async()=>{if(!W.length){if(X)return{value:void 0,done:!0};return new Promise((J,G)=>$.push({resolve:J,reject:G})).then((J)=>J?{value:J,done:!1}:{value:void 0,done:!0})}return{value:W.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}async finalResponse(){await this.done();let W=C2(this,tX,"f");if(!W)throw new o("stream ended without producing a ChatCompletion");return W}}function ZO(W,$){return DH(W,$)}class T8 extends f{constructor(){super(...arguments);this.inputItems=new c4(this._client)}create(W,$){return this._client.post("/responses",{body:W,...$,stream:W.stream??!1})._thenUnwrap((X)=>{if("object"in X&&X.object==="response")ZJ(X);return X})}retrieve(W,$={},X){if(H0($))return this.retrieve(W,{},$);return this._client.get(`/responses/${W}`,{query:$,...X})}del(W,$){return this._client.delete(`/responses/${W}`,{...$,headers:{Accept:"*/*",...$?.headers}})}parse(W,$){return this._client.responses.create(W,$)._thenUnwrap((X)=>BJ(X,W))}stream(W,$){return aX.createResponse(this._client,W,$)}}class SJ extends L0{}T8.InputItems=c4;class d4 extends f{create(W,$,X){return this._client.post(`/uploads/${W}/parts`,YW({body:$,...X}))}}class U8 extends f{constructor(){super(...arguments);this.parts=new d4(this._client)}create(W,$){return this._client.post("/uploads",{body:W,...$})}cancel(W,$){return this._client.post(`/uploads/${W}/cancel`,$)}complete(W,$,X){return this._client.post(`/uploads/${W}/complete`,{body:$,...X})}}U8.Parts=d4;var AH=async(W)=>{let $=await Promise.allSettled(W),X=$.filter((J)=>J.status==="rejected");if(X.length){for(let J of X)console.error(J.reason);throw new Error(`${X.length} promise(s) failed - see the above errors`)}let Y=[];for(let J of $)if(J.status==="fulfilled")Y.push(J.value);return Y};class w8 extends f{create(W,$,X){return this._client.post(`/vector_stores/${W}/files`,{body:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}retrieve(W,$,X){return this._client.get(`/vector_stores/${W}/files/${$}`,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}update(W,$,X,Y){return this._client.post(`/vector_stores/${W}/files/${$}`,{body:X,...Y,headers:{"OpenAI-Beta":"assistants=v2",...Y?.headers}})}list(W,$={},X){if(H0($))return this.list(W,{},$);return this._client.getAPIList(`/vector_stores/${W}/files`,M8,{query:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}del(W,$,X){return this._client.delete(`/vector_stores/${W}/files/${$}`,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}async createAndPoll(W,$,X){let Y=await this.create(W,$,X);return await this.poll(W,Y.id,X)}async poll(W,$,X){let Y={...X?.headers,"X-Stainless-Poll-Helper":"true"};if(X?.pollIntervalMs)Y["X-Stainless-Custom-Poll-Interval"]=X.pollIntervalMs.toString();while(!0){let J=await this.retrieve(W,$,{...X,headers:Y}).withResponse(),G=J.data;switch(G.status){case"in_progress":let H=5000;if(X?.pollIntervalMs)H=X.pollIntervalMs;else{let Q=J.response.headers.get("openai-poll-after-ms");if(Q){let z=parseInt(Q);if(!isNaN(z))H=z}}await rW(H);break;case"failed":case"completed":return G}}}async upload(W,$,X){let Y=await this._client.files.create({file:$,purpose:"assistants"},X);return this.create(W,{file_id:Y.id},X)}async uploadAndPoll(W,$,X){let Y=await this.upload(W,$,X);return await this.poll(W,Y.id,X)}content(W,$,X){return this._client.getAPIList(`/vector_stores/${W}/files/${$}/content`,l4,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}}class M8 extends L0{}class l4 extends tW{}w8.VectorStoreFilesPage=M8;w8.FileContentResponsesPage=l4;class o4 extends f{create(W,$,X){return this._client.post(`/vector_stores/${W}/file_batches`,{body:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}retrieve(W,$,X){return this._client.get(`/vector_stores/${W}/file_batches/${$}`,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}cancel(W,$,X){return this._client.post(`/vector_stores/${W}/file_batches/${$}/cancel`,{...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}async createAndPoll(W,$,X){let Y=await this.create(W,$);return await this.poll(W,Y.id,X)}listFiles(W,$,X={},Y){if(H0(X))return this.listFiles(W,$,{},X);return this._client.getAPIList(`/vector_stores/${W}/file_batches/${$}/files`,M8,{query:X,...Y,headers:{"OpenAI-Beta":"assistants=v2",...Y?.headers}})}async poll(W,$,X){let Y={...X?.headers,"X-Stainless-Poll-Helper":"true"};if(X?.pollIntervalMs)Y["X-Stainless-Custom-Poll-Interval"]=X.pollIntervalMs.toString();while(!0){let{data:J,response:G}=await this.retrieve(W,$,{...X,headers:Y}).withResponse();switch(J.status){case"in_progress":let H=5000;if(X?.pollIntervalMs)H=X.pollIntervalMs;else{let Q=G.headers.get("openai-poll-after-ms");if(Q){let z=parseInt(Q);if(!isNaN(z))H=z}}await rW(H);break;case"failed":case"cancelled":case"completed":return J}}}async uploadAndPoll(W,{files:$,fileIds:X=[]},Y){if($==null||$.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let J=Y?.maxConcurrency??5,G=Math.min(J,$.length),H=this._client,Q=$.values(),z=[...X];async function F(U){for(let M of U){let O=await H.files.create({file:M,purpose:"assistants"},Y);z.push(O.id)}}let T=Array(G).fill(Q).map(F);return await AH(T),await this.createAndPoll(W,{file_ids:z})}}class JW extends f{constructor(){super(...arguments);this.files=new w8(this._client),this.fileBatches=new o4(this._client)}create(W,$){return this._client.post("/vector_stores",{body:W,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(W,$){return this._client.get(`/vector_stores/${W}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(W,$,X){return this._client.post(`/vector_stores/${W}`,{body:$,...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}list(W={},$){if(H0(W))return this.list({},W);return this._client.getAPIList("/vector_stores",z$,{query:W,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(W,$){return this._client.delete(`/vector_stores/${W}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}search(W,$,X){return this._client.getAPIList(`/vector_stores/${W}/search`,F$,{body:$,method:"post",...X,headers:{"OpenAI-Beta":"assistants=v2",...X?.headers}})}}class z$ extends L0{}class F$ extends tW{}JW.VectorStoresPage=z$;JW.VectorStoreSearchResponsesPage=F$;JW.Files=w8;JW.VectorStoreFilesPage=M8;JW.FileContentResponsesPage=l4;JW.FileBatches=o4;var EH;class Q0 extends GJ{constructor({baseURL:W=_4("OPENAI_BASE_URL"),apiKey:$=_4("OPENAI_API_KEY"),organization:X=_4("OPENAI_ORG_ID")??null,project:Y=_4("OPENAI_PROJECT_ID")??null,...J}={}){if($===void 0)throw new o("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");let G={apiKey:$,organization:X,project:Y,...J,baseURL:W||"https://api.openai.com/v1"};if(!G.dangerouslyAllowBrowser&&r3())throw new o(`It looks like you're running in a browser-like environment.
24
24
 
25
25
  This is disabled by default, as it risks exposing your secret API credentials to attackers.
26
26
  If you understand the risks and have appropriate mitigations in place,
@@ -29,13 +29,13 @@ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
29
29
  new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
30
30
 
31
31
  https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
32
- `);super({baseURL:G.baseURL,timeout:G.timeout??600000,httpAgent:G.httpAgent,maxRetries:G.maxRetries,fetch:G.fetch});this.completions=new t8(this),this.chat=new B2(this),this.embeddings=new a8(this),this.files=new Q8(this),this.images=new Y$(this),this.audio=new aW(this),this.moderations=new G$(this),this.models=new F8(this),this.fineTuning=new hW(this),this.vectorStores=new JW(this),this.beta=new yW(this),this.batches=new e2(this),this.uploads=new U8(this),this.responses=new T8(this),this.evals=new $2(this),this._options=G,this.apiKey=$,this.organization=X,this.project=Y}defaultQuery(){return this._options.defaultQuery}defaultHeaders(W){return{...super.defaultHeaders(W),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project,...this._options.defaultHeaders}}authHeaders(W){return{Authorization:`Bearer ${this.apiKey}`}}stringifyQuery(W){return c9(W,{arrayFormat:"brackets"})}}EH=Q0;Q0.OpenAI=EH;Q0.DEFAULT_TIMEOUT=600000;Q0.OpenAIError=o;Q0.APIError=r0;Q0.APIConnectionError=n2;Q0.APIConnectionTimeoutError=r2;Q0.APIUserAbortError=X1;Q0.NotFoundError=RX;Q0.ConflictError=ZX;Q0.RateLimitError=qX;Q0.BadRequestError=EX;Q0.AuthenticationError=NX;Q0.InternalServerError=CX;Q0.PermissionDeniedError=BX;Q0.UnprocessableEntityError=SX;Q0.toFile=XJ;Q0.fileFromPath=AX;Q0.Completions=t8;Q0.Chat=B2;Q0.ChatCompletionsPage=s2;Q0.Embeddings=a8;Q0.Files=Q8;Q0.FileObjectsPage=W$;Q0.Images=Y$;Q0.Audio=aW;Q0.Moderations=G$;Q0.Models=F8;Q0.ModelsPage=J$;Q0.FineTuning=hW;Q0.VectorStores=JW;Q0.VectorStoresPage=z$;Q0.VectorStoreSearchResponsesPage=F$;Q0.Beta=yW;Q0.Batches=e2;Q0.BatchesPage=p8;Q0.Uploads=U8;Q0.Responses=T8;Q0.Evals=$2;Q0.EvalListResponsesPage=e8;var NH=Q0;var jH=S_(ZH(),1);import*as b1 from"fs";import*as T$ from"path";import{resolve as vV}from"path";import{createHash as bV}from"crypto";import{copyFile as yV}from"fs/promises";import{existsSync as qJ,mkdirSync as SH,readFileSync as PV,readdirSync as qH,rmSync as CH,statSync as kH,writeFileSync as xV}from"fs";import{resolve as CJ}from"path";var IH=class{rootDir;get initialized(){return qJ(this.rootDir)}initialize(){if(!this.initialized)SH(this.rootDir,{recursive:!0})}constructor(W){if(this.rootDir=W.path,W.eagerInit)this.initialize()}getItem(W){let $=CJ(this.rootDir,W);if(qJ($))return PV($,"utf-8");return null}setItem(W,$){this.initialize();let X=CJ(this.rootDir,W);xV(X,$)}removeItem(W){let $=CJ(this.rootDir,W);if(qJ($))this.initialize(),CH($)}key(W){return qH(this.rootDir).sort((Y,J)=>{let G=kH(Y);return kH(J).ctimeMs-G.ctimeMs})[W]??null}clear(){CH(this.rootDir,{recursive:!0}),SH(this.rootDir,{recursive:!0})}get length(){return qH(this.rootDir).length}};var fH=/[^a-zA-Z0-9\-._]/g;function t4(W,$=64){if($%2===1)$+=1;let X=W.replace(fH,"-");if(X.length<=$)return X;let Y=bV("sha256").update(W).digest("base64").slice(0,8).replace("/","_"),J=X;if(J.length>$){let G=J.slice(0,$/2),H=J.slice(-$/2);J=G+"_"+H}return J+"+"+Y}var hV=jH.default("varmint"),r4=t4(process.cwd(),150),kJ=vV(hV,r4),J1="_-$-_-$-_",PH=`file${J1}`,xH=`list${J1}`,vH=`root${J1}`,gV=`unmatched${J1}`,j0={storage:new IH({path:kJ,eagerInit:!1}),startGlobalTracking(){if(console.log(`\uD83D\uDC3F\uFE0F Starting global tracking of varmint files using project identifier "${r4}"`),j0.storage.initialized)console.error(`\uD83D\uDCA5 The global cache for the project "${r4}" was found already initialized. Clearing it and starting fresh.`),j0.storage.clear();j0.storage.initialize()},async prepareUploads(W){console.log(`\uD83D\uDC3F\uFE0F Moving unmatched inputs to /tmp/varmint-uploads using project identifier "${r4}"`);let $=[];for(let X of b1.readdirSync(j0.storage.rootDir))if(sX(`unmatched${J1}`,X))$.push(X);if($.length===0){console.log("\uD83D\uDC3F\uFE0F ","No unmatched input files found.");return}if(console.log("\uD83D\uDC3F\uFE0F ","Found the following unmatched files:",`
32
+ `);super({baseURL:G.baseURL,timeout:G.timeout??600000,httpAgent:G.httpAgent,maxRetries:G.maxRetries,fetch:G.fetch});this.completions=new t8(this),this.chat=new R2(this),this.embeddings=new a8(this),this.files=new Q8(this),this.images=new Y$(this),this.audio=new aW(this),this.moderations=new G$(this),this.models=new F8(this),this.fineTuning=new hW(this),this.vectorStores=new JW(this),this.beta=new yW(this),this.batches=new e2(this),this.uploads=new U8(this),this.responses=new T8(this),this.evals=new $2(this),this._options=G,this.apiKey=$,this.organization=X,this.project=Y}defaultQuery(){return this._options.defaultQuery}defaultHeaders(W){return{...super.defaultHeaders(W),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project,...this._options.defaultHeaders}}authHeaders(W){return{Authorization:`Bearer ${this.apiKey}`}}stringifyQuery(W){return c9(W,{arrayFormat:"brackets"})}}EH=Q0;Q0.OpenAI=EH;Q0.DEFAULT_TIMEOUT=600000;Q0.OpenAIError=o;Q0.APIError=r0;Q0.APIConnectionError=n2;Q0.APIConnectionTimeoutError=r2;Q0.APIUserAbortError=X1;Q0.NotFoundError=BX;Q0.ConflictError=ZX;Q0.RateLimitError=qX;Q0.BadRequestError=EX;Q0.AuthenticationError=NX;Q0.InternalServerError=CX;Q0.PermissionDeniedError=RX;Q0.UnprocessableEntityError=SX;Q0.toFile=XJ;Q0.fileFromPath=AX;Q0.Completions=t8;Q0.Chat=R2;Q0.ChatCompletionsPage=s2;Q0.Embeddings=a8;Q0.Files=Q8;Q0.FileObjectsPage=W$;Q0.Images=Y$;Q0.Audio=aW;Q0.Moderations=G$;Q0.Models=F8;Q0.ModelsPage=J$;Q0.FineTuning=hW;Q0.VectorStores=JW;Q0.VectorStoresPage=z$;Q0.VectorStoreSearchResponsesPage=F$;Q0.Beta=yW;Q0.Batches=e2;Q0.BatchesPage=p8;Q0.Uploads=U8;Q0.Responses=T8;Q0.Evals=$2;Q0.EvalListResponsesPage=e8;var NH=Q0;var jH=S_(ZH(),1);import*as b1 from"fs";import*as T$ from"path";import{resolve as vO}from"path";import{createHash as bO}from"crypto";import{copyFile as yO}from"fs/promises";import{existsSync as qJ,mkdirSync as SH,readFileSync as PO,readdirSync as qH,rmSync as CH,statSync as kH,writeFileSync as xO}from"fs";import{resolve as CJ}from"path";var IH=class{rootDir;get initialized(){return qJ(this.rootDir)}initialize(){if(!this.initialized)SH(this.rootDir,{recursive:!0})}constructor(W){if(this.rootDir=W.path,W.eagerInit)this.initialize()}getItem(W){let $=CJ(this.rootDir,W);if(qJ($))return PO($,"utf-8");return null}setItem(W,$){this.initialize();let X=CJ(this.rootDir,W);xO(X,$)}removeItem(W){let $=CJ(this.rootDir,W);if(qJ($))this.initialize(),CH($)}key(W){return qH(this.rootDir).sort((Y,J)=>{let G=kH(Y);return kH(J).ctimeMs-G.ctimeMs})[W]??null}clear(){CH(this.rootDir,{recursive:!0}),SH(this.rootDir,{recursive:!0})}get length(){return qH(this.rootDir).length}};var fH=/[^a-zA-Z0-9\-._]/g;function t4(W,$=64){if($%2===1)$+=1;let X=W.replace(fH,"-");if(X.length<=$)return X;let Y=bO("sha256").update(W).digest("base64").slice(0,8).replace("/","_"),J=X;if(J.length>$){let G=J.slice(0,$/2),H=J.slice(-$/2);J=G+"_"+H}return J+"+"+Y}var hO=jH.default("varmint"),r4=t4(process.cwd(),150),kJ=vO(hO,r4),J1="_-$-_-$-_",PH=`file${J1}`,xH=`list${J1}`,vH=`root${J1}`,gO=`unmatched${J1}`,j0={storage:new IH({path:kJ,eagerInit:!1}),startGlobalTracking(){if(console.log(`\uD83D\uDC3F\uFE0F Starting global tracking of varmint files using project identifier "${r4}"`),j0.storage.initialized)console.error(`\uD83D\uDCA5 The global cache for the project "${r4}" was found already initialized. Clearing it and starting fresh.`),j0.storage.clear();j0.storage.initialize()},async prepareUploads(W){console.log(`\uD83D\uDC3F\uFE0F Moving unmatched inputs to /tmp/varmint-uploads using project identifier "${r4}"`);let $=[];for(let X of b1.readdirSync(j0.storage.rootDir))if(sX(`unmatched${J1}`,X))$.push(X);if($.length===0){console.log("\uD83D\uDC3F\uFE0F ","No unmatched input files found.");return}if(console.log("\uD83D\uDC3F\uFE0F ","Found the following unmatched files:",`
33
33
  - ${$.join(`
34
34
  `)}
35
35
  `,`in root folder:
36
- `,kJ),process.env[W])b1.mkdirSync("/tmp/varmint-uploads",{recursive:!0}),await Promise.all($.map(async(X)=>{let Y=T$.join(kJ,X),J=T$.join("/tmp/varmint-uploads",X);await yV(Y,J)}));else console.warn("\uD83D\uDCA5 Skipping artifact upload because process.env.CI is not set.")},endGlobalTrackingAndFlushUnusedFiles(){if(console.log(`\uD83D\uDC3F\uFE0F Ending global tracking of varmint files using project identifier "${r4}" and starting cleanup of untouched files.`),!j0.storage.initialized){console.error("\uD83D\uDCA5 called flushGlobal, but the global cache wasn't initialized with startGlobalTracking");return}let W=b1.readdirSync(j0.storage.rootDir),$=new Map,X=[],Y=[],J=[];for(let H of W)if(sX(`root${J1}`,H))X.push(H);else if(sX(`list${J1}`,H))Y.push(H);else if(sX(`file${J1}`,H))J.push(H);if(j0.storage.getItem("DID_CACHE_MISS"))console.log("\uD83D\uDC3F\uFE0F ","Cache miss detected. Since this likely prevented the cache from being fully utilized, we will not attempt to flush unused files.");else{let H=new Map;for(let Q of X){let z=Q.replace(vH,"");H.set(z,new Map);let F=j0.storage.getItem(Q);if(F)$.set(z,F);else console.error(`\uD83D\uDCA5 Could not find folder ${F} referenced in the global cache`)}for(let Q of Y){let z=Q.replace(xH,""),[F,T]=z.split(J1),U=H.get(F);if(U)U.set(T,new Set);else console.error(`\uD83D\uDCA5 Could not find root ${F} for list ${T}`)}for(let Q of J){let z=Q.replace(PH,""),[F,T,U]=z.split(J1),M=H.get(F);if(M){let V=M.get(T);if(V)V.add(U);else console.error(`\uD83D\uDCA5 Could not find list ${T} for file ${z}`)}else console.error(`\uD83D\uDCA5 Could not find root ${F} for file ${z}`)}console.log("\uD83D\uDC3F\uFE0F ",H);for(let[Q,z]of H.entries()){let F=$.get(Q);if(!F){console.error(`\uD83D\uDCA5 Could not find root ${Q}`);continue}if(!b1.existsSync(F)){console.warn(`\uD83D\uDCA5 Root folder ${F}, identified as being used during tracking, no longer exists during cleanup.`);continue}let U=b1.readdirSync(F);for(let M of U)if(M!==".ferret"&&!z.has(M)){let V=T$.join(F,M);console.log(`\uD83E\uDDF9 globalFlush: removing directory ${V}`),b1.rmSync(V,{recursive:!0})}for(let[M,V]of z.entries()){let K=T$.join(F,M);if(!b1.existsSync(K)){console.warn(`\uD83D\uDCA5 List folder ${K}, identified as being used during tracking, no longer exists.`);continue}let I=b1.readdirSync(K);for(let C of I){let B=C.replace(".input.json","").replace(".output.json","").replace(".stream.txt","");if(!V.has(B)){let q=T$.join(K,C);console.log(`\uD83E\uDDF9 globalFlush: removing file ${q}`),b1.rmSync(q)}}}}}b1.rmSync(j0.storage.rootDir,{recursive:!0})}};function sX(W,$){return $.startsWith(W)}import*as o0 from"fs";import*as AW from"path";import{inspect as bH}from"util";var yH=class{filenameCache=new Map;filesTouched=new Map;mode;baseDir;rootName;constructor(W="off",$=AW.join(process.cwd(),".varmint")){if(this.mode=W,this.baseDir=$,this.rootName=t4(this.baseDir),j0.storage.initialized&&!j0.storage.getItem(`root${J1}${this.rootName}`))j0.storage.setItem(`root${J1}${this.rootName}`,this.baseDir)}read(W,$,X){let Y=AW.join(this.baseDir,W),J=`${$}.input.json`,G=AW.join(Y,J);if(!o0.existsSync(G)){if(!o0.existsSync(Y)){if(j0.storage.initialized&&this.mode==="read")j0.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: input file for key "${W}" with "${$}" was not found. Directory "${Y}" does not exist.`)}let U=o0.readdirSync(Y).map((K)=>[K,o0.readFileSync(AW.join(Y,K),"utf-8")]).filter(([K])=>K.endsWith(".input.json")),M=[];for(let[K,N]of U){let I=` ${K}`,C=` ${bH(JSON.parse(N),{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
36
+ `,kJ),process.env[W])b1.mkdirSync("/tmp/varmint-uploads",{recursive:!0}),await Promise.all($.map(async(X)=>{let Y=T$.join(kJ,X),J=T$.join("/tmp/varmint-uploads",X);await yO(Y,J)}));else console.warn("\uD83D\uDCA5 Skipping artifact upload because process.env.CI is not set.")},endGlobalTrackingAndFlushUnusedFiles(){if(console.log(`\uD83D\uDC3F\uFE0F Ending global tracking of varmint files using project identifier "${r4}" and starting cleanup of untouched files.`),!j0.storage.initialized){console.error("\uD83D\uDCA5 called flushGlobal, but the global cache wasn't initialized with startGlobalTracking");return}let W=b1.readdirSync(j0.storage.rootDir),$=new Map,X=[],Y=[],J=[];for(let H of W)if(sX(`root${J1}`,H))X.push(H);else if(sX(`list${J1}`,H))Y.push(H);else if(sX(`file${J1}`,H))J.push(H);if(j0.storage.getItem("DID_CACHE_MISS"))console.log("\uD83D\uDC3F\uFE0F ","Cache miss detected. Since this likely prevented the cache from being fully utilized, we will not attempt to flush unused files.");else{let H=new Map;for(let Q of X){let z=Q.replace(vH,"");H.set(z,new Map);let F=j0.storage.getItem(Q);if(F)$.set(z,F);else console.error(`\uD83D\uDCA5 Could not find folder ${F} referenced in the global cache`)}for(let Q of Y){let z=Q.replace(xH,""),[F,T]=z.split(J1),U=H.get(F);if(U)U.set(T,new Set);else console.error(`\uD83D\uDCA5 Could not find root ${F} for list ${T}`)}for(let Q of J){let z=Q.replace(PH,""),[F,T,U]=z.split(J1),M=H.get(F);if(M){let O=M.get(T);if(O)O.add(U);else console.error(`\uD83D\uDCA5 Could not find list ${T} for file ${z}`)}else console.error(`\uD83D\uDCA5 Could not find root ${F} for file ${z}`)}console.log("\uD83D\uDC3F\uFE0F ",H);for(let[Q,z]of H.entries()){let F=$.get(Q);if(!F){console.error(`\uD83D\uDCA5 Could not find root ${Q}`);continue}if(!b1.existsSync(F)){console.warn(`\uD83D\uDCA5 Root folder ${F}, identified as being used during tracking, no longer exists during cleanup.`);continue}let U=b1.readdirSync(F);for(let M of U)if(M!==".ferret"&&!z.has(M)){let O=T$.join(F,M);console.log(`\uD83E\uDDF9 globalFlush: removing directory ${O}`),b1.rmSync(O,{recursive:!0})}for(let[M,O]of z.entries()){let K=T$.join(F,M);if(!b1.existsSync(K)){console.warn(`\uD83D\uDCA5 List folder ${K}, identified as being used during tracking, no longer exists.`);continue}let I=b1.readdirSync(K);for(let C of I){let R=C.replace(".input.json","").replace(".output.json","").replace(".stream.txt","");if(!O.has(R)){let q=T$.join(K,C);console.log(`\uD83E\uDDF9 globalFlush: removing file ${q}`),b1.rmSync(q)}}}}}b1.rmSync(j0.storage.rootDir,{recursive:!0})}};function sX(W,$){return $.startsWith(W)}import*as o0 from"fs";import*as AW from"path";import{inspect as bH}from"util";var yH=class{filenameCache=new Map;filesTouched=new Map;mode;baseDir;rootName;constructor(W="off",$=AW.join(process.cwd(),".varmint")){if(this.mode=W,this.baseDir=$,this.rootName=t4(this.baseDir),j0.storage.initialized&&!j0.storage.getItem(`root${J1}${this.rootName}`))j0.storage.setItem(`root${J1}${this.rootName}`,this.baseDir)}read(W,$,X){let Y=AW.join(this.baseDir,W),J=`${$}.input.json`,G=AW.join(Y,J);if(!o0.existsSync(G)){if(!o0.existsSync(Y)){if(j0.storage.initialized&&this.mode==="read")j0.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: input file for key "${W}" with "${$}" was not found. Directory "${Y}" does not exist.`)}let U=o0.readdirSync(Y).map((K)=>[K,o0.readFileSync(AW.join(Y,K),"utf-8")]).filter(([K])=>K.endsWith(".input.json")),M=[];for(let[K,N]of U){let I=` ${K}`,C=` ${bH(JSON.parse(N),{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
37
37
  `).join(`
38
- `)}`;M.push(I,C)}let V=` ${J}
38
+ `)}`;M.push(I,C)}let O=` ${J}
39
39
  ${bH(X,{depth:Number.POSITIVE_INFINITY,colors:!0}).split(`
40
40
  `).join(`
41
41
  `)}`;if(j0.storage.initialized&&this.mode==="read")j0.storage.setItem(`unmatched${J1}${J}`,JSON.stringify(X,null,"\t")),j0.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: input file for key "${W}" with subKey "${$}" (${G}) was not found. Directory "${Y}" exists, but the file does not. Below is a list of CACHED INPUT FILES from that directory and their contents, followed by YOUR INPUT DATA.
@@ -45,26 +45,26 @@ ${M.join(`
45
45
  `)}
46
46
 
47
47
  YOUR INPUT DATA:
48
- ${V}
48
+ ${O}
49
49
  `)}let H=o0.readFileSync(G,"utf-8"),Q=JSON.stringify(X,null,"\t");if(Q!==H){if(j0.storage.initialized&&this.mode==="read")j0.storage.setItem("DID_CACHE_MISS","true");throw new Error(`Squirrel: the content of the cached input file ${G} does not match the input provided.
50
50
 
51
51
  Provided:
52
52
  ${Q}
53
53
 
54
54
  Cached:
55
- ${H}`)}let z=AW.join(this.baseDir,`${W}/${$}.output.json`);return JSON.parse(o0.readFileSync(z,"utf-8"))}async write(W,$,X,Y){let J=AW.join(this.baseDir,W),G=AW.join(J,`${$}.input.json`),H=AW.join(J,`${$}.output.json`),Q=JSON.stringify(X,null,"\t");if(!o0.existsSync(this.baseDir))o0.mkdirSync(this.baseDir,{recursive:!0});if(!o0.existsSync(J))o0.mkdirSync(J);if(o0.writeFileSync(G,Q),o0.existsSync(H))o0.unlinkSync(H);let z=await Y(...X),F=JSON.stringify(z,null,"\t");return o0.writeFileSync(H,F),z}add(W,$){let X=`${this.rootName}${J1}${t4(W)}`;return{flush:()=>{this.flush(W)},for:(Y)=>{if(this.mode!=="off"){if(this.filesTouched.set(W,new Set),j0.storage.initialized&&!j0.storage.getItem(`list${J1}${X}`))j0.storage.setItem(`list${J1}${X}`,"true")}return{get:async(...J)=>{let G=Y;if(this.mode!=="off"){let H=this.filenameCache.get(Y);if(!H)H=t4(Y),this.filenameCache.set(Y,H);G=H,this.filesTouched.get(W)?.add(G);let Q=`${X}${J1}${G}`,z=`file${J1}${Q}`;if(j0.storage.initialized&&!j0.storage.getItem(z))j0.storage.setItem(z,"true")}switch(this.mode){case"off":return $(...J);case"read":return this.read(W,G,J);case"write":return this.write(W,G,J,$);case"read-write":try{return this.read(W,G,J)}catch(H){if(H instanceof Error)return this.write(W,G,J,$);throw H}}}}}}}flush(...W){console.log(this.filesTouched);for(let[$,X]of this.filesTouched.entries())if(W.length===0||W.includes($)){let Y=AW.join(this.baseDir,$),J=o0.readdirSync(Y);for(let G of J){let H=G.replace(".input.json","").replace(".output.json","");if(!X.has(H))console.info(`\uD83E\uDDF9 Flushing ${H}`),o0.unlinkSync(AW.join(Y,G))}}}};function mV(W,...$){let[X,Y,J,G]=$,H=[{role:"user",content:B3(Y)},{role:"user",content:X}],Q=G.at(-1);if(Q)H.push({role:"user",content:["Oops! That didn't work. Here's what was returned last time:",JSON.stringify(Q.response,null,2),"Here's the error message:",JSON.stringify(Q.error.issues,null,2)].join(`
56
- `)});return{model:W,messages:H}}var IJ={"gpt-4o":{promptPricePerToken:0.0000025,promptPricePerTokenCached:0.00000125,completionPricePerToken:0.00001},"gpt-4o-2024-08-06":{promptPricePerToken:0.0000025,promptPricePerTokenCached:0.00000125,completionPricePerToken:0.00001},"gpt-4o-2024-05-13":{promptPricePerToken:0.000005,promptPricePerTokenCached:0.000005,completionPricePerToken:0.000014999999999999999},"gpt-4o-mini":{promptPricePerToken:0.00000015,promptPricePerTokenCached:0.000000075,completionPricePerToken:0.0000006},"gpt-4o-mini-2024-07-18":{promptPricePerToken:0.00000015,promptPricePerTokenCached:0.000000075,completionPricePerToken:0.0000006},"o1-preview":{promptPricePerToken:0.000014999999999999999,promptPricePerTokenCached:0.000007499999999999999,completionPricePerToken:0.000059999999999999995},"o1-preview-2024-09-12":{promptPricePerToken:0.000014999999999999999,promptPricePerTokenCached:0.000007499999999999999,completionPricePerToken:0.000059999999999999995}};function pV(W){return async function $(X,Y){if(!W)throw new Error("This is a bug in safegen. OpenAI client not available to the json generator.");let J=await W.chat.completions.create({...X,stream:!1,response_format:{type:"json_object"}},Y),G=J.choices[0].message?.content,{usage:H}=J;if(G&&H){let Q=H.prompt_tokens,z=H.prompt_tokens_details?.cached_tokens??0,F=Q-z,T=H.completion_tokens,U=Q*IJ[X.model].promptPricePerToken+F*IJ[X.model].promptPricePerTokenCached+T*IJ[X.model].completionPricePerToken;return{data:JSON.parse(G),usage:H,usdPrice:U}}if(!G&&!H)throw new Error("No content or usage found in completion");if(!G)throw new Error("No content found in completion");throw new Error("No usage found in completion")}}var hH=new Map,gH=class{usdBudget;usdMinimum;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;client;lastUsage;constructor({model:W,usdBudget:$,usdMinimum:X,apiKey:Y,cachingMode:J,cacheKey:G="openai-safegen",logger:H}){this.usdBudget=$,this.usdMinimum=X,this.squirrel=new yH(J);let Q=hH.get(Y);if(J!=="read"){if(!Q)Q=new NH({apiKey:Y,dangerouslyAllowBrowser:!1}),hH.set(Y,Q);this.client=Q}this.getUnknownJsonFromOpenAi=pV(this.client),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add(G,this.getUnknownJsonFromOpenAi),this.from=N3(async(...z)=>{if(this.usdBudget<this.usdMinimum)return H?.warn("SafeGen budget exhausted"),z[1];let F=mV(W,...z),T=z[0],U=z[3],{data:M,usage:V,usdPrice:K}=await this.getUnknownJsonFromOpenAiSquirreled.for(`${T.replace(/[^a-zA-Z0-9-_. ]/g,"_")}-${U.length}`).get(F);return this.lastUsage=V,this.usdBudget-=K,M},H)}from};import{exec as rE}from"child_process";class eX{supported;constructor(W){this.supported=W}refine(W){for(let[$,X]of Object.entries(this.supported))try{if(X(W)===!0&&X!==Boolean)return{type:$,data:W}}catch(Y){try{if(W instanceof X)return{type:$,data:W}}catch(J){}}return null}}var uV=new eX({number:(W)=>typeof W==="number",string:(W)=>typeof W==="string",boolean:(W)=>typeof W==="boolean",null:(W)=>W===null});function cV(W){if(!W)return!1;return Object.getPrototypeOf(W)===Object.prototype}var dV=new eX({object:cV,array:(W)=>Array.isArray(W)}),lV=new eX({...uV.supported,...dV.supported}),mH=(W)=>{if(W===void 0)return"undefined";let $=lV.refine(W);if($)return $.type;return Object.getPrototypeOf(W).constructor.name};var _=Symbol.for("drizzle:entityKind"),ZP=Symbol.for("drizzle:hasOwnEntityKind");function A(W,$){if(!W||typeof W!=="object")return!1;if(W instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,_))throw new Error(`Class "${$.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(W).constructor;if(X)while(X){if(_ in X&&X[_]===$[_])return!0;X=Object.getPrototypeOf(X)}return!1}class S0{constructor(W,$){this.table=W,this.config=$,this.name=$.name,this.keyAsName=$.keyAsName,this.notNull=$.notNull,this.default=$.default,this.defaultFn=$.defaultFn,this.onUpdateFn=$.onUpdateFn,this.hasDefault=$.hasDefault,this.primary=$.primaryKey,this.isUnique=$.isUnique,this.uniqueName=$.uniqueName,this.uniqueType=$.uniqueType,this.dataType=$.dataType,this.columnType=$.columnType,this.generated=$.generated,this.generatedIdentity=$.generatedIdentity}static[_]="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(W){return W}mapToDriverValue(W){return W}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class jJ{static[_]="ColumnBuilder";config;constructor(W,$,X){this.config={name:W,keyAsName:W==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:$,columnType:X,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(W){return this.config.default=W,this.config.hasDefault=!0,this}$defaultFn(W){return this.config.defaultFn=W,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(W){return this.config.onUpdateFn=W,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(W){if(this.config.name!=="")return;this.config.name=W}}var EW=Symbol.for("drizzle:Name");class fJ{static[_]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(W,$){if(this.reference=()=>{let{name:X,columns:Y,foreignColumns:J}=W();return{name:X,columns:Y,foreignTable:J[0].table,foreignColumns:J}},$)this._onUpdate=$.onUpdate,this._onDelete=$.onDelete}onUpdate(W){return this._onUpdate=W===void 0?"no action":W,this}onDelete(W){return this._onDelete=W===void 0?"no action":W,this}build(W){return new pH(W,this)}}class pH{constructor(W,$){this.table=W,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[_]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:W,columns:$,foreignColumns:X}=this.reference(),Y=$.map((H)=>H.name),J=X.map((H)=>H.name),G=[this.table[EW],...Y,X[0].table[EW],...J];return W??`${G.join("_")}_fk`}}function WY(W,...$){return W(...$)}function uH(W,$){return`${W[EW]}_${$.join("_")}_unique`}function cH(W,$,X){for(let Y=$;Y<W.length;Y++){let J=W[Y];if(J==="\\"){Y++;continue}if(J==='"')return[W.slice($,Y).replace(/\\/g,""),Y+1];if(X)continue;if(J===","||J==="}")return[W.slice($,Y).replace(/\\/g,""),Y]}return[W.slice($).replace(/\\/g,""),W.length]}function dH(W,$=0){let X=[],Y=$,J=!1;while(Y<W.length){let G=W[Y];if(G===","){if(J||Y===$)X.push("");J=!0,Y++;continue}if(J=!1,G==="\\"){Y+=2;continue}if(G==='"'){let[z,F]=cH(W,Y+1,!0);X.push(z),Y=F;continue}if(G==="}")return[X,Y+1];if(G==="{"){let[z,F]=dH(W,Y+1);X.push(z),Y=F;continue}let[H,Q]=cH(W,Y,!1);X.push(H),Y=Q}return[X,Y]}function lH(W){let[$]=dH(W,1);return $}function PJ(W){return`{${W.map(($)=>{if(Array.isArray($))return PJ($);if(typeof $==="string")return`"${$.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${$}`}).join(",")}}`}class u extends jJ{foreignKeyConfigs=[];static[_]="PgColumnBuilder";array(W){return new iH(this.config.name,this,W)}references(W,$={}){return this.foreignKeyConfigs.push({ref:W,actions:$}),this}unique(W,$){return this.config.isUnique=!0,this.config.uniqueName=W,this.config.uniqueType=$?.nulls,this}generatedAlwaysAs(W){return this.config.generated={as:W,type:"always",mode:"stored"},this}buildForeignKeys(W,$){return this.foreignKeyConfigs.map(({ref:X,actions:Y})=>{return WY((J,G)=>{let H=new fJ(()=>{let Q=J();return{columns:[W],foreignColumns:[Q]}});if(G.onUpdate)H.onUpdate(G.onUpdate);if(G.onDelete)H.onDelete(G.onDelete);return H.build($)},X,Y)})}buildExtraConfigColumn(W){return new oH(W,this.config)}}class j extends S0{constructor(W,$){if(!$.uniqueName)$.uniqueName=uH(W,[$.name]);super(W,$);this.table=W}static[_]="PgColumn"}class oH extends j{static[_]="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(W){return this.indexConfig.opClass=W,this}}class a4{static[_]="IndexedColumn";constructor(W,$,X,Y){this.name=W,this.keyAsName=$,this.type=X,this.indexConfig=Y}name;keyAsName;type;indexConfig}class iH extends u{static[_]="PgArrayBuilder";constructor(W,$,X){super(W,"array","PgArray");this.config.baseBuilder=$,this.config.size=X}build(W){let $=this.config.baseBuilder.build(W);return new xJ(W,this.config,$)}}class xJ extends j{constructor(W,$,X,Y){super(W,$);this.baseColumn=X,this.range=Y,this.size=$.size}size;static[_]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(W){if(typeof W==="string")W=lH(W);return W.map(($)=>this.baseColumn.mapFromDriverValue($))}mapToDriverValue(W,$=!1){let X=W.map((Y)=>Y===null?null:A(this.baseColumn,xJ)?this.baseColumn.mapToDriverValue(Y,!0):this.baseColumn.mapToDriverValue(Y));if($)return X;return PJ(X)}}class nH extends u{static[_]="PgEnumObjectColumnBuilder";constructor(W,$){super(W,"string","PgEnumObjectColumn");this.config.enum=$}build(W){return new rH(W,this.config)}}class rH extends j{static[_]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(W,$){super(W,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}var $Y=Symbol.for("drizzle:isPgEnum");function tH(W){return!!W&&typeof W==="function"&&$Y in W&&W[$Y]===!0}class aH extends u{static[_]="PgEnumColumnBuilder";constructor(W,$){super(W,"string","PgEnumColumn");this.config.enum=$}build(W){return new sH(W,this.config)}}class sH extends j{static[_]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(W,$){super(W,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}function s4(W,$){return Array.isArray($)?oV(W,[...$],void 0):iV(W,$,void 0)}function oV(W,$,X){let Y=Object.assign((J)=>new aH(J??"",Y),{enumName:W,enumValues:$,schema:X,[$Y]:!0});return Y}function iV(W,$,X){let Y=Object.assign((J)=>new nH(J??"",Y),{enumName:W,enumValues:Object.values($),schema:X,[$Y]:!0});return Y}class G1{static[_]="Subquery";constructor(W,$,X,Y=!1){this._={brand:"Subquery",sql:W,selectedFields:$,alias:X,isWith:Y}}}class e4 extends G1{static[_]="WithSubquery"}var eH="0.43.1";var vJ,bJ,q0={startActiveSpan(W,$){if(!vJ)return $();if(!bJ)bJ=vJ.trace.getTracer("drizzle-orm",eH);return WY((X,Y)=>Y.startActiveSpan(W,(J)=>{try{return $(J)}catch(G){throw J.setStatus({code:X.SpanStatusCode.ERROR,message:G instanceof Error?G.message:"Unknown error"}),G}finally{J.end()}}),vJ,bJ)}};var f0=Symbol.for("drizzle:ViewBaseConfig");var XY=Symbol.for("drizzle:Schema"),YY=Symbol.for("drizzle:Columns"),WQ=Symbol.for("drizzle:ExtraConfigColumns"),yJ=Symbol.for("drizzle:OriginalName"),hJ=Symbol.for("drizzle:BaseName"),W6=Symbol.for("drizzle:IsAlias"),$Q=Symbol.for("drizzle:ExtraConfigBuilder"),nV=Symbol.for("drizzle:IsDrizzleTable");class y{static[_]="Table";static Symbol={Name:EW,Schema:XY,OriginalName:yJ,Columns:YY,ExtraConfigColumns:WQ,BaseName:hJ,IsAlias:W6,ExtraConfigBuilder:$Q};[EW];[yJ];[XY];[YY];[WQ];[hJ];[W6]=!1;[nV]=!0;[$Q]=void 0;constructor(W,$,X){this[EW]=this[yJ]=W,this[XY]=$,this[hJ]=X}}function U1(W){return W[EW]}function _8(W){return`${W[XY]??"public"}.${W[EW]}`}function gJ(W){return W!==null&&W!==void 0&&typeof W.getSQL==="function"}function rV(W){let $={sql:"",params:[]};for(let X of W)if($.sql+=X.sql,$.params.push(...X.params),X.typings?.length){if(!$.typings)$.typings=[];$.typings.push(...X.typings)}return $}class H1{static[_]="StringChunk";value;constructor(W){this.value=Array.isArray(W)?W:[W]}getSQL(){return new g([this])}}class g{constructor(W){this.queryChunks=W}static[_]="SQL";decoder=YQ;shouldInlineParams=!1;append(W){return this.queryChunks.push(...W.queryChunks),this}toQuery(W){return q0.startActiveSpan("drizzle.buildSQL",($)=>{let X=this.buildQueryFromSourceParams(this.queryChunks,W);return $?.setAttributes({"drizzle.query.text":X.sql,"drizzle.query.params":JSON.stringify(X.params)}),X})}buildQueryFromSourceParams(W,$){let X=Object.assign({},$,{inlineParams:$.inlineParams||this.shouldInlineParams,paramStartIndex:$.paramStartIndex||{value:0}}),{casing:Y,escapeName:J,escapeParam:G,prepareTyping:H,inlineParams:Q,paramStartIndex:z}=X;return rV(W.map((F)=>{if(A(F,H1))return{sql:F.value.join(""),params:[]};if(A(F,JY))return{sql:J(F.value),params:[]};if(F===void 0)return{sql:"",params:[]};if(Array.isArray(F)){let T=[new H1("(")];for(let[U,M]of F.entries())if(T.push(M),U<F.length-1)T.push(new H1(", "));return T.push(new H1(")")),this.buildQueryFromSourceParams(T,X)}if(A(F,g))return this.buildQueryFromSourceParams(F.queryChunks,{...X,inlineParams:Q||F.shouldInlineParams});if(A(F,y)){let T=F[y.Symbol.Schema],U=F[y.Symbol.Name];return{sql:T===void 0||F[W6]?J(U):J(T)+"."+J(U),params:[]}}if(A(F,S0)){let T=Y.getColumnCasing(F);if($.invokeSource==="indexes")return{sql:J(T),params:[]};let U=F.table[y.Symbol.Schema];return{sql:F.table[W6]||U===void 0?J(F.table[y.Symbol.Name])+"."+J(T):J(U)+"."+J(F.table[y.Symbol.Name])+"."+J(T),params:[]}}if(A(F,y1)){let T=F[f0].schema,U=F[f0].name;return{sql:T===void 0||F[f0].isAlias?J(U):J(T)+"."+J(U),params:[]}}if(A(F,a1)){if(A(F.value,I2))return{sql:G(z.value++,F),params:[F],typings:["none"]};let T=F.value===null?null:F.encoder.mapToDriverValue(F.value);if(A(T,g))return this.buildQueryFromSourceParams([T],X);if(Q)return{sql:this.mapInlineParam(T,X),params:[]};let U=["none"];if(H)U=[H(F.encoder)];return{sql:G(z.value++,T),params:[T],typings:U}}if(A(F,I2))return{sql:G(z.value++,F),params:[F],typings:["none"]};if(A(F,g.Aliased)&&F.fieldAlias!==void 0)return{sql:J(F.fieldAlias),params:[]};if(A(F,G1)){if(F._.isWith)return{sql:J(F._.alias),params:[]};return this.buildQueryFromSourceParams([new H1("("),F._.sql,new H1(") "),new JY(F._.alias)],X)}if(tH(F)){if(F.schema)return{sql:J(F.schema)+"."+J(F.enumName),params:[]};return{sql:J(F.enumName),params:[]}}if(gJ(F)){if(F.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([F.getSQL()],X);return this.buildQueryFromSourceParams([new H1("("),F.getSQL(),new H1(")")],X)}if(Q)return{sql:this.mapInlineParam(F,X),params:[]};return{sql:G(z.value++,F),params:[F],typings:["none"]}}))}mapInlineParam(W,{escapeString:$}){if(W===null)return"null";if(typeof W==="number"||typeof W==="boolean")return W.toString();if(typeof W==="string")return $(W);if(typeof W==="object"){let X=W.toString();if(X==="[object Object]")return $(JSON.stringify(W));return $(X)}throw new Error("Unexpected param value: "+W)}getSQL(){return this}as(W){if(W===void 0)return this;return new g.Aliased(this,W)}mapWith(W){return this.decoder=typeof W==="function"?{mapFromDriverValue:W}:W,this}inlineParams(){return this.shouldInlineParams=!0,this}if(W){return W?this:void 0}}class JY{constructor(W){this.value=W}static[_]="Name";brand;getSQL(){return new g([this])}}function XQ(W){return typeof W==="object"&&W!==null&&"mapToDriverValue"in W&&typeof W.mapToDriverValue==="function"}var YQ={mapFromDriverValue:(W)=>W},JQ={mapToDriverValue:(W)=>W},Mx={...YQ,...JQ};class a1{constructor(W,$=JQ){this.value=W,this.encoder=$}static[_]="Param";brand;getSQL(){return new g([this])}}function D(W,...$){let X=[];if($.length>0||W.length>0&&W[0]!=="")X.push(new H1(W[0]));for(let[Y,J]of $.entries())X.push(J,new H1(W[Y+1]));return new g(X)}((W)=>{function $(){return new g([])}W.empty=$;function X(z){return new g(z)}W.fromList=X;function Y(z){return new g([new H1(z)])}W.raw=Y;function J(z,F){let T=[];for(let[U,M]of z.entries()){if(U>0&&F!==void 0)T.push(F);T.push(M)}return new g(T)}W.join=J;function G(z){return new JY(z)}W.identifier=G;function H(z){return new I2(z)}W.placeholder=H;function Q(z,F){return new a1(z,F)}W.param=Q})(D||(D={}));((W)=>{class ${constructor(X,Y){this.sql=X,this.fieldAlias=Y}static[_]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}W.Aliased=$})(g||(g={}));class I2{constructor(W){this.name=W}static[_]="Placeholder";getSQL(){return new g([this])}}function mJ(W,$){return W.map((X)=>{if(A(X,I2)){if(!(X.name in $))throw new Error(`No value for placeholder "${X.name}" was provided`);return $[X.name]}if(A(X,a1)&&A(X.value,I2)){if(!(X.value.name in $))throw new Error(`No value for placeholder "${X.value.name}" was provided`);return X.encoder.mapToDriverValue($[X.value.name])}return X})}var tV=Symbol.for("drizzle:IsDrizzleView");class y1{static[_]="View";[f0];[tV]=!0;constructor({name:W,schema:$,selectedFields:X,query:Y}){this[f0]={name:W,originalName:W,schema:$,selectedFields:X,query:Y,isExisting:!Y,isAlias:!1}}getSQL(){return new g([this])}}S0.prototype.getSQL=function(){return new g([this])};y.prototype.getSQL=function(){return new g([this])};G1.prototype.getSQL=function(){return new g([this])};class U${constructor(W){this.table=W}static[_]="ColumnAliasProxyHandler";get(W,$){if($==="table")return this.table;return W[$]}}class $6{constructor(W,$){this.alias=W,this.replaceOriginalName=$}static[_]="TableAliasProxyHandler";get(W,$){if($===y.Symbol.IsAlias)return!0;if($===y.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===y.Symbol.OriginalName)return this.alias;if($===f0)return{...W[f0],name:this.alias,isAlias:!0};if($===y.Symbol.Columns){let Y=W[y.Symbol.Columns];if(!Y)return Y;let J={};return Object.keys(Y).map((G)=>{J[G]=new Proxy(Y[G],new U$(new Proxy(W,this)))}),J}let X=W[$];if(A(X,S0))return new Proxy(X,new U$(new Proxy(W,this)));return X}}function GY(W,$){return new Proxy(W,new $6($,!1))}function gW(W,$){return new Proxy(W,new U$(new Proxy(W.table,new $6($,!1))))}function pJ(W,$){return new g.Aliased(X6(W.sql,$),W.fieldAlias)}function X6(W,$){return D.join(W.queryChunks.map((X)=>{if(A(X,S0))return gW(X,$);if(A(X,g))return X6(X,$);if(A(X,g.Aliased))return pJ(X,$);return X}))}class HY extends Error{static[_]="DrizzleError";constructor({message:W,cause:$}){super(W);this.name="DrizzleError",this.cause=$}}class uJ extends HY{static[_]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class GQ{static[_]="ConsoleLogWriter";write(W){console.log(W)}}class cJ{static[_]="DefaultLogger";writer;constructor(W){this.writer=W?.writer??new GQ}logQuery(W,$){let X=$.map((J)=>{try{return JSON.stringify(J)}catch{return String(J)}}),Y=X.length?` -- params: [${X.join(", ")}]`:"";this.writer.write(`Query: ${W}${Y}`)}}class dJ{static[_]="NoopLogger";logQuery(){}}class C1{static[_]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(W){return this.then(void 0,W)}finally(W){return this.then(($)=>{return W?.(),$},($)=>{throw W?.(),$})}then(W,$){return this.execute().then(W,$)}}function HQ(W,$,X){let Y={},J=W.reduce((G,{path:H,field:Q},z)=>{let F;if(A(Q,S0))F=Q;else if(A(Q,g))F=Q.decoder;else F=Q.sql.decoder;let T=G;for(let[U,M]of H.entries())if(U<H.length-1){if(!(M in T))T[M]={};T=T[M]}else{let V=$[z],K=T[M]=V===null?null:F.mapFromDriverValue(V);if(X&&A(Q,S0)&&H.length===2){let N=H[0];if(!(N in Y))Y[N]=K===null?U1(Q.table):!1;else if(typeof Y[N]==="string"&&Y[N]!==U1(Q.table))Y[N]=!1}}return G},{});if(X&&Object.keys(Y).length>0){for(let[G,H]of Object.entries(Y))if(typeof H==="string"&&!X[H])J[G]=null}return J}function GW(W,$){return Object.entries(W).reduce((X,[Y,J])=>{if(typeof Y!=="string")return X;let G=$?[...$,Y]:[Y];if(A(J,S0)||A(J,g)||A(J,g.Aliased))X.push({path:G,field:J});else if(A(J,y))X.push(...GW(J[y.Symbol.Columns],G));else X.push(...GW(J,G));return X},[])}function Y6(W,$){let X=Object.keys(W),Y=Object.keys($);if(X.length!==Y.length)return!1;for(let[J,G]of X.entries())if(G!==Y[J])return!1;return!0}function QY(W,$){let X=Object.entries($).filter(([,Y])=>Y!==void 0).map(([Y,J])=>{if(A(J,g)||A(J,S0))return[Y,J];else return[Y,new a1(J,W[y.Symbol.Columns][Y])]});if(X.length===0)throw new Error("No values to set");return Object.fromEntries(X)}function QQ(W,$){for(let X of $)for(let Y of Object.getOwnPropertyNames(X.prototype)){if(Y==="constructor")continue;Object.defineProperty(W.prototype,Y,Object.getOwnPropertyDescriptor(X.prototype,Y)||Object.create(null))}}function zQ(W){return W[y.Symbol.Columns]}function Y2(W){return A(W,G1)?W._.alias:A(W,y1)?W[f0].name:A(W,g)?void 0:W[y.Symbol.IsAlias]?W[y.Symbol.Name]:W[y.Symbol.BaseName]}function D0(W,$){return{name:typeof W==="string"&&W.length>0?W:"",config:typeof W==="object"?W:$}}function FQ(W){if(typeof W!=="object"||W===null)return!1;if(W.constructor.name!=="Object")return!1;if("logger"in W){let $=typeof W.logger;if($!=="boolean"&&($!=="object"||typeof W.logger.logQuery!=="function")&&$!=="undefined")return!1;return!0}if("schema"in W){let $=typeof W.schema;if($!=="object"&&$!=="undefined")return!1;return!0}if("casing"in W){let $=typeof W.casing;if($!=="string"&&$!=="undefined")return!1;return!0}if("mode"in W){if(W.mode!=="default"||W.mode!=="planetscale"||W.mode!==void 0)return!1;return!0}if("connection"in W){let $=typeof W.connection;if($!=="string"&&$!=="object"&&$!=="undefined")return!1;return!0}if("client"in W){let $=typeof W.client;if($!=="object"&&$!=="function"&&$!=="undefined")return!1;return!0}if(Object.keys(W).length===0)return!0;return!1}class j2 extends u{static[_]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(W){if(W){let{name:$,...X}=W;this.config.generatedIdentity={type:"always",sequenceName:$,sequenceOptions:X}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(W){if(W){let{name:$,...X}=W;this.config.generatedIdentity={type:"byDefault",sequenceName:$,sequenceOptions:X}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class TQ extends j2{static[_]="PgBigInt53Builder";constructor(W){super(W,"number","PgBigInt53")}build(W){return new UQ(W,this.config)}}class UQ extends j{static[_]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(W){if(typeof W==="number")return W;return Number(W)}}class wQ extends j2{static[_]="PgBigInt64Builder";constructor(W){super(W,"bigint","PgBigInt64")}build(W){return new MQ(W,this.config)}}class MQ extends j{static[_]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(W){return BigInt(W)}}function _Q(W,$){let{name:X,config:Y}=D0(W,$);if(Y.mode==="number")return new TQ(X);return new wQ(X)}class DQ extends u{static[_]="PgBigSerial53Builder";constructor(W){super(W,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(W){return new VQ(W,this.config)}}class VQ extends j{static[_]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(W){if(typeof W==="number")return W;return Number(W)}}class OQ extends u{static[_]="PgBigSerial64Builder";constructor(W){super(W,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(W){return new KQ(W,this.config)}}class KQ extends j{static[_]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(W){return BigInt(W)}}function LQ(W,$){let{name:X,config:Y}=D0(W,$);if(Y.mode==="number")return new DQ(X);return new OQ(X)}class AQ extends u{static[_]="PgBooleanBuilder";constructor(W){super(W,"boolean","PgBoolean")}build(W){return new EQ(W,this.config)}}class EQ extends j{static[_]="PgBoolean";getSQLType(){return"boolean"}}function J6(W){return new AQ(W??"")}class NQ extends u{static[_]="PgCharBuilder";constructor(W,$){super(W,"string","PgChar");this.config.length=$.length,this.config.enumValues=$.enum}build(W){return new BQ(W,this.config)}}class BQ extends j{static[_]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function RQ(W,$={}){let{name:X,config:Y}=D0(W,$);return new NQ(X,Y)}class ZQ extends u{static[_]="PgCidrBuilder";constructor(W){super(W,"string","PgCidr")}build(W){return new SQ(W,this.config)}}class SQ extends j{static[_]="PgCidr";getSQLType(){return"cidr"}}function qQ(W){return new ZQ(W??"")}class CQ extends u{static[_]="PgCustomColumnBuilder";constructor(W,$,X){super(W,"custom","PgCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=X}build(W){return new kQ(W,this.config)}}class kQ extends j{static[_]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(W,$){super(W,$);this.sqlName=$.customTypeParams.dataType($.fieldConfig),this.mapTo=$.customTypeParams.toDriver,this.mapFrom=$.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(W){return typeof this.mapFrom==="function"?this.mapFrom(W):W}mapToDriverValue(W){return typeof this.mapTo==="function"?this.mapTo(W):W}}function IQ(W){return($,X)=>{let{name:Y,config:J}=D0($,X);return new CQ(Y,J,W)}}class J2 extends u{static[_]="PgDateColumnBaseBuilder";defaultNow(){return this.default(D`now()`)}}class jQ extends J2{static[_]="PgDateBuilder";constructor(W){super(W,"date","PgDate")}build(W){return new zY(W,this.config)}}class zY extends j{static[_]="PgDate";getSQLType(){return"date"}mapFromDriverValue(W){return new Date(W)}mapToDriverValue(W){return W.toISOString()}}class fQ extends J2{static[_]="PgDateStringBuilder";constructor(W){super(W,"string","PgDateString")}build(W){return new FY(W,this.config)}}class FY extends j{static[_]="PgDateString";getSQLType(){return"date"}}function PQ(W,$){let{name:X,config:Y}=D0(W,$);if(Y?.mode==="date")return new jQ(X);return new fQ(X)}class xQ extends u{static[_]="PgDoublePrecisionBuilder";constructor(W){super(W,"number","PgDoublePrecision")}build(W){return new vQ(W,this.config)}}class vQ extends j{static[_]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(W){if(typeof W==="string")return Number.parseFloat(W);return W}}function bQ(W){return new xQ(W??"")}class yQ extends u{static[_]="PgInetBuilder";constructor(W){super(W,"string","PgInet")}build(W){return new hQ(W,this.config)}}class hQ extends j{static[_]="PgInet";getSQLType(){return"inet"}}function gQ(W){return new yQ(W??"")}class mQ extends j2{static[_]="PgIntegerBuilder";constructor(W){super(W,"number","PgInteger")}build(W){return new pQ(W,this.config)}}class pQ extends j{static[_]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(W){if(typeof W==="string")return Number.parseInt(W);return W}}function G6(W){return new mQ(W??"")}class uQ extends u{static[_]="PgIntervalBuilder";constructor(W,$){super(W,"string","PgInterval");this.config.intervalConfig=$}build(W){return new cQ(W,this.config)}}class cQ extends j{static[_]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let W=this.fields?` ${this.fields}`:"",$=this.precision?`(${this.precision})`:"";return`interval${W}${$}`}}function dQ(W,$={}){let{name:X,config:Y}=D0(W,$);return new uQ(X,Y)}class lQ extends u{static[_]="PgJsonBuilder";constructor(W){super(W,"json","PgJson")}build(W){return new TY(W,this.config)}}class TY extends j{static[_]="PgJson";constructor(W,$){super(W,$)}getSQLType(){return"json"}mapToDriverValue(W){return JSON.stringify(W)}mapFromDriverValue(W){if(typeof W==="string")try{return JSON.parse(W)}catch{return W}return W}}function oQ(W){return new lQ(W??"")}class iQ extends u{static[_]="PgJsonbBuilder";constructor(W){super(W,"json","PgJsonb")}build(W){return new UY(W,this.config)}}class UY extends j{static[_]="PgJsonb";constructor(W,$){super(W,$)}getSQLType(){return"jsonb"}mapToDriverValue(W){return JSON.stringify(W)}mapFromDriverValue(W){if(typeof W==="string")try{return JSON.parse(W)}catch{return W}return W}}function nQ(W){return new iQ(W??"")}class rQ extends u{static[_]="PgLineBuilder";constructor(W){super(W,"array","PgLine")}build(W){return new tQ(W,this.config)}}class tQ extends j{static[_]="PgLine";getSQLType(){return"line"}mapFromDriverValue(W){let[$,X,Y]=W.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(X),Number.parseFloat(Y)]}mapToDriverValue(W){return`{${W[0]},${W[1]},${W[2]}}`}}class aQ extends u{static[_]="PgLineABCBuilder";constructor(W){super(W,"json","PgLineABC")}build(W){return new sQ(W,this.config)}}class sQ extends j{static[_]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(W){let[$,X,Y]=W.slice(1,-1).split(",");return{a:Number.parseFloat($),b:Number.parseFloat(X),c:Number.parseFloat(Y)}}mapToDriverValue(W){return`{${W.a},${W.b},${W.c}}`}}function eQ(W,$){let{name:X,config:Y}=D0(W,$);if(!Y?.mode||Y.mode==="tuple")return new rQ(X);return new aQ(X)}class Wz extends u{static[_]="PgMacaddrBuilder";constructor(W){super(W,"string","PgMacaddr")}build(W){return new $z(W,this.config)}}class $z extends j{static[_]="PgMacaddr";getSQLType(){return"macaddr"}}function Xz(W){return new Wz(W??"")}class Yz extends u{static[_]="PgMacaddr8Builder";constructor(W){super(W,"string","PgMacaddr8")}build(W){return new Jz(W,this.config)}}class Jz extends j{static[_]="PgMacaddr8";getSQLType(){return"macaddr8"}}function Gz(W){return new Yz(W??"")}class Hz extends u{static[_]="PgNumericBuilder";constructor(W,$,X){super(W,"string","PgNumeric");this.config.precision=$,this.config.scale=X}build(W){return new wY(W,this.config)}}class wY extends j{static[_]="PgNumeric";precision;scale;constructor(W,$){super(W,$);this.precision=$.precision,this.scale=$.scale}mapFromDriverValue(W){if(typeof W==="string")return W;return String(W)}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 Qz extends u{static[_]="PgNumericNumberBuilder";constructor(W,$,X){super(W,"number","PgNumericNumber");this.config.precision=$,this.config.scale=X}build(W){return new zz(W,this.config)}}class zz extends j{static[_]="PgNumericNumber";precision;scale;constructor(W,$){super(W,$);this.precision=$.precision,this.scale=$.scale}mapFromDriverValue(W){if(typeof W==="number")return W;return Number(W)}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 Fz extends u{static[_]="PgNumericBigIntBuilder";constructor(W,$,X){super(W,"bigint","PgNumericBigInt");this.config.precision=$,this.config.scale=X}build(W){return new Tz(W,this.config)}}class Tz extends j{static[_]="PgNumericBigInt";precision;scale;constructor(W,$){super(W,$);this.precision=$.precision,this.scale=$.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 Uz(W,$){let{name:X,config:Y}=D0(W,$),J=Y?.mode;return J==="number"?new Qz(X,Y?.precision,Y?.scale):J==="bigint"?new Fz(X,Y?.precision,Y?.scale):new Hz(X,Y?.precision,Y?.scale)}class wz extends u{static[_]="PgPointTupleBuilder";constructor(W){super(W,"array","PgPointTuple")}build(W){return new Mz(W,this.config)}}class Mz extends j{static[_]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(W){if(typeof W==="string"){let[$,X]=W.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(X)]}return[W.x,W.y]}mapToDriverValue(W){return`(${W[0]},${W[1]})`}}class _z extends u{static[_]="PgPointObjectBuilder";constructor(W){super(W,"json","PgPointObject")}build(W){return new Dz(W,this.config)}}class Dz extends j{static[_]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(W){if(typeof W==="string"){let[$,X]=W.slice(1,-1).split(",");return{x:Number.parseFloat($),y:Number.parseFloat(X)}}return W}mapToDriverValue(W){return`(${W.x},${W.y})`}}function Vz(W,$){let{name:X,config:Y}=D0(W,$);if(!Y?.mode||Y.mode==="tuple")return new wz(X);return new _z(X)}function aV(W){let $=[];for(let X=0;X<W.length;X+=2)$.push(Number.parseInt(W.slice(X,X+2),16));return new Uint8Array($)}function Oz(W,$){let X=new ArrayBuffer(8),Y=new DataView(X);for(let J=0;J<8;J++)Y.setUint8(J,W[$+J]);return Y.getFloat64(0,!0)}function lJ(W){let $=aV(W),X=0,Y=$[X];X+=1;let J=new DataView($.buffer),G=J.getUint32(X,Y===1);X+=4;let H;if(G&536870912)H=J.getUint32(X,Y===1),X+=4;if((G&65535)===1){let Q=Oz($,X);X+=8;let z=Oz($,X);return X+=8,[Q,z]}throw new Error("Unsupported geometry type")}class Kz extends u{static[_]="PgGeometryBuilder";constructor(W){super(W,"array","PgGeometry")}build(W){return new Lz(W,this.config)}}class Lz extends j{static[_]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(W){return lJ(W)}mapToDriverValue(W){return`point(${W[0]} ${W[1]})`}}class Az extends u{static[_]="PgGeometryObjectBuilder";constructor(W){super(W,"json","PgGeometryObject")}build(W){return new Ez(W,this.config)}}class Ez extends j{static[_]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(W){let $=lJ(W);return{x:$[0],y:$[1]}}mapToDriverValue(W){return`point(${W.x} ${W.y})`}}function Nz(W,$){let{name:X,config:Y}=D0(W,$);if(!Y?.mode||Y.mode==="tuple")return new Kz(X);return new Az(X)}class Bz extends u{static[_]="PgRealBuilder";constructor(W,$){super(W,"number","PgReal");this.config.length=$}build(W){return new Rz(W,this.config)}}class Rz extends j{static[_]="PgReal";constructor(W,$){super(W,$)}getSQLType(){return"real"}mapFromDriverValue=(W)=>{if(typeof W==="string")return Number.parseFloat(W);return W}}function Zz(W){return new Bz(W??"")}class Sz extends u{static[_]="PgSerialBuilder";constructor(W){super(W,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(W){return new qz(W,this.config)}}class qz extends j{static[_]="PgSerial";getSQLType(){return"serial"}}function Cz(W){return new Sz(W??"")}class kz extends j2{static[_]="PgSmallIntBuilder";constructor(W){super(W,"number","PgSmallInt")}build(W){return new Iz(W,this.config)}}class Iz extends j{static[_]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(W)=>{if(typeof W==="string")return Number(W);return W}}function jz(W){return new kz(W??"")}class fz extends u{static[_]="PgSmallSerialBuilder";constructor(W){super(W,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(W){return new Pz(W,this.config)}}class Pz extends j{static[_]="PgSmallSerial";getSQLType(){return"smallserial"}}function xz(W){return new fz(W??"")}class vz extends u{static[_]="PgTextBuilder";constructor(W,$){super(W,"string","PgText");this.config.enumValues=$.enum}build(W){return new bz(W,this.config)}}class bz extends j{static[_]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function yz(W,$={}){let{name:X,config:Y}=D0(W,$);return new vz(X,Y)}class hz extends J2{constructor(W,$,X){super(W,"string","PgTime");this.withTimezone=$,this.precision=X,this.config.withTimezone=$,this.config.precision=X}static[_]="PgTimeBuilder";build(W){return new MY(W,this.config)}}class MY extends j{static[_]="PgTime";withTimezone;precision;constructor(W,$){super(W,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function gz(W,$={}){let{name:X,config:Y}=D0(W,$);return new hz(X,Y.withTimezone??!1,Y.precision)}class mz extends J2{static[_]="PgTimestampBuilder";constructor(W,$,X){super(W,"date","PgTimestamp");this.config.withTimezone=$,this.config.precision=X}build(W){return new _Y(W,this.config)}}class _Y extends j{static[_]="PgTimestamp";withTimezone;precision;constructor(W,$){super(W,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(W)=>{return new Date(this.withTimezone?W:W+"+0000")};mapToDriverValue=(W)=>{return W.toISOString()}}class pz extends J2{static[_]="PgTimestampStringBuilder";constructor(W,$,X){super(W,"string","PgTimestampString");this.config.withTimezone=$,this.config.precision=X}build(W){return new DY(W,this.config)}}class DY extends j{static[_]="PgTimestampString";withTimezone;precision;constructor(W,$){super(W,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function NW(W,$={}){let{name:X,config:Y}=D0(W,$);if(Y?.mode==="string")return new pz(X,Y.withTimezone??!1,Y.precision);return new mz(X,Y?.withTimezone??!1,Y?.precision)}class uz extends u{static[_]="PgUUIDBuilder";constructor(W){super(W,"string","PgUUID")}defaultRandom(){return this.default(D`gen_random_uuid()`)}build(W){return new VY(W,this.config)}}class VY extends j{static[_]="PgUUID";getSQLType(){return"uuid"}}function HW(W){return new uz(W??"")}class cz extends u{static[_]="PgVarcharBuilder";constructor(W,$){super(W,"string","PgVarchar");this.config.length=$.length,this.config.enumValues=$.enum}build(W){return new dz(W,this.config)}}class dz extends j{static[_]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function k1(W,$={}){let{name:X,config:Y}=D0(W,$);return new cz(X,Y)}class lz extends u{static[_]="PgBinaryVectorBuilder";constructor(W,$){super(W,"string","PgBinaryVector");this.config.dimensions=$.dimensions}build(W){return new oz(W,this.config)}}class oz extends j{static[_]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function iz(W,$){let{name:X,config:Y}=D0(W,$);return new lz(X,Y)}class nz extends u{static[_]="PgHalfVectorBuilder";constructor(W,$){super(W,"array","PgHalfVector");this.config.dimensions=$.dimensions}build(W){return new rz(W,this.config)}}class rz extends j{static[_]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(W){return JSON.stringify(W)}mapFromDriverValue(W){return W.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function tz(W,$){let{name:X,config:Y}=D0(W,$);return new nz(X,Y)}class az extends u{static[_]="PgSparseVectorBuilder";constructor(W,$){super(W,"string","PgSparseVector");this.config.dimensions=$.dimensions}build(W){return new sz(W,this.config)}}class sz extends j{static[_]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function ez(W,$){let{name:X,config:Y}=D0(W,$);return new az(X,Y)}class WF extends u{static[_]="PgVectorBuilder";constructor(W,$){super(W,"array","PgVector");this.config.dimensions=$.dimensions}build(W){return new $F(W,this.config)}}class $F extends j{static[_]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(W){return JSON.stringify(W)}mapFromDriverValue(W){return W.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function XF(W,$){let{name:X,config:Y}=D0(W,$);return new WF(X,Y)}function YF(){return{bigint:_Q,bigserial:LQ,boolean:J6,char:RQ,cidr:qQ,customType:IQ,date:PQ,doublePrecision:bQ,inet:gQ,integer:G6,interval:dQ,json:oQ,jsonb:nQ,line:eQ,macaddr:Xz,macaddr8:Gz,numeric:Uz,point:Vz,geometry:Nz,real:Zz,serial:Cz,smallint:jz,smallserial:xz,text:yz,time:gz,timestamp:NW,uuid:HW,varchar:k1,bit:iz,halfvec:tz,sparsevec:ez,vector:XF}}var oJ=Symbol.for("drizzle:PgInlineForeignKeys"),JF=Symbol.for("drizzle:EnableRLS");class _1 extends y{static[_]="PgTable";static Symbol=Object.assign({},y.Symbol,{InlineForeignKeys:oJ,EnableRLS:JF});[oJ]=[];[JF]=!1;[y.Symbol.ExtraConfigBuilder]=void 0;[y.Symbol.ExtraConfigColumns]={}}function sV(W,$,X,Y,J=W){let G=new _1(W,Y,J),H=typeof $==="function"?$(YF()):$,Q=Object.fromEntries(Object.entries(H).map(([T,U])=>{let M=U;M.setName(T);let V=M.build(G);return G[oJ].push(...M.buildForeignKeys(V,G)),[T,V]})),z=Object.fromEntries(Object.entries(H).map(([T,U])=>{let M=U;M.setName(T);let V=M.buildExtraConfigColumn(G);return[T,V]})),F=Object.assign(G,Q);if(F[y.Symbol.Columns]=Q,F[y.Symbol.ExtraConfigColumns]=z,X)F[_1.Symbol.ExtraConfigBuilder]=X;return Object.assign(F,{enableRLS:()=>{return F[_1.Symbol.EnableRLS]=!0,F}})}var f2=(W,$,X)=>{return sV(W,$,X,void 0)};function GF(...W){if(W[0].columns)return new H6(W[0].columns,W[0].name);return new H6(W)}class H6{static[_]="PgPrimaryKeyBuilder";columns;name;constructor(W,$){this.columns=W,this.name=$}build(W){return new HF(W,this.columns,this.name)}}class HF{constructor(W,$,X){this.table=W,this.columns=$,this.name=X}static[_]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[_1.Symbol.Name]}_${this.columns.map((W)=>W.name).join("_")}_pk`}}function h1(W,$){if(XQ($)&&!gJ(W)&&!A(W,a1)&&!A(W,I2)&&!A(W,S0)&&!A(W,y)&&!A(W,y1))return new a1(W,$);return W}var OY=(W,$)=>{return D`${W} = ${h1($,W)}`},QF=(W,$)=>{return D`${W} <> ${h1($,W)}`};function Q6(...W){let $=W.filter((X)=>X!==void 0);if($.length===0)return;if($.length===1)return new g($);return new g([new H1("("),D.join($,new H1(" and ")),new H1(")")])}function zF(...W){let $=W.filter((X)=>X!==void 0);if($.length===0)return;if($.length===1)return new g($);return new g([new H1("("),D.join($,new H1(" or ")),new H1(")")])}function FF(W){return D`not ${W}`}var KY=(W,$)=>{return D`${W} > ${h1($,W)}`},TF=(W,$)=>{return D`${W} >= ${h1($,W)}`},UF=(W,$)=>{return D`${W} < ${h1($,W)}`},wF=(W,$)=>{return D`${W} <= ${h1($,W)}`};function MF(W,$){if(Array.isArray($)){if($.length===0)return D`false`;return D`${W} in ${$.map((X)=>h1(X,W))}`}return D`${W} in ${h1($,W)}`}function _F(W,$){if(Array.isArray($)){if($.length===0)return D`true`;return D`${W} not in ${$.map((X)=>h1(X,W))}`}return D`${W} not in ${h1($,W)}`}function DF(W){return D`${W} is null`}function VF(W){return D`${W} is not null`}function OF(W){return D`exists ${W}`}function KF(W){return D`not exists ${W}`}function LF(W,$,X){return D`${W} between ${h1($,W)} and ${h1(X,W)}`}function AF(W,$,X){return D`${W} not between ${h1($,W)} and ${h1(X,W)}`}function EF(W,$){return D`${W} like ${$}`}function NF(W,$){return D`${W} not like ${$}`}function BF(W,$){return D`${W} ilike ${$}`}function RF(W,$){return D`${W} not ilike ${$}`}function ZF(W){return D`${W} asc`}function SF(W){return D`${W} desc`}class iJ{constructor(W,$,X){this.sourceTable=W,this.referencedTable=$,this.relationName=X,this.referencedTableName=$[y.Symbol.Name]}static[_]="Relation";referencedTableName;fieldName}class qF{constructor(W,$){this.table=W,this.config=$}static[_]="Relations"}class P2 extends iJ{constructor(W,$,X,Y){super(W,$,X?.relationName);this.config=X,this.isNullable=Y}static[_]="One";withFieldName(W){let $=new P2(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=W,$}}class z6 extends iJ{constructor(W,$,X){super(W,$,X?.relationName);this.config=X}static[_]="Many";withFieldName(W){let $=new z6(this.sourceTable,this.referencedTable,this.config);return $.fieldName=W,$}}function CF(){return{and:Q6,between:LF,eq:OY,exists:OF,gt:KY,gte:TF,ilike:BF,inArray:MF,isNull:DF,isNotNull:VF,like:EF,lt:UF,lte:wF,ne:QF,not:FF,notBetween:AF,notExists:KF,notLike:NF,notIlike:RF,notInArray:_F,or:zF,sql:D}}function kF(){return{sql:D,asc:ZF,desc:SF}}function IF(W,$){if(Object.keys(W).length===1&&"default"in W&&!A(W.default,y))W=W.default;let X={},Y={},J={};for(let[G,H]of Object.entries(W))if(A(H,y)){let Q=_8(H),z=Y[Q];X[Q]=G,J[G]={tsName:G,dbName:H[y.Symbol.Name],schema:H[y.Symbol.Schema],columns:H[y.Symbol.Columns],relations:z?.relations??{},primaryKey:z?.primaryKey??[]};for(let T of Object.values(H[y.Symbol.Columns]))if(T.primary)J[G].primaryKey.push(T);let F=H[y.Symbol.ExtraConfigBuilder]?.(H[y.Symbol.ExtraConfigColumns]);if(F){for(let T of Object.values(F))if(A(T,H6))J[G].primaryKey.push(...T.columns)}}else if(A(H,qF)){let Q=_8(H.table),z=X[Q],F=H.config($(H.table)),T;for(let[U,M]of Object.entries(F))if(z){let V=J[z];if(V.relations[U]=M,T)V.primaryKey.push(...T)}else{if(!(Q in Y))Y[Q]={relations:{},primaryKey:T};Y[Q].relations[U]=M}}return{tables:J,tableNamesMap:X}}function eV(W){return function $(X,Y){return new P2(W,X,Y,Y?.fields.reduce((J,G)=>J&&G.notNull,!0)??!1)}}function WO(W){return function $(X,Y){return new z6(W,X,Y)}}function jF(W,$,X){if(A(X,P2)&&X.config)return{fields:X.config.fields,references:X.config.references};let Y=$[_8(X.referencedTable)];if(!Y)throw new Error(`Table "${X.referencedTable[y.Symbol.Name]}" not found in schema`);let J=W[Y];if(!J)throw new Error(`Table "${Y}" not found in schema`);let G=X.sourceTable,H=$[_8(G)];if(!H)throw new Error(`Table "${G[y.Symbol.Name]}" not found in schema`);let Q=[];for(let z of Object.values(J.relations))if(X.relationName&&X!==z&&z.relationName===X.relationName||!X.relationName&&z.referencedTable===X.sourceTable)Q.push(z);if(Q.length>1)throw X.relationName?new Error(`There are multiple relations with name "${X.relationName}" in table "${Y}"`):new Error(`There are multiple relations between "${Y}" and "${X.sourceTable[y.Symbol.Name]}". Please specify relation name`);if(Q[0]&&A(Q[0],P2)&&Q[0].config)return{fields:Q[0].config.references,references:Q[0].config.fields};throw new Error(`There is not enough information to infer relation "${H}.${X.fieldName}"`)}function fF(W){return{one:eV(W),many:WO(W)}}function LY(W,$,X,Y,J=(G)=>G){let G={};for(let[H,Q]of Y.entries())if(Q.isJson){let z=$.relations[Q.tsKey],F=X[H],T=typeof F==="string"?JSON.parse(F):F;G[Q.tsKey]=A(z,P2)?T&&LY(W,W[Q.relationTableTsKey],T,Q.selection,J):T.map((U)=>LY(W,W[Q.relationTableTsKey],U,Q.selection,J))}else{let z=J(X[H]),F=Q.field,T;if(A(F,S0))T=F;else if(A(F,g))T=F.decoder;else T=F.sql.decoder;G[Q.tsKey]=z===null?null:T.mapFromDriverValue(z)}return G}import cE from"path";import RO from"os";import ZO from"fs";var AY=new Map,nJ=new Map,rJ=Symbol("OriginError"),w$={};class QW extends Promise{constructor(W,$,X,Y,J={}){let G,H;super((Q,z)=>{G=Q,H=z});this.tagged=Array.isArray(W.raw),this.strings=W,this.args=$,this.handler=X,this.canceller=Y,this.options=J,this.state=null,this.statement=null,this.resolve=(Q)=>(this.active=!1,G(Q)),this.reject=(Q)=>(this.active=!1,H(Q)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[rJ]=this.handler.debug?new Error:this.tagged&&$O(this.strings)}get origin(){return(this.handler.debug?this[rJ].stack:this.tagged&&nJ.has(this.strings)?nJ.get(this.strings):nJ.set(this.strings,this[rJ].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(W=1,$){if(this.options.simple=!1,typeof W==="function")$=W,W=1;if(this.cursorRows=W,typeof $==="function")return this.cursorFn=$,this;let X;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};X&&X();let Y=new Promise((J,G)=>{this.cursorFn=(H)=>{return J({value:H,done:!1}),new Promise((Q)=>X=Q)},this.resolve=()=>(this.active=!1,J({done:!0})),this.reject=(H)=>(this.active=!1,G(H))});return this.execute(),Y},return(){return X&&X(w$),{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(W){return this.forEachFn=W,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 $O(W){if(AY.has(W))return AY.get(W);let $=Error.stackTraceLimit;return Error.stackTraceLimit=4,AY.set(W,new Error),Error.stackTraceLimit=$,AY.get(W)}class M$ extends Error{constructor(W){super(W.message);this.name=this.constructor.name,Object.assign(this,W)}}var t0={connection:PF,postgres:xF,generic:vF,notSupported:bF};function PF(W,$,X){let{host:Y,port:J}=X||$,G=Object.assign(new Error("write "+W+" "+($.path||Y+":"+J)),{code:W,errno:W,address:$.path||Y},$.path?{}:{port:J});return Error.captureStackTrace(G,PF),G}function xF(W){let $=new M$(W);return Error.captureStackTrace($,xF),$}function vF(W,$){let X=Object.assign(new Error(W+": "+$),{code:W});return Error.captureStackTrace(X,vF),X}function bF(W){let $=Object.assign(new Error(W+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:W});return Error.captureStackTrace($,bF),$}var XO={string:{to:25,from:null,serialize:(W)=>""+W},number:{to:0,from:[21,23,26,700,701],serialize:(W)=>""+W,parse:(W)=>+W},json:{to:114,from:[114,3802],serialize:(W)=>JSON.stringify(W),parse:(W)=>JSON.parse(W)},boolean:{to:16,from:16,serialize:(W)=>W===!0?"t":"f",parse:(W)=>W==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(W)=>(W instanceof Date?W:new Date(W)).toISOString(),parse:(W)=>new Date(W)},bytea:{to:17,from:17,serialize:(W)=>"\\x"+Buffer.from(W).toString("hex"),parse:(W)=>Buffer.from(W.slice(2),"hex")}};class BY{then(){tJ()}catch(){tJ()}finally(){tJ()}}class w6 extends BY{constructor(W){super();this.value=SY(W)}}class mW extends BY{constructor(W,$,X){super();this.value=W,this.type=$,this.array=X}}class RY extends BY{constructor(W,$){super();this.first=W,this.rest=$}build(W,$,X,Y){let J=YO.map(([G,H])=>({fn:H,i:W.search(G)})).sort((G,H)=>G.i-H.i).pop();return J.i===-1?$5(this.first,Y):J.fn(this.first,this.rest,$,X,Y)}}function ZY(W,$,X,Y){let J=W instanceof mW?W.value:W;if(J===void 0){if(W instanceof mW?W.value=Y.transform.undefined:J=W=Y.transform.undefined,J===void 0)throw t0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+X.push(W instanceof mW?($.push(W.value),W.array?W.array[W.type||NY(W.value)]||W.type||mF(W.value):W.type):($.push(W),NY(W)))}var hF=uF(XO);function eJ(W,$,X,Y,J,G){for(let H=1;H<W.strings.length;H++)$+=W5($,X,Y,J,G)+W.strings[H],X=W.args[H];return $}function W5(W,$,X,Y,J){return $ instanceof RY?$.build(W,X,Y,J):$ instanceof QW?sJ($,X,Y,J):$ instanceof w6?$.value:$&&$[0]instanceof QW?$.reduce((G,H)=>G+" "+sJ(H,X,Y,J),""):ZY($,X,Y,J)}function sJ(W,$,X,Y){return W.fragment=!0,eJ(W,W.strings[0],W.args[0],$,X,Y)}function gF(W,$,X,Y,J){return W.map((G)=>"("+Y.map((H)=>W5("values",G[H],$,X,J)).join(",")+")").join(",")}function yF(W,$,X,Y,J){let G=Array.isArray(W[0]),H=$.length?$.flat():Object.keys(G?W[0]:W);return gF(G?W:[W],X,Y,H,J)}function EY(W,$,X,Y,J){if(typeof W==="string"&&(W=[W].concat($)),Array.isArray(W))return $5(W,J);let G;return($.length?$.flat():Object.keys(W)).map((Q)=>{return G=W[Q],(G instanceof QW?sJ(G,X,Y,J):G instanceof w6?G.value:ZY(G,X,Y,J))+" as "+SY(J.transform.column.to?J.transform.column.to(Q):Q)}).join(",")}var YO=Object.entries({values:yF,in:(...W)=>{let $=yF(...W);return $==="()"?"(null)":$},select:EY,as:EY,returning:EY,"\\(":EY,update(W,$,X,Y,J){return($.length?$.flat():Object.keys(W)).map((G)=>SY(J.transform.column.to?J.transform.column.to(G):G)+"="+W5("values",W[G],X,Y,J))},insert(W,$,X,Y,J){let G=$.length?$.flat():Object.keys(Array.isArray(W)?W[0]:W);return"("+$5(G,J)+")values"+gF(Array.isArray(W)?W:[W],X,Y,G,J)}}).map(([W,$])=>[new RegExp("((?:^|[\\s(])"+W+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),$]);function tJ(){throw t0.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:JO,parsers:GO}=hF;function mF(W){if(Array.isArray(W))return mF(W[0]);return typeof W==="string"?1009:0}var pF=function(W){let $=uF(W||{});return{serializers:Object.assign({},JO,$.serializers),parsers:Object.assign({},GO,$.parsers)}};function uF(W){return Object.keys(W).reduce(($,X)=>{if(W[X].from&&[].concat(W[X].from).forEach((Y)=>$.parsers[Y]=W[X].parse),W[X].serialize)$.serializers[W[X].to]=W[X].serialize,W[X].from&&[].concat(W[X].from).forEach((Y)=>$.serializers[Y]=W[X].serialize);return $},{parsers:{},serializers:{}})}function $5(W,{transform:{column:$}}){return W.map((X)=>SY($.to?$.to(X):X)).join(",")}var SY=function W($){return'"'+$.replace(/"/g,'""').replace(/\./g,'"."')+'"'},NY=function W($){return $ instanceof mW?$.type:$ instanceof Date?1184:$ instanceof Uint8Array?17:$===!0||$===!1?16:typeof $==="bigint"?20:Array.isArray($)?W($[0]):0},HO=/\\/g,QO=/"/g;function zO(W){return W.replace(HO,"\\\\").replace(QO,"\\\"")}var cF=function W($,X,Y,J){if(Array.isArray($)===!1)return $;if(!$.length)return"{}";let G=$[0],H=J===1020?";":",";if(Array.isArray(G)&&!G.type)return"{"+$.map((Q)=>W(Q,X,Y,J)).join(H)+"}";return"{"+$.map((Q)=>{if(Q===void 0){if(Q=Y.transform.undefined,Q===void 0)throw t0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return Q===null?"null":'"'+zO(X?X(Q.type?Q.value:Q):""+Q)+'"'}).join(H)+"}"},aJ={i:0,char:null,str:"",quoted:!1,last:0},dF=function W($,X,Y){return aJ.i=aJ.last=0,lF(aJ,$,X,Y)};function lF(W,$,X,Y){let J=[],G=Y===1020?";":",";for(;W.i<$.length;W.i++){if(W.char=$[W.i],W.quoted)if(W.char==="\\")W.str+=$[++W.i];else if(W.char==='"')J.push(X?X(W.str):W.str),W.str="",W.quoted=$[W.i+1]==='"',W.last=W.i+2;else W.str+=W.char;else if(W.char==='"')W.quoted=!0;else if(W.char==="{")W.last=++W.i,J.push(lF(W,$,X,Y));else if(W.char==="}"){W.quoted=!1,W.last<W.i&&J.push(X?X($.slice(W.last,W.i)):$.slice(W.last,W.i)),W.last=W.i+1;break}else if(W.char===G&&W.p!=="}"&&W.p!=='"')J.push(X?X($.slice(W.last,W.i)):$.slice(W.last,W.i)),W.last=W.i+1;W.p=W.char}return W.last<W.i&&J.push(X?X($.slice(W.last,W.i+1)):$.slice(W.last,W.i+1)),J}var D8=(W)=>{let $=W[0];for(let X=1;X<W.length;X++)$+=W[X]==="_"?W[++X].toUpperCase():W[X];return $},V8=(W)=>{let $=W[0].toUpperCase();for(let X=1;X<W.length;X++)$+=W[X]==="_"?W[++X].toUpperCase():W[X];return $},O8=(W)=>W.replace(/_/g,"-"),F6=(W)=>W.replace(/([A-Z])/g,"_$1").toLowerCase(),T6=(W)=>(W.slice(0,1)+W.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),U6=(W)=>W.replace(/-/g,"_");function X5(W){return function $(X,Y){return typeof X==="object"&&X!==null&&(Y.type===114||Y.type===3802)?Array.isArray(X)?X.map((J)=>$(J,Y)):Object.entries(X).reduce((J,[G,H])=>Object.assign(J,{[W(G)]:$(H,Y)}),{}):X}}D8.column={from:D8};D8.value={from:X5(D8)};F6.column={to:F6};var Y5={...D8};Y5.column.to=F6;V8.column={from:V8};V8.value={from:X5(V8)};T6.column={to:T6};var J5={...V8};J5.column.to=T6;O8.column={from:O8};O8.value={from:X5(O8)};U6.column={to:U6};var G5={...O8};G5.column.to=U6;import oF from"net";import wO from"tls";import M6 from"crypto";import H5 from"stream";import{performance as iF}from"perf_hooks";class K8 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 s1=FO;function FO(W=[]){let $=W.slice(),X=0;return{get length(){return $.length-X},remove:(Y)=>{let J=$.indexOf(Y);return J===-1?null:($.splice(J,1),Y)},push:(Y)=>($.push(Y),Y),shift:()=>{let Y=$[X++];if(X===$.length)X=0,$=[];else $[X-1]=void 0;return Y}}}var E1=Buffer.allocUnsafe(256),TO="BCcDdEFfHPpQSX".split("").reduce((W,$)=>{let X=$.charCodeAt(0);return W[$]=()=>{return E1[0]=X,R0.i=5,R0},W},{}),R0=Object.assign(UO,TO,{N:String.fromCharCode(0),i:0,inc(W){return R0.i+=W,R0},str(W){let $=Buffer.byteLength(W);return qY($),R0.i+=E1.write(W,R0.i,$,"utf8"),R0},i16(W){return qY(2),E1.writeUInt16BE(W,R0.i),R0.i+=2,R0},i32(W,$){if($||$===0)return E1.writeUInt32BE(W,$),R0;return qY(4),E1.writeUInt32BE(W,R0.i),R0.i+=4,R0},z(W){return qY(W),E1.fill(0,R0.i,R0.i+W),R0.i+=W,R0},raw(W){return E1=Buffer.concat([E1.subarray(0,R0.i),W]),R0.i=E1.length,R0},end(W=1){E1.writeUInt32BE(R0.i-W,W);let $=E1.subarray(0,R0.i);return R0.i=0,E1=Buffer.allocUnsafe(256),$}}),n=R0;function qY(W){if(E1.length-R0.i<W){let $=E1,X=$.length;E1=Buffer.allocUnsafe(X+(X>>1)+W),$.copy(E1)}}function UO(){return R0.i=0,R0}var F5=tF,MO=1,x2=n().S().end(),nF=n().H().end(),_O=n().i32(8).i32(80877103).end(8),DO=Buffer.concat([n().E().str(n.N).i32(0).end(),x2]),VO=n().D().str("S").str(n.N).end(),_$=()=>{},OO=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),KO={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 tF(W,$={},{onopen:X=_$,onend:Y=_$,onclose:J=_$}={}){let{ssl:G,max:H,user:Q,host:z,port:F,database:T,parsers:U,transform:M,onnotice:V,onnotify:K,onparameter:N,max_pipeline:I,keep_alive:C,backoff:B,target_session_attrs:q}=W,m=s1(),c=MO++,v={pid:null,secret:null},h=z5(V9,W.idle_timeout),U0=z5(V9,W.max_lifetime),m0=z5(vM,W.connect_timeout),E=null,_0,e=new K8,w0=Buffer.alloc(0),s0=W.fetch_types,D1={},wW={},q8=Math.random().toString(36).slice(2),k=1,a=0,N0=0,g0=0,e0=0,F0=0,k0=0,n0=0,p0=null,v0=null,V1=!1,I0=null,MW=null,O1=null,V2=null,W1=null,b0=null,_W=null,CW=null,x=null,y$=null,K1={queue:$.closed,idleTimer:h,connect(w){O1=w||!0,WG()},terminate:g$,execute:h$,cancel:jM,end:V9,count:0,id:c};return $.closed&&$.closed.push(K1),K1;async function IM(){let w;try{w=W.socket?await Promise.resolve(W.socket(W)):new oF.Socket}catch(O){k8(O);return}return w.on("error",k8),w.on("close",$G),w.on("drain",s7),w}async function jM({pid:w,secret:O},t,A0){try{_0=n().i32(16).i32(80877102).i32(w).i32(O).end(16),await e7(),E.once("error",A0),E.once("close",t)}catch(d0){A0(d0)}}function h$(w){if(V1)return r6(w,t0.connection("CONNECTION_DESTROYED",W));if(w.cancelled)return;try{return w.state=v,x?m.push(w):(x=w,x.active=!0),xM(w),w1(fM(w))&&!w.describeFirst&&!w.cursorFn&&m.length<I&&(!w.options.onexecute||w.options.onexecute(K1))}catch(O){return m.length===0&&w1(x2),kW(O),!0}}function fM(w){if(w.parameters.length>=65534)throw t0.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return w.options.simple?n().Q().str(w.statement.string+n.N).end():w.describeFirst?Buffer.concat([r7(w),nF]):w.prepare?w.prepared?n6(w):Buffer.concat([r7(w),n6(w)]):PM(w)}function r7(w){return Buffer.concat([YG(w.statement.string,w.parameters,w.statement.types,w.statement.name),L_("S",w.statement.name)])}function n6(w){return Buffer.concat([K_(w.parameters,w.statement.types,w.statement.name,w.cursorName),w.cursorFn?JG("",w.cursorRows):DO])}function PM(w){return Buffer.concat([YG(w.statement.string,w.parameters,w.statement.types),VO,n6(w)])}function xM(w){let O=[],t=[],A0=eJ(w,w.strings[0],w.args[0],O,t,W);!w.tagged&&w.args.forEach((d0)=>ZY(d0,O,t,W)),w.prepare=W.prepare&&("prepare"in w.options?w.options.prepare:!0),w.string=A0,w.signature=w.prepare&&t+A0,w.onlyDescribe&&delete wW[w.signature],w.parameters=w.parameters||O,w.prepared=w.prepare&&w.signature in wW,w.describeFirst=w.onlyDescribe||O.length&&!w.prepared,w.statement=w.prepared?wW[w.signature]:{string:A0,types:t,name:w.prepare?q8+k++:""},typeof W.debug==="function"&&W.debug(c,A0,O,t)}function w1(w,O){if(b0=b0?Buffer.concat([b0,w]):Buffer.from(w),O||b0.length>=1024)return t7(O);return v0===null&&(v0=setImmediate(t7)),!0}function t7(w){let O=E.write(b0,w);return v0!==null&&clearImmediate(v0),b0=v0=null,O}function vM(){kW(t0.connection("CONNECT_TIMEOUT",W,E)),E.destroy()}async function a7(){if(w1(_O),!await new Promise((O)=>E.once("data",(t)=>O(t[0]===83)))&&G==="prefer")return C8();E.removeAllListeners(),E=wO.connect({socket:E,servername:oF.isIP(E.host)?void 0:E.host,...G==="require"||G==="allow"||G==="prefer"?{rejectUnauthorized:!1}:G==="verify-full"?{}:typeof G==="object"?G:{}}),E.on("secureConnect",C8),E.on("error",k8),E.on("close",$G),E.on("drain",s7)}function s7(){!x&&X(K1)}function D9(w){if(I0){if(I0.push(w),N0-=w.length,N0>=0)return}w0=I0?Buffer.concat(I0,F0-N0):w0.length===0?w:Buffer.concat([w0,w],w0.length+w.length);while(w0.length>4){if(F0=w0.readUInt32BE(1),F0>=w0.length){N0=F0-w0.length,I0=[w0];break}try{bM(w0.subarray(0,F0+1))}catch(O){x&&(x.cursorFn||x.describeFirst)&&w1(x2),kW(O)}w0=w0.subarray(F0+1),N0=0,I0=null}}async function e7(){if(V1=!1,D1={},E||(E=await IM()),!E)return;if(m0.start(),W.socket)return G?a7():C8();if(E.on("connect",G?a7:C8),W.path)return E.connect(W.path);E.ssl=G,E.connect(F[g0],z[g0]),E.host=z[g0],E.port=F[g0],g0=(g0+1)%F.length}function WG(){setTimeout(e7,a?a+k0-iF.now():0)}function C8(){try{wW={},s0=W.fetch_types,q8=Math.random().toString(36).slice(2),k=1,U0.start(),E.on("data",D9),C&&E.setKeepAlive&&E.setKeepAlive(!0,1000*C);let w=E_();w1(w)}catch(w){k8(w)}}function k8(w){if(K1.queue===$.connecting&&W.host[e0+1])return;kW(w);while(m.length)r6(m.shift(),w)}function kW(w){W1&&(W1.destroy(w),W1=null),x&&r6(x,w),O1&&(r6(O1,w),O1=null)}function r6(w,O){"query"in O||"parameters"in O||Object.defineProperties(O,{stack:{value:O.stack+w.origin.replace(/.*\n/,`
57
- `),enumerable:W.debug},query:{value:w.string,enumerable:W.debug},parameters:{value:w.parameters,enumerable:W.debug},args:{value:w.args,enumerable:W.debug},types:{value:w.statement&&w.statement.types,enumerable:W.debug}}),w.reject(O)}function V9(){return V2||(!K1.reserved&&Y(K1),!K1.reserved&&!O1&&!x&&m.length===0?(g$(),new Promise((w)=>E&&E.readyState!=="closed"?E.once("close",w):w())):V2=new Promise((w)=>_W=w))}function g$(){if(V1=!0,W1||x||O1||m.length)k8(t0.connection("CONNECTION_DESTROYED",W));if(clearImmediate(v0),E)E.removeListener("data",D9),E.removeListener("connect",C8),E.readyState==="open"&&E.end(n().X().end());_W&&(_W(),V2=_W=null)}async function $G(w){if(w0=Buffer.alloc(0),N0=0,I0=null,clearImmediate(v0),E.removeListener("data",D9),E.removeListener("connect",C8),h.cancel(),U0.cancel(),m0.cancel(),E.removeAllListeners(),E=null,O1)return WG();!w&&(x||m.length)&&k8(t0.connection("CONNECTION_CLOSED",W,E)),a=iF.now(),w&&W.shared.retries++,k0=(typeof B==="function"?B(W.shared.retries):B)*1000,J(K1,t0.connection("CONNECTION_CLOSED",W,E))}function bM(w,O=w[0]){(O===68?yM:O===100?T_:O===65?J_:O===83?hM:O===90?gM:O===67?mM:O===50?XG:O===49?pM:O===116?uM:O===84?cM:O===82?dM:O===110?tM:O===75?aM:O===69?X_:O===115?G_:O===51?H_:O===71?Q_:O===78?w_:O===72?z_:O===99?U_:O===73?M_:O===86?__:O===118?D_:O===87?F_:V_)(w)}function yM(w){let O=7,t,A0,d0,L1=x.isRaw?new Array(x.statement.columns.length):{};for(let R1=0;R1<x.statement.columns.length;R1++)A0=x.statement.columns[R1],t=w.readInt32BE(O),O+=4,d0=t===-1?null:x.isRaw===!0?w.subarray(O,O+=t):A0.parser===void 0?w.toString("utf8",O,O+=t):A0.parser.array===!0?A0.parser(w.toString("utf8",O+1,O+=t)):A0.parser(w.toString("utf8",O,O+=t)),x.isRaw?L1[R1]=x.isRaw===!0?d0:M.value.from?M.value.from(d0,A0):d0:L1[A0.name]=M.value.from?M.value.from(d0,A0):d0;x.forEachFn?x.forEachFn(M.row.from?M.row.from(L1):L1,e):e[n0++]=M.row.from?M.row.from(L1):L1}function hM(w){let[O,t]=w.toString("utf8",5,w.length-1).split(n.N);if(D1[O]=t,W.parameters[O]!==t)W.parameters[O]=t,N&&N(O,t)}function gM(w){if(x&&x.options.simple&&x.resolve(MW||e),x=MW=null,e=new K8,m0.cancel(),O1){if(q){if(!D1.in_hot_standby||!D1.default_transaction_read_only)return $_();else if(W_(q,D1))return g$()}if(s0)return O1===!0&&(O1=null),sM();O1!==!0&&h$(O1),W.shared.retries=e0=0,O1=null;return}while(m.length&&(x=m.shift())&&(x.active=!0,x.cancelled))tF(W).cancel(x.state,x.cancelled.resolve,x.cancelled.reject);if(x)return;K1.reserved?!K1.reserved.release&&w[5]===73?V2?g$():(K1.reserved=null,X(K1)):K1.reserved():V2?g$():X(K1)}function mM(w){n0=0;for(let O=w.length-1;O>0;O--){if(w[O]===32&&w[O+1]<58&&e.count===null)e.count=+w.toString("utf8",O+1,w.length-1);if(w[O-1]>=65){e.command=w.toString("utf8",5,O),e.state=v;break}}if(y$&&(y$(),y$=null),e.command==="BEGIN"&&H!==1&&!K1.reserved)return kW(t0.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(x.options.simple)return XG();if(x.cursorFn)e.count&&x.cursorFn(e),w1(x2);x.resolve(e)}function pM(){x.parsing=!1}function XG(){!e.statement&&(e.statement=x.statement),e.columns=x.statement.columns}function uM(w){let O=w.readUInt16BE(5);for(let t=0;t<O;++t)!x.statement.types[t]&&(x.statement.types[t]=w.readUInt32BE(7+t*4));x.prepare&&(wW[x.signature]=x.statement),x.describeFirst&&!x.onlyDescribe&&(w1(n6(x)),x.describeFirst=!1)}function cM(w){if(e.command)MW=MW||[e],MW.push(e=new K8),e.count=null,x.statement.columns=null;let O=w.readUInt16BE(5),t=7,A0;x.statement.columns=Array(O);for(let d0=0;d0<O;++d0){A0=t;while(w[t++]!==0);let L1=w.readUInt32BE(t),R1=w.readUInt16BE(t+4),O2=w.readUInt32BE(t+6);x.statement.columns[d0]={name:M.column.from?M.column.from(w.toString("utf8",A0,t-1)):w.toString("utf8",A0,t-1),parser:U[O2],table:L1,number:R1,type:O2},t+=18}if(e.statement=x.statement,x.onlyDescribe)return x.resolve(x.statement),w1(x2)}async function dM(w,O=w.readUInt32BE(5)){(O===3?lM:O===5?oM:O===10?iM:O===11?nM:O===12?rM:O!==0?O_:_$)(w,O)}async function lM(){let w=await O9();w1(n().p().str(w).z(1).end())}async function oM(w){let O="md5"+await rF(Buffer.concat([Buffer.from(await rF(await O9()+Q)),w.subarray(9)]));w1(n().p().str(O).z(1).end())}async function iM(){CW=(await M6.randomBytes(18)).toString("base64"),n().p().str("SCRAM-SHA-256"+n.N);let w=n.i;w1(n.inc(4).str("n,,n=*,r="+CW).i32(n.i-w-4,w).end())}async function nM(w){let O=w.toString("utf8",9).split(",").reduce((R1,O2)=>(R1[O2[0]]=O2.slice(2),R1),{}),t=await M6.pbkdf2Sync(await O9(),Buffer.from(O.s,"base64"),parseInt(O.i),32,"sha256"),A0=await CY(t,"Client Key"),d0="n=*,r="+CW+",r="+O.r+",s="+O.s+",i="+O.i+",c=biws,r="+O.r;p0=(await CY(await CY(t,"Server Key"),d0)).toString("base64");let L1="c=biws,r="+O.r+",p="+AO(A0,Buffer.from(await CY(await LO(A0),d0))).toString("base64");w1(n().p().str(L1).end())}function rM(w){if(w.toString("utf8",9).split(n.N,1)[0].slice(2)===p0)return;kW(t0.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),E.destroy()}function O9(){return Promise.resolve(typeof W.pass==="function"?W.pass():W.pass)}function tM(){if(e.statement=x.statement,e.statement.columns=[],x.onlyDescribe)return x.resolve(x.statement),w1(x2)}function aM(w){v.pid=w.readUInt32BE(5),v.secret=w.readUInt32BE(9)}async function sM(){s0=!1,(await new QW([`
55
+ ${H}`)}let z=AW.join(this.baseDir,`${W}/${$}.output.json`);return JSON.parse(o0.readFileSync(z,"utf-8"))}async write(W,$,X,Y){let J=AW.join(this.baseDir,W),G=AW.join(J,`${$}.input.json`),H=AW.join(J,`${$}.output.json`),Q=JSON.stringify(X,null,"\t");if(!o0.existsSync(this.baseDir))o0.mkdirSync(this.baseDir,{recursive:!0});if(!o0.existsSync(J))o0.mkdirSync(J);if(o0.writeFileSync(G,Q),o0.existsSync(H))o0.unlinkSync(H);let z=await Y(...X),F=JSON.stringify(z,null,"\t");return o0.writeFileSync(H,F),z}add(W,$){let X=`${this.rootName}${J1}${t4(W)}`;return{flush:()=>{this.flush(W)},for:(Y)=>{if(this.mode!=="off"){if(this.filesTouched.set(W,new Set),j0.storage.initialized&&!j0.storage.getItem(`list${J1}${X}`))j0.storage.setItem(`list${J1}${X}`,"true")}return{get:async(...J)=>{let G=Y;if(this.mode!=="off"){let H=this.filenameCache.get(Y);if(!H)H=t4(Y),this.filenameCache.set(Y,H);G=H,this.filesTouched.get(W)?.add(G);let Q=`${X}${J1}${G}`,z=`file${J1}${Q}`;if(j0.storage.initialized&&!j0.storage.getItem(z))j0.storage.setItem(z,"true")}switch(this.mode){case"off":return $(...J);case"read":return this.read(W,G,J);case"write":return this.write(W,G,J,$);case"read-write":try{return this.read(W,G,J)}catch(H){if(H instanceof Error)return this.write(W,G,J,$);throw H}}}}}}}flush(...W){console.log(this.filesTouched);for(let[$,X]of this.filesTouched.entries())if(W.length===0||W.includes($)){let Y=AW.join(this.baseDir,$),J=o0.readdirSync(Y);for(let G of J){let H=G.replace(".input.json","").replace(".output.json","");if(!X.has(H))console.info(`\uD83E\uDDF9 Flushing ${H}`),o0.unlinkSync(AW.join(Y,G))}}}};function mO(W,...$){let[X,Y,J,G]=$,H=[{role:"user",content:R3(Y)},{role:"user",content:X}],Q=G.at(-1);if(Q)H.push({role:"user",content:["Oops! That didn't work. Here's what was returned last time:",JSON.stringify(Q.response,null,2),"Here's the error message:",JSON.stringify(Q.error.issues,null,2)].join(`
56
+ `)});return{model:W,messages:H}}var IJ={"gpt-4o":{promptPricePerToken:0.0000025,promptPricePerTokenCached:0.00000125,completionPricePerToken:0.00001},"gpt-4o-2024-08-06":{promptPricePerToken:0.0000025,promptPricePerTokenCached:0.00000125,completionPricePerToken:0.00001},"gpt-4o-2024-05-13":{promptPricePerToken:0.000005,promptPricePerTokenCached:0.000005,completionPricePerToken:0.000014999999999999999},"gpt-4o-mini":{promptPricePerToken:0.00000015,promptPricePerTokenCached:0.000000075,completionPricePerToken:0.0000006},"gpt-4o-mini-2024-07-18":{promptPricePerToken:0.00000015,promptPricePerTokenCached:0.000000075,completionPricePerToken:0.0000006},"o1-preview":{promptPricePerToken:0.000014999999999999999,promptPricePerTokenCached:0.000007499999999999999,completionPricePerToken:0.000059999999999999995},"o1-preview-2024-09-12":{promptPricePerToken:0.000014999999999999999,promptPricePerTokenCached:0.000007499999999999999,completionPricePerToken:0.000059999999999999995}};function pO(W){return async function $(X,Y){if(!W)throw new Error("This is a bug in safegen. OpenAI client not available to the json generator.");let J=await W.chat.completions.create({...X,stream:!1,response_format:{type:"json_object"}},Y),G=J.choices[0].message?.content,{usage:H}=J;if(G&&H){let Q=H.prompt_tokens,z=H.prompt_tokens_details?.cached_tokens??0,F=Q-z,T=H.completion_tokens,U=Q*IJ[X.model].promptPricePerToken+F*IJ[X.model].promptPricePerTokenCached+T*IJ[X.model].completionPricePerToken;return{data:JSON.parse(G),usage:H,usdPrice:U}}if(!G&&!H)throw new Error("No content or usage found in completion");if(!G)throw new Error("No content found in completion");throw new Error("No usage found in completion")}}var hH=new Map,gH=class{usdBudget;usdMinimum;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;client;lastUsage;constructor({model:W,usdBudget:$,usdMinimum:X,apiKey:Y,cachingMode:J,cacheKey:G="openai-safegen",logger:H}){this.usdBudget=$,this.usdMinimum=X,this.squirrel=new yH(J);let Q=hH.get(Y);if(J!=="read"){if(!Q)Q=new NH({apiKey:Y,dangerouslyAllowBrowser:!1}),hH.set(Y,Q);this.client=Q}this.getUnknownJsonFromOpenAi=pO(this.client),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add(G,this.getUnknownJsonFromOpenAi),this.from=N3(async(...z)=>{if(this.usdBudget<this.usdMinimum)return H?.warn("SafeGen budget exhausted"),z[1];let F=mO(W,...z),T=z[0],U=z[3],{data:M,usage:O,usdPrice:K}=await this.getUnknownJsonFromOpenAiSquirreled.for(`${T.replace(/[^a-zA-Z0-9-_. ]/g,"_")}-${U.length}`).get(F);return this.lastUsage=O,this.usdBudget-=K,M},H)}from};import{exec as rE}from"child_process";class eX{supported;constructor(W){this.supported=W}refine(W){for(let[$,X]of Object.entries(this.supported))try{if(X(W)===!0&&X!==Boolean)return{type:$,data:W}}catch(Y){try{if(W instanceof X)return{type:$,data:W}}catch(J){}}return null}}var uO=new eX({number:(W)=>typeof W==="number",string:(W)=>typeof W==="string",boolean:(W)=>typeof W==="boolean",null:(W)=>W===null});function cO(W){if(!W)return!1;return Object.getPrototypeOf(W)===Object.prototype}var dO=new eX({object:cO,array:(W)=>Array.isArray(W)}),lO=new eX({...uO.supported,...dO.supported}),mH=(W)=>{if(W===void 0)return"undefined";let $=lO.refine(W);if($)return $.type;return Object.getPrototypeOf(W).constructor.name};var _=Symbol.for("drizzle:entityKind"),ZP=Symbol.for("drizzle:hasOwnEntityKind");function A(W,$){if(!W||typeof W!=="object")return!1;if(W instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,_))throw new Error(`Class "${$.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(W).constructor;if(X)while(X){if(_ in X&&X[_]===$[_])return!0;X=Object.getPrototypeOf(X)}return!1}class S0{constructor(W,$){this.table=W,this.config=$,this.name=$.name,this.keyAsName=$.keyAsName,this.notNull=$.notNull,this.default=$.default,this.defaultFn=$.defaultFn,this.onUpdateFn=$.onUpdateFn,this.hasDefault=$.hasDefault,this.primary=$.primaryKey,this.isUnique=$.isUnique,this.uniqueName=$.uniqueName,this.uniqueType=$.uniqueType,this.dataType=$.dataType,this.columnType=$.columnType,this.generated=$.generated,this.generatedIdentity=$.generatedIdentity}static[_]="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(W){return W}mapToDriverValue(W){return W}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class jJ{static[_]="ColumnBuilder";config;constructor(W,$,X){this.config={name:W,keyAsName:W==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:$,columnType:X,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(W){return this.config.default=W,this.config.hasDefault=!0,this}$defaultFn(W){return this.config.defaultFn=W,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(W){return this.config.onUpdateFn=W,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(W){if(this.config.name!=="")return;this.config.name=W}}var EW=Symbol.for("drizzle:Name");class fJ{static[_]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(W,$){if(this.reference=()=>{let{name:X,columns:Y,foreignColumns:J}=W();return{name:X,columns:Y,foreignTable:J[0].table,foreignColumns:J}},$)this._onUpdate=$.onUpdate,this._onDelete=$.onDelete}onUpdate(W){return this._onUpdate=W===void 0?"no action":W,this}onDelete(W){return this._onDelete=W===void 0?"no action":W,this}build(W){return new pH(W,this)}}class pH{constructor(W,$){this.table=W,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[_]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:W,columns:$,foreignColumns:X}=this.reference(),Y=$.map((H)=>H.name),J=X.map((H)=>H.name),G=[this.table[EW],...Y,X[0].table[EW],...J];return W??`${G.join("_")}_fk`}}function WY(W,...$){return W(...$)}function uH(W,$){return`${W[EW]}_${$.join("_")}_unique`}function cH(W,$,X){for(let Y=$;Y<W.length;Y++){let J=W[Y];if(J==="\\"){Y++;continue}if(J==='"')return[W.slice($,Y).replace(/\\/g,""),Y+1];if(X)continue;if(J===","||J==="}")return[W.slice($,Y).replace(/\\/g,""),Y]}return[W.slice($).replace(/\\/g,""),W.length]}function dH(W,$=0){let X=[],Y=$,J=!1;while(Y<W.length){let G=W[Y];if(G===","){if(J||Y===$)X.push("");J=!0,Y++;continue}if(J=!1,G==="\\"){Y+=2;continue}if(G==='"'){let[z,F]=cH(W,Y+1,!0);X.push(z),Y=F;continue}if(G==="}")return[X,Y+1];if(G==="{"){let[z,F]=dH(W,Y+1);X.push(z),Y=F;continue}let[H,Q]=cH(W,Y,!1);X.push(H),Y=Q}return[X,Y]}function lH(W){let[$]=dH(W,1);return $}function PJ(W){return`{${W.map(($)=>{if(Array.isArray($))return PJ($);if(typeof $==="string")return`"${$.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`;return`${$}`}).join(",")}}`}class u extends jJ{foreignKeyConfigs=[];static[_]="PgColumnBuilder";array(W){return new iH(this.config.name,this,W)}references(W,$={}){return this.foreignKeyConfigs.push({ref:W,actions:$}),this}unique(W,$){return this.config.isUnique=!0,this.config.uniqueName=W,this.config.uniqueType=$?.nulls,this}generatedAlwaysAs(W){return this.config.generated={as:W,type:"always",mode:"stored"},this}buildForeignKeys(W,$){return this.foreignKeyConfigs.map(({ref:X,actions:Y})=>{return WY((J,G)=>{let H=new fJ(()=>{let Q=J();return{columns:[W],foreignColumns:[Q]}});if(G.onUpdate)H.onUpdate(G.onUpdate);if(G.onDelete)H.onDelete(G.onDelete);return H.build($)},X,Y)})}buildExtraConfigColumn(W){return new oH(W,this.config)}}class j extends S0{constructor(W,$){if(!$.uniqueName)$.uniqueName=uH(W,[$.name]);super(W,$);this.table=W}static[_]="PgColumn"}class oH extends j{static[_]="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(W){return this.indexConfig.opClass=W,this}}class a4{static[_]="IndexedColumn";constructor(W,$,X,Y){this.name=W,this.keyAsName=$,this.type=X,this.indexConfig=Y}name;keyAsName;type;indexConfig}class iH extends u{static[_]="PgArrayBuilder";constructor(W,$,X){super(W,"array","PgArray");this.config.baseBuilder=$,this.config.size=X}build(W){let $=this.config.baseBuilder.build(W);return new xJ(W,this.config,$)}}class xJ extends j{constructor(W,$,X,Y){super(W,$);this.baseColumn=X,this.range=Y,this.size=$.size}size;static[_]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(W){if(typeof W==="string")W=lH(W);return W.map(($)=>this.baseColumn.mapFromDriverValue($))}mapToDriverValue(W,$=!1){let X=W.map((Y)=>Y===null?null:A(this.baseColumn,xJ)?this.baseColumn.mapToDriverValue(Y,!0):this.baseColumn.mapToDriverValue(Y));if($)return X;return PJ(X)}}class nH extends u{static[_]="PgEnumObjectColumnBuilder";constructor(W,$){super(W,"string","PgEnumObjectColumn");this.config.enum=$}build(W){return new rH(W,this.config)}}class rH extends j{static[_]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(W,$){super(W,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}var $Y=Symbol.for("drizzle:isPgEnum");function tH(W){return!!W&&typeof W==="function"&&$Y in W&&W[$Y]===!0}class aH extends u{static[_]="PgEnumColumnBuilder";constructor(W,$){super(W,"string","PgEnumColumn");this.config.enum=$}build(W){return new sH(W,this.config)}}class sH extends j{static[_]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(W,$){super(W,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}function s4(W,$){return Array.isArray($)?oO(W,[...$],void 0):iO(W,$,void 0)}function oO(W,$,X){let Y=Object.assign((J)=>new aH(J??"",Y),{enumName:W,enumValues:$,schema:X,[$Y]:!0});return Y}function iO(W,$,X){let Y=Object.assign((J)=>new nH(J??"",Y),{enumName:W,enumValues:Object.values($),schema:X,[$Y]:!0});return Y}class G1{static[_]="Subquery";constructor(W,$,X,Y=!1){this._={brand:"Subquery",sql:W,selectedFields:$,alias:X,isWith:Y}}}class e4 extends G1{static[_]="WithSubquery"}var eH="0.43.1";var vJ,bJ,q0={startActiveSpan(W,$){if(!vJ)return $();if(!bJ)bJ=vJ.trace.getTracer("drizzle-orm",eH);return WY((X,Y)=>Y.startActiveSpan(W,(J)=>{try{return $(J)}catch(G){throw J.setStatus({code:X.SpanStatusCode.ERROR,message:G instanceof Error?G.message:"Unknown error"}),G}finally{J.end()}}),vJ,bJ)}};var f0=Symbol.for("drizzle:ViewBaseConfig");var XY=Symbol.for("drizzle:Schema"),YY=Symbol.for("drizzle:Columns"),WQ=Symbol.for("drizzle:ExtraConfigColumns"),yJ=Symbol.for("drizzle:OriginalName"),hJ=Symbol.for("drizzle:BaseName"),W6=Symbol.for("drizzle:IsAlias"),$Q=Symbol.for("drizzle:ExtraConfigBuilder"),nO=Symbol.for("drizzle:IsDrizzleTable");class y{static[_]="Table";static Symbol={Name:EW,Schema:XY,OriginalName:yJ,Columns:YY,ExtraConfigColumns:WQ,BaseName:hJ,IsAlias:W6,ExtraConfigBuilder:$Q};[EW];[yJ];[XY];[YY];[WQ];[hJ];[W6]=!1;[nO]=!0;[$Q]=void 0;constructor(W,$,X){this[EW]=this[yJ]=W,this[XY]=$,this[hJ]=X}}function U1(W){return W[EW]}function _8(W){return`${W[XY]??"public"}.${W[EW]}`}function gJ(W){return W!==null&&W!==void 0&&typeof W.getSQL==="function"}function rO(W){let $={sql:"",params:[]};for(let X of W)if($.sql+=X.sql,$.params.push(...X.params),X.typings?.length){if(!$.typings)$.typings=[];$.typings.push(...X.typings)}return $}class H1{static[_]="StringChunk";value;constructor(W){this.value=Array.isArray(W)?W:[W]}getSQL(){return new g([this])}}class g{constructor(W){this.queryChunks=W}static[_]="SQL";decoder=YQ;shouldInlineParams=!1;append(W){return this.queryChunks.push(...W.queryChunks),this}toQuery(W){return q0.startActiveSpan("drizzle.buildSQL",($)=>{let X=this.buildQueryFromSourceParams(this.queryChunks,W);return $?.setAttributes({"drizzle.query.text":X.sql,"drizzle.query.params":JSON.stringify(X.params)}),X})}buildQueryFromSourceParams(W,$){let X=Object.assign({},$,{inlineParams:$.inlineParams||this.shouldInlineParams,paramStartIndex:$.paramStartIndex||{value:0}}),{casing:Y,escapeName:J,escapeParam:G,prepareTyping:H,inlineParams:Q,paramStartIndex:z}=X;return rO(W.map((F)=>{if(A(F,H1))return{sql:F.value.join(""),params:[]};if(A(F,JY))return{sql:J(F.value),params:[]};if(F===void 0)return{sql:"",params:[]};if(Array.isArray(F)){let T=[new H1("(")];for(let[U,M]of F.entries())if(T.push(M),U<F.length-1)T.push(new H1(", "));return T.push(new H1(")")),this.buildQueryFromSourceParams(T,X)}if(A(F,g))return this.buildQueryFromSourceParams(F.queryChunks,{...X,inlineParams:Q||F.shouldInlineParams});if(A(F,y)){let T=F[y.Symbol.Schema],U=F[y.Symbol.Name];return{sql:T===void 0||F[W6]?J(U):J(T)+"."+J(U),params:[]}}if(A(F,S0)){let T=Y.getColumnCasing(F);if($.invokeSource==="indexes")return{sql:J(T),params:[]};let U=F.table[y.Symbol.Schema];return{sql:F.table[W6]||U===void 0?J(F.table[y.Symbol.Name])+"."+J(T):J(U)+"."+J(F.table[y.Symbol.Name])+"."+J(T),params:[]}}if(A(F,y1)){let T=F[f0].schema,U=F[f0].name;return{sql:T===void 0||F[f0].isAlias?J(U):J(T)+"."+J(U),params:[]}}if(A(F,a1)){if(A(F.value,I2))return{sql:G(z.value++,F),params:[F],typings:["none"]};let T=F.value===null?null:F.encoder.mapToDriverValue(F.value);if(A(T,g))return this.buildQueryFromSourceParams([T],X);if(Q)return{sql:this.mapInlineParam(T,X),params:[]};let U=["none"];if(H)U=[H(F.encoder)];return{sql:G(z.value++,T),params:[T],typings:U}}if(A(F,I2))return{sql:G(z.value++,F),params:[F],typings:["none"]};if(A(F,g.Aliased)&&F.fieldAlias!==void 0)return{sql:J(F.fieldAlias),params:[]};if(A(F,G1)){if(F._.isWith)return{sql:J(F._.alias),params:[]};return this.buildQueryFromSourceParams([new H1("("),F._.sql,new H1(") "),new JY(F._.alias)],X)}if(tH(F)){if(F.schema)return{sql:J(F.schema)+"."+J(F.enumName),params:[]};return{sql:J(F.enumName),params:[]}}if(gJ(F)){if(F.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([F.getSQL()],X);return this.buildQueryFromSourceParams([new H1("("),F.getSQL(),new H1(")")],X)}if(Q)return{sql:this.mapInlineParam(F,X),params:[]};return{sql:G(z.value++,F),params:[F],typings:["none"]}}))}mapInlineParam(W,{escapeString:$}){if(W===null)return"null";if(typeof W==="number"||typeof W==="boolean")return W.toString();if(typeof W==="string")return $(W);if(typeof W==="object"){let X=W.toString();if(X==="[object Object]")return $(JSON.stringify(W));return $(X)}throw new Error("Unexpected param value: "+W)}getSQL(){return this}as(W){if(W===void 0)return this;return new g.Aliased(this,W)}mapWith(W){return this.decoder=typeof W==="function"?{mapFromDriverValue:W}:W,this}inlineParams(){return this.shouldInlineParams=!0,this}if(W){return W?this:void 0}}class JY{constructor(W){this.value=W}static[_]="Name";brand;getSQL(){return new g([this])}}function XQ(W){return typeof W==="object"&&W!==null&&"mapToDriverValue"in W&&typeof W.mapToDriverValue==="function"}var YQ={mapFromDriverValue:(W)=>W},JQ={mapToDriverValue:(W)=>W},Mx={...YQ,...JQ};class a1{constructor(W,$=JQ){this.value=W,this.encoder=$}static[_]="Param";brand;getSQL(){return new g([this])}}function D(W,...$){let X=[];if($.length>0||W.length>0&&W[0]!=="")X.push(new H1(W[0]));for(let[Y,J]of $.entries())X.push(J,new H1(W[Y+1]));return new g(X)}((W)=>{function $(){return new g([])}W.empty=$;function X(z){return new g(z)}W.fromList=X;function Y(z){return new g([new H1(z)])}W.raw=Y;function J(z,F){let T=[];for(let[U,M]of z.entries()){if(U>0&&F!==void 0)T.push(F);T.push(M)}return new g(T)}W.join=J;function G(z){return new JY(z)}W.identifier=G;function H(z){return new I2(z)}W.placeholder=H;function Q(z,F){return new a1(z,F)}W.param=Q})(D||(D={}));((W)=>{class ${constructor(X,Y){this.sql=X,this.fieldAlias=Y}static[_]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}W.Aliased=$})(g||(g={}));class I2{constructor(W){this.name=W}static[_]="Placeholder";getSQL(){return new g([this])}}function mJ(W,$){return W.map((X)=>{if(A(X,I2)){if(!(X.name in $))throw new Error(`No value for placeholder "${X.name}" was provided`);return $[X.name]}if(A(X,a1)&&A(X.value,I2)){if(!(X.value.name in $))throw new Error(`No value for placeholder "${X.value.name}" was provided`);return X.encoder.mapToDriverValue($[X.value.name])}return X})}var tO=Symbol.for("drizzle:IsDrizzleView");class y1{static[_]="View";[f0];[tO]=!0;constructor({name:W,schema:$,selectedFields:X,query:Y}){this[f0]={name:W,originalName:W,schema:$,selectedFields:X,query:Y,isExisting:!Y,isAlias:!1}}getSQL(){return new g([this])}}S0.prototype.getSQL=function(){return new g([this])};y.prototype.getSQL=function(){return new g([this])};G1.prototype.getSQL=function(){return new g([this])};class U${constructor(W){this.table=W}static[_]="ColumnAliasProxyHandler";get(W,$){if($==="table")return this.table;return W[$]}}class $6{constructor(W,$){this.alias=W,this.replaceOriginalName=$}static[_]="TableAliasProxyHandler";get(W,$){if($===y.Symbol.IsAlias)return!0;if($===y.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===y.Symbol.OriginalName)return this.alias;if($===f0)return{...W[f0],name:this.alias,isAlias:!0};if($===y.Symbol.Columns){let Y=W[y.Symbol.Columns];if(!Y)return Y;let J={};return Object.keys(Y).map((G)=>{J[G]=new Proxy(Y[G],new U$(new Proxy(W,this)))}),J}let X=W[$];if(A(X,S0))return new Proxy(X,new U$(new Proxy(W,this)));return X}}function GY(W,$){return new Proxy(W,new $6($,!1))}function gW(W,$){return new Proxy(W,new U$(new Proxy(W.table,new $6($,!1))))}function pJ(W,$){return new g.Aliased(X6(W.sql,$),W.fieldAlias)}function X6(W,$){return D.join(W.queryChunks.map((X)=>{if(A(X,S0))return gW(X,$);if(A(X,g))return X6(X,$);if(A(X,g.Aliased))return pJ(X,$);return X}))}class HY extends Error{static[_]="DrizzleError";constructor({message:W,cause:$}){super(W);this.name="DrizzleError",this.cause=$}}class uJ extends HY{static[_]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}class GQ{static[_]="ConsoleLogWriter";write(W){console.log(W)}}class cJ{static[_]="DefaultLogger";writer;constructor(W){this.writer=W?.writer??new GQ}logQuery(W,$){let X=$.map((J)=>{try{return JSON.stringify(J)}catch{return String(J)}}),Y=X.length?` -- params: [${X.join(", ")}]`:"";this.writer.write(`Query: ${W}${Y}`)}}class dJ{static[_]="NoopLogger";logQuery(){}}class C1{static[_]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(W){return this.then(void 0,W)}finally(W){return this.then(($)=>{return W?.(),$},($)=>{throw W?.(),$})}then(W,$){return this.execute().then(W,$)}}function HQ(W,$,X){let Y={},J=W.reduce((G,{path:H,field:Q},z)=>{let F;if(A(Q,S0))F=Q;else if(A(Q,g))F=Q.decoder;else F=Q.sql.decoder;let T=G;for(let[U,M]of H.entries())if(U<H.length-1){if(!(M in T))T[M]={};T=T[M]}else{let O=$[z],K=T[M]=O===null?null:F.mapFromDriverValue(O);if(X&&A(Q,S0)&&H.length===2){let N=H[0];if(!(N in Y))Y[N]=K===null?U1(Q.table):!1;else if(typeof Y[N]==="string"&&Y[N]!==U1(Q.table))Y[N]=!1}}return G},{});if(X&&Object.keys(Y).length>0){for(let[G,H]of Object.entries(Y))if(typeof H==="string"&&!X[H])J[G]=null}return J}function GW(W,$){return Object.entries(W).reduce((X,[Y,J])=>{if(typeof Y!=="string")return X;let G=$?[...$,Y]:[Y];if(A(J,S0)||A(J,g)||A(J,g.Aliased))X.push({path:G,field:J});else if(A(J,y))X.push(...GW(J[y.Symbol.Columns],G));else X.push(...GW(J,G));return X},[])}function Y6(W,$){let X=Object.keys(W),Y=Object.keys($);if(X.length!==Y.length)return!1;for(let[J,G]of X.entries())if(G!==Y[J])return!1;return!0}function QY(W,$){let X=Object.entries($).filter(([,Y])=>Y!==void 0).map(([Y,J])=>{if(A(J,g)||A(J,S0))return[Y,J];else return[Y,new a1(J,W[y.Symbol.Columns][Y])]});if(X.length===0)throw new Error("No values to set");return Object.fromEntries(X)}function QQ(W,$){for(let X of $)for(let Y of Object.getOwnPropertyNames(X.prototype)){if(Y==="constructor")continue;Object.defineProperty(W.prototype,Y,Object.getOwnPropertyDescriptor(X.prototype,Y)||Object.create(null))}}function zQ(W){return W[y.Symbol.Columns]}function Y2(W){return A(W,G1)?W._.alias:A(W,y1)?W[f0].name:A(W,g)?void 0:W[y.Symbol.IsAlias]?W[y.Symbol.Name]:W[y.Symbol.BaseName]}function D0(W,$){return{name:typeof W==="string"&&W.length>0?W:"",config:typeof W==="object"?W:$}}function FQ(W){if(typeof W!=="object"||W===null)return!1;if(W.constructor.name!=="Object")return!1;if("logger"in W){let $=typeof W.logger;if($!=="boolean"&&($!=="object"||typeof W.logger.logQuery!=="function")&&$!=="undefined")return!1;return!0}if("schema"in W){let $=typeof W.schema;if($!=="object"&&$!=="undefined")return!1;return!0}if("casing"in W){let $=typeof W.casing;if($!=="string"&&$!=="undefined")return!1;return!0}if("mode"in W){if(W.mode!=="default"||W.mode!=="planetscale"||W.mode!==void 0)return!1;return!0}if("connection"in W){let $=typeof W.connection;if($!=="string"&&$!=="object"&&$!=="undefined")return!1;return!0}if("client"in W){let $=typeof W.client;if($!=="object"&&$!=="function"&&$!=="undefined")return!1;return!0}if(Object.keys(W).length===0)return!0;return!1}class j2 extends u{static[_]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(W){if(W){let{name:$,...X}=W;this.config.generatedIdentity={type:"always",sequenceName:$,sequenceOptions:X}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(W){if(W){let{name:$,...X}=W;this.config.generatedIdentity={type:"byDefault",sequenceName:$,sequenceOptions:X}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class TQ extends j2{static[_]="PgBigInt53Builder";constructor(W){super(W,"number","PgBigInt53")}build(W){return new UQ(W,this.config)}}class UQ extends j{static[_]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(W){if(typeof W==="number")return W;return Number(W)}}class wQ extends j2{static[_]="PgBigInt64Builder";constructor(W){super(W,"bigint","PgBigInt64")}build(W){return new MQ(W,this.config)}}class MQ extends j{static[_]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(W){return BigInt(W)}}function _Q(W,$){let{name:X,config:Y}=D0(W,$);if(Y.mode==="number")return new TQ(X);return new wQ(X)}class DQ extends u{static[_]="PgBigSerial53Builder";constructor(W){super(W,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(W){return new OQ(W,this.config)}}class OQ extends j{static[_]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(W){if(typeof W==="number")return W;return Number(W)}}class VQ extends u{static[_]="PgBigSerial64Builder";constructor(W){super(W,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(W){return new KQ(W,this.config)}}class KQ extends j{static[_]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(W){return BigInt(W)}}function LQ(W,$){let{name:X,config:Y}=D0(W,$);if(Y.mode==="number")return new DQ(X);return new VQ(X)}class AQ extends u{static[_]="PgBooleanBuilder";constructor(W){super(W,"boolean","PgBoolean")}build(W){return new EQ(W,this.config)}}class EQ extends j{static[_]="PgBoolean";getSQLType(){return"boolean"}}function J6(W){return new AQ(W??"")}class NQ extends u{static[_]="PgCharBuilder";constructor(W,$){super(W,"string","PgChar");this.config.length=$.length,this.config.enumValues=$.enum}build(W){return new RQ(W,this.config)}}class RQ extends j{static[_]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function BQ(W,$={}){let{name:X,config:Y}=D0(W,$);return new NQ(X,Y)}class ZQ extends u{static[_]="PgCidrBuilder";constructor(W){super(W,"string","PgCidr")}build(W){return new SQ(W,this.config)}}class SQ extends j{static[_]="PgCidr";getSQLType(){return"cidr"}}function qQ(W){return new ZQ(W??"")}class CQ extends u{static[_]="PgCustomColumnBuilder";constructor(W,$,X){super(W,"custom","PgCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=X}build(W){return new kQ(W,this.config)}}class kQ extends j{static[_]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(W,$){super(W,$);this.sqlName=$.customTypeParams.dataType($.fieldConfig),this.mapTo=$.customTypeParams.toDriver,this.mapFrom=$.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(W){return typeof this.mapFrom==="function"?this.mapFrom(W):W}mapToDriverValue(W){return typeof this.mapTo==="function"?this.mapTo(W):W}}function IQ(W){return($,X)=>{let{name:Y,config:J}=D0($,X);return new CQ(Y,J,W)}}class J2 extends u{static[_]="PgDateColumnBaseBuilder";defaultNow(){return this.default(D`now()`)}}class jQ extends J2{static[_]="PgDateBuilder";constructor(W){super(W,"date","PgDate")}build(W){return new zY(W,this.config)}}class zY extends j{static[_]="PgDate";getSQLType(){return"date"}mapFromDriverValue(W){return new Date(W)}mapToDriverValue(W){return W.toISOString()}}class fQ extends J2{static[_]="PgDateStringBuilder";constructor(W){super(W,"string","PgDateString")}build(W){return new FY(W,this.config)}}class FY extends j{static[_]="PgDateString";getSQLType(){return"date"}}function PQ(W,$){let{name:X,config:Y}=D0(W,$);if(Y?.mode==="date")return new jQ(X);return new fQ(X)}class xQ extends u{static[_]="PgDoublePrecisionBuilder";constructor(W){super(W,"number","PgDoublePrecision")}build(W){return new vQ(W,this.config)}}class vQ extends j{static[_]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(W){if(typeof W==="string")return Number.parseFloat(W);return W}}function bQ(W){return new xQ(W??"")}class yQ extends u{static[_]="PgInetBuilder";constructor(W){super(W,"string","PgInet")}build(W){return new hQ(W,this.config)}}class hQ extends j{static[_]="PgInet";getSQLType(){return"inet"}}function gQ(W){return new yQ(W??"")}class mQ extends j2{static[_]="PgIntegerBuilder";constructor(W){super(W,"number","PgInteger")}build(W){return new pQ(W,this.config)}}class pQ extends j{static[_]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(W){if(typeof W==="string")return Number.parseInt(W);return W}}function G6(W){return new mQ(W??"")}class uQ extends u{static[_]="PgIntervalBuilder";constructor(W,$){super(W,"string","PgInterval");this.config.intervalConfig=$}build(W){return new cQ(W,this.config)}}class cQ extends j{static[_]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let W=this.fields?` ${this.fields}`:"",$=this.precision?`(${this.precision})`:"";return`interval${W}${$}`}}function dQ(W,$={}){let{name:X,config:Y}=D0(W,$);return new uQ(X,Y)}class lQ extends u{static[_]="PgJsonBuilder";constructor(W){super(W,"json","PgJson")}build(W){return new TY(W,this.config)}}class TY extends j{static[_]="PgJson";constructor(W,$){super(W,$)}getSQLType(){return"json"}mapToDriverValue(W){return JSON.stringify(W)}mapFromDriverValue(W){if(typeof W==="string")try{return JSON.parse(W)}catch{return W}return W}}function oQ(W){return new lQ(W??"")}class iQ extends u{static[_]="PgJsonbBuilder";constructor(W){super(W,"json","PgJsonb")}build(W){return new UY(W,this.config)}}class UY extends j{static[_]="PgJsonb";constructor(W,$){super(W,$)}getSQLType(){return"jsonb"}mapToDriverValue(W){return JSON.stringify(W)}mapFromDriverValue(W){if(typeof W==="string")try{return JSON.parse(W)}catch{return W}return W}}function nQ(W){return new iQ(W??"")}class rQ extends u{static[_]="PgLineBuilder";constructor(W){super(W,"array","PgLine")}build(W){return new tQ(W,this.config)}}class tQ extends j{static[_]="PgLine";getSQLType(){return"line"}mapFromDriverValue(W){let[$,X,Y]=W.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(X),Number.parseFloat(Y)]}mapToDriverValue(W){return`{${W[0]},${W[1]},${W[2]}}`}}class aQ extends u{static[_]="PgLineABCBuilder";constructor(W){super(W,"json","PgLineABC")}build(W){return new sQ(W,this.config)}}class sQ extends j{static[_]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(W){let[$,X,Y]=W.slice(1,-1).split(",");return{a:Number.parseFloat($),b:Number.parseFloat(X),c:Number.parseFloat(Y)}}mapToDriverValue(W){return`{${W.a},${W.b},${W.c}}`}}function eQ(W,$){let{name:X,config:Y}=D0(W,$);if(!Y?.mode||Y.mode==="tuple")return new rQ(X);return new aQ(X)}class Wz extends u{static[_]="PgMacaddrBuilder";constructor(W){super(W,"string","PgMacaddr")}build(W){return new $z(W,this.config)}}class $z extends j{static[_]="PgMacaddr";getSQLType(){return"macaddr"}}function Xz(W){return new Wz(W??"")}class Yz extends u{static[_]="PgMacaddr8Builder";constructor(W){super(W,"string","PgMacaddr8")}build(W){return new Jz(W,this.config)}}class Jz extends j{static[_]="PgMacaddr8";getSQLType(){return"macaddr8"}}function Gz(W){return new Yz(W??"")}class Hz extends u{static[_]="PgNumericBuilder";constructor(W,$,X){super(W,"string","PgNumeric");this.config.precision=$,this.config.scale=X}build(W){return new wY(W,this.config)}}class wY extends j{static[_]="PgNumeric";precision;scale;constructor(W,$){super(W,$);this.precision=$.precision,this.scale=$.scale}mapFromDriverValue(W){if(typeof W==="string")return W;return String(W)}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 Qz extends u{static[_]="PgNumericNumberBuilder";constructor(W,$,X){super(W,"number","PgNumericNumber");this.config.precision=$,this.config.scale=X}build(W){return new zz(W,this.config)}}class zz extends j{static[_]="PgNumericNumber";precision;scale;constructor(W,$){super(W,$);this.precision=$.precision,this.scale=$.scale}mapFromDriverValue(W){if(typeof W==="number")return W;return Number(W)}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 Fz extends u{static[_]="PgNumericBigIntBuilder";constructor(W,$,X){super(W,"bigint","PgNumericBigInt");this.config.precision=$,this.config.scale=X}build(W){return new Tz(W,this.config)}}class Tz extends j{static[_]="PgNumericBigInt";precision;scale;constructor(W,$){super(W,$);this.precision=$.precision,this.scale=$.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 Uz(W,$){let{name:X,config:Y}=D0(W,$),J=Y?.mode;return J==="number"?new Qz(X,Y?.precision,Y?.scale):J==="bigint"?new Fz(X,Y?.precision,Y?.scale):new Hz(X,Y?.precision,Y?.scale)}class wz extends u{static[_]="PgPointTupleBuilder";constructor(W){super(W,"array","PgPointTuple")}build(W){return new Mz(W,this.config)}}class Mz extends j{static[_]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(W){if(typeof W==="string"){let[$,X]=W.slice(1,-1).split(",");return[Number.parseFloat($),Number.parseFloat(X)]}return[W.x,W.y]}mapToDriverValue(W){return`(${W[0]},${W[1]})`}}class _z extends u{static[_]="PgPointObjectBuilder";constructor(W){super(W,"json","PgPointObject")}build(W){return new Dz(W,this.config)}}class Dz extends j{static[_]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(W){if(typeof W==="string"){let[$,X]=W.slice(1,-1).split(",");return{x:Number.parseFloat($),y:Number.parseFloat(X)}}return W}mapToDriverValue(W){return`(${W.x},${W.y})`}}function Oz(W,$){let{name:X,config:Y}=D0(W,$);if(!Y?.mode||Y.mode==="tuple")return new wz(X);return new _z(X)}function aO(W){let $=[];for(let X=0;X<W.length;X+=2)$.push(Number.parseInt(W.slice(X,X+2),16));return new Uint8Array($)}function Vz(W,$){let X=new ArrayBuffer(8),Y=new DataView(X);for(let J=0;J<8;J++)Y.setUint8(J,W[$+J]);return Y.getFloat64(0,!0)}function lJ(W){let $=aO(W),X=0,Y=$[X];X+=1;let J=new DataView($.buffer),G=J.getUint32(X,Y===1);X+=4;let H;if(G&536870912)H=J.getUint32(X,Y===1),X+=4;if((G&65535)===1){let Q=Vz($,X);X+=8;let z=Vz($,X);return X+=8,[Q,z]}throw new Error("Unsupported geometry type")}class Kz extends u{static[_]="PgGeometryBuilder";constructor(W){super(W,"array","PgGeometry")}build(W){return new Lz(W,this.config)}}class Lz extends j{static[_]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(W){return lJ(W)}mapToDriverValue(W){return`point(${W[0]} ${W[1]})`}}class Az extends u{static[_]="PgGeometryObjectBuilder";constructor(W){super(W,"json","PgGeometryObject")}build(W){return new Ez(W,this.config)}}class Ez extends j{static[_]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(W){let $=lJ(W);return{x:$[0],y:$[1]}}mapToDriverValue(W){return`point(${W.x} ${W.y})`}}function Nz(W,$){let{name:X,config:Y}=D0(W,$);if(!Y?.mode||Y.mode==="tuple")return new Kz(X);return new Az(X)}class Rz extends u{static[_]="PgRealBuilder";constructor(W,$){super(W,"number","PgReal");this.config.length=$}build(W){return new Bz(W,this.config)}}class Bz extends j{static[_]="PgReal";constructor(W,$){super(W,$)}getSQLType(){return"real"}mapFromDriverValue=(W)=>{if(typeof W==="string")return Number.parseFloat(W);return W}}function Zz(W){return new Rz(W??"")}class Sz extends u{static[_]="PgSerialBuilder";constructor(W){super(W,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(W){return new qz(W,this.config)}}class qz extends j{static[_]="PgSerial";getSQLType(){return"serial"}}function Cz(W){return new Sz(W??"")}class kz extends j2{static[_]="PgSmallIntBuilder";constructor(W){super(W,"number","PgSmallInt")}build(W){return new Iz(W,this.config)}}class Iz extends j{static[_]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(W)=>{if(typeof W==="string")return Number(W);return W}}function jz(W){return new kz(W??"")}class fz extends u{static[_]="PgSmallSerialBuilder";constructor(W){super(W,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(W){return new Pz(W,this.config)}}class Pz extends j{static[_]="PgSmallSerial";getSQLType(){return"smallserial"}}function xz(W){return new fz(W??"")}class vz extends u{static[_]="PgTextBuilder";constructor(W,$){super(W,"string","PgText");this.config.enumValues=$.enum}build(W){return new bz(W,this.config)}}class bz extends j{static[_]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function yz(W,$={}){let{name:X,config:Y}=D0(W,$);return new vz(X,Y)}class hz extends J2{constructor(W,$,X){super(W,"string","PgTime");this.withTimezone=$,this.precision=X,this.config.withTimezone=$,this.config.precision=X}static[_]="PgTimeBuilder";build(W){return new MY(W,this.config)}}class MY extends j{static[_]="PgTime";withTimezone;precision;constructor(W,$){super(W,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function gz(W,$={}){let{name:X,config:Y}=D0(W,$);return new hz(X,Y.withTimezone??!1,Y.precision)}class mz extends J2{static[_]="PgTimestampBuilder";constructor(W,$,X){super(W,"date","PgTimestamp");this.config.withTimezone=$,this.config.precision=X}build(W){return new _Y(W,this.config)}}class _Y extends j{static[_]="PgTimestamp";withTimezone;precision;constructor(W,$){super(W,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(W)=>{return new Date(this.withTimezone?W:W+"+0000")};mapToDriverValue=(W)=>{return W.toISOString()}}class pz extends J2{static[_]="PgTimestampStringBuilder";constructor(W,$,X){super(W,"string","PgTimestampString");this.config.withTimezone=$,this.config.precision=X}build(W){return new DY(W,this.config)}}class DY extends j{static[_]="PgTimestampString";withTimezone;precision;constructor(W,$){super(W,$);this.withTimezone=$.withTimezone,this.precision=$.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function NW(W,$={}){let{name:X,config:Y}=D0(W,$);if(Y?.mode==="string")return new pz(X,Y.withTimezone??!1,Y.precision);return new mz(X,Y?.withTimezone??!1,Y?.precision)}class uz extends u{static[_]="PgUUIDBuilder";constructor(W){super(W,"string","PgUUID")}defaultRandom(){return this.default(D`gen_random_uuid()`)}build(W){return new OY(W,this.config)}}class OY extends j{static[_]="PgUUID";getSQLType(){return"uuid"}}function HW(W){return new uz(W??"")}class cz extends u{static[_]="PgVarcharBuilder";constructor(W,$){super(W,"string","PgVarchar");this.config.length=$.length,this.config.enumValues=$.enum}build(W){return new dz(W,this.config)}}class dz extends j{static[_]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function k1(W,$={}){let{name:X,config:Y}=D0(W,$);return new cz(X,Y)}class lz extends u{static[_]="PgBinaryVectorBuilder";constructor(W,$){super(W,"string","PgBinaryVector");this.config.dimensions=$.dimensions}build(W){return new oz(W,this.config)}}class oz extends j{static[_]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function iz(W,$){let{name:X,config:Y}=D0(W,$);return new lz(X,Y)}class nz extends u{static[_]="PgHalfVectorBuilder";constructor(W,$){super(W,"array","PgHalfVector");this.config.dimensions=$.dimensions}build(W){return new rz(W,this.config)}}class rz extends j{static[_]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(W){return JSON.stringify(W)}mapFromDriverValue(W){return W.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function tz(W,$){let{name:X,config:Y}=D0(W,$);return new nz(X,Y)}class az extends u{static[_]="PgSparseVectorBuilder";constructor(W,$){super(W,"string","PgSparseVector");this.config.dimensions=$.dimensions}build(W){return new sz(W,this.config)}}class sz extends j{static[_]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function ez(W,$){let{name:X,config:Y}=D0(W,$);return new az(X,Y)}class WF extends u{static[_]="PgVectorBuilder";constructor(W,$){super(W,"array","PgVector");this.config.dimensions=$.dimensions}build(W){return new $F(W,this.config)}}class $F extends j{static[_]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(W){return JSON.stringify(W)}mapFromDriverValue(W){return W.slice(1,-1).split(",").map(($)=>Number.parseFloat($))}}function XF(W,$){let{name:X,config:Y}=D0(W,$);return new WF(X,Y)}function YF(){return{bigint:_Q,bigserial:LQ,boolean:J6,char:BQ,cidr:qQ,customType:IQ,date:PQ,doublePrecision:bQ,inet:gQ,integer:G6,interval:dQ,json:oQ,jsonb:nQ,line:eQ,macaddr:Xz,macaddr8:Gz,numeric:Uz,point:Oz,geometry:Nz,real:Zz,serial:Cz,smallint:jz,smallserial:xz,text:yz,time:gz,timestamp:NW,uuid:HW,varchar:k1,bit:iz,halfvec:tz,sparsevec:ez,vector:XF}}var oJ=Symbol.for("drizzle:PgInlineForeignKeys"),JF=Symbol.for("drizzle:EnableRLS");class _1 extends y{static[_]="PgTable";static Symbol=Object.assign({},y.Symbol,{InlineForeignKeys:oJ,EnableRLS:JF});[oJ]=[];[JF]=!1;[y.Symbol.ExtraConfigBuilder]=void 0;[y.Symbol.ExtraConfigColumns]={}}function sO(W,$,X,Y,J=W){let G=new _1(W,Y,J),H=typeof $==="function"?$(YF()):$,Q=Object.fromEntries(Object.entries(H).map(([T,U])=>{let M=U;M.setName(T);let O=M.build(G);return G[oJ].push(...M.buildForeignKeys(O,G)),[T,O]})),z=Object.fromEntries(Object.entries(H).map(([T,U])=>{let M=U;M.setName(T);let O=M.buildExtraConfigColumn(G);return[T,O]})),F=Object.assign(G,Q);if(F[y.Symbol.Columns]=Q,F[y.Symbol.ExtraConfigColumns]=z,X)F[_1.Symbol.ExtraConfigBuilder]=X;return Object.assign(F,{enableRLS:()=>{return F[_1.Symbol.EnableRLS]=!0,F}})}var f2=(W,$,X)=>{return sO(W,$,X,void 0)};function GF(...W){if(W[0].columns)return new H6(W[0].columns,W[0].name);return new H6(W)}class H6{static[_]="PgPrimaryKeyBuilder";columns;name;constructor(W,$){this.columns=W,this.name=$}build(W){return new HF(W,this.columns,this.name)}}class HF{constructor(W,$,X){this.table=W,this.columns=$,this.name=X}static[_]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[_1.Symbol.Name]}_${this.columns.map((W)=>W.name).join("_")}_pk`}}function h1(W,$){if(XQ($)&&!gJ(W)&&!A(W,a1)&&!A(W,I2)&&!A(W,S0)&&!A(W,y)&&!A(W,y1))return new a1(W,$);return W}var VY=(W,$)=>{return D`${W} = ${h1($,W)}`},QF=(W,$)=>{return D`${W} <> ${h1($,W)}`};function Q6(...W){let $=W.filter((X)=>X!==void 0);if($.length===0)return;if($.length===1)return new g($);return new g([new H1("("),D.join($,new H1(" and ")),new H1(")")])}function zF(...W){let $=W.filter((X)=>X!==void 0);if($.length===0)return;if($.length===1)return new g($);return new g([new H1("("),D.join($,new H1(" or ")),new H1(")")])}function FF(W){return D`not ${W}`}var KY=(W,$)=>{return D`${W} > ${h1($,W)}`},TF=(W,$)=>{return D`${W} >= ${h1($,W)}`},UF=(W,$)=>{return D`${W} < ${h1($,W)}`},wF=(W,$)=>{return D`${W} <= ${h1($,W)}`};function MF(W,$){if(Array.isArray($)){if($.length===0)return D`false`;return D`${W} in ${$.map((X)=>h1(X,W))}`}return D`${W} in ${h1($,W)}`}function _F(W,$){if(Array.isArray($)){if($.length===0)return D`true`;return D`${W} not in ${$.map((X)=>h1(X,W))}`}return D`${W} not in ${h1($,W)}`}function DF(W){return D`${W} is null`}function OF(W){return D`${W} is not null`}function VF(W){return D`exists ${W}`}function KF(W){return D`not exists ${W}`}function LF(W,$,X){return D`${W} between ${h1($,W)} and ${h1(X,W)}`}function AF(W,$,X){return D`${W} not between ${h1($,W)} and ${h1(X,W)}`}function EF(W,$){return D`${W} like ${$}`}function NF(W,$){return D`${W} not like ${$}`}function RF(W,$){return D`${W} ilike ${$}`}function BF(W,$){return D`${W} not ilike ${$}`}function ZF(W){return D`${W} asc`}function SF(W){return D`${W} desc`}class iJ{constructor(W,$,X){this.sourceTable=W,this.referencedTable=$,this.relationName=X,this.referencedTableName=$[y.Symbol.Name]}static[_]="Relation";referencedTableName;fieldName}class qF{constructor(W,$){this.table=W,this.config=$}static[_]="Relations"}class P2 extends iJ{constructor(W,$,X,Y){super(W,$,X?.relationName);this.config=X,this.isNullable=Y}static[_]="One";withFieldName(W){let $=new P2(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=W,$}}class z6 extends iJ{constructor(W,$,X){super(W,$,X?.relationName);this.config=X}static[_]="Many";withFieldName(W){let $=new z6(this.sourceTable,this.referencedTable,this.config);return $.fieldName=W,$}}function CF(){return{and:Q6,between:LF,eq:VY,exists:VF,gt:KY,gte:TF,ilike:RF,inArray:MF,isNull:DF,isNotNull:OF,like:EF,lt:UF,lte:wF,ne:QF,not:FF,notBetween:AF,notExists:KF,notLike:NF,notIlike:BF,notInArray:_F,or:zF,sql:D}}function kF(){return{sql:D,asc:ZF,desc:SF}}function IF(W,$){if(Object.keys(W).length===1&&"default"in W&&!A(W.default,y))W=W.default;let X={},Y={},J={};for(let[G,H]of Object.entries(W))if(A(H,y)){let Q=_8(H),z=Y[Q];X[Q]=G,J[G]={tsName:G,dbName:H[y.Symbol.Name],schema:H[y.Symbol.Schema],columns:H[y.Symbol.Columns],relations:z?.relations??{},primaryKey:z?.primaryKey??[]};for(let T of Object.values(H[y.Symbol.Columns]))if(T.primary)J[G].primaryKey.push(T);let F=H[y.Symbol.ExtraConfigBuilder]?.(H[y.Symbol.ExtraConfigColumns]);if(F){for(let T of Object.values(F))if(A(T,H6))J[G].primaryKey.push(...T.columns)}}else if(A(H,qF)){let Q=_8(H.table),z=X[Q],F=H.config($(H.table)),T;for(let[U,M]of Object.entries(F))if(z){let O=J[z];if(O.relations[U]=M,T)O.primaryKey.push(...T)}else{if(!(Q in Y))Y[Q]={relations:{},primaryKey:T};Y[Q].relations[U]=M}}return{tables:J,tableNamesMap:X}}function eO(W){return function $(X,Y){return new P2(W,X,Y,Y?.fields.reduce((J,G)=>J&&G.notNull,!0)??!1)}}function WV(W){return function $(X,Y){return new z6(W,X,Y)}}function jF(W,$,X){if(A(X,P2)&&X.config)return{fields:X.config.fields,references:X.config.references};let Y=$[_8(X.referencedTable)];if(!Y)throw new Error(`Table "${X.referencedTable[y.Symbol.Name]}" not found in schema`);let J=W[Y];if(!J)throw new Error(`Table "${Y}" not found in schema`);let G=X.sourceTable,H=$[_8(G)];if(!H)throw new Error(`Table "${G[y.Symbol.Name]}" not found in schema`);let Q=[];for(let z of Object.values(J.relations))if(X.relationName&&X!==z&&z.relationName===X.relationName||!X.relationName&&z.referencedTable===X.sourceTable)Q.push(z);if(Q.length>1)throw X.relationName?new Error(`There are multiple relations with name "${X.relationName}" in table "${Y}"`):new Error(`There are multiple relations between "${Y}" and "${X.sourceTable[y.Symbol.Name]}". Please specify relation name`);if(Q[0]&&A(Q[0],P2)&&Q[0].config)return{fields:Q[0].config.references,references:Q[0].config.fields};throw new Error(`There is not enough information to infer relation "${H}.${X.fieldName}"`)}function fF(W){return{one:eO(W),many:WV(W)}}function LY(W,$,X,Y,J=(G)=>G){let G={};for(let[H,Q]of Y.entries())if(Q.isJson){let z=$.relations[Q.tsKey],F=X[H],T=typeof F==="string"?JSON.parse(F):F;G[Q.tsKey]=A(z,P2)?T&&LY(W,W[Q.relationTableTsKey],T,Q.selection,J):T.map((U)=>LY(W,W[Q.relationTableTsKey],U,Q.selection,J))}else{let z=J(X[H]),F=Q.field,T;if(A(F,S0))T=F;else if(A(F,g))T=F.decoder;else T=F.sql.decoder;G[Q.tsKey]=z===null?null:T.mapFromDriverValue(z)}return G}import cE from"path";import BV from"os";import ZV from"fs";var AY=new Map,nJ=new Map,rJ=Symbol("OriginError"),w$={};class QW extends Promise{constructor(W,$,X,Y,J={}){let G,H;super((Q,z)=>{G=Q,H=z});this.tagged=Array.isArray(W.raw),this.strings=W,this.args=$,this.handler=X,this.canceller=Y,this.options=J,this.state=null,this.statement=null,this.resolve=(Q)=>(this.active=!1,G(Q)),this.reject=(Q)=>(this.active=!1,H(Q)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[rJ]=this.handler.debug?new Error:this.tagged&&$V(this.strings)}get origin(){return(this.handler.debug?this[rJ].stack:this.tagged&&nJ.has(this.strings)?nJ.get(this.strings):nJ.set(this.strings,this[rJ].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(W=1,$){if(this.options.simple=!1,typeof W==="function")$=W,W=1;if(this.cursorRows=W,typeof $==="function")return this.cursorFn=$,this;let X;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};X&&X();let Y=new Promise((J,G)=>{this.cursorFn=(H)=>{return J({value:H,done:!1}),new Promise((Q)=>X=Q)},this.resolve=()=>(this.active=!1,J({done:!0})),this.reject=(H)=>(this.active=!1,G(H))});return this.execute(),Y},return(){return X&&X(w$),{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(W){return this.forEachFn=W,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 $V(W){if(AY.has(W))return AY.get(W);let $=Error.stackTraceLimit;return Error.stackTraceLimit=4,AY.set(W,new Error),Error.stackTraceLimit=$,AY.get(W)}class M$ extends Error{constructor(W){super(W.message);this.name=this.constructor.name,Object.assign(this,W)}}var t0={connection:PF,postgres:xF,generic:vF,notSupported:bF};function PF(W,$,X){let{host:Y,port:J}=X||$,G=Object.assign(new Error("write "+W+" "+($.path||Y+":"+J)),{code:W,errno:W,address:$.path||Y},$.path?{}:{port:J});return Error.captureStackTrace(G,PF),G}function xF(W){let $=new M$(W);return Error.captureStackTrace($,xF),$}function vF(W,$){let X=Object.assign(new Error(W+": "+$),{code:W});return Error.captureStackTrace(X,vF),X}function bF(W){let $=Object.assign(new Error(W+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:W});return Error.captureStackTrace($,bF),$}var XV={string:{to:25,from:null,serialize:(W)=>""+W},number:{to:0,from:[21,23,26,700,701],serialize:(W)=>""+W,parse:(W)=>+W},json:{to:114,from:[114,3802],serialize:(W)=>JSON.stringify(W),parse:(W)=>JSON.parse(W)},boolean:{to:16,from:16,serialize:(W)=>W===!0?"t":"f",parse:(W)=>W==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(W)=>(W instanceof Date?W:new Date(W)).toISOString(),parse:(W)=>new Date(W)},bytea:{to:17,from:17,serialize:(W)=>"\\x"+Buffer.from(W).toString("hex"),parse:(W)=>Buffer.from(W.slice(2),"hex")}};class RY{then(){tJ()}catch(){tJ()}finally(){tJ()}}class w6 extends RY{constructor(W){super();this.value=SY(W)}}class mW extends RY{constructor(W,$,X){super();this.value=W,this.type=$,this.array=X}}class BY extends RY{constructor(W,$){super();this.first=W,this.rest=$}build(W,$,X,Y){let J=YV.map(([G,H])=>({fn:H,i:W.search(G)})).sort((G,H)=>G.i-H.i).pop();return J.i===-1?$5(this.first,Y):J.fn(this.first,this.rest,$,X,Y)}}function ZY(W,$,X,Y){let J=W instanceof mW?W.value:W;if(J===void 0){if(W instanceof mW?W.value=Y.transform.undefined:J=W=Y.transform.undefined,J===void 0)throw t0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+X.push(W instanceof mW?($.push(W.value),W.array?W.array[W.type||NY(W.value)]||W.type||mF(W.value):W.type):($.push(W),NY(W)))}var hF=uF(XV);function eJ(W,$,X,Y,J,G){for(let H=1;H<W.strings.length;H++)$+=W5($,X,Y,J,G)+W.strings[H],X=W.args[H];return $}function W5(W,$,X,Y,J){return $ instanceof BY?$.build(W,X,Y,J):$ instanceof QW?sJ($,X,Y,J):$ instanceof w6?$.value:$&&$[0]instanceof QW?$.reduce((G,H)=>G+" "+sJ(H,X,Y,J),""):ZY($,X,Y,J)}function sJ(W,$,X,Y){return W.fragment=!0,eJ(W,W.strings[0],W.args[0],$,X,Y)}function gF(W,$,X,Y,J){return W.map((G)=>"("+Y.map((H)=>W5("values",G[H],$,X,J)).join(",")+")").join(",")}function yF(W,$,X,Y,J){let G=Array.isArray(W[0]),H=$.length?$.flat():Object.keys(G?W[0]:W);return gF(G?W:[W],X,Y,H,J)}function EY(W,$,X,Y,J){if(typeof W==="string"&&(W=[W].concat($)),Array.isArray(W))return $5(W,J);let G;return($.length?$.flat():Object.keys(W)).map((Q)=>{return G=W[Q],(G instanceof QW?sJ(G,X,Y,J):G instanceof w6?G.value:ZY(G,X,Y,J))+" as "+SY(J.transform.column.to?J.transform.column.to(Q):Q)}).join(",")}var YV=Object.entries({values:yF,in:(...W)=>{let $=yF(...W);return $==="()"?"(null)":$},select:EY,as:EY,returning:EY,"\\(":EY,update(W,$,X,Y,J){return($.length?$.flat():Object.keys(W)).map((G)=>SY(J.transform.column.to?J.transform.column.to(G):G)+"="+W5("values",W[G],X,Y,J))},insert(W,$,X,Y,J){let G=$.length?$.flat():Object.keys(Array.isArray(W)?W[0]:W);return"("+$5(G,J)+")values"+gF(Array.isArray(W)?W:[W],X,Y,G,J)}}).map(([W,$])=>[new RegExp("((?:^|[\\s(])"+W+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),$]);function tJ(){throw t0.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:JV,parsers:GV}=hF;function mF(W){if(Array.isArray(W))return mF(W[0]);return typeof W==="string"?1009:0}var pF=function(W){let $=uF(W||{});return{serializers:Object.assign({},JV,$.serializers),parsers:Object.assign({},GV,$.parsers)}};function uF(W){return Object.keys(W).reduce(($,X)=>{if(W[X].from&&[].concat(W[X].from).forEach((Y)=>$.parsers[Y]=W[X].parse),W[X].serialize)$.serializers[W[X].to]=W[X].serialize,W[X].from&&[].concat(W[X].from).forEach((Y)=>$.serializers[Y]=W[X].serialize);return $},{parsers:{},serializers:{}})}function $5(W,{transform:{column:$}}){return W.map((X)=>SY($.to?$.to(X):X)).join(",")}var SY=function W($){return'"'+$.replace(/"/g,'""').replace(/\./g,'"."')+'"'},NY=function W($){return $ instanceof mW?$.type:$ instanceof Date?1184:$ instanceof Uint8Array?17:$===!0||$===!1?16:typeof $==="bigint"?20:Array.isArray($)?W($[0]):0},HV=/\\/g,QV=/"/g;function zV(W){return W.replace(HV,"\\\\").replace(QV,"\\\"")}var cF=function W($,X,Y,J){if(Array.isArray($)===!1)return $;if(!$.length)return"{}";let G=$[0],H=J===1020?";":",";if(Array.isArray(G)&&!G.type)return"{"+$.map((Q)=>W(Q,X,Y,J)).join(H)+"}";return"{"+$.map((Q)=>{if(Q===void 0){if(Q=Y.transform.undefined,Q===void 0)throw t0.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return Q===null?"null":'"'+zV(X?X(Q.type?Q.value:Q):""+Q)+'"'}).join(H)+"}"},aJ={i:0,char:null,str:"",quoted:!1,last:0},dF=function W($,X,Y){return aJ.i=aJ.last=0,lF(aJ,$,X,Y)};function lF(W,$,X,Y){let J=[],G=Y===1020?";":",";for(;W.i<$.length;W.i++){if(W.char=$[W.i],W.quoted)if(W.char==="\\")W.str+=$[++W.i];else if(W.char==='"')J.push(X?X(W.str):W.str),W.str="",W.quoted=$[W.i+1]==='"',W.last=W.i+2;else W.str+=W.char;else if(W.char==='"')W.quoted=!0;else if(W.char==="{")W.last=++W.i,J.push(lF(W,$,X,Y));else if(W.char==="}"){W.quoted=!1,W.last<W.i&&J.push(X?X($.slice(W.last,W.i)):$.slice(W.last,W.i)),W.last=W.i+1;break}else if(W.char===G&&W.p!=="}"&&W.p!=='"')J.push(X?X($.slice(W.last,W.i)):$.slice(W.last,W.i)),W.last=W.i+1;W.p=W.char}return W.last<W.i&&J.push(X?X($.slice(W.last,W.i+1)):$.slice(W.last,W.i+1)),J}var D8=(W)=>{let $=W[0];for(let X=1;X<W.length;X++)$+=W[X]==="_"?W[++X].toUpperCase():W[X];return $},O8=(W)=>{let $=W[0].toUpperCase();for(let X=1;X<W.length;X++)$+=W[X]==="_"?W[++X].toUpperCase():W[X];return $},V8=(W)=>W.replace(/_/g,"-"),F6=(W)=>W.replace(/([A-Z])/g,"_$1").toLowerCase(),T6=(W)=>(W.slice(0,1)+W.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),U6=(W)=>W.replace(/-/g,"_");function X5(W){return function $(X,Y){return typeof X==="object"&&X!==null&&(Y.type===114||Y.type===3802)?Array.isArray(X)?X.map((J)=>$(J,Y)):Object.entries(X).reduce((J,[G,H])=>Object.assign(J,{[W(G)]:$(H,Y)}),{}):X}}D8.column={from:D8};D8.value={from:X5(D8)};F6.column={to:F6};var Y5={...D8};Y5.column.to=F6;O8.column={from:O8};O8.value={from:X5(O8)};T6.column={to:T6};var J5={...O8};J5.column.to=T6;V8.column={from:V8};V8.value={from:X5(V8)};U6.column={to:U6};var G5={...V8};G5.column.to=U6;import oF from"net";import wV from"tls";import M6 from"crypto";import H5 from"stream";import{performance as iF}from"perf_hooks";class K8 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 s1=FV;function FV(W=[]){let $=W.slice(),X=0;return{get length(){return $.length-X},remove:(Y)=>{let J=$.indexOf(Y);return J===-1?null:($.splice(J,1),Y)},push:(Y)=>($.push(Y),Y),shift:()=>{let Y=$[X++];if(X===$.length)X=0,$=[];else $[X-1]=void 0;return Y}}}var E1=Buffer.allocUnsafe(256),TV="BCcDdEFfHPpQSX".split("").reduce((W,$)=>{let X=$.charCodeAt(0);return W[$]=()=>{return E1[0]=X,B0.i=5,B0},W},{}),B0=Object.assign(UV,TV,{N:String.fromCharCode(0),i:0,inc(W){return B0.i+=W,B0},str(W){let $=Buffer.byteLength(W);return qY($),B0.i+=E1.write(W,B0.i,$,"utf8"),B0},i16(W){return qY(2),E1.writeUInt16BE(W,B0.i),B0.i+=2,B0},i32(W,$){if($||$===0)return E1.writeUInt32BE(W,$),B0;return qY(4),E1.writeUInt32BE(W,B0.i),B0.i+=4,B0},z(W){return qY(W),E1.fill(0,B0.i,B0.i+W),B0.i+=W,B0},raw(W){return E1=Buffer.concat([E1.subarray(0,B0.i),W]),B0.i=E1.length,B0},end(W=1){E1.writeUInt32BE(B0.i-W,W);let $=E1.subarray(0,B0.i);return B0.i=0,E1=Buffer.allocUnsafe(256),$}}),n=B0;function qY(W){if(E1.length-B0.i<W){let $=E1,X=$.length;E1=Buffer.allocUnsafe(X+(X>>1)+W),$.copy(E1)}}function UV(){return B0.i=0,B0}var F5=tF,MV=1,x2=n().S().end(),nF=n().H().end(),_V=n().i32(8).i32(80877103).end(8),DV=Buffer.concat([n().E().str(n.N).i32(0).end(),x2]),OV=n().D().str("S").str(n.N).end(),_$=()=>{},VV=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),KV={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 tF(W,$={},{onopen:X=_$,onend:Y=_$,onclose:J=_$}={}){let{ssl:G,max:H,user:Q,host:z,port:F,database:T,parsers:U,transform:M,onnotice:O,onnotify:K,onparameter:N,max_pipeline:I,keep_alive:C,backoff:R,target_session_attrs:q}=W,m=s1(),c=MV++,v={pid:null,secret:null},h=z5(O9,W.idle_timeout),U0=z5(O9,W.max_lifetime),m0=z5(vM,W.connect_timeout),E=null,_0,e=new K8,w0=Buffer.alloc(0),s0=W.fetch_types,D1={},wW={},q8=Math.random().toString(36).slice(2),k=1,a=0,N0=0,g0=0,e0=0,F0=0,k0=0,n0=0,p0=null,v0=null,O1=!1,I0=null,MW=null,V1=null,O2=null,W1=null,b0=null,_W=null,CW=null,x=null,y$=null,K1={queue:$.closed,idleTimer:h,connect(w){V1=w||!0,WG()},terminate:g$,execute:h$,cancel:jM,end:O9,count:0,id:c};return $.closed&&$.closed.push(K1),K1;async function IM(){let w;try{w=W.socket?await Promise.resolve(W.socket(W)):new oF.Socket}catch(V){k8(V);return}return w.on("error",k8),w.on("close",$G),w.on("drain",s7),w}async function jM({pid:w,secret:V},t,A0){try{_0=n().i32(16).i32(80877102).i32(w).i32(V).end(16),await e7(),E.once("error",A0),E.once("close",t)}catch(d0){A0(d0)}}function h$(w){if(O1)return r6(w,t0.connection("CONNECTION_DESTROYED",W));if(w.cancelled)return;try{return w.state=v,x?m.push(w):(x=w,x.active=!0),xM(w),w1(fM(w))&&!w.describeFirst&&!w.cursorFn&&m.length<I&&(!w.options.onexecute||w.options.onexecute(K1))}catch(V){return m.length===0&&w1(x2),kW(V),!0}}function fM(w){if(w.parameters.length>=65534)throw t0.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return w.options.simple?n().Q().str(w.statement.string+n.N).end():w.describeFirst?Buffer.concat([r7(w),nF]):w.prepare?w.prepared?n6(w):Buffer.concat([r7(w),n6(w)]):PM(w)}function r7(w){return Buffer.concat([YG(w.statement.string,w.parameters,w.statement.types,w.statement.name),L_("S",w.statement.name)])}function n6(w){return Buffer.concat([K_(w.parameters,w.statement.types,w.statement.name,w.cursorName),w.cursorFn?JG("",w.cursorRows):DV])}function PM(w){return Buffer.concat([YG(w.statement.string,w.parameters,w.statement.types),OV,n6(w)])}function xM(w){let V=[],t=[],A0=eJ(w,w.strings[0],w.args[0],V,t,W);!w.tagged&&w.args.forEach((d0)=>ZY(d0,V,t,W)),w.prepare=W.prepare&&("prepare"in w.options?w.options.prepare:!0),w.string=A0,w.signature=w.prepare&&t+A0,w.onlyDescribe&&delete wW[w.signature],w.parameters=w.parameters||V,w.prepared=w.prepare&&w.signature in wW,w.describeFirst=w.onlyDescribe||V.length&&!w.prepared,w.statement=w.prepared?wW[w.signature]:{string:A0,types:t,name:w.prepare?q8+k++:""},typeof W.debug==="function"&&W.debug(c,A0,V,t)}function w1(w,V){if(b0=b0?Buffer.concat([b0,w]):Buffer.from(w),V||b0.length>=1024)return t7(V);return v0===null&&(v0=setImmediate(t7)),!0}function t7(w){let V=E.write(b0,w);return v0!==null&&clearImmediate(v0),b0=v0=null,V}function vM(){kW(t0.connection("CONNECT_TIMEOUT",W,E)),E.destroy()}async function a7(){if(w1(_V),!await new Promise((V)=>E.once("data",(t)=>V(t[0]===83)))&&G==="prefer")return C8();E.removeAllListeners(),E=wV.connect({socket:E,servername:oF.isIP(E.host)?void 0:E.host,...G==="require"||G==="allow"||G==="prefer"?{rejectUnauthorized:!1}:G==="verify-full"?{}:typeof G==="object"?G:{}}),E.on("secureConnect",C8),E.on("error",k8),E.on("close",$G),E.on("drain",s7)}function s7(){!x&&X(K1)}function D9(w){if(I0){if(I0.push(w),N0-=w.length,N0>=0)return}w0=I0?Buffer.concat(I0,F0-N0):w0.length===0?w:Buffer.concat([w0,w],w0.length+w.length);while(w0.length>4){if(F0=w0.readUInt32BE(1),F0>=w0.length){N0=F0-w0.length,I0=[w0];break}try{bM(w0.subarray(0,F0+1))}catch(V){x&&(x.cursorFn||x.describeFirst)&&w1(x2),kW(V)}w0=w0.subarray(F0+1),N0=0,I0=null}}async function e7(){if(O1=!1,D1={},E||(E=await IM()),!E)return;if(m0.start(),W.socket)return G?a7():C8();if(E.on("connect",G?a7:C8),W.path)return E.connect(W.path);E.ssl=G,E.connect(F[g0],z[g0]),E.host=z[g0],E.port=F[g0],g0=(g0+1)%F.length}function WG(){setTimeout(e7,a?a+k0-iF.now():0)}function C8(){try{wW={},s0=W.fetch_types,q8=Math.random().toString(36).slice(2),k=1,U0.start(),E.on("data",D9),C&&E.setKeepAlive&&E.setKeepAlive(!0,1000*C);let w=E_();w1(w)}catch(w){k8(w)}}function k8(w){if(K1.queue===$.connecting&&W.host[e0+1])return;kW(w);while(m.length)r6(m.shift(),w)}function kW(w){W1&&(W1.destroy(w),W1=null),x&&r6(x,w),V1&&(r6(V1,w),V1=null)}function r6(w,V){"query"in V||"parameters"in V||Object.defineProperties(V,{stack:{value:V.stack+w.origin.replace(/.*\n/,`
57
+ `),enumerable:W.debug},query:{value:w.string,enumerable:W.debug},parameters:{value:w.parameters,enumerable:W.debug},args:{value:w.args,enumerable:W.debug},types:{value:w.statement&&w.statement.types,enumerable:W.debug}}),w.reject(V)}function O9(){return O2||(!K1.reserved&&Y(K1),!K1.reserved&&!V1&&!x&&m.length===0?(g$(),new Promise((w)=>E&&E.readyState!=="closed"?E.once("close",w):w())):O2=new Promise((w)=>_W=w))}function g$(){if(O1=!0,W1||x||V1||m.length)k8(t0.connection("CONNECTION_DESTROYED",W));if(clearImmediate(v0),E)E.removeListener("data",D9),E.removeListener("connect",C8),E.readyState==="open"&&E.end(n().X().end());_W&&(_W(),O2=_W=null)}async function $G(w){if(w0=Buffer.alloc(0),N0=0,I0=null,clearImmediate(v0),E.removeListener("data",D9),E.removeListener("connect",C8),h.cancel(),U0.cancel(),m0.cancel(),E.removeAllListeners(),E=null,V1)return WG();!w&&(x||m.length)&&k8(t0.connection("CONNECTION_CLOSED",W,E)),a=iF.now(),w&&W.shared.retries++,k0=(typeof R==="function"?R(W.shared.retries):R)*1000,J(K1,t0.connection("CONNECTION_CLOSED",W,E))}function bM(w,V=w[0]){(V===68?yM:V===100?T_:V===65?J_:V===83?hM:V===90?gM:V===67?mM:V===50?XG:V===49?pM:V===116?uM:V===84?cM:V===82?dM:V===110?tM:V===75?aM:V===69?X_:V===115?G_:V===51?H_:V===71?Q_:V===78?w_:V===72?z_:V===99?U_:V===73?M_:V===86?__:V===118?D_:V===87?F_:O_)(w)}function yM(w){let V=7,t,A0,d0,L1=x.isRaw?new Array(x.statement.columns.length):{};for(let B1=0;B1<x.statement.columns.length;B1++)A0=x.statement.columns[B1],t=w.readInt32BE(V),V+=4,d0=t===-1?null:x.isRaw===!0?w.subarray(V,V+=t):A0.parser===void 0?w.toString("utf8",V,V+=t):A0.parser.array===!0?A0.parser(w.toString("utf8",V+1,V+=t)):A0.parser(w.toString("utf8",V,V+=t)),x.isRaw?L1[B1]=x.isRaw===!0?d0:M.value.from?M.value.from(d0,A0):d0:L1[A0.name]=M.value.from?M.value.from(d0,A0):d0;x.forEachFn?x.forEachFn(M.row.from?M.row.from(L1):L1,e):e[n0++]=M.row.from?M.row.from(L1):L1}function hM(w){let[V,t]=w.toString("utf8",5,w.length-1).split(n.N);if(D1[V]=t,W.parameters[V]!==t)W.parameters[V]=t,N&&N(V,t)}function gM(w){if(x&&x.options.simple&&x.resolve(MW||e),x=MW=null,e=new K8,m0.cancel(),V1){if(q){if(!D1.in_hot_standby||!D1.default_transaction_read_only)return $_();else if(W_(q,D1))return g$()}if(s0)return V1===!0&&(V1=null),sM();V1!==!0&&h$(V1),W.shared.retries=e0=0,V1=null;return}while(m.length&&(x=m.shift())&&(x.active=!0,x.cancelled))tF(W).cancel(x.state,x.cancelled.resolve,x.cancelled.reject);if(x)return;K1.reserved?!K1.reserved.release&&w[5]===73?O2?g$():(K1.reserved=null,X(K1)):K1.reserved():O2?g$():X(K1)}function mM(w){n0=0;for(let V=w.length-1;V>0;V--){if(w[V]===32&&w[V+1]<58&&e.count===null)e.count=+w.toString("utf8",V+1,w.length-1);if(w[V-1]>=65){e.command=w.toString("utf8",5,V),e.state=v;break}}if(y$&&(y$(),y$=null),e.command==="BEGIN"&&H!==1&&!K1.reserved)return kW(t0.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(x.options.simple)return XG();if(x.cursorFn)e.count&&x.cursorFn(e),w1(x2);x.resolve(e)}function pM(){x.parsing=!1}function XG(){!e.statement&&(e.statement=x.statement),e.columns=x.statement.columns}function uM(w){let V=w.readUInt16BE(5);for(let t=0;t<V;++t)!x.statement.types[t]&&(x.statement.types[t]=w.readUInt32BE(7+t*4));x.prepare&&(wW[x.signature]=x.statement),x.describeFirst&&!x.onlyDescribe&&(w1(n6(x)),x.describeFirst=!1)}function cM(w){if(e.command)MW=MW||[e],MW.push(e=new K8),e.count=null,x.statement.columns=null;let V=w.readUInt16BE(5),t=7,A0;x.statement.columns=Array(V);for(let d0=0;d0<V;++d0){A0=t;while(w[t++]!==0);let L1=w.readUInt32BE(t),B1=w.readUInt16BE(t+4),V2=w.readUInt32BE(t+6);x.statement.columns[d0]={name:M.column.from?M.column.from(w.toString("utf8",A0,t-1)):w.toString("utf8",A0,t-1),parser:U[V2],table:L1,number:B1,type:V2},t+=18}if(e.statement=x.statement,x.onlyDescribe)return x.resolve(x.statement),w1(x2)}async function dM(w,V=w.readUInt32BE(5)){(V===3?lM:V===5?oM:V===10?iM:V===11?nM:V===12?rM:V!==0?V_:_$)(w,V)}async function lM(){let w=await V9();w1(n().p().str(w).z(1).end())}async function oM(w){let V="md5"+await rF(Buffer.concat([Buffer.from(await rF(await V9()+Q)),w.subarray(9)]));w1(n().p().str(V).z(1).end())}async function iM(){CW=(await M6.randomBytes(18)).toString("base64"),n().p().str("SCRAM-SHA-256"+n.N);let w=n.i;w1(n.inc(4).str("n,,n=*,r="+CW).i32(n.i-w-4,w).end())}async function nM(w){let V=w.toString("utf8",9).split(",").reduce((B1,V2)=>(B1[V2[0]]=V2.slice(2),B1),{}),t=await M6.pbkdf2Sync(await V9(),Buffer.from(V.s,"base64"),parseInt(V.i),32,"sha256"),A0=await CY(t,"Client Key"),d0="n=*,r="+CW+",r="+V.r+",s="+V.s+",i="+V.i+",c=biws,r="+V.r;p0=(await CY(await CY(t,"Server Key"),d0)).toString("base64");let L1="c=biws,r="+V.r+",p="+AV(A0,Buffer.from(await CY(await LV(A0),d0))).toString("base64");w1(n().p().str(L1).end())}function rM(w){if(w.toString("utf8",9).split(n.N,1)[0].slice(2)===p0)return;kW(t0.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),E.destroy()}function V9(){return Promise.resolve(typeof W.pass==="function"?W.pass():W.pass)}function tM(){if(e.statement=x.statement,e.statement.columns=[],x.onlyDescribe)return x.resolve(x.statement),w1(x2)}function aM(w){v.pid=w.readUInt32BE(5),v.secret=w.readUInt32BE(9)}async function sM(){s0=!1,(await new QW([`
58
58
  select b.oid, b.typarray
59
59
  from pg_catalog.pg_type a
60
60
  left join pg_catalog.pg_type b on b.oid = a.typelem
61
61
  where a.typcategory = 'A'
62
62
  group by b.oid, b.typarray
63
63
  order by b.oid
64
- `],[],h$)).forEach(({oid:O,typarray:t})=>eM(O,t))}function eM(w,O){if(!!W.parsers[O]&&!!W.serializers[O])return;let t=W.parsers[w];W.shared.typeArrayMap[w]=O,W.parsers[O]=(A0)=>dF(A0,t,O),W.parsers[O].array=!0,W.serializers[O]=(A0)=>cF(A0,W.serializers[w],W,O)}function W_(w,O){return w==="read-write"&&O.default_transaction_read_only==="on"||w==="read-only"&&O.default_transaction_read_only==="off"||w==="primary"&&O.in_hot_standby==="on"||w==="standby"&&O.in_hot_standby==="off"||w==="prefer-standby"&&O.in_hot_standby==="off"&&W.host[e0]}function $_(){let w=new QW([`
64
+ `],[],h$)).forEach(({oid:V,typarray:t})=>eM(V,t))}function eM(w,V){if(!!W.parsers[V]&&!!W.serializers[V])return;let t=W.parsers[w];W.shared.typeArrayMap[w]=V,W.parsers[V]=(A0)=>dF(A0,t,V),W.parsers[V].array=!0,W.serializers[V]=(A0)=>cF(A0,W.serializers[w],W,V)}function W_(w,V){return w==="read-write"&&V.default_transaction_read_only==="on"||w==="read-only"&&V.default_transaction_read_only==="off"||w==="primary"&&V.in_hot_standby==="on"||w==="standby"&&V.in_hot_standby==="off"||w==="prefer-standby"&&V.in_hot_standby==="off"&&W.host[e0]}function $_(){let w=new QW([`
65
65
  show transaction_read_only;
66
66
  select pg_catalog.pg_is_in_recovery()
67
- `],[],h$,null,{simple:!0});w.resolve=([[O],[t]])=>{D1.default_transaction_read_only=O.transaction_read_only,D1.in_hot_standby=t.pg_is_in_recovery?"on":"off"},w.execute()}function X_(w){x&&(x.cursorFn||x.describeFirst)&&w1(x2);let O=t0.postgres(Q5(w));x&&x.retried?kW(x.retried):x&&x.prepared&&OO.has(O.routine)?Y_(x,O):kW(O)}function Y_(w,O){delete wW[w.signature],w.retried=O,h$(w)}function J_(w){if(!K)return;let O=9;while(w[O++]!==0);K(w.toString("utf8",9,O-1),w.toString("utf8",O,w.length-1))}async function G_(){try{let w=await Promise.resolve(x.cursorFn(e));n0=0,w===w$?w1(A_(x.portal)):(e=new K8,w1(JG("",x.cursorRows)))}catch(w){w1(x2),x.reject(w)}}function H_(){e.count&&x.cursorFn(e),x.resolve(e)}function Q_(){W1=new H5.Writable({autoDestroy:!0,write(w,O,t){E.write(n().d().raw(w).end(),t)},destroy(w,O){O(w),E.write(n().f().str(w+n.N).end()),W1=null},final(w){E.write(n().c().end()),y$=w}}),x.resolve(W1)}function z_(){W1=new H5.Readable({read(){E.resume()}}),x.resolve(W1)}function F_(){W1=new H5.Duplex({autoDestroy:!0,read(){E.resume()},write(w,O,t){E.write(n().d().raw(w).end(),t)},destroy(w,O){O(w),E.write(n().f().str(w+n.N).end()),W1=null},final(w){E.write(n().c().end()),y$=w}}),x.resolve(W1)}function T_(w){W1&&(W1.push(w.subarray(5))||E.pause())}function U_(){W1&&W1.push(null),W1=null}function w_(w){V?V(Q5(w)):console.log(Q5(w))}function M_(){}function __(){kW(t0.notSupported("FunctionCallResponse"))}function D_(){kW(t0.notSupported("NegotiateProtocolVersion"))}function V_(w){console.error("Postgres.js : Unknown Message:",w[0])}function O_(w,O){console.error("Postgres.js : Unknown Auth:",O)}function K_(w,O,t="",A0=""){let d0,L1;return n().B().str(A0+n.N).str(t+n.N).i16(0).i16(w.length),w.forEach((R1,O2)=>{if(R1===null)return n.i32(4294967295);L1=O[O2],w[O2]=R1=L1 in W.serializers?W.serializers[L1](R1):""+R1,d0=n.i,n.inc(4).str(R1).i32(n.i-d0-4,d0)}),n.i16(0),n.end()}function YG(w,O,t,A0=""){return n().P().str(A0+n.N).str(w+n.N).i16(O.length),O.forEach((d0,L1)=>n.i32(t[L1]||0)),n.end()}function L_(w,O=""){return n().D().str(w).str(O+n.N).end()}function JG(w="",O=0){return Buffer.concat([n().E().str(w+n.N).i32(O).end(),nF])}function A_(w=""){return Buffer.concat([n().C().str("P").str(w+n.N).end(),n().S().end()])}function E_(){return _0||n().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:Q,database:T,client_encoding:"UTF8"},W.connection)).filter(([,w])=>w).map(([w,O])=>w+n.N+O).join(n.N)).z(2).end(0)}}function Q5(W){let $={},X=5;for(let Y=5;Y<W.length-1;Y++)if(W[Y]===0)$[KO[W[X]]]=W.toString("utf8",X+1,Y),X=Y+1;return $}function rF(W){return M6.createHash("md5").update(W).digest("hex")}function CY(W,$){return M6.createHmac("sha256",W).update($).digest()}function LO(W){return M6.createHash("sha256").update(W).digest()}function AO(W,$){let X=Math.max(W.length,$.length),Y=Buffer.allocUnsafe(X);for(let J=0;J<X;J++)Y[J]=W[J]^$[J];return Y}function z5(W,$){if($=typeof $==="function"?$():$,!$)return{cancel:_$,start:_$};let X;return{cancel(){X&&(clearTimeout(X),X=null)},start(){X&&clearTimeout(X),X=setTimeout(Y,$*1000,arguments)}};function Y(J){W.apply(null,J),X=null}}var aF=()=>{};function T5(W,$){let X=new Map,Y="postgresjs_"+Math.random().toString(36).slice(2),J={},G,H,Q=!1,z=U.sql=W({...$,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...$.connection,replication:"database"},onclose:async function(){if(Q)return;H=null,J.pid=J.secret=void 0,M(await V(z,Y,$.publications)),X.forEach((N)=>N.forEach(({onsubscribe:I})=>I()))},no_subscribe:!0}),F=z.end,T=z.close;return z.end=async()=>{return Q=!0,H&&await new Promise((N)=>(H.once("close",N),H.end())),F()},z.close=async()=>{return H&&await new Promise((N)=>(H.once("close",N),H.end())),T()},U;async function U(N,I,C=aF,B=aF){if(N=BO(N),!G)G=V(z,Y,$.publications);let q={fn:I,onsubscribe:C},m=X.has(N)?X.get(N).add(q):X.set(N,new Set([q])).get(N),c=()=>{m.delete(q),m.size===0&&X.delete(N)};return G.then((v)=>{return M(v),C(),H&&H.on("error",B),{unsubscribe:c,state:J,sql:z}})}function M(N){H=N.stream,J.pid=N.state.pid,J.secret=N.state.secret}async function V(N,I,C){if(!C)throw new Error("Missing publication names");let B=await N.unsafe(`CREATE_REPLICATION_SLOT ${I} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[q]=B,m=await N.unsafe(`START_REPLICATION SLOT ${I} LOGICAL ${q.consistent_point} (proto_version '1', publication_names '${C}')`).writable(),c={lsn:Buffer.concat(q.consistent_point.split("/").map((E)=>Buffer.from(("00000000"+E).slice(-8),"hex")))};return m.on("data",h),m.on("error",v),m.on("close",N.close),{stream:m,state:B.state};function v(E){console.error("Unexpected error during logical streaming - reconnecting",E)}function h(E){if(E[0]===119)NO(E.subarray(25),c,N.options.parsers,U0,$.transform);else if(E[0]===107&&E[17])c.lsn=E.subarray(1,9),m0()}function U0(E,_0){let e=_0.relation.schema+"."+_0.relation.table;K("*",E,_0),K("*:"+e,E,_0),_0.relation.keys.length&&K("*:"+e+"="+_0.relation.keys.map((w0)=>E[w0.name]),E,_0),K(_0.command,E,_0),K(_0.command+":"+e,E,_0),_0.relation.keys.length&&K(_0.command+":"+e+"="+_0.relation.keys.map((w0)=>E[w0.name]),E,_0)}function m0(){let E=Buffer.alloc(34);E[0]=114,E.fill(c.lsn,1),E.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),m.write(E)}}function K(N,I,C){X.has(N)&&X.get(N).forEach(({fn:B})=>B(I,C,N))}}function EO(W){return new Date(Date.UTC(2000,0,1)+Number(W/BigInt(1000)))}function NO(W,$,X,Y,J){let G=(H,[Q,z])=>(H[Q.charCodeAt(0)]=z,H);Object.entries({R:(H)=>{let Q=1,z=$[H.readUInt32BE(Q)]={schema:H.toString("utf8",Q+=4,Q=H.indexOf(0,Q))||"pg_catalog",table:H.toString("utf8",Q+1,Q=H.indexOf(0,Q+1)),columns:Array(H.readUInt16BE(Q+=2)),keys:[]};Q+=2;let F=0,T;while(Q<H.length)T=z.columns[F++]={key:H[Q++],name:J.column.from?J.column.from(H.toString("utf8",Q,Q=H.indexOf(0,Q))):H.toString("utf8",Q,Q=H.indexOf(0,Q)),type:H.readUInt32BE(Q+=1),parser:X[H.readUInt32BE(Q)],atttypmod:H.readUInt32BE(Q+=4)},T.key&&z.keys.push(T),Q+=4},Y:()=>{},O:()=>{},B:(H)=>{$.date=EO(H.readBigInt64BE(9)),$.lsn=H.subarray(1,9)},I:(H)=>{let Q=1,z=$[H.readUInt32BE(Q)],{row:F}=kY(H,z.columns,Q+=7,J);Y(F,{command:"insert",relation:z})},D:(H)=>{let Q=1,z=$[H.readUInt32BE(Q)];Q+=4;let F=H[Q]===75;Y(F||H[Q]===79?kY(H,z.columns,Q+=3,J).row:null,{command:"delete",relation:z,key:F})},U:(H)=>{let Q=1,z=$[H.readUInt32BE(Q)];Q+=4;let F=H[Q]===75,T=F||H[Q]===79?kY(H,z.columns,Q+=3,J):null;T&&(Q=T.i);let{row:U}=kY(H,z.columns,Q+3,J);Y(U,{command:"update",relation:z,key:F,old:T&&T.row})},T:()=>{},C:()=>{}}).reduce(G,{})[W[0]](W)}function kY(W,$,X,Y){let J,G,H,Q=Y.raw?new Array($.length):{};for(let z=0;z<$.length;z++)J=W[X++],G=$[z],H=J===110?null:J===117?void 0:G.parser===void 0?W.toString("utf8",X+4,X+=4+W.readUInt32BE(X)):G.parser.array===!0?G.parser(W.toString("utf8",X+5,X+=4+W.readUInt32BE(X))):G.parser(W.toString("utf8",X+4,X+=4+W.readUInt32BE(X))),Y.raw?Q[z]=Y.raw===!0?H:Y.value.from?Y.value.from(H,G):H:Q[G.name]=Y.value.from?Y.value.from(H,G):H;return{i:X,row:Y.row.from?Y.row.from(Q):Q}}function BO(W){let $=W.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!$)throw new Error("Malformed subscribe pattern: "+W);let[,X,Y,J]=$;return(X||"*")+(Y?":"+(Y.indexOf(".")===-1?"public."+Y:Y):"")+(J?"="+J:"")}import sF from"stream";function U5(W,$,X=393216){return new Promise(async(Y,J)=>{await W.begin(async(G)=>{let H;!$&&([{oid:$}]=await G`select lo_creat(-1) as oid`);let[{fd:Q}]=await G`select lo_open(${$}, ${X}) as fd`,z={writable:T,readable:F,close:()=>G`select lo_close(${Q})`.then(H),tell:()=>G`select lo_tell64(${Q})`,read:(U)=>G`select loread(${Q}, ${U}) as data`,write:(U)=>G`select lowrite(${Q}, ${U})`,truncate:(U)=>G`select lo_truncate64(${Q}, ${U})`,seek:(U,M=0)=>G`select lo_lseek64(${Q}, ${U}, ${M})`,size:()=>G`
67
+ `],[],h$,null,{simple:!0});w.resolve=([[V],[t]])=>{D1.default_transaction_read_only=V.transaction_read_only,D1.in_hot_standby=t.pg_is_in_recovery?"on":"off"},w.execute()}function X_(w){x&&(x.cursorFn||x.describeFirst)&&w1(x2);let V=t0.postgres(Q5(w));x&&x.retried?kW(x.retried):x&&x.prepared&&VV.has(V.routine)?Y_(x,V):kW(V)}function Y_(w,V){delete wW[w.signature],w.retried=V,h$(w)}function J_(w){if(!K)return;let V=9;while(w[V++]!==0);K(w.toString("utf8",9,V-1),w.toString("utf8",V,w.length-1))}async function G_(){try{let w=await Promise.resolve(x.cursorFn(e));n0=0,w===w$?w1(A_(x.portal)):(e=new K8,w1(JG("",x.cursorRows)))}catch(w){w1(x2),x.reject(w)}}function H_(){e.count&&x.cursorFn(e),x.resolve(e)}function Q_(){W1=new H5.Writable({autoDestroy:!0,write(w,V,t){E.write(n().d().raw(w).end(),t)},destroy(w,V){V(w),E.write(n().f().str(w+n.N).end()),W1=null},final(w){E.write(n().c().end()),y$=w}}),x.resolve(W1)}function z_(){W1=new H5.Readable({read(){E.resume()}}),x.resolve(W1)}function F_(){W1=new H5.Duplex({autoDestroy:!0,read(){E.resume()},write(w,V,t){E.write(n().d().raw(w).end(),t)},destroy(w,V){V(w),E.write(n().f().str(w+n.N).end()),W1=null},final(w){E.write(n().c().end()),y$=w}}),x.resolve(W1)}function T_(w){W1&&(W1.push(w.subarray(5))||E.pause())}function U_(){W1&&W1.push(null),W1=null}function w_(w){O?O(Q5(w)):console.log(Q5(w))}function M_(){}function __(){kW(t0.notSupported("FunctionCallResponse"))}function D_(){kW(t0.notSupported("NegotiateProtocolVersion"))}function O_(w){console.error("Postgres.js : Unknown Message:",w[0])}function V_(w,V){console.error("Postgres.js : Unknown Auth:",V)}function K_(w,V,t="",A0=""){let d0,L1;return n().B().str(A0+n.N).str(t+n.N).i16(0).i16(w.length),w.forEach((B1,V2)=>{if(B1===null)return n.i32(4294967295);L1=V[V2],w[V2]=B1=L1 in W.serializers?W.serializers[L1](B1):""+B1,d0=n.i,n.inc(4).str(B1).i32(n.i-d0-4,d0)}),n.i16(0),n.end()}function YG(w,V,t,A0=""){return n().P().str(A0+n.N).str(w+n.N).i16(V.length),V.forEach((d0,L1)=>n.i32(t[L1]||0)),n.end()}function L_(w,V=""){return n().D().str(w).str(V+n.N).end()}function JG(w="",V=0){return Buffer.concat([n().E().str(w+n.N).i32(V).end(),nF])}function A_(w=""){return Buffer.concat([n().C().str("P").str(w+n.N).end(),n().S().end()])}function E_(){return _0||n().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:Q,database:T,client_encoding:"UTF8"},W.connection)).filter(([,w])=>w).map(([w,V])=>w+n.N+V).join(n.N)).z(2).end(0)}}function Q5(W){let $={},X=5;for(let Y=5;Y<W.length-1;Y++)if(W[Y]===0)$[KV[W[X]]]=W.toString("utf8",X+1,Y),X=Y+1;return $}function rF(W){return M6.createHash("md5").update(W).digest("hex")}function CY(W,$){return M6.createHmac("sha256",W).update($).digest()}function LV(W){return M6.createHash("sha256").update(W).digest()}function AV(W,$){let X=Math.max(W.length,$.length),Y=Buffer.allocUnsafe(X);for(let J=0;J<X;J++)Y[J]=W[J]^$[J];return Y}function z5(W,$){if($=typeof $==="function"?$():$,!$)return{cancel:_$,start:_$};let X;return{cancel(){X&&(clearTimeout(X),X=null)},start(){X&&clearTimeout(X),X=setTimeout(Y,$*1000,arguments)}};function Y(J){W.apply(null,J),X=null}}var aF=()=>{};function T5(W,$){let X=new Map,Y="postgresjs_"+Math.random().toString(36).slice(2),J={},G,H,Q=!1,z=U.sql=W({...$,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...$.connection,replication:"database"},onclose:async function(){if(Q)return;H=null,J.pid=J.secret=void 0,M(await O(z,Y,$.publications)),X.forEach((N)=>N.forEach(({onsubscribe:I})=>I()))},no_subscribe:!0}),F=z.end,T=z.close;return z.end=async()=>{return Q=!0,H&&await new Promise((N)=>(H.once("close",N),H.end())),F()},z.close=async()=>{return H&&await new Promise((N)=>(H.once("close",N),H.end())),T()},U;async function U(N,I,C=aF,R=aF){if(N=RV(N),!G)G=O(z,Y,$.publications);let q={fn:I,onsubscribe:C},m=X.has(N)?X.get(N).add(q):X.set(N,new Set([q])).get(N),c=()=>{m.delete(q),m.size===0&&X.delete(N)};return G.then((v)=>{return M(v),C(),H&&H.on("error",R),{unsubscribe:c,state:J,sql:z}})}function M(N){H=N.stream,J.pid=N.state.pid,J.secret=N.state.secret}async function O(N,I,C){if(!C)throw new Error("Missing publication names");let R=await N.unsafe(`CREATE_REPLICATION_SLOT ${I} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[q]=R,m=await N.unsafe(`START_REPLICATION SLOT ${I} LOGICAL ${q.consistent_point} (proto_version '1', publication_names '${C}')`).writable(),c={lsn:Buffer.concat(q.consistent_point.split("/").map((E)=>Buffer.from(("00000000"+E).slice(-8),"hex")))};return m.on("data",h),m.on("error",v),m.on("close",N.close),{stream:m,state:R.state};function v(E){console.error("Unexpected error during logical streaming - reconnecting",E)}function h(E){if(E[0]===119)NV(E.subarray(25),c,N.options.parsers,U0,$.transform);else if(E[0]===107&&E[17])c.lsn=E.subarray(1,9),m0()}function U0(E,_0){let e=_0.relation.schema+"."+_0.relation.table;K("*",E,_0),K("*:"+e,E,_0),_0.relation.keys.length&&K("*:"+e+"="+_0.relation.keys.map((w0)=>E[w0.name]),E,_0),K(_0.command,E,_0),K(_0.command+":"+e,E,_0),_0.relation.keys.length&&K(_0.command+":"+e+"="+_0.relation.keys.map((w0)=>E[w0.name]),E,_0)}function m0(){let E=Buffer.alloc(34);E[0]=114,E.fill(c.lsn,1),E.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2000,0,1))*BigInt(1000),25),m.write(E)}}function K(N,I,C){X.has(N)&&X.get(N).forEach(({fn:R})=>R(I,C,N))}}function EV(W){return new Date(Date.UTC(2000,0,1)+Number(W/BigInt(1000)))}function NV(W,$,X,Y,J){let G=(H,[Q,z])=>(H[Q.charCodeAt(0)]=z,H);Object.entries({R:(H)=>{let Q=1,z=$[H.readUInt32BE(Q)]={schema:H.toString("utf8",Q+=4,Q=H.indexOf(0,Q))||"pg_catalog",table:H.toString("utf8",Q+1,Q=H.indexOf(0,Q+1)),columns:Array(H.readUInt16BE(Q+=2)),keys:[]};Q+=2;let F=0,T;while(Q<H.length)T=z.columns[F++]={key:H[Q++],name:J.column.from?J.column.from(H.toString("utf8",Q,Q=H.indexOf(0,Q))):H.toString("utf8",Q,Q=H.indexOf(0,Q)),type:H.readUInt32BE(Q+=1),parser:X[H.readUInt32BE(Q)],atttypmod:H.readUInt32BE(Q+=4)},T.key&&z.keys.push(T),Q+=4},Y:()=>{},O:()=>{},B:(H)=>{$.date=EV(H.readBigInt64BE(9)),$.lsn=H.subarray(1,9)},I:(H)=>{let Q=1,z=$[H.readUInt32BE(Q)],{row:F}=kY(H,z.columns,Q+=7,J);Y(F,{command:"insert",relation:z})},D:(H)=>{let Q=1,z=$[H.readUInt32BE(Q)];Q+=4;let F=H[Q]===75;Y(F||H[Q]===79?kY(H,z.columns,Q+=3,J).row:null,{command:"delete",relation:z,key:F})},U:(H)=>{let Q=1,z=$[H.readUInt32BE(Q)];Q+=4;let F=H[Q]===75,T=F||H[Q]===79?kY(H,z.columns,Q+=3,J):null;T&&(Q=T.i);let{row:U}=kY(H,z.columns,Q+3,J);Y(U,{command:"update",relation:z,key:F,old:T&&T.row})},T:()=>{},C:()=>{}}).reduce(G,{})[W[0]](W)}function kY(W,$,X,Y){let J,G,H,Q=Y.raw?new Array($.length):{};for(let z=0;z<$.length;z++)J=W[X++],G=$[z],H=J===110?null:J===117?void 0:G.parser===void 0?W.toString("utf8",X+4,X+=4+W.readUInt32BE(X)):G.parser.array===!0?G.parser(W.toString("utf8",X+5,X+=4+W.readUInt32BE(X))):G.parser(W.toString("utf8",X+4,X+=4+W.readUInt32BE(X))),Y.raw?Q[z]=Y.raw===!0?H:Y.value.from?Y.value.from(H,G):H:Q[G.name]=Y.value.from?Y.value.from(H,G):H;return{i:X,row:Y.row.from?Y.row.from(Q):Q}}function RV(W){let $=W.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!$)throw new Error("Malformed subscribe pattern: "+W);let[,X,Y,J]=$;return(X||"*")+(Y?":"+(Y.indexOf(".")===-1?"public."+Y:Y):"")+(J?"="+J:"")}import sF from"stream";function U5(W,$,X=393216){return new Promise(async(Y,J)=>{await W.begin(async(G)=>{let H;!$&&([{oid:$}]=await G`select lo_creat(-1) as oid`);let[{fd:Q}]=await G`select lo_open(${$}, ${X}) as fd`,z={writable:T,readable:F,close:()=>G`select lo_close(${Q})`.then(H),tell:()=>G`select lo_tell64(${Q})`,read:(U)=>G`select loread(${Q}, ${U}) as data`,write:(U)=>G`select lowrite(${Q}, ${U})`,truncate:(U)=>G`select lo_truncate64(${Q}, ${U})`,seek:(U,M=0)=>G`select lo_lseek64(${Q}, ${U}, ${M})`,size:()=>G`
68
68
  select
69
69
  lo_lseek64(${Q}, location, 0) as position,
70
70
  seek.size
@@ -74,57 +74,57 @@ ${H}`)}let z=AW.join(this.baseDir,`${W}/${$}.output.json`);return JSON.parse(o0.
74
74
  tell.location
75
75
  from (select lo_tell64($1) as location) tell
76
76
  ) seek
77
- `};return Y(z),new Promise(async(U)=>H=U);async function F({highWaterMark:U=16384,start:M=0,end:V=1/0}={}){let K=V-M;return M&&await z.seek(M),new sF.Readable({highWaterMark:U,async read(N){let I=N>K?N-K:N;K-=N;let[{data:C}]=await z.read(I);if(this.push(C),C.length<N)this.push(null)}})}async function T({highWaterMark:U=16384,start:M=0}={}){return M&&await z.seek(M),new sF.Writable({highWaterMark:U,write(V,K,N){z.write(V).then(()=>N(),N)}})}}).catch(J)})}Object.assign(IY,{PostgresError:M$,toPascal:V8,pascal:J5,toCamel:D8,camel:Y5,toKebab:O8,kebab:G5,fromPascal:T6,fromCamel:F6,fromKebab:U6,BigInt:{to:20,from:[20],parse:(W)=>BigInt(W),serialize:(W)=>W.toString()}});var D$=IY;function IY(W,$){let X=SO(W,$),Y=X.no_subscribe||T5(IY,{...X}),J=!1,G=s1(),H=s1(),Q=s1(),z=s1(),F=s1(),T=s1(),U=s1(),M=s1(),V={connecting:H,reserved:Q,closed:z,ended:F,open:T,busy:U,full:M},K=[...Array(X.max)].map(()=>F5(X,V,{onopen:wW,onend:D1,onclose:q8})),N=I(U0);return Object.assign(N,{get parameters(){return X.parameters},largeObject:U5.bind(null,N),subscribe:Y,CLOSE:w$,END:w$,PostgresError:M$,options:X,reserve:q,listen:C,begin:m,close:e,end:_0}),N;function I(k){return k.debug=X.debug,Object.entries(X.types).reduce((F0,[k0,n0])=>{return F0[k0]=(p0)=>new mW(p0,n0.to),F0},a),Object.assign(N0,{types:a,typed:a,unsafe:g0,notify:B,array:h,json:v,file:e0}),N0;function a(F0,k0){return new mW(F0,k0)}function N0(F0,...k0){return F0&&Array.isArray(F0.raw)?new QW(F0,k0,k,E):typeof F0==="string"&&!k0.length?new w6(X.transform.column.to?X.transform.column.to(F0):F0):new RY(F0,k0)}function g0(F0,k0=[],n0={}){return arguments.length===2&&!Array.isArray(k0)&&(n0=k0,k0=[]),new QW([F0],k0,k,E,{prepare:!1,...n0,simple:"simple"in n0?n0.simple:k0.length===0})}function e0(F0,k0=[],n0={}){return arguments.length===2&&!Array.isArray(k0)&&(n0=k0,k0=[]),new QW([],k0,(v0)=>{ZO.readFile(F0,"utf8",(V1,I0)=>{if(V1)return v0.reject(V1);v0.strings=[I0],k(v0)})},E,{...n0,simple:"simple"in n0?n0.simple:k0.length===0})}}async function C(k,a,N0){let g0={fn:a,onlisten:N0},e0=C.sql||(C.sql=IY({...X,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(C.channels).forEach(([v0,{listeners:V1}])=>{delete C.channels[v0],Promise.all(V1.map((I0)=>C(v0,I0.fn,I0.onlisten).catch(()=>{})))})},onnotify(v0,V1){v0 in C.channels&&C.channels[v0].listeners.forEach((I0)=>I0.fn(V1))}})),F0=C.channels||(C.channels={});if(k in F0){F0[k].listeners.push(g0);let v0=await F0[k].result;return g0.onlisten&&g0.onlisten(),{state:v0.state,unlisten:p0}}F0[k]={result:e0`listen ${e0.unsafe('"'+k.replace(/"/g,'""')+'"')}`,listeners:[g0]};let n0=await F0[k].result;return g0.onlisten&&g0.onlisten(),{state:n0.state,unlisten:p0};async function p0(){if(k in F0===!1)return;if(F0[k].listeners=F0[k].listeners.filter((v0)=>v0!==g0),F0[k].listeners.length)return;return delete F0[k],e0`unlisten ${e0.unsafe('"'+k.replace(/"/g,'""')+'"')}`}}async function B(k,a){return await N`select pg_notify(${k}, ${""+a})`}async function q(){let k=s1(),a=T.length?T.shift():await new Promise((e0)=>{G.push({reserve:e0}),z.length&&s0(z.shift())});c(a,Q),a.reserved=()=>k.length?a.execute(k.shift()):c(a,Q),a.reserved.release=!0;let N0=I(g0);return N0.release=()=>{a.reserved=null,wW(a)},N0;function g0(e0){a.queue===M?k.push(e0):a.execute(e0)||c(a,M)}}async function m(k,a){!a&&(a=k,k="");let N0=s1(),g0=0,e0,F0=null;try{return await N.unsafe("begin "+k.replace(/[^a-z ]/ig,""),[],{onexecute:n0}).execute(),await Promise.race([k0(e0,a),new Promise((p0,v0)=>e0.onclose=v0)])}catch(p0){throw p0}async function k0(p0,v0,V1){let I0=I(W1);I0.savepoint=V2,I0.prepare=(b0)=>F0=b0.replace(/[^a-z0-9$-_. ]/gi);let MW,O1;V1&&await I0`savepoint ${I0(V1)}`;try{if(O1=await new Promise((b0,_W)=>{let CW=v0(I0);Promise.resolve(Array.isArray(CW)?Promise.all(CW):CW).then(b0,_W)}),MW)throw MW}catch(b0){throw await(V1?I0`rollback to ${I0(V1)}`:I0`rollback`),b0 instanceof M$&&b0.code==="25P02"&&MW||b0}if(!V1)F0?await I0`prepare transaction '${I0.unsafe(F0)}'`:await I0`commit`;return O1;function V2(b0,_W){if(b0&&Array.isArray(b0.raw))return V2((CW)=>CW.apply(CW,arguments));return arguments.length===1&&(_W=b0,b0=null),k0(p0,_W,"s"+g0+++(b0?"_"+b0:""))}function W1(b0){b0.catch((_W)=>MW||(MW=_W)),p0.queue===M?N0.push(b0):p0.execute(b0)||c(p0,M)}}function n0(p0){e0=p0,c(p0,Q),p0.reserved=()=>N0.length?p0.execute(N0.shift()):c(p0,Q)}}function c(k,a){return k.queue.remove(k),a.push(k),k.queue=a,a===T?k.idleTimer.start():k.idleTimer.cancel(),k}function v(k){return new mW(k,3802)}function h(k,a){if(!Array.isArray(k))return h(Array.from(arguments));return new mW(k,a||(k.length?NY(k)||25:0),X.shared.typeArrayMap)}function U0(k){if(J)return k.reject(t0.connection("CONNECTION_ENDED",X,X));if(T.length)return m0(T.shift(),k);if(z.length)return s0(z.shift(),k);U.length?m0(U.shift(),k):G.push(k)}function m0(k,a){return k.execute(a)?c(k,U):c(k,M)}function E(k){return new Promise((a,N0)=>{k.state?k.active?F5(X).cancel(k.state,a,N0):k.cancelled={resolve:a,reject:N0}:(G.remove(k),k.cancelled=!0,k.reject(t0.generic("57014","canceling statement due to user request")),a())})}async function _0({timeout:k=null}={}){if(J)return J;await 1;let a;return J=Promise.race([new Promise((N0)=>k!==null&&(a=setTimeout(w0,k*1000,N0))),Promise.all(K.map((N0)=>N0.end()).concat(C.sql?C.sql.end({timeout:0}):[],Y.sql?Y.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(a))}async function e(){await Promise.all(K.map((k)=>k.end()))}async function w0(k){await Promise.all(K.map((a)=>a.terminate()));while(G.length)G.shift().reject(t0.connection("CONNECTION_DESTROYED",X));k()}function s0(k,a){return c(k,H),k.connect(a),k}function D1(k){c(k,F)}function wW(k){if(G.length===0)return c(k,T);let a=Math.ceil(G.length/(H.length+1)),N0=!0;while(N0&&G.length&&a-- >0){let g0=G.shift();if(g0.reserve)return g0.reserve(k);N0=k.execute(g0)}N0?c(k,U):c(k,M)}function q8(k,a){c(k,z),k.reserved=null,k.onclose&&(k.onclose(a),k.onclose=null),X.onclose&&X.onclose(k.id),G.length&&s0(k,G.shift())}}function SO(W,$){if(W&&W.shared)return W;let X=process.env,Y=(!W||typeof W==="string"?$:W)||{},{url:J,multihost:G}=jO(W),H=[...J.searchParams].reduce((M,[V,K])=>(M[V]=K,M),{}),Q=Y.hostname||Y.host||G||J.hostname||X.PGHOST||"localhost",z=Y.port||J.port||X.PGPORT||5432,F=Y.user||Y.username||J.username||X.PGUSERNAME||X.PGUSER||fO();Y.no_prepare&&(Y.prepare=!1),H.sslmode&&(H.ssl=H.sslmode,delete H.sslmode),"timeout"in Y&&(console.log("The timeout option is deprecated, use idle_timeout instead"),Y.idle_timeout=Y.timeout),H.sslrootcert==="system"&&(H.ssl="verify-full");let T=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],U={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:kO,max_pipeline:100,backoff:CO,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(Q)?Q:Q.split(",").map((M)=>M.split(":")[0]),port:Array.isArray(z)?z:Q.split(",").map((M)=>parseInt(M.split(":")[1]||z)),path:Y.path||Q.indexOf("/")>-1&&Q+"/.s.PGSQL."+z,database:Y.database||Y.db||(J.pathname||"").slice(1)||X.PGDATABASE||F,user:F,pass:Y.pass||Y.password||J.password||X.PGPASSWORD||"",...Object.entries(U).reduce((M,[V,K])=>{let N=V in Y?Y[V]:(V in H)?H[V]==="disable"||H[V]==="false"?!1:H[V]:X["PG"+V.toUpperCase()]||K;return M[V]=typeof N==="string"&&T.includes(V)?+N:N,M},{}),connection:{application_name:"postgres.js",...Y.connection,...Object.entries(H).reduce((M,[V,K])=>((V in U)||(M[V]=K),M),{})},types:Y.types||{},target_session_attrs:qO(Y,J,X),onnotice:Y.onnotice,onnotify:Y.onnotify,onclose:Y.onclose,onparameter:Y.onparameter,socket:Y.socket,transform:IO(Y.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...pF(Y.types)}}function qO(W,$,X){let Y=W.target_session_attrs||$.searchParams.get("target_session_attrs")||X.PGTARGETSESSIONATTRS;if(!Y||["read-write","read-only","primary","standby","prefer-standby"].includes(Y))return Y;throw new Error("target_session_attrs "+Y+" is not supported")}function CO(W){return(0.5+Math.random()/2)*Math.min(3**W/100,20)}function kO(){return 60*(30+Math.random()*30)}function IO(W){return{undefined:W.undefined,column:{from:typeof W.column==="function"?W.column:W.column&&W.column.from,to:W.column&&W.column.to},value:{from:typeof W.value==="function"?W.value:W.value&&W.value.from,to:W.value&&W.value.to},row:{from:typeof W.row==="function"?W.row:W.row&&W.row.from,to:W.row&&W.row.to}}}function jO(W){if(!W||typeof W!=="string")return{url:{searchParams:new Map}};let $=W;$=$.slice($.indexOf("://")+3).split(/[?/]/)[0],$=decodeURIComponent($.slice($.indexOf("@")+1));let X=new URL(W.replace($,$.split(",")[0]));return{url:{username:decodeURIComponent(X.username),password:decodeURIComponent(X.password),host:X.host,hostname:X.hostname,port:X.port,pathname:X.pathname,searchParams:X.searchParams},multihost:$.indexOf(",")>-1&&$}}function fO(){try{return RO.userInfo().username}catch(W){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class i0{static[_]="SelectionProxyHandler";config;constructor(W){this.config={...W}}get(W,$){if($==="_")return{...W._,selectedFields:new Proxy(W._.selectedFields,this)};if($===f0)return{...W[f0],selectedFields:new Proxy(W[f0].selectedFields,this)};if(typeof $==="symbol")return W[$];let Y=(A(W,G1)?W._.selectedFields:A(W,y1)?W[f0].selectedFields:W)[$];if(A(Y,g.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!Y.isSelectionField)return Y.sql;let J=Y.clone();return J.isSelectionField=!0,J}if(A(Y,g)){if(this.config.sqlBehavior==="sql")return Y;throw new Error(`You tried to reference "${$}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(A(Y,S0)){if(this.config.alias)return new Proxy(Y,new U$(new Proxy(Y.table,new $6(this.config.alias,this.config.replaceOriginalName??!1))));return Y}if(typeof Y!=="object"||Y===null)return Y;return new Proxy(Y,new i0(this.config))}}class jY extends C1{constructor(W,$,X,Y){super();this.session=$,this.dialect=X,this.config={table:W,withList:Y}}static[_]="PgDelete";config;where(W){return this.config.where=W,this}returning(W=this.config.table[y.Symbol.Columns]){return this.config.returningFields=W,this.config.returning=GW(W),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:W,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(W){return q0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,W,!0)})}prepare(W){return this._prepare(W)}authToken;setToken(W){return this.authToken=W,this}execute=(W)=>{return q0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(W,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new i0({alias:U1(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}function PO(W){return(W.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((X)=>X.toLowerCase()).join("_")}function xO(W){return(W.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((X,Y,J)=>{let G=J===0?Y.toLowerCase():`${Y[0].toUpperCase()}${Y.slice(1)}`;return X+G},"")}function vO(W){return W}class w5{static[_]="CasingCache";cache={};cachedTables={};convert;constructor(W){this.convert=W==="snake_case"?PO:W==="camelCase"?xO:vO}getColumnCasing(W){if(!W.keyAsName)return W.name;let $=W.table[y.Symbol.Schema]??"public",X=W.table[y.Symbol.OriginalName],Y=`${$}.${X}.${W.name}`;if(!this.cache[Y])this.cacheTable(W.table);return this.cache[Y]}cacheTable(W){let $=W[y.Symbol.Schema]??"public",X=W[y.Symbol.OriginalName],Y=`${$}.${X}`;if(!this.cachedTables[Y]){for(let J of Object.values(W[y.Symbol.Columns])){let G=`${Y}.${J.name}`;this.cache[G]=this.convert(J.name)}this.cachedTables[Y]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class _6 extends y1{static[_]="PgViewBase"}class L8{static[_]="PgDialect";casing;constructor(W){this.casing=new w5(W?.casing)}async migrate(W,$,X){let Y=typeof X==="string"?"__drizzle_migrations":X.migrationsTable??"__drizzle_migrations",J=typeof X==="string"?"drizzle":X.migrationsSchema??"drizzle",G=D`
77
+ `};return Y(z),new Promise(async(U)=>H=U);async function F({highWaterMark:U=16384,start:M=0,end:O=1/0}={}){let K=O-M;return M&&await z.seek(M),new sF.Readable({highWaterMark:U,async read(N){let I=N>K?N-K:N;K-=N;let[{data:C}]=await z.read(I);if(this.push(C),C.length<N)this.push(null)}})}async function T({highWaterMark:U=16384,start:M=0}={}){return M&&await z.seek(M),new sF.Writable({highWaterMark:U,write(O,K,N){z.write(O).then(()=>N(),N)}})}}).catch(J)})}Object.assign(IY,{PostgresError:M$,toPascal:O8,pascal:J5,toCamel:D8,camel:Y5,toKebab:V8,kebab:G5,fromPascal:T6,fromCamel:F6,fromKebab:U6,BigInt:{to:20,from:[20],parse:(W)=>BigInt(W),serialize:(W)=>W.toString()}});var D$=IY;function IY(W,$){let X=SV(W,$),Y=X.no_subscribe||T5(IY,{...X}),J=!1,G=s1(),H=s1(),Q=s1(),z=s1(),F=s1(),T=s1(),U=s1(),M=s1(),O={connecting:H,reserved:Q,closed:z,ended:F,open:T,busy:U,full:M},K=[...Array(X.max)].map(()=>F5(X,O,{onopen:wW,onend:D1,onclose:q8})),N=I(U0);return Object.assign(N,{get parameters(){return X.parameters},largeObject:U5.bind(null,N),subscribe:Y,CLOSE:w$,END:w$,PostgresError:M$,options:X,reserve:q,listen:C,begin:m,close:e,end:_0}),N;function I(k){return k.debug=X.debug,Object.entries(X.types).reduce((F0,[k0,n0])=>{return F0[k0]=(p0)=>new mW(p0,n0.to),F0},a),Object.assign(N0,{types:a,typed:a,unsafe:g0,notify:R,array:h,json:v,file:e0}),N0;function a(F0,k0){return new mW(F0,k0)}function N0(F0,...k0){return F0&&Array.isArray(F0.raw)?new QW(F0,k0,k,E):typeof F0==="string"&&!k0.length?new w6(X.transform.column.to?X.transform.column.to(F0):F0):new BY(F0,k0)}function g0(F0,k0=[],n0={}){return arguments.length===2&&!Array.isArray(k0)&&(n0=k0,k0=[]),new QW([F0],k0,k,E,{prepare:!1,...n0,simple:"simple"in n0?n0.simple:k0.length===0})}function e0(F0,k0=[],n0={}){return arguments.length===2&&!Array.isArray(k0)&&(n0=k0,k0=[]),new QW([],k0,(v0)=>{ZV.readFile(F0,"utf8",(O1,I0)=>{if(O1)return v0.reject(O1);v0.strings=[I0],k(v0)})},E,{...n0,simple:"simple"in n0?n0.simple:k0.length===0})}}async function C(k,a,N0){let g0={fn:a,onlisten:N0},e0=C.sql||(C.sql=IY({...X,max:1,idle_timeout:null,max_lifetime:null,fetch_types:!1,onclose(){Object.entries(C.channels).forEach(([v0,{listeners:O1}])=>{delete C.channels[v0],Promise.all(O1.map((I0)=>C(v0,I0.fn,I0.onlisten).catch(()=>{})))})},onnotify(v0,O1){v0 in C.channels&&C.channels[v0].listeners.forEach((I0)=>I0.fn(O1))}})),F0=C.channels||(C.channels={});if(k in F0){F0[k].listeners.push(g0);let v0=await F0[k].result;return g0.onlisten&&g0.onlisten(),{state:v0.state,unlisten:p0}}F0[k]={result:e0`listen ${e0.unsafe('"'+k.replace(/"/g,'""')+'"')}`,listeners:[g0]};let n0=await F0[k].result;return g0.onlisten&&g0.onlisten(),{state:n0.state,unlisten:p0};async function p0(){if(k in F0===!1)return;if(F0[k].listeners=F0[k].listeners.filter((v0)=>v0!==g0),F0[k].listeners.length)return;return delete F0[k],e0`unlisten ${e0.unsafe('"'+k.replace(/"/g,'""')+'"')}`}}async function R(k,a){return await N`select pg_notify(${k}, ${""+a})`}async function q(){let k=s1(),a=T.length?T.shift():await new Promise((e0)=>{G.push({reserve:e0}),z.length&&s0(z.shift())});c(a,Q),a.reserved=()=>k.length?a.execute(k.shift()):c(a,Q),a.reserved.release=!0;let N0=I(g0);return N0.release=()=>{a.reserved=null,wW(a)},N0;function g0(e0){a.queue===M?k.push(e0):a.execute(e0)||c(a,M)}}async function m(k,a){!a&&(a=k,k="");let N0=s1(),g0=0,e0,F0=null;try{return await N.unsafe("begin "+k.replace(/[^a-z ]/ig,""),[],{onexecute:n0}).execute(),await Promise.race([k0(e0,a),new Promise((p0,v0)=>e0.onclose=v0)])}catch(p0){throw p0}async function k0(p0,v0,O1){let I0=I(W1);I0.savepoint=O2,I0.prepare=(b0)=>F0=b0.replace(/[^a-z0-9$-_. ]/gi);let MW,V1;O1&&await I0`savepoint ${I0(O1)}`;try{if(V1=await new Promise((b0,_W)=>{let CW=v0(I0);Promise.resolve(Array.isArray(CW)?Promise.all(CW):CW).then(b0,_W)}),MW)throw MW}catch(b0){throw await(O1?I0`rollback to ${I0(O1)}`:I0`rollback`),b0 instanceof M$&&b0.code==="25P02"&&MW||b0}if(!O1)F0?await I0`prepare transaction '${I0.unsafe(F0)}'`:await I0`commit`;return V1;function O2(b0,_W){if(b0&&Array.isArray(b0.raw))return O2((CW)=>CW.apply(CW,arguments));return arguments.length===1&&(_W=b0,b0=null),k0(p0,_W,"s"+g0+++(b0?"_"+b0:""))}function W1(b0){b0.catch((_W)=>MW||(MW=_W)),p0.queue===M?N0.push(b0):p0.execute(b0)||c(p0,M)}}function n0(p0){e0=p0,c(p0,Q),p0.reserved=()=>N0.length?p0.execute(N0.shift()):c(p0,Q)}}function c(k,a){return k.queue.remove(k),a.push(k),k.queue=a,a===T?k.idleTimer.start():k.idleTimer.cancel(),k}function v(k){return new mW(k,3802)}function h(k,a){if(!Array.isArray(k))return h(Array.from(arguments));return new mW(k,a||(k.length?NY(k)||25:0),X.shared.typeArrayMap)}function U0(k){if(J)return k.reject(t0.connection("CONNECTION_ENDED",X,X));if(T.length)return m0(T.shift(),k);if(z.length)return s0(z.shift(),k);U.length?m0(U.shift(),k):G.push(k)}function m0(k,a){return k.execute(a)?c(k,U):c(k,M)}function E(k){return new Promise((a,N0)=>{k.state?k.active?F5(X).cancel(k.state,a,N0):k.cancelled={resolve:a,reject:N0}:(G.remove(k),k.cancelled=!0,k.reject(t0.generic("57014","canceling statement due to user request")),a())})}async function _0({timeout:k=null}={}){if(J)return J;await 1;let a;return J=Promise.race([new Promise((N0)=>k!==null&&(a=setTimeout(w0,k*1000,N0))),Promise.all(K.map((N0)=>N0.end()).concat(C.sql?C.sql.end({timeout:0}):[],Y.sql?Y.sql.end({timeout:0}):[]))]).then(()=>clearTimeout(a))}async function e(){await Promise.all(K.map((k)=>k.end()))}async function w0(k){await Promise.all(K.map((a)=>a.terminate()));while(G.length)G.shift().reject(t0.connection("CONNECTION_DESTROYED",X));k()}function s0(k,a){return c(k,H),k.connect(a),k}function D1(k){c(k,F)}function wW(k){if(G.length===0)return c(k,T);let a=Math.ceil(G.length/(H.length+1)),N0=!0;while(N0&&G.length&&a-- >0){let g0=G.shift();if(g0.reserve)return g0.reserve(k);N0=k.execute(g0)}N0?c(k,U):c(k,M)}function q8(k,a){c(k,z),k.reserved=null,k.onclose&&(k.onclose(a),k.onclose=null),X.onclose&&X.onclose(k.id),G.length&&s0(k,G.shift())}}function SV(W,$){if(W&&W.shared)return W;let X=process.env,Y=(!W||typeof W==="string"?$:W)||{},{url:J,multihost:G}=jV(W),H=[...J.searchParams].reduce((M,[O,K])=>(M[O]=K,M),{}),Q=Y.hostname||Y.host||G||J.hostname||X.PGHOST||"localhost",z=Y.port||J.port||X.PGPORT||5432,F=Y.user||Y.username||J.username||X.PGUSERNAME||X.PGUSER||fV();Y.no_prepare&&(Y.prepare=!1),H.sslmode&&(H.ssl=H.sslmode,delete H.sslmode),"timeout"in Y&&(console.log("The timeout option is deprecated, use idle_timeout instead"),Y.idle_timeout=Y.timeout),H.sslrootcert==="system"&&(H.ssl="verify-full");let T=["idle_timeout","connect_timeout","max_lifetime","max_pipeline","backoff","keep_alive"],U={max:10,ssl:!1,idle_timeout:null,connect_timeout:30,max_lifetime:kV,max_pipeline:100,backoff:CV,keep_alive:60,prepare:!0,debug:!1,fetch_types:!0,publications:"alltables",target_session_attrs:null};return{host:Array.isArray(Q)?Q:Q.split(",").map((M)=>M.split(":")[0]),port:Array.isArray(z)?z:Q.split(",").map((M)=>parseInt(M.split(":")[1]||z)),path:Y.path||Q.indexOf("/")>-1&&Q+"/.s.PGSQL."+z,database:Y.database||Y.db||(J.pathname||"").slice(1)||X.PGDATABASE||F,user:F,pass:Y.pass||Y.password||J.password||X.PGPASSWORD||"",...Object.entries(U).reduce((M,[O,K])=>{let N=O in Y?Y[O]:(O in H)?H[O]==="disable"||H[O]==="false"?!1:H[O]:X["PG"+O.toUpperCase()]||K;return M[O]=typeof N==="string"&&T.includes(O)?+N:N,M},{}),connection:{application_name:"postgres.js",...Y.connection,...Object.entries(H).reduce((M,[O,K])=>((O in U)||(M[O]=K),M),{})},types:Y.types||{},target_session_attrs:qV(Y,J,X),onnotice:Y.onnotice,onnotify:Y.onnotify,onclose:Y.onclose,onparameter:Y.onparameter,socket:Y.socket,transform:IV(Y.transform||{undefined:void 0}),parameters:{},shared:{retries:0,typeArrayMap:{}},...pF(Y.types)}}function qV(W,$,X){let Y=W.target_session_attrs||$.searchParams.get("target_session_attrs")||X.PGTARGETSESSIONATTRS;if(!Y||["read-write","read-only","primary","standby","prefer-standby"].includes(Y))return Y;throw new Error("target_session_attrs "+Y+" is not supported")}function CV(W){return(0.5+Math.random()/2)*Math.min(3**W/100,20)}function kV(){return 60*(30+Math.random()*30)}function IV(W){return{undefined:W.undefined,column:{from:typeof W.column==="function"?W.column:W.column&&W.column.from,to:W.column&&W.column.to},value:{from:typeof W.value==="function"?W.value:W.value&&W.value.from,to:W.value&&W.value.to},row:{from:typeof W.row==="function"?W.row:W.row&&W.row.from,to:W.row&&W.row.to}}}function jV(W){if(!W||typeof W!=="string")return{url:{searchParams:new Map}};let $=W;$=$.slice($.indexOf("://")+3).split(/[?/]/)[0],$=decodeURIComponent($.slice($.indexOf("@")+1));let X=new URL(W.replace($,$.split(",")[0]));return{url:{username:decodeURIComponent(X.username),password:decodeURIComponent(X.password),host:X.host,hostname:X.hostname,port:X.port,pathname:X.pathname,searchParams:X.searchParams},multihost:$.indexOf(",")>-1&&$}}function fV(){try{return BV.userInfo().username}catch(W){return process.env.USERNAME||process.env.USER||process.env.LOGNAME}}class i0{static[_]="SelectionProxyHandler";config;constructor(W){this.config={...W}}get(W,$){if($==="_")return{...W._,selectedFields:new Proxy(W._.selectedFields,this)};if($===f0)return{...W[f0],selectedFields:new Proxy(W[f0].selectedFields,this)};if(typeof $==="symbol")return W[$];let Y=(A(W,G1)?W._.selectedFields:A(W,y1)?W[f0].selectedFields:W)[$];if(A(Y,g.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!Y.isSelectionField)return Y.sql;let J=Y.clone();return J.isSelectionField=!0,J}if(A(Y,g)){if(this.config.sqlBehavior==="sql")return Y;throw new Error(`You tried to reference "${$}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(A(Y,S0)){if(this.config.alias)return new Proxy(Y,new U$(new Proxy(Y.table,new $6(this.config.alias,this.config.replaceOriginalName??!1))));return Y}if(typeof Y!=="object"||Y===null)return Y;return new Proxy(Y,new i0(this.config))}}class jY extends C1{constructor(W,$,X,Y){super();this.session=$,this.dialect=X,this.config={table:W,withList:Y}}static[_]="PgDelete";config;where(W){return this.config.where=W,this}returning(W=this.config.table[y.Symbol.Columns]){return this.config.returningFields=W,this.config.returning=GW(W),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:W,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(W){return q0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,W,!0)})}prepare(W){return this._prepare(W)}authToken;setToken(W){return this.authToken=W,this}execute=(W)=>{return q0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(W,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new i0({alias:U1(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}function PV(W){return(W.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((X)=>X.toLowerCase()).join("_")}function xV(W){return(W.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((X,Y,J)=>{let G=J===0?Y.toLowerCase():`${Y[0].toUpperCase()}${Y.slice(1)}`;return X+G},"")}function vV(W){return W}class w5{static[_]="CasingCache";cache={};cachedTables={};convert;constructor(W){this.convert=W==="snake_case"?PV:W==="camelCase"?xV:vV}getColumnCasing(W){if(!W.keyAsName)return W.name;let $=W.table[y.Symbol.Schema]??"public",X=W.table[y.Symbol.OriginalName],Y=`${$}.${X}.${W.name}`;if(!this.cache[Y])this.cacheTable(W.table);return this.cache[Y]}cacheTable(W){let $=W[y.Symbol.Schema]??"public",X=W[y.Symbol.OriginalName],Y=`${$}.${X}`;if(!this.cachedTables[Y]){for(let J of Object.values(W[y.Symbol.Columns])){let G=`${Y}.${J.name}`;this.cache[G]=this.convert(J.name)}this.cachedTables[Y]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class _6 extends y1{static[_]="PgViewBase"}class L8{static[_]="PgDialect";casing;constructor(W){this.casing=new w5(W?.casing)}async migrate(W,$,X){let Y=typeof X==="string"?"__drizzle_migrations":X.migrationsTable??"__drizzle_migrations",J=typeof X==="string"?"drizzle":X.migrationsSchema??"drizzle",G=D`
78
78
  CREATE TABLE IF NOT EXISTS ${D.identifier(J)}.${D.identifier(Y)} (
79
79
  id SERIAL PRIMARY KEY,
80
80
  hash text NOT NULL,
81
81
  created_at bigint
82
82
  )
83
- `;await $.execute(D`CREATE SCHEMA IF NOT EXISTS ${D.identifier(J)}`),await $.execute(G);let Q=(await $.all(D`select id, hash, created_at from ${D.identifier(J)}.${D.identifier(Y)} order by created_at desc limit 1`))[0];await $.transaction(async(z)=>{for await(let F of W)if(!Q||Number(Q.created_at)<F.folderMillis){for(let T of F.sql)await z.execute(D.raw(T));await z.execute(D`insert into ${D.identifier(J)}.${D.identifier(Y)} ("hash", "created_at") values(${F.hash}, ${F.folderMillis})`)}})}escapeName(W){return`"${W}"`}escapeParam(W){return`$${W+1}`}escapeString(W){return`'${W.replace(/'/g,"''")}'`}buildWithCTE(W){if(!W?.length)return;let $=[D`with `];for(let[X,Y]of W.entries())if($.push(D`${D.identifier(Y._.alias)} as (${Y._.sql})`),X<W.length-1)$.push(D`, `);return $.push(D` `),D.join($)}buildDeleteQuery({table:W,where:$,returning:X,withList:Y}){let J=this.buildWithCTE(Y),G=X?D` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,H=$?D` where ${$}`:void 0;return D`${J}delete from ${W}${H}${G}`}buildUpdateSet(W,$){let X=W[y.Symbol.Columns],Y=Object.keys(X).filter((G)=>$[G]!==void 0||X[G]?.onUpdateFn!==void 0),J=Y.length;return D.join(Y.flatMap((G,H)=>{let Q=X[G],z=$[G]??D.param(Q.onUpdateFn(),Q),F=D`${D.identifier(this.casing.getColumnCasing(Q))} = ${z}`;if(H<J-1)return[F,D.raw(", ")];return[F]}))}buildUpdateQuery({table:W,set:$,where:X,returning:Y,withList:J,from:G,joins:H}){let Q=this.buildWithCTE(J),z=W[_1.Symbol.Name],F=W[_1.Symbol.Schema],T=W[_1.Symbol.OriginalName],U=z===T?void 0:z,M=D`${F?D`${D.identifier(F)}.`:void 0}${D.identifier(T)}${U&&D` ${D.identifier(U)}`}`,V=this.buildUpdateSet(W,$),K=G&&D.join([D.raw(" from "),this.buildFromTable(G)]),N=this.buildJoins(H),I=Y?D` returning ${this.buildSelection(Y,{isSingleTable:!G})}`:void 0,C=X?D` where ${X}`:void 0;return D`${Q}update ${M} set ${V}${K}${N}${C}${I}`}buildSelection(W,{isSingleTable:$=!1}={}){let X=W.length,Y=W.flatMap(({field:J},G)=>{let H=[];if(A(J,g.Aliased)&&J.isSelectionField)H.push(D.identifier(J.fieldAlias));else if(A(J,g.Aliased)||A(J,g)){let Q=A(J,g.Aliased)?J.sql:J;if($)H.push(new g(Q.queryChunks.map((z)=>{if(A(z,j))return D.identifier(this.casing.getColumnCasing(z));return z})));else H.push(Q);if(A(J,g.Aliased))H.push(D` as ${D.identifier(J.fieldAlias)}`)}else if(A(J,S0))if($)H.push(D.identifier(this.casing.getColumnCasing(J)));else H.push(J);if(G<X-1)H.push(D`, `);return H});return D.join(Y)}buildJoins(W){if(!W||W.length===0)return;let $=[];for(let[X,Y]of W.entries()){if(X===0)$.push(D` `);let J=Y.table,G=Y.lateral?D` lateral`:void 0,H=Y.on?D` on ${Y.on}`:void 0;if(A(J,_1)){let Q=J[_1.Symbol.Name],z=J[_1.Symbol.Schema],F=J[_1.Symbol.OriginalName],T=Q===F?void 0:Y.alias;$.push(D`${D.raw(Y.joinType)} join${G} ${z?D`${D.identifier(z)}.`:void 0}${D.identifier(F)}${T&&D` ${D.identifier(T)}`}${H}`)}else if(A(J,y1)){let Q=J[f0].name,z=J[f0].schema,F=J[f0].originalName,T=Q===F?void 0:Y.alias;$.push(D`${D.raw(Y.joinType)} join${G} ${z?D`${D.identifier(z)}.`:void 0}${D.identifier(F)}${T&&D` ${D.identifier(T)}`}${H}`)}else $.push(D`${D.raw(Y.joinType)} join${G} ${J}${H}`);if(X<W.length-1)$.push(D` `)}return D.join($)}buildFromTable(W){if(A(W,y)&&W[y.Symbol.IsAlias]){let $=D`${D.identifier(W[y.Symbol.OriginalName])}`;if(W[y.Symbol.Schema])$=D`${D.identifier(W[y.Symbol.Schema])}.${$}`;return D`${$} ${D.identifier(W[y.Symbol.Name])}`}return W}buildSelectQuery({withList:W,fields:$,fieldsFlat:X,where:Y,having:J,table:G,joins:H,orderBy:Q,groupBy:z,limit:F,offset:T,lockingClause:U,distinct:M,setOperators:V}){let K=X??GW($);for(let w0 of K)if(A(w0.field,S0)&&U1(w0.field.table)!==(A(G,G1)?G._.alias:A(G,_6)?G[f0].name:A(G,g)?void 0:U1(G))&&!((s0)=>H?.some(({alias:D1})=>D1===(s0[y.Symbol.IsAlias]?U1(s0):s0[y.Symbol.BaseName])))(w0.field.table)){let s0=U1(w0.field.table);throw new Error(`Your "${w0.path.join("->")}" field references a column "${s0}"."${w0.field.name}", but the table "${s0}" is not part of the query! Did you forget to join it?`)}let N=!H||H.length===0,I=this.buildWithCTE(W),C;if(M)C=M===!0?D` distinct`:D` distinct on (${D.join(M.on,D`, `)})`;let B=this.buildSelection(K,{isSingleTable:N}),q=this.buildFromTable(G),m=this.buildJoins(H),c=Y?D` where ${Y}`:void 0,v=J?D` having ${J}`:void 0,h;if(Q&&Q.length>0)h=D` order by ${D.join(Q,D`, `)}`;let U0;if(z&&z.length>0)U0=D` group by ${D.join(z,D`, `)}`;let m0=typeof F==="object"||typeof F==="number"&&F>=0?D` limit ${F}`:void 0,E=T?D` offset ${T}`:void 0,_0=D.empty();if(U){let w0=D` for ${D.raw(U.strength)}`;if(U.config.of)w0.append(D` of ${D.join(Array.isArray(U.config.of)?U.config.of:[U.config.of],D`, `)}`);if(U.config.noWait)w0.append(D` nowait`);else if(U.config.skipLocked)w0.append(D` skip locked`);_0.append(w0)}let e=D`${I}select${C} ${B} from ${q}${m}${c}${U0}${v}${h}${m0}${E}${_0}`;if(V.length>0)return this.buildSetOperations(e,V);return e}buildSetOperations(W,$){let[X,...Y]=$;if(!X)throw new Error("Cannot pass undefined values to any set operator");if(Y.length===0)return this.buildSetOperationQuery({leftSelect:W,setOperator:X});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:W,setOperator:X}),Y)}buildSetOperationQuery({leftSelect:W,setOperator:{type:$,isAll:X,rightSelect:Y,limit:J,orderBy:G,offset:H}}){let Q=D`(${W.getSQL()}) `,z=D`(${Y.getSQL()})`,F;if(G&&G.length>0){let V=[];for(let K of G)if(A(K,j))V.push(D.identifier(K.name));else if(A(K,g)){for(let N=0;N<K.queryChunks.length;N++){let I=K.queryChunks[N];if(A(I,j))K.queryChunks[N]=D.identifier(I.name)}V.push(D`${K}`)}else V.push(D`${K}`);F=D` order by ${D.join(V,D`, `)} `}let T=typeof J==="object"||typeof J==="number"&&J>=0?D` limit ${J}`:void 0,U=D.raw(`${$} ${X?"all ":""}`),M=H?D` offset ${H}`:void 0;return D`${Q}${U}${z}${F}${T}${M}`}buildInsertQuery({table:W,values:$,onConflict:X,returning:Y,withList:J,select:G,overridingSystemValue_:H}){let Q=[],z=W[y.Symbol.Columns],F=Object.entries(z).filter(([I,C])=>!C.shouldDisableInsert()),T=F.map(([,I])=>D.identifier(this.casing.getColumnCasing(I)));if(G){let I=$;if(A(I,g))Q.push(I);else Q.push(I.getSQL())}else{let I=$;Q.push(D.raw("values "));for(let[C,B]of I.entries()){let q=[];for(let[m,c]of F){let v=B[m];if(v===void 0||A(v,a1)&&v.value===void 0)if(c.defaultFn!==void 0){let h=c.defaultFn(),U0=A(h,g)?h:D.param(h,c);q.push(U0)}else if(!c.default&&c.onUpdateFn!==void 0){let h=c.onUpdateFn(),U0=A(h,g)?h:D.param(h,c);q.push(U0)}else q.push(D`default`);else q.push(v)}if(Q.push(q),C<I.length-1)Q.push(D`, `)}}let U=this.buildWithCTE(J),M=D.join(Q),V=Y?D` returning ${this.buildSelection(Y,{isSingleTable:!0})}`:void 0,K=X?D` on conflict ${X}`:void 0,N=H===!0?D`overriding system value `:void 0;return D`${U}insert into ${W} ${T} ${N}${M}${K}${V}`}buildRefreshMaterializedViewQuery({view:W,concurrently:$,withNoData:X}){let Y=$?D` concurrently`:void 0,J=X?D` with no data`:void 0;return D`refresh materialized view${Y} ${W}${J}`}prepareTyping(W){if(A(W,UY)||A(W,TY))return"json";else if(A(W,wY))return"decimal";else if(A(W,MY))return"time";else if(A(W,_Y)||A(W,DY))return"timestamp";else if(A(W,zY)||A(W,FY))return"date";else if(A(W,VY))return"uuid";else return"none"}sqlToQuery(W,$){return W.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:$})}buildRelationalQueryWithoutPK({fullSchema:W,schema:$,tableNamesMap:X,table:Y,tableConfig:J,queryConfig:G,tableAlias:H,nestedQueryRelation:Q,joinOn:z}){let F=[],T,U,M=[],V,K=[];if(G===!0)F=Object.entries(J.columns).map(([C,B])=>({dbKey:B.name,tsKey:C,field:gW(B,H),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let I=Object.fromEntries(Object.entries(J.columns).map(([v,h])=>[v,gW(h,H)]));if(G.where){let v=typeof G.where==="function"?G.where(I,CF()):G.where;V=v&&X6(v,H)}let C=[],B=[];if(G.columns){let v=!1;for(let[h,U0]of Object.entries(G.columns)){if(U0===void 0)continue;if(h in J.columns){if(!v&&U0===!0)v=!0;B.push(h)}}if(B.length>0)B=v?B.filter((h)=>G.columns?.[h]===!0):Object.keys(J.columns).filter((h)=>!B.includes(h))}else B=Object.keys(J.columns);for(let v of B){let h=J.columns[v];C.push({tsKey:v,value:h})}let q=[];if(G.with)q=Object.entries(G.with).filter((v)=>!!v[1]).map(([v,h])=>({tsKey:v,queryConfig:h,relation:J.relations[v]}));let m;if(G.extras){m=typeof G.extras==="function"?G.extras(I,{sql:D}):G.extras;for(let[v,h]of Object.entries(m))C.push({tsKey:v,value:pJ(h,H)})}for(let{tsKey:v,value:h}of C)F.push({dbKey:A(h,g.Aliased)?h.fieldAlias:J.columns[v].name,tsKey:v,field:A(h,S0)?gW(h,H):h,relationTableTsKey:void 0,isJson:!1,selection:[]});let c=typeof G.orderBy==="function"?G.orderBy(I,kF()):G.orderBy??[];if(!Array.isArray(c))c=[c];M=c.map((v)=>{if(A(v,S0))return gW(v,H);return X6(v,H)}),T=G.limit,U=G.offset;for(let{tsKey:v,queryConfig:h,relation:U0}of q){let m0=jF($,X,U0),E=_8(U0.referencedTable),_0=X[E],e=`${H}_${v}`,w0=Q6(...m0.fields.map((wW,q8)=>OY(gW(m0.references[q8],e),gW(wW,H)))),s0=this.buildRelationalQueryWithoutPK({fullSchema:W,schema:$,tableNamesMap:X,table:W[_0],tableConfig:$[_0],queryConfig:A(U0,P2)?h===!0?{limit:1}:{...h,limit:1}:h,tableAlias:e,joinOn:w0,nestedQueryRelation:U0}),D1=D`${D.identifier(e)}.${D.identifier("data")}`.as(v);K.push({on:D`true`,table:new G1(s0.sql,{},e),alias:e,joinType:"left",lateral:!0}),F.push({dbKey:v,tsKey:v,field:D1,relationTableTsKey:_0,isJson:!0,selection:s0.selection})}}if(F.length===0)throw new HY({message:`No fields selected for table "${J.tsName}" ("${H}")`});let N;if(V=Q6(z,V),Q){let I=D`json_build_array(${D.join(F.map(({field:q,tsKey:m,isJson:c})=>c?D`${D.identifier(`${H}_${m}`)}.${D.identifier("data")}`:A(q,g.Aliased)?q.sql:q),D`, `)})`;if(A(Q,z6))I=D`coalesce(json_agg(${I}${M.length>0?D` order by ${D.join(M,D`, `)}`:void 0}), '[]'::json)`;let C=[{dbKey:"data",tsKey:"data",field:I.as("data"),isJson:!0,relationTableTsKey:J.tsName,selection:F}];if(T!==void 0||U!==void 0||M.length>0)N=this.buildSelectQuery({table:GY(Y,H),fields:{},fieldsFlat:[{path:[],field:D.raw("*")}],where:V,limit:T,offset:U,orderBy:M,setOperators:[]}),V=void 0,T=void 0,U=void 0,M=[];else N=GY(Y,H);N=this.buildSelectQuery({table:A(N,_1)?N:new G1(N,{},H),fields:{},fieldsFlat:C.map(({field:q})=>({path:[],field:A(q,S0)?gW(q,H):q})),joins:K,where:V,limit:T,offset:U,orderBy:M,setOperators:[]})}else N=this.buildSelectQuery({table:GY(Y,H),fields:{},fieldsFlat:F.map(({field:I})=>({path:[],field:A(I,S0)?gW(I,H):I})),joins:K,where:V,limit:T,offset:U,orderBy:M,setOperators:[]});return{tableTsKey:J.tsName,sql:N,selection:F}}}class M5{static[_]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class I1{static[_]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(W){if(this.fields=W.fields,this.session=W.session,this.dialect=W.dialect,W.withList)this.withList=W.withList;this.distinct=W.distinct}authToken;setToken(W){return this.authToken=W,this}from(W){let $=!!this.fields,X=W,Y;if(this.fields)Y=this.fields;else if(A(X,G1))Y=Object.fromEntries(Object.keys(X._.selectedFields).map((J)=>[J,X[J]]));else if(A(X,_6))Y=X[f0].selectedFields;else if(A(X,g))Y={};else Y=zQ(X);return new _5({table:X,fields:Y,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class eF extends M5{static[_]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:W,fields:$,isPartialSelect:X,session:Y,dialect:J,withList:G,distinct:H}){super();this.config={withList:G,table:W,fields:{...$},distinct:H,setOperators:[]},this.isPartialSelect=X,this.session=Y,this.dialect=J,this._={selectedFields:$},this.tableName=Y2(W),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(W,$){return(X,Y)=>{let J=this.tableName,G=Y2(X);if(typeof G==="string"&&this.config.joins?.some((H)=>H.alias===G))throw new Error(`Alias "${G}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof J==="string")this.config.fields={[J]:this.config.fields};if(typeof G==="string"&&!A(X,g)){let H=A(X,G1)?X._.selectedFields:A(X,y1)?X[f0].selectedFields:X[y.Symbol.Columns];this.config.fields[G]=H}}if(typeof Y==="function")Y=Y(new Proxy(this.config.fields,new i0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:Y,table:X,joinType:W,alias:G,lateral:$}),typeof G==="string")switch(W){case"left":{this.joinsNotNullableMap[G]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([H])=>[H,!1])),this.joinsNotNullableMap[G]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[G]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([H])=>[H,!1])),this.joinsNotNullableMap[G]=!1;break}}return this}}leftJoin=this.createJoin("left",!1);leftJoinLateral=this.createJoin("left",!0);rightJoin=this.createJoin("right",!1);innerJoin=this.createJoin("inner",!1);innerJoinLateral=this.createJoin("inner",!0);fullJoin=this.createJoin("full",!1);crossJoin=this.createJoin("cross",!1);crossJoinLateral=this.createJoin("cross",!0);createSetOperator(W,$){return(X)=>{let Y=typeof X==="function"?X(bO()):X;if(!Y6(this.getSelectedFields(),Y.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:W,isAll:$,rightSelect:Y}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(W){return this.config.setOperators.push(...W),this}where(W){if(typeof W==="function")W=W(new Proxy(this.config.fields,new i0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=W,this}having(W){if(typeof W==="function")W=W(new Proxy(this.config.fields,new i0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=W,this}groupBy(...W){if(typeof W[0]==="function"){let $=W[0](new Proxy(this.config.fields,new i0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray($)?$:[$]}else this.config.groupBy=W;return this}orderBy(...W){if(typeof W[0]==="function"){let $=W[0](new Proxy(this.config.fields,new i0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),X=Array.isArray($)?$:[$];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=X;else this.config.orderBy=X}else{let $=W;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=$;else this.config.orderBy=$}return this}limit(W){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=W;else this.config.limit=W;return this}offset(W){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=W;else this.config.offset=W;return this}for(W,$={}){return this.config.lockingClause={strength:W,config:$},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:W,...$}=this.dialect.sqlToQuery(this.getSQL());return $}as(W){return new Proxy(new G1(this.getSQL(),this.config.fields,W),new i0({alias:W,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new i0({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class _5 extends eF{static[_]="PgSelect";_prepare(W){let{session:$,config:X,dialect:Y,joinsNotNullableMap:J,authToken:G}=this;if(!$)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return q0.startActiveSpan("drizzle.prepareQuery",()=>{let H=GW(X.fields),Q=$.prepareQuery(Y.sqlToQuery(this.getSQL()),H,W,!0);return Q.joinsNotNullableMap=J,Q.setToken(G)})}prepare(W){return this._prepare(W)}authToken;setToken(W){return this.authToken=W,this}execute=(W)=>{return q0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(W,this.authToken)})}}QQ(_5,[C1]);function V$(W,$){return(X,Y,...J)=>{let G=[Y,...J].map((H)=>({type:W,isAll:$,rightSelect:H}));for(let H of G)if(!Y6(X.getSelectedFields(),H.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return X.addSetOperators(G)}}var bO=()=>({union:yO,unionAll:hO,intersect:gO,intersectAll:mO,except:pO,exceptAll:uO}),yO=V$("union",!1),hO=V$("union",!0),gO=V$("intersect",!1),mO=V$("intersect",!0),pO=V$("except",!1),uO=V$("except",!0);class D6{static[_]="PgQueryBuilder";dialect;dialectConfig;constructor(W){this.dialect=A(W,L8)?W:void 0,this.dialectConfig=A(W,L8)?void 0:W}$with=(W,$)=>{let X=this;return{as:(J)=>{if(typeof J==="function")J=J(X);return new Proxy(new e4(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),W,!0),new i0({alias:W,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...W){let $=this;function X(G){return new I1({fields:G??void 0,session:void 0,dialect:$.getDialect(),withList:W})}function Y(G){return new I1({fields:G??void 0,session:void 0,dialect:$.getDialect(),distinct:!0})}function J(G,H){return new I1({fields:H??void 0,session:void 0,dialect:$.getDialect(),distinct:{on:G}})}return{select:X,selectDistinct:Y,selectDistinctOn:J}}select(W){return new I1({fields:W??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(W){return new I1({fields:W??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(W,$){return new I1({fields:$??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:W}})}getDialect(){if(!this.dialect)this.dialect=new L8(this.dialectConfig);return this.dialect}}class fY{constructor(W,$,X,Y,J){this.table=W,this.session=$,this.dialect=X,this.withList=Y,this.overridingSystemValue_=J}static[_]="PgInsertBuilder";authToken;setToken(W){return this.authToken=W,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(W){if(W=Array.isArray(W)?W:[W],W.length===0)throw new Error("values() must be called with at least one value");let $=W.map((X)=>{let Y={},J=this.table[y.Symbol.Columns];for(let G of Object.keys(X)){let H=X[G];Y[G]=A(H,g)?H:new a1(H,J[G])}return Y});return new D5(this.table,$,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(W){let $=typeof W==="function"?W(new D6):W;if(!A($,g)&&!Y6(this.table[YY],$._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new D5(this.table,$,this.session,this.dialect,this.withList,!0)}}class D5 extends C1{constructor(W,$,X,Y,J,G,H){super();this.session=X,this.dialect=Y,this.config={table:W,values:$,withList:J,select:G,overridingSystemValue_:H}}static[_]="PgInsert";config;returning(W=this.config.table[y.Symbol.Columns]){return this.config.returningFields=W,this.config.returning=GW(W),this}onConflictDoNothing(W={}){if(W.target===void 0)this.config.onConflict=D`do nothing`;else{let $="";$=Array.isArray(W.target)?W.target.map((Y)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(W.target));let X=W.where?D` where ${W.where}`:void 0;this.config.onConflict=D`(${D.raw($)})${X} do nothing`}return this}onConflictDoUpdate(W){if(W.where&&(W.targetWhere||W.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let $=W.where?D` where ${W.where}`:void 0,X=W.targetWhere?D` where ${W.targetWhere}`:void 0,Y=W.setWhere?D` where ${W.setWhere}`:void 0,J=this.dialect.buildUpdateSet(this.config.table,QY(this.config.table,W.set)),G="";return G=Array.isArray(W.target)?W.target.map((H)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(H))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(W.target)),this.config.onConflict=D`(${D.raw(G)})${X} do update set ${J}${$}${Y}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:W,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(W){return q0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,W,!0)})}prepare(W){return this._prepare(W)}authToken;setToken(W){return this.authToken=W,this}execute=(W)=>{return q0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(W,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new i0({alias:U1(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class V5 extends C1{constructor(W,$,X){super();this.session=$,this.dialect=X,this.config={view:W}}static[_]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:W,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(W){return q0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,W,!0)})}prepare(W){return this._prepare(W)}authToken;setToken(W){return this.authToken=W,this}execute=(W)=>{return q0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(W,this.authToken)})}}class PY{constructor(W,$,X,Y){this.table=W,this.session=$,this.dialect=X,this.withList=Y}static[_]="PgUpdateBuilder";authToken;setToken(W){return this.authToken=W,this}set(W){return new WT(this.table,QY(this.table,W),this.session,this.dialect,this.withList).setToken(this.authToken)}}class WT extends C1{constructor(W,$,X,Y,J){super();this.session=X,this.dialect=Y,this.config={set:$,table:W,withList:J,joins:[]},this.tableName=Y2(W),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[_]="PgUpdate";config;tableName;joinsNotNullableMap;from(W){let $=W,X=Y2($);if(typeof X==="string")this.joinsNotNullableMap[X]=!0;return this.config.from=$,this}getTableLikeFields(W){if(A(W,_1))return W[y.Symbol.Columns];else if(A(W,G1))return W._.selectedFields;return W[f0].selectedFields}createJoin(W){return($,X)=>{let Y=Y2($);if(typeof Y==="string"&&this.config.joins.some((J)=>J.alias===Y))throw new Error(`Alias "${Y}" is already used in this query`);if(typeof X==="function"){let J=this.config.from&&!A(this.config.from,g)?this.getTableLikeFields(this.config.from):void 0;X=X(new Proxy(this.config.table[y.Symbol.Columns],new i0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),J&&new Proxy(J,new i0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:X,table:$,joinType:W,alias:Y}),typeof Y==="string")switch(W){case"left":{this.joinsNotNullableMap[Y]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([J])=>[J,!1])),this.joinsNotNullableMap[Y]=!0;break}case"inner":{this.joinsNotNullableMap[Y]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([J])=>[J,!1])),this.joinsNotNullableMap[Y]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(W){return this.config.where=W,this}returning(W){if(!W){if(W=Object.assign({},this.config.table[y.Symbol.Columns]),this.config.from){let $=Y2(this.config.from);if(typeof $==="string"&&this.config.from&&!A(this.config.from,g)){let X=this.getTableLikeFields(this.config.from);W[$]=X}for(let X of this.config.joins){let Y=Y2(X.table);if(typeof Y==="string"&&!A(X.table,g)){let J=this.getTableLikeFields(X.table);W[Y]=J}}}}return this.config.returningFields=W,this.config.returning=GW(W),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:W,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(W){let $=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,W,!0);return $.joinsNotNullableMap=this.joinsNotNullableMap,$}prepare(W){return this._prepare(W)}authToken;setToken(W){return this.authToken=W,this}execute=(W)=>{return this._prepare().execute(W,this.authToken)};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new i0({alias:U1(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class V6 extends g{constructor(W){super(V6.buildEmbeddedCount(W.source,W.filters).queryChunks);this.params=W,this.mapWith(Number),this.session=W.session,this.sql=V6.buildCount(W.source,W.filters)}sql;token;static[_]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(W,$){return D`(select count(*) from ${W}${D.raw(" where ").if($)}${$})`}static buildCount(W,$){return D`select count(*) as count from ${W}${D.raw(" where ").if($)}${$};`}setToken(W){return this.token=W,this}then(W,$){return Promise.resolve(this.session.count(this.sql,this.token)).then(W,$)}catch(W){return this.then(void 0,W)}finally(W){return this.then(($)=>{return W?.(),$},($)=>{throw W?.(),$})}}class K5{constructor(W,$,X,Y,J,G,H){this.fullSchema=W,this.schema=$,this.tableNamesMap=X,this.table=Y,this.tableConfig=J,this.dialect=G,this.session=H}static[_]="PgRelationalQueryBuilder";findMany(W){return new O5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,W?W:{},"many")}findFirst(W){return new O5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,W?{...W,limit:1}:{limit:1},"first")}}class O5 extends C1{constructor(W,$,X,Y,J,G,H,Q,z){super();this.fullSchema=W,this.schema=$,this.tableNamesMap=X,this.table=Y,this.tableConfig=J,this.dialect=G,this.session=H,this.config=Q,this.mode=z}static[_]="PgRelationalQuery";_prepare(W){return q0.startActiveSpan("drizzle.prepareQuery",()=>{let{query:$,builtQuery:X}=this._toSQL();return this.session.prepareQuery(X,void 0,W,!0,(Y,J)=>{let G=Y.map((H)=>LY(this.schema,this.tableConfig,H,$.selection,J));if(this.mode==="first")return G[0];return G})})}prepare(W){return this._prepare(W)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let W=this._getQuery(),$=this.dialect.sqlToQuery(W.sql);return{query:W,builtQuery:$}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(W){return this.authToken=W,this}execute(){return q0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class L5 extends C1{constructor(W,$,X,Y){super();this.execute=W,this.sql=$,this.query=X,this.mapBatchResult=Y}static[_]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(W,$){return $?this.mapBatchResult(W):W}_prepare(){return this}isResponseInArrayMode(){return!1}}class O6{constructor(W,$,X){if(this.dialect=W,this.session=$,this._=X?{schema:X.schema,fullSchema:X.fullSchema,tableNamesMap:X.tableNamesMap,session:$}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:$},this.query={},this._.schema)for(let[Y,J]of Object.entries(this._.schema))this.query[Y]=new K5(X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[Y],J,W,$)}static[_]="PgDatabase";query;$with=(W,$)=>{let X=this;return{as:(J)=>{if(typeof J==="function")J=J(new D6(X.dialect));return new Proxy(new e4(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),W,!0),new i0({alias:W,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(W,$){return new V6({source:W,filters:$,session:this.session})}with(...W){let $=this;function X(z){return new I1({fields:z??void 0,session:$.session,dialect:$.dialect,withList:W})}function Y(z){return new I1({fields:z??void 0,session:$.session,dialect:$.dialect,withList:W,distinct:!0})}function J(z,F){return new I1({fields:F??void 0,session:$.session,dialect:$.dialect,withList:W,distinct:{on:z}})}function G(z){return new PY(z,$.session,$.dialect,W)}function H(z){return new fY(z,$.session,$.dialect,W)}function Q(z){return new jY(z,$.session,$.dialect,W)}return{select:X,selectDistinct:Y,selectDistinctOn:J,update:G,insert:H,delete:Q}}select(W){return new I1({fields:W??void 0,session:this.session,dialect:this.dialect})}selectDistinct(W){return new I1({fields:W??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(W,$){return new I1({fields:$??void 0,session:this.session,dialect:this.dialect,distinct:{on:W}})}update(W){return new PY(W,this.session,this.dialect)}insert(W){return new fY(W,this.session,this.dialect)}delete(W){return new jY(W,this.session,this.dialect)}refreshMaterializedView(W){return new V5(W,this.session,this.dialect)}authToken;execute(W){let $=typeof W==="string"?D.raw(W):W.getSQL(),X=this.dialect.sqlToQuery($),Y=this.session.prepareQuery(X,void 0,void 0,!1);return new L5(()=>Y.execute(void 0,this.authToken),$,X,(J)=>Y.mapResult(J,!0))}transaction(W,$){return this.session.transaction(W,$)}}class $T{constructor(W,$){this.unique=W,this.name=$}static[_]="PgIndexBuilderOn";on(...W){return new xY(W.map(($)=>{if(A($,g))return $;$=$;let X=new a4($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=JSON.parse(JSON.stringify($.defaultConfig)),X}),this.unique,!1,this.name)}onOnly(...W){return new xY(W.map(($)=>{if(A($,g))return $;$=$;let X=new a4($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=$.defaultConfig,X}),this.unique,!0,this.name)}using(W,...$){return new xY($.map((X)=>{if(A(X,g))return X;X=X;let Y=new a4(X.name,!!X.keyAsName,X.columnType,X.indexConfig);return X.indexConfig=JSON.parse(JSON.stringify(X.defaultConfig)),Y}),this.unique,!0,this.name,W)}}class xY{static[_]="PgIndexBuilder";config;constructor(W,$,X,Y,J="btree"){this.config={name:Y,columns:W,unique:$,only:X,method:J}}concurrently(){return this.config.concurrently=!0,this}with(W){return this.config.with=W,this}where(W){return this.config.where=W,this}build(W){return new XT(this.config,W)}}class XT{static[_]="PgIndex";config;constructor(W,$){this.config={...W,table:$}}}function A5(W){return new $T(!0,W)}class E5{constructor(W){this.query=W}authToken;getQuery(){return this.query}mapResult(W,$){return W}setToken(W){return this.authToken=W,this}static[_]="PgPreparedQuery";joinsNotNullableMap}class N5{constructor(W){this.dialect=W}static[_]="PgSession";execute(W,$){return q0.startActiveSpan("drizzle.operation",()=>{return q0.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(W),void 0,void 0,!1)}).setToken($).execute(void 0,$)})}all(W){return this.prepareQuery(this.dialect.sqlToQuery(W),void 0,void 0,!1).all()}async count(W,$){let X=await this.execute(W,$);return Number(X[0].count)}}class B5 extends O6{constructor(W,$,X,Y=0){super(W,$,X);this.schema=X,this.nestedIndex=Y}static[_]="PgTransaction";rollback(){throw new uJ}getTransactionConfigSQL(W){let $=[];if(W.isolationLevel)$.push(`isolation level ${W.isolationLevel}`);if(W.accessMode)$.push(W.accessMode);if(typeof W.deferrable==="boolean")$.push(W.deferrable?"deferrable":"not deferrable");return D.raw($.join(" "))}setTransaction(W){return this.session.execute(D`set transaction ${this.getTransactionConfigSQL(W)}`)}}class YT extends E5{constructor(W,$,X,Y,J,G,H){super({sql:$,params:X});this.client=W,this.queryString=$,this.params=X,this.logger=Y,this.fields=J,this._isResponseInArrayMode=G,this.customResultMapper=H}static[_]="PostgresJsPreparedQuery";async execute(W={}){return q0.startActiveSpan("drizzle.execute",async($)=>{let X=mJ(this.params,W);$?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X);let{fields:Y,queryString:J,client:G,joinsNotNullableMap:H,customResultMapper:Q}=this;if(!Y&&!Q)return q0.startActiveSpan("drizzle.driver.execute",()=>{return G.unsafe(J,X)});let z=await q0.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":J,"drizzle.query.params":JSON.stringify(X)}),G.unsafe(J,X).values()});return q0.startActiveSpan("drizzle.mapResponse",()=>{return Q?Q(z):z.map((F)=>HQ(Y,F,H))})})}all(W={}){return q0.startActiveSpan("drizzle.execute",async($)=>{let X=mJ(this.params,W);return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X),q0.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.client.unsafe(this.queryString,X)})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class K6 extends N5{constructor(W,$,X,Y={}){super($);this.client=W,this.schema=X,this.options=Y,this.logger=Y.logger??new dJ}static[_]="PostgresJsSession";logger;prepareQuery(W,$,X,Y,J){return new YT(this.client,W.sql,W.params,this.logger,$,Y,J)}query(W,$){return this.logger.logQuery(W,$),this.client.unsafe(W,$).values()}queryObjects(W,$){return this.client.unsafe(W,$)}transaction(W,$){return this.client.begin(async(X)=>{let Y=new K6(X,this.dialect,this.schema,this.options),J=new R5(this.dialect,Y,this.schema);if($)await J.setTransaction($);return W(J)})}}class R5 extends B5{constructor(W,$,X,Y=0){super(W,$,X,Y);this.session=$}static[_]="PostgresJsTransaction";transaction(W){return this.session.client.savepoint(($)=>{let X=new K6($,this.dialect,this.schema,this.session.options),Y=new R5(this.dialect,X,this.schema);return W(Y)})}}class JT extends O6{static[_]="PostgresJsDatabase"}function O$(W,$={}){let X=(z)=>z;for(let z of["1184","1082","1083","1114","1182","1185","1115","1231"])W.options.parsers[z]=X,W.options.serializers[z]=X;W.options.serializers["114"]=X,W.options.serializers["3802"]=X;let Y=new L8({casing:$.casing}),J;if($.logger===!0)J=new cJ;else if($.logger!==!1)J=$.logger;let G;if($.schema){let z=IF($.schema,fF);G={fullSchema:$.schema,schema:z.tables,tableNamesMap:z.tableNamesMap}}let H=new K6(W,Y,G,{logger:J}),Q=new JT(Y,H,G);return Q.$client=W,Q}function vY(...W){if(typeof W[0]==="string"){let $=D$(W[0]);return O$($,W[1])}if(FQ(W[0])){let{connection:$,client:X,...Y}=W[0];if(X)return O$(X,Y);if(typeof $==="object"&&$.url!==void 0){let{url:G,...H}=$,Q=D$(G,H);return O$(Q,Y)}let J=D$($);return O$(J,Y)}return O$(W[0],W[1])}((W)=>{function $(X){return O$({options:{parsers:{},serializers:{}}},X)}W.mock=$})(vY||(vY={}));function GT(W,$){if(W instanceof Promise)throw new Error($)}function cO(W,$){let X={},Y=[];for(let J in W){let G=W[J]["~standard"].validate($[J]);if(GT(G,`Validation must be synchronous, but ${J} returned a Promise.`),G.issues){Y.push(...G.issues.map((H)=>({...H,path:[J,...H.path??[]]})));continue}X[J]=G.value}if(Y.length)return{issues:Y};return{value:X}}function Z5(W){let $=W.runtimeEnvStrict??W.runtimeEnv??process.env;if(W.emptyStringAsUndefined??!1){for(let[B,q]of Object.entries($))if(q==="")delete $[B]}if(!!W.skipValidation)return $;let J=typeof W.client==="object"?W.client:{},G=typeof W.server==="object"?W.server:{},H=typeof W.shared==="object"?W.shared:{},Q=W.isServer??(typeof window==="undefined"||("Deno"in window)),z=Q?{...G,...H,...J}:{...J,...H},F=W.createFinalSchema?.(z,Q)["~standard"].validate($)??cO(z,$);GT(F,"Validation must be synchronous");let T=W.onValidationError??((B)=>{throw console.error("\u274C Invalid environment variables:",B),new Error("Invalid environment variables")}),U=W.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(F.issues)return T(F.issues);let M=(B)=>{if(!W.clientPrefix)return!0;return!B.startsWith(W.clientPrefix)&&!(B in H)},V=(B)=>{return Q||!M(B)},K=(B)=>{return B==="__esModule"||B==="$$typeof"},N=(W.extends??[]).reduce((B,q)=>{return Object.assign(B,q)},{}),I=Object.assign(N,F.value);return new Proxy(I,{get(B,q){if(typeof q!=="string")return;if(K(q))return;if(!V(q))return U(q);return Reflect.get(B,q)}})}var v2=(W)=>Array.isArray(W)?W:[W],HT=(W,$)=>{let X=[[],[]];for(let Y of W)if($(Y))X[0].push(Y);else X[1].push(Y);return X},bY=Array,G2=(W,$)=>W.includes($),QT=(W,$=0)=>[...new Array(W)].map((X,Y)=>Y+$),M0=(W,$,X)=>{if(W===void 0)return $===void 0?[]:Array.isArray($)?$:[$];if(X?.prepend)if(Array.isArray($))W.unshift(...$);else W.unshift($);else if(Array.isArray($))W.push(...$);else W.push($);return W},H2=(W,$)=>{if($===void 0||$===null)return W??[];if(W===void 0||W===null)return v2($);return W.concat($)},zT=(...W)=>W.reduce(H2,[]),pW=(W,$,X)=>{if(W===void 0)return Array.isArray($)?$:[$];let Y=X?.isEqual??((J,G)=>J===G);for(let J of v2($))if(!W.some((G)=>Y(G,J)))W.push(J);return W},FT=(W,$)=>W.reduce((X,Y)=>{let J=Y[$];return X[J]=M0(X[J],Y),X},{}),Q2=(W,$,X)=>W.length===$.length&&W.every(X?.isEqual?(Y,J)=>X.isEqual(Y,$[J]):(Y,J)=>Y===$[J]);var g1=(W,$)=>Q1(W)===$,Q1=(W)=>{let $=typeof W;return $==="object"?W===null?"null":"object":$==="function"?"object":$},m1={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},TT={...m1,function:"a function"};class UT extends Error{}var O0=(W)=>A8(W,UT),A8=(W,$=Error)=>{throw new $(W)};class L6 extends Error{name="ParseError"}var L=(W)=>A8(W,L6),BW=(W)=>` ${W}`;var $0=(W,$)=>{let X={},Y=Array.isArray(W),J=!1;for(let[G,H]of Object.entries(W).entries()){let Q=Y?$(G,H[1]):$(...H,G);J||=typeof Q[0]==="number";let z=Array.isArray(Q[0])||Q.length===0?Q:[Q];for(let[F,T]of z)if(typeof F==="object")X[F.group]=M0(X[F.group],T);else X[F]=T}return J?Object.values(X):X};var S5=Object.entries;var z1=(W,$)=>(W in $),K$=(W,$)=>($ in W);class q5{constructor(W){Object.assign(this,W)}}var wT=class{};class A6 extends wT{}var dO=(W,$)=>{let X={},Y={},J;for(J in W)if(J in $)X[J]=W[J];else Y[J]=W[J];return[X,Y]};var MT=(W,$)=>dO(W,$)[1],uW=(W)=>Object.keys(W).length===0,E8=(W)=>[...Object.entries(W),...Object.getOwnPropertySymbols(W).map(($)=>[$,W[$]])],_T=(W,$)=>Object.defineProperties(W,Object.getOwnPropertyDescriptors($)),DT=(W)=>{let $=Object.keys(W).sort(),X={};for(let Y=0;Y<$.length;Y++)X[$[Y]]=W[$[Y]];return X};var e1=BW("represents an uninitialized value"),VT=(W)=>Object.values(W).filter(($)=>{if(typeof $==="number")return!0;return typeof W[$]!=="number"});var C5={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},k5=globalThis.File??Blob,I5={ArrayBuffer,Blob,File:k5,FormData,Headers,Request,Response,URL},lO={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},N8={...C5,...I5,...lO,String,Number,Boolean},E6=(W)=>{let $=Object.getPrototypeOf(W);while($?.constructor&&(!z1($.constructor.name,N8)||!(W instanceof N8[$.constructor.name])))$=Object.getPrototypeOf($);let X=$?.constructor?.name;if(X===void 0||X==="Object")return;return X},N6=(W)=>typeof W==="object"&&W!==null?E6(W)??"object":Q1(W);var C0=Array.isArray,oO={Array:"an array",Function:"a function",Date:"a Date",RegExp:"a RegExp",Error:"an Error",Map:"a Map",Set:"a Set",String:"a String object",Number:"a Number object",Boolean:"a Boolean object",Promise:"a Promise",WeakMap:"a WeakMap",WeakSet:"a WeakSet"},iO={ArrayBuffer:"an ArrayBuffer instance",Blob:"a Blob instance",File:"a File instance",FormData:"a FormData instance",Headers:"a Headers instance",Request:"a Request instance",Response:"a Response instance",URL:"a URL instance"},nO={Int8Array:"an Int8Array",Uint8Array:"a Uint8Array",Uint8ClampedArray:"a Uint8ClampedArray",Int16Array:"an Int16Array",Uint16Array:"a Uint16Array",Int32Array:"an Int32Array",Uint32Array:"a Uint32Array",Float32Array:"a Float32Array",Float64Array:"a Float64Array",BigInt64Array:"a BigInt64Array",BigUint64Array:"a BigUint64Array"},OT={...oO,...iO,...nO},B6=(W)=>{let $=Object(W).name??null;return $&&z1($,N8)&&N8[$]===W?$:null};var j5=(W,$)=>{let X=W.prototype;while(X!==null){if(X===$.prototype)return!0;X=Object.getPrototypeOf(X)}return!1};var KT=(W)=>LT(W,new Map),LT=(W,$)=>{if(typeof W!=="object"||W===null)return W;if($?.has(W))return $.get(W);let X=B6(W.constructor);if(X==="Date")return new Date(W.getTime());if(X&&X!=="Array")return W;let Y=Array.isArray(W)?W.slice():Object.create(Object.getPrototypeOf(W)),J=Object.getOwnPropertyDescriptors(W);if($){$.set(W,Y);for(let G in J){let H=J[G];if("get"in H||"set"in H)continue;H.value=LT(H.value,$)}}return Object.defineProperties(Y,J),Y};var rO=(W)=>{let $=e1;return()=>$===e1?$=W():$},b2=(W)=>typeof W==="function"&&W.length===0;var AT=class extends Function{constructor(...W){let $=W.slice(0,-1),X=W.at(-1);try{super(...$,X)}catch(Y){return O0(`Encountered an unexpected error while compiling your definition:
83
+ `;await $.execute(D`CREATE SCHEMA IF NOT EXISTS ${D.identifier(J)}`),await $.execute(G);let Q=(await $.all(D`select id, hash, created_at from ${D.identifier(J)}.${D.identifier(Y)} order by created_at desc limit 1`))[0];await $.transaction(async(z)=>{for await(let F of W)if(!Q||Number(Q.created_at)<F.folderMillis){for(let T of F.sql)await z.execute(D.raw(T));await z.execute(D`insert into ${D.identifier(J)}.${D.identifier(Y)} ("hash", "created_at") values(${F.hash}, ${F.folderMillis})`)}})}escapeName(W){return`"${W}"`}escapeParam(W){return`$${W+1}`}escapeString(W){return`'${W.replace(/'/g,"''")}'`}buildWithCTE(W){if(!W?.length)return;let $=[D`with `];for(let[X,Y]of W.entries())if($.push(D`${D.identifier(Y._.alias)} as (${Y._.sql})`),X<W.length-1)$.push(D`, `);return $.push(D` `),D.join($)}buildDeleteQuery({table:W,where:$,returning:X,withList:Y}){let J=this.buildWithCTE(Y),G=X?D` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,H=$?D` where ${$}`:void 0;return D`${J}delete from ${W}${H}${G}`}buildUpdateSet(W,$){let X=W[y.Symbol.Columns],Y=Object.keys(X).filter((G)=>$[G]!==void 0||X[G]?.onUpdateFn!==void 0),J=Y.length;return D.join(Y.flatMap((G,H)=>{let Q=X[G],z=$[G]??D.param(Q.onUpdateFn(),Q),F=D`${D.identifier(this.casing.getColumnCasing(Q))} = ${z}`;if(H<J-1)return[F,D.raw(", ")];return[F]}))}buildUpdateQuery({table:W,set:$,where:X,returning:Y,withList:J,from:G,joins:H}){let Q=this.buildWithCTE(J),z=W[_1.Symbol.Name],F=W[_1.Symbol.Schema],T=W[_1.Symbol.OriginalName],U=z===T?void 0:z,M=D`${F?D`${D.identifier(F)}.`:void 0}${D.identifier(T)}${U&&D` ${D.identifier(U)}`}`,O=this.buildUpdateSet(W,$),K=G&&D.join([D.raw(" from "),this.buildFromTable(G)]),N=this.buildJoins(H),I=Y?D` returning ${this.buildSelection(Y,{isSingleTable:!G})}`:void 0,C=X?D` where ${X}`:void 0;return D`${Q}update ${M} set ${O}${K}${N}${C}${I}`}buildSelection(W,{isSingleTable:$=!1}={}){let X=W.length,Y=W.flatMap(({field:J},G)=>{let H=[];if(A(J,g.Aliased)&&J.isSelectionField)H.push(D.identifier(J.fieldAlias));else if(A(J,g.Aliased)||A(J,g)){let Q=A(J,g.Aliased)?J.sql:J;if($)H.push(new g(Q.queryChunks.map((z)=>{if(A(z,j))return D.identifier(this.casing.getColumnCasing(z));return z})));else H.push(Q);if(A(J,g.Aliased))H.push(D` as ${D.identifier(J.fieldAlias)}`)}else if(A(J,S0))if($)H.push(D.identifier(this.casing.getColumnCasing(J)));else H.push(J);if(G<X-1)H.push(D`, `);return H});return D.join(Y)}buildJoins(W){if(!W||W.length===0)return;let $=[];for(let[X,Y]of W.entries()){if(X===0)$.push(D` `);let J=Y.table,G=Y.lateral?D` lateral`:void 0,H=Y.on?D` on ${Y.on}`:void 0;if(A(J,_1)){let Q=J[_1.Symbol.Name],z=J[_1.Symbol.Schema],F=J[_1.Symbol.OriginalName],T=Q===F?void 0:Y.alias;$.push(D`${D.raw(Y.joinType)} join${G} ${z?D`${D.identifier(z)}.`:void 0}${D.identifier(F)}${T&&D` ${D.identifier(T)}`}${H}`)}else if(A(J,y1)){let Q=J[f0].name,z=J[f0].schema,F=J[f0].originalName,T=Q===F?void 0:Y.alias;$.push(D`${D.raw(Y.joinType)} join${G} ${z?D`${D.identifier(z)}.`:void 0}${D.identifier(F)}${T&&D` ${D.identifier(T)}`}${H}`)}else $.push(D`${D.raw(Y.joinType)} join${G} ${J}${H}`);if(X<W.length-1)$.push(D` `)}return D.join($)}buildFromTable(W){if(A(W,y)&&W[y.Symbol.IsAlias]){let $=D`${D.identifier(W[y.Symbol.OriginalName])}`;if(W[y.Symbol.Schema])$=D`${D.identifier(W[y.Symbol.Schema])}.${$}`;return D`${$} ${D.identifier(W[y.Symbol.Name])}`}return W}buildSelectQuery({withList:W,fields:$,fieldsFlat:X,where:Y,having:J,table:G,joins:H,orderBy:Q,groupBy:z,limit:F,offset:T,lockingClause:U,distinct:M,setOperators:O}){let K=X??GW($);for(let w0 of K)if(A(w0.field,S0)&&U1(w0.field.table)!==(A(G,G1)?G._.alias:A(G,_6)?G[f0].name:A(G,g)?void 0:U1(G))&&!((s0)=>H?.some(({alias:D1})=>D1===(s0[y.Symbol.IsAlias]?U1(s0):s0[y.Symbol.BaseName])))(w0.field.table)){let s0=U1(w0.field.table);throw new Error(`Your "${w0.path.join("->")}" field references a column "${s0}"."${w0.field.name}", but the table "${s0}" is not part of the query! Did you forget to join it?`)}let N=!H||H.length===0,I=this.buildWithCTE(W),C;if(M)C=M===!0?D` distinct`:D` distinct on (${D.join(M.on,D`, `)})`;let R=this.buildSelection(K,{isSingleTable:N}),q=this.buildFromTable(G),m=this.buildJoins(H),c=Y?D` where ${Y}`:void 0,v=J?D` having ${J}`:void 0,h;if(Q&&Q.length>0)h=D` order by ${D.join(Q,D`, `)}`;let U0;if(z&&z.length>0)U0=D` group by ${D.join(z,D`, `)}`;let m0=typeof F==="object"||typeof F==="number"&&F>=0?D` limit ${F}`:void 0,E=T?D` offset ${T}`:void 0,_0=D.empty();if(U){let w0=D` for ${D.raw(U.strength)}`;if(U.config.of)w0.append(D` of ${D.join(Array.isArray(U.config.of)?U.config.of:[U.config.of],D`, `)}`);if(U.config.noWait)w0.append(D` nowait`);else if(U.config.skipLocked)w0.append(D` skip locked`);_0.append(w0)}let e=D`${I}select${C} ${R} from ${q}${m}${c}${U0}${v}${h}${m0}${E}${_0}`;if(O.length>0)return this.buildSetOperations(e,O);return e}buildSetOperations(W,$){let[X,...Y]=$;if(!X)throw new Error("Cannot pass undefined values to any set operator");if(Y.length===0)return this.buildSetOperationQuery({leftSelect:W,setOperator:X});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:W,setOperator:X}),Y)}buildSetOperationQuery({leftSelect:W,setOperator:{type:$,isAll:X,rightSelect:Y,limit:J,orderBy:G,offset:H}}){let Q=D`(${W.getSQL()}) `,z=D`(${Y.getSQL()})`,F;if(G&&G.length>0){let O=[];for(let K of G)if(A(K,j))O.push(D.identifier(K.name));else if(A(K,g)){for(let N=0;N<K.queryChunks.length;N++){let I=K.queryChunks[N];if(A(I,j))K.queryChunks[N]=D.identifier(I.name)}O.push(D`${K}`)}else O.push(D`${K}`);F=D` order by ${D.join(O,D`, `)} `}let T=typeof J==="object"||typeof J==="number"&&J>=0?D` limit ${J}`:void 0,U=D.raw(`${$} ${X?"all ":""}`),M=H?D` offset ${H}`:void 0;return D`${Q}${U}${z}${F}${T}${M}`}buildInsertQuery({table:W,values:$,onConflict:X,returning:Y,withList:J,select:G,overridingSystemValue_:H}){let Q=[],z=W[y.Symbol.Columns],F=Object.entries(z).filter(([I,C])=>!C.shouldDisableInsert()),T=F.map(([,I])=>D.identifier(this.casing.getColumnCasing(I)));if(G){let I=$;if(A(I,g))Q.push(I);else Q.push(I.getSQL())}else{let I=$;Q.push(D.raw("values "));for(let[C,R]of I.entries()){let q=[];for(let[m,c]of F){let v=R[m];if(v===void 0||A(v,a1)&&v.value===void 0)if(c.defaultFn!==void 0){let h=c.defaultFn(),U0=A(h,g)?h:D.param(h,c);q.push(U0)}else if(!c.default&&c.onUpdateFn!==void 0){let h=c.onUpdateFn(),U0=A(h,g)?h:D.param(h,c);q.push(U0)}else q.push(D`default`);else q.push(v)}if(Q.push(q),C<I.length-1)Q.push(D`, `)}}let U=this.buildWithCTE(J),M=D.join(Q),O=Y?D` returning ${this.buildSelection(Y,{isSingleTable:!0})}`:void 0,K=X?D` on conflict ${X}`:void 0,N=H===!0?D`overriding system value `:void 0;return D`${U}insert into ${W} ${T} ${N}${M}${K}${O}`}buildRefreshMaterializedViewQuery({view:W,concurrently:$,withNoData:X}){let Y=$?D` concurrently`:void 0,J=X?D` with no data`:void 0;return D`refresh materialized view${Y} ${W}${J}`}prepareTyping(W){if(A(W,UY)||A(W,TY))return"json";else if(A(W,wY))return"decimal";else if(A(W,MY))return"time";else if(A(W,_Y)||A(W,DY))return"timestamp";else if(A(W,zY)||A(W,FY))return"date";else if(A(W,OY))return"uuid";else return"none"}sqlToQuery(W,$){return W.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:$})}buildRelationalQueryWithoutPK({fullSchema:W,schema:$,tableNamesMap:X,table:Y,tableConfig:J,queryConfig:G,tableAlias:H,nestedQueryRelation:Q,joinOn:z}){let F=[],T,U,M=[],O,K=[];if(G===!0)F=Object.entries(J.columns).map(([C,R])=>({dbKey:R.name,tsKey:C,field:gW(R,H),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let I=Object.fromEntries(Object.entries(J.columns).map(([v,h])=>[v,gW(h,H)]));if(G.where){let v=typeof G.where==="function"?G.where(I,CF()):G.where;O=v&&X6(v,H)}let C=[],R=[];if(G.columns){let v=!1;for(let[h,U0]of Object.entries(G.columns)){if(U0===void 0)continue;if(h in J.columns){if(!v&&U0===!0)v=!0;R.push(h)}}if(R.length>0)R=v?R.filter((h)=>G.columns?.[h]===!0):Object.keys(J.columns).filter((h)=>!R.includes(h))}else R=Object.keys(J.columns);for(let v of R){let h=J.columns[v];C.push({tsKey:v,value:h})}let q=[];if(G.with)q=Object.entries(G.with).filter((v)=>!!v[1]).map(([v,h])=>({tsKey:v,queryConfig:h,relation:J.relations[v]}));let m;if(G.extras){m=typeof G.extras==="function"?G.extras(I,{sql:D}):G.extras;for(let[v,h]of Object.entries(m))C.push({tsKey:v,value:pJ(h,H)})}for(let{tsKey:v,value:h}of C)F.push({dbKey:A(h,g.Aliased)?h.fieldAlias:J.columns[v].name,tsKey:v,field:A(h,S0)?gW(h,H):h,relationTableTsKey:void 0,isJson:!1,selection:[]});let c=typeof G.orderBy==="function"?G.orderBy(I,kF()):G.orderBy??[];if(!Array.isArray(c))c=[c];M=c.map((v)=>{if(A(v,S0))return gW(v,H);return X6(v,H)}),T=G.limit,U=G.offset;for(let{tsKey:v,queryConfig:h,relation:U0}of q){let m0=jF($,X,U0),E=_8(U0.referencedTable),_0=X[E],e=`${H}_${v}`,w0=Q6(...m0.fields.map((wW,q8)=>VY(gW(m0.references[q8],e),gW(wW,H)))),s0=this.buildRelationalQueryWithoutPK({fullSchema:W,schema:$,tableNamesMap:X,table:W[_0],tableConfig:$[_0],queryConfig:A(U0,P2)?h===!0?{limit:1}:{...h,limit:1}:h,tableAlias:e,joinOn:w0,nestedQueryRelation:U0}),D1=D`${D.identifier(e)}.${D.identifier("data")}`.as(v);K.push({on:D`true`,table:new G1(s0.sql,{},e),alias:e,joinType:"left",lateral:!0}),F.push({dbKey:v,tsKey:v,field:D1,relationTableTsKey:_0,isJson:!0,selection:s0.selection})}}if(F.length===0)throw new HY({message:`No fields selected for table "${J.tsName}" ("${H}")`});let N;if(O=Q6(z,O),Q){let I=D`json_build_array(${D.join(F.map(({field:q,tsKey:m,isJson:c})=>c?D`${D.identifier(`${H}_${m}`)}.${D.identifier("data")}`:A(q,g.Aliased)?q.sql:q),D`, `)})`;if(A(Q,z6))I=D`coalesce(json_agg(${I}${M.length>0?D` order by ${D.join(M,D`, `)}`:void 0}), '[]'::json)`;let C=[{dbKey:"data",tsKey:"data",field:I.as("data"),isJson:!0,relationTableTsKey:J.tsName,selection:F}];if(T!==void 0||U!==void 0||M.length>0)N=this.buildSelectQuery({table:GY(Y,H),fields:{},fieldsFlat:[{path:[],field:D.raw("*")}],where:O,limit:T,offset:U,orderBy:M,setOperators:[]}),O=void 0,T=void 0,U=void 0,M=[];else N=GY(Y,H);N=this.buildSelectQuery({table:A(N,_1)?N:new G1(N,{},H),fields:{},fieldsFlat:C.map(({field:q})=>({path:[],field:A(q,S0)?gW(q,H):q})),joins:K,where:O,limit:T,offset:U,orderBy:M,setOperators:[]})}else N=this.buildSelectQuery({table:GY(Y,H),fields:{},fieldsFlat:F.map(({field:I})=>({path:[],field:A(I,S0)?gW(I,H):I})),joins:K,where:O,limit:T,offset:U,orderBy:M,setOperators:[]});return{tableTsKey:J.tsName,sql:N,selection:F}}}class M5{static[_]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class I1{static[_]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(W){if(this.fields=W.fields,this.session=W.session,this.dialect=W.dialect,W.withList)this.withList=W.withList;this.distinct=W.distinct}authToken;setToken(W){return this.authToken=W,this}from(W){let $=!!this.fields,X=W,Y;if(this.fields)Y=this.fields;else if(A(X,G1))Y=Object.fromEntries(Object.keys(X._.selectedFields).map((J)=>[J,X[J]]));else if(A(X,_6))Y=X[f0].selectedFields;else if(A(X,g))Y={};else Y=zQ(X);return new _5({table:X,fields:Y,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class eF extends M5{static[_]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:W,fields:$,isPartialSelect:X,session:Y,dialect:J,withList:G,distinct:H}){super();this.config={withList:G,table:W,fields:{...$},distinct:H,setOperators:[]},this.isPartialSelect=X,this.session=Y,this.dialect=J,this._={selectedFields:$},this.tableName=Y2(W),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(W,$){return(X,Y)=>{let J=this.tableName,G=Y2(X);if(typeof G==="string"&&this.config.joins?.some((H)=>H.alias===G))throw new Error(`Alias "${G}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof J==="string")this.config.fields={[J]:this.config.fields};if(typeof G==="string"&&!A(X,g)){let H=A(X,G1)?X._.selectedFields:A(X,y1)?X[f0].selectedFields:X[y.Symbol.Columns];this.config.fields[G]=H}}if(typeof Y==="function")Y=Y(new Proxy(this.config.fields,new i0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:Y,table:X,joinType:W,alias:G,lateral:$}),typeof G==="string")switch(W){case"left":{this.joinsNotNullableMap[G]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([H])=>[H,!1])),this.joinsNotNullableMap[G]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[G]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([H])=>[H,!1])),this.joinsNotNullableMap[G]=!1;break}}return this}}leftJoin=this.createJoin("left",!1);leftJoinLateral=this.createJoin("left",!0);rightJoin=this.createJoin("right",!1);innerJoin=this.createJoin("inner",!1);innerJoinLateral=this.createJoin("inner",!0);fullJoin=this.createJoin("full",!1);crossJoin=this.createJoin("cross",!1);crossJoinLateral=this.createJoin("cross",!0);createSetOperator(W,$){return(X)=>{let Y=typeof X==="function"?X(bV()):X;if(!Y6(this.getSelectedFields(),Y.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:W,isAll:$,rightSelect:Y}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(W){return this.config.setOperators.push(...W),this}where(W){if(typeof W==="function")W=W(new Proxy(this.config.fields,new i0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=W,this}having(W){if(typeof W==="function")W=W(new Proxy(this.config.fields,new i0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=W,this}groupBy(...W){if(typeof W[0]==="function"){let $=W[0](new Proxy(this.config.fields,new i0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray($)?$:[$]}else this.config.groupBy=W;return this}orderBy(...W){if(typeof W[0]==="function"){let $=W[0](new Proxy(this.config.fields,new i0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),X=Array.isArray($)?$:[$];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=X;else this.config.orderBy=X}else{let $=W;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=$;else this.config.orderBy=$}return this}limit(W){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=W;else this.config.limit=W;return this}offset(W){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=W;else this.config.offset=W;return this}for(W,$={}){return this.config.lockingClause={strength:W,config:$},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:W,...$}=this.dialect.sqlToQuery(this.getSQL());return $}as(W){return new Proxy(new G1(this.getSQL(),this.config.fields,W),new i0({alias:W,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new i0({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class _5 extends eF{static[_]="PgSelect";_prepare(W){let{session:$,config:X,dialect:Y,joinsNotNullableMap:J,authToken:G}=this;if(!$)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return q0.startActiveSpan("drizzle.prepareQuery",()=>{let H=GW(X.fields),Q=$.prepareQuery(Y.sqlToQuery(this.getSQL()),H,W,!0);return Q.joinsNotNullableMap=J,Q.setToken(G)})}prepare(W){return this._prepare(W)}authToken;setToken(W){return this.authToken=W,this}execute=(W)=>{return q0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(W,this.authToken)})}}QQ(_5,[C1]);function O$(W,$){return(X,Y,...J)=>{let G=[Y,...J].map((H)=>({type:W,isAll:$,rightSelect:H}));for(let H of G)if(!Y6(X.getSelectedFields(),H.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return X.addSetOperators(G)}}var bV=()=>({union:yV,unionAll:hV,intersect:gV,intersectAll:mV,except:pV,exceptAll:uV}),yV=O$("union",!1),hV=O$("union",!0),gV=O$("intersect",!1),mV=O$("intersect",!0),pV=O$("except",!1),uV=O$("except",!0);class D6{static[_]="PgQueryBuilder";dialect;dialectConfig;constructor(W){this.dialect=A(W,L8)?W:void 0,this.dialectConfig=A(W,L8)?void 0:W}$with=(W,$)=>{let X=this;return{as:(J)=>{if(typeof J==="function")J=J(X);return new Proxy(new e4(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),W,!0),new i0({alias:W,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...W){let $=this;function X(G){return new I1({fields:G??void 0,session:void 0,dialect:$.getDialect(),withList:W})}function Y(G){return new I1({fields:G??void 0,session:void 0,dialect:$.getDialect(),distinct:!0})}function J(G,H){return new I1({fields:H??void 0,session:void 0,dialect:$.getDialect(),distinct:{on:G}})}return{select:X,selectDistinct:Y,selectDistinctOn:J}}select(W){return new I1({fields:W??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(W){return new I1({fields:W??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(W,$){return new I1({fields:$??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:W}})}getDialect(){if(!this.dialect)this.dialect=new L8(this.dialectConfig);return this.dialect}}class fY{constructor(W,$,X,Y,J){this.table=W,this.session=$,this.dialect=X,this.withList=Y,this.overridingSystemValue_=J}static[_]="PgInsertBuilder";authToken;setToken(W){return this.authToken=W,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(W){if(W=Array.isArray(W)?W:[W],W.length===0)throw new Error("values() must be called with at least one value");let $=W.map((X)=>{let Y={},J=this.table[y.Symbol.Columns];for(let G of Object.keys(X)){let H=X[G];Y[G]=A(H,g)?H:new a1(H,J[G])}return Y});return new D5(this.table,$,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(W){let $=typeof W==="function"?W(new D6):W;if(!A($,g)&&!Y6(this.table[YY],$._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new D5(this.table,$,this.session,this.dialect,this.withList,!0)}}class D5 extends C1{constructor(W,$,X,Y,J,G,H){super();this.session=X,this.dialect=Y,this.config={table:W,values:$,withList:J,select:G,overridingSystemValue_:H}}static[_]="PgInsert";config;returning(W=this.config.table[y.Symbol.Columns]){return this.config.returningFields=W,this.config.returning=GW(W),this}onConflictDoNothing(W={}){if(W.target===void 0)this.config.onConflict=D`do nothing`;else{let $="";$=Array.isArray(W.target)?W.target.map((Y)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(Y))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(W.target));let X=W.where?D` where ${W.where}`:void 0;this.config.onConflict=D`(${D.raw($)})${X} do nothing`}return this}onConflictDoUpdate(W){if(W.where&&(W.targetWhere||W.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let $=W.where?D` where ${W.where}`:void 0,X=W.targetWhere?D` where ${W.targetWhere}`:void 0,Y=W.setWhere?D` where ${W.setWhere}`:void 0,J=this.dialect.buildUpdateSet(this.config.table,QY(this.config.table,W.set)),G="";return G=Array.isArray(W.target)?W.target.map((H)=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(H))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(W.target)),this.config.onConflict=D`(${D.raw(G)})${X} do update set ${J}${$}${Y}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:W,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(W){return q0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,W,!0)})}prepare(W){return this._prepare(W)}authToken;setToken(W){return this.authToken=W,this}execute=(W)=>{return q0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(W,this.authToken)})};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new i0({alias:U1(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class O5 extends C1{constructor(W,$,X){super();this.session=$,this.dialect=X,this.config={view:W}}static[_]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:W,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(W){return q0.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,W,!0)})}prepare(W){return this._prepare(W)}authToken;setToken(W){return this.authToken=W,this}execute=(W)=>{return q0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(W,this.authToken)})}}class PY{constructor(W,$,X,Y){this.table=W,this.session=$,this.dialect=X,this.withList=Y}static[_]="PgUpdateBuilder";authToken;setToken(W){return this.authToken=W,this}set(W){return new WT(this.table,QY(this.table,W),this.session,this.dialect,this.withList).setToken(this.authToken)}}class WT extends C1{constructor(W,$,X,Y,J){super();this.session=X,this.dialect=Y,this.config={set:$,table:W,withList:J,joins:[]},this.tableName=Y2(W),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}static[_]="PgUpdate";config;tableName;joinsNotNullableMap;from(W){let $=W,X=Y2($);if(typeof X==="string")this.joinsNotNullableMap[X]=!0;return this.config.from=$,this}getTableLikeFields(W){if(A(W,_1))return W[y.Symbol.Columns];else if(A(W,G1))return W._.selectedFields;return W[f0].selectedFields}createJoin(W){return($,X)=>{let Y=Y2($);if(typeof Y==="string"&&this.config.joins.some((J)=>J.alias===Y))throw new Error(`Alias "${Y}" is already used in this query`);if(typeof X==="function"){let J=this.config.from&&!A(this.config.from,g)?this.getTableLikeFields(this.config.from):void 0;X=X(new Proxy(this.config.table[y.Symbol.Columns],new i0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),J&&new Proxy(J,new i0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:X,table:$,joinType:W,alias:Y}),typeof Y==="string")switch(W){case"left":{this.joinsNotNullableMap[Y]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([J])=>[J,!1])),this.joinsNotNullableMap[Y]=!0;break}case"inner":{this.joinsNotNullableMap[Y]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([J])=>[J,!1])),this.joinsNotNullableMap[Y]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(W){return this.config.where=W,this}returning(W){if(!W){if(W=Object.assign({},this.config.table[y.Symbol.Columns]),this.config.from){let $=Y2(this.config.from);if(typeof $==="string"&&this.config.from&&!A(this.config.from,g)){let X=this.getTableLikeFields(this.config.from);W[$]=X}for(let X of this.config.joins){let Y=Y2(X.table);if(typeof Y==="string"&&!A(X.table,g)){let J=this.getTableLikeFields(X.table);W[Y]=J}}}}return this.config.returningFields=W,this.config.returning=GW(W),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:W,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(W){let $=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,W,!0);return $.joinsNotNullableMap=this.joinsNotNullableMap,$}prepare(W){return this._prepare(W)}authToken;setToken(W){return this.authToken=W,this}execute=(W)=>{return this._prepare().execute(W,this.authToken)};getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new i0({alias:U1(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}}class O6 extends g{constructor(W){super(O6.buildEmbeddedCount(W.source,W.filters).queryChunks);this.params=W,this.mapWith(Number),this.session=W.session,this.sql=O6.buildCount(W.source,W.filters)}sql;token;static[_]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(W,$){return D`(select count(*) from ${W}${D.raw(" where ").if($)}${$})`}static buildCount(W,$){return D`select count(*) as count from ${W}${D.raw(" where ").if($)}${$};`}setToken(W){return this.token=W,this}then(W,$){return Promise.resolve(this.session.count(this.sql,this.token)).then(W,$)}catch(W){return this.then(void 0,W)}finally(W){return this.then(($)=>{return W?.(),$},($)=>{throw W?.(),$})}}class K5{constructor(W,$,X,Y,J,G,H){this.fullSchema=W,this.schema=$,this.tableNamesMap=X,this.table=Y,this.tableConfig=J,this.dialect=G,this.session=H}static[_]="PgRelationalQueryBuilder";findMany(W){return new V5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,W?W:{},"many")}findFirst(W){return new V5(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,W?{...W,limit:1}:{limit:1},"first")}}class V5 extends C1{constructor(W,$,X,Y,J,G,H,Q,z){super();this.fullSchema=W,this.schema=$,this.tableNamesMap=X,this.table=Y,this.tableConfig=J,this.dialect=G,this.session=H,this.config=Q,this.mode=z}static[_]="PgRelationalQuery";_prepare(W){return q0.startActiveSpan("drizzle.prepareQuery",()=>{let{query:$,builtQuery:X}=this._toSQL();return this.session.prepareQuery(X,void 0,W,!0,(Y,J)=>{let G=Y.map((H)=>LY(this.schema,this.tableConfig,H,$.selection,J));if(this.mode==="first")return G[0];return G})})}prepare(W){return this._prepare(W)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let W=this._getQuery(),$=this.dialect.sqlToQuery(W.sql);return{query:W,builtQuery:$}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(W){return this.authToken=W,this}execute(){return q0.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(void 0,this.authToken)})}}class L5 extends C1{constructor(W,$,X,Y){super();this.execute=W,this.sql=$,this.query=X,this.mapBatchResult=Y}static[_]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(W,$){return $?this.mapBatchResult(W):W}_prepare(){return this}isResponseInArrayMode(){return!1}}class V6{constructor(W,$,X){if(this.dialect=W,this.session=$,this._=X?{schema:X.schema,fullSchema:X.fullSchema,tableNamesMap:X.tableNamesMap,session:$}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:$},this.query={},this._.schema)for(let[Y,J]of Object.entries(this._.schema))this.query[Y]=new K5(X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[Y],J,W,$)}static[_]="PgDatabase";query;$with=(W,$)=>{let X=this;return{as:(J)=>{if(typeof J==="function")J=J(new D6(X.dialect));return new Proxy(new e4(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),W,!0),new i0({alias:W,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(W,$){return new O6({source:W,filters:$,session:this.session})}with(...W){let $=this;function X(z){return new I1({fields:z??void 0,session:$.session,dialect:$.dialect,withList:W})}function Y(z){return new I1({fields:z??void 0,session:$.session,dialect:$.dialect,withList:W,distinct:!0})}function J(z,F){return new I1({fields:F??void 0,session:$.session,dialect:$.dialect,withList:W,distinct:{on:z}})}function G(z){return new PY(z,$.session,$.dialect,W)}function H(z){return new fY(z,$.session,$.dialect,W)}function Q(z){return new jY(z,$.session,$.dialect,W)}return{select:X,selectDistinct:Y,selectDistinctOn:J,update:G,insert:H,delete:Q}}select(W){return new I1({fields:W??void 0,session:this.session,dialect:this.dialect})}selectDistinct(W){return new I1({fields:W??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(W,$){return new I1({fields:$??void 0,session:this.session,dialect:this.dialect,distinct:{on:W}})}update(W){return new PY(W,this.session,this.dialect)}insert(W){return new fY(W,this.session,this.dialect)}delete(W){return new jY(W,this.session,this.dialect)}refreshMaterializedView(W){return new O5(W,this.session,this.dialect)}authToken;execute(W){let $=typeof W==="string"?D.raw(W):W.getSQL(),X=this.dialect.sqlToQuery($),Y=this.session.prepareQuery(X,void 0,void 0,!1);return new L5(()=>Y.execute(void 0,this.authToken),$,X,(J)=>Y.mapResult(J,!0))}transaction(W,$){return this.session.transaction(W,$)}}class $T{constructor(W,$){this.unique=W,this.name=$}static[_]="PgIndexBuilderOn";on(...W){return new xY(W.map(($)=>{if(A($,g))return $;$=$;let X=new a4($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=JSON.parse(JSON.stringify($.defaultConfig)),X}),this.unique,!1,this.name)}onOnly(...W){return new xY(W.map(($)=>{if(A($,g))return $;$=$;let X=new a4($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=$.defaultConfig,X}),this.unique,!0,this.name)}using(W,...$){return new xY($.map((X)=>{if(A(X,g))return X;X=X;let Y=new a4(X.name,!!X.keyAsName,X.columnType,X.indexConfig);return X.indexConfig=JSON.parse(JSON.stringify(X.defaultConfig)),Y}),this.unique,!0,this.name,W)}}class xY{static[_]="PgIndexBuilder";config;constructor(W,$,X,Y,J="btree"){this.config={name:Y,columns:W,unique:$,only:X,method:J}}concurrently(){return this.config.concurrently=!0,this}with(W){return this.config.with=W,this}where(W){return this.config.where=W,this}build(W){return new XT(this.config,W)}}class XT{static[_]="PgIndex";config;constructor(W,$){this.config={...W,table:$}}}function A5(W){return new $T(!0,W)}class E5{constructor(W){this.query=W}authToken;getQuery(){return this.query}mapResult(W,$){return W}setToken(W){return this.authToken=W,this}static[_]="PgPreparedQuery";joinsNotNullableMap}class N5{constructor(W){this.dialect=W}static[_]="PgSession";execute(W,$){return q0.startActiveSpan("drizzle.operation",()=>{return q0.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(W),void 0,void 0,!1)}).setToken($).execute(void 0,$)})}all(W){return this.prepareQuery(this.dialect.sqlToQuery(W),void 0,void 0,!1).all()}async count(W,$){let X=await this.execute(W,$);return Number(X[0].count)}}class R5 extends V6{constructor(W,$,X,Y=0){super(W,$,X);this.schema=X,this.nestedIndex=Y}static[_]="PgTransaction";rollback(){throw new uJ}getTransactionConfigSQL(W){let $=[];if(W.isolationLevel)$.push(`isolation level ${W.isolationLevel}`);if(W.accessMode)$.push(W.accessMode);if(typeof W.deferrable==="boolean")$.push(W.deferrable?"deferrable":"not deferrable");return D.raw($.join(" "))}setTransaction(W){return this.session.execute(D`set transaction ${this.getTransactionConfigSQL(W)}`)}}class YT extends E5{constructor(W,$,X,Y,J,G,H){super({sql:$,params:X});this.client=W,this.queryString=$,this.params=X,this.logger=Y,this.fields=J,this._isResponseInArrayMode=G,this.customResultMapper=H}static[_]="PostgresJsPreparedQuery";async execute(W={}){return q0.startActiveSpan("drizzle.execute",async($)=>{let X=mJ(this.params,W);$?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X);let{fields:Y,queryString:J,client:G,joinsNotNullableMap:H,customResultMapper:Q}=this;if(!Y&&!Q)return q0.startActiveSpan("drizzle.driver.execute",()=>{return G.unsafe(J,X)});let z=await q0.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":J,"drizzle.query.params":JSON.stringify(X)}),G.unsafe(J,X).values()});return q0.startActiveSpan("drizzle.mapResponse",()=>{return Q?Q(z):z.map((F)=>HQ(Y,F,H))})})}all(W={}){return q0.startActiveSpan("drizzle.execute",async($)=>{let X=mJ(this.params,W);return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.logger.logQuery(this.queryString,X),q0.startActiveSpan("drizzle.driver.execute",()=>{return $?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(X)}),this.client.unsafe(this.queryString,X)})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class K6 extends N5{constructor(W,$,X,Y={}){super($);this.client=W,this.schema=X,this.options=Y,this.logger=Y.logger??new dJ}static[_]="PostgresJsSession";logger;prepareQuery(W,$,X,Y,J){return new YT(this.client,W.sql,W.params,this.logger,$,Y,J)}query(W,$){return this.logger.logQuery(W,$),this.client.unsafe(W,$).values()}queryObjects(W,$){return this.client.unsafe(W,$)}transaction(W,$){return this.client.begin(async(X)=>{let Y=new K6(X,this.dialect,this.schema,this.options),J=new B5(this.dialect,Y,this.schema);if($)await J.setTransaction($);return W(J)})}}class B5 extends R5{constructor(W,$,X,Y=0){super(W,$,X,Y);this.session=$}static[_]="PostgresJsTransaction";transaction(W){return this.session.client.savepoint(($)=>{let X=new K6($,this.dialect,this.schema,this.session.options),Y=new B5(this.dialect,X,this.schema);return W(Y)})}}class JT extends V6{static[_]="PostgresJsDatabase"}function V$(W,$={}){let X=(z)=>z;for(let z of["1184","1082","1083","1114","1182","1185","1115","1231"])W.options.parsers[z]=X,W.options.serializers[z]=X;W.options.serializers["114"]=X,W.options.serializers["3802"]=X;let Y=new L8({casing:$.casing}),J;if($.logger===!0)J=new cJ;else if($.logger!==!1)J=$.logger;let G;if($.schema){let z=IF($.schema,fF);G={fullSchema:$.schema,schema:z.tables,tableNamesMap:z.tableNamesMap}}let H=new K6(W,Y,G,{logger:J}),Q=new JT(Y,H,G);return Q.$client=W,Q}function vY(...W){if(typeof W[0]==="string"){let $=D$(W[0]);return V$($,W[1])}if(FQ(W[0])){let{connection:$,client:X,...Y}=W[0];if(X)return V$(X,Y);if(typeof $==="object"&&$.url!==void 0){let{url:G,...H}=$,Q=D$(G,H);return V$(Q,Y)}let J=D$($);return V$(J,Y)}return V$(W[0],W[1])}((W)=>{function $(X){return V$({options:{parsers:{},serializers:{}}},X)}W.mock=$})(vY||(vY={}));function GT(W,$){if(W instanceof Promise)throw new Error($)}function cV(W,$){let X={},Y=[];for(let J in W){let G=W[J]["~standard"].validate($[J]);if(GT(G,`Validation must be synchronous, but ${J} returned a Promise.`),G.issues){Y.push(...G.issues.map((H)=>({...H,path:[J,...H.path??[]]})));continue}X[J]=G.value}if(Y.length)return{issues:Y};return{value:X}}function Z5(W){let $=W.runtimeEnvStrict??W.runtimeEnv??process.env;if(W.emptyStringAsUndefined??!1){for(let[R,q]of Object.entries($))if(q==="")delete $[R]}if(!!W.skipValidation)return $;let J=typeof W.client==="object"?W.client:{},G=typeof W.server==="object"?W.server:{},H=typeof W.shared==="object"?W.shared:{},Q=W.isServer??(typeof window==="undefined"||("Deno"in window)),z=Q?{...G,...H,...J}:{...J,...H},F=W.createFinalSchema?.(z,Q)["~standard"].validate($)??cV(z,$);GT(F,"Validation must be synchronous");let T=W.onValidationError??((R)=>{throw console.error("\u274C Invalid environment variables:",R),new Error("Invalid environment variables")}),U=W.onInvalidAccess??(()=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(F.issues)return T(F.issues);let M=(R)=>{if(!W.clientPrefix)return!0;return!R.startsWith(W.clientPrefix)&&!(R in H)},O=(R)=>{return Q||!M(R)},K=(R)=>{return R==="__esModule"||R==="$$typeof"},N=(W.extends??[]).reduce((R,q)=>{return Object.assign(R,q)},{}),I=Object.assign(N,F.value);return new Proxy(I,{get(R,q){if(typeof q!=="string")return;if(K(q))return;if(!O(q))return U(q);return Reflect.get(R,q)}})}var v2=(W)=>Array.isArray(W)?W:[W],HT=(W,$)=>{let X=[[],[]];for(let Y of W)if($(Y))X[0].push(Y);else X[1].push(Y);return X},bY=Array,G2=(W,$)=>W.includes($),QT=(W,$=0)=>[...new Array(W)].map((X,Y)=>Y+$),M0=(W,$,X)=>{if(W===void 0)return $===void 0?[]:Array.isArray($)?$:[$];if(X?.prepend)if(Array.isArray($))W.unshift(...$);else W.unshift($);else if(Array.isArray($))W.push(...$);else W.push($);return W},H2=(W,$)=>{if($===void 0||$===null)return W??[];if(W===void 0||W===null)return v2($);return W.concat($)},zT=(...W)=>W.reduce(H2,[]),pW=(W,$,X)=>{if(W===void 0)return Array.isArray($)?$:[$];let Y=X?.isEqual??((J,G)=>J===G);for(let J of v2($))if(!W.some((G)=>Y(G,J)))W.push(J);return W},FT=(W,$)=>W.reduce((X,Y)=>{let J=Y[$];return X[J]=M0(X[J],Y),X},{}),Q2=(W,$,X)=>W.length===$.length&&W.every(X?.isEqual?(Y,J)=>X.isEqual(Y,$[J]):(Y,J)=>Y===$[J]);var g1=(W,$)=>Q1(W)===$,Q1=(W)=>{let $=typeof W;return $==="object"?W===null?"null":"object":$==="function"?"object":$},m1={boolean:"boolean",null:"null",undefined:"undefined",bigint:"a bigint",number:"a number",object:"an object",string:"a string",symbol:"a symbol"},TT={...m1,function:"a function"};class UT extends Error{}var V0=(W)=>A8(W,UT),A8=(W,$=Error)=>{throw new $(W)};class L6 extends Error{name="ParseError"}var L=(W)=>A8(W,L6),RW=(W)=>` ${W}`;var $0=(W,$)=>{let X={},Y=Array.isArray(W),J=!1;for(let[G,H]of Object.entries(W).entries()){let Q=Y?$(G,H[1]):$(...H,G);J||=typeof Q[0]==="number";let z=Array.isArray(Q[0])||Q.length===0?Q:[Q];for(let[F,T]of z)if(typeof F==="object")X[F.group]=M0(X[F.group],T);else X[F]=T}return J?Object.values(X):X};var S5=Object.entries;var z1=(W,$)=>(W in $),K$=(W,$)=>($ in W);class q5{constructor(W){Object.assign(this,W)}}var wT=class{};class A6 extends wT{}var dV=(W,$)=>{let X={},Y={},J;for(J in W)if(J in $)X[J]=W[J];else Y[J]=W[J];return[X,Y]};var MT=(W,$)=>dV(W,$)[1],uW=(W)=>Object.keys(W).length===0,E8=(W)=>[...Object.entries(W),...Object.getOwnPropertySymbols(W).map(($)=>[$,W[$]])],_T=(W,$)=>Object.defineProperties(W,Object.getOwnPropertyDescriptors($)),DT=(W)=>{let $=Object.keys(W).sort(),X={};for(let Y=0;Y<$.length;Y++)X[$[Y]]=W[$[Y]];return X};var e1=RW("represents an uninitialized value"),OT=(W)=>Object.values(W).filter(($)=>{if(typeof $==="number")return!0;return typeof W[$]!=="number"});var C5={Array,Boolean,Date,Error,Function,Map,Number,Promise,RegExp,Set,String,WeakMap,WeakSet},k5=globalThis.File??Blob,I5={ArrayBuffer,Blob,File:k5,FormData,Headers,Request,Response,URL},lV={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array},N8={...C5,...I5,...lV,String,Number,Boolean},E6=(W)=>{let $=Object.getPrototypeOf(W);while($?.constructor&&(!z1($.constructor.name,N8)||!(W instanceof N8[$.constructor.name])))$=Object.getPrototypeOf($);let X=$?.constructor?.name;if(X===void 0||X==="Object")return;return X},N6=(W)=>typeof W==="object"&&W!==null?E6(W)??"object":Q1(W);var C0=Array.isArray,oV={Array:"an array",Function:"a function",Date:"a Date",RegExp:"a RegExp",Error:"an Error",Map:"a Map",Set:"a Set",String:"a String object",Number:"a Number object",Boolean:"a Boolean object",Promise:"a Promise",WeakMap:"a WeakMap",WeakSet:"a WeakSet"},iV={ArrayBuffer:"an ArrayBuffer instance",Blob:"a Blob instance",File:"a File instance",FormData:"a FormData instance",Headers:"a Headers instance",Request:"a Request instance",Response:"a Response instance",URL:"a URL instance"},nV={Int8Array:"an Int8Array",Uint8Array:"a Uint8Array",Uint8ClampedArray:"a Uint8ClampedArray",Int16Array:"an Int16Array",Uint16Array:"a Uint16Array",Int32Array:"an Int32Array",Uint32Array:"a Uint32Array",Float32Array:"a Float32Array",Float64Array:"a Float64Array",BigInt64Array:"a BigInt64Array",BigUint64Array:"a BigUint64Array"},VT={...oV,...iV,...nV},R6=(W)=>{let $=Object(W).name??null;return $&&z1($,N8)&&N8[$]===W?$:null};var j5=(W,$)=>{let X=W.prototype;while(X!==null){if(X===$.prototype)return!0;X=Object.getPrototypeOf(X)}return!1};var KT=(W)=>LT(W,new Map),LT=(W,$)=>{if(typeof W!=="object"||W===null)return W;if($?.has(W))return $.get(W);let X=R6(W.constructor);if(X==="Date")return new Date(W.getTime());if(X&&X!=="Array")return W;let Y=Array.isArray(W)?W.slice():Object.create(Object.getPrototypeOf(W)),J=Object.getOwnPropertyDescriptors(W);if($){$.set(W,Y);for(let G in J){let H=J[G];if("get"in H||"set"in H)continue;H.value=LT(H.value,$)}}return Object.defineProperties(Y,J),Y};var rV=(W)=>{let $=e1;return()=>$===e1?$=W():$},b2=(W)=>typeof W==="function"&&W.length===0;var AT=class extends Function{constructor(...W){let $=W.slice(0,-1),X=W.at(-1);try{super(...$,X)}catch(Y){return V0(`Encountered an unexpected error while compiling your definition:
84
84
  Message: ${Y}
85
85
  Source: (${W.slice(0,-1)}) => {
86
86
  ${W.at(-1)}
87
- }`)}}};class RW{constructor(W,...[$]){return Object.assign(Object.setPrototypeOf(W.bind($?.bind??this),this.constructor.prototype),$?.attach)}}var ET=rO(()=>{try{return new Function("return false")()}catch{return!0}});var Bp=BW("brand");var NT=BW("arkInferred");var Sp=BW("args");class N1{constructor(){}}var tO=()=>{try{return((new Error().stack?.split(`
88
- `)[2]?.trim()||"").match(/\(?(.+?)(?::\d+:\d+)?\)?$/)?.[1]||"unknown").replace(/^file:\/\//,"")}catch{return"unknown"}},aO=globalThis.process?.env??{},BT={fileName:tO,env:aO};var RT=(W)=>W[0].toUpperCase()+W.slice(1);var f5=(W)=>new RegExp(sO(W),typeof W==="string"?"":W.flags);var sO=(W)=>{return`^(?:${typeof W==="string"?W:W.source})$`};var z2={negativeLookahead:(W)=>`(?!${W})`,nonCapturingGroup:(W)=>`(?:${W})`},R6="\\",y2={" ":1,"\n":1,"\t":1};var eO=/^-0\.?0*$/.source,ST=/[1-9]\d*/.source,WK=/\.\d+/.source,$K=/\.\d*[1-9]/.source,qT=(W)=>f5(z2.negativeLookahead(eO)+z2.nonCapturingGroup("-?"+z2.nonCapturingGroup(z2.nonCapturingGroup("0|"+ST)+z2.nonCapturingGroup(W.decimalPattern)+"?")+(W.allowDecimalOnly?"|"+W.decimalPattern:"")+"?")),ZT=qT({decimalPattern:$K,allowDecimalOnly:!1}),XK=ZT.test.bind(ZT),yY=qT({decimalPattern:WK,allowDecimalOnly:!0}),Pp=yY.test.bind(yY),YK=/^-?\d*\.?\d*$/,JK=(W)=>W.length!==0&&YK.test(W),Z6=f5(z2.negativeLookahead("^-0$")+"-?"+z2.nonCapturingGroup(z2.nonCapturingGroup("0|"+ST))),GK=Z6.test.bind(Z6),P5=/^-?\d+$/,HK=P5.test.bind(P5),CT={number:"a number",bigint:"a bigint",integer:"an integer"},kT=(W,$)=>`'${W}' was parsed as ${CT[$]} but could not be narrowed to a literal value. Avoid unnecessary leading or trailing zeros and other abnormal notation`,QK=(W,$)=>$==="number"?XK(W):GK(W),zK=(W,$)=>$==="number"?Number(W):Number.parseInt(W),FK=(W,$)=>$==="number"?JK(W):HK(W),IT=(W,$)=>x5(W,"number",$),jT=(W,$)=>x5(W,"number",{...$,strict:!0}),fT=(W,$)=>x5(W,"integer",$),x5=(W,$,X)=>{let Y=zK(W,$);if(!Number.isNaN(Y)){if(FK(W,$)){if(X?.strict)return QK(W,$)?Y:L(kT(W,$));return Y}}return X?.errorOnFail?L(X?.errorOnFail===!0?`Failed to parse ${CT[$]} from '${W}'`:X?.errorOnFail):void 0},PT=(W)=>{if(W[W.length-1]!=="n")return;let $=W.slice(0,-1),X;try{X=BigInt($)}catch{return}if(Z6.test($))return X;if(P5.test($))return L(kT(W,"bigint"))};var TK="0.46.0",UK={version:TK,filename:BT.fileName(),FileConstructor:k5},B8=UK,xT=new Map,v5=Object.create(null),S6=(W)=>{let $=xT.get(W);if($)return $;let X=wK(W);if(v5[X])X=`${X}${v5[X]++}`;else v5[X]=1;return B8[X]=W,xT.set(W,X),X},h2=(W)=>/^[$A-Z_a-z][\w$]*$/.test(W),wK=(W)=>{switch(typeof W){case"object":{if(W===null)break;let $=E6(W)??"object";return $[0].toLowerCase()+$.slice(1)}case"function":return h2(W.name)?W.name:"fn";case"symbol":return W.description&&h2(W.description)?W.description:"symbol"}return O0(`Unexpected attempt to register serializable value of type ${Q1(W)}`)};var q6=(W)=>typeof W==="string"?JSON.stringify(W):typeof W==="bigint"?`${W}n`:`${W}`;var vT=(W,$={})=>C6(W,{onUndefined:"$ark.undefined",onBigInt:(X)=>`$ark.bigint-${X}`,...$},[]);var X0=(W,$)=>{switch(Q1(W)){case"object":let X=W,Y=X.constructor.name;return Y==="Object"||Y==="Array"?$?.quoteKeys===!1?hY(X,$?.indent??0,""):JSON.stringify(C6(X,L$,[]),null,$?.indent):hY(X,$?.indent??0,"");case"symbol":return L$.onSymbol(W);default:return q6(W)}},hY=(W,$,X)=>{if(typeof W==="function")return L$.onFunction(W);if(typeof W!=="object"||W===null)return q6(W);let Y=X+" ".repeat($);if(Array.isArray(W)){if(W.length===0)return"[]";let G=W.map((H)=>hY(H,$,Y)).join(`,
87
+ }`)}}};class BW{constructor(W,...[$]){return Object.assign(Object.setPrototypeOf(W.bind($?.bind??this),this.constructor.prototype),$?.attach)}}var ET=rV(()=>{try{return new Function("return false")()}catch{return!0}});var Rp=RW("brand");var NT=RW("arkInferred");var Sp=RW("args");class N1{constructor(){}}var tV=()=>{try{return((new Error().stack?.split(`
88
+ `)[2]?.trim()||"").match(/\(?(.+?)(?::\d+:\d+)?\)?$/)?.[1]||"unknown").replace(/^file:\/\//,"")}catch{return"unknown"}},aV=globalThis.process?.env??{},RT={fileName:tV,env:aV};var BT=(W)=>W[0].toUpperCase()+W.slice(1);var f5=(W)=>new RegExp(sV(W),typeof W==="string"?"":W.flags);var sV=(W)=>{return`^(?:${typeof W==="string"?W:W.source})$`};var z2={negativeLookahead:(W)=>`(?!${W})`,nonCapturingGroup:(W)=>`(?:${W})`},B6="\\",y2={" ":1,"\n":1,"\t":1};var eV=/^-0\.?0*$/.source,ST=/[1-9]\d*/.source,WK=/\.\d+/.source,$K=/\.\d*[1-9]/.source,qT=(W)=>f5(z2.negativeLookahead(eV)+z2.nonCapturingGroup("-?"+z2.nonCapturingGroup(z2.nonCapturingGroup("0|"+ST)+z2.nonCapturingGroup(W.decimalPattern)+"?")+(W.allowDecimalOnly?"|"+W.decimalPattern:"")+"?")),ZT=qT({decimalPattern:$K,allowDecimalOnly:!1}),XK=ZT.test.bind(ZT),yY=qT({decimalPattern:WK,allowDecimalOnly:!0}),Pp=yY.test.bind(yY),YK=/^-?\d*\.?\d*$/,JK=(W)=>W.length!==0&&YK.test(W),Z6=f5(z2.negativeLookahead("^-0$")+"-?"+z2.nonCapturingGroup(z2.nonCapturingGroup("0|"+ST))),GK=Z6.test.bind(Z6),P5=/^-?\d+$/,HK=P5.test.bind(P5),CT={number:"a number",bigint:"a bigint",integer:"an integer"},kT=(W,$)=>`'${W}' was parsed as ${CT[$]} but could not be narrowed to a literal value. Avoid unnecessary leading or trailing zeros and other abnormal notation`,QK=(W,$)=>$==="number"?XK(W):GK(W),zK=(W,$)=>$==="number"?Number(W):Number.parseInt(W),FK=(W,$)=>$==="number"?JK(W):HK(W),IT=(W,$)=>x5(W,"number",$),jT=(W,$)=>x5(W,"number",{...$,strict:!0}),fT=(W,$)=>x5(W,"integer",$),x5=(W,$,X)=>{let Y=zK(W,$);if(!Number.isNaN(Y)){if(FK(W,$)){if(X?.strict)return QK(W,$)?Y:L(kT(W,$));return Y}}return X?.errorOnFail?L(X?.errorOnFail===!0?`Failed to parse ${CT[$]} from '${W}'`:X?.errorOnFail):void 0},PT=(W)=>{if(W[W.length-1]!=="n")return;let $=W.slice(0,-1),X;try{X=BigInt($)}catch{return}if(Z6.test($))return X;if(P5.test($))return L(kT(W,"bigint"))};var TK="0.46.0",UK={version:TK,filename:RT.fileName(),FileConstructor:k5},R8=UK,xT=new Map,v5=Object.create(null),S6=(W)=>{let $=xT.get(W);if($)return $;let X=wK(W);if(v5[X])X=`${X}${v5[X]++}`;else v5[X]=1;return R8[X]=W,xT.set(W,X),X},h2=(W)=>/^[$A-Z_a-z][\w$]*$/.test(W),wK=(W)=>{switch(typeof W){case"object":{if(W===null)break;let $=E6(W)??"object";return $[0].toLowerCase()+$.slice(1)}case"function":return h2(W.name)?W.name:"fn";case"symbol":return W.description&&h2(W.description)?W.description:"symbol"}return V0(`Unexpected attempt to register serializable value of type ${Q1(W)}`)};var q6=(W)=>typeof W==="string"?JSON.stringify(W):typeof W==="bigint"?`${W}n`:`${W}`;var vT=(W,$={})=>C6(W,{onUndefined:"$ark.undefined",onBigInt:(X)=>`$ark.bigint-${X}`,...$},[]);var X0=(W,$)=>{switch(Q1(W)){case"object":let X=W,Y=X.constructor.name;return Y==="Object"||Y==="Array"?$?.quoteKeys===!1?hY(X,$?.indent??0,""):JSON.stringify(C6(X,L$,[]),null,$?.indent):hY(X,$?.indent??0,"");case"symbol":return L$.onSymbol(W);default:return q6(W)}},hY=(W,$,X)=>{if(typeof W==="function")return L$.onFunction(W);if(typeof W!=="object"||W===null)return q6(W);let Y=X+" ".repeat($);if(Array.isArray(W)){if(W.length===0)return"[]";let G=W.map((H)=>hY(H,$,Y)).join(`,
89
89
  `+Y);return $?`[
90
90
  ${Y}${G}
91
91
  ${X}]`:`[${G}]`}let J=W.constructor.name;if(J==="Object"){let G=E8(W).map(([H,Q])=>{let z=typeof H==="symbol"?L$.onSymbol(H):h2(H)?H:JSON.stringify(H),F=hY(Q,$,Y);return`${Y}${z}: ${F}`});if(G.length===0)return"{}";return $?`{
92
92
  ${G.join(`,
93
93
  `)}
94
- ${X}}`:`{${G.join(", ")}}`}if(W instanceof Date)return R8(W);if("expression"in W&&typeof W.expression==="string")return W.expression;return J},L$={onCycle:()=>"(cycle)",onSymbol:(W)=>`Symbol(${S6(W)})`,onFunction:(W)=>`Function(${S6(W)})`},C6=(W,$,X)=>{switch(Q1(W)){case"object":{let Y=W;if("toJSON"in Y&&typeof Y.toJSON==="function")return Y.toJSON();if(typeof Y==="function")return L$.onFunction(Y);if(X.includes(Y))return"(cycle)";let J=[...X,Y];if(Array.isArray(Y))return Y.map((H)=>C6(H,$,J));if(Y instanceof Date)return Y.toDateString();let G={};for(let H in Y)G[H]=C6(Y[H],$,J);for(let H of Object.getOwnPropertySymbols(Y))G[$.onSymbol?.(H)??H.toString()]=C6(Y[H],$,J);return G}case"symbol":return L$.onSymbol(W);case"bigint":return $.onBigInt?.(W)??`${W}n`;case"undefined":return $.onUndefined??"undefined";case"string":return W.replaceAll("\\","\\\\");default:return W}},R8=(W)=>{let $=W.getFullYear(),X=W.getMonth(),Y=W.getDate(),J=W.getHours(),G=W.getMinutes(),H=W.getSeconds(),Q=W.getMilliseconds();if(X===0&&Y===1&&J===0&&G===0&&H===0&&Q===0)return`${$}`;let z=`${MK[X]} ${Y}, ${$}`;if(J===0&&G===0&&H===0&&Q===0)return z;let F=W.toLocaleTimeString(),T=F.endsWith(" AM")||F.endsWith(" PM")?F.slice(-3):"";if(T)F=F.slice(0,-T.length);if(Q)F+=`.${DK(Q,3)}`;else if(_K.test(F))F=F.slice(0,-3);return`${F+T}, ${z}`},MK=["January","February","March","April","May","June","July","August","September","October","November","December"],_K=/:\d\d:00$/,DK=(W,$)=>String(W).padStart($,"0");var bT=(W,$,...[X])=>{let Y=X?.stringifySymbol??X0,J=W;switch(typeof $){case"string":J=h2($)?W===""?$:`${W}.${$}`:`${W}[${JSON.stringify($)}]`;break;case"number":J=`${W}[${$}]`;break;case"symbol":J=`${W}[${Y($)}]`;break;default:if(X?.stringifyNonKey)J=`${W}[${X.stringifyNonKey($)}]`;else L(`${X0($)} must be a PropertyKey or stringifyNonKey must be passed to options`)}return J},F2=(W,...$)=>W.reduce((X,Y)=>bT(X,Y,...$),"");class k6 extends bY{cache={};constructor(...W){super();this.push(...W)}toJSON(){if(this.cache.json)return this.cache.json;this.cache.json=[];for(let W=0;W<this.length;W++)this.cache.json.push(typeof this[W]==="symbol"?X0(this[W]):this[W]);return this.cache.json}stringify(){if(this.cache.stringify)return this.cache.stringify;return this.cache.stringify=F2(this)}stringifyAncestors(){if(this.cache.stringifyAncestors)return this.cache.stringifyAncestors;let W="",$=[W];for(let X of this)W=bT(W,X),$.push(W);return this.cache.stringifyAncestors=$}}class b5{chars;i;def;constructor(W){this.def=W,this.chars=[...W],this.i=0}shift(){return this.chars[this.i++]??""}get lookahead(){return this.chars[this.i]??""}get nextLookahead(){return this.chars[this.i+1]??""}get length(){return this.chars.length}shiftUntil(W){let $="";while(this.lookahead){if(W(this,$))if($[$.length-1]===R6)$=$.slice(0,-1);else break;$+=this.shift()}return $}shiftUntilLookahead(W){return typeof W==="string"?this.shiftUntil(($)=>$.lookahead===W):this.shiftUntil(($)=>($.lookahead in W))}shiftUntilNonWhitespace(){return this.shiftUntil(()=>!(this.lookahead in y2))}jumpToIndex(W){this.i=W<0?this.length+W:W}jumpForward(W){this.i+=W}get location(){return this.i}get unscanned(){return this.chars.slice(this.i,this.length).join("")}get scanned(){return this.chars.slice(0,this.i).join("")}sliceChars(W,$){return this.chars.slice(W,$).join("")}lookaheadIs(W){return this.lookahead===W}lookaheadIsIn(W){return this.lookahead in W}}var Ju=BW("implementedTraits");var y5="$ark",VK=2;while(y5 in globalThis)y5=`$ark${VK++}`;var yT=y5;globalThis[yT]=B8;var R=B8,OK=(W)=>`${yT}.${W}`,c0=(W)=>OK(S6(W));class gY extends A6{argNames;body="";constructor(...W){super();this.argNames=W;for(let $ of W){if($ in this)throw new Error(`Arg name '${$}' would overwrite an existing property on FunctionBody`);this[$]=$}}indentation=0;indent(){return this.indentation+=4,this}dedent(){return this.indentation-=4,this}prop(W,$=!1){return h5(W,$)}index(W,$=!1){return hT(`${W}`,$)}line(W){return this.body+=`${" ".repeat(this.indentation)}${W}
94
+ ${X}}`:`{${G.join(", ")}}`}if(W instanceof Date)return B8(W);if("expression"in W&&typeof W.expression==="string")return W.expression;return J},L$={onCycle:()=>"(cycle)",onSymbol:(W)=>`Symbol(${S6(W)})`,onFunction:(W)=>`Function(${S6(W)})`},C6=(W,$,X)=>{switch(Q1(W)){case"object":{let Y=W;if("toJSON"in Y&&typeof Y.toJSON==="function")return Y.toJSON();if(typeof Y==="function")return L$.onFunction(Y);if(X.includes(Y))return"(cycle)";let J=[...X,Y];if(Array.isArray(Y))return Y.map((H)=>C6(H,$,J));if(Y instanceof Date)return Y.toDateString();let G={};for(let H in Y)G[H]=C6(Y[H],$,J);for(let H of Object.getOwnPropertySymbols(Y))G[$.onSymbol?.(H)??H.toString()]=C6(Y[H],$,J);return G}case"symbol":return L$.onSymbol(W);case"bigint":return $.onBigInt?.(W)??`${W}n`;case"undefined":return $.onUndefined??"undefined";case"string":return W.replaceAll("\\","\\\\");default:return W}},B8=(W)=>{let $=W.getFullYear(),X=W.getMonth(),Y=W.getDate(),J=W.getHours(),G=W.getMinutes(),H=W.getSeconds(),Q=W.getMilliseconds();if(X===0&&Y===1&&J===0&&G===0&&H===0&&Q===0)return`${$}`;let z=`${MK[X]} ${Y}, ${$}`;if(J===0&&G===0&&H===0&&Q===0)return z;let F=W.toLocaleTimeString(),T=F.endsWith(" AM")||F.endsWith(" PM")?F.slice(-3):"";if(T)F=F.slice(0,-T.length);if(Q)F+=`.${DK(Q,3)}`;else if(_K.test(F))F=F.slice(0,-3);return`${F+T}, ${z}`},MK=["January","February","March","April","May","June","July","August","September","October","November","December"],_K=/:\d\d:00$/,DK=(W,$)=>String(W).padStart($,"0");var bT=(W,$,...[X])=>{let Y=X?.stringifySymbol??X0,J=W;switch(typeof $){case"string":J=h2($)?W===""?$:`${W}.${$}`:`${W}[${JSON.stringify($)}]`;break;case"number":J=`${W}[${$}]`;break;case"symbol":J=`${W}[${Y($)}]`;break;default:if(X?.stringifyNonKey)J=`${W}[${X.stringifyNonKey($)}]`;else L(`${X0($)} must be a PropertyKey or stringifyNonKey must be passed to options`)}return J},F2=(W,...$)=>W.reduce((X,Y)=>bT(X,Y,...$),"");class k6 extends bY{cache={};constructor(...W){super();this.push(...W)}toJSON(){if(this.cache.json)return this.cache.json;this.cache.json=[];for(let W=0;W<this.length;W++)this.cache.json.push(typeof this[W]==="symbol"?X0(this[W]):this[W]);return this.cache.json}stringify(){if(this.cache.stringify)return this.cache.stringify;return this.cache.stringify=F2(this)}stringifyAncestors(){if(this.cache.stringifyAncestors)return this.cache.stringifyAncestors;let W="",$=[W];for(let X of this)W=bT(W,X),$.push(W);return this.cache.stringifyAncestors=$}}class b5{chars;i;def;constructor(W){this.def=W,this.chars=[...W],this.i=0}shift(){return this.chars[this.i++]??""}get lookahead(){return this.chars[this.i]??""}get nextLookahead(){return this.chars[this.i+1]??""}get length(){return this.chars.length}shiftUntil(W){let $="";while(this.lookahead){if(W(this,$))if($[$.length-1]===B6)$=$.slice(0,-1);else break;$+=this.shift()}return $}shiftUntilLookahead(W){return typeof W==="string"?this.shiftUntil(($)=>$.lookahead===W):this.shiftUntil(($)=>($.lookahead in W))}shiftUntilNonWhitespace(){return this.shiftUntil(()=>!(this.lookahead in y2))}jumpToIndex(W){this.i=W<0?this.length+W:W}jumpForward(W){this.i+=W}get location(){return this.i}get unscanned(){return this.chars.slice(this.i,this.length).join("")}get scanned(){return this.chars.slice(0,this.i).join("")}sliceChars(W,$){return this.chars.slice(W,$).join("")}lookaheadIs(W){return this.lookahead===W}lookaheadIsIn(W){return this.lookahead in W}}var Ju=RW("implementedTraits");var y5="$ark",OK=2;while(y5 in globalThis)y5=`$ark${OK++}`;var yT=y5;globalThis[yT]=R8;var B=R8,VK=(W)=>`${yT}.${W}`,c0=(W)=>VK(S6(W));class gY extends A6{argNames;body="";constructor(...W){super();this.argNames=W;for(let $ of W){if($ in this)throw new Error(`Arg name '${$}' would overwrite an existing property on FunctionBody`);this[$]=$}}indentation=0;indent(){return this.indentation+=4,this}dedent(){return this.indentation-=4,this}prop(W,$=!1){return h5(W,$)}index(W,$=!1){return hT(`${W}`,$)}line(W){return this.body+=`${" ".repeat(this.indentation)}${W}
95
95
  `,this}const(W,$){return this.line(`const ${W} = ${$}`),this}let(W,$){return this.line(`let ${W} = ${$}`)}set(W,$){return this.line(`${W} = ${$}`)}if(W,$){return this.block(`if (${W})`,$)}elseIf(W,$){return this.block(`else if (${W})`,$)}else(W){return this.block("else",W)}for(W,$,X=0){return this.block(`for (let i = ${X}; ${W}; i++)`,$)}forIn(W,$){return this.block(`for (const k in ${W})`,$)}block(W,$,X=""){return this.line(`${W} {`),this.indent(),$(this),this.dedent(),this.line(`}${X}`)}return(W=""){return this.line(`return ${W}`)}write(W="anonymous",$=0){return`${W}(${this.argNames.join(", ")}) { ${$?this.body.split(`
96
96
  `).map((X)=>" ".repeat($)+`${X}`).join(`
97
- `):this.body} }`}compile(){return new AT(...this.argNames,this.body)}}var T2=(W)=>g1(W,"object")||typeof W==="symbol"?c0(W):q6(W),h5=(W,$=!1)=>{if(typeof W==="string"&&h2(W))return`${$?"?":""}.${W}`;return hT(KK(W),$)},KK=(W)=>typeof W==="symbol"?c0(W):JSON.stringify(W),hT=(W,$=!1)=>`${$?"?.":""}[${W}]`;class I6 extends gY{traversalKind;optimistic;constructor(W){super("data","ctx");this.traversalKind=W.kind,this.optimistic=W.optimistic===!0}invoke(W,$){let X=$?.arg??this.data,Y=typeof W==="string"?!0:this.requiresContextFor(W),J=typeof W==="string"?W:W.id;if(Y)return`${this.referenceToId(J,$)}(${X}, ${this.ctx})`;return`${this.referenceToId(J,$)}(${X})`}referenceToId(W,$){let X=$?.kind??this.traversalKind,Y=`this.${W}${X}`;return $?.bind?`${Y}.bind(${$?.bind})`:Y}requiresContextFor(W){return this.traversalKind==="Apply"||W.allowsRequiresContext}initializeErrorCount(){return this.const("errorCount","ctx.currentErrorCount")}returnIfFail(){return this.if("ctx.currentErrorCount > errorCount",()=>this.return())}returnIfFailFast(){return this.if("ctx.failFast && ctx.currentErrorCount > errorCount",()=>this.return())}traverseKey(W,$,X){let Y=this.requiresContextFor(X);if(Y)this.line(`${this.ctx}.path.push(${W})`);if(this.check(X,{arg:$}),Y)this.line(`${this.ctx}.path.pop()`);return this}check(W,$){return this.traversalKind==="Allows"?this.if(`!${this.invoke(W,$)}`,()=>this.return(!1)):this.line(this.invoke(W,$))}}var mY=(W)=>$0(W,($,X)=>[$,C0(X)?[...X]:X]),j1=BW("arkKind"),d=(W,$)=>W?.[j1]===$,P0=(W)=>d(W,"root")||d(W,"constraint");var gT=["unit","proto","domain"],A$=["required","optional","index","sequence"],g5=["pattern","divisor","exactLength","max","min","maxLength","minLength","before","after"],pY=[...g5,...A$,"structure","predicate"],E$=["alias","union","morph","unit","intersection","proto","domain"],LK=[...E$,...pY],uY=$0(pY,(W,$)=>[$,1]),mT=$0([...A$,"undeclared"],(W,$)=>[$,1]),pT=$0(LK,(W,$)=>[$,W]),N$=(W)=>typeof W==="string"&&(W in pT);var B$=(W)=>pT[W],cY=(W)=>E$.slice(B$(W)+1),pu=[...cY("union"),"alias"],uu=[...cY("morph"),"alias"],zW=(W)=>{if(typeof W==="string"||typeof W==="boolean"||W===null)return W;if(typeof W==="number"){if(Number.isNaN(W))return"NaN";if(W===Number.POSITIVE_INFINITY)return"Infinity";if(W===Number.NEGATIVE_INFINITY)return"-Infinity";return W}return T2(W)},g2=(W)=>{let $="{ ";for(let[X,Y]of Object.entries(W))$+=`${X}: ${T2(Y)}, `;return $+" }"},Y0=(W)=>{let $=W;if($.hasAssociatedError)$.defaults.expected??=(X)=>("description"in X)?X.description:$.defaults.description(X),$.defaults.actual??=(X)=>X0(X),$.defaults.problem??=(X)=>`must be ${X.expected}${X.actual?` (was ${X.actual})`:""}`,$.defaults.message??=(X)=>{if(X.path.length===0)return X.problem;let Y=`${X.propString} ${X.problem}`;if(Y[0]==="[")return`value at ${Y}`;return Y};return $};class uT extends Error{name="ToJsonSchemaError";code;context;constructor(W,$){super(X0($,{quoteKeys:!1,indent:4}));this.code=W,this.context=$}hasCode(W){return this.code===W}}var AK={dialect:"https://json-schema.org/draft/2020-12/schema",useRefs:!1,fallback:{arrayObject:(W)=>y0.throw("arrayObject",W),arrayPostfix:(W)=>y0.throw("arrayPostfix",W),defaultValue:(W)=>y0.throw("defaultValue",W),domain:(W)=>y0.throw("domain",W),morph:(W)=>y0.throw("morph",W),patternIntersection:(W)=>y0.throw("patternIntersection",W),predicate:(W)=>y0.throw("predicate",W),proto:(W)=>y0.throw("proto",W),symbolKey:(W)=>y0.throw("symbolKey",W),unit:(W)=>y0.throw("unit",W),date:(W)=>y0.throw("date",W)}},y0={Error:uT,throw:(...W)=>{throw new y0.Error(...W)},throwInternalOperandError:(W,$)=>O0(`Unexpected JSON Schema input for ${W}: ${X0($)}`),defaultConfig:AK};R.config??={};var j6=(W,$)=>{if(!$)return W;let X={...W},Y;for(Y in $){let J={...W.keywords};if(Y==="keywords"){for(let G in $[Y]){let H=$.keywords[G];if(H===void 0)continue;J[G]=typeof H==="string"?{description:H}:H}X.keywords=J}else if(Y==="toJsonSchema")X[Y]=m5(W.toJsonSchema,$.toJsonSchema);else if(N$(Y))X[Y]={...W[Y],...$[Y]};else X[Y]=$[Y]}return X},m5=(W,$)=>{if(!W)return $??{};if(!$)return W;let X={...W},Y;for(Y in $)if(Y==="fallback")X.fallback=EK(W.fallback,$.fallback);else X[Y]=$[Y];return X},EK=(W,$)=>{W=cT(W),$=cT($);let X={},Y;for(Y in y0.defaultConfig.fallback)X[Y]=$[Y]??$.default??W[Y]??W.default??y0.defaultConfig.fallback[Y];return X},cT=(W)=>typeof W==="function"?{default:W}:W??{};class m2 extends A6{[j1]="error";path;data;nodeConfig;input;ctx;constructor({prefixPath:W,relativePath:$,...X},Y){super();this.input=X,this.ctx=Y,_T(this,X);let J=Y.data;if(X.code==="union")X.errors=X.errors.flatMap((H)=>{let Q=H.hasCode("union")?H.errors:[H];if(!W&&!$)return Q;return Q.map((z)=>z.transform((F)=>({...F,path:zT(W,F.path,$)})))});this.nodeConfig=Y.config[this.code];let G=[...X.path??Y.path];if($)G.push(...$);if(W)G.unshift(...W);this.path=new k6(...G),this.data="data"in X?X.data:J}transform(W){return new m2(W({data:this.data,path:this.path,...this.input}),this.ctx)}hasCode(W){return this.code===W}get propString(){return F2(this.path)}get expected(){if(this.input.expected)return this.input.expected;let W=this.meta?.expected??this.nodeConfig.expected;return typeof W==="function"?W(this.input):W}get actual(){if(this.input.actual)return this.input.actual;let W=this.meta?.actual??this.nodeConfig.actual;return typeof W==="function"?W(this.data):W}get problem(){if(this.input.problem)return this.input.problem;let W=this.meta?.problem??this.nodeConfig.problem;return typeof W==="function"?W(this):W}get message(){if(this.input.message)return this.input.message;let W=this.meta?.message??this.nodeConfig.message;return typeof W==="function"?W(this):W}get flat(){return this.hasCode("intersection")?[...this.errors]:[this]}toJSON(){return{data:this.data,path:this.path,...this.input,expected:this.expected,actual:this.actual,problem:this.problem,message:this.message}}toString(){return this.message}throw(){throw this}}class p1 extends bY{[j1]="errors";ctx;constructor(W){super();this.ctx=W}byPath=Object.create(null);get flatByPath(){return $0(this.byPath,(W,$)=>[W,$.flat])}get flatProblemsByPath(){return $0(this.byPath,(W,$)=>[W,$.flat.map((X)=>X.problem)])}byAncestorPath=Object.create(null);count=0;mutable=this;throw(){throw this.toTraversalError()}toTraversalError(){return new p5(this)}add(W){if(this.includes(W))return;this._add(W)}transform(W){let $=new p1(this.ctx);for(let X of this)$.add(W(X));return $}merge(W){for(let $ of W){if(this.includes($))continue;this._add(new m2({...$,path:[...this.ctx.path,...$.path]},this.ctx))}}affectsPath(W){if(this.length===0)return!1;return W.stringifyAncestors().some(($)=>($ in this.byPath))||W.stringify()in this.byAncestorPath}get summary(){return this.toString()}get issues(){return this}toJSON(){return[...this.map((W)=>W.toJSON())]}toString(){return this.join(`
97
+ `):this.body} }`}compile(){return new AT(...this.argNames,this.body)}}var T2=(W)=>g1(W,"object")||typeof W==="symbol"?c0(W):q6(W),h5=(W,$=!1)=>{if(typeof W==="string"&&h2(W))return`${$?"?":""}.${W}`;return hT(KK(W),$)},KK=(W)=>typeof W==="symbol"?c0(W):JSON.stringify(W),hT=(W,$=!1)=>`${$?"?.":""}[${W}]`;class I6 extends gY{traversalKind;optimistic;constructor(W){super("data","ctx");this.traversalKind=W.kind,this.optimistic=W.optimistic===!0}invoke(W,$){let X=$?.arg??this.data,Y=typeof W==="string"?!0:this.requiresContextFor(W),J=typeof W==="string"?W:W.id;if(Y)return`${this.referenceToId(J,$)}(${X}, ${this.ctx})`;return`${this.referenceToId(J,$)}(${X})`}referenceToId(W,$){let X=$?.kind??this.traversalKind,Y=`this.${W}${X}`;return $?.bind?`${Y}.bind(${$?.bind})`:Y}requiresContextFor(W){return this.traversalKind==="Apply"||W.allowsRequiresContext}initializeErrorCount(){return this.const("errorCount","ctx.currentErrorCount")}returnIfFail(){return this.if("ctx.currentErrorCount > errorCount",()=>this.return())}returnIfFailFast(){return this.if("ctx.failFast && ctx.currentErrorCount > errorCount",()=>this.return())}traverseKey(W,$,X){let Y=this.requiresContextFor(X);if(Y)this.line(`${this.ctx}.path.push(${W})`);if(this.check(X,{arg:$}),Y)this.line(`${this.ctx}.path.pop()`);return this}check(W,$){return this.traversalKind==="Allows"?this.if(`!${this.invoke(W,$)}`,()=>this.return(!1)):this.line(this.invoke(W,$))}}var mY=(W)=>$0(W,($,X)=>[$,C0(X)?[...X]:X]),j1=RW("arkKind"),d=(W,$)=>W?.[j1]===$,P0=(W)=>d(W,"root")||d(W,"constraint");var gT=["unit","proto","domain"],A$=["required","optional","index","sequence"],g5=["pattern","divisor","exactLength","max","min","maxLength","minLength","before","after"],pY=[...g5,...A$,"structure","predicate"],E$=["alias","union","morph","unit","intersection","proto","domain"],LK=[...E$,...pY],uY=$0(pY,(W,$)=>[$,1]),mT=$0([...A$,"undeclared"],(W,$)=>[$,1]),pT=$0(LK,(W,$)=>[$,W]),N$=(W)=>typeof W==="string"&&(W in pT);var R$=(W)=>pT[W],cY=(W)=>E$.slice(R$(W)+1),pu=[...cY("union"),"alias"],uu=[...cY("morph"),"alias"],zW=(W)=>{if(typeof W==="string"||typeof W==="boolean"||W===null)return W;if(typeof W==="number"){if(Number.isNaN(W))return"NaN";if(W===Number.POSITIVE_INFINITY)return"Infinity";if(W===Number.NEGATIVE_INFINITY)return"-Infinity";return W}return T2(W)},g2=(W)=>{let $="{ ";for(let[X,Y]of Object.entries(W))$+=`${X}: ${T2(Y)}, `;return $+" }"},Y0=(W)=>{let $=W;if($.hasAssociatedError)$.defaults.expected??=(X)=>("description"in X)?X.description:$.defaults.description(X),$.defaults.actual??=(X)=>X0(X),$.defaults.problem??=(X)=>`must be ${X.expected}${X.actual?` (was ${X.actual})`:""}`,$.defaults.message??=(X)=>{if(X.path.length===0)return X.problem;let Y=`${X.propString} ${X.problem}`;if(Y[0]==="[")return`value at ${Y}`;return Y};return $};class uT extends Error{name="ToJsonSchemaError";code;context;constructor(W,$){super(X0($,{quoteKeys:!1,indent:4}));this.code=W,this.context=$}hasCode(W){return this.code===W}}var AK={dialect:"https://json-schema.org/draft/2020-12/schema",useRefs:!1,fallback:{arrayObject:(W)=>y0.throw("arrayObject",W),arrayPostfix:(W)=>y0.throw("arrayPostfix",W),defaultValue:(W)=>y0.throw("defaultValue",W),domain:(W)=>y0.throw("domain",W),morph:(W)=>y0.throw("morph",W),patternIntersection:(W)=>y0.throw("patternIntersection",W),predicate:(W)=>y0.throw("predicate",W),proto:(W)=>y0.throw("proto",W),symbolKey:(W)=>y0.throw("symbolKey",W),unit:(W)=>y0.throw("unit",W),date:(W)=>y0.throw("date",W)}},y0={Error:uT,throw:(...W)=>{throw new y0.Error(...W)},throwInternalOperandError:(W,$)=>V0(`Unexpected JSON Schema input for ${W}: ${X0($)}`),defaultConfig:AK};B.config??={};var j6=(W,$)=>{if(!$)return W;let X={...W},Y;for(Y in $){let J={...W.keywords};if(Y==="keywords"){for(let G in $[Y]){let H=$.keywords[G];if(H===void 0)continue;J[G]=typeof H==="string"?{description:H}:H}X.keywords=J}else if(Y==="toJsonSchema")X[Y]=m5(W.toJsonSchema,$.toJsonSchema);else if(N$(Y))X[Y]={...W[Y],...$[Y]};else X[Y]=$[Y]}return X},m5=(W,$)=>{if(!W)return $??{};if(!$)return W;let X={...W},Y;for(Y in $)if(Y==="fallback")X.fallback=EK(W.fallback,$.fallback);else X[Y]=$[Y];return X},EK=(W,$)=>{W=cT(W),$=cT($);let X={},Y;for(Y in y0.defaultConfig.fallback)X[Y]=$[Y]??$.default??W[Y]??W.default??y0.defaultConfig.fallback[Y];return X},cT=(W)=>typeof W==="function"?{default:W}:W??{};class m2 extends A6{[j1]="error";path;data;nodeConfig;input;ctx;constructor({prefixPath:W,relativePath:$,...X},Y){super();this.input=X,this.ctx=Y,_T(this,X);let J=Y.data;if(X.code==="union")X.errors=X.errors.flatMap((H)=>{let Q=H.hasCode("union")?H.errors:[H];if(!W&&!$)return Q;return Q.map((z)=>z.transform((F)=>({...F,path:zT(W,F.path,$)})))});this.nodeConfig=Y.config[this.code];let G=[...X.path??Y.path];if($)G.push(...$);if(W)G.unshift(...W);this.path=new k6(...G),this.data="data"in X?X.data:J}transform(W){return new m2(W({data:this.data,path:this.path,...this.input}),this.ctx)}hasCode(W){return this.code===W}get propString(){return F2(this.path)}get expected(){if(this.input.expected)return this.input.expected;let W=this.meta?.expected??this.nodeConfig.expected;return typeof W==="function"?W(this.input):W}get actual(){if(this.input.actual)return this.input.actual;let W=this.meta?.actual??this.nodeConfig.actual;return typeof W==="function"?W(this.data):W}get problem(){if(this.input.problem)return this.input.problem;let W=this.meta?.problem??this.nodeConfig.problem;return typeof W==="function"?W(this):W}get message(){if(this.input.message)return this.input.message;let W=this.meta?.message??this.nodeConfig.message;return typeof W==="function"?W(this):W}get flat(){return this.hasCode("intersection")?[...this.errors]:[this]}toJSON(){return{data:this.data,path:this.path,...this.input,expected:this.expected,actual:this.actual,problem:this.problem,message:this.message}}toString(){return this.message}throw(){throw this}}class p1 extends bY{[j1]="errors";ctx;constructor(W){super();this.ctx=W}byPath=Object.create(null);get flatByPath(){return $0(this.byPath,(W,$)=>[W,$.flat])}get flatProblemsByPath(){return $0(this.byPath,(W,$)=>[W,$.flat.map((X)=>X.problem)])}byAncestorPath=Object.create(null);count=0;mutable=this;throw(){throw this.toTraversalError()}toTraversalError(){return new p5(this)}add(W){if(this.includes(W))return;this._add(W)}transform(W){let $=new p1(this.ctx);for(let X of this)$.add(W(X));return $}merge(W){for(let $ of W){if(this.includes($))continue;this._add(new m2({...$,path:[...this.ctx.path,...$.path]},this.ctx))}}affectsPath(W){if(this.length===0)return!1;return W.stringifyAncestors().some(($)=>($ in this.byPath))||W.stringify()in this.byAncestorPath}get summary(){return this.toString()}get issues(){return this}toJSON(){return[...this.map((W)=>W.toJSON())]}toString(){return this.join(`
98
98
  `)}_add(W){let $=this.byPath[W.propString];if($){if($.hasCode("union")&&$.errors.length===0)return;let X=W.hasCode("union")&&W.errors.length===0?W:new m2({code:"intersection",errors:$.hasCode("intersection")?[...$.errors,W]:[$,W]},this.ctx),Y=this.indexOf($);this.mutable[Y===-1?this.length:Y]=X,this.byPath[W.propString]=X,this.addAncestorPaths(W)}else this.byPath[W.propString]=W,this.addAncestorPaths(W),this.mutable.push(W);this.count++}addAncestorPaths(W){for(let $ of W.path.stringifyAncestors())this.byAncestorPath[$]=M0(this.byAncestorPath[$],W)}}class p5 extends Error{name="TraversalError";constructor(W){if(W.length===1)super(W.summary);else super(`
99
99
  `+W.map(($)=>` \u2022 ${NK($)}`).join(`
100
100
  `));Object.defineProperty(this,"arkErrors",{value:W,enumerable:!1})}}var NK=(W)=>W.toString().split(`
101
101
  `).join(`
102
- `);class ZW{path=[];errors=new p1(this);root;config;queuedMorphs=[];branches=[];seen={};constructor(W,$){this.root=W,this.config=$}get data(){let W=this.root;for(let $ of this.path)W=W?.[$];return W}get propString(){return F2(this.path)}reject(W){return this.error(W),!1}mustBe(W){return this.error(W),!1}error(W){let $=typeof W==="object"?W.code?W:{...W,code:"predicate"}:{code:"predicate",expected:W};return this.errorFromContext($)}hasError(){return this.currentErrorCount!==0}get currentBranch(){return this.branches.at(-1)}queueMorphs(W){let $={path:new k6(...this.path),morphs:W};if(this.currentBranch)this.currentBranch.queuedMorphs.push($);else this.queuedMorphs.push($)}finalize(W){if(this.queuedMorphs.length){if(typeof this.root==="object"&&this.root!==null&&this.config.clone)this.root=this.config.clone(this.root);this.applyQueuedMorphs()}if(this.hasError())return W?W(this.errors):this.errors;return this.root}get currentErrorCount(){return this.currentBranch?this.currentBranch.error?1:0:this.errors.count}get failFast(){return this.branches.length!==0}pushBranch(){this.branches.push({error:void 0,queuedMorphs:[]})}popBranch(){return this.branches.pop()}get external(){return this}errorFromNodeContext(W){return this.errorFromContext(W)}errorFromContext(W){let $=new m2(W,this);if(this.currentBranch)this.currentBranch.error=$;else this.errors.add($);return $}applyQueuedMorphs(){while(this.queuedMorphs.length){let W=this.queuedMorphs;this.queuedMorphs=[];for(let{path:$,morphs:X}of W){if(this.errors.affectsPath($))continue;this.applyMorphsAtPath($,X)}}}applyMorphsAtPath(W,$){let X=W.at(-1),Y;if(X!==void 0){Y=this.root;for(let J=0;J<W.length-1;J++)Y=Y[W[J]]}this.path=[...W];for(let J of $){let G=P0(J),H=J(Y===void 0?this.root:Y[X],this);if(H instanceof m2){this.errors.add(H);break}if(H instanceof p1){if(!G)this.errors.merge(H);break}if(Y===void 0)this.root=H;else Y[X]=H;this.applyQueuedMorphs()}}}var u1=(W,$,X)=>{if(!X)return $();X.path.push(W);let Y=$();return X.path.pop(),Y};class P6 extends RW{attachments;$;onFail;includesTransform;includesContextualPredicate;isCyclic;allowsRequiresContext;rootApplyStrategy;contextFreeMorph;rootApply;referencesById;shallowReferences;flatRefs;flatMorphs;allows;get shallowMorphs(){return[]}constructor(W,$){super((Y,J,G=this.onFail)=>{if(J)return this.traverseApply(Y,J),J.hasError()?J.errors:J.data;return this.rootApply(Y,G)},{attach:W});this.attachments=W,this.$=$,this.onFail=this.meta.onFail??this.$.resolvedConfig.onFail,this.includesTransform=this.hasKind("morph")||this.hasKind("structure")&&this.structuralMorph!==void 0,this.includesContextualPredicate=this.hasKind("predicate")&&this.inner.predicate.length!==1,this.isCyclic=this.kind==="alias",this.referencesById={[this.id]:this},this.shallowReferences=this.hasKind("structure")?[this,...this.children]:this.children.reduce((Y,J)=>SK(Y,J.shallowReferences),[this]);let X=this.isStructural();this.flatRefs=[],this.flatMorphs=[];for(let Y=0;Y<this.children.length;Y++){if(this.includesTransform||=this.children[Y].includesTransform,this.includesContextualPredicate||=this.children[Y].includesContextualPredicate,this.isCyclic||=this.children[Y].isCyclic,!X){let J=this.children[Y].flatRefs;for(let G=0;G<J.length;G++){let H=J[G];if(!this.flatRefs.some((Q)=>lT(Q,H))){this.flatRefs.push(H);for(let Q of H.node.branches)if(Q.hasKind("morph")||Q.hasKind("intersection")&&Q.structure?.structuralMorph!==void 0)this.flatMorphs.push({path:H.path,propString:H.propString,node:Q})}}}Object.assign(this.referencesById,this.children[Y].referencesById)}this.flatRefs.sort((Y,J)=>Y.path.length>J.path.length?1:Y.path.length<J.path.length?-1:Y.propString>J.propString?1:Y.propString<J.propString?-1:Y.node.expression<J.node.expression?-1:1),this.allowsRequiresContext=this.includesContextualPredicate||this.isCyclic,this.rootApplyStrategy=!this.allowsRequiresContext&&this.flatMorphs.length===0?this.shallowMorphs.length===0?"allows":this.shallowMorphs.every((Y)=>Y.length===1||Y.name==="$arkStructuralMorph")?this.hasKind("union")?this.branches.some((Y)=>Y.shallowMorphs.length>1)?"contextual":"branchedOptimistic":this.shallowMorphs.length>1?"contextual":"optimistic":"contextual":"contextual",this.rootApply=this.createRootApply(),this.allows=this.allowsRequiresContext?(Y)=>this.traverseAllows(Y,new ZW(Y,this.$.resolvedConfig)):(Y)=>this.traverseAllows(Y)}createRootApply(){switch(this.rootApplyStrategy){case"allows":return($,X)=>{if(this.allows($))return $;let Y=new ZW($,this.$.resolvedConfig);return this.traverseApply($,Y),Y.finalize(X)};case"contextual":return($,X)=>{let Y=new ZW($,this.$.resolvedConfig);return this.traverseApply($,Y),Y.finalize(X)};case"optimistic":this.contextFreeMorph=this.shallowMorphs[0];let W=this.$.resolvedConfig.clone;return($,X)=>{if(this.allows($))return this.contextFreeMorph(W&&(typeof $==="object"&&$!==null||typeof $==="function")?W($):$);let Y=new ZW($,this.$.resolvedConfig);return this.traverseApply($,Y),Y.finalize(X)};case"branchedOptimistic":return this.createBranchedOptimisticRootApply();default:return this.rootApplyStrategy,O0(`Unexpected rootApplyStrategy ${this.rootApplyStrategy}`)}}compiledMeta=ZK(this.metaJson);cacheGetter(W,$){return Object.defineProperty(this,W,{value:$}),$}get description(){return this.cacheGetter("description",this.meta?.description??this.$.resolvedConfig[this.kind].description(this))}get references(){return Object.values(this.referencesById)}precedence=B$(this.kind);precompilation;assert=(W,$)=>this(W,$,(X)=>X.throw());traverse(W,$){return this(W,$,null)}get in(){return this.cacheGetter("in",this.getIo("in"))}get out(){return this.cacheGetter("out",this.getIo("out"))}getIo(W){if(!this.includesTransform)return this;let $={};for(let[X,Y]of this.innerEntries){let J=this.impl.keys[X];if(J.reduceIo)J.reduceIo(W,$,Y);else if(J.child){let G=Y;$[X]=C0(G)?G.map((H)=>H[W]):G[W]}else $[X]=Y}return this.$.node(this.kind,$)}toJSON(){return this.json}toString(){return`Type<${this.expression}>`}equals(W){let $=P0(W)?W:this.$.parseDefinition(W);return this.innerHash===$.innerHash}ifEquals(W){return this.equals(W)?this:void 0}hasKind(W){return this.kind===W}assertHasKind(W){if(this.kind!==W)A8(`${this.kind} node was not of asserted kind ${W}`);return this}hasKindIn(...W){return W.includes(this.kind)}assertHasKindIn(...W){if(!G2(W,this.kind))A8(`${this.kind} node was not one of asserted kinds ${W}`);return this}isBasis(){return G2(gT,this.kind)}isConstraint(){return G2(pY,this.kind)}isStructural(){return G2(A$,this.kind)}isRefinement(){return G2(g5,this.kind)}isRoot(){return G2(E$,this.kind)}isUnknown(){return this.hasKind("intersection")&&this.children.length===0}isNever(){return this.hasKind("union")&&this.children.length===0}hasUnit(W){return this.hasKind("unit")&&this.allows(W)}hasOpenIntersection(){return this.impl.intersectionIsOpen}get nestableExpression(){return this.expression}select(W){let $=f6.normalize(W);return this._select($)}_select(W){let $=f6.applyBoundary[W.boundary??"references"](this);if(W.kind)$=$.filter((X)=>X.kind===W.kind);if(W.where)$=$.filter(W.where);return f6.applyMethod[W.method??"filter"]($,this,W)}transform(W,$){return this._transform(W,this._createTransformContext($))}_createTransformContext(W){return{root:this,selected:void 0,seen:{},path:[],parseOptions:{prereduced:W?.prereduced??!1},undeclaredKeyHandling:void 0,...W}}_transform(W,$){let X=$.bindScope??this.$;if($.seen[this.id])return this.$.lazilyResolve($.seen[this.id]);if($.shouldTransform?.(this,$)===!1)return this;let Y;if($.seen[this.id]=()=>Y,this.hasKind("structure")&&this.undeclared!==$.undeclaredKeyHandling)$={...$,undeclaredKeyHandling:this.undeclared};let J=$0(this.inner,(F,T)=>{if(!this.impl.keys[F].child)return[F,T];let U=T;if(!C0(U)){let V=U._transform(W,$);return V?[F,V]:[]}if(U.length===0)return[F,T];let M=U.flatMap((V)=>{return V._transform(W,$)??[]});return M.length?[F,M]:[]});delete $.seen[this.id];let G=Object.assign(J,{meta:this.meta}),H=$.selected&&!$.selected.includes(this)?G:W(this.kind,G,$);if(H===null)return null;if(P0(H))return Y=H;let Q=Object.keys(H);if((Q.length===0||Q.length===1&&Q[0]==="meta")&&!uW(this.inner))return null;if((this.kind==="required"||this.kind==="optional"||this.kind==="index")&&!("value"in H))return $.undeclaredKeyHandling?{...H,value:R.intrinsic.unknown}:null;if(this.kind==="morph")H.in??=R.intrinsic.unknown;return Y=X.node(this.kind,H,$.parseOptions)}configureReferences(W,$="references"){let X=f6.normalize($),Y=typeof W==="string"?(Q,z)=>({...z,meta:{...z.meta,description:W}}):typeof W==="function"?(Q,z)=>({...z,meta:W(z.meta)}):(Q,z)=>({...z,meta:{...z.meta,...W}});if(X.boundary==="self")return this.$.node(this.kind,Y(this.kind,{...this.inner,meta:this.meta}));let J=this._select(X),G=J&&v2(J),H=X.boundary==="child"?(Q,z)=>z.root.children.includes(Q):X.boundary==="shallow"?(Q)=>Q.kind!=="structure":()=>!0;return this.$.finalize(this.transform(Y,{shouldTransform:H,selected:G}))}}var f6={applyBoundary:{self:(W)=>[W],child:(W)=>[...W.children],shallow:(W)=>[...W.shallowReferences],references:(W)=>[...W.references]},applyMethod:{filter:(W)=>W,assertFilter:(W,$,X)=>{if(W.length===0)A8(dT($,X));return W},find:(W)=>W[0],assertFind:(W,$,X)=>{if(W.length===0)A8(dT($,X));return W[0]}},normalize:(W)=>typeof W==="function"?{boundary:"references",method:"filter",where:W}:typeof W==="string"?z1(W,f6.applyBoundary)?{method:"filter",boundary:W}:{boundary:"references",method:"filter",kind:W}:{boundary:"references",method:"filter",...W}},dT=(W,$)=>`${W} had no references matching ${X0($)}.`,BK=(W)=>F2(W,{stringifyNonKey:($)=>$.expression}),RK=/"(\$ark\.[^"]+)"/g,ZK=(W)=>JSON.stringify(W).replaceAll(RK,"$1"),SW=(W,$)=>({path:W,node:$,propString:BK(W)}),lT=(W,$)=>W.propString===$.propString&&W.node.equals($.node),u5=(W,$)=>pW(W,$,{isEqual:lT}),SK=(W,$)=>pW(W,$,{isEqual:(X,Y)=>X.equals(Y)});class P extends Array{static init(W,$,X,Y){return new P({kind:W,l:$,r:X,path:Y?.path??[],optional:Y?.optional??!1})}add(W,$,X,Y){return this.push({kind:W,l:$,r:X,path:Y?.path??[],optional:Y?.optional??!1}),this}get summary(){return this.describeReasons()}describeReasons(){if(this.length===1){let{path:W,l:$,r:X}=this[0],Y=F2(W);return d5(`Intersection${Y&&` at ${Y}`} of ${oT($,X)}`)}return`The following intersections result in unsatisfiable types:
102
+ `);class ZW{path=[];errors=new p1(this);root;config;queuedMorphs=[];branches=[];seen={};constructor(W,$){this.root=W,this.config=$}get data(){let W=this.root;for(let $ of this.path)W=W?.[$];return W}get propString(){return F2(this.path)}reject(W){return this.error(W),!1}mustBe(W){return this.error(W),!1}error(W){let $=typeof W==="object"?W.code?W:{...W,code:"predicate"}:{code:"predicate",expected:W};return this.errorFromContext($)}hasError(){return this.currentErrorCount!==0}get currentBranch(){return this.branches.at(-1)}queueMorphs(W){let $={path:new k6(...this.path),morphs:W};if(this.currentBranch)this.currentBranch.queuedMorphs.push($);else this.queuedMorphs.push($)}finalize(W){if(this.queuedMorphs.length){if(typeof this.root==="object"&&this.root!==null&&this.config.clone)this.root=this.config.clone(this.root);this.applyQueuedMorphs()}if(this.hasError())return W?W(this.errors):this.errors;return this.root}get currentErrorCount(){return this.currentBranch?this.currentBranch.error?1:0:this.errors.count}get failFast(){return this.branches.length!==0}pushBranch(){this.branches.push({error:void 0,queuedMorphs:[]})}popBranch(){return this.branches.pop()}get external(){return this}errorFromNodeContext(W){return this.errorFromContext(W)}errorFromContext(W){let $=new m2(W,this);if(this.currentBranch)this.currentBranch.error=$;else this.errors.add($);return $}applyQueuedMorphs(){while(this.queuedMorphs.length){let W=this.queuedMorphs;this.queuedMorphs=[];for(let{path:$,morphs:X}of W){if(this.errors.affectsPath($))continue;this.applyMorphsAtPath($,X)}}}applyMorphsAtPath(W,$){let X=W.at(-1),Y;if(X!==void 0){Y=this.root;for(let J=0;J<W.length-1;J++)Y=Y[W[J]]}this.path=[...W];for(let J of $){let G=P0(J),H=J(Y===void 0?this.root:Y[X],this);if(H instanceof m2){this.errors.add(H);break}if(H instanceof p1){if(!G)this.errors.merge(H);break}if(Y===void 0)this.root=H;else Y[X]=H;this.applyQueuedMorphs()}}}var u1=(W,$,X)=>{if(!X)return $();X.path.push(W);let Y=$();return X.path.pop(),Y};class P6 extends BW{attachments;$;onFail;includesTransform;includesContextualPredicate;isCyclic;allowsRequiresContext;rootApplyStrategy;contextFreeMorph;rootApply;referencesById;shallowReferences;flatRefs;flatMorphs;allows;get shallowMorphs(){return[]}constructor(W,$){super((Y,J,G=this.onFail)=>{if(J)return this.traverseApply(Y,J),J.hasError()?J.errors:J.data;return this.rootApply(Y,G)},{attach:W});this.attachments=W,this.$=$,this.onFail=this.meta.onFail??this.$.resolvedConfig.onFail,this.includesTransform=this.hasKind("morph")||this.hasKind("structure")&&this.structuralMorph!==void 0,this.includesContextualPredicate=this.hasKind("predicate")&&this.inner.predicate.length!==1,this.isCyclic=this.kind==="alias",this.referencesById={[this.id]:this},this.shallowReferences=this.hasKind("structure")?[this,...this.children]:this.children.reduce((Y,J)=>SK(Y,J.shallowReferences),[this]);let X=this.isStructural();this.flatRefs=[],this.flatMorphs=[];for(let Y=0;Y<this.children.length;Y++){if(this.includesTransform||=this.children[Y].includesTransform,this.includesContextualPredicate||=this.children[Y].includesContextualPredicate,this.isCyclic||=this.children[Y].isCyclic,!X){let J=this.children[Y].flatRefs;for(let G=0;G<J.length;G++){let H=J[G];if(!this.flatRefs.some((Q)=>lT(Q,H))){this.flatRefs.push(H);for(let Q of H.node.branches)if(Q.hasKind("morph")||Q.hasKind("intersection")&&Q.structure?.structuralMorph!==void 0)this.flatMorphs.push({path:H.path,propString:H.propString,node:Q})}}}Object.assign(this.referencesById,this.children[Y].referencesById)}this.flatRefs.sort((Y,J)=>Y.path.length>J.path.length?1:Y.path.length<J.path.length?-1:Y.propString>J.propString?1:Y.propString<J.propString?-1:Y.node.expression<J.node.expression?-1:1),this.allowsRequiresContext=this.includesContextualPredicate||this.isCyclic,this.rootApplyStrategy=!this.allowsRequiresContext&&this.flatMorphs.length===0?this.shallowMorphs.length===0?"allows":this.shallowMorphs.every((Y)=>Y.length===1||Y.name==="$arkStructuralMorph")?this.hasKind("union")?this.branches.some((Y)=>Y.shallowMorphs.length>1)?"contextual":"branchedOptimistic":this.shallowMorphs.length>1?"contextual":"optimistic":"contextual":"contextual",this.rootApply=this.createRootApply(),this.allows=this.allowsRequiresContext?(Y)=>this.traverseAllows(Y,new ZW(Y,this.$.resolvedConfig)):(Y)=>this.traverseAllows(Y)}createRootApply(){switch(this.rootApplyStrategy){case"allows":return($,X)=>{if(this.allows($))return $;let Y=new ZW($,this.$.resolvedConfig);return this.traverseApply($,Y),Y.finalize(X)};case"contextual":return($,X)=>{let Y=new ZW($,this.$.resolvedConfig);return this.traverseApply($,Y),Y.finalize(X)};case"optimistic":this.contextFreeMorph=this.shallowMorphs[0];let W=this.$.resolvedConfig.clone;return($,X)=>{if(this.allows($))return this.contextFreeMorph(W&&(typeof $==="object"&&$!==null||typeof $==="function")?W($):$);let Y=new ZW($,this.$.resolvedConfig);return this.traverseApply($,Y),Y.finalize(X)};case"branchedOptimistic":return this.createBranchedOptimisticRootApply();default:return this.rootApplyStrategy,V0(`Unexpected rootApplyStrategy ${this.rootApplyStrategy}`)}}compiledMeta=ZK(this.metaJson);cacheGetter(W,$){return Object.defineProperty(this,W,{value:$}),$}get description(){return this.cacheGetter("description",this.meta?.description??this.$.resolvedConfig[this.kind].description(this))}get references(){return Object.values(this.referencesById)}precedence=R$(this.kind);precompilation;assert=(W,$)=>this(W,$,(X)=>X.throw());traverse(W,$){return this(W,$,null)}get in(){return this.cacheGetter("in",this.getIo("in"))}get out(){return this.cacheGetter("out",this.getIo("out"))}getIo(W){if(!this.includesTransform)return this;let $={};for(let[X,Y]of this.innerEntries){let J=this.impl.keys[X];if(J.reduceIo)J.reduceIo(W,$,Y);else if(J.child){let G=Y;$[X]=C0(G)?G.map((H)=>H[W]):G[W]}else $[X]=Y}return this.$.node(this.kind,$)}toJSON(){return this.json}toString(){return`Type<${this.expression}>`}equals(W){let $=P0(W)?W:this.$.parseDefinition(W);return this.innerHash===$.innerHash}ifEquals(W){return this.equals(W)?this:void 0}hasKind(W){return this.kind===W}assertHasKind(W){if(this.kind!==W)A8(`${this.kind} node was not of asserted kind ${W}`);return this}hasKindIn(...W){return W.includes(this.kind)}assertHasKindIn(...W){if(!G2(W,this.kind))A8(`${this.kind} node was not one of asserted kinds ${W}`);return this}isBasis(){return G2(gT,this.kind)}isConstraint(){return G2(pY,this.kind)}isStructural(){return G2(A$,this.kind)}isRefinement(){return G2(g5,this.kind)}isRoot(){return G2(E$,this.kind)}isUnknown(){return this.hasKind("intersection")&&this.children.length===0}isNever(){return this.hasKind("union")&&this.children.length===0}hasUnit(W){return this.hasKind("unit")&&this.allows(W)}hasOpenIntersection(){return this.impl.intersectionIsOpen}get nestableExpression(){return this.expression}select(W){let $=f6.normalize(W);return this._select($)}_select(W){let $=f6.applyBoundary[W.boundary??"references"](this);if(W.kind)$=$.filter((X)=>X.kind===W.kind);if(W.where)$=$.filter(W.where);return f6.applyMethod[W.method??"filter"]($,this,W)}transform(W,$){return this._transform(W,this._createTransformContext($))}_createTransformContext(W){return{root:this,selected:void 0,seen:{},path:[],parseOptions:{prereduced:W?.prereduced??!1},undeclaredKeyHandling:void 0,...W}}_transform(W,$){let X=$.bindScope??this.$;if($.seen[this.id])return this.$.lazilyResolve($.seen[this.id]);if($.shouldTransform?.(this,$)===!1)return this;let Y;if($.seen[this.id]=()=>Y,this.hasKind("structure")&&this.undeclared!==$.undeclaredKeyHandling)$={...$,undeclaredKeyHandling:this.undeclared};let J=$0(this.inner,(F,T)=>{if(!this.impl.keys[F].child)return[F,T];let U=T;if(!C0(U)){let O=U._transform(W,$);return O?[F,O]:[]}if(U.length===0)return[F,T];let M=U.flatMap((O)=>{return O._transform(W,$)??[]});return M.length?[F,M]:[]});delete $.seen[this.id];let G=Object.assign(J,{meta:this.meta}),H=$.selected&&!$.selected.includes(this)?G:W(this.kind,G,$);if(H===null)return null;if(P0(H))return Y=H;let Q=Object.keys(H);if((Q.length===0||Q.length===1&&Q[0]==="meta")&&!uW(this.inner))return null;if((this.kind==="required"||this.kind==="optional"||this.kind==="index")&&!("value"in H))return $.undeclaredKeyHandling?{...H,value:B.intrinsic.unknown}:null;if(this.kind==="morph")H.in??=B.intrinsic.unknown;return Y=X.node(this.kind,H,$.parseOptions)}configureReferences(W,$="references"){let X=f6.normalize($),Y=typeof W==="string"?(Q,z)=>({...z,meta:{...z.meta,description:W}}):typeof W==="function"?(Q,z)=>({...z,meta:W(z.meta)}):(Q,z)=>({...z,meta:{...z.meta,...W}});if(X.boundary==="self")return this.$.node(this.kind,Y(this.kind,{...this.inner,meta:this.meta}));let J=this._select(X),G=J&&v2(J),H=X.boundary==="child"?(Q,z)=>z.root.children.includes(Q):X.boundary==="shallow"?(Q)=>Q.kind!=="structure":()=>!0;return this.$.finalize(this.transform(Y,{shouldTransform:H,selected:G}))}}var f6={applyBoundary:{self:(W)=>[W],child:(W)=>[...W.children],shallow:(W)=>[...W.shallowReferences],references:(W)=>[...W.references]},applyMethod:{filter:(W)=>W,assertFilter:(W,$,X)=>{if(W.length===0)A8(dT($,X));return W},find:(W)=>W[0],assertFind:(W,$,X)=>{if(W.length===0)A8(dT($,X));return W[0]}},normalize:(W)=>typeof W==="function"?{boundary:"references",method:"filter",where:W}:typeof W==="string"?z1(W,f6.applyBoundary)?{method:"filter",boundary:W}:{boundary:"references",method:"filter",kind:W}:{boundary:"references",method:"filter",...W}},dT=(W,$)=>`${W} had no references matching ${X0($)}.`,RK=(W)=>F2(W,{stringifyNonKey:($)=>$.expression}),BK=/"(\$ark\.[^"]+)"/g,ZK=(W)=>JSON.stringify(W).replaceAll(BK,"$1"),SW=(W,$)=>({path:W,node:$,propString:RK(W)}),lT=(W,$)=>W.propString===$.propString&&W.node.equals($.node),u5=(W,$)=>pW(W,$,{isEqual:lT}),SK=(W,$)=>pW(W,$,{isEqual:(X,Y)=>X.equals(Y)});class P extends Array{static init(W,$,X,Y){return new P({kind:W,l:$,r:X,path:Y?.path??[],optional:Y?.optional??!1})}add(W,$,X,Y){return this.push({kind:W,l:$,r:X,path:Y?.path??[],optional:Y?.optional??!1}),this}get summary(){return this.describeReasons()}describeReasons(){if(this.length===1){let{path:W,l:$,r:X}=this[0],Y=F2(W);return d5(`Intersection${Y&&` at ${Y}`} of ${oT($,X)}`)}return`The following intersections result in unsatisfiable types:
103
103
  \u2022 ${this.map(({path:W,l:$,r:X})=>`${W}: ${oT($,X)}`).join(`
104
- \u2022 `)}`}throw(){return L(this.describeReasons())}invert(){let W=this.map(($)=>({...$,l:$.r,r:$.l}));if(!(W instanceof P))return new P(...W);return W}withPrefixKey(W,$){return this.map((X)=>({...X,path:[W,...X.path],optional:X.optional||$==="optional"}))}toNeverIfDisjoint(){return R.intrinsic.never}}var oT=(W,$)=>`${c5(W)} and ${c5($)}`,c5=(W)=>P0(W)?W.expression:C0(W)?W.map(c5).join(" | ")||"never":String(W),d5=(W)=>`${W} results in an unsatisfiable type`;var R$={},c1=(W,$,X)=>x0(W,$,{$:X,invert:!1,pipe:!1}),x6=(W,$,X)=>x0(W,$,{$:X,invert:!1,pipe:!0}),x0=(W,$,X)=>{let Y=X.pipe?"|>":"&",J=`${W.hash}${Y}${$.hash}`;if(R$[J]!==void 0)return R$[J];if(!X.pipe){let Q=`${$.hash}${Y}${W.hash}`;if(R$[Q]!==void 0){let z=R$[Q],F=z instanceof P?z.invert():z;return R$[J]=F,F}}let G=!X.pipe||!W.includesTransform&&!$.includesTransform;if(G&&W.equals($))return W;let H=G?l5(W,$,X):W.hasKindIn(...E$)?qK(W,$,X):l5(W,$,X);if(P0(H)){if(W.equals(H))H=W;else if($.equals(H))H=$}return R$[J]=H,H},l5=(W,$,X)=>{let Y=W.precedence<$.precedence?W.kind:$.kind,J=W.impl.intersections[$.kind]??$.impl.intersections[W.kind];if(J===void 0)return null;else if(Y===W.kind)return J(W,$,X);else{let G=J($,W,{...X,invert:!X.invert});if(G instanceof P)G=G.invert();return G}},qK=(W,$,X)=>W.includesTransform||$.includesTransform?X.invert?iT($,W,X):iT(W,$,X):l5(W,$,X),iT=(W,$,X)=>W.distribute((Y)=>CK(Y,$,X),(Y)=>{let J=Y.filter(P0);if(J.length===0)return P.init("union",W.branches,$.branches);if(J.length<W.branches.length||!W.branches.every((Q,z)=>Q.in.equals(J[z].in)))return X.$.parseSchema(J);let G;if(J.length===1){let Q=J[0];if(!G)return Q;return X.$.node("morph",{...Q.inner,in:Q.in.configure(G,"self")})}let H={branches:J};if(G)H.meta=G;return X.$.parseSchema(H)}),CK=(W,$,X)=>{if(W.hasKind("morph")){let J=[...W.morphs];if(W.lastMorphIfNode){let G=x0(W.lastMorphIfNode,$,X);if(G instanceof P)return G;J[J.length-1]=G}else J.push($);return X.$.node("morph",{morphs:J,in:W.inner.in})}if($.hasKind("morph")){let J=x0(W,$.in,X);if(J instanceof P)return J;return X.$.node("morph",{morphs:[$],in:J})}return X.$.node("morph",{morphs:[$],in:W})};class FW extends P6{constructor(W,$){super(W,$);Object.defineProperty(this,j1,{value:"constraint",enumerable:!1})}impliedSiblings;intersect(W){return c1(this,W,this.$)}}class U2 extends FW{traverseApply=(W,$)=>{if(!this.traverseAllows(W,$))$.errorFromNodeContext(this.errorContext)};compile(W){if(W.traversalKind==="Allows")W.return(this.compiledCondition);else W.if(this.compiledNegation,()=>W.line(`${W.ctx}.errorFromNodeContext(${this.compiledErrorContext})`))}get errorContext(){return{code:this.kind,description:this.description,meta:this.meta,...this.inner}}get compiledErrorContext(){return g2(this.errorContext)}}var B1=(W)=>($,X)=>{if(C0($)){if($.length===0)return;let J=$.map((G)=>X.$.node(W,G));if(W==="predicate")return J;return J.sort((G,H)=>G.hash<H.hash?-1:1)}let Y=X.$.node(W,$);return Y.hasOpenIntersection()?[Y]:Y},Z$=(W)=>{let $=W.r.shift();if(!$){let Y=W.l.length===0&&W.kind==="structure"?R.intrinsic.unknown.internal:W.ctx.$.node(W.kind,Object.assign(W.baseInner,kK(W.l)),{prereduced:!0});for(let J of W.roots){if(Y instanceof P)return Y;Y=x0(J,Y,W.ctx)}return Y}let X=!1;for(let Y=0;Y<W.l.length;Y++){let J=x0(W.l[Y],$,W.ctx);if(J===null)continue;if(J instanceof P)return J;if(!X){if(J.isRoot())return W.roots.push(J),W.l.splice(Y),Z$(W);W.l[Y]=J,X=!0}else if(!W.l.includes(J))return O0(`Unexpectedly encountered multiple distinct intersection results for refinement ${J}`)}if(!X)W.l.push($);if(W.kind==="intersection"){if($.impliedSiblings)for(let Y of $.impliedSiblings)pW(W.r,Y)}return Z$(W)},S$=(W)=>{return Object.entries(W).flatMap(([X,Y])=>(X in uY)?Y:[]).sort((X,Y)=>X.precedence<Y.precedence?-1:X.precedence>Y.precedence?1:X.kind==="predicate"&&Y.kind==="predicate"?0:X.hash<Y.hash?-1:1)},kK=(W)=>{let $={};for(let X of W)if(X.hasOpenIntersection())$[X.kind]=M0($[X.kind],X);else{if($[X.kind])return O0(`Unexpected intersection of closed refinements of kind ${X.kind}`);$[X.kind]=X}return $},nT=(...W)=>L(rT(...W)),rT=(W,$,X)=>{let Y=X.hasKind("morph")?"a morph":X.isUnknown()?"unknown":X.exclude($).defaultShortDescription;return`${RT(W)} operand must be ${$.description} (was ${Y})`};var tT=(W,$,X)=>new p2(W,$,X,X,null);class dY extends RW{}class p2 extends RW{[j1]="generic";paramDefs;bodyDef;$;arg$;baseInstantiation;hkt;description;constructor(W,$,X,Y,J){super((...G)=>{let H=$0(this.names,(Q,z)=>{let F=this.arg$.parse(G[Q]);if(!F.extends(this.constraints[Q]))L(IK(z,this.constraints[Q].expression,F.expression));return[z,F]});if(this.defIsLazy()){let Q=this.bodyDef(H);return this.$.parse(Q)}return this.$.parse($,{args:H})});this.paramDefs=W,this.bodyDef=$,this.$=X,this.arg$=Y,this.hkt=J,this.description=J?new J().description??`a generic type for ${J.constructor.name}`:"a generic type",this.baseInstantiation=this(...this.constraints)}defIsLazy(){return this.bodyDef instanceof dY}cacheGetter(W,$){return Object.defineProperty(this,W,{value:$}),$}get json(){return this.cacheGetter("json",{params:this.params.map((W)=>W[1].isUnknown()?W[0]:[W[0],W[1].json]),body:vT(this.bodyDef)})}get params(){return this.cacheGetter("params",this.paramDefs.map((W)=>typeof W==="string"?[W,R.intrinsic.unknown]:[W[0],this.$.parse(W[1])]))}get names(){return this.cacheGetter("names",this.params.map((W)=>W[0]))}get constraints(){return this.cacheGetter("constraints",this.params.map((W)=>W[1]))}get internal(){return this}get referencesById(){return this.baseInstantiation.internal.referencesById}get references(){return this.baseInstantiation.internal.references}}var IK=(W,$,X)=>`${W} must be assignable to ${$} (was ${X})`;var jK=Y0({kind:"predicate",hasAssociatedError:!0,collapsibleKey:"predicate",keys:{predicate:{}},normalize:(W)=>typeof W==="function"?{predicate:W}:W,defaults:{description:(W)=>`valid according to ${W.predicate.name||"an anonymous predicate"}`},intersectionIsOpen:!0,intersections:{predicate:()=>null}});class aT extends FW{serializedPredicate=c0(this.predicate);compiledCondition=`${this.serializedPredicate}(data, ctx)`;compiledNegation=`!${this.compiledCondition}`;impliedBasis=null;expression=this.serializedPredicate;traverseAllows=this.predicate;errorContext={code:"predicate",description:this.description,meta:this.meta};compiledErrorContext=g2(this.errorContext);traverseApply=(W,$)=>{if(!this.predicate(W,$.external)&&!$.hasError())$.errorFromNodeContext(this.errorContext)};compile(W){if(W.traversalKind==="Allows"){W.return(this.compiledCondition);return}W.if(`${this.compiledNegation} && !ctx.hasError()`,()=>W.line(`ctx.errorFromNodeContext(${this.compiledErrorContext})`))}reduceJsonSchema(W,$){return $.fallback.predicate({code:"predicate",base:W,predicate:this.predicate})}}var o5={implementation:jK,Node:aT};var fK=Y0({kind:"divisor",collapsibleKey:"rule",keys:{rule:{parse:(W)=>Number.isInteger(W)?W:L(PK(W))}},normalize:(W)=>typeof W==="number"?{rule:W}:W,hasAssociatedError:!0,defaults:{description:(W)=>W.rule===1?"an integer":W.rule===2?"even":`a multiple of ${W.rule}`},intersections:{divisor:(W,$,X)=>X.$.node("divisor",{rule:Math.abs(W.rule*$.rule/xK(W.rule,$.rule))})},obviatesBasisDescription:!0});class sT extends U2{traverseAllows=(W)=>W%this.rule===0;compiledCondition=`data % ${this.rule} === 0`;compiledNegation=`data % ${this.rule} !== 0`;impliedBasis=R.intrinsic.number.internal;expression=`% ${this.rule}`;reduceJsonSchema(W){if(W.type="integer",this.rule===1)return W;return W.multipleOf=this.rule,W}}var i5={implementation:fK,Node:sT};var PK=(W)=>`divisor must be an integer (was ${W})`,xK=(W,$)=>{let X,Y=W,J=$;while(J!==0)X=J,J=Y%J,Y=X;return Y};class WW extends U2{boundOperandKind=hK[this.kind];compiledActual=this.boundOperandKind==="value"?"data":this.boundOperandKind==="length"?"data.length":"data.valueOf()";comparator=gK(this.kind,this.exclusive);numericLimit=this.rule.valueOf();expression=`${this.comparator} ${this.rule}`;compiledCondition=`${this.compiledActual} ${this.comparator} ${this.numericLimit}`;compiledNegation=`${this.compiledActual} ${vK[this.comparator]} ${this.numericLimit}`;stringLimit=this.boundOperandKind==="date"?mK(this.numericLimit):`${this.numericLimit}`;limitKind=this.comparator["0"]==="<"?"upper":"lower";isStricterThan(W){return(this.limitKind==="upper"?this.numericLimit<W.numericLimit:this.numericLimit>W.numericLimit)||this.numericLimit===W.numericLimit&&this.exclusive===!0&&!W.exclusive}overlapsRange(W){if(this.isStricterThan(W))return!1;if(this.numericLimit===W.numericLimit&&(this.exclusive||W.exclusive))return!1;return!0}overlapIsUnit(W){return this.numericLimit===W.numericLimit&&!this.exclusive&&!W.exclusive}}var vK={"<":">=","<=":">",">":"<=",">=":"<"},bK={min:"max",minLength:"maxLength",after:"before"},lY={parse:(W)=>W||void 0},oY=(W)=>($)=>{if(typeof $==="number")return{rule:$};let{exclusive:X,...Y}=$;return X?{...Y,rule:W==="minLength"?Y.rule+1:Y.rule-1}:Y},iY=(W)=>($)=>{if(typeof $==="number"||typeof $==="string"||$ instanceof Date)return{rule:$};let{exclusive:X,...Y}=$;if(!X)return Y;let J=typeof Y.rule==="number"?Y.rule:typeof Y.rule==="string"?new Date(Y.rule).valueOf():Y.rule.valueOf();return X?{...Y,rule:W==="after"?J+1:J-1}:Y},nY=(W)=>typeof W==="string"||typeof W==="number"?new Date(W):W,yK=(W,$)=>`${W} bound must be a positive integer (was ${$})`,q$=(W)=>($)=>{if(!Number.isInteger($)||$<0)L(yK(W,$));return $},hK={min:"value",max:"value",minLength:"length",maxLength:"length",after:"date",before:"date"},gK=(W,$)=>`${z1(W,bK)?">":"<"}${$?"":"="}`,mK=(W)=>typeof W==="string"?W:new Date(W).toLocaleString(),eT=(W)=>`Bounded expression ${W} must be exactly one of number, string, Array, or Date`;var pK=Y0({kind:"after",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:nY,serialize:(W)=>W.toISOString()}},normalize:iY("after"),defaults:{description:(W)=>`${W.collapsibleLimitString} or later`,actual:R8},intersections:{after:(W,$)=>W.isStricterThan($)?W:$}});class WU extends WW{impliedBasis=R.intrinsic.Date.internal;collapsibleLimitString=R8(this.rule);traverseAllows=(W)=>W>=this.rule;reduceJsonSchema(W,$){return $.fallback.date({code:"date",base:W,after:this.rule})}}var n5={implementation:pK,Node:WU};var uK=Y0({kind:"before",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:nY,serialize:(W)=>W.toISOString()}},normalize:iY("before"),defaults:{description:(W)=>`${W.collapsibleLimitString} or earlier`,actual:R8},intersections:{before:(W,$)=>W.isStricterThan($)?W:$,after:(W,$,X)=>W.overlapsRange($)?W.overlapIsUnit($)?X.$.node("unit",{unit:W.rule}):null:P.init("range",W,$)}});class $U extends WW{collapsibleLimitString=R8(this.rule);traverseAllows=(W)=>W<=this.rule;impliedBasis=R.intrinsic.Date.internal;reduceJsonSchema(W,$){return $.fallback.date({code:"date",base:W,before:this.rule})}}var r5={implementation:uK,Node:$U};var cK=Y0({kind:"exactLength",collapsibleKey:"rule",keys:{rule:{parse:q$("exactLength")}},normalize:(W)=>typeof W==="number"?{rule:W}:W,hasAssociatedError:!0,defaults:{description:(W)=>`exactly length ${W.rule}`,actual:(W)=>`${W.length}`},intersections:{exactLength:(W,$,X)=>P.init("unit",X.$.node("unit",{unit:W.rule}),X.$.node("unit",{unit:$.rule}),{path:["length"]}),minLength:(W,$)=>W.rule>=$.rule?W:P.init("range",W,$),maxLength:(W,$)=>W.rule<=$.rule?W:P.init("range",W,$)}});class XU extends U2{traverseAllows=(W)=>W.length===this.rule;compiledCondition=`data.length === ${this.rule}`;compiledNegation=`data.length !== ${this.rule}`;impliedBasis=R.intrinsic.lengthBoundable.internal;expression=`== ${this.rule}`;reduceJsonSchema(W){switch(W.type){case"string":return W.minLength=this.rule,W.maxLength=this.rule,W;case"array":return W.minItems=this.rule,W.maxItems=this.rule,W;default:return y0.throwInternalOperandError("exactLength",W)}}}var t5={implementation:cK,Node:XU};var dK=Y0({kind:"max",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:lY},normalize:(W)=>typeof W==="number"?{rule:W}:W,defaults:{description:(W)=>{if(W.rule===0)return W.exclusive?"negative":"non-positive";return`${W.exclusive?"less than":"at most"} ${W.rule}`}},intersections:{max:(W,$)=>W.isStricterThan($)?W:$,min:(W,$,X)=>W.overlapsRange($)?W.overlapIsUnit($)?X.$.node("unit",{unit:W.rule}):null:P.init("range",W,$)},obviatesBasisDescription:!0});class YU extends WW{impliedBasis=R.intrinsic.number.internal;traverseAllows=this.exclusive?(W)=>W<this.rule:(W)=>W<=this.rule;reduceJsonSchema(W){if(this.exclusive)W.exclusiveMaximum=this.rule;else W.maximum=this.rule;return W}}var a5={implementation:dK,Node:YU};var lK=Y0({kind:"maxLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:q$("maxLength")}},reduce:(W,$)=>W.rule===0?$.node("exactLength",W):void 0,normalize:oY("maxLength"),defaults:{description:(W)=>`at most length ${W.rule}`,actual:(W)=>`${W.length}`},intersections:{maxLength:(W,$)=>W.isStricterThan($)?W:$,minLength:(W,$,X)=>W.overlapsRange($)?W.overlapIsUnit($)?X.$.node("exactLength",{rule:W.rule}):null:P.init("range",W,$)}});class JU extends WW{impliedBasis=R.intrinsic.lengthBoundable.internal;traverseAllows=(W)=>W.length<=this.rule;reduceJsonSchema(W){switch(W.type){case"string":return W.maxLength=this.rule,W;case"array":return W.maxItems=this.rule,W;default:return y0.throwInternalOperandError("maxLength",W)}}}var s5={implementation:lK,Node:JU};var oK=Y0({kind:"min",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:lY},normalize:(W)=>typeof W==="number"?{rule:W}:W,defaults:{description:(W)=>{if(W.rule===0)return W.exclusive?"positive":"non-negative";return`${W.exclusive?"more than":"at least"} ${W.rule}`}},intersections:{min:(W,$)=>W.isStricterThan($)?W:$},obviatesBasisDescription:!0});class GU extends WW{impliedBasis=R.intrinsic.number.internal;traverseAllows=this.exclusive?(W)=>W>this.rule:(W)=>W>=this.rule;reduceJsonSchema(W){if(this.exclusive)W.exclusiveMinimum=this.rule;else W.minimum=this.rule;return W}}var e5={implementation:oK,Node:GU};var iK=Y0({kind:"minLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:q$("minLength")}},reduce:(W)=>W.rule===0?R.intrinsic.unknown:void 0,normalize:oY("minLength"),defaults:{description:(W)=>W.rule===1?"non-empty":`at least length ${W.rule}`,actual:(W)=>W.length===0?"":`${W.length}`},intersections:{minLength:(W,$)=>W.isStricterThan($)?W:$}});class HU extends WW{impliedBasis=R.intrinsic.lengthBoundable.internal;traverseAllows=(W)=>W.length>=this.rule;reduceJsonSchema(W){switch(W.type){case"string":return W.minLength=this.rule,W;case"array":return W.minItems=this.rule,W;default:return y0.throwInternalOperandError("minLength",W)}}}var W7={implementation:iK,Node:HU};var QU={min:e5.implementation,max:a5.implementation,minLength:W7.implementation,maxLength:s5.implementation,exactLength:t5.implementation,after:n5.implementation,before:r5.implementation},zU={min:e5.Node,max:a5.Node,minLength:W7.Node,maxLength:s5.Node,exactLength:t5.Node,after:n5.Node,before:r5.Node};var nK=Y0({kind:"pattern",collapsibleKey:"rule",keys:{rule:{},flags:{}},normalize:(W)=>typeof W==="string"?{rule:W}:W instanceof RegExp?W.flags?{rule:W.source,flags:W.flags}:{rule:W.source}:W,obviatesBasisDescription:!0,obviatesBasisExpression:!0,hasAssociatedError:!0,intersectionIsOpen:!0,defaults:{description:(W)=>`matched by ${W.rule}`},intersections:{pattern:()=>null}});class FU extends U2{instance=new RegExp(this.rule,this.flags);expression=`${this.instance}`;traverseAllows=this.instance.test.bind(this.instance);compiledCondition=`${this.expression}.test(data)`;compiledNegation=`!${this.compiledCondition}`;impliedBasis=R.intrinsic.string.internal;reduceJsonSchema(W,$){if(W.pattern)return $.fallback.patternIntersection({code:"patternIntersection",base:W,pattern:this.rule});return W.pattern=this.rule,W}}var $7={implementation:nK,Node:FU};var v6=(W,$)=>{let X=rK(W);if($&&!$.includes(X))return L(`Root of kind ${X} should be one of ${$}`);return X},rK=(W)=>{if(d(W,"root"))return W.kind;if(typeof W==="string")return W[0]==="$"?"alias":(W in m1)?"domain":"proto";if(typeof W==="function")return"proto";if(typeof W!=="object"||W===null)return L(TU(W));if("morphs"in W)return"morph";if("branches"in W||C0(W))return"union";if("unit"in W)return"unit";if("reference"in W)return"alias";let $=Object.keys(W);if($.length===0||$.some((X)=>(X in uY)))return"intersection";if("proto"in W)return"proto";if("domain"in W)return"domain";return L(TU(W))},TU=(W)=>`${X0(W)} is not a valid type schema`,UU={},tK=(W)=>C0(W)?W.map(($)=>$.collapsibleJson):W.collapsibleJson,f1={};R.nodesByRegisteredId=f1;var X7=(W)=>{return UU[W]??=0,`${W}${++UU[W]}`},Y7=(W)=>{let $=C$[W.kind],X=$.applyConfig?.(W.def,W.$.resolvedConfig)??W.def,Y={},{meta:J,...G}=X,H=J===void 0?{}:typeof J==="string"?{description:J}:J,Q=S5(G).sort(([F],[T])=>N$(F)?N$(T)?B$(F)-B$(T):1:N$(T)?-1:F<T?-1:1).filter(([F,T])=>{if(F.startsWith("meta.")){let U=F.slice(5);return H[U]=T,!1}return!0});for(let F of Q){let T=F[0],U=$.keys[T];if(!U)return L(`Key ${T} is not valid on ${W.kind} schema`);let M=U.parse?U.parse(F[1],W):F[1];if(M!==e1&&(M!==void 0||U.preserveUndefined))Y[T]=M}if($.reduce&&!W.prereduced){let F=$.reduce(Y,W.$);if(F){if(F instanceof P)return F.throw();return aK(F,H)}}return J7({id:W.id,kind:W.kind,inner:Y,meta:H,$:W.$})},J7=({id:W,kind:$,inner:X,meta:Y,$:J,ignoreCache:G})=>{let H=C$[$],Q=S5(X),z=[],F={};for(let[C,B]of Q){let q=H.keys[C],m=q.serialize??(q.child?tK:zW);if(F[C]=m(B),q.child===!0){let c=B;if(C0(c))z.push(...c);else z.push(c)}else if(typeof q.child==="function")z.push(...q.child(B))}if(H.finalizeInnerJson)F=H.finalizeInnerJson(F);let T={...F},U={};if(!uW(Y))U=$0(Y,(C,B)=>[C,C==="examples"?B:zW(B)]),T.meta=rY(U,"description",!0);F=rY(F,H.collapsibleKey,!1);let M=JSON.stringify({kind:$,...F});T=rY(T,H.collapsibleKey,!1);let V=rY(T,H.collapsibleKey,!0),K=JSON.stringify({kind:$,...T});if(J.nodesByHash[K]&&!G)return J.nodesByHash[K];let N={id:W,kind:$,impl:H,inner:X,innerEntries:Q,innerJson:F,innerHash:M,meta:Y,metaJson:U,json:T,hash:K,collapsibleJson:V,children:z};if($!=="intersection"){for(let C in X)if(C!=="in"&&C!=="out")N[C]=X[C]}let I=new MU[$](N,J);return J.nodesByHash[K]=I},wU=(W,$)=>{if(W.id===$)return W;if(P0(f1[$]))O0(`Unexpected attempt to overwrite node id ${$}`);return J7({id:$,kind:W.kind,inner:W.inner,meta:W.meta,$:W.$,ignoreCache:!0})},aK=(W,$,X)=>{if(X&&P0(f1[X]))O0(`Unexpected attempt to overwrite node id ${X}`);return J7({id:X??X7($.alias??W.kind),kind:W.kind,inner:W.inner,meta:$,$:W.$})},rY=(W,$,X)=>{let Y=Object.keys(W);if(Y.length===1&&Y[0]===$){let J=W[$];if(X)return J;if(g1(J,"object")&&(Object.keys(J).length===1||Array.isArray(J)))return J}return W};var b6=(W,$,X)=>{if(W.key!==$.key)return null;let Y=W.key,J=x0(W.value,$.value,X),G=W.required||$.required?"required":"optional";if(J instanceof P)if(G==="optional")J=R.intrinsic.never.internal;else return J.withPrefixKey(W.key,W.required&&$.required?"required":"optional");if(G==="required")return X.$.node("required",{key:Y,value:J});let H=W.hasDefault()?$.hasDefault()?W.default===$.default?W.default:L(G7(W.default,$.default)):W.default:$.hasDefault()?$.default:e1;return X.$.node("optional",{key:Y,value:J,default:H})};class y6 extends FW{required=this.kind==="required";optional=this.kind==="optional";impliedBasis=R.intrinsic.object.internal;serializedKey=T2(this.key);compiledKey=typeof this.key==="string"?this.key:this.serializedKey;flatRefs=M0(this.value.flatRefs.map((W)=>SW([this.key,...W.path],W.node)),SW([this.key],this.value));_transform(W,$){$.path.push(this.key);let X=super._transform(W,$);return $.path.pop(),X}hasDefault(){return"default"in this.inner}traverseAllows=(W,$)=>{if(this.key in W)return u1(this.key,()=>this.value.traverseAllows(W[this.key],$),$);return this.optional};traverseApply=(W,$)=>{if(this.key in W)u1(this.key,()=>this.value.traverseApply(W[this.key],$),$);else if(this.hasKind("required"))$.errorFromNodeContext(this.errorContext)};compile(W){if(W.if(`${this.serializedKey} in data`,()=>W.traverseKey(this.serializedKey,`data${W.prop(this.key)}`,this.value)),this.hasKind("required"))W.else(()=>W.traversalKind==="Apply"?W.line(`ctx.errorFromNodeContext(${this.compiledErrorContext})`):W.return(!1));if(W.traversalKind==="Allows")W.return(!0)}}var G7=(W,$)=>`Invalid intersection of default values ${X0(W)} & ${X0($)}`;var sK=Y0({kind:"optional",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{key:{},value:{child:!0,parse:(W,$)=>$.$.parseSchema(W)},default:{preserveUndefined:!0}},normalize:(W)=>W,reduce:(W,$)=>{if($.resolvedConfig.exactOptionalPropertyTypes===!1){if(!W.value.allows(void 0))return $.node("optional",{...W,value:W.value.or(r.undefined)},{prereduced:!0})}},defaults:{description:(W)=>`${W.compiledKey}?: ${W.value.description}`},intersections:{optional:b6}});class _U extends y6{constructor(...W){super(...W);if("default"in this.inner)g6(this.value,this.inner.default,this.key)}get outProp(){if(!this.hasDefault())return this;let{default:W,...$}=this.inner;return this.cacheGetter("outProp",this.$.node("required",$,{prereduced:!0}))}expression=this.hasDefault()?`${this.compiledKey}: ${this.value.expression} = ${X0(this.inner.default)}`:`${this.compiledKey}?: ${this.value.expression}`;defaultValueMorph=WL(this);defaultValueMorphRef=this.defaultValueMorph&&c0(this.defaultValueMorph)}var h6={implementation:sK,Node:_U},eK={},WL=(W)=>{if(!W.hasDefault())return;let $=`{${W.compiledKey}: ${W.value.id} = ${zW(W.default)}}`;return eK[$]??=H7(W.key,W.value,W.default)},H7=(W,$,X)=>{if(typeof X==="function")return $.includesTransform?(J,G)=>{return u1(W,()=>$(J[W]=X(),G),G),J}:(J)=>{return J[W]=X(),J};let Y=$.includesTransform?$.assert(X):X;return g1(Y,"object")?(J,G)=>{return u1(W,()=>$(J[W]=X,G),G),J}:(J)=>{return J[W]=Y,J}},g6=(W,$,X)=>{let Y=b2($);if(g1($,"object")&&!Y)L($L(X));let J=W.in(Y?$():$);if(J instanceof p1){if(X===null)L(`Default ${J.summary}`);let G=J.transform((H)=>H.transform((Q)=>({...Q,prefixPath:[X]})));L(`Default for ${G.summary}`)}return $},$L=(W)=>{return`Non-primitive default ${W===null?"":typeof W==="number"?`for value at [${W}] `:`for ${T2(W)} `}must be specified as a function like () => ({my: 'object'})`};class TW extends P6{constructor(W,$){super(W,$);Object.defineProperty(this,j1,{value:"root",enumerable:!1})}get internal(){return this}get "~standard"(){return{vendor:"arktype",version:1,validate:(W)=>{let $=this(W);if($ instanceof p1)return $;return{value:$}}}}as(){return this}brand(W){if(W==="")return L(XL);return this}readonly(){return this}branches=this.hasKind("union")?this.inner.branches:[this];distribute(W,$){let X=this.branches.map(W);return $?.(X)??X}get shortDescription(){return this.meta.description??this.defaultShortDescription}toJsonSchema(W={}){let $=m5(this.$.resolvedConfig.toJsonSchema,W);$.useRefs||=this.isCyclic;let X=typeof $.dialect==="string"?{$schema:$.dialect}:{};if(Object.assign(X,this.toJsonSchemaRecurse($)),$.useRefs)X.$defs=$0(this.references,(Y,J)=>J.isRoot()&&!J.alwaysExpandJsonSchema?[J.id,J.toResolvedJsonSchema($)]:[]);return X}toJsonSchemaRecurse(W){if(W.useRefs&&!this.alwaysExpandJsonSchema)return{$ref:`#/$defs/${this.id}`};return this.toResolvedJsonSchema(W)}get alwaysExpandJsonSchema(){return this.isBasis()||this.kind==="alias"||this.hasKind("union")&&this.isBoolean}toResolvedJsonSchema(W){let $=this.innerToJsonSchema(W);return Object.assign($,this.metaJson)}intersect(W){let $=this.$.parseDefinition(W),X=this.rawIntersect($);if(X instanceof P)return X;return this.$.finalize(X)}rawIntersect(W){return c1(this,W,this.$)}toNeverIfDisjoint(){return this}and(W){let $=this.intersect(W);return $ instanceof P?$.throw():$}rawAnd(W){let $=this.rawIntersect(W);return $ instanceof P?$.throw():$}or(W){let $=this.$.parseDefinition(W);return this.$.finalize(this.rawOr($))}rawOr(W){let $=[...this.branches,...W.branches];return this.$.node("union",$)}map(W){return this.$.schema(this.applyStructuralOperation("map",[W]))}pick(...W){return this.$.schema(this.applyStructuralOperation("pick",W))}omit(...W){return this.$.schema(this.applyStructuralOperation("omit",W))}required(){return this.$.schema(this.applyStructuralOperation("required",[]))}partial(){return this.$.schema(this.applyStructuralOperation("partial",[]))}_keyof;keyof(){if(this._keyof)return this._keyof;let W=this.applyStructuralOperation("keyof",[]).reduce(($,X)=>$.intersect(X).toNeverIfDisjoint(),R.intrinsic.unknown.internal);if(W.branches.length===0)L(d5(`keyof ${this.expression}`));return this._keyof=this.$.finalize(W)}get props(){if(this.branches.length!==1)return L(YL(this.expression));return[...this.applyStructuralOperation("props",[])[0]]}merge(W){let $=this.$.parseDefinition(W);return this.$.schema($.distribute((X)=>this.applyStructuralOperation("merge",[DU(X)??L(VU("merge",X.expression))])))}applyStructuralOperation(W,$){return this.distribute((X)=>{if(X.equals(R.intrinsic.object)&&W!=="merge")return X;let Y=DU(X);if(!Y)L(VU(W,X.expression));if(W==="keyof")return Y.keyof();if(W==="get")return Y.get(...$);if(W==="props")return Y.props;let J=W==="required"?"require":W==="partial"?"optionalize":W;return this.$.node("intersection",{...X.inner,structure:Y[J](...$)})})}get(...W){if(W[0]===void 0)return this;return this.$.schema(this.applyStructuralOperation("get",W))}extract(W){let $=this.$.parseDefinition(W);return this.$.schema(this.branches.filter((X)=>X.extends($)))}exclude(W){let $=this.$.parseDefinition(W);return this.$.schema(this.branches.filter((X)=>!X.extends($)))}array(){return this.$.schema(this.isUnknown()?{proto:Array}:{proto:Array,sequence:this},{prereduced:!0})}overlaps(W){return!(this.intersect(W)instanceof P)}extends(W){let $=this.intersect(W);return!($ instanceof P)&&this.equals($)}ifExtends(W){return this.extends(W)?this:void 0}subsumes(W){return this.$.parseDefinition(W).extends(this)}configure(W,$="shallow"){return this.configureReferences(W,$)}describe(W,$="shallow"){return this.configure({description:W},$)}optional(){return[this,"?"]}default(W){return g6(this,W,null),[this,"=",W]}from(W){return this.assert(W)}_pipe(...W){let $=W.reduce((X,Y)=>X.rawPipeOnce(Y),this);return this.$.finalize($)}tryPipe(...W){let $=W.reduce((X,Y)=>X.rawPipeOnce(d(Y,"root")?Y:(J,G)=>{try{return Y(J,G)}catch(H){return G.error({code:"predicate",predicate:Y,actual:`aborted due to error:
104
+ \u2022 `)}`}throw(){return L(this.describeReasons())}invert(){let W=this.map(($)=>({...$,l:$.r,r:$.l}));if(!(W instanceof P))return new P(...W);return W}withPrefixKey(W,$){return this.map((X)=>({...X,path:[W,...X.path],optional:X.optional||$==="optional"}))}toNeverIfDisjoint(){return B.intrinsic.never}}var oT=(W,$)=>`${c5(W)} and ${c5($)}`,c5=(W)=>P0(W)?W.expression:C0(W)?W.map(c5).join(" | ")||"never":String(W),d5=(W)=>`${W} results in an unsatisfiable type`;var B$={},c1=(W,$,X)=>x0(W,$,{$:X,invert:!1,pipe:!1}),x6=(W,$,X)=>x0(W,$,{$:X,invert:!1,pipe:!0}),x0=(W,$,X)=>{let Y=X.pipe?"|>":"&",J=`${W.hash}${Y}${$.hash}`;if(B$[J]!==void 0)return B$[J];if(!X.pipe){let Q=`${$.hash}${Y}${W.hash}`;if(B$[Q]!==void 0){let z=B$[Q],F=z instanceof P?z.invert():z;return B$[J]=F,F}}let G=!X.pipe||!W.includesTransform&&!$.includesTransform;if(G&&W.equals($))return W;let H=G?l5(W,$,X):W.hasKindIn(...E$)?qK(W,$,X):l5(W,$,X);if(P0(H)){if(W.equals(H))H=W;else if($.equals(H))H=$}return B$[J]=H,H},l5=(W,$,X)=>{let Y=W.precedence<$.precedence?W.kind:$.kind,J=W.impl.intersections[$.kind]??$.impl.intersections[W.kind];if(J===void 0)return null;else if(Y===W.kind)return J(W,$,X);else{let G=J($,W,{...X,invert:!X.invert});if(G instanceof P)G=G.invert();return G}},qK=(W,$,X)=>W.includesTransform||$.includesTransform?X.invert?iT($,W,X):iT(W,$,X):l5(W,$,X),iT=(W,$,X)=>W.distribute((Y)=>CK(Y,$,X),(Y)=>{let J=Y.filter(P0);if(J.length===0)return P.init("union",W.branches,$.branches);if(J.length<W.branches.length||!W.branches.every((Q,z)=>Q.in.equals(J[z].in)))return X.$.parseSchema(J);let G;if(J.length===1){let Q=J[0];if(!G)return Q;return X.$.node("morph",{...Q.inner,in:Q.in.configure(G,"self")})}let H={branches:J};if(G)H.meta=G;return X.$.parseSchema(H)}),CK=(W,$,X)=>{if(W.hasKind("morph")){let J=[...W.morphs];if(W.lastMorphIfNode){let G=x0(W.lastMorphIfNode,$,X);if(G instanceof P)return G;J[J.length-1]=G}else J.push($);return X.$.node("morph",{morphs:J,in:W.inner.in})}if($.hasKind("morph")){let J=x0(W,$.in,X);if(J instanceof P)return J;return X.$.node("morph",{morphs:[$],in:J})}return X.$.node("morph",{morphs:[$],in:W})};class FW extends P6{constructor(W,$){super(W,$);Object.defineProperty(this,j1,{value:"constraint",enumerable:!1})}impliedSiblings;intersect(W){return c1(this,W,this.$)}}class U2 extends FW{traverseApply=(W,$)=>{if(!this.traverseAllows(W,$))$.errorFromNodeContext(this.errorContext)};compile(W){if(W.traversalKind==="Allows")W.return(this.compiledCondition);else W.if(this.compiledNegation,()=>W.line(`${W.ctx}.errorFromNodeContext(${this.compiledErrorContext})`))}get errorContext(){return{code:this.kind,description:this.description,meta:this.meta,...this.inner}}get compiledErrorContext(){return g2(this.errorContext)}}var R1=(W)=>($,X)=>{if(C0($)){if($.length===0)return;let J=$.map((G)=>X.$.node(W,G));if(W==="predicate")return J;return J.sort((G,H)=>G.hash<H.hash?-1:1)}let Y=X.$.node(W,$);return Y.hasOpenIntersection()?[Y]:Y},Z$=(W)=>{let $=W.r.shift();if(!$){let Y=W.l.length===0&&W.kind==="structure"?B.intrinsic.unknown.internal:W.ctx.$.node(W.kind,Object.assign(W.baseInner,kK(W.l)),{prereduced:!0});for(let J of W.roots){if(Y instanceof P)return Y;Y=x0(J,Y,W.ctx)}return Y}let X=!1;for(let Y=0;Y<W.l.length;Y++){let J=x0(W.l[Y],$,W.ctx);if(J===null)continue;if(J instanceof P)return J;if(!X){if(J.isRoot())return W.roots.push(J),W.l.splice(Y),Z$(W);W.l[Y]=J,X=!0}else if(!W.l.includes(J))return V0(`Unexpectedly encountered multiple distinct intersection results for refinement ${J}`)}if(!X)W.l.push($);if(W.kind==="intersection"){if($.impliedSiblings)for(let Y of $.impliedSiblings)pW(W.r,Y)}return Z$(W)},S$=(W)=>{return Object.entries(W).flatMap(([X,Y])=>(X in uY)?Y:[]).sort((X,Y)=>X.precedence<Y.precedence?-1:X.precedence>Y.precedence?1:X.kind==="predicate"&&Y.kind==="predicate"?0:X.hash<Y.hash?-1:1)},kK=(W)=>{let $={};for(let X of W)if(X.hasOpenIntersection())$[X.kind]=M0($[X.kind],X);else{if($[X.kind])return V0(`Unexpected intersection of closed refinements of kind ${X.kind}`);$[X.kind]=X}return $},nT=(...W)=>L(rT(...W)),rT=(W,$,X)=>{let Y=X.hasKind("morph")?"a morph":X.isUnknown()?"unknown":X.exclude($).defaultShortDescription;return`${BT(W)} operand must be ${$.description} (was ${Y})`};var tT=(W,$,X)=>new p2(W,$,X,X,null);class dY extends BW{}class p2 extends BW{[j1]="generic";paramDefs;bodyDef;$;arg$;baseInstantiation;hkt;description;constructor(W,$,X,Y,J){super((...G)=>{let H=$0(this.names,(Q,z)=>{let F=this.arg$.parse(G[Q]);if(!F.extends(this.constraints[Q]))L(IK(z,this.constraints[Q].expression,F.expression));return[z,F]});if(this.defIsLazy()){let Q=this.bodyDef(H);return this.$.parse(Q)}return this.$.parse($,{args:H})});this.paramDefs=W,this.bodyDef=$,this.$=X,this.arg$=Y,this.hkt=J,this.description=J?new J().description??`a generic type for ${J.constructor.name}`:"a generic type",this.baseInstantiation=this(...this.constraints)}defIsLazy(){return this.bodyDef instanceof dY}cacheGetter(W,$){return Object.defineProperty(this,W,{value:$}),$}get json(){return this.cacheGetter("json",{params:this.params.map((W)=>W[1].isUnknown()?W[0]:[W[0],W[1].json]),body:vT(this.bodyDef)})}get params(){return this.cacheGetter("params",this.paramDefs.map((W)=>typeof W==="string"?[W,B.intrinsic.unknown]:[W[0],this.$.parse(W[1])]))}get names(){return this.cacheGetter("names",this.params.map((W)=>W[0]))}get constraints(){return this.cacheGetter("constraints",this.params.map((W)=>W[1]))}get internal(){return this}get referencesById(){return this.baseInstantiation.internal.referencesById}get references(){return this.baseInstantiation.internal.references}}var IK=(W,$,X)=>`${W} must be assignable to ${$} (was ${X})`;var jK=Y0({kind:"predicate",hasAssociatedError:!0,collapsibleKey:"predicate",keys:{predicate:{}},normalize:(W)=>typeof W==="function"?{predicate:W}:W,defaults:{description:(W)=>`valid according to ${W.predicate.name||"an anonymous predicate"}`},intersectionIsOpen:!0,intersections:{predicate:()=>null}});class aT extends FW{serializedPredicate=c0(this.predicate);compiledCondition=`${this.serializedPredicate}(data, ctx)`;compiledNegation=`!${this.compiledCondition}`;impliedBasis=null;expression=this.serializedPredicate;traverseAllows=this.predicate;errorContext={code:"predicate",description:this.description,meta:this.meta};compiledErrorContext=g2(this.errorContext);traverseApply=(W,$)=>{if(!this.predicate(W,$.external)&&!$.hasError())$.errorFromNodeContext(this.errorContext)};compile(W){if(W.traversalKind==="Allows"){W.return(this.compiledCondition);return}W.if(`${this.compiledNegation} && !ctx.hasError()`,()=>W.line(`ctx.errorFromNodeContext(${this.compiledErrorContext})`))}reduceJsonSchema(W,$){return $.fallback.predicate({code:"predicate",base:W,predicate:this.predicate})}}var o5={implementation:jK,Node:aT};var fK=Y0({kind:"divisor",collapsibleKey:"rule",keys:{rule:{parse:(W)=>Number.isInteger(W)?W:L(PK(W))}},normalize:(W)=>typeof W==="number"?{rule:W}:W,hasAssociatedError:!0,defaults:{description:(W)=>W.rule===1?"an integer":W.rule===2?"even":`a multiple of ${W.rule}`},intersections:{divisor:(W,$,X)=>X.$.node("divisor",{rule:Math.abs(W.rule*$.rule/xK(W.rule,$.rule))})},obviatesBasisDescription:!0});class sT extends U2{traverseAllows=(W)=>W%this.rule===0;compiledCondition=`data % ${this.rule} === 0`;compiledNegation=`data % ${this.rule} !== 0`;impliedBasis=B.intrinsic.number.internal;expression=`% ${this.rule}`;reduceJsonSchema(W){if(W.type="integer",this.rule===1)return W;return W.multipleOf=this.rule,W}}var i5={implementation:fK,Node:sT};var PK=(W)=>`divisor must be an integer (was ${W})`,xK=(W,$)=>{let X,Y=W,J=$;while(J!==0)X=J,J=Y%J,Y=X;return Y};class WW extends U2{boundOperandKind=hK[this.kind];compiledActual=this.boundOperandKind==="value"?"data":this.boundOperandKind==="length"?"data.length":"data.valueOf()";comparator=gK(this.kind,this.exclusive);numericLimit=this.rule.valueOf();expression=`${this.comparator} ${this.rule}`;compiledCondition=`${this.compiledActual} ${this.comparator} ${this.numericLimit}`;compiledNegation=`${this.compiledActual} ${vK[this.comparator]} ${this.numericLimit}`;stringLimit=this.boundOperandKind==="date"?mK(this.numericLimit):`${this.numericLimit}`;limitKind=this.comparator["0"]==="<"?"upper":"lower";isStricterThan(W){return(this.limitKind==="upper"?this.numericLimit<W.numericLimit:this.numericLimit>W.numericLimit)||this.numericLimit===W.numericLimit&&this.exclusive===!0&&!W.exclusive}overlapsRange(W){if(this.isStricterThan(W))return!1;if(this.numericLimit===W.numericLimit&&(this.exclusive||W.exclusive))return!1;return!0}overlapIsUnit(W){return this.numericLimit===W.numericLimit&&!this.exclusive&&!W.exclusive}}var vK={"<":">=","<=":">",">":"<=",">=":"<"},bK={min:"max",minLength:"maxLength",after:"before"},lY={parse:(W)=>W||void 0},oY=(W)=>($)=>{if(typeof $==="number")return{rule:$};let{exclusive:X,...Y}=$;return X?{...Y,rule:W==="minLength"?Y.rule+1:Y.rule-1}:Y},iY=(W)=>($)=>{if(typeof $==="number"||typeof $==="string"||$ instanceof Date)return{rule:$};let{exclusive:X,...Y}=$;if(!X)return Y;let J=typeof Y.rule==="number"?Y.rule:typeof Y.rule==="string"?new Date(Y.rule).valueOf():Y.rule.valueOf();return X?{...Y,rule:W==="after"?J+1:J-1}:Y},nY=(W)=>typeof W==="string"||typeof W==="number"?new Date(W):W,yK=(W,$)=>`${W} bound must be a positive integer (was ${$})`,q$=(W)=>($)=>{if(!Number.isInteger($)||$<0)L(yK(W,$));return $},hK={min:"value",max:"value",minLength:"length",maxLength:"length",after:"date",before:"date"},gK=(W,$)=>`${z1(W,bK)?">":"<"}${$?"":"="}`,mK=(W)=>typeof W==="string"?W:new Date(W).toLocaleString(),eT=(W)=>`Bounded expression ${W} must be exactly one of number, string, Array, or Date`;var pK=Y0({kind:"after",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:nY,serialize:(W)=>W.toISOString()}},normalize:iY("after"),defaults:{description:(W)=>`${W.collapsibleLimitString} or later`,actual:B8},intersections:{after:(W,$)=>W.isStricterThan($)?W:$}});class WU extends WW{impliedBasis=B.intrinsic.Date.internal;collapsibleLimitString=B8(this.rule);traverseAllows=(W)=>W>=this.rule;reduceJsonSchema(W,$){return $.fallback.date({code:"date",base:W,after:this.rule})}}var n5={implementation:pK,Node:WU};var uK=Y0({kind:"before",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:nY,serialize:(W)=>W.toISOString()}},normalize:iY("before"),defaults:{description:(W)=>`${W.collapsibleLimitString} or earlier`,actual:B8},intersections:{before:(W,$)=>W.isStricterThan($)?W:$,after:(W,$,X)=>W.overlapsRange($)?W.overlapIsUnit($)?X.$.node("unit",{unit:W.rule}):null:P.init("range",W,$)}});class $U extends WW{collapsibleLimitString=B8(this.rule);traverseAllows=(W)=>W<=this.rule;impliedBasis=B.intrinsic.Date.internal;reduceJsonSchema(W,$){return $.fallback.date({code:"date",base:W,before:this.rule})}}var r5={implementation:uK,Node:$U};var cK=Y0({kind:"exactLength",collapsibleKey:"rule",keys:{rule:{parse:q$("exactLength")}},normalize:(W)=>typeof W==="number"?{rule:W}:W,hasAssociatedError:!0,defaults:{description:(W)=>`exactly length ${W.rule}`,actual:(W)=>`${W.length}`},intersections:{exactLength:(W,$,X)=>P.init("unit",X.$.node("unit",{unit:W.rule}),X.$.node("unit",{unit:$.rule}),{path:["length"]}),minLength:(W,$)=>W.rule>=$.rule?W:P.init("range",W,$),maxLength:(W,$)=>W.rule<=$.rule?W:P.init("range",W,$)}});class XU extends U2{traverseAllows=(W)=>W.length===this.rule;compiledCondition=`data.length === ${this.rule}`;compiledNegation=`data.length !== ${this.rule}`;impliedBasis=B.intrinsic.lengthBoundable.internal;expression=`== ${this.rule}`;reduceJsonSchema(W){switch(W.type){case"string":return W.minLength=this.rule,W.maxLength=this.rule,W;case"array":return W.minItems=this.rule,W.maxItems=this.rule,W;default:return y0.throwInternalOperandError("exactLength",W)}}}var t5={implementation:cK,Node:XU};var dK=Y0({kind:"max",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:lY},normalize:(W)=>typeof W==="number"?{rule:W}:W,defaults:{description:(W)=>{if(W.rule===0)return W.exclusive?"negative":"non-positive";return`${W.exclusive?"less than":"at most"} ${W.rule}`}},intersections:{max:(W,$)=>W.isStricterThan($)?W:$,min:(W,$,X)=>W.overlapsRange($)?W.overlapIsUnit($)?X.$.node("unit",{unit:W.rule}):null:P.init("range",W,$)},obviatesBasisDescription:!0});class YU extends WW{impliedBasis=B.intrinsic.number.internal;traverseAllows=this.exclusive?(W)=>W<this.rule:(W)=>W<=this.rule;reduceJsonSchema(W){if(this.exclusive)W.exclusiveMaximum=this.rule;else W.maximum=this.rule;return W}}var a5={implementation:dK,Node:YU};var lK=Y0({kind:"maxLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:q$("maxLength")}},reduce:(W,$)=>W.rule===0?$.node("exactLength",W):void 0,normalize:oY("maxLength"),defaults:{description:(W)=>`at most length ${W.rule}`,actual:(W)=>`${W.length}`},intersections:{maxLength:(W,$)=>W.isStricterThan($)?W:$,minLength:(W,$,X)=>W.overlapsRange($)?W.overlapIsUnit($)?X.$.node("exactLength",{rule:W.rule}):null:P.init("range",W,$)}});class JU extends WW{impliedBasis=B.intrinsic.lengthBoundable.internal;traverseAllows=(W)=>W.length<=this.rule;reduceJsonSchema(W){switch(W.type){case"string":return W.maxLength=this.rule,W;case"array":return W.maxItems=this.rule,W;default:return y0.throwInternalOperandError("maxLength",W)}}}var s5={implementation:lK,Node:JU};var oK=Y0({kind:"min",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{},exclusive:lY},normalize:(W)=>typeof W==="number"?{rule:W}:W,defaults:{description:(W)=>{if(W.rule===0)return W.exclusive?"positive":"non-negative";return`${W.exclusive?"more than":"at least"} ${W.rule}`}},intersections:{min:(W,$)=>W.isStricterThan($)?W:$},obviatesBasisDescription:!0});class GU extends WW{impliedBasis=B.intrinsic.number.internal;traverseAllows=this.exclusive?(W)=>W>this.rule:(W)=>W>=this.rule;reduceJsonSchema(W){if(this.exclusive)W.exclusiveMinimum=this.rule;else W.minimum=this.rule;return W}}var e5={implementation:oK,Node:GU};var iK=Y0({kind:"minLength",collapsibleKey:"rule",hasAssociatedError:!0,keys:{rule:{parse:q$("minLength")}},reduce:(W)=>W.rule===0?B.intrinsic.unknown:void 0,normalize:oY("minLength"),defaults:{description:(W)=>W.rule===1?"non-empty":`at least length ${W.rule}`,actual:(W)=>W.length===0?"":`${W.length}`},intersections:{minLength:(W,$)=>W.isStricterThan($)?W:$}});class HU extends WW{impliedBasis=B.intrinsic.lengthBoundable.internal;traverseAllows=(W)=>W.length>=this.rule;reduceJsonSchema(W){switch(W.type){case"string":return W.minLength=this.rule,W;case"array":return W.minItems=this.rule,W;default:return y0.throwInternalOperandError("minLength",W)}}}var W7={implementation:iK,Node:HU};var QU={min:e5.implementation,max:a5.implementation,minLength:W7.implementation,maxLength:s5.implementation,exactLength:t5.implementation,after:n5.implementation,before:r5.implementation},zU={min:e5.Node,max:a5.Node,minLength:W7.Node,maxLength:s5.Node,exactLength:t5.Node,after:n5.Node,before:r5.Node};var nK=Y0({kind:"pattern",collapsibleKey:"rule",keys:{rule:{},flags:{}},normalize:(W)=>typeof W==="string"?{rule:W}:W instanceof RegExp?W.flags?{rule:W.source,flags:W.flags}:{rule:W.source}:W,obviatesBasisDescription:!0,obviatesBasisExpression:!0,hasAssociatedError:!0,intersectionIsOpen:!0,defaults:{description:(W)=>`matched by ${W.rule}`},intersections:{pattern:()=>null}});class FU extends U2{instance=new RegExp(this.rule,this.flags);expression=`${this.instance}`;traverseAllows=this.instance.test.bind(this.instance);compiledCondition=`${this.expression}.test(data)`;compiledNegation=`!${this.compiledCondition}`;impliedBasis=B.intrinsic.string.internal;reduceJsonSchema(W,$){if(W.pattern)return $.fallback.patternIntersection({code:"patternIntersection",base:W,pattern:this.rule});return W.pattern=this.rule,W}}var $7={implementation:nK,Node:FU};var v6=(W,$)=>{let X=rK(W);if($&&!$.includes(X))return L(`Root of kind ${X} should be one of ${$}`);return X},rK=(W)=>{if(d(W,"root"))return W.kind;if(typeof W==="string")return W[0]==="$"?"alias":(W in m1)?"domain":"proto";if(typeof W==="function")return"proto";if(typeof W!=="object"||W===null)return L(TU(W));if("morphs"in W)return"morph";if("branches"in W||C0(W))return"union";if("unit"in W)return"unit";if("reference"in W)return"alias";let $=Object.keys(W);if($.length===0||$.some((X)=>(X in uY)))return"intersection";if("proto"in W)return"proto";if("domain"in W)return"domain";return L(TU(W))},TU=(W)=>`${X0(W)} is not a valid type schema`,UU={},tK=(W)=>C0(W)?W.map(($)=>$.collapsibleJson):W.collapsibleJson,f1={};B.nodesByRegisteredId=f1;var X7=(W)=>{return UU[W]??=0,`${W}${++UU[W]}`},Y7=(W)=>{let $=C$[W.kind],X=$.applyConfig?.(W.def,W.$.resolvedConfig)??W.def,Y={},{meta:J,...G}=X,H=J===void 0?{}:typeof J==="string"?{description:J}:J,Q=S5(G).sort(([F],[T])=>N$(F)?N$(T)?R$(F)-R$(T):1:N$(T)?-1:F<T?-1:1).filter(([F,T])=>{if(F.startsWith("meta.")){let U=F.slice(5);return H[U]=T,!1}return!0});for(let F of Q){let T=F[0],U=$.keys[T];if(!U)return L(`Key ${T} is not valid on ${W.kind} schema`);let M=U.parse?U.parse(F[1],W):F[1];if(M!==e1&&(M!==void 0||U.preserveUndefined))Y[T]=M}if($.reduce&&!W.prereduced){let F=$.reduce(Y,W.$);if(F){if(F instanceof P)return F.throw();return aK(F,H)}}return J7({id:W.id,kind:W.kind,inner:Y,meta:H,$:W.$})},J7=({id:W,kind:$,inner:X,meta:Y,$:J,ignoreCache:G})=>{let H=C$[$],Q=S5(X),z=[],F={};for(let[C,R]of Q){let q=H.keys[C],m=q.serialize??(q.child?tK:zW);if(F[C]=m(R),q.child===!0){let c=R;if(C0(c))z.push(...c);else z.push(c)}else if(typeof q.child==="function")z.push(...q.child(R))}if(H.finalizeInnerJson)F=H.finalizeInnerJson(F);let T={...F},U={};if(!uW(Y))U=$0(Y,(C,R)=>[C,C==="examples"?R:zW(R)]),T.meta=rY(U,"description",!0);F=rY(F,H.collapsibleKey,!1);let M=JSON.stringify({kind:$,...F});T=rY(T,H.collapsibleKey,!1);let O=rY(T,H.collapsibleKey,!0),K=JSON.stringify({kind:$,...T});if(J.nodesByHash[K]&&!G)return J.nodesByHash[K];let N={id:W,kind:$,impl:H,inner:X,innerEntries:Q,innerJson:F,innerHash:M,meta:Y,metaJson:U,json:T,hash:K,collapsibleJson:O,children:z};if($!=="intersection"){for(let C in X)if(C!=="in"&&C!=="out")N[C]=X[C]}let I=new MU[$](N,J);return J.nodesByHash[K]=I},wU=(W,$)=>{if(W.id===$)return W;if(P0(f1[$]))V0(`Unexpected attempt to overwrite node id ${$}`);return J7({id:$,kind:W.kind,inner:W.inner,meta:W.meta,$:W.$,ignoreCache:!0})},aK=(W,$,X)=>{if(X&&P0(f1[X]))V0(`Unexpected attempt to overwrite node id ${X}`);return J7({id:X??X7($.alias??W.kind),kind:W.kind,inner:W.inner,meta:$,$:W.$})},rY=(W,$,X)=>{let Y=Object.keys(W);if(Y.length===1&&Y[0]===$){let J=W[$];if(X)return J;if(g1(J,"object")&&(Object.keys(J).length===1||Array.isArray(J)))return J}return W};var b6=(W,$,X)=>{if(W.key!==$.key)return null;let Y=W.key,J=x0(W.value,$.value,X),G=W.required||$.required?"required":"optional";if(J instanceof P)if(G==="optional")J=B.intrinsic.never.internal;else return J.withPrefixKey(W.key,W.required&&$.required?"required":"optional");if(G==="required")return X.$.node("required",{key:Y,value:J});let H=W.hasDefault()?$.hasDefault()?W.default===$.default?W.default:L(G7(W.default,$.default)):W.default:$.hasDefault()?$.default:e1;return X.$.node("optional",{key:Y,value:J,default:H})};class y6 extends FW{required=this.kind==="required";optional=this.kind==="optional";impliedBasis=B.intrinsic.object.internal;serializedKey=T2(this.key);compiledKey=typeof this.key==="string"?this.key:this.serializedKey;flatRefs=M0(this.value.flatRefs.map((W)=>SW([this.key,...W.path],W.node)),SW([this.key],this.value));_transform(W,$){$.path.push(this.key);let X=super._transform(W,$);return $.path.pop(),X}hasDefault(){return"default"in this.inner}traverseAllows=(W,$)=>{if(this.key in W)return u1(this.key,()=>this.value.traverseAllows(W[this.key],$),$);return this.optional};traverseApply=(W,$)=>{if(this.key in W)u1(this.key,()=>this.value.traverseApply(W[this.key],$),$);else if(this.hasKind("required"))$.errorFromNodeContext(this.errorContext)};compile(W){if(W.if(`${this.serializedKey} in data`,()=>W.traverseKey(this.serializedKey,`data${W.prop(this.key)}`,this.value)),this.hasKind("required"))W.else(()=>W.traversalKind==="Apply"?W.line(`ctx.errorFromNodeContext(${this.compiledErrorContext})`):W.return(!1));if(W.traversalKind==="Allows")W.return(!0)}}var G7=(W,$)=>`Invalid intersection of default values ${X0(W)} & ${X0($)}`;var sK=Y0({kind:"optional",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{key:{},value:{child:!0,parse:(W,$)=>$.$.parseSchema(W)},default:{preserveUndefined:!0}},normalize:(W)=>W,reduce:(W,$)=>{if($.resolvedConfig.exactOptionalPropertyTypes===!1){if(!W.value.allows(void 0))return $.node("optional",{...W,value:W.value.or(r.undefined)},{prereduced:!0})}},defaults:{description:(W)=>`${W.compiledKey}?: ${W.value.description}`},intersections:{optional:b6}});class _U extends y6{constructor(...W){super(...W);if("default"in this.inner)g6(this.value,this.inner.default,this.key)}get outProp(){if(!this.hasDefault())return this;let{default:W,...$}=this.inner;return this.cacheGetter("outProp",this.$.node("required",$,{prereduced:!0}))}expression=this.hasDefault()?`${this.compiledKey}: ${this.value.expression} = ${X0(this.inner.default)}`:`${this.compiledKey}?: ${this.value.expression}`;defaultValueMorph=WL(this);defaultValueMorphRef=this.defaultValueMorph&&c0(this.defaultValueMorph)}var h6={implementation:sK,Node:_U},eK={},WL=(W)=>{if(!W.hasDefault())return;let $=`{${W.compiledKey}: ${W.value.id} = ${zW(W.default)}}`;return eK[$]??=H7(W.key,W.value,W.default)},H7=(W,$,X)=>{if(typeof X==="function")return $.includesTransform?(J,G)=>{return u1(W,()=>$(J[W]=X(),G),G),J}:(J)=>{return J[W]=X(),J};let Y=$.includesTransform?$.assert(X):X;return g1(Y,"object")?(J,G)=>{return u1(W,()=>$(J[W]=X,G),G),J}:(J)=>{return J[W]=Y,J}},g6=(W,$,X)=>{let Y=b2($);if(g1($,"object")&&!Y)L($L(X));let J=W.in(Y?$():$);if(J instanceof p1){if(X===null)L(`Default ${J.summary}`);let G=J.transform((H)=>H.transform((Q)=>({...Q,prefixPath:[X]})));L(`Default for ${G.summary}`)}return $},$L=(W)=>{return`Non-primitive default ${W===null?"":typeof W==="number"?`for value at [${W}] `:`for ${T2(W)} `}must be specified as a function like () => ({my: 'object'})`};class TW extends P6{constructor(W,$){super(W,$);Object.defineProperty(this,j1,{value:"root",enumerable:!1})}get internal(){return this}get "~standard"(){return{vendor:"arktype",version:1,validate:(W)=>{let $=this(W);if($ instanceof p1)return $;return{value:$}}}}as(){return this}brand(W){if(W==="")return L(XL);return this}readonly(){return this}branches=this.hasKind("union")?this.inner.branches:[this];distribute(W,$){let X=this.branches.map(W);return $?.(X)??X}get shortDescription(){return this.meta.description??this.defaultShortDescription}toJsonSchema(W={}){let $=m5(this.$.resolvedConfig.toJsonSchema,W);$.useRefs||=this.isCyclic;let X=typeof $.dialect==="string"?{$schema:$.dialect}:{};if(Object.assign(X,this.toJsonSchemaRecurse($)),$.useRefs)X.$defs=$0(this.references,(Y,J)=>J.isRoot()&&!J.alwaysExpandJsonSchema?[J.id,J.toResolvedJsonSchema($)]:[]);return X}toJsonSchemaRecurse(W){if(W.useRefs&&!this.alwaysExpandJsonSchema)return{$ref:`#/$defs/${this.id}`};return this.toResolvedJsonSchema(W)}get alwaysExpandJsonSchema(){return this.isBasis()||this.kind==="alias"||this.hasKind("union")&&this.isBoolean}toResolvedJsonSchema(W){let $=this.innerToJsonSchema(W);return Object.assign($,this.metaJson)}intersect(W){let $=this.$.parseDefinition(W),X=this.rawIntersect($);if(X instanceof P)return X;return this.$.finalize(X)}rawIntersect(W){return c1(this,W,this.$)}toNeverIfDisjoint(){return this}and(W){let $=this.intersect(W);return $ instanceof P?$.throw():$}rawAnd(W){let $=this.rawIntersect(W);return $ instanceof P?$.throw():$}or(W){let $=this.$.parseDefinition(W);return this.$.finalize(this.rawOr($))}rawOr(W){let $=[...this.branches,...W.branches];return this.$.node("union",$)}map(W){return this.$.schema(this.applyStructuralOperation("map",[W]))}pick(...W){return this.$.schema(this.applyStructuralOperation("pick",W))}omit(...W){return this.$.schema(this.applyStructuralOperation("omit",W))}required(){return this.$.schema(this.applyStructuralOperation("required",[]))}partial(){return this.$.schema(this.applyStructuralOperation("partial",[]))}_keyof;keyof(){if(this._keyof)return this._keyof;let W=this.applyStructuralOperation("keyof",[]).reduce(($,X)=>$.intersect(X).toNeverIfDisjoint(),B.intrinsic.unknown.internal);if(W.branches.length===0)L(d5(`keyof ${this.expression}`));return this._keyof=this.$.finalize(W)}get props(){if(this.branches.length!==1)return L(YL(this.expression));return[...this.applyStructuralOperation("props",[])[0]]}merge(W){let $=this.$.parseDefinition(W);return this.$.schema($.distribute((X)=>this.applyStructuralOperation("merge",[DU(X)??L(OU("merge",X.expression))])))}applyStructuralOperation(W,$){return this.distribute((X)=>{if(X.equals(B.intrinsic.object)&&W!=="merge")return X;let Y=DU(X);if(!Y)L(OU(W,X.expression));if(W==="keyof")return Y.keyof();if(W==="get")return Y.get(...$);if(W==="props")return Y.props;let J=W==="required"?"require":W==="partial"?"optionalize":W;return this.$.node("intersection",{...X.inner,structure:Y[J](...$)})})}get(...W){if(W[0]===void 0)return this;return this.$.schema(this.applyStructuralOperation("get",W))}extract(W){let $=this.$.parseDefinition(W);return this.$.schema(this.branches.filter((X)=>X.extends($)))}exclude(W){let $=this.$.parseDefinition(W);return this.$.schema(this.branches.filter((X)=>!X.extends($)))}array(){return this.$.schema(this.isUnknown()?{proto:Array}:{proto:Array,sequence:this},{prereduced:!0})}overlaps(W){return!(this.intersect(W)instanceof P)}extends(W){let $=this.intersect(W);return!($ instanceof P)&&this.equals($)}ifExtends(W){return this.extends(W)?this:void 0}subsumes(W){return this.$.parseDefinition(W).extends(this)}configure(W,$="shallow"){return this.configureReferences(W,$)}describe(W,$="shallow"){return this.configure({description:W},$)}optional(){return[this,"?"]}default(W){return g6(this,W,null),[this,"=",W]}from(W){return this.assert(W)}_pipe(...W){let $=W.reduce((X,Y)=>X.rawPipeOnce(Y),this);return this.$.finalize($)}tryPipe(...W){let $=W.reduce((X,Y)=>X.rawPipeOnce(d(Y,"root")?Y:(J,G)=>{try{return Y(J,G)}catch(H){return G.error({code:"predicate",predicate:Y,actual:`aborted due to error:
105
105
  ${H}
106
- `})}}),this);return this.$.finalize($)}pipe=Object.assign(this._pipe.bind(this),{try:this.tryPipe.bind(this)});to(W){return this.$.finalize(this.toNode(this.$.parseDefinition(W)))}toNode(W){let $=x6(this,W,this.$);if($ instanceof P)return $.throw();return $}rawPipeOnce(W){if(d(W,"root"))return this.toNode(W);return this.distribute(($)=>$.hasKind("morph")?this.$.node("morph",{in:$.inner.in,morphs:[...$.morphs,W]}):this.$.node("morph",{in:$,morphs:[W]}),this.$.parseSchema)}narrow(W){return this.constrainOut("predicate",W)}constrain(W,$){return this._constrain("root",W,$)}constrainIn(W,$){return this._constrain("in",W,$)}constrainOut(W,$){return this._constrain("out",W,$)}_constrain(W,$,X){let Y=this.$.node($,X);if(Y.isRoot())return Y.isUnknown()?this:O0(`Unexpected constraint node ${Y}`);let J=W==="root"?this:this[W];if(J.hasKind("morph")||Y.impliedBasis&&!J.extends(Y.impliedBasis))return nT($,Y.impliedBasis,this);let G=this.$.node("intersection",{[Y.kind]:Y}),H=W==="out"?x6(this,G,this.$):c1(this,G,this.$);if(H instanceof P)H.throw();return this.$.finalize(H)}onUndeclaredKey(W){let $=typeof W==="string"?W:W.rule,X=typeof W==="string"?!1:W.deep;return this.$.finalize(this.transform((Y,J)=>Y==="structure"?$==="ignore"?MT(J,{undeclared:1}):{...J,undeclared:$}:J,X?void 0:{shouldTransform:(Y)=>!G2(A$,Y.kind)}))}hasEqualMorphs(W){if(!this.includesTransform&&!W.includesTransform)return!0;if(!Q2(this.shallowMorphs,W.shallowMorphs))return!1;if(!Q2(this.flatMorphs,W.flatMorphs,{isEqual:($,X)=>$.propString===X.propString&&($.node.hasKind("morph")&&X.node.hasKind("morph")?$.node.hasEqualMorphs(X.node):$.node.hasKind("intersection")&&X.node.hasKind("intersection")?$.node.structure?.structuralMorphRef===X.node.structure?.structuralMorphRef:!1)}))return!1;return!0}onDeepUndeclaredKey(W){return this.onUndeclaredKey({rule:W,deep:!0})}filter(W){return this.constrainIn("predicate",W)}divisibleBy(W){return this.constrain("divisor",W)}matching(W){return this.constrain("pattern",W)}atLeast(W){return this.constrain("min",W)}atMost(W){return this.constrain("max",W)}moreThan(W){return this.constrain("min",k$(W))}lessThan(W){return this.constrain("max",k$(W))}atLeastLength(W){return this.constrain("minLength",W)}atMostLength(W){return this.constrain("maxLength",W)}moreThanLength(W){return this.constrain("minLength",k$(W))}lessThanLength(W){return this.constrain("maxLength",k$(W))}exactlyLength(W){return this.constrain("exactLength",W)}atOrAfter(W){return this.constrain("after",W)}atOrBefore(W){return this.constrain("before",W)}laterThan(W){return this.constrain("after",k$(W))}earlierThan(W){return this.constrain("before",k$(W))}}var XL="Expected a non-empty brand name after #",k$=(W)=>typeof W==="object"&&!(W instanceof Date)?{...W,exclusive:!0}:{rule:W,exclusive:!0},m6=(W,$)=>d($,"root")?d(W,"root")?W.extends($):$.allows(W):d(W,"root")?W.hasUnit($):$===W,DU=(W)=>{if(W.hasKind("morph"))return null;if(W.hasKind("intersection"))return W.inner.structure??(W.basis?.domain==="object"?W.$.bindReference(R.intrinsic.emptyStructure):null);if(W.isBasis()&&W.domain==="object")return W.$.bindReference(R.intrinsic.emptyStructure);return null},YL=(W)=>`Props cannot be extracted from a union. Use .distribute to extract props from each branch instead. Received:
107
- ${W}`,VU=(W,$)=>`${W} operand must be an object (was ${$})`;var cW=(W,$)=>$0(cY(W),(X,Y)=>[Y,$]);var JL=(W)=>typeof W==="string"?{reference:W}:W,OU=(W)=>W instanceof P?R.intrinsic.never.internal:W,GL=Y0({kind:"alias",hasAssociatedError:!1,collapsibleKey:"reference",keys:{reference:{serialize:(W)=>W.startsWith("$")?W:`$ark.${W}`},resolve:{}},normalize:JL,defaults:{description:(W)=>W.reference},intersections:{alias:(W,$,X)=>X.$.lazilyResolve(()=>OU(x0(W.resolution,$.resolution,X)),`${W.reference}${X.pipe?"=>":"&"}${$.reference}`),...cW("alias",(W,$,X)=>{if($.isUnknown())return W;if($.isNever())return $;if($.isBasis()&&!$.overlaps(R.intrinsic.object))return P.init("assignability",R.intrinsic.object,$);return X.$.lazilyResolve(()=>OU(x0(W.resolution,$,X)),`${W.reference}${X.pipe?"=>":"&"}${$.id}`)})}});class KU extends TW{expression=this.reference;structure=void 0;get resolution(){let W=this._resolve();return f1[this.id]=W}_resolve(){if(this.resolve)return this.resolve();if(this.reference[0]==="$")return this.$.resolveRoot(this.reference.slice(1));let W=this.reference,$=f1[W],X=[];while(d($,"context")){if(X.includes($.id))return L(HL($.id,X));X.push($.id),$=f1[$.id]}if(!d($,"root"))return O0(`Unexpected resolution for reference ${this.reference}
106
+ `})}}),this);return this.$.finalize($)}pipe=Object.assign(this._pipe.bind(this),{try:this.tryPipe.bind(this)});to(W){return this.$.finalize(this.toNode(this.$.parseDefinition(W)))}toNode(W){let $=x6(this,W,this.$);if($ instanceof P)return $.throw();return $}rawPipeOnce(W){if(d(W,"root"))return this.toNode(W);return this.distribute(($)=>$.hasKind("morph")?this.$.node("morph",{in:$.inner.in,morphs:[...$.morphs,W]}):this.$.node("morph",{in:$,morphs:[W]}),this.$.parseSchema)}narrow(W){return this.constrainOut("predicate",W)}constrain(W,$){return this._constrain("root",W,$)}constrainIn(W,$){return this._constrain("in",W,$)}constrainOut(W,$){return this._constrain("out",W,$)}_constrain(W,$,X){let Y=this.$.node($,X);if(Y.isRoot())return Y.isUnknown()?this:V0(`Unexpected constraint node ${Y}`);let J=W==="root"?this:this[W];if(J.hasKind("morph")||Y.impliedBasis&&!J.extends(Y.impliedBasis))return nT($,Y.impliedBasis,this);let G=this.$.node("intersection",{[Y.kind]:Y}),H=W==="out"?x6(this,G,this.$):c1(this,G,this.$);if(H instanceof P)H.throw();return this.$.finalize(H)}onUndeclaredKey(W){let $=typeof W==="string"?W:W.rule,X=typeof W==="string"?!1:W.deep;return this.$.finalize(this.transform((Y,J)=>Y==="structure"?$==="ignore"?MT(J,{undeclared:1}):{...J,undeclared:$}:J,X?void 0:{shouldTransform:(Y)=>!G2(A$,Y.kind)}))}hasEqualMorphs(W){if(!this.includesTransform&&!W.includesTransform)return!0;if(!Q2(this.shallowMorphs,W.shallowMorphs))return!1;if(!Q2(this.flatMorphs,W.flatMorphs,{isEqual:($,X)=>$.propString===X.propString&&($.node.hasKind("morph")&&X.node.hasKind("morph")?$.node.hasEqualMorphs(X.node):$.node.hasKind("intersection")&&X.node.hasKind("intersection")?$.node.structure?.structuralMorphRef===X.node.structure?.structuralMorphRef:!1)}))return!1;return!0}onDeepUndeclaredKey(W){return this.onUndeclaredKey({rule:W,deep:!0})}filter(W){return this.constrainIn("predicate",W)}divisibleBy(W){return this.constrain("divisor",W)}matching(W){return this.constrain("pattern",W)}atLeast(W){return this.constrain("min",W)}atMost(W){return this.constrain("max",W)}moreThan(W){return this.constrain("min",k$(W))}lessThan(W){return this.constrain("max",k$(W))}atLeastLength(W){return this.constrain("minLength",W)}atMostLength(W){return this.constrain("maxLength",W)}moreThanLength(W){return this.constrain("minLength",k$(W))}lessThanLength(W){return this.constrain("maxLength",k$(W))}exactlyLength(W){return this.constrain("exactLength",W)}atOrAfter(W){return this.constrain("after",W)}atOrBefore(W){return this.constrain("before",W)}laterThan(W){return this.constrain("after",k$(W))}earlierThan(W){return this.constrain("before",k$(W))}}var XL="Expected a non-empty brand name after #",k$=(W)=>typeof W==="object"&&!(W instanceof Date)?{...W,exclusive:!0}:{rule:W,exclusive:!0},m6=(W,$)=>d($,"root")?d(W,"root")?W.extends($):$.allows(W):d(W,"root")?W.hasUnit($):$===W,DU=(W)=>{if(W.hasKind("morph"))return null;if(W.hasKind("intersection"))return W.inner.structure??(W.basis?.domain==="object"?W.$.bindReference(B.intrinsic.emptyStructure):null);if(W.isBasis()&&W.domain==="object")return W.$.bindReference(B.intrinsic.emptyStructure);return null},YL=(W)=>`Props cannot be extracted from a union. Use .distribute to extract props from each branch instead. Received:
107
+ ${W}`,OU=(W,$)=>`${W} operand must be an object (was ${$})`;var cW=(W,$)=>$0(cY(W),(X,Y)=>[Y,$]);var JL=(W)=>typeof W==="string"?{reference:W}:W,VU=(W)=>W instanceof P?B.intrinsic.never.internal:W,GL=Y0({kind:"alias",hasAssociatedError:!1,collapsibleKey:"reference",keys:{reference:{serialize:(W)=>W.startsWith("$")?W:`$ark.${W}`},resolve:{}},normalize:JL,defaults:{description:(W)=>W.reference},intersections:{alias:(W,$,X)=>X.$.lazilyResolve(()=>VU(x0(W.resolution,$.resolution,X)),`${W.reference}${X.pipe?"=>":"&"}${$.reference}`),...cW("alias",(W,$,X)=>{if($.isUnknown())return W;if($.isNever())return $;if($.isBasis()&&!$.overlaps(B.intrinsic.object))return P.init("assignability",B.intrinsic.object,$);return X.$.lazilyResolve(()=>VU(x0(W.resolution,$,X)),`${W.reference}${X.pipe?"=>":"&"}${$.id}`)})}});class KU extends TW{expression=this.reference;structure=void 0;get resolution(){let W=this._resolve();return f1[this.id]=W}_resolve(){if(this.resolve)return this.resolve();if(this.reference[0]==="$")return this.$.resolveRoot(this.reference.slice(1));let W=this.reference,$=f1[W],X=[];while(d($,"context")){if(X.includes($.id))return L(HL($.id,X));X.push($.id),$=f1[$.id]}if(!d($,"root"))return V0(`Unexpected resolution for reference ${this.reference}
108
108
  Seen: [${X.join("->")}]
109
- Resolution: ${X0($)}`);return $}get resolutionId(){if(this.reference.includes("&")||this.reference.includes("=>"))return this.resolution.id;if(this.reference[0]!=="$")return this.reference;let W=this.reference.slice(1),$=this.$.resolutions[W];if(typeof $==="string")return $;if(d($,"root"))return $.id;return O0(`Unexpected resolution for reference ${this.reference}: ${X0($)}`)}get defaultShortDescription(){return m1.object}innerToJsonSchema(W){return this.resolution.toJsonSchemaRecurse(W)}traverseAllows=(W,$)=>{let X=$.seen[this.reference];if(X?.includes(W))return!0;return $.seen[this.reference]=M0(X,W),this.resolution.traverseAllows(W,$)};traverseApply=(W,$)=>{let X=$.seen[this.reference];if(X?.includes(W))return;$.seen[this.reference]=M0(X,W),this.resolution.traverseApply(W,$)};compile(W){let $=this.resolutionId;W.if(`ctx.seen.${$} && ctx.seen.${$}.includes(data)`,()=>W.return(!0)),W.if(`!ctx.seen.${$}`,()=>W.line(`ctx.seen.${$} = []`)),W.line(`ctx.seen.${$}.push(data)`),W.return(W.invoke($))}}var HL=(W,$)=>`Alias '${W}' has a shallow resolution cycle: ${[...$,W].join("->")}`,p6={implementation:GL,Node:KU};class Z8 extends TW{traverseApply=(W,$)=>{if(!this.traverseAllows(W,$))$.errorFromNodeContext(this.errorContext)};get errorContext(){return{code:this.kind,description:this.description,meta:this.meta,...this.inner}}get compiledErrorContext(){return g2(this.errorContext)}compile(W){if(W.traversalKind==="Allows")W.return(this.compiledCondition);else W.if(this.compiledNegation,()=>W.line(`${W.ctx}.errorFromNodeContext(${this.compiledErrorContext})`))}}var QL=Y0({kind:"domain",hasAssociatedError:!0,collapsibleKey:"domain",keys:{domain:{},numberAllowsNaN:{}},normalize:(W)=>typeof W==="string"?{domain:W}:K$(W,"numberAllowsNaN")&&W.domain!=="number"?L(tY.writeBadAllowNanMessage(W.domain)):W,applyConfig:(W,$)=>W.numberAllowsNaN===void 0&&W.domain==="number"&&$.numberAllowsNaN?{...W,numberAllowsNaN:!0}:W,defaults:{description:(W)=>m1[W.domain],actual:(W)=>Number.isNaN(W)?"NaN":m1[Q1(W)]},intersections:{domain:(W,$)=>W.domain==="number"&&$.domain==="number"?W.numberAllowsNaN?$:W:P.init("domain",W,$)}});class LU extends Z8{requiresNaNCheck=this.domain==="number"&&!this.numberAllowsNaN;traverseAllows=this.requiresNaNCheck?(W)=>typeof W==="number"&&!Number.isNaN(W):(W)=>Q1(W)===this.domain;compiledCondition=this.domain==="object"?'((typeof data === "object" && data !== null) || typeof data === "function")':`typeof data === "${this.domain}"${this.requiresNaNCheck?" && !Number.isNaN(data)":""}`;compiledNegation=this.domain==="object"?'((typeof data !== "object" || data === null) && typeof data !== "function")':`typeof data !== "${this.domain}"${this.requiresNaNCheck?" || Number.isNaN(data)":""}`;expression=this.numberAllowsNaN?"number | NaN":this.domain;get nestableExpression(){return this.numberAllowsNaN?`(${this.expression})`:this.expression}get defaultShortDescription(){return m1[this.domain]}innerToJsonSchema(W){if(this.domain==="bigint"||this.domain==="symbol")return W.fallback.domain({code:"domain",base:{},domain:this.domain});return{type:this.domain}}}var tY={implementation:QL,Node:LU,writeBadAllowNanMessage:(W)=>`numberAllowsNaN may only be specified with domain "number" (was ${W})`};var zL=Y0({kind:"intersection",hasAssociatedError:!0,normalize:(W)=>{if(P0(W))return W;let{structure:$,...X}=W,Y=!!$,J=$??{},G=$0(X,(H,Q)=>{if(z1(H,mT)){if(Y)L(`Flattened structure key ${H} cannot be specified alongside a root 'structure' key.`);return J[H]=Q,[]}return[H,Q]});if(d(J,"constraint")||!uW(J))G.structure=J;return G},finalizeInnerJson:({structure:W,...$})=>g1(W,"object")?{...W,...$}:$,keys:{domain:{child:!0,parse:(W,$)=>$.$.node("domain",W)},proto:{child:!0,parse:(W,$)=>$.$.node("proto",W)},structure:{child:!0,parse:(W,$)=>$.$.node("structure",W),serialize:(W)=>{if(!W.sequence?.minLength)return W.collapsibleJson;let{sequence:$,...X}=W.collapsibleJson,{minVariadicLength:Y,...J}=$,G=J.variadic&&Object.keys(J).length===1?J.variadic:J;return{...X,sequence:G}}},divisor:{child:!0,parse:B1("divisor")},max:{child:!0,parse:B1("max")},min:{child:!0,parse:B1("min")},maxLength:{child:!0,parse:B1("maxLength")},minLength:{child:!0,parse:B1("minLength")},exactLength:{child:!0,parse:B1("exactLength")},before:{child:!0,parse:B1("before")},after:{child:!0,parse:B1("after")},pattern:{child:!0,parse:B1("pattern")},predicate:{child:!0,parse:B1("predicate")}},reduce:(W,$)=>AU({},W,{$,invert:!1,pipe:!1}),defaults:{description:(W)=>{if(W.children.length===0)return"unknown";if(W.structure)return W.structure.description;let $=[];if(W.basis&&!W.refinements.some((X)=>X.impl.obviatesBasisDescription))$.push(W.basis.description);if(W.refinements.length){let X=W.refinements.toSorted((Y,J)=>Y.kind==="min"&&J.kind==="max"?-1:0).map((Y)=>Y.description);$.push(...X)}if(W.inner.predicate)$.push(...W.inner.predicate.map((X)=>X.description));return $.join(" and ")},expected:(W)=>` \u25E6 ${W.errors.map(($)=>$.expected).join(`
109
+ Resolution: ${X0($)}`);return $}get resolutionId(){if(this.reference.includes("&")||this.reference.includes("=>"))return this.resolution.id;if(this.reference[0]!=="$")return this.reference;let W=this.reference.slice(1),$=this.$.resolutions[W];if(typeof $==="string")return $;if(d($,"root"))return $.id;return V0(`Unexpected resolution for reference ${this.reference}: ${X0($)}`)}get defaultShortDescription(){return m1.object}innerToJsonSchema(W){return this.resolution.toJsonSchemaRecurse(W)}traverseAllows=(W,$)=>{let X=$.seen[this.reference];if(X?.includes(W))return!0;return $.seen[this.reference]=M0(X,W),this.resolution.traverseAllows(W,$)};traverseApply=(W,$)=>{let X=$.seen[this.reference];if(X?.includes(W))return;$.seen[this.reference]=M0(X,W),this.resolution.traverseApply(W,$)};compile(W){let $=this.resolutionId;W.if(`ctx.seen.${$} && ctx.seen.${$}.includes(data)`,()=>W.return(!0)),W.if(`!ctx.seen.${$}`,()=>W.line(`ctx.seen.${$} = []`)),W.line(`ctx.seen.${$}.push(data)`),W.return(W.invoke($))}}var HL=(W,$)=>`Alias '${W}' has a shallow resolution cycle: ${[...$,W].join("->")}`,p6={implementation:GL,Node:KU};class Z8 extends TW{traverseApply=(W,$)=>{if(!this.traverseAllows(W,$))$.errorFromNodeContext(this.errorContext)};get errorContext(){return{code:this.kind,description:this.description,meta:this.meta,...this.inner}}get compiledErrorContext(){return g2(this.errorContext)}compile(W){if(W.traversalKind==="Allows")W.return(this.compiledCondition);else W.if(this.compiledNegation,()=>W.line(`${W.ctx}.errorFromNodeContext(${this.compiledErrorContext})`))}}var QL=Y0({kind:"domain",hasAssociatedError:!0,collapsibleKey:"domain",keys:{domain:{},numberAllowsNaN:{}},normalize:(W)=>typeof W==="string"?{domain:W}:K$(W,"numberAllowsNaN")&&W.domain!=="number"?L(tY.writeBadAllowNanMessage(W.domain)):W,applyConfig:(W,$)=>W.numberAllowsNaN===void 0&&W.domain==="number"&&$.numberAllowsNaN?{...W,numberAllowsNaN:!0}:W,defaults:{description:(W)=>m1[W.domain],actual:(W)=>Number.isNaN(W)?"NaN":m1[Q1(W)]},intersections:{domain:(W,$)=>W.domain==="number"&&$.domain==="number"?W.numberAllowsNaN?$:W:P.init("domain",W,$)}});class LU extends Z8{requiresNaNCheck=this.domain==="number"&&!this.numberAllowsNaN;traverseAllows=this.requiresNaNCheck?(W)=>typeof W==="number"&&!Number.isNaN(W):(W)=>Q1(W)===this.domain;compiledCondition=this.domain==="object"?'((typeof data === "object" && data !== null) || typeof data === "function")':`typeof data === "${this.domain}"${this.requiresNaNCheck?" && !Number.isNaN(data)":""}`;compiledNegation=this.domain==="object"?'((typeof data !== "object" || data === null) && typeof data !== "function")':`typeof data !== "${this.domain}"${this.requiresNaNCheck?" || Number.isNaN(data)":""}`;expression=this.numberAllowsNaN?"number | NaN":this.domain;get nestableExpression(){return this.numberAllowsNaN?`(${this.expression})`:this.expression}get defaultShortDescription(){return m1[this.domain]}innerToJsonSchema(W){if(this.domain==="bigint"||this.domain==="symbol")return W.fallback.domain({code:"domain",base:{},domain:this.domain});return{type:this.domain}}}var tY={implementation:QL,Node:LU,writeBadAllowNanMessage:(W)=>`numberAllowsNaN may only be specified with domain "number" (was ${W})`};var zL=Y0({kind:"intersection",hasAssociatedError:!0,normalize:(W)=>{if(P0(W))return W;let{structure:$,...X}=W,Y=!!$,J=$??{},G=$0(X,(H,Q)=>{if(z1(H,mT)){if(Y)L(`Flattened structure key ${H} cannot be specified alongside a root 'structure' key.`);return J[H]=Q,[]}return[H,Q]});if(d(J,"constraint")||!uW(J))G.structure=J;return G},finalizeInnerJson:({structure:W,...$})=>g1(W,"object")?{...W,...$}:$,keys:{domain:{child:!0,parse:(W,$)=>$.$.node("domain",W)},proto:{child:!0,parse:(W,$)=>$.$.node("proto",W)},structure:{child:!0,parse:(W,$)=>$.$.node("structure",W),serialize:(W)=>{if(!W.sequence?.minLength)return W.collapsibleJson;let{sequence:$,...X}=W.collapsibleJson,{minVariadicLength:Y,...J}=$,G=J.variadic&&Object.keys(J).length===1?J.variadic:J;return{...X,sequence:G}}},divisor:{child:!0,parse:R1("divisor")},max:{child:!0,parse:R1("max")},min:{child:!0,parse:R1("min")},maxLength:{child:!0,parse:R1("maxLength")},minLength:{child:!0,parse:R1("minLength")},exactLength:{child:!0,parse:R1("exactLength")},before:{child:!0,parse:R1("before")},after:{child:!0,parse:R1("after")},pattern:{child:!0,parse:R1("pattern")},predicate:{child:!0,parse:R1("predicate")}},reduce:(W,$)=>AU({},W,{$,invert:!1,pipe:!1}),defaults:{description:(W)=>{if(W.children.length===0)return"unknown";if(W.structure)return W.structure.description;let $=[];if(W.basis&&!W.refinements.some((X)=>X.impl.obviatesBasisDescription))$.push(W.basis.description);if(W.refinements.length){let X=W.refinements.toSorted((Y,J)=>Y.kind==="min"&&J.kind==="max"?-1:0).map((Y)=>Y.description);$.push(...X)}if(W.inner.predicate)$.push(...W.inner.predicate.map((X)=>X.description));return $.join(" and ")},expected:(W)=>` \u25E6 ${W.errors.map(($)=>$.expected).join(`
110
110
  \u25E6 `)}`,problem:(W)=>`(${W.actual}) must be...
111
- ${W.expected}`},intersections:{intersection:(W,$,X)=>AU(W.inner,$.inner,X),...cW("intersection",(W,$,X)=>{if(W.children.length===0)return $;let{domain:Y,proto:J,...G}=W.inner,H=J??Y,Q=H?x0(H,$,X):$;return Q instanceof P?Q:W?.basis?.equals(Q)?W:W.$.node("intersection",{...G,[Q.kind]:Q},{prereduced:!0})})}});class EU extends TW{basis=this.inner.domain??this.inner.proto??null;refinements=this.children.filter((W)=>W.isRefinement());structure=this.inner.structure;expression=FL(this);get shallowMorphs(){return this.inner.structure?.structuralMorph?[this.inner.structure.structuralMorph]:[]}get defaultShortDescription(){return this.basis?.defaultShortDescription??"present"}innerToJsonSchema(W){return this.children.reduce(($,X)=>X.isBasis()?X.toJsonSchemaRecurse(W):X.reduceJsonSchema($,W),{})}traverseAllows=(W,$)=>this.children.every((X)=>X.traverseAllows(W,$));traverseApply=(W,$)=>{let X=$.currentErrorCount;if(this.basis){if(this.basis.traverseApply(W,$),$.currentErrorCount>X)return}if(this.refinements.length){for(let Y=0;Y<this.refinements.length-1;Y++)if(this.refinements[Y].traverseApply(W,$),$.failFast&&$.currentErrorCount>X)return;if(this.refinements.at(-1).traverseApply(W,$),$.currentErrorCount>X)return}if(this.structure){if(this.structure.traverseApply(W,$),$.currentErrorCount>X)return}if(this.inner.predicate){for(let Y=0;Y<this.inner.predicate.length-1;Y++)if(this.inner.predicate[Y].traverseApply(W,$),$.failFast&&$.currentErrorCount>X)return;this.inner.predicate.at(-1).traverseApply(W,$)}};compile(W){if(W.traversalKind==="Allows"){for(let $ of this.children)W.check($);W.return(!0);return}if(W.initializeErrorCount(),this.basis){if(W.check(this.basis),this.children.length>1)W.returnIfFail()}if(this.refinements.length){for(let $=0;$<this.refinements.length-1;$++)W.check(this.refinements[$]),W.returnIfFailFast();if(W.check(this.refinements.at(-1)),this.structure||this.inner.predicate)W.returnIfFail()}if(this.structure){if(W.check(this.structure),this.inner.predicate)W.returnIfFail()}if(this.inner.predicate){for(let $=0;$<this.inner.predicate.length-1;$++)W.check(this.inner.predicate[$]),W.returnIfFail();W.check(this.inner.predicate.at(-1))}}}var Q7={implementation:zL,Node:EU},FL=(W)=>{let $=W.structure?.expression||`${W.basis&&!W.refinements.some((X)=>X.impl.obviatesBasisExpression)?W.basis.nestableExpression+" ":""}${W.refinements.map((X)=>X.expression).join(" & ")}`||"unknown";if($==="Array == 0")$="[]";return $},AU=(W,$,X)=>{let Y={},J=W.proto??W.domain,G=$.proto??$.domain,H=J?G?x0(J,G,X):J:G;if(H instanceof P)return H;if(H)Y[H.kind]=H;return Z$({kind:"intersection",baseInner:Y,l:S$(W),r:S$($),roots:[],ctx:X})};var TL=Y0({kind:"morph",hasAssociatedError:!1,keys:{in:{child:!0,parse:(W,$)=>$.$.parseSchema(W)},morphs:{parse:v2,serialize:(W)=>W.map(($)=>d($,"root")?$.json:c0($))},declaredIn:{child:!1,serialize:(W)=>W.json},declaredOut:{child:!1,serialize:(W)=>W.json}},normalize:(W)=>W,defaults:{description:(W)=>`a morph from ${W.in.description} to ${W.out?.description??"unknown"}`},intersections:{morph:(W,$,X)=>{if(!W.hasEqualMorphs($))return L(UL(W.expression,$.expression));let Y=x0(W.in,$.in,X);if(Y instanceof P)return Y;let J={morphs:W.morphs};if(W.declaredIn||$.declaredIn){let G=x0(W.in,$.in,X);if(G instanceof P)return G.throw();else J.declaredIn=G}if(W.declaredOut||$.declaredOut){let G=x0(W.out,$.out,X);if(G instanceof P)return G.throw();else J.declaredOut=G}return Y.distribute((G)=>X.$.node("morph",{...J,in:G}),X.$.parseSchema)},...cW("morph",(W,$,X)=>{let Y=W.inner.in?x0(W.inner.in,$,X):$;return Y instanceof P?Y:Y.equals(W.inner.in)?W:X.$.node("morph",{...W.inner,in:Y})})}});class NU extends TW{serializedMorphs=this.morphs.map(c0);compiledMorphs=`[${this.serializedMorphs}]`;lastMorph=this.inner.morphs.at(-1);lastMorphIfNode=d(this.lastMorph,"root")?this.lastMorph:void 0;introspectableIn=this.inner.in;introspectableOut=this.lastMorphIfNode?Object.assign(this.referencesById,this.lastMorphIfNode.referencesById)&&this.lastMorphIfNode.out:void 0;get shallowMorphs(){return Array.isArray(this.inner.in?.shallowMorphs)?[...this.inner.in.shallowMorphs,...this.morphs]:this.morphs}get in(){return this.declaredIn??this.inner.in?.in??R.intrinsic.unknown.internal}get out(){return this.declaredOut??this.introspectableOut??R.intrinsic.unknown.internal}declareIn(W){return this.$.node("morph",{...this.inner,declaredIn:W})}declareOut(W){return this.$.node("morph",{...this.inner,declaredOut:W})}expression=`(In: ${this.in.expression}) => ${this.lastMorphIfNode?"To":"Out"}<${this.out.expression}>`;get defaultShortDescription(){return this.in.meta.description??this.in.defaultShortDescription}innerToJsonSchema(W){return W.fallback.morph({code:"morph",base:this.in.toJsonSchemaRecurse(W),out:this.introspectableOut?.toJsonSchemaRecurse(W)??null})}compile(W){if(W.traversalKind==="Allows"){if(!this.introspectableIn)return;W.return(W.invoke(this.introspectableIn));return}if(this.introspectableIn)W.line(W.invoke(this.introspectableIn));W.line(`ctx.queueMorphs(${this.compiledMorphs})`)}traverseAllows=(W,$)=>!this.introspectableIn||this.introspectableIn.traverseAllows(W,$);traverseApply=(W,$)=>{if(this.introspectableIn)this.introspectableIn.traverseApply(W,$);$.queueMorphs(this.morphs)};hasEqualMorphs(W){return Q2(this.morphs,W.morphs,{isEqual:($,X)=>$===X||d($,"root")&&d(X,"root")&&$.equals(X)})}}var z7={implementation:TL,Node:NU},UL=(W,$)=>`The intersection of distinct morphs at a single path is indeterminate:
111
+ ${W.expected}`},intersections:{intersection:(W,$,X)=>AU(W.inner,$.inner,X),...cW("intersection",(W,$,X)=>{if(W.children.length===0)return $;let{domain:Y,proto:J,...G}=W.inner,H=J??Y,Q=H?x0(H,$,X):$;return Q instanceof P?Q:W?.basis?.equals(Q)?W:W.$.node("intersection",{...G,[Q.kind]:Q},{prereduced:!0})})}});class EU extends TW{basis=this.inner.domain??this.inner.proto??null;refinements=this.children.filter((W)=>W.isRefinement());structure=this.inner.structure;expression=FL(this);get shallowMorphs(){return this.inner.structure?.structuralMorph?[this.inner.structure.structuralMorph]:[]}get defaultShortDescription(){return this.basis?.defaultShortDescription??"present"}innerToJsonSchema(W){return this.children.reduce(($,X)=>X.isBasis()?X.toJsonSchemaRecurse(W):X.reduceJsonSchema($,W),{})}traverseAllows=(W,$)=>this.children.every((X)=>X.traverseAllows(W,$));traverseApply=(W,$)=>{let X=$.currentErrorCount;if(this.basis){if(this.basis.traverseApply(W,$),$.currentErrorCount>X)return}if(this.refinements.length){for(let Y=0;Y<this.refinements.length-1;Y++)if(this.refinements[Y].traverseApply(W,$),$.failFast&&$.currentErrorCount>X)return;if(this.refinements.at(-1).traverseApply(W,$),$.currentErrorCount>X)return}if(this.structure){if(this.structure.traverseApply(W,$),$.currentErrorCount>X)return}if(this.inner.predicate){for(let Y=0;Y<this.inner.predicate.length-1;Y++)if(this.inner.predicate[Y].traverseApply(W,$),$.failFast&&$.currentErrorCount>X)return;this.inner.predicate.at(-1).traverseApply(W,$)}};compile(W){if(W.traversalKind==="Allows"){for(let $ of this.children)W.check($);W.return(!0);return}if(W.initializeErrorCount(),this.basis){if(W.check(this.basis),this.children.length>1)W.returnIfFail()}if(this.refinements.length){for(let $=0;$<this.refinements.length-1;$++)W.check(this.refinements[$]),W.returnIfFailFast();if(W.check(this.refinements.at(-1)),this.structure||this.inner.predicate)W.returnIfFail()}if(this.structure){if(W.check(this.structure),this.inner.predicate)W.returnIfFail()}if(this.inner.predicate){for(let $=0;$<this.inner.predicate.length-1;$++)W.check(this.inner.predicate[$]),W.returnIfFail();W.check(this.inner.predicate.at(-1))}}}var Q7={implementation:zL,Node:EU},FL=(W)=>{let $=W.structure?.expression||`${W.basis&&!W.refinements.some((X)=>X.impl.obviatesBasisExpression)?W.basis.nestableExpression+" ":""}${W.refinements.map((X)=>X.expression).join(" & ")}`||"unknown";if($==="Array == 0")$="[]";return $},AU=(W,$,X)=>{let Y={},J=W.proto??W.domain,G=$.proto??$.domain,H=J?G?x0(J,G,X):J:G;if(H instanceof P)return H;if(H)Y[H.kind]=H;return Z$({kind:"intersection",baseInner:Y,l:S$(W),r:S$($),roots:[],ctx:X})};var TL=Y0({kind:"morph",hasAssociatedError:!1,keys:{in:{child:!0,parse:(W,$)=>$.$.parseSchema(W)},morphs:{parse:v2,serialize:(W)=>W.map(($)=>d($,"root")?$.json:c0($))},declaredIn:{child:!1,serialize:(W)=>W.json},declaredOut:{child:!1,serialize:(W)=>W.json}},normalize:(W)=>W,defaults:{description:(W)=>`a morph from ${W.in.description} to ${W.out?.description??"unknown"}`},intersections:{morph:(W,$,X)=>{if(!W.hasEqualMorphs($))return L(UL(W.expression,$.expression));let Y=x0(W.in,$.in,X);if(Y instanceof P)return Y;let J={morphs:W.morphs};if(W.declaredIn||$.declaredIn){let G=x0(W.in,$.in,X);if(G instanceof P)return G.throw();else J.declaredIn=G}if(W.declaredOut||$.declaredOut){let G=x0(W.out,$.out,X);if(G instanceof P)return G.throw();else J.declaredOut=G}return Y.distribute((G)=>X.$.node("morph",{...J,in:G}),X.$.parseSchema)},...cW("morph",(W,$,X)=>{let Y=W.inner.in?x0(W.inner.in,$,X):$;return Y instanceof P?Y:Y.equals(W.inner.in)?W:X.$.node("morph",{...W.inner,in:Y})})}});class NU extends TW{serializedMorphs=this.morphs.map(c0);compiledMorphs=`[${this.serializedMorphs}]`;lastMorph=this.inner.morphs.at(-1);lastMorphIfNode=d(this.lastMorph,"root")?this.lastMorph:void 0;introspectableIn=this.inner.in;introspectableOut=this.lastMorphIfNode?Object.assign(this.referencesById,this.lastMorphIfNode.referencesById)&&this.lastMorphIfNode.out:void 0;get shallowMorphs(){return Array.isArray(this.inner.in?.shallowMorphs)?[...this.inner.in.shallowMorphs,...this.morphs]:this.morphs}get in(){return this.declaredIn??this.inner.in?.in??B.intrinsic.unknown.internal}get out(){return this.declaredOut??this.introspectableOut??B.intrinsic.unknown.internal}declareIn(W){return this.$.node("morph",{...this.inner,declaredIn:W})}declareOut(W){return this.$.node("morph",{...this.inner,declaredOut:W})}expression=`(In: ${this.in.expression}) => ${this.lastMorphIfNode?"To":"Out"}<${this.out.expression}>`;get defaultShortDescription(){return this.in.meta.description??this.in.defaultShortDescription}innerToJsonSchema(W){return W.fallback.morph({code:"morph",base:this.in.toJsonSchemaRecurse(W),out:this.introspectableOut?.toJsonSchemaRecurse(W)??null})}compile(W){if(W.traversalKind==="Allows"){if(!this.introspectableIn)return;W.return(W.invoke(this.introspectableIn));return}if(this.introspectableIn)W.line(W.invoke(this.introspectableIn));W.line(`ctx.queueMorphs(${this.compiledMorphs})`)}traverseAllows=(W,$)=>!this.introspectableIn||this.introspectableIn.traverseAllows(W,$);traverseApply=(W,$)=>{if(this.introspectableIn)this.introspectableIn.traverseApply(W,$);$.queueMorphs(this.morphs)};hasEqualMorphs(W){return Q2(this.morphs,W.morphs,{isEqual:($,X)=>$===X||d($,"root")&&d(X,"root")&&$.equals(X)})}}var z7={implementation:TL,Node:NU},UL=(W,$)=>`The intersection of distinct morphs at a single path is indeterminate:
112
112
  Left: ${W}
113
- Right: ${$}`;var wL=Y0({kind:"proto",hasAssociatedError:!0,collapsibleKey:"proto",keys:{proto:{serialize:(W)=>B6(W)??zW(W)},dateAllowsInvalid:{}},normalize:(W)=>{let $=typeof W==="string"?{proto:N8[W]}:typeof W==="function"?P0(W)?W:{proto:W}:typeof W.proto==="string"?{...W,proto:N8[W.proto]}:W;if(typeof $.proto!=="function")L(u6.writeInvalidSchemaMessage($.proto));if(K$($,"dateAllowsInvalid")&&$.proto!==Date)L(u6.writeBadInvalidDateMessage($.proto));return $},applyConfig:(W,$)=>{if(W.dateAllowsInvalid===void 0&&W.proto===Date&&$.dateAllowsInvalid)return{...W,dateAllowsInvalid:!0};return W},defaults:{description:(W)=>W.builtinName?OT[W.builtinName]:`an instance of ${W.proto.name}`,actual:(W)=>W instanceof Date&&W.toString()==="Invalid Date"?"an invalid Date":N6(W)},intersections:{proto:(W,$)=>W.proto===Date&&$.proto===Date?W.dateAllowsInvalid?$:W:j5(W.proto,$.proto)?W:j5($.proto,W.proto)?$:P.init("proto",W,$),domain:(W,$)=>$.domain==="object"?W:P.init("domain",R.intrinsic.object.internal,$)}});class BU extends Z8{builtinName=B6(this.proto);serializedConstructor=this.json.proto;requiresInvalidDateCheck=this.proto===Date&&!this.dateAllowsInvalid;traverseAllows=this.requiresInvalidDateCheck?(W)=>W instanceof Date&&W.toString()!=="Invalid Date":(W)=>W instanceof this.proto;compiledCondition=`data instanceof ${this.serializedConstructor}${this.requiresInvalidDateCheck?' && data.toString() !== "Invalid Date"':""}`;compiledNegation=`!(${this.compiledCondition})`;innerToJsonSchema(W){switch(this.builtinName){case"Array":return{type:"array"};case"Date":return W.fallback.date?.({code:"date",base:{}})??W.fallback.proto({code:"proto",base:{},proto:this.proto});default:return W.fallback.proto({code:"proto",base:{},proto:this.proto})}}expression=this.dateAllowsInvalid?"Date | InvalidDate":this.proto.name;get nestableExpression(){return this.dateAllowsInvalid?`(${this.expression})`:this.expression}domain="object";get defaultShortDescription(){return this.description}}var u6={implementation:wL,Node:BU,writeBadInvalidDateMessage:(W)=>`dateAllowsInvalid may only be specified with constructor Date (was ${W.name})`,writeInvalidSchemaMessage:(W)=>`instanceOf operand must be a function (was ${Q1(W)})`};var ML=Y0({kind:"union",hasAssociatedError:!0,collapsibleKey:"branches",keys:{ordered:{},branches:{child:!0,parse:(W,$)=>{let X=[];for(let Y of W){let J=d(Y,"root")?Y.branches:$.$.parseSchema(Y).branches;for(let G of J)if(G.hasKind("morph")){let H=X.findIndex((Q)=>Q.hasKind("morph")&&Q.hasEqualMorphs(G));if(H===-1)X.push(G);else{let Q=X[H];X[H]=$.$.node("morph",{...Q.inner,in:Q.in.rawOr(G.in)})}}else X.push(G)}if(!$.def.ordered)X.sort((Y,J)=>Y.hash<J.hash?-1:1);return X}}},normalize:(W)=>C0(W)?{branches:W}:W,reduce:(W,$)=>{let X=BL(W);if(X.length===1)return X[0];if(X.length===W.branches.length)return;return $.node("union",{...W,branches:X},{prereduced:!0})},defaults:{description:(W)=>W.distribute(($)=>$.description,I$),expected:(W)=>{let $=FT(W.errors,"propString"),X=Object.entries($).map(([Y,J])=>{let G=[];for(let z of J)pW(G,z.expected);let H=I$(G),Q=J.every((z)=>z.actual===J[0].actual)?J[0].actual:X0(J[0].data);return`${Y&&`${Y} `}must be ${H}${Q&&` (was ${Q})`}`});return I$(X)},problem:(W)=>W.expected,message:(W)=>W.problem},intersections:{union:(W,$,X)=>{if(W.isNever!==$.isNever)return P.init("presence",W,$);let Y;if(W.ordered){if($.ordered)L(ZL(W.expression,$.expression));if(Y=F7($.branches,W.branches,X),Y instanceof P)Y.invert()}else Y=F7(W.branches,$.branches,X);if(Y instanceof P)return Y;return X.$.parseSchema(W.ordered||$.ordered?{branches:Y,ordered:!0}:{branches:Y})},...cW("union",(W,$,X)=>{let Y=F7(W.branches,[$],X);if(Y instanceof P)return Y;if(Y.length===1)return Y[0];return X.$.parseSchema(W.ordered?{branches:Y,ordered:!0}:{branches:Y})})}});class SU extends TW{isBoolean=this.branches.length===2&&this.branches[0].hasUnit(!1)&&this.branches[1].hasUnit(!0);get branchGroups(){let W=[],$=-1;for(let X of this.branches){if(X.hasKind("unit")&&X.domain==="boolean"){if($===-1)$=W.length,W.push(X);else W[$]=R.intrinsic.boolean;continue}W.push(X)}return W}unitBranches=this.branches.filter((W)=>W.in.hasKind("unit"));discriminant=this.discriminate();discriminantJson=this.discriminant?AL(this.discriminant):null;expression=this.distribute((W)=>W.nestableExpression,NL);createBranchedOptimisticRootApply(){return(W,$)=>{let X=this.traverseOptimistic(W);if(X!==e1)return X;let Y=new ZW(W,this.$.resolvedConfig);return this.traverseApply(W,Y),Y.finalize($)}}get shallowMorphs(){return this.branches.reduce((W,$)=>pW(W,$.shallowMorphs),[])}get defaultShortDescription(){return this.distribute((W)=>W.defaultShortDescription,I$)}innerToJsonSchema(W){if(this.branchGroups.length===1&&this.branchGroups[0].equals(R.intrinsic.boolean))return{type:"boolean"};let $=this.branchGroups.map((X)=>X.toJsonSchemaRecurse(W));if($.every((X)=>Object.keys(X).length===1&&K$(X,"const")))return{enum:$.map((X)=>X.const)};return{anyOf:$}}traverseAllows=(W,$)=>this.branches.some((X)=>X.traverseAllows(W,$));traverseApply=(W,$)=>{let X=[];for(let Y=0;Y<this.branches.length;Y++){if($.pushBranch(),this.branches[Y].traverseApply(W,$),!$.hasError()){if(this.branches[Y].includesTransform)return $.queuedMorphs.push(...$.popBranch().queuedMorphs);return $.popBranch()}X.push($.popBranch().error)}$.errorFromNodeContext({code:"union",errors:X,meta:this.meta})};traverseOptimistic=(W)=>{for(let $=0;$<this.branches.length;$++){let X=this.branches[$];if(X.traverseAllows(W)){if(X.contextFreeMorph)return X.contextFreeMorph(W);return W}}return e1};compile(W){if(!this.discriminant||this.unitBranches.length===this.branches.length&&this.branches.length===2)return this.compileIndiscriminable(W);let $=this.discriminant.optionallyChainedPropString;if(this.discriminant.kind==="domain")$=`typeof ${$} === "object" ? ${$} === null ? "null" : "object" : typeof ${$} === "function" ? "object" : typeof ${$}`;let X=this.discriminant.cases,Y=Object.keys(X),{optimistic:J}=W;if(W.optimistic=!1,W.block(`switch(${$})`,()=>{for(let F in X){let T=X[F],U=F==="default"?F:`case ${F}`;W.line(`${U}: return ${T===!0?J?W.data:T:J?`${W.invoke(T)} ? ${T.contextFreeMorph?`${c0(T.contextFreeMorph)}(${W.data})`:W.data} : "${e1}"`:W.invoke(T)}`)}return W}),W.traversalKind==="Allows"){W.return(J?`"${e1}"`:!1);return}let G=I$(this.discriminant.kind==="domain"?Y.map((F)=>{let T=F.slice(1,-1);return T==="function"?m1.object:m1[T]}):Y),H=this.discriminant.path.map((F)=>typeof F==="symbol"?c0(F):JSON.stringify(F)),Q=JSON.stringify(G),z=this.discriminant.kind==="domain"?`${KL}[${$}]`:`${LL}(${$})`;W.line(`ctx.errorFromNodeContext({
113
+ Right: ${$}`;var wL=Y0({kind:"proto",hasAssociatedError:!0,collapsibleKey:"proto",keys:{proto:{serialize:(W)=>R6(W)??zW(W)},dateAllowsInvalid:{}},normalize:(W)=>{let $=typeof W==="string"?{proto:N8[W]}:typeof W==="function"?P0(W)?W:{proto:W}:typeof W.proto==="string"?{...W,proto:N8[W.proto]}:W;if(typeof $.proto!=="function")L(u6.writeInvalidSchemaMessage($.proto));if(K$($,"dateAllowsInvalid")&&$.proto!==Date)L(u6.writeBadInvalidDateMessage($.proto));return $},applyConfig:(W,$)=>{if(W.dateAllowsInvalid===void 0&&W.proto===Date&&$.dateAllowsInvalid)return{...W,dateAllowsInvalid:!0};return W},defaults:{description:(W)=>W.builtinName?VT[W.builtinName]:`an instance of ${W.proto.name}`,actual:(W)=>W instanceof Date&&W.toString()==="Invalid Date"?"an invalid Date":N6(W)},intersections:{proto:(W,$)=>W.proto===Date&&$.proto===Date?W.dateAllowsInvalid?$:W:j5(W.proto,$.proto)?W:j5($.proto,W.proto)?$:P.init("proto",W,$),domain:(W,$)=>$.domain==="object"?W:P.init("domain",B.intrinsic.object.internal,$)}});class RU extends Z8{builtinName=R6(this.proto);serializedConstructor=this.json.proto;requiresInvalidDateCheck=this.proto===Date&&!this.dateAllowsInvalid;traverseAllows=this.requiresInvalidDateCheck?(W)=>W instanceof Date&&W.toString()!=="Invalid Date":(W)=>W instanceof this.proto;compiledCondition=`data instanceof ${this.serializedConstructor}${this.requiresInvalidDateCheck?' && data.toString() !== "Invalid Date"':""}`;compiledNegation=`!(${this.compiledCondition})`;innerToJsonSchema(W){switch(this.builtinName){case"Array":return{type:"array"};case"Date":return W.fallback.date?.({code:"date",base:{}})??W.fallback.proto({code:"proto",base:{},proto:this.proto});default:return W.fallback.proto({code:"proto",base:{},proto:this.proto})}}expression=this.dateAllowsInvalid?"Date | InvalidDate":this.proto.name;get nestableExpression(){return this.dateAllowsInvalid?`(${this.expression})`:this.expression}domain="object";get defaultShortDescription(){return this.description}}var u6={implementation:wL,Node:RU,writeBadInvalidDateMessage:(W)=>`dateAllowsInvalid may only be specified with constructor Date (was ${W.name})`,writeInvalidSchemaMessage:(W)=>`instanceOf operand must be a function (was ${Q1(W)})`};var ML=Y0({kind:"union",hasAssociatedError:!0,collapsibleKey:"branches",keys:{ordered:{},branches:{child:!0,parse:(W,$)=>{let X=[];for(let Y of W){let J=d(Y,"root")?Y.branches:$.$.parseSchema(Y).branches;for(let G of J)if(G.hasKind("morph")){let H=X.findIndex((Q)=>Q.hasKind("morph")&&Q.hasEqualMorphs(G));if(H===-1)X.push(G);else{let Q=X[H];X[H]=$.$.node("morph",{...Q.inner,in:Q.in.rawOr(G.in)})}}else X.push(G)}if(!$.def.ordered)X.sort((Y,J)=>Y.hash<J.hash?-1:1);return X}}},normalize:(W)=>C0(W)?{branches:W}:W,reduce:(W,$)=>{let X=RL(W);if(X.length===1)return X[0];if(X.length===W.branches.length)return;return $.node("union",{...W,branches:X},{prereduced:!0})},defaults:{description:(W)=>W.distribute(($)=>$.description,I$),expected:(W)=>{let $=FT(W.errors,"propString"),X=Object.entries($).map(([Y,J])=>{let G=[];for(let z of J)pW(G,z.expected);let H=I$(G),Q=J.every((z)=>z.actual===J[0].actual)?J[0].actual:X0(J[0].data);return`${Y&&`${Y} `}must be ${H}${Q&&` (was ${Q})`}`});return I$(X)},problem:(W)=>W.expected,message:(W)=>W.problem},intersections:{union:(W,$,X)=>{if(W.isNever!==$.isNever)return P.init("presence",W,$);let Y;if(W.ordered){if($.ordered)L(ZL(W.expression,$.expression));if(Y=F7($.branches,W.branches,X),Y instanceof P)Y.invert()}else Y=F7(W.branches,$.branches,X);if(Y instanceof P)return Y;return X.$.parseSchema(W.ordered||$.ordered?{branches:Y,ordered:!0}:{branches:Y})},...cW("union",(W,$,X)=>{let Y=F7(W.branches,[$],X);if(Y instanceof P)return Y;if(Y.length===1)return Y[0];return X.$.parseSchema(W.ordered?{branches:Y,ordered:!0}:{branches:Y})})}});class SU extends TW{isBoolean=this.branches.length===2&&this.branches[0].hasUnit(!1)&&this.branches[1].hasUnit(!0);get branchGroups(){let W=[],$=-1;for(let X of this.branches){if(X.hasKind("unit")&&X.domain==="boolean"){if($===-1)$=W.length,W.push(X);else W[$]=B.intrinsic.boolean;continue}W.push(X)}return W}unitBranches=this.branches.filter((W)=>W.in.hasKind("unit"));discriminant=this.discriminate();discriminantJson=this.discriminant?AL(this.discriminant):null;expression=this.distribute((W)=>W.nestableExpression,NL);createBranchedOptimisticRootApply(){return(W,$)=>{let X=this.traverseOptimistic(W);if(X!==e1)return X;let Y=new ZW(W,this.$.resolvedConfig);return this.traverseApply(W,Y),Y.finalize($)}}get shallowMorphs(){return this.branches.reduce((W,$)=>pW(W,$.shallowMorphs),[])}get defaultShortDescription(){return this.distribute((W)=>W.defaultShortDescription,I$)}innerToJsonSchema(W){if(this.branchGroups.length===1&&this.branchGroups[0].equals(B.intrinsic.boolean))return{type:"boolean"};let $=this.branchGroups.map((X)=>X.toJsonSchemaRecurse(W));if($.every((X)=>Object.keys(X).length===1&&K$(X,"const")))return{enum:$.map((X)=>X.const)};return{anyOf:$}}traverseAllows=(W,$)=>this.branches.some((X)=>X.traverseAllows(W,$));traverseApply=(W,$)=>{let X=[];for(let Y=0;Y<this.branches.length;Y++){if($.pushBranch(),this.branches[Y].traverseApply(W,$),!$.hasError()){if(this.branches[Y].includesTransform)return $.queuedMorphs.push(...$.popBranch().queuedMorphs);return $.popBranch()}X.push($.popBranch().error)}$.errorFromNodeContext({code:"union",errors:X,meta:this.meta})};traverseOptimistic=(W)=>{for(let $=0;$<this.branches.length;$++){let X=this.branches[$];if(X.traverseAllows(W)){if(X.contextFreeMorph)return X.contextFreeMorph(W);return W}}return e1};compile(W){if(!this.discriminant||this.unitBranches.length===this.branches.length&&this.branches.length===2)return this.compileIndiscriminable(W);let $=this.discriminant.optionallyChainedPropString;if(this.discriminant.kind==="domain")$=`typeof ${$} === "object" ? ${$} === null ? "null" : "object" : typeof ${$} === "function" ? "object" : typeof ${$}`;let X=this.discriminant.cases,Y=Object.keys(X),{optimistic:J}=W;if(W.optimistic=!1,W.block(`switch(${$})`,()=>{for(let F in X){let T=X[F],U=F==="default"?F:`case ${F}`;W.line(`${U}: return ${T===!0?J?W.data:T:J?`${W.invoke(T)} ? ${T.contextFreeMorph?`${c0(T.contextFreeMorph)}(${W.data})`:W.data} : "${e1}"`:W.invoke(T)}`)}return W}),W.traversalKind==="Allows"){W.return(J?`"${e1}"`:!1);return}let G=I$(this.discriminant.kind==="domain"?Y.map((F)=>{let T=F.slice(1,-1);return T==="function"?m1.object:m1[T]}):Y),H=this.discriminant.path.map((F)=>typeof F==="symbol"?c0(F):JSON.stringify(F)),Q=JSON.stringify(G),z=this.discriminant.kind==="domain"?`${KL}[${$}]`:`${LL}(${$})`;W.line(`ctx.errorFromNodeContext({
114
114
  code: "predicate",
115
115
  expected: ${Q},
116
116
  actual: ${z},
117
117
  relativePath: [${H}],
118
118
  meta: ${this.compiledMeta}
119
- })`)}compileIndiscriminable(W){if(W.traversalKind==="Apply"){W.const("errors","[]");for(let $ of this.branches)W.line("ctx.pushBranch()").line(W.invoke($)).if("!ctx.hasError()",()=>W.return($.includesTransform?"ctx.queuedMorphs.push(...ctx.popBranch().queuedMorphs)":"ctx.popBranch()")).line("errors.push(ctx.popBranch().error)");W.line(`ctx.errorFromNodeContext({ code: "union", errors, meta: ${this.compiledMeta} })`)}else{let{optimistic:$}=W;W.optimistic=!1;for(let X of this.branches)W.if(`${W.invoke(X)}`,()=>W.return($?X.contextFreeMorph?`${c0(X.contextFreeMorph)}(${W.data})`:W.data:!0));W.return($?`"${e1}"`:!1)}}get nestableExpression(){return this.isBoolean?"boolean":`(${this.expression})`}discriminate(){if(this.branches.length<2||this.isCyclic)return null;if(this.unitBranches.length===this.branches.length){let J=$0(this.unitBranches,(G,H)=>[`${H.in.serializedValue}`,H.hasKind("morph")?H:!0]);return{kind:"unit",path:[],optionallyChainedPropString:"data",cases:J}}let W=[];for(let J=0;J<this.branches.length-1;J++){let G=this.branches[J];for(let H=J+1;H<this.branches.length;H++){let Q=this.branches[H],z=c1(G.in,Q.in,G.$);if(!(z instanceof P))continue;for(let F of z){if(!F.kind||F.optional)continue;let T,U;if(F.kind==="domain"){let{l:V,r:K}=F;T=`"${typeof V==="string"?V:V.domain}"`,U=`"${typeof K==="string"?K:K.domain}"`}else if(F.kind==="unit")T=F.l.serializedValue,U=F.r.serializedValue;else continue;let M=W.find((V)=>Q2(V.path,F.path)&&V.kind===F.kind);if(!M)W.push({kind:F.kind,cases:{[T]:{branchIndices:[J],condition:F.l},[U]:{branchIndices:[H],condition:F.r}},path:F.path});else{if(M.cases[T])M.cases[T].branchIndices=pW(M.cases[T].branchIndices,J);else M.cases[T]??={branchIndices:[J],condition:F.l};if(M.cases[U])M.cases[U].branchIndices=pW(M.cases[U].branchIndices,H);else M.cases[U]??={branchIndices:[H],condition:F.r}}}}}let $=this.ordered?VL(W,this.branches):W;if(!$.length)return null;let X=_L($,this),Y={};for(let J in X.best.cases){let G=DL(X,J);if(G===null){Y[J]=!0;continue}if(G.length===this.branches.length)return null;if(this.ordered)G.sort((z,F)=>z.originalIndex-F.originalIndex);let H=G.map((z)=>z.branch),Q=H.length===1?H[0]:this.$.node("union",this.ordered?{branches:H,ordered:!0}:H);Object.assign(this.referencesById,Q.referencesById),Y[J]=Q}if(X.defaultEntries.length){let J=X.defaultEntries.map((G)=>G.branch);Y.default=this.$.node("union",this.ordered?{branches:J,ordered:!0}:J,{prereduced:!0}),Object.assign(this.referencesById,Y.default.referencesById)}return Object.assign(X.location,{cases:Y})}}var _L=(W,$)=>{let X=W.sort((G,H)=>Object.keys(H.cases).length-Object.keys(G.cases).length)[0],Y={kind:X.kind,path:X.path,optionallyChainedPropString:qU(X.path)},J=$.branches.map((G,H)=>({originalIndex:H,branch:G}));return{best:X,location:Y,defaultEntries:J,node:$}},DL=(W,$)=>{let X=W.best.cases[$],Y=OL(X.condition,W.location.path,W.node.$),J=[],G=[];for(let H=0;H<W.defaultEntries.length;H++){let Q=W.defaultEntries[H];if(X.branchIndices.includes(Q.originalIndex)){let z=RU(W.node.branches[Q.originalIndex],W.location);if(z===null)J=null;else J?.push({originalIndex:Q.originalIndex,branch:z})}else if(Q.branch.hasKind("alias")&&Y.hasKind("domain")&&Y.domain==="object")J?.push(Q);else{if(Q.branch.in.overlaps(Y)){let z=RU(Q.branch,W.location);J?.push({originalIndex:Q.originalIndex,branch:z})}G.push(Q)}}return W.defaultEntries=G,J},VL=(W,$)=>{return W.filter((Y)=>{let J=Object.values(Y.cases).map((G)=>G.branchIndices);for(let G=0;G<J.length-1;G++){let H=J[G];for(let Q=G+1;Q<J.length;Q++){let z=J[Q];for(let F of H)for(let T of z)if(F>T){if($[F].overlaps($[T]))return!1}}}return!0})},OL=(W,$,X)=>{let Y=W==="undefined"?X.node("unit",{unit:void 0}):W==="null"?X.node("unit",{unit:null}):W==="boolean"?X.units([!0,!1]):W;for(let J=$.length-1;J>=0;J--){let G=$[J];Y=X.node("intersection",typeof G==="number"?{proto:"Array",sequence:[...QT(G).map((H)=>({})),Y]}:{domain:"object",required:[{key:G,value:Y}]})}return Y},qU=(W)=>W.reduce(($,X)=>$+h5(X,!0),"data"),KL=c0(TT),LL=c0(X0),T7={implementation:ML,Node:SU},AL=(W)=>({kind:W.kind,path:W.path.map(($)=>typeof $==="string"?$:T2($)),cases:$0(W.cases,($,X)=>[$,X===!0?X:X.hasKind("union")&&X.discriminantJson?X.discriminantJson:X.json])}),EL={delimiter:" | ",finalDelimiter:" | "},NL=(W)=>I$(W,EL),I$=(W,$)=>{let X=$?.delimiter??", ",Y=$?.finalDelimiter??" or ";if(W.length===0)return"never";if(W.length===1)return W[0];if(W.length===2&&W[0]==="false"&&W[1]==="true"||W[0]==="true"&&W[1]==="false")return"boolean";let J={},G=W.filter((Q)=>J[Q]?!1:J[Q]=!0),H=G.pop();return`${G.join(X)}${G.length?Y:""}${H}`},F7=(W,$,X)=>{let Y=$.map(()=>[]);for(let G=0;G<W.length;G++){let H={};for(let Q=0;Q<$.length;Q++){if(Y[Q]===null)continue;if(W[G].equals($[Q])){Y[Q]=null,H={};break}let z=x0(W[G],$[Q],X);if(z instanceof P)continue;if(z.equals(W[G])){Y[Q].push(W[G]),H={};break}if(z.equals($[Q]))Y[Q]=null;else H[Q]=z}for(let Q in H)Y[Q][G]=H[Q]}let J=Y.flatMap((G,H)=>G?.flatMap((Q)=>Q.branches)??$[H]);return J.length===0?P.init("union",W,$):J},BL=({branches:W,ordered:$})=>{if(W.length<2)return W;let X=W.map(()=>!0);for(let Y=0;Y<W.length;Y++)for(let J=Y+1;J<W.length&&X[Y]&&X[J];J++){if(W[Y].equals(W[J])){X[J]=!1;continue}let G=c1(W[Y].in,W[J].in,W[0].$);if(G instanceof P)continue;if(!$)RL(W[Y],W[J]);if(G.equals(W[Y].in))X[Y]=!!$;else if(G.equals(W[J].in))X[J]=!1}return W.filter((Y,J)=>X[J])},RL=(W,$)=>{if(!W.includesTransform&&!$.includesTransform)return;if(!Q2(W.shallowMorphs,$.shallowMorphs))L(ZU(W.expression,$.expression));if(!Q2(W.flatMorphs,$.flatMorphs,{isEqual:(X,Y)=>X.propString===Y.propString&&(X.node.hasKind("morph")&&Y.node.hasKind("morph")?X.node.hasEqualMorphs(Y.node):X.node.hasKind("intersection")&&Y.node.hasKind("intersection")?X.node.structure?.structuralMorphRef===Y.node.structure?.structuralMorphRef:!1)}))L(ZU(W.expression,$.expression))},RU=(W,$)=>W.transform((X,Y)=>{if(X==="domain"||X==="unit")return null;return Y},{shouldTransform:(X,Y)=>{let J=qU(Y.path);if(!$.optionallyChainedPropString.startsWith(J))return!1;if(X.hasKind("domain")&&X.domain==="object")return!0;if((X.hasKind("domain")||$.kind==="unit")&&J===$.optionallyChainedPropString)return!0;return X.children.length!==0&&X.kind!=="index"}}),ZU=(W,$)=>`An unordered union of a type including a morph and a type with overlapping input is indeterminate:
119
+ })`)}compileIndiscriminable(W){if(W.traversalKind==="Apply"){W.const("errors","[]");for(let $ of this.branches)W.line("ctx.pushBranch()").line(W.invoke($)).if("!ctx.hasError()",()=>W.return($.includesTransform?"ctx.queuedMorphs.push(...ctx.popBranch().queuedMorphs)":"ctx.popBranch()")).line("errors.push(ctx.popBranch().error)");W.line(`ctx.errorFromNodeContext({ code: "union", errors, meta: ${this.compiledMeta} })`)}else{let{optimistic:$}=W;W.optimistic=!1;for(let X of this.branches)W.if(`${W.invoke(X)}`,()=>W.return($?X.contextFreeMorph?`${c0(X.contextFreeMorph)}(${W.data})`:W.data:!0));W.return($?`"${e1}"`:!1)}}get nestableExpression(){return this.isBoolean?"boolean":`(${this.expression})`}discriminate(){if(this.branches.length<2||this.isCyclic)return null;if(this.unitBranches.length===this.branches.length){let J=$0(this.unitBranches,(G,H)=>[`${H.in.serializedValue}`,H.hasKind("morph")?H:!0]);return{kind:"unit",path:[],optionallyChainedPropString:"data",cases:J}}let W=[];for(let J=0;J<this.branches.length-1;J++){let G=this.branches[J];for(let H=J+1;H<this.branches.length;H++){let Q=this.branches[H],z=c1(G.in,Q.in,G.$);if(!(z instanceof P))continue;for(let F of z){if(!F.kind||F.optional)continue;let T,U;if(F.kind==="domain"){let{l:O,r:K}=F;T=`"${typeof O==="string"?O:O.domain}"`,U=`"${typeof K==="string"?K:K.domain}"`}else if(F.kind==="unit")T=F.l.serializedValue,U=F.r.serializedValue;else continue;let M=W.find((O)=>Q2(O.path,F.path)&&O.kind===F.kind);if(!M)W.push({kind:F.kind,cases:{[T]:{branchIndices:[J],condition:F.l},[U]:{branchIndices:[H],condition:F.r}},path:F.path});else{if(M.cases[T])M.cases[T].branchIndices=pW(M.cases[T].branchIndices,J);else M.cases[T]??={branchIndices:[J],condition:F.l};if(M.cases[U])M.cases[U].branchIndices=pW(M.cases[U].branchIndices,H);else M.cases[U]??={branchIndices:[H],condition:F.r}}}}}let $=this.ordered?OL(W,this.branches):W;if(!$.length)return null;let X=_L($,this),Y={};for(let J in X.best.cases){let G=DL(X,J);if(G===null){Y[J]=!0;continue}if(G.length===this.branches.length)return null;if(this.ordered)G.sort((z,F)=>z.originalIndex-F.originalIndex);let H=G.map((z)=>z.branch),Q=H.length===1?H[0]:this.$.node("union",this.ordered?{branches:H,ordered:!0}:H);Object.assign(this.referencesById,Q.referencesById),Y[J]=Q}if(X.defaultEntries.length){let J=X.defaultEntries.map((G)=>G.branch);Y.default=this.$.node("union",this.ordered?{branches:J,ordered:!0}:J,{prereduced:!0}),Object.assign(this.referencesById,Y.default.referencesById)}return Object.assign(X.location,{cases:Y})}}var _L=(W,$)=>{let X=W.sort((G,H)=>Object.keys(H.cases).length-Object.keys(G.cases).length)[0],Y={kind:X.kind,path:X.path,optionallyChainedPropString:qU(X.path)},J=$.branches.map((G,H)=>({originalIndex:H,branch:G}));return{best:X,location:Y,defaultEntries:J,node:$}},DL=(W,$)=>{let X=W.best.cases[$],Y=VL(X.condition,W.location.path,W.node.$),J=[],G=[];for(let H=0;H<W.defaultEntries.length;H++){let Q=W.defaultEntries[H];if(X.branchIndices.includes(Q.originalIndex)){let z=BU(W.node.branches[Q.originalIndex],W.location);if(z===null)J=null;else J?.push({originalIndex:Q.originalIndex,branch:z})}else if(Q.branch.hasKind("alias")&&Y.hasKind("domain")&&Y.domain==="object")J?.push(Q);else{if(Q.branch.in.overlaps(Y)){let z=BU(Q.branch,W.location);J?.push({originalIndex:Q.originalIndex,branch:z})}G.push(Q)}}return W.defaultEntries=G,J},OL=(W,$)=>{return W.filter((Y)=>{let J=Object.values(Y.cases).map((G)=>G.branchIndices);for(let G=0;G<J.length-1;G++){let H=J[G];for(let Q=G+1;Q<J.length;Q++){let z=J[Q];for(let F of H)for(let T of z)if(F>T){if($[F].overlaps($[T]))return!1}}}return!0})},VL=(W,$,X)=>{let Y=W==="undefined"?X.node("unit",{unit:void 0}):W==="null"?X.node("unit",{unit:null}):W==="boolean"?X.units([!0,!1]):W;for(let J=$.length-1;J>=0;J--){let G=$[J];Y=X.node("intersection",typeof G==="number"?{proto:"Array",sequence:[...QT(G).map((H)=>({})),Y]}:{domain:"object",required:[{key:G,value:Y}]})}return Y},qU=(W)=>W.reduce(($,X)=>$+h5(X,!0),"data"),KL=c0(TT),LL=c0(X0),T7={implementation:ML,Node:SU},AL=(W)=>({kind:W.kind,path:W.path.map(($)=>typeof $==="string"?$:T2($)),cases:$0(W.cases,($,X)=>[$,X===!0?X:X.hasKind("union")&&X.discriminantJson?X.discriminantJson:X.json])}),EL={delimiter:" | ",finalDelimiter:" | "},NL=(W)=>I$(W,EL),I$=(W,$)=>{let X=$?.delimiter??", ",Y=$?.finalDelimiter??" or ";if(W.length===0)return"never";if(W.length===1)return W[0];if(W.length===2&&W[0]==="false"&&W[1]==="true"||W[0]==="true"&&W[1]==="false")return"boolean";let J={},G=W.filter((Q)=>J[Q]?!1:J[Q]=!0),H=G.pop();return`${G.join(X)}${G.length?Y:""}${H}`},F7=(W,$,X)=>{let Y=$.map(()=>[]);for(let G=0;G<W.length;G++){let H={};for(let Q=0;Q<$.length;Q++){if(Y[Q]===null)continue;if(W[G].equals($[Q])){Y[Q]=null,H={};break}let z=x0(W[G],$[Q],X);if(z instanceof P)continue;if(z.equals(W[G])){Y[Q].push(W[G]),H={};break}if(z.equals($[Q]))Y[Q]=null;else H[Q]=z}for(let Q in H)Y[Q][G]=H[Q]}let J=Y.flatMap((G,H)=>G?.flatMap((Q)=>Q.branches)??$[H]);return J.length===0?P.init("union",W,$):J},RL=({branches:W,ordered:$})=>{if(W.length<2)return W;let X=W.map(()=>!0);for(let Y=0;Y<W.length;Y++)for(let J=Y+1;J<W.length&&X[Y]&&X[J];J++){if(W[Y].equals(W[J])){X[J]=!1;continue}let G=c1(W[Y].in,W[J].in,W[0].$);if(G instanceof P)continue;if(!$)BL(W[Y],W[J]);if(G.equals(W[Y].in))X[Y]=!!$;else if(G.equals(W[J].in))X[J]=!1}return W.filter((Y,J)=>X[J])},BL=(W,$)=>{if(!W.includesTransform&&!$.includesTransform)return;if(!Q2(W.shallowMorphs,$.shallowMorphs))L(ZU(W.expression,$.expression));if(!Q2(W.flatMorphs,$.flatMorphs,{isEqual:(X,Y)=>X.propString===Y.propString&&(X.node.hasKind("morph")&&Y.node.hasKind("morph")?X.node.hasEqualMorphs(Y.node):X.node.hasKind("intersection")&&Y.node.hasKind("intersection")?X.node.structure?.structuralMorphRef===Y.node.structure?.structuralMorphRef:!1)}))L(ZU(W.expression,$.expression))},BU=(W,$)=>W.transform((X,Y)=>{if(X==="domain"||X==="unit")return null;return Y},{shouldTransform:(X,Y)=>{let J=qU(Y.path);if(!$.optionallyChainedPropString.startsWith(J))return!1;if(X.hasKind("domain")&&X.domain==="object")return!0;if((X.hasKind("domain")||$.kind==="unit")&&J===$.optionallyChainedPropString)return!0;return X.children.length!==0&&X.kind!=="index"}}),ZU=(W,$)=>`An unordered union of a type including a morph and a type with overlapping input is indeterminate:
120
120
  Left: ${W}
121
121
  Right: ${$}`,ZL=(W,$)=>`The intersection of two ordered unions is indeterminate:
122
122
  Left: ${W}
123
- Right: ${$}`;var SL=Y0({kind:"unit",hasAssociatedError:!0,keys:{unit:{preserveUndefined:!0,serialize:(W)=>W instanceof Date?W.toISOString():zW(W)}},normalize:(W)=>W,defaults:{description:(W)=>X0(W.unit),problem:({expected:W,actual:$})=>`${W===$?`must be reference equal to ${W} (serialized to the same value)`:`must be ${W} (was ${$})`}`},intersections:{unit:(W,$)=>P.init("unit",W,$),...cW("unit",(W,$)=>{if($.allows(W.unit))return W;let X=$.hasKind("intersection")?$.basis:$;if(X){let Y=X.hasKind("domain")?X:R.intrinsic.object;if(W.domain!==Y.domain){let J=W.domain==="undefined"||W.domain==="null"||W.domain==="boolean"?W.domain:R.intrinsic[W.domain];return P.init("domain",J,Y)}}return P.init("assignability",W,$.hasKind("intersection")?$.children.find((Y)=>!Y.allows(W.unit)):$)})}});class kU extends Z8{compiledValue=this.json.unit;serializedValue=typeof this.unit==="string"||this.unit instanceof Date?JSON.stringify(this.compiledValue):`${this.compiledValue}`;compiledCondition=CU(this.unit,this.serializedValue);compiledNegation=CU(this.unit,this.serializedValue,"negated");expression=X0(this.unit);domain=Q1(this.unit);get defaultShortDescription(){return this.domain==="object"?m1.object:this.description}innerToJsonSchema(W){return this.unit===null?{type:"null"}:R.intrinsic.jsonPrimitive.allows(this.unit)?{const:this.unit}:W.fallback.unit({code:"unit",base:{},unit:this.unit})}traverseAllows=this.unit instanceof Date?(W)=>W instanceof Date&&W.toISOString()===this.compiledValue:Number.isNaN(this.unit)?(W)=>Number.isNaN(W):(W)=>W===this.unit}var U7={implementation:SL,Node:kU},CU=(W,$,X)=>{if(W instanceof Date){let Y=`data instanceof Date && data.toISOString() === ${$}`;return X?`!(${Y})`:Y}if(Number.isNaN(W))return`${X?"!":""}Number.isNaN(data)`;return`data ${X?"!":"="}== ${$}`};var qL=Y0({kind:"index",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{signature:{child:!0,parse:(W,$)=>{let X=$.$.parseSchema(W);if(!X.extends(R.intrinsic.key))return L(kL(X.expression));let Y=X.branches.filter((J)=>J.hasKind("unit"));if(Y.length)return L(CL(Y.map((J)=>X0(J.unit))));return X}},value:{child:!0,parse:(W,$)=>$.$.parseSchema(W)}},normalize:(W)=>W,defaults:{description:(W)=>`[${W.signature.expression}]: ${W.value.description}`},intersections:{index:(W,$,X)=>{if(W.signature.equals($.signature)){let Y=x0(W.value,$.value,X),J=Y instanceof P?R.intrinsic.never.internal:Y;return X.$.node("index",{signature:W.signature,value:J})}if(W.signature.extends($.signature)&&W.value.subsumes($.value))return $;if($.signature.extends(W.signature)&&$.value.subsumes(W.value))return W;return null}}});class IU extends FW{impliedBasis=R.intrinsic.object.internal;expression=`[${this.signature.expression}]: ${this.value.expression}`;flatRefs=M0(this.value.flatRefs.map((W)=>SW([this.signature,...W.path],W.node)),SW([this.signature],this.value));traverseAllows=(W,$)=>E8(W).every((X)=>{if(this.signature.traverseAllows(X[0],$))return u1(X[0],()=>this.value.traverseAllows(X[1],$),$);return!0});traverseApply=(W,$)=>{for(let X of E8(W))if(this.signature.traverseAllows(X[0],$))u1(X[0],()=>this.value.traverseApply(X[1],$),$)};_transform(W,$){$.path.push(this.signature);let X=super._transform(W,$);return $.path.pop(),X}compile(){}}var w7={implementation:qL,Node:IU},CL=(W)=>`Index keys ${W.join(", ")} should be specified as named props.`,kL=(W)=>`Indexed key definition '${W}' must be a string or symbol`;var IL=Y0({kind:"required",hasAssociatedError:!0,intersectionIsOpen:!0,keys:{key:{},value:{child:!0,parse:(W,$)=>$.$.parseSchema(W)}},normalize:(W)=>W,defaults:{description:(W)=>`${W.compiledKey}: ${W.value.description}`,expected:(W)=>W.missingValueDescription,actual:()=>"missing"},intersections:{required:b6,optional:b6}});class jU extends y6{expression=`${this.compiledKey}: ${this.value.expression}`;errorContext=Object.freeze({code:"required",missingValueDescription:this.value.defaultShortDescription,relativePath:[this.key],meta:this.meta});compiledErrorContext=g2(this.errorContext)}var M7={implementation:IL,Node:jU};var jL=Y0({kind:"sequence",hasAssociatedError:!1,collapsibleKey:"variadic",keys:{prefix:{child:!0,parse:(W,$)=>{if(W.length===0)return;return W.map((X)=>$.$.parseSchema(X))}},optionals:{child:!0,parse:(W,$)=>{if(W.length===0)return;return W.map((X)=>$.$.parseSchema(X))}},defaultables:{child:(W)=>W.map(($)=>$[0]),parse:(W,$)=>{if(W.length===0)return;return W.map((X)=>{let Y=$.$.parseSchema(X[0]);return g6(Y,X[1],null),[Y,X[1]]})},serialize:(W)=>W.map(($)=>[$[0].collapsibleJson,zW($[1])])},variadic:{child:!0,parse:(W,$)=>$.$.parseSchema(W,$)},minVariadicLength:{parse:(W)=>W===0?void 0:W},postfix:{child:!0,parse:(W,$)=>{if(W.length===0)return;return W.map((X)=>$.$.parseSchema(X))}}},normalize:(W)=>{if(typeof W==="string")return{variadic:W};if("variadic"in W||"prefix"in W||"defaultables"in W||"optionals"in W||"postfix"in W||"minVariadicLength"in W){if(W.postfix?.length){if(!W.variadic)return L(vL);if(W.optionals?.length||W.defaultables?.length)return L(D7)}if(W.minVariadicLength&&!W.variadic)return L("minVariadicLength may not be specified without a variadic element");return W}return{variadic:W}},reduce:(W,$)=>{let X=W.minVariadicLength??0,Y=W.prefix?.slice()??[],J=W.defaultables?.slice()??[],G=W.optionals?.slice()??[],H=W.postfix?.slice()??[];if(W.variadic){while(G.at(-1)?.equals(W.variadic))G.pop();if(G.length===0&&J.length===0)while(Y.at(-1)?.equals(W.variadic))Y.pop(),X++;while(H[0]?.equals(W.variadic))H.shift(),X++}else if(G.length===0&&J.length===0)Y.push(...H.splice(0));if(X!==W.minVariadicLength||W.prefix&&W.prefix.length!==Y.length)return $.node("sequence",{...W,prefix:Y,defaultables:J,optionals:G,postfix:H,minVariadicLength:X},{prereduced:!0})},defaults:{description:(W)=>{if(W.isVariadicOnly)return`${W.variadic.nestableExpression}[]`;return`[${W.tuple.map((X)=>X.kind==="defaultables"?`${X.node.nestableExpression} = ${X0(X.default)}`:X.kind==="optionals"?`${X.node.nestableExpression}?`:X.kind==="variadic"?`...${X.node.nestableExpression}[]`:X.node.expression).join(", ")}]`}},intersections:{sequence:(W,$,X)=>{let Y=c6({l:W.tuple,r:$.tuple,disjoint:new P,result:[],fixedVariants:[],ctx:X}),J=Y.disjoint.length===0?[Y,...Y.fixedVariants]:Y.fixedVariants;return J.length===0?Y.disjoint:J.length===1?X.$.node("sequence",fU(J[0].result)):X.$.node("union",J.map((G)=>({proto:Array,sequence:fU(G.result)})))}}});class PU extends FW{impliedBasis=R.intrinsic.Array.internal;tuple=xL(this.inner);prefixLength=this.prefix?.length??0;defaultablesLength=this.defaultables?.length??0;optionalsLength=this.optionals?.length??0;postfixLength=this.postfix?.length??0;defaultablesAndOptionals=[];prevariadic=this.tuple.filter((W)=>{if(W.kind==="defaultables"||W.kind==="optionals")return this.defaultablesAndOptionals.push(W.node),!0;return W.kind==="prefix"});variadicOrPostfix=H2(this.variadic&&[this.variadic],this.postfix);flatRefs=this.addFlatRefs();addFlatRefs(){return u5(this.flatRefs,this.prevariadic.flatMap((W,$)=>M0(W.node.flatRefs.map((X)=>SW([`${$}`,...X.path],X.node)),SW([`${$}`],W.node)))),u5(this.flatRefs,this.variadicOrPostfix.flatMap((W)=>M0(W.flatRefs.map(($)=>SW([R.intrinsic.nonNegativeIntegerString.internal,...$.path],$.node)),SW([R.intrinsic.nonNegativeIntegerString.internal],W)))),this.flatRefs}isVariadicOnly=this.prevariadic.length+this.postfixLength===0;minVariadicLength=this.inner.minVariadicLength??0;minLength=this.prefixLength+this.minVariadicLength+this.postfixLength;minLengthNode=this.minLength===0?null:this.$.node("minLength",this.minLength);maxLength=this.variadic?null:this.tuple.length;maxLengthNode=this.maxLength===null?null:this.$.node("maxLength",this.maxLength);impliedSiblings=this.minLengthNode?this.maxLengthNode?[this.minLengthNode,this.maxLengthNode]:[this.minLengthNode]:this.maxLengthNode?[this.maxLengthNode]:[];defaultValueMorphs=PL(this);defaultValueMorphsReference=this.defaultValueMorphs.length?c0(this.defaultValueMorphs):void 0;elementAtIndex(W,$){if($<this.prevariadic.length)return this.tuple[$];let X=W.length-this.postfixLength;if($>=X)return{kind:"postfix",node:this.postfix[$-X]};return{kind:"variadic",node:this.variadic??O0(`Unexpected attempt to access index ${$} on ${this}`)}}traverseAllows=(W,$)=>{for(let X=0;X<W.length;X++)if(!this.elementAtIndex(W,X).node.traverseAllows(W[X],$))return!1;return!0};traverseApply=(W,$)=>{let X=0;for(;X<W.length;X++)u1(X,()=>this.elementAtIndex(W,X).node.traverseApply(W[X],$),$)};get element(){return this.cacheGetter("element",this.$.node("union",this.children))}compile(W){if(this.prefix)for(let[$,X]of this.prefix.entries())W.traverseKey(`${$}`,`data[${$}]`,X);for(let[$,X]of this.defaultablesAndOptionals.entries()){let Y=`${$+this.prefixLength}`;W.if(`${Y} >= ${W.data}.length`,()=>W.traversalKind==="Allows"?W.return(!0):W.return()),W.traverseKey(Y,`data[${Y}]`,X)}if(this.variadic){if(this.postfix)W.const("firstPostfixIndex",`${W.data}.length${this.postfix?`- ${this.postfix.length}`:""}`);if(W.for(`i < ${this.postfix?"firstPostfixIndex":"data.length"}`,()=>W.traverseKey("i","data[i]",this.variadic),this.prevariadic.length),this.postfix)for(let[$,X]of this.postfix.entries()){let Y=`firstPostfixIndex + ${$}`;W.traverseKey(Y,`data[${Y}]`,X)}}if(W.traversalKind==="Allows")W.return(!0)}_transform(W,$){$.path.push(R.intrinsic.nonNegativeIntegerString.internal);let X=super._transform(W,$);return $.path.pop(),X}expression=this.description;reduceJsonSchema(W,$){if(this.prevariadic.length)W.prefixItems=this.prevariadic.map((X)=>{let Y=X.node.toJsonSchemaRecurse($);if(X.kind==="defaultables"){let J=typeof X.default==="function"?X.default():X.default;Y.default=R.intrinsic.jsonData.allows(J)?J:$.fallback.defaultValue({code:"defaultValue",base:Y,value:J})}return Y});if(this.minLength)W.minItems=this.minLength;if(this.variadic){let X=Object.assign(W,{items:this.variadic.toJsonSchemaRecurse($)});if(this.maxLength)X.maxItems=this.maxLength;if(this.postfix){let Y=this.postfix.map((J)=>J.toJsonSchemaRecurse($));W=$.fallback.arrayPostfix({code:"arrayPostfix",base:X,elements:Y})}}else W.items=!1,delete W.maxItems;return W}}var fL={},PL=(W)=>{if(!W.defaultables)return[];let $=[],X="[",Y=W.prefixLength+W.defaultablesLength-1;for(let J=W.prefixLength;J<=Y;J++){let[G,H]=W.defaultables[J-W.prefixLength];$.push(H7(J,G,H)),X+=`${J}: ${G.id} = ${zW(H)}, `}return X+="]",fL[X]??=$},_7={implementation:jL,Node:PU},xL=(W)=>{let $=[];if(W.prefix)for(let X of W.prefix)$.push({kind:"prefix",node:X});if(W.defaultables)for(let[X,Y]of W.defaultables)$.push({kind:"defaultables",node:X,default:Y});if(W.optionals)for(let X of W.optionals)$.push({kind:"optionals",node:X});if(W.variadic)$.push({kind:"variadic",node:W.variadic});if(W.postfix)for(let X of W.postfix)$.push({kind:"postfix",node:X});return $},fU=(W)=>W.reduce(($,X)=>{if(X.kind==="variadic")$.variadic=X.node;else if(X.kind==="defaultables")$.defaultables=M0($.defaultables,[[X.node,X.default]]);else $[X.kind]=M0($[X.kind],X.node);return $},{}),D7="A postfix required element cannot follow an optional or defaultable element",vL="A postfix element requires a variadic element",c6=(W)=>{let[$,...X]=W.l,[Y,...J]=W.r;if(!$||!Y)return W;let G=X.at(-1)?.kind==="postfix",H=J.at(-1)?.kind==="postfix",Q=$.kind==="prefix"||Y.kind==="prefix"?"prefix":$.kind==="postfix"||Y.kind==="postfix"?"postfix":$.kind==="variadic"&&Y.kind==="variadic"?"variadic":G||H?"prefix":$.kind==="defaultables"||Y.kind==="defaultables"?"defaultables":"optionals";if($.kind==="prefix"&&Y.kind==="variadic"&&H){let U=c6({...W,fixedVariants:[],r:J.map((M)=>({...M,kind:"prefix"}))});if(U.disjoint.length===0)W.fixedVariants.push(U)}else if(Y.kind==="prefix"&&$.kind==="variadic"&&G){let U=c6({...W,fixedVariants:[],l:X.map((M)=>({...M,kind:"prefix"}))});if(U.disjoint.length===0)W.fixedVariants.push(U)}let z=x0($.node,Y.node,W.ctx);if(z instanceof P)if(Q==="prefix"||Q==="postfix")W.disjoint.push(...z.withPrefixKey(Q==="prefix"?W.result.length:`-${X.length+1}`,"required")),W.result=[...W.result,{kind:Q,node:R.intrinsic.never.internal}];else if(Q==="optionals"||Q==="defaultables")return W;else return c6({...W,fixedVariants:[],l:X.map((U)=>({...U,kind:"prefix"})),r:X.map((U)=>({...U,kind:"prefix"}))});else if(Q==="defaultables"){if($.kind==="defaultables"&&Y.kind==="defaultables"&&$.default!==Y.default)L(G7($.default,Y.default));W.result=[...W.result,{kind:Q,node:z,default:$.kind==="defaultables"?$.default:Y.kind==="defaultables"?Y.default:O0(`Unexpected defaultable intersection from ${$.kind} and ${Y.kind} elements.`)}]}else W.result=[...W.result,{kind:Q,node:z}];let F=W.l.length,T=W.r.length;if($.kind!=="variadic"||F>=T&&(Y.kind==="variadic"||T===1))W.l=X;if(Y.kind!=="variadic"||T>=F&&($.kind==="variadic"||F===1))W.r=J;return c6(W)};var bU=(W)=>($)=>{if($.props.length||$.index){let X=$.index?.map((J)=>J[W])??[];for(let J of $.props)X.push(J[W]);if($.undeclared)X.push(`+ (undeclared): ${$.undeclared}`);let Y=`{ ${X.join(", ")} }`;return $.sequence?`${Y} & ${$.sequence.description}`:Y}return $.sequence?.description??"{}"},bL=bU("description"),yL=bU("expression"),xU=(W,$,X)=>{let Y=W.required?"required":"optional";if(!$.signature.allows(W.key))return null;let J=c1(W.value,$.value,X);if(J instanceof P)return Y==="optional"?X.node("optional",{key:W.key,value:R.intrinsic.never.internal}):J.withPrefixKey(W.key,W.kind);return null},hL=Y0({kind:"structure",hasAssociatedError:!1,normalize:(W)=>W,applyConfig:(W,$)=>{if(!W.undeclared&&$.onUndeclaredKey!=="ignore")return{...W,undeclared:$.onUndeclaredKey};return W},keys:{required:{child:!0,parse:B1("required"),reduceIo:(W,$,X)=>{$.required=M0($.required,X.map((Y)=>Y[W]));return}},optional:{child:!0,parse:B1("optional"),reduceIo:(W,$,X)=>{if(W==="in"){$.optional=X.map((Y)=>Y.in);return}for(let Y of X)$[Y.outProp.kind]=M0($[Y.outProp.kind],Y.outProp.out)}},index:{child:!0,parse:B1("index")},sequence:{child:!0,parse:B1("sequence")},undeclared:{parse:(W)=>W==="ignore"?void 0:W,reduceIo:(W,$,X)=>{if(X!=="delete")return;if(W==="in")delete $.undeclared;else $.undeclared="reject"}}},defaults:{description:bL},intersections:{structure:(W,$,X)=>{let Y={...W.inner},J={...$.inner},G=new P;if(W.undeclared){let z=W.keyof();for(let F of $.requiredKeys)if(!z.allows(F))G.add("presence",R.intrinsic.never.internal,$.propsByKey[F].value,{path:[F]});if(J.optional)J.optional=J.optional.filter((F)=>z.allows(F.key));if(J.index)J.index=J.index.flatMap((F)=>{if(F.signature.extends(z))return F;let T=c1(z,F.signature,X.$);if(T instanceof P)return[];let U=aY(T,F.value,X.$);if(U.required)J.required=H2(J.required,U.required);if(U.optional)J.optional=H2(J.optional,U.optional);return U.index??[]})}if($.undeclared){let z=$.keyof();for(let F of W.requiredKeys)if(!z.allows(F))G.add("presence",W.propsByKey[F].value,R.intrinsic.never.internal,{path:[F]});if(Y.optional)Y.optional=Y.optional.filter((F)=>z.allows(F.key));if(Y.index)Y.index=Y.index.flatMap((F)=>{if(F.signature.extends(z))return F;let T=c1(z,F.signature,X.$);if(T instanceof P)return[];let U=aY(T,F.value,X.$);if(U.required)Y.required=H2(Y.required,U.required);if(U.optional)Y.optional=H2(Y.optional,U.optional);return U.index??[]})}let H={};if(W.undeclared||$.undeclared)H.undeclared=W.undeclared==="reject"||$.undeclared==="reject"?"reject":"delete";let Q=Z$({kind:"structure",baseInner:H,l:S$(Y),r:S$(J),roots:[],ctx:X});if(Q instanceof P)G.push(...Q);if(G.length)return G;return Q}},reduce:(W,$)=>{if(W.index){if(!(W.required||W.optional))return;let X=!1,Y=W.required??[],J=W.optional??[],G=[...J];for(let H of W.index){for(let Q of Y){let z=xU(Q,H,$);if(z instanceof P)return z}for(let[Q,z]of J.entries()){let F=xU(z,H,$);if(F instanceof P)return F;if(F===null)continue;G[Q]=F,X=!0}}if(X)return $.node("structure",{...W,optional:G},{prereduced:!0})}}});class yU extends FW{impliedBasis=R.intrinsic.object.internal;impliedSiblings=this.children.flatMap((W)=>W.impliedSiblings??[]);props=H2(this.required,this.optional);propsByKey=$0(this.props,(W,$)=>[$.key,$]);propsByKeyReference=c0(this.propsByKey);expression=yL(this);requiredKeys=this.required?.map((W)=>W.key)??[];optionalKeys=this.optional?.map((W)=>W.key)??[];literalKeys=[...this.requiredKeys,...this.optionalKeys];_keyof;keyof(){if(this._keyof)return this._keyof;let W=this.$.units(this.literalKeys).branches;if(this.index)for(let{signature:$}of this.index)W=W.concat($.branches);return this._keyof=this.$.node("union",W)}map(W){return this.$.node("structure",this.props.flatMap(W).reduce(($,X)=>{let Y=this.propsByKey[X.key];if(P0(X)){if(X.kind!=="required"&&X.kind!=="optional")return L(`Map result must have kind "required" or "optional" (was ${X.kind})`);return $[X.kind]=M0($[X.kind],X),$}let J=X.kind??Y?.kind??"required",G=$0(X,(H,Q)=>(H in h6.implementation.keys)?[H,Q]:[]);return $[J]=M0($[J],this.$.node(J,G)),$},{}))}assertHasKeys(W){let $=W.filter((X)=>!m6(X,this.keyof()));if($.length)return L(vU(this.expression,$))}get(W,...$){let X,Y=!1,J=uL(W);if((typeof J==="string"||typeof J==="symbol")&&this.propsByKey[J])X=this.propsByKey[J].value,Y=this.propsByKey[J].required;if(this.index){for(let H of this.index)if(m6(J,H.signature))X=X?.and(H.value)??H.value}if(this.sequence&&m6(J,R.intrinsic.nonNegativeIntegerString))if(d(J,"root")){if(this.sequence.variadic)X=X?.and(this.sequence.element)??this.sequence.element}else{let H=Number.parseInt(J);if(H<this.sequence.prevariadic.length){let Q=this.sequence.prevariadic[H].node;X=X?.and(Q)??Q,Y||=H<this.sequence.prefixLength}else if(this.sequence.variadic){let Q=this.$.node("union",this.sequence.variadicOrPostfix);X=X?.and(Q)??Q}}if(!X){if(this.sequence?.variadic&&d(J,"root")&&J.extends(R.intrinsic.number))return L(cL(J.expression,this.sequence.expression));return L(vU(this.expression,[J]))}let G=X.get(...$);return Y?G:G.or(R.intrinsic.undefined)}pick(...W){return this.assertHasKeys(W),this.$.node("structure",this.filterKeys("pick",W))}omit(...W){return this.assertHasKeys(W),this.$.node("structure",this.filterKeys("omit",W))}optionalize(){let{required:W,...$}=this.inner;return this.$.node("structure",{...$,optional:this.props.map((X)=>X.hasKind("required")?this.$.node("optional",X.inner):X)})}require(){let{optional:W,...$}=this.inner;return this.$.node("structure",{...$,required:this.props.map((X)=>X.hasKind("optional")?{key:X.key,value:X.value}:X)})}merge(W){let $=this.filterKeys("omit",[W.keyof()]);if(W.required)$.required=M0($.required,W.required);if(W.optional)$.optional=M0($.optional,W.optional);if(W.index)$.index=M0($.index,W.index);if(W.sequence)$.sequence=W.sequence;if(W.undeclared)$.undeclared=W.undeclared;else delete $.undeclared;return this.$.node("structure",$)}filterKeys(W,$){let X=mY(this.inner),Y=(J)=>{let G=$.some((H)=>m6(J,H));return W==="pick"?G:!G};if(X.required)X.required=X.required.filter((J)=>Y(J.key));if(X.optional)X.optional=X.optional.filter((J)=>Y(J.key));if(X.index)X.index=X.index.filter((J)=>Y(J.signature));return X}traverseAllows=(W,$)=>this._traverse("Allows",W,$);traverseApply=(W,$)=>this._traverse("Apply",W,$);_traverse=(W,$,X)=>{let Y=X?.currentErrorCount??0;for(let J=0;J<this.props.length;J++)if(W==="Allows"){if(!this.props[J].traverseAllows($,X))return!1}else if(this.props[J].traverseApply($,X),X.failFast&&X.currentErrorCount>Y)return!1;if(this.sequence){if(W==="Allows"){if(!this.sequence.traverseAllows($,X))return!1}else if(this.sequence.traverseApply($,X),X.failFast&&X.currentErrorCount>Y)return!1}if(this.index||this.undeclared==="reject"){let J=Object.keys($);J.push(...Object.getOwnPropertySymbols($));for(let G=0;G<J.length;G++){let H=J[G];if(this.index){for(let Q of this.index)if(Q.signature.traverseAllows(H,X)){if(W==="Allows"){if(!u1(H,()=>Q.value.traverseAllows($[H],X),X))return!1}else if(u1(H,()=>Q.value.traverseApply($[H],X),X),X.failFast&&X.currentErrorCount>Y)return!1}}if(this.undeclared==="reject"&&!this.declaresKey(H)){if(W==="Allows")return!1;if(X.errorFromNodeContext({code:"predicate",expected:"removed",actual:"",relativePath:[H],meta:this.meta}),X.failFast)return!1}}}if(this.structuralMorph&&X&&!X.hasError())X.queueMorphs([this.structuralMorph]);return!0};get defaultable(){return this.cacheGetter("defaultable",this.optional?.filter((W)=>W.hasDefault())??[])}declaresKey=(W)=>(W in this.propsByKey)||this.index?.some(($)=>$.signature.allows(W))||this.sequence!==void 0&&R.intrinsic.nonNegativeIntegerString.allows(W);_compileDeclaresKey(W){let $=[];if(this.props.length)$.push(`k in ${this.propsByKeyReference}`);if(this.index)for(let X of this.index)$.push(W.invoke(X.signature,{kind:"Allows",arg:"k"}));if(this.sequence)$.push("$ark.intrinsic.nonNegativeIntegerString.allows(k)");return $.join(" || ")||"false"}get structuralMorph(){return this.cacheGetter("structuralMorph",mL(this))}structuralMorphRef=this.structuralMorph&&c0(this.structuralMorph);compile(W){if(W.traversalKind==="Apply")W.initializeErrorCount();for(let $ of this.props)if(W.check($),W.traversalKind==="Apply")W.returnIfFailFast();if(this.sequence){if(W.check(this.sequence),W.traversalKind==="Apply")W.returnIfFailFast()}if(this.index||this.undeclared==="reject")W.const("keys","Object.keys(data)"),W.line("keys.push(...Object.getOwnPropertySymbols(data))"),W.for("i < keys.length",()=>this.compileExhaustiveEntry(W));if(W.traversalKind==="Allows")return W.return(!0);if(this.structuralMorphRef)W.if("ctx && !ctx.hasError()",()=>{return W.line("ctx.queueMorphs(["),pL(W,this),W.line("])")})}compileExhaustiveEntry(W){if(W.const("k","keys[i]"),this.index)for(let $ of this.index)W.if(`${W.invoke($.signature,{arg:"k",kind:"Allows"})}`,()=>W.traverseKey("k","data[k]",$.value));if(this.undeclared==="reject")W.if(`!(${this._compileDeclaresKey(W)})`,()=>{if(W.traversalKind==="Allows")return W.return(!1);return W.line(`ctx.errorFromNodeContext({ code: "predicate", expected: "removed", actual: "", relativePath: [k], meta: ${this.compiledMeta} })`).if("ctx.failFast",()=>W.return())});return W}reduceJsonSchema(W,$){switch(W.type){case"object":return this.reduceObjectJsonSchema(W,$);case"array":let X=this.sequence?.reduceJsonSchema(W,$)??W;if(this.props.length||this.index)return $.fallback.arrayObject({code:"arrayObject",base:X,object:this.reduceObjectJsonSchema({type:"object"},$)});return X;default:return y0.throwInternalOperandError("structure",W)}}reduceObjectJsonSchema(W,$){if(this.props.length){W.properties={};for(let X of this.props){let Y=X.value.toJsonSchemaRecurse($);if(typeof X.key==="symbol"){$.fallback.symbolKey({code:"symbolKey",base:W,key:X.key,value:Y,optional:X.optional});continue}if(X.hasDefault()){let J=typeof X.default==="function"?X.default():X.default;Y.default=R.intrinsic.jsonData.allows(J)?J:$.fallback.defaultValue({code:"defaultValue",base:Y,value:J})}W.properties[X.key]=Y}if(this.requiredKeys.length&&W.properties)W.required=this.requiredKeys.filter((X)=>typeof X==="string"&&(X in W.properties))}if(this.index)for(let X of this.index){let Y=X.value.toJsonSchemaRecurse($);if(X.signature.equals(R.intrinsic.string)){W.additionalProperties=Y;continue}for(let J of X.signature.branches){if(!J.extends(R.intrinsic.string)){W=$.fallback.symbolKey({code:"symbolKey",base:W,key:null,value:Y,optional:!1});continue}let G={type:"string"};if(J.hasKind("morph"))G=$.fallback.morph({code:"morph",base:J.in.toJsonSchemaRecurse($),out:J.out.toJsonSchemaRecurse($)});if(!J.hasKind("intersection"))return O0(`Unexpected index branch kind ${J.kind}.`);let{pattern:H}=J.inner;if(H){let Q=Object.assign(G,{pattern:H[0].rule});for(let z=1;z<H.length;z++)G=$.fallback.patternIntersection({code:"patternIntersection",base:Q,pattern:H[z].rule});W.patternProperties??={},W.patternProperties[Q.pattern]=Y}}}if(this.undeclared&&!W.additionalProperties)W.additionalProperties=!1;return W}}var V7={},gL=(W)=>{let $="";for(let X=0;X<W.defaultable.length;X++)$+=W.defaultable[X].defaultValueMorphRef;if(W.sequence?.defaultValueMorphsReference)$+=W.sequence?.defaultValueMorphsReference;if(W.undeclared==="delete"){if($+="delete !(",W.required)for(let X of W.required)$+=X.compiledKey+" | ";if(W.optional)for(let X of W.optional)$+=X.compiledKey+" | ";if(W.index)for(let X of W.index)$+=X.signature.id+" | ";if(W.sequence)if(W.sequence.maxLength===null)$+=r.nonNegativeIntegerString.id;else for(let X=0;X<W.sequence.tuple.length;X++)$+=X+" | ";$+=")"}return $},mL=(W)=>{let $=gL(W);if(!$)return;if(V7[$])return V7[$];let X=(Y,J)=>{for(let G=0;G<W.defaultable.length;G++)if(!(W.defaultable[G].key in Y))W.defaultable[G].defaultValueMorph(Y,J);if(W.sequence?.defaultables)for(let G=Y.length-W.sequence.prefixLength;G<W.sequence.defaultables.length;G++)W.sequence.defaultValueMorphs[G](Y,J);if(W.undeclared==="delete"){for(let G in Y)if(!W.declaresKey(G))delete Y[G]}return Y};return V7[$]=X},pL=(W,$)=>{let Y=`(data${$.defaultable.some((J)=>J.defaultValueMorph.length===2)||$.sequence?.defaultValueMorphs.some((J)=>J.length===2)?", ctx":""})`;return W.block(`${Y} => `,(J)=>{for(let G=0;G<$.defaultable.length;G++){let{serializedKey:H,defaultValueMorphRef:Q}=$.defaultable[G];J.if(`!(${H} in data)`,(z)=>z.line(`${Q}${Y}`))}if($.sequence?.defaultables)J.for(`i < ${$.sequence.defaultables.length}`,(G)=>G.set("data[i]",5),`data.length - ${$.sequence.prefixLength}`);if($.undeclared==="delete")J.forIn("data",(G)=>G.if(`!(${$._compileDeclaresKey(G)})`,(H)=>H.line("delete data[k]")));return J.return("data")})},O7={implementation:hL,Node:yU},uL=(W)=>{if(d(W,"root")&&W.hasKind("unit"))W=W.unit;if(typeof W==="number")W=`${W}`;return W},cL=(W,$)=>`${W} is not allowed as an array index on ${$}. Use the 'nonNegativeIntegerString' keyword instead.`,aY=(W,$,X)=>{let[Y,J]=HT(W.branches,(H)=>H.hasKind("unit"));if(!Y.length)return{index:X.node("index",{signature:W,value:$})};let G={};for(let H of Y){let Q=X.node("required",{key:H.unit,value:$});G[Q.kind]=M0(G[Q.kind],Q)}if(J.length)G.index=X.node("index",{signature:J,value:$});return G},dL=(W)=>d(W,"root")?W.expression:X0(W),vU=(W,$)=>`Key${$.length===1?"":"s"} ${$.map(dL).join(", ")} ${$.length===1?"does":"do"} not exist on ${W}`;var C$={...QU,alias:p6.implementation,domain:tY.implementation,unit:U7.implementation,proto:u6.implementation,union:T7.implementation,morph:z7.implementation,intersection:Q7.implementation,divisor:i5.implementation,pattern:$7.implementation,predicate:o5.implementation,required:M7.implementation,optional:h6.implementation,index:w7.implementation,sequence:_7.implementation,structure:O7.implementation};R.defaultConfig=DT(Object.assign($0(C$,(W,$)=>[W,$.defaults]),{jitless:ET(),clone:KT,onUndeclaredKey:"ignore",exactOptionalPropertyTypes:!0,numberAllowsNaN:!1,dateAllowsInvalid:!1,onFail:null,keywords:{},toJsonSchema:y0.defaultConfig}));R.resolvedConfig=j6(R.defaultConfig,R.config);var MU={...zU,alias:p6.Node,domain:tY.Node,unit:U7.Node,proto:u6.Node,union:T7.Node,morph:z7.Node,intersection:Q7.Node,divisor:i5.Node,pattern:$7.Node,predicate:o5.Node,required:M7.Node,optional:h6.Node,index:w7.Node,sequence:_7.Node,structure:O7.Node};class j$ extends q5{get[j1](){return"module"}}var K7=(W,$)=>new j$($0(W,(X,Y)=>[X,d(Y,"module")?K7(Y,$):$.bindReference(Y)]));var lL=(W)=>C0(W)?W:("branches"in W)&&C0(W.branches)?W.branches:void 0,oL=(W,$)=>L(`Node of kind ${$} is not valid as a ${W} definition`),hU=(W)=>`#${W} duplicates public alias ${W}`,L7={};R.ambient??={};var gU,pU="function $",iL=(W)=>uU(W,cU(W)),uU=(W,$)=>{let X=$.write(pU,4),Y=$.compile()();for(let J of W){if(J.precompilation)continue;if(J.traverseAllows=Y[`${J.id}Allows`].bind(Y),J.isRoot()&&!J.allowsRequiresContext)J.allows=J.traverseAllows;if(J.traverseApply=Y[`${J.id}Apply`].bind(Y),Y[`${J.id}Optimistic`])J.traverseOptimistic=Y[`${J.id}Optimistic`].bind(Y);J.precompilation=X}},cU=(W)=>new gY().return(W.reduce(($,X)=>{let Y=new I6({kind:"Allows"}).indent();X.compile(Y);let J=Y.write(`${X.id}Allows`),G=new I6({kind:"Apply"}).indent();X.compile(G);let H=G.write(`${X.id}Apply`),Q=`${$}${J},
123
+ Right: ${$}`;var SL=Y0({kind:"unit",hasAssociatedError:!0,keys:{unit:{preserveUndefined:!0,serialize:(W)=>W instanceof Date?W.toISOString():zW(W)}},normalize:(W)=>W,defaults:{description:(W)=>X0(W.unit),problem:({expected:W,actual:$})=>`${W===$?`must be reference equal to ${W} (serialized to the same value)`:`must be ${W} (was ${$})`}`},intersections:{unit:(W,$)=>P.init("unit",W,$),...cW("unit",(W,$)=>{if($.allows(W.unit))return W;let X=$.hasKind("intersection")?$.basis:$;if(X){let Y=X.hasKind("domain")?X:B.intrinsic.object;if(W.domain!==Y.domain){let J=W.domain==="undefined"||W.domain==="null"||W.domain==="boolean"?W.domain:B.intrinsic[W.domain];return P.init("domain",J,Y)}}return P.init("assignability",W,$.hasKind("intersection")?$.children.find((Y)=>!Y.allows(W.unit)):$)})}});class kU extends Z8{compiledValue=this.json.unit;serializedValue=typeof this.unit==="string"||this.unit instanceof Date?JSON.stringify(this.compiledValue):`${this.compiledValue}`;compiledCondition=CU(this.unit,this.serializedValue);compiledNegation=CU(this.unit,this.serializedValue,"negated");expression=X0(this.unit);domain=Q1(this.unit);get defaultShortDescription(){return this.domain==="object"?m1.object:this.description}innerToJsonSchema(W){return this.unit===null?{type:"null"}:B.intrinsic.jsonPrimitive.allows(this.unit)?{const:this.unit}:W.fallback.unit({code:"unit",base:{},unit:this.unit})}traverseAllows=this.unit instanceof Date?(W)=>W instanceof Date&&W.toISOString()===this.compiledValue:Number.isNaN(this.unit)?(W)=>Number.isNaN(W):(W)=>W===this.unit}var U7={implementation:SL,Node:kU},CU=(W,$,X)=>{if(W instanceof Date){let Y=`data instanceof Date && data.toISOString() === ${$}`;return X?`!(${Y})`:Y}if(Number.isNaN(W))return`${X?"!":""}Number.isNaN(data)`;return`data ${X?"!":"="}== ${$}`};var qL=Y0({kind:"index",hasAssociatedError:!1,intersectionIsOpen:!0,keys:{signature:{child:!0,parse:(W,$)=>{let X=$.$.parseSchema(W);if(!X.extends(B.intrinsic.key))return L(kL(X.expression));let Y=X.branches.filter((J)=>J.hasKind("unit"));if(Y.length)return L(CL(Y.map((J)=>X0(J.unit))));return X}},value:{child:!0,parse:(W,$)=>$.$.parseSchema(W)}},normalize:(W)=>W,defaults:{description:(W)=>`[${W.signature.expression}]: ${W.value.description}`},intersections:{index:(W,$,X)=>{if(W.signature.equals($.signature)){let Y=x0(W.value,$.value,X),J=Y instanceof P?B.intrinsic.never.internal:Y;return X.$.node("index",{signature:W.signature,value:J})}if(W.signature.extends($.signature)&&W.value.subsumes($.value))return $;if($.signature.extends(W.signature)&&$.value.subsumes(W.value))return W;return null}}});class IU extends FW{impliedBasis=B.intrinsic.object.internal;expression=`[${this.signature.expression}]: ${this.value.expression}`;flatRefs=M0(this.value.flatRefs.map((W)=>SW([this.signature,...W.path],W.node)),SW([this.signature],this.value));traverseAllows=(W,$)=>E8(W).every((X)=>{if(this.signature.traverseAllows(X[0],$))return u1(X[0],()=>this.value.traverseAllows(X[1],$),$);return!0});traverseApply=(W,$)=>{for(let X of E8(W))if(this.signature.traverseAllows(X[0],$))u1(X[0],()=>this.value.traverseApply(X[1],$),$)};_transform(W,$){$.path.push(this.signature);let X=super._transform(W,$);return $.path.pop(),X}compile(){}}var w7={implementation:qL,Node:IU},CL=(W)=>`Index keys ${W.join(", ")} should be specified as named props.`,kL=(W)=>`Indexed key definition '${W}' must be a string or symbol`;var IL=Y0({kind:"required",hasAssociatedError:!0,intersectionIsOpen:!0,keys:{key:{},value:{child:!0,parse:(W,$)=>$.$.parseSchema(W)}},normalize:(W)=>W,defaults:{description:(W)=>`${W.compiledKey}: ${W.value.description}`,expected:(W)=>W.missingValueDescription,actual:()=>"missing"},intersections:{required:b6,optional:b6}});class jU extends y6{expression=`${this.compiledKey}: ${this.value.expression}`;errorContext=Object.freeze({code:"required",missingValueDescription:this.value.defaultShortDescription,relativePath:[this.key],meta:this.meta});compiledErrorContext=g2(this.errorContext)}var M7={implementation:IL,Node:jU};var jL=Y0({kind:"sequence",hasAssociatedError:!1,collapsibleKey:"variadic",keys:{prefix:{child:!0,parse:(W,$)=>{if(W.length===0)return;return W.map((X)=>$.$.parseSchema(X))}},optionals:{child:!0,parse:(W,$)=>{if(W.length===0)return;return W.map((X)=>$.$.parseSchema(X))}},defaultables:{child:(W)=>W.map(($)=>$[0]),parse:(W,$)=>{if(W.length===0)return;return W.map((X)=>{let Y=$.$.parseSchema(X[0]);return g6(Y,X[1],null),[Y,X[1]]})},serialize:(W)=>W.map(($)=>[$[0].collapsibleJson,zW($[1])])},variadic:{child:!0,parse:(W,$)=>$.$.parseSchema(W,$)},minVariadicLength:{parse:(W)=>W===0?void 0:W},postfix:{child:!0,parse:(W,$)=>{if(W.length===0)return;return W.map((X)=>$.$.parseSchema(X))}}},normalize:(W)=>{if(typeof W==="string")return{variadic:W};if("variadic"in W||"prefix"in W||"defaultables"in W||"optionals"in W||"postfix"in W||"minVariadicLength"in W){if(W.postfix?.length){if(!W.variadic)return L(vL);if(W.optionals?.length||W.defaultables?.length)return L(D7)}if(W.minVariadicLength&&!W.variadic)return L("minVariadicLength may not be specified without a variadic element");return W}return{variadic:W}},reduce:(W,$)=>{let X=W.minVariadicLength??0,Y=W.prefix?.slice()??[],J=W.defaultables?.slice()??[],G=W.optionals?.slice()??[],H=W.postfix?.slice()??[];if(W.variadic){while(G.at(-1)?.equals(W.variadic))G.pop();if(G.length===0&&J.length===0)while(Y.at(-1)?.equals(W.variadic))Y.pop(),X++;while(H[0]?.equals(W.variadic))H.shift(),X++}else if(G.length===0&&J.length===0)Y.push(...H.splice(0));if(X!==W.minVariadicLength||W.prefix&&W.prefix.length!==Y.length)return $.node("sequence",{...W,prefix:Y,defaultables:J,optionals:G,postfix:H,minVariadicLength:X},{prereduced:!0})},defaults:{description:(W)=>{if(W.isVariadicOnly)return`${W.variadic.nestableExpression}[]`;return`[${W.tuple.map((X)=>X.kind==="defaultables"?`${X.node.nestableExpression} = ${X0(X.default)}`:X.kind==="optionals"?`${X.node.nestableExpression}?`:X.kind==="variadic"?`...${X.node.nestableExpression}[]`:X.node.expression).join(", ")}]`}},intersections:{sequence:(W,$,X)=>{let Y=c6({l:W.tuple,r:$.tuple,disjoint:new P,result:[],fixedVariants:[],ctx:X}),J=Y.disjoint.length===0?[Y,...Y.fixedVariants]:Y.fixedVariants;return J.length===0?Y.disjoint:J.length===1?X.$.node("sequence",fU(J[0].result)):X.$.node("union",J.map((G)=>({proto:Array,sequence:fU(G.result)})))}}});class PU extends FW{impliedBasis=B.intrinsic.Array.internal;tuple=xL(this.inner);prefixLength=this.prefix?.length??0;defaultablesLength=this.defaultables?.length??0;optionalsLength=this.optionals?.length??0;postfixLength=this.postfix?.length??0;defaultablesAndOptionals=[];prevariadic=this.tuple.filter((W)=>{if(W.kind==="defaultables"||W.kind==="optionals")return this.defaultablesAndOptionals.push(W.node),!0;return W.kind==="prefix"});variadicOrPostfix=H2(this.variadic&&[this.variadic],this.postfix);flatRefs=this.addFlatRefs();addFlatRefs(){return u5(this.flatRefs,this.prevariadic.flatMap((W,$)=>M0(W.node.flatRefs.map((X)=>SW([`${$}`,...X.path],X.node)),SW([`${$}`],W.node)))),u5(this.flatRefs,this.variadicOrPostfix.flatMap((W)=>M0(W.flatRefs.map(($)=>SW([B.intrinsic.nonNegativeIntegerString.internal,...$.path],$.node)),SW([B.intrinsic.nonNegativeIntegerString.internal],W)))),this.flatRefs}isVariadicOnly=this.prevariadic.length+this.postfixLength===0;minVariadicLength=this.inner.minVariadicLength??0;minLength=this.prefixLength+this.minVariadicLength+this.postfixLength;minLengthNode=this.minLength===0?null:this.$.node("minLength",this.minLength);maxLength=this.variadic?null:this.tuple.length;maxLengthNode=this.maxLength===null?null:this.$.node("maxLength",this.maxLength);impliedSiblings=this.minLengthNode?this.maxLengthNode?[this.minLengthNode,this.maxLengthNode]:[this.minLengthNode]:this.maxLengthNode?[this.maxLengthNode]:[];defaultValueMorphs=PL(this);defaultValueMorphsReference=this.defaultValueMorphs.length?c0(this.defaultValueMorphs):void 0;elementAtIndex(W,$){if($<this.prevariadic.length)return this.tuple[$];let X=W.length-this.postfixLength;if($>=X)return{kind:"postfix",node:this.postfix[$-X]};return{kind:"variadic",node:this.variadic??V0(`Unexpected attempt to access index ${$} on ${this}`)}}traverseAllows=(W,$)=>{for(let X=0;X<W.length;X++)if(!this.elementAtIndex(W,X).node.traverseAllows(W[X],$))return!1;return!0};traverseApply=(W,$)=>{let X=0;for(;X<W.length;X++)u1(X,()=>this.elementAtIndex(W,X).node.traverseApply(W[X],$),$)};get element(){return this.cacheGetter("element",this.$.node("union",this.children))}compile(W){if(this.prefix)for(let[$,X]of this.prefix.entries())W.traverseKey(`${$}`,`data[${$}]`,X);for(let[$,X]of this.defaultablesAndOptionals.entries()){let Y=`${$+this.prefixLength}`;W.if(`${Y} >= ${W.data}.length`,()=>W.traversalKind==="Allows"?W.return(!0):W.return()),W.traverseKey(Y,`data[${Y}]`,X)}if(this.variadic){if(this.postfix)W.const("firstPostfixIndex",`${W.data}.length${this.postfix?`- ${this.postfix.length}`:""}`);if(W.for(`i < ${this.postfix?"firstPostfixIndex":"data.length"}`,()=>W.traverseKey("i","data[i]",this.variadic),this.prevariadic.length),this.postfix)for(let[$,X]of this.postfix.entries()){let Y=`firstPostfixIndex + ${$}`;W.traverseKey(Y,`data[${Y}]`,X)}}if(W.traversalKind==="Allows")W.return(!0)}_transform(W,$){$.path.push(B.intrinsic.nonNegativeIntegerString.internal);let X=super._transform(W,$);return $.path.pop(),X}expression=this.description;reduceJsonSchema(W,$){if(this.prevariadic.length)W.prefixItems=this.prevariadic.map((X)=>{let Y=X.node.toJsonSchemaRecurse($);if(X.kind==="defaultables"){let J=typeof X.default==="function"?X.default():X.default;Y.default=B.intrinsic.jsonData.allows(J)?J:$.fallback.defaultValue({code:"defaultValue",base:Y,value:J})}return Y});if(this.minLength)W.minItems=this.minLength;if(this.variadic){let X=Object.assign(W,{items:this.variadic.toJsonSchemaRecurse($)});if(this.maxLength)X.maxItems=this.maxLength;if(this.postfix){let Y=this.postfix.map((J)=>J.toJsonSchemaRecurse($));W=$.fallback.arrayPostfix({code:"arrayPostfix",base:X,elements:Y})}}else W.items=!1,delete W.maxItems;return W}}var fL={},PL=(W)=>{if(!W.defaultables)return[];let $=[],X="[",Y=W.prefixLength+W.defaultablesLength-1;for(let J=W.prefixLength;J<=Y;J++){let[G,H]=W.defaultables[J-W.prefixLength];$.push(H7(J,G,H)),X+=`${J}: ${G.id} = ${zW(H)}, `}return X+="]",fL[X]??=$},_7={implementation:jL,Node:PU},xL=(W)=>{let $=[];if(W.prefix)for(let X of W.prefix)$.push({kind:"prefix",node:X});if(W.defaultables)for(let[X,Y]of W.defaultables)$.push({kind:"defaultables",node:X,default:Y});if(W.optionals)for(let X of W.optionals)$.push({kind:"optionals",node:X});if(W.variadic)$.push({kind:"variadic",node:W.variadic});if(W.postfix)for(let X of W.postfix)$.push({kind:"postfix",node:X});return $},fU=(W)=>W.reduce(($,X)=>{if(X.kind==="variadic")$.variadic=X.node;else if(X.kind==="defaultables")$.defaultables=M0($.defaultables,[[X.node,X.default]]);else $[X.kind]=M0($[X.kind],X.node);return $},{}),D7="A postfix required element cannot follow an optional or defaultable element",vL="A postfix element requires a variadic element",c6=(W)=>{let[$,...X]=W.l,[Y,...J]=W.r;if(!$||!Y)return W;let G=X.at(-1)?.kind==="postfix",H=J.at(-1)?.kind==="postfix",Q=$.kind==="prefix"||Y.kind==="prefix"?"prefix":$.kind==="postfix"||Y.kind==="postfix"?"postfix":$.kind==="variadic"&&Y.kind==="variadic"?"variadic":G||H?"prefix":$.kind==="defaultables"||Y.kind==="defaultables"?"defaultables":"optionals";if($.kind==="prefix"&&Y.kind==="variadic"&&H){let U=c6({...W,fixedVariants:[],r:J.map((M)=>({...M,kind:"prefix"}))});if(U.disjoint.length===0)W.fixedVariants.push(U)}else if(Y.kind==="prefix"&&$.kind==="variadic"&&G){let U=c6({...W,fixedVariants:[],l:X.map((M)=>({...M,kind:"prefix"}))});if(U.disjoint.length===0)W.fixedVariants.push(U)}let z=x0($.node,Y.node,W.ctx);if(z instanceof P)if(Q==="prefix"||Q==="postfix")W.disjoint.push(...z.withPrefixKey(Q==="prefix"?W.result.length:`-${X.length+1}`,"required")),W.result=[...W.result,{kind:Q,node:B.intrinsic.never.internal}];else if(Q==="optionals"||Q==="defaultables")return W;else return c6({...W,fixedVariants:[],l:X.map((U)=>({...U,kind:"prefix"})),r:X.map((U)=>({...U,kind:"prefix"}))});else if(Q==="defaultables"){if($.kind==="defaultables"&&Y.kind==="defaultables"&&$.default!==Y.default)L(G7($.default,Y.default));W.result=[...W.result,{kind:Q,node:z,default:$.kind==="defaultables"?$.default:Y.kind==="defaultables"?Y.default:V0(`Unexpected defaultable intersection from ${$.kind} and ${Y.kind} elements.`)}]}else W.result=[...W.result,{kind:Q,node:z}];let F=W.l.length,T=W.r.length;if($.kind!=="variadic"||F>=T&&(Y.kind==="variadic"||T===1))W.l=X;if(Y.kind!=="variadic"||T>=F&&($.kind==="variadic"||F===1))W.r=J;return c6(W)};var bU=(W)=>($)=>{if($.props.length||$.index){let X=$.index?.map((J)=>J[W])??[];for(let J of $.props)X.push(J[W]);if($.undeclared)X.push(`+ (undeclared): ${$.undeclared}`);let Y=`{ ${X.join(", ")} }`;return $.sequence?`${Y} & ${$.sequence.description}`:Y}return $.sequence?.description??"{}"},bL=bU("description"),yL=bU("expression"),xU=(W,$,X)=>{let Y=W.required?"required":"optional";if(!$.signature.allows(W.key))return null;let J=c1(W.value,$.value,X);if(J instanceof P)return Y==="optional"?X.node("optional",{key:W.key,value:B.intrinsic.never.internal}):J.withPrefixKey(W.key,W.kind);return null},hL=Y0({kind:"structure",hasAssociatedError:!1,normalize:(W)=>W,applyConfig:(W,$)=>{if(!W.undeclared&&$.onUndeclaredKey!=="ignore")return{...W,undeclared:$.onUndeclaredKey};return W},keys:{required:{child:!0,parse:R1("required"),reduceIo:(W,$,X)=>{$.required=M0($.required,X.map((Y)=>Y[W]));return}},optional:{child:!0,parse:R1("optional"),reduceIo:(W,$,X)=>{if(W==="in"){$.optional=X.map((Y)=>Y.in);return}for(let Y of X)$[Y.outProp.kind]=M0($[Y.outProp.kind],Y.outProp.out)}},index:{child:!0,parse:R1("index")},sequence:{child:!0,parse:R1("sequence")},undeclared:{parse:(W)=>W==="ignore"?void 0:W,reduceIo:(W,$,X)=>{if(X!=="delete")return;if(W==="in")delete $.undeclared;else $.undeclared="reject"}}},defaults:{description:bL},intersections:{structure:(W,$,X)=>{let Y={...W.inner},J={...$.inner},G=new P;if(W.undeclared){let z=W.keyof();for(let F of $.requiredKeys)if(!z.allows(F))G.add("presence",B.intrinsic.never.internal,$.propsByKey[F].value,{path:[F]});if(J.optional)J.optional=J.optional.filter((F)=>z.allows(F.key));if(J.index)J.index=J.index.flatMap((F)=>{if(F.signature.extends(z))return F;let T=c1(z,F.signature,X.$);if(T instanceof P)return[];let U=aY(T,F.value,X.$);if(U.required)J.required=H2(J.required,U.required);if(U.optional)J.optional=H2(J.optional,U.optional);return U.index??[]})}if($.undeclared){let z=$.keyof();for(let F of W.requiredKeys)if(!z.allows(F))G.add("presence",W.propsByKey[F].value,B.intrinsic.never.internal,{path:[F]});if(Y.optional)Y.optional=Y.optional.filter((F)=>z.allows(F.key));if(Y.index)Y.index=Y.index.flatMap((F)=>{if(F.signature.extends(z))return F;let T=c1(z,F.signature,X.$);if(T instanceof P)return[];let U=aY(T,F.value,X.$);if(U.required)Y.required=H2(Y.required,U.required);if(U.optional)Y.optional=H2(Y.optional,U.optional);return U.index??[]})}let H={};if(W.undeclared||$.undeclared)H.undeclared=W.undeclared==="reject"||$.undeclared==="reject"?"reject":"delete";let Q=Z$({kind:"structure",baseInner:H,l:S$(Y),r:S$(J),roots:[],ctx:X});if(Q instanceof P)G.push(...Q);if(G.length)return G;return Q}},reduce:(W,$)=>{if(W.index){if(!(W.required||W.optional))return;let X=!1,Y=W.required??[],J=W.optional??[],G=[...J];for(let H of W.index){for(let Q of Y){let z=xU(Q,H,$);if(z instanceof P)return z}for(let[Q,z]of J.entries()){let F=xU(z,H,$);if(F instanceof P)return F;if(F===null)continue;G[Q]=F,X=!0}}if(X)return $.node("structure",{...W,optional:G},{prereduced:!0})}}});class yU extends FW{impliedBasis=B.intrinsic.object.internal;impliedSiblings=this.children.flatMap((W)=>W.impliedSiblings??[]);props=H2(this.required,this.optional);propsByKey=$0(this.props,(W,$)=>[$.key,$]);propsByKeyReference=c0(this.propsByKey);expression=yL(this);requiredKeys=this.required?.map((W)=>W.key)??[];optionalKeys=this.optional?.map((W)=>W.key)??[];literalKeys=[...this.requiredKeys,...this.optionalKeys];_keyof;keyof(){if(this._keyof)return this._keyof;let W=this.$.units(this.literalKeys).branches;if(this.index)for(let{signature:$}of this.index)W=W.concat($.branches);return this._keyof=this.$.node("union",W)}map(W){return this.$.node("structure",this.props.flatMap(W).reduce(($,X)=>{let Y=this.propsByKey[X.key];if(P0(X)){if(X.kind!=="required"&&X.kind!=="optional")return L(`Map result must have kind "required" or "optional" (was ${X.kind})`);return $[X.kind]=M0($[X.kind],X),$}let J=X.kind??Y?.kind??"required",G=$0(X,(H,Q)=>(H in h6.implementation.keys)?[H,Q]:[]);return $[J]=M0($[J],this.$.node(J,G)),$},{}))}assertHasKeys(W){let $=W.filter((X)=>!m6(X,this.keyof()));if($.length)return L(vU(this.expression,$))}get(W,...$){let X,Y=!1,J=uL(W);if((typeof J==="string"||typeof J==="symbol")&&this.propsByKey[J])X=this.propsByKey[J].value,Y=this.propsByKey[J].required;if(this.index){for(let H of this.index)if(m6(J,H.signature))X=X?.and(H.value)??H.value}if(this.sequence&&m6(J,B.intrinsic.nonNegativeIntegerString))if(d(J,"root")){if(this.sequence.variadic)X=X?.and(this.sequence.element)??this.sequence.element}else{let H=Number.parseInt(J);if(H<this.sequence.prevariadic.length){let Q=this.sequence.prevariadic[H].node;X=X?.and(Q)??Q,Y||=H<this.sequence.prefixLength}else if(this.sequence.variadic){let Q=this.$.node("union",this.sequence.variadicOrPostfix);X=X?.and(Q)??Q}}if(!X){if(this.sequence?.variadic&&d(J,"root")&&J.extends(B.intrinsic.number))return L(cL(J.expression,this.sequence.expression));return L(vU(this.expression,[J]))}let G=X.get(...$);return Y?G:G.or(B.intrinsic.undefined)}pick(...W){return this.assertHasKeys(W),this.$.node("structure",this.filterKeys("pick",W))}omit(...W){return this.assertHasKeys(W),this.$.node("structure",this.filterKeys("omit",W))}optionalize(){let{required:W,...$}=this.inner;return this.$.node("structure",{...$,optional:this.props.map((X)=>X.hasKind("required")?this.$.node("optional",X.inner):X)})}require(){let{optional:W,...$}=this.inner;return this.$.node("structure",{...$,required:this.props.map((X)=>X.hasKind("optional")?{key:X.key,value:X.value}:X)})}merge(W){let $=this.filterKeys("omit",[W.keyof()]);if(W.required)$.required=M0($.required,W.required);if(W.optional)$.optional=M0($.optional,W.optional);if(W.index)$.index=M0($.index,W.index);if(W.sequence)$.sequence=W.sequence;if(W.undeclared)$.undeclared=W.undeclared;else delete $.undeclared;return this.$.node("structure",$)}filterKeys(W,$){let X=mY(this.inner),Y=(J)=>{let G=$.some((H)=>m6(J,H));return W==="pick"?G:!G};if(X.required)X.required=X.required.filter((J)=>Y(J.key));if(X.optional)X.optional=X.optional.filter((J)=>Y(J.key));if(X.index)X.index=X.index.filter((J)=>Y(J.signature));return X}traverseAllows=(W,$)=>this._traverse("Allows",W,$);traverseApply=(W,$)=>this._traverse("Apply",W,$);_traverse=(W,$,X)=>{let Y=X?.currentErrorCount??0;for(let J=0;J<this.props.length;J++)if(W==="Allows"){if(!this.props[J].traverseAllows($,X))return!1}else if(this.props[J].traverseApply($,X),X.failFast&&X.currentErrorCount>Y)return!1;if(this.sequence){if(W==="Allows"){if(!this.sequence.traverseAllows($,X))return!1}else if(this.sequence.traverseApply($,X),X.failFast&&X.currentErrorCount>Y)return!1}if(this.index||this.undeclared==="reject"){let J=Object.keys($);J.push(...Object.getOwnPropertySymbols($));for(let G=0;G<J.length;G++){let H=J[G];if(this.index){for(let Q of this.index)if(Q.signature.traverseAllows(H,X)){if(W==="Allows"){if(!u1(H,()=>Q.value.traverseAllows($[H],X),X))return!1}else if(u1(H,()=>Q.value.traverseApply($[H],X),X),X.failFast&&X.currentErrorCount>Y)return!1}}if(this.undeclared==="reject"&&!this.declaresKey(H)){if(W==="Allows")return!1;if(X.errorFromNodeContext({code:"predicate",expected:"removed",actual:"",relativePath:[H],meta:this.meta}),X.failFast)return!1}}}if(this.structuralMorph&&X&&!X.hasError())X.queueMorphs([this.structuralMorph]);return!0};get defaultable(){return this.cacheGetter("defaultable",this.optional?.filter((W)=>W.hasDefault())??[])}declaresKey=(W)=>(W in this.propsByKey)||this.index?.some(($)=>$.signature.allows(W))||this.sequence!==void 0&&B.intrinsic.nonNegativeIntegerString.allows(W);_compileDeclaresKey(W){let $=[];if(this.props.length)$.push(`k in ${this.propsByKeyReference}`);if(this.index)for(let X of this.index)$.push(W.invoke(X.signature,{kind:"Allows",arg:"k"}));if(this.sequence)$.push("$ark.intrinsic.nonNegativeIntegerString.allows(k)");return $.join(" || ")||"false"}get structuralMorph(){return this.cacheGetter("structuralMorph",mL(this))}structuralMorphRef=this.structuralMorph&&c0(this.structuralMorph);compile(W){if(W.traversalKind==="Apply")W.initializeErrorCount();for(let $ of this.props)if(W.check($),W.traversalKind==="Apply")W.returnIfFailFast();if(this.sequence){if(W.check(this.sequence),W.traversalKind==="Apply")W.returnIfFailFast()}if(this.index||this.undeclared==="reject")W.const("keys","Object.keys(data)"),W.line("keys.push(...Object.getOwnPropertySymbols(data))"),W.for("i < keys.length",()=>this.compileExhaustiveEntry(W));if(W.traversalKind==="Allows")return W.return(!0);if(this.structuralMorphRef)W.if("ctx && !ctx.hasError()",()=>{return W.line("ctx.queueMorphs(["),pL(W,this),W.line("])")})}compileExhaustiveEntry(W){if(W.const("k","keys[i]"),this.index)for(let $ of this.index)W.if(`${W.invoke($.signature,{arg:"k",kind:"Allows"})}`,()=>W.traverseKey("k","data[k]",$.value));if(this.undeclared==="reject")W.if(`!(${this._compileDeclaresKey(W)})`,()=>{if(W.traversalKind==="Allows")return W.return(!1);return W.line(`ctx.errorFromNodeContext({ code: "predicate", expected: "removed", actual: "", relativePath: [k], meta: ${this.compiledMeta} })`).if("ctx.failFast",()=>W.return())});return W}reduceJsonSchema(W,$){switch(W.type){case"object":return this.reduceObjectJsonSchema(W,$);case"array":let X=this.sequence?.reduceJsonSchema(W,$)??W;if(this.props.length||this.index)return $.fallback.arrayObject({code:"arrayObject",base:X,object:this.reduceObjectJsonSchema({type:"object"},$)});return X;default:return y0.throwInternalOperandError("structure",W)}}reduceObjectJsonSchema(W,$){if(this.props.length){W.properties={};for(let X of this.props){let Y=X.value.toJsonSchemaRecurse($);if(typeof X.key==="symbol"){$.fallback.symbolKey({code:"symbolKey",base:W,key:X.key,value:Y,optional:X.optional});continue}if(X.hasDefault()){let J=typeof X.default==="function"?X.default():X.default;Y.default=B.intrinsic.jsonData.allows(J)?J:$.fallback.defaultValue({code:"defaultValue",base:Y,value:J})}W.properties[X.key]=Y}if(this.requiredKeys.length&&W.properties)W.required=this.requiredKeys.filter((X)=>typeof X==="string"&&(X in W.properties))}if(this.index)for(let X of this.index){let Y=X.value.toJsonSchemaRecurse($);if(X.signature.equals(B.intrinsic.string)){W.additionalProperties=Y;continue}for(let J of X.signature.branches){if(!J.extends(B.intrinsic.string)){W=$.fallback.symbolKey({code:"symbolKey",base:W,key:null,value:Y,optional:!1});continue}let G={type:"string"};if(J.hasKind("morph"))G=$.fallback.morph({code:"morph",base:J.in.toJsonSchemaRecurse($),out:J.out.toJsonSchemaRecurse($)});if(!J.hasKind("intersection"))return V0(`Unexpected index branch kind ${J.kind}.`);let{pattern:H}=J.inner;if(H){let Q=Object.assign(G,{pattern:H[0].rule});for(let z=1;z<H.length;z++)G=$.fallback.patternIntersection({code:"patternIntersection",base:Q,pattern:H[z].rule});W.patternProperties??={},W.patternProperties[Q.pattern]=Y}}}if(this.undeclared&&!W.additionalProperties)W.additionalProperties=!1;return W}}var O7={},gL=(W)=>{let $="";for(let X=0;X<W.defaultable.length;X++)$+=W.defaultable[X].defaultValueMorphRef;if(W.sequence?.defaultValueMorphsReference)$+=W.sequence?.defaultValueMorphsReference;if(W.undeclared==="delete"){if($+="delete !(",W.required)for(let X of W.required)$+=X.compiledKey+" | ";if(W.optional)for(let X of W.optional)$+=X.compiledKey+" | ";if(W.index)for(let X of W.index)$+=X.signature.id+" | ";if(W.sequence)if(W.sequence.maxLength===null)$+=r.nonNegativeIntegerString.id;else for(let X=0;X<W.sequence.tuple.length;X++)$+=X+" | ";$+=")"}return $},mL=(W)=>{let $=gL(W);if(!$)return;if(O7[$])return O7[$];let X=(Y,J)=>{for(let G=0;G<W.defaultable.length;G++)if(!(W.defaultable[G].key in Y))W.defaultable[G].defaultValueMorph(Y,J);if(W.sequence?.defaultables)for(let G=Y.length-W.sequence.prefixLength;G<W.sequence.defaultables.length;G++)W.sequence.defaultValueMorphs[G](Y,J);if(W.undeclared==="delete"){for(let G in Y)if(!W.declaresKey(G))delete Y[G]}return Y};return O7[$]=X},pL=(W,$)=>{let Y=`(data${$.defaultable.some((J)=>J.defaultValueMorph.length===2)||$.sequence?.defaultValueMorphs.some((J)=>J.length===2)?", ctx":""})`;return W.block(`${Y} => `,(J)=>{for(let G=0;G<$.defaultable.length;G++){let{serializedKey:H,defaultValueMorphRef:Q}=$.defaultable[G];J.if(`!(${H} in data)`,(z)=>z.line(`${Q}${Y}`))}if($.sequence?.defaultables)J.for(`i < ${$.sequence.defaultables.length}`,(G)=>G.set("data[i]",5),`data.length - ${$.sequence.prefixLength}`);if($.undeclared==="delete")J.forIn("data",(G)=>G.if(`!(${$._compileDeclaresKey(G)})`,(H)=>H.line("delete data[k]")));return J.return("data")})},V7={implementation:hL,Node:yU},uL=(W)=>{if(d(W,"root")&&W.hasKind("unit"))W=W.unit;if(typeof W==="number")W=`${W}`;return W},cL=(W,$)=>`${W} is not allowed as an array index on ${$}. Use the 'nonNegativeIntegerString' keyword instead.`,aY=(W,$,X)=>{let[Y,J]=HT(W.branches,(H)=>H.hasKind("unit"));if(!Y.length)return{index:X.node("index",{signature:W,value:$})};let G={};for(let H of Y){let Q=X.node("required",{key:H.unit,value:$});G[Q.kind]=M0(G[Q.kind],Q)}if(J.length)G.index=X.node("index",{signature:J,value:$});return G},dL=(W)=>d(W,"root")?W.expression:X0(W),vU=(W,$)=>`Key${$.length===1?"":"s"} ${$.map(dL).join(", ")} ${$.length===1?"does":"do"} not exist on ${W}`;var C$={...QU,alias:p6.implementation,domain:tY.implementation,unit:U7.implementation,proto:u6.implementation,union:T7.implementation,morph:z7.implementation,intersection:Q7.implementation,divisor:i5.implementation,pattern:$7.implementation,predicate:o5.implementation,required:M7.implementation,optional:h6.implementation,index:w7.implementation,sequence:_7.implementation,structure:V7.implementation};B.defaultConfig=DT(Object.assign($0(C$,(W,$)=>[W,$.defaults]),{jitless:ET(),clone:KT,onUndeclaredKey:"ignore",exactOptionalPropertyTypes:!0,numberAllowsNaN:!1,dateAllowsInvalid:!1,onFail:null,keywords:{},toJsonSchema:y0.defaultConfig}));B.resolvedConfig=j6(B.defaultConfig,B.config);var MU={...zU,alias:p6.Node,domain:tY.Node,unit:U7.Node,proto:u6.Node,union:T7.Node,morph:z7.Node,intersection:Q7.Node,divisor:i5.Node,pattern:$7.Node,predicate:o5.Node,required:M7.Node,optional:h6.Node,index:w7.Node,sequence:_7.Node,structure:V7.Node};class j$ extends q5{get[j1](){return"module"}}var K7=(W,$)=>new j$($0(W,(X,Y)=>[X,d(Y,"module")?K7(Y,$):$.bindReference(Y)]));var lL=(W)=>C0(W)?W:("branches"in W)&&C0(W.branches)?W.branches:void 0,oL=(W,$)=>L(`Node of kind ${$} is not valid as a ${W} definition`),hU=(W)=>`#${W} duplicates public alias ${W}`,L7={};B.ambient??={};var gU,pU="function $",iL=(W)=>uU(W,cU(W)),uU=(W,$)=>{let X=$.write(pU,4),Y=$.compile()();for(let J of W){if(J.precompilation)continue;if(J.traverseAllows=Y[`${J.id}Allows`].bind(Y),J.isRoot()&&!J.allowsRequiresContext)J.allows=J.traverseAllows;if(J.traverseApply=Y[`${J.id}Apply`].bind(Y),Y[`${J.id}Optimistic`])J.traverseOptimistic=Y[`${J.id}Optimistic`].bind(Y);J.precompilation=X}},cU=(W)=>new gY().return(W.reduce(($,X)=>{let Y=new I6({kind:"Allows"}).indent();X.compile(Y);let J=Y.write(`${X.id}Allows`),G=new I6({kind:"Apply"}).indent();X.compile(G);let H=G.write(`${X.id}Apply`),Q=`${$}${J},
124
124
  ${H},
125
125
  `;if(!X.hasKind("union"))return Q;let z=new I6({kind:"Allows",optimistic:!0}).indent();X.compile(z);let F=z.write(`${X.id}Optimistic`);return`${Q}${F},
126
126
  `},`{
127
- `)+"}");class sY{config;resolvedConfig;name;get[j1](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(W,$){if(this.config=j6(R.config,$),this.resolvedConfig=j6(R.resolvedConfig,$),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(L7).length}`,this.name in L7)L(`A Scope already named ${this.name} already exists`);L7[this.name]=this;let X=Object.entries(W).map((Y)=>this.preparseOwnAliasEntry(...Y));for(let[Y,J]of X){let G=Y;if(Y[0]==="#"){if(G=Y.slice(1),G in this.aliases)L(hU(G));this.aliases[G]=J}else{if(G in this.aliases)L(hU(Y));this.aliases[G]=J,this.exportedNames.push(G)}if(!d(J,"module")&&!d(J,"generic")&&!b2(J)){let H=this.preparseOwnDefinitionFormat(J,{alias:G});this.resolutions[G]=d(H,"root")?this.bindReference(H):this.createParseContext(H).id}}gU??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[gU.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=R.intrinsic?$0(R.intrinsic,(Y,J)=>Y.startsWith("json")?[]:[Y,this.bindReference(J)]):{}}cacheGetter(W,$){return Object.defineProperty(this,W,{value:$}),$}get internal(){return this}_json;get json(){if(!this._json)this.export();return this._json}defineSchema(W){return W}generic=(...W)=>{let $=this;return(X,Y)=>new p2(W,Y?new dY(X):X,$,$,Y??null)};units=(W,$)=>{let X=[];for(let J of W)if(!X.includes(J))X.push(J);let Y=X.map((J)=>this.node("unit",{unit:J},$));return this.node("union",Y,{...$,prereduced:!0})};lazyResolutions=[];lazilyResolve(W,$){let X=this.node("alias",{reference:$??"synthetic",resolve:W},{prereduced:!0});if(!this.resolved)this.lazyResolutions.push(X);return X}schema=(W,$)=>this.finalize(this.parseSchema(W,$));parseSchema=(W,$)=>this.node(v6(W),W,$);preparseNode(W,$,X){let Y=typeof W==="string"?W:v6($,W);if(P0($)&&$.kind===Y)return $;if(Y==="alias"&&!X?.prereduced){let{reference:H}=p6.implementation.normalize($,this);if(H.startsWith("$")){let Q=this.resolveRoot(H.slice(1));$=Q,Y=Q.kind}}else if(Y==="union"&&g1($,"object")){let H=lL($);if(H?.length===1)$=H[0],Y=v6($)}if(P0($)&&$.kind===Y)return $;let G=C$[Y].normalize?.($,this)??$;if(P0(G))return G.kind===Y?G:oL(Y,G.kind);return{...X,$:this,kind:Y,def:G,prefix:X.alias??Y}}bindReference(W){let $;if(P0(W))$=W.$===this?W:new W.constructor(W.attachments,this);else $=W.$===this?W:new p2(W.params,W.bodyDef,W.$,this,W.hkt);if(!this.resolved)Object.assign(this.referencesById,$.referencesById);return $}resolveRoot(W){return this.maybeResolveRoot(W)??L(N7(W))}maybeResolveRoot(W){let $=this.maybeResolve(W);if(d($,"generic"))return;return $}maybeResolveSubalias(W){return A7(this.aliases,W)??A7(this.ambient,W)}get ambient(){return R.ambient}maybeResolve(W){let $=this.resolutions[W];if($){if(typeof $!=="string")return this.bindReference($);let Y=f1[$];if(d(Y,"root"))return this.resolutions[W]=Y;if(d(Y,"context")){if(Y.phase==="resolving")return this.node("alias",{reference:`$${W}`},{prereduced:!0});if(Y.phase==="resolved")return O0(`Unexpected resolved context for was uncached by its scope: ${X0(Y)}`);Y.phase="resolving";let J=this.bindReference(this.parseOwnDefinitionFormat(Y.def,Y));return Y.phase="resolved",f1[J.id]=J,f1[Y.id]=J,this.resolutions[W]=J}return O0(`Unexpected nodesById entry for ${$}: ${X0(Y)}`)}let X=this.aliases[W]??this.ambient?.[W];if(!X)return this.maybeResolveSubalias(W);if(X=this.normalizeRootScopeValue(X),d(X,"generic"))return this.resolutions[W]=this.bindReference(X);if(d(X,"module")){if(!X.root)L(oU(W));return this.resolutions[W]=this.bindReference(X.root)}return this.resolutions[W]=this.parse(X,{alias:W})}createParseContext(W){let $=W.id??X7(W.prefix);return f1[$]=Object.assign(W,{[j1]:"context",$:this,id:$,phase:"unresolved"})}traversal(W){return new ZW(W,this.resolvedConfig)}import(...W){return new j$($0(this.export(...W),($,X)=>[`#${$}`,X]))}precompilation;_exportedResolutions;_exports;export(...W){if(!this._exports){this._exports={};for(let X of this.exportedNames){let Y=this.aliases[X];this._exports[X]=d(Y,"module")?K7(Y,this):mU(this.maybeResolve(X))}for(let X of this.lazyResolutions)X.resolution;if(this._exportedResolutions=lU(this,this._exports),this._json=dU(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let X=cU(this.references);this.precompilation=X.write(pU,4),uU(this.references,X)}this.resolved=!0}let $=W.length?W:this.exportedNames;return new j$($0($,(X,Y)=>[Y,this._exports[Y]]))}resolve(W){return this.export()[W]}node=(W,$,X={})=>{let Y=this.preparseNode(W,$,X);if(P0(Y))return this.bindReference(Y);let J=this.createParseContext(Y),G=Y7(J),H=this.bindReference(G);return f1[J.id]=H};parse=(W,$={})=>this.finalize(this.parseDefinition(W,$));parseDefinition(W,$={}){if(d(W,"root"))return this.bindReference(W);let X=this.preparseOwnDefinitionFormat(W,$);if(d(X,"root"))return this.bindReference(X);let Y=this.createParseContext(X);f1[Y.id]=Y;let J=this.bindReference(this.parseOwnDefinitionFormat(W,Y));if(J.isCyclic)J=wU(J,Y.id);return f1[Y.id]=J,J}finalize(W){if(mU(W),!W.precompilation&&!this.resolvedConfig.jitless)iL(W.references);return W}}class E7 extends sY{parseOwnDefinitionFormat(W,$){return Y7($)}preparseOwnDefinitionFormat(W,$){return this.preparseNode(v6(W),W,$)}preparseOwnAliasEntry(W,$){return[W,$]}normalizeRootScopeValue(W){return W}}var mU=(W)=>{let $=W.references.filter((X)=>X.hasKind("alias"));for(let X of $){Object.assign(X.referencesById,X.resolution.referencesById);for(let Y of W.references)if(X.id in Y.referencesById)Object.assign(Y.referencesById,X.referencesById)}return W},dU=(W)=>$0(W,($,X)=>[$,d(X,"root")||d(X,"generic")?X.json:d(X,"module")?dU(X):O0(`Unexpected resolution ${X0(X)}`)]),A7=(W,$)=>{let X=$.indexOf(".");if(X===-1)return;let Y=$.slice(0,X),J=W[Y];if(J===void 0)return;if(!d(J,"module"))return L(nL(Y));let G=$.slice(X+1),H=J[G];if(H===void 0)return A7(J,G);if(d(H,"root")||d(H,"generic"))return H;if(d(H,"module"))return H.root??L(oU($));O0(`Unexpected resolution for alias '${$}': ${X0(H)}`)},eY=(W,$)=>new E7(W,$),d6=new E7({});var lU=(W,$)=>{let X={};for(let Y in $){let J=$[Y];if(d(J,"module")){let G=lU(W,J),H=$0(G,(Q,z)=>[`${Y}.${Q}`,z]);Object.assign(X,H)}else if(d(J,"root")||d(J,"generic"))X[Y]=J;else O0(`Unexpected scope resolution ${X0(J)}`)}return X},N7=(W)=>`'${W}' is unresolvable`,nL=(W)=>`'${W}' must reference a module to be accessed using dot syntax`,oU=(W)=>`Reference to submodule '${W}' must specify an alias`;d6.export();var{schema:E0,node:f$,defineSchema:ni,generic:UW}=d6;var B7="^(?:0|[1-9]\\d*)$",rL=new RegExp(B7),ai=c0(rL);var iU=eY({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();R.intrinsic={...iU};var nU=eY({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:B7}},{prereducedAliases:!0}).export();Object.assign(R.intrinsic,nU);var tL=eY({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),r={...iU,...nU,...tL,emptyStructure:f$("structure",{},{prereduced:!0})};R.intrinsic={...r};var tU=(W)=>typeof W==="string"&&W[0]==="d"&&(W[1]==="'"||W[1]==='"')&&W.at(-1)===W[1],rU=(W)=>W.toString()!=="Invalid Date",aU=(W)=>W.slice(2,-1),R7=(W)=>`'${W}' could not be parsed by the Date constructor`,sU=(W,$)=>aL(W,$),aL=(W,$)=>{let X=new Date(W);if(rU(X))return X;let Y=IT(W);if(Y!==void 0){let J=new Date(Y);if(rU(J))return J}return $?L($===!0?R7(W):$):void 0};var Z7=(W,$)=>{let X=W.scanner.shiftUntil(sL[Ww[$]]);if(W.scanner.lookahead==="")return W.error(WA(X,$));if(W.scanner.shift(),$==="/"){try{new RegExp(X)}catch(Y){L(String(Y))}W.root=W.ctx.$.node("intersection",{domain:"string",pattern:X},{prereduced:!0})}else if(z1($,S7))W.root=W.ctx.$.node("unit",{unit:X});else{let Y=sU(X,R7(X));W.root=W.ctx.$.node("unit",{meta:X,unit:Y})}},S7={"'":1,'"':1},eU={"/":1,"'":1,'"':1},Ww={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},sL={"'":(W)=>W.lookahead==="'",'"':(W)=>W.lookahead==='"',"/":(W)=>W.lookahead==="/"},eL={'"':"double-quote","'":"single-quote","/":"forward slash"},WA=(W,$)=>`${$}${W} requires a closing ${eL[Ww[$]]}`;var $w=(W)=>`Private type references should not include '#'. Use '${W}' instead.`,W9="Optional definitions like 'string?' are only valid as properties in an object or tuple",$9="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var Xw={">":!0,">=":!0},Yw={"<":!0,"<=":!0};var P$={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},Jw=(W)=>`Unmatched )${W===""?"":` before ${W}`}`,X9=(W)=>`Missing ${W}`,Gw=(W,$)=>`Left bounds are only valid when paired with right bounds (try ...${$}${W})`,Y9=(W)=>`Left-bounded expressions must specify their limits using < or <= (was ${W})`,Hw=(W,$,X,Y)=>`An expression may have at most one left bound (parsed ${W}${P$[$]}, ${X}${P$[Y]})`;var Qw=(W,$,X)=>zw(W,$,X,[]),zw=(W,$,X,Y)=>{let J=X.parseUntilFinalizer();if(Y.push(J.root),J.finalizer===">"){if(Y.length!==$.params.length)return X.error(q7(W,$.names,Y.map((G)=>G.expression)));return Y}if(J.finalizer===",")return zw(W,$,X,Y);return J.error(X9(">"))},q7=(W,$,X)=>`${W}<${$.join(", ")}> requires exactly ${$.length} args (got ${X.length}${X.length===0?"":`: ${X.join(", ")}`})`;var C7=(W)=>{let $=W.scanner.shiftUntilNextTerminator();if($==="keyof")W.addPrefix("keyof");else W.root=XA(W,$)},$A=(W,$,X)=>{if(X.scanner.shiftUntilNonWhitespace(),X.scanner.shift()!=="<")return X.error(q7(W,$.names,[]));let J=Qw(W,$,X);return $(...J)},XA=(W,$)=>YA(W,$)??JA(W,$)??W.error($===""?W.scanner.lookahead==="#"?$w(W.shiftedByOne().scanner.shiftUntilNextTerminator()):k7(W):N7($)),YA=(W,$)=>{if(W.ctx.args?.[$]){let Y=W.ctx.args[$];if(typeof Y!=="string")return Y;return W.ctx.$.node("alias",{reference:Y},{prereduced:!0})}let X=W.ctx.$.maybeResolve($);if(d(X,"root"))return X;if(X===void 0)return;if(d(X,"generic"))return $A($,X,W);return L(`Unexpected resolution ${X0(X)}`)},JA=(W,$)=>{let X=jT($);if(X!==void 0)return W.ctx.$.node("unit",{unit:X});let Y=PT($);if(Y!==void 0)return W.ctx.$.node("unit",{unit:Y})},k7=(W)=>{let $=W.previousOperator();return $?I7($,W.scanner.unscanned):GA(W.scanner.unscanned)},I7=(W,$="")=>`Token '${W}' requires a right operand${$?` before '${$}'`:""}`,GA=(W)=>`Expected an expression${W?` before '${W}'`:""}`;var j7=(W)=>W.scanner.lookahead===""?W.error(k7(W)):W.scanner.lookahead==="("?W.shiftedByOne().reduceGroupOpen():W.scanner.lookaheadIsIn(eU)?Z7(W,W.scanner.shift()):W.scanner.lookaheadIsIn(y2)?j7(W.shiftedByOne()):W.scanner.lookahead==="d"?W.scanner.nextLookahead in S7?Z7(W,`${W.scanner.shift()}${W.scanner.shift()}`):C7(W):C7(W);class w2 extends b5{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>(this.lookahead in w2.terminatingChars))}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...y2};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(W,$)=>W===">"?$[0]==="="?$[1]==="=":$.trimStart()===""||z1($.trimStart()[0],w2.terminatingChars):W==="="?$[0]!=="=":W===","||W==="?"}var Tw=(W,$)=>{let X=HA(W,$);if(W.root.hasKind("unit")){if(typeof W.root.unit==="number"){W.reduceLeftBound(W.root.unit,X),W.unsetRoot();return}if(W.root.unit instanceof Date){let Y=`d'${W.root.description??W.root.unit.toISOString()}'`;W.unsetRoot(),W.reduceLeftBound(Y,X);return}}return zA(W,X)},Uw={"<":1,">":1,"=":1},HA=(W,$)=>W.scanner.lookaheadIs("=")?`${$}${W.scanner.shift()}`:$;var Fw=(W,$,X,Y)=>{if(X.extends(R.intrinsic.number)){if(typeof $!=="number")return L(f7(W,$,Y));return W==="=="?["min","max"]:W[0]===">"?["min"]:["max"]}if(X.extends(R.intrinsic.lengthBoundable)){if(typeof $!=="number")return L(f7(W,$,Y));return W==="=="?["exactLength"]:W[0]===">"?["minLength"]:["maxLength"]}if(X.extends(R.intrinsic.Date))return W==="=="?["after","before"]:W[0]===">"?["after"]:["before"];return L(eT(X.expression))},QA=(W)=>({rule:tU(W.limit)?aU(W.limit):W.limit,exclusive:W.comparator.length===1}),zA=(W,$)=>{let X=W.unsetRoot(),Y=W.scanner.location;W.parseOperand();let J=W.unsetRoot(),G=W.scanner.sliceChars(Y,W.scanner.location);if(W.root=X,!J.hasKind("unit")||typeof J.unit!=="number"&&!(J.unit instanceof Date))return W.error(f7($,G,"right"));let H=J.unit,Q=$.length===1,z=Fw($,typeof H==="number"?H:G,X,"right");for(let T of z)W.constrainRoot(T,$==="=="?{rule:H}:{rule:H,exclusive:Q});if(!W.branches.leftBound)return;if(!z1($,Yw))return W.error(Y9($));let F=Fw(W.branches.leftBound.comparator,W.branches.leftBound.limit,X,"left");W.constrainRoot(F[0],QA(W.branches.leftBound)),W.branches.leftBound=null},f7=(W,$,X)=>`Comparator ${X==="left"?P$[W]:W} must be ${X==="left"?"preceded":"followed"} by a corresponding literal (was ${$})`;var ww=(W)=>{W.scanner.shiftUntilNonWhitespace();let $=W.scanner.shiftUntilNextTerminator();W.root=W.root.brand($)};var _w=(W)=>{let $=W.scanner.shiftUntilNextTerminator(),X=fT($,{errorOnFail:Mw($)});if(X===0)W.error(Mw(0));W.root=W.root.constrain("divisor",X)},Mw=(W)=>`% operator must be followed by a non-zero integer literal (was ${W})`;var P7=(W)=>{let $=W.scanner.shift();return $===""?W.finalize(""):$==="["?W.scanner.shift()==="]"?W.setRoot(W.root.array()):W.error(FA):$==="|"?W.scanner.lookahead===">"?W.shiftedByOne().pushRootToBranch("|>"):W.pushRootToBranch($):$==="&"?W.pushRootToBranch($):$===")"?W.finalizeGroup():w2.lookaheadIsFinalizing($,W.scanner.unscanned)?W.finalize($):z1($,Uw)?Tw(W,$):$==="%"?_w(W):$==="#"?ww(W):($ in y2)?P7(W):W.error(J9($))},J9=(W,$="")=>`'${W}' is not allowed here${$&&` (should be ${$})`}`,FA="Missing expected ']'";var Dw=(W)=>{let $=W.unsetRoot();W.parseOperand();let X=W.unsetRoot();if(!X.hasKind("unit"))return W.error(TA(X.expression));let Y=X.unit instanceof Date?()=>new Date(X.unit):X.unit;return[$,"=",Y]},TA=(W)=>`Default value '${W}' must a literal value`;var x7=(W,$)=>{let X=$.$.maybeResolveRoot(W);if(X)return X;if(W.endsWith("[]")){let G=$.$.maybeResolveRoot(W.slice(0,-2));if(G)return G.array()}let Y=new x$(new w2(W),$),J=UA(Y);if(Y.finalizer===">")L(J9(">"));return J},UA=(W)=>{W.parseOperand();let $=l6(W).root;if(!$)return O0(`Root was unexpectedly unset after parsing string '${W.scanner.scanned}'`);if(W.finalizer==="=")$=Dw(W);else if(W.finalizer==="?")$=[$,"?"];if(W.scanner.shiftUntilNonWhitespace(),W.scanner.lookahead)L(J9(W.scanner.lookahead));return $},l6=(W)=>{while(W.finalizer===void 0)wA(W);return W},wA=(W)=>W.hasRoot()?W.parseOperator():W.parseOperand();class x${root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(W,$){this.scanner=W,this.ctx=$}error(W){return L(W)}hasRoot(){return this.root!==void 0}setRoot(W){this.root=W}unsetRoot(){let W=this.root;return this.root=void 0,W}constrainRoot(...W){this.root=this.root.constrain(W[0],W[1])}finalize(W){if(this.groups.length)return this.error(X9(")"));this.finalizeBranches(),this.finalizer=W}reduceLeftBound(W,$){let X=P$[$];if(!z1(X,Xw))return this.error(Y9($));if(this.branches.leftBound)return this.error(Hw(this.branches.leftBound.limit,this.branches.leftBound.comparator,W,X));this.branches.leftBound={comparator:X,limit:W}}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 W=this.groups.pop();if(!W)return this.error(Jw(this.scanner.unscanned));this.branches=W}addPrefix(W){this.branches.prefixes.push(W)}applyPrefixes(){while(this.branches.prefixes.length){let W=this.branches.prefixes.pop();this.root=W==="keyof"?this.root.keyof():O0(`Unexpected prefix '${W}'`)}}pushRootToBranch(W){this.assertRangeUnset(),this.applyPrefixes();let $=this.root;if(this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd($)??$,W==="&")return;if(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,W==="|")return;this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null}parseUntilFinalizer(){return l6(new x$(this.scanner,this.ctx))}parseOperator(){return P7(this)}parseOperand(){return j7(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(Gw(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 MA="An empty string is not a valid generic parameter name",G9=(W,$,X)=>{W.shiftUntilNonWhitespace();let Y=W.shiftUntilNextTerminator();if(Y===""){if(W.lookahead===""&&$.length)return $;return L(MA)}return W.shiftUntilNonWhitespace(),_A(W,Y,$,X)},Vw="extends ",_A=(W,$,X,Y)=>{if(W.shiftUntilNonWhitespace(),W.unscanned.startsWith(Vw))W.jumpForward(Vw.length);else{if(W.lookahead===",")W.shift();return X.push($),G9(W,X,Y)}let J=l6(new x$(W,Y));return X.push([$,J.root]),G9(W,X,Y)};class v7 extends RW{$;constructor(W){super((...$)=>new o6(W)(...$),{bind:W});this.$=W}in(W){return new o6(this.$,W===void 0?void 0:this.$.parse(W))}at(W,$){return new o6(this.$).at(W,$)}case(W,$){return new o6(this.$).case(W,$)}}class o6 extends RW{$;in;key;branches=[];constructor(W,$){super((X)=>this.caseEntries(Object.entries(X).map(([Y,J])=>Y==="default"?[Y,J]:[this.$.parse(Y),J])));this.$=W,this.in=$}at(W,$){if(this.key)L(VA);if(this.branches.length)L(DA);return this.key=W,$?this.match($):this}case(W,$){return this.caseEntry(this.$.parse(W),$)}caseEntry(W,$){let Y=(this.key?this.$.parse({[this.key]:W}):W).pipe($);return this.branches.push(Y),this}match(W){return this(W)}strings(W){return this.caseEntries(Object.entries(W).map(([$,X])=>$==="default"?[$,X]:[this.$.node("unit",{unit:$}),X]))}caseEntries(W){for(let $=0;$<W.length;$++){let[X,Y]=W[$];if(X==="default"){if($!==W.length-1)L("default may only be specified as the last key of a switch definition");return this.default(Y)}if(typeof Y!=="function")return L(`Value for case "${X}" must be a function (was ${Q1(Y)})`);this.caseEntry(X,Y)}return this}default(W){if(typeof W==="function")this.case(r.unknown,W);let $={branches:this.branches,ordered:!0};if(W==="never"||W==="assert")$.meta={onFail:Ow};let X=this.$.node("union",$);if(!this.in)return this.$.finalize(X);let Y=this.in.pipe(X);if(W==="never"||W==="assert")Y=Y.configureReferences({onFail:Ow},"self");return this.$.finalize(Y)}}var Ow=(W)=>W.throw(),DA="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",VA="At most one key matcher may be specified per expression";var H9=(W,$)=>{if(C0(W)){if(W[1]==="=")return[$.$.parseOwnDefinitionFormat(W[0],$),"=",W[2]];if(W[1]==="?")return[$.$.parseOwnDefinitionFormat(W[0],$),"?"]}return Q9(W,$)},Kw="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",Lw="Only required keys may specify default values, e.g. { value: 'number = 0' }";var Aw=(W,$)=>{let X,Y={},J=E8(W);for(let[H,Q]of J){let z=LA(H);if(z.kind==="spread"){if(!uW(Y))return L(KA);let V=$.$.parseOwnDefinitionFormat(Q,$);if(V.equals(r.object))continue;if(!V.hasKind("intersection")||!V.basis?.equals(r.object))return L(AA(V.expression));X=V.structure;continue}if(z.kind==="undeclared"){if(Q!=="reject"&&Q!=="delete"&&Q!=="ignore")L(OA(Q));Y.undeclared=Q;continue}let F=H9(Q,$),T=z;if(z.kind==="required"){if(!C0(F))b7(Y,"required",{key:z.normalized,value:F},$);else b7(Y,"optional",F[1]==="="?{key:z.normalized,value:F[0],default:F[2]}:{key:z.normalized,value:F[0]},$);continue}if(C0(F)){if(F[1]==="?")L(Kw);if(F[1]==="=")L(Lw)}if(z.kind==="optional"){b7(Y,"optional",{key:z.normalized,value:F},$);continue}let U=$.$.parseOwnDefinitionFormat(T.normalized,$),M=aY(U,F,$.$);if(M.index)Y.index=M0(Y.index,M.index);if(M.required)Y.required=M0(Y.required,M.required)}let G=$.$.node("structure",Y);return $.$.parseSchema({domain:"object",structure:X?.merge(G)??G})},b7=(W,$,X,Y)=>{W[$]=M0(W[$],Y.$.node($,X))},OA=(W)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${X0(W)})`,KA="Spread operator may only be used as the first key in an object",LA=(W)=>typeof W==="symbol"?{kind:"required",normalized:W}:W.at(-1)==="?"?W.at(-2)===R6?{kind:"required",normalized:`${W.slice(0,-2)}?`}:{kind:"optional",normalized:W.slice(0,-1)}:W[0]==="["&&W.at(-1)==="]"?{kind:"index",normalized:W.slice(1,-1)}:W[0]===R6&&W[1]==="["&&W.at(-1)==="]"?{kind:"required",normalized:W.slice(1)}:W==="..."?{kind:"spread"}:W==="+"?{kind:"undeclared"}:{kind:"required",normalized:W==="\\..."?"...":W==="\\+"?"+":W},AA=(W)=>`Spread operand must resolve to an object literal type (was ${W})`;var Nw=(W,$)=>IA(W)?Sw[W[0]](W,$):CA(W)?Zw[W[1]](W,$):null,EA=(W,$)=>$.$.parseOwnDefinitionFormat(W[1],$).keyof(),y7=(W,$)=>{if(W[2]===void 0)return L(I7(W[1],""));let X=$.$.parseOwnDefinitionFormat(W[0],$),Y=$.$.parseOwnDefinitionFormat(W[2],$);if(W[1]==="|")return $.$.node("union",{branches:[X,Y]});let J=W[1]==="&"?c1(X,Y,$.$):x6(X,Y,$.$);if(J instanceof P)return J.throw();return J},NA=(W,$)=>$.$.parseOwnDefinitionFormat(W[0],$).array(),BA=(W,$)=>{if(typeof W[2]!=="function")return L(Bw("=>",W[2]));return $.$.parseOwnDefinitionFormat(W[0],$).pipe(W[2])},Bw=(W,$)=>`${W===":"?"Narrow":"Morph"} expression requires a function following '${W}' (was ${typeof $})`,RA=(W,$)=>{if(typeof W[2]!=="function")return L(Bw(":",W[2]));return $.$.parseOwnDefinitionFormat(W[0],$).constrain("predicate",W[2])},ZA=(W,$)=>$.$.parseOwnDefinitionFormat(W[0],$).configureReferences(W[2],"shallow"),Rw=(W)=>W,SA=Rw({"[]":NA,"?":()=>L(W9)}),qA=Rw({"|":y7,"&":y7,":":RA,"=>":BA,"|>":y7,"@":ZA,"=":()=>L($9)}),Zw={...SA,...qA},CA=(W)=>Zw[W[1]]!==void 0,kA=(W)=>W,Sw=kA({keyof:EA,instanceof:(W,$)=>{if(typeof W[1]!=="function")return L(Ew(N6(W[1])));let X=W.slice(1).map((Y)=>typeof Y==="function"?$.$.node("proto",{proto:Y}):L(Ew(N6(Y))));return X.length===1?X[0]:$.$.node("union",{branches:X})},"===":(W,$)=>$.$.units(W.slice(1))}),IA=(W)=>Sw[W[0]]!==void 0,Ew=(W)=>`Expected a constructor following 'instanceof' operator (was ${W})`;var kw=(W,$)=>{let X=[{}],Y=0;while(Y<W.length){let J=!1;if(W[Y]==="..."&&Y<W.length-1)J=!0,Y++;let G=H9(W[Y],$),[H,Q,z]=!C0(G)?[G]:G;if(Y++,J){if(!H.extends(R.intrinsic.Array))return L(PA(H.expression));X=X.flatMap((F)=>H.distribute((T)=>fA(mY(F),T)))}else X=X.map((F)=>{if(Q==="?")return Iw(F,H);if(Q==="=")return jA(F,H,z);return h7(F,H)})}return $.$.parseSchema(X.map((J)=>uW(J)?{proto:Array,exactLength:0}:{proto:Array,sequence:J}))},h7=(W,$)=>{if(W.defaultables||W.optionals)return L(W.variadic?D7:xA);if(W.variadic)W.postfix=M0(W.postfix,$);else W.prefix=M0(W.prefix,$);return W},Iw=(W,$)=>{if(W.variadic)return L(jw);return W.optionals=M0(W.optionals,$),W},jA=(W,$,X)=>{if(W.variadic)return L(jw);if(W.optionals)return L(vA);return W.defaultables=M0(W.defaultables,[[$,X]]),W},qw=(W,$)=>{if(W.postfix)L(Cw);if(W.variadic){if(!W.variadic.equals($))L(Cw)}else W.variadic=$.internal;return W},fA=(W,$)=>{let X=$.select({method:"find",kind:"sequence"});if(!X)return qw(W,R.intrinsic.unknown);if(X.prefix)for(let Y of X.prefix)h7(W,Y);if(X.optionals)for(let Y of X.optionals)Iw(W,Y);if(X.variadic)qw(W,X.variadic);if(X.postfix)for(let Y of X.postfix)h7(W,Y);return W},PA=(W)=>`Spread element must be an array (was ${W})`,Cw="A tuple may have at most one variadic element",xA="A required element may not follow an optional element",jw="An optional element may not follow a variadic element";var vA="A defaultable element may not follow an optional element without a default";var bA={},Q9=(W,$)=>{if(typeof W==="string"){if($.args&&Object.keys($.args).some((Y)=>W.includes(Y)))return x7(W,$);let X=bA[$.$.name]??={};return X[W]??=x7(W,$)}return g1(W,"object")?yA(W,$):L(g7(Q1(W)))},yA=(W,$)=>{let X=E6(W);switch(X){case void 0:if(d(W,"root"))return W;return Aw(W,$);case"Array":return hA(W,$);case"RegExp":return $.$.node("intersection",{domain:"string",pattern:W},{prereduced:!0});case"Function":{let Y=b2(W)?W():W;if(d(Y,"root"))return Y;return L(g7("Function"))}default:return L(g7(X??X0(W)))}},hA=(W,$)=>Nw(W,$)??kw(W,$),g7=(W)=>`Type definitions must be strings or objects (was ${W})`;class m7 extends RW{constructor(W){let $=Object.assign({errors:p1,hkt:N1,$:W,raw:W.parse,module:W.constructor.module,scope:W.constructor.scope,define:W.define,match:W.match,generic:W.generic,schema:W.schema,keywords:W.ambient,unit:W.unit,enumerated:W.enumerated,instanceOf:W.instanceOf,valueOf:W.valueOf,or:W.or,and:W.and,merge:W.merge,pipe:W.pipe},W.ambientAttachments);super((...X)=>{if(X.length===1)return W.parse(X[0]);if(X.length===2&&typeof X[0]==="string"&&X[0][0]==="<"&&X[0].at(-1)===">"){let Y=X[0].slice(1,-1),J=W.parseGenericParams(Y,{});return new p2(J,X[1],W,W,null)}return W.parse(X)},{bind:W,attach:$})}}var v$=R;class z9 extends sY{get ambientAttachments(){if(!v$.typeAttachments)return;return this.cacheGetter("ambientAttachments",$0(v$.typeAttachments,(W,$)=>[W,this.bindReference($)]))}preparseOwnAliasEntry(W,$){let X=W.indexOf("<");if(X===-1){if(d($,"module")||d($,"generic"))return[W,$];let G=this.name==="ark"?W:W==="root"?this.name:`${this.name}.${W}`,H=this.resolvedConfig.keywords?.[G];if(H)$=[$,"@",H];return[W,$]}if(W.at(-1)!==">")L("'>' must be the last character of a generic declaration in a scope");let Y=W.slice(0,X),J=W.slice(X+1,-1);return[Y,()=>{let G=this.parseGenericParams(J,{alias:Y});return tT(G,$,this)}]}parseGenericParams(W,$){return G9(new w2(W),[],this.createParseContext({...$,def:W,prefix:"generic"}))}normalizeRootScopeValue(W){if(b2(W)&&!d(W,"generic"))return W();return W}preparseOwnDefinitionFormat(W,$){return{...$,def:W,prefix:$.alias??"type"}}parseOwnDefinitionFormat(W,$){if(!($.alias&&($.alias in this.aliases))&&!$.args)$.args={this:$.id};let Y=Q9(W,$);if(C0(Y)){if(Y[1]==="=")return L($9);if(Y[1]==="?")return L(W9)}return Y}unit=(W)=>this.units([W]);valueOf=(W)=>this.units(VT(W));enumerated=(...W)=>this.units(W);instanceOf=(W)=>this.node("proto",{proto:W},{prereduced:!0});or=(...W)=>this.schema(W.map(($)=>this.parse($)));and=(...W)=>W.reduce(($,X)=>$.and(this.parse(X)),this.intrinsic.unknown);merge=(...W)=>W.reduce(($,X)=>$.merge(this.parse(X)),this.intrinsic.object);pipe=(...W)=>this.intrinsic.unknown.pipe(...W);match=new v7(this);declare=()=>({type:this.type});define(W){return W}type=new m7(this);static scope=(W,$={})=>new z9(W,$);static module=(W,$={})=>this.scope(W,$).export()}var p7=Object.assign(z9.scope,{define:(W)=>W}),z0=z9;class fw extends N1{description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var gA=UW(["base",r.object],["props",r.object])((W)=>W.base.merge(W.props),fw),Pw=z0.module({Key:r.key,Merge:gA});class xw extends N1{}var mA=UW("element")((W)=>{let $=W.element.exclude(r.Array),X=$.array();return $.rawOr(X).pipe(v2).distribute((Y)=>Y.assertHasKind("morph").declareOut(X),E0)},xw),vw=z0.module({root:r.Array,readonly:"root",index:r.nonNegativeIntegerString,liftFrom:mA},{name:"Array"});var u7=E0(["string",B8.FileConstructor]),pA=u7.rawOr(u7.array()),bw=E0({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:pA}}),yw=z0.module({root:["instanceof",FormData],value:u7,parsed:bw,parse:E0({in:FormData,morphs:(W)=>{let $={};for(let[X,Y]of W)if(X in $){let J=$[X];if(typeof J==="string"||J instanceof B8.FileConstructor)$[X]=[J,Y];else J.push(Y)}else $[X]=Y;return $},declaredOut:bw})},{name:"FormData"});var hw=z0.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 uA={Boolean:1,Number:1,String:1},gw=z0.module({...$0({...C5,...I5},(W,$)=>(W in uA)?[]:[W,["instanceof",$]]),Array:vw,TypedArray:hw,FormData:yw});var cA=E0({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"}),dA=E0({domain:"number",divisor:1}),F9=z0.module({root:r.number,integer:dA,epoch:cA,safe:E0({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 h0=(W,$,X)=>{let Y={domain:"string",pattern:{rule:W.source,flags:W.flags,meta:$}};if(X)Y.meta={format:X};return f$("intersection",Y)},mw=h0(Z6,"a well-formed integer string"),sw=z0.module({root:mw,parse:E0({in:mw,morphs:(W,$)=>{let X=Number.parseInt(W);return Number.isSafeInteger(X)?X:$.error("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")},declaredOut:r.integer})},{name:"string.integer"}),lA=h0(/^[\dA-Fa-f]+$/,"hex characters only"),oA=z0.module({root:h0(/^(?:[\d+/A-Za-z]{4})*(?:[\d+/A-Za-z]{2}==|[\d+/A-Za-z]{3}=)?$/,"base64-encoded"),url:h0(/^(?:[\w-]{4})*(?:[\w-]{2}(?:==|%3D%3D)?|[\w-]{3}(?:=|%3D)?)?$/,"base64url-encoded")},{name:"string.base64"}),pw=h0(/^[A-Z].*$/,"capitalized"),iA=z0.module({root:E0({in:"string",morphs:(W)=>W.charAt(0).toUpperCase()+W.slice(1),declaredOut:pw}),preformatted:pw},{name:"string.capitalize"}),nA=(W)=>{let $=W.replaceAll(/[ -]+/g,""),X=0,Y,J,G=!1;for(let H=$.length-1;H>=0;H--){if(Y=$.substring(H,H+1),J=Number.parseInt(Y,10),G)J*=2,X+=J>=10?J%10+1:J;else X+=J;G=!G}return!!(X%10===0?$:!1)},rA=/^(?: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}))$/,tA=E0({domain:"string",pattern:{meta:"a credit card number",rule:rA.source},predicate:{meta:"a credit card number",predicate:nA}});var aA=/^([+-]?\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 sA=(W)=>!Number.isNaN(new Date(W).valueOf()),uw=E0({domain:"string",predicate:{meta:"a parsable date",predicate:sA}}).assertHasKind("intersection"),cw=sw.root.internal.narrow((W,$)=>{let X=Number.parseInt(W),Y=F9.epoch(X);if(Y instanceof p1)return $.errors.merge(Y),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),eA=z0.module({root:cw,parse:E0({in:cw,morphs:(W)=>new Date(W),declaredOut:r.Date})},{name:"string.date.epoch"}),dw=h0(aA,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),WE=z0.module({root:dw,parse:E0({in:dw,morphs:(W)=>new Date(W),declaredOut:r.Date})},{name:"string.date.iso"}),$E=z0.module({root:uw,parse:E0({declaredIn:uw,in:"string",morphs:(W,$)=>{let X=new Date(W);if(Number.isNaN(X.valueOf()))return $.error("a parsable date");return X},declaredOut:r.Date}),iso:WE,epoch:eA},{name:"string.date"}),XE=h0(/^[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z]{2,}$/,"an email address","email"),lw="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",u2=`(${lw}[.]){3}${lw}`,YE=new RegExp(`^${u2}$`),a0="(?:[0-9a-fA-F]{1,4})",JE=new RegExp(`^((?:${a0}:){7}(?:${a0}|:)|(?:${a0}:){6}(?:${u2}|:${a0}|:)|(?:${a0}:){5}(?::${u2}|(:${a0}){1,2}|:)|(?:${a0}:){4}(?:(:${a0}){0,1}:${u2}|(:${a0}){1,3}|:)|(?:${a0}:){3}(?:(:${a0}){0,2}:${u2}|(:${a0}){1,4}|:)|(?:${a0}:){2}(?:(:${a0}){0,3}:${u2}|(:${a0}){1,5}|:)|(?:${a0}:){1}(?:(:${a0}){0,4}:${u2}|(:${a0}){1,6}|:)|(?::((?::${a0}){0,5}:${u2}|(?::${a0}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),GE=z0.module({root:["v4 | v6","@","an IP address"],v4:h0(YE,"an IPv4 address","ipv4"),v6:h0(JE,"an IPv6 address","ipv6")},{name:"string.ip"}),b$="a JSON string",ew=(W)=>{if(!(W instanceof SyntaxError))throw W;return`must be ${b$} (${W})`},HE=E0({meta:b$,domain:"string",predicate:{meta:b$,predicate:(W,$)=>{try{return JSON.parse(W),!0}catch(X){return $.reject({code:"predicate",expected:b$,problem:ew(X)})}}}}),QE=(W,$)=>{if(W.length===0)return $.error({code:"predicate",expected:b$,actual:"empty"});try{return JSON.parse(W)}catch(X){return $.error({code:"predicate",expected:b$,problem:ew(X)})}},zE=z0.module({root:HE,parse:E0({meta:"safe JSON string parser",in:"string",morphs:QE,declaredOut:r.jsonObject})},{name:"string.json"}),ow=h0(/^[a-z]*$/,"only lowercase letters"),FE=z0.module({root:E0({in:"string",morphs:(W)=>W.toLowerCase(),declaredOut:ow}),preformatted:ow},{name:"string.lower"}),WM=["NFC","NFD","NFKC","NFKD"],i6=$0(WM,(W,$)=>[$,E0({domain:"string",predicate:(X)=>X.normalize($)===X,meta:`${$}-normalized unicode`})]),T9=$0(WM,(W,$)=>[$,E0({in:"string",morphs:(X)=>X.normalize($),declaredOut:i6[$]})]),TE=z0.module({root:T9.NFC,preformatted:i6.NFC},{name:"string.normalize.NFC"}),UE=z0.module({root:T9.NFD,preformatted:i6.NFD},{name:"string.normalize.NFD"}),wE=z0.module({root:T9.NFKC,preformatted:i6.NFKC},{name:"string.normalize.NFKC"}),ME=z0.module({root:T9.NFKD,preformatted:i6.NFKD},{name:"string.normalize.NFKD"}),_E=z0.module({root:"NFC",NFC:TE,NFD:UE,NFKC:wE,NFKD:ME},{name:"string.normalize"}),iw=h0(yY,"a well-formed numeric string"),DE=z0.module({root:iw,parse:E0({in:iw,morphs:(W)=>Number.parseFloat(W),declaredOut:r.number})},{name:"string.numeric"}),nw="a regex pattern",VE=E0({domain:"string",predicate:{meta:nw,predicate:(W,$)=>{try{return new RegExp(W),!0}catch(X){return $.reject({code:"predicate",expected:nw,problem:String(X)})}}},meta:{format:"regex"}}),OE=/^(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-]+)*))?$/,KE=h0(OE,"a semantic version (see https://semver.org/)"),rw=h0(/^\S.*\S$|^\S?$/,"trimmed"),LE=z0.module({root:E0({in:"string",morphs:(W)=>W.trim(),declaredOut:rw}),preformatted:rw},{name:"string.trim"}),tw=h0(/^[A-Z]*$/,"only uppercase letters"),AE=z0.module({root:E0({in:"string",morphs:(W)=>W.toUpperCase(),declaredOut:tw}),preformatted:tw},{name:"string.upper"}),EE=(W)=>{if(URL.canParse)return URL.canParse(W);try{return new URL(W),!0}catch{return!1}},aw=E0({domain:"string",predicate:{meta:"a URL string",predicate:EE},meta:{format:"uri"}}),NE=z0.module({root:aw,parse:E0({declaredIn:aw,in:"string",morphs:(W,$)=>{try{return new URL(W)}catch{return $.error("a URL string")}},declaredOut:E0(URL)})},{name:"string.url"}),BE=z0.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:h0(/^[\da-f]{8}-[\da-f]{4}-1[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv1"),v2:h0(/^[\da-f]{8}-[\da-f]{4}-2[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv2"),v3:h0(/^[\da-f]{8}-[\da-f]{4}-3[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv3"),v4:h0(/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv4"),v5:h0(/^[\da-f]{8}-[\da-f]{4}-5[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv5"),v6:h0(/^[\da-f]{8}-[\da-f]{4}-6[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv6"),v7:h0(/^[\da-f]{8}-[\da-f]{4}-7[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv7"),v8:h0(/^[\da-f]{8}-[\da-f]{4}-8[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv8")},{name:"string.uuid"}),$M=z0.module({root:r.string,alpha:h0(/^[A-Za-z]*$/,"only letters"),alphanumeric:h0(/^[\dA-Za-z]*$/,"only letters and digits 0-9"),hex:lA,base64:oA,capitalize:iA,creditCard:tA,date:$E,digits:h0(/^\d*$/,"only digits 0-9"),email:XE,integer:sw,ip:GE,json:zE,lower:FE,normalize:_E,numeric:DE,regex:VE,semver:KE,trim:LE,upper:AE,url:NE,uuid:BE},{name:"string"});var XM=z0.module({bigint:r.bigint,boolean:r.boolean,false:r.false,never:r.never,null:r.null,number:r.number,object:r.object,string:r.string,symbol:r.symbol,true:r.true,unknown:r.unknown,undefined:r.undefined}),YM=z0.module({root:r.unknown,any:r.unknown},{name:"unknown"}),RE=z0.module({root:r.jsonObject,stringify:f$("morph",{in:r.jsonObject,morphs:(W)=>JSON.stringify(W),declaredOut:r.string})},{name:"object.json"}),JM=z0.module({root:r.object,json:RE},{name:"object"});class GM extends N1{description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var ZE=UW(["K",r.key],"V")((W)=>({domain:"object",index:{signature:W.K,value:W.V}}),GM);class HM extends N1{description='pick a set of properties from an object like `Pick(User, "name | age")`'}var SE=UW(["T",r.object],["K",r.key])((W)=>W.T.pick(W.K),HM);class QM extends N1{description='omit a set of properties from an object like `Omit(User, "age")`'}var qE=UW(["T",r.object],["K",r.key])((W)=>W.T.omit(W.K),QM);class zM extends N1{description="make all named properties of an object optional like `Partial(User)`"}var CE=UW(["T",r.object])((W)=>W.T.partial(),zM);class FM extends N1{description="make all named properties of an object required like `Required(User)`"}var kE=UW(["T",r.object])((W)=>W.T.required(),FM);class TM extends N1{description='exclude branches of a union like `Exclude("boolean", "true")`'}var IE=UW("T","U")((W)=>W.T.exclude(W.U),TM);class UM extends N1{description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var jE=UW("T","U")((W)=>W.T.extract(W.U),UM),wM=z0.module({Exclude:IE,Extract:jE,Omit:qE,Partial:CE,Pick:SE,Record:ZE,Required:kE});var c2=p7({...XM,...wM,...gw,...Pw,string:$M,number:F9,object:JM,unknown:YM},{prereducedAliases:!0,name:"ark"}),F1=c2.export();Object.assign(v$.ambient,F1);v$.typeAttachments={string:F1.string.root,number:F1.number.root,bigint:F1.bigint,boolean:F1.boolean,symbol:F1.symbol,undefined:F1.undefined,null:F1.null,object:F1.object.root,unknown:F1.unknown.root,false:F1.false,true:F1.true,never:F1.never,arrayIndex:F1.Array.index,Key:F1.Key,Record:F1.Record,Array:F1.Array.root,Date:F1.Date};var qW=Object.assign(c2.type,v$.typeAttachments),fE=c2.match,PE=c2.generic,Aa=c2.schema,xE=c2.define,vE=c2.declare;var bE="__vite_start_time"in globalThis,yE=typeof window!=="undefined",ha="vitest"in globalThis,M2=qW("string"),MM=qW('"true" | "false" | undefined'),_2=Z5({isServer:!bE&&!yE,server:{CI:qW("string | undefined").pipe(Boolean),POSTGRES_USER:M2,POSTGRES_PASSWORD:M2,POSTGRES_DATABASE:M2,POSTGRES_HOST:M2,POSTGRES_PORT:M2.pipe((W)=>Number.parseInt(W,10)),BACKEND_PORT:M2.pipe((W)=>Number.parseInt(W,10)),RUN_WORKERS_FROM_SOURCE:MM.pipe((W)=>W==="true"),FRONTEND_PORT:M2.pipe((W)=>Number.parseInt(W,10)),FRONTEND_ORIGINS:M2.pipe.try((W)=>JSON.parse(W),qW("string[]")),API_KEY_OPENAI:qW("string | undefined"),API_KEY_RESEND:qW("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:M2,VITE_DEV_FRONTEND_HOST:qW("string | undefined"),VITE_DEV_HTTPS:MM.pipe((W)=>W==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var d7={};C_(d7,{users:()=>S8,untrackedUserColumnNames:()=>hE,twoFactorMethod:()=>KM,trackedUserColumnName:()=>gE,trackableUserColumnNames:()=>VM,signInHistory:()=>pE,role:()=>DM,players:()=>c7,passwordResetAttempts:()=>uE,games:()=>U9,banishedIps:()=>w9,accountActions:()=>mE,accountAction:()=>OM});function _M(W){return D`lower(${W})`}var DM=s4("role",["admin","user"]),S8=f2("users",{id:HW().primaryKey().defaultRandom(),username:k1({length:16}).notNull(),emailOffered:k1({length:254}).notNull(),emailVerified:k1({length:254}),password:k1({length:254}),createdAt:NW({withTimezone:!0}).notNull().defaultNow(),createdIp:k1({length:45}).notNull(),isActive:J6().notNull().default(!1),verifiedAt:NW({withTimezone:!0}),userRole:DM().default("user")},(W)=>[A5("usernameUniqueIndex").on(_M(W.username)),A5("emailVerifiedUniqueIndex").on(_M(W.emailVerified))]),hE=["id","createdAt","createdIp","isActive","verifiedAt"],VM=["username","emailOffered","emailVerified","password","userRole"],gE=s4("trackedUserColumnName",VM),OM=s4("accountAction",["cooldown","confirmEmail","signIn","resetPassword"]),mE=f2("accountActions",{userId:HW().references(()=>S8.id).primaryKey(),action:OM().notNull(),code:k1({length:254}).notNull(),wrongCodeCount:G6().notNull().default(0),expiresAt:NW({withTimezone:!0}).notNull()}),U9=f2("games",{id:HW().primaryKey().defaultRandom()}),c7=f2("players",{userId:HW().notNull().references(()=>S8.id,{onDelete:"cascade"}),gameId:HW().notNull().references(()=>U9.id,{onDelete:"cascade"}),score:G6().notNull()},(W)=>[GF({name:"players_userId_gameId_pk",columns:[W.userId,W.gameId]})]),pE=f2("signInHistory",{id:HW().primaryKey().defaultRandom(),userId:HW().references(()=>S8.id,{onDelete:"cascade"}),signInTime:NW({withTimezone:!0}).notNull().defaultNow(),ipAddress:k1({length:45}).notNull(),userAgent:k1({length:1024}),successful:J6().notNull().default(!1)}),KM=s4("twoFactorMethod",["email","phone"]),uE=f2("passwordResetAttempts",{id:HW().primaryKey().defaultRandom(),userId:HW().notNull().references(()=>S8.id,{onDelete:"cascade"}),requestedIp:k1({length:45}).notNull(),requestedAt:NW({withTimezone:!0}).notNull().defaultNow(),succeededIp:k1({length:45}),succeededAt:NW({withTimezone:!0}),verificationMethod:KM().notNull()}),w9=f2("banishedIps",{ip:k1({length:45}).primaryKey(),reason:k1({length:2048}).notNull(),banishedAt:NW({withTimezone:!0}).notNull().defaultNow(),banishedUntil:NW({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class l7{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(cE.resolve(__dirname,"notify_update.sql"));let W=[U1(S8),U1(U9),U1(c7)];await this.sql`SELECT create_notify_triggers(${this.sql.array(W)})`,await this.sql.listen("table_update",($)=>{let X=$.split(","),Y=X[0],J=X[1],G=`${Y}("${J}")`;if(this.observers.has(G))this.observers.get(G).next(G)})}constructor(W=!1,$={host:_2.POSTGRES_HOST,port:_2.POSTGRES_PORT,user:_2.POSTGRES_USER,password:_2.POSTGRES_PASSWORD,database:_2.POSTGRES_DATABASE}){this.options=$,this.sql=D$($),this.drizzle=vY(this.sql,{schema:d7,logger:W})}observe(W,$){if(!this.observers.has(W))this.observers.set(W,new Z0);this.observers.get(W).subscribe("SINGLETON",$)}}import{resolve as oE}from"path";import{existsSync as o7,mkdirSync as LM,readFileSync as dE,readdirSync as AM,rmSync as EM,statSync as NM,writeFileSync as lE}from"fs";import{resolve as i7}from"path";var BM=class{rootDir;get initialized(){return o7(this.rootDir)}initialize(){if(!this.initialized)LM(this.rootDir,{recursive:!0})}constructor(W){if(this.rootDir=W.path,W.eagerInit)this.initialize()}getItem(W){let $=i7(this.rootDir,W);if(o7($))return dE($,"utf-8");return null}setItem(W,$){this.initialize();let X=i7(this.rootDir,W);lE(X,$)}removeItem(W){let $=i7(this.rootDir,W);if(o7($))this.initialize(),EM($)}key(W){return AM(this.rootDir).sort((Y,J)=>{let G=NM(Y);return NM(J).ctimeMs-G.ctimeMs})[W]??null}clear(){EM(this.rootDir,{recursive:!0}),LM(this.rootDir,{recursive:!0})}get length(){return AM(this.rootDir).length}};var n7=new BM({path:oE(process.cwd(),"storage")});import*as M9 from"fs";import*as RM from"readline";function iE(W){let X=W.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(Y,J,G,H,Q)=>{let F={Jan:"01",Feb:"02",Mar:"03",Apr:"04",May:"05",Jun:"06",Jul:"07",Aug:"08",Sep:"09",Oct:"10",Nov:"11",Dec:"12"}[G];return`${H}-${F}-${J}T${Q}`});return new Date(X)}async function ZM(W,$="/var/log/nginx/access.log",X=new Date){let Y=new Map;if(!M9.existsSync($))return W.error(`Log file not found: ${$}`),Y;let J=M9.createReadStream($),G=RM.createInterface({input:J,crlfDelay:Number.POSITIVE_INFINITY}),H=new Date(X.getTime()-3600000);return G.on("line",(Q)=>{let z=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,F=Q.match(z);if(F?.groups){let T=F.groups.ip,U=F.groups.dateTime,M=iE(U);if(!Number.isNaN(M.getTime())){if(M>=H&&M<=X){let V=Y.get(T);if(!V)V=[],Y.set(T,V);V.push(Q)}}else W.error(`Failed to parse date: ${U}`)}}),new Promise((Q,z)=>{G.on("error",(F)=>{z(F)}),G.on("close",()=>{Q(Y)})})}function SM(W){return W.toJsonSchema()}var nE=["Network security adjudicator, your job is to determine if an IP address should be banned.","The IP address in question created the following logs on our server today:","```nginx.log\n"].join(`
127
+ `)+"}");class sY{config;resolvedConfig;name;get[j1](){return"scope"}referencesById={};references=[];resolutions={};exportedNames=[];aliases={};resolved=!1;nodesByHash={};intrinsic;constructor(W,$){if(this.config=j6(B.config,$),this.resolvedConfig=j6(B.resolvedConfig,$),this.name=this.resolvedConfig.name??`anonymousScope${Object.keys(L7).length}`,this.name in L7)L(`A Scope already named ${this.name} already exists`);L7[this.name]=this;let X=Object.entries(W).map((Y)=>this.preparseOwnAliasEntry(...Y));for(let[Y,J]of X){let G=Y;if(Y[0]==="#"){if(G=Y.slice(1),G in this.aliases)L(hU(G));this.aliases[G]=J}else{if(G in this.aliases)L(hU(Y));this.aliases[G]=J,this.exportedNames.push(G)}if(!d(J,"module")&&!d(J,"generic")&&!b2(J)){let H=this.preparseOwnDefinitionFormat(J,{alias:G});this.resolutions[G]=d(H,"root")?this.bindReference(H):this.createParseContext(H).id}}gU??=this.node("union",{branches:["string","number","object","bigint","symbol",{unit:!0},{unit:!1},{unit:void 0},{unit:null}]},{prereduced:!0}),this.nodesByHash[gU.hash]=this.node("intersection",{},{prereduced:!0}),this.intrinsic=B.intrinsic?$0(B.intrinsic,(Y,J)=>Y.startsWith("json")?[]:[Y,this.bindReference(J)]):{}}cacheGetter(W,$){return Object.defineProperty(this,W,{value:$}),$}get internal(){return this}_json;get json(){if(!this._json)this.export();return this._json}defineSchema(W){return W}generic=(...W)=>{let $=this;return(X,Y)=>new p2(W,Y?new dY(X):X,$,$,Y??null)};units=(W,$)=>{let X=[];for(let J of W)if(!X.includes(J))X.push(J);let Y=X.map((J)=>this.node("unit",{unit:J},$));return this.node("union",Y,{...$,prereduced:!0})};lazyResolutions=[];lazilyResolve(W,$){let X=this.node("alias",{reference:$??"synthetic",resolve:W},{prereduced:!0});if(!this.resolved)this.lazyResolutions.push(X);return X}schema=(W,$)=>this.finalize(this.parseSchema(W,$));parseSchema=(W,$)=>this.node(v6(W),W,$);preparseNode(W,$,X){let Y=typeof W==="string"?W:v6($,W);if(P0($)&&$.kind===Y)return $;if(Y==="alias"&&!X?.prereduced){let{reference:H}=p6.implementation.normalize($,this);if(H.startsWith("$")){let Q=this.resolveRoot(H.slice(1));$=Q,Y=Q.kind}}else if(Y==="union"&&g1($,"object")){let H=lL($);if(H?.length===1)$=H[0],Y=v6($)}if(P0($)&&$.kind===Y)return $;let G=C$[Y].normalize?.($,this)??$;if(P0(G))return G.kind===Y?G:oL(Y,G.kind);return{...X,$:this,kind:Y,def:G,prefix:X.alias??Y}}bindReference(W){let $;if(P0(W))$=W.$===this?W:new W.constructor(W.attachments,this);else $=W.$===this?W:new p2(W.params,W.bodyDef,W.$,this,W.hkt);if(!this.resolved)Object.assign(this.referencesById,$.referencesById);return $}resolveRoot(W){return this.maybeResolveRoot(W)??L(N7(W))}maybeResolveRoot(W){let $=this.maybeResolve(W);if(d($,"generic"))return;return $}maybeResolveSubalias(W){return A7(this.aliases,W)??A7(this.ambient,W)}get ambient(){return B.ambient}maybeResolve(W){let $=this.resolutions[W];if($){if(typeof $!=="string")return this.bindReference($);let Y=f1[$];if(d(Y,"root"))return this.resolutions[W]=Y;if(d(Y,"context")){if(Y.phase==="resolving")return this.node("alias",{reference:`$${W}`},{prereduced:!0});if(Y.phase==="resolved")return V0(`Unexpected resolved context for was uncached by its scope: ${X0(Y)}`);Y.phase="resolving";let J=this.bindReference(this.parseOwnDefinitionFormat(Y.def,Y));return Y.phase="resolved",f1[J.id]=J,f1[Y.id]=J,this.resolutions[W]=J}return V0(`Unexpected nodesById entry for ${$}: ${X0(Y)}`)}let X=this.aliases[W]??this.ambient?.[W];if(!X)return this.maybeResolveSubalias(W);if(X=this.normalizeRootScopeValue(X),d(X,"generic"))return this.resolutions[W]=this.bindReference(X);if(d(X,"module")){if(!X.root)L(oU(W));return this.resolutions[W]=this.bindReference(X.root)}return this.resolutions[W]=this.parse(X,{alias:W})}createParseContext(W){let $=W.id??X7(W.prefix);return f1[$]=Object.assign(W,{[j1]:"context",$:this,id:$,phase:"unresolved"})}traversal(W){return new ZW(W,this.resolvedConfig)}import(...W){return new j$($0(this.export(...W),($,X)=>[`#${$}`,X]))}precompilation;_exportedResolutions;_exports;export(...W){if(!this._exports){this._exports={};for(let X of this.exportedNames){let Y=this.aliases[X];this._exports[X]=d(Y,"module")?K7(Y,this):mU(this.maybeResolve(X))}for(let X of this.lazyResolutions)X.resolution;if(this._exportedResolutions=lU(this,this._exports),this._json=dU(this._exportedResolutions),Object.assign(this.resolutions,this._exportedResolutions),this.references=Object.values(this.referencesById),!this.resolvedConfig.jitless){let X=cU(this.references);this.precompilation=X.write(pU,4),uU(this.references,X)}this.resolved=!0}let $=W.length?W:this.exportedNames;return new j$($0($,(X,Y)=>[Y,this._exports[Y]]))}resolve(W){return this.export()[W]}node=(W,$,X={})=>{let Y=this.preparseNode(W,$,X);if(P0(Y))return this.bindReference(Y);let J=this.createParseContext(Y),G=Y7(J),H=this.bindReference(G);return f1[J.id]=H};parse=(W,$={})=>this.finalize(this.parseDefinition(W,$));parseDefinition(W,$={}){if(d(W,"root"))return this.bindReference(W);let X=this.preparseOwnDefinitionFormat(W,$);if(d(X,"root"))return this.bindReference(X);let Y=this.createParseContext(X);f1[Y.id]=Y;let J=this.bindReference(this.parseOwnDefinitionFormat(W,Y));if(J.isCyclic)J=wU(J,Y.id);return f1[Y.id]=J,J}finalize(W){if(mU(W),!W.precompilation&&!this.resolvedConfig.jitless)iL(W.references);return W}}class E7 extends sY{parseOwnDefinitionFormat(W,$){return Y7($)}preparseOwnDefinitionFormat(W,$){return this.preparseNode(v6(W),W,$)}preparseOwnAliasEntry(W,$){return[W,$]}normalizeRootScopeValue(W){return W}}var mU=(W)=>{let $=W.references.filter((X)=>X.hasKind("alias"));for(let X of $){Object.assign(X.referencesById,X.resolution.referencesById);for(let Y of W.references)if(X.id in Y.referencesById)Object.assign(Y.referencesById,X.referencesById)}return W},dU=(W)=>$0(W,($,X)=>[$,d(X,"root")||d(X,"generic")?X.json:d(X,"module")?dU(X):V0(`Unexpected resolution ${X0(X)}`)]),A7=(W,$)=>{let X=$.indexOf(".");if(X===-1)return;let Y=$.slice(0,X),J=W[Y];if(J===void 0)return;if(!d(J,"module"))return L(nL(Y));let G=$.slice(X+1),H=J[G];if(H===void 0)return A7(J,G);if(d(H,"root")||d(H,"generic"))return H;if(d(H,"module"))return H.root??L(oU($));V0(`Unexpected resolution for alias '${$}': ${X0(H)}`)},eY=(W,$)=>new E7(W,$),d6=new E7({});var lU=(W,$)=>{let X={};for(let Y in $){let J=$[Y];if(d(J,"module")){let G=lU(W,J),H=$0(G,(Q,z)=>[`${Y}.${Q}`,z]);Object.assign(X,H)}else if(d(J,"root")||d(J,"generic"))X[Y]=J;else V0(`Unexpected scope resolution ${X0(J)}`)}return X},N7=(W)=>`'${W}' is unresolvable`,nL=(W)=>`'${W}' must reference a module to be accessed using dot syntax`,oU=(W)=>`Reference to submodule '${W}' must specify an alias`;d6.export();var{schema:E0,node:f$,defineSchema:ni,generic:UW}=d6;var R7="^(?:0|[1-9]\\d*)$",rL=new RegExp(R7),ai=c0(rL);var iU=eY({bigint:"bigint",boolean:[{unit:!1},{unit:!0}],false:{unit:!1},never:[],null:{unit:null},number:"number",object:"object",string:"string",symbol:"symbol",true:{unit:!0},unknown:{},undefined:{unit:void 0},Array,Date},{prereducedAliases:!0}).export();B.intrinsic={...iU};var nU=eY({integer:{domain:"number",divisor:1},lengthBoundable:["string",Array],key:["string","symbol"],nonNegativeIntegerString:{domain:"string",pattern:R7}},{prereducedAliases:!0}).export();Object.assign(B.intrinsic,nU);var tL=eY({jsonPrimitive:["string","number",{unit:!0},{unit:!1},{unit:null}],jsonObject:{domain:"object",index:{signature:"string",value:"$jsonData"}},jsonData:["$jsonPrimitive","$jsonObject"]},{prereducedAliases:!0}).export(),r={...iU,...nU,...tL,emptyStructure:f$("structure",{},{prereduced:!0})};B.intrinsic={...r};var tU=(W)=>typeof W==="string"&&W[0]==="d"&&(W[1]==="'"||W[1]==='"')&&W.at(-1)===W[1],rU=(W)=>W.toString()!=="Invalid Date",aU=(W)=>W.slice(2,-1),B7=(W)=>`'${W}' could not be parsed by the Date constructor`,sU=(W,$)=>aL(W,$),aL=(W,$)=>{let X=new Date(W);if(rU(X))return X;let Y=IT(W);if(Y!==void 0){let J=new Date(Y);if(rU(J))return J}return $?L($===!0?B7(W):$):void 0};var Z7=(W,$)=>{let X=W.scanner.shiftUntil(sL[Ww[$]]);if(W.scanner.lookahead==="")return W.error(WA(X,$));if(W.scanner.shift(),$==="/"){try{new RegExp(X)}catch(Y){L(String(Y))}W.root=W.ctx.$.node("intersection",{domain:"string",pattern:X},{prereduced:!0})}else if(z1($,S7))W.root=W.ctx.$.node("unit",{unit:X});else{let Y=sU(X,B7(X));W.root=W.ctx.$.node("unit",{meta:X,unit:Y})}},S7={"'":1,'"':1},eU={"/":1,"'":1,'"':1},Ww={"d'":"'",'d"':'"',"'":"'",'"':'"',"/":"/"},sL={"'":(W)=>W.lookahead==="'",'"':(W)=>W.lookahead==='"',"/":(W)=>W.lookahead==="/"},eL={'"':"double-quote","'":"single-quote","/":"forward slash"},WA=(W,$)=>`${$}${W} requires a closing ${eL[Ww[$]]}`;var $w=(W)=>`Private type references should not include '#'. Use '${W}' instead.`,W9="Optional definitions like 'string?' are only valid as properties in an object or tuple",$9="Defaultable definitions like 'number = 0' are only valid as properties in an object or tuple";var Xw={">":!0,">=":!0},Yw={"<":!0,"<=":!0};var P$={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},Jw=(W)=>`Unmatched )${W===""?"":` before ${W}`}`,X9=(W)=>`Missing ${W}`,Gw=(W,$)=>`Left bounds are only valid when paired with right bounds (try ...${$}${W})`,Y9=(W)=>`Left-bounded expressions must specify their limits using < or <= (was ${W})`,Hw=(W,$,X,Y)=>`An expression may have at most one left bound (parsed ${W}${P$[$]}, ${X}${P$[Y]})`;var Qw=(W,$,X)=>zw(W,$,X,[]),zw=(W,$,X,Y)=>{let J=X.parseUntilFinalizer();if(Y.push(J.root),J.finalizer===">"){if(Y.length!==$.params.length)return X.error(q7(W,$.names,Y.map((G)=>G.expression)));return Y}if(J.finalizer===",")return zw(W,$,X,Y);return J.error(X9(">"))},q7=(W,$,X)=>`${W}<${$.join(", ")}> requires exactly ${$.length} args (got ${X.length}${X.length===0?"":`: ${X.join(", ")}`})`;var C7=(W)=>{let $=W.scanner.shiftUntilNextTerminator();if($==="keyof")W.addPrefix("keyof");else W.root=XA(W,$)},$A=(W,$,X)=>{if(X.scanner.shiftUntilNonWhitespace(),X.scanner.shift()!=="<")return X.error(q7(W,$.names,[]));let J=Qw(W,$,X);return $(...J)},XA=(W,$)=>YA(W,$)??JA(W,$)??W.error($===""?W.scanner.lookahead==="#"?$w(W.shiftedByOne().scanner.shiftUntilNextTerminator()):k7(W):N7($)),YA=(W,$)=>{if(W.ctx.args?.[$]){let Y=W.ctx.args[$];if(typeof Y!=="string")return Y;return W.ctx.$.node("alias",{reference:Y},{prereduced:!0})}let X=W.ctx.$.maybeResolve($);if(d(X,"root"))return X;if(X===void 0)return;if(d(X,"generic"))return $A($,X,W);return L(`Unexpected resolution ${X0(X)}`)},JA=(W,$)=>{let X=jT($);if(X!==void 0)return W.ctx.$.node("unit",{unit:X});let Y=PT($);if(Y!==void 0)return W.ctx.$.node("unit",{unit:Y})},k7=(W)=>{let $=W.previousOperator();return $?I7($,W.scanner.unscanned):GA(W.scanner.unscanned)},I7=(W,$="")=>`Token '${W}' requires a right operand${$?` before '${$}'`:""}`,GA=(W)=>`Expected an expression${W?` before '${W}'`:""}`;var j7=(W)=>W.scanner.lookahead===""?W.error(k7(W)):W.scanner.lookahead==="("?W.shiftedByOne().reduceGroupOpen():W.scanner.lookaheadIsIn(eU)?Z7(W,W.scanner.shift()):W.scanner.lookaheadIsIn(y2)?j7(W.shiftedByOne()):W.scanner.lookahead==="d"?W.scanner.nextLookahead in S7?Z7(W,`${W.scanner.shift()}${W.scanner.shift()}`):C7(W):C7(W);class w2 extends b5{shiftUntilNextTerminator(){return this.shiftUntilNonWhitespace(),this.shiftUntil(()=>(this.lookahead in w2.terminatingChars))}static terminatingChars={"<":1,">":1,"=":1,"|":1,"&":1,")":1,"[":1,"%":1,",":1,":":1,"?":1,"#":1,...y2};static finalizingLookaheads={">":1,",":1,"":1,"=":1,"?":1};static lookaheadIsFinalizing=(W,$)=>W===">"?$[0]==="="?$[1]==="=":$.trimStart()===""||z1($.trimStart()[0],w2.terminatingChars):W==="="?$[0]!=="=":W===","||W==="?"}var Tw=(W,$)=>{let X=HA(W,$);if(W.root.hasKind("unit")){if(typeof W.root.unit==="number"){W.reduceLeftBound(W.root.unit,X),W.unsetRoot();return}if(W.root.unit instanceof Date){let Y=`d'${W.root.description??W.root.unit.toISOString()}'`;W.unsetRoot(),W.reduceLeftBound(Y,X);return}}return zA(W,X)},Uw={"<":1,">":1,"=":1},HA=(W,$)=>W.scanner.lookaheadIs("=")?`${$}${W.scanner.shift()}`:$;var Fw=(W,$,X,Y)=>{if(X.extends(B.intrinsic.number)){if(typeof $!=="number")return L(f7(W,$,Y));return W==="=="?["min","max"]:W[0]===">"?["min"]:["max"]}if(X.extends(B.intrinsic.lengthBoundable)){if(typeof $!=="number")return L(f7(W,$,Y));return W==="=="?["exactLength"]:W[0]===">"?["minLength"]:["maxLength"]}if(X.extends(B.intrinsic.Date))return W==="=="?["after","before"]:W[0]===">"?["after"]:["before"];return L(eT(X.expression))},QA=(W)=>({rule:tU(W.limit)?aU(W.limit):W.limit,exclusive:W.comparator.length===1}),zA=(W,$)=>{let X=W.unsetRoot(),Y=W.scanner.location;W.parseOperand();let J=W.unsetRoot(),G=W.scanner.sliceChars(Y,W.scanner.location);if(W.root=X,!J.hasKind("unit")||typeof J.unit!=="number"&&!(J.unit instanceof Date))return W.error(f7($,G,"right"));let H=J.unit,Q=$.length===1,z=Fw($,typeof H==="number"?H:G,X,"right");for(let T of z)W.constrainRoot(T,$==="=="?{rule:H}:{rule:H,exclusive:Q});if(!W.branches.leftBound)return;if(!z1($,Yw))return W.error(Y9($));let F=Fw(W.branches.leftBound.comparator,W.branches.leftBound.limit,X,"left");W.constrainRoot(F[0],QA(W.branches.leftBound)),W.branches.leftBound=null},f7=(W,$,X)=>`Comparator ${X==="left"?P$[W]:W} must be ${X==="left"?"preceded":"followed"} by a corresponding literal (was ${$})`;var ww=(W)=>{W.scanner.shiftUntilNonWhitespace();let $=W.scanner.shiftUntilNextTerminator();W.root=W.root.brand($)};var _w=(W)=>{let $=W.scanner.shiftUntilNextTerminator(),X=fT($,{errorOnFail:Mw($)});if(X===0)W.error(Mw(0));W.root=W.root.constrain("divisor",X)},Mw=(W)=>`% operator must be followed by a non-zero integer literal (was ${W})`;var P7=(W)=>{let $=W.scanner.shift();return $===""?W.finalize(""):$==="["?W.scanner.shift()==="]"?W.setRoot(W.root.array()):W.error(FA):$==="|"?W.scanner.lookahead===">"?W.shiftedByOne().pushRootToBranch("|>"):W.pushRootToBranch($):$==="&"?W.pushRootToBranch($):$===")"?W.finalizeGroup():w2.lookaheadIsFinalizing($,W.scanner.unscanned)?W.finalize($):z1($,Uw)?Tw(W,$):$==="%"?_w(W):$==="#"?ww(W):($ in y2)?P7(W):W.error(J9($))},J9=(W,$="")=>`'${W}' is not allowed here${$&&` (should be ${$})`}`,FA="Missing expected ']'";var Dw=(W)=>{let $=W.unsetRoot();W.parseOperand();let X=W.unsetRoot();if(!X.hasKind("unit"))return W.error(TA(X.expression));let Y=X.unit instanceof Date?()=>new Date(X.unit):X.unit;return[$,"=",Y]},TA=(W)=>`Default value '${W}' must a literal value`;var x7=(W,$)=>{let X=$.$.maybeResolveRoot(W);if(X)return X;if(W.endsWith("[]")){let G=$.$.maybeResolveRoot(W.slice(0,-2));if(G)return G.array()}let Y=new x$(new w2(W),$),J=UA(Y);if(Y.finalizer===">")L(J9(">"));return J},UA=(W)=>{W.parseOperand();let $=l6(W).root;if(!$)return V0(`Root was unexpectedly unset after parsing string '${W.scanner.scanned}'`);if(W.finalizer==="=")$=Dw(W);else if(W.finalizer==="?")$=[$,"?"];if(W.scanner.shiftUntilNonWhitespace(),W.scanner.lookahead)L(J9(W.scanner.lookahead));return $},l6=(W)=>{while(W.finalizer===void 0)wA(W);return W},wA=(W)=>W.hasRoot()?W.parseOperator():W.parseOperand();class x${root;branches={prefixes:[],leftBound:null,intersection:null,union:null,pipe:null};finalizer;groups=[];scanner;ctx;constructor(W,$){this.scanner=W,this.ctx=$}error(W){return L(W)}hasRoot(){return this.root!==void 0}setRoot(W){this.root=W}unsetRoot(){let W=this.root;return this.root=void 0,W}constrainRoot(...W){this.root=this.root.constrain(W[0],W[1])}finalize(W){if(this.groups.length)return this.error(X9(")"));this.finalizeBranches(),this.finalizer=W}reduceLeftBound(W,$){let X=P$[$];if(!z1(X,Xw))return this.error(Y9($));if(this.branches.leftBound)return this.error(Hw(this.branches.leftBound.limit,this.branches.leftBound.comparator,W,X));this.branches.leftBound={comparator:X,limit:W}}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 W=this.groups.pop();if(!W)return this.error(Jw(this.scanner.unscanned));this.branches=W}addPrefix(W){this.branches.prefixes.push(W)}applyPrefixes(){while(this.branches.prefixes.length){let W=this.branches.prefixes.pop();this.root=W==="keyof"?this.root.keyof():V0(`Unexpected prefix '${W}'`)}}pushRootToBranch(W){this.assertRangeUnset(),this.applyPrefixes();let $=this.root;if(this.root=void 0,this.branches.intersection=this.branches.intersection?.rawAnd($)??$,W==="&")return;if(this.branches.union=this.branches.union?.rawOr(this.branches.intersection)??this.branches.intersection,this.branches.intersection=null,W==="|")return;this.branches.pipe=this.branches.pipe?.rawPipeOnce(this.branches.union)??this.branches.union,this.branches.union=null}parseUntilFinalizer(){return l6(new x$(this.scanner,this.ctx))}parseOperator(){return P7(this)}parseOperand(){return j7(this)}assertRangeUnset(){if(this.branches.leftBound)return this.error(Gw(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 MA="An empty string is not a valid generic parameter name",G9=(W,$,X)=>{W.shiftUntilNonWhitespace();let Y=W.shiftUntilNextTerminator();if(Y===""){if(W.lookahead===""&&$.length)return $;return L(MA)}return W.shiftUntilNonWhitespace(),_A(W,Y,$,X)},Ow="extends ",_A=(W,$,X,Y)=>{if(W.shiftUntilNonWhitespace(),W.unscanned.startsWith(Ow))W.jumpForward(Ow.length);else{if(W.lookahead===",")W.shift();return X.push($),G9(W,X,Y)}let J=l6(new x$(W,Y));return X.push([$,J.root]),G9(W,X,Y)};class v7 extends BW{$;constructor(W){super((...$)=>new o6(W)(...$),{bind:W});this.$=W}in(W){return new o6(this.$,W===void 0?void 0:this.$.parse(W))}at(W,$){return new o6(this.$).at(W,$)}case(W,$){return new o6(this.$).case(W,$)}}class o6 extends BW{$;in;key;branches=[];constructor(W,$){super((X)=>this.caseEntries(Object.entries(X).map(([Y,J])=>Y==="default"?[Y,J]:[this.$.parse(Y),J])));this.$=W,this.in=$}at(W,$){if(this.key)L(OA);if(this.branches.length)L(DA);return this.key=W,$?this.match($):this}case(W,$){return this.caseEntry(this.$.parse(W),$)}caseEntry(W,$){let Y=(this.key?this.$.parse({[this.key]:W}):W).pipe($);return this.branches.push(Y),this}match(W){return this(W)}strings(W){return this.caseEntries(Object.entries(W).map(([$,X])=>$==="default"?[$,X]:[this.$.node("unit",{unit:$}),X]))}caseEntries(W){for(let $=0;$<W.length;$++){let[X,Y]=W[$];if(X==="default"){if($!==W.length-1)L("default may only be specified as the last key of a switch definition");return this.default(Y)}if(typeof Y!=="function")return L(`Value for case "${X}" must be a function (was ${Q1(Y)})`);this.caseEntry(X,Y)}return this}default(W){if(typeof W==="function")this.case(r.unknown,W);let $={branches:this.branches,ordered:!0};if(W==="never"||W==="assert")$.meta={onFail:Vw};let X=this.$.node("union",$);if(!this.in)return this.$.finalize(X);let Y=this.in.pipe(X);if(W==="never"||W==="assert")Y=Y.configureReferences({onFail:Vw},"self");return this.$.finalize(Y)}}var Vw=(W)=>W.throw(),DA="A key matcher must be specified before the first case i.e. match.at('foo') or match.in<object>().at('bar')",OA="At most one key matcher may be specified per expression";var H9=(W,$)=>{if(C0(W)){if(W[1]==="=")return[$.$.parseOwnDefinitionFormat(W[0],$),"=",W[2]];if(W[1]==="?")return[$.$.parseOwnDefinitionFormat(W[0],$),"?"]}return Q9(W,$)},Kw="Only required keys may make their values optional, e.g. { [mySymbol]: ['number', '?'] }",Lw="Only required keys may specify default values, e.g. { value: 'number = 0' }";var Aw=(W,$)=>{let X,Y={},J=E8(W);for(let[H,Q]of J){let z=LA(H);if(z.kind==="spread"){if(!uW(Y))return L(KA);let O=$.$.parseOwnDefinitionFormat(Q,$);if(O.equals(r.object))continue;if(!O.hasKind("intersection")||!O.basis?.equals(r.object))return L(AA(O.expression));X=O.structure;continue}if(z.kind==="undeclared"){if(Q!=="reject"&&Q!=="delete"&&Q!=="ignore")L(VA(Q));Y.undeclared=Q;continue}let F=H9(Q,$),T=z;if(z.kind==="required"){if(!C0(F))b7(Y,"required",{key:z.normalized,value:F},$);else b7(Y,"optional",F[1]==="="?{key:z.normalized,value:F[0],default:F[2]}:{key:z.normalized,value:F[0]},$);continue}if(C0(F)){if(F[1]==="?")L(Kw);if(F[1]==="=")L(Lw)}if(z.kind==="optional"){b7(Y,"optional",{key:z.normalized,value:F},$);continue}let U=$.$.parseOwnDefinitionFormat(T.normalized,$),M=aY(U,F,$.$);if(M.index)Y.index=M0(Y.index,M.index);if(M.required)Y.required=M0(Y.required,M.required)}let G=$.$.node("structure",Y);return $.$.parseSchema({domain:"object",structure:X?.merge(G)??G})},b7=(W,$,X,Y)=>{W[$]=M0(W[$],Y.$.node($,X))},VA=(W)=>`Value of '+' key must be 'reject', 'delete', or 'ignore' (was ${X0(W)})`,KA="Spread operator may only be used as the first key in an object",LA=(W)=>typeof W==="symbol"?{kind:"required",normalized:W}:W.at(-1)==="?"?W.at(-2)===B6?{kind:"required",normalized:`${W.slice(0,-2)}?`}:{kind:"optional",normalized:W.slice(0,-1)}:W[0]==="["&&W.at(-1)==="]"?{kind:"index",normalized:W.slice(1,-1)}:W[0]===B6&&W[1]==="["&&W.at(-1)==="]"?{kind:"required",normalized:W.slice(1)}:W==="..."?{kind:"spread"}:W==="+"?{kind:"undeclared"}:{kind:"required",normalized:W==="\\..."?"...":W==="\\+"?"+":W},AA=(W)=>`Spread operand must resolve to an object literal type (was ${W})`;var Nw=(W,$)=>IA(W)?Sw[W[0]](W,$):CA(W)?Zw[W[1]](W,$):null,EA=(W,$)=>$.$.parseOwnDefinitionFormat(W[1],$).keyof(),y7=(W,$)=>{if(W[2]===void 0)return L(I7(W[1],""));let X=$.$.parseOwnDefinitionFormat(W[0],$),Y=$.$.parseOwnDefinitionFormat(W[2],$);if(W[1]==="|")return $.$.node("union",{branches:[X,Y]});let J=W[1]==="&"?c1(X,Y,$.$):x6(X,Y,$.$);if(J instanceof P)return J.throw();return J},NA=(W,$)=>$.$.parseOwnDefinitionFormat(W[0],$).array(),RA=(W,$)=>{if(typeof W[2]!=="function")return L(Rw("=>",W[2]));return $.$.parseOwnDefinitionFormat(W[0],$).pipe(W[2])},Rw=(W,$)=>`${W===":"?"Narrow":"Morph"} expression requires a function following '${W}' (was ${typeof $})`,BA=(W,$)=>{if(typeof W[2]!=="function")return L(Rw(":",W[2]));return $.$.parseOwnDefinitionFormat(W[0],$).constrain("predicate",W[2])},ZA=(W,$)=>$.$.parseOwnDefinitionFormat(W[0],$).configureReferences(W[2],"shallow"),Bw=(W)=>W,SA=Bw({"[]":NA,"?":()=>L(W9)}),qA=Bw({"|":y7,"&":y7,":":BA,"=>":RA,"|>":y7,"@":ZA,"=":()=>L($9)}),Zw={...SA,...qA},CA=(W)=>Zw[W[1]]!==void 0,kA=(W)=>W,Sw=kA({keyof:EA,instanceof:(W,$)=>{if(typeof W[1]!=="function")return L(Ew(N6(W[1])));let X=W.slice(1).map((Y)=>typeof Y==="function"?$.$.node("proto",{proto:Y}):L(Ew(N6(Y))));return X.length===1?X[0]:$.$.node("union",{branches:X})},"===":(W,$)=>$.$.units(W.slice(1))}),IA=(W)=>Sw[W[0]]!==void 0,Ew=(W)=>`Expected a constructor following 'instanceof' operator (was ${W})`;var kw=(W,$)=>{let X=[{}],Y=0;while(Y<W.length){let J=!1;if(W[Y]==="..."&&Y<W.length-1)J=!0,Y++;let G=H9(W[Y],$),[H,Q,z]=!C0(G)?[G]:G;if(Y++,J){if(!H.extends(B.intrinsic.Array))return L(PA(H.expression));X=X.flatMap((F)=>H.distribute((T)=>fA(mY(F),T)))}else X=X.map((F)=>{if(Q==="?")return Iw(F,H);if(Q==="=")return jA(F,H,z);return h7(F,H)})}return $.$.parseSchema(X.map((J)=>uW(J)?{proto:Array,exactLength:0}:{proto:Array,sequence:J}))},h7=(W,$)=>{if(W.defaultables||W.optionals)return L(W.variadic?D7:xA);if(W.variadic)W.postfix=M0(W.postfix,$);else W.prefix=M0(W.prefix,$);return W},Iw=(W,$)=>{if(W.variadic)return L(jw);return W.optionals=M0(W.optionals,$),W},jA=(W,$,X)=>{if(W.variadic)return L(jw);if(W.optionals)return L(vA);return W.defaultables=M0(W.defaultables,[[$,X]]),W},qw=(W,$)=>{if(W.postfix)L(Cw);if(W.variadic){if(!W.variadic.equals($))L(Cw)}else W.variadic=$.internal;return W},fA=(W,$)=>{let X=$.select({method:"find",kind:"sequence"});if(!X)return qw(W,B.intrinsic.unknown);if(X.prefix)for(let Y of X.prefix)h7(W,Y);if(X.optionals)for(let Y of X.optionals)Iw(W,Y);if(X.variadic)qw(W,X.variadic);if(X.postfix)for(let Y of X.postfix)h7(W,Y);return W},PA=(W)=>`Spread element must be an array (was ${W})`,Cw="A tuple may have at most one variadic element",xA="A required element may not follow an optional element",jw="An optional element may not follow a variadic element";var vA="A defaultable element may not follow an optional element without a default";var bA={},Q9=(W,$)=>{if(typeof W==="string"){if($.args&&Object.keys($.args).some((Y)=>W.includes(Y)))return x7(W,$);let X=bA[$.$.name]??={};return X[W]??=x7(W,$)}return g1(W,"object")?yA(W,$):L(g7(Q1(W)))},yA=(W,$)=>{let X=E6(W);switch(X){case void 0:if(d(W,"root"))return W;return Aw(W,$);case"Array":return hA(W,$);case"RegExp":return $.$.node("intersection",{domain:"string",pattern:W},{prereduced:!0});case"Function":{let Y=b2(W)?W():W;if(d(Y,"root"))return Y;return L(g7("Function"))}default:return L(g7(X??X0(W)))}},hA=(W,$)=>Nw(W,$)??kw(W,$),g7=(W)=>`Type definitions must be strings or objects (was ${W})`;class m7 extends BW{constructor(W){let $=Object.assign({errors:p1,hkt:N1,$:W,raw:W.parse,module:W.constructor.module,scope:W.constructor.scope,define:W.define,match:W.match,generic:W.generic,schema:W.schema,keywords:W.ambient,unit:W.unit,enumerated:W.enumerated,instanceOf:W.instanceOf,valueOf:W.valueOf,or:W.or,and:W.and,merge:W.merge,pipe:W.pipe},W.ambientAttachments);super((...X)=>{if(X.length===1)return W.parse(X[0]);if(X.length===2&&typeof X[0]==="string"&&X[0][0]==="<"&&X[0].at(-1)===">"){let Y=X[0].slice(1,-1),J=W.parseGenericParams(Y,{});return new p2(J,X[1],W,W,null)}return W.parse(X)},{bind:W,attach:$})}}var v$=B;class z9 extends sY{get ambientAttachments(){if(!v$.typeAttachments)return;return this.cacheGetter("ambientAttachments",$0(v$.typeAttachments,(W,$)=>[W,this.bindReference($)]))}preparseOwnAliasEntry(W,$){let X=W.indexOf("<");if(X===-1){if(d($,"module")||d($,"generic"))return[W,$];let G=this.name==="ark"?W:W==="root"?this.name:`${this.name}.${W}`,H=this.resolvedConfig.keywords?.[G];if(H)$=[$,"@",H];return[W,$]}if(W.at(-1)!==">")L("'>' must be the last character of a generic declaration in a scope");let Y=W.slice(0,X),J=W.slice(X+1,-1);return[Y,()=>{let G=this.parseGenericParams(J,{alias:Y});return tT(G,$,this)}]}parseGenericParams(W,$){return G9(new w2(W),[],this.createParseContext({...$,def:W,prefix:"generic"}))}normalizeRootScopeValue(W){if(b2(W)&&!d(W,"generic"))return W();return W}preparseOwnDefinitionFormat(W,$){return{...$,def:W,prefix:$.alias??"type"}}parseOwnDefinitionFormat(W,$){if(!($.alias&&($.alias in this.aliases))&&!$.args)$.args={this:$.id};let Y=Q9(W,$);if(C0(Y)){if(Y[1]==="=")return L($9);if(Y[1]==="?")return L(W9)}return Y}unit=(W)=>this.units([W]);valueOf=(W)=>this.units(OT(W));enumerated=(...W)=>this.units(W);instanceOf=(W)=>this.node("proto",{proto:W},{prereduced:!0});or=(...W)=>this.schema(W.map(($)=>this.parse($)));and=(...W)=>W.reduce(($,X)=>$.and(this.parse(X)),this.intrinsic.unknown);merge=(...W)=>W.reduce(($,X)=>$.merge(this.parse(X)),this.intrinsic.object);pipe=(...W)=>this.intrinsic.unknown.pipe(...W);match=new v7(this);declare=()=>({type:this.type});define(W){return W}type=new m7(this);static scope=(W,$={})=>new z9(W,$);static module=(W,$={})=>this.scope(W,$).export()}var p7=Object.assign(z9.scope,{define:(W)=>W}),z0=z9;class fw extends N1{description='merge an object\'s properties onto another like `Merge(User, { isAdmin: "true" })`'}var gA=UW(["base",r.object],["props",r.object])((W)=>W.base.merge(W.props),fw),Pw=z0.module({Key:r.key,Merge:gA});class xw extends N1{}var mA=UW("element")((W)=>{let $=W.element.exclude(r.Array),X=$.array();return $.rawOr(X).pipe(v2).distribute((Y)=>Y.assertHasKind("morph").declareOut(X),E0)},xw),vw=z0.module({root:r.Array,readonly:"root",index:r.nonNegativeIntegerString,liftFrom:mA},{name:"Array"});var u7=E0(["string",R8.FileConstructor]),pA=u7.rawOr(u7.array()),bw=E0({meta:"an object representing parsed form data",domain:"object",index:{signature:"string",value:pA}}),yw=z0.module({root:["instanceof",FormData],value:u7,parsed:bw,parse:E0({in:FormData,morphs:(W)=>{let $={};for(let[X,Y]of W)if(X in $){let J=$[X];if(typeof J==="string"||J instanceof R8.FileConstructor)$[X]=[J,Y];else J.push(Y)}else $[X]=Y;return $},declaredOut:bw})},{name:"FormData"});var hw=z0.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 uA={Boolean:1,Number:1,String:1},gw=z0.module({...$0({...C5,...I5},(W,$)=>(W in uA)?[]:[W,["instanceof",$]]),Array:vw,TypedArray:hw,FormData:yw});var cA=E0({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"}),dA=E0({domain:"number",divisor:1}),F9=z0.module({root:r.number,integer:dA,epoch:cA,safe:E0({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 h0=(W,$,X)=>{let Y={domain:"string",pattern:{rule:W.source,flags:W.flags,meta:$}};if(X)Y.meta={format:X};return f$("intersection",Y)},mw=h0(Z6,"a well-formed integer string"),sw=z0.module({root:mw,parse:E0({in:mw,morphs:(W,$)=>{let X=Number.parseInt(W);return Number.isSafeInteger(X)?X:$.error("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")},declaredOut:r.integer})},{name:"string.integer"}),lA=h0(/^[\dA-Fa-f]+$/,"hex characters only"),oA=z0.module({root:h0(/^(?:[\d+/A-Za-z]{4})*(?:[\d+/A-Za-z]{2}==|[\d+/A-Za-z]{3}=)?$/,"base64-encoded"),url:h0(/^(?:[\w-]{4})*(?:[\w-]{2}(?:==|%3D%3D)?|[\w-]{3}(?:=|%3D)?)?$/,"base64url-encoded")},{name:"string.base64"}),pw=h0(/^[A-Z].*$/,"capitalized"),iA=z0.module({root:E0({in:"string",morphs:(W)=>W.charAt(0).toUpperCase()+W.slice(1),declaredOut:pw}),preformatted:pw},{name:"string.capitalize"}),nA=(W)=>{let $=W.replaceAll(/[ -]+/g,""),X=0,Y,J,G=!1;for(let H=$.length-1;H>=0;H--){if(Y=$.substring(H,H+1),J=Number.parseInt(Y,10),G)J*=2,X+=J>=10?J%10+1:J;else X+=J;G=!G}return!!(X%10===0?$:!1)},rA=/^(?: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}))$/,tA=E0({domain:"string",pattern:{meta:"a credit card number",rule:rA.source},predicate:{meta:"a credit card number",predicate:nA}});var aA=/^([+-]?\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 sA=(W)=>!Number.isNaN(new Date(W).valueOf()),uw=E0({domain:"string",predicate:{meta:"a parsable date",predicate:sA}}).assertHasKind("intersection"),cw=sw.root.internal.narrow((W,$)=>{let X=Number.parseInt(W),Y=F9.epoch(X);if(Y instanceof p1)return $.errors.merge(Y),!1;return!0}).configure({description:"an integer string representing a safe Unix timestamp"},"self").assertHasKind("intersection"),eA=z0.module({root:cw,parse:E0({in:cw,morphs:(W)=>new Date(W),declaredOut:r.Date})},{name:"string.date.epoch"}),dw=h0(aA,"an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection"),WE=z0.module({root:dw,parse:E0({in:dw,morphs:(W)=>new Date(W),declaredOut:r.Date})},{name:"string.date.iso"}),$E=z0.module({root:uw,parse:E0({declaredIn:uw,in:"string",morphs:(W,$)=>{let X=new Date(W);if(Number.isNaN(X.valueOf()))return $.error("a parsable date");return X},declaredOut:r.Date}),iso:WE,epoch:eA},{name:"string.date"}),XE=h0(/^[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z]{2,}$/,"an email address","email"),lw="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",u2=`(${lw}[.]){3}${lw}`,YE=new RegExp(`^${u2}$`),a0="(?:[0-9a-fA-F]{1,4})",JE=new RegExp(`^((?:${a0}:){7}(?:${a0}|:)|(?:${a0}:){6}(?:${u2}|:${a0}|:)|(?:${a0}:){5}(?::${u2}|(:${a0}){1,2}|:)|(?:${a0}:){4}(?:(:${a0}){0,1}:${u2}|(:${a0}){1,3}|:)|(?:${a0}:){3}(?:(:${a0}){0,2}:${u2}|(:${a0}){1,4}|:)|(?:${a0}:){2}(?:(:${a0}){0,3}:${u2}|(:${a0}){1,5}|:)|(?:${a0}:){1}(?:(:${a0}){0,4}:${u2}|(:${a0}){1,6}|:)|(?::((?::${a0}){0,5}:${u2}|(?::${a0}){1,7}|:)))(%[0-9a-zA-Z.]{1,})?$`),GE=z0.module({root:["v4 | v6","@","an IP address"],v4:h0(YE,"an IPv4 address","ipv4"),v6:h0(JE,"an IPv6 address","ipv6")},{name:"string.ip"}),b$="a JSON string",ew=(W)=>{if(!(W instanceof SyntaxError))throw W;return`must be ${b$} (${W})`},HE=E0({meta:b$,domain:"string",predicate:{meta:b$,predicate:(W,$)=>{try{return JSON.parse(W),!0}catch(X){return $.reject({code:"predicate",expected:b$,problem:ew(X)})}}}}),QE=(W,$)=>{if(W.length===0)return $.error({code:"predicate",expected:b$,actual:"empty"});try{return JSON.parse(W)}catch(X){return $.error({code:"predicate",expected:b$,problem:ew(X)})}},zE=z0.module({root:HE,parse:E0({meta:"safe JSON string parser",in:"string",morphs:QE,declaredOut:r.jsonObject})},{name:"string.json"}),ow=h0(/^[a-z]*$/,"only lowercase letters"),FE=z0.module({root:E0({in:"string",morphs:(W)=>W.toLowerCase(),declaredOut:ow}),preformatted:ow},{name:"string.lower"}),WM=["NFC","NFD","NFKC","NFKD"],i6=$0(WM,(W,$)=>[$,E0({domain:"string",predicate:(X)=>X.normalize($)===X,meta:`${$}-normalized unicode`})]),T9=$0(WM,(W,$)=>[$,E0({in:"string",morphs:(X)=>X.normalize($),declaredOut:i6[$]})]),TE=z0.module({root:T9.NFC,preformatted:i6.NFC},{name:"string.normalize.NFC"}),UE=z0.module({root:T9.NFD,preformatted:i6.NFD},{name:"string.normalize.NFD"}),wE=z0.module({root:T9.NFKC,preformatted:i6.NFKC},{name:"string.normalize.NFKC"}),ME=z0.module({root:T9.NFKD,preformatted:i6.NFKD},{name:"string.normalize.NFKD"}),_E=z0.module({root:"NFC",NFC:TE,NFD:UE,NFKC:wE,NFKD:ME},{name:"string.normalize"}),iw=h0(yY,"a well-formed numeric string"),DE=z0.module({root:iw,parse:E0({in:iw,morphs:(W)=>Number.parseFloat(W),declaredOut:r.number})},{name:"string.numeric"}),nw="a regex pattern",OE=E0({domain:"string",predicate:{meta:nw,predicate:(W,$)=>{try{return new RegExp(W),!0}catch(X){return $.reject({code:"predicate",expected:nw,problem:String(X)})}}},meta:{format:"regex"}}),VE=/^(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-]+)*))?$/,KE=h0(VE,"a semantic version (see https://semver.org/)"),rw=h0(/^\S.*\S$|^\S?$/,"trimmed"),LE=z0.module({root:E0({in:"string",morphs:(W)=>W.trim(),declaredOut:rw}),preformatted:rw},{name:"string.trim"}),tw=h0(/^[A-Z]*$/,"only uppercase letters"),AE=z0.module({root:E0({in:"string",morphs:(W)=>W.toUpperCase(),declaredOut:tw}),preformatted:tw},{name:"string.upper"}),EE=(W)=>{if(URL.canParse)return URL.canParse(W);try{return new URL(W),!0}catch{return!1}},aw=E0({domain:"string",predicate:{meta:"a URL string",predicate:EE},meta:{format:"uri"}}),NE=z0.module({root:aw,parse:E0({declaredIn:aw,in:"string",morphs:(W,$)=>{try{return new URL(W)}catch{return $.error("a URL string")}},declaredOut:E0(URL)})},{name:"string.url"}),RE=z0.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:h0(/^[\da-f]{8}-[\da-f]{4}-1[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv1"),v2:h0(/^[\da-f]{8}-[\da-f]{4}-2[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv2"),v3:h0(/^[\da-f]{8}-[\da-f]{4}-3[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv3"),v4:h0(/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv4"),v5:h0(/^[\da-f]{8}-[\da-f]{4}-5[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv5"),v6:h0(/^[\da-f]{8}-[\da-f]{4}-6[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv6"),v7:h0(/^[\da-f]{8}-[\da-f]{4}-7[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv7"),v8:h0(/^[\da-f]{8}-[\da-f]{4}-8[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i,"a UUIDv8")},{name:"string.uuid"}),$M=z0.module({root:r.string,alpha:h0(/^[A-Za-z]*$/,"only letters"),alphanumeric:h0(/^[\dA-Za-z]*$/,"only letters and digits 0-9"),hex:lA,base64:oA,capitalize:iA,creditCard:tA,date:$E,digits:h0(/^\d*$/,"only digits 0-9"),email:XE,integer:sw,ip:GE,json:zE,lower:FE,normalize:_E,numeric:DE,regex:OE,semver:KE,trim:LE,upper:AE,url:NE,uuid:RE},{name:"string"});var XM=z0.module({bigint:r.bigint,boolean:r.boolean,false:r.false,never:r.never,null:r.null,number:r.number,object:r.object,string:r.string,symbol:r.symbol,true:r.true,unknown:r.unknown,undefined:r.undefined}),YM=z0.module({root:r.unknown,any:r.unknown},{name:"unknown"}),BE=z0.module({root:r.jsonObject,stringify:f$("morph",{in:r.jsonObject,morphs:(W)=>JSON.stringify(W),declaredOut:r.string})},{name:"object.json"}),JM=z0.module({root:r.object,json:BE},{name:"object"});class GM extends N1{description='instantiate an object from an index signature and corresponding value type like `Record("string", "number")`'}var ZE=UW(["K",r.key],"V")((W)=>({domain:"object",index:{signature:W.K,value:W.V}}),GM);class HM extends N1{description='pick a set of properties from an object like `Pick(User, "name | age")`'}var SE=UW(["T",r.object],["K",r.key])((W)=>W.T.pick(W.K),HM);class QM extends N1{description='omit a set of properties from an object like `Omit(User, "age")`'}var qE=UW(["T",r.object],["K",r.key])((W)=>W.T.omit(W.K),QM);class zM extends N1{description="make all named properties of an object optional like `Partial(User)`"}var CE=UW(["T",r.object])((W)=>W.T.partial(),zM);class FM extends N1{description="make all named properties of an object required like `Required(User)`"}var kE=UW(["T",r.object])((W)=>W.T.required(),FM);class TM extends N1{description='exclude branches of a union like `Exclude("boolean", "true")`'}var IE=UW("T","U")((W)=>W.T.exclude(W.U),TM);class UM extends N1{description='extract branches of a union like `Extract("0 | false | 1", "number")`'}var jE=UW("T","U")((W)=>W.T.extract(W.U),UM),wM=z0.module({Exclude:IE,Extract:jE,Omit:qE,Partial:CE,Pick:SE,Record:ZE,Required:kE});var c2=p7({...XM,...wM,...gw,...Pw,string:$M,number:F9,object:JM,unknown:YM},{prereducedAliases:!0,name:"ark"}),F1=c2.export();Object.assign(v$.ambient,F1);v$.typeAttachments={string:F1.string.root,number:F1.number.root,bigint:F1.bigint,boolean:F1.boolean,symbol:F1.symbol,undefined:F1.undefined,null:F1.null,object:F1.object.root,unknown:F1.unknown.root,false:F1.false,true:F1.true,never:F1.never,arrayIndex:F1.Array.index,Key:F1.Key,Record:F1.Record,Array:F1.Array.root,Date:F1.Date};var qW=Object.assign(c2.type,v$.typeAttachments),fE=c2.match,PE=c2.generic,Aa=c2.schema,xE=c2.define,vE=c2.declare;var bE="__vite_start_time"in globalThis,yE=typeof window!=="undefined",ha="vitest"in globalThis,M2=qW("string"),MM=qW('"true" | "false" | undefined'),_2=Z5({isServer:!bE&&!yE,server:{CI:qW("string | undefined").pipe(Boolean),POSTGRES_USER:M2,POSTGRES_PASSWORD:M2,POSTGRES_DATABASE:M2,POSTGRES_HOST:M2,POSTGRES_PORT:M2.pipe((W)=>Number.parseInt(W,10)),BACKEND_PORT:M2.pipe((W)=>Number.parseInt(W,10)),RUN_WORKERS_FROM_SOURCE:MM.pipe((W)=>W==="true"),FRONTEND_PORT:M2.pipe((W)=>Number.parseInt(W,10)),FRONTEND_ORIGINS:M2.pipe.try((W)=>JSON.parse(W),qW("string[]")),API_KEY_OPENAI:qW("string | undefined"),API_KEY_RESEND:qW("string | undefined")},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:M2,VITE_DEV_FRONTEND_HOST:qW("string | undefined"),VITE_DEV_HTTPS:MM.pipe((W)=>W==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var d7={};C_(d7,{users:()=>S8,untrackedUserColumnNames:()=>hE,twoFactorMethod:()=>KM,trackedUserColumnName:()=>gE,trackableUserColumnNames:()=>OM,signInHistory:()=>pE,role:()=>DM,players:()=>c7,passwordResetAttempts:()=>uE,games:()=>U9,banishedIps:()=>w9,accountActions:()=>mE,accountAction:()=>VM});function _M(W){return D`lower(${W})`}var DM=s4("role",["admin","user"]),S8=f2("users",{id:HW().primaryKey().defaultRandom(),username:k1({length:16}).notNull(),emailOffered:k1({length:254}).notNull(),emailVerified:k1({length:254}),password:k1({length:254}),createdAt:NW({withTimezone:!0}).notNull().defaultNow(),createdIp:k1({length:45}).notNull(),isActive:J6().notNull().default(!1),verifiedAt:NW({withTimezone:!0}),userRole:DM().default("user")},(W)=>[A5("usernameUniqueIndex").on(_M(W.username)),A5("emailVerifiedUniqueIndex").on(_M(W.emailVerified))]),hE=["id","createdAt","createdIp","isActive","verifiedAt"],OM=["username","emailOffered","emailVerified","password","userRole"],gE=s4("trackedUserColumnName",OM),VM=s4("accountAction",["cooldown","confirmEmail","signIn","resetPassword"]),mE=f2("accountActions",{userId:HW().references(()=>S8.id).primaryKey(),action:VM().notNull(),code:k1({length:254}).notNull(),wrongCodeCount:G6().notNull().default(0),expiresAt:NW({withTimezone:!0}).notNull()}),U9=f2("games",{id:HW().primaryKey().defaultRandom()}),c7=f2("players",{userId:HW().notNull().references(()=>S8.id,{onDelete:"cascade"}),gameId:HW().notNull().references(()=>U9.id,{onDelete:"cascade"}),score:G6().notNull()},(W)=>[GF({name:"players_userId_gameId_pk",columns:[W.userId,W.gameId]})]),pE=f2("signInHistory",{id:HW().primaryKey().defaultRandom(),userId:HW().references(()=>S8.id,{onDelete:"cascade"}),signInTime:NW({withTimezone:!0}).notNull().defaultNow(),ipAddress:k1({length:45}).notNull(),userAgent:k1({length:1024}),successful:J6().notNull().default(!1)}),KM=s4("twoFactorMethod",["email","phone"]),uE=f2("passwordResetAttempts",{id:HW().primaryKey().defaultRandom(),userId:HW().notNull().references(()=>S8.id,{onDelete:"cascade"}),requestedIp:k1({length:45}).notNull(),requestedAt:NW({withTimezone:!0}).notNull().defaultNow(),succeededIp:k1({length:45}),succeededAt:NW({withTimezone:!0}),verificationMethod:KM().notNull()}),w9=f2("banishedIps",{ip:k1({length:45}).primaryKey(),reason:k1({length:2048}).notNull(),banishedAt:NW({withTimezone:!0}).notNull().defaultNow(),banishedUntil:NW({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class l7{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(cE.resolve(__dirname,"notify_update.sql"));let W=[U1(S8),U1(U9),U1(c7)];await this.sql`SELECT create_notify_triggers(${this.sql.array(W)})`,await this.sql.listen("table_update",($)=>{let X=$.split(","),Y=X[0],J=X[1],G=`${Y}("${J}")`;if(this.observers.has(G))this.observers.get(G).next(G)})}constructor(W=!1,$={host:_2.POSTGRES_HOST,port:_2.POSTGRES_PORT,user:_2.POSTGRES_USER,password:_2.POSTGRES_PASSWORD,database:_2.POSTGRES_DATABASE}){this.options=$,this.sql=D$($),this.drizzle=vY(this.sql,{schema:d7,logger:W})}observe(W,$){if(!this.observers.has(W))this.observers.set(W,new Z0);this.observers.get(W).subscribe("SINGLETON",$)}}import{resolve as oE}from"path";import{existsSync as o7,mkdirSync as LM,readFileSync as dE,readdirSync as AM,rmSync as EM,statSync as NM,writeFileSync as lE}from"fs";import{resolve as i7}from"path";var RM=class{rootDir;get initialized(){return o7(this.rootDir)}initialize(){if(!this.initialized)LM(this.rootDir,{recursive:!0})}constructor(W){if(this.rootDir=W.path,W.eagerInit)this.initialize()}getItem(W){let $=i7(this.rootDir,W);if(o7($))return dE($,"utf-8");return null}setItem(W,$){this.initialize();let X=i7(this.rootDir,W);lE(X,$)}removeItem(W){let $=i7(this.rootDir,W);if(o7($))this.initialize(),EM($)}key(W){return AM(this.rootDir).sort((Y,J)=>{let G=NM(Y);return NM(J).ctimeMs-G.ctimeMs})[W]??null}clear(){EM(this.rootDir,{recursive:!0}),LM(this.rootDir,{recursive:!0})}get length(){return AM(this.rootDir).length}};var n7=new RM({path:oE(process.cwd(),"storage")});import*as M9 from"fs";import*as BM from"readline";function iE(W){let X=W.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(Y,J,G,H,Q)=>{let F={Jan:"01",Feb:"02",Mar:"03",Apr:"04",May:"05",Jun:"06",Jul:"07",Aug:"08",Sep:"09",Oct:"10",Nov:"11",Dec:"12"}[G];return`${H}-${F}-${J}T${Q}`});return new Date(X)}async function ZM(W,$="/var/log/nginx/access.log",X=new Date){let Y=new Map;if(!M9.existsSync($))return W.error(`Log file not found: ${$}`),Y;let J=M9.createReadStream($),G=BM.createInterface({input:J,crlfDelay:Number.POSITIVE_INFINITY}),H=new Date(X.getTime()-3600000);return G.on("line",(Q)=>{let z=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,F=Q.match(z);if(F?.groups){let T=F.groups.ip,U=F.groups.dateTime,M=iE(U);if(!Number.isNaN(M.getTime())){if(M>=H&&M<=X){let O=Y.get(T);if(!O)O=[],Y.set(T,O);O.push(Q)}}else W.error(`Failed to parse date: ${U}`)}}),new Promise((Q,z)=>{G.on("error",(F)=>{z(F)}),G.on("close",()=>{Q(Y)})})}function SM(W){return W.toJsonSchema()}var nE=["Network security adjudicator, your job is to determine if an IP address should be banned.","The IP address in question created the following logs on our server today:","```nginx.log\n"].join(`
128
128
  `);function qM(W){return nE+W.join(`
129
129
 
130
130
  `)}var CM={schema:qW([{shouldBanIp:"false"},"|",{shouldBanIp:"true",veryConciseReason:"string"}]),toJsonSchema:SM,fallback:{shouldBanIp:!1}};var tE=[".env","php"];async function kM({generator:W,logFilePath:$,logger:X,now:Y=new Date}){let J=W.usdBudget,G=new l7({logQuery(q,m){X.info("\uD83D\uDCDD query",q,m)}}),H=await ZM(X,$,Y),Q=[],z=W.from(CM),F=0,T=0;for(let[q,m]of H){X.info(`\uD83D\uDD0D ruling on ${q}. logs:`),X.info(m.map((v)=>` ${v}`).join(`
@@ -132,4 +132,4 @@ ${H},
132
132
  `),c=!0;break}if(c)continue;if(W.usdBudget>W.usdMinimum){let v=qM(m),h=await z(v);if(h.shouldBanIp)Q.push({ip:q,reason:h.veryConciseReason}),X.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${q}--${h.veryConciseReason}
133
133
  `);else T++,X.info(` \uD83D\uDD4A\uFE0F not banning ${q}
134
134
  `);F++}else{X.warn("\uD83D\uDCB0 insufficient funds to process all logs"),X.warn(`\uD83D\uDCB0 got through ${F}/${H.size} ips
135
- `);break}}let U=Q.length;if(Q.length>0)await G.drizzle.insert(w9).values(Q).onConflictDoNothing();let M=[],V=n7.getItem("lastTribunalProcessedDate"),K=new Date(V??"1970-01-01");try{M.push(...await G.drizzle.query.banishedIps.findMany({columns:{ip:!0},where:KY(w9.banishedAt,K)}))}catch(q){X.error(q)}try{if(process.env.EXPERIMENTAL_BAN_IPS)await Promise.all(M.map((q)=>new Promise((m,c)=>rE(`iptables -D INPUT -s ${q.ip} -j DROP`).on("exit",(v)=>{if(v===0)X.info(`\uD83E\uDDD1\u200D\u2696\uFE0F banned ${q.ip}`),m();else c(new Error(`iptables exited with code ${v}`))}))));else X.info("\uD83E\uDDD1\u200D\u2696\uFE0F skipping iptables update")}catch(q){if(q instanceof Error)X.error(q.message);else{let m=mH(q);X.error("iptables exited with error",m)}}n7.setItem("lastTribunalProcessedDate",Y.toISOString()),X.info(`\u2728 banned ${U} ips, didn't ban ${T} ips`);let N=J-W.usdBudget,I=N.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),C=J.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),B=Math.round(N/J*100);X.info(`\uD83D\uDCB8 spent ${I}, ${B}% of ${C} budget`)}var D2=new k9;Object.assign(console,D2.logger,{log:D2.logger.info});process.on("SIGINT",()=>{D2.logger.info("\u2757 received SIGINT; exiting gracefully"),_9()});process.on("SIGTERM",()=>{D2.logger.info("\u2757 received SIGTERM; exiting gracefully"),_9()});process.on("exit",()=>{D2.logger.info("\u2757 received exit; exiting gracefully"),_9()});D2.logger.info("\uD83D\uDEEB tribunal worker ready");var aE=new gH({usdBudget:0.01,usdMinimum:0,model:"gpt-4o-mini",apiKey:_2.API_KEY_OPENAI,cachingMode:"off",logger:D2.logger});if(_2.API_KEY_OPENAI===void 0&&!("VITEST"in import.meta.env))throw new Error("OPENAI_API_KEY is not set and vitest is not running.");await kM({generator:aE,logFilePath:"/var/log/nginx/access.log",logger:D2.logger});_9();function _9(){D2.logger.info("\uD83D\uDEEC tribunal server exiting"),process.exit(0)}
135
+ `);break}}let U=Q.length;if(Q.length>0)await G.drizzle.insert(w9).values(Q).onConflictDoNothing();let M=[],O=n7.getItem("lastTribunalProcessedDate"),K=new Date(O??"1970-01-01");try{M.push(...await G.drizzle.query.banishedIps.findMany({columns:{ip:!0},where:KY(w9.banishedAt,K)}))}catch(q){X.error(q)}try{if(process.env.EXPERIMENTAL_BAN_IPS)await Promise.all(M.map((q)=>new Promise((m,c)=>rE(`iptables -D INPUT -s ${q.ip} -j DROP`).on("exit",(v)=>{if(v===0)X.info(`\uD83E\uDDD1\u200D\u2696\uFE0F banned ${q.ip}`),m();else c(new Error(`iptables exited with code ${v}`))}))));else X.info("\uD83E\uDDD1\u200D\u2696\uFE0F skipping iptables update")}catch(q){if(q instanceof Error)X.error(q.message);else{let m=mH(q);X.error("iptables exited with error",m)}}n7.setItem("lastTribunalProcessedDate",Y.toISOString()),X.info(`\u2728 banned ${U} ips, didn't ban ${T} ips`);let N=J-W.usdBudget,I=N.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),C=J.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),R=Math.round(N/J*100);X.info(`\uD83D\uDCB8 spent ${I}, ${R}% of ${C} budget`)}var D2=new k9;Object.assign(console,D2.logger,{log:D2.logger.info});process.on("SIGINT",()=>{D2.logger.info("\u2757 received SIGINT; exiting gracefully"),_9()});process.on("SIGTERM",()=>{D2.logger.info("\u2757 received SIGTERM; exiting gracefully"),_9()});process.on("exit",()=>{D2.logger.info("\u2757 received exit; exiting gracefully"),_9()});D2.logger.info("\uD83D\uDEEB tribunal worker ready");var aE=new gH({usdBudget:0.01,usdMinimum:0,model:"gpt-4o-mini",apiKey:_2.API_KEY_OPENAI,cachingMode:"off",logger:D2.logger});if(_2.API_KEY_OPENAI===void 0&&!("VITEST"in import.meta.env))throw new Error("OPENAI_API_KEY is not set and vitest is not running.");await kM({generator:aE,logFilePath:"/var/log/nginx/access.log",logger:D2.logger});_9();function _9(){D2.logger.info("\uD83D\uDEEC tribunal server exiting"),process.exit(0)}