tempest.games 0.1.11 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/bin/backend.bun.js +2 -2
- package/bin/backend.worker.tribunal.bun.js +3 -3
- package/bin/frontend.bun.js +3 -3
- package/bin/setup-db.bun.js +50 -50
- package/package.json +7 -7
|
@@ -5,11 +5,11 @@ var GK=Object.create;var{getPrototypeOf:zK,defineProperty:hW,getOwnPropertyNames
|
|
|
5
5
|
`,JSON.stringify(k,null," "),`
|
|
6
6
|
`,`Here's the error message from zod:
|
|
7
7
|
`,y.error.toString()),X.push({response:k,error:y.error})}return S?.error(`safegen was unable to generate well-formed data after ${A} failed attempts.`),M}}}function SX(T){return["Please generate a response in JSON that conforms to the following JSON Schema:",JSON.stringify(T,null,2)].join(`
|
|
8
|
-
`)}import{createHash as d6}from"crypto";var GF="RFC3986",zF={RFC1738:(T)=>String(T).replace(/%20/g,"+"),RFC3986:(T)=>String(T)},$X="RFC1738";var c4=Array.isArray,X$=(()=>{let T=[];for(let S=0;S<256;++S)T.push("%"+((S<16?"0":"")+S.toString(16)).toUpperCase());return T})();var z0=1024,fX=(T,S,$,f,M)=>{if(T.length===0)return T;let J=T;if(typeof T==="symbol")J=Symbol.prototype.toString.call(T);else if(typeof T!=="string")J=String(T);if($==="iso-8859-1")return escape(J).replace(/%u[0-9a-f]{4}/gi,function(W){return"%26%23"+parseInt(W.slice(2),16)+"%3B"});let F="";for(let W=0;W<J.length;W+=z0){let A=J.length>=z0?J.slice(W,W+z0):J,k=[];for(let X=0;X<A.length;++X){let y=A.charCodeAt(X);if(y===45||y===46||y===95||y===126||y>=48&&y<=57||y>=65&&y<=90||y>=97&&y<=122||M===$X&&(y===40||y===41)){k[k.length]=A.charAt(X);continue}if(y<128){k[k.length]=X$[y];continue}if(y<2048){k[k.length]=X$[192|y>>6]+X$[128|y&63];continue}if(y<55296||y>=57344){k[k.length]=X$[224|y>>12]+X$[128|y>>6&63]+X$[128|y&63];continue}X+=1,y=65536+((y&1023)<<10|A.charCodeAt(X)&1023),k[k.length]=X$[240|y>>18]+X$[128|y>>12&63]+X$[128|y>>6&63]+X$[128|y&63]}F+=k.join("")}return F};function MX(T){if(!T||typeof T!=="object")return!1;return!!(T.constructor&&T.constructor.isBuffer&&T.constructor.isBuffer(T))}function _0(T,S){if(c4(T)){let $=[];for(let f=0;f<T.length;f+=1)$.push(S(T[f]));return $}return S(T)}var o4=Object.prototype.hasOwnProperty,JX={brackets(T){return String(T)+"[]"},comma:"comma",indices(T,S){return String(T)+"["+S+"]"},repeat(T){return String(T)}},y$=Array.isArray,g4=Array.prototype.push,FX=function(T,S){g4.apply(T,y$(S)?S:[S])},t4=Date.prototype.toISOString,dT={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:fX,encodeValuesOnly:!1,format:GF,formatter:zF[GF],indices:!1,serializeDate(T){return t4.call(T)},skipNulls:!1,strictNullHandling:!1};function p4(T){return typeof T==="string"||typeof T==="number"||typeof T==="boolean"||typeof T==="symbol"||typeof T==="bigint"}var H0={};function WX(T,S,$,f,M,J,F,W,A,k,X,y,w,G,z,Q,E,B){let L=T,b=B,C=0,D=!1;while((b=b.get(H0))!==void 0&&!D){let O=b.get(T);if(C+=1,typeof O!=="undefined")if(O===C)throw new RangeError("Cyclic object value");else D=!0;if(typeof b.get(H0)==="undefined")C=0}if(typeof k==="function")L=k(S,L);else if(L instanceof Date)L=w?.(L);else if($==="comma"&&y$(L))L=_0(L,function(O){if(O instanceof Date)return w?.(O);return O});if(L===null){if(J)return A&&!Q?A(S,dT.encoder,E,"key",G):S;L=""}if(p4(L)||MX(L)){if(A){let O=Q?S:A(S,dT.encoder,E,"key",G);return[z?.(O)+"="+z?.(A(L,dT.encoder,E,"value",G))]}return[z?.(S)+"="+z?.(String(L))]}let H=[];if(typeof L==="undefined")return H;let U;if($==="comma"&&y$(L)){if(Q&&A)L=_0(L,A);U=[{value:L.length>0?L.join(",")||null:void 0}]}else if(y$(k))U=k;else{let O=Object.keys(L);U=X?O.sort(X):O}let Z=W?String(S).replace(/\./g,"%2E"):String(S),h=f&&y$(L)&&L.length===1?Z+"[]":Z;if(M&&y$(L)&&L.length===0)return h+"[]";for(let O=0;O<U.length;++O){let o=U[O],P=typeof o==="object"&&typeof o.value!=="undefined"?o.value:L[o];if(F&&P===null)continue;let a=y&&W?o.replace(/\./g,"%2E"):o,MT=y$(L)?typeof $==="function"?$(h,a):h:h+(y?"."+a:"["+a+"]");B.set(T,C);let fT=new WeakMap;fT.set(H0,B),FX(H,WX(P,MT,$,f,M,J,F,W,$==="comma"&&Q&&y$(L)?null:A,k,X,y,w,G,z,Q,E,fT))}return H}function i4(T=dT){if(typeof T.allowEmptyArrays!=="undefined"&&typeof T.allowEmptyArrays!=="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof T.encodeDotInKeys!=="undefined"&&typeof T.encodeDotInKeys!=="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(T.encoder!==null&&typeof T.encoder!=="undefined"&&typeof T.encoder!=="function")throw new TypeError("Encoder has to be a function.");let S=T.charset||dT.charset;if(typeof T.charset!=="undefined"&&T.charset!=="utf-8"&&T.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let $=GF;if(typeof T.format!=="undefined"){if(!o4.call(zF,T.format))throw new TypeError("Unknown format option provided.");$=T.format}let f=zF[$],M=dT.filter;if(typeof T.filter==="function"||y$(T.filter))M=T.filter;let J;if(T.arrayFormat&&T.arrayFormat in JX)J=T.arrayFormat;else if("indices"in T)J=T.indices?"indices":"repeat";else J=dT.arrayFormat;if("commaRoundTrip"in T&&typeof T.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let F=typeof T.allowDots==="undefined"?!!T.encodeDotInKeys===!0?!0:dT.allowDots:!!T.allowDots;return{addQueryPrefix:typeof T.addQueryPrefix==="boolean"?T.addQueryPrefix:dT.addQueryPrefix,allowDots:F,allowEmptyArrays:typeof T.allowEmptyArrays==="boolean"?!!T.allowEmptyArrays:dT.allowEmptyArrays,arrayFormat:J,charset:S,charsetSentinel:typeof T.charsetSentinel==="boolean"?T.charsetSentinel:dT.charsetSentinel,commaRoundTrip:!!T.commaRoundTrip,delimiter:typeof T.delimiter==="undefined"?dT.delimiter:T.delimiter,encode:typeof T.encode==="boolean"?T.encode:dT.encode,encodeDotInKeys:typeof T.encodeDotInKeys==="boolean"?T.encodeDotInKeys:dT.encodeDotInKeys,encoder:typeof T.encoder==="function"?T.encoder:dT.encoder,encodeValuesOnly:typeof T.encodeValuesOnly==="boolean"?T.encodeValuesOnly:dT.encodeValuesOnly,filter:M,format:$,formatter:f,serializeDate:typeof T.serializeDate==="function"?T.serializeDate:dT.serializeDate,skipNulls:typeof T.skipNulls==="boolean"?T.skipNulls:dT.skipNulls,sort:typeof T.sort==="function"?T.sort:null,strictNullHandling:typeof T.strictNullHandling==="boolean"?T.strictNullHandling:dT.strictNullHandling}}function D0(T,S={}){let $=T,f=i4(S),M,J;if(typeof f.filter==="function")J=f.filter,$=J("",$);else if(y$(f.filter))J=f.filter,M=J;let F=[];if(typeof $!=="object"||$===null)return"";let W=JX[f.arrayFormat],A=W==="comma"&&f.commaRoundTrip;if(!M)M=Object.keys($);if(f.sort)M.sort(f.sort);let k=new WeakMap;for(let w=0;w<M.length;++w){let G=M[w];if(f.skipNulls&&$[G]===null)continue;FX(F,WX($[G],G,W,A,f.allowEmptyArrays,f.strictNullHandling,f.skipNulls,f.encodeDotInKeys,f.encode?f.encoder:null,f.filter,f.sort,f.allowDots,f.serializeDate,f.format,f.formatter,f.encodeValuesOnly,f.charset,k))}let X=F.join(f.delimiter),y=f.addQueryPrefix===!0?"?":"";if(f.charsetSentinel)if(f.charset==="iso-8859-1")y+="utf8=%26%2310003%3B&";else y+="utf8=%E2%9C%93&";return X.length>0?y+X:""}var ff="4.71.
|
|
8
|
+
`)}import{createHash as d6}from"crypto";var GF="RFC3986",zF={RFC1738:(T)=>String(T).replace(/%20/g,"+"),RFC3986:(T)=>String(T)},$X="RFC1738";var c4=Array.isArray,X$=(()=>{let T=[];for(let S=0;S<256;++S)T.push("%"+((S<16?"0":"")+S.toString(16)).toUpperCase());return T})();var z0=1024,fX=(T,S,$,f,M)=>{if(T.length===0)return T;let J=T;if(typeof T==="symbol")J=Symbol.prototype.toString.call(T);else if(typeof T!=="string")J=String(T);if($==="iso-8859-1")return escape(J).replace(/%u[0-9a-f]{4}/gi,function(W){return"%26%23"+parseInt(W.slice(2),16)+"%3B"});let F="";for(let W=0;W<J.length;W+=z0){let A=J.length>=z0?J.slice(W,W+z0):J,k=[];for(let X=0;X<A.length;++X){let y=A.charCodeAt(X);if(y===45||y===46||y===95||y===126||y>=48&&y<=57||y>=65&&y<=90||y>=97&&y<=122||M===$X&&(y===40||y===41)){k[k.length]=A.charAt(X);continue}if(y<128){k[k.length]=X$[y];continue}if(y<2048){k[k.length]=X$[192|y>>6]+X$[128|y&63];continue}if(y<55296||y>=57344){k[k.length]=X$[224|y>>12]+X$[128|y>>6&63]+X$[128|y&63];continue}X+=1,y=65536+((y&1023)<<10|A.charCodeAt(X)&1023),k[k.length]=X$[240|y>>18]+X$[128|y>>12&63]+X$[128|y>>6&63]+X$[128|y&63]}F+=k.join("")}return F};function MX(T){if(!T||typeof T!=="object")return!1;return!!(T.constructor&&T.constructor.isBuffer&&T.constructor.isBuffer(T))}function _0(T,S){if(c4(T)){let $=[];for(let f=0;f<T.length;f+=1)$.push(S(T[f]));return $}return S(T)}var o4=Object.prototype.hasOwnProperty,JX={brackets(T){return String(T)+"[]"},comma:"comma",indices(T,S){return String(T)+"["+S+"]"},repeat(T){return String(T)}},y$=Array.isArray,g4=Array.prototype.push,FX=function(T,S){g4.apply(T,y$(S)?S:[S])},t4=Date.prototype.toISOString,dT={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:fX,encodeValuesOnly:!1,format:GF,formatter:zF[GF],indices:!1,serializeDate(T){return t4.call(T)},skipNulls:!1,strictNullHandling:!1};function p4(T){return typeof T==="string"||typeof T==="number"||typeof T==="boolean"||typeof T==="symbol"||typeof T==="bigint"}var H0={};function WX(T,S,$,f,M,J,F,W,A,k,X,y,w,G,z,Q,E,B){let L=T,b=B,C=0,D=!1;while((b=b.get(H0))!==void 0&&!D){let O=b.get(T);if(C+=1,typeof O!=="undefined")if(O===C)throw new RangeError("Cyclic object value");else D=!0;if(typeof b.get(H0)==="undefined")C=0}if(typeof k==="function")L=k(S,L);else if(L instanceof Date)L=w?.(L);else if($==="comma"&&y$(L))L=_0(L,function(O){if(O instanceof Date)return w?.(O);return O});if(L===null){if(J)return A&&!Q?A(S,dT.encoder,E,"key",G):S;L=""}if(p4(L)||MX(L)){if(A){let O=Q?S:A(S,dT.encoder,E,"key",G);return[z?.(O)+"="+z?.(A(L,dT.encoder,E,"value",G))]}return[z?.(S)+"="+z?.(String(L))]}let H=[];if(typeof L==="undefined")return H;let U;if($==="comma"&&y$(L)){if(Q&&A)L=_0(L,A);U=[{value:L.length>0?L.join(",")||null:void 0}]}else if(y$(k))U=k;else{let O=Object.keys(L);U=X?O.sort(X):O}let Z=W?String(S).replace(/\./g,"%2E"):String(S),h=f&&y$(L)&&L.length===1?Z+"[]":Z;if(M&&y$(L)&&L.length===0)return h+"[]";for(let O=0;O<U.length;++O){let o=U[O],P=typeof o==="object"&&typeof o.value!=="undefined"?o.value:L[o];if(F&&P===null)continue;let a=y&&W?o.replace(/\./g,"%2E"):o,MT=y$(L)?typeof $==="function"?$(h,a):h:h+(y?"."+a:"["+a+"]");B.set(T,C);let fT=new WeakMap;fT.set(H0,B),FX(H,WX(P,MT,$,f,M,J,F,W,$==="comma"&&Q&&y$(L)?null:A,k,X,y,w,G,z,Q,E,fT))}return H}function i4(T=dT){if(typeof T.allowEmptyArrays!=="undefined"&&typeof T.allowEmptyArrays!=="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof T.encodeDotInKeys!=="undefined"&&typeof T.encodeDotInKeys!=="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(T.encoder!==null&&typeof T.encoder!=="undefined"&&typeof T.encoder!=="function")throw new TypeError("Encoder has to be a function.");let S=T.charset||dT.charset;if(typeof T.charset!=="undefined"&&T.charset!=="utf-8"&&T.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let $=GF;if(typeof T.format!=="undefined"){if(!o4.call(zF,T.format))throw new TypeError("Unknown format option provided.");$=T.format}let f=zF[$],M=dT.filter;if(typeof T.filter==="function"||y$(T.filter))M=T.filter;let J;if(T.arrayFormat&&T.arrayFormat in JX)J=T.arrayFormat;else if("indices"in T)J=T.indices?"indices":"repeat";else J=dT.arrayFormat;if("commaRoundTrip"in T&&typeof T.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let F=typeof T.allowDots==="undefined"?!!T.encodeDotInKeys===!0?!0:dT.allowDots:!!T.allowDots;return{addQueryPrefix:typeof T.addQueryPrefix==="boolean"?T.addQueryPrefix:dT.addQueryPrefix,allowDots:F,allowEmptyArrays:typeof T.allowEmptyArrays==="boolean"?!!T.allowEmptyArrays:dT.allowEmptyArrays,arrayFormat:J,charset:S,charsetSentinel:typeof T.charsetSentinel==="boolean"?T.charsetSentinel:dT.charsetSentinel,commaRoundTrip:!!T.commaRoundTrip,delimiter:typeof T.delimiter==="undefined"?dT.delimiter:T.delimiter,encode:typeof T.encode==="boolean"?T.encode:dT.encode,encodeDotInKeys:typeof T.encodeDotInKeys==="boolean"?T.encodeDotInKeys:dT.encodeDotInKeys,encoder:typeof T.encoder==="function"?T.encoder:dT.encoder,encodeValuesOnly:typeof T.encodeValuesOnly==="boolean"?T.encodeValuesOnly:dT.encodeValuesOnly,filter:M,format:$,formatter:f,serializeDate:typeof T.serializeDate==="function"?T.serializeDate:dT.serializeDate,skipNulls:typeof T.skipNulls==="boolean"?T.skipNulls:dT.skipNulls,sort:typeof T.sort==="function"?T.sort:null,strictNullHandling:typeof T.strictNullHandling==="boolean"?T.strictNullHandling:dT.strictNullHandling}}function D0(T,S={}){let $=T,f=i4(S),M,J;if(typeof f.filter==="function")J=f.filter,$=J("",$);else if(y$(f.filter))J=f.filter,M=J;let F=[];if(typeof $!=="object"||$===null)return"";let W=JX[f.arrayFormat],A=W==="comma"&&f.commaRoundTrip;if(!M)M=Object.keys($);if(f.sort)M.sort(f.sort);let k=new WeakMap;for(let w=0;w<M.length;++w){let G=M[w];if(f.skipNulls&&$[G]===null)continue;FX(F,WX($[G],G,W,A,f.allowEmptyArrays,f.strictNullHandling,f.skipNulls,f.encodeDotInKeys,f.encode?f.encoder:null,f.filter,f.sort,f.allowDots,f.serializeDate,f.format,f.formatter,f.encodeValuesOnly,f.charset,k))}let X=F.join(f.delimiter),y=f.addQueryPrefix===!0?"?":"";if(f.charsetSentinel)if(f.charset==="iso-8859-1")y+="utf8=%26%2310003%3B&";else y+="utf8=%E2%9C%93&";return X.length>0?y+X:""}var ff="4.71.1";var AX=!1,Mf=void 0,E0=void 0,u4=void 0,d4=void 0,r4=void 0,Q0=void 0,a4=void 0,_F=void 0,U0=void 0,V0=void 0,B0=void 0,HF=void 0,L0=void 0;function kX(T,S={auto:!1}){if(AX)throw new Error(`you must \`import 'openai/shims/${T.kind}'\` before importing anything else from openai`);if(Mf)throw new Error(`can't \`import 'openai/shims/${T.kind}'\` after \`import 'openai/shims/${Mf}'\``);AX=S.auto,Mf=T.kind,E0=T.fetch,u4=T.Request,d4=T.Response,r4=T.Headers,Q0=T.FormData,a4=T.Blob,_F=T.File,U0=T.ReadableStream,V0=T.getMultipartRequestOptions,B0=T.getDefaultAgent,HF=T.fileFromPath,L0=T.isFsReadStream}class N0{constructor(T){this.body=T}get[Symbol.toStringTag](){return"MultipartBody"}}function XX({manuallyImported:T}={}){let S=T?"You may need to use polyfills":`Add one of these imports before your first \`import \u2026 from 'openai'\`:
|
|
9
9
|
- \`import 'openai/shims/node'\` (if you're running on Node)
|
|
10
10
|
- \`import 'openai/shims/web'\` (otherwise)
|
|
11
11
|
`,$,f,M,J;try{$=fetch,f=Request,M=Response,J=Headers}catch(F){throw new Error(`this environment is missing the following Web Fetch API type: ${F.message}. ${S}`)}return{kind:"web",fetch:$,Request:f,Response:M,Headers:J,FormData:typeof FormData!=="undefined"?FormData:class F{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${S}`)}},Blob:typeof Blob!=="undefined"?Blob:class F{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${S}`)}},File:typeof File!=="undefined"?File:class F{constructor(){throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${S}`)}},ReadableStream:typeof ReadableStream!=="undefined"?ReadableStream:class F{constructor(){throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${S}`)}},getMultipartRequestOptions:async(F,W)=>({...W,body:new N0(F)}),getDefaultAgent:(F)=>{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:(F)=>!1}}import{ReadStream as s4}from"fs";function yX(){let T=XX();function S($){return $ instanceof s4}return{...T,isFsReadStream:S}}if(!Mf)kX(yX(),{auto:!0});class $T extends Error{}class gT extends $T{constructor(T,S,$,f){super(`${gT.makeMessage(T,S,$)}`);this.status=T,this.headers=f,this.request_id=f?.["x-request-id"];let M=S;this.error=M,this.code=M?.code,this.param=M?.param,this.type=M?.type}static makeMessage(T,S,$){let f=S?.message?typeof S.message==="string"?S.message:JSON.stringify(S.message):S?JSON.stringify(S):$;if(T&&f)return`${T} ${f}`;if(T)return`${T} status code (no body)`;if(f)return f;return"(no status code or body)"}static generate(T,S,$,f){if(!T)return new Jf({message:$,cause:CF(S)});let M=S?.error;if(T===400)return new DF(T,M,$,f);if(T===401)return new EF(T,M,$,f);if(T===403)return new QF(T,M,$,f);if(T===404)return new UF(T,M,$,f);if(T===409)return new VF(T,M,$,f);if(T===422)return new BF(T,M,$,f);if(T===429)return new LF(T,M,$,f);if(T>=500)return new NF(T,M,$,f);return new gT(T,M,$,f)}}class SS extends gT{constructor({message:T}={}){super(void 0,void 0,T||"Request was aborted.",void 0);this.status=void 0}}class Jf extends gT{constructor({message:T,cause:S}){super(void 0,void 0,T||"Connection error.",void 0);if(this.status=void 0,S)this.cause=S}}class Ff extends Jf{constructor({message:T}={}){super({message:T??"Request timed out."})}}class DF extends gT{constructor(){super(...arguments);this.status=400}}class EF extends gT{constructor(){super(...arguments);this.status=401}}class QF extends gT{constructor(){super(...arguments);this.status=403}}class UF extends gT{constructor(){super(...arguments);this.status=404}}class VF extends gT{constructor(){super(...arguments);this.status=409}}class BF extends gT{constructor(){super(...arguments);this.status=422}}class LF extends gT{constructor(){super(...arguments);this.status=429}}class NF extends gT{}class aM extends $T{constructor(){super("Could not parse response content as the length limit was reached")}}class eM extends $T{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class o${constructor(){this.buffer=[],this.trailingCR=!1}decode(T){let S=this.decodeText(T);if(this.trailingCR)S="\r"+S,this.trailingCR=!1;if(S.endsWith("\r"))this.trailingCR=!0,S=S.slice(0,-1);if(!S)return[];let $=o$.NEWLINE_CHARS.has(S[S.length-1]||""),f=S.split(o$.NEWLINE_REGEXP);if($)f.pop();if(f.length===1&&!$)return this.buffer.push(f[0]),[];if(this.buffer.length>0)f=[this.buffer.join("")+f[0],...f.slice(1)],this.buffer=[];if(!$)this.buffer=[f.pop()||""];return f}decodeText(T){if(T==null)return"";if(typeof T==="string")return T;if(typeof Buffer!=="undefined"){if(T instanceof Buffer)return T.toString();if(T instanceof Uint8Array)return Buffer.from(T).toString();throw new $T(`Unexpected: received non-Uint8Array (${T.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(T instanceof Uint8Array||T instanceof ArrayBuffer)return this.textDecoder??(this.textDecoder=new TextDecoder("utf8")),this.textDecoder.decode(T);throw new $T(`Unexpected: received non-Uint8Array/ArrayBuffer (${T.constructor.name}) in a web platform. Please report this error.`)}throw new $T("Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.")}flush(){if(!this.buffer.length&&!this.trailingCR)return[];let T=[this.buffer.join("")];return this.buffer=[],this.trailingCR=!1,T}}o$.NEWLINE_CHARS=new Set(["\n","\r"]);o$.NEWLINE_REGEXP=/\r\n|[\n\r]/g;class NS{constructor(T,S){this.iterator=T,this.controller=S}static fromSSEResponse(T,S){let $=!1;async function*f(){if($)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");$=!0;let M=!1;try{for await(let J of S6(T,S)){if(M)continue;if(J.data.startsWith("[DONE]")){M=!0;continue}if(J.event===null){let F;try{F=JSON.parse(J.data)}catch(W){throw console.error("Could not parse message into JSON:",J.data),console.error("From chunk:",J.raw),W}if(F&&F.error)throw new gT(void 0,F.error,void 0,void 0);yield F}else{let F;try{F=JSON.parse(J.data)}catch(W){throw console.error("Could not parse message into JSON:",J.data),console.error("From chunk:",J.raw),W}if(J.event=="error")throw new gT(void 0,F.error,F.message,void 0);yield{event:J.event,data:F}}}M=!0}catch(J){if(J instanceof Error&&J.name==="AbortError")return;throw J}finally{if(!M)S.abort()}}return new NS(f,S)}static fromReadableStream(T,S){let $=!1;async function*f(){let J=new o$,F=KX(T);for await(let W of F)for(let A of J.decode(W))yield A;for(let W of J.flush())yield W}async function*M(){if($)throw new Error("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");$=!0;let J=!1;try{for await(let F of f()){if(J)continue;if(F)yield JSON.parse(F)}J=!0}catch(F){if(F instanceof Error&&F.name==="AbortError")return;throw F}finally{if(!J)S.abort()}}return new NS(M,S)}[Symbol.asyncIterator](){return this.iterator()}tee(){let T=[],S=[],$=this.iterator(),f=(M)=>{return{next:()=>{if(M.length===0){let J=$.next();T.push(J),S.push(J)}return M.shift()}}};return[new NS(()=>f(T),this.controller),new NS(()=>f(S),this.controller)]}toReadableStream(){let T=this,S,$=new TextEncoder;return new U0({async start(){S=T[Symbol.asyncIterator]()},async pull(f){try{let{value:M,done:J}=await S.next();if(J)return f.close();let F=$.encode(JSON.stringify(M)+"\n");f.enqueue(F)}catch(M){f.error(M)}},async cancel(){await S.return?.()}})}}async function*S6(T,S){if(!T.body)throw S.abort(),new $T("Attempted to iterate over a response with no body");let $=new wX,f=new o$,M=KX(T.body);for await(let J of $6(M))for(let F of f.decode(J)){let W=$.decode(F);if(W)yield W}for(let J of f.flush()){let F=$.decode(J);if(F)yield F}}async function*$6(T){let S=new Uint8Array;for await(let $ of T){if($==null)continue;let f=$ instanceof ArrayBuffer?new Uint8Array($):typeof $==="string"?new TextEncoder().encode($):$,M=new Uint8Array(S.length+f.length);M.set(S),M.set(f,S.length),S=M;let J;while((J=f6(S))!==-1)yield S.slice(0,J),S=S.slice(J)}if(S.length>0)yield S}function f6(T){for(let f=0;f<T.length-2;f++){if(T[f]===10&&T[f+1]===10)return f+2;if(T[f]===13&&T[f+1]===13)return f+2;if(T[f]===13&&T[f+1]===10&&f+3<T.length&&T[f+2]===13&&T[f+3]===10)return f+4}return-1}class wX{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(T){if(T.endsWith("\r"))T=T.substring(0,T.length-1);if(!T){if(!this.event&&!this.data.length)return null;let M={event:this.event,data:this.data.join("\n"),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],M}if(this.chunks.push(T),T.startsWith(":"))return null;let[S,$,f]=M6(T,":");if(f.startsWith(" "))f=f.substring(1);if(S==="event")this.event=f;else if(S==="data")this.data.push(f);return null}}function M6(T,S){let $=T.indexOf(S);if($!==-1)return[T.substring(0,$),S,T.substring($+S.length)];return[T,"",""]}function KX(T){if(T[Symbol.asyncIterator])return T;let S=T.getReader();return{async next(){try{let $=await S.read();if($?.done)S.releaseLock();return $}catch($){throw S.releaseLock(),$}},async return(){let $=S.cancel();return S.releaseLock(),await $,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}var YX=(T)=>T!=null&&typeof T==="object"&&typeof T.url==="string"&&typeof T.blob==="function",RX=(T)=>T!=null&&typeof T==="object"&&typeof T.name==="string"&&typeof T.lastModified==="number"&&sM(T),sM=(T)=>T!=null&&typeof T==="object"&&typeof T.size==="number"&&typeof T.type==="string"&&typeof T.text==="function"&&typeof T.slice==="function"&&typeof T.arrayBuffer==="function",J6=(T)=>{return RX(T)||YX(T)||L0(T)};async function j0(T,S,$){if(T=await T,RX(T))return T;if(YX(T)){let M=await T.blob();S||(S=new URL(T.url).pathname.split(/[\\/]/).pop()??"unknown_file");let J=sM(M)?[await M.arrayBuffer()]:[M];return new _F(J,S,$)}let f=await F6(T);if(S||(S=A6(T)??"unknown_file"),!$?.type){let M=f[0]?.type;if(typeof M==="string")$={...$,type:M}}return new _F(f,S,$)}async function F6(T){let S=[];if(typeof T==="string"||ArrayBuffer.isView(T)||T instanceof ArrayBuffer)S.push(T);else if(sM(T))S.push(await T.arrayBuffer());else if(k6(T))for await(let $ of T)S.push($);else throw new Error(`Unexpected data type: ${typeof T}; constructor: ${T?.constructor?.name}; props: ${W6(T)}`);return S}function W6(T){return`[${Object.getOwnPropertyNames(T).map(($)=>`"${$}"`).join(", ")}]`}function A6(T){return C0(T.name)||C0(T.filename)||C0(T.path)?.split(/[\\/]/).pop()}var C0=(T)=>{if(typeof T==="string")return T;if(typeof Buffer!=="undefined"&&T instanceof Buffer)return String(T);return},k6=(T)=>T!=null&&typeof T==="object"&&typeof T[Symbol.asyncIterator]==="function",I0=(T)=>T&&typeof T==="object"&&T.body&&T[Symbol.toStringTag]==="MultipartBody";var vS=async(T)=>{let S=await OX(T.body);return V0(S,T)},OX=async(T)=>{let S=new Q0;return await Promise.all(Object.entries(T||{}).map(([$,f])=>x0(S,$,f))),S};var x0=async(T,S,$)=>{if($===void 0)return;if($==null)throw new TypeError(`Received null for "${S}"; to pass null in FormData, you must use the string 'null'`);if(typeof $==="string"||typeof $==="number"||typeof $==="boolean")T.append(S,String($));else if(J6($)){let f=await j0($);T.append(S,f)}else if(Array.isArray($))await Promise.all($.map((f)=>x0(T,S+"[]",f)));else if(typeof $==="object")await Promise.all(Object.entries($).map(([f,M])=>x0(T,`${S}[${f}]`,M)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${$} instead`)};var y6=function(T,S,$,f,M){if(f==="m")throw new TypeError("Private method is not writable");if(f==="a"&&!M)throw new TypeError("Private accessor was defined without a setter");if(typeof S==="function"?T!==S||!M:!S.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f==="a"?M.call(T,$):M?M.value=$:S.set(T,$),$},w6=function(T,S,$,f){if($==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof S==="function"?T!==S||!f:!S.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return $==="m"?f:$==="a"?f.call(T):f?f.value:S.get(T)},xF;async function EX(T){let{response:S}=T;if(T.options.stream){if(ef("response",S.status,S.url,S.headers,S.body),T.options.__streamClass)return T.options.__streamClass.fromSSEResponse(S,T.controller);return NS.fromSSEResponse(S,T.controller)}if(S.status===204)return null;if(T.options.__binaryResponse)return S;let $=S.headers.get("content-type");if($?.includes("application/json")||$?.includes("application/vnd.api+json")){let J=await S.json();return ef("response",S.status,S.url,S.headers,J),QX(J,S)}let M=await S.text();return ef("response",S.status,S.url,S.headers,M),M}function QX(T,S){if(!T||typeof T!=="object"||Array.isArray(T))return T;return Object.defineProperty(T,"_request_id",{value:S.headers.get("x-request-id"),enumerable:!1})}class jF extends Promise{constructor(T,S=EX){super(($)=>{$(null)});this.responsePromise=T,this.parseResponse=S}_thenUnwrap(T){return new jF(this.responsePromise,async(S)=>QX(T(await this.parseResponse(S),S),S.response))}asResponse(){return this.responsePromise.then((T)=>T.response)}async withResponse(){let[T,S]=await Promise.all([this.parse(),this.asResponse()]);return{data:T,response:S,request_id:S.headers.get("x-request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then(this.parseResponse);return this.parsedPromise}then(T,S){return this.parse().then(T,S)}catch(T){return this.parse().catch(T)}finally(T){return this.parse().finally(T)}}class q0{constructor({baseURL:T,maxRetries:S=2,timeout:$=600000,httpAgent:f,fetch:M}){this.baseURL=T,this.maxRetries=b0("maxRetries",S),this.timeout=b0("timeout",$),this.httpAgent=f,this.fetch=M??E0}authHeaders(T){return{}}defaultHeaders(T){return{Accept:"application/json","Content-Type":"application/json","User-Agent":this.getUserAgent(),...G6(),...this.authHeaders(T)}}validateHeaders(T,S){}defaultIdempotencyKey(){return`stainless-node-retry-${D6()}`}get(T,S){return this.methodRequest("get",T,S)}post(T,S){return this.methodRequest("post",T,S)}patch(T,S){return this.methodRequest("patch",T,S)}put(T,S){return this.methodRequest("put",T,S)}delete(T,S){return this.methodRequest("delete",T,S)}methodRequest(T,S,$){return this.request(Promise.resolve($).then(async(f)=>{let M=f&&sM(f?.body)?new DataView(await f.body.arrayBuffer()):f?.body instanceof DataView?f.body:f?.body instanceof ArrayBuffer?new DataView(f.body):f&&ArrayBuffer.isView(f?.body)?new DataView(f.body.buffer):f?.body;return{method:T,path:S,...f,body:M}}))}getAPIList(T,S,$){return this.requestAPIList(S,{method:"get",path:T,...$})}calculateContentLength(T){if(typeof T==="string"){if(typeof Buffer!=="undefined")return Buffer.byteLength(T,"utf8").toString();if(typeof TextEncoder!=="undefined")return new TextEncoder().encode(T).length.toString()}else if(ArrayBuffer.isView(T))return T.byteLength.toString();return null}buildRequest(T,{retryCount:S=0}={}){let{method:$,path:f,query:M,headers:J={}}=T,F=ArrayBuffer.isView(T.body)||T.__binaryRequest&&typeof T.body==="string"?T.body:I0(T.body)?T.body.body:T.body?JSON.stringify(T.body,null,2):null,W=this.calculateContentLength(F),A=this.buildURL(f,M);if("timeout"in T)b0("timeout",T.timeout);let k=T.timeout??this.timeout,X=T.httpAgent??this.httpAgent??B0(A),y=k+1000;if(typeof X?.options?.timeout==="number"&&y>(X.options.timeout??0))X.options.timeout=y;if(this.idempotencyHeader&&$!=="get"){if(!T.idempotencyKey)T.idempotencyKey=this.defaultIdempotencyKey();J[this.idempotencyHeader]=T.idempotencyKey}let w=this.buildHeaders({options:T,headers:J,contentLength:W,retryCount:S});return{req:{method:$,...F&&{body:F},headers:w,...X&&{agent:X},signal:T.signal??null},url:A,timeout:k}}buildHeaders({options:T,headers:S,contentLength:$,retryCount:f}){let M={};if($)M["content-length"]=$;let J=this.defaultHeaders(T);if(HX(M,J),HX(M,S),I0(T.body)&&Mf!=="node")delete M["content-type"];if(DX(J,"x-stainless-retry-count")===void 0&&DX(S,"x-stainless-retry-count")===void 0)M["x-stainless-retry-count"]=String(f);return this.validateHeaders(M,S),M}async prepareOptions(T){}async prepareRequest(T,{url:S,options:$}){}parseHeaders(T){return!T?{}:(Symbol.iterator in T)?Object.fromEntries(Array.from(T).map((S)=>[...S])):{...T}}makeStatusError(T,S,$,f){return gT.generate(T,S,$,f)}request(T,S=null){return new jF(this.makeRequest(T,S))}async makeRequest(T,S){let $=await T,f=$.maxRetries??this.maxRetries;if(S==null)S=f;await this.prepareOptions($);let{req:M,url:J,timeout:F}=this.buildRequest($,{retryCount:f-S});if(await this.prepareRequest(M,{url:J,options:$}),ef("request",J,$,M.headers),$.signal?.aborted)throw new SS;let W=new AbortController,A=await this.fetchWithTimeout(J,M,F,W).catch(CF);if(A instanceof Error){if($.signal?.aborted)throw new SS;if(S)return this.retryRequest($,S);if(A.name==="AbortError")throw new Ff;throw new Jf({cause:A})}let k=K6(A.headers);if(!A.ok){if(S&&this.shouldRetry(A)){let Q=`retrying, ${S} attempts remaining`;return ef(`response (error; ${Q})`,A.status,J,k),this.retryRequest($,S,k)}let X=await A.text().catch((Q)=>CF(Q).message),y=z6(X),w=y?void 0:X;throw ef(`response (error; ${S?"(error; no more retries left)":"(error; not retryable)"})`,A.status,J,k,w),this.makeStatusError(A.status,y,w,k)}return{response:A,options:$,controller:W}}requestAPIList(T,S){let $=this.makeRequest(S,null);return new UX(this,$,T)}buildURL(T,S){let $=H6(T)?new URL(T):new URL(this.baseURL+(this.baseURL.endsWith("/")&&T.startsWith("/")?T.slice(1):T)),f=this.defaultQuery();if(!VX(f))S={...f,...S};if(typeof S==="object"&&S&&!Array.isArray(S))$.search=this.stringifyQuery(S);return $.toString()}stringifyQuery(T){return Object.entries(T).filter(([S,$])=>typeof $!=="undefined").map(([S,$])=>{if(typeof $==="string"||typeof $==="number"||typeof $==="boolean")return`${encodeURIComponent(S)}=${encodeURIComponent($)}`;if($===null)return`${encodeURIComponent(S)}=`;throw new $T(`Cannot stringify type ${typeof $}; 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(T,S,$,f){let{signal:M,...J}=S||{};if(M)M.addEventListener("abort",()=>f.abort());let F=setTimeout(()=>f.abort(),$);return this.getRequestClient().fetch.call(void 0,T,{signal:f.signal,...J}).finally(()=>{clearTimeout(F)})}getRequestClient(){return{fetch:this.fetch}}shouldRetry(T){let S=T.headers.get("x-should-retry");if(S==="true")return!0;if(S==="false")return!1;if(T.status===408)return!0;if(T.status===409)return!0;if(T.status===429)return!0;if(T.status>=500)return!0;return!1}async retryRequest(T,S,$){let f,M=$?.["retry-after-ms"];if(M){let F=parseFloat(M);if(!Number.isNaN(F))f=F}let J=$?.["retry-after"];if(J&&!f){let F=parseFloat(J);if(!Number.isNaN(F))f=F*1000;else f=Date.parse(J)-Date.now()}if(!(f&&0<=f&&f<60000)){let F=T.maxRetries??this.maxRetries;f=this.calculateDefaultRetryTimeoutMillis(S,F)}return await D$(f),this.makeRequest(T,S-1)}calculateDefaultRetryTimeoutMillis(T,S){let M=S-T,J=Math.min(0.5*Math.pow(2,M),8),F=1-Math.random()*0.25;return J*F*1000}getUserAgent(){return`${this.constructor.name}/JS ${ff}`}}class IF{constructor(T,S,$,f){xF.set(this,void 0),y6(this,xF,T,"f"),this.options=f,this.response=S,this.body=$}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageInfo()!=null}async getNextPage(){let T=this.nextPageInfo();if(!T)throw new $T("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");let S={...this.options};if("params"in T&&typeof S.query==="object")S.query={...S.query,...T.params};else if("url"in T){let $=[...Object.entries(S.query||{}),...T.url.searchParams.entries()];for(let[f,M]of $)T.url.searchParams.set(f,M);S.query=void 0,S.path=T.url.toString()}return await w6(this,xF,"f").requestAPIList(this.constructor,S)}async*iterPages(){let T=this;yield T;while(T.hasNextPage())T=await T.getNextPage(),yield T}async*[(xF=new WeakMap,Symbol.asyncIterator)](){for await(let T of this.iterPages())for(let S of T.getPaginatedItems())yield S}}class UX extends jF{constructor(T,S,$){super(S,async(f)=>new $(T,f.response,await EX(f),f.options))}async*[Symbol.asyncIterator](){let T=await this;for await(let S of T)yield S}}var K6=(T)=>{return new Proxy(Object.fromEntries(T.entries()),{get(S,$){let f=$.toString();return S[f.toLowerCase()]||S[f]}})},Y6={method:!0,path:!0,query:!0,body:!0,headers:!0,maxRetries:!0,stream:!0,timeout:!0,httpAgent:!0,signal:!0,idempotencyKey:!0,__binaryRequest:!0,__binaryResponse:!0,__streamClass:!0},LT=(T)=>{return typeof T==="object"&&T!==null&&!VX(T)&&Object.keys(T).every((S)=>BX(Y6,S))},R6=()=>{if(typeof Deno!=="undefined"&&Deno.build!=null)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ff,"X-Stainless-OS":zX(Deno.build.os),"X-Stainless-Arch":GX(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":ff,"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":ff,"X-Stainless-OS":zX(process.platform),"X-Stainless-Arch":GX(process.arch),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":process.version};let T=O6();if(T)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ff,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${T.browser}`,"X-Stainless-Runtime-Version":T.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ff,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function O6(){if(typeof navigator==="undefined"||!navigator)return null;let T=[{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:S,pattern:$}of T){let f=$.exec(navigator.userAgent);if(f){let M=f[1]||0,J=f[2]||0,F=f[3]||0;return{browser:S,version:`${M}.${J}.${F}`}}}return null}var GX=(T)=>{if(T==="x32")return"x32";if(T==="x86_64"||T==="x64")return"x64";if(T==="arm")return"arm";if(T==="aarch64"||T==="arm64")return"arm64";if(T)return`other:${T}`;return"unknown"},zX=(T)=>{if(T=T.toLowerCase(),T.includes("ios"))return"iOS";if(T==="android")return"Android";if(T==="darwin")return"MacOS";if(T==="win32")return"Windows";if(T==="freebsd")return"FreeBSD";if(T==="openbsd")return"OpenBSD";if(T==="linux")return"Linux";if(T)return`Other:${T}`;return"Unknown"},_X,G6=()=>{return _X??(_X=R6())},z6=(T)=>{try{return JSON.parse(T)}catch(S){return}},_6=new RegExp("^(?:[a-z]+:)?//","i"),H6=(T)=>{return _6.test(T)},D$=(T)=>new Promise((S)=>setTimeout(S,T)),b0=(T,S)=>{if(typeof S!=="number"||!Number.isInteger(S))throw new $T(`${T} must be an integer`);if(S<0)throw new $T(`${T} must be a positive integer`);return S},CF=(T)=>{if(T instanceof Error)return T;if(typeof T==="object"&&T!==null)try{return new Error(JSON.stringify(T))}catch{}return new Error(T)};var TJ=(T)=>{if(typeof process!=="undefined")return process.env?.[T]?.trim()??void 0;if(typeof Deno!=="undefined")return Deno.env?.get?.(T)?.trim();return};function VX(T){if(!T)return!0;for(let S in T)return!1;return!0}function BX(T,S){return Object.prototype.hasOwnProperty.call(T,S)}function HX(T,S){for(let $ in S){if(!BX(S,$))continue;let f=$.toLowerCase();if(!f)continue;let M=S[$];if(M===null)delete T[f];else if(M!==void 0)T[f]=M}}function ef(T,...S){if(typeof process!=="undefined"&&process?.env?.DEBUG==="true")console.log(`OpenAI:DEBUG:${T}`,...S)}var D6=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(T)=>{let S=Math.random()*16|0;return(T==="x"?S:S&3|8).toString(16)})},LX=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"},E6=(T)=>{return typeof T?.get==="function"};var DX=(T,S)=>{let $=S.toLowerCase();if(E6(T)){let f=S[0]?.toUpperCase()+S.substring(1).replace(/([^\w])(\w)/g,(M,J,F)=>J+F.toUpperCase());for(let M of[S,$,S.toUpperCase(),f]){let J=T.get(M);if(J)return J}}for(let[f,M]of Object.entries(T))if(f.toLowerCase()===$){if(Array.isArray(M)){if(M.length<=1)return M[0];return console.warn(`Received ${M.length} entries for the ${S} header, using the first entry.`),M[0]}return M}return};function SJ(T){return T!=null&&typeof T==="object"&&!Array.isArray(T)}class Z0 extends IF{constructor(T,S,$,f){super(T,S,$,f);this.data=$.data||[],this.object=$.object}getPaginatedItems(){return this.data??[]}nextPageParams(){return null}nextPageInfo(){return null}}class PT extends IF{constructor(T,S,$,f){super(T,S,$,f);this.data=$.data||[]}getPaginatedItems(){return this.data??[]}nextPageParams(){let T=this.nextPageInfo();if(!T)return null;if("params"in T)return T.params;let S=Object.fromEntries(T.url.searchParams);if(!Object.keys(S).length)return null;return S}nextPageInfo(){let T=this.getPaginatedItems();if(!T.length)return null;let S=T[T.length-1]?.id;if(!S)return null;return{params:{after:S}}}}class i{constructor(T){this._client=T}}class $J extends i{create(T,S){return this._client.post("/chat/completions",{body:T,...S,stream:T.stream??!1})}}class Af extends i{constructor(){super(...arguments);this.completions=new $J(this._client)}}Af.Completions=$J;class fJ extends i{create(T,S){return this._client.post("/audio/speech",{body:T,...S,__binaryResponse:!0})}}class MJ extends i{create(T,S){return this._client.post("/audio/transcriptions",vS({body:T,...S}))}}class JJ extends i{create(T,S){return this._client.post("/audio/translations",vS({body:T,...S}))}}class E$ extends i{constructor(){super(...arguments);this.transcriptions=new MJ(this._client),this.translations=new JJ(this._client),this.speech=new fJ(this._client)}}E$.Transcriptions=MJ;E$.Translations=JJ;E$.Speech=fJ;class kf extends i{create(T,S){return this._client.post("/batches",{body:T,...S})}retrieve(T,S){return this._client.get(`/batches/${T}`,S)}list(T={},S){if(LT(T))return this.list({},T);return this._client.getAPIList("/batches",sf,{query:T,...S})}cancel(T,S){return this._client.post(`/batches/${T}/cancel`,S)}}class sf extends PT{}kf.BatchesPage=sf;class TM extends i{create(T,S){return this._client.post("/assistants",{body:T,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}retrieve(T,S){return this._client.get(`/assistants/${T}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}update(T,S,$){return this._client.post(`/assistants/${T}`,{body:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}list(T={},S){if(LT(T))return this.list({},T);return this._client.getAPIList("/assistants",FJ,{query:T,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}del(T,S){return this._client.delete(`/assistants/${T}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}}class FJ extends PT{}TM.AssistantsPage=FJ;function m0(T){return typeof T.parse==="function"}var g$=(T)=>{return T?.role==="assistant"},h0=(T)=>{return T?.role==="function"},v0=(T)=>{return T?.role==="tool"};var T$=function(T,S,$,f,M){if(f==="m")throw new TypeError("Private method is not writable");if(f==="a"&&!M)throw new TypeError("Private accessor was defined without a setter");if(typeof S==="function"?T!==S||!M:!S.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f==="a"?M.call(T,$):M?M.value=$:S.set(T,$),$},mT=function(T,S,$,f){if($==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof S==="function"?T!==S||!f:!S.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return $==="m"?f:$==="a"?f.call(T):f?f.value:S.get(T)},P0,bF,qF,WJ,AJ,ZF,kJ,Q$,XJ,mF,hF,SM,NX;class yJ{constructor(){P0.add(this),this.controller=new AbortController,bF.set(this,void 0),qF.set(this,()=>{}),WJ.set(this,()=>{}),AJ.set(this,void 0),ZF.set(this,()=>{}),kJ.set(this,()=>{}),Q$.set(this,{}),XJ.set(this,!1),mF.set(this,!1),hF.set(this,!1),SM.set(this,!1),T$(this,bF,new Promise((T,S)=>{T$(this,qF,T,"f"),T$(this,WJ,S,"f")}),"f"),T$(this,AJ,new Promise((T,S)=>{T$(this,ZF,T,"f"),T$(this,kJ,S,"f")}),"f"),mT(this,bF,"f").catch(()=>{}),mT(this,AJ,"f").catch(()=>{})}_run(T){setTimeout(()=>{T().then(()=>{this._emitFinal(),this._emit("end")},mT(this,P0,"m",NX).bind(this))},0)}_connected(){if(this.ended)return;mT(this,qF,"f").call(this),this._emit("connect")}get ended(){return mT(this,XJ,"f")}get errored(){return mT(this,mF,"f")}get aborted(){return mT(this,hF,"f")}abort(){this.controller.abort()}on(T,S){return(mT(this,Q$,"f")[T]||(mT(this,Q$,"f")[T]=[])).push({listener:S}),this}off(T,S){let $=mT(this,Q$,"f")[T];if(!$)return this;let f=$.findIndex((M)=>M.listener===S);if(f>=0)$.splice(f,1);return this}once(T,S){return(mT(this,Q$,"f")[T]||(mT(this,Q$,"f")[T]=[])).push({listener:S,once:!0}),this}emitted(T){return new Promise((S,$)=>{if(T$(this,SM,!0,"f"),T!=="error")this.once("error",$);this.once(T,S)})}async done(){T$(this,SM,!0,"f"),await mT(this,AJ,"f")}_emit(T,...S){if(mT(this,XJ,"f"))return;if(T==="end")T$(this,XJ,!0,"f"),mT(this,ZF,"f").call(this);let $=mT(this,Q$,"f")[T];if($)mT(this,Q$,"f")[T]=$.filter((f)=>!f.once),$.forEach(({listener:f})=>f(...S));if(T==="abort"){let f=S[0];if(!mT(this,SM,"f")&&!$?.length)Promise.reject(f);mT(this,WJ,"f").call(this,f),mT(this,kJ,"f").call(this,f),this._emit("end");return}if(T==="error"){let f=S[0];if(!mT(this,SM,"f")&&!$?.length)Promise.reject(f);mT(this,WJ,"f").call(this,f),mT(this,kJ,"f").call(this,f),this._emit("end")}}_emitFinal(){}}bF=new WeakMap,qF=new WeakMap,WJ=new WeakMap,AJ=new WeakMap,ZF=new WeakMap,kJ=new WeakMap,Q$=new WeakMap,XJ=new WeakMap,mF=new WeakMap,hF=new WeakMap,SM=new WeakMap,P0=new WeakSet,NX=function T(S){if(T$(this,mF,!0,"f"),S instanceof Error&&S.name==="AbortError")S=new SS;if(S instanceof SS)return T$(this,hF,!0,"f"),this._emit("abort",S);if(S instanceof $T)return this._emit("error",S);if(S instanceof Error){let $=new $T(S.message);return $.cause=S,this._emit("error",$)}return this._emit("error",new $T(String(S)))};function n0(T){return T?.$brand==="auto-parseable-response-format"}function Xf(T){return T?.$brand==="auto-parseable-tool"}function CX(T,S){if(!S||!c0(S))return{...T,choices:T.choices.map(($)=>({...$,message:{...$.message,parsed:null,tool_calls:$.message.tool_calls??[]}}))};return wJ(T,S)}function wJ(T,S){let $=T.choices.map((f)=>{if(f.finish_reason==="length")throw new aM;if(f.finish_reason==="content_filter")throw new eM;return{...f,message:{...f.message,tool_calls:f.message.tool_calls?.map((M)=>C6(S,M))??[],parsed:f.message.content&&!f.message.refusal?N6(S,f.message.content):null}}});return{...T,choices:$}}function N6(T,S){if(T.response_format?.type!=="json_schema")return null;if(T.response_format?.type==="json_schema"){if("$parseRaw"in T.response_format)return T.response_format.$parseRaw(S);return JSON.parse(S)}return null}function C6(T,S){let $=T.tools?.find((f)=>f.function?.name===S.function.name);return{...S,function:{...S.function,parsed_arguments:Xf($)?$.$parseRaw(S.function.arguments):$?.function.strict?JSON.parse(S.function.arguments):null}}}function xX(T,S){if(!T)return!1;let $=T.tools?.find((f)=>f.function?.name===S.function.name);return Xf($)||$?.function.strict||!1}function c0(T){if(n0(T.response_format))return!0;return T.tools?.some((S)=>Xf(S)||S.type==="function"&&S.function.strict===!0)??!1}function jX(T){for(let S of T??[]){if(S.type!=="function")throw new $T(`Currently only \`function\` tool types support auto-parsing; Received \`${S.type}\``);if(S.function.strict!==!0)throw new $T(`The \`${S.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var DS=function(T,S,$,f){if($==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof S==="function"?T!==S||!f:!S.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return $==="m"?f:$==="a"?f.call(T):f?f.value:S.get(T)},wS,o0,vF,g0,t0,p0,bX,i0,IX=10;class KJ extends yJ{constructor(){super(...arguments);wS.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(T){this._chatCompletions.push(T),this._emit("chatCompletion",T);let S=T.choices[0]?.message;if(S)this._addMessage(S);return T}_addMessage(T,S=!0){if(!("content"in T))T.content=null;if(this.messages.push(T),S){if(this._emit("message",T),(h0(T)||v0(T))&&T.content)this._emit("functionCallResult",T.content);else if(g$(T)&&T.function_call)this._emit("functionCall",T.function_call);else if(g$(T)&&T.tool_calls){for(let $ of T.tool_calls)if($.type==="function")this._emit("functionCall",$.function)}}}async finalChatCompletion(){await this.done();let T=this._chatCompletions[this._chatCompletions.length-1];if(!T)throw new $T("stream ended without producing a ChatCompletion");return T}async finalContent(){return await this.done(),DS(this,wS,"m",o0).call(this)}async finalMessage(){return await this.done(),DS(this,wS,"m",vF).call(this)}async finalFunctionCall(){return await this.done(),DS(this,wS,"m",g0).call(this)}async finalFunctionCallResult(){return await this.done(),DS(this,wS,"m",t0).call(this)}async totalUsage(){return await this.done(),DS(this,wS,"m",p0).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let T=this._chatCompletions[this._chatCompletions.length-1];if(T)this._emit("finalChatCompletion",T);let S=DS(this,wS,"m",vF).call(this);if(S)this._emit("finalMessage",S);let $=DS(this,wS,"m",o0).call(this);if($)this._emit("finalContent",$);let f=DS(this,wS,"m",g0).call(this);if(f)this._emit("finalFunctionCall",f);let M=DS(this,wS,"m",t0).call(this);if(M!=null)this._emit("finalFunctionCallResult",M);if(this._chatCompletions.some((J)=>J.usage))this._emit("totalUsage",DS(this,wS,"m",p0).call(this))}async _createChatCompletion(T,S,$){let f=$?.signal;if(f){if(f.aborted)this.controller.abort();f.addEventListener("abort",()=>this.controller.abort())}DS(this,wS,"m",bX).call(this,S);let M=await T.chat.completions.create({...S,stream:!1},{...$,signal:this.controller.signal});return this._connected(),this._addChatCompletion(wJ(M,S))}async _runChatCompletion(T,S,$){for(let f of S.messages)this._addMessage(f,!1);return await this._createChatCompletion(T,S,$)}async _runFunctions(T,S,$){let{function_call:M="auto",stream:J,...F}=S,W=typeof M!=="string"&&M?.name,{maxChatCompletions:A=IX}=$||{},k={};for(let y of S.functions)k[y.name||y.function.name]=y;let X=S.functions.map((y)=>({name:y.name||y.function.name,parameters:y.parameters,description:y.description}));for(let y of S.messages)this._addMessage(y,!1);for(let y=0;y<A;++y){let G=(await this._createChatCompletion(T,{...F,function_call:M,functions:X,messages:[...this.messages]},$)).choices[0]?.message;if(!G)throw new $T("missing message in ChatCompletion response");if(!G.function_call)return;let{name:z,arguments:Q}=G.function_call,E=k[z];if(!E){let C=`Invalid function_call: ${JSON.stringify(z)}. Available options are: ${X.map((D)=>JSON.stringify(D.name)).join(", ")}. Please try again`;this._addMessage({role:"function",name:z,content:C});continue}else if(W&&W!==z){let C=`Invalid function_call: ${JSON.stringify(z)}. ${JSON.stringify(W)} requested. Please try again`;this._addMessage({role:"function",name:z,content:C});continue}let B;try{B=m0(E)?await E.parse(Q):Q}catch(C){this._addMessage({role:"function",name:z,content:C instanceof Error?C.message:String(C)});continue}let L=await E.function(B,this),b=DS(this,wS,"m",i0).call(this,L);if(this._addMessage({role:"function",name:z,content:b}),W)return}}async _runTools(T,S,$){let{tool_choice:M="auto",stream:J,...F}=S,W=typeof M!=="string"&&M?.function?.name,{maxChatCompletions:A=IX}=$||{},k=S.tools.map((w)=>{if(Xf(w)){if(!w.$callback)throw new $T("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:w.$callback,name:w.function.name,description:w.function.description||"",parameters:w.function.parameters,parse:w.$parseRaw,strict:!0}}}return w}),X={};for(let w of k)if(w.type==="function")X[w.function.name||w.function.function.name]=w.function;let y="tools"in S?k.map((w)=>w.type==="function"?{type:"function",function:{name:w.function.name||w.function.function.name,parameters:w.function.parameters,description:w.function.description,strict:w.function.strict}}:w):void 0;for(let w of S.messages)this._addMessage(w,!1);for(let w=0;w<A;++w){let z=(await this._createChatCompletion(T,{...F,tool_choice:M,tools:y,messages:[...this.messages]},$)).choices[0]?.message;if(!z)throw new $T("missing message in ChatCompletion response");if(!z.tool_calls?.length)return;for(let Q of z.tool_calls){if(Q.type!=="function")continue;let E=Q.id,{name:B,arguments:L}=Q.function,b=X[B];if(!b){let U=`Invalid tool_call: ${JSON.stringify(B)}. Available options are: ${Object.keys(X).map((Z)=>JSON.stringify(Z)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:E,content:U});continue}else if(W&&W!==B){let U=`Invalid tool_call: ${JSON.stringify(B)}. ${JSON.stringify(W)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:E,content:U});continue}let C;try{C=m0(b)?await b.parse(L):L}catch(U){let Z=U instanceof Error?U.message:String(U);this._addMessage({role:"tool",tool_call_id:E,content:Z});continue}let D=await b.function(C,this),H=DS(this,wS,"m",i0).call(this,D);if(this._addMessage({role:"tool",tool_call_id:E,content:H}),W)return}}return}}wS=new WeakSet,o0=function T(){return DS(this,wS,"m",vF).call(this).content??null},vF=function T(){let S=this.messages.length;while(S-- >0){let $=this.messages[S];if(g$($)){let{function_call:f,...M}=$,J={...M,content:$.content??null,refusal:$.refusal??null};if(f)J.function_call=f;return J}}throw new $T("stream ended without producing a ChatCompletionMessage with role=assistant")},g0=function T(){for(let S=this.messages.length-1;S>=0;S--){let $=this.messages[S];if(g$($)&&$?.function_call)return $.function_call;if(g$($)&&$?.tool_calls?.length)return $.tool_calls.at(-1)?.function}return},t0=function T(){for(let S=this.messages.length-1;S>=0;S--){let $=this.messages[S];if(h0($)&&$.content!=null)return $.content;if(v0($)&&$.content!=null&&typeof $.content==="string"&&this.messages.some((f)=>f.role==="assistant"&&f.tool_calls?.some((M)=>M.type==="function"&&M.id===$.tool_call_id)))return $.content}return},p0=function T(){let S={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:$}of this._chatCompletions)if($)S.completion_tokens+=$.completion_tokens,S.prompt_tokens+=$.prompt_tokens,S.total_tokens+=$.total_tokens;return S},bX=function T(S){if(S.n!=null&&S.n>1)throw new $T("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},i0=function T(S){return typeof S==="string"?S:S===void 0?"undefined":JSON.stringify(S)};class $M extends KJ{static runFunctions(T,S,$){let f=new $M,M={...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return f._run(()=>f._runFunctions(T,S,M)),f}static runTools(T,S,$){let f=new $M,M={...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"runTools"}};return f._run(()=>f._runTools(T,S,M)),f}_addMessage(T,S=!0){if(super._addMessage(T,S),g$(T)&&T.content)this._emit("content",T.content)}}var sT={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 qX extends Error{}class ZX extends Error{}function x6(T,S=sT.ALL){if(typeof T!=="string")throw new TypeError(`expecting str, got ${typeof T}`);if(!T.trim())throw new Error(`${T} is empty`);return j6(T.trim(),S)}var j6=(T,S)=>{let $=T.length,f=0,M=(w)=>{throw new qX(`${w} at position ${f}`)},J=(w)=>{throw new ZX(`${w} at position ${f}`)},F=()=>{if(y(),f>=$)M("Unexpected end of input");if(T[f]==='"')return W();if(T[f]==="{")return A();if(T[f]==="[")return k();if(T.substring(f,f+4)==="null"||sT.NULL&S&&$-f<4&&"null".startsWith(T.substring(f)))return f+=4,null;if(T.substring(f,f+4)==="true"||sT.BOOL&S&&$-f<4&&"true".startsWith(T.substring(f)))return f+=4,!0;if(T.substring(f,f+5)==="false"||sT.BOOL&S&&$-f<5&&"false".startsWith(T.substring(f)))return f+=5,!1;if(T.substring(f,f+8)==="Infinity"||sT.INFINITY&S&&$-f<8&&"Infinity".startsWith(T.substring(f)))return f+=8,1/0;if(T.substring(f,f+9)==="-Infinity"||sT.MINUS_INFINITY&S&&1<$-f&&$-f<9&&"-Infinity".startsWith(T.substring(f)))return f+=9,-1/0;if(T.substring(f,f+3)==="NaN"||sT.NAN&S&&$-f<3&&"NaN".startsWith(T.substring(f)))return f+=3,NaN;return X()},W=()=>{let w=f,G=!1;f++;while(f<$&&(T[f]!=='"'||G&&T[f-1]==="\\"))G=T[f]==="\\"?!G:!1,f++;if(T.charAt(f)=='"')try{return JSON.parse(T.substring(w,++f-Number(G)))}catch(z){J(String(z))}else if(sT.STR&S)try{return JSON.parse(T.substring(w,f-Number(G))+'"')}catch(z){return JSON.parse(T.substring(w,T.lastIndexOf("\\"))+'"')}M("Unterminated string literal")},A=()=>{f++,y();let w={};try{while(T[f]!=="}"){if(y(),f>=$&&sT.OBJ&S)return w;let G=W();y(),f++;try{let z=F();Object.defineProperty(w,G,{value:z,writable:!0,enumerable:!0,configurable:!0})}catch(z){if(sT.OBJ&S)return w;else throw z}if(y(),T[f]===",")f++}}catch(G){if(sT.OBJ&S)return w;else M("Expected '}' at end of object")}return f++,w},k=()=>{f++;let w=[];try{while(T[f]!=="]")if(w.push(F()),y(),T[f]===",")f++}catch(G){if(sT.ARR&S)return w;M("Expected ']' at end of array")}return f++,w},X=()=>{if(f===0){if(T==="-"&&sT.NUM&S)M("Not sure what '-' is");try{return JSON.parse(T)}catch(G){if(sT.NUM&S)try{if(T[T.length-1]===".")return JSON.parse(T.substring(0,T.lastIndexOf(".")));return JSON.parse(T.substring(0,T.lastIndexOf("e")))}catch(z){}J(String(G))}}let w=f;if(T[f]==="-")f++;while(T[f]&&!",]}".includes(T[f]))f++;if(f==$&&!(sT.NUM&S))M("Unterminated number literal");try{return JSON.parse(T.substring(w,f))}catch(G){if(T.substring(w,f)==="-"&&sT.NUM&S)M("Not sure what '-' is");try{return JSON.parse(T.substring(w,T.lastIndexOf("e")))}catch(z){J(String(z))}}},y=()=>{while(f<$&&" \n\r\t".includes(T[f]))f++};return F()},l0=(T)=>x6(T,sT.ALL^sT.NUM);var fM=function(T,S,$,f,M){if(f==="m")throw new TypeError("Private method is not writable");if(f==="a"&&!M)throw new TypeError("Private accessor was defined without a setter");if(typeof S==="function"?T!==S||!M:!S.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f==="a"?M.call(T,$):M?M.value=$:S.set(T,$),$},DT=function(T,S,$,f){if($==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof S==="function"?T!==S||!f:!S.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return $==="m"?f:$==="a"?f.call(T):f?f.value:S.get(T)},rT,U$,MM,t$,u0,PF,d0,r0,a0,nF,e0,mX;class yf extends KJ{constructor(T){super();rT.add(this),U$.set(this,void 0),MM.set(this,void 0),t$.set(this,void 0),fM(this,U$,T,"f"),fM(this,MM,[],"f")}get currentChatCompletionSnapshot(){return DT(this,t$,"f")}static fromReadableStream(T){let S=new yf(null);return S._run(()=>S._fromReadableStream(T)),S}static createChatCompletion(T,S,$){let f=new yf(S);return f._run(()=>f._runChatCompletion(T,{...S,stream:!0},{...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"stream"}})),f}async _createChatCompletion(T,S,$){super._createChatCompletion;let f=$?.signal;if(f){if(f.aborted)this.controller.abort();f.addEventListener("abort",()=>this.controller.abort())}DT(this,rT,"m",u0).call(this);let M=await T.chat.completions.create({...S,stream:!0},{...$,signal:this.controller.signal});this._connected();for await(let J of M)DT(this,rT,"m",d0).call(this,J);if(M.controller.signal?.aborted)throw new SS;return this._addChatCompletion(DT(this,rT,"m",nF).call(this))}async _fromReadableStream(T,S){let $=S?.signal;if($){if($.aborted)this.controller.abort();$.addEventListener("abort",()=>this.controller.abort())}DT(this,rT,"m",u0).call(this),this._connected();let f=NS.fromReadableStream(T,this.controller),M;for await(let J of f){if(M&&M!==J.id)this._addChatCompletion(DT(this,rT,"m",nF).call(this));DT(this,rT,"m",d0).call(this,J),M=J.id}if(f.controller.signal?.aborted)throw new SS;return this._addChatCompletion(DT(this,rT,"m",nF).call(this))}[(U$=new WeakMap,MM=new WeakMap,t$=new WeakMap,rT=new WeakSet,u0=function T(){if(this.ended)return;fM(this,t$,void 0,"f")},PF=function T(S){let $=DT(this,MM,"f")[S.index];if($)return $;return $={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},DT(this,MM,"f")[S.index]=$,$},d0=function T(S){if(this.ended)return;let $=DT(this,rT,"m",mX).call(this,S);this._emit("chunk",S,$);for(let f of S.choices){let M=$.choices[f.index];if(f.delta.content!=null&&M.message?.role==="assistant"&&M.message?.content)this._emit("content",f.delta.content,M.message.content),this._emit("content.delta",{delta:f.delta.content,snapshot:M.message.content,parsed:M.message.parsed});if(f.delta.refusal!=null&&M.message?.role==="assistant"&&M.message?.refusal)this._emit("refusal.delta",{delta:f.delta.refusal,snapshot:M.message.refusal});if(f.logprobs?.content!=null&&M.message?.role==="assistant")this._emit("logprobs.content.delta",{content:f.logprobs?.content,snapshot:M.logprobs?.content??[]});if(f.logprobs?.refusal!=null&&M.message?.role==="assistant")this._emit("logprobs.refusal.delta",{refusal:f.logprobs?.refusal,snapshot:M.logprobs?.refusal??[]});let J=DT(this,rT,"m",PF).call(this,M);if(M.finish_reason){if(DT(this,rT,"m",a0).call(this,M),J.current_tool_call_index!=null)DT(this,rT,"m",r0).call(this,M,J.current_tool_call_index)}for(let F of f.delta.tool_calls??[]){if(J.current_tool_call_index!==F.index){if(DT(this,rT,"m",a0).call(this,M),J.current_tool_call_index!=null)DT(this,rT,"m",r0).call(this,M,J.current_tool_call_index)}J.current_tool_call_index=F.index}for(let F of f.delta.tool_calls??[]){let W=M.message.tool_calls?.[F.index];if(!W?.type)continue;if(W?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:W.function?.name,index:F.index,arguments:W.function.arguments,parsed_arguments:W.function.parsed_arguments,arguments_delta:F.function?.arguments??""});else vX(W?.type)}}},r0=function T(S,$){if(DT(this,rT,"m",PF).call(this,S).done_tool_calls.has($))return;let M=S.message.tool_calls?.[$];if(!M)throw new Error("no tool call snapshot");if(!M.type)throw new Error("tool call snapshot missing `type`");if(M.type==="function"){let J=DT(this,U$,"f")?.tools?.find((F)=>F.type==="function"&&F.function.name===M.function.name);this._emit("tool_calls.function.arguments.done",{name:M.function.name,index:$,arguments:M.function.arguments,parsed_arguments:Xf(J)?J.$parseRaw(M.function.arguments):J?.function.strict?JSON.parse(M.function.arguments):null})}else vX(M.type)},a0=function T(S){let $=DT(this,rT,"m",PF).call(this,S);if(S.message.content&&!$.content_done){$.content_done=!0;let f=DT(this,rT,"m",e0).call(this);this._emit("content.done",{content:S.message.content,parsed:f?f.$parseRaw(S.message.content):null})}if(S.message.refusal&&!$.refusal_done)$.refusal_done=!0,this._emit("refusal.done",{refusal:S.message.refusal});if(S.logprobs?.content&&!$.logprobs_content_done)$.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:S.logprobs.content});if(S.logprobs?.refusal&&!$.logprobs_refusal_done)$.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:S.logprobs.refusal})},nF=function T(){if(this.ended)throw new $T("stream has ended, this shouldn't happen");let S=DT(this,t$,"f");if(!S)throw new $T("request ended without sending any chunks");return fM(this,t$,void 0,"f"),fM(this,MM,[],"f"),I6(S,DT(this,U$,"f"))},e0=function T(){let S=DT(this,U$,"f")?.response_format;if(n0(S))return S;return null},mX=function T(S){var $,f,M,J;let F=DT(this,t$,"f"),{choices:W,...A}=S;if(!F)F=fM(this,t$,{...A,choices:[]},"f");else Object.assign(F,A);for(let{delta:k,finish_reason:X,index:y,logprobs:w=null,...G}of S.choices){let z=F.choices[y];if(!z)z=F.choices[y]={finish_reason:X,index:y,message:{},logprobs:w,...G};if(w)if(!z.logprobs)z.logprobs=Object.assign({},w);else{let{content:D,refusal:H,...U}=w;if(hX(U),Object.assign(z.logprobs,U),D)($=z.logprobs).content??($.content=[]),z.logprobs.content.push(...D);if(H)(f=z.logprobs).refusal??(f.refusal=[]),z.logprobs.refusal.push(...H)}if(X){if(z.finish_reason=X,DT(this,U$,"f")&&c0(DT(this,U$,"f"))){if(X==="length")throw new aM;if(X==="content_filter")throw new eM}}if(Object.assign(z,G),!k)continue;let{content:Q,refusal:E,function_call:B,role:L,tool_calls:b,...C}=k;if(hX(C),Object.assign(z.message,C),E)z.message.refusal=(z.message.refusal||"")+E;if(L)z.message.role=L;if(B)if(!z.message.function_call)z.message.function_call=B;else{if(B.name)z.message.function_call.name=B.name;if(B.arguments)(M=z.message.function_call).arguments??(M.arguments=""),z.message.function_call.arguments+=B.arguments}if(Q){if(z.message.content=(z.message.content||"")+Q,!z.message.refusal&&DT(this,rT,"m",e0).call(this))z.message.parsed=l0(z.message.content)}if(b){if(!z.message.tool_calls)z.message.tool_calls=[];for(let{index:D,id:H,type:U,function:Z,...h}of b){let O=(J=z.message.tool_calls)[D]??(J[D]={});if(Object.assign(O,h),H)O.id=H;if(U)O.type=U;if(Z)O.function??(O.function={name:Z.name??"",arguments:""});if(Z?.name)O.function.name=Z.name;if(Z?.arguments){if(O.function.arguments+=Z.arguments,xX(DT(this,U$,"f"),O))O.function.parsed_arguments=l0(O.function.arguments)}}}}return F},Symbol.asyncIterator)](){let T=[],S=[],$=!1;return this.on("chunk",(f)=>{let M=S.shift();if(M)M.resolve(f);else T.push(f)}),this.on("end",()=>{$=!0;for(let f of S)f.resolve(void 0);S.length=0}),this.on("abort",(f)=>{$=!0;for(let M of S)M.reject(f);S.length=0}),this.on("error",(f)=>{$=!0;for(let M of S)M.reject(f);S.length=0}),{next:async()=>{if(!T.length){if($)return{value:void 0,done:!0};return new Promise((M,J)=>S.push({resolve:M,reject:J})).then((M)=>M?{value:M,done:!1}:{value:void 0,done:!0})}return{value:T.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new NS(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function I6(T,S){let{id:$,choices:f,created:M,model:J,system_fingerprint:F,...W}=T,A={...W,id:$,choices:f.map(({message:k,finish_reason:X,index:y,logprobs:w,...G})=>{if(!X)throw new $T(`missing finish_reason for choice ${y}`);let{content:z=null,function_call:Q,tool_calls:E,...B}=k,L=k.role;if(!L)throw new $T(`missing role for choice ${y}`);if(Q){let{arguments:b,name:C}=Q;if(b==null)throw new $T(`missing function_call.arguments for choice ${y}`);if(!C)throw new $T(`missing function_call.name for choice ${y}`);return{...G,message:{content:z,function_call:{arguments:b,name:C},role:L,refusal:k.refusal??null},finish_reason:X,index:y,logprobs:w}}if(E)return{...G,index:y,finish_reason:X,logprobs:w,message:{...B,role:L,content:z,refusal:k.refusal??null,tool_calls:E.map((b,C)=>{let{function:D,type:H,id:U,...Z}=b,{arguments:h,name:O,...o}=D||{};if(U==null)throw new $T(`missing choices[${y}].tool_calls[${C}].id\n${cF(T)}`);if(H==null)throw new $T(`missing choices[${y}].tool_calls[${C}].type\n${cF(T)}`);if(O==null)throw new $T(`missing choices[${y}].tool_calls[${C}].function.name\n${cF(T)}`);if(h==null)throw new $T(`missing choices[${y}].tool_calls[${C}].function.arguments\n${cF(T)}`);return{...Z,id:U,type:H,function:{...o,name:O,arguments:h}}})}};return{...G,message:{...B,content:z,role:L,refusal:k.refusal??null},finish_reason:X,index:y,logprobs:w}}),created:M,model:J,object:"chat.completion",...F?{system_fingerprint:F}:{}};return CX(A,S)}function cF(T){return JSON.stringify(T)}function hX(T){return}function vX(T){}class wf extends yf{static fromReadableStream(T){let S=new wf(null);return S._run(()=>S._fromReadableStream(T)),S}static runFunctions(T,S,$){let f=new wf(null),M={...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"runFunctions"}};return f._run(()=>f._runFunctions(T,S,M)),f}static runTools(T,S,$){let f=new wf(S),M={...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"runTools"}};return f._run(()=>f._runTools(T,S,M)),f}}class oF extends i{parse(T,S){return jX(T.tools),this._client.chat.completions.create(T,{...S,headers:{...S?.headers,"X-Stainless-Helper-Method":"beta.chat.completions.parse"}})._thenUnwrap(($)=>wJ($,T))}runFunctions(T,S){if(T.stream)return wf.runFunctions(this._client,T,S);return $M.runFunctions(this._client,T,S)}runTools(T,S){if(T.stream)return wf.runTools(this._client,T,S);return $M.runTools(this._client,T,S)}stream(T,S){return yf.createChatCompletion(this._client,T,S)}}class YJ extends i{constructor(){super(...arguments);this.completions=new oF(this._client)}}(function(T){T.Completions=oF})(YJ||(YJ={}));var u=function(T,S,$,f){if($==="a"&&!f)throw new TypeError("Private accessor was defined without a getter");if(typeof S==="function"?T!==S||!f:!S.has(T))throw new TypeError("Cannot read private member from an object whose class did not declare it");return $==="m"?f:$==="a"?f.call(T):f?f.value:S.get(T)},CS=function(T,S,$,f,M){if(f==="m")throw new TypeError("Private method is not writable");if(f==="a"&&!M)throw new TypeError("Private accessor was defined without a setter");if(typeof S==="function"?T!==S||!M:!S.has(T))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f==="a"?M.call(T,$):M?M.value=$:S.set(T,$),$},$S,s0,w$,gF,S$,Yf,JM,Kf,iF,xS,tF,pF,GJ,RJ,OJ,PX,nX,cX,oX,gX,tX,pX;class jS extends yJ{constructor(){super(...arguments);$S.add(this),s0.set(this,[]),w$.set(this,{}),gF.set(this,{}),S$.set(this,void 0),Yf.set(this,void 0),JM.set(this,void 0),Kf.set(this,void 0),iF.set(this,void 0),xS.set(this,void 0),tF.set(this,void 0),pF.set(this,void 0),GJ.set(this,void 0)}[(s0=new WeakMap,w$=new WeakMap,gF=new WeakMap,S$=new WeakMap,Yf=new WeakMap,JM=new WeakMap,Kf=new WeakMap,iF=new WeakMap,xS=new WeakMap,tF=new WeakMap,pF=new WeakMap,GJ=new WeakMap,$S=new WeakSet,Symbol.asyncIterator)](){let T=[],S=[],$=!1;return this.on("event",(f)=>{let M=S.shift();if(M)M.resolve(f);else T.push(f)}),this.on("end",()=>{$=!0;for(let f of S)f.resolve(void 0);S.length=0}),this.on("abort",(f)=>{$=!0;for(let M of S)M.reject(f);S.length=0}),this.on("error",(f)=>{$=!0;for(let M of S)M.reject(f);S.length=0}),{next:async()=>{if(!T.length){if($)return{value:void 0,done:!0};return new Promise((M,J)=>S.push({resolve:M,reject:J})).then((M)=>M?{value:M,done:!1}:{value:void 0,done:!0})}return{value:T.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}static fromReadableStream(T){let S=new jS;return S._run(()=>S._fromReadableStream(T)),S}async _fromReadableStream(T,S){let $=S?.signal;if($){if($.aborted)this.controller.abort();$.addEventListener("abort",()=>this.controller.abort())}this._connected();let f=NS.fromReadableStream(T,this.controller);for await(let M of f)u(this,$S,"m",RJ).call(this,M);if(f.controller.signal?.aborted)throw new SS;return this._addRun(u(this,$S,"m",OJ).call(this))}toReadableStream(){return new NS(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(T,S,$,f,M){let J=new jS;return J._run(()=>J._runToolAssistantStream(T,S,$,f,{...M,headers:{...M?.headers,"X-Stainless-Helper-Method":"stream"}})),J}async _createToolAssistantStream(T,S,$,f,M){let J=M?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}let F={...f,stream:!0},W=await T.submitToolOutputs(S,$,F,{...M,signal:this.controller.signal});this._connected();for await(let A of W)u(this,$S,"m",RJ).call(this,A);if(W.controller.signal?.aborted)throw new SS;return this._addRun(u(this,$S,"m",OJ).call(this))}static createThreadAssistantStream(T,S,$){let f=new jS;return f._run(()=>f._threadAssistantStream(T,S,{...$,headers:{...$?.headers,"X-Stainless-Helper-Method":"stream"}})),f}static createAssistantStream(T,S,$,f){let M=new jS;return M._run(()=>M._runAssistantStream(T,S,$,{...f,headers:{...f?.headers,"X-Stainless-Helper-Method":"stream"}})),M}currentEvent(){return u(this,tF,"f")}currentRun(){return u(this,pF,"f")}currentMessageSnapshot(){return u(this,S$,"f")}currentRunStepSnapshot(){return u(this,GJ,"f")}async finalRunSteps(){return await this.done(),Object.values(u(this,w$,"f"))}async finalMessages(){return await this.done(),Object.values(u(this,gF,"f"))}async finalRun(){if(await this.done(),!u(this,Yf,"f"))throw Error("Final run was not received.");return u(this,Yf,"f")}async _createThreadAssistantStream(T,S,$){let f=$?.signal;if(f){if(f.aborted)this.controller.abort();f.addEventListener("abort",()=>this.controller.abort())}let M={...S,stream:!0},J=await T.createAndRun(M,{...$,signal:this.controller.signal});this._connected();for await(let F of J)u(this,$S,"m",RJ).call(this,F);if(J.controller.signal?.aborted)throw new SS;return this._addRun(u(this,$S,"m",OJ).call(this))}async _createAssistantStream(T,S,$,f){let M=f?.signal;if(M){if(M.aborted)this.controller.abort();M.addEventListener("abort",()=>this.controller.abort())}let J={...$,stream:!0},F=await T.create(S,J,{...f,signal:this.controller.signal});this._connected();for await(let W of F)u(this,$S,"m",RJ).call(this,W);if(F.controller.signal?.aborted)throw new SS;return this._addRun(u(this,$S,"m",OJ).call(this))}static accumulateDelta(T,S){for(let[$,f]of Object.entries(S)){if(!T.hasOwnProperty($)){T[$]=f;continue}let M=T[$];if(M===null||M===void 0){T[$]=f;continue}if($==="index"||$==="type"){T[$]=f;continue}if(typeof M==="string"&&typeof f==="string")M+=f;else if(typeof M==="number"&&typeof f==="number")M+=f;else if(SJ(M)&&SJ(f))M=this.accumulateDelta(M,f);else if(Array.isArray(M)&&Array.isArray(f)){if(M.every((J)=>typeof J==="string"||typeof J==="number")){M.push(...f);continue}for(let J of f){if(!SJ(J))throw new Error(`Expected array delta entry to be an object but got: ${J}`);let F=J.index;if(F==null)throw console.error(J),new Error("Expected array delta entry to have an `index` property");if(typeof F!=="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${F}`);let W=M[F];if(W==null)M.push(J);else M[F]=this.accumulateDelta(W,J)}continue}else throw Error(`Unhandled record type: ${$}, deltaValue: ${f}, accValue: ${M}`);T[$]=M}return T}_addRun(T){return T}async _threadAssistantStream(T,S,$){return await this._createThreadAssistantStream(S,T,$)}async _runAssistantStream(T,S,$,f){return await this._createAssistantStream(S,T,$,f)}async _runToolAssistantStream(T,S,$,f,M){return await this._createToolAssistantStream($,T,S,f,M)}}RJ=function T(S){if(this.ended)return;switch(CS(this,tF,S,"f"),u(this,$S,"m",cX).call(this,S),S.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.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":u(this,$S,"m",pX).call(this,S);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":u(this,$S,"m",nX).call(this,S);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":u(this,$S,"m",PX).call(this,S);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier")}},OJ=function T(){if(this.ended)throw new $T("stream has ended, this shouldn't happen");if(!u(this,Yf,"f"))throw Error("Final run has not been received");return u(this,Yf,"f")},PX=function T(S){let[$,f]=u(this,$S,"m",gX).call(this,S,u(this,S$,"f"));CS(this,S$,$,"f"),u(this,gF,"f")[$.id]=$;for(let M of f){let J=$.content[M.index];if(J?.type=="text")this._emit("textCreated",J.text)}switch(S.event){case"thread.message.created":this._emit("messageCreated",S.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",S.data.delta,$),S.data.delta.content)for(let M of S.data.delta.content){if(M.type=="text"&&M.text){let J=M.text,F=$.content[M.index];if(F&&F.type=="text")this._emit("textDelta",J,F.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(M.index!=u(this,JM,"f")){if(u(this,Kf,"f"))switch(u(this,Kf,"f").type){case"text":this._emit("textDone",u(this,Kf,"f").text,u(this,S$,"f"));break;case"image_file":this._emit("imageFileDone",u(this,Kf,"f").image_file,u(this,S$,"f"));break}CS(this,JM,M.index,"f")}CS(this,Kf,$.content[M.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(u(this,JM,"f")!==void 0){let M=S.data.content[u(this,JM,"f")];if(M)switch(M.type){case"image_file":this._emit("imageFileDone",M.image_file,u(this,S$,"f"));break;case"text":this._emit("textDone",M.text,u(this,S$,"f"));break}}if(u(this,S$,"f"))this._emit("messageDone",S.data);CS(this,S$,void 0,"f")}},nX=function T(S){let $=u(this,$S,"m",oX).call(this,S);switch(CS(this,GJ,$,"f"),S.event){case"thread.run.step.created":this._emit("runStepCreated",S.data);break;case"thread.run.step.delta":let f=S.data.delta;if(f.step_details&&f.step_details.type=="tool_calls"&&f.step_details.tool_calls&&$.step_details.type=="tool_calls")for(let J of f.step_details.tool_calls)if(J.index==u(this,iF,"f"))this._emit("toolCallDelta",J,$.step_details.tool_calls[J.index]);else{if(u(this,xS,"f"))this._emit("toolCallDone",u(this,xS,"f"));if(CS(this,iF,J.index,"f"),CS(this,xS,$.step_details.tool_calls[J.index],"f"),u(this,xS,"f"))this._emit("toolCallCreated",u(this,xS,"f"))}this._emit("runStepDelta",S.data.delta,$);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":if(CS(this,GJ,void 0,"f"),S.data.step_details.type=="tool_calls"){if(u(this,xS,"f"))this._emit("toolCallDone",u(this,xS,"f")),CS(this,xS,void 0,"f")}this._emit("runStepDone",S.data,$);break;case"thread.run.step.in_progress":break}},cX=function T(S){u(this,s0,"f").push(S),this._emit("event",S)},oX=function T(S){switch(S.event){case"thread.run.step.created":return u(this,w$,"f")[S.data.id]=S.data,S.data;case"thread.run.step.delta":let $=u(this,w$,"f")[S.data.id];if(!$)throw Error("Received a RunStepDelta before creation of a snapshot");let f=S.data;if(f.delta){let M=jS.accumulateDelta($,f.delta);u(this,w$,"f")[S.data.id]=M}return u(this,w$,"f")[S.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":u(this,w$,"f")[S.data.id]=S.data;break}if(u(this,w$,"f")[S.data.id])return u(this,w$,"f")[S.data.id];throw new Error("No snapshot available")},gX=function T(S,$){let f=[];switch(S.event){case"thread.message.created":return[S.data,f];case"thread.message.delta":if(!$)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let M=S.data;if(M.delta.content)for(let J of M.delta.content)if(J.index in $.content){let F=$.content[J.index];$.content[J.index]=u(this,$S,"m",tX).call(this,J,F)}else $.content[J.index]=J,f.push(J);return[$,f];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if($)return[$,f];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},tX=function T(S,$){return jS.accumulateDelta($,S)},pX=function T(S){switch(CS(this,pF,S.data,"f"),S.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(CS(this,Yf,S.data,"f"),u(this,xS,"f"))this._emit("toolCallDone",u(this,xS,"f")),CS(this,xS,void 0,"f");break;case"thread.run.cancelling":break}};class FM extends i{create(T,S,$){return this._client.post(`/threads/${T}/messages`,{body:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,S,$){return this._client.get(`/threads/${T}/messages/${S}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,S,$,f){return this._client.post(`/threads/${T}/messages/${S}`,{body:$,...f,headers:{"OpenAI-Beta":"assistants=v2",...f?.headers}})}list(T,S={},$){if(LT(S))return this.list(T,{},S);return this._client.getAPIList(`/threads/${T}/messages`,zJ,{query:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,S,$){return this._client.delete(`/threads/${T}/messages/${S}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}}class zJ extends PT{}FM.MessagesPage=zJ;class WM extends i{retrieve(T,S,$,f={},M){if(LT(f))return this.retrieve(T,S,$,{},f);return this._client.get(`/threads/${T}/runs/${S}/steps/${$}`,{query:f,...M,headers:{"OpenAI-Beta":"assistants=v2",...M?.headers}})}list(T,S,$={},f){if(LT($))return this.list(T,S,{},$);return this._client.getAPIList(`/threads/${T}/runs/${S}/steps`,_J,{query:$,...f,headers:{"OpenAI-Beta":"assistants=v2",...f?.headers}})}}class _J extends PT{}WM.RunStepsPage=_J;class p$ extends i{constructor(){super(...arguments);this.steps=new WM(this._client)}create(T,S,$){let{include:f,...M}=S;return this._client.post(`/threads/${T}/runs`,{query:{include:f},body:M,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers},stream:S.stream??!1})}retrieve(T,S,$){return this._client.get(`/threads/${T}/runs/${S}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}update(T,S,$,f){return this._client.post(`/threads/${T}/runs/${S}`,{body:$,...f,headers:{"OpenAI-Beta":"assistants=v2",...f?.headers}})}list(T,S={},$){if(LT(S))return this.list(T,{},S);return this._client.getAPIList(`/threads/${T}/runs`,HJ,{query:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}cancel(T,S,$){return this._client.post(`/threads/${T}/runs/${S}/cancel`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}async createAndPoll(T,S,$){let f=await this.create(T,S,$);return await this.poll(T,f.id,$)}createAndStream(T,S,$){return jS.createAssistantStream(T,this._client.beta.threads.runs,S,$)}async poll(T,S,$){let f={...$?.headers,"X-Stainless-Poll-Helper":"true"};if($?.pollIntervalMs)f["X-Stainless-Custom-Poll-Interval"]=$.pollIntervalMs.toString();while(!0){let{data:M,response:J}=await this.retrieve(T,S,{...$,headers:{...$?.headers,...f}}).withResponse();switch(M.status){case"queued":case"in_progress":case"cancelling":let F=5000;if($?.pollIntervalMs)F=$.pollIntervalMs;else{let W=J.headers.get("openai-poll-after-ms");if(W){let A=parseInt(W);if(!isNaN(A))F=A}}await D$(F);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return M}}}stream(T,S,$){return jS.createAssistantStream(T,this._client.beta.threads.runs,S,$)}submitToolOutputs(T,S,$,f){return this._client.post(`/threads/${T}/runs/${S}/submit_tool_outputs`,{body:$,...f,headers:{"OpenAI-Beta":"assistants=v2",...f?.headers},stream:$.stream??!1})}async submitToolOutputsAndPoll(T,S,$,f){let M=await this.submitToolOutputs(T,S,$,f);return await this.poll(T,M.id,f)}submitToolOutputsStream(T,S,$,f){return jS.createToolAssistantStream(T,S,this._client.beta.threads.runs,$,f)}}class HJ extends PT{}p$.RunsPage=HJ;p$.Steps=WM;p$.RunStepsPage=_J;class V$ extends i{constructor(){super(...arguments);this.runs=new p$(this._client),this.messages=new FM(this._client)}create(T={},S){if(LT(T))return this.create({},T);return this._client.post("/threads",{body:T,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}retrieve(T,S){return this._client.get(`/threads/${T}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}update(T,S,$){return this._client.post(`/threads/${T}`,{body:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,S){return this._client.delete(`/threads/${T}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}createAndRun(T,S){return this._client.post("/threads/runs",{body:T,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers},stream:T.stream??!1})}async createAndRunPoll(T,S){let $=await this.createAndRun(T,S);return await this.runs.poll($.thread_id,$.id,S)}createAndRunStream(T,S){return jS.createThreadAssistantStream(T,this._client.beta.threads,S)}}V$.Runs=p$;V$.RunsPage=HJ;V$.Messages=FM;V$.MessagesPage=zJ;var iX=async(T)=>{let S=await Promise.allSettled(T),$=S.filter((M)=>M.status==="rejected");if($.length){for(let M of $)console.error(M.reason);throw new Error(`${$.length} promise(s) failed - see the above errors`)}let f=[];for(let M of S)if(M.status==="fulfilled")f.push(M.value);return f};class AM extends i{create(T,S,$){return this._client.post(`/vector_stores/${T}/files`,{body:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,S,$){return this._client.get(`/vector_stores/${T}/files/${S}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}list(T,S={},$){if(LT(S))return this.list(T,{},S);return this._client.getAPIList(`/vector_stores/${T}/files`,Rf,{query:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}del(T,S,$){return this._client.delete(`/vector_stores/${T}/files/${S}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}async createAndPoll(T,S,$){let f=await this.create(T,S,$);return await this.poll(T,f.id,$)}async poll(T,S,$){let f={...$?.headers,"X-Stainless-Poll-Helper":"true"};if($?.pollIntervalMs)f["X-Stainless-Custom-Poll-Interval"]=$.pollIntervalMs.toString();while(!0){let M=await this.retrieve(T,S,{...$,headers:f}).withResponse(),J=M.data;switch(J.status){case"in_progress":let F=5000;if($?.pollIntervalMs)F=$.pollIntervalMs;else{let W=M.response.headers.get("openai-poll-after-ms");if(W){let A=parseInt(W);if(!isNaN(A))F=A}}await D$(F);break;case"failed":case"completed":return J}}}async upload(T,S,$){let f=await this._client.files.create({file:S,purpose:"assistants"},$);return this.create(T,{file_id:f.id},$)}async uploadAndPoll(T,S,$){let f=await this.upload(T,S,$);return await this.poll(T,f.id,$)}}class Rf extends PT{}AM.VectorStoreFilesPage=Rf;class DJ extends i{create(T,S,$){return this._client.post(`/vector_stores/${T}/file_batches`,{body:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}retrieve(T,S,$){return this._client.get(`/vector_stores/${T}/file_batches/${S}`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}cancel(T,S,$){return this._client.post(`/vector_stores/${T}/file_batches/${S}/cancel`,{...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}async createAndPoll(T,S,$){let f=await this.create(T,S);return await this.poll(T,f.id,$)}listFiles(T,S,$={},f){if(LT($))return this.listFiles(T,S,{},$);return this._client.getAPIList(`/vector_stores/${T}/file_batches/${S}/files`,Rf,{query:$,...f,headers:{"OpenAI-Beta":"assistants=v2",...f?.headers}})}async poll(T,S,$){let f={...$?.headers,"X-Stainless-Poll-Helper":"true"};if($?.pollIntervalMs)f["X-Stainless-Custom-Poll-Interval"]=$.pollIntervalMs.toString();while(!0){let{data:M,response:J}=await this.retrieve(T,S,{...$,headers:f}).withResponse();switch(M.status){case"in_progress":let F=5000;if($?.pollIntervalMs)F=$.pollIntervalMs;else{let W=J.headers.get("openai-poll-after-ms");if(W){let A=parseInt(W);if(!isNaN(A))F=A}}await D$(F);break;case"failed":case"cancelled":case"completed":return M}}}async uploadAndPoll(T,{files:S,fileIds:$=[]},f){if(S==null||S.length==0)throw new Error("No \`files\` provided to process. If you've already uploaded files you should use \`.createAndPoll()\` instead");let M=f?.maxConcurrency??5,J=Math.min(M,S.length),F=this._client,W=S.values(),A=[...$];async function k(y){for(let w of y){let G=await F.files.create({file:w,purpose:"assistants"},f);A.push(G.id)}}let X=Array(J).fill(W).map(k);return await iX(X),await this.createAndPoll(T,{file_ids:A})}}class B$ extends i{constructor(){super(...arguments);this.files=new AM(this._client),this.fileBatches=new DJ(this._client)}create(T,S){return this._client.post("/vector_stores",{body:T,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}retrieve(T,S){return this._client.get(`/vector_stores/${T}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}update(T,S,$){return this._client.post(`/vector_stores/${T}`,{body:S,...$,headers:{"OpenAI-Beta":"assistants=v2",...$?.headers}})}list(T={},S){if(LT(T))return this.list({},T);return this._client.getAPIList("/vector_stores",EJ,{query:T,...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}del(T,S){return this._client.delete(`/vector_stores/${T}`,{...S,headers:{"OpenAI-Beta":"assistants=v2",...S?.headers}})}}class EJ extends PT{}B$.VectorStoresPage=EJ;B$.Files=AM;B$.VectorStoreFilesPage=Rf;B$.FileBatches=DJ;class $$ extends i{constructor(){super(...arguments);this.vectorStores=new B$(this._client),this.chat=new YJ(this._client),this.assistants=new TM(this._client),this.threads=new V$(this._client)}}$$.VectorStores=B$;$$.VectorStoresPage=EJ;$$.Assistants=TM;$$.AssistantsPage=FJ;$$.Threads=V$;class kM extends i{create(T,S){return this._client.post("/completions",{body:T,...S,stream:T.stream??!1})}}class XM extends i{create(T,S){return this._client.post("/embeddings",{body:T,...S})}}class Of extends i{create(T,S){return this._client.post("/files",vS({body:T,...S}))}retrieve(T,S){return this._client.get(`/files/${T}`,S)}list(T={},S){if(LT(T))return this.list({},T);return this._client.getAPIList("/files",yM,{query:T,...S})}del(T,S){return this._client.delete(`/files/${T}`,S)}content(T,S){return this._client.get(`/files/${T}/content`,{...S,__binaryResponse:!0})}retrieveContent(T,S){return this._client.get(`/files/${T}/content`,{...S,headers:{Accept:"application/json",...S?.headers}})}async waitForProcessing(T,{pollInterval:S=5000,maxWait:$=1800000}={}){let f=new Set(["processed","error","deleted"]),M=Date.now(),J=await this.retrieve(T);while(!J.status||!f.has(J.status))if(await D$(S),J=await this.retrieve(T),Date.now()-M>$)throw new Ff({message:`Giving up on waiting for file ${T} to finish processing after ${$} milliseconds.`});return J}}class yM extends PT{}Of.FileObjectsPage=yM;class wM extends i{list(T,S={},$){if(LT(S))return this.list(T,{},S);return this._client.getAPIList(`/fine_tuning/jobs/${T}/checkpoints`,QJ,{query:S,...$})}}class QJ extends PT{}wM.FineTuningJobCheckpointsPage=QJ;class L$ extends i{constructor(){super(...arguments);this.checkpoints=new wM(this._client)}create(T,S){return this._client.post("/fine_tuning/jobs",{body:T,...S})}retrieve(T,S){return this._client.get(`/fine_tuning/jobs/${T}`,S)}list(T={},S){if(LT(T))return this.list({},T);return this._client.getAPIList("/fine_tuning/jobs",UJ,{query:T,...S})}cancel(T,S){return this._client.post(`/fine_tuning/jobs/${T}/cancel`,S)}listEvents(T,S={},$){if(LT(S))return this.listEvents(T,{},S);return this._client.getAPIList(`/fine_tuning/jobs/${T}/events`,VJ,{query:S,...$})}}class UJ extends PT{}class VJ extends PT{}L$.FineTuningJobsPage=UJ;L$.FineTuningJobEventsPage=VJ;L$.Checkpoints=wM;L$.FineTuningJobCheckpointsPage=QJ;class N$ extends i{constructor(){super(...arguments);this.jobs=new L$(this._client)}}N$.Jobs=L$;N$.FineTuningJobsPage=UJ;N$.FineTuningJobEventsPage=VJ;class KM extends i{createVariation(T,S){return this._client.post("/images/variations",vS({body:T,...S}))}edit(T,S){return this._client.post("/images/edits",vS({body:T,...S}))}generate(T,S){return this._client.post("/images/generations",{body:T,...S})}}class Gf extends i{retrieve(T,S){return this._client.get(`/models/${T}`,S)}list(T){return this._client.getAPIList("/models",YM,T)}del(T,S){return this._client.delete(`/models/${T}`,S)}}class YM extends Z0{}Gf.ModelsPage=YM;class RM extends i{create(T,S){return this._client.post("/moderations",{body:T,...S})}}class BJ extends i{create(T,S,$){return this._client.post(`/uploads/${T}/parts`,vS({body:S,...$}))}}class zf extends i{constructor(){super(...arguments);this.parts=new BJ(this._client)}create(T,S){return this._client.post("/uploads",{body:T,...S})}cancel(T,S){return this._client.post(`/uploads/${T}/cancel`,S)}complete(T,S,$){return this._client.post(`/uploads/${T}/complete`,{body:S,...$})}}zf.Parts=BJ;var lX;class RT extends q0{constructor({baseURL:T=TJ("OPENAI_BASE_URL"),apiKey:S=TJ("OPENAI_API_KEY"),organization:$=TJ("OPENAI_ORG_ID")??null,project:f=TJ("OPENAI_PROJECT_ID")??null,...M}={}){if(S===void 0)throw new $T("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 J={apiKey:S,organization:$,project:f,...M,baseURL:T||"https://api.openai.com/v1"};if(!J.dangerouslyAllowBrowser&&LX())throw new $T("It looks like you're running in a browser-like environment.\n\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\nIf you understand the risks and have appropriate mitigations in place,\nyou can set the `dangerouslyAllowBrowser` option to `true`, e.g.,\n\nnew OpenAI({ apiKey, dangerouslyAllowBrowser: true });\n\nhttps://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety\n");super({baseURL:J.baseURL,timeout:J.timeout??600000,httpAgent:J.httpAgent,maxRetries:J.maxRetries,fetch:J.fetch});this.completions=new kM(this),this.chat=new Af(this),this.embeddings=new XM(this),this.files=new Of(this),this.images=new KM(this),this.audio=new E$(this),this.moderations=new RM(this),this.models=new Gf(this),this.fineTuning=new N$(this),this.beta=new $$(this),this.batches=new kf(this),this.uploads=new zf(this),this._options=J,this.apiKey=S,this.organization=$,this.project=f}defaultQuery(){return this._options.defaultQuery}defaultHeaders(T){return{...super.defaultHeaders(T),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project,...this._options.defaultHeaders}}authHeaders(T){return{Authorization:`Bearer ${this.apiKey}`}}stringifyQuery(T){return D0(T,{arrayFormat:"brackets"})}}lX=RT;RT.OpenAI=lX;RT.DEFAULT_TIMEOUT=600000;RT.OpenAIError=$T;RT.APIError=gT;RT.APIConnectionError=Jf;RT.APIConnectionTimeoutError=Ff;RT.APIUserAbortError=SS;RT.NotFoundError=UF;RT.ConflictError=VF;RT.RateLimitError=LF;RT.BadRequestError=DF;RT.AuthenticationError=EF;RT.InternalServerError=NF;RT.PermissionDeniedError=QF;RT.UnprocessableEntityError=BF;RT.toFile=j0;RT.fileFromPath=HF;RT.Completions=kM;RT.Chat=Af;RT.Embeddings=XM;RT.Files=Of;RT.FileObjectsPage=yM;RT.Images=KM;RT.Audio=E$;RT.Moderations=RM;RT.Models=Gf;RT.ModelsPage=YM;RT.FineTuning=N$;RT.Beta=$$;RT.Batches=kf;RT.BatchesPage=sf;RT.Uploads=zf;var uX=RT;import{createHash as i6}from"crypto";import*as aT from"fs";import*as C$ from"path";function l6(T){let S=T.replace(u6,"-");if(S.length<=64)return S;let $=i6("sha256").update(T).digest("hex");return S.slice(-64)+"+"+$}var u6=/[^a-zA-Z0-9\-._]/g;class T1{mode;baseDir;filenameCache=new Map;filesTouched=new Map;constructor(T="off",S=C$.join(process.cwd(),".varmint")){this.mode=T,this.baseDir=S}read(T,S,$){let f=C$.join(this.baseDir,`${T}/${S}.input.json`);if(!aT.existsSync(f))throw new Error(`Squirrel: input file for key "${T}" does not exist`);let M=aT.readFileSync(f,"utf-8"),J=JSON.stringify($,null,"\t");if(J!==M)throw new Error(`Squirrel: the content of the cached input file ${f} does not match the input provided.\n\nProvided:\n${J}\n\nCached:\n${M}`);let F=C$.join(this.baseDir,`${T}/${S}.output.json`);return JSON.parse(aT.readFileSync(F,"utf-8"))}async write(T,S,$,f){let M=C$.join(this.baseDir,T),J=C$.join(M,`${S}.input.json`),F=C$.join(M,`${S}.output.json`),W=JSON.stringify($,null,"\t");if(!aT.existsSync(this.baseDir))aT.mkdirSync(this.baseDir);if(!aT.existsSync(M))aT.mkdirSync(M);if(aT.writeFileSync(J,W),aT.existsSync(F))aT.unlinkSync(F);let A=await f(...$);return aT.writeFileSync(F,JSON.stringify(A,null,"\t")),A}add(T,S){return{flush:()=>{this.flush(T)},for:($)=>{if(this.mode!=="off"&&!this.filesTouched.has(T))this.filesTouched.set(T,new Set);return{get:async(...f)=>{let M=$;if(this.mode!=="off"){let J=this.filenameCache.get($);if(!J)J=l6($),this.filenameCache.set($,M),M=J;this.filesTouched.get(T)?.add(M)}switch(this.mode){case"off":return S(...f);case"read":return this.read(T,M,f);case"write":return this.write(T,M,f,S);case"read-write":try{return this.read(T,M,f)}catch(J){if(J instanceof Error)return this.write(T,M,f,S);throw J}}}}}}}flush(...T){for(let[S,$]of this.filesTouched.entries())if(T.length===0||T.includes(S)){let f=C$.join(this.baseDir,S),M=aT.readdirSync(f);for(let J of M){let F=J.replace(".input.json","").replace(".output.json","");if(!$.has(F))console.log(`\uD83D\uDCA5 Flushing ${F}`),aT.unlinkSync(C$.join(f,J))}}}}function r6(T,...S){let[$,f,M,J]=S,F=[{role:"user",content:SX(f)},{role:"user",content:$}],W=J.at(-1);if(W)F.push({role:"user",content:["Oops! That didn't work. Here's what was returned last time:",JSON.stringify(W.response,null,2),"Here's the error message:",W.error.toString()].join(`
|
|
12
|
-
`)});return{model:T,messages:F}}var S1={"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}},dX=new Map;function a6(T="NO_API_KEY_PROVIDED"){let S=d6("sha256").update(T).digest("hex");return async function $(f,M){let J=dX.get(S);if(!J)J=new uX({apiKey:T,dangerouslyAllowBrowser:!1}),dX.set(S,J);let F=await J.chat.completions.create({...f,stream:!1,response_format:{type:"json_object"}},M),W=F.choices[0].message?.content,{usage:A}=F;if(W&&A){let k=A.prompt_tokens,X=A.prompt_tokens_details?.cached_tokens??0,y=k-X,w=A.completion_tokens,G=k*S1[f.model].promptPricePerToken+y*S1[f.model].promptPricePerTokenCached+w*S1[f.model].completionPricePerToken;return{data:JSON.parse(W),usdPrice:G}}if(!W&&!A)throw new Error("No content or usage found in completion");if(!W)throw new Error("No content found in completion");throw new Error("No usage found in completion")}}var rX=class{usdFloor;usdBudget;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;constructor({model:T,usdBudget:S,usdMinimum:$,apiKey:f,cachingMode:M,logger:J}){this.usdBudget=S,this.usdFloor=$,this.squirrel=new T1(M),this.getUnknownJsonFromOpenAi=a6(f),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add("openai-safegen",this.getUnknownJsonFromOpenAi),this.from=TX(async(...F)=>{if(this.usdBudget<this.usdFloor)return J?.warn("SafeGen budget exhausted"),F[1];let W=r6(T,...F),A=F[0],k=F[3],X=await this.getUnknownJsonFromOpenAiSquirreled.for(`${A.replace(/[^a-zA-Z0-9-_. ]/g,"_")}-${k.length}`).get(W);return this.usdBudget-=X.usdPrice,X.data})}from};import{exec as W7}from"child_process";import{existsSync as A7}from"fs";import{readFile as k7,writeFile as X7}from"fs/promises";import{resolve as y7}from"path";var $1=(T)=>{let S=_S(T,{key:"\uD83D\uDD0D Atom Token Index (Internal)",default:()=>{let $=new Map;for(let[f,M]of T.atoms)if(!f.includes("\uD83D\uDD0D")){let J=kS(M);if(M.family){let F=$.get(M.family.key);if(!F||!("familyMembers"in F))F={key:M.family.key,familyMembers:new Map},$.set(M.family.key,F);F.familyMembers.set(M.family.subKey,J)}else $.set(f,J)}return $},effects:[({setSelf:$})=>{T.on.atomCreation.subscribe("introspection",(f)=>{if(f.key.includes("\uD83D\uDD0D"))return;$((M)=>{if(f.family){let{key:J,subKey:F}=f.family,W=M.get(J);if(W===void 0||!("familyMembers"in W))W={key:J,familyMembers:new Map},M.set(J,W);W.familyMembers.set(F,f)}else M.set(f.key,f);return M})}),T.on.atomDisposal.subscribe("introspection",(f)=>{$((M)=>{if(f.family){let{key:J,subKey:F}=f.family,W=M.get(J);if(W&&"familyMembers"in W){if(W.familyMembers.delete(F),W.familyMembers.size===0)M.delete(J)}}else M.delete(f.key);return M})})}]},void 0);return pS(T,{key:"\uD83D\uDD0D Atom Token Index",get:({get:$})=>$(S)})};var f1=(T)=>{let S=_S(T,{key:"\uD83D\uDD0D Selector Token Index (Internal)",default:()=>{let $=new Map;for(let f of[T.readonlySelectors,T.selectors])for(let[M,J]of f)if(!M.includes("\uD83D\uDD0D")){let F=kS(J);if(J.family){let W=$.get(J.family.key);if(!W||!("familyMembers"in W))W={key:J.family.key,familyMembers:new Map},$.set(J.family.key,W);W.familyMembers.set(J.family.subKey,F)}else $.set(M,F)}return $},effects:[({setSelf:$})=>{T.on.selectorCreation.subscribe("introspection",(f)=>{if(f.key.includes("\uD83D\uDD0D"))return;$((M)=>{if(f.family){let{key:J,subKey:F}=f.family,W=M.get(J);if(W===void 0||!("familyMembers"in W))W={key:J,familyMembers:new Map},M.set(J,W);W.familyMembers.set(F,f)}else M.set(f.key,f);return M})}),T.on.selectorDisposal.subscribe("introspection",(f)=>{$((M)=>{if(f.family){let{key:J,subKey:F}=f.family,W=M.get(J);if(W&&"familyMembers"in W){if(W.familyMembers.delete(F),W.familyMembers.size===0)M.delete(J)}}else M.delete(f.key);return M})})}]},void 0);return pS(T,{key:"\uD83D\uDD0D Selector Token Index",get:({get:$})=>$(S)})};class lF{supported;constructor(T){this.supported=T}refine(T){for(let[S,$]of Object.entries(this.supported))try{if($(T)===!0&&$!==Boolean)return{type:S,data:T}}catch(f){try{if(T instanceof $)return{type:S,data:T}}catch(M){}}return null}}var M1=new lF({number:(T)=>typeof T==="number",string:(T)=>typeof T==="string",boolean:(T)=>typeof T==="boolean",null:(T)=>T===null});function J1(T){if(!T)return!1;return Object.getPrototypeOf(T)===Object.prototype}var F1=new lF({object:J1,array:(T)=>Array.isArray(T)}),e6=new lF({...M1.supported,...F1.supported}),OM=(T)=>{if(T===void 0)return"undefined";let S=e6.refine(T);if(S)return S.type;return Object.getPrototypeOf(T).constructor.name};class aX{T;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(T=XT.STORE){this.store=T;this.atomIndex=$1(this.store),this.selectorIndex=f1(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:S})=>{this.statesCreatedAt.set(S,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:S})=>{this.statesCreatedAt.delete(S)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:S})=>{this.statesCreatedAt.set(S,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:S})=>{this.statesCreatedAt.delete(S)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(T=aX.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let S=nW(this.atomIndex),$=nW(this.selectorIndex),f=[...S.values()].filter((W)=>("familyMembers"in W)),M=[...$.values()].filter((W)=>("familyMembers"in W)),J=performance.now(),F=[];if(T.atomFamilies)for(let W of f){let A=W.familyMembers.values();for(let k of A){let y=this.statesCreatedAt.get(k.key)??this.auditorCreatedAt,w=J-y;F.push([k,w])}}if(T.selectorFamilies)for(let W of M){let A=W.familyMembers.values();for(let k of A){let y=this.statesCreatedAt.get(k.key)??this.auditorCreatedAt,w=J-y;F.push([k,w])}}return F}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var W1=(T,S)=>{let $=(f,M)=>{let F=((A,k)=>{let X=S(A,k);if(X)return X;return null})(f,M);if(F?.jobComplete??F?.pathComplete)return F;let W=Array.isArray(M)?M.map((A,k)=>[k,A]):J1(M)?Object.entries(M):[];for(let[A,k]of W){let X=$([...f,A],k);if(X?.jobComplete)return X}return{}};$([],T)};function s6(T,S){return{summary:`${T<S?"+":"-"}${Math.abs(T-S)} (${T} \u2192 ${S})`}}function TY(T,S){return{summary:`${T.length<S.length?"+":"-"}${Math.abs(T.length-S.length)} ("${T}" \u2192 "${S}")`}}function SY(T,S){return{summary:`${T} \u2192 ${S}`}}function eX(T,S,$){let f="",M=[],J=[],F=[];return W1(T,(W,A)=>{let k;for(k of W){let X=S[k];if(X===void 0)J.push([k,JSON.stringify(A)]);else{let y=$(A,X);if(y.summary!=="No Change")F.push([k,y])}}}),W1(S,(W,A)=>{let k;for(k of W)if(T[k]===void 0)M.push([k,JSON.stringify(A)])}),f=`\uFF5E${F.length} \uFF0B${M.length} \uFF0D${J.length}`,{summary:f,added:M,removed:J,changed:F}}function $Y(T,S,$){return eX(T,S,$)}class sX{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(T,S,$){this.leafRefinery=T,this.treeRefinery=S,this.leafDiffers={},this.treeDiffers={};for(let f of Object.keys(T.supported)){let M=$[f];this.leafDiffers[f]=M}for(let f of Object.keys(S.supported)){let M=$[f];this.treeDiffers[f]=M}}diff(T,S){if(T===S)return{summary:"No Change"};let $=this.leafRefinery.refine(T)??this.treeRefinery.refine(T),f=this.leafRefinery.refine(S)??this.treeRefinery.refine(S);if($!==null&&f!==null){if($.type===f.type){if($.type in this.leafDiffers)return this.leafDiffers[$.type]($.data,f.data);if($.type in this.treeDiffers)return this.treeDiffers[$.type]($.data,f.data,(W,A)=>this.diff(W,A))}}let M=OM(T),J=OM(S);if(M===J)return{summary:`${M} \u2192 ${J}`};return{summary:`Type change: ${M} \u2192 ${J}`}}}var CN=new sX(M1,F1,{number:s6,string:TY,boolean:SY,null:()=>({summary:"No Change"}),object:eX,array:$Y});var Y=Symbol.for("drizzle:entityKind"),hN=Symbol.for("drizzle:hasOwnEntityKind");function V(T,S){if(!T||typeof T!=="object")return!1;if(T instanceof S)return!0;if(!Object.prototype.hasOwnProperty.call(S,Y))throw new Error(`Class "${S.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 $=Object.getPrototypeOf(T).constructor;if($)while($){if(Y in $&&$[Y]===S[Y])return!0;$=Object.getPrototypeOf($)}return!1}class NT{constructor(T,S){this.table=T,this.config=S,this.name=S.name,this.keyAsName=S.keyAsName,this.notNull=S.notNull,this.default=S.default,this.defaultFn=S.defaultFn,this.onUpdateFn=S.onUpdateFn,this.hasDefault=S.hasDefault,this.primary=S.primaryKey,this.isUnique=S.isUnique,this.uniqueName=S.uniqueName,this.uniqueType=S.uniqueType,this.dataType=S.dataType,this.columnType=S.columnType,this.generated=S.generated,this.generatedIdentity=S.generatedIdentity}static[Y]="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(T){return T}mapToDriverValue(T){return T}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class A1{static[Y]="ColumnBuilder";config;constructor(T,S,$){this.config={name:T,keyAsName:T==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:S,columnType:$,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(T){return this.config.default=T,this.config.hasDefault=!0,this}$defaultFn(T){return this.config.defaultFn=T,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(T){return this.config.onUpdateFn=T,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(T){if(this.config.name!=="")return;this.config.name=T}}var f$=Symbol.for("drizzle:Name");class k1{static[Y]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(T,S){if(this.reference=()=>{let{name:$,columns:f,foreignColumns:M}=T();return{name:$,columns:f,foreignTable:M[0].table,foreignColumns:M}},S)this._onUpdate=S.onUpdate,this._onDelete=S.onDelete}onUpdate(T){return this._onUpdate=T===void 0?"no action":T,this}onDelete(T){return this._onDelete=T===void 0?"no action":T,this}build(T){return new Ty(T,this)}}class Ty{constructor(T,S){this.table=T,this.reference=S.reference,this.onUpdate=S._onUpdate,this.onDelete=S._onDelete}static[Y]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:T,columns:S,foreignColumns:$}=this.reference(),f=S.map((F)=>F.name),M=$.map((F)=>F.name),J=[this.table[f$],...f,$[0].table[f$],...M];return T??`${J.join("_")}_fk`}}function uF(T,...S){return T(...S)}function Sy(T,S){return`${T[f$]}_${S.join("_")}_unique`}function $y(T,S,$){for(let f=S;f<T.length;f++){let M=T[f];if(M==="\\"){f++;continue}if(M==='"')return[T.slice(S,f).replace(/\\/g,""),f+1];if($)continue;if(M===","||M==="}")return[T.slice(S,f).replace(/\\/g,""),f]}return[T.slice(S).replace(/\\/g,""),T.length]}function fy(T,S=0){let $=[],f=S,M=!1;while(f<T.length){let J=T[f];if(J===","){if(M||f===S)$.push("");M=!0,f++;continue}if(M=!1,J==="\\"){f+=2;continue}if(J==='"'){let[A,k]=$y(T,f+1,!0);$.push(A),f=k;continue}if(J==="}")return[$,f+1];if(J==="{"){let[A,k]=fy(T,f+1);$.push(A),f=k;continue}let[F,W]=$y(T,f,!1);$.push(F),f=W}return[$,f]}function My(T){let[S]=fy(T,1);return S}function X1(T){return`{${T.map((S)=>{if(Array.isArray(S))return X1(S);if(typeof S==="string")return`"${S.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`;return`${S}`}).join(",")}}`}class g extends A1{foreignKeyConfigs=[];static[Y]="PgColumnBuilder";array(T){return new Fy(this.config.name,this,T)}references(T,S={}){return this.foreignKeyConfigs.push({ref:T,actions:S}),this}unique(T,S){return this.config.isUnique=!0,this.config.uniqueName=T,this.config.uniqueType=S?.nulls,this}generatedAlwaysAs(T){return this.config.generated={as:T,type:"always",mode:"stored"},this}buildForeignKeys(T,S){return this.foreignKeyConfigs.map(({ref:$,actions:f})=>{return uF((M,J)=>{let F=new k1(()=>{let W=M();return{columns:[T],foreignColumns:[W]}});if(J.onUpdate)F.onUpdate(J.onUpdate);if(J.onDelete)F.onDelete(J.onDelete);return F.build(S)},$,f)})}buildExtraConfigColumn(T){return new Jy(T,this.config)}}class q extends NT{constructor(T,S){if(!S.uniqueName)S.uniqueName=Sy(T,[S.name]);super(T,S);this.table=T}static[Y]="PgColumn"}class Jy extends q{static[Y]="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(T){return this.indexConfig.opClass=T,this}}class LJ{static[Y]="IndexedColumn";constructor(T,S,$,f){this.name=T,this.keyAsName=S,this.type=$,this.indexConfig=f}name;keyAsName;type;indexConfig}class Fy extends g{static[Y]="PgArrayBuilder";constructor(T,S,$){super(T,"array","PgArray");this.config.baseBuilder=S,this.config.size=$}build(T){let S=this.config.baseBuilder.build(T);return new y1(T,this.config,S)}}class y1 extends q{constructor(T,S,$,f){super(T,S);this.baseColumn=$,this.range=f,this.size=S.size}size;static[Y]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(T){if(typeof T==="string")T=My(T);return T.map((S)=>this.baseColumn.mapFromDriverValue(S))}mapToDriverValue(T,S=!1){let $=T.map((f)=>f===null?null:V(this.baseColumn,y1)?this.baseColumn.mapToDriverValue(f,!0):this.baseColumn.mapToDriverValue(f));if(S)return $;return X1($)}}var w1=Symbol.for("drizzle:isPgEnum");function Wy(T){return!!T&&typeof T==="function"&&w1 in T&&T[w1]===!0}class Ay extends g{static[Y]="PgEnumColumnBuilder";constructor(T,S){super(T,"string","PgEnumColumn");this.config.enum=S}build(T){return new ky(T,this.config)}}class ky extends q{static[Y]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(T,S){super(T,S);this.enum=S.enum}getSQLType(){return this.enum.enumName}}function dF(T,S){return fY(T,S,void 0)}function fY(T,S,$){let f=Object.assign((M)=>new Ay(M??"",f),{enumName:T,enumValues:S,schema:$,[w1]:!0});return f}class fS{static[Y]="Subquery";constructor(T,S,$,f=!1){this._={brand:"Subquery",sql:T,selectedFields:S,alias:$,isWith:f}}}class NJ extends fS{static[Y]="WithSubquery"}var Xy="0.36.0";var K1,Y1,QT={startActiveSpan(T,S){if(!K1)return S();if(!Y1)Y1=K1.trace.getTracer("drizzle-orm",Xy);return uF(($,f)=>f.startActiveSpan(T,(M)=>{try{return S(M)}catch(J){throw M.setStatus({code:$.SpanStatusCode.ERROR,message:J instanceof Error?J.message:"Unknown error"}),J}finally{M.end()}}),K1,Y1)}};var hT=Symbol.for("drizzle:ViewBaseConfig");var rF=Symbol.for("drizzle:Schema"),yy=Symbol.for("drizzle:Columns"),wy=Symbol.for("drizzle:ExtraConfigColumns"),R1=Symbol.for("drizzle:OriginalName"),O1=Symbol.for("drizzle:BaseName"),Ky=Symbol.for("drizzle:IsAlias"),Yy=Symbol.for("drizzle:ExtraConfigBuilder"),MY=Symbol.for("drizzle:IsDrizzleTable");class c{static[Y]="Table";static Symbol={Name:f$,Schema:rF,OriginalName:R1,Columns:yy,ExtraConfigColumns:wy,BaseName:O1,IsAlias:Ky,ExtraConfigBuilder:Yy};[f$];[R1];[rF];[yy];[wy];[O1];[Ky]=!1;[MY]=!0;[Yy]=void 0;constructor(T,S,$){this[f$]=this[R1]=T,this[rF]=S,this[O1]=$}}function PS(T){return T[f$]}function _f(T){return`${T[rF]??"public"}.${T[f$]}`}function G1(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function JY(T){let S={sql:"",params:[]};for(let $ of T)if(S.sql+=$.sql,S.params.push(...$.params),$.typings?.length){if(!S.typings)S.typings=[];S.typings.push(...$.typings)}return S}class eT{static[Y]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new t([this])}}class t{constructor(T){this.queryChunks=T}static[Y]="SQL";decoder=Oy;shouldInlineParams=!1;append(T){return this.queryChunks.push(...T.queryChunks),this}toQuery(T){return QT.startActiveSpan("drizzle.buildSQL",(S)=>{let $=this.buildQueryFromSourceParams(this.queryChunks,T);return S?.setAttributes({"drizzle.query.text":$.sql,"drizzle.query.params":JSON.stringify($.params)}),$})}buildQueryFromSourceParams(T,S){let $=Object.assign({},S,{inlineParams:S.inlineParams||this.shouldInlineParams,paramStartIndex:S.paramStartIndex||{value:0}}),{casing:f,escapeName:M,escapeParam:J,prepareTyping:F,inlineParams:W,paramStartIndex:A}=$;return JY(T.map((k)=>{if(V(k,eT))return{sql:k.value.join(""),params:[]};if(V(k,aF))return{sql:M(k.value),params:[]};if(k===void 0)return{sql:"",params:[]};if(Array.isArray(k)){let X=[new eT("(")];for(let[y,w]of k.entries())if(X.push(w),y<k.length-1)X.push(new eT(", "));return X.push(new eT(")")),this.buildQueryFromSourceParams(X,$)}if(V(k,t))return this.buildQueryFromSourceParams(k.queryChunks,{...$,inlineParams:W||k.shouldInlineParams});if(V(k,c)){let X=k[c.Symbol.Schema],y=k[c.Symbol.Name];return{sql:X===void 0?M(y):M(X)+"."+M(y),params:[]}}if(V(k,NT)){let X=f.getColumnCasing(k);if(S.invokeSource==="indexes")return{sql:M(X),params:[]};return{sql:M(k.table[c.Symbol.Name])+"."+M(X),params:[]}}if(V(k,ES)){let X=k[hT].schema,y=k[hT].name;return{sql:X===void 0?M(y):M(X)+"."+M(y),params:[]}}if(V(k,IS)){if(V(k.value,i$))return{sql:J(A.value++,k),params:[k],typings:["none"]};let X=k.value===null?null:k.encoder.mapToDriverValue(k.value);if(V(X,t))return this.buildQueryFromSourceParams([X],$);if(W)return{sql:this.mapInlineParam(X,$),params:[]};let y=["none"];if(F)y=[F(k.encoder)];return{sql:J(A.value++,X),params:[X],typings:y}}if(V(k,i$))return{sql:J(A.value++,k),params:[k],typings:["none"]};if(V(k,t.Aliased)&&k.fieldAlias!==void 0)return{sql:M(k.fieldAlias),params:[]};if(V(k,fS)){if(k._.isWith)return{sql:M(k._.alias),params:[]};return this.buildQueryFromSourceParams([new eT("("),k._.sql,new eT(") "),new aF(k._.alias)],$)}if(Wy(k)){if(k.schema)return{sql:M(k.schema)+"."+M(k.enumName),params:[]};return{sql:M(k.enumName),params:[]}}if(G1(k)){if(k.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([k.getSQL()],$);return this.buildQueryFromSourceParams([new eT("("),k.getSQL(),new eT(")")],$)}if(W)return{sql:this.mapInlineParam(k,$),params:[]};return{sql:J(A.value++,k),params:[k],typings:["none"]}}))}mapInlineParam(T,{escapeString:S}){if(T===null)return"null";if(typeof T==="number"||typeof T==="boolean")return T.toString();if(typeof T==="string")return S(T);if(typeof T==="object"){let $=T.toString();if($==="[object Object]")return S(JSON.stringify(T));return S($)}throw new Error("Unexpected param value: "+T)}getSQL(){return this}as(T){if(T===void 0)return this;return new t.Aliased(this,T)}mapWith(T){return this.decoder=typeof T==="function"?{mapFromDriverValue:T}:T,this}inlineParams(){return this.shouldInlineParams=!0,this}if(T){return T?this:void 0}}class aF{constructor(T){this.value=T}static[Y]="Name";brand;getSQL(){return new t([this])}}function Ry(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var Oy={mapFromDriverValue:(T)=>T},Gy={mapToDriverValue:(T)=>T},VC={...Oy,...Gy};class IS{constructor(T,S=Gy){this.value=T,this.encoder=S}static[Y]="Param";brand;getSQL(){return new t([this])}}function R(T,...S){let $=[];if(S.length>0||T.length>0&&T[0]!=="")$.push(new eT(T[0]));for(let[f,M]of S.entries())$.push(M,new eT(T[f+1]));return new t($)}((T)=>{function S(){return new t([])}T.empty=S;function $(A){return new t(A)}T.fromList=$;function f(A){return new t([new eT(A)])}T.raw=f;function M(A,k){let X=[];for(let[y,w]of A.entries()){if(y>0&&k!==void 0)X.push(k);X.push(w)}return new t(X)}T.join=M;function J(A){return new aF(A)}T.identifier=J;function F(A){return new i$(A)}T.placeholder=F;function W(A,k){return new IS(A,k)}T.param=W})(R||(R={}));((T)=>{class S{constructor($,f){this.sql=$,this.fieldAlias=f}static[Y]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new S(this.sql,this.fieldAlias)}}T.Aliased=S})(t||(t={}));class i${constructor(T){this.name=T}static[Y]="Placeholder";getSQL(){return new t([this])}}function z1(T,S){return T.map(($)=>{if(V($,i$)){if(!($.name in S))throw new Error(`No value for placeholder "${$.name}" was provided`);return S[$.name]}if(V($,IS)&&V($.value,i$)){if(!($.value.name in S))throw new Error(`No value for placeholder "${$.value.name}" was provided`);return $.encoder.mapToDriverValue(S[$.value.name])}return $})}class ES{static[Y]="View";[hT];constructor({name:T,schema:S,selectedFields:$,query:f}){this[hT]={name:T,originalName:T,schema:S,selectedFields:$,query:f,isExisting:!f,isAlias:!1}}getSQL(){return new t([this])}}NT.prototype.getSQL=function(){return new t([this])};c.prototype.getSQL=function(){return new t([this])};fS.prototype.getSQL=function(){return new t([this])};class GM{constructor(T){this.table=T}static[Y]="ColumnAliasProxyHandler";get(T,S){if(S==="table")return this.table;return T[S]}}class CJ{constructor(T,S){this.alias=T,this.replaceOriginalName=S}static[Y]="TableAliasProxyHandler";get(T,S){if(S===c.Symbol.IsAlias)return!0;if(S===c.Symbol.Name)return this.alias;if(this.replaceOriginalName&&S===c.Symbol.OriginalName)return this.alias;if(S===hT)return{...T[hT],name:this.alias,isAlias:!0};if(S===c.Symbol.Columns){let f=T[c.Symbol.Columns];if(!f)return f;let M={};return Object.keys(f).map((J)=>{M[J]=new Proxy(f[J],new GM(new Proxy(T,this)))}),M}let $=T[S];if(V($,NT))return new Proxy($,new GM(new Proxy(T,this)));return $}}function eF(T,S){return new Proxy(T,new CJ(S,!1))}function K$(T,S){return new Proxy(T,new GM(new Proxy(T.table,new CJ(S,!1))))}function _1(T,S){return new t.Aliased(xJ(T.sql,S),T.fieldAlias)}function xJ(T,S){return R.join(T.queryChunks.map(($)=>{if(V($,NT))return K$($,S);if(V($,t))return xJ($,S);if(V($,t.Aliased))return _1($,S);return $}))}class sF extends Error{static[Y]="DrizzleError";constructor({message:T,cause:S}){super(T);this.name="DrizzleError",this.cause=S}}class H1 extends sF{static[Y]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function QS(T,S){if(Ry(S)&&!G1(T)&&!V(T,IS)&&!V(T,i$)&&!V(T,NT)&&!V(T,c)&&!V(T,ES))return new IS(T,S);return T}var TW=(T,S)=>{return R`${T} = ${QS(S,T)}`},zy=(T,S)=>{return R`${T} <> ${QS(S,T)}`};function jJ(...T){let S=T.filter(($)=>$!==void 0);if(S.length===0)return;if(S.length===1)return new t(S);return new t([new eT("("),R.join(S,new eT(" and ")),new eT(")")])}function _y(...T){let S=T.filter(($)=>$!==void 0);if(S.length===0)return;if(S.length===1)return new t(S);return new t([new eT("("),R.join(S,new eT(" or ")),new eT(")")])}function Hy(T){return R`not ${T}`}var SW=(T,S)=>{return R`${T} > ${QS(S,T)}`},Dy=(T,S)=>{return R`${T} >= ${QS(S,T)}`},Ey=(T,S)=>{return R`${T} < ${QS(S,T)}`},Qy=(T,S)=>{return R`${T} <= ${QS(S,T)}`};function Uy(T,S){if(Array.isArray(S)){if(S.length===0)return R`false`;return R`${T} in ${S.map(($)=>QS($,T))}`}return R`${T} in ${QS(S,T)}`}function Vy(T,S){if(Array.isArray(S)){if(S.length===0)return R`true`;return R`${T} not in ${S.map(($)=>QS($,T))}`}return R`${T} not in ${QS(S,T)}`}function By(T){return R`${T} is null`}function Ly(T){return R`${T} is not null`}function Ny(T){return R`exists ${T}`}function Cy(T){return R`not exists ${T}`}function xy(T,S,$){return R`${T} between ${QS(S,T)} and ${QS($,T)}`}function jy(T,S,$){return R`${T} not between ${QS(S,T)} and ${QS($,T)}`}function Iy(T,S){return R`${T} like ${S}`}function by(T,S){return R`${T} not like ${S}`}function qy(T,S){return R`${T} ilike ${S}`}function Zy(T,S){return R`${T} not ilike ${S}`}function my(T){return R`${T} asc`}function hy(T){return R`${T} desc`}class vy{static[Y]="ConsoleLogWriter";write(T){console.log(T)}}class D1{static[Y]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new vy}logQuery(T,S){let $=S.map((M)=>{try{return JSON.stringify(M)}catch{return String(M)}}),f=$.length?` -- params: [${$.join(", ")}]`:"";this.writer.write(`Query: ${T}${f}`)}}class E1{static[Y]="NoopLogger";logQuery(){}}class GS{static[Y]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(T){return this.then(void 0,T)}finally(T){return this.then((S)=>{return T?.(),S},(S)=>{throw T?.(),S})}then(T,S){return this.execute().then(T,S)}}function Py(T,S,$){let f={},M=T.reduce((J,{path:F,field:W},A)=>{let k;if(V(W,NT))k=W;else if(V(W,t))k=W.decoder;else k=W.sql.decoder;let X=J;for(let[y,w]of F.entries())if(y<F.length-1){if(!(w in X))X[w]={};X=X[w]}else{let G=S[A],z=X[w]=G===null?null:k.mapFromDriverValue(G);if($&&V(W,NT)&&F.length===2){let Q=F[0];if(!(Q in f))f[Q]=z===null?PS(W.table):!1;else if(typeof f[Q]==="string"&&f[Q]!==PS(W.table))f[Q]=!1}}return J},{});if($&&Object.keys(f).length>0){for(let[J,F]of Object.entries(f))if(typeof F==="string"&&!$[F])M[J]=null}return M}function nS(T,S){return Object.entries(T).reduce(($,[f,M])=>{if(typeof f!=="string")return $;let J=S?[...S,f]:[f];if(V(M,NT)||V(M,t)||V(M,t.Aliased))$.push({path:J,field:M});else if(V(M,c))$.push(...nS(M[c.Symbol.Columns],J));else $.push(...nS(M,J));return $},[])}function Q1(T,S){let $=Object.keys(T),f=Object.keys(S);if($.length!==f.length)return!1;for(let[M,J]of $.entries())if(J!==f[M])return!1;return!0}function $W(T,S){let $=Object.entries(S).filter(([,f])=>f!==void 0).map(([f,M])=>{if(V(M,t))return[f,M];else return[f,new IS(M,T[c.Symbol.Columns][f])]});if($.length===0)throw new Error("No values to set");return Object.fromEntries($)}function ny(T,S){for(let $ of S)for(let f of Object.getOwnPropertyNames($.prototype)){if(f==="constructor")continue;Object.defineProperty(T.prototype,f,Object.getOwnPropertyDescriptor($.prototype,f)||Object.create(null))}}function cy(T){return T[c.Symbol.Columns]}function U1(T){return V(T,fS)?T._.alias:V(T,ES)?T[hT].name:V(T,t)?void 0:T[c.Symbol.IsAlias]?T[c.Symbol.Name]:T[c.Symbol.BaseName]}function yT(T,S){return{name:typeof T==="string"&&T.length>0?T:"",config:typeof T==="object"?T:S}}function oy(T){if(typeof T!=="object"||T===null)return!1;if(T.constructor.name!=="Object")return!1;if("logger"in T){let S=typeof T.logger;if(S!=="boolean"&&(S!=="object"||typeof T.logger.logQuery!=="function")&&S!=="undefined")return!1;return!0}if("schema"in T){let S=typeof T.logger;if(S!=="object"&&S!=="undefined")return!1;return!0}if("casing"in T){let S=typeof T.logger;if(S!=="string"&&S!=="undefined")return!1;return!0}if("mode"in T){if(T.mode!=="default"||T.mode!=="planetscale"||T.mode!==void 0)return!1;return!0}if("connection"in T){let S=typeof T.connection;if(S!=="string"&&S!=="object"&&S!=="undefined")return!1;return!0}if("client"in T){let S=typeof T.client;if(S!=="object"&&S!=="function"&&S!=="undefined")return!1;return!0}if(Object.keys(T).length===0)return!0;return!1}class l$ extends g{static[Y]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(T){if(T){let{name:S,...$}=T;this.config.generatedIdentity={type:"always",sequenceName:S,sequenceOptions:$}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(T){if(T){let{name:S,...$}=T;this.config.generatedIdentity={type:"byDefault",sequenceName:S,sequenceOptions:$}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class gy extends l${static[Y]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new ty(T,this.config)}}class ty extends q{static[Y]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class py extends l${static[Y]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new iy(T,this.config)}}class iy extends q{static[Y]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function ly(T,S){let{name:$,config:f}=yT(T,S);if(f.mode==="number")return new gy($);return new py($)}class uy extends g{static[Y]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new dy(T,this.config)}}class dy extends q{static[Y]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class ry extends g{static[Y]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new ay(T,this.config)}}class ay extends q{static[Y]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function ey(T,S){let{name:$,config:f}=yT(T,S);if(f.mode==="number")return new uy($);return new ry($)}class sy extends g{static[Y]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new T2(T,this.config)}}class T2 extends q{static[Y]="PgBoolean";getSQLType(){return"boolean"}}function IJ(T){return new sy(T??"")}class S2 extends g{static[Y]="PgCharBuilder";constructor(T,S){super(T,"string","PgChar");this.config.length=S.length,this.config.enumValues=S.enum}build(T){return new $2(T,this.config)}}class $2 extends q{static[Y]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function f2(T,S={}){let{name:$,config:f}=yT(T,S);return new S2($,f)}class M2 extends g{static[Y]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new J2(T,this.config)}}class J2 extends q{static[Y]="PgCidr";getSQLType(){return"cidr"}}function F2(T){return new M2(T??"")}class W2 extends g{static[Y]="PgCustomColumnBuilder";constructor(T,S,$){super(T,"custom","PgCustomColumn");this.config.fieldConfig=S,this.config.customTypeParams=$}build(T){return new A2(T,this.config)}}class A2 extends q{static[Y]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(T,S){super(T,S);this.sqlName=S.customTypeParams.dataType(S.fieldConfig),this.mapTo=S.customTypeParams.toDriver,this.mapFrom=S.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(T){return typeof this.mapFrom==="function"?this.mapFrom(T):T}mapToDriverValue(T){return typeof this.mapTo==="function"?this.mapTo(T):T}}function k2(T){return(S,$)=>{let{name:f,config:M}=yT(S,$);return new W2(f,M,T)}}class x$ extends g{static[Y]="PgDateColumnBaseBuilder";defaultNow(){return this.default(R`now()`)}}class X2 extends x${static[Y]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new fW(T,this.config)}}class fW extends q{static[Y]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class y2 extends x${static[Y]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new MW(T,this.config)}}class MW extends q{static[Y]="PgDateString";getSQLType(){return"date"}}function w2(T,S){let{name:$,config:f}=yT(T,S);if(f?.mode==="date")return new X2($);return new y2($)}class K2 extends g{static[Y]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new Y2(T,this.config)}}class Y2 extends q{static[Y]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function R2(T){return new K2(T??"")}class O2 extends g{static[Y]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new G2(T,this.config)}}class G2 extends q{static[Y]="PgInet";getSQLType(){return"inet"}}function z2(T){return new O2(T??"")}class _2 extends l${static[Y]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new H2(T,this.config)}}class H2 extends q{static[Y]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function JW(T){return new _2(T??"")}class D2 extends g{static[Y]="PgIntervalBuilder";constructor(T,S){super(T,"string","PgInterval");this.config.intervalConfig=S}build(T){return new E2(T,this.config)}}class E2 extends q{static[Y]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let T=this.fields?` ${this.fields}`:"",S=this.precision?`(${this.precision})`:"";return`interval${T}${S}`}}function Q2(T,S={}){let{name:$,config:f}=yT(T,S);return new D2($,f)}class U2 extends g{static[Y]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new FW(T,this.config)}}class FW extends q{static[Y]="PgJson";constructor(T,S){super(T,S)}getSQLType(){return"json"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function V2(T){return new U2(T??"")}class B2 extends g{static[Y]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new WW(T,this.config)}}class WW extends q{static[Y]="PgJsonb";constructor(T,S){super(T,S)}getSQLType(){return"jsonb"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function L2(T){return new B2(T??"")}class N2 extends g{static[Y]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new C2(T,this.config)}}class C2 extends q{static[Y]="PgLine";getSQLType(){return"line"}mapFromDriverValue(T){let[S,$,f]=T.slice(1,-1).split(",");return[Number.parseFloat(S),Number.parseFloat($),Number.parseFloat(f)]}mapToDriverValue(T){return`{${T[0]},${T[1]},${T[2]}}`}}class x2 extends g{static[Y]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new j2(T,this.config)}}class j2 extends q{static[Y]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(T){let[S,$,f]=T.slice(1,-1).split(",");return{a:Number.parseFloat(S),b:Number.parseFloat($),c:Number.parseFloat(f)}}mapToDriverValue(T){return`{${T.a},${T.b},${T.c}}`}}function I2(T,S){let{name:$,config:f}=yT(T,S);if(!f?.mode||f.mode==="tuple")return new N2($);return new x2($)}class b2 extends g{static[Y]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new q2(T,this.config)}}class q2 extends q{static[Y]="PgMacaddr";getSQLType(){return"macaddr"}}function Z2(T){return new b2(T??"")}class m2 extends g{static[Y]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new h2(T,this.config)}}class h2 extends q{static[Y]="PgMacaddr8";getSQLType(){return"macaddr8"}}function v2(T){return new m2(T??"")}class P2 extends g{static[Y]="PgNumericBuilder";constructor(T,S,$){super(T,"string","PgNumeric");this.config.precision=S,this.config.scale=$}build(T){return new AW(T,this.config)}}class AW extends q{static[Y]="PgNumeric";precision;scale;constructor(T,S){super(T,S);this.precision=S.precision,this.scale=S.scale}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 n2(T,S){let{name:$,config:f}=yT(T,S);return new P2($,f?.precision,f?.scale)}class c2 extends g{static[Y]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new o2(T,this.config)}}class o2 extends q{static[Y]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[S,$]=T.slice(1,-1).split(",");return[Number.parseFloat(S),Number.parseFloat($)]}return[T.x,T.y]}mapToDriverValue(T){return`(${T[0]},${T[1]})`}}class g2 extends g{static[Y]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new t2(T,this.config)}}class t2 extends q{static[Y]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[S,$]=T.slice(1,-1).split(",");return{x:Number.parseFloat(S),y:Number.parseFloat($)}}return T}mapToDriverValue(T){return`(${T.x},${T.y})`}}function p2(T,S){let{name:$,config:f}=yT(T,S);if(!f?.mode||f.mode==="tuple")return new c2($);return new g2($)}function FY(T){let S=[];for(let $=0;$<T.length;$+=2)S.push(Number.parseInt(T.slice($,$+2),16));return new Uint8Array(S)}function i2(T,S){let $=new ArrayBuffer(8),f=new DataView($);for(let M=0;M<8;M++)f.setUint8(M,T[S+M]);return f.getFloat64(0,!0)}function V1(T){let S=FY(T),$=0,f=S[$];$+=1;let M=new DataView(S.buffer),J=M.getUint32($,f===1);$+=4;let F;if(J&536870912)F=M.getUint32($,f===1),$+=4;if((J&65535)===1){let W=i2(S,$);$+=8;let A=i2(S,$);return $+=8,[W,A]}throw new Error("Unsupported geometry type")}class l2 extends g{static[Y]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new u2(T,this.config)}}class u2 extends q{static[Y]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return V1(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class d2 extends g{static[Y]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new r2(T,this.config)}}class r2 extends q{static[Y]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let S=V1(T);return{x:S[0],y:S[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function a2(T,S){let{name:$,config:f}=yT(T,S);if(!f?.mode||f.mode==="tuple")return new l2($);return new d2($)}class e2 extends g{static[Y]="PgRealBuilder";constructor(T,S){super(T,"number","PgReal");this.config.length=S}build(T){return new s2(T,this.config)}}class s2 extends q{static[Y]="PgReal";constructor(T,S){super(T,S)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function T8(T){return new e2(T??"")}class S8 extends g{static[Y]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new $8(T,this.config)}}class $8 extends q{static[Y]="PgSerial";getSQLType(){return"serial"}}function f8(T){return new S8(T??"")}class M8 extends l${static[Y]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new J8(T,this.config)}}class J8 extends q{static[Y]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function F8(T){return new M8(T??"")}class W8 extends g{static[Y]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new A8(T,this.config)}}class A8 extends q{static[Y]="PgSmallSerial";getSQLType(){return"smallserial"}}function k8(T){return new W8(T??"")}class X8 extends g{static[Y]="PgTextBuilder";constructor(T,S){super(T,"string","PgText");this.config.enumValues=S.enum}build(T){return new y8(T,this.config)}}class y8 extends q{static[Y]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function w8(T,S={}){let{name:$,config:f}=yT(T,S);return new X8($,f)}class K8 extends x${constructor(T,S,$){super(T,"string","PgTime");this.withTimezone=S,this.precision=$,this.config.withTimezone=S,this.config.precision=$}static[Y]="PgTimeBuilder";build(T){return new kW(T,this.config)}}class kW extends q{static[Y]="PgTime";withTimezone;precision;constructor(T,S){super(T,S);this.withTimezone=S.withTimezone,this.precision=S.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function Y8(T,S={}){let{name:$,config:f}=yT(T,S);return new K8($,f.withTimezone??!1,f.precision)}class R8 extends x${static[Y]="PgTimestampBuilder";constructor(T,S,$){super(T,"date","PgTimestamp");this.config.withTimezone=S,this.config.precision=$}build(T){return new XW(T,this.config)}}class XW extends q{static[Y]="PgTimestamp";withTimezone;precision;constructor(T,S){super(T,S);this.withTimezone=S.withTimezone,this.precision=S.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(T)=>{return new Date(this.withTimezone?T:T+"+0000")};mapToDriverValue=(T)=>{return T.toISOString()}}class O8 extends x${static[Y]="PgTimestampStringBuilder";constructor(T,S,$){super(T,"string","PgTimestampString");this.config.withTimezone=S,this.config.precision=$}build(T){return new yW(T,this.config)}}class yW extends q{static[Y]="PgTimestampString";withTimezone;precision;constructor(T,S){super(T,S);this.withTimezone=S.withTimezone,this.precision=S.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function M$(T,S={}){let{name:$,config:f}=yT(T,S);if(f?.mode==="string")return new O8($,f.withTimezone??!1,f.precision);return new R8($,f?.withTimezone??!1,f?.precision)}class G8 extends g{static[Y]="PgUUIDBuilder";constructor(T){super(T,"string","PgUUID")}defaultRandom(){return this.default(R`gen_random_uuid()`)}build(T){return new wW(T,this.config)}}class wW extends q{static[Y]="PgUUID";getSQLType(){return"uuid"}}function bS(T){return new G8(T??"")}class z8 extends g{static[Y]="PgVarcharBuilder";constructor(T,S){super(T,"string","PgVarchar");this.config.length=S.length,this.config.enumValues=S.enum}build(T){return new _8(T,this.config)}}class _8 extends q{static[Y]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function MS(T,S={}){let{name:$,config:f}=yT(T,S);return new z8($,f)}class H8 extends g{static[Y]="PgBinaryVectorBuilder";constructor(T,S){super(T,"string","PgBinaryVector");this.config.dimensions=S.dimensions}build(T){return new D8(T,this.config)}}class D8 extends q{static[Y]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function E8(T,S){let{name:$,config:f}=yT(T,S);return new H8($,f)}class Q8 extends g{static[Y]="PgHalfVectorBuilder";constructor(T,S){super(T,"array","PgHalfVector");this.config.dimensions=S.dimensions}build(T){return new U8(T,this.config)}}class U8 extends q{static[Y]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map((S)=>Number.parseFloat(S))}}function V8(T,S){let{name:$,config:f}=yT(T,S);return new Q8($,f)}class B8 extends g{static[Y]="PgSparseVectorBuilder";constructor(T,S){super(T,"string","PgSparseVector");this.config.dimensions=S.dimensions}build(T){return new L8(T,this.config)}}class L8 extends q{static[Y]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function N8(T,S){let{name:$,config:f}=yT(T,S);return new B8($,f)}class C8 extends g{static[Y]="PgVectorBuilder";constructor(T,S){super(T,"array","PgVector");this.config.dimensions=S.dimensions}build(T){return new x8(T,this.config)}}class x8 extends q{static[Y]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map((S)=>Number.parseFloat(S))}}function j8(T,S){let{name:$,config:f}=yT(T,S);return new C8($,f)}function I8(){return{bigint:ly,bigserial:ey,boolean:IJ,char:f2,cidr:F2,customType:k2,date:w2,doublePrecision:R2,inet:z2,integer:JW,interval:Q2,json:V2,jsonb:L2,line:I2,macaddr:Z2,macaddr8:v2,numeric:n2,point:p2,geometry:a2,real:T8,serial:f8,smallint:F8,smallserial:k8,text:w8,time:Y8,timestamp:M$,uuid:bS,varchar:MS,bit:E8,halfvec:V8,sparsevec:N8,vector:j8}}var B1=Symbol.for("drizzle:PgInlineForeignKeys"),b8=Symbol.for("drizzle:EnableRLS");class cS extends c{static[Y]="PgTable";static Symbol=Object.assign({},c.Symbol,{InlineForeignKeys:B1,EnableRLS:b8});[B1]=[];[b8]=!1;[c.Symbol.ExtraConfigBuilder]=void 0}function WY(T,S,$,f,M=T){let J=new cS(T,f,M),F=typeof S==="function"?S(I8()):S,W=Object.fromEntries(Object.entries(F).map(([X,y])=>{let w=y;w.setName(X);let G=w.build(J);return J[B1].push(...w.buildForeignKeys(G,J)),[X,G]})),A=Object.fromEntries(Object.entries(F).map(([X,y])=>{let w=y;w.setName(X);let G=w.buildExtraConfigColumn(J);return[X,G]})),k=Object.assign(J,W);if(k[c.Symbol.Columns]=W,k[c.Symbol.ExtraConfigColumns]=A,$)k[cS.Symbol.ExtraConfigBuilder]=$;return Object.assign(k,{enableRLS:()=>{return k[cS.Symbol.EnableRLS]=!0,k}})}var u$=(T,S,$)=>{return WY(T,S,$,void 0)};function q8(...T){if(T[0].columns)return new bJ(T[0].columns,T[0].name);return new bJ(T)}class bJ{static[Y]="PgPrimaryKeyBuilder";columns;name;constructor(T,S){this.columns=T,this.name=S}build(T){return new Z8(T,this.columns,this.name)}}class Z8{constructor(T,S,$){this.table=T,this.columns=S,this.name=$}static[Y]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[cS.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}class L1{constructor(T,S,$){this.sourceTable=T,this.referencedTable=S,this.relationName=$,this.referencedTableName=S[c.Symbol.Name]}static[Y]="Relation";referencedTableName;fieldName}class m8{constructor(T,S){this.table=T,this.config=S}static[Y]="Relations"}class d$ extends L1{constructor(T,S,$,f){super(T,S,$?.relationName);this.config=$,this.isNullable=f}static[Y]="One";withFieldName(T){let S=new d$(this.sourceTable,this.referencedTable,this.config,this.isNullable);return S.fieldName=T,S}}class qJ extends L1{constructor(T,S,$){super(T,S,$?.relationName);this.config=$}static[Y]="Many";withFieldName(T){let S=new qJ(this.sourceTable,this.referencedTable,this.config);return S.fieldName=T,S}}function h8(){return{and:jJ,between:xy,eq:TW,exists:Ny,gt:SW,gte:Dy,ilike:qy,inArray:Uy,isNull:By,isNotNull:Ly,like:Iy,lt:Ey,lte:Qy,ne:zy,not:Hy,notBetween:jy,notExists:Cy,notLike:by,notIlike:Zy,notInArray:Vy,or:_y,sql:R}}function v8(){return{sql:R,asc:my,desc:hy}}function P8(T,S){if(Object.keys(T).length===1&&"default"in T&&!V(T.default,c))T=T.default;let $={},f={},M={};for(let[J,F]of Object.entries(T))if(V(F,c)){let W=_f(F),A=f[W];$[W]=J,M[J]={tsName:J,dbName:F[c.Symbol.Name],schema:F[c.Symbol.Schema],columns:F[c.Symbol.Columns],relations:A?.relations??{},primaryKey:A?.primaryKey??[]};for(let X of Object.values(F[c.Symbol.Columns]))if(X.primary)M[J].primaryKey.push(X);let k=F[c.Symbol.ExtraConfigBuilder]?.(F[c.Symbol.ExtraConfigColumns]);if(k){for(let X of Object.values(k))if(V(X,bJ))M[J].primaryKey.push(...X.columns)}}else if(V(F,m8)){let W=_f(F.table),A=$[W],k=F.config(S(F.table)),X;for(let[y,w]of Object.entries(k))if(A){let G=M[A];if(G.relations[y]=w,X)G.primaryKey.push(...X)}else{if(!(W in f))f[W]={relations:{},primaryKey:X};f[W].relations[y]=w}}return{tables:M,tableNamesMap:$}}function AY(T){return function S($,f){return new d$(T,$,f,f?.fields.reduce((M,J)=>M&&J.notNull,!0)??!1)}}function kY(T){return function S($,f){return new qJ(T,$,f)}}function n8(T,S,$){if(V($,d$)&&$.config)return{fields:$.config.fields,references:$.config.references};let f=S[_f($.referencedTable)];if(!f)throw new Error(`Table "${$.referencedTable[c.Symbol.Name]}" not found in schema`);let M=T[f];if(!M)throw new Error(`Table "${f}" not found in schema`);let J=$.sourceTable,F=S[_f(J)];if(!F)throw new Error(`Table "${J[c.Symbol.Name]}" not found in schema`);let W=[];for(let A of Object.values(M.relations))if($.relationName&&$!==A&&A.relationName===$.relationName||!$.relationName&&A.referencedTable===$.sourceTable)W.push(A);if(W.length>1)throw $.relationName?new Error(`There are multiple relations with name "${$.relationName}" in table "${f}"`):new Error(`There are multiple relations between "${f}" and "${$.sourceTable[c.Symbol.Name]}". Please specify relation name`);if(W[0]&&V(W[0],d$)&&W[0].config)return{fields:W[0].config.references,references:W[0].config.fields};throw new Error(`There is not enough information to infer relation "${F}.${$.fieldName}"`)}function c8(T){return{one:AY(T),many:kY(T)}}function KW(T,S,$,f,M=(J)=>J){let J={};for(let[F,W]of f.entries())if(W.isJson){let A=S.relations[W.tsKey],k=$[F],X=typeof k==="string"?JSON.parse(k):k;J[W.tsKey]=V(A,d$)?X&&KW(T,T[W.relationTableTsKey],X,W.selection,M):X.map((y)=>KW(T,T[W.relationTableTsKey],y,W.selection,M))}else{let A=M($[F]),k=W.field,X;if(V(k,NT))X=k;else if(V(k,t))X=k.decoder;else X=k.sql.decoder;J[W.tsKey]=A===null?null:X.mapFromDriverValue(A)}return J}import M7 from"path";import bY from"os";import qY from"fs";var YW=new Map,N1=new Map,C1=Symbol("OriginError"),zM={};class oS extends Promise{constructor(T,S,$,f,M={}){let J,F;super((W,A)=>{J=W,F=A});this.tagged=Array.isArray(T.raw),this.strings=T,this.args=S,this.handler=$,this.canceller=f,this.options=M,this.state=null,this.statement=null,this.resolve=(W)=>(this.active=!1,J(W)),this.reject=(W)=>(this.active=!1,F(W)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[C1]=this.handler.debug?new Error:this.tagged&&XY(this.strings)}get origin(){return(this.handler.debug?this[C1].stack:this.tagged&&N1.has(this.strings)?N1.get(this.strings):N1.set(this.strings,this[C1].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(T=1,S){if(this.options.simple=!1,typeof T==="function")S=T,T=1;if(this.cursorRows=T,typeof S==="function")return this.cursorFn=S,this;let $;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};$&&$();let f=new Promise((M,J)=>{this.cursorFn=(F)=>{return M({value:F,done:!1}),new Promise((W)=>$=W)},this.resolve=()=>(this.active=!1,M({done:!0})),this.reject=(F)=>(this.active=!1,J(F))});return this.execute(),f},return(){return $&&$(zM),{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(T){return this.forEachFn=T,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 XY(T){if(YW.has(T))return YW.get(T);let S=Error.stackTraceLimit;return Error.stackTraceLimit=4,YW.set(T,new Error),Error.stackTraceLimit=S,YW.get(T)}class _M extends Error{constructor(T){super(T.message);this.name=this.constructor.name,Object.assign(this,T)}}var tT={connection:o8,postgres:g8,generic:t8,notSupported:p8};function o8(T,S,$){let{host:f,port:M}=$||S,J=Object.assign(new Error("write "+T+" "+(S.path||f+":"+M)),{code:T,errno:T,address:S.path||f},S.path?{}:{port:M});return Error.captureStackTrace(J,o8),J}function g8(T){let S=new _M(T);return Error.captureStackTrace(S,g8),S}function t8(T,S){let $=Object.assign(new Error(T+": "+S),{code:T});return Error.captureStackTrace($,t8),$}function p8(T){let S=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace(S,p8),S}var yY={string:{to:25,from:null,serialize:(T)=>""+T},number:{to:0,from:[21,23,26,700,701],serialize:(T)=>""+T,parse:(T)=>+T},json:{to:114,from:[114,3802],serialize:(T)=>JSON.stringify(T),parse:(T)=>JSON.parse(T)},boolean:{to:16,from:16,serialize:(T)=>T===!0?"t":"f",parse:(T)=>T==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(T)=>(T instanceof Date?T:new Date(T)).toISOString(),parse:(T)=>new Date(T)},bytea:{to:17,from:17,serialize:(T)=>"\\x"+Buffer.from(T).toString("hex"),parse:(T)=>Buffer.from(T.slice(2),"hex")}};class GW{then(){x1()}catch(){x1()}finally(){x1()}}class vJ extends GW{constructor(T){super();this.value=HW(T)}}class Y$ extends GW{constructor(T,S,$){super();this.value=T,this.type=S,this.array=$}}class zW extends GW{constructor(T,S){super();this.first=T,this.rest=S}build(T,S,$,f){let M=wY.map(([J,F])=>({fn:F,i:T.search(J)})).sort((J,F)=>J.i-F.i).pop();return M.i===-1?Z1(this.first,f):M.fn(this.first,this.rest,S,$,f)}}function _W(T,S,$,f){let M=T instanceof Y$?T.value:T;if(M===void 0){if(T instanceof Y$?T.value=f.transform.undefined:M=T=f.transform.undefined,M===void 0)throw tT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+$.push(T instanceof Y$?(S.push(T.value),T.array?T.array[T.type||OW(T.value)]||T.type||d8(T.value):T.type):(S.push(T),OW(T)))}var l8=a8(yY);function b1(T,S,$,f,M,J){for(let F=1;F<T.strings.length;F++)S+=q1(S,$,f,M,J)+T.strings[F],$=T.args[F];return S}function q1(T,S,$,f,M){return S instanceof zW?S.build(T,$,f,M):S instanceof oS?I1(S,$,f,M):S instanceof vJ?S.value:S&&S[0]instanceof oS?S.reduce((J,F)=>J+" "+I1(F,$,f,M),""):_W(S,$,f,M)}function I1(T,S,$,f){return T.fragment=!0,b1(T,T.strings[0],T.args[0],S,$,f)}function u8(T,S,$,f,M){return T.map((J)=>"("+f.map((F)=>q1("values",J[F],S,$,M)).join(",")+")").join(",")}function i8(T,S,$,f,M){let J=Array.isArray(T[0]),F=S.length?S.flat():Object.keys(J?T[0]:T);return u8(J?T:[T],$,f,F,M)}function RW(T,S,$,f,M){if(typeof T==="string"&&(T=[T].concat(S)),Array.isArray(T))return Z1(T,M);let J;return(S.length?S.flat():Object.keys(T)).map((W)=>{return J=T[W],(J instanceof oS?I1(J,$,f,M):J instanceof vJ?J.value:_W(J,$,f,M))+" as "+HW(M.transform.column.to?M.transform.column.to(W):W)}).join(",")}var wY=Object.entries({values:i8,in:(...T)=>{let S=i8(...T);return S==="()"?"(null)":S},select:RW,as:RW,returning:RW,"\\(":RW,update(T,S,$,f,M){return(S.length?S.flat():Object.keys(T)).map((J)=>HW(M.transform.column.to?M.transform.column.to(J):J)+"="+q1("values",T[J],$,f,M))},insert(T,S,$,f,M){let J=S.length?S.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+Z1(J,M)+")values"+u8(Array.isArray(T)?T:[T],$,f,J,M)}}).map(([T,S])=>[new RegExp("((?:^|[\\s(])"+T+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),S]);function x1(){throw tT.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:KY,parsers:YY}=l8;function d8(T){if(Array.isArray(T))return d8(T[0]);return typeof T==="string"?1009:0}var r8=function(T){let S=a8(T||{});return{serializers:Object.assign({},KY,S.serializers),parsers:Object.assign({},YY,S.parsers)}};function a8(T){return Object.keys(T).reduce((S,$)=>{if(T[$].from&&[].concat(T[$].from).forEach((f)=>S.parsers[f]=T[$].parse),T[$].serialize)S.serializers[T[$].to]=T[$].serialize,T[$].from&&[].concat(T[$].from).forEach((f)=>S.serializers[f]=T[$].serialize);return S},{parsers:{},serializers:{}})}function Z1(T,{transform:{column:S}}){return T.map(($)=>HW(S.to?S.to($):$)).join(",")}var HW=function T(S){return'"'+S.replace(/"/g,'""').replace(/\./g,'"."')+'"'},OW=function T(S){return S instanceof Y$?S.type:S instanceof Date?1184:S instanceof Uint8Array?17:S===!0||S===!1?16:typeof S==="bigint"?20:Array.isArray(S)?T(S[0]):0},RY=/\\/g,OY=/"/g;function GY(T){return T.replace(RY,"\\\\").replace(OY,'\\"')}var e8=function T(S,$,f,M){if(Array.isArray(S)===!1)return S;if(!S.length)return"{}";let J=S[0],F=M===1020?";":",";if(Array.isArray(J)&&!J.type)return"{"+S.map((W)=>T(W,$,f,M)).join(F)+"}";return"{"+S.map((W)=>{if(W===void 0){if(W=f.transform.undefined,W===void 0)throw tT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return W===null?"null":'"'+GY($?$(W.type?W.value:W):""+W)+'"'}).join(F)+"}"},j1={i:0,char:null,str:"",quoted:!1,last:0},s8=function T(S,$,f){return j1.i=j1.last=0,Tw(j1,S,$,f)};function Tw(T,S,$,f){let M=[],J=f===1020?";":",";for(;T.i<S.length;T.i++){if(T.char=S[T.i],T.quoted)if(T.char==="\\")T.str+=S[++T.i];else if(T.char==='"')M.push($?$(T.str):T.str),T.str="",T.quoted=S[T.i+1]==='"',T.last=T.i+2;else T.str+=T.char;else if(T.char==='"')T.quoted=!0;else if(T.char==="{")T.last=++T.i,M.push(Tw(T,S,$,f));else if(T.char==="}"){T.quoted=!1,T.last<T.i&&M.push($?$(S.slice(T.last,T.i)):S.slice(T.last,T.i)),T.last=T.i+1;break}else if(T.char===J&&T.p!=="}"&&T.p!=='"')M.push($?$(S.slice(T.last,T.i)):S.slice(T.last,T.i)),T.last=T.i+1;T.p=T.char}return T.last<T.i&&M.push($?$(S.slice(T.last,T.i+1)):S.slice(T.last,T.i+1)),M}var Hf=(T)=>{let S=T[0];for(let $=1;$<T.length;$++)S+=T[$]==="_"?T[++$].toUpperCase():T[$];return S},Df=(T)=>{let S=T[0].toUpperCase();for(let $=1;$<T.length;$++)S+=T[$]==="_"?T[++$].toUpperCase():T[$];return S},Ef=(T)=>T.replace(/_/g,"-"),ZJ=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),mJ=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),hJ=(T)=>T.replace(/-/g,"_");function m1(T){return function S($,f){return typeof $==="object"&&$!==null&&(f.type===114||f.type===3802)?Array.isArray($)?$.map((M)=>S(M,f)):Object.entries($).reduce((M,[J,F])=>Object.assign(M,{[T(J)]:S(F,f)}),{}):$}}Hf.column={from:Hf};Hf.value={from:m1(Hf)};ZJ.column={to:ZJ};var h1={...Hf};h1.column.to=ZJ;Df.column={from:Df};Df.value={from:m1(Df)};mJ.column={to:mJ};var v1={...Df};v1.column.to=mJ;Ef.column={from:Ef};Ef.value={from:m1(Ef)};hJ.column={to:hJ};var P1={...Ef};P1.column.to=hJ;import Sw from"net";import DY from"tls";import PJ from"crypto";import n1 from"stream";import{performance as $w}from"perf_hooks";class Qf 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 qS=zY;function zY(T=[]){let S=T.slice(),$=0;return{get length(){return S.length-$},remove:(f)=>{let M=S.indexOf(f);return M===-1?null:(S.splice(M,1),f)},push:(f)=>(S.push(f),f),shift:()=>{let f=S[$++];if($===S.length)$=0,S=[];else S[$-1]=void 0;return f}}}var KS=Buffer.allocUnsafe(256),_Y="BCcDdEFfHPpQSX".split("").reduce((T,S)=>{let $=S.charCodeAt(0);return T[S]=()=>{return KS[0]=$,ET.i=5,ET},T},{}),ET=Object.assign(HY,_Y,{N:String.fromCharCode(0),i:0,inc(T){return ET.i+=T,ET},str(T){let S=Buffer.byteLength(T);return DW(S),ET.i+=KS.write(T,ET.i,S,"utf8"),ET},i16(T){return DW(2),KS.writeUInt16BE(T,ET.i),ET.i+=2,ET},i32(T,S){if(S||S===0)return KS.writeUInt32BE(T,S),ET;return DW(4),KS.writeUInt32BE(T,ET.i),ET.i+=4,ET},z(T){return DW(T),KS.fill(0,ET.i,ET.i+T),ET.i+=T,ET},raw(T){return KS=Buffer.concat([KS.subarray(0,ET.i),T]),ET.i=KS.length,ET},end(T=1){KS.writeUInt32BE(ET.i-T,T);let S=KS.subarray(0,ET.i);return ET.i=0,KS=Buffer.allocUnsafe(256),S}}),d=ET;function DW(T){if(KS.length-ET.i<T){let S=KS,$=S.length;KS=Buffer.allocUnsafe($+($>>1)+T),S.copy(KS)}}function HY(){return ET.i=0,ET}var g1=Jw,EY=1,r$=d().S().end(),fw=d().H().end(),QY=d().i32(8).i32(80877103).end(8),UY=Buffer.concat([d().E().str(d.N).i32(0).end(),r$]),VY=d().D().str("S").str(d.N).end(),HM=()=>{},BY=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),LY={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 Jw(T,S={},{onopen:$=HM,onend:f=HM,onclose:M=HM}={}){let{ssl:J,max:F,user:W,host:A,port:k,database:X,parsers:y,transform:w,onnotice:G,onnotify:z,onparameter:Q,max_pipeline:E,keep_alive:B,backoff:L,target_session_attrs:b}=T,C=qS(),D=EY++,H={pid:null,secret:null},U=o1(ZW,T.idle_timeout),Z=o1(ZW,T.max_lifetime),h=o1(xw,T.connect_timeout),O=null,o,P=new Qf,a=Buffer.alloc(0),MT=T.fetch_types,fT={},UT={},VS=Math.random().toString(36).slice(2),N=1,p=0,kT=0,_T=0,pT=0,AT=0,VT=0,oT=0,bT=null,CT=null,JS=!1,BT=null,gS=null,FS=null,I$=null,iT=null,xT=null,tS=null,J$=null,m=null,UM=null,WS={queue:S.closed,idleTimer:U,connect(K){FS=K||!0,KA()},terminate:BM,execute:VM,cancel:Bw,end:ZW,count:0,id:D};return S.closed&&S.closed.push(WS),WS;async function Vw(){let K;try{K=T.socket?await Promise.resolve(T.socket(T)):new Sw.Socket}catch(_){Nf(_);return}return K.on("error",Nf),K.on("close",YA),K.on("drain",yA),K}async function Bw({pid:K,secret:_},r,zT){try{o=d().i32(16).i32(80877102).i32(K).i32(_).end(16),await wA(),O.once("error",zT),O.once("close",r)}catch(vT){zT(vT)}}function VM(K){if(JS)return pJ(K,tT.connection("CONNECTION_DESTROYED",T));if(K.cancelled)return;try{return K.state=H,m?C.push(K):(m=K,m.active=!0),Cw(K),TS(Lw(K))&&!K.describeFirst&&!K.cursorFn&&C.length<E&&(!K.options.onexecute||K.options.onexecute(WS))}catch(_){return C.length===0&&TS(r$),F$(_),!0}}function Lw(K){if(K.parameters.length>=65534)throw tT.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return K.options.simple?d().Q().str(K.statement.string+d.N).end():K.describeFirst?Buffer.concat([AA(K),fw]):K.prepare?K.prepared?tJ(K):Buffer.concat([AA(K),tJ(K)]):Nw(K)}function AA(K){return Buffer.concat([OA(K.statement.string,K.parameters,K.statement.types,K.statement.name),YK("S",K.statement.name)])}function tJ(K){return Buffer.concat([KK(K.parameters,K.statement.types,K.statement.name,K.cursorName),K.cursorFn?GA("",K.cursorRows):UY])}function Nw(K){return Buffer.concat([OA(K.statement.string,K.parameters,K.statement.types),VY,tJ(K)])}function Cw(K){let _=[],r=[],zT=b1(K,K.strings[0],K.args[0],_,r,T);!K.tagged&&K.args.forEach((vT)=>_W(vT,_,r,T)),K.prepare=T.prepare&&("prepare"in K.options?K.options.prepare:!0),K.string=zT,K.signature=K.prepare&&r+zT,K.onlyDescribe&&delete UT[K.signature],K.parameters=K.parameters||_,K.prepared=K.prepare&&K.signature in UT,K.describeFirst=K.onlyDescribe||_.length&&!K.prepared,K.statement=K.prepared?UT[K.signature]:{string:zT,types:r,name:K.prepare?VS+N++:""},typeof T.debug==="function"&&T.debug(D,zT,_,r)}function TS(K,_){if(xT=xT?Buffer.concat([xT,K]):Buffer.from(K),_||xT.length>=1024)return kA(_);return CT===null&&(CT=setImmediate(kA)),!0}function kA(K){let _=O.write(xT,K);return CT!==null&&clearImmediate(CT),xT=CT=null,_}function xw(){F$(tT.connection("CONNECT_TIMEOUT",T,O)),O.destroy()}async function XA(){if(TS(QY),!await new Promise((_)=>O.once("data",(r)=>_(r[0]===83)))&&J==="prefer")return Lf();O.removeAllListeners(),O=DY.connect({socket:O,servername:Sw.isIP(O.host)?void 0:O.host,...J==="require"||J==="allow"||J==="prefer"?{rejectUnauthorized:!1}:J==="verify-full"?{}:typeof J==="object"?J:{}}),O.on("secureConnect",Lf),O.on("error",Nf),O.on("close",YA),O.on("drain",yA)}function yA(){!m&&$(WS)}function qW(K){if(BT){if(BT.push(K),kT-=K.length,kT>=0)return}a=BT?Buffer.concat(BT,AT-kT):a.length===0?K:Buffer.concat([a,K],a.length+K.length);while(a.length>4){if(AT=a.readUInt32BE(1),AT>=a.length){kT=AT-a.length,BT=[a];break}try{jw(a.subarray(0,AT+1))}catch(_){m&&(m.cursorFn||m.describeFirst)&&TS(r$),F$(_)}a=a.subarray(AT+1),kT=0,BT=null}}async function wA(){if(JS=!1,fT={},O||(O=await Vw()),!O)return;if(h.start(),T.socket)return J?XA():Lf();if(O.on("connect",J?XA:Lf),T.path)return O.connect(T.path);O.ssl=J,O.connect(k[_T],A[_T]),O.host=A[_T],O.port=k[_T],_T=(_T+1)%k.length}function KA(){setTimeout(wA,p?p+VT-$w.now():0)}function Lf(){try{UT={},MT=T.fetch_types,VS=Math.random().toString(36).slice(2),N=1,Z.start(),O.on("data",qW),B&&O.setKeepAlive&&O.setKeepAlive(!0,1000*B);let K=OK();TS(K)}catch(K){Nf(K)}}function Nf(K){if(WS.queue===S.connecting&&T.host[pT+1])return;F$(K);while(C.length)pJ(C.shift(),K)}function F$(K){iT&&(iT.destroy(K),iT=null),m&&pJ(m,K),FS&&(pJ(FS,K),FS=null)}function pJ(K,_){"query"in _||"parameters"in _||Object.defineProperties(_,{stack:{value:_.stack+K.origin.replace(/.*\n/,"\n"),enumerable:T.debug},query:{value:K.string,enumerable:T.debug},parameters:{value:K.parameters,enumerable:T.debug},args:{value:K.args,enumerable:T.debug},types:{value:K.statement&&K.statement.types,enumerable:T.debug}}),K.reject(_)}function ZW(){return I$||(!WS.reserved&&f(WS),!WS.reserved&&!FS&&!m&&C.length===0?(BM(),new Promise((K)=>O&&O.readyState!=="closed"?O.once("close",K):K())):I$=new Promise((K)=>tS=K))}function BM(){if(JS=!0,iT||m||FS||C.length)Nf(tT.connection("CONNECTION_DESTROYED",T));if(clearImmediate(CT),O)O.removeListener("data",qW),O.removeListener("connect",Lf),O.readyState==="open"&&O.end(d().X().end());tS&&(tS(),I$=tS=null)}async function YA(K){if(a=Buffer.alloc(0),kT=0,BT=null,clearImmediate(CT),O.removeListener("data",qW),O.removeListener("connect",Lf),U.cancel(),Z.cancel(),h.cancel(),O.removeAllListeners(),O=null,FS)return KA();!K&&(m||C.length)&&Nf(tT.connection("CONNECTION_CLOSED",T,O)),p=$w.now(),K&&T.shared.retries++,VT=(typeof L==="function"?L(T.shared.retries):L)*1000,M(WS,tT.connection("CONNECTION_CLOSED",T,O))}function jw(K,_=K[0]){(_===68?Iw:_===100?JK:_===65?sw:_===83?bw:_===90?qw:_===67?Zw:_===50?RA:_===49?mw:_===116?hw:_===84?vw:_===82?Pw:_===110?pw:_===75?iw:_===69?aw:_===115?TK:_===51?SK:_===71?$K:_===78?WK:_===72?fK:_===99?FK:_===73?AK:_===86?kK:_===118?XK:_===87?MK:yK)(K)}function Iw(K){let _=7,r,zT,vT,AS=m.isRaw?new Array(m.statement.columns.length):{};for(let YS=0;YS<m.statement.columns.length;YS++)zT=m.statement.columns[YS],r=K.readInt32BE(_),_+=4,vT=r===-1?null:m.isRaw===!0?K.subarray(_,_+=r):zT.parser===void 0?K.toString("utf8",_,_+=r):zT.parser.array===!0?zT.parser(K.toString("utf8",_+1,_+=r)):zT.parser(K.toString("utf8",_,_+=r)),m.isRaw?AS[YS]=m.isRaw===!0?vT:w.value.from?w.value.from(vT,zT):vT:AS[zT.name]=w.value.from?w.value.from(vT,zT):vT;m.forEachFn?m.forEachFn(w.row.from?w.row.from(AS):AS,P):P[oT++]=w.row.from?w.row.from(AS):AS}function bw(K){let[_,r]=K.toString("utf8",5,K.length-1).split(d.N);if(fT[_]=r,T.parameters[_]!==r)T.parameters[_]=r,Q&&Q(_,r)}function qw(K){if(m&&m.options.simple&&m.resolve(gS||P),m=gS=null,P=new Qf,h.cancel(),FS){if(b){if(!fT.in_hot_standby||!fT.default_transaction_read_only)return rw();else if(dw(b,fT))return BM()}if(MT)return FS===!0&&(FS=null),lw();FS!==!0&&VM(FS),T.shared.retries=pT=0,FS=null;return}while(C.length&&(m=C.shift())&&(m.active=!0,m.cancelled))Jw(T).cancel(m.state,m.cancelled.resolve,m.cancelled.reject);if(m)return;WS.reserved?!WS.reserved.release&&K[5]===73?I$?BM():(WS.reserved=null,$(WS)):WS.reserved():I$?BM():$(WS)}function Zw(K){oT=0;for(let _=K.length-1;_>0;_--){if(K[_]===32&&K[_+1]<58&&P.count===null)P.count=+K.toString("utf8",_+1,K.length-1);if(K[_-1]>=65){P.command=K.toString("utf8",5,_),P.state=H;break}}if(UM&&(UM(),UM=null),P.command==="BEGIN"&&F!==1&&!WS.reserved)return F$(tT.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(m.options.simple)return RA();if(m.cursorFn)P.count&&m.cursorFn(P),TS(r$);m.resolve(P)}function mw(){m.parsing=!1}function RA(){!P.statement&&(P.statement=m.statement),P.columns=m.statement.columns}function hw(K){let _=K.readUInt16BE(5);for(let r=0;r<_;++r)!m.statement.types[r]&&(m.statement.types[r]=K.readUInt32BE(7+r*4));m.prepare&&(UT[m.signature]=m.statement),m.describeFirst&&!m.onlyDescribe&&(TS(tJ(m)),m.describeFirst=!1)}function vw(K){if(P.command)gS=gS||[P],gS.push(P=new Qf),P.count=null,m.statement.columns=null;let _=K.readUInt16BE(5),r=7,zT;m.statement.columns=Array(_);for(let vT=0;vT<_;++vT){zT=r;while(K[r++]!==0);let AS=K.readUInt32BE(r),YS=K.readUInt16BE(r+4),b$=K.readUInt32BE(r+6);m.statement.columns[vT]={name:w.column.from?w.column.from(K.toString("utf8",zT,r-1)):K.toString("utf8",zT,r-1),parser:y[b$],table:AS,number:YS,type:b$},r+=18}if(P.statement=m.statement,m.onlyDescribe)return m.resolve(m.statement),TS(r$)}async function Pw(K,_=K.readUInt32BE(5)){(_===3?nw:_===5?cw:_===10?ow:_===11?gw:_===12?tw:_!==0?wK:HM)(K,_)}async function nw(){let K=await mW();TS(d().p().str(K).z(1).end())}async function cw(K){let _="md5"+await Mw(Buffer.concat([Buffer.from(await Mw(await mW()+W)),K.subarray(9)]));TS(d().p().str(_).z(1).end())}async function ow(){J$=(await PJ.randomBytes(18)).toString("base64"),d().p().str("SCRAM-SHA-256"+d.N);let K=d.i;TS(d.inc(4).str("n,,n=*,r="+J$).i32(d.i-K-4,K).end())}async function gw(K){let _=K.toString("utf8",9).split(",").reduce((YS,b$)=>(YS[b$[0]]=b$.slice(2),YS),{}),r=await PJ.pbkdf2Sync(await mW(),Buffer.from(_.s,"base64"),parseInt(_.i),32,"sha256"),zT=await EW(r,"Client Key"),vT="n=*,r="+J$+",r="+_.r+",s="+_.s+",i="+_.i+",c=biws,r="+_.r;bT=(await EW(await EW(r,"Server Key"),vT)).toString("base64");let AS="c=biws,r="+_.r+",p="+CY(zT,Buffer.from(await EW(await NY(zT),vT))).toString("base64");TS(d().p().str(AS).end())}function tw(K){if(K.toString("utf8",9).split(d.N,1)[0].slice(2)===bT)return;F$(tT.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),O.destroy()}function mW(){return Promise.resolve(typeof T.pass==="function"?T.pass():T.pass)}function pw(){if(P.statement=m.statement,P.statement.columns=[],m.onlyDescribe)return m.resolve(m.statement),TS(r$)}function iw(K){H.pid=K.readUInt32BE(5),H.secret=K.readUInt32BE(9)}async function lw(){MT=!1,(await new oS([`
|
|
12
|
+
`)});return{model:T,messages:F}}var S1={"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}},dX=new Map;function a6(T="NO_API_KEY_PROVIDED"){let S=d6("sha256").update(T).digest("hex");return async function $(f,M){let J=dX.get(S);if(!J)J=new uX({apiKey:T,dangerouslyAllowBrowser:!1}),dX.set(S,J);let F=await J.chat.completions.create({...f,stream:!1,response_format:{type:"json_object"}},M),W=F.choices[0].message?.content,{usage:A}=F;if(W&&A){let k=A.prompt_tokens,X=A.prompt_tokens_details?.cached_tokens??0,y=k-X,w=A.completion_tokens,G=k*S1[f.model].promptPricePerToken+y*S1[f.model].promptPricePerTokenCached+w*S1[f.model].completionPricePerToken;return{data:JSON.parse(W),usdPrice:G}}if(!W&&!A)throw new Error("No content or usage found in completion");if(!W)throw new Error("No content found in completion");throw new Error("No usage found in completion")}}var rX=class{usdFloor;usdBudget;getUnknownJsonFromOpenAi;getUnknownJsonFromOpenAiSquirreled;squirrel;constructor({model:T,usdBudget:S,usdMinimum:$,apiKey:f,cachingMode:M,logger:J}){this.usdBudget=S,this.usdFloor=$,this.squirrel=new T1(M),this.getUnknownJsonFromOpenAi=a6(f),this.getUnknownJsonFromOpenAiSquirreled=this.squirrel.add("openai-safegen",this.getUnknownJsonFromOpenAi),this.from=TX(async(...F)=>{if(this.usdBudget<this.usdFloor)return J?.warn("SafeGen budget exhausted"),F[1];let W=r6(T,...F),A=F[0],k=F[3],X=await this.getUnknownJsonFromOpenAiSquirreled.for(`${A.replace(/[^a-zA-Z0-9-_. ]/g,"_")}-${k.length}`).get(W);return this.usdBudget-=X.usdPrice,X.data})}from};import{exec as W7}from"child_process";import{existsSync as A7}from"fs";import{readFile as k7,writeFile as X7}from"fs/promises";import{resolve as y7}from"path";var $1=(T)=>{let S=_S(T,{key:"\uD83D\uDD0D Atom Token Index (Internal)",default:()=>{let $=new Map;for(let[f,M]of T.atoms)if(!f.includes("\uD83D\uDD0D")){let J=kS(M);if(M.family){let F=$.get(M.family.key);if(!F||!("familyMembers"in F))F={key:M.family.key,familyMembers:new Map},$.set(M.family.key,F);F.familyMembers.set(M.family.subKey,J)}else $.set(f,J)}return $},effects:[({setSelf:$})=>{T.on.atomCreation.subscribe("introspection",(f)=>{if(f.key.includes("\uD83D\uDD0D"))return;$((M)=>{if(f.family){let{key:J,subKey:F}=f.family,W=M.get(J);if(W===void 0||!("familyMembers"in W))W={key:J,familyMembers:new Map},M.set(J,W);W.familyMembers.set(F,f)}else M.set(f.key,f);return M})}),T.on.atomDisposal.subscribe("introspection",(f)=>{$((M)=>{if(f.family){let{key:J,subKey:F}=f.family,W=M.get(J);if(W&&"familyMembers"in W){if(W.familyMembers.delete(F),W.familyMembers.size===0)M.delete(J)}}else M.delete(f.key);return M})})}]},void 0);return pS(T,{key:"\uD83D\uDD0D Atom Token Index",get:({get:$})=>$(S)})};var f1=(T)=>{let S=_S(T,{key:"\uD83D\uDD0D Selector Token Index (Internal)",default:()=>{let $=new Map;for(let f of[T.readonlySelectors,T.selectors])for(let[M,J]of f)if(!M.includes("\uD83D\uDD0D")){let F=kS(J);if(J.family){let W=$.get(J.family.key);if(!W||!("familyMembers"in W))W={key:J.family.key,familyMembers:new Map},$.set(J.family.key,W);W.familyMembers.set(J.family.subKey,F)}else $.set(M,F)}return $},effects:[({setSelf:$})=>{T.on.selectorCreation.subscribe("introspection",(f)=>{if(f.key.includes("\uD83D\uDD0D"))return;$((M)=>{if(f.family){let{key:J,subKey:F}=f.family,W=M.get(J);if(W===void 0||!("familyMembers"in W))W={key:J,familyMembers:new Map},M.set(J,W);W.familyMembers.set(F,f)}else M.set(f.key,f);return M})}),T.on.selectorDisposal.subscribe("introspection",(f)=>{$((M)=>{if(f.family){let{key:J,subKey:F}=f.family,W=M.get(J);if(W&&"familyMembers"in W){if(W.familyMembers.delete(F),W.familyMembers.size===0)M.delete(J)}}else M.delete(f.key);return M})})}]},void 0);return pS(T,{key:"\uD83D\uDD0D Selector Token Index",get:({get:$})=>$(S)})};class lF{supported;constructor(T){this.supported=T}refine(T){for(let[S,$]of Object.entries(this.supported))try{if($(T)===!0&&$!==Boolean)return{type:S,data:T}}catch(f){try{if(T instanceof $)return{type:S,data:T}}catch(M){}}return null}}var M1=new lF({number:(T)=>typeof T==="number",string:(T)=>typeof T==="string",boolean:(T)=>typeof T==="boolean",null:(T)=>T===null});function J1(T){if(!T)return!1;return Object.getPrototypeOf(T)===Object.prototype}var F1=new lF({object:J1,array:(T)=>Array.isArray(T)}),e6=new lF({...M1.supported,...F1.supported}),OM=(T)=>{if(T===void 0)return"undefined";let S=e6.refine(T);if(S)return S.type;return Object.getPrototypeOf(T).constructor.name};class aX{T;auditorCreatedAt=performance.now();statesCreatedAt=new Map;atomIndex;selectorIndex;disposed=!1;unsubscribeFromAtomCreation;unsubscribeFromAtomDisposal;unsubscribeFromSelectorCreation;unsubscribeFromSelectorDisposal;constructor(T=XT.STORE){this.store=T;this.atomIndex=$1(this.store),this.selectorIndex=f1(this.store),this.unsubscribeFromAtomCreation=this.store.on.atomCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:S})=>{this.statesCreatedAt.set(S,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromAtomDisposal=this.store.on.atomDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:S})=>{this.statesCreatedAt.delete(S)}),this.unsubscribeFromSelectorCreation=this.store.on.selectorCreation.subscribe(`auditor-${this.auditorCreatedAt}`,({key:S})=>{this.statesCreatedAt.set(S,performance.now()-this.auditorCreatedAt)}),this.unsubscribeFromSelectorDisposal=this.store.on.selectorDisposal.subscribe(`auditor-${this.auditorCreatedAt}`,({key:S})=>{this.statesCreatedAt.delete(S)})}static DEFAULT_LIST_RESOURCES_PARAM={atomFamilies:!0,selectorFamilies:!0};listResources(T=aX.DEFAULT_LIST_RESOURCES_PARAM){if(this.disposed)throw new Error("This Auditor has been disposed");let S=nW(this.atomIndex),$=nW(this.selectorIndex),f=[...S.values()].filter((W)=>("familyMembers"in W)),M=[...$.values()].filter((W)=>("familyMembers"in W)),J=performance.now(),F=[];if(T.atomFamilies)for(let W of f){let A=W.familyMembers.values();for(let k of A){let y=this.statesCreatedAt.get(k.key)??this.auditorCreatedAt,w=J-y;F.push([k,w])}}if(T.selectorFamilies)for(let W of M){let A=W.familyMembers.values();for(let k of A){let y=this.statesCreatedAt.get(k.key)??this.auditorCreatedAt,w=J-y;F.push([k,w])}}return F}[Symbol.dispose](){this.unsubscribeFromAtomCreation(),this.unsubscribeFromAtomDisposal(),this.unsubscribeFromSelectorCreation(),this.unsubscribeFromSelectorDisposal(),this.disposed=!0}}var W1=(T,S)=>{let $=(f,M)=>{let F=((A,k)=>{let X=S(A,k);if(X)return X;return null})(f,M);if(F?.jobComplete??F?.pathComplete)return F;let W=Array.isArray(M)?M.map((A,k)=>[k,A]):J1(M)?Object.entries(M):[];for(let[A,k]of W){let X=$([...f,A],k);if(X?.jobComplete)return X}return{}};$([],T)};function s6(T,S){return{summary:`${T<S?"+":"-"}${Math.abs(T-S)} (${T} \u2192 ${S})`}}function TY(T,S){return{summary:`${T.length<S.length?"+":"-"}${Math.abs(T.length-S.length)} ("${T}" \u2192 "${S}")`}}function SY(T,S){return{summary:`${T} \u2192 ${S}`}}function eX(T,S,$){let f="",M=[],J=[],F=[];return W1(T,(W,A)=>{let k;for(k of W){let X=S[k];if(X===void 0)J.push([k,JSON.stringify(A)]);else{let y=$(A,X);if(y.summary!=="No Change")F.push([k,y])}}}),W1(S,(W,A)=>{let k;for(k of W)if(T[k]===void 0)M.push([k,JSON.stringify(A)])}),f=`\uFF5E${F.length} \uFF0B${M.length} \uFF0D${J.length}`,{summary:f,added:M,removed:J,changed:F}}function $Y(T,S,$){return eX(T,S,$)}class sX{leafRefinery;treeRefinery;leafDiffers;treeDiffers;constructor(T,S,$){this.leafRefinery=T,this.treeRefinery=S,this.leafDiffers={},this.treeDiffers={};for(let f of Object.keys(T.supported)){let M=$[f];this.leafDiffers[f]=M}for(let f of Object.keys(S.supported)){let M=$[f];this.treeDiffers[f]=M}}diff(T,S){if(T===S)return{summary:"No Change"};let $=this.leafRefinery.refine(T)??this.treeRefinery.refine(T),f=this.leafRefinery.refine(S)??this.treeRefinery.refine(S);if($!==null&&f!==null){if($.type===f.type){if($.type in this.leafDiffers)return this.leafDiffers[$.type]($.data,f.data);if($.type in this.treeDiffers)return this.treeDiffers[$.type]($.data,f.data,(W,A)=>this.diff(W,A))}}let M=OM(T),J=OM(S);if(M===J)return{summary:`${M} \u2192 ${J}`};return{summary:`Type change: ${M} \u2192 ${J}`}}}var CN=new sX(M1,F1,{number:s6,string:TY,boolean:SY,null:()=>({summary:"No Change"}),object:eX,array:$Y});var Y=Symbol.for("drizzle:entityKind"),hN=Symbol.for("drizzle:hasOwnEntityKind");function V(T,S){if(!T||typeof T!=="object")return!1;if(T instanceof S)return!0;if(!Object.prototype.hasOwnProperty.call(S,Y))throw new Error(`Class "${S.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 $=Object.getPrototypeOf(T).constructor;if($)while($){if(Y in $&&$[Y]===S[Y])return!0;$=Object.getPrototypeOf($)}return!1}class NT{constructor(T,S){this.table=T,this.config=S,this.name=S.name,this.keyAsName=S.keyAsName,this.notNull=S.notNull,this.default=S.default,this.defaultFn=S.defaultFn,this.onUpdateFn=S.onUpdateFn,this.hasDefault=S.hasDefault,this.primary=S.primaryKey,this.isUnique=S.isUnique,this.uniqueName=S.uniqueName,this.uniqueType=S.uniqueType,this.dataType=S.dataType,this.columnType=S.columnType,this.generated=S.generated,this.generatedIdentity=S.generatedIdentity}static[Y]="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(T){return T}mapToDriverValue(T){return T}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}class A1{static[Y]="ColumnBuilder";config;constructor(T,S,$){this.config={name:T,keyAsName:T==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:S,columnType:$,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(T){return this.config.default=T,this.config.hasDefault=!0,this}$defaultFn(T){return this.config.defaultFn=T,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(T){return this.config.onUpdateFn=T,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(T){if(this.config.name!=="")return;this.config.name=T}}var f$=Symbol.for("drizzle:Name");class k1{static[Y]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(T,S){if(this.reference=()=>{let{name:$,columns:f,foreignColumns:M}=T();return{name:$,columns:f,foreignTable:M[0].table,foreignColumns:M}},S)this._onUpdate=S.onUpdate,this._onDelete=S.onDelete}onUpdate(T){return this._onUpdate=T===void 0?"no action":T,this}onDelete(T){return this._onDelete=T===void 0?"no action":T,this}build(T){return new T2(T,this)}}class T2{constructor(T,S){this.table=T,this.reference=S.reference,this.onUpdate=S._onUpdate,this.onDelete=S._onDelete}static[Y]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:T,columns:S,foreignColumns:$}=this.reference(),f=S.map((F)=>F.name),M=$.map((F)=>F.name),J=[this.table[f$],...f,$[0].table[f$],...M];return T??`${J.join("_")}_fk`}}function uF(T,...S){return T(...S)}function S2(T,S){return`${T[f$]}_${S.join("_")}_unique`}function $2(T,S,$){for(let f=S;f<T.length;f++){let M=T[f];if(M==="\\"){f++;continue}if(M==='"')return[T.slice(S,f).replace(/\\/g,""),f+1];if($)continue;if(M===","||M==="}")return[T.slice(S,f).replace(/\\/g,""),f]}return[T.slice(S).replace(/\\/g,""),T.length]}function f2(T,S=0){let $=[],f=S,M=!1;while(f<T.length){let J=T[f];if(J===","){if(M||f===S)$.push("");M=!0,f++;continue}if(M=!1,J==="\\"){f+=2;continue}if(J==='"'){let[A,k]=$2(T,f+1,!0);$.push(A),f=k;continue}if(J==="}")return[$,f+1];if(J==="{"){let[A,k]=f2(T,f+1);$.push(A),f=k;continue}let[F,W]=$2(T,f,!1);$.push(F),f=W}return[$,f]}function M2(T){let[S]=f2(T,1);return S}function X1(T){return`{${T.map((S)=>{if(Array.isArray(S))return X1(S);if(typeof S==="string")return`"${S.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`;return`${S}`}).join(",")}}`}class g extends A1{foreignKeyConfigs=[];static[Y]="PgColumnBuilder";array(T){return new F2(this.config.name,this,T)}references(T,S={}){return this.foreignKeyConfigs.push({ref:T,actions:S}),this}unique(T,S){return this.config.isUnique=!0,this.config.uniqueName=T,this.config.uniqueType=S?.nulls,this}generatedAlwaysAs(T){return this.config.generated={as:T,type:"always",mode:"stored"},this}buildForeignKeys(T,S){return this.foreignKeyConfigs.map(({ref:$,actions:f})=>{return uF((M,J)=>{let F=new k1(()=>{let W=M();return{columns:[T],foreignColumns:[W]}});if(J.onUpdate)F.onUpdate(J.onUpdate);if(J.onDelete)F.onDelete(J.onDelete);return F.build(S)},$,f)})}buildExtraConfigColumn(T){return new J2(T,this.config)}}class q extends NT{constructor(T,S){if(!S.uniqueName)S.uniqueName=S2(T,[S.name]);super(T,S);this.table=T}static[Y]="PgColumn"}class J2 extends q{static[Y]="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(T){return this.indexConfig.opClass=T,this}}class LJ{static[Y]="IndexedColumn";constructor(T,S,$,f){this.name=T,this.keyAsName=S,this.type=$,this.indexConfig=f}name;keyAsName;type;indexConfig}class F2 extends g{static[Y]="PgArrayBuilder";constructor(T,S,$){super(T,"array","PgArray");this.config.baseBuilder=S,this.config.size=$}build(T){let S=this.config.baseBuilder.build(T);return new y1(T,this.config,S)}}class y1 extends q{constructor(T,S,$,f){super(T,S);this.baseColumn=$,this.range=f,this.size=S.size}size;static[Y]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size==="number"?this.size:""}]`}mapFromDriverValue(T){if(typeof T==="string")T=M2(T);return T.map((S)=>this.baseColumn.mapFromDriverValue(S))}mapToDriverValue(T,S=!1){let $=T.map((f)=>f===null?null:V(this.baseColumn,y1)?this.baseColumn.mapToDriverValue(f,!0):this.baseColumn.mapToDriverValue(f));if(S)return $;return X1($)}}var w1=Symbol.for("drizzle:isPgEnum");function W2(T){return!!T&&typeof T==="function"&&w1 in T&&T[w1]===!0}class A2 extends g{static[Y]="PgEnumColumnBuilder";constructor(T,S){super(T,"string","PgEnumColumn");this.config.enum=S}build(T){return new k2(T,this.config)}}class k2 extends q{static[Y]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(T,S){super(T,S);this.enum=S.enum}getSQLType(){return this.enum.enumName}}function dF(T,S){return fY(T,S,void 0)}function fY(T,S,$){let f=Object.assign((M)=>new A2(M??"",f),{enumName:T,enumValues:S,schema:$,[w1]:!0});return f}class fS{static[Y]="Subquery";constructor(T,S,$,f=!1){this._={brand:"Subquery",sql:T,selectedFields:S,alias:$,isWith:f}}}class NJ extends fS{static[Y]="WithSubquery"}var X2="0.36.1";var K1,Y1,QT={startActiveSpan(T,S){if(!K1)return S();if(!Y1)Y1=K1.trace.getTracer("drizzle-orm",X2);return uF(($,f)=>f.startActiveSpan(T,(M)=>{try{return S(M)}catch(J){throw M.setStatus({code:$.SpanStatusCode.ERROR,message:J instanceof Error?J.message:"Unknown error"}),J}finally{M.end()}}),K1,Y1)}};var hT=Symbol.for("drizzle:ViewBaseConfig");var rF=Symbol.for("drizzle:Schema"),y2=Symbol.for("drizzle:Columns"),w2=Symbol.for("drizzle:ExtraConfigColumns"),R1=Symbol.for("drizzle:OriginalName"),O1=Symbol.for("drizzle:BaseName"),K2=Symbol.for("drizzle:IsAlias"),Y2=Symbol.for("drizzle:ExtraConfigBuilder"),MY=Symbol.for("drizzle:IsDrizzleTable");class c{static[Y]="Table";static Symbol={Name:f$,Schema:rF,OriginalName:R1,Columns:y2,ExtraConfigColumns:w2,BaseName:O1,IsAlias:K2,ExtraConfigBuilder:Y2};[f$];[R1];[rF];[y2];[w2];[O1];[K2]=!1;[MY]=!0;[Y2]=void 0;constructor(T,S,$){this[f$]=this[R1]=T,this[rF]=S,this[O1]=$}}function PS(T){return T[f$]}function _f(T){return`${T[rF]??"public"}.${T[f$]}`}function G1(T){return T!==null&&T!==void 0&&typeof T.getSQL==="function"}function JY(T){let S={sql:"",params:[]};for(let $ of T)if(S.sql+=$.sql,S.params.push(...$.params),$.typings?.length){if(!S.typings)S.typings=[];S.typings.push(...$.typings)}return S}class eT{static[Y]="StringChunk";value;constructor(T){this.value=Array.isArray(T)?T:[T]}getSQL(){return new t([this])}}class t{constructor(T){this.queryChunks=T}static[Y]="SQL";decoder=O2;shouldInlineParams=!1;append(T){return this.queryChunks.push(...T.queryChunks),this}toQuery(T){return QT.startActiveSpan("drizzle.buildSQL",(S)=>{let $=this.buildQueryFromSourceParams(this.queryChunks,T);return S?.setAttributes({"drizzle.query.text":$.sql,"drizzle.query.params":JSON.stringify($.params)}),$})}buildQueryFromSourceParams(T,S){let $=Object.assign({},S,{inlineParams:S.inlineParams||this.shouldInlineParams,paramStartIndex:S.paramStartIndex||{value:0}}),{casing:f,escapeName:M,escapeParam:J,prepareTyping:F,inlineParams:W,paramStartIndex:A}=$;return JY(T.map((k)=>{if(V(k,eT))return{sql:k.value.join(""),params:[]};if(V(k,aF))return{sql:M(k.value),params:[]};if(k===void 0)return{sql:"",params:[]};if(Array.isArray(k)){let X=[new eT("(")];for(let[y,w]of k.entries())if(X.push(w),y<k.length-1)X.push(new eT(", "));return X.push(new eT(")")),this.buildQueryFromSourceParams(X,$)}if(V(k,t))return this.buildQueryFromSourceParams(k.queryChunks,{...$,inlineParams:W||k.shouldInlineParams});if(V(k,c)){let X=k[c.Symbol.Schema],y=k[c.Symbol.Name];return{sql:X===void 0?M(y):M(X)+"."+M(y),params:[]}}if(V(k,NT)){let X=f.getColumnCasing(k);if(S.invokeSource==="indexes")return{sql:M(X),params:[]};return{sql:M(k.table[c.Symbol.Name])+"."+M(X),params:[]}}if(V(k,ES)){let X=k[hT].schema,y=k[hT].name;return{sql:X===void 0?M(y):M(X)+"."+M(y),params:[]}}if(V(k,IS)){if(V(k.value,i$))return{sql:J(A.value++,k),params:[k],typings:["none"]};let X=k.value===null?null:k.encoder.mapToDriverValue(k.value);if(V(X,t))return this.buildQueryFromSourceParams([X],$);if(W)return{sql:this.mapInlineParam(X,$),params:[]};let y=["none"];if(F)y=[F(k.encoder)];return{sql:J(A.value++,X),params:[X],typings:y}}if(V(k,i$))return{sql:J(A.value++,k),params:[k],typings:["none"]};if(V(k,t.Aliased)&&k.fieldAlias!==void 0)return{sql:M(k.fieldAlias),params:[]};if(V(k,fS)){if(k._.isWith)return{sql:M(k._.alias),params:[]};return this.buildQueryFromSourceParams([new eT("("),k._.sql,new eT(") "),new aF(k._.alias)],$)}if(W2(k)){if(k.schema)return{sql:M(k.schema)+"."+M(k.enumName),params:[]};return{sql:M(k.enumName),params:[]}}if(G1(k)){if(k.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([k.getSQL()],$);return this.buildQueryFromSourceParams([new eT("("),k.getSQL(),new eT(")")],$)}if(W)return{sql:this.mapInlineParam(k,$),params:[]};return{sql:J(A.value++,k),params:[k],typings:["none"]}}))}mapInlineParam(T,{escapeString:S}){if(T===null)return"null";if(typeof T==="number"||typeof T==="boolean")return T.toString();if(typeof T==="string")return S(T);if(typeof T==="object"){let $=T.toString();if($==="[object Object]")return S(JSON.stringify(T));return S($)}throw new Error("Unexpected param value: "+T)}getSQL(){return this}as(T){if(T===void 0)return this;return new t.Aliased(this,T)}mapWith(T){return this.decoder=typeof T==="function"?{mapFromDriverValue:T}:T,this}inlineParams(){return this.shouldInlineParams=!0,this}if(T){return T?this:void 0}}class aF{constructor(T){this.value=T}static[Y]="Name";brand;getSQL(){return new t([this])}}function R2(T){return typeof T==="object"&&T!==null&&"mapToDriverValue"in T&&typeof T.mapToDriverValue==="function"}var O2={mapFromDriverValue:(T)=>T},G2={mapToDriverValue:(T)=>T},VC={...O2,...G2};class IS{constructor(T,S=G2){this.value=T,this.encoder=S}static[Y]="Param";brand;getSQL(){return new t([this])}}function R(T,...S){let $=[];if(S.length>0||T.length>0&&T[0]!=="")$.push(new eT(T[0]));for(let[f,M]of S.entries())$.push(M,new eT(T[f+1]));return new t($)}((T)=>{function S(){return new t([])}T.empty=S;function $(A){return new t(A)}T.fromList=$;function f(A){return new t([new eT(A)])}T.raw=f;function M(A,k){let X=[];for(let[y,w]of A.entries()){if(y>0&&k!==void 0)X.push(k);X.push(w)}return new t(X)}T.join=M;function J(A){return new aF(A)}T.identifier=J;function F(A){return new i$(A)}T.placeholder=F;function W(A,k){return new IS(A,k)}T.param=W})(R||(R={}));((T)=>{class S{constructor($,f){this.sql=$,this.fieldAlias=f}static[Y]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new S(this.sql,this.fieldAlias)}}T.Aliased=S})(t||(t={}));class i${constructor(T){this.name=T}static[Y]="Placeholder";getSQL(){return new t([this])}}function z1(T,S){return T.map(($)=>{if(V($,i$)){if(!($.name in S))throw new Error(`No value for placeholder "${$.name}" was provided`);return S[$.name]}if(V($,IS)&&V($.value,i$)){if(!($.value.name in S))throw new Error(`No value for placeholder "${$.value.name}" was provided`);return $.encoder.mapToDriverValue(S[$.value.name])}return $})}class ES{static[Y]="View";[hT];constructor({name:T,schema:S,selectedFields:$,query:f}){this[hT]={name:T,originalName:T,schema:S,selectedFields:$,query:f,isExisting:!f,isAlias:!1}}getSQL(){return new t([this])}}NT.prototype.getSQL=function(){return new t([this])};c.prototype.getSQL=function(){return new t([this])};fS.prototype.getSQL=function(){return new t([this])};class GM{constructor(T){this.table=T}static[Y]="ColumnAliasProxyHandler";get(T,S){if(S==="table")return this.table;return T[S]}}class CJ{constructor(T,S){this.alias=T,this.replaceOriginalName=S}static[Y]="TableAliasProxyHandler";get(T,S){if(S===c.Symbol.IsAlias)return!0;if(S===c.Symbol.Name)return this.alias;if(this.replaceOriginalName&&S===c.Symbol.OriginalName)return this.alias;if(S===hT)return{...T[hT],name:this.alias,isAlias:!0};if(S===c.Symbol.Columns){let f=T[c.Symbol.Columns];if(!f)return f;let M={};return Object.keys(f).map((J)=>{M[J]=new Proxy(f[J],new GM(new Proxy(T,this)))}),M}let $=T[S];if(V($,NT))return new Proxy($,new GM(new Proxy(T,this)));return $}}function eF(T,S){return new Proxy(T,new CJ(S,!1))}function K$(T,S){return new Proxy(T,new GM(new Proxy(T.table,new CJ(S,!1))))}function _1(T,S){return new t.Aliased(xJ(T.sql,S),T.fieldAlias)}function xJ(T,S){return R.join(T.queryChunks.map(($)=>{if(V($,NT))return K$($,S);if(V($,t))return xJ($,S);if(V($,t.Aliased))return _1($,S);return $}))}class sF extends Error{static[Y]="DrizzleError";constructor({message:T,cause:S}){super(T);this.name="DrizzleError",this.cause=S}}class H1 extends sF{static[Y]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}function QS(T,S){if(R2(S)&&!G1(T)&&!V(T,IS)&&!V(T,i$)&&!V(T,NT)&&!V(T,c)&&!V(T,ES))return new IS(T,S);return T}var TW=(T,S)=>{return R`${T} = ${QS(S,T)}`},z2=(T,S)=>{return R`${T} <> ${QS(S,T)}`};function jJ(...T){let S=T.filter(($)=>$!==void 0);if(S.length===0)return;if(S.length===1)return new t(S);return new t([new eT("("),R.join(S,new eT(" and ")),new eT(")")])}function _2(...T){let S=T.filter(($)=>$!==void 0);if(S.length===0)return;if(S.length===1)return new t(S);return new t([new eT("("),R.join(S,new eT(" or ")),new eT(")")])}function H2(T){return R`not ${T}`}var SW=(T,S)=>{return R`${T} > ${QS(S,T)}`},D2=(T,S)=>{return R`${T} >= ${QS(S,T)}`},E2=(T,S)=>{return R`${T} < ${QS(S,T)}`},Q2=(T,S)=>{return R`${T} <= ${QS(S,T)}`};function U2(T,S){if(Array.isArray(S)){if(S.length===0)return R`false`;return R`${T} in ${S.map(($)=>QS($,T))}`}return R`${T} in ${QS(S,T)}`}function V2(T,S){if(Array.isArray(S)){if(S.length===0)return R`true`;return R`${T} not in ${S.map(($)=>QS($,T))}`}return R`${T} not in ${QS(S,T)}`}function B2(T){return R`${T} is null`}function L2(T){return R`${T} is not null`}function N2(T){return R`exists ${T}`}function C2(T){return R`not exists ${T}`}function x2(T,S,$){return R`${T} between ${QS(S,T)} and ${QS($,T)}`}function j2(T,S,$){return R`${T} not between ${QS(S,T)} and ${QS($,T)}`}function I2(T,S){return R`${T} like ${S}`}function b2(T,S){return R`${T} not like ${S}`}function q2(T,S){return R`${T} ilike ${S}`}function Z2(T,S){return R`${T} not ilike ${S}`}function m2(T){return R`${T} asc`}function h2(T){return R`${T} desc`}class v2{static[Y]="ConsoleLogWriter";write(T){console.log(T)}}class D1{static[Y]="DefaultLogger";writer;constructor(T){this.writer=T?.writer??new v2}logQuery(T,S){let $=S.map((M)=>{try{return JSON.stringify(M)}catch{return String(M)}}),f=$.length?` -- params: [${$.join(", ")}]`:"";this.writer.write(`Query: ${T}${f}`)}}class E1{static[Y]="NoopLogger";logQuery(){}}class GS{static[Y]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(T){return this.then(void 0,T)}finally(T){return this.then((S)=>{return T?.(),S},(S)=>{throw T?.(),S})}then(T,S){return this.execute().then(T,S)}}function P2(T,S,$){let f={},M=T.reduce((J,{path:F,field:W},A)=>{let k;if(V(W,NT))k=W;else if(V(W,t))k=W.decoder;else k=W.sql.decoder;let X=J;for(let[y,w]of F.entries())if(y<F.length-1){if(!(w in X))X[w]={};X=X[w]}else{let G=S[A],z=X[w]=G===null?null:k.mapFromDriverValue(G);if($&&V(W,NT)&&F.length===2){let Q=F[0];if(!(Q in f))f[Q]=z===null?PS(W.table):!1;else if(typeof f[Q]==="string"&&f[Q]!==PS(W.table))f[Q]=!1}}return J},{});if($&&Object.keys(f).length>0){for(let[J,F]of Object.entries(f))if(typeof F==="string"&&!$[F])M[J]=null}return M}function nS(T,S){return Object.entries(T).reduce(($,[f,M])=>{if(typeof f!=="string")return $;let J=S?[...S,f]:[f];if(V(M,NT)||V(M,t)||V(M,t.Aliased))$.push({path:J,field:M});else if(V(M,c))$.push(...nS(M[c.Symbol.Columns],J));else $.push(...nS(M,J));return $},[])}function Q1(T,S){let $=Object.keys(T),f=Object.keys(S);if($.length!==f.length)return!1;for(let[M,J]of $.entries())if(J!==f[M])return!1;return!0}function $W(T,S){let $=Object.entries(S).filter(([,f])=>f!==void 0).map(([f,M])=>{if(V(M,t))return[f,M];else return[f,new IS(M,T[c.Symbol.Columns][f])]});if($.length===0)throw new Error("No values to set");return Object.fromEntries($)}function n2(T,S){for(let $ of S)for(let f of Object.getOwnPropertyNames($.prototype)){if(f==="constructor")continue;Object.defineProperty(T.prototype,f,Object.getOwnPropertyDescriptor($.prototype,f)||Object.create(null))}}function c2(T){return T[c.Symbol.Columns]}function U1(T){return V(T,fS)?T._.alias:V(T,ES)?T[hT].name:V(T,t)?void 0:T[c.Symbol.IsAlias]?T[c.Symbol.Name]:T[c.Symbol.BaseName]}function yT(T,S){return{name:typeof T==="string"&&T.length>0?T:"",config:typeof T==="object"?T:S}}function o2(T){if(typeof T!=="object"||T===null)return!1;if(T.constructor.name!=="Object")return!1;if("logger"in T){let S=typeof T.logger;if(S!=="boolean"&&(S!=="object"||typeof T.logger.logQuery!=="function")&&S!=="undefined")return!1;return!0}if("schema"in T){let S=typeof T.logger;if(S!=="object"&&S!=="undefined")return!1;return!0}if("casing"in T){let S=typeof T.logger;if(S!=="string"&&S!=="undefined")return!1;return!0}if("mode"in T){if(T.mode!=="default"||T.mode!=="planetscale"||T.mode!==void 0)return!1;return!0}if("connection"in T){let S=typeof T.connection;if(S!=="string"&&S!=="object"&&S!=="undefined")return!1;return!0}if("client"in T){let S=typeof T.client;if(S!=="object"&&S!=="function"&&S!=="undefined")return!1;return!0}if(Object.keys(T).length===0)return!0;return!1}class l$ extends g{static[Y]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(T){if(T){let{name:S,...$}=T;this.config.generatedIdentity={type:"always",sequenceName:S,sequenceOptions:$}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(T){if(T){let{name:S,...$}=T;this.config.generatedIdentity={type:"byDefault",sequenceName:S,sequenceOptions:$}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class g2 extends l${static[Y]="PgBigInt53Builder";constructor(T){super(T,"number","PgBigInt53")}build(T){return new t2(T,this.config)}}class t2 extends q{static[Y]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class p2 extends l${static[Y]="PgBigInt64Builder";constructor(T){super(T,"bigint","PgBigInt64")}build(T){return new i2(T,this.config)}}class i2 extends q{static[Y]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(T){return BigInt(T)}}function l2(T,S){let{name:$,config:f}=yT(T,S);if(f.mode==="number")return new g2($);return new p2($)}class u2 extends g{static[Y]="PgBigSerial53Builder";constructor(T){super(T,"number","PgBigSerial53");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new d2(T,this.config)}}class d2 extends q{static[Y]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(T){if(typeof T==="number")return T;return Number(T)}}class r2 extends g{static[Y]="PgBigSerial64Builder";constructor(T){super(T,"bigint","PgBigSerial64");this.config.hasDefault=!0}build(T){return new a2(T,this.config)}}class a2 extends q{static[Y]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(T){return BigInt(T)}}function e2(T,S){let{name:$,config:f}=yT(T,S);if(f.mode==="number")return new u2($);return new r2($)}class s2 extends g{static[Y]="PgBooleanBuilder";constructor(T){super(T,"boolean","PgBoolean")}build(T){return new Ty(T,this.config)}}class Ty extends q{static[Y]="PgBoolean";getSQLType(){return"boolean"}}function IJ(T){return new s2(T??"")}class Sy extends g{static[Y]="PgCharBuilder";constructor(T,S){super(T,"string","PgChar");this.config.length=S.length,this.config.enumValues=S.enum}build(T){return new $y(T,this.config)}}class $y extends q{static[Y]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}}function fy(T,S={}){let{name:$,config:f}=yT(T,S);return new Sy($,f)}class My extends g{static[Y]="PgCidrBuilder";constructor(T){super(T,"string","PgCidr")}build(T){return new Jy(T,this.config)}}class Jy extends q{static[Y]="PgCidr";getSQLType(){return"cidr"}}function Fy(T){return new My(T??"")}class Wy extends g{static[Y]="PgCustomColumnBuilder";constructor(T,S,$){super(T,"custom","PgCustomColumn");this.config.fieldConfig=S,this.config.customTypeParams=$}build(T){return new Ay(T,this.config)}}class Ay extends q{static[Y]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(T,S){super(T,S);this.sqlName=S.customTypeParams.dataType(S.fieldConfig),this.mapTo=S.customTypeParams.toDriver,this.mapFrom=S.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(T){return typeof this.mapFrom==="function"?this.mapFrom(T):T}mapToDriverValue(T){return typeof this.mapTo==="function"?this.mapTo(T):T}}function ky(T){return(S,$)=>{let{name:f,config:M}=yT(S,$);return new Wy(f,M,T)}}class x$ extends g{static[Y]="PgDateColumnBaseBuilder";defaultNow(){return this.default(R`now()`)}}class Xy extends x${static[Y]="PgDateBuilder";constructor(T){super(T,"date","PgDate")}build(T){return new fW(T,this.config)}}class fW extends q{static[Y]="PgDate";getSQLType(){return"date"}mapFromDriverValue(T){return new Date(T)}mapToDriverValue(T){return T.toISOString()}}class yy extends x${static[Y]="PgDateStringBuilder";constructor(T){super(T,"string","PgDateString")}build(T){return new MW(T,this.config)}}class MW extends q{static[Y]="PgDateString";getSQLType(){return"date"}}function wy(T,S){let{name:$,config:f}=yT(T,S);if(f?.mode==="date")return new Xy($);return new yy($)}class Ky extends g{static[Y]="PgDoublePrecisionBuilder";constructor(T){super(T,"number","PgDoublePrecision")}build(T){return new Yy(T,this.config)}}class Yy extends q{static[Y]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseFloat(T);return T}}function Ry(T){return new Ky(T??"")}class Oy extends g{static[Y]="PgInetBuilder";constructor(T){super(T,"string","PgInet")}build(T){return new Gy(T,this.config)}}class Gy extends q{static[Y]="PgInet";getSQLType(){return"inet"}}function zy(T){return new Oy(T??"")}class _y extends l${static[Y]="PgIntegerBuilder";constructor(T){super(T,"number","PgInteger")}build(T){return new Hy(T,this.config)}}class Hy extends q{static[Y]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(T){if(typeof T==="string")return Number.parseInt(T);return T}}function JW(T){return new _y(T??"")}class Dy extends g{static[Y]="PgIntervalBuilder";constructor(T,S){super(T,"string","PgInterval");this.config.intervalConfig=S}build(T){return new Ey(T,this.config)}}class Ey extends q{static[Y]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let T=this.fields?` ${this.fields}`:"",S=this.precision?`(${this.precision})`:"";return`interval${T}${S}`}}function Qy(T,S={}){let{name:$,config:f}=yT(T,S);return new Dy($,f)}class Uy extends g{static[Y]="PgJsonBuilder";constructor(T){super(T,"json","PgJson")}build(T){return new FW(T,this.config)}}class FW extends q{static[Y]="PgJson";constructor(T,S){super(T,S)}getSQLType(){return"json"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function Vy(T){return new Uy(T??"")}class By extends g{static[Y]="PgJsonbBuilder";constructor(T){super(T,"json","PgJsonb")}build(T){return new WW(T,this.config)}}class WW extends q{static[Y]="PgJsonb";constructor(T,S){super(T,S)}getSQLType(){return"jsonb"}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){if(typeof T==="string")try{return JSON.parse(T)}catch{return T}return T}}function Ly(T){return new By(T??"")}class Ny extends g{static[Y]="PgLineBuilder";constructor(T){super(T,"array","PgLine")}build(T){return new Cy(T,this.config)}}class Cy extends q{static[Y]="PgLine";getSQLType(){return"line"}mapFromDriverValue(T){let[S,$,f]=T.slice(1,-1).split(",");return[Number.parseFloat(S),Number.parseFloat($),Number.parseFloat(f)]}mapToDriverValue(T){return`{${T[0]},${T[1]},${T[2]}}`}}class xy extends g{static[Y]="PgLineABCBuilder";constructor(T){super(T,"json","PgLineABC")}build(T){return new jy(T,this.config)}}class jy extends q{static[Y]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(T){let[S,$,f]=T.slice(1,-1).split(",");return{a:Number.parseFloat(S),b:Number.parseFloat($),c:Number.parseFloat(f)}}mapToDriverValue(T){return`{${T.a},${T.b},${T.c}}`}}function Iy(T,S){let{name:$,config:f}=yT(T,S);if(!f?.mode||f.mode==="tuple")return new Ny($);return new xy($)}class by extends g{static[Y]="PgMacaddrBuilder";constructor(T){super(T,"string","PgMacaddr")}build(T){return new qy(T,this.config)}}class qy extends q{static[Y]="PgMacaddr";getSQLType(){return"macaddr"}}function Zy(T){return new by(T??"")}class my extends g{static[Y]="PgMacaddr8Builder";constructor(T){super(T,"string","PgMacaddr8")}build(T){return new hy(T,this.config)}}class hy extends q{static[Y]="PgMacaddr8";getSQLType(){return"macaddr8"}}function vy(T){return new my(T??"")}class Py extends g{static[Y]="PgNumericBuilder";constructor(T,S,$){super(T,"string","PgNumeric");this.config.precision=S,this.config.scale=$}build(T){return new AW(T,this.config)}}class AW extends q{static[Y]="PgNumeric";precision;scale;constructor(T,S){super(T,S);this.precision=S.precision,this.scale=S.scale}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 ny(T,S){let{name:$,config:f}=yT(T,S);return new Py($,f?.precision,f?.scale)}class cy extends g{static[Y]="PgPointTupleBuilder";constructor(T){super(T,"array","PgPointTuple")}build(T){return new oy(T,this.config)}}class oy extends q{static[Y]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[S,$]=T.slice(1,-1).split(",");return[Number.parseFloat(S),Number.parseFloat($)]}return[T.x,T.y]}mapToDriverValue(T){return`(${T[0]},${T[1]})`}}class gy extends g{static[Y]="PgPointObjectBuilder";constructor(T){super(T,"json","PgPointObject")}build(T){return new ty(T,this.config)}}class ty extends q{static[Y]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(T){if(typeof T==="string"){let[S,$]=T.slice(1,-1).split(",");return{x:Number.parseFloat(S),y:Number.parseFloat($)}}return T}mapToDriverValue(T){return`(${T.x},${T.y})`}}function py(T,S){let{name:$,config:f}=yT(T,S);if(!f?.mode||f.mode==="tuple")return new cy($);return new gy($)}function FY(T){let S=[];for(let $=0;$<T.length;$+=2)S.push(Number.parseInt(T.slice($,$+2),16));return new Uint8Array(S)}function iy(T,S){let $=new ArrayBuffer(8),f=new DataView($);for(let M=0;M<8;M++)f.setUint8(M,T[S+M]);return f.getFloat64(0,!0)}function V1(T){let S=FY(T),$=0,f=S[$];$+=1;let M=new DataView(S.buffer),J=M.getUint32($,f===1);$+=4;let F;if(J&536870912)F=M.getUint32($,f===1),$+=4;if((J&65535)===1){let W=iy(S,$);$+=8;let A=iy(S,$);return $+=8,[W,A]}throw new Error("Unsupported geometry type")}class ly extends g{static[Y]="PgGeometryBuilder";constructor(T){super(T,"array","PgGeometry")}build(T){return new uy(T,this.config)}}class uy extends q{static[Y]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){return V1(T)}mapToDriverValue(T){return`point(${T[0]} ${T[1]})`}}class dy extends g{static[Y]="PgGeometryObjectBuilder";constructor(T){super(T,"json","PgGeometryObject")}build(T){return new ry(T,this.config)}}class ry extends q{static[Y]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(T){let S=V1(T);return{x:S[0],y:S[1]}}mapToDriverValue(T){return`point(${T.x} ${T.y})`}}function ay(T,S){let{name:$,config:f}=yT(T,S);if(!f?.mode||f.mode==="tuple")return new ly($);return new dy($)}class ey extends g{static[Y]="PgRealBuilder";constructor(T,S){super(T,"number","PgReal");this.config.length=S}build(T){return new sy(T,this.config)}}class sy extends q{static[Y]="PgReal";constructor(T,S){super(T,S)}getSQLType(){return"real"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number.parseFloat(T);return T}}function T8(T){return new ey(T??"")}class S8 extends g{static[Y]="PgSerialBuilder";constructor(T){super(T,"number","PgSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new $8(T,this.config)}}class $8 extends q{static[Y]="PgSerial";getSQLType(){return"serial"}}function f8(T){return new S8(T??"")}class M8 extends l${static[Y]="PgSmallIntBuilder";constructor(T){super(T,"number","PgSmallInt")}build(T){return new J8(T,this.config)}}class J8 extends q{static[Y]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=(T)=>{if(typeof T==="string")return Number(T);return T}}function F8(T){return new M8(T??"")}class W8 extends g{static[Y]="PgSmallSerialBuilder";constructor(T){super(T,"number","PgSmallSerial");this.config.hasDefault=!0,this.config.notNull=!0}build(T){return new A8(T,this.config)}}class A8 extends q{static[Y]="PgSmallSerial";getSQLType(){return"smallserial"}}function k8(T){return new W8(T??"")}class X8 extends g{static[Y]="PgTextBuilder";constructor(T,S){super(T,"string","PgText");this.config.enumValues=S.enum}build(T){return new y8(T,this.config)}}class y8 extends q{static[Y]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function w8(T,S={}){let{name:$,config:f}=yT(T,S);return new X8($,f)}class K8 extends x${constructor(T,S,$){super(T,"string","PgTime");this.withTimezone=S,this.precision=$,this.config.withTimezone=S,this.config.precision=$}static[Y]="PgTimeBuilder";build(T){return new kW(T,this.config)}}class kW extends q{static[Y]="PgTime";withTimezone;precision;constructor(T,S){super(T,S);this.withTimezone=S.withTimezone,this.precision=S.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function Y8(T,S={}){let{name:$,config:f}=yT(T,S);return new K8($,f.withTimezone??!1,f.precision)}class R8 extends x${static[Y]="PgTimestampBuilder";constructor(T,S,$){super(T,"date","PgTimestamp");this.config.withTimezone=S,this.config.precision=$}build(T){return new XW(T,this.config)}}class XW extends q{static[Y]="PgTimestamp";withTimezone;precision;constructor(T,S){super(T,S);this.withTimezone=S.withTimezone,this.precision=S.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=(T)=>{return new Date(this.withTimezone?T:T+"+0000")};mapToDriverValue=(T)=>{return T.toISOString()}}class O8 extends x${static[Y]="PgTimestampStringBuilder";constructor(T,S,$){super(T,"string","PgTimestampString");this.config.withTimezone=S,this.config.precision=$}build(T){return new yW(T,this.config)}}class yW extends q{static[Y]="PgTimestampString";withTimezone;precision;constructor(T,S){super(T,S);this.withTimezone=S.withTimezone,this.precision=S.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function M$(T,S={}){let{name:$,config:f}=yT(T,S);if(f?.mode==="string")return new O8($,f.withTimezone??!1,f.precision);return new R8($,f?.withTimezone??!1,f?.precision)}class G8 extends g{static[Y]="PgUUIDBuilder";constructor(T){super(T,"string","PgUUID")}defaultRandom(){return this.default(R`gen_random_uuid()`)}build(T){return new wW(T,this.config)}}class wW extends q{static[Y]="PgUUID";getSQLType(){return"uuid"}}function bS(T){return new G8(T??"")}class z8 extends g{static[Y]="PgVarcharBuilder";constructor(T,S){super(T,"string","PgVarchar");this.config.length=S.length,this.config.enumValues=S.enum}build(T){return new _8(T,this.config)}}class _8 extends q{static[Y]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}}function MS(T,S={}){let{name:$,config:f}=yT(T,S);return new z8($,f)}class H8 extends g{static[Y]="PgBinaryVectorBuilder";constructor(T,S){super(T,"string","PgBinaryVector");this.config.dimensions=S.dimensions}build(T){return new D8(T,this.config)}}class D8 extends q{static[Y]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function E8(T,S){let{name:$,config:f}=yT(T,S);return new H8($,f)}class Q8 extends g{static[Y]="PgHalfVectorBuilder";constructor(T,S){super(T,"array","PgHalfVector");this.config.dimensions=S.dimensions}build(T){return new U8(T,this.config)}}class U8 extends q{static[Y]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map((S)=>Number.parseFloat(S))}}function V8(T,S){let{name:$,config:f}=yT(T,S);return new Q8($,f)}class B8 extends g{static[Y]="PgSparseVectorBuilder";constructor(T,S){super(T,"string","PgSparseVector");this.config.dimensions=S.dimensions}build(T){return new L8(T,this.config)}}class L8 extends q{static[Y]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function N8(T,S){let{name:$,config:f}=yT(T,S);return new B8($,f)}class C8 extends g{static[Y]="PgVectorBuilder";constructor(T,S){super(T,"array","PgVector");this.config.dimensions=S.dimensions}build(T){return new x8(T,this.config)}}class x8 extends q{static[Y]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(T){return JSON.stringify(T)}mapFromDriverValue(T){return T.slice(1,-1).split(",").map((S)=>Number.parseFloat(S))}}function j8(T,S){let{name:$,config:f}=yT(T,S);return new C8($,f)}function I8(){return{bigint:l2,bigserial:e2,boolean:IJ,char:fy,cidr:Fy,customType:ky,date:wy,doublePrecision:Ry,inet:zy,integer:JW,interval:Qy,json:Vy,jsonb:Ly,line:Iy,macaddr:Zy,macaddr8:vy,numeric:ny,point:py,geometry:ay,real:T8,serial:f8,smallint:F8,smallserial:k8,text:w8,time:Y8,timestamp:M$,uuid:bS,varchar:MS,bit:E8,halfvec:V8,sparsevec:N8,vector:j8}}var B1=Symbol.for("drizzle:PgInlineForeignKeys"),b8=Symbol.for("drizzle:EnableRLS");class cS extends c{static[Y]="PgTable";static Symbol=Object.assign({},c.Symbol,{InlineForeignKeys:B1,EnableRLS:b8});[B1]=[];[b8]=!1;[c.Symbol.ExtraConfigBuilder]=void 0}function WY(T,S,$,f,M=T){let J=new cS(T,f,M),F=typeof S==="function"?S(I8()):S,W=Object.fromEntries(Object.entries(F).map(([X,y])=>{let w=y;w.setName(X);let G=w.build(J);return J[B1].push(...w.buildForeignKeys(G,J)),[X,G]})),A=Object.fromEntries(Object.entries(F).map(([X,y])=>{let w=y;w.setName(X);let G=w.buildExtraConfigColumn(J);return[X,G]})),k=Object.assign(J,W);if(k[c.Symbol.Columns]=W,k[c.Symbol.ExtraConfigColumns]=A,$)k[cS.Symbol.ExtraConfigBuilder]=$;return Object.assign(k,{enableRLS:()=>{return k[cS.Symbol.EnableRLS]=!0,k}})}var u$=(T,S,$)=>{return WY(T,S,$,void 0)};function q8(...T){if(T[0].columns)return new bJ(T[0].columns,T[0].name);return new bJ(T)}class bJ{static[Y]="PgPrimaryKeyBuilder";columns;name;constructor(T,S){this.columns=T,this.name=S}build(T){return new Z8(T,this.columns,this.name)}}class Z8{constructor(T,S,$){this.table=T,this.columns=S,this.name=$}static[Y]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[cS.Symbol.Name]}_${this.columns.map((T)=>T.name).join("_")}_pk`}}class L1{constructor(T,S,$){this.sourceTable=T,this.referencedTable=S,this.relationName=$,this.referencedTableName=S[c.Symbol.Name]}static[Y]="Relation";referencedTableName;fieldName}class m8{constructor(T,S){this.table=T,this.config=S}static[Y]="Relations"}class d$ extends L1{constructor(T,S,$,f){super(T,S,$?.relationName);this.config=$,this.isNullable=f}static[Y]="One";withFieldName(T){let S=new d$(this.sourceTable,this.referencedTable,this.config,this.isNullable);return S.fieldName=T,S}}class qJ extends L1{constructor(T,S,$){super(T,S,$?.relationName);this.config=$}static[Y]="Many";withFieldName(T){let S=new qJ(this.sourceTable,this.referencedTable,this.config);return S.fieldName=T,S}}function h8(){return{and:jJ,between:x2,eq:TW,exists:N2,gt:SW,gte:D2,ilike:q2,inArray:U2,isNull:B2,isNotNull:L2,like:I2,lt:E2,lte:Q2,ne:z2,not:H2,notBetween:j2,notExists:C2,notLike:b2,notIlike:Z2,notInArray:V2,or:_2,sql:R}}function v8(){return{sql:R,asc:m2,desc:h2}}function P8(T,S){if(Object.keys(T).length===1&&"default"in T&&!V(T.default,c))T=T.default;let $={},f={},M={};for(let[J,F]of Object.entries(T))if(V(F,c)){let W=_f(F),A=f[W];$[W]=J,M[J]={tsName:J,dbName:F[c.Symbol.Name],schema:F[c.Symbol.Schema],columns:F[c.Symbol.Columns],relations:A?.relations??{},primaryKey:A?.primaryKey??[]};for(let X of Object.values(F[c.Symbol.Columns]))if(X.primary)M[J].primaryKey.push(X);let k=F[c.Symbol.ExtraConfigBuilder]?.(F[c.Symbol.ExtraConfigColumns]);if(k){for(let X of Object.values(k))if(V(X,bJ))M[J].primaryKey.push(...X.columns)}}else if(V(F,m8)){let W=_f(F.table),A=$[W],k=F.config(S(F.table)),X;for(let[y,w]of Object.entries(k))if(A){let G=M[A];if(G.relations[y]=w,X)G.primaryKey.push(...X)}else{if(!(W in f))f[W]={relations:{},primaryKey:X};f[W].relations[y]=w}}return{tables:M,tableNamesMap:$}}function AY(T){return function S($,f){return new d$(T,$,f,f?.fields.reduce((M,J)=>M&&J.notNull,!0)??!1)}}function kY(T){return function S($,f){return new qJ(T,$,f)}}function n8(T,S,$){if(V($,d$)&&$.config)return{fields:$.config.fields,references:$.config.references};let f=S[_f($.referencedTable)];if(!f)throw new Error(`Table "${$.referencedTable[c.Symbol.Name]}" not found in schema`);let M=T[f];if(!M)throw new Error(`Table "${f}" not found in schema`);let J=$.sourceTable,F=S[_f(J)];if(!F)throw new Error(`Table "${J[c.Symbol.Name]}" not found in schema`);let W=[];for(let A of Object.values(M.relations))if($.relationName&&$!==A&&A.relationName===$.relationName||!$.relationName&&A.referencedTable===$.sourceTable)W.push(A);if(W.length>1)throw $.relationName?new Error(`There are multiple relations with name "${$.relationName}" in table "${f}"`):new Error(`There are multiple relations between "${f}" and "${$.sourceTable[c.Symbol.Name]}". Please specify relation name`);if(W[0]&&V(W[0],d$)&&W[0].config)return{fields:W[0].config.references,references:W[0].config.fields};throw new Error(`There is not enough information to infer relation "${F}.${$.fieldName}"`)}function c8(T){return{one:AY(T),many:kY(T)}}function KW(T,S,$,f,M=(J)=>J){let J={};for(let[F,W]of f.entries())if(W.isJson){let A=S.relations[W.tsKey],k=$[F],X=typeof k==="string"?JSON.parse(k):k;J[W.tsKey]=V(A,d$)?X&&KW(T,T[W.relationTableTsKey],X,W.selection,M):X.map((y)=>KW(T,T[W.relationTableTsKey],y,W.selection,M))}else{let A=M($[F]),k=W.field,X;if(V(k,NT))X=k;else if(V(k,t))X=k.decoder;else X=k.sql.decoder;J[W.tsKey]=A===null?null:X.mapFromDriverValue(A)}return J}import M7 from"path";import bY from"os";import qY from"fs";var YW=new Map,N1=new Map,C1=Symbol("OriginError"),zM={};class oS extends Promise{constructor(T,S,$,f,M={}){let J,F;super((W,A)=>{J=W,F=A});this.tagged=Array.isArray(T.raw),this.strings=T,this.args=S,this.handler=$,this.canceller=f,this.options=M,this.state=null,this.statement=null,this.resolve=(W)=>(this.active=!1,J(W)),this.reject=(W)=>(this.active=!1,F(W)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[C1]=this.handler.debug?new Error:this.tagged&&XY(this.strings)}get origin(){return(this.handler.debug?this[C1].stack:this.tagged&&N1.has(this.strings)?N1.get(this.strings):N1.set(this.strings,this[C1].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(T=1,S){if(this.options.simple=!1,typeof T==="function")S=T,T=1;if(this.cursorRows=T,typeof S==="function")return this.cursorFn=S,this;let $;return{[Symbol.asyncIterator]:()=>({next:()=>{if(this.executed&&!this.active)return{done:!0};$&&$();let f=new Promise((M,J)=>{this.cursorFn=(F)=>{return M({value:F,done:!1}),new Promise((W)=>$=W)},this.resolve=()=>(this.active=!1,M({done:!0})),this.reject=(F)=>(this.active=!1,J(F))});return this.execute(),f},return(){return $&&$(zM),{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(T){return this.forEachFn=T,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 XY(T){if(YW.has(T))return YW.get(T);let S=Error.stackTraceLimit;return Error.stackTraceLimit=4,YW.set(T,new Error),Error.stackTraceLimit=S,YW.get(T)}class _M extends Error{constructor(T){super(T.message);this.name=this.constructor.name,Object.assign(this,T)}}var tT={connection:o8,postgres:g8,generic:t8,notSupported:p8};function o8(T,S,$){let{host:f,port:M}=$||S,J=Object.assign(new Error("write "+T+" "+(S.path||f+":"+M)),{code:T,errno:T,address:S.path||f},S.path?{}:{port:M});return Error.captureStackTrace(J,o8),J}function g8(T){let S=new _M(T);return Error.captureStackTrace(S,g8),S}function t8(T,S){let $=Object.assign(new Error(T+": "+S),{code:T});return Error.captureStackTrace($,t8),$}function p8(T){let S=Object.assign(new Error(T+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:T});return Error.captureStackTrace(S,p8),S}var yY={string:{to:25,from:null,serialize:(T)=>""+T},number:{to:0,from:[21,23,26,700,701],serialize:(T)=>""+T,parse:(T)=>+T},json:{to:114,from:[114,3802],serialize:(T)=>JSON.stringify(T),parse:(T)=>JSON.parse(T)},boolean:{to:16,from:16,serialize:(T)=>T===!0?"t":"f",parse:(T)=>T==="t"},date:{to:1184,from:[1082,1114,1184],serialize:(T)=>(T instanceof Date?T:new Date(T)).toISOString(),parse:(T)=>new Date(T)},bytea:{to:17,from:17,serialize:(T)=>"\\x"+Buffer.from(T).toString("hex"),parse:(T)=>Buffer.from(T.slice(2),"hex")}};class GW{then(){x1()}catch(){x1()}finally(){x1()}}class vJ extends GW{constructor(T){super();this.value=HW(T)}}class Y$ extends GW{constructor(T,S,$){super();this.value=T,this.type=S,this.array=$}}class zW extends GW{constructor(T,S){super();this.first=T,this.rest=S}build(T,S,$,f){let M=wY.map(([J,F])=>({fn:F,i:T.search(J)})).sort((J,F)=>J.i-F.i).pop();return M.i===-1?Z1(this.first,f):M.fn(this.first,this.rest,S,$,f)}}function _W(T,S,$,f){let M=T instanceof Y$?T.value:T;if(M===void 0){if(T instanceof Y$?T.value=f.transform.undefined:M=T=f.transform.undefined,M===void 0)throw tT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return"$"+$.push(T instanceof Y$?(S.push(T.value),T.array?T.array[T.type||OW(T.value)]||T.type||d8(T.value):T.type):(S.push(T),OW(T)))}var l8=a8(yY);function b1(T,S,$,f,M,J){for(let F=1;F<T.strings.length;F++)S+=q1(S,$,f,M,J)+T.strings[F],$=T.args[F];return S}function q1(T,S,$,f,M){return S instanceof zW?S.build(T,$,f,M):S instanceof oS?I1(S,$,f,M):S instanceof vJ?S.value:S&&S[0]instanceof oS?S.reduce((J,F)=>J+" "+I1(F,$,f,M),""):_W(S,$,f,M)}function I1(T,S,$,f){return T.fragment=!0,b1(T,T.strings[0],T.args[0],S,$,f)}function u8(T,S,$,f,M){return T.map((J)=>"("+f.map((F)=>q1("values",J[F],S,$,M)).join(",")+")").join(",")}function i8(T,S,$,f,M){let J=Array.isArray(T[0]),F=S.length?S.flat():Object.keys(J?T[0]:T);return u8(J?T:[T],$,f,F,M)}function RW(T,S,$,f,M){if(typeof T==="string"&&(T=[T].concat(S)),Array.isArray(T))return Z1(T,M);let J;return(S.length?S.flat():Object.keys(T)).map((W)=>{return J=T[W],(J instanceof oS?I1(J,$,f,M):J instanceof vJ?J.value:_W(J,$,f,M))+" as "+HW(M.transform.column.to?M.transform.column.to(W):W)}).join(",")}var wY=Object.entries({values:i8,in:(...T)=>{let S=i8(...T);return S==="()"?"(null)":S},select:RW,as:RW,returning:RW,"\\(":RW,update(T,S,$,f,M){return(S.length?S.flat():Object.keys(T)).map((J)=>HW(M.transform.column.to?M.transform.column.to(J):J)+"="+q1("values",T[J],$,f,M))},insert(T,S,$,f,M){let J=S.length?S.flat():Object.keys(Array.isArray(T)?T[0]:T);return"("+Z1(J,M)+")values"+u8(Array.isArray(T)?T:[T],$,f,J,M)}}).map(([T,S])=>[new RegExp("((?:^|[\\s(])"+T+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),S]);function x1(){throw tT.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}var{serializers:KY,parsers:YY}=l8;function d8(T){if(Array.isArray(T))return d8(T[0]);return typeof T==="string"?1009:0}var r8=function(T){let S=a8(T||{});return{serializers:Object.assign({},KY,S.serializers),parsers:Object.assign({},YY,S.parsers)}};function a8(T){return Object.keys(T).reduce((S,$)=>{if(T[$].from&&[].concat(T[$].from).forEach((f)=>S.parsers[f]=T[$].parse),T[$].serialize)S.serializers[T[$].to]=T[$].serialize,T[$].from&&[].concat(T[$].from).forEach((f)=>S.serializers[f]=T[$].serialize);return S},{parsers:{},serializers:{}})}function Z1(T,{transform:{column:S}}){return T.map(($)=>HW(S.to?S.to($):$)).join(",")}var HW=function T(S){return'"'+S.replace(/"/g,'""').replace(/\./g,'"."')+'"'},OW=function T(S){return S instanceof Y$?S.type:S instanceof Date?1184:S instanceof Uint8Array?17:S===!0||S===!1?16:typeof S==="bigint"?20:Array.isArray(S)?T(S[0]):0},RY=/\\/g,OY=/"/g;function GY(T){return T.replace(RY,"\\\\").replace(OY,'\\"')}var e8=function T(S,$,f,M){if(Array.isArray(S)===!1)return S;if(!S.length)return"{}";let J=S[0],F=M===1020?";":",";if(Array.isArray(J)&&!J.type)return"{"+S.map((W)=>T(W,$,f,M)).join(F)+"}";return"{"+S.map((W)=>{if(W===void 0){if(W=f.transform.undefined,W===void 0)throw tT.generic("UNDEFINED_VALUE","Undefined values are not allowed")}return W===null?"null":'"'+GY($?$(W.type?W.value:W):""+W)+'"'}).join(F)+"}"},j1={i:0,char:null,str:"",quoted:!1,last:0},s8=function T(S,$,f){return j1.i=j1.last=0,Tw(j1,S,$,f)};function Tw(T,S,$,f){let M=[],J=f===1020?";":",";for(;T.i<S.length;T.i++){if(T.char=S[T.i],T.quoted)if(T.char==="\\")T.str+=S[++T.i];else if(T.char==='"')M.push($?$(T.str):T.str),T.str="",T.quoted=S[T.i+1]==='"',T.last=T.i+2;else T.str+=T.char;else if(T.char==='"')T.quoted=!0;else if(T.char==="{")T.last=++T.i,M.push(Tw(T,S,$,f));else if(T.char==="}"){T.quoted=!1,T.last<T.i&&M.push($?$(S.slice(T.last,T.i)):S.slice(T.last,T.i)),T.last=T.i+1;break}else if(T.char===J&&T.p!=="}"&&T.p!=='"')M.push($?$(S.slice(T.last,T.i)):S.slice(T.last,T.i)),T.last=T.i+1;T.p=T.char}return T.last<T.i&&M.push($?$(S.slice(T.last,T.i+1)):S.slice(T.last,T.i+1)),M}var Hf=(T)=>{let S=T[0];for(let $=1;$<T.length;$++)S+=T[$]==="_"?T[++$].toUpperCase():T[$];return S},Df=(T)=>{let S=T[0].toUpperCase();for(let $=1;$<T.length;$++)S+=T[$]==="_"?T[++$].toUpperCase():T[$];return S},Ef=(T)=>T.replace(/_/g,"-"),ZJ=(T)=>T.replace(/([A-Z])/g,"_$1").toLowerCase(),mJ=(T)=>(T.slice(0,1)+T.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),hJ=(T)=>T.replace(/-/g,"_");function m1(T){return function S($,f){return typeof $==="object"&&$!==null&&(f.type===114||f.type===3802)?Array.isArray($)?$.map((M)=>S(M,f)):Object.entries($).reduce((M,[J,F])=>Object.assign(M,{[T(J)]:S(F,f)}),{}):$}}Hf.column={from:Hf};Hf.value={from:m1(Hf)};ZJ.column={to:ZJ};var h1={...Hf};h1.column.to=ZJ;Df.column={from:Df};Df.value={from:m1(Df)};mJ.column={to:mJ};var v1={...Df};v1.column.to=mJ;Ef.column={from:Ef};Ef.value={from:m1(Ef)};hJ.column={to:hJ};var P1={...Ef};P1.column.to=hJ;import Sw from"net";import DY from"tls";import PJ from"crypto";import n1 from"stream";import{performance as $w}from"perf_hooks";class Qf 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 qS=zY;function zY(T=[]){let S=T.slice(),$=0;return{get length(){return S.length-$},remove:(f)=>{let M=S.indexOf(f);return M===-1?null:(S.splice(M,1),f)},push:(f)=>(S.push(f),f),shift:()=>{let f=S[$++];if($===S.length)$=0,S=[];else S[$-1]=void 0;return f}}}var KS=Buffer.allocUnsafe(256),_Y="BCcDdEFfHPpQSX".split("").reduce((T,S)=>{let $=S.charCodeAt(0);return T[S]=()=>{return KS[0]=$,ET.i=5,ET},T},{}),ET=Object.assign(HY,_Y,{N:String.fromCharCode(0),i:0,inc(T){return ET.i+=T,ET},str(T){let S=Buffer.byteLength(T);return DW(S),ET.i+=KS.write(T,ET.i,S,"utf8"),ET},i16(T){return DW(2),KS.writeUInt16BE(T,ET.i),ET.i+=2,ET},i32(T,S){if(S||S===0)return KS.writeUInt32BE(T,S),ET;return DW(4),KS.writeUInt32BE(T,ET.i),ET.i+=4,ET},z(T){return DW(T),KS.fill(0,ET.i,ET.i+T),ET.i+=T,ET},raw(T){return KS=Buffer.concat([KS.subarray(0,ET.i),T]),ET.i=KS.length,ET},end(T=1){KS.writeUInt32BE(ET.i-T,T);let S=KS.subarray(0,ET.i);return ET.i=0,KS=Buffer.allocUnsafe(256),S}}),d=ET;function DW(T){if(KS.length-ET.i<T){let S=KS,$=S.length;KS=Buffer.allocUnsafe($+($>>1)+T),S.copy(KS)}}function HY(){return ET.i=0,ET}var g1=Jw,EY=1,r$=d().S().end(),fw=d().H().end(),QY=d().i32(8).i32(80877103).end(8),UY=Buffer.concat([d().E().str(d.N).i32(0).end(),r$]),VY=d().D().str("S").str(d.N).end(),HM=()=>{},BY=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),LY={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 Jw(T,S={},{onopen:$=HM,onend:f=HM,onclose:M=HM}={}){let{ssl:J,max:F,user:W,host:A,port:k,database:X,parsers:y,transform:w,onnotice:G,onnotify:z,onparameter:Q,max_pipeline:E,keep_alive:B,backoff:L,target_session_attrs:b}=T,C=qS(),D=EY++,H={pid:null,secret:null},U=o1(ZW,T.idle_timeout),Z=o1(ZW,T.max_lifetime),h=o1(xw,T.connect_timeout),O=null,o,P=new Qf,a=Buffer.alloc(0),MT=T.fetch_types,fT={},UT={},VS=Math.random().toString(36).slice(2),N=1,p=0,kT=0,_T=0,pT=0,AT=0,VT=0,oT=0,bT=null,CT=null,JS=!1,BT=null,gS=null,FS=null,I$=null,iT=null,xT=null,tS=null,J$=null,m=null,UM=null,WS={queue:S.closed,idleTimer:U,connect(K){FS=K||!0,KA()},terminate:BM,execute:VM,cancel:Bw,end:ZW,count:0,id:D};return S.closed&&S.closed.push(WS),WS;async function Vw(){let K;try{K=T.socket?await Promise.resolve(T.socket(T)):new Sw.Socket}catch(_){Nf(_);return}return K.on("error",Nf),K.on("close",YA),K.on("drain",yA),K}async function Bw({pid:K,secret:_},r,zT){try{o=d().i32(16).i32(80877102).i32(K).i32(_).end(16),await wA(),O.once("error",zT),O.once("close",r)}catch(vT){zT(vT)}}function VM(K){if(JS)return pJ(K,tT.connection("CONNECTION_DESTROYED",T));if(K.cancelled)return;try{return K.state=H,m?C.push(K):(m=K,m.active=!0),Cw(K),TS(Lw(K))&&!K.describeFirst&&!K.cursorFn&&C.length<E&&(!K.options.onexecute||K.options.onexecute(WS))}catch(_){return C.length===0&&TS(r$),F$(_),!0}}function Lw(K){if(K.parameters.length>=65534)throw tT.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return K.options.simple?d().Q().str(K.statement.string+d.N).end():K.describeFirst?Buffer.concat([AA(K),fw]):K.prepare?K.prepared?tJ(K):Buffer.concat([AA(K),tJ(K)]):Nw(K)}function AA(K){return Buffer.concat([OA(K.statement.string,K.parameters,K.statement.types,K.statement.name),YK("S",K.statement.name)])}function tJ(K){return Buffer.concat([KK(K.parameters,K.statement.types,K.statement.name,K.cursorName),K.cursorFn?GA("",K.cursorRows):UY])}function Nw(K){return Buffer.concat([OA(K.statement.string,K.parameters,K.statement.types),VY,tJ(K)])}function Cw(K){let _=[],r=[],zT=b1(K,K.strings[0],K.args[0],_,r,T);!K.tagged&&K.args.forEach((vT)=>_W(vT,_,r,T)),K.prepare=T.prepare&&("prepare"in K.options?K.options.prepare:!0),K.string=zT,K.signature=K.prepare&&r+zT,K.onlyDescribe&&delete UT[K.signature],K.parameters=K.parameters||_,K.prepared=K.prepare&&K.signature in UT,K.describeFirst=K.onlyDescribe||_.length&&!K.prepared,K.statement=K.prepared?UT[K.signature]:{string:zT,types:r,name:K.prepare?VS+N++:""},typeof T.debug==="function"&&T.debug(D,zT,_,r)}function TS(K,_){if(xT=xT?Buffer.concat([xT,K]):Buffer.from(K),_||xT.length>=1024)return kA(_);return CT===null&&(CT=setImmediate(kA)),!0}function kA(K){let _=O.write(xT,K);return CT!==null&&clearImmediate(CT),xT=CT=null,_}function xw(){F$(tT.connection("CONNECT_TIMEOUT",T,O)),O.destroy()}async function XA(){if(TS(QY),!await new Promise((_)=>O.once("data",(r)=>_(r[0]===83)))&&J==="prefer")return Lf();O.removeAllListeners(),O=DY.connect({socket:O,servername:Sw.isIP(O.host)?void 0:O.host,...J==="require"||J==="allow"||J==="prefer"?{rejectUnauthorized:!1}:J==="verify-full"?{}:typeof J==="object"?J:{}}),O.on("secureConnect",Lf),O.on("error",Nf),O.on("close",YA),O.on("drain",yA)}function yA(){!m&&$(WS)}function qW(K){if(BT){if(BT.push(K),kT-=K.length,kT>=0)return}a=BT?Buffer.concat(BT,AT-kT):a.length===0?K:Buffer.concat([a,K],a.length+K.length);while(a.length>4){if(AT=a.readUInt32BE(1),AT>=a.length){kT=AT-a.length,BT=[a];break}try{jw(a.subarray(0,AT+1))}catch(_){m&&(m.cursorFn||m.describeFirst)&&TS(r$),F$(_)}a=a.subarray(AT+1),kT=0,BT=null}}async function wA(){if(JS=!1,fT={},O||(O=await Vw()),!O)return;if(h.start(),T.socket)return J?XA():Lf();if(O.on("connect",J?XA:Lf),T.path)return O.connect(T.path);O.ssl=J,O.connect(k[_T],A[_T]),O.host=A[_T],O.port=k[_T],_T=(_T+1)%k.length}function KA(){setTimeout(wA,p?p+VT-$w.now():0)}function Lf(){try{UT={},MT=T.fetch_types,VS=Math.random().toString(36).slice(2),N=1,Z.start(),O.on("data",qW),B&&O.setKeepAlive&&O.setKeepAlive(!0,1000*B);let K=OK();TS(K)}catch(K){Nf(K)}}function Nf(K){if(WS.queue===S.connecting&&T.host[pT+1])return;F$(K);while(C.length)pJ(C.shift(),K)}function F$(K){iT&&(iT.destroy(K),iT=null),m&&pJ(m,K),FS&&(pJ(FS,K),FS=null)}function pJ(K,_){"query"in _||"parameters"in _||Object.defineProperties(_,{stack:{value:_.stack+K.origin.replace(/.*\n/,"\n"),enumerable:T.debug},query:{value:K.string,enumerable:T.debug},parameters:{value:K.parameters,enumerable:T.debug},args:{value:K.args,enumerable:T.debug},types:{value:K.statement&&K.statement.types,enumerable:T.debug}}),K.reject(_)}function ZW(){return I$||(!WS.reserved&&f(WS),!WS.reserved&&!FS&&!m&&C.length===0?(BM(),new Promise((K)=>O&&O.readyState!=="closed"?O.once("close",K):K())):I$=new Promise((K)=>tS=K))}function BM(){if(JS=!0,iT||m||FS||C.length)Nf(tT.connection("CONNECTION_DESTROYED",T));if(clearImmediate(CT),O)O.removeListener("data",qW),O.removeListener("connect",Lf),O.readyState==="open"&&O.end(d().X().end());tS&&(tS(),I$=tS=null)}async function YA(K){if(a=Buffer.alloc(0),kT=0,BT=null,clearImmediate(CT),O.removeListener("data",qW),O.removeListener("connect",Lf),U.cancel(),Z.cancel(),h.cancel(),O.removeAllListeners(),O=null,FS)return KA();!K&&(m||C.length)&&Nf(tT.connection("CONNECTION_CLOSED",T,O)),p=$w.now(),K&&T.shared.retries++,VT=(typeof L==="function"?L(T.shared.retries):L)*1000,M(WS,tT.connection("CONNECTION_CLOSED",T,O))}function jw(K,_=K[0]){(_===68?Iw:_===100?JK:_===65?sw:_===83?bw:_===90?qw:_===67?Zw:_===50?RA:_===49?mw:_===116?hw:_===84?vw:_===82?Pw:_===110?pw:_===75?iw:_===69?aw:_===115?TK:_===51?SK:_===71?$K:_===78?WK:_===72?fK:_===99?FK:_===73?AK:_===86?kK:_===118?XK:_===87?MK:yK)(K)}function Iw(K){let _=7,r,zT,vT,AS=m.isRaw?new Array(m.statement.columns.length):{};for(let YS=0;YS<m.statement.columns.length;YS++)zT=m.statement.columns[YS],r=K.readInt32BE(_),_+=4,vT=r===-1?null:m.isRaw===!0?K.subarray(_,_+=r):zT.parser===void 0?K.toString("utf8",_,_+=r):zT.parser.array===!0?zT.parser(K.toString("utf8",_+1,_+=r)):zT.parser(K.toString("utf8",_,_+=r)),m.isRaw?AS[YS]=m.isRaw===!0?vT:w.value.from?w.value.from(vT,zT):vT:AS[zT.name]=w.value.from?w.value.from(vT,zT):vT;m.forEachFn?m.forEachFn(w.row.from?w.row.from(AS):AS,P):P[oT++]=w.row.from?w.row.from(AS):AS}function bw(K){let[_,r]=K.toString("utf8",5,K.length-1).split(d.N);if(fT[_]=r,T.parameters[_]!==r)T.parameters[_]=r,Q&&Q(_,r)}function qw(K){if(m&&m.options.simple&&m.resolve(gS||P),m=gS=null,P=new Qf,h.cancel(),FS){if(b){if(!fT.in_hot_standby||!fT.default_transaction_read_only)return rw();else if(dw(b,fT))return BM()}if(MT)return FS===!0&&(FS=null),lw();FS!==!0&&VM(FS),T.shared.retries=pT=0,FS=null;return}while(C.length&&(m=C.shift())&&(m.active=!0,m.cancelled))Jw(T).cancel(m.state,m.cancelled.resolve,m.cancelled.reject);if(m)return;WS.reserved?!WS.reserved.release&&K[5]===73?I$?BM():(WS.reserved=null,$(WS)):WS.reserved():I$?BM():$(WS)}function Zw(K){oT=0;for(let _=K.length-1;_>0;_--){if(K[_]===32&&K[_+1]<58&&P.count===null)P.count=+K.toString("utf8",_+1,K.length-1);if(K[_-1]>=65){P.command=K.toString("utf8",5,_),P.state=H;break}}if(UM&&(UM(),UM=null),P.command==="BEGIN"&&F!==1&&!WS.reserved)return F$(tT.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"));if(m.options.simple)return RA();if(m.cursorFn)P.count&&m.cursorFn(P),TS(r$);m.resolve(P)}function mw(){m.parsing=!1}function RA(){!P.statement&&(P.statement=m.statement),P.columns=m.statement.columns}function hw(K){let _=K.readUInt16BE(5);for(let r=0;r<_;++r)!m.statement.types[r]&&(m.statement.types[r]=K.readUInt32BE(7+r*4));m.prepare&&(UT[m.signature]=m.statement),m.describeFirst&&!m.onlyDescribe&&(TS(tJ(m)),m.describeFirst=!1)}function vw(K){if(P.command)gS=gS||[P],gS.push(P=new Qf),P.count=null,m.statement.columns=null;let _=K.readUInt16BE(5),r=7,zT;m.statement.columns=Array(_);for(let vT=0;vT<_;++vT){zT=r;while(K[r++]!==0);let AS=K.readUInt32BE(r),YS=K.readUInt16BE(r+4),b$=K.readUInt32BE(r+6);m.statement.columns[vT]={name:w.column.from?w.column.from(K.toString("utf8",zT,r-1)):K.toString("utf8",zT,r-1),parser:y[b$],table:AS,number:YS,type:b$},r+=18}if(P.statement=m.statement,m.onlyDescribe)return m.resolve(m.statement),TS(r$)}async function Pw(K,_=K.readUInt32BE(5)){(_===3?nw:_===5?cw:_===10?ow:_===11?gw:_===12?tw:_!==0?wK:HM)(K,_)}async function nw(){let K=await mW();TS(d().p().str(K).z(1).end())}async function cw(K){let _="md5"+await Mw(Buffer.concat([Buffer.from(await Mw(await mW()+W)),K.subarray(9)]));TS(d().p().str(_).z(1).end())}async function ow(){J$=(await PJ.randomBytes(18)).toString("base64"),d().p().str("SCRAM-SHA-256"+d.N);let K=d.i;TS(d.inc(4).str("n,,n=*,r="+J$).i32(d.i-K-4,K).end())}async function gw(K){let _=K.toString("utf8",9).split(",").reduce((YS,b$)=>(YS[b$[0]]=b$.slice(2),YS),{}),r=await PJ.pbkdf2Sync(await mW(),Buffer.from(_.s,"base64"),parseInt(_.i),32,"sha256"),zT=await EW(r,"Client Key"),vT="n=*,r="+J$+",r="+_.r+",s="+_.s+",i="+_.i+",c=biws,r="+_.r;bT=(await EW(await EW(r,"Server Key"),vT)).toString("base64");let AS="c=biws,r="+_.r+",p="+CY(zT,Buffer.from(await EW(await NY(zT),vT))).toString("base64");TS(d().p().str(AS).end())}function tw(K){if(K.toString("utf8",9).split(d.N,1)[0].slice(2)===bT)return;F$(tT.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),O.destroy()}function mW(){return Promise.resolve(typeof T.pass==="function"?T.pass():T.pass)}function pw(){if(P.statement=m.statement,P.statement.columns=[],m.onlyDescribe)return m.resolve(m.statement),TS(r$)}function iw(K){H.pid=K.readUInt32BE(5),H.secret=K.readUInt32BE(9)}async function lw(){MT=!1,(await new oS([`
|
|
13
13
|
select b.oid, b.typarray
|
|
14
14
|
from pg_catalog.pg_type a
|
|
15
15
|
left join pg_catalog.pg_type b on b.oid = a.typelem
|
|
@@ -35,4 +35,4 @@ var GK=Object.create;var{getPrototypeOf:zK,defineProperty:hW,getOwnPropertyNames
|
|
|
35
35
|
hash text NOT NULL,
|
|
36
36
|
created_at bigint
|
|
37
37
|
)
|
|
38
|
-
`;await S.execute(R`CREATE SCHEMA IF NOT EXISTS ${R.identifier(M)}`),await S.execute(J);let W=(await S.all(R`select id, hash, created_at from ${R.identifier(M)}.${R.identifier(f)} order by created_at desc limit 1`))[0];await S.transaction(async(A)=>{for await(let k of T)if(!W||Number(W.created_at)<k.folderMillis){for(let X of k.sql)await A.execute(R.raw(X));await A.execute(R`insert into ${R.identifier(M)}.${R.identifier(f)} ("hash", "created_at") values(${k.hash}, ${k.folderMillis})`)}})}escapeName(T){return`"${T}"`}escapeParam(T){return`\$${T+1}`}escapeString(T){return`'${T.replace(/'/g,"''")}'`}buildWithCTE(T){if(!T?.length)return;let S=[R`with `];for(let[$,f]of T.entries())if(S.push(R`${R.identifier(f._.alias)} as (${f._.sql})`),$<T.length-1)S.push(R`, `);return S.push(R` `),R.join(S)}buildDeleteQuery({table:T,where:S,returning:$,withList:f}){let M=this.buildWithCTE(f),J=$?R` returning ${this.buildSelection($,{isSingleTable:!0})}`:void 0,F=S?R` where ${S}`:void 0;return R`${M}delete from ${T}${F}${J}`}buildUpdateSet(T,S){let $=T[c.Symbol.Columns],f=Object.keys($).filter((J)=>S[J]!==void 0||$[J]?.onUpdateFn!==void 0),M=f.length;return R.join(f.flatMap((J,F)=>{let W=$[J],A=S[J]??R.param(W.onUpdateFn(),W),k=R`${R.identifier(this.casing.getColumnCasing(W))} = ${A}`;if(F<M-1)return[k,R.raw(", ")];return[k]}))}buildUpdateQuery({table:T,set:S,where:$,returning:f,withList:M}){let J=this.buildWithCTE(M),F=this.buildUpdateSet(T,S),W=f?R` returning ${this.buildSelection(f,{isSingleTable:!0})}`:void 0,A=$?R` where ${$}`:void 0;return R`${J}update ${T} set ${F}${A}${W}`}buildSelection(T,{isSingleTable:S=!1}={}){let $=T.length,f=T.flatMap(({field:M},J)=>{let F=[];if(V(M,t.Aliased)&&M.isSelectionField)F.push(R.identifier(M.fieldAlias));else if(V(M,t.Aliased)||V(M,t)){let W=V(M,t.Aliased)?M.sql:M;if(S)F.push(new t(W.queryChunks.map((A)=>{if(V(A,q))return R.identifier(this.casing.getColumnCasing(A));return A})));else F.push(W);if(V(M,t.Aliased))F.push(R` as ${R.identifier(M.fieldAlias)}`)}else if(V(M,NT))if(S)F.push(R.identifier(this.casing.getColumnCasing(M)));else F.push(M);if(J<$-1)F.push(R`, `);return F});return R.join(f)}buildSelectQuery({withList:T,fields:S,fieldsFlat:$,where:f,having:M,table:J,joins:F,orderBy:W,groupBy:A,limit:k,offset:X,lockingClause:y,distinct:w,setOperators:G}){let z=$??nS(S);for(let MT of z)if(V(MT.field,NT)&&PS(MT.field.table)!==(V(J,fS)?J._.alias:V(J,nJ)?J[hT].name:V(J,t)?void 0:PS(J))&&!((fT)=>F?.some(({alias:UT})=>UT===(fT[c.Symbol.IsAlias]?PS(fT):fT[c.Symbol.BaseName])))(MT.field.table)){let fT=PS(MT.field.table);throw new Error(`Your "${MT.path.join("->")}" field references a column "${fT}"."${MT.field.name}", but the table "${fT}" is not part of the query! Did you forget to join it?`)}let Q=!F||F.length===0,E=this.buildWithCTE(T),B;if(w)B=w===!0?R` distinct`:R` distinct on (${R.join(w.on,R`, `)})`;let L=this.buildSelection(z,{isSingleTable:Q}),b=(()=>{if(V(J,c)&&J[c.Symbol.OriginalName]!==J[c.Symbol.Name]){let MT=R`${R.identifier(J[c.Symbol.OriginalName])}`;if(J[c.Symbol.Schema])MT=R`${R.identifier(J[c.Symbol.Schema])}.${MT}`;return R`${MT} ${R.identifier(J[c.Symbol.Name])}`}return J})(),C=[];if(F)for(let[MT,fT]of F.entries()){if(MT===0)C.push(R` `);let UT=fT.table,VS=fT.lateral?R` lateral`:void 0;if(V(UT,cS)){let N=UT[cS.Symbol.Name],p=UT[cS.Symbol.Schema],kT=UT[cS.Symbol.OriginalName],_T=N===kT?void 0:fT.alias;C.push(R`${R.raw(fT.joinType)} join${VS} ${p?R`${R.identifier(p)}.`:void 0}${R.identifier(kT)}${_T&&R` ${R.identifier(_T)}`} on ${fT.on}`)}else if(V(UT,ES)){let N=UT[hT].name,p=UT[hT].schema,kT=UT[hT].originalName,_T=N===kT?void 0:fT.alias;C.push(R`${R.raw(fT.joinType)} join${VS} ${p?R`${R.identifier(p)}.`:void 0}${R.identifier(kT)}${_T&&R` ${R.identifier(_T)}`} on ${fT.on}`)}else C.push(R`${R.raw(fT.joinType)} join${VS} ${UT} on ${fT.on}`);if(MT<F.length-1)C.push(R` `)}let D=R.join(C),H=f?R` where ${f}`:void 0,U=M?R` having ${M}`:void 0,Z;if(W&&W.length>0)Z=R` order by ${R.join(W,R`, `)}`;let h;if(A&&A.length>0)h=R` group by ${R.join(A,R`, `)}`;let O=typeof k==="object"||typeof k==="number"&&k>=0?R` limit ${k}`:void 0,o=X?R` offset ${X}`:void 0,P=R.empty();if(y){let MT=R` for ${R.raw(y.strength)}`;if(y.config.of)MT.append(R` of ${R.join(Array.isArray(y.config.of)?y.config.of:[y.config.of],R`, `)}`);if(y.config.noWait)MT.append(R` no wait`);else if(y.config.skipLocked)MT.append(R` skip locked`);P.append(MT)}let a=R`${E}select${B} ${L} from ${b}${D}${H}${h}${U}${Z}${O}${o}${P}`;if(G.length>0)return this.buildSetOperations(a,G);return a}buildSetOperations(T,S){let[$,...f]=S;if(!$)throw new Error("Cannot pass undefined values to any set operator");if(f.length===0)return this.buildSetOperationQuery({leftSelect:T,setOperator:$});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:T,setOperator:$}),f)}buildSetOperationQuery({leftSelect:T,setOperator:{type:S,isAll:$,rightSelect:f,limit:M,orderBy:J,offset:F}}){let W=R`(${T.getSQL()}) `,A=R`(${f.getSQL()})`,k;if(J&&J.length>0){let G=[];for(let z of J)if(V(z,q))G.push(R.identifier(z.name));else if(V(z,t)){for(let Q=0;Q<z.queryChunks.length;Q++){let E=z.queryChunks[Q];if(V(E,q))z.queryChunks[Q]=R.identifier(E.name)}G.push(R`${z}`)}else G.push(R`${z}`);k=R` order by ${R.join(G,R`, `)} `}let X=typeof M==="object"||typeof M==="number"&&M>=0?R` limit ${M}`:void 0,y=R.raw(`${S} ${$?"all ":""}`),w=F?R` offset ${F}`:void 0;return R`${W}${y}${A}${k}${X}${w}`}buildInsertQuery({table:T,values:S,onConflict:$,returning:f,withList:M}){let J=[],F=T[c.Symbol.Columns],W=Object.entries(F).filter(([G,z])=>!z.shouldDisableInsert()),A=W.map(([,G])=>R.identifier(this.casing.getColumnCasing(G)));for(let[G,z]of S.entries()){let Q=[];for(let[E,B]of W){let L=z[E];if(L===void 0||V(L,IS)&&L.value===void 0)if(B.defaultFn!==void 0){let b=B.defaultFn(),C=V(b,t)?b:R.param(b,B);Q.push(C)}else if(!B.default&&B.onUpdateFn!==void 0){let b=B.onUpdateFn(),C=V(b,t)?b:R.param(b,B);Q.push(C)}else Q.push(R`default`);else Q.push(L)}if(J.push(Q),G<S.length-1)J.push(R`, `)}let k=this.buildWithCTE(M),X=R.join(J),y=f?R` returning ${this.buildSelection(f,{isSingleTable:!0})}`:void 0,w=$?R` on conflict ${$}`:void 0;return R`${k}insert into ${T} ${A} values ${X}${w}${y}`}buildRefreshMaterializedViewQuery({view:T,concurrently:S,withNoData:$}){let f=S?R` concurrently`:void 0,M=$?R` with no data`:void 0;return R`refresh materialized view${f} ${T}${M}`}prepareTyping(T){if(V(T,WW)||V(T,FW))return"json";else if(V(T,AW))return"decimal";else if(V(T,kW))return"time";else if(V(T,XW)||V(T,yW))return"timestamp";else if(V(T,fW)||V(T,MW))return"date";else if(V(T,wW))return"uuid";else return"none"}sqlToQuery(T,S){return T.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:S})}buildRelationalQueryWithoutPK({fullSchema:T,schema:S,tableNamesMap:$,table:f,tableConfig:M,queryConfig:J,tableAlias:F,nestedQueryRelation:W,joinOn:A}){let k=[],X,y,w=[],G,z=[];if(J===!0)k=Object.entries(M.columns).map(([B,L])=>({dbKey:L.name,tsKey:B,field:K$(L,F),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let E=Object.fromEntries(Object.entries(M.columns).map(([H,U])=>[H,K$(U,F)]));if(J.where){let H=typeof J.where==="function"?J.where(E,h8()):J.where;G=H&&xJ(H,F)}let B=[],L=[];if(J.columns){let H=!1;for(let[U,Z]of Object.entries(J.columns)){if(Z===void 0)continue;if(U in M.columns){if(!H&&Z===!0)H=!0;L.push(U)}}if(L.length>0)L=H?L.filter((U)=>J.columns?.[U]===!0):Object.keys(M.columns).filter((U)=>!L.includes(U))}else L=Object.keys(M.columns);for(let H of L){let U=M.columns[H];B.push({tsKey:H,value:U})}let b=[];if(J.with)b=Object.entries(J.with).filter((H)=>!!H[1]).map(([H,U])=>({tsKey:H,queryConfig:U,relation:M.relations[H]}));let C;if(J.extras){C=typeof J.extras==="function"?J.extras(E,{sql:R}):J.extras;for(let[H,U]of Object.entries(C))B.push({tsKey:H,value:_1(U,F)})}for(let{tsKey:H,value:U}of B)k.push({dbKey:V(U,t.Aliased)?U.fieldAlias:M.columns[H].name,tsKey:H,field:V(U,NT)?K$(U,F):U,relationTableTsKey:void 0,isJson:!1,selection:[]});let D=typeof J.orderBy==="function"?J.orderBy(E,v8()):J.orderBy??[];if(!Array.isArray(D))D=[D];w=D.map((H)=>{if(V(H,NT))return K$(H,F);return xJ(H,F)}),X=J.limit,y=J.offset;for(let{tsKey:H,queryConfig:U,relation:Z}of b){let h=n8(S,$,Z),O=_f(Z.referencedTable),o=$[O],P=`${F}_${H}`,a=jJ(...h.fields.map((UT,VS)=>TW(K$(h.references[VS],P),K$(UT,F)))),MT=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:S,tableNamesMap:$,table:T[o],tableConfig:S[o],queryConfig:V(Z,d$)?U===!0?{limit:1}:{...U,limit:1}:U,tableAlias:P,joinOn:a,nestedQueryRelation:Z}),fT=R`${R.identifier(P)}.${R.identifier("data")}`.as(H);z.push({on:R`true`,table:new fS(MT.sql,{},P),alias:P,joinType:"left",lateral:!0}),k.push({dbKey:H,tsKey:H,field:fT,relationTableTsKey:o,isJson:!0,selection:MT.selection})}}if(k.length===0)throw new sF({message:`No fields selected for table "${M.tsName}" ("${F}")`});let Q;if(G=jJ(A,G),W){let E=R`json_build_array(${R.join(k.map(({field:b,tsKey:C,isJson:D})=>D?R`${R.identifier(`${F}_${C}`)}.${R.identifier("data")}`:V(b,t.Aliased)?b.sql:b),R`, `)})`;if(V(W,qJ))E=R`coalesce(json_agg(${E}${w.length>0?R` order by ${R.join(w,R`, `)}`:void 0}), '[]'::json)`;let B=[{dbKey:"data",tsKey:"data",field:E.as("data"),isJson:!0,relationTableTsKey:M.tsName,selection:k}];if(X!==void 0||y!==void 0||w.length>0)Q=this.buildSelectQuery({table:eF(f,F),fields:{},fieldsFlat:[{path:[],field:R.raw("*")}],where:G,limit:X,offset:y,orderBy:w,setOperators:[]}),G=void 0,X=void 0,y=void 0,w=[];else Q=eF(f,F);Q=this.buildSelectQuery({table:V(Q,cS)?Q:new fS(Q,{},F),fields:{},fieldsFlat:B.map(({field:b})=>({path:[],field:V(b,NT)?K$(b,F):b})),joins:z,where:G,limit:X,offset:y,orderBy:w,setOperators:[]})}else Q=this.buildSelectQuery({table:eF(f,F),fields:{},fieldsFlat:k.map(({field:E})=>({path:[],field:V(E,NT)?K$(E,F):E})),joins:z,where:G,limit:X,offset:y,orderBy:w,setOperators:[]});return{tableTsKey:M.tsName,sql:Q,selection:k}}}class US{static[Y]="SelectionProxyHandler";config;constructor(T){this.config={...T}}get(T,S){if(S==="_")return{...T._,selectedFields:new Proxy(T._.selectedFields,this)};if(S===hT)return{...T[hT],selectedFields:new Proxy(T[hT].selectedFields,this)};if(typeof S==="symbol")return T[S];let f=(V(T,fS)?T._.selectedFields:V(T,ES)?T[hT].selectedFields:T)[S];if(V(f,t.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!f.isSelectionField)return f.sql;let M=f.clone();return M.isSelectionField=!0,M}if(V(f,t)){if(this.config.sqlBehavior==="sql")return f;throw new Error(`You tried to reference "${S}" 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(V(f,NT)){if(this.config.alias)return new Proxy(f,new GM(new Proxy(f.table,new CJ(this.config.alias,this.config.replaceOriginalName??!1))));return f}if(typeof f!=="object"||f===null)return f;return new Proxy(f,new US(this.config))}}class l1{static[Y]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class zS{static[Y]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(T){if(this.fields=T.fields,this.session=T.session,this.dialect=T.dialect,T.withList)this.withList=T.withList;this.distinct=T.distinct}from(T){let S=!!this.fields,$;if(this.fields)$=this.fields;else if(V(T,fS))$=Object.fromEntries(Object.keys(T._.selectedFields).map((f)=>[f,T[f]]));else if(V(T,nJ))$=T[hT].selectedFields;else if(V(T,t))$={};else $=cy(T);return new u1({table:T,fields:$,isPartialSelect:S,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}}class kw extends l1{static[Y]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:S,isPartialSelect:$,session:f,dialect:M,withList:J,distinct:F}){super();this.config={withList:J,table:T,fields:{...S},distinct:F,setOperators:[]},this.isPartialSelect=$,this.session=f,this.dialect=M,this._={selectedFields:S},this.tableName=U1(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T){return(S,$)=>{let f=this.tableName,M=U1(S);if(typeof M==="string"&&this.config.joins?.some((J)=>J.alias===M))throw new Error(`Alias "${M}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof f==="string")this.config.fields={[f]:this.config.fields};if(typeof M==="string"&&!V(S,t)){let J=V(S,fS)?S._.selectedFields:V(S,ES)?S[hT].selectedFields:S[c.Symbol.Columns];this.config.fields[M]=J}}if(typeof $==="function")$=$(new Proxy(this.config.fields,new US({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:$,table:S,joinType:T,alias:M}),typeof M==="string")switch(T){case"left":{this.joinsNotNullableMap[M]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([J])=>[J,!1])),this.joinsNotNullableMap[M]=!0;break}case"inner":{this.joinsNotNullableMap[M]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([J])=>[J,!1])),this.joinsNotNullableMap[M]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(T,S){return($)=>{let f=typeof $==="function"?$(pY()):$;if(!Q1(this.getSelectedFields(),f.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:T,isAll:S,rightSelect:f}),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(T){return this.config.setOperators.push(...T),this}where(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new US({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=T,this}having(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new US({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=T,this}groupBy(...T){if(typeof T[0]==="function"){let S=T[0](new Proxy(this.config.fields,new US({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(S)?S:[S]}else this.config.groupBy=T;return this}orderBy(...T){if(typeof T[0]==="function"){let S=T[0](new Proxy(this.config.fields,new US({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),$=Array.isArray(S)?S:[S];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=$;else this.config.orderBy=$}else{let S=T;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=S;else this.config.orderBy=S}return this}limit(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=T;else this.config.limit=T;return this}offset(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=T;else this.config.offset=T;return this}for(T,S={}){return this.config.lockingClause={strength:T,config:S},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:T,...S}=this.dialect.sqlToQuery(this.getSQL());return S}as(T){return new Proxy(new fS(this.getSQL(),this.config.fields,T),new US({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new US({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class u1 extends kw{static[Y]="PgSelect";_prepare(T){let{session:S,config:$,dialect:f,joinsNotNullableMap:M}=this;if(!S)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return QT.startActiveSpan("drizzle.prepareQuery",()=>{let J=nS($.fields),F=S.prepareQuery(f.sqlToQuery(this.getSQL()),J,T,!0);return F.joinsNotNullableMap=M,F})}prepare(T){return this._prepare(T)}execute=(T)=>{return QT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T)})}}ny(u1,[GS]);function EM(T,S){return($,f,...M)=>{let J=[f,...M].map((F)=>({type:T,isAll:S,rightSelect:F}));for(let F of J)if(!Q1($.getSelectedFields(),F.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return $.addSetOperators(J)}}var pY=()=>({union:iY,unionAll:lY,intersect:uY,intersectAll:dY,except:rY,exceptAll:aY}),iY=EM("union",!1),lY=EM("union",!0),uY=EM("intersect",!1),dY=EM("intersect",!0),rY=EM("except",!1),aY=EM("except",!0);class d1{static[Y]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=V(T,Uf)?T:void 0,this.dialectConfig=V(T,Uf)?void 0:T}$with(T){let S=this;return{as($){if(typeof $==="function")$=$(S);return new Proxy(new NJ($.getSQL(),$.getSelectedFields(),T,!0),new US({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}}with(...T){let S=this;function $(J){return new zS({fields:J??void 0,session:void 0,dialect:S.getDialect(),withList:T})}function f(J){return new zS({fields:J??void 0,session:void 0,dialect:S.getDialect(),distinct:!0})}function M(J,F){return new zS({fields:F??void 0,session:void 0,dialect:S.getDialect(),distinct:{on:J}})}return{select:$,selectDistinct:f,selectDistinctOn:M}}select(T){return new zS({fields:T??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(T){return new zS({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(T,S){return new zS({fields:S??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:T}})}getDialect(){if(!this.dialect)this.dialect=new Uf(this.dialectConfig);return this.dialect}}class r1 extends GS{constructor(T,S,$){super();this.session=S,this.dialect=$,this.config={view:T}}static[Y]="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:T,...S}=this.dialect.sqlToQuery(this.getSQL());return S}_prepare(T){return QT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,T,!0)})}prepare(T){return this._prepare(T)}execute=(T)=>{return QT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T)})}}class LW{constructor(T,S,$,f){this.table=T,this.session=S,this.dialect=$,this.withList=f}static[Y]="PgUpdateBuilder";set(T){return new Xw(this.table,$W(this.table,T),this.session,this.dialect,this.withList)}}class Xw extends GS{constructor(T,S,$,f,M){super();this.session=$,this.dialect=f,this.config={set:S,table:T,withList:M}}static[Y]="PgUpdate";config;where(T){return this.config.where=T,this}returning(T=this.config.table[c.Symbol.Columns]){return this.config.returning=nS(T),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:T,...S}=this.dialect.sqlToQuery(this.getSQL());return S}_prepare(T){return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0)}prepare(T){return this._prepare(T)}execute=(T)=>{return this._prepare().execute(T)};$dynamic(){return this}}class cJ extends t{constructor(T){super(cJ.buildEmbeddedCount(T.source,T.filters).queryChunks);this.params=T,this.mapWith(Number),this.session=T.session,this.sql=cJ.buildCount(T.source,T.filters)}sql;static[Y]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(T,S){return R`(select count(*) from ${T}${R.raw(" where ").if(S)}${S})`}static buildCount(T,S){return R`select count(*) as count from ${T}${R.raw(" where ").if(S)}${S};`}then(T,S){return Promise.resolve(this.session.count(this.sql)).then(T,S)}catch(T){return this.then(void 0,T)}finally(T){return this.then((S)=>{return T?.(),S},(S)=>{throw T?.(),S})}}class e1{constructor(T,S,$,f,M,J,F){this.fullSchema=T,this.schema=S,this.tableNamesMap=$,this.table=f,this.tableConfig=M,this.dialect=J,this.session=F}static[Y]="PgRelationalQueryBuilder";findMany(T){return new a1(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?T:{},"many")}findFirst(T){return new a1(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?{...T,limit:1}:{limit:1},"first")}}class a1 extends GS{constructor(T,S,$,f,M,J,F,W,A){super();this.fullSchema=T,this.schema=S,this.tableNamesMap=$,this.table=f,this.tableConfig=M,this.dialect=J,this.session=F,this.config=W,this.mode=A}static[Y]="PgRelationalQuery";_prepare(T){return QT.startActiveSpan("drizzle.prepareQuery",()=>{let{query:S,builtQuery:$}=this._toSQL();return this.session.prepareQuery($,void 0,T,!0,(f,M)=>{let J=f.map((F)=>KW(this.schema,this.tableConfig,F,S.selection,M));if(this.mode==="first")return J[0];return J})})}prepare(T){return this._prepare(T)}_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 T=this._getQuery(),S=this.dialect.sqlToQuery(T.sql);return{query:T,builtQuery:S}}toSQL(){return this._toSQL().builtQuery}execute(){return QT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute()})}}class s1 extends GS{constructor(T,S,$,f){super();this.execute=T,this.sql=S,this.query=$,this.mapBatchResult=f}static[Y]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(T,S){return S?this.mapBatchResult(T):T}_prepare(){return this}isResponseInArrayMode(){return!1}}class oJ{constructor(T,S,$){if(this.dialect=T,this.session=S,this._=$?{schema:$.schema,fullSchema:$.fullSchema,tableNamesMap:$.tableNamesMap,session:S}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:S},this.query={},this._.schema)for(let[f,M]of Object.entries(this._.schema))this.query[f]=new e1($.fullSchema,this._.schema,this._.tableNamesMap,$.fullSchema[f],M,T,S)}static[Y]="PgDatabase";query;$with(T){let S=this;return{as($){if(typeof $==="function")$=$(new d1(S.dialect));return new Proxy(new NJ($.getSQL(),$.getSelectedFields(),T,!0),new US({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}}$count(T,S){return new cJ({source:T,filters:S,session:this.session})}with(...T){let S=this;function $(A){return new zS({fields:A??void 0,session:S.session,dialect:S.dialect,withList:T})}function f(A){return new zS({fields:A??void 0,session:S.session,dialect:S.dialect,withList:T,distinct:!0})}function M(A,k){return new zS({fields:k??void 0,session:S.session,dialect:S.dialect,withList:T,distinct:{on:A}})}function J(A){return new LW(A,S.session,S.dialect,T)}function F(A){return new BW(A,S.session,S.dialect,T)}function W(A){return new VW(A,S.session,S.dialect,T)}return{select:$,selectDistinct:f,selectDistinctOn:M,update:J,insert:F,delete:W}}select(T){return new zS({fields:T??void 0,session:this.session,dialect:this.dialect})}selectDistinct(T){return new zS({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(T,S){return new zS({fields:S??void 0,session:this.session,dialect:this.dialect,distinct:{on:T}})}update(T){return new LW(T,this.session,this.dialect)}insert(T){return new BW(T,this.session,this.dialect)}delete(T){return new VW(T,this.session,this.dialect)}refreshMaterializedView(T){return new r1(T,this.session,this.dialect)}execute(T){let S=typeof T==="string"?R.raw(T):T.getSQL(),$=this.dialect.sqlToQuery(S),f=this.session.prepareQuery($,void 0,void 0,!1);return new s1(()=>f.execute(),S,$,(M)=>f.mapResult(M,!0))}transaction(T,S){return this.session.transaction(T,S)}}class yw{constructor(T,S){this.unique=T,this.name=S}static[Y]="PgIndexBuilderOn";on(...T){return new NW(T.map((S)=>{if(V(S,t))return S;S=S;let $=new LJ(S.name,!!S.keyAsName,S.columnType,S.indexConfig);return S.indexConfig=JSON.parse(JSON.stringify(S.defaultConfig)),$}),this.unique,!1,this.name)}onOnly(...T){return new NW(T.map((S)=>{if(V(S,t))return S;S=S;let $=new LJ(S.name,!!S.keyAsName,S.columnType,S.indexConfig);return S.indexConfig=S.defaultConfig,$}),this.unique,!0,this.name)}using(T,...S){return new NW(S.map(($)=>{if(V($,t))return $;$=$;let f=new LJ($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=JSON.parse(JSON.stringify($.defaultConfig)),f}),this.unique,!0,this.name,T)}}class NW{static[Y]="PgIndexBuilder";config;constructor(T,S,$,f,M="btree"){this.config={name:f,columns:T,unique:S,only:$,method:M}}concurrently(){return this.config.concurrently=!0,this}with(T){return this.config.with=T,this}where(T){return this.config.where=T,this}build(T){return new ww(this.config,T)}}class ww{static[Y]="PgIndex";config;constructor(T,S){this.config={...T,table:S}}}function TA(T){return new yw(!0,T)}class SA{constructor(T){this.query=T}getQuery(){return this.query}mapResult(T,S){return T}static[Y]="PgPreparedQuery";joinsNotNullableMap}class $A{constructor(T){this.dialect=T}static[Y]="PgSession";execute(T){return QT.startActiveSpan("drizzle.operation",()=>{return QT.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1)}).execute()})}all(T){return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1).all()}async count(T){let S=await this.execute(T);return Number(S[0].count)}}class fA extends oJ{constructor(T,S,$,f=0){super(T,S,$);this.schema=$,this.nestedIndex=f}static[Y]="PgTransaction";rollback(){throw new H1}getTransactionConfigSQL(T){let S=[];if(T.isolationLevel)S.push(`isolation level ${T.isolationLevel}`);if(T.accessMode)S.push(T.accessMode);if(typeof T.deferrable==="boolean")S.push(T.deferrable?"deferrable":"not deferrable");return R.raw(S.join(" "))}setTransaction(T){return this.session.execute(R`set transaction ${this.getTransactionConfigSQL(T)}`)}}class Kw extends SA{constructor(T,S,$,f,M,J,F){super({sql:S,params:$});this.client=T,this.queryString=S,this.params=$,this.logger=f,this.fields=M,this._isResponseInArrayMode=J,this.customResultMapper=F}static[Y]="PostgresJsPreparedQuery";async execute(T={}){return QT.startActiveSpan("drizzle.execute",async(S)=>{let $=z1(this.params,T);S?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify($)}),this.logger.logQuery(this.queryString,$);let{fields:f,queryString:M,client:J,joinsNotNullableMap:F,customResultMapper:W}=this;if(!f&&!W)return QT.startActiveSpan("drizzle.driver.execute",()=>{return J.unsafe(M,$)});let A=await QT.startActiveSpan("drizzle.driver.execute",()=>{return S?.setAttributes({"drizzle.query.text":M,"drizzle.query.params":JSON.stringify($)}),J.unsafe(M,$).values()});return QT.startActiveSpan("drizzle.mapResponse",()=>{return W?W(A):A.map((k)=>Py(f,k,F))})})}all(T={}){return QT.startActiveSpan("drizzle.execute",async(S)=>{let $=z1(this.params,T);return S?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify($)}),this.logger.logQuery(this.queryString,$),QT.startActiveSpan("drizzle.driver.execute",()=>{return S?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify($)}),this.client.unsafe(this.queryString,$)})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class gJ extends $A{constructor(T,S,$,f={}){super(S);this.client=T,this.schema=$,this.options=f,this.logger=f.logger??new E1}static[Y]="PostgresJsSession";logger;prepareQuery(T,S,$,f,M){return new Kw(this.client,T.sql,T.params,this.logger,S,f,M)}query(T,S){return this.logger.logQuery(T,S),this.client.unsafe(T,S).values()}queryObjects(T,S){return this.client.unsafe(T,S)}transaction(T,S){return this.client.begin(async($)=>{let f=new gJ($,this.dialect,this.schema,this.options),M=new MA(this.dialect,f,this.schema);if(S)await M.setTransaction(S);return T(M)})}}class MA extends fA{constructor(T,S,$,f=0){super(T,S,$,f);this.session=S}static[Y]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint((S)=>{let $=new gJ(S,this.dialect,this.schema,this.session.options),f=new MA(this.dialect,$,this.schema);return T(f)})}}class Yw extends oJ{static[Y]="PostgresJsDatabase"}function QM(T,S={}){let $=(A)=>A;for(let A of["1184","1082","1083","1114"])T.options.parsers[A]=$,T.options.serializers[A]=$;T.options.serializers["114"]=$,T.options.serializers["3802"]=$;let f=new Uf({casing:S.casing}),M;if(S.logger===!0)M=new D1;else if(S.logger!==!1)M=S.logger;let J;if(S.schema){let A=P8(S.schema,c8);J={fullSchema:S.schema,schema:A.tables,tableNamesMap:A.tableNamesMap}}let F=new gJ(T,f,J,{logger:M}),W=new Yw(f,F,J);return W.$client=T,W}function CW(...T){if(typeof T[0]==="string"){let S=DM(T[0]);return QM(S,T[1])}if(oy(T[0])){let{connection:S,client:$,...f}=T[0];if($)return QM($,f);if(typeof S==="object"&&S.url!==void 0){let{url:J,...F}=S,W=DM(J,F);return QM(W,f)}let M=DM(S);return QM(M,f)}return QM(T[0],T[1])}((T)=>{function S($){return QM({},$)}T.mock=S})(CW||(CW={}));function Rw(T){let S=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[H,U]of Object.entries(S))if(U==="")delete S[H]}if(!!T.skipValidation)return S;let M=typeof T.client==="object"?T.client:{},J=typeof T.server==="object"?T.server:{},F=typeof T.shared==="object"?T.shared:{},W=dM(M),A=dM(J),k=dM(F),X=T.isServer??(typeof window==="undefined"||("Deno"in window)),y=W.merge(k),w=A.merge(k).merge(W),G=X?w.safeParse(S):y.safeParse(S),z=T.onValidationError??((H)=>{throw console.error("\u274C Invalid environment variables:",H.flatten().fieldErrors),new Error("Invalid environment variables")}),Q=T.onInvalidAccess??((H)=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(G.success===!1)return z(G.error);let E=(H)=>{if(!T.clientPrefix)return!0;return!H.startsWith(T.clientPrefix)&&!(H in k.shape)},B=(H)=>{return X||!E(H)},L=(H)=>{return H==="__esModule"||H==="$$typeof"},b=(T.extends??[]).reduce((H,U)=>{return Object.assign(H,U)},{}),C=Object.assign(G.data,b);return new Proxy(C,{get(H,U){if(typeof U!=="string")return;if(L(U))return;if(!B(U))return Q(U);return Reflect.get(H,U)}})}var eY="__vite_start_time"in globalThis,sY=typeof window!=="undefined",km="vitest"in globalThis,j$=Rw({isServer:!eY&&!sY,server:{CI:HT.string().transform((T)=>!0).optional(),POSTGRES_USER:HT.string(),POSTGRES_PASSWORD:HT.string(),POSTGRES_DATABASE:HT.string(),POSTGRES_HOST:HT.string(),POSTGRES_PORT:HT.string().transform((T)=>Number.parseInt(T,10)),BACKEND_PORT:HT.string().transform((T)=>Number.parseInt(T,10)),RUN_WORKERS_FROM_SOURCE:HT.union([HT.literal("true"),HT.literal("false")]).optional().transform((T)=>T==="true"),FRONTEND_PORT:HT.string().transform((T)=>Number.parseInt(T,10)),FRONTEND_ORIGINS:HT.string().transform((T)=>JSON.parse(T)).pipe(HT.array(HT.string())),OPENAI_API_KEY:HT.string().optional()},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:HT.string(),VITE_USE_SELF_SIGNED_CERTIFICATE:HT.union([HT.literal("true"),HT.literal("false")]).optional().transform((T)=>T==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var FA={};DK(FA,{users:()=>Vf,userChanges:()=>S7,untrackedUserColumnNames:()=>T7,twoFactorMethod:()=>_w,trackedUserColumnName:()=>zw,trackableUserColumnNames:()=>Gw,role:()=>Ow,players:()=>JA,passwordResetAttempts:()=>f7,loginHistory:()=>$7,games:()=>xW,banishedIps:()=>jW});var Ow=dF("role",["admin","user"]),Vf=u$("users",{id:bS().primaryKey().defaultRandom(),username:MS({length:16}).notNull(),email:MS({length:254}).notNull(),hash:MS({length:64}).notNull(),salt:MS({length:36}).notNull(),createdAt:M$({withTimezone:!0}).notNull().defaultNow(),createdIp:MS({length:45}).notNull(),isActive:IJ().notNull().default(!1),verifiedAt:M$({withTimezone:!0}),userRole:Ow().default("user")},(T)=>({usersUsernameUnique:TA().on(T.username),usersEmailUnique:TA().on(T.email)})),T7=["id","createdAt","createdIp","isActive","salt","verifiedAt"],Gw=["username","email","hash","userRole"],zw=dF("trackedUserColumnName",Gw),S7=u$("userChanges",{id:bS().primaryKey().defaultRandom(),userId:bS().notNull().references(()=>Vf.id),changedAt:M$({withTimezone:!0}).notNull().defaultNow(),changedIp:MS({length:45}).notNull(),changedColumn:zw().notNull(),oldValue:MS({length:255}),newValue:MS({length:255})}),xW=u$("games",{id:bS("id").primaryKey().defaultRandom()}),JA=u$("players",{userId:bS().notNull().references(()=>Vf.id),gameId:bS().notNull().references(()=>xW.id),score:JW().notNull()},(T)=>({pk:q8({columns:[T.userId,T.gameId]})})),$7=u$("loginHistory",{id:bS().primaryKey().defaultRandom(),userId:bS().references(()=>Vf.id),loginTime:M$({withTimezone:!0}).notNull().defaultNow(),ipAddress:MS({length:45}).notNull(),userAgent:MS({length:1024}),successful:IJ().notNull().default(!1)}),_w=dF("twoFactorMethod",["email","phone"]),f7=u$("passwordResetAttempts",{id:bS().primaryKey().defaultRandom(),userId:bS().notNull().references(()=>Vf.id),requestedIp:MS({length:45}).notNull(),requestedAt:M$({withTimezone:!0}).notNull().defaultNow(),succeededIp:MS({length:45}),succeededAt:M$({withTimezone:!0}),verificationMethod:_w().notNull()}),jW=u$("banishedIps",{ip:MS({length:45}).primaryKey(),reason:MS({length:2048}).notNull(),banishedAt:M$({withTimezone:!0}).notNull().defaultNow(),banishedUntil:M$({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class WA{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(M7.resolve(__dirname,"notify_update.sql"));let T=[PS(Vf),PS(xW),PS(JA)];await this.sql`SELECT create_notify_triggers(${this.sql.array(T)})`,await this.sql.listen("table_update",(S)=>{let $=S.split(","),f=$[0],M=$[1],J=`${f}("${M}")`;if(this.observers.has(J))this.observers.get(J).next(J)})}constructor(T={host:j$.POSTGRES_HOST,port:j$.POSTGRES_PORT,user:j$.POSTGRES_USER,password:j$.POSTGRES_PASSWORD,database:j$.POSTGRES_DATABASE}){this.options=T,this.sql=DM(T),this.drizzle=CW(this.sql,{schema:FA,logger:!0})}observe(T,S){if(!this.observers.has(T))this.observers.set(T,new JT);this.observers.get(T).subscribe("SINGLETON",S)}}import*as IW from"fs";import*as Hw from"readline";function J7(T){let $=T.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(f,M,J,F,W)=>{let k={Jan:"01",Feb:"02",Mar:"03",Apr:"04",May:"05",Jun:"06",Jul:"07",Aug:"08",Sep:"09",Oct:"10",Nov:"11",Dec:"12"}[J];return`${F}-${k}-${M}T${W}`});return new Date($)}async function Dw(T,S="/var/log/nginx/access.log",$=new Date){let f=new Map;if(!IW.existsSync(S))return T.error(`Log file not found: ${S}`),f;let M=IW.createReadStream(S),J=Hw.createInterface({input:M,crlfDelay:Number.POSITIVE_INFINITY}),F=new Date($.getTime()-3600000);return J.on("line",(W)=>{let A=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,k=W.match(A);if(k?.groups){let X=k.groups.ip,y=k.groups.dateTime,w=J7(y);if(!Number.isNaN(w.getTime())){if(w>=F&&w<=$){let G=f.get(X);if(!G)G=[],f.set(X,G);G.push(W)}}else T.error(`Failed to parse date: ${y}`)}}),new Promise((W,A)=>{J.on("error",(k)=>{A(k)}),J.on("close",()=>{W(f)})})}var F7=["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("\n");function Ew(T){return F7+T.join("\n\n")}var Qw={schema:HT.union([HT.object({shouldBanIp:HT.literal(!1)}),HT.object({shouldBanIp:HT.literal(!0),veryConciseReason:HT.string()})]),fallback:{shouldBanIp:!1}};var w7=[".env","php"];async function Uw({generator:T,logFilePath:S,logger:$,now:f}){let M=T.usdBudget,J=new WA,F=await Dw($,S,f),W=[],A=T.from(Qw),k=0,X=0;for(let[C,D]of F){$.info(`\uD83D\uDD0D ruling on ${C}. logs:`),$.info(D.map((U)=>`\t${U}`).join("\n"));let H=!1;for(let U of w7)if(D.some((Z)=>Z.includes(U))){W.push({ip:C,reason:`Always ban ${U}`}),$.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${C}--always ban ${U}\n`),H=!0;break}if(H)continue;if(T.usdBudget>T.usdFloor){let U=Ew(D),Z=await A(U);if(Z.shouldBanIp)W.push({ip:C,reason:Z.veryConciseReason}),$.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${C}--${Z.veryConciseReason}\n`);else X++,$.info(` \uD83D\uDD4A\uFE0F not banning ${C}\n`);k++}else{$.warn("\uD83D\uDCB0 insufficient funds to process all logs"),$.warn(`\uD83D\uDCB0 got through ${k}/${F.size} ips\n`);break}}let y=W.length;if(W.length>0)await J.drizzle.insert(jW).values(W);let w=[],G=HT.object({lastDay:HT.string()}),z=y7(import.meta.dirname,"tribunal.cache.json");if(A7(z)){let C=await k7(z,"utf-8");try{let D=JSON.parse(C),{lastDay:H}=G.parse(D);if(H){let U=new Date(H);w.push(...await J.drizzle.query.banishedIps.findMany({columns:{ip:!0},where:SW(jW.banishedAt,U)}))}}catch(D){$.error(D)}}try{await Promise.all(w.map((C)=>new Promise((D,H)=>W7(`iptables -D INPUT -s ${C.ip} -j DROP`).on("exit",(U)=>{if(U===0)$.info(`\uD83E\uDDD1\u200D\u2696\uFE0F banned ${C.ip}`),D();else H(new Error(`iptables exited with code ${U}`))}))))}catch(C){if(C instanceof Error)$.error(C.message);else{let D=OM(C);$.error("iptables exited with error",D)}}await X7(z,JSON.stringify({lastDay:f}),"utf-8"),$.info(`\u2728 banned ${y} ips, didn't ban ${X} ips`);let E=M-T.usdBudget,B=E.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),L=M.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),b=Math.round(E/M*100);$.info(`\uD83D\uDCB8 spent ${B}, ${b}% of ${L} budget`)}var Bf=new F0;process.on("SIGINT",()=>{Bf.logger.info("\u2757 received SIGINT; exiting gracefully"),bW()});process.on("SIGTERM",()=>{Bf.logger.info("\u2757 received SIGTERM; exiting gracefully"),bW()});process.on("exit",()=>{Bf.logger.info("\u2757 received exit; exiting gracefully"),bW()});Bf.logger.info("\uD83D\uDEEB tribunal worker ready");var K7=new rX({usdBudget:0.01,usdMinimum:0,model:"gpt-4o-mini",apiKey:j$.OPENAI_API_KEY,cachingMode:"off",logger:Bf.logger});if(j$.OPENAI_API_KEY===void 0&&!("VITEST"in import.meta.env))throw new Error("OPENAI_API_KEY is not set and vitest is not running.");await Uw({generator:K7,logFilePath:"/var/log/nginx/access.log",logger:Bf.logger});bW();function bW(){Bf.logger.info("\uD83D\uDEEC tribunal server exiting"),process.exit(0)}
|
|
38
|
+
`;await S.execute(R`CREATE SCHEMA IF NOT EXISTS ${R.identifier(M)}`),await S.execute(J);let W=(await S.all(R`select id, hash, created_at from ${R.identifier(M)}.${R.identifier(f)} order by created_at desc limit 1`))[0];await S.transaction(async(A)=>{for await(let k of T)if(!W||Number(W.created_at)<k.folderMillis){for(let X of k.sql)await A.execute(R.raw(X));await A.execute(R`insert into ${R.identifier(M)}.${R.identifier(f)} ("hash", "created_at") values(${k.hash}, ${k.folderMillis})`)}})}escapeName(T){return`"${T}"`}escapeParam(T){return`\$${T+1}`}escapeString(T){return`'${T.replace(/'/g,"''")}'`}buildWithCTE(T){if(!T?.length)return;let S=[R`with `];for(let[$,f]of T.entries())if(S.push(R`${R.identifier(f._.alias)} as (${f._.sql})`),$<T.length-1)S.push(R`, `);return S.push(R` `),R.join(S)}buildDeleteQuery({table:T,where:S,returning:$,withList:f}){let M=this.buildWithCTE(f),J=$?R` returning ${this.buildSelection($,{isSingleTable:!0})}`:void 0,F=S?R` where ${S}`:void 0;return R`${M}delete from ${T}${F}${J}`}buildUpdateSet(T,S){let $=T[c.Symbol.Columns],f=Object.keys($).filter((J)=>S[J]!==void 0||$[J]?.onUpdateFn!==void 0),M=f.length;return R.join(f.flatMap((J,F)=>{let W=$[J],A=S[J]??R.param(W.onUpdateFn(),W),k=R`${R.identifier(this.casing.getColumnCasing(W))} = ${A}`;if(F<M-1)return[k,R.raw(", ")];return[k]}))}buildUpdateQuery({table:T,set:S,where:$,returning:f,withList:M}){let J=this.buildWithCTE(M),F=this.buildUpdateSet(T,S),W=f?R` returning ${this.buildSelection(f,{isSingleTable:!0})}`:void 0,A=$?R` where ${$}`:void 0;return R`${J}update ${T} set ${F}${A}${W}`}buildSelection(T,{isSingleTable:S=!1}={}){let $=T.length,f=T.flatMap(({field:M},J)=>{let F=[];if(V(M,t.Aliased)&&M.isSelectionField)F.push(R.identifier(M.fieldAlias));else if(V(M,t.Aliased)||V(M,t)){let W=V(M,t.Aliased)?M.sql:M;if(S)F.push(new t(W.queryChunks.map((A)=>{if(V(A,q))return R.identifier(this.casing.getColumnCasing(A));return A})));else F.push(W);if(V(M,t.Aliased))F.push(R` as ${R.identifier(M.fieldAlias)}`)}else if(V(M,NT))if(S)F.push(R.identifier(this.casing.getColumnCasing(M)));else F.push(M);if(J<$-1)F.push(R`, `);return F});return R.join(f)}buildSelectQuery({withList:T,fields:S,fieldsFlat:$,where:f,having:M,table:J,joins:F,orderBy:W,groupBy:A,limit:k,offset:X,lockingClause:y,distinct:w,setOperators:G}){let z=$??nS(S);for(let MT of z)if(V(MT.field,NT)&&PS(MT.field.table)!==(V(J,fS)?J._.alias:V(J,nJ)?J[hT].name:V(J,t)?void 0:PS(J))&&!((fT)=>F?.some(({alias:UT})=>UT===(fT[c.Symbol.IsAlias]?PS(fT):fT[c.Symbol.BaseName])))(MT.field.table)){let fT=PS(MT.field.table);throw new Error(`Your "${MT.path.join("->")}" field references a column "${fT}"."${MT.field.name}", but the table "${fT}" is not part of the query! Did you forget to join it?`)}let Q=!F||F.length===0,E=this.buildWithCTE(T),B;if(w)B=w===!0?R` distinct`:R` distinct on (${R.join(w.on,R`, `)})`;let L=this.buildSelection(z,{isSingleTable:Q}),b=(()=>{if(V(J,c)&&J[c.Symbol.OriginalName]!==J[c.Symbol.Name]){let MT=R`${R.identifier(J[c.Symbol.OriginalName])}`;if(J[c.Symbol.Schema])MT=R`${R.identifier(J[c.Symbol.Schema])}.${MT}`;return R`${MT} ${R.identifier(J[c.Symbol.Name])}`}return J})(),C=[];if(F)for(let[MT,fT]of F.entries()){if(MT===0)C.push(R` `);let UT=fT.table,VS=fT.lateral?R` lateral`:void 0;if(V(UT,cS)){let N=UT[cS.Symbol.Name],p=UT[cS.Symbol.Schema],kT=UT[cS.Symbol.OriginalName],_T=N===kT?void 0:fT.alias;C.push(R`${R.raw(fT.joinType)} join${VS} ${p?R`${R.identifier(p)}.`:void 0}${R.identifier(kT)}${_T&&R` ${R.identifier(_T)}`} on ${fT.on}`)}else if(V(UT,ES)){let N=UT[hT].name,p=UT[hT].schema,kT=UT[hT].originalName,_T=N===kT?void 0:fT.alias;C.push(R`${R.raw(fT.joinType)} join${VS} ${p?R`${R.identifier(p)}.`:void 0}${R.identifier(kT)}${_T&&R` ${R.identifier(_T)}`} on ${fT.on}`)}else C.push(R`${R.raw(fT.joinType)} join${VS} ${UT} on ${fT.on}`);if(MT<F.length-1)C.push(R` `)}let D=R.join(C),H=f?R` where ${f}`:void 0,U=M?R` having ${M}`:void 0,Z;if(W&&W.length>0)Z=R` order by ${R.join(W,R`, `)}`;let h;if(A&&A.length>0)h=R` group by ${R.join(A,R`, `)}`;let O=typeof k==="object"||typeof k==="number"&&k>=0?R` limit ${k}`:void 0,o=X?R` offset ${X}`:void 0,P=R.empty();if(y){let MT=R` for ${R.raw(y.strength)}`;if(y.config.of)MT.append(R` of ${R.join(Array.isArray(y.config.of)?y.config.of:[y.config.of],R`, `)}`);if(y.config.noWait)MT.append(R` no wait`);else if(y.config.skipLocked)MT.append(R` skip locked`);P.append(MT)}let a=R`${E}select${B} ${L} from ${b}${D}${H}${h}${U}${Z}${O}${o}${P}`;if(G.length>0)return this.buildSetOperations(a,G);return a}buildSetOperations(T,S){let[$,...f]=S;if(!$)throw new Error("Cannot pass undefined values to any set operator");if(f.length===0)return this.buildSetOperationQuery({leftSelect:T,setOperator:$});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:T,setOperator:$}),f)}buildSetOperationQuery({leftSelect:T,setOperator:{type:S,isAll:$,rightSelect:f,limit:M,orderBy:J,offset:F}}){let W=R`(${T.getSQL()}) `,A=R`(${f.getSQL()})`,k;if(J&&J.length>0){let G=[];for(let z of J)if(V(z,q))G.push(R.identifier(z.name));else if(V(z,t)){for(let Q=0;Q<z.queryChunks.length;Q++){let E=z.queryChunks[Q];if(V(E,q))z.queryChunks[Q]=R.identifier(E.name)}G.push(R`${z}`)}else G.push(R`${z}`);k=R` order by ${R.join(G,R`, `)} `}let X=typeof M==="object"||typeof M==="number"&&M>=0?R` limit ${M}`:void 0,y=R.raw(`${S} ${$?"all ":""}`),w=F?R` offset ${F}`:void 0;return R`${W}${y}${A}${k}${X}${w}`}buildInsertQuery({table:T,values:S,onConflict:$,returning:f,withList:M}){let J=[],F=T[c.Symbol.Columns],W=Object.entries(F).filter(([G,z])=>!z.shouldDisableInsert()),A=W.map(([,G])=>R.identifier(this.casing.getColumnCasing(G)));for(let[G,z]of S.entries()){let Q=[];for(let[E,B]of W){let L=z[E];if(L===void 0||V(L,IS)&&L.value===void 0)if(B.defaultFn!==void 0){let b=B.defaultFn(),C=V(b,t)?b:R.param(b,B);Q.push(C)}else if(!B.default&&B.onUpdateFn!==void 0){let b=B.onUpdateFn(),C=V(b,t)?b:R.param(b,B);Q.push(C)}else Q.push(R`default`);else Q.push(L)}if(J.push(Q),G<S.length-1)J.push(R`, `)}let k=this.buildWithCTE(M),X=R.join(J),y=f?R` returning ${this.buildSelection(f,{isSingleTable:!0})}`:void 0,w=$?R` on conflict ${$}`:void 0;return R`${k}insert into ${T} ${A} values ${X}${w}${y}`}buildRefreshMaterializedViewQuery({view:T,concurrently:S,withNoData:$}){let f=S?R` concurrently`:void 0,M=$?R` with no data`:void 0;return R`refresh materialized view${f} ${T}${M}`}prepareTyping(T){if(V(T,WW)||V(T,FW))return"json";else if(V(T,AW))return"decimal";else if(V(T,kW))return"time";else if(V(T,XW)||V(T,yW))return"timestamp";else if(V(T,fW)||V(T,MW))return"date";else if(V(T,wW))return"uuid";else return"none"}sqlToQuery(T,S){return T.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:S})}buildRelationalQueryWithoutPK({fullSchema:T,schema:S,tableNamesMap:$,table:f,tableConfig:M,queryConfig:J,tableAlias:F,nestedQueryRelation:W,joinOn:A}){let k=[],X,y,w=[],G,z=[];if(J===!0)k=Object.entries(M.columns).map(([B,L])=>({dbKey:L.name,tsKey:B,field:K$(L,F),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let E=Object.fromEntries(Object.entries(M.columns).map(([H,U])=>[H,K$(U,F)]));if(J.where){let H=typeof J.where==="function"?J.where(E,h8()):J.where;G=H&&xJ(H,F)}let B=[],L=[];if(J.columns){let H=!1;for(let[U,Z]of Object.entries(J.columns)){if(Z===void 0)continue;if(U in M.columns){if(!H&&Z===!0)H=!0;L.push(U)}}if(L.length>0)L=H?L.filter((U)=>J.columns?.[U]===!0):Object.keys(M.columns).filter((U)=>!L.includes(U))}else L=Object.keys(M.columns);for(let H of L){let U=M.columns[H];B.push({tsKey:H,value:U})}let b=[];if(J.with)b=Object.entries(J.with).filter((H)=>!!H[1]).map(([H,U])=>({tsKey:H,queryConfig:U,relation:M.relations[H]}));let C;if(J.extras){C=typeof J.extras==="function"?J.extras(E,{sql:R}):J.extras;for(let[H,U]of Object.entries(C))B.push({tsKey:H,value:_1(U,F)})}for(let{tsKey:H,value:U}of B)k.push({dbKey:V(U,t.Aliased)?U.fieldAlias:M.columns[H].name,tsKey:H,field:V(U,NT)?K$(U,F):U,relationTableTsKey:void 0,isJson:!1,selection:[]});let D=typeof J.orderBy==="function"?J.orderBy(E,v8()):J.orderBy??[];if(!Array.isArray(D))D=[D];w=D.map((H)=>{if(V(H,NT))return K$(H,F);return xJ(H,F)}),X=J.limit,y=J.offset;for(let{tsKey:H,queryConfig:U,relation:Z}of b){let h=n8(S,$,Z),O=_f(Z.referencedTable),o=$[O],P=`${F}_${H}`,a=jJ(...h.fields.map((UT,VS)=>TW(K$(h.references[VS],P),K$(UT,F)))),MT=this.buildRelationalQueryWithoutPK({fullSchema:T,schema:S,tableNamesMap:$,table:T[o],tableConfig:S[o],queryConfig:V(Z,d$)?U===!0?{limit:1}:{...U,limit:1}:U,tableAlias:P,joinOn:a,nestedQueryRelation:Z}),fT=R`${R.identifier(P)}.${R.identifier("data")}`.as(H);z.push({on:R`true`,table:new fS(MT.sql,{},P),alias:P,joinType:"left",lateral:!0}),k.push({dbKey:H,tsKey:H,field:fT,relationTableTsKey:o,isJson:!0,selection:MT.selection})}}if(k.length===0)throw new sF({message:`No fields selected for table "${M.tsName}" ("${F}")`});let Q;if(G=jJ(A,G),W){let E=R`json_build_array(${R.join(k.map(({field:b,tsKey:C,isJson:D})=>D?R`${R.identifier(`${F}_${C}`)}.${R.identifier("data")}`:V(b,t.Aliased)?b.sql:b),R`, `)})`;if(V(W,qJ))E=R`coalesce(json_agg(${E}${w.length>0?R` order by ${R.join(w,R`, `)}`:void 0}), '[]'::json)`;let B=[{dbKey:"data",tsKey:"data",field:E.as("data"),isJson:!0,relationTableTsKey:M.tsName,selection:k}];if(X!==void 0||y!==void 0||w.length>0)Q=this.buildSelectQuery({table:eF(f,F),fields:{},fieldsFlat:[{path:[],field:R.raw("*")}],where:G,limit:X,offset:y,orderBy:w,setOperators:[]}),G=void 0,X=void 0,y=void 0,w=[];else Q=eF(f,F);Q=this.buildSelectQuery({table:V(Q,cS)?Q:new fS(Q,{},F),fields:{},fieldsFlat:B.map(({field:b})=>({path:[],field:V(b,NT)?K$(b,F):b})),joins:z,where:G,limit:X,offset:y,orderBy:w,setOperators:[]})}else Q=this.buildSelectQuery({table:eF(f,F),fields:{},fieldsFlat:k.map(({field:E})=>({path:[],field:V(E,NT)?K$(E,F):E})),joins:z,where:G,limit:X,offset:y,orderBy:w,setOperators:[]});return{tableTsKey:M.tsName,sql:Q,selection:k}}}class US{static[Y]="SelectionProxyHandler";config;constructor(T){this.config={...T}}get(T,S){if(S==="_")return{...T._,selectedFields:new Proxy(T._.selectedFields,this)};if(S===hT)return{...T[hT],selectedFields:new Proxy(T[hT].selectedFields,this)};if(typeof S==="symbol")return T[S];let f=(V(T,fS)?T._.selectedFields:V(T,ES)?T[hT].selectedFields:T)[S];if(V(f,t.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!f.isSelectionField)return f.sql;let M=f.clone();return M.isSelectionField=!0,M}if(V(f,t)){if(this.config.sqlBehavior==="sql")return f;throw new Error(`You tried to reference "${S}" 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(V(f,NT)){if(this.config.alias)return new Proxy(f,new GM(new Proxy(f.table,new CJ(this.config.alias,this.config.replaceOriginalName??!1))));return f}if(typeof f!=="object"||f===null)return f;return new Proxy(f,new US(this.config))}}class l1{static[Y]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class zS{static[Y]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(T){if(this.fields=T.fields,this.session=T.session,this.dialect=T.dialect,T.withList)this.withList=T.withList;this.distinct=T.distinct}from(T){let S=!!this.fields,$;if(this.fields)$=this.fields;else if(V(T,fS))$=Object.fromEntries(Object.keys(T._.selectedFields).map((f)=>[f,T[f]]));else if(V(T,nJ))$=T[hT].selectedFields;else if(V(T,t))$={};else $=c2(T);return new u1({table:T,fields:$,isPartialSelect:S,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}}class kw extends l1{static[Y]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:T,fields:S,isPartialSelect:$,session:f,dialect:M,withList:J,distinct:F}){super();this.config={withList:J,table:T,fields:{...S},distinct:F,setOperators:[]},this.isPartialSelect=$,this.session=f,this.dialect=M,this._={selectedFields:S},this.tableName=U1(T),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{}}createJoin(T){return(S,$)=>{let f=this.tableName,M=U1(S);if(typeof M==="string"&&this.config.joins?.some((J)=>J.alias===M))throw new Error(`Alias "${M}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof f==="string")this.config.fields={[f]:this.config.fields};if(typeof M==="string"&&!V(S,t)){let J=V(S,fS)?S._.selectedFields:V(S,ES)?S[hT].selectedFields:S[c.Symbol.Columns];this.config.fields[M]=J}}if(typeof $==="function")$=$(new Proxy(this.config.fields,new US({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:$,table:S,joinType:T,alias:M}),typeof M==="string")switch(T){case"left":{this.joinsNotNullableMap[M]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([J])=>[J,!1])),this.joinsNotNullableMap[M]=!0;break}case"inner":{this.joinsNotNullableMap[M]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([J])=>[J,!1])),this.joinsNotNullableMap[M]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(T,S){return($)=>{let f=typeof $==="function"?$(pY()):$;if(!Q1(this.getSelectedFields(),f.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:T,isAll:S,rightSelect:f}),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(T){return this.config.setOperators.push(...T),this}where(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new US({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=T,this}having(T){if(typeof T==="function")T=T(new Proxy(this.config.fields,new US({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=T,this}groupBy(...T){if(typeof T[0]==="function"){let S=T[0](new Proxy(this.config.fields,new US({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(S)?S:[S]}else this.config.groupBy=T;return this}orderBy(...T){if(typeof T[0]==="function"){let S=T[0](new Proxy(this.config.fields,new US({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),$=Array.isArray(S)?S:[S];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=$;else this.config.orderBy=$}else{let S=T;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=S;else this.config.orderBy=S}return this}limit(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=T;else this.config.limit=T;return this}offset(T){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=T;else this.config.offset=T;return this}for(T,S={}){return this.config.lockingClause={strength:T,config:S},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:T,...S}=this.dialect.sqlToQuery(this.getSQL());return S}as(T){return new Proxy(new fS(this.getSQL(),this.config.fields,T),new US({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new US({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class u1 extends kw{static[Y]="PgSelect";_prepare(T){let{session:S,config:$,dialect:f,joinsNotNullableMap:M}=this;if(!S)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return QT.startActiveSpan("drizzle.prepareQuery",()=>{let J=nS($.fields),F=S.prepareQuery(f.sqlToQuery(this.getSQL()),J,T,!0);return F.joinsNotNullableMap=M,F})}prepare(T){return this._prepare(T)}execute=(T)=>{return QT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T)})}}n2(u1,[GS]);function EM(T,S){return($,f,...M)=>{let J=[f,...M].map((F)=>({type:T,isAll:S,rightSelect:F}));for(let F of J)if(!Q1($.getSelectedFields(),F.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return $.addSetOperators(J)}}var pY=()=>({union:iY,unionAll:lY,intersect:uY,intersectAll:dY,except:rY,exceptAll:aY}),iY=EM("union",!1),lY=EM("union",!0),uY=EM("intersect",!1),dY=EM("intersect",!0),rY=EM("except",!1),aY=EM("except",!0);class d1{static[Y]="PgQueryBuilder";dialect;dialectConfig;constructor(T){this.dialect=V(T,Uf)?T:void 0,this.dialectConfig=V(T,Uf)?void 0:T}$with(T){let S=this;return{as($){if(typeof $==="function")$=$(S);return new Proxy(new NJ($.getSQL(),$.getSelectedFields(),T,!0),new US({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}}with(...T){let S=this;function $(J){return new zS({fields:J??void 0,session:void 0,dialect:S.getDialect(),withList:T})}function f(J){return new zS({fields:J??void 0,session:void 0,dialect:S.getDialect(),distinct:!0})}function M(J,F){return new zS({fields:F??void 0,session:void 0,dialect:S.getDialect(),distinct:{on:J}})}return{select:$,selectDistinct:f,selectDistinctOn:M}}select(T){return new zS({fields:T??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(T){return new zS({fields:T??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(T,S){return new zS({fields:S??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:T}})}getDialect(){if(!this.dialect)this.dialect=new Uf(this.dialectConfig);return this.dialect}}class r1 extends GS{constructor(T,S,$){super();this.session=S,this.dialect=$,this.config={view:T}}static[Y]="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:T,...S}=this.dialect.sqlToQuery(this.getSQL());return S}_prepare(T){return QT.startActiveSpan("drizzle.prepareQuery",()=>{return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,T,!0)})}prepare(T){return this._prepare(T)}execute=(T)=>{return QT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute(T)})}}class LW{constructor(T,S,$,f){this.table=T,this.session=S,this.dialect=$,this.withList=f}static[Y]="PgUpdateBuilder";set(T){return new Xw(this.table,$W(this.table,T),this.session,this.dialect,this.withList)}}class Xw extends GS{constructor(T,S,$,f,M){super();this.session=$,this.dialect=f,this.config={set:S,table:T,withList:M}}static[Y]="PgUpdate";config;where(T){return this.config.where=T,this}returning(T=this.config.table[c.Symbol.Columns]){return this.config.returning=nS(T),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:T,...S}=this.dialect.sqlToQuery(this.getSQL());return S}_prepare(T){return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,T,!0)}prepare(T){return this._prepare(T)}execute=(T)=>{return this._prepare().execute(T)};$dynamic(){return this}}class cJ extends t{constructor(T){super(cJ.buildEmbeddedCount(T.source,T.filters).queryChunks);this.params=T,this.mapWith(Number),this.session=T.session,this.sql=cJ.buildCount(T.source,T.filters)}sql;static[Y]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(T,S){return R`(select count(*) from ${T}${R.raw(" where ").if(S)}${S})`}static buildCount(T,S){return R`select count(*) as count from ${T}${R.raw(" where ").if(S)}${S};`}then(T,S){return Promise.resolve(this.session.count(this.sql)).then(T,S)}catch(T){return this.then(void 0,T)}finally(T){return this.then((S)=>{return T?.(),S},(S)=>{throw T?.(),S})}}class e1{constructor(T,S,$,f,M,J,F){this.fullSchema=T,this.schema=S,this.tableNamesMap=$,this.table=f,this.tableConfig=M,this.dialect=J,this.session=F}static[Y]="PgRelationalQueryBuilder";findMany(T){return new a1(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?T:{},"many")}findFirst(T){return new a1(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,T?{...T,limit:1}:{limit:1},"first")}}class a1 extends GS{constructor(T,S,$,f,M,J,F,W,A){super();this.fullSchema=T,this.schema=S,this.tableNamesMap=$,this.table=f,this.tableConfig=M,this.dialect=J,this.session=F,this.config=W,this.mode=A}static[Y]="PgRelationalQuery";_prepare(T){return QT.startActiveSpan("drizzle.prepareQuery",()=>{let{query:S,builtQuery:$}=this._toSQL();return this.session.prepareQuery($,void 0,T,!0,(f,M)=>{let J=f.map((F)=>KW(this.schema,this.tableConfig,F,S.selection,M));if(this.mode==="first")return J[0];return J})})}prepare(T){return this._prepare(T)}_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 T=this._getQuery(),S=this.dialect.sqlToQuery(T.sql);return{query:T,builtQuery:S}}toSQL(){return this._toSQL().builtQuery}execute(){return QT.startActiveSpan("drizzle.operation",()=>{return this._prepare().execute()})}}class s1 extends GS{constructor(T,S,$,f){super();this.execute=T,this.sql=S,this.query=$,this.mapBatchResult=f}static[Y]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(T,S){return S?this.mapBatchResult(T):T}_prepare(){return this}isResponseInArrayMode(){return!1}}class oJ{constructor(T,S,$){if(this.dialect=T,this.session=S,this._=$?{schema:$.schema,fullSchema:$.fullSchema,tableNamesMap:$.tableNamesMap,session:S}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:S},this.query={},this._.schema)for(let[f,M]of Object.entries(this._.schema))this.query[f]=new e1($.fullSchema,this._.schema,this._.tableNamesMap,$.fullSchema[f],M,T,S)}static[Y]="PgDatabase";query;$with(T){let S=this;return{as($){if(typeof $==="function")$=$(new d1(S.dialect));return new Proxy(new NJ($.getSQL(),$.getSelectedFields(),T,!0),new US({alias:T,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}}$count(T,S){return new cJ({source:T,filters:S,session:this.session})}with(...T){let S=this;function $(A){return new zS({fields:A??void 0,session:S.session,dialect:S.dialect,withList:T})}function f(A){return new zS({fields:A??void 0,session:S.session,dialect:S.dialect,withList:T,distinct:!0})}function M(A,k){return new zS({fields:k??void 0,session:S.session,dialect:S.dialect,withList:T,distinct:{on:A}})}function J(A){return new LW(A,S.session,S.dialect,T)}function F(A){return new BW(A,S.session,S.dialect,T)}function W(A){return new VW(A,S.session,S.dialect,T)}return{select:$,selectDistinct:f,selectDistinctOn:M,update:J,insert:F,delete:W}}select(T){return new zS({fields:T??void 0,session:this.session,dialect:this.dialect})}selectDistinct(T){return new zS({fields:T??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(T,S){return new zS({fields:S??void 0,session:this.session,dialect:this.dialect,distinct:{on:T}})}update(T){return new LW(T,this.session,this.dialect)}insert(T){return new BW(T,this.session,this.dialect)}delete(T){return new VW(T,this.session,this.dialect)}refreshMaterializedView(T){return new r1(T,this.session,this.dialect)}execute(T){let S=typeof T==="string"?R.raw(T):T.getSQL(),$=this.dialect.sqlToQuery(S),f=this.session.prepareQuery($,void 0,void 0,!1);return new s1(()=>f.execute(),S,$,(M)=>f.mapResult(M,!0))}transaction(T,S){return this.session.transaction(T,S)}}class yw{constructor(T,S){this.unique=T,this.name=S}static[Y]="PgIndexBuilderOn";on(...T){return new NW(T.map((S)=>{if(V(S,t))return S;S=S;let $=new LJ(S.name,!!S.keyAsName,S.columnType,S.indexConfig);return S.indexConfig=JSON.parse(JSON.stringify(S.defaultConfig)),$}),this.unique,!1,this.name)}onOnly(...T){return new NW(T.map((S)=>{if(V(S,t))return S;S=S;let $=new LJ(S.name,!!S.keyAsName,S.columnType,S.indexConfig);return S.indexConfig=S.defaultConfig,$}),this.unique,!0,this.name)}using(T,...S){return new NW(S.map(($)=>{if(V($,t))return $;$=$;let f=new LJ($.name,!!$.keyAsName,$.columnType,$.indexConfig);return $.indexConfig=JSON.parse(JSON.stringify($.defaultConfig)),f}),this.unique,!0,this.name,T)}}class NW{static[Y]="PgIndexBuilder";config;constructor(T,S,$,f,M="btree"){this.config={name:f,columns:T,unique:S,only:$,method:M}}concurrently(){return this.config.concurrently=!0,this}with(T){return this.config.with=T,this}where(T){return this.config.where=T,this}build(T){return new ww(this.config,T)}}class ww{static[Y]="PgIndex";config;constructor(T,S){this.config={...T,table:S}}}function TA(T){return new yw(!0,T)}class SA{constructor(T){this.query=T}getQuery(){return this.query}mapResult(T,S){return T}static[Y]="PgPreparedQuery";joinsNotNullableMap}class $A{constructor(T){this.dialect=T}static[Y]="PgSession";execute(T){return QT.startActiveSpan("drizzle.operation",()=>{return QT.startActiveSpan("drizzle.prepareQuery",()=>{return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1)}).execute()})}all(T){return this.prepareQuery(this.dialect.sqlToQuery(T),void 0,void 0,!1).all()}async count(T){let S=await this.execute(T);return Number(S[0].count)}}class fA extends oJ{constructor(T,S,$,f=0){super(T,S,$);this.schema=$,this.nestedIndex=f}static[Y]="PgTransaction";rollback(){throw new H1}getTransactionConfigSQL(T){let S=[];if(T.isolationLevel)S.push(`isolation level ${T.isolationLevel}`);if(T.accessMode)S.push(T.accessMode);if(typeof T.deferrable==="boolean")S.push(T.deferrable?"deferrable":"not deferrable");return R.raw(S.join(" "))}setTransaction(T){return this.session.execute(R`set transaction ${this.getTransactionConfigSQL(T)}`)}}class Kw extends SA{constructor(T,S,$,f,M,J,F){super({sql:S,params:$});this.client=T,this.queryString=S,this.params=$,this.logger=f,this.fields=M,this._isResponseInArrayMode=J,this.customResultMapper=F}static[Y]="PostgresJsPreparedQuery";async execute(T={}){return QT.startActiveSpan("drizzle.execute",async(S)=>{let $=z1(this.params,T);S?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify($)}),this.logger.logQuery(this.queryString,$);let{fields:f,queryString:M,client:J,joinsNotNullableMap:F,customResultMapper:W}=this;if(!f&&!W)return QT.startActiveSpan("drizzle.driver.execute",()=>{return J.unsafe(M,$)});let A=await QT.startActiveSpan("drizzle.driver.execute",()=>{return S?.setAttributes({"drizzle.query.text":M,"drizzle.query.params":JSON.stringify($)}),J.unsafe(M,$).values()});return QT.startActiveSpan("drizzle.mapResponse",()=>{return W?W(A):A.map((k)=>P2(f,k,F))})})}all(T={}){return QT.startActiveSpan("drizzle.execute",async(S)=>{let $=z1(this.params,T);return S?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify($)}),this.logger.logQuery(this.queryString,$),QT.startActiveSpan("drizzle.driver.execute",()=>{return S?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify($)}),this.client.unsafe(this.queryString,$)})})}isResponseInArrayMode(){return this._isResponseInArrayMode}}class gJ extends $A{constructor(T,S,$,f={}){super(S);this.client=T,this.schema=$,this.options=f,this.logger=f.logger??new E1}static[Y]="PostgresJsSession";logger;prepareQuery(T,S,$,f,M){return new Kw(this.client,T.sql,T.params,this.logger,S,f,M)}query(T,S){return this.logger.logQuery(T,S),this.client.unsafe(T,S).values()}queryObjects(T,S){return this.client.unsafe(T,S)}transaction(T,S){return this.client.begin(async($)=>{let f=new gJ($,this.dialect,this.schema,this.options),M=new MA(this.dialect,f,this.schema);if(S)await M.setTransaction(S);return T(M)})}}class MA extends fA{constructor(T,S,$,f=0){super(T,S,$,f);this.session=S}static[Y]="PostgresJsTransaction";transaction(T){return this.session.client.savepoint((S)=>{let $=new gJ(S,this.dialect,this.schema,this.session.options),f=new MA(this.dialect,$,this.schema);return T(f)})}}class Yw extends oJ{static[Y]="PostgresJsDatabase"}function QM(T,S={}){let $=(A)=>A;for(let A of["1184","1082","1083","1114"])T.options.parsers[A]=$,T.options.serializers[A]=$;T.options.serializers["114"]=$,T.options.serializers["3802"]=$;let f=new Uf({casing:S.casing}),M;if(S.logger===!0)M=new D1;else if(S.logger!==!1)M=S.logger;let J;if(S.schema){let A=P8(S.schema,c8);J={fullSchema:S.schema,schema:A.tables,tableNamesMap:A.tableNamesMap}}let F=new gJ(T,f,J,{logger:M}),W=new Yw(f,F,J);return W.$client=T,W}function CW(...T){if(typeof T[0]==="string"){let S=DM(T[0]);return QM(S,T[1])}if(o2(T[0])){let{connection:S,client:$,...f}=T[0];if($)return QM($,f);if(typeof S==="object"&&S.url!==void 0){let{url:J,...F}=S,W=DM(J,F);return QM(W,f)}let M=DM(S);return QM(M,f)}return QM(T[0],T[1])}((T)=>{function S($){return QM({},$)}T.mock=S})(CW||(CW={}));function Rw(T){let S=T.runtimeEnvStrict??T.runtimeEnv??process.env;if(T.emptyStringAsUndefined??!1){for(let[H,U]of Object.entries(S))if(U==="")delete S[H]}if(!!T.skipValidation)return S;let M=typeof T.client==="object"?T.client:{},J=typeof T.server==="object"?T.server:{},F=typeof T.shared==="object"?T.shared:{},W=dM(M),A=dM(J),k=dM(F),X=T.isServer??(typeof window==="undefined"||("Deno"in window)),y=W.merge(k),w=A.merge(k).merge(W),G=X?w.safeParse(S):y.safeParse(S),z=T.onValidationError??((H)=>{throw console.error("\u274C Invalid environment variables:",H.flatten().fieldErrors),new Error("Invalid environment variables")}),Q=T.onInvalidAccess??((H)=>{throw new Error("\u274C Attempted to access a server-side environment variable on the client")});if(G.success===!1)return z(G.error);let E=(H)=>{if(!T.clientPrefix)return!0;return!H.startsWith(T.clientPrefix)&&!(H in k.shape)},B=(H)=>{return X||!E(H)},L=(H)=>{return H==="__esModule"||H==="$$typeof"},b=(T.extends??[]).reduce((H,U)=>{return Object.assign(H,U)},{}),C=Object.assign(G.data,b);return new Proxy(C,{get(H,U){if(typeof U!=="string")return;if(L(U))return;if(!B(U))return Q(U);return Reflect.get(H,U)}})}var eY="__vite_start_time"in globalThis,sY=typeof window!=="undefined",km="vitest"in globalThis,j$=Rw({isServer:!eY&&!sY,server:{CI:HT.string().transform((T)=>!0).optional(),POSTGRES_USER:HT.string(),POSTGRES_PASSWORD:HT.string(),POSTGRES_DATABASE:HT.string(),POSTGRES_HOST:HT.string(),POSTGRES_PORT:HT.string().transform((T)=>Number.parseInt(T,10)),BACKEND_PORT:HT.string().transform((T)=>Number.parseInt(T,10)),RUN_WORKERS_FROM_SOURCE:HT.union([HT.literal("true"),HT.literal("false")]).optional().transform((T)=>T==="true"),FRONTEND_PORT:HT.string().transform((T)=>Number.parseInt(T,10)),FRONTEND_ORIGINS:HT.string().transform((T)=>JSON.parse(T)).pipe(HT.array(HT.string())),OPENAI_API_KEY:HT.string().optional()},clientPrefix:"VITE_",client:{VITE_BACKEND_ORIGIN:HT.string(),VITE_USE_SELF_SIGNED_CERTIFICATE:HT.union([HT.literal("true"),HT.literal("false")]).optional().transform((T)=>T==="true")},runtimeEnv:import.meta.env,emptyStringAsUndefined:!0});var FA={};DK(FA,{users:()=>Vf,userChanges:()=>S7,untrackedUserColumnNames:()=>T7,twoFactorMethod:()=>_w,trackedUserColumnName:()=>zw,trackableUserColumnNames:()=>Gw,role:()=>Ow,players:()=>JA,passwordResetAttempts:()=>f7,loginHistory:()=>$7,games:()=>xW,banishedIps:()=>jW});var Ow=dF("role",["admin","user"]),Vf=u$("users",{id:bS().primaryKey().defaultRandom(),username:MS({length:16}).notNull(),email:MS({length:254}).notNull(),hash:MS({length:64}).notNull(),salt:MS({length:36}).notNull(),createdAt:M$({withTimezone:!0}).notNull().defaultNow(),createdIp:MS({length:45}).notNull(),isActive:IJ().notNull().default(!1),verifiedAt:M$({withTimezone:!0}),userRole:Ow().default("user")},(T)=>({usersUsernameUnique:TA().on(T.username),usersEmailUnique:TA().on(T.email)})),T7=["id","createdAt","createdIp","isActive","salt","verifiedAt"],Gw=["username","email","hash","userRole"],zw=dF("trackedUserColumnName",Gw),S7=u$("userChanges",{id:bS().primaryKey().defaultRandom(),userId:bS().notNull().references(()=>Vf.id),changedAt:M$({withTimezone:!0}).notNull().defaultNow(),changedIp:MS({length:45}).notNull(),changedColumn:zw().notNull(),oldValue:MS({length:255}),newValue:MS({length:255})}),xW=u$("games",{id:bS("id").primaryKey().defaultRandom()}),JA=u$("players",{userId:bS().notNull().references(()=>Vf.id),gameId:bS().notNull().references(()=>xW.id),score:JW().notNull()},(T)=>({pk:q8({columns:[T.userId,T.gameId]})})),$7=u$("loginHistory",{id:bS().primaryKey().defaultRandom(),userId:bS().references(()=>Vf.id),loginTime:M$({withTimezone:!0}).notNull().defaultNow(),ipAddress:MS({length:45}).notNull(),userAgent:MS({length:1024}),successful:IJ().notNull().default(!1)}),_w=dF("twoFactorMethod",["email","phone"]),f7=u$("passwordResetAttempts",{id:bS().primaryKey().defaultRandom(),userId:bS().notNull().references(()=>Vf.id),requestedIp:MS({length:45}).notNull(),requestedAt:M$({withTimezone:!0}).notNull().defaultNow(),succeededIp:MS({length:45}),succeededAt:M$({withTimezone:!0}),verificationMethod:_w().notNull()}),jW=u$("banishedIps",{ip:MS({length:45}).primaryKey(),reason:MS({length:2048}).notNull(),banishedAt:M$({withTimezone:!0}).notNull().defaultNow(),banishedUntil:M$({withTimezone:!0})});var __dirname="/home/runner/work/wayforge/wayforge/apps/tempest.games/src/database";class WA{options;sql;drizzle;observers=new Map;async setupTriggersAndNotifications(){await this.sql.file(M7.resolve(__dirname,"notify_update.sql"));let T=[PS(Vf),PS(xW),PS(JA)];await this.sql`SELECT create_notify_triggers(${this.sql.array(T)})`,await this.sql.listen("table_update",(S)=>{let $=S.split(","),f=$[0],M=$[1],J=`${f}("${M}")`;if(this.observers.has(J))this.observers.get(J).next(J)})}constructor(T=!1,S={host:j$.POSTGRES_HOST,port:j$.POSTGRES_PORT,user:j$.POSTGRES_USER,password:j$.POSTGRES_PASSWORD,database:j$.POSTGRES_DATABASE}){this.options=S,this.sql=DM(S),this.drizzle=CW(this.sql,{schema:FA,logger:T})}observe(T,S){if(!this.observers.has(T))this.observers.set(T,new JT);this.observers.get(T).subscribe("SINGLETON",S)}}import*as IW from"fs";import*as Hw from"readline";function J7(T){let $=T.replace(":","T").replace(" ","").replace(/(\d{2})\/(\w{3})\/(\d{4})T(.+)/,(f,M,J,F,W)=>{let k={Jan:"01",Feb:"02",Mar:"03",Apr:"04",May:"05",Jun:"06",Jul:"07",Aug:"08",Sep:"09",Oct:"10",Nov:"11",Dec:"12"}[J];return`${F}-${k}-${M}T${W}`});return new Date($)}async function Dw(T,S="/var/log/nginx/access.log",$=new Date){let f=new Map;if(!IW.existsSync(S))return T.error(`Log file not found: ${S}`),f;let M=IW.createReadStream(S),J=Hw.createInterface({input:M,crlfDelay:Number.POSITIVE_INFINITY}),F=new Date($.getTime()-3600000);return J.on("line",(W)=>{let A=/^(?<ip>\S+) \S+ \S+ \[(?<dateTime>.*?)\]/,k=W.match(A);if(k?.groups){let X=k.groups.ip,y=k.groups.dateTime,w=J7(y);if(!Number.isNaN(w.getTime())){if(w>=F&&w<=$){let G=f.get(X);if(!G)G=[],f.set(X,G);G.push(W)}}else T.error(`Failed to parse date: ${y}`)}}),new Promise((W,A)=>{J.on("error",(k)=>{A(k)}),J.on("close",()=>{W(f)})})}var F7=["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("\n");function Ew(T){return F7+T.join("\n\n")}var Qw={schema:HT.union([HT.object({shouldBanIp:HT.literal(!1)}),HT.object({shouldBanIp:HT.literal(!0),veryConciseReason:HT.string()})]),fallback:{shouldBanIp:!1}};var w7=[".env","php"];async function Uw({generator:T,logFilePath:S,logger:$,now:f}){let M=T.usdBudget,J=new WA({logQuery(C,D){$.info("\uD83D\uDCDD query",C,D)}}),F=await Dw($,S,f),W=[],A=T.from(Qw),k=0,X=0;for(let[C,D]of F){$.info(`\uD83D\uDD0D ruling on ${C}. logs:`),$.info(D.map((U)=>`\t${U}`).join("\n"));let H=!1;for(let U of w7)if(D.some((Z)=>Z.includes(U))){W.push({ip:C,reason:`Always ban ${U}`}),$.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${C}--always ban ${U}\n`),H=!0;break}if(H)continue;if(T.usdBudget>T.usdFloor){let U=Ew(D),Z=await A(U);if(Z.shouldBanIp)W.push({ip:C,reason:Z.veryConciseReason}),$.info(` \uD83E\uDDD1\u200D\u2696\uFE0F banning ${C}--${Z.veryConciseReason}\n`);else X++,$.info(` \uD83D\uDD4A\uFE0F not banning ${C}\n`);k++}else{$.warn("\uD83D\uDCB0 insufficient funds to process all logs"),$.warn(`\uD83D\uDCB0 got through ${k}/${F.size} ips\n`);break}}let y=W.length;if(W.length>0)await J.drizzle.insert(jW).values(W);let w=[],G=HT.object({lastDay:HT.string()}),z=y7(import.meta.dirname,"tribunal.cache.json");if(A7(z)){let C=await k7(z,"utf-8");try{let D=JSON.parse(C),{lastDay:H}=G.parse(D);if(H){let U=new Date(H);w.push(...await J.drizzle.query.banishedIps.findMany({columns:{ip:!0},where:SW(jW.banishedAt,U)}))}}catch(D){$.error(D)}}try{await Promise.all(w.map((C)=>new Promise((D,H)=>W7(`iptables -D INPUT -s ${C.ip} -j DROP`).on("exit",(U)=>{if(U===0)$.info(`\uD83E\uDDD1\u200D\u2696\uFE0F banned ${C.ip}`),D();else H(new Error(`iptables exited with code ${U}`))}))))}catch(C){if(C instanceof Error)$.error(C.message);else{let D=OM(C);$.error("iptables exited with error",D)}}await X7(z,JSON.stringify({lastDay:f}),"utf-8"),$.info(`\u2728 banned ${y} ips, didn't ban ${X} ips`);let E=M-T.usdBudget,B=E.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),L=M.toLocaleString("en",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:6}),b=Math.round(E/M*100);$.info(`\uD83D\uDCB8 spent ${B}, ${b}% of ${L} budget`)}var Bf=new F0;process.on("SIGINT",()=>{Bf.logger.info("\u2757 received SIGINT; exiting gracefully"),bW()});process.on("SIGTERM",()=>{Bf.logger.info("\u2757 received SIGTERM; exiting gracefully"),bW()});process.on("exit",()=>{Bf.logger.info("\u2757 received exit; exiting gracefully"),bW()});Bf.logger.info("\uD83D\uDEEB tribunal worker ready");var K7=new rX({usdBudget:0.01,usdMinimum:0,model:"gpt-4o-mini",apiKey:j$.OPENAI_API_KEY,cachingMode:"off",logger:Bf.logger});if(j$.OPENAI_API_KEY===void 0&&!("VITEST"in import.meta.env))throw new Error("OPENAI_API_KEY is not set and vitest is not running.");await Uw({generator:K7,logFilePath:"/var/log/nginx/access.log",logger:Bf.logger});bW();function bW(){Bf.logger.info("\uD83D\uDEEC tribunal server exiting"),process.exit(0)}
|