@toolpack-sdk/knowledge 3.1.0 → 3.2.0
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/dist/index.cjs +7 -7
- package/dist/index.d.cts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
"use strict";var Es=Object.create;var we=Object.defineProperty;var ks=Object.getOwnPropertyDescriptor;var _s=Object.getOwnPropertyNames;var Cs=Object.getPrototypeOf,xs=Object.prototype.hasOwnProperty;var ur=(r,e)=>()=>(r&&(e=r(r=0)),e);var g=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),lr=(r,e)=>{for(var t in e)we(r,t,{get:e[t],enumerable:!0})},hr=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of _s(e))!xs.call(r,s)&&s!==t&&we(r,s,{get:()=>e[s],enumerable:!(n=ks(e,s))||n.enumerable});return r};var E=(r,e,t)=>(t=r!=null?Es(Cs(r)):{},hr(e||!r||!r.__esModule?we(t,"default",{value:r,enumerable:!0}):t,r)),Ps=r=>hr(we({},"__esModule",{value:!0}),r);var l=ur(()=>{"use strict"});var it=g(kr=>{"use strict";l();kr.parse=function(r,e){return new st(r,e).parse()};var st=class r{constructor(e,t){this.source=e,this.transform=t||Rs,this.position=0,this.entries=[],this.recorded=[],this.dimension=0}isEof(){return this.position>=this.source.length}nextCharacter(){var e=this.source[this.position++];return e==="\\"?{value:this.source[this.position++],escaped:!0}:{value:e,escaped:!1}}record(e){this.recorded.push(e)}newEntry(e){var t;(this.recorded.length>0||e)&&(t=this.recorded.join(""),t==="NULL"&&!e&&(t=null),t!==null&&(t=this.transform(t)),this.entries.push(t),this.recorded=[])}consumeDimensions(){if(this.source[0]==="[")for(;!this.isEof();){var e=this.nextCharacter();if(e.value==="=")break}}parse(e){var t,n,s;for(this.consumeDimensions();!this.isEof();)if(t=this.nextCharacter(),t.value==="{"&&!s)this.dimension++,this.dimension>1&&(n=new r(this.source.substr(this.position-1),this.transform),this.entries.push(n.parse(!0)),this.position+=n.position-2);else if(t.value==="}"&&!s){if(this.dimension--,!this.dimension&&(this.newEntry(),e))return this.entries}else t.value==='"'&&!t.escaped?(s&&this.newEntry(!0),s=!s):t.value===","&&!s?this.newEntry():this.record(t.value);if(this.dimension!==0)throw new Error("array dimension not balanced");return this.entries}};function Rs(r){return r}});var ot=g((pu,_r)=>{"use strict";l();var Os=it();_r.exports={create:function(r,e){return{parse:function(){return Os.parse(r,e)}}}}});var Pr=g((yu,xr)=>{"use strict";l();var Is=/(\d{1,})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})(\.\d{1,})?.*?( BC)?$/,Ms=/^(\d{1,})-(\d{2})-(\d{2})( BC)?$/,qs=/([Z+-])(\d{2})?:?(\d{2})?:?(\d{2})?/,Ds=/^-?infinity$/;xr.exports=function(e){if(Ds.test(e))return Number(e.replace("i","I"));var t=Is.exec(e);if(!t)return Ls(e)||null;var n=!!t[8],s=parseInt(t[1],10);n&&(s=Cr(s));var i=parseInt(t[2],10)-1,o=t[3],a=parseInt(t[4],10),u=parseInt(t[5],10),c=parseInt(t[6],10),h=t[7];h=h?1e3*parseFloat(h):0;var d,p=Qs(e);return p!=null?(d=new Date(Date.UTC(s,i,o,a,u,c,h)),at(s)&&d.setUTCFullYear(s),p!==0&&d.setTime(d.getTime()-p)):(d=new Date(s,i,o,a,u,c,h),at(s)&&d.setFullYear(s)),d};function Ls(r){var e=Ms.exec(r);if(e){var t=parseInt(e[1],10),n=!!e[4];n&&(t=Cr(t));var s=parseInt(e[2],10)-1,i=e[3],o=new Date(t,s,i);return at(t)&&o.setFullYear(t),o}}function Qs(r){if(r.endsWith("+00"))return 0;var e=qs.exec(r.split(" ")[1]);if(e){var t=e[1];if(t==="Z")return 0;var n=t==="-"?-1:1,s=parseInt(e[2],10)*3600+parseInt(e[3]||0,10)*60+parseInt(e[4]||0,10);return s*n*1e3}}function Cr(r){return-(r-1)}function at(r){return r>=0&&r<100}});var Tr=g((bu,Ar)=>{"use strict";l();Ar.exports=Bs;var Ns=Object.prototype.hasOwnProperty;function Bs(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Ns.call(t,n)&&(r[n]=t[n])}return r}});var Ir=g((Su,Or)=>{"use strict";l();var Fs=Tr();Or.exports=J;function J(r){if(!(this instanceof J))return new J(r);Fs(this,Xs(r))}var Us=["seconds","minutes","hours","days","months","years"];J.prototype.toPostgres=function(){var r=Us.filter(this.hasOwnProperty,this);return this.milliseconds&&r.indexOf("seconds")<0&&r.push("seconds"),r.length===0?"0":r.map(function(e){var t=this[e]||0;return e==="seconds"&&this.milliseconds&&(t=(t+this.milliseconds/1e3).toFixed(6).replace(/\.?0+$/,"")),t+" "+e},this).join(" ")};var js={years:"Y",months:"M",days:"D",hours:"H",minutes:"M",seconds:"S"},$s=["years","months","days"],Hs=["hours","minutes","seconds"];J.prototype.toISOString=J.prototype.toISO=function(){var r=$s.map(t,this).join(""),e=Hs.map(t,this).join("");return"P"+r+"T"+e;function t(n){var s=this[n]||0;return n==="seconds"&&this.milliseconds&&(s=(s+this.milliseconds/1e3).toFixed(6).replace(/0+$/,"")),s+js[n]}};var ct="([+-]?\\d+)",zs=ct+"\\s+years?",Ks=ct+"\\s+mons?",Gs=ct+"\\s+days?",Vs="([+-])?([\\d]*):(\\d\\d):(\\d\\d)\\.?(\\d{1,6})?",Ws=new RegExp([zs,Ks,Gs,Vs].map(function(r){return"("+r+")?"}).join("\\s*")),Rr={years:2,months:4,days:6,hours:9,minutes:10,seconds:11,milliseconds:12},Js=["hours","minutes","seconds","milliseconds"];function Ys(r){var e=r+"000000".slice(r.length);return parseInt(e,10)/1e3}function Xs(r){if(!r)return{};var e=Ws.exec(r),t=e[8]==="-";return Object.keys(Rr).reduce(function(n,s){var i=Rr[s],o=e[i];return!o||(o=s==="milliseconds"?Ys(o):parseInt(o,10),!o)||(t&&~Js.indexOf(s)&&(o*=-1),n[s]=o),n},{})}});var Dr=g((Eu,qr)=>{"use strict";l();var Mr=Buffer.from||Buffer;qr.exports=function(e){if(/^\\x/.test(e))return Mr(e.substr(2),"hex");for(var t="",n=0;n<e.length;)if(e[n]!=="\\")t+=e[n],++n;else if(/[0-7]{3}/.test(e.substr(n+1,3)))t+=String.fromCharCode(parseInt(e.substr(n+1,3),8)),n+=4;else{for(var s=1;n+s<e.length&&e[n+s]==="\\";)s++;for(var i=0;i<Math.floor(s/2);++i)t+="\\";n+=Math.floor(s/2)*2}return Mr(t,"binary")}});var jr=g((_u,Ur)=>{"use strict";l();var ce=it(),ue=ot(),Re=Pr(),Qr=Ir(),Nr=Dr();function Oe(r){return function(t){return t===null?t:r(t)}}function Br(r){return r===null?r:r==="TRUE"||r==="t"||r==="true"||r==="y"||r==="yes"||r==="on"||r==="1"}function Zs(r){return r?ce.parse(r,Br):null}function ei(r){return parseInt(r,10)}function ut(r){return r?ce.parse(r,Oe(ei)):null}function ti(r){return r?ce.parse(r,Oe(function(e){return Fr(e).trim()})):null}var ri=function(r){if(!r)return null;var e=ue.create(r,function(t){return t!==null&&(t=ft(t)),t});return e.parse()},lt=function(r){if(!r)return null;var e=ue.create(r,function(t){return t!==null&&(t=parseFloat(t)),t});return e.parse()},M=function(r){if(!r)return null;var e=ue.create(r);return e.parse()},ht=function(r){if(!r)return null;var e=ue.create(r,function(t){return t!==null&&(t=Re(t)),t});return e.parse()},ni=function(r){if(!r)return null;var e=ue.create(r,function(t){return t!==null&&(t=Qr(t)),t});return e.parse()},si=function(r){return r?ce.parse(r,Oe(Nr)):null},dt=function(r){return parseInt(r,10)},Fr=function(r){var e=String(r);return/^\d+$/.test(e)?e:r},Lr=function(r){return r?ce.parse(r,Oe(JSON.parse)):null},ft=function(r){return r[0]!=="("?null:(r=r.substring(1,r.length-1).split(","),{x:parseFloat(r[0]),y:parseFloat(r[1])})},ii=function(r){if(r[0]!=="<"&&r[1]!=="(")return null;for(var e="(",t="",n=!1,s=2;s<r.length-1;s++){if(n||(e+=r[s]),r[s]===")"){n=!0;continue}else if(!n)continue;r[s]!==","&&(t+=r[s])}var i=ft(e);return i.radius=parseFloat(t),i},oi=function(r){r(20,Fr),r(21,dt),r(23,dt),r(26,dt),r(700,parseFloat),r(701,parseFloat),r(16,Br),r(1082,Re),r(1114,Re),r(1184,Re),r(600,ft),r(651,M),r(718,ii),r(1e3,Zs),r(1001,si),r(1005,ut),r(1007,ut),r(1028,ut),r(1016,ti),r(1017,ri),r(1021,lt),r(1022,lt),r(1231,lt),r(1014,M),r(1015,M),r(1008,M),r(1009,M),r(1040,M),r(1041,M),r(1115,ht),r(1182,ht),r(1185,ht),r(1186,Qr),r(1187,ni),r(17,Nr),r(114,JSON.parse.bind(JSON)),r(3802,JSON.parse.bind(JSON)),r(199,Lr),r(3807,Lr),r(3907,M),r(2951,M),r(791,M),r(1183,M),r(1270,M)};Ur.exports={init:oi}});var Hr=g((xu,$r)=>{"use strict";l();var T=1e6;function ai(r){var e=r.readInt32BE(0),t=r.readUInt32BE(4),n="";e<0&&(e=~e+(t===0),t=~t+1>>>0,n="-");var s="",i,o,a,u,c,h;{if(i=e%T,e=e/T>>>0,o=4294967296*i+t,t=o/T>>>0,a=""+(o-T*t),t===0&&e===0)return n+a+s;for(u="",c=6-a.length,h=0;h<c;h++)u+="0";s=u+a+s}{if(i=e%T,e=e/T>>>0,o=4294967296*i+t,t=o/T>>>0,a=""+(o-T*t),t===0&&e===0)return n+a+s;for(u="",c=6-a.length,h=0;h<c;h++)u+="0";s=u+a+s}{if(i=e%T,e=e/T>>>0,o=4294967296*i+t,t=o/T>>>0,a=""+(o-T*t),t===0&&e===0)return n+a+s;for(u="",c=6-a.length,h=0;h<c;h++)u+="0";s=u+a+s}return i=e%T,o=4294967296*i+t,a=""+o%T,n+a+s}$r.exports=ai});var Wr=g((Au,Vr)=>{"use strict";l();var ci=Hr(),S=function(r,e,t,n,s){t=t||0,n=n||!1,s=s||function(m,b,R){return m*Math.pow(2,R)+b};var i=t>>3,o=function(m){return n?~m&255:m},a=255,u=8-t%8;e<u&&(a=255<<8-e&255,u=e),t&&(a=a>>t%8);var c=0;t%8+e>=8&&(c=s(0,o(r[i])&a,u));for(var h=e+t>>3,d=i+1;d<h;d++)c=s(c,o(r[d]),8);var p=(e+t)%8;return p>0&&(c=s(c,o(r[h])>>8-p,p)),c},Gr=function(r,e,t){var n=Math.pow(2,t-1)-1,s=S(r,1),i=S(r,t,1);if(i===0)return 0;var o=1,a=function(c,h,d){c===0&&(c=1);for(var p=1;p<=d;p++)o/=2,(h&1<<d-p)>0&&(c+=o);return c},u=S(r,e,t+1,!1,a);return i==Math.pow(2,t+1)-1?u===0?s===0?1/0:-1/0:NaN:(s===0?1:-1)*Math.pow(2,i-n)*u},ui=function(r){return S(r,1)==1?-1*(S(r,15,1,!0)+1):S(r,15,1)},zr=function(r){return S(r,1)==1?-1*(S(r,31,1,!0)+1):S(r,31,1)},li=function(r){return Gr(r,23,8)},hi=function(r){return Gr(r,52,11)},di=function(r){var e=S(r,16,32);if(e==49152)return NaN;for(var t=Math.pow(1e4,S(r,16,16)),n=0,s=[],i=S(r,16),o=0;o<i;o++)n+=S(r,16,64+16*o)*t,t/=1e4;var a=Math.pow(10,S(r,16,48));return(e===0?1:-1)*Math.round(n*a)/a},Kr=function(r,e){var t=S(e,1),n=S(e,63,1),s=new Date((t===0?1:-1)*n/1e3+9466848e5);return r||s.setTime(s.getTime()+s.getTimezoneOffset()*6e4),s.usec=n%1e3,s.getMicroSeconds=function(){return this.usec},s.setMicroSeconds=function(i){this.usec=i},s.getUTCMicroSeconds=function(){return this.usec},s},le=function(r){for(var e=S(r,32),t=S(r,32,32),n=S(r,32,64),s=96,i=[],o=0;o<e;o++)i[o]=S(r,32,s),s+=32,s+=32;var a=function(c){var h=S(r,32,s);if(s+=32,h==4294967295)return null;var d;if(c==23||c==20)return d=S(r,h*8,s),s+=h*8,d;if(c==25)return d=r.toString(this.encoding,s>>3,(s+=h<<3)>>3),d;console.log("ERROR: ElementType not implemented: "+c)},u=function(c,h){var d=[],p;if(c.length>1){var m=c.shift();for(p=0;p<m;p++)d[p]=u(c,h);c.unshift(m)}else for(p=0;p<c[0];p++)d[p]=a(h);return d};return u(i,n)},fi=function(r){return r.toString("utf8")},pi=function(r){return r===null?null:S(r,8)>0},mi=function(r){r(20,ci),r(21,ui),r(23,zr),r(26,zr),r(1700,di),r(700,li),r(701,hi),r(16,pi),r(1114,Kr.bind(null,!1)),r(1184,Kr.bind(null,!0)),r(1e3,le),r(1007,le),r(1016,le),r(1008,le),r(1009,le),r(25,fi)};Vr.exports={init:mi}});var Yr=g((Ru,Jr)=>{"use strict";l();Jr.exports={BOOL:16,BYTEA:17,CHAR:18,INT8:20,INT2:21,INT4:23,REGPROC:24,TEXT:25,OID:26,TID:27,XID:28,CID:29,JSON:114,XML:142,PG_NODE_TREE:194,SMGR:210,PATH:602,POLYGON:604,CIDR:650,FLOAT4:700,FLOAT8:701,ABSTIME:702,RELTIME:703,TINTERVAL:704,CIRCLE:718,MACADDR8:774,MONEY:790,MACADDR:829,INET:869,ACLITEM:1033,BPCHAR:1042,VARCHAR:1043,DATE:1082,TIME:1083,TIMESTAMP:1114,TIMESTAMPTZ:1184,INTERVAL:1186,TIMETZ:1266,BIT:1560,VARBIT:1562,NUMERIC:1700,REFCURSOR:1790,REGPROCEDURE:2202,REGOPER:2203,REGOPERATOR:2204,REGCLASS:2205,REGTYPE:2206,UUID:2950,TXID_SNAPSHOT:2970,PG_LSN:3220,PG_NDISTINCT:3361,PG_DEPENDENCIES:3402,TSVECTOR:3614,TSQUERY:3615,GTSVECTOR:3642,REGCONFIG:3734,REGDICTIONARY:3769,JSONB:3802,REGNAMESPACE:4089,REGROLE:4096}});var fe=g(de=>{"use strict";l();var yi=jr(),gi=Wr(),bi=ot(),wi=Yr();de.getTypeParser=Si;de.setTypeParser=vi;de.arrayParser=bi;de.builtins=wi;var he={text:{},binary:{}};function Xr(r){return String(r)}function Si(r,e){return e=e||"text",he[e]&&he[e][r]||Xr}function vi(r,e,t){typeof e=="function"&&(t=e,e="text"),he[e][r]=t}yi.init(function(r,e){he.text[r]=e});gi.init(function(r,e){he.binary[r]=e})});var pe=g((qu,pt)=>{"use strict";l();var Zr;try{Zr=process.platform==="win32"?process.env.USERNAME:process.env.USER}catch{}pt.exports={host:"localhost",user:Zr,database:void 0,password:null,connectionString:void 0,port:5432,rows:0,binary:!1,max:10,idleTimeoutMillis:3e4,client_encoding:"",ssl:!1,application_name:void 0,fallback_application_name:void 0,options:void 0,parseInputDatesAsUTC:!1,statement_timeout:!1,lock_timeout:!1,idle_in_transaction_session_timeout:!1,query_timeout:!1,connect_timeout:0,keepalives:1,keepalives_idle:0};var Y=fe(),Ei=Y.getTypeParser(20,"text"),ki=Y.getTypeParser(1016,"text");pt.exports.__defineSetter__("parseInt8",function(r){Y.setTypeParser(20,"text",r?Y.getTypeParser(23,"text"):Ei),Y.setTypeParser(1016,"text",r?Y.getTypeParser(1007,"text"):ki)})});var X=g((Lu,rn)=>{"use strict";l();var _i=pe(),en=require("util"),{isDate:Ci}=en.types||en;function xi(r){return'"'+r.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'}function tn(r){let e="{";for(let t=0;t<r.length;t++)if(t>0&&(e=e+","),r[t]===null||typeof r[t]>"u")e=e+"NULL";else if(Array.isArray(r[t]))e=e+tn(r[t]);else if(ArrayBuffer.isView(r[t])){let n=r[t];if(!(n instanceof Buffer)){let s=Buffer.from(n.buffer,n.byteOffset,n.byteLength);s.length===n.byteLength?n=s:n=s.slice(n.byteOffset,n.byteOffset+n.byteLength)}e+="\\\\x"+n.toString("hex")}else e+=xi(Ie(r[t]));return e=e+"}",e}var Ie=function(r,e){if(r==null)return null;if(typeof r=="object"){if(r instanceof Buffer)return r;if(ArrayBuffer.isView(r)){let t=Buffer.from(r.buffer,r.byteOffset,r.byteLength);return t.length===r.byteLength?t:t.slice(r.byteOffset,r.byteOffset+r.byteLength)}return Ci(r)?_i.parseInputDatesAsUTC?Ti(r):Ai(r):Array.isArray(r)?tn(r):Pi(r,e)}return r.toString()};function Pi(r,e){if(r&&typeof r.toPostgres=="function"){if(e=e||[],e.indexOf(r)!==-1)throw new Error('circular reference detected while preparing "'+r+'" for query');return e.push(r),Ie(r.toPostgres(Ie),e)}return JSON.stringify(r)}function Ai(r){let e=-r.getTimezoneOffset(),t=r.getFullYear(),n=t<1;n&&(t=Math.abs(t)+1);let s=String(t).padStart(4,"0")+"-"+String(r.getMonth()+1).padStart(2,"0")+"-"+String(r.getDate()).padStart(2,"0")+"T"+String(r.getHours()).padStart(2,"0")+":"+String(r.getMinutes()).padStart(2,"0")+":"+String(r.getSeconds()).padStart(2,"0")+"."+String(r.getMilliseconds()).padStart(3,"0");return e<0?(s+="-",e*=-1):s+="+",s+=String(Math.floor(e/60)).padStart(2,"0")+":"+String(e%60).padStart(2,"0"),n&&(s+=" BC"),s}function Ti(r){let e=r.getUTCFullYear(),t=e<1;t&&(e=Math.abs(e)+1);let n=String(e).padStart(4,"0")+"-"+String(r.getUTCMonth()+1).padStart(2,"0")+"-"+String(r.getUTCDate()).padStart(2,"0")+"T"+String(r.getUTCHours()).padStart(2,"0")+":"+String(r.getUTCMinutes()).padStart(2,"0")+":"+String(r.getUTCSeconds()).padStart(2,"0")+"."+String(r.getUTCMilliseconds()).padStart(3,"0");return n+="+00:00",t&&(n+=" BC"),n}function Ri(r,e,t){return r=typeof r=="string"?{text:r}:r,e&&(typeof e=="function"?r.callback=e:r.values=e),t&&(r.callback=t),r}var Oi=function(r){return'"'+r.replace(/"/g,'""')+'"'},Ii=function(r){let e=!1,t="'";if(r==null||typeof r!="string")return"''";for(let n=0;n<r.length;n++){let s=r[n];s==="'"?t+=s+s:s==="\\"?(t+=s+s,e=!0):t+=s}return t+="'",e===!0&&(t=" E"+t),t};rn.exports={prepareValue:function(e){return Ie(e)},normalizeQueryConfig:Ri,escapeIdentifier:Oi,escapeLiteral:Ii}});var sn=g((Nu,nn)=>{"use strict";l();var Z=require("crypto");function mt(r){return Z.createHash("md5").update(r,"utf-8").digest("hex")}function Mi(r,e,t){let n=mt(e+r);return"md5"+mt(Buffer.concat([Buffer.from(n),t]))}function qi(r){return Z.createHash("sha256").update(r).digest()}function Di(r,e){return r=r.replace(/(\D)-/,"$1"),Z.createHash(r).update(e).digest()}function Li(r,e){return Z.createHmac("sha256",r).update(e).digest()}async function Qi(r,e,t){return Z.pbkdf2Sync(r,e,t,32,"sha256")}nn.exports={postgresMd5PasswordHash:Mi,randomBytes:Z.randomBytes,deriveKey:Qi,sha256:qi,hashByName:Di,hmacSha256:Li,md5:mt}});var un=g((Fu,cn)=>{"use strict";l();var on=require("crypto");cn.exports={postgresMd5PasswordHash:Bi,randomBytes:Ni,deriveKey:$i,sha256:Fi,hashByName:Ui,hmacSha256:ji,md5:yt};var an=on.webcrypto||globalThis.crypto,G=an.subtle,gt=new TextEncoder;function Ni(r){return an.getRandomValues(Buffer.alloc(r))}async function yt(r){try{return on.createHash("md5").update(r,"utf-8").digest("hex")}catch{let t=typeof r=="string"?gt.encode(r):r,n=await G.digest("MD5",t);return Array.from(new Uint8Array(n)).map(s=>s.toString(16).padStart(2,"0")).join("")}}async function Bi(r,e,t){let n=await yt(e+r);return"md5"+await yt(Buffer.concat([Buffer.from(n),t]))}async function Fi(r){return await G.digest("SHA-256",r)}async function Ui(r,e){return await G.digest(r,e)}async function ji(r,e){let t=await G.importKey("raw",r,{name:"HMAC",hash:"SHA-256"},!1,["sign"]);return await G.sign("HMAC",t,gt.encode(e))}async function $i(r,e,t){let n=await G.importKey("raw",gt.encode(r),"PBKDF2",!1,["deriveBits"]),s={name:"PBKDF2",hash:"SHA-256",salt:e,iterations:t};return await G.deriveBits(s,n,256,["deriveBits"])}});var wt=g((ju,bt)=>{"use strict";l();var Hi=parseInt(process.versions&&process.versions.node&&process.versions.node.split(".")[0])<15;Hi?bt.exports=sn():bt.exports=un()});var dn=g((Hu,hn)=>{"use strict";l();function V(r,e){return new Error("SASL channel binding: "+r+" when parsing public certificate "+e.toString("base64"))}function St(r,e){let t=r[e++];if(t<128)return{length:t,index:e};let n=t&127;if(n>4)throw V("bad length",r);t=0;for(let s=0;s<n;s++)t=t<<8|r[e++];return{length:t,index:e}}function ln(r,e){if(r[e++]!==6)throw V("non-OID data",r);let{length:t,index:n}=St(r,e);e=n;let s=e+t,i=r[e++],o=(i/40>>0)+"."+i%40;for(;e<s;){let a=0;for(;e<s;){let u=r[e++];if(a=a<<7|u&127,u<128)break}o+="."+a}return{oid:o,index:e}}function me(r,e){if(r[e++]!==48)throw V("non-sequence data",r);return St(r,e)}function zi(r,e){e===void 0&&(e=0),e=me(r,e).index;let{length:t,index:n}=me(r,e);e=n+t,e=me(r,e).index;let{oid:s,index:i}=ln(r,e);switch(s){case"1.2.840.113549.1.1.4":return"MD5";case"1.2.840.113549.1.1.5":return"SHA-1";case"1.2.840.113549.1.1.11":return"SHA-256";case"1.2.840.113549.1.1.12":return"SHA-384";case"1.2.840.113549.1.1.13":return"SHA-512";case"1.2.840.113549.1.1.14":return"SHA-224";case"1.2.840.113549.1.1.15":return"SHA512-224";case"1.2.840.113549.1.1.16":return"SHA512-256";case"1.2.840.10045.4.1":return"SHA-1";case"1.2.840.10045.4.3.1":return"SHA-224";case"1.2.840.10045.4.3.2":return"SHA-256";case"1.2.840.10045.4.3.3":return"SHA-384";case"1.2.840.10045.4.3.4":return"SHA-512";case"1.2.840.113549.1.1.10":{if(e=i,e=me(r,e).index,r[e++]!==160)throw V("non-tag data",r);e=St(r,e).index,e=me(r,e).index;let{oid:o}=ln(r,e);switch(o){case"1.2.840.113549.2.5":return"MD5";case"1.3.14.3.2.26":return"SHA-1";case"2.16.840.1.101.3.4.2.1":return"SHA-256";case"2.16.840.1.101.3.4.2.2":return"SHA-384";case"2.16.840.1.101.3.4.2.3":return"SHA-512"}throw V("unknown hash OID "+o,r)}case"1.3.101.110":case"1.3.101.112":return"SHA-512";case"1.3.101.111":case"1.3.101.113":throw V("Ed448 certificate channel binding is not currently supported by Postgres")}throw V("unknown OID "+s,r)}hn.exports={signatureAlgorithmHashFromCertificate:zi}});var yn=g((Ku,mn)=>{"use strict";l();var $=wt(),{signatureAlgorithmHashFromCertificate:Ki}=dn();function Gi(r,e){let t=["SCRAM-SHA-256"];e&&t.unshift("SCRAM-SHA-256-PLUS");let n=t.find(o=>r.includes(o));if(!n)throw new Error("SASL: Only mechanism(s) "+t.join(" and ")+" are supported");if(n==="SCRAM-SHA-256-PLUS"&&typeof e.getPeerCertificate!="function")throw new Error("SASL: Mechanism SCRAM-SHA-256-PLUS requires a certificate");let s=$.randomBytes(18).toString("base64");return{mechanism:n,clientNonce:s,response:(n==="SCRAM-SHA-256-PLUS"?"p=tls-server-end-point":e?"y":"n")+",,n=*,r="+s,message:"SASLInitialResponse"}}async function Vi(r,e,t,n){if(r.message!=="SASLInitialResponse")throw new Error("SASL: Last message was not SASLInitialResponse");if(typeof e!="string")throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string");if(e==="")throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a non-empty string");if(typeof t!="string")throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: serverData must be a string");let s=Yi(t);if(s.nonce.startsWith(r.clientNonce)){if(s.nonce.length===r.clientNonce.length)throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: server nonce is too short")}else throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: server nonce does not start with client nonce");let i="n=*,r="+r.clientNonce,o="r="+s.nonce+",s="+s.salt+",i="+s.iteration,a=n?"eSws":"biws";if(r.mechanism==="SCRAM-SHA-256-PLUS"){let W=n.getPeerCertificate().raw,be=Ki(W);(be==="MD5"||be==="SHA-1")&&(be="SHA-256");let vs=await $.hashByName(be,W);a=Buffer.concat([Buffer.from("p=tls-server-end-point,,"),Buffer.from(vs)]).toString("base64")}let u="c="+a+",r="+s.nonce,c=i+","+o+","+u,h=Buffer.from(s.salt,"base64"),d=await $.deriveKey(e,h,s.iteration),p=await $.hmacSha256(d,"Client Key"),m=await $.sha256(p),b=await $.hmacSha256(m,c),R=Zi(Buffer.from(p),Buffer.from(b)).toString("base64"),Ye=await $.hmacSha256(d,"Server Key"),Xe=await $.hmacSha256(Ye,c);r.message="SASLResponse",r.serverSignature=Buffer.from(Xe).toString("base64"),r.response=u+",p="+R}function Wi(r,e){if(r.message!=="SASLResponse")throw new Error("SASL: Last message was not SASLResponse");if(typeof e!="string")throw new Error("SASL: SCRAM-SERVER-FINAL-MESSAGE: serverData must be a string");let{serverSignature:t}=Xi(e);if(t!==r.serverSignature)throw new Error("SASL: SCRAM-SERVER-FINAL-MESSAGE: server signature does not match")}function Ji(r){if(typeof r!="string")throw new TypeError("SASL: text must be a string");return r.split("").map((e,t)=>r.charCodeAt(t)).every(e=>e>=33&&e<=43||e>=45&&e<=126)}function fn(r){return/^(?:[a-zA-Z0-9+/]{4})*(?:[a-zA-Z0-9+/]{2}==|[a-zA-Z0-9+/]{3}=)?$/.test(r)}function pn(r){if(typeof r!="string")throw new TypeError("SASL: attribute pairs text must be a string");return new Map(r.split(",").map(e=>{if(!/^.=/.test(e))throw new Error("SASL: Invalid attribute pair entry");let t=e[0],n=e.substring(2);return[t,n]}))}function Yi(r){let e=pn(r),t=e.get("r");if(t){if(!Ji(t))throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: nonce must only contain printable characters")}else throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: nonce missing");let n=e.get("s");if(n){if(!fn(n))throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: salt must be base64")}else throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: salt missing");let s=e.get("i");if(s){if(!/^[1-9][0-9]*$/.test(s))throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: invalid iteration count")}else throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: iteration missing");let i=parseInt(s,10);return{nonce:t,salt:n,iteration:i}}function Xi(r){let t=pn(r).get("v");if(t){if(!fn(t))throw new Error("SASL: SCRAM-SERVER-FINAL-MESSAGE: server signature must be base64")}else throw new Error("SASL: SCRAM-SERVER-FINAL-MESSAGE: server signature is missing");return{serverSignature:t}}function Zi(r,e){if(!Buffer.isBuffer(r))throw new TypeError("first argument must be a Buffer");if(!Buffer.isBuffer(e))throw new TypeError("second argument must be a Buffer");if(r.length!==e.length)throw new Error("Buffer lengths must match");if(r.length===0)throw new Error("Buffers cannot be empty");return Buffer.from(r.map((t,n)=>r[n]^e[n]))}mn.exports={startSession:Gi,continueSession:Vi,finalizeSession:Wi}});var qe=g((Vu,gn)=>{"use strict";l();var eo=fe();function Me(r){this._types=r||eo,this.text={},this.binary={}}Me.prototype.getOverrides=function(r){switch(r){case"text":return this.text;case"binary":return this.binary;default:return{}}};Me.prototype.setTypeParser=function(r,e,t){typeof e=="function"&&(t=e,e="text"),this.getOverrides(e)[r]=t};Me.prototype.getTypeParser=function(r,e){return e=e||"text",this.getOverrides(e)[r]||this._types.getTypeParser(r,e)};gn.exports=Me});var Sn=g((Ju,wn)=>{"use strict";l();function ee(r,e={}){if(r.charAt(0)==="/"){let u=r.split(" ");return{host:u[0],database:u[1]}}let t={},n,s=!1;/ |%[^a-f0-9]|%[a-f0-9][^a-f0-9]/i.test(r)&&(r=encodeURI(r).replace(/%25(\d\d)/g,"%$1"));try{try{n=new URL(r,"postgres://base")}catch{n=new URL(r.replace("@/","@___DUMMY___/"),"postgres://base"),s=!0}}catch(u){throw u.input&&(u.input="*****REDACTED*****"),u}for(let u of n.searchParams.entries())t[u[0]]=u[1];if(t.user=t.user||decodeURIComponent(n.username),t.password=t.password||decodeURIComponent(n.password),n.protocol=="socket:")return t.host=decodeURI(n.pathname),t.database=n.searchParams.get("db"),t.client_encoding=n.searchParams.get("encoding"),t;let i=s?"":n.hostname;t.host?i&&/^%2f/i.test(i)&&(n.pathname=i+n.pathname):t.host=decodeURIComponent(i),t.port||(t.port=n.port);let o=n.pathname.slice(1)||null;t.database=o?decodeURI(o):null,(t.ssl==="true"||t.ssl==="1")&&(t.ssl=!0),t.ssl==="0"&&(t.ssl=!1),(t.sslcert||t.sslkey||t.sslrootcert||t.sslmode)&&(t.ssl={});let a=t.sslcert||t.sslkey||t.sslrootcert?require("fs"):null;if(t.sslcert&&(t.ssl.cert=a.readFileSync(t.sslcert).toString()),t.sslkey&&(t.ssl.key=a.readFileSync(t.sslkey).toString()),t.sslrootcert&&(t.ssl.ca=a.readFileSync(t.sslrootcert).toString()),e.useLibpqCompat&&t.uselibpqcompat)throw new Error("Both useLibpqCompat and uselibpqcompat are set. Please use only one of them.");if(t.uselibpqcompat==="true"||e.useLibpqCompat)switch(t.sslmode){case"disable":{t.ssl=!1;break}case"prefer":{t.ssl.rejectUnauthorized=!1;break}case"require":{t.sslrootcert?t.ssl.checkServerIdentity=function(){}:t.ssl.rejectUnauthorized=!1;break}case"verify-ca":{if(!t.ssl.ca)throw new Error("SECURITY WARNING: Using sslmode=verify-ca requires specifying a CA with sslrootcert. If a public CA is used, verify-ca allows connections to a server that somebody else may have registered with the CA, making you vulnerable to Man-in-the-Middle attacks. Either specify a custom CA certificate with sslrootcert parameter or use sslmode=verify-full for proper security.");t.ssl.checkServerIdentity=function(){};break}case"verify-full":break}else switch(t.sslmode){case"disable":{t.ssl=!1;break}case"prefer":case"require":case"verify-ca":case"verify-full":{t.sslmode!=="verify-full"&&vt(t.sslmode);break}case"no-verify":{t.ssl.rejectUnauthorized=!1;break}}return t}function to(r){return Object.entries(r).reduce((t,[n,s])=>(s!=null&&(t[n]=s),t),{})}function bn(r){return Object.entries(r).reduce((t,[n,s])=>{if(n==="ssl"){let i=s;typeof i=="boolean"&&(t[n]=i),typeof i=="object"&&(t[n]=to(i))}else if(s!=null)if(n==="port"){if(s!==""){let i=parseInt(s,10);if(isNaN(i))throw new Error(`Invalid ${n}: ${s}`);t[n]=i}}else t[n]=s;return t},{})}function ro(r){return bn(ee(r))}function vt(r){!vt.warned&&typeof process<"u"&&process.emitWarning&&(vt.warned=!0,process.emitWarning(`SECURITY WARNING: The SSL modes 'prefer', 'require', and 'verify-ca' are treated as aliases for 'verify-full'.
|
|
1
|
+
"use strict";var Es=Object.create;var we=Object.defineProperty;var ks=Object.getOwnPropertyDescriptor;var _s=Object.getOwnPropertyNames;var Cs=Object.getPrototypeOf,xs=Object.prototype.hasOwnProperty;var ur=(r,e)=>()=>(r&&(e=r(r=0)),e);var g=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),lr=(r,e)=>{for(var t in e)we(r,t,{get:e[t],enumerable:!0})},hr=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of _s(e))!xs.call(r,s)&&s!==t&&we(r,s,{get:()=>e[s],enumerable:!(n=ks(e,s))||n.enumerable});return r};var E=(r,e,t)=>(t=r!=null?Es(Cs(r)):{},hr(e||!r||!r.__esModule?we(t,"default",{value:r,enumerable:!0}):t,r)),Ps=r=>hr(we({},"__esModule",{value:!0}),r);var l=ur(()=>{"use strict"});var it=g(kr=>{"use strict";l();kr.parse=function(r,e){return new st(r,e).parse()};var st=class r{constructor(e,t){this.source=e,this.transform=t||Ts,this.position=0,this.entries=[],this.recorded=[],this.dimension=0}isEof(){return this.position>=this.source.length}nextCharacter(){var e=this.source[this.position++];return e==="\\"?{value:this.source[this.position++],escaped:!0}:{value:e,escaped:!1}}record(e){this.recorded.push(e)}newEntry(e){var t;(this.recorded.length>0||e)&&(t=this.recorded.join(""),t==="NULL"&&!e&&(t=null),t!==null&&(t=this.transform(t)),this.entries.push(t),this.recorded=[])}consumeDimensions(){if(this.source[0]==="[")for(;!this.isEof();){var e=this.nextCharacter();if(e.value==="=")break}}parse(e){var t,n,s;for(this.consumeDimensions();!this.isEof();)if(t=this.nextCharacter(),t.value==="{"&&!s)this.dimension++,this.dimension>1&&(n=new r(this.source.substr(this.position-1),this.transform),this.entries.push(n.parse(!0)),this.position+=n.position-2);else if(t.value==="}"&&!s){if(this.dimension--,!this.dimension&&(this.newEntry(),e))return this.entries}else t.value==='"'&&!t.escaped?(s&&this.newEntry(!0),s=!s):t.value===","&&!s?this.newEntry():this.record(t.value);if(this.dimension!==0)throw new Error("array dimension not balanced");return this.entries}};function Ts(r){return r}});var ot=g((pu,_r)=>{"use strict";l();var Os=it();_r.exports={create:function(r,e){return{parse:function(){return Os.parse(r,e)}}}}});var Pr=g((yu,xr)=>{"use strict";l();var Is=/(\d{1,})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})(\.\d{1,})?.*?( BC)?$/,Ms=/^(\d{1,})-(\d{2})-(\d{2})( BC)?$/,qs=/([Z+-])(\d{2})?:?(\d{2})?:?(\d{2})?/,Ds=/^-?infinity$/;xr.exports=function(e){if(Ds.test(e))return Number(e.replace("i","I"));var t=Is.exec(e);if(!t)return Ls(e)||null;var n=!!t[8],s=parseInt(t[1],10);n&&(s=Cr(s));var i=parseInt(t[2],10)-1,o=t[3],a=parseInt(t[4],10),u=parseInt(t[5],10),c=parseInt(t[6],10),h=t[7];h=h?1e3*parseFloat(h):0;var d,p=Qs(e);return p!=null?(d=new Date(Date.UTC(s,i,o,a,u,c,h)),at(s)&&d.setUTCFullYear(s),p!==0&&d.setTime(d.getTime()-p)):(d=new Date(s,i,o,a,u,c,h),at(s)&&d.setFullYear(s)),d};function Ls(r){var e=Ms.exec(r);if(e){var t=parseInt(e[1],10),n=!!e[4];n&&(t=Cr(t));var s=parseInt(e[2],10)-1,i=e[3],o=new Date(t,s,i);return at(t)&&o.setFullYear(t),o}}function Qs(r){if(r.endsWith("+00"))return 0;var e=qs.exec(r.split(" ")[1]);if(e){var t=e[1];if(t==="Z")return 0;var n=t==="-"?-1:1,s=parseInt(e[2],10)*3600+parseInt(e[3]||0,10)*60+parseInt(e[4]||0,10);return s*n*1e3}}function Cr(r){return-(r-1)}function at(r){return r>=0&&r<100}});var Rr=g((bu,Ar)=>{"use strict";l();Ar.exports=Bs;var Ns=Object.prototype.hasOwnProperty;function Bs(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Ns.call(t,n)&&(r[n]=t[n])}return r}});var Ir=g((Su,Or)=>{"use strict";l();var Fs=Rr();Or.exports=J;function J(r){if(!(this instanceof J))return new J(r);Fs(this,Xs(r))}var Us=["seconds","minutes","hours","days","months","years"];J.prototype.toPostgres=function(){var r=Us.filter(this.hasOwnProperty,this);return this.milliseconds&&r.indexOf("seconds")<0&&r.push("seconds"),r.length===0?"0":r.map(function(e){var t=this[e]||0;return e==="seconds"&&this.milliseconds&&(t=(t+this.milliseconds/1e3).toFixed(6).replace(/\.?0+$/,"")),t+" "+e},this).join(" ")};var js={years:"Y",months:"M",days:"D",hours:"H",minutes:"M",seconds:"S"},$s=["years","months","days"],Hs=["hours","minutes","seconds"];J.prototype.toISOString=J.prototype.toISO=function(){var r=$s.map(t,this).join(""),e=Hs.map(t,this).join("");return"P"+r+"T"+e;function t(n){var s=this[n]||0;return n==="seconds"&&this.milliseconds&&(s=(s+this.milliseconds/1e3).toFixed(6).replace(/0+$/,"")),s+js[n]}};var ct="([+-]?\\d+)",zs=ct+"\\s+years?",Ks=ct+"\\s+mons?",Gs=ct+"\\s+days?",Vs="([+-])?([\\d]*):(\\d\\d):(\\d\\d)\\.?(\\d{1,6})?",Ws=new RegExp([zs,Ks,Gs,Vs].map(function(r){return"("+r+")?"}).join("\\s*")),Tr={years:2,months:4,days:6,hours:9,minutes:10,seconds:11,milliseconds:12},Js=["hours","minutes","seconds","milliseconds"];function Ys(r){var e=r+"000000".slice(r.length);return parseInt(e,10)/1e3}function Xs(r){if(!r)return{};var e=Ws.exec(r),t=e[8]==="-";return Object.keys(Tr).reduce(function(n,s){var i=Tr[s],o=e[i];return!o||(o=s==="milliseconds"?Ys(o):parseInt(o,10),!o)||(t&&~Js.indexOf(s)&&(o*=-1),n[s]=o),n},{})}});var Dr=g((Eu,qr)=>{"use strict";l();var Mr=Buffer.from||Buffer;qr.exports=function(e){if(/^\\x/.test(e))return Mr(e.substr(2),"hex");for(var t="",n=0;n<e.length;)if(e[n]!=="\\")t+=e[n],++n;else if(/[0-7]{3}/.test(e.substr(n+1,3)))t+=String.fromCharCode(parseInt(e.substr(n+1,3),8)),n+=4;else{for(var s=1;n+s<e.length&&e[n+s]==="\\";)s++;for(var i=0;i<Math.floor(s/2);++i)t+="\\";n+=Math.floor(s/2)*2}return Mr(t,"binary")}});var jr=g((_u,Ur)=>{"use strict";l();var ce=it(),ue=ot(),Te=Pr(),Qr=Ir(),Nr=Dr();function Oe(r){return function(t){return t===null?t:r(t)}}function Br(r){return r===null?r:r==="TRUE"||r==="t"||r==="true"||r==="y"||r==="yes"||r==="on"||r==="1"}function Zs(r){return r?ce.parse(r,Br):null}function ei(r){return parseInt(r,10)}function ut(r){return r?ce.parse(r,Oe(ei)):null}function ti(r){return r?ce.parse(r,Oe(function(e){return Fr(e).trim()})):null}var ri=function(r){if(!r)return null;var e=ue.create(r,function(t){return t!==null&&(t=ft(t)),t});return e.parse()},lt=function(r){if(!r)return null;var e=ue.create(r,function(t){return t!==null&&(t=parseFloat(t)),t});return e.parse()},M=function(r){if(!r)return null;var e=ue.create(r);return e.parse()},ht=function(r){if(!r)return null;var e=ue.create(r,function(t){return t!==null&&(t=Te(t)),t});return e.parse()},ni=function(r){if(!r)return null;var e=ue.create(r,function(t){return t!==null&&(t=Qr(t)),t});return e.parse()},si=function(r){return r?ce.parse(r,Oe(Nr)):null},dt=function(r){return parseInt(r,10)},Fr=function(r){var e=String(r);return/^\d+$/.test(e)?e:r},Lr=function(r){return r?ce.parse(r,Oe(JSON.parse)):null},ft=function(r){return r[0]!=="("?null:(r=r.substring(1,r.length-1).split(","),{x:parseFloat(r[0]),y:parseFloat(r[1])})},ii=function(r){if(r[0]!=="<"&&r[1]!=="(")return null;for(var e="(",t="",n=!1,s=2;s<r.length-1;s++){if(n||(e+=r[s]),r[s]===")"){n=!0;continue}else if(!n)continue;r[s]!==","&&(t+=r[s])}var i=ft(e);return i.radius=parseFloat(t),i},oi=function(r){r(20,Fr),r(21,dt),r(23,dt),r(26,dt),r(700,parseFloat),r(701,parseFloat),r(16,Br),r(1082,Te),r(1114,Te),r(1184,Te),r(600,ft),r(651,M),r(718,ii),r(1e3,Zs),r(1001,si),r(1005,ut),r(1007,ut),r(1028,ut),r(1016,ti),r(1017,ri),r(1021,lt),r(1022,lt),r(1231,lt),r(1014,M),r(1015,M),r(1008,M),r(1009,M),r(1040,M),r(1041,M),r(1115,ht),r(1182,ht),r(1185,ht),r(1186,Qr),r(1187,ni),r(17,Nr),r(114,JSON.parse.bind(JSON)),r(3802,JSON.parse.bind(JSON)),r(199,Lr),r(3807,Lr),r(3907,M),r(2951,M),r(791,M),r(1183,M),r(1270,M)};Ur.exports={init:oi}});var Hr=g((xu,$r)=>{"use strict";l();var R=1e6;function ai(r){var e=r.readInt32BE(0),t=r.readUInt32BE(4),n="";e<0&&(e=~e+(t===0),t=~t+1>>>0,n="-");var s="",i,o,a,u,c,h;{if(i=e%R,e=e/R>>>0,o=4294967296*i+t,t=o/R>>>0,a=""+(o-R*t),t===0&&e===0)return n+a+s;for(u="",c=6-a.length,h=0;h<c;h++)u+="0";s=u+a+s}{if(i=e%R,e=e/R>>>0,o=4294967296*i+t,t=o/R>>>0,a=""+(o-R*t),t===0&&e===0)return n+a+s;for(u="",c=6-a.length,h=0;h<c;h++)u+="0";s=u+a+s}{if(i=e%R,e=e/R>>>0,o=4294967296*i+t,t=o/R>>>0,a=""+(o-R*t),t===0&&e===0)return n+a+s;for(u="",c=6-a.length,h=0;h<c;h++)u+="0";s=u+a+s}return i=e%R,o=4294967296*i+t,a=""+o%R,n+a+s}$r.exports=ai});var Wr=g((Au,Vr)=>{"use strict";l();var ci=Hr(),S=function(r,e,t,n,s){t=t||0,n=n||!1,s=s||function(m,b,T){return m*Math.pow(2,T)+b};var i=t>>3,o=function(m){return n?~m&255:m},a=255,u=8-t%8;e<u&&(a=255<<8-e&255,u=e),t&&(a=a>>t%8);var c=0;t%8+e>=8&&(c=s(0,o(r[i])&a,u));for(var h=e+t>>3,d=i+1;d<h;d++)c=s(c,o(r[d]),8);var p=(e+t)%8;return p>0&&(c=s(c,o(r[h])>>8-p,p)),c},Gr=function(r,e,t){var n=Math.pow(2,t-1)-1,s=S(r,1),i=S(r,t,1);if(i===0)return 0;var o=1,a=function(c,h,d){c===0&&(c=1);for(var p=1;p<=d;p++)o/=2,(h&1<<d-p)>0&&(c+=o);return c},u=S(r,e,t+1,!1,a);return i==Math.pow(2,t+1)-1?u===0?s===0?1/0:-1/0:NaN:(s===0?1:-1)*Math.pow(2,i-n)*u},ui=function(r){return S(r,1)==1?-1*(S(r,15,1,!0)+1):S(r,15,1)},zr=function(r){return S(r,1)==1?-1*(S(r,31,1,!0)+1):S(r,31,1)},li=function(r){return Gr(r,23,8)},hi=function(r){return Gr(r,52,11)},di=function(r){var e=S(r,16,32);if(e==49152)return NaN;for(var t=Math.pow(1e4,S(r,16,16)),n=0,s=[],i=S(r,16),o=0;o<i;o++)n+=S(r,16,64+16*o)*t,t/=1e4;var a=Math.pow(10,S(r,16,48));return(e===0?1:-1)*Math.round(n*a)/a},Kr=function(r,e){var t=S(e,1),n=S(e,63,1),s=new Date((t===0?1:-1)*n/1e3+9466848e5);return r||s.setTime(s.getTime()+s.getTimezoneOffset()*6e4),s.usec=n%1e3,s.getMicroSeconds=function(){return this.usec},s.setMicroSeconds=function(i){this.usec=i},s.getUTCMicroSeconds=function(){return this.usec},s},le=function(r){for(var e=S(r,32),t=S(r,32,32),n=S(r,32,64),s=96,i=[],o=0;o<e;o++)i[o]=S(r,32,s),s+=32,s+=32;var a=function(c){var h=S(r,32,s);if(s+=32,h==4294967295)return null;var d;if(c==23||c==20)return d=S(r,h*8,s),s+=h*8,d;if(c==25)return d=r.toString(this.encoding,s>>3,(s+=h<<3)>>3),d;console.log("ERROR: ElementType not implemented: "+c)},u=function(c,h){var d=[],p;if(c.length>1){var m=c.shift();for(p=0;p<m;p++)d[p]=u(c,h);c.unshift(m)}else for(p=0;p<c[0];p++)d[p]=a(h);return d};return u(i,n)},fi=function(r){return r.toString("utf8")},pi=function(r){return r===null?null:S(r,8)>0},mi=function(r){r(20,ci),r(21,ui),r(23,zr),r(26,zr),r(1700,di),r(700,li),r(701,hi),r(16,pi),r(1114,Kr.bind(null,!1)),r(1184,Kr.bind(null,!0)),r(1e3,le),r(1007,le),r(1016,le),r(1008,le),r(1009,le),r(25,fi)};Vr.exports={init:mi}});var Yr=g((Tu,Jr)=>{"use strict";l();Jr.exports={BOOL:16,BYTEA:17,CHAR:18,INT8:20,INT2:21,INT4:23,REGPROC:24,TEXT:25,OID:26,TID:27,XID:28,CID:29,JSON:114,XML:142,PG_NODE_TREE:194,SMGR:210,PATH:602,POLYGON:604,CIDR:650,FLOAT4:700,FLOAT8:701,ABSTIME:702,RELTIME:703,TINTERVAL:704,CIRCLE:718,MACADDR8:774,MONEY:790,MACADDR:829,INET:869,ACLITEM:1033,BPCHAR:1042,VARCHAR:1043,DATE:1082,TIME:1083,TIMESTAMP:1114,TIMESTAMPTZ:1184,INTERVAL:1186,TIMETZ:1266,BIT:1560,VARBIT:1562,NUMERIC:1700,REFCURSOR:1790,REGPROCEDURE:2202,REGOPER:2203,REGOPERATOR:2204,REGCLASS:2205,REGTYPE:2206,UUID:2950,TXID_SNAPSHOT:2970,PG_LSN:3220,PG_NDISTINCT:3361,PG_DEPENDENCIES:3402,TSVECTOR:3614,TSQUERY:3615,GTSVECTOR:3642,REGCONFIG:3734,REGDICTIONARY:3769,JSONB:3802,REGNAMESPACE:4089,REGROLE:4096}});var fe=g(de=>{"use strict";l();var yi=jr(),gi=Wr(),bi=ot(),wi=Yr();de.getTypeParser=Si;de.setTypeParser=vi;de.arrayParser=bi;de.builtins=wi;var he={text:{},binary:{}};function Xr(r){return String(r)}function Si(r,e){return e=e||"text",he[e]&&he[e][r]||Xr}function vi(r,e,t){typeof e=="function"&&(t=e,e="text"),he[e][r]=t}yi.init(function(r,e){he.text[r]=e});gi.init(function(r,e){he.binary[r]=e})});var pe=g((qu,pt)=>{"use strict";l();var Zr;try{Zr=process.platform==="win32"?process.env.USERNAME:process.env.USER}catch{}pt.exports={host:"localhost",user:Zr,database:void 0,password:null,connectionString:void 0,port:5432,rows:0,binary:!1,max:10,idleTimeoutMillis:3e4,client_encoding:"",ssl:!1,application_name:void 0,fallback_application_name:void 0,options:void 0,parseInputDatesAsUTC:!1,statement_timeout:!1,lock_timeout:!1,idle_in_transaction_session_timeout:!1,query_timeout:!1,connect_timeout:0,keepalives:1,keepalives_idle:0};var Y=fe(),Ei=Y.getTypeParser(20,"text"),ki=Y.getTypeParser(1016,"text");pt.exports.__defineSetter__("parseInt8",function(r){Y.setTypeParser(20,"text",r?Y.getTypeParser(23,"text"):Ei),Y.setTypeParser(1016,"text",r?Y.getTypeParser(1007,"text"):ki)})});var X=g((Lu,rn)=>{"use strict";l();var _i=pe(),en=require("util"),{isDate:Ci}=en.types||en;function xi(r){return'"'+r.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'}function tn(r){let e="{";for(let t=0;t<r.length;t++)if(t>0&&(e=e+","),r[t]===null||typeof r[t]>"u")e=e+"NULL";else if(Array.isArray(r[t]))e=e+tn(r[t]);else if(ArrayBuffer.isView(r[t])){let n=r[t];if(!(n instanceof Buffer)){let s=Buffer.from(n.buffer,n.byteOffset,n.byteLength);s.length===n.byteLength?n=s:n=s.slice(n.byteOffset,n.byteOffset+n.byteLength)}e+="\\\\x"+n.toString("hex")}else e+=xi(Ie(r[t]));return e=e+"}",e}var Ie=function(r,e){if(r==null)return null;if(typeof r=="object"){if(r instanceof Buffer)return r;if(ArrayBuffer.isView(r)){let t=Buffer.from(r.buffer,r.byteOffset,r.byteLength);return t.length===r.byteLength?t:t.slice(r.byteOffset,r.byteOffset+r.byteLength)}return Ci(r)?_i.parseInputDatesAsUTC?Ri(r):Ai(r):Array.isArray(r)?tn(r):Pi(r,e)}return r.toString()};function Pi(r,e){if(r&&typeof r.toPostgres=="function"){if(e=e||[],e.indexOf(r)!==-1)throw new Error('circular reference detected while preparing "'+r+'" for query');return e.push(r),Ie(r.toPostgres(Ie),e)}return JSON.stringify(r)}function Ai(r){let e=-r.getTimezoneOffset(),t=r.getFullYear(),n=t<1;n&&(t=Math.abs(t)+1);let s=String(t).padStart(4,"0")+"-"+String(r.getMonth()+1).padStart(2,"0")+"-"+String(r.getDate()).padStart(2,"0")+"T"+String(r.getHours()).padStart(2,"0")+":"+String(r.getMinutes()).padStart(2,"0")+":"+String(r.getSeconds()).padStart(2,"0")+"."+String(r.getMilliseconds()).padStart(3,"0");return e<0?(s+="-",e*=-1):s+="+",s+=String(Math.floor(e/60)).padStart(2,"0")+":"+String(e%60).padStart(2,"0"),n&&(s+=" BC"),s}function Ri(r){let e=r.getUTCFullYear(),t=e<1;t&&(e=Math.abs(e)+1);let n=String(e).padStart(4,"0")+"-"+String(r.getUTCMonth()+1).padStart(2,"0")+"-"+String(r.getUTCDate()).padStart(2,"0")+"T"+String(r.getUTCHours()).padStart(2,"0")+":"+String(r.getUTCMinutes()).padStart(2,"0")+":"+String(r.getUTCSeconds()).padStart(2,"0")+"."+String(r.getUTCMilliseconds()).padStart(3,"0");return n+="+00:00",t&&(n+=" BC"),n}function Ti(r,e,t){return r=typeof r=="string"?{text:r}:r,e&&(typeof e=="function"?r.callback=e:r.values=e),t&&(r.callback=t),r}var Oi=function(r){return'"'+r.replace(/"/g,'""')+'"'},Ii=function(r){let e=!1,t="'";if(r==null||typeof r!="string")return"''";for(let n=0;n<r.length;n++){let s=r[n];s==="'"?t+=s+s:s==="\\"?(t+=s+s,e=!0):t+=s}return t+="'",e===!0&&(t=" E"+t),t};rn.exports={prepareValue:function(e){return Ie(e)},normalizeQueryConfig:Ti,escapeIdentifier:Oi,escapeLiteral:Ii}});var sn=g((Nu,nn)=>{"use strict";l();var Z=require("crypto");function mt(r){return Z.createHash("md5").update(r,"utf-8").digest("hex")}function Mi(r,e,t){let n=mt(e+r);return"md5"+mt(Buffer.concat([Buffer.from(n),t]))}function qi(r){return Z.createHash("sha256").update(r).digest()}function Di(r,e){return r=r.replace(/(\D)-/,"$1"),Z.createHash(r).update(e).digest()}function Li(r,e){return Z.createHmac("sha256",r).update(e).digest()}async function Qi(r,e,t){return Z.pbkdf2Sync(r,e,t,32,"sha256")}nn.exports={postgresMd5PasswordHash:Mi,randomBytes:Z.randomBytes,deriveKey:Qi,sha256:qi,hashByName:Di,hmacSha256:Li,md5:mt}});var un=g((Fu,cn)=>{"use strict";l();var on=require("crypto");cn.exports={postgresMd5PasswordHash:Bi,randomBytes:Ni,deriveKey:$i,sha256:Fi,hashByName:Ui,hmacSha256:ji,md5:yt};var an=on.webcrypto||globalThis.crypto,G=an.subtle,gt=new TextEncoder;function Ni(r){return an.getRandomValues(Buffer.alloc(r))}async function yt(r){try{return on.createHash("md5").update(r,"utf-8").digest("hex")}catch{let t=typeof r=="string"?gt.encode(r):r,n=await G.digest("MD5",t);return Array.from(new Uint8Array(n)).map(s=>s.toString(16).padStart(2,"0")).join("")}}async function Bi(r,e,t){let n=await yt(e+r);return"md5"+await yt(Buffer.concat([Buffer.from(n),t]))}async function Fi(r){return await G.digest("SHA-256",r)}async function Ui(r,e){return await G.digest(r,e)}async function ji(r,e){let t=await G.importKey("raw",r,{name:"HMAC",hash:"SHA-256"},!1,["sign"]);return await G.sign("HMAC",t,gt.encode(e))}async function $i(r,e,t){let n=await G.importKey("raw",gt.encode(r),"PBKDF2",!1,["deriveBits"]),s={name:"PBKDF2",hash:"SHA-256",salt:e,iterations:t};return await G.deriveBits(s,n,256,["deriveBits"])}});var wt=g((ju,bt)=>{"use strict";l();var Hi=parseInt(process.versions&&process.versions.node&&process.versions.node.split(".")[0])<15;Hi?bt.exports=sn():bt.exports=un()});var dn=g((Hu,hn)=>{"use strict";l();function V(r,e){return new Error("SASL channel binding: "+r+" when parsing public certificate "+e.toString("base64"))}function St(r,e){let t=r[e++];if(t<128)return{length:t,index:e};let n=t&127;if(n>4)throw V("bad length",r);t=0;for(let s=0;s<n;s++)t=t<<8|r[e++];return{length:t,index:e}}function ln(r,e){if(r[e++]!==6)throw V("non-OID data",r);let{length:t,index:n}=St(r,e);e=n;let s=e+t,i=r[e++],o=(i/40>>0)+"."+i%40;for(;e<s;){let a=0;for(;e<s;){let u=r[e++];if(a=a<<7|u&127,u<128)break}o+="."+a}return{oid:o,index:e}}function me(r,e){if(r[e++]!==48)throw V("non-sequence data",r);return St(r,e)}function zi(r,e){e===void 0&&(e=0),e=me(r,e).index;let{length:t,index:n}=me(r,e);e=n+t,e=me(r,e).index;let{oid:s,index:i}=ln(r,e);switch(s){case"1.2.840.113549.1.1.4":return"MD5";case"1.2.840.113549.1.1.5":return"SHA-1";case"1.2.840.113549.1.1.11":return"SHA-256";case"1.2.840.113549.1.1.12":return"SHA-384";case"1.2.840.113549.1.1.13":return"SHA-512";case"1.2.840.113549.1.1.14":return"SHA-224";case"1.2.840.113549.1.1.15":return"SHA512-224";case"1.2.840.113549.1.1.16":return"SHA512-256";case"1.2.840.10045.4.1":return"SHA-1";case"1.2.840.10045.4.3.1":return"SHA-224";case"1.2.840.10045.4.3.2":return"SHA-256";case"1.2.840.10045.4.3.3":return"SHA-384";case"1.2.840.10045.4.3.4":return"SHA-512";case"1.2.840.113549.1.1.10":{if(e=i,e=me(r,e).index,r[e++]!==160)throw V("non-tag data",r);e=St(r,e).index,e=me(r,e).index;let{oid:o}=ln(r,e);switch(o){case"1.2.840.113549.2.5":return"MD5";case"1.3.14.3.2.26":return"SHA-1";case"2.16.840.1.101.3.4.2.1":return"SHA-256";case"2.16.840.1.101.3.4.2.2":return"SHA-384";case"2.16.840.1.101.3.4.2.3":return"SHA-512"}throw V("unknown hash OID "+o,r)}case"1.3.101.110":case"1.3.101.112":return"SHA-512";case"1.3.101.111":case"1.3.101.113":throw V("Ed448 certificate channel binding is not currently supported by Postgres")}throw V("unknown OID "+s,r)}hn.exports={signatureAlgorithmHashFromCertificate:zi}});var yn=g((Ku,mn)=>{"use strict";l();var $=wt(),{signatureAlgorithmHashFromCertificate:Ki}=dn();function Gi(r,e){let t=["SCRAM-SHA-256"];e&&t.unshift("SCRAM-SHA-256-PLUS");let n=t.find(o=>r.includes(o));if(!n)throw new Error("SASL: Only mechanism(s) "+t.join(" and ")+" are supported");if(n==="SCRAM-SHA-256-PLUS"&&typeof e.getPeerCertificate!="function")throw new Error("SASL: Mechanism SCRAM-SHA-256-PLUS requires a certificate");let s=$.randomBytes(18).toString("base64");return{mechanism:n,clientNonce:s,response:(n==="SCRAM-SHA-256-PLUS"?"p=tls-server-end-point":e?"y":"n")+",,n=*,r="+s,message:"SASLInitialResponse"}}async function Vi(r,e,t,n){if(r.message!=="SASLInitialResponse")throw new Error("SASL: Last message was not SASLInitialResponse");if(typeof e!="string")throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string");if(e==="")throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a non-empty string");if(typeof t!="string")throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: serverData must be a string");let s=Yi(t);if(s.nonce.startsWith(r.clientNonce)){if(s.nonce.length===r.clientNonce.length)throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: server nonce is too short")}else throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: server nonce does not start with client nonce");let i="n=*,r="+r.clientNonce,o="r="+s.nonce+",s="+s.salt+",i="+s.iteration,a=n?"eSws":"biws";if(r.mechanism==="SCRAM-SHA-256-PLUS"){let W=n.getPeerCertificate().raw,be=Ki(W);(be==="MD5"||be==="SHA-1")&&(be="SHA-256");let vs=await $.hashByName(be,W);a=Buffer.concat([Buffer.from("p=tls-server-end-point,,"),Buffer.from(vs)]).toString("base64")}let u="c="+a+",r="+s.nonce,c=i+","+o+","+u,h=Buffer.from(s.salt,"base64"),d=await $.deriveKey(e,h,s.iteration),p=await $.hmacSha256(d,"Client Key"),m=await $.sha256(p),b=await $.hmacSha256(m,c),T=Zi(Buffer.from(p),Buffer.from(b)).toString("base64"),Ye=await $.hmacSha256(d,"Server Key"),Xe=await $.hmacSha256(Ye,c);r.message="SASLResponse",r.serverSignature=Buffer.from(Xe).toString("base64"),r.response=u+",p="+T}function Wi(r,e){if(r.message!=="SASLResponse")throw new Error("SASL: Last message was not SASLResponse");if(typeof e!="string")throw new Error("SASL: SCRAM-SERVER-FINAL-MESSAGE: serverData must be a string");let{serverSignature:t}=Xi(e);if(t!==r.serverSignature)throw new Error("SASL: SCRAM-SERVER-FINAL-MESSAGE: server signature does not match")}function Ji(r){if(typeof r!="string")throw new TypeError("SASL: text must be a string");return r.split("").map((e,t)=>r.charCodeAt(t)).every(e=>e>=33&&e<=43||e>=45&&e<=126)}function fn(r){return/^(?:[a-zA-Z0-9+/]{4})*(?:[a-zA-Z0-9+/]{2}==|[a-zA-Z0-9+/]{3}=)?$/.test(r)}function pn(r){if(typeof r!="string")throw new TypeError("SASL: attribute pairs text must be a string");return new Map(r.split(",").map(e=>{if(!/^.=/.test(e))throw new Error("SASL: Invalid attribute pair entry");let t=e[0],n=e.substring(2);return[t,n]}))}function Yi(r){let e=pn(r),t=e.get("r");if(t){if(!Ji(t))throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: nonce must only contain printable characters")}else throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: nonce missing");let n=e.get("s");if(n){if(!fn(n))throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: salt must be base64")}else throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: salt missing");let s=e.get("i");if(s){if(!/^[1-9][0-9]*$/.test(s))throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: invalid iteration count")}else throw new Error("SASL: SCRAM-SERVER-FIRST-MESSAGE: iteration missing");let i=parseInt(s,10);return{nonce:t,salt:n,iteration:i}}function Xi(r){let t=pn(r).get("v");if(t){if(!fn(t))throw new Error("SASL: SCRAM-SERVER-FINAL-MESSAGE: server signature must be base64")}else throw new Error("SASL: SCRAM-SERVER-FINAL-MESSAGE: server signature is missing");return{serverSignature:t}}function Zi(r,e){if(!Buffer.isBuffer(r))throw new TypeError("first argument must be a Buffer");if(!Buffer.isBuffer(e))throw new TypeError("second argument must be a Buffer");if(r.length!==e.length)throw new Error("Buffer lengths must match");if(r.length===0)throw new Error("Buffers cannot be empty");return Buffer.from(r.map((t,n)=>r[n]^e[n]))}mn.exports={startSession:Gi,continueSession:Vi,finalizeSession:Wi}});var qe=g((Vu,gn)=>{"use strict";l();var eo=fe();function Me(r){this._types=r||eo,this.text={},this.binary={}}Me.prototype.getOverrides=function(r){switch(r){case"text":return this.text;case"binary":return this.binary;default:return{}}};Me.prototype.setTypeParser=function(r,e,t){typeof e=="function"&&(t=e,e="text"),this.getOverrides(e)[r]=t};Me.prototype.getTypeParser=function(r,e){return e=e||"text",this.getOverrides(e)[r]||this._types.getTypeParser(r,e)};gn.exports=Me});var Sn=g((Ju,wn)=>{"use strict";l();function ee(r,e={}){if(r.charAt(0)==="/"){let u=r.split(" ");return{host:u[0],database:u[1]}}let t={},n,s=!1;/ |%[^a-f0-9]|%[a-f0-9][^a-f0-9]/i.test(r)&&(r=encodeURI(r).replace(/%25(\d\d)/g,"%$1"));try{try{n=new URL(r,"postgres://base")}catch{n=new URL(r.replace("@/","@___DUMMY___/"),"postgres://base"),s=!0}}catch(u){throw u.input&&(u.input="*****REDACTED*****"),u}for(let u of n.searchParams.entries())t[u[0]]=u[1];if(t.user=t.user||decodeURIComponent(n.username),t.password=t.password||decodeURIComponent(n.password),n.protocol=="socket:")return t.host=decodeURI(n.pathname),t.database=n.searchParams.get("db"),t.client_encoding=n.searchParams.get("encoding"),t;let i=s?"":n.hostname;t.host?i&&/^%2f/i.test(i)&&(n.pathname=i+n.pathname):t.host=decodeURIComponent(i),t.port||(t.port=n.port);let o=n.pathname.slice(1)||null;t.database=o?decodeURI(o):null,(t.ssl==="true"||t.ssl==="1")&&(t.ssl=!0),t.ssl==="0"&&(t.ssl=!1),(t.sslcert||t.sslkey||t.sslrootcert||t.sslmode)&&(t.ssl={});let a=t.sslcert||t.sslkey||t.sslrootcert?require("fs"):null;if(t.sslcert&&(t.ssl.cert=a.readFileSync(t.sslcert).toString()),t.sslkey&&(t.ssl.key=a.readFileSync(t.sslkey).toString()),t.sslrootcert&&(t.ssl.ca=a.readFileSync(t.sslrootcert).toString()),e.useLibpqCompat&&t.uselibpqcompat)throw new Error("Both useLibpqCompat and uselibpqcompat are set. Please use only one of them.");if(t.uselibpqcompat==="true"||e.useLibpqCompat)switch(t.sslmode){case"disable":{t.ssl=!1;break}case"prefer":{t.ssl.rejectUnauthorized=!1;break}case"require":{t.sslrootcert?t.ssl.checkServerIdentity=function(){}:t.ssl.rejectUnauthorized=!1;break}case"verify-ca":{if(!t.ssl.ca)throw new Error("SECURITY WARNING: Using sslmode=verify-ca requires specifying a CA with sslrootcert. If a public CA is used, verify-ca allows connections to a server that somebody else may have registered with the CA, making you vulnerable to Man-in-the-Middle attacks. Either specify a custom CA certificate with sslrootcert parameter or use sslmode=verify-full for proper security.");t.ssl.checkServerIdentity=function(){};break}case"verify-full":break}else switch(t.sslmode){case"disable":{t.ssl=!1;break}case"prefer":case"require":case"verify-ca":case"verify-full":{t.sslmode!=="verify-full"&&vt(t.sslmode);break}case"no-verify":{t.ssl.rejectUnauthorized=!1;break}}return t}function to(r){return Object.entries(r).reduce((t,[n,s])=>(s!=null&&(t[n]=s),t),{})}function bn(r){return Object.entries(r).reduce((t,[n,s])=>{if(n==="ssl"){let i=s;typeof i=="boolean"&&(t[n]=i),typeof i=="object"&&(t[n]=to(i))}else if(s!=null)if(n==="port"){if(s!==""){let i=parseInt(s,10);if(isNaN(i))throw new Error(`Invalid ${n}: ${s}`);t[n]=i}}else t[n]=s;return t},{})}function ro(r){return bn(ee(r))}function vt(r){!vt.warned&&typeof process<"u"&&process.emitWarning&&(vt.warned=!0,process.emitWarning(`SECURITY WARNING: The SSL modes 'prefer', 'require', and 'verify-ca' are treated as aliases for 'verify-full'.
|
|
2
2
|
In the next major version (pg-connection-string v3.0.0 and pg v9.0.0), these modes will adopt standard libpq semantics, which have weaker security guarantees.
|
|
3
3
|
|
|
4
4
|
To prepare for this change:
|
|
5
5
|
- If you want the current behavior, explicitly use 'sslmode=verify-full'
|
|
6
6
|
- If you want libpq compatibility now, use 'uselibpqcompat=true&sslmode=${r}'
|
|
7
7
|
|
|
8
|
-
See https://www.postgresql.org/docs/current/libpq-ssl.html for libpq SSL mode definitions.`))}wn.exports=ee;ee.parse=ee;ee.toClientConfig=bn;ee.parseIntoClientConfig=ro});var kt=g((Xu,kn)=>{"use strict";l();var no=require("dns"),En=pe(),vn=Sn().parse,x=function(r,e,t){return e[r]?e[r]:(t===void 0?t=process.env["PG"+r.toUpperCase()]:t===!1||(t=process.env[t]),t||En[r])},so=function(){switch(process.env.PGSSLMODE){case"disable":return!1;case"prefer":case"require":case"verify-ca":case"verify-full":return!0;case"no-verify":return{rejectUnauthorized:!1}}return En.ssl},te=function(r){return"'"+(""+r).replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"},q=function(r,e,t){let n=e[t];n!=null&&r.push(t+"="+te(n))},Et=class{constructor(e){e=typeof e=="string"?vn(e):e||{},e.connectionString&&(e=Object.assign({},e,vn(e.connectionString))),this.user=x("user",e),this.database=x("database",e),this.database===void 0&&(this.database=this.user),this.port=parseInt(x("port",e),10),this.host=x("host",e),Object.defineProperty(this,"password",{configurable:!0,enumerable:!1,writable:!0,value:x("password",e)}),this.binary=x("binary",e),this.options=x("options",e),this.ssl=typeof e.ssl>"u"?so():e.ssl,typeof this.ssl=="string"&&this.ssl==="true"&&(this.ssl=!0),this.ssl==="no-verify"&&(this.ssl={rejectUnauthorized:!1}),this.ssl&&this.ssl.key&&Object.defineProperty(this.ssl,"key",{enumerable:!1}),this.client_encoding=x("client_encoding",e),this.replication=x("replication",e),this.isDomainSocket=!(this.host||"").indexOf("/"),this.application_name=x("application_name",e,"PGAPPNAME"),this.fallback_application_name=x("fallback_application_name",e,!1),this.statement_timeout=x("statement_timeout",e,!1),this.lock_timeout=x("lock_timeout",e,!1),this.idle_in_transaction_session_timeout=x("idle_in_transaction_session_timeout",e,!1),this.query_timeout=x("query_timeout",e,!1),e.connectionTimeoutMillis===void 0?this.connect_timeout=process.env.PGCONNECT_TIMEOUT||0:this.connect_timeout=Math.floor(e.connectionTimeoutMillis/1e3),e.keepAlive===!1?this.keepalives=0:e.keepAlive===!0&&(this.keepalives=1),typeof e.keepAliveInitialDelayMillis=="number"&&(this.keepalives_idle=Math.floor(e.keepAliveInitialDelayMillis/1e3))}getLibpqConnectionString(e){let t=[];q(t,this,"user"),q(t,this,"password"),q(t,this,"port"),q(t,this,"application_name"),q(t,this,"fallback_application_name"),q(t,this,"connect_timeout"),q(t,this,"options");let n=typeof this.ssl=="object"?this.ssl:this.ssl?{sslmode:this.ssl}:{};if(q(t,n,"sslmode"),q(t,n,"sslca"),q(t,n,"sslkey"),q(t,n,"sslcert"),q(t,n,"sslrootcert"),this.database&&t.push("dbname="+te(this.database)),this.replication&&t.push("replication="+te(this.replication)),this.host&&t.push("host="+te(this.host)),this.isDomainSocket)return e(null,t.join(" "));this.client_encoding&&t.push("client_encoding="+te(this.client_encoding)),no.lookup(this.host,function(s,i){return s?e(s,null):(t.push("hostaddr="+te(i)),e(null,t.join(" ")))})}};kn.exports=Et});var Ct=g((el,Cn)=>{"use strict";l();var io=fe(),_n=/^([A-Za-z]+)(?: (\d+))?(?: (\d+))?/,_t=class{constructor(e,t){this.command=null,this.rowCount=null,this.oid=null,this.rows=[],this.fields=[],this._parsers=void 0,this._types=t,this.RowCtor=null,this.rowAsArray=e==="array",this.rowAsArray&&(this.parseRow=this._parseRowAsArray),this._prebuiltEmptyResultObject=null}addCommandComplete(e){let t;e.text?t=_n.exec(e.text):t=_n.exec(e.command),t&&(this.command=t[1],t[3]?(this.oid=parseInt(t[2],10),this.rowCount=parseInt(t[3],10)):t[2]&&(this.rowCount=parseInt(t[2],10)))}_parseRowAsArray(e){let t=new Array(e.length);for(let n=0,s=e.length;n<s;n++){let i=e[n];i!==null?t[n]=this._parsers[n](i):t[n]=null}return t}parseRow(e){let t={...this._prebuiltEmptyResultObject};for(let n=0,s=e.length;n<s;n++){let i=e[n],o=this.fields[n].name;if(i!==null){let a=this.fields[n].format==="binary"?Buffer.from(i):i;t[o]=this._parsers[n](a)}else t[o]=null}return t}addRow(e){this.rows.push(e)}addFields(e){this.fields=e,this.fields.length&&(this._parsers=new Array(e.length));let t={};for(let n=0;n<e.length;n++){let s=e[n];t[s.name]=null,this._types?this._parsers[n]=this._types.getTypeParser(s.dataTypeID,s.format||"text"):this._parsers[n]=io.getTypeParser(s.dataTypeID,s.format||"text")}this._prebuiltEmptyResultObject={...t}}};Cn.exports=_t});var Tn=g((rl,An)=>{"use strict";l();var{EventEmitter:oo}=require("events"),xn=Ct(),Pn=X(),xt=class extends oo{constructor(e,t,n){super(),e=Pn.normalizeQueryConfig(e,t,n),this.text=e.text,this.values=e.values,this.rows=e.rows,this.types=e.types,this.name=e.name,this.queryMode=e.queryMode,this.binary=e.binary,this.portal=e.portal||"",this.callback=e.callback,this._rowMode=e.rowMode,process.domain&&e.callback&&(this.callback=process.domain.bind(e.callback)),this._result=new xn(this._rowMode,this.types),this._results=this._result,this._canceledDueToError=!1}requiresPreparation(){return this.queryMode==="extended"||this.name||this.rows?!0:!this.text||!this.values?!1:this.values.length>0}_checkForMultirow(){this._result.command&&(Array.isArray(this._results)||(this._results=[this._result]),this._result=new xn(this._rowMode,this._result._types),this._results.push(this._result))}handleRowDescription(e){this._checkForMultirow(),this._result.addFields(e.fields),this._accumulateRows=this.callback||!this.listeners("row").length}handleDataRow(e){let t;if(!this._canceledDueToError){try{t=this._result.parseRow(e.fields)}catch(n){this._canceledDueToError=n;return}this.emit("row",t,this._result),this._accumulateRows&&this._result.addRow(t)}}handleCommandComplete(e,t){this._checkForMultirow(),this._result.addCommandComplete(e),this.rows&&t.sync()}handleEmptyQuery(e){this.rows&&e.sync()}handleError(e,t){if(this._canceledDueToError&&(e=this._canceledDueToError,this._canceledDueToError=!1),this.callback)return this.callback(e);this.emit("error",e)}handleReadyForQuery(e){if(this._canceledDueToError)return this.handleError(this._canceledDueToError,e);if(this.callback)try{this.callback(null,this._results)}catch(t){process.nextTick(()=>{throw t})}this.emit("end",this._results)}submit(e){if(typeof this.text!="string"&&typeof this.name!="string")return new Error("A query must have either text or a name. Supplying neither is unsupported.");let t=e.parsedStatements[this.name];if(this.text&&t&&this.text!==t)return new Error(`Prepared statements must be unique - '${this.name}' was used for a different statement`);if(this.values&&!Array.isArray(this.values))return new Error("Query values must be an array");if(this.requiresPreparation()){e.stream.cork&&e.stream.cork();try{this.prepare(e)}finally{e.stream.uncork&&e.stream.uncork()}}else e.query(this.text);return null}hasBeenParsed(e){return this.name&&e.parsedStatements[this.name]}handlePortalSuspended(e){this._getRows(e,this.rows)}_getRows(e,t){e.execute({portal:this.portal,rows:t}),t?e.flush():e.sync()}prepare(e){this.hasBeenParsed(e)||e.parse({text:this.text,name:this.name,types:this.types});try{e.bind({portal:this.portal,statement:this.name,values:this.values,binary:this.binary,valueMapper:Pn.prepareValue})}catch(t){this.handleError(t,e);return}e.describe({type:"P",name:this.portal||""}),this._getRows(e,this.rows)}handleCopyInResponse(e){e.sendCopyFail("No source stream defined")}handleCopyData(e,t){}};An.exports=xt});var Ut=g(y=>{"use strict";l();Object.defineProperty(y,"__esModule",{value:!0});y.NoticeMessage=y.DataRowMessage=y.CommandCompleteMessage=y.ReadyForQueryMessage=y.NotificationResponseMessage=y.BackendKeyDataMessage=y.AuthenticationMD5Password=y.ParameterStatusMessage=y.ParameterDescriptionMessage=y.RowDescriptionMessage=y.Field=y.CopyResponse=y.CopyDataMessage=y.DatabaseError=y.copyDone=y.emptyQuery=y.replicationStart=y.portalSuspended=y.noData=y.closeComplete=y.bindComplete=y.parseComplete=void 0;y.parseComplete={name:"parseComplete",length:5};y.bindComplete={name:"bindComplete",length:5};y.closeComplete={name:"closeComplete",length:5};y.noData={name:"noData",length:5};y.portalSuspended={name:"portalSuspended",length:5};y.replicationStart={name:"replicationStart",length:4};y.emptyQuery={name:"emptyQuery",length:4};y.copyDone={name:"copyDone",length:4};var Pt=class extends Error{constructor(e,t,n){super(e),this.length=t,this.name=n}};y.DatabaseError=Pt;var At=class{constructor(e,t){this.length=e,this.chunk=t,this.name="copyData"}};y.CopyDataMessage=At;var Tt=class{constructor(e,t,n,s){this.length=e,this.name=t,this.binary=n,this.columnTypes=new Array(s)}};y.CopyResponse=Tt;var Rt=class{constructor(e,t,n,s,i,o,a){this.name=e,this.tableID=t,this.columnID=n,this.dataTypeID=s,this.dataTypeSize=i,this.dataTypeModifier=o,this.format=a}};y.Field=Rt;var Ot=class{constructor(e,t){this.length=e,this.fieldCount=t,this.name="rowDescription",this.fields=new Array(this.fieldCount)}};y.RowDescriptionMessage=Ot;var It=class{constructor(e,t){this.length=e,this.parameterCount=t,this.name="parameterDescription",this.dataTypeIDs=new Array(this.parameterCount)}};y.ParameterDescriptionMessage=It;var Mt=class{constructor(e,t,n){this.length=e,this.parameterName=t,this.parameterValue=n,this.name="parameterStatus"}};y.ParameterStatusMessage=Mt;var qt=class{constructor(e,t){this.length=e,this.salt=t,this.name="authenticationMD5Password"}};y.AuthenticationMD5Password=qt;var Dt=class{constructor(e,t,n){this.length=e,this.processID=t,this.secretKey=n,this.name="backendKeyData"}};y.BackendKeyDataMessage=Dt;var Lt=class{constructor(e,t,n,s){this.length=e,this.processId=t,this.channel=n,this.payload=s,this.name="notification"}};y.NotificationResponseMessage=Lt;var Qt=class{constructor(e,t){this.length=e,this.status=t,this.name="readyForQuery"}};y.ReadyForQueryMessage=Qt;var Nt=class{constructor(e,t){this.length=e,this.text=t,this.name="commandComplete"}};y.CommandCompleteMessage=Nt;var Bt=class{constructor(e,t){this.length=e,this.fields=t,this.name="dataRow",this.fieldCount=t.length}};y.DataRowMessage=Bt;var Ft=class{constructor(e,t){this.length=e,this.message=t,this.name="notice"}};y.NoticeMessage=Ft});var Rn=g(De=>{"use strict";l();Object.defineProperty(De,"__esModule",{value:!0});De.Writer=void 0;var jt=class{constructor(e=256){this.size=e,this.offset=5,this.headerPosition=0,this.buffer=Buffer.allocUnsafe(e)}ensure(e){if(this.buffer.length-this.offset<e){let n=this.buffer,s=n.length+(n.length>>1)+e;this.buffer=Buffer.allocUnsafe(s),n.copy(this.buffer)}}addInt32(e){return this.ensure(4),this.buffer[this.offset++]=e>>>24&255,this.buffer[this.offset++]=e>>>16&255,this.buffer[this.offset++]=e>>>8&255,this.buffer[this.offset++]=e>>>0&255,this}addInt16(e){return this.ensure(2),this.buffer[this.offset++]=e>>>8&255,this.buffer[this.offset++]=e>>>0&255,this}addCString(e){if(!e)this.ensure(1);else{let t=Buffer.byteLength(e);this.ensure(t+1),this.buffer.write(e,this.offset,"utf-8"),this.offset+=t}return this.buffer[this.offset++]=0,this}addString(e=""){let t=Buffer.byteLength(e);return this.ensure(t),this.buffer.write(e,this.offset),this.offset+=t,this}add(e){return this.ensure(e.length),e.copy(this.buffer,this.offset),this.offset+=e.length,this}join(e){if(e){this.buffer[this.headerPosition]=e;let t=this.offset-(this.headerPosition+1);this.buffer.writeInt32BE(t,this.headerPosition+1)}return this.buffer.slice(e?0:5,this.offset)}flush(e){let t=this.join(e);return this.offset=5,this.headerPosition=0,this.buffer=Buffer.allocUnsafe(this.size),t}};De.Writer=jt});var In=g(Qe=>{"use strict";l();Object.defineProperty(Qe,"__esModule",{value:!0});Qe.serialize=void 0;var $t=Rn(),w=new $t.Writer,ao=r=>{w.addInt16(3).addInt16(0);for(let n of Object.keys(r))w.addCString(n).addCString(r[n]);w.addCString("client_encoding").addCString("UTF8");let e=w.addCString("").flush(),t=e.length+4;return new $t.Writer().addInt32(t).add(e).flush()},co=()=>{let r=Buffer.allocUnsafe(8);return r.writeInt32BE(8,0),r.writeInt32BE(80877103,4),r},uo=r=>w.addCString(r).flush(112),lo=function(r,e){return w.addCString(r).addInt32(Buffer.byteLength(e)).addString(e),w.flush(112)},ho=function(r){return w.addString(r).flush(112)},fo=r=>w.addCString(r).flush(81),On=[],po=r=>{let e=r.name||"";e.length>63&&(console.error("Warning! Postgres only supports 63 characters for query names."),console.error("You supplied %s (%s)",e,e.length),console.error("This can cause conflicts and silent errors executing queries"));let t=r.types||On,n=t.length,s=w.addCString(e).addCString(r.text).addInt16(n);for(let i=0;i<n;i++)s.addInt32(t[i]);return w.flush(80)},re=new $t.Writer,mo=function(r,e){for(let t=0;t<r.length;t++){let n=e?e(r[t],t):r[t];n==null?(w.addInt16(0),re.addInt32(-1)):n instanceof Buffer?(w.addInt16(1),re.addInt32(n.length),re.add(n)):(w.addInt16(0),re.addInt32(Buffer.byteLength(n)),re.addString(n))}},yo=(r={})=>{let e=r.portal||"",t=r.statement||"",n=r.binary||!1,s=r.values||On,i=s.length;return w.addCString(e).addCString(t),w.addInt16(i),mo(s,r.valueMapper),w.addInt16(i),w.add(re.flush()),w.addInt16(1),w.addInt16(n?1:0),w.flush(66)},go=Buffer.from([69,0,0,0,9,0,0,0,0,0]),bo=r=>{if(!r||!r.portal&&!r.rows)return go;let e=r.portal||"",t=r.rows||0,n=Buffer.byteLength(e),s=4+n+1+4,i=Buffer.allocUnsafe(1+s);return i[0]=69,i.writeInt32BE(s,1),i.write(e,5,"utf-8"),i[n+5]=0,i.writeUInt32BE(t,i.length-4),i},wo=(r,e)=>{let t=Buffer.allocUnsafe(16);return t.writeInt32BE(16,0),t.writeInt16BE(1234,4),t.writeInt16BE(5678,6),t.writeInt32BE(r,8),t.writeInt32BE(e,12),t},Ht=(r,e)=>{let n=4+Buffer.byteLength(e)+1,s=Buffer.allocUnsafe(1+n);return s[0]=r,s.writeInt32BE(n,1),s.write(e,5,"utf-8"),s[n]=0,s},So=w.addCString("P").flush(68),vo=w.addCString("S").flush(68),Eo=r=>r.name?Ht(68,`${r.type}${r.name||""}`):r.type==="P"?So:vo,ko=r=>{let e=`${r.type}${r.name||""}`;return Ht(67,e)},_o=r=>w.add(r).flush(100),Co=r=>Ht(102,r),Le=r=>Buffer.from([r,0,0,0,4]),xo=Le(72),Po=Le(83),Ao=Le(88),To=Le(99),Ro={startup:ao,password:uo,requestSsl:co,sendSASLInitialResponseMessage:lo,sendSCRAMClientFinalMessage:ho,query:fo,parse:po,bind:yo,execute:bo,describe:Eo,close:ko,flush:()=>xo,sync:()=>Po,end:()=>Ao,copyData:_o,copyDone:()=>To,copyFail:Co,cancel:wo};Qe.serialize=Ro});var Mn=g(Ne=>{"use strict";l();Object.defineProperty(Ne,"__esModule",{value:!0});Ne.BufferReader=void 0;var zt=class{constructor(e=0){this.offset=e,this.buffer=Buffer.allocUnsafe(0),this.encoding="utf-8"}setBuffer(e,t){this.offset=e,this.buffer=t}int16(){let e=this.buffer.readInt16BE(this.offset);return this.offset+=2,e}byte(){let e=this.buffer[this.offset];return this.offset++,e}int32(){let e=this.buffer.readInt32BE(this.offset);return this.offset+=4,e}uint32(){let e=this.buffer.readUInt32BE(this.offset);return this.offset+=4,e}string(e){let t=this.buffer.toString(this.encoding,this.offset,this.offset+e);return this.offset+=e,t}cstring(){let e=this.offset,t=e;for(;this.buffer[t++]!==0;);return this.offset=t,this.buffer.toString(this.encoding,e,t-1)}bytes(e){let t=this.buffer.slice(this.offset,this.offset+e);return this.offset+=e,t}};Ne.BufferReader=zt});var Qn=g(Be=>{"use strict";l();Object.defineProperty(Be,"__esModule",{value:!0});Be.Parser=void 0;var v=Ut(),Oo=Mn(),Gt=1,Io=4,qn=Gt+Io,O=-1,Kt=Buffer.allocUnsafe(0),Vt=class{constructor(e){if(this.buffer=Kt,this.bufferLength=0,this.bufferOffset=0,this.reader=new Oo.BufferReader,e?.mode==="binary")throw new Error("Binary mode not supported yet");this.mode=e?.mode||"text"}parse(e,t){this.mergeBuffer(e);let n=this.bufferOffset+this.bufferLength,s=this.bufferOffset;for(;s+qn<=n;){let i=this.buffer[s],o=this.buffer.readUInt32BE(s+Gt),a=Gt+o;if(a+s<=n){let u=this.handlePacket(s+qn,i,o,this.buffer);t(u),s+=a}else break}s===n?(this.buffer=Kt,this.bufferLength=0,this.bufferOffset=0):(this.bufferLength=n-s,this.bufferOffset=s)}mergeBuffer(e){if(this.bufferLength>0){let t=this.bufferLength+e.byteLength;if(t+this.bufferOffset>this.buffer.byteLength){let s;if(t<=this.buffer.byteLength&&this.bufferOffset>=this.bufferLength)s=this.buffer;else{let i=this.buffer.byteLength*2;for(;t>=i;)i*=2;s=Buffer.allocUnsafe(i)}this.buffer.copy(s,0,this.bufferOffset,this.bufferOffset+this.bufferLength),this.buffer=s,this.bufferOffset=0}e.copy(this.buffer,this.bufferOffset+this.bufferLength),this.bufferLength=t}else this.buffer=e,this.bufferOffset=0,this.bufferLength=e.byteLength}handlePacket(e,t,n,s){let{reader:i}=this;i.setBuffer(e,s);let o;switch(t){case 50:o=v.bindComplete;break;case 49:o=v.parseComplete;break;case 51:o=v.closeComplete;break;case 110:o=v.noData;break;case 115:o=v.portalSuspended;break;case 99:o=v.copyDone;break;case 87:o=v.replicationStart;break;case 73:o=v.emptyQuery;break;case 68:o=jo(i);break;case 67:o=qo(i);break;case 90:o=Mo(i);break;case 65:o=No(i);break;case 82:o=zo(i,n);break;case 83:o=$o(i);break;case 75:o=Ho(i);break;case 69:o=Dn(i,"error");break;case 78:o=Dn(i,"notice");break;case 84:o=Bo(i);break;case 116:o=Uo(i);break;case 71:o=Lo(i);break;case 72:o=Qo(i);break;case 100:o=Do(i,n);break;default:return new v.DatabaseError("received invalid response: "+t.toString(16),n,"error")}return i.setBuffer(0,Kt),o.length=n,o}};Be.Parser=Vt;var Mo=r=>{let e=r.string(1);return new v.ReadyForQueryMessage(O,e)},qo=r=>{let e=r.cstring();return new v.CommandCompleteMessage(O,e)},Do=(r,e)=>{let t=r.bytes(e-4);return new v.CopyDataMessage(O,t)},Lo=r=>Ln(r,"copyInResponse"),Qo=r=>Ln(r,"copyOutResponse"),Ln=(r,e)=>{let t=r.byte()!==0,n=r.int16(),s=new v.CopyResponse(O,e,t,n);for(let i=0;i<n;i++)s.columnTypes[i]=r.int16();return s},No=r=>{let e=r.int32(),t=r.cstring(),n=r.cstring();return new v.NotificationResponseMessage(O,e,t,n)},Bo=r=>{let e=r.int16(),t=new v.RowDescriptionMessage(O,e);for(let n=0;n<e;n++)t.fields[n]=Fo(r);return t},Fo=r=>{let e=r.cstring(),t=r.uint32(),n=r.int16(),s=r.uint32(),i=r.int16(),o=r.int32(),a=r.int16()===0?"text":"binary";return new v.Field(e,t,n,s,i,o,a)},Uo=r=>{let e=r.int16(),t=new v.ParameterDescriptionMessage(O,e);for(let n=0;n<e;n++)t.dataTypeIDs[n]=r.int32();return t},jo=r=>{let e=r.int16(),t=new Array(e);for(let n=0;n<e;n++){let s=r.int32();t[n]=s===-1?null:r.string(s)}return new v.DataRowMessage(O,t)},$o=r=>{let e=r.cstring(),t=r.cstring();return new v.ParameterStatusMessage(O,e,t)},Ho=r=>{let e=r.int32(),t=r.int32();return new v.BackendKeyDataMessage(O,e,t)},zo=(r,e)=>{let t=r.int32(),n={name:"authenticationOk",length:e};switch(t){case 0:break;case 3:n.length===8&&(n.name="authenticationCleartextPassword");break;case 5:if(n.length===12){n.name="authenticationMD5Password";let s=r.bytes(4);return new v.AuthenticationMD5Password(O,s)}break;case 10:{n.name="authenticationSASL",n.mechanisms=[];let s;do s=r.cstring(),s&&n.mechanisms.push(s);while(s)}break;case 11:n.name="authenticationSASLContinue",n.data=r.string(e-8);break;case 12:n.name="authenticationSASLFinal",n.data=r.string(e-8);break;default:throw new Error("Unknown authenticationOk message type "+t)}return n},Dn=(r,e)=>{let t={},n=r.string(1);for(;n!=="\0";)t[n]=r.cstring(),n=r.string(1);let s=t.M,i=e==="notice"?new v.NoticeMessage(O,s):new v.DatabaseError(s,O,e);return i.severity=t.S,i.code=t.C,i.detail=t.D,i.hint=t.H,i.position=t.P,i.internalPosition=t.p,i.internalQuery=t.q,i.where=t.W,i.schema=t.s,i.table=t.t,i.column=t.c,i.dataType=t.d,i.constraint=t.n,i.file=t.F,i.line=t.L,i.routine=t.R,i}});var Wt=g(H=>{"use strict";l();Object.defineProperty(H,"__esModule",{value:!0});H.DatabaseError=H.serialize=H.parse=void 0;var Ko=Ut();Object.defineProperty(H,"DatabaseError",{enumerable:!0,get:function(){return Ko.DatabaseError}});var Go=In();Object.defineProperty(H,"serialize",{enumerable:!0,get:function(){return Go.serialize}});var Vo=Qn();function Wo(r,e){let t=new Vo.Parser;return r.on("data",n=>t.parse(n,e)),new Promise(n=>r.on("end",()=>n()))}H.parse=Wo});var Nn=g(Jt=>{"use strict";l();Object.defineProperty(Jt,"__esModule",{value:!0});Jt.default={}});var Fn=g((bl,Bn)=>{"use strict";l();var{getStream:Jo,getSecureStream:Yo}=ta();Bn.exports={getStream:Jo,getSecureStream:Yo};function Xo(){function r(t){let n=require("net");return new n.Socket}function e(t){return require("tls").connect(t)}return{getStream:r,getSecureStream:e}}function Zo(){function r(t){let{CloudflareSocket:n}=Nn();return new n(t)}function e(t){return t.socket.startTls(t),t.socket}return{getStream:r,getSecureStream:e}}function ea(){if(typeof navigator=="object"&&navigator!==null&&typeof navigator.userAgent=="string")return navigator.userAgent==="Cloudflare-Workers";if(typeof Response=="function"){let r=new Response(null,{cf:{thing:!0}});if(typeof r.cf=="object"&&r.cf!==null&&r.cf.thing)return!0}return!1}function ta(){return ea()?Zo():Xo()}});var Xt=g((Sl,Un)=>{"use strict";l();var ra=require("events").EventEmitter,{parse:na,serialize:C}=Wt(),{getStream:sa,getSecureStream:ia}=Fn(),oa=C.flush(),aa=C.sync(),ca=C.end(),Yt=class extends ra{constructor(e){super(),e=e||{},this.stream=e.stream||sa(e.ssl),typeof this.stream=="function"&&(this.stream=this.stream(e)),this._keepAlive=e.keepAlive,this._keepAliveInitialDelayMillis=e.keepAliveInitialDelayMillis,this.parsedStatements={},this.ssl=e.ssl||!1,this._ending=!1,this._emitMessage=!1;let t=this;this.on("newListener",function(n){n==="message"&&(t._emitMessage=!0)})}connect(e,t){let n=this;this._connecting=!0,this.stream.setNoDelay(!0),this.stream.connect(e,t),this.stream.once("connect",function(){n._keepAlive&&n.stream.setKeepAlive(!0,n._keepAliveInitialDelayMillis),n.emit("connect")});let s=function(i){n._ending&&(i.code==="ECONNRESET"||i.code==="EPIPE")||n.emit("error",i)};if(this.stream.on("error",s),this.stream.on("close",function(){n.emit("end")}),!this.ssl)return this.attachListeners(this.stream);this.stream.once("data",function(i){switch(i.toString("utf8")){case"S":break;case"N":return n.stream.end(),n.emit("error",new Error("The server does not support SSL connections"));default:return n.stream.end(),n.emit("error",new Error("There was an error establishing an SSL connection"))}let a={socket:n.stream};n.ssl!==!0&&(Object.assign(a,n.ssl),"key"in n.ssl&&(a.key=n.ssl.key));let u=require("net");u.isIP&&u.isIP(t)===0&&(a.servername=t);try{n.stream=ia(a)}catch(c){return n.emit("error",c)}n.attachListeners(n.stream),n.stream.on("error",s),n.emit("sslconnect")})}attachListeners(e){na(e,t=>{let n=t.name==="error"?"errorMessage":t.name;this._emitMessage&&this.emit("message",t),this.emit(n,t)})}requestSsl(){this.stream.write(C.requestSsl())}startup(e){this.stream.write(C.startup(e))}cancel(e,t){this._send(C.cancel(e,t))}password(e){this._send(C.password(e))}sendSASLInitialResponseMessage(e,t){this._send(C.sendSASLInitialResponseMessage(e,t))}sendSCRAMClientFinalMessage(e){this._send(C.sendSCRAMClientFinalMessage(e))}_send(e){return this.stream.writable?this.stream.write(e):!1}query(e){this._send(C.query(e))}parse(e){this._send(C.parse(e))}bind(e){this._send(C.bind(e))}execute(e){this._send(C.execute(e))}flush(){this.stream.writable&&this.stream.write(oa)}sync(){this._ending=!0,this._send(aa)}ref(){this.stream.ref()}unref(){this.stream.unref()}end(){if(this._ending=!0,!this._connecting||!this.stream.writable){this.stream.end();return}return this.stream.write(ca,()=>{this.stream.end()})}close(e){this._send(C.close(e))}describe(e){this._send(C.describe(e))}sendCopyFromChunk(e){this._send(C.copyData(e))}endCopyFrom(){this._send(C.copyDone())}sendCopyFail(e){this._send(C.copyFail(e))}};Un.exports=Yt});var zn=g((El,Hn)=>{"use strict";l();var{Transform:ua}=require("stream"),{StringDecoder:la}=require("string_decoder"),z=Symbol("last"),Fe=Symbol("decoder");function ha(r,e,t){let n;if(this.overflow){if(n=this[Fe].write(r).split(this.matcher),n.length===1)return t();n.shift(),this.overflow=!1}else this[z]+=this[Fe].write(r),n=this[z].split(this.matcher);this[z]=n.pop();for(let s=0;s<n.length;s++)try{$n(this,this.mapper(n[s]))}catch(i){return t(i)}if(this.overflow=this[z].length>this.maxLength,this.overflow&&!this.skipOverflow){t(new Error("maximum buffer reached"));return}t()}function da(r){if(this[z]+=this[Fe].end(),this[z])try{$n(this,this.mapper(this[z]))}catch(e){return r(e)}r()}function $n(r,e){e!==void 0&&r.push(e)}function jn(r){return r}function fa(r,e,t){switch(r=r||/\r?\n/,e=e||jn,t=t||{},arguments.length){case 1:typeof r=="function"?(e=r,r=/\r?\n/):typeof r=="object"&&!(r instanceof RegExp)&&!r[Symbol.split]&&(t=r,r=/\r?\n/);break;case 2:typeof r=="function"?(t=e,e=r,r=/\r?\n/):typeof e=="object"&&(t=e,e=jn)}t=Object.assign({},t),t.autoDestroy=!0,t.transform=ha,t.flush=da,t.readableObjectMode=!0;let n=new ua(t);return n[z]="",n[Fe]=new la("utf8"),n.matcher=r,n.mapper=e,n.maxLength=t.maxLength,n.skipOverflow=t.skipOverflow||!1,n.overflow=!1,n._destroy=function(s,i){this._writableState.errorEmitted=!1,i(s)},n}Hn.exports=fa});var Vn=g((_l,L)=>{"use strict";l();var Kn=require("path"),pa=require("stream").Stream,ma=zn(),Gn=require("util"),ya=5432,Ue=process.platform==="win32",ye=process.stderr,ga=56,ba=7,wa=61440,Sa=32768;function va(r){return(r&wa)==Sa}var ne=["host","port","database","user","password"],Zt=ne.length,Ea=ne[Zt-1];function er(){var r=ye instanceof pa&&ye.writable===!0;if(r){var e=Array.prototype.slice.call(arguments).concat(`
|
|
9
|
-
`);ye.write(Gn.format.apply(Gn,e))}}Object.defineProperty(L.exports,"isWin",{get:function(){return Ue},set:function(r){Ue=r}});L.exports.warnTo=function(r){var e=ye;return ye=r,e};L.exports.getFileName=function(r){var e=r||process.env,t=e.PGPASSFILE||(Ue?Kn.join(e.APPDATA||"./","postgresql","pgpass.conf"):Kn.join(e.HOME||"./",".pgpass"));return t};L.exports.usePgPass=function(r,e){return Object.prototype.hasOwnProperty.call(process.env,"PGPASSWORD")?!1:Ue?!0:(e=e||"<unkn>",va(r.mode)?r.mode&(ga|ba)?(er('WARNING: password file "%s" has group or world access; permissions should be u=rw (0600) or less',e),!1):!0:(er('WARNING: password file "%s" is not a plain file',e),!1))};var ka=L.exports.match=function(r,e){return ne.slice(0,-1).reduce(function(t,n,s){return s==1&&Number(r[n]||ya)===Number(e[n])?t&&!0:t&&(e[n]==="*"||e[n]===r[n])},!0)};L.exports.getPassword=function(r,e,t){var n,s=e.pipe(ma());function i(u){var c=_a(u);c&&Ca(c)&&ka(r,c)&&(n=c[Ea],s.end())}var o=function(){e.destroy(),t(n)},a=function(u){e.destroy(),er("WARNING: error on reading file: %s",u),t(void 0)};e.on("error",a),s.on("data",i).on("end",o).on("error",a)};var _a=L.exports.parseLine=function(r){if(r.length<11||r.match(/^\s+#/))return null;for(var e="",t="",n=0,s=0,i=0,o={},a=!1,u=function(h,d,p){var m=r.substring(d,p);Object.hasOwnProperty.call(process.env,"PGPASS_NO_DEESCAPE")||(m=m.replace(/\\([:\\])/g,"$1")),o[ne[h]]=m},c=0;c<r.length-1;c+=1){if(e=r.charAt(c+1),t=r.charAt(c),a=n==Zt-1,a){u(n,s);break}c>=0&&e==":"&&t!=="\\"&&(u(n,s,c+1),s=c+2,n+=1)}return o=Object.keys(o).length===Zt?o:null,o},Ca=L.exports.isValidEntry=function(r){for(var e={0:function(o){return o.length>0},1:function(o){return o==="*"?!0:(o=Number(o),isFinite(o)&&o>0&&o<9007199254740992&&Math.floor(o)===o)},2:function(o){return o.length>0},3:function(o){return o.length>0},4:function(o){return o.length>0}},t=0;t<ne.length;t+=1){var n=e[t],s=r[ne[t]]||"",i=n(s);if(!i)return!1}return!0}});var Jn=g((Pl,tr)=>{"use strict";l();var xl=require("path"),Wn=require("fs"),je=Vn();tr.exports=function(r,e){var t=je.getFileName();Wn.stat(t,function(n,s){if(n||!je.usePgPass(s,t))return e(void 0);var i=Wn.createReadStream(t);je.getPassword(r,i,e)})};tr.exports.warnTo=je.warnTo});var ts=g((Tl,es)=>{"use strict";l();var xa=require("events").EventEmitter,Yn=X(),ge=require("util"),rr=yn(),Pa=qe(),Aa=kt(),Zn=Tn(),Ta=pe(),Ra=Xt(),Oa=wt(),Xn=ge.deprecate(()=>{},"Client.activeQuery is deprecated and will be removed in pg@9.0"),Ia=ge.deprecate(()=>{},"Client.queryQueue is deprecated and will be removed in pg@9.0."),Ma=ge.deprecate(()=>{},"pgpass support is deprecated and will be removed in pg@9.0. You can provide an async function as the password property to the Client/Pool constructor that returns a password instead. Within this function you can call the pgpass module in your own code."),qa=ge.deprecate(()=>{},"Passing a custom Promise implementation to the Client/Pool constructor is deprecated and will be removed in pg@9.0."),Da=ge.deprecate(()=>{},"Calling client.query() when the client is already executing a query is deprecated and will be removed in pg@9.0. Use async/await or an external async flow control mechanism instead."),$e=class extends xa{constructor(e){super(),this.connectionParameters=new Aa(e),this.user=this.connectionParameters.user,this.database=this.connectionParameters.database,this.port=this.connectionParameters.port,this.host=this.connectionParameters.host,Object.defineProperty(this,"password",{configurable:!0,enumerable:!1,writable:!0,value:this.connectionParameters.password}),this.replication=this.connectionParameters.replication;let t=e||{};t.Promise&&qa(),this._Promise=t.Promise||global.Promise,this._types=new Pa(t.types),this._ending=!1,this._ended=!1,this._connecting=!1,this._connected=!1,this._connectionError=!1,this._queryable=!0,this._activeQuery=null,this.enableChannelBinding=!!t.enableChannelBinding,this.connection=t.connection||new Ra({stream:t.stream,ssl:this.connectionParameters.ssl,keepAlive:t.keepAlive||!1,keepAliveInitialDelayMillis:t.keepAliveInitialDelayMillis||0,encoding:this.connectionParameters.client_encoding||"utf8"}),this._queryQueue=[],this.binary=t.binary||Ta.binary,this.processID=null,this.secretKey=null,this.ssl=this.connectionParameters.ssl||!1,this.ssl&&this.ssl.key&&Object.defineProperty(this.ssl,"key",{enumerable:!1}),this._connectionTimeoutMillis=t.connectionTimeoutMillis||0}get activeQuery(){return Xn(),this._activeQuery}set activeQuery(e){Xn(),this._activeQuery=e}_getActiveQuery(){return this._activeQuery}_errorAllQueries(e){let t=s=>{process.nextTick(()=>{s.handleError(e,this.connection)})},n=this._getActiveQuery();n&&(t(n),this._activeQuery=null),this._queryQueue.forEach(t),this._queryQueue.length=0}_connect(e){let t=this,n=this.connection;if(this._connectionCallback=e,this._connecting||this._connected){let s=new Error("Client has already been connected. You cannot reuse a client.");process.nextTick(()=>{e(s)});return}this._connecting=!0,this._connectionTimeoutMillis>0&&(this.connectionTimeoutHandle=setTimeout(()=>{n._ending=!0,n.stream.destroy(new Error("timeout expired"))},this._connectionTimeoutMillis),this.connectionTimeoutHandle.unref&&this.connectionTimeoutHandle.unref()),this.host&&this.host.indexOf("/")===0?n.connect(this.host+"/.s.PGSQL."+this.port):n.connect(this.port,this.host),n.on("connect",function(){t.ssl?n.requestSsl():n.startup(t.getStartupConf())}),n.on("sslconnect",function(){n.startup(t.getStartupConf())}),this._attachListeners(n),n.once("end",()=>{let s=this._ending?new Error("Connection terminated"):new Error("Connection terminated unexpectedly");clearTimeout(this.connectionTimeoutHandle),this._errorAllQueries(s),this._ended=!0,this._ending||(this._connecting&&!this._connectionError?this._connectionCallback?this._connectionCallback(s):this._handleErrorEvent(s):this._connectionError||this._handleErrorEvent(s)),process.nextTick(()=>{this.emit("end")})})}connect(e){if(e){this._connect(e);return}return new this._Promise((t,n)=>{this._connect(s=>{s?n(s):t(this)})})}_attachListeners(e){e.on("authenticationCleartextPassword",this._handleAuthCleartextPassword.bind(this)),e.on("authenticationMD5Password",this._handleAuthMD5Password.bind(this)),e.on("authenticationSASL",this._handleAuthSASL.bind(this)),e.on("authenticationSASLContinue",this._handleAuthSASLContinue.bind(this)),e.on("authenticationSASLFinal",this._handleAuthSASLFinal.bind(this)),e.on("backendKeyData",this._handleBackendKeyData.bind(this)),e.on("error",this._handleErrorEvent.bind(this)),e.on("errorMessage",this._handleErrorMessage.bind(this)),e.on("readyForQuery",this._handleReadyForQuery.bind(this)),e.on("notice",this._handleNotice.bind(this)),e.on("rowDescription",this._handleRowDescription.bind(this)),e.on("dataRow",this._handleDataRow.bind(this)),e.on("portalSuspended",this._handlePortalSuspended.bind(this)),e.on("emptyQuery",this._handleEmptyQuery.bind(this)),e.on("commandComplete",this._handleCommandComplete.bind(this)),e.on("parseComplete",this._handleParseComplete.bind(this)),e.on("copyInResponse",this._handleCopyInResponse.bind(this)),e.on("copyData",this._handleCopyData.bind(this)),e.on("notification",this._handleNotification.bind(this))}_getPassword(e){let t=this.connection;if(typeof this.password=="function")this._Promise.resolve().then(()=>this.password(this.connectionParameters)).then(n=>{if(n!==void 0){if(typeof n!="string"){t.emit("error",new TypeError("Password must be a string"));return}this.connectionParameters.password=this.password=n}else this.connectionParameters.password=this.password=null;e()}).catch(n=>{t.emit("error",n)});else if(this.password!==null)e();else try{Jn()(this.connectionParameters,s=>{s!==void 0&&(Ma(),this.connectionParameters.password=this.password=s),e()})}catch(n){this.emit("error",n)}}_handleAuthCleartextPassword(e){this._getPassword(()=>{this.connection.password(this.password)})}_handleAuthMD5Password(e){this._getPassword(async()=>{try{let t=await Oa.postgresMd5PasswordHash(this.user,this.password,e.salt);this.connection.password(t)}catch(t){this.emit("error",t)}})}_handleAuthSASL(e){this._getPassword(()=>{try{this.saslSession=rr.startSession(e.mechanisms,this.enableChannelBinding&&this.connection.stream),this.connection.sendSASLInitialResponseMessage(this.saslSession.mechanism,this.saslSession.response)}catch(t){this.connection.emit("error",t)}})}async _handleAuthSASLContinue(e){try{await rr.continueSession(this.saslSession,this.password,e.data,this.enableChannelBinding&&this.connection.stream),this.connection.sendSCRAMClientFinalMessage(this.saslSession.response)}catch(t){this.connection.emit("error",t)}}_handleAuthSASLFinal(e){try{rr.finalizeSession(this.saslSession,e.data),this.saslSession=null}catch(t){this.connection.emit("error",t)}}_handleBackendKeyData(e){this.processID=e.processID,this.secretKey=e.secretKey}_handleReadyForQuery(e){this._connecting&&(this._connecting=!1,this._connected=!0,clearTimeout(this.connectionTimeoutHandle),this._connectionCallback&&(this._connectionCallback(null,this),this._connectionCallback=null),this.emit("connect"));let t=this._getActiveQuery();this._activeQuery=null,this.readyForQuery=!0,t&&t.handleReadyForQuery(this.connection),this._pulseQueryQueue()}_handleErrorWhileConnecting(e){if(!this._connectionError){if(this._connectionError=!0,clearTimeout(this.connectionTimeoutHandle),this._connectionCallback)return this._connectionCallback(e);this.emit("error",e)}}_handleErrorEvent(e){if(this._connecting)return this._handleErrorWhileConnecting(e);this._queryable=!1,this._errorAllQueries(e),this.emit("error",e)}_handleErrorMessage(e){if(this._connecting)return this._handleErrorWhileConnecting(e);let t=this._getActiveQuery();if(!t){this._handleErrorEvent(e);return}this._activeQuery=null,t.handleError(e,this.connection)}_handleRowDescription(e){let t=this._getActiveQuery();if(t==null){let n=new Error("Received unexpected rowDescription message from backend.");this._handleErrorEvent(n);return}t.handleRowDescription(e)}_handleDataRow(e){let t=this._getActiveQuery();if(t==null){let n=new Error("Received unexpected dataRow message from backend.");this._handleErrorEvent(n);return}t.handleDataRow(e)}_handlePortalSuspended(e){let t=this._getActiveQuery();if(t==null){let n=new Error("Received unexpected portalSuspended message from backend.");this._handleErrorEvent(n);return}t.handlePortalSuspended(this.connection)}_handleEmptyQuery(e){let t=this._getActiveQuery();if(t==null){let n=new Error("Received unexpected emptyQuery message from backend.");this._handleErrorEvent(n);return}t.handleEmptyQuery(this.connection)}_handleCommandComplete(e){let t=this._getActiveQuery();if(t==null){let n=new Error("Received unexpected commandComplete message from backend.");this._handleErrorEvent(n);return}t.handleCommandComplete(e,this.connection)}_handleParseComplete(){let e=this._getActiveQuery();if(e==null){let t=new Error("Received unexpected parseComplete message from backend.");this._handleErrorEvent(t);return}e.name&&(this.connection.parsedStatements[e.name]=e.text)}_handleCopyInResponse(e){let t=this._getActiveQuery();if(t==null){let n=new Error("Received unexpected copyInResponse message from backend.");this._handleErrorEvent(n);return}t.handleCopyInResponse(this.connection)}_handleCopyData(e){let t=this._getActiveQuery();if(t==null){let n=new Error("Received unexpected copyData message from backend.");this._handleErrorEvent(n);return}t.handleCopyData(e,this.connection)}_handleNotification(e){this.emit("notification",e)}_handleNotice(e){this.emit("notice",e)}getStartupConf(){let e=this.connectionParameters,t={user:e.user,database:e.database},n=e.application_name||e.fallback_application_name;return n&&(t.application_name=n),e.replication&&(t.replication=""+e.replication),e.statement_timeout&&(t.statement_timeout=String(parseInt(e.statement_timeout,10))),e.lock_timeout&&(t.lock_timeout=String(parseInt(e.lock_timeout,10))),e.idle_in_transaction_session_timeout&&(t.idle_in_transaction_session_timeout=String(parseInt(e.idle_in_transaction_session_timeout,10))),e.options&&(t.options=e.options),t}cancel(e,t){if(e.activeQuery===t){let n=this.connection;this.host&&this.host.indexOf("/")===0?n.connect(this.host+"/.s.PGSQL."+this.port):n.connect(this.port,this.host),n.on("connect",function(){n.cancel(e.processID,e.secretKey)})}else e._queryQueue.indexOf(t)!==-1&&e._queryQueue.splice(e._queryQueue.indexOf(t),1)}setTypeParser(e,t,n){return this._types.setTypeParser(e,t,n)}getTypeParser(e,t){return this._types.getTypeParser(e,t)}escapeIdentifier(e){return Yn.escapeIdentifier(e)}escapeLiteral(e){return Yn.escapeLiteral(e)}_pulseQueryQueue(){if(this.readyForQuery===!0){this._activeQuery=this._queryQueue.shift();let e=this._getActiveQuery();if(e){this.readyForQuery=!1,this.hasExecuted=!0;let t=e.submit(this.connection);t&&process.nextTick(()=>{e.handleError(t,this.connection),this.readyForQuery=!0,this._pulseQueryQueue()})}else this.hasExecuted&&(this._activeQuery=null,this.emit("drain"))}}query(e,t,n){let s,i,o,a,u;if(e==null)throw new TypeError("Client was passed a null or undefined query");return typeof e.submit=="function"?(o=e.query_timeout||this.connectionParameters.query_timeout,i=s=e,s.callback||(typeof t=="function"?s.callback=t:n&&(s.callback=n))):(o=e.query_timeout||this.connectionParameters.query_timeout,s=new Zn(e,t,n),s.callback||(i=new this._Promise((c,h)=>{s.callback=(d,p)=>d?h(d):c(p)}).catch(c=>{throw Error.captureStackTrace(c),c}))),o&&(u=s.callback||(()=>{}),a=setTimeout(()=>{let c=new Error("Query read timeout");process.nextTick(()=>{s.handleError(c,this.connection)}),u(c),s.callback=()=>{};let h=this._queryQueue.indexOf(s);h>-1&&this._queryQueue.splice(h,1),this._pulseQueryQueue()},o),s.callback=(c,h)=>{clearTimeout(a),u(c,h)}),this.binary&&!s.binary&&(s.binary=!0),s._result&&!s._result._types&&(s._result._types=this._types),this._queryable?this._ending?(process.nextTick(()=>{s.handleError(new Error("Client was closed and is not queryable"),this.connection)}),i):(this._queryQueue.length>0&&Da(),this._queryQueue.push(s),this._pulseQueryQueue(),i):(process.nextTick(()=>{s.handleError(new Error("Client has encountered a connection error and is not queryable"),this.connection)}),i)}ref(){this.connection.ref()}unref(){this.connection.unref()}end(e){if(this._ending=!0,!this.connection._connecting||this._ended)if(e)e();else return this._Promise.resolve();if(this._getActiveQuery()||!this._queryable?this.connection.stream.destroy():this.connection.end(),e)this.connection.once("end",e);else return new this._Promise(t=>{this.connection.once("end",t)})}get queryQueue(){return Ia(),this._queryQueue}};$e.Query=Zn;es.exports=$e});var ss=g((Ol,ns)=>{"use strict";l();var La=require("events").EventEmitter,nr=function(){},rs=(r,e)=>{let t=r.findIndex(e);return t===-1?void 0:r.splice(t,1)[0]},sr=class{constructor(e,t,n){this.client=e,this.idleListener=t,this.timeoutId=n}},se=class{constructor(e){this.callback=e}};function Qa(){throw new Error("Release called on client which has already been released to the pool.")}function He(r,e){if(e)return{callback:e,result:void 0};let t,n,s=function(o,a){o?t(o):n(a)},i=new r(function(o,a){n=o,t=a}).catch(o=>{throw Error.captureStackTrace(o),o});return{callback:s,result:i}}function Na(r,e){return function t(n){n.client=e,e.removeListener("error",t),e.on("error",()=>{r.log("additional client error after disconnection due to error",n)}),r._remove(e),r.emit("error",n,e)}}var ir=class extends La{constructor(e,t){super(),this.options=Object.assign({},e),e!=null&&"password"in e&&Object.defineProperty(this.options,"password",{configurable:!0,enumerable:!1,writable:!0,value:e.password}),e!=null&&e.ssl&&e.ssl.key&&Object.defineProperty(this.options.ssl,"key",{enumerable:!1}),this.options.max=this.options.max||this.options.poolSize||10,this.options.min=this.options.min||0,this.options.maxUses=this.options.maxUses||1/0,this.options.allowExitOnIdle=this.options.allowExitOnIdle||!1,this.options.maxLifetimeSeconds=this.options.maxLifetimeSeconds||0,this.log=this.options.log||function(){},this.Client=this.options.Client||t||or().Client,this.Promise=this.options.Promise||global.Promise,typeof this.options.idleTimeoutMillis>"u"&&(this.options.idleTimeoutMillis=1e4),this._clients=[],this._idle=[],this._expired=new WeakSet,this._pendingQueue=[],this._endCallback=void 0,this.ending=!1,this.ended=!1}_promiseTry(e){let t=this.Promise;return typeof t.try=="function"?t.try(e):new t(n=>n(e()))}_isFull(){return this._clients.length>=this.options.max}_isAboveMin(){return this._clients.length>this.options.min}_pulseQueue(){if(this.log("pulse queue"),this.ended){this.log("pulse queue ended");return}if(this.ending){this.log("pulse queue on ending"),this._idle.length&&this._idle.slice().map(t=>{this._remove(t.client)}),this._clients.length||(this.ended=!0,this._endCallback());return}if(!this._pendingQueue.length){this.log("no queued requests");return}if(!this._idle.length&&this._isFull())return;let e=this._pendingQueue.shift();if(this._idle.length){let t=this._idle.pop();clearTimeout(t.timeoutId);let n=t.client;n.ref&&n.ref();let s=t.idleListener;return this._acquireClient(n,e,s,!1)}if(!this._isFull())return this.newClient(e);throw new Error("unexpected condition")}_remove(e,t){let n=rs(this._idle,i=>i.client===e);n!==void 0&&clearTimeout(n.timeoutId),this._clients=this._clients.filter(i=>i!==e);let s=this;e.end(()=>{s.emit("remove",e),typeof t=="function"&&t()})}connect(e){if(this.ending){let s=new Error("Cannot use a pool after calling end on the pool");return e?e(s):this.Promise.reject(s)}let t=He(this.Promise,e),n=t.result;if(this._isFull()||this._idle.length){if(this._idle.length&&process.nextTick(()=>this._pulseQueue()),!this.options.connectionTimeoutMillis)return this._pendingQueue.push(new se(t.callback)),n;let s=(a,u,c)=>{clearTimeout(o),t.callback(a,u,c)},i=new se(s),o=setTimeout(()=>{rs(this._pendingQueue,a=>a.callback===s),i.timedOut=!0,t.callback(new Error("timeout exceeded when trying to connect"))},this.options.connectionTimeoutMillis);return o.unref&&o.unref(),this._pendingQueue.push(i),n}return this.newClient(new se(t.callback)),n}newClient(e){let t=new this.Client(this.options);this._clients.push(t);let n=Na(this,t);this.log("checking client timeout");let s,i=!1;this.options.connectionTimeoutMillis&&(s=setTimeout(()=>{t.connection?(this.log("ending client due to timeout"),i=!0,t.connection.stream.destroy()):t.isConnected()||(this.log("ending client due to timeout"),i=!0,t.end())},this.options.connectionTimeoutMillis)),this.log("connecting new client"),t.connect(o=>{if(s&&clearTimeout(s),t.on("error",n),o)this.log("client failed to connect",o),this._clients=this._clients.filter(a=>a!==t),i&&(o=new Error("Connection terminated due to connection timeout",{cause:o})),this._pulseQueue(),e.timedOut||e.callback(o,void 0,nr);else{if(this.log("new client connected"),this.options.onConnect){this._promiseTry(()=>this.options.onConnect(t)).then(()=>{this._afterConnect(t,e,n)},a=>{this._clients=this._clients.filter(u=>u!==t),t.end(()=>{this._pulseQueue(),e.timedOut||e.callback(a,void 0,nr)})});return}return this._afterConnect(t,e,n)}})}_afterConnect(e,t,n){if(this.options.maxLifetimeSeconds!==0){let s=setTimeout(()=>{this.log("ending client due to expired lifetime"),this._expired.add(e),this._idle.findIndex(o=>o.client===e)!==-1&&this._acquireClient(e,new se((o,a,u)=>u()),n,!1)},this.options.maxLifetimeSeconds*1e3);s.unref(),e.once("end",()=>clearTimeout(s))}return this._acquireClient(e,t,n,!0)}_acquireClient(e,t,n,s){s&&this.emit("connect",e),this.emit("acquire",e),e.release=this._releaseOnce(e,n),e.removeListener("error",n),t.timedOut?s&&this.options.verify?this.options.verify(e,e.release):e.release():s&&this.options.verify?this.options.verify(e,i=>{if(i)return e.release(i),t.callback(i,void 0,nr);t.callback(void 0,e,e.release)}):t.callback(void 0,e,e.release)}_releaseOnce(e,t){let n=!1;return s=>{n&&Qa(),n=!0,this._release(e,t,s)}}_release(e,t,n){if(e.on("error",t),e._poolUseCount=(e._poolUseCount||0)+1,this.emit("release",n,e),n||this.ending||!e._queryable||e._ending||e._poolUseCount>=this.options.maxUses)return e._poolUseCount>=this.options.maxUses&&this.log("remove expended client"),this._remove(e,this._pulseQueue.bind(this));if(this._expired.has(e))return this.log("remove expired client"),this._expired.delete(e),this._remove(e,this._pulseQueue.bind(this));let i;this.options.idleTimeoutMillis&&this._isAboveMin()&&(i=setTimeout(()=>{this._isAboveMin()&&(this.log("remove idle client"),this._remove(e,this._pulseQueue.bind(this)))},this.options.idleTimeoutMillis),this.options.allowExitOnIdle&&i.unref()),this.options.allowExitOnIdle&&e.unref(),this._idle.push(new sr(e,t,i)),this._pulseQueue()}query(e,t,n){if(typeof e=="function"){let i=He(this.Promise,e);return setImmediate(function(){return i.callback(new Error("Passing a function as the first parameter to pool.query is not supported"))}),i.result}typeof t=="function"&&(n=t,t=void 0);let s=He(this.Promise,n);return n=s.callback,this.connect((i,o)=>{if(i)return n(i);let a=!1,u=c=>{a||(a=!0,o.release(c),n(c))};o.once("error",u),this.log("dispatching query");try{o.query(e,t,(c,h)=>{if(this.log("query dispatched"),o.removeListener("error",u),!a)return a=!0,o.release(c),c?n(c):n(void 0,h)})}catch(c){return o.release(c),n(c)}}),s.result}end(e){if(this.log("ending"),this.ending){let n=new Error("Called end on pool more than once");return e?e(n):this.Promise.reject(n)}this.ending=!0;let t=He(this.Promise,e);return this._endCallback=t.callback,this._pulseQueue(),t.result}get waitingCount(){return this._pendingQueue.length}get idleCount(){return this._idle.length}get expiredCount(){return this._clients.reduce((e,t)=>e+(this._expired.has(t)?1:0),0)}get totalCount(){return this._clients.length}};ns.exports=ir});var as=g((Ml,os)=>{"use strict";l();var is=require("events").EventEmitter,Ba=require("util"),ar=X(),ie=os.exports=function(r,e,t){is.call(this),r=ar.normalizeQueryConfig(r,e,t),this.text=r.text,this.values=r.values,this.name=r.name,this.queryMode=r.queryMode,this.callback=r.callback,this.state="new",this._arrayMode=r.rowMode==="array",this._emitRowEvents=!1,this.on("newListener",function(n){n==="row"&&(this._emitRowEvents=!0)}.bind(this))};Ba.inherits(ie,is);var Fa={sqlState:"code",statementPosition:"position",messagePrimary:"message",context:"where",schemaName:"schema",tableName:"table",columnName:"column",dataTypeName:"dataType",constraintName:"constraint",sourceFile:"file",sourceLine:"line",sourceFunction:"routine"};ie.prototype.handleError=function(r){let e=this.native.pq.resultErrorFields();if(e)for(let t in e){let n=Fa[t]||t;r[n]=e[t]}this.callback?this.callback(r):this.emit("error",r),this.state="error"};ie.prototype.then=function(r,e){return this._getPromise().then(r,e)};ie.prototype.catch=function(r){return this._getPromise().catch(r)};ie.prototype._getPromise=function(){return this._promise?this._promise:(this._promise=new Promise(function(r,e){this._once("end",r),this._once("error",e)}.bind(this)),this._promise)};ie.prototype.submit=function(r){this.state="running";let e=this;this.native=r.native,r.native.arrayMode=this._arrayMode;let t=function(n,s,i){if(r.native.arrayMode=!1,setImmediate(function(){e.emit("_done")}),n)return e.handleError(n);e._emitRowEvents&&(i.length>1?s.forEach((o,a)=>{o.forEach(u=>{e.emit("row",u,i[a])})}):s.forEach(function(o){e.emit("row",o,i)})),e.state="end",e.emit("end",i),e.callback&&e.callback(null,i)};if(process.domain&&(t=process.domain.bind(t)),this.name){this.name.length>63&&(console.error("Warning! Postgres only supports 63 characters for query names."),console.error("You supplied %s (%s)",this.name,this.name.length),console.error("This can cause conflicts and silent errors executing queries"));let n=(this.values||[]).map(ar.prepareValue);if(r.namedQueries[this.name]){if(this.text&&r.namedQueries[this.name]!==this.text){let s=new Error(`Prepared statements must be unique - '${this.name}' was used for a different statement`);return t(s)}return r.native.execute(this.name,n,t)}return r.native.prepare(this.name,this.text,n.length,function(s){return s?t(s):(r.namedQueries[e.name]=e.text,e.native.execute(e.name,n,t))})}else if(this.values){if(!Array.isArray(this.values)){let s=new Error("Query values must be an array");return t(s)}let n=this.values.map(ar.prepareValue);r.native.query(this.text,n,t)}else this.queryMode==="extended"?r.native.query(this.text,[],t):r.native.query(this.text,t)}});var ds=g((Dl,hs)=>{"use strict";l();var Ua=require("util"),cs;try{cs=require("pg-native")}catch(r){throw r}var ja=qe(),us=require("events").EventEmitter,$a=require("util"),Ha=kt(),ls=as(),za=Ua.deprecate(()=>{},"Calling client.query() when the client is already executing a query is deprecated and will be removed in pg@9.0. Use async/await or an external async flow control mechanism instead."),P=hs.exports=function(r){us.call(this),r=r||{},this._Promise=r.Promise||global.Promise,this._types=new ja(r.types),this.native=new cs({types:this._types}),this._queryQueue=[],this._ending=!1,this._connecting=!1,this._connected=!1,this._queryable=!0;let e=this.connectionParameters=new Ha(r);r.nativeConnectionString&&(e.nativeConnectionString=r.nativeConnectionString),this.user=e.user,Object.defineProperty(this,"password",{configurable:!0,enumerable:!1,writable:!0,value:e.password}),this.database=e.database,this.host=e.host,this.port=e.port,this.namedQueries={}};P.Query=ls;$a.inherits(P,us);P.prototype._errorAllQueries=function(r){let e=t=>{process.nextTick(()=>{t.native=this.native,t.handleError(r)})};this._hasActiveQuery()&&(e(this._activeQuery),this._activeQuery=null),this._queryQueue.forEach(e),this._queryQueue.length=0};P.prototype._connect=function(r){let e=this;if(this._connecting){process.nextTick(()=>r(new Error("Client has already been connected. You cannot reuse a client.")));return}this._connecting=!0,this.connectionParameters.getLibpqConnectionString(function(t,n){if(e.connectionParameters.nativeConnectionString&&(n=e.connectionParameters.nativeConnectionString),t)return r(t);e.native.connect(n,function(s){if(s)return e.native.end(),r(s);e._connected=!0,e.native.on("error",function(i){e._queryable=!1,e._errorAllQueries(i),e.emit("error",i)}),e.native.on("notification",function(i){e.emit("notification",{channel:i.relname,payload:i.extra})}),e.emit("connect"),e._pulseQueryQueue(!0),r(null,this)})})};P.prototype.connect=function(r){if(r){this._connect(r);return}return new this._Promise((e,t)=>{this._connect(n=>{n?t(n):e(this)})})};P.prototype.query=function(r,e,t){let n,s,i,o,a;if(r==null)throw new TypeError("Client was passed a null or undefined query");if(typeof r.submit=="function")i=r.query_timeout||this.connectionParameters.query_timeout,s=n=r,typeof e=="function"&&(r.callback=e);else if(i=r.query_timeout||this.connectionParameters.query_timeout,n=new ls(r,e,t),!n.callback){let u,c;s=new this._Promise((h,d)=>{u=h,c=d}).catch(h=>{throw Error.captureStackTrace(h),h}),n.callback=(h,d)=>h?c(h):u(d)}return i&&(a=n.callback||(()=>{}),o=setTimeout(()=>{let u=new Error("Query read timeout");process.nextTick(()=>{n.handleError(u,this.connection)}),a(u),n.callback=()=>{};let c=this._queryQueue.indexOf(n);c>-1&&this._queryQueue.splice(c,1),this._pulseQueryQueue()},i),n.callback=(u,c)=>{clearTimeout(o),a(u,c)}),this._queryable?this._ending?(n.native=this.native,process.nextTick(()=>{n.handleError(new Error("Client was closed and is not queryable"))}),s):(this._queryQueue.length>0&&za(),this._queryQueue.push(n),this._pulseQueryQueue(),s):(n.native=this.native,process.nextTick(()=>{n.handleError(new Error("Client has encountered a connection error and is not queryable"))}),s)};P.prototype.end=function(r){let e=this;this._ending=!0,this._connected||this.once("connect",this.end.bind(this,r));let t;return r||(t=new this._Promise(function(n,s){r=i=>i?s(i):n()})),this.native.end(function(){e._connected=!1,e._errorAllQueries(new Error("Connection terminated")),process.nextTick(()=>{e.emit("end"),r&&r()})}),t};P.prototype._hasActiveQuery=function(){return this._activeQuery&&this._activeQuery.state!=="error"&&this._activeQuery.state!=="end"};P.prototype._pulseQueryQueue=function(r){if(!this._connected||this._hasActiveQuery())return;let e=this._queryQueue.shift();if(!e){r||this.emit("drain");return}this._activeQuery=e,e.submit(this);let t=this;e.once("_done",function(){t._pulseQueryQueue()})};P.prototype.cancel=function(r){this._activeQuery===r?this.native.cancel(function(){}):this._queryQueue.indexOf(r)!==-1&&this._queryQueue.splice(this._queryQueue.indexOf(r),1)};P.prototype.ref=function(){};P.prototype.unref=function(){};P.prototype.setTypeParser=function(r,e,t){return this._types.setTypeParser(r,e,t)};P.prototype.getTypeParser=function(r,e){return this._types.getTypeParser(r,e)};P.prototype.isConnected=function(){return this._connected}});var cr=g((Ql,fs)=>{"use strict";l();fs.exports=ds()});var or=g((Fl,ze)=>{"use strict";l();var Ka=ts(),Ga=pe(),Va=Xt(),Wa=Ct(),Ja=X(),Ya=ss(),Xa=qe(),{DatabaseError:Za}=Wt(),{escapeIdentifier:ec,escapeLiteral:tc}=X(),rc=r=>class extends Ya{constructor(t){super(t,r)}},ps=function(r){this.defaults=Ga,this.Client=r,this.Query=this.Client.Query,this.Pool=rc(this.Client),this._pools=[],this.Connection=Va,this.types=fe(),this.DatabaseError=Za,this.TypeOverrides=Xa,this.escapeIdentifier=ec,this.escapeLiteral=tc,this.Result=Wa,this.utils=Ja},ms=Ka,ys=!1;try{ys=!!process.env.NODE_PG_FORCE_NATIVE}catch{}ys&&(ms=cr());ze.exports=new ps(ms);Object.defineProperty(ze.exports,"native",{configurable:!0,enumerable:!1,get(){let r=null;try{r=new ps(cr())}catch(e){if(e.code!=="MODULE_NOT_FOUND")throw e}return Object.defineProperty(ze.exports,"native",{value:r}),r}})});var gs={};lr(gs,{Client:()=>nc,Connection:()=>ic,DatabaseError:()=>cc,Pool:()=>sc,Query:()=>ac,Result:()=>hc,TypeOverrides:()=>dc,default:()=>pc,defaults:()=>fc,escapeIdentifier:()=>uc,escapeLiteral:()=>lc,types:()=>oc});var I,nc,sc,ic,oc,ac,cc,uc,lc,hc,dc,fc,pc,bs=ur(()=>{"use strict";l();I=E(or(),1),nc=I.default.Client,sc=I.default.Pool,ic=I.default.Connection,oc=I.default.types,ac=I.default.Query,cc=I.default.DatabaseError,uc=I.default.escapeIdentifier,lc=I.default.escapeLiteral,hc=I.default.Result,dc=I.default.TypeOverrides,fc=I.default.defaults,pc=I.default});var gc={};lr(gc,{ApiDataSource:()=>Pe,ChunkTooLargeError:()=>Ze,DimensionMismatchError:()=>K,EmbeddingError:()=>_,IngestionError:()=>k,JSONSource:()=>Ae,Knowledge:()=>et,KnowledgeError:()=>Q,KnowledgeProviderError:()=>N,MarkdownSource:()=>_e,MemoryProvider:()=>Ee,OllamaEmbedder:()=>Ge,OpenAIEmbedder:()=>Ve,OpenRouterEmbedder:()=>We,PersistentKnowledgeProvider:()=>ke,PostgresSource:()=>Ke,SQLiteSource:()=>Te,TextSource:()=>Ce,VertexAIEmbedder:()=>Je,WebUrlSource:()=>xe,combineScores:()=>Se,keywordSearch:()=>B,matchesFilter:()=>D});module.exports=Ps(gc);l();l();l();var Q=class extends Error{constructor(t,n){super(t);this.code=n;this.name="KnowledgeError"}code},_=class extends Q{constructor(t,n){super(t,"EMBEDDING_ERROR");this.statusCode=n;this.name="EmbeddingError"}statusCode},k=class extends Q{constructor(t,n){super(t,"INGESTION_ERROR");this.file=n;this.name="IngestionError"}file},Ze=class extends Q{constructor(t,n){super(t,"CHUNK_TOO_LARGE");this.chunkSize=n;this.name="ChunkTooLargeError"}chunkSize},K=class extends Q{expected;actual;constructor(e,t){super(`Dimension mismatch: expected ${e}, got ${t}`,"DIMENSION_MISMATCH"),this.name="DimensionMismatchError",this.expected=e,this.actual=t}},N=class extends Q{constructor(e){super(e,"PROVIDER_ERROR"),this.name="KnowledgeProviderError"}};l();var dr=require("crypto");l();function B(r,e){let t=r.toLowerCase(),n=e.toLowerCase();if(t.includes(n))return 1;let s=n.split(/\s+/).filter(o=>o.length>2);if(s.length===0)return 0;let i=0;for(let o of s)t.includes(o)&&i++;return i/s.length}function Se(r,e,t=.7){let n=1-t;return r*t+e*n}l();function ve(r,e){if(r.length!==e.length)throw new Error("Vectors must have same dimensions");let t=0,n=0,s=0;for(let o=0;o<r.length;o++)t+=r[o]*e[o],n+=r[o]*r[o],s+=e[o]*e[o];let i=Math.sqrt(n)*Math.sqrt(s);return i===0?0:t/i}function D(r,e){if(!e)return!0;for(let[t,n]of Object.entries(e)){let s=r[t];if(typeof n=="object"&&n!==null&&!Array.isArray(n)){if("$in"in n){if(!n.$in.includes(s))return!1}else if("$gt"in n){let i=n.$gt;if(typeof s!="number"||s<=i)return!1}else if("$lt"in n){let i=n.$lt;if(typeof s!="number"||s>=i)return!1}}else if(s!==n)return!1}return!0}var et=class r{constructor(e,t,n,s,i){this.provider=e;this.embedder=t;this.description=n;this.sources=s;this.options=i}provider;embedder;description;sources;options;static async create(e){await e.provider.validateDimensions(e.embedder.dimensions);let t=new r(e.provider,e.embedder,e.description,e.sources,e);return e.reSync!==!0&&"shouldReSync"in e.provider?(e.provider.shouldReSync(e.reSync)&&await t.sync(),t):(e.reSync!==!1&&await t.sync(),t)}async query(e,t){let n=t?.searchType??"semantic",s=t?.semanticWeight??.7;if(n==="keyword")return this.keywordQuery(e,t);if(n==="hybrid"){let[i,o]=await Promise.all([this.semanticQuery(e,t),this.keywordQuery(e,t)]);return this.combineHybridResults(i,o,s,t)}else return this.semanticQuery(e,t)}async semanticQuery(e,t){let n=await this.embedder.embed(e);return this.provider.query(n,t)}async keywordQuery(e,t){let{limit:n=10,threshold:s=.1,filter:i,includeMetadata:o=!0,includeVectors:a=!1}=t||{};if(typeof this.provider.keywordQuery=="function")return this.provider.keywordQuery(e,t);let u=await this.getAllChunks(),c=[];for(let h of u){if(i&&!D(h.metadata,i))continue;let d=B(h.content,e);d>=s&&c.push({chunk:{id:h.id,content:h.content,metadata:o?h.metadata:{},vector:a?h.vector:void 0},score:d,distance:1-d})}return c.sort((h,d)=>d.score-h.score),c.slice(0,n)}combineHybridResults(e,t,n,s){let{limit:i=10,threshold:o=.5,includeMetadata:a=!0,includeVectors:u=!1}=s||{},c=new Map(e.map(m=>[m.chunk.id,m])),h=new Map(t.map(m=>[m.chunk.id,m])),d=[],p=new Set([...c.keys(),...h.keys()]);for(let m of p){let b=c.get(m),R=h.get(m);if(!b&&!R)continue;let Ye=b?.score??0,Xe=R?.score??0,W=Se(Ye,Xe,n);W>=o&&d.push({chunk:{id:m,content:b?.chunk.content??R.chunk.content,metadata:a?b?.chunk.metadata??R.chunk.metadata:{},vector:u?b?.chunk.vector??R.chunk.vector:void 0},score:W,distance:1-W})}return d.sort((m,b)=>b.score-m.score),d.slice(0,i)}async getAllChunks(){if(typeof this.provider.getAllChunks=="function")return this.provider.getAllChunks();let e=new Array(this.embedder.dimensions).fill(0);return(await this.provider.query(e,{limit:1e4,threshold:0})).map(t=>t.chunk)}async sync(){this.options.onSync?.({type:"start"});try{let e=this.embedder.dimensions;await this.provider.clear(),await this.provider.validateDimensions(e);let t=this.options.streamingBatchSize??100,n=0,s=[];for(let i of this.sources)for await(let o of i.load())if(s.push(o),s.length>=t){let a=await this.embedChunks(s);a.length>0&&(await this.provider.add(a),n+=a.length),s.length=0}if(s.length>0){let i=await this.embedChunks(s);i.length>0&&(await this.provider.add(i),n+=i.length)}this.options.onSync?.({type:"complete",chunksAffected:n})}catch(e){throw this.options.onSync?.({type:"error",error:e}),e}}async embedChunks(e){if(e.length===0)return[];let t=[];try{let n=e.map(i=>i.content),s=await this.embedder.embedBatch(n);for(let i=0;i<e.length;i++)t.push({...e[i],vector:s[i]}),this.options.onEmbeddingProgress?.({source:"sync",current:i+1,total:e.length,percent:Math.round((i+1)/e.length*100)})}catch(n){if(this.options.onError?.(n,{})==="abort")throw n;for(let i=0;i<e.length;i++)try{let o=await this.embedder.embed(e[i].content);t.push({...e[i],vector:o}),this.options.onEmbeddingProgress?.({source:"sync",current:i+1,total:e.length,percent:Math.round((i+1)/e.length*100)})}catch(o){if(this.options.onError?.(o,{chunk:e[i]})==="abort")throw o}}return t}async add(e,t){try{let n=(0,dr.randomUUID)(),s=await this.embedder.embed(e),i={id:n,content:e,metadata:t??{},vector:s};return await this.provider.add([i]),this.options.onAdd?.({id:n,content:e,metadata:i.metadata}),n}catch(n){throw new k(`Failed to add content to knowledge base: ${n.message}`,"add")}}async ingest(e){let t=this.options.streamingBatchSize??100,n=[],s=0;for await(let i of e.load())if(n.push(i),n.length>=t){let o=await this.embedChunks(n);o.length>0&&(await this.provider.add(o),s+=o.length),n.length=0}if(n.length>0){let i=await this.embedChunks(n);i.length>0&&(await this.provider.add(i),s+=i.length)}return s}async delete(e){await this.provider.delete(e),this.options.onDelete?.({ids:e})}async deleteWhere(e){let n=(await this.getAllChunks()).filter(i=>D(i.metadata,e));if(n.length===0)return[];let s=n.map(i=>i.id);return await this.provider.delete(s),this.options.onDelete?.({ids:s,filter:e}),s}async stop(){this.provider.close&&this.provider.close()}toTool(){return{name:"knowledge_search",displayName:"Knowledge Search",description:this.description||"Search the knowledge base for relevant information",category:"search",cacheable:!1,parameters:{type:"object",properties:{query:{type:"string",description:"Search query to find relevant information"},limit:{type:"number",description:"Maximum number of results to return (default: 10)"},threshold:{type:"number",description:"Minimum similarity threshold 0-1 (default: 0.3)"},filter:{type:"object",description:"Optional metadata filters"}},required:["query"]},execute:async e=>(await this.query(e.query,{limit:e.limit,threshold:e.threshold??.3,filter:e.filter,searchType:"hybrid"})).map(n=>({content:n.chunk.content,score:n.score,metadata:n.chunk.metadata}))}}};l();var Ee=class{constructor(e={}){this.options=e}options;chunks=new Map;dimensions;async validateDimensions(e){if(this.dimensions&&this.dimensions!==e)throw new K(this.dimensions,e);this.dimensions=e}async add(e){for(let t of e){if(!t.vector)throw new N("Chunk missing vector");if(this.options.maxChunks&&this.chunks.size>=this.options.maxChunks)throw new N(`Max chunks limit reached: ${this.options.maxChunks}`);this.chunks.set(t.id,{chunk:{id:t.id,content:t.content,metadata:t.metadata},vector:t.vector})}}async query(e,t={}){let{limit:n=10,threshold:s=.7,filter:i,includeMetadata:o=!0,includeVectors:a=!1}=t,u=[];for(let{chunk:c,vector:h}of this.chunks.values()){if(i&&!D(c.metadata,i))continue;let d=ve(e,h);d>=s&&u.push({chunk:{id:c.id,content:c.content,metadata:o?c.metadata:{},vector:a?h:void 0},score:d,distance:1-d})}return u.sort((c,h)=>h.score-c.score),u.slice(0,n)}async keywordQuery(e,t={}){let{limit:n=10,threshold:s=.1,filter:i,includeMetadata:o=!0,includeVectors:a=!1}=t,u=[];for(let{chunk:c,vector:h}of this.chunks.values()){if(i&&!D(c.metadata,i))continue;let d=B(c.content,e);d>=s&&u.push({chunk:{id:c.id,content:c.content,metadata:o?c.metadata:{},vector:a?h:void 0},score:d,distance:1-d})}return u.sort((c,h)=>h.score-c.score),u.slice(0,n)}async delete(e){for(let t of e)this.chunks.delete(t)}async clear(){this.chunks.clear(),this.dimensions=void 0}async getAllChunks(){return Array.from(this.chunks.values()).map(({chunk:e,vector:t})=>({...e,vector:t}))}};l();var fr=E(require("better-sqlite3"),1),oe=E(require("fs"),1),F=E(require("path"),1),pr=E(require("os"),1);var ke=class{constructor(e){this.options=e;let t=pr.homedir(),n=`${e.namespace}.db`,s;if(e.storagePath)s=e.storagePath;else{let i=F.join(t,".toolpack","db","knowledge"),o=F.join(t,".toolpack","knowledge"),a=F.join(i,n),u=F.join(o,n);oe.existsSync(u)&&!oe.existsSync(a)?s=o:s=i}this.dbPath=F.join(s,n),oe.mkdirSync(F.dirname(this.dbPath),{recursive:!0}),this.db=new fr.default(this.dbPath),this.db.pragma("journal_mode = WAL"),this.initSchema(),this.loadDimensions()}options;db;dimensions;dbPath;initSchema(){this.db.exec(`
|
|
8
|
+
See https://www.postgresql.org/docs/current/libpq-ssl.html for libpq SSL mode definitions.`))}wn.exports=ee;ee.parse=ee;ee.toClientConfig=bn;ee.parseIntoClientConfig=ro});var kt=g((Xu,kn)=>{"use strict";l();var no=require("dns"),En=pe(),vn=Sn().parse,x=function(r,e,t){return e[r]?e[r]:(t===void 0?t=process.env["PG"+r.toUpperCase()]:t===!1||(t=process.env[t]),t||En[r])},so=function(){switch(process.env.PGSSLMODE){case"disable":return!1;case"prefer":case"require":case"verify-ca":case"verify-full":return!0;case"no-verify":return{rejectUnauthorized:!1}}return En.ssl},te=function(r){return"'"+(""+r).replace(/\\/g,"\\\\").replace(/'/g,"\\'")+"'"},q=function(r,e,t){let n=e[t];n!=null&&r.push(t+"="+te(n))},Et=class{constructor(e){e=typeof e=="string"?vn(e):e||{},e.connectionString&&(e=Object.assign({},e,vn(e.connectionString))),this.user=x("user",e),this.database=x("database",e),this.database===void 0&&(this.database=this.user),this.port=parseInt(x("port",e),10),this.host=x("host",e),Object.defineProperty(this,"password",{configurable:!0,enumerable:!1,writable:!0,value:x("password",e)}),this.binary=x("binary",e),this.options=x("options",e),this.ssl=typeof e.ssl>"u"?so():e.ssl,typeof this.ssl=="string"&&this.ssl==="true"&&(this.ssl=!0),this.ssl==="no-verify"&&(this.ssl={rejectUnauthorized:!1}),this.ssl&&this.ssl.key&&Object.defineProperty(this.ssl,"key",{enumerable:!1}),this.client_encoding=x("client_encoding",e),this.replication=x("replication",e),this.isDomainSocket=!(this.host||"").indexOf("/"),this.application_name=x("application_name",e,"PGAPPNAME"),this.fallback_application_name=x("fallback_application_name",e,!1),this.statement_timeout=x("statement_timeout",e,!1),this.lock_timeout=x("lock_timeout",e,!1),this.idle_in_transaction_session_timeout=x("idle_in_transaction_session_timeout",e,!1),this.query_timeout=x("query_timeout",e,!1),e.connectionTimeoutMillis===void 0?this.connect_timeout=process.env.PGCONNECT_TIMEOUT||0:this.connect_timeout=Math.floor(e.connectionTimeoutMillis/1e3),e.keepAlive===!1?this.keepalives=0:e.keepAlive===!0&&(this.keepalives=1),typeof e.keepAliveInitialDelayMillis=="number"&&(this.keepalives_idle=Math.floor(e.keepAliveInitialDelayMillis/1e3))}getLibpqConnectionString(e){let t=[];q(t,this,"user"),q(t,this,"password"),q(t,this,"port"),q(t,this,"application_name"),q(t,this,"fallback_application_name"),q(t,this,"connect_timeout"),q(t,this,"options");let n=typeof this.ssl=="object"?this.ssl:this.ssl?{sslmode:this.ssl}:{};if(q(t,n,"sslmode"),q(t,n,"sslca"),q(t,n,"sslkey"),q(t,n,"sslcert"),q(t,n,"sslrootcert"),this.database&&t.push("dbname="+te(this.database)),this.replication&&t.push("replication="+te(this.replication)),this.host&&t.push("host="+te(this.host)),this.isDomainSocket)return e(null,t.join(" "));this.client_encoding&&t.push("client_encoding="+te(this.client_encoding)),no.lookup(this.host,function(s,i){return s?e(s,null):(t.push("hostaddr="+te(i)),e(null,t.join(" ")))})}};kn.exports=Et});var Ct=g((el,Cn)=>{"use strict";l();var io=fe(),_n=/^([A-Za-z]+)(?: (\d+))?(?: (\d+))?/,_t=class{constructor(e,t){this.command=null,this.rowCount=null,this.oid=null,this.rows=[],this.fields=[],this._parsers=void 0,this._types=t,this.RowCtor=null,this.rowAsArray=e==="array",this.rowAsArray&&(this.parseRow=this._parseRowAsArray),this._prebuiltEmptyResultObject=null}addCommandComplete(e){let t;e.text?t=_n.exec(e.text):t=_n.exec(e.command),t&&(this.command=t[1],t[3]?(this.oid=parseInt(t[2],10),this.rowCount=parseInt(t[3],10)):t[2]&&(this.rowCount=parseInt(t[2],10)))}_parseRowAsArray(e){let t=new Array(e.length);for(let n=0,s=e.length;n<s;n++){let i=e[n];i!==null?t[n]=this._parsers[n](i):t[n]=null}return t}parseRow(e){let t={...this._prebuiltEmptyResultObject};for(let n=0,s=e.length;n<s;n++){let i=e[n],o=this.fields[n].name;if(i!==null){let a=this.fields[n].format==="binary"?Buffer.from(i):i;t[o]=this._parsers[n](a)}else t[o]=null}return t}addRow(e){this.rows.push(e)}addFields(e){this.fields=e,this.fields.length&&(this._parsers=new Array(e.length));let t={};for(let n=0;n<e.length;n++){let s=e[n];t[s.name]=null,this._types?this._parsers[n]=this._types.getTypeParser(s.dataTypeID,s.format||"text"):this._parsers[n]=io.getTypeParser(s.dataTypeID,s.format||"text")}this._prebuiltEmptyResultObject={...t}}};Cn.exports=_t});var Rn=g((rl,An)=>{"use strict";l();var{EventEmitter:oo}=require("events"),xn=Ct(),Pn=X(),xt=class extends oo{constructor(e,t,n){super(),e=Pn.normalizeQueryConfig(e,t,n),this.text=e.text,this.values=e.values,this.rows=e.rows,this.types=e.types,this.name=e.name,this.queryMode=e.queryMode,this.binary=e.binary,this.portal=e.portal||"",this.callback=e.callback,this._rowMode=e.rowMode,process.domain&&e.callback&&(this.callback=process.domain.bind(e.callback)),this._result=new xn(this._rowMode,this.types),this._results=this._result,this._canceledDueToError=!1}requiresPreparation(){return this.queryMode==="extended"||this.name||this.rows?!0:!this.text||!this.values?!1:this.values.length>0}_checkForMultirow(){this._result.command&&(Array.isArray(this._results)||(this._results=[this._result]),this._result=new xn(this._rowMode,this._result._types),this._results.push(this._result))}handleRowDescription(e){this._checkForMultirow(),this._result.addFields(e.fields),this._accumulateRows=this.callback||!this.listeners("row").length}handleDataRow(e){let t;if(!this._canceledDueToError){try{t=this._result.parseRow(e.fields)}catch(n){this._canceledDueToError=n;return}this.emit("row",t,this._result),this._accumulateRows&&this._result.addRow(t)}}handleCommandComplete(e,t){this._checkForMultirow(),this._result.addCommandComplete(e),this.rows&&t.sync()}handleEmptyQuery(e){this.rows&&e.sync()}handleError(e,t){if(this._canceledDueToError&&(e=this._canceledDueToError,this._canceledDueToError=!1),this.callback)return this.callback(e);this.emit("error",e)}handleReadyForQuery(e){if(this._canceledDueToError)return this.handleError(this._canceledDueToError,e);if(this.callback)try{this.callback(null,this._results)}catch(t){process.nextTick(()=>{throw t})}this.emit("end",this._results)}submit(e){if(typeof this.text!="string"&&typeof this.name!="string")return new Error("A query must have either text or a name. Supplying neither is unsupported.");let t=e.parsedStatements[this.name];if(this.text&&t&&this.text!==t)return new Error(`Prepared statements must be unique - '${this.name}' was used for a different statement`);if(this.values&&!Array.isArray(this.values))return new Error("Query values must be an array");if(this.requiresPreparation()){e.stream.cork&&e.stream.cork();try{this.prepare(e)}finally{e.stream.uncork&&e.stream.uncork()}}else e.query(this.text);return null}hasBeenParsed(e){return this.name&&e.parsedStatements[this.name]}handlePortalSuspended(e){this._getRows(e,this.rows)}_getRows(e,t){e.execute({portal:this.portal,rows:t}),t?e.flush():e.sync()}prepare(e){this.hasBeenParsed(e)||e.parse({text:this.text,name:this.name,types:this.types});try{e.bind({portal:this.portal,statement:this.name,values:this.values,binary:this.binary,valueMapper:Pn.prepareValue})}catch(t){this.handleError(t,e);return}e.describe({type:"P",name:this.portal||""}),this._getRows(e,this.rows)}handleCopyInResponse(e){e.sendCopyFail("No source stream defined")}handleCopyData(e,t){}};An.exports=xt});var Ut=g(y=>{"use strict";l();Object.defineProperty(y,"__esModule",{value:!0});y.NoticeMessage=y.DataRowMessage=y.CommandCompleteMessage=y.ReadyForQueryMessage=y.NotificationResponseMessage=y.BackendKeyDataMessage=y.AuthenticationMD5Password=y.ParameterStatusMessage=y.ParameterDescriptionMessage=y.RowDescriptionMessage=y.Field=y.CopyResponse=y.CopyDataMessage=y.DatabaseError=y.copyDone=y.emptyQuery=y.replicationStart=y.portalSuspended=y.noData=y.closeComplete=y.bindComplete=y.parseComplete=void 0;y.parseComplete={name:"parseComplete",length:5};y.bindComplete={name:"bindComplete",length:5};y.closeComplete={name:"closeComplete",length:5};y.noData={name:"noData",length:5};y.portalSuspended={name:"portalSuspended",length:5};y.replicationStart={name:"replicationStart",length:4};y.emptyQuery={name:"emptyQuery",length:4};y.copyDone={name:"copyDone",length:4};var Pt=class extends Error{constructor(e,t,n){super(e),this.length=t,this.name=n}};y.DatabaseError=Pt;var At=class{constructor(e,t){this.length=e,this.chunk=t,this.name="copyData"}};y.CopyDataMessage=At;var Rt=class{constructor(e,t,n,s){this.length=e,this.name=t,this.binary=n,this.columnTypes=new Array(s)}};y.CopyResponse=Rt;var Tt=class{constructor(e,t,n,s,i,o,a){this.name=e,this.tableID=t,this.columnID=n,this.dataTypeID=s,this.dataTypeSize=i,this.dataTypeModifier=o,this.format=a}};y.Field=Tt;var Ot=class{constructor(e,t){this.length=e,this.fieldCount=t,this.name="rowDescription",this.fields=new Array(this.fieldCount)}};y.RowDescriptionMessage=Ot;var It=class{constructor(e,t){this.length=e,this.parameterCount=t,this.name="parameterDescription",this.dataTypeIDs=new Array(this.parameterCount)}};y.ParameterDescriptionMessage=It;var Mt=class{constructor(e,t,n){this.length=e,this.parameterName=t,this.parameterValue=n,this.name="parameterStatus"}};y.ParameterStatusMessage=Mt;var qt=class{constructor(e,t){this.length=e,this.salt=t,this.name="authenticationMD5Password"}};y.AuthenticationMD5Password=qt;var Dt=class{constructor(e,t,n){this.length=e,this.processID=t,this.secretKey=n,this.name="backendKeyData"}};y.BackendKeyDataMessage=Dt;var Lt=class{constructor(e,t,n,s){this.length=e,this.processId=t,this.channel=n,this.payload=s,this.name="notification"}};y.NotificationResponseMessage=Lt;var Qt=class{constructor(e,t){this.length=e,this.status=t,this.name="readyForQuery"}};y.ReadyForQueryMessage=Qt;var Nt=class{constructor(e,t){this.length=e,this.text=t,this.name="commandComplete"}};y.CommandCompleteMessage=Nt;var Bt=class{constructor(e,t){this.length=e,this.fields=t,this.name="dataRow",this.fieldCount=t.length}};y.DataRowMessage=Bt;var Ft=class{constructor(e,t){this.length=e,this.message=t,this.name="notice"}};y.NoticeMessage=Ft});var Tn=g(De=>{"use strict";l();Object.defineProperty(De,"__esModule",{value:!0});De.Writer=void 0;var jt=class{constructor(e=256){this.size=e,this.offset=5,this.headerPosition=0,this.buffer=Buffer.allocUnsafe(e)}ensure(e){if(this.buffer.length-this.offset<e){let n=this.buffer,s=n.length+(n.length>>1)+e;this.buffer=Buffer.allocUnsafe(s),n.copy(this.buffer)}}addInt32(e){return this.ensure(4),this.buffer[this.offset++]=e>>>24&255,this.buffer[this.offset++]=e>>>16&255,this.buffer[this.offset++]=e>>>8&255,this.buffer[this.offset++]=e>>>0&255,this}addInt16(e){return this.ensure(2),this.buffer[this.offset++]=e>>>8&255,this.buffer[this.offset++]=e>>>0&255,this}addCString(e){if(!e)this.ensure(1);else{let t=Buffer.byteLength(e);this.ensure(t+1),this.buffer.write(e,this.offset,"utf-8"),this.offset+=t}return this.buffer[this.offset++]=0,this}addString(e=""){let t=Buffer.byteLength(e);return this.ensure(t),this.buffer.write(e,this.offset),this.offset+=t,this}add(e){return this.ensure(e.length),e.copy(this.buffer,this.offset),this.offset+=e.length,this}join(e){if(e){this.buffer[this.headerPosition]=e;let t=this.offset-(this.headerPosition+1);this.buffer.writeInt32BE(t,this.headerPosition+1)}return this.buffer.slice(e?0:5,this.offset)}flush(e){let t=this.join(e);return this.offset=5,this.headerPosition=0,this.buffer=Buffer.allocUnsafe(this.size),t}};De.Writer=jt});var In=g(Qe=>{"use strict";l();Object.defineProperty(Qe,"__esModule",{value:!0});Qe.serialize=void 0;var $t=Tn(),w=new $t.Writer,ao=r=>{w.addInt16(3).addInt16(0);for(let n of Object.keys(r))w.addCString(n).addCString(r[n]);w.addCString("client_encoding").addCString("UTF8");let e=w.addCString("").flush(),t=e.length+4;return new $t.Writer().addInt32(t).add(e).flush()},co=()=>{let r=Buffer.allocUnsafe(8);return r.writeInt32BE(8,0),r.writeInt32BE(80877103,4),r},uo=r=>w.addCString(r).flush(112),lo=function(r,e){return w.addCString(r).addInt32(Buffer.byteLength(e)).addString(e),w.flush(112)},ho=function(r){return w.addString(r).flush(112)},fo=r=>w.addCString(r).flush(81),On=[],po=r=>{let e=r.name||"";e.length>63&&(console.error("Warning! Postgres only supports 63 characters for query names."),console.error("You supplied %s (%s)",e,e.length),console.error("This can cause conflicts and silent errors executing queries"));let t=r.types||On,n=t.length,s=w.addCString(e).addCString(r.text).addInt16(n);for(let i=0;i<n;i++)s.addInt32(t[i]);return w.flush(80)},re=new $t.Writer,mo=function(r,e){for(let t=0;t<r.length;t++){let n=e?e(r[t],t):r[t];n==null?(w.addInt16(0),re.addInt32(-1)):n instanceof Buffer?(w.addInt16(1),re.addInt32(n.length),re.add(n)):(w.addInt16(0),re.addInt32(Buffer.byteLength(n)),re.addString(n))}},yo=(r={})=>{let e=r.portal||"",t=r.statement||"",n=r.binary||!1,s=r.values||On,i=s.length;return w.addCString(e).addCString(t),w.addInt16(i),mo(s,r.valueMapper),w.addInt16(i),w.add(re.flush()),w.addInt16(1),w.addInt16(n?1:0),w.flush(66)},go=Buffer.from([69,0,0,0,9,0,0,0,0,0]),bo=r=>{if(!r||!r.portal&&!r.rows)return go;let e=r.portal||"",t=r.rows||0,n=Buffer.byteLength(e),s=4+n+1+4,i=Buffer.allocUnsafe(1+s);return i[0]=69,i.writeInt32BE(s,1),i.write(e,5,"utf-8"),i[n+5]=0,i.writeUInt32BE(t,i.length-4),i},wo=(r,e)=>{let t=Buffer.allocUnsafe(16);return t.writeInt32BE(16,0),t.writeInt16BE(1234,4),t.writeInt16BE(5678,6),t.writeInt32BE(r,8),t.writeInt32BE(e,12),t},Ht=(r,e)=>{let n=4+Buffer.byteLength(e)+1,s=Buffer.allocUnsafe(1+n);return s[0]=r,s.writeInt32BE(n,1),s.write(e,5,"utf-8"),s[n]=0,s},So=w.addCString("P").flush(68),vo=w.addCString("S").flush(68),Eo=r=>r.name?Ht(68,`${r.type}${r.name||""}`):r.type==="P"?So:vo,ko=r=>{let e=`${r.type}${r.name||""}`;return Ht(67,e)},_o=r=>w.add(r).flush(100),Co=r=>Ht(102,r),Le=r=>Buffer.from([r,0,0,0,4]),xo=Le(72),Po=Le(83),Ao=Le(88),Ro=Le(99),To={startup:ao,password:uo,requestSsl:co,sendSASLInitialResponseMessage:lo,sendSCRAMClientFinalMessage:ho,query:fo,parse:po,bind:yo,execute:bo,describe:Eo,close:ko,flush:()=>xo,sync:()=>Po,end:()=>Ao,copyData:_o,copyDone:()=>Ro,copyFail:Co,cancel:wo};Qe.serialize=To});var Mn=g(Ne=>{"use strict";l();Object.defineProperty(Ne,"__esModule",{value:!0});Ne.BufferReader=void 0;var zt=class{constructor(e=0){this.offset=e,this.buffer=Buffer.allocUnsafe(0),this.encoding="utf-8"}setBuffer(e,t){this.offset=e,this.buffer=t}int16(){let e=this.buffer.readInt16BE(this.offset);return this.offset+=2,e}byte(){let e=this.buffer[this.offset];return this.offset++,e}int32(){let e=this.buffer.readInt32BE(this.offset);return this.offset+=4,e}uint32(){let e=this.buffer.readUInt32BE(this.offset);return this.offset+=4,e}string(e){let t=this.buffer.toString(this.encoding,this.offset,this.offset+e);return this.offset+=e,t}cstring(){let e=this.offset,t=e;for(;this.buffer[t++]!==0;);return this.offset=t,this.buffer.toString(this.encoding,e,t-1)}bytes(e){let t=this.buffer.slice(this.offset,this.offset+e);return this.offset+=e,t}};Ne.BufferReader=zt});var Qn=g(Be=>{"use strict";l();Object.defineProperty(Be,"__esModule",{value:!0});Be.Parser=void 0;var v=Ut(),Oo=Mn(),Gt=1,Io=4,qn=Gt+Io,O=-1,Kt=Buffer.allocUnsafe(0),Vt=class{constructor(e){if(this.buffer=Kt,this.bufferLength=0,this.bufferOffset=0,this.reader=new Oo.BufferReader,e?.mode==="binary")throw new Error("Binary mode not supported yet");this.mode=e?.mode||"text"}parse(e,t){this.mergeBuffer(e);let n=this.bufferOffset+this.bufferLength,s=this.bufferOffset;for(;s+qn<=n;){let i=this.buffer[s],o=this.buffer.readUInt32BE(s+Gt),a=Gt+o;if(a+s<=n){let u=this.handlePacket(s+qn,i,o,this.buffer);t(u),s+=a}else break}s===n?(this.buffer=Kt,this.bufferLength=0,this.bufferOffset=0):(this.bufferLength=n-s,this.bufferOffset=s)}mergeBuffer(e){if(this.bufferLength>0){let t=this.bufferLength+e.byteLength;if(t+this.bufferOffset>this.buffer.byteLength){let s;if(t<=this.buffer.byteLength&&this.bufferOffset>=this.bufferLength)s=this.buffer;else{let i=this.buffer.byteLength*2;for(;t>=i;)i*=2;s=Buffer.allocUnsafe(i)}this.buffer.copy(s,0,this.bufferOffset,this.bufferOffset+this.bufferLength),this.buffer=s,this.bufferOffset=0}e.copy(this.buffer,this.bufferOffset+this.bufferLength),this.bufferLength=t}else this.buffer=e,this.bufferOffset=0,this.bufferLength=e.byteLength}handlePacket(e,t,n,s){let{reader:i}=this;i.setBuffer(e,s);let o;switch(t){case 50:o=v.bindComplete;break;case 49:o=v.parseComplete;break;case 51:o=v.closeComplete;break;case 110:o=v.noData;break;case 115:o=v.portalSuspended;break;case 99:o=v.copyDone;break;case 87:o=v.replicationStart;break;case 73:o=v.emptyQuery;break;case 68:o=jo(i);break;case 67:o=qo(i);break;case 90:o=Mo(i);break;case 65:o=No(i);break;case 82:o=zo(i,n);break;case 83:o=$o(i);break;case 75:o=Ho(i);break;case 69:o=Dn(i,"error");break;case 78:o=Dn(i,"notice");break;case 84:o=Bo(i);break;case 116:o=Uo(i);break;case 71:o=Lo(i);break;case 72:o=Qo(i);break;case 100:o=Do(i,n);break;default:return new v.DatabaseError("received invalid response: "+t.toString(16),n,"error")}return i.setBuffer(0,Kt),o.length=n,o}};Be.Parser=Vt;var Mo=r=>{let e=r.string(1);return new v.ReadyForQueryMessage(O,e)},qo=r=>{let e=r.cstring();return new v.CommandCompleteMessage(O,e)},Do=(r,e)=>{let t=r.bytes(e-4);return new v.CopyDataMessage(O,t)},Lo=r=>Ln(r,"copyInResponse"),Qo=r=>Ln(r,"copyOutResponse"),Ln=(r,e)=>{let t=r.byte()!==0,n=r.int16(),s=new v.CopyResponse(O,e,t,n);for(let i=0;i<n;i++)s.columnTypes[i]=r.int16();return s},No=r=>{let e=r.int32(),t=r.cstring(),n=r.cstring();return new v.NotificationResponseMessage(O,e,t,n)},Bo=r=>{let e=r.int16(),t=new v.RowDescriptionMessage(O,e);for(let n=0;n<e;n++)t.fields[n]=Fo(r);return t},Fo=r=>{let e=r.cstring(),t=r.uint32(),n=r.int16(),s=r.uint32(),i=r.int16(),o=r.int32(),a=r.int16()===0?"text":"binary";return new v.Field(e,t,n,s,i,o,a)},Uo=r=>{let e=r.int16(),t=new v.ParameterDescriptionMessage(O,e);for(let n=0;n<e;n++)t.dataTypeIDs[n]=r.int32();return t},jo=r=>{let e=r.int16(),t=new Array(e);for(let n=0;n<e;n++){let s=r.int32();t[n]=s===-1?null:r.string(s)}return new v.DataRowMessage(O,t)},$o=r=>{let e=r.cstring(),t=r.cstring();return new v.ParameterStatusMessage(O,e,t)},Ho=r=>{let e=r.int32(),t=r.int32();return new v.BackendKeyDataMessage(O,e,t)},zo=(r,e)=>{let t=r.int32(),n={name:"authenticationOk",length:e};switch(t){case 0:break;case 3:n.length===8&&(n.name="authenticationCleartextPassword");break;case 5:if(n.length===12){n.name="authenticationMD5Password";let s=r.bytes(4);return new v.AuthenticationMD5Password(O,s)}break;case 10:{n.name="authenticationSASL",n.mechanisms=[];let s;do s=r.cstring(),s&&n.mechanisms.push(s);while(s)}break;case 11:n.name="authenticationSASLContinue",n.data=r.string(e-8);break;case 12:n.name="authenticationSASLFinal",n.data=r.string(e-8);break;default:throw new Error("Unknown authenticationOk message type "+t)}return n},Dn=(r,e)=>{let t={},n=r.string(1);for(;n!=="\0";)t[n]=r.cstring(),n=r.string(1);let s=t.M,i=e==="notice"?new v.NoticeMessage(O,s):new v.DatabaseError(s,O,e);return i.severity=t.S,i.code=t.C,i.detail=t.D,i.hint=t.H,i.position=t.P,i.internalPosition=t.p,i.internalQuery=t.q,i.where=t.W,i.schema=t.s,i.table=t.t,i.column=t.c,i.dataType=t.d,i.constraint=t.n,i.file=t.F,i.line=t.L,i.routine=t.R,i}});var Wt=g(H=>{"use strict";l();Object.defineProperty(H,"__esModule",{value:!0});H.DatabaseError=H.serialize=H.parse=void 0;var Ko=Ut();Object.defineProperty(H,"DatabaseError",{enumerable:!0,get:function(){return Ko.DatabaseError}});var Go=In();Object.defineProperty(H,"serialize",{enumerable:!0,get:function(){return Go.serialize}});var Vo=Qn();function Wo(r,e){let t=new Vo.Parser;return r.on("data",n=>t.parse(n,e)),new Promise(n=>r.on("end",()=>n()))}H.parse=Wo});var Nn=g(Jt=>{"use strict";l();Object.defineProperty(Jt,"__esModule",{value:!0});Jt.default={}});var Fn=g((bl,Bn)=>{"use strict";l();var{getStream:Jo,getSecureStream:Yo}=ta();Bn.exports={getStream:Jo,getSecureStream:Yo};function Xo(){function r(t){let n=require("net");return new n.Socket}function e(t){return require("tls").connect(t)}return{getStream:r,getSecureStream:e}}function Zo(){function r(t){let{CloudflareSocket:n}=Nn();return new n(t)}function e(t){return t.socket.startTls(t),t.socket}return{getStream:r,getSecureStream:e}}function ea(){if(typeof navigator=="object"&&navigator!==null&&typeof navigator.userAgent=="string")return navigator.userAgent==="Cloudflare-Workers";if(typeof Response=="function"){let r=new Response(null,{cf:{thing:!0}});if(typeof r.cf=="object"&&r.cf!==null&&r.cf.thing)return!0}return!1}function ta(){return ea()?Zo():Xo()}});var Xt=g((Sl,Un)=>{"use strict";l();var ra=require("events").EventEmitter,{parse:na,serialize:C}=Wt(),{getStream:sa,getSecureStream:ia}=Fn(),oa=C.flush(),aa=C.sync(),ca=C.end(),Yt=class extends ra{constructor(e){super(),e=e||{},this.stream=e.stream||sa(e.ssl),typeof this.stream=="function"&&(this.stream=this.stream(e)),this._keepAlive=e.keepAlive,this._keepAliveInitialDelayMillis=e.keepAliveInitialDelayMillis,this.parsedStatements={},this.ssl=e.ssl||!1,this._ending=!1,this._emitMessage=!1;let t=this;this.on("newListener",function(n){n==="message"&&(t._emitMessage=!0)})}connect(e,t){let n=this;this._connecting=!0,this.stream.setNoDelay(!0),this.stream.connect(e,t),this.stream.once("connect",function(){n._keepAlive&&n.stream.setKeepAlive(!0,n._keepAliveInitialDelayMillis),n.emit("connect")});let s=function(i){n._ending&&(i.code==="ECONNRESET"||i.code==="EPIPE")||n.emit("error",i)};if(this.stream.on("error",s),this.stream.on("close",function(){n.emit("end")}),!this.ssl)return this.attachListeners(this.stream);this.stream.once("data",function(i){switch(i.toString("utf8")){case"S":break;case"N":return n.stream.end(),n.emit("error",new Error("The server does not support SSL connections"));default:return n.stream.end(),n.emit("error",new Error("There was an error establishing an SSL connection"))}let a={socket:n.stream};n.ssl!==!0&&(Object.assign(a,n.ssl),"key"in n.ssl&&(a.key=n.ssl.key));let u=require("net");u.isIP&&u.isIP(t)===0&&(a.servername=t);try{n.stream=ia(a)}catch(c){return n.emit("error",c)}n.attachListeners(n.stream),n.stream.on("error",s),n.emit("sslconnect")})}attachListeners(e){na(e,t=>{let n=t.name==="error"?"errorMessage":t.name;this._emitMessage&&this.emit("message",t),this.emit(n,t)})}requestSsl(){this.stream.write(C.requestSsl())}startup(e){this.stream.write(C.startup(e))}cancel(e,t){this._send(C.cancel(e,t))}password(e){this._send(C.password(e))}sendSASLInitialResponseMessage(e,t){this._send(C.sendSASLInitialResponseMessage(e,t))}sendSCRAMClientFinalMessage(e){this._send(C.sendSCRAMClientFinalMessage(e))}_send(e){return this.stream.writable?this.stream.write(e):!1}query(e){this._send(C.query(e))}parse(e){this._send(C.parse(e))}bind(e){this._send(C.bind(e))}execute(e){this._send(C.execute(e))}flush(){this.stream.writable&&this.stream.write(oa)}sync(){this._ending=!0,this._send(aa)}ref(){this.stream.ref()}unref(){this.stream.unref()}end(){if(this._ending=!0,!this._connecting||!this.stream.writable){this.stream.end();return}return this.stream.write(ca,()=>{this.stream.end()})}close(e){this._send(C.close(e))}describe(e){this._send(C.describe(e))}sendCopyFromChunk(e){this._send(C.copyData(e))}endCopyFrom(){this._send(C.copyDone())}sendCopyFail(e){this._send(C.copyFail(e))}};Un.exports=Yt});var zn=g((El,Hn)=>{"use strict";l();var{Transform:ua}=require("stream"),{StringDecoder:la}=require("string_decoder"),z=Symbol("last"),Fe=Symbol("decoder");function ha(r,e,t){let n;if(this.overflow){if(n=this[Fe].write(r).split(this.matcher),n.length===1)return t();n.shift(),this.overflow=!1}else this[z]+=this[Fe].write(r),n=this[z].split(this.matcher);this[z]=n.pop();for(let s=0;s<n.length;s++)try{$n(this,this.mapper(n[s]))}catch(i){return t(i)}if(this.overflow=this[z].length>this.maxLength,this.overflow&&!this.skipOverflow){t(new Error("maximum buffer reached"));return}t()}function da(r){if(this[z]+=this[Fe].end(),this[z])try{$n(this,this.mapper(this[z]))}catch(e){return r(e)}r()}function $n(r,e){e!==void 0&&r.push(e)}function jn(r){return r}function fa(r,e,t){switch(r=r||/\r?\n/,e=e||jn,t=t||{},arguments.length){case 1:typeof r=="function"?(e=r,r=/\r?\n/):typeof r=="object"&&!(r instanceof RegExp)&&!r[Symbol.split]&&(t=r,r=/\r?\n/);break;case 2:typeof r=="function"?(t=e,e=r,r=/\r?\n/):typeof e=="object"&&(t=e,e=jn)}t=Object.assign({},t),t.autoDestroy=!0,t.transform=ha,t.flush=da,t.readableObjectMode=!0;let n=new ua(t);return n[z]="",n[Fe]=new la("utf8"),n.matcher=r,n.mapper=e,n.maxLength=t.maxLength,n.skipOverflow=t.skipOverflow||!1,n.overflow=!1,n._destroy=function(s,i){this._writableState.errorEmitted=!1,i(s)},n}Hn.exports=fa});var Vn=g((_l,L)=>{"use strict";l();var Kn=require("path"),pa=require("stream").Stream,ma=zn(),Gn=require("util"),ya=5432,Ue=process.platform==="win32",ye=process.stderr,ga=56,ba=7,wa=61440,Sa=32768;function va(r){return(r&wa)==Sa}var ne=["host","port","database","user","password"],Zt=ne.length,Ea=ne[Zt-1];function er(){var r=ye instanceof pa&&ye.writable===!0;if(r){var e=Array.prototype.slice.call(arguments).concat(`
|
|
9
|
+
`);ye.write(Gn.format.apply(Gn,e))}}Object.defineProperty(L.exports,"isWin",{get:function(){return Ue},set:function(r){Ue=r}});L.exports.warnTo=function(r){var e=ye;return ye=r,e};L.exports.getFileName=function(r){var e=r||process.env,t=e.PGPASSFILE||(Ue?Kn.join(e.APPDATA||"./","postgresql","pgpass.conf"):Kn.join(e.HOME||"./",".pgpass"));return t};L.exports.usePgPass=function(r,e){return Object.prototype.hasOwnProperty.call(process.env,"PGPASSWORD")?!1:Ue?!0:(e=e||"<unkn>",va(r.mode)?r.mode&(ga|ba)?(er('WARNING: password file "%s" has group or world access; permissions should be u=rw (0600) or less',e),!1):!0:(er('WARNING: password file "%s" is not a plain file',e),!1))};var ka=L.exports.match=function(r,e){return ne.slice(0,-1).reduce(function(t,n,s){return s==1&&Number(r[n]||ya)===Number(e[n])?t&&!0:t&&(e[n]==="*"||e[n]===r[n])},!0)};L.exports.getPassword=function(r,e,t){var n,s=e.pipe(ma());function i(u){var c=_a(u);c&&Ca(c)&&ka(r,c)&&(n=c[Ea],s.end())}var o=function(){e.destroy(),t(n)},a=function(u){e.destroy(),er("WARNING: error on reading file: %s",u),t(void 0)};e.on("error",a),s.on("data",i).on("end",o).on("error",a)};var _a=L.exports.parseLine=function(r){if(r.length<11||r.match(/^\s+#/))return null;for(var e="",t="",n=0,s=0,i=0,o={},a=!1,u=function(h,d,p){var m=r.substring(d,p);Object.hasOwnProperty.call(process.env,"PGPASS_NO_DEESCAPE")||(m=m.replace(/\\([:\\])/g,"$1")),o[ne[h]]=m},c=0;c<r.length-1;c+=1){if(e=r.charAt(c+1),t=r.charAt(c),a=n==Zt-1,a){u(n,s);break}c>=0&&e==":"&&t!=="\\"&&(u(n,s,c+1),s=c+2,n+=1)}return o=Object.keys(o).length===Zt?o:null,o},Ca=L.exports.isValidEntry=function(r){for(var e={0:function(o){return o.length>0},1:function(o){return o==="*"?!0:(o=Number(o),isFinite(o)&&o>0&&o<9007199254740992&&Math.floor(o)===o)},2:function(o){return o.length>0},3:function(o){return o.length>0},4:function(o){return o.length>0}},t=0;t<ne.length;t+=1){var n=e[t],s=r[ne[t]]||"",i=n(s);if(!i)return!1}return!0}});var Jn=g((Pl,tr)=>{"use strict";l();var xl=require("path"),Wn=require("fs"),je=Vn();tr.exports=function(r,e){var t=je.getFileName();Wn.stat(t,function(n,s){if(n||!je.usePgPass(s,t))return e(void 0);var i=Wn.createReadStream(t);je.getPassword(r,i,e)})};tr.exports.warnTo=je.warnTo});var ts=g((Rl,es)=>{"use strict";l();var xa=require("events").EventEmitter,Yn=X(),ge=require("util"),rr=yn(),Pa=qe(),Aa=kt(),Zn=Rn(),Ra=pe(),Ta=Xt(),Oa=wt(),Xn=ge.deprecate(()=>{},"Client.activeQuery is deprecated and will be removed in pg@9.0"),Ia=ge.deprecate(()=>{},"Client.queryQueue is deprecated and will be removed in pg@9.0."),Ma=ge.deprecate(()=>{},"pgpass support is deprecated and will be removed in pg@9.0. You can provide an async function as the password property to the Client/Pool constructor that returns a password instead. Within this function you can call the pgpass module in your own code."),qa=ge.deprecate(()=>{},"Passing a custom Promise implementation to the Client/Pool constructor is deprecated and will be removed in pg@9.0."),Da=ge.deprecate(()=>{},"Calling client.query() when the client is already executing a query is deprecated and will be removed in pg@9.0. Use async/await or an external async flow control mechanism instead."),$e=class extends xa{constructor(e){super(),this.connectionParameters=new Aa(e),this.user=this.connectionParameters.user,this.database=this.connectionParameters.database,this.port=this.connectionParameters.port,this.host=this.connectionParameters.host,Object.defineProperty(this,"password",{configurable:!0,enumerable:!1,writable:!0,value:this.connectionParameters.password}),this.replication=this.connectionParameters.replication;let t=e||{};t.Promise&&qa(),this._Promise=t.Promise||global.Promise,this._types=new Pa(t.types),this._ending=!1,this._ended=!1,this._connecting=!1,this._connected=!1,this._connectionError=!1,this._queryable=!0,this._activeQuery=null,this.enableChannelBinding=!!t.enableChannelBinding,this.connection=t.connection||new Ta({stream:t.stream,ssl:this.connectionParameters.ssl,keepAlive:t.keepAlive||!1,keepAliveInitialDelayMillis:t.keepAliveInitialDelayMillis||0,encoding:this.connectionParameters.client_encoding||"utf8"}),this._queryQueue=[],this.binary=t.binary||Ra.binary,this.processID=null,this.secretKey=null,this.ssl=this.connectionParameters.ssl||!1,this.ssl&&this.ssl.key&&Object.defineProperty(this.ssl,"key",{enumerable:!1}),this._connectionTimeoutMillis=t.connectionTimeoutMillis||0}get activeQuery(){return Xn(),this._activeQuery}set activeQuery(e){Xn(),this._activeQuery=e}_getActiveQuery(){return this._activeQuery}_errorAllQueries(e){let t=s=>{process.nextTick(()=>{s.handleError(e,this.connection)})},n=this._getActiveQuery();n&&(t(n),this._activeQuery=null),this._queryQueue.forEach(t),this._queryQueue.length=0}_connect(e){let t=this,n=this.connection;if(this._connectionCallback=e,this._connecting||this._connected){let s=new Error("Client has already been connected. You cannot reuse a client.");process.nextTick(()=>{e(s)});return}this._connecting=!0,this._connectionTimeoutMillis>0&&(this.connectionTimeoutHandle=setTimeout(()=>{n._ending=!0,n.stream.destroy(new Error("timeout expired"))},this._connectionTimeoutMillis),this.connectionTimeoutHandle.unref&&this.connectionTimeoutHandle.unref()),this.host&&this.host.indexOf("/")===0?n.connect(this.host+"/.s.PGSQL."+this.port):n.connect(this.port,this.host),n.on("connect",function(){t.ssl?n.requestSsl():n.startup(t.getStartupConf())}),n.on("sslconnect",function(){n.startup(t.getStartupConf())}),this._attachListeners(n),n.once("end",()=>{let s=this._ending?new Error("Connection terminated"):new Error("Connection terminated unexpectedly");clearTimeout(this.connectionTimeoutHandle),this._errorAllQueries(s),this._ended=!0,this._ending||(this._connecting&&!this._connectionError?this._connectionCallback?this._connectionCallback(s):this._handleErrorEvent(s):this._connectionError||this._handleErrorEvent(s)),process.nextTick(()=>{this.emit("end")})})}connect(e){if(e){this._connect(e);return}return new this._Promise((t,n)=>{this._connect(s=>{s?n(s):t(this)})})}_attachListeners(e){e.on("authenticationCleartextPassword",this._handleAuthCleartextPassword.bind(this)),e.on("authenticationMD5Password",this._handleAuthMD5Password.bind(this)),e.on("authenticationSASL",this._handleAuthSASL.bind(this)),e.on("authenticationSASLContinue",this._handleAuthSASLContinue.bind(this)),e.on("authenticationSASLFinal",this._handleAuthSASLFinal.bind(this)),e.on("backendKeyData",this._handleBackendKeyData.bind(this)),e.on("error",this._handleErrorEvent.bind(this)),e.on("errorMessage",this._handleErrorMessage.bind(this)),e.on("readyForQuery",this._handleReadyForQuery.bind(this)),e.on("notice",this._handleNotice.bind(this)),e.on("rowDescription",this._handleRowDescription.bind(this)),e.on("dataRow",this._handleDataRow.bind(this)),e.on("portalSuspended",this._handlePortalSuspended.bind(this)),e.on("emptyQuery",this._handleEmptyQuery.bind(this)),e.on("commandComplete",this._handleCommandComplete.bind(this)),e.on("parseComplete",this._handleParseComplete.bind(this)),e.on("copyInResponse",this._handleCopyInResponse.bind(this)),e.on("copyData",this._handleCopyData.bind(this)),e.on("notification",this._handleNotification.bind(this))}_getPassword(e){let t=this.connection;if(typeof this.password=="function")this._Promise.resolve().then(()=>this.password(this.connectionParameters)).then(n=>{if(n!==void 0){if(typeof n!="string"){t.emit("error",new TypeError("Password must be a string"));return}this.connectionParameters.password=this.password=n}else this.connectionParameters.password=this.password=null;e()}).catch(n=>{t.emit("error",n)});else if(this.password!==null)e();else try{Jn()(this.connectionParameters,s=>{s!==void 0&&(Ma(),this.connectionParameters.password=this.password=s),e()})}catch(n){this.emit("error",n)}}_handleAuthCleartextPassword(e){this._getPassword(()=>{this.connection.password(this.password)})}_handleAuthMD5Password(e){this._getPassword(async()=>{try{let t=await Oa.postgresMd5PasswordHash(this.user,this.password,e.salt);this.connection.password(t)}catch(t){this.emit("error",t)}})}_handleAuthSASL(e){this._getPassword(()=>{try{this.saslSession=rr.startSession(e.mechanisms,this.enableChannelBinding&&this.connection.stream),this.connection.sendSASLInitialResponseMessage(this.saslSession.mechanism,this.saslSession.response)}catch(t){this.connection.emit("error",t)}})}async _handleAuthSASLContinue(e){try{await rr.continueSession(this.saslSession,this.password,e.data,this.enableChannelBinding&&this.connection.stream),this.connection.sendSCRAMClientFinalMessage(this.saslSession.response)}catch(t){this.connection.emit("error",t)}}_handleAuthSASLFinal(e){try{rr.finalizeSession(this.saslSession,e.data),this.saslSession=null}catch(t){this.connection.emit("error",t)}}_handleBackendKeyData(e){this.processID=e.processID,this.secretKey=e.secretKey}_handleReadyForQuery(e){this._connecting&&(this._connecting=!1,this._connected=!0,clearTimeout(this.connectionTimeoutHandle),this._connectionCallback&&(this._connectionCallback(null,this),this._connectionCallback=null),this.emit("connect"));let t=this._getActiveQuery();this._activeQuery=null,this.readyForQuery=!0,t&&t.handleReadyForQuery(this.connection),this._pulseQueryQueue()}_handleErrorWhileConnecting(e){if(!this._connectionError){if(this._connectionError=!0,clearTimeout(this.connectionTimeoutHandle),this._connectionCallback)return this._connectionCallback(e);this.emit("error",e)}}_handleErrorEvent(e){if(this._connecting)return this._handleErrorWhileConnecting(e);this._queryable=!1,this._errorAllQueries(e),this.emit("error",e)}_handleErrorMessage(e){if(this._connecting)return this._handleErrorWhileConnecting(e);let t=this._getActiveQuery();if(!t){this._handleErrorEvent(e);return}this._activeQuery=null,t.handleError(e,this.connection)}_handleRowDescription(e){let t=this._getActiveQuery();if(t==null){let n=new Error("Received unexpected rowDescription message from backend.");this._handleErrorEvent(n);return}t.handleRowDescription(e)}_handleDataRow(e){let t=this._getActiveQuery();if(t==null){let n=new Error("Received unexpected dataRow message from backend.");this._handleErrorEvent(n);return}t.handleDataRow(e)}_handlePortalSuspended(e){let t=this._getActiveQuery();if(t==null){let n=new Error("Received unexpected portalSuspended message from backend.");this._handleErrorEvent(n);return}t.handlePortalSuspended(this.connection)}_handleEmptyQuery(e){let t=this._getActiveQuery();if(t==null){let n=new Error("Received unexpected emptyQuery message from backend.");this._handleErrorEvent(n);return}t.handleEmptyQuery(this.connection)}_handleCommandComplete(e){let t=this._getActiveQuery();if(t==null){let n=new Error("Received unexpected commandComplete message from backend.");this._handleErrorEvent(n);return}t.handleCommandComplete(e,this.connection)}_handleParseComplete(){let e=this._getActiveQuery();if(e==null){let t=new Error("Received unexpected parseComplete message from backend.");this._handleErrorEvent(t);return}e.name&&(this.connection.parsedStatements[e.name]=e.text)}_handleCopyInResponse(e){let t=this._getActiveQuery();if(t==null){let n=new Error("Received unexpected copyInResponse message from backend.");this._handleErrorEvent(n);return}t.handleCopyInResponse(this.connection)}_handleCopyData(e){let t=this._getActiveQuery();if(t==null){let n=new Error("Received unexpected copyData message from backend.");this._handleErrorEvent(n);return}t.handleCopyData(e,this.connection)}_handleNotification(e){this.emit("notification",e)}_handleNotice(e){this.emit("notice",e)}getStartupConf(){let e=this.connectionParameters,t={user:e.user,database:e.database},n=e.application_name||e.fallback_application_name;return n&&(t.application_name=n),e.replication&&(t.replication=""+e.replication),e.statement_timeout&&(t.statement_timeout=String(parseInt(e.statement_timeout,10))),e.lock_timeout&&(t.lock_timeout=String(parseInt(e.lock_timeout,10))),e.idle_in_transaction_session_timeout&&(t.idle_in_transaction_session_timeout=String(parseInt(e.idle_in_transaction_session_timeout,10))),e.options&&(t.options=e.options),t}cancel(e,t){if(e.activeQuery===t){let n=this.connection;this.host&&this.host.indexOf("/")===0?n.connect(this.host+"/.s.PGSQL."+this.port):n.connect(this.port,this.host),n.on("connect",function(){n.cancel(e.processID,e.secretKey)})}else e._queryQueue.indexOf(t)!==-1&&e._queryQueue.splice(e._queryQueue.indexOf(t),1)}setTypeParser(e,t,n){return this._types.setTypeParser(e,t,n)}getTypeParser(e,t){return this._types.getTypeParser(e,t)}escapeIdentifier(e){return Yn.escapeIdentifier(e)}escapeLiteral(e){return Yn.escapeLiteral(e)}_pulseQueryQueue(){if(this.readyForQuery===!0){this._activeQuery=this._queryQueue.shift();let e=this._getActiveQuery();if(e){this.readyForQuery=!1,this.hasExecuted=!0;let t=e.submit(this.connection);t&&process.nextTick(()=>{e.handleError(t,this.connection),this.readyForQuery=!0,this._pulseQueryQueue()})}else this.hasExecuted&&(this._activeQuery=null,this.emit("drain"))}}query(e,t,n){let s,i,o,a,u;if(e==null)throw new TypeError("Client was passed a null or undefined query");return typeof e.submit=="function"?(o=e.query_timeout||this.connectionParameters.query_timeout,i=s=e,s.callback||(typeof t=="function"?s.callback=t:n&&(s.callback=n))):(o=e.query_timeout||this.connectionParameters.query_timeout,s=new Zn(e,t,n),s.callback||(i=new this._Promise((c,h)=>{s.callback=(d,p)=>d?h(d):c(p)}).catch(c=>{throw Error.captureStackTrace(c),c}))),o&&(u=s.callback||(()=>{}),a=setTimeout(()=>{let c=new Error("Query read timeout");process.nextTick(()=>{s.handleError(c,this.connection)}),u(c),s.callback=()=>{};let h=this._queryQueue.indexOf(s);h>-1&&this._queryQueue.splice(h,1),this._pulseQueryQueue()},o),s.callback=(c,h)=>{clearTimeout(a),u(c,h)}),this.binary&&!s.binary&&(s.binary=!0),s._result&&!s._result._types&&(s._result._types=this._types),this._queryable?this._ending?(process.nextTick(()=>{s.handleError(new Error("Client was closed and is not queryable"),this.connection)}),i):(this._queryQueue.length>0&&Da(),this._queryQueue.push(s),this._pulseQueryQueue(),i):(process.nextTick(()=>{s.handleError(new Error("Client has encountered a connection error and is not queryable"),this.connection)}),i)}ref(){this.connection.ref()}unref(){this.connection.unref()}end(e){if(this._ending=!0,!this.connection._connecting||this._ended)if(e)e();else return this._Promise.resolve();if(this._getActiveQuery()||!this._queryable?this.connection.stream.destroy():this.connection.end(),e)this.connection.once("end",e);else return new this._Promise(t=>{this.connection.once("end",t)})}get queryQueue(){return Ia(),this._queryQueue}};$e.Query=Zn;es.exports=$e});var ss=g((Ol,ns)=>{"use strict";l();var La=require("events").EventEmitter,nr=function(){},rs=(r,e)=>{let t=r.findIndex(e);return t===-1?void 0:r.splice(t,1)[0]},sr=class{constructor(e,t,n){this.client=e,this.idleListener=t,this.timeoutId=n}},se=class{constructor(e){this.callback=e}};function Qa(){throw new Error("Release called on client which has already been released to the pool.")}function He(r,e){if(e)return{callback:e,result:void 0};let t,n,s=function(o,a){o?t(o):n(a)},i=new r(function(o,a){n=o,t=a}).catch(o=>{throw Error.captureStackTrace(o),o});return{callback:s,result:i}}function Na(r,e){return function t(n){n.client=e,e.removeListener("error",t),e.on("error",()=>{r.log("additional client error after disconnection due to error",n)}),r._remove(e),r.emit("error",n,e)}}var ir=class extends La{constructor(e,t){super(),this.options=Object.assign({},e),e!=null&&"password"in e&&Object.defineProperty(this.options,"password",{configurable:!0,enumerable:!1,writable:!0,value:e.password}),e!=null&&e.ssl&&e.ssl.key&&Object.defineProperty(this.options.ssl,"key",{enumerable:!1}),this.options.max=this.options.max||this.options.poolSize||10,this.options.min=this.options.min||0,this.options.maxUses=this.options.maxUses||1/0,this.options.allowExitOnIdle=this.options.allowExitOnIdle||!1,this.options.maxLifetimeSeconds=this.options.maxLifetimeSeconds||0,this.log=this.options.log||function(){},this.Client=this.options.Client||t||or().Client,this.Promise=this.options.Promise||global.Promise,typeof this.options.idleTimeoutMillis>"u"&&(this.options.idleTimeoutMillis=1e4),this._clients=[],this._idle=[],this._expired=new WeakSet,this._pendingQueue=[],this._endCallback=void 0,this.ending=!1,this.ended=!1}_promiseTry(e){let t=this.Promise;return typeof t.try=="function"?t.try(e):new t(n=>n(e()))}_isFull(){return this._clients.length>=this.options.max}_isAboveMin(){return this._clients.length>this.options.min}_pulseQueue(){if(this.log("pulse queue"),this.ended){this.log("pulse queue ended");return}if(this.ending){this.log("pulse queue on ending"),this._idle.length&&this._idle.slice().map(t=>{this._remove(t.client)}),this._clients.length||(this.ended=!0,this._endCallback());return}if(!this._pendingQueue.length){this.log("no queued requests");return}if(!this._idle.length&&this._isFull())return;let e=this._pendingQueue.shift();if(this._idle.length){let t=this._idle.pop();clearTimeout(t.timeoutId);let n=t.client;n.ref&&n.ref();let s=t.idleListener;return this._acquireClient(n,e,s,!1)}if(!this._isFull())return this.newClient(e);throw new Error("unexpected condition")}_remove(e,t){let n=rs(this._idle,i=>i.client===e);n!==void 0&&clearTimeout(n.timeoutId),this._clients=this._clients.filter(i=>i!==e);let s=this;e.end(()=>{s.emit("remove",e),typeof t=="function"&&t()})}connect(e){if(this.ending){let s=new Error("Cannot use a pool after calling end on the pool");return e?e(s):this.Promise.reject(s)}let t=He(this.Promise,e),n=t.result;if(this._isFull()||this._idle.length){if(this._idle.length&&process.nextTick(()=>this._pulseQueue()),!this.options.connectionTimeoutMillis)return this._pendingQueue.push(new se(t.callback)),n;let s=(a,u,c)=>{clearTimeout(o),t.callback(a,u,c)},i=new se(s),o=setTimeout(()=>{rs(this._pendingQueue,a=>a.callback===s),i.timedOut=!0,t.callback(new Error("timeout exceeded when trying to connect"))},this.options.connectionTimeoutMillis);return o.unref&&o.unref(),this._pendingQueue.push(i),n}return this.newClient(new se(t.callback)),n}newClient(e){let t=new this.Client(this.options);this._clients.push(t);let n=Na(this,t);this.log("checking client timeout");let s,i=!1;this.options.connectionTimeoutMillis&&(s=setTimeout(()=>{t.connection?(this.log("ending client due to timeout"),i=!0,t.connection.stream.destroy()):t.isConnected()||(this.log("ending client due to timeout"),i=!0,t.end())},this.options.connectionTimeoutMillis)),this.log("connecting new client"),t.connect(o=>{if(s&&clearTimeout(s),t.on("error",n),o)this.log("client failed to connect",o),this._clients=this._clients.filter(a=>a!==t),i&&(o=new Error("Connection terminated due to connection timeout",{cause:o})),this._pulseQueue(),e.timedOut||e.callback(o,void 0,nr);else{if(this.log("new client connected"),this.options.onConnect){this._promiseTry(()=>this.options.onConnect(t)).then(()=>{this._afterConnect(t,e,n)},a=>{this._clients=this._clients.filter(u=>u!==t),t.end(()=>{this._pulseQueue(),e.timedOut||e.callback(a,void 0,nr)})});return}return this._afterConnect(t,e,n)}})}_afterConnect(e,t,n){if(this.options.maxLifetimeSeconds!==0){let s=setTimeout(()=>{this.log("ending client due to expired lifetime"),this._expired.add(e),this._idle.findIndex(o=>o.client===e)!==-1&&this._acquireClient(e,new se((o,a,u)=>u()),n,!1)},this.options.maxLifetimeSeconds*1e3);s.unref(),e.once("end",()=>clearTimeout(s))}return this._acquireClient(e,t,n,!0)}_acquireClient(e,t,n,s){s&&this.emit("connect",e),this.emit("acquire",e),e.release=this._releaseOnce(e,n),e.removeListener("error",n),t.timedOut?s&&this.options.verify?this.options.verify(e,e.release):e.release():s&&this.options.verify?this.options.verify(e,i=>{if(i)return e.release(i),t.callback(i,void 0,nr);t.callback(void 0,e,e.release)}):t.callback(void 0,e,e.release)}_releaseOnce(e,t){let n=!1;return s=>{n&&Qa(),n=!0,this._release(e,t,s)}}_release(e,t,n){if(e.on("error",t),e._poolUseCount=(e._poolUseCount||0)+1,this.emit("release",n,e),n||this.ending||!e._queryable||e._ending||e._poolUseCount>=this.options.maxUses)return e._poolUseCount>=this.options.maxUses&&this.log("remove expended client"),this._remove(e,this._pulseQueue.bind(this));if(this._expired.has(e))return this.log("remove expired client"),this._expired.delete(e),this._remove(e,this._pulseQueue.bind(this));let i;this.options.idleTimeoutMillis&&this._isAboveMin()&&(i=setTimeout(()=>{this._isAboveMin()&&(this.log("remove idle client"),this._remove(e,this._pulseQueue.bind(this)))},this.options.idleTimeoutMillis),this.options.allowExitOnIdle&&i.unref()),this.options.allowExitOnIdle&&e.unref(),this._idle.push(new sr(e,t,i)),this._pulseQueue()}query(e,t,n){if(typeof e=="function"){let i=He(this.Promise,e);return setImmediate(function(){return i.callback(new Error("Passing a function as the first parameter to pool.query is not supported"))}),i.result}typeof t=="function"&&(n=t,t=void 0);let s=He(this.Promise,n);return n=s.callback,this.connect((i,o)=>{if(i)return n(i);let a=!1,u=c=>{a||(a=!0,o.release(c),n(c))};o.once("error",u),this.log("dispatching query");try{o.query(e,t,(c,h)=>{if(this.log("query dispatched"),o.removeListener("error",u),!a)return a=!0,o.release(c),c?n(c):n(void 0,h)})}catch(c){return o.release(c),n(c)}}),s.result}end(e){if(this.log("ending"),this.ending){let n=new Error("Called end on pool more than once");return e?e(n):this.Promise.reject(n)}this.ending=!0;let t=He(this.Promise,e);return this._endCallback=t.callback,this._pulseQueue(),t.result}get waitingCount(){return this._pendingQueue.length}get idleCount(){return this._idle.length}get expiredCount(){return this._clients.reduce((e,t)=>e+(this._expired.has(t)?1:0),0)}get totalCount(){return this._clients.length}};ns.exports=ir});var as=g((Ml,os)=>{"use strict";l();var is=require("events").EventEmitter,Ba=require("util"),ar=X(),ie=os.exports=function(r,e,t){is.call(this),r=ar.normalizeQueryConfig(r,e,t),this.text=r.text,this.values=r.values,this.name=r.name,this.queryMode=r.queryMode,this.callback=r.callback,this.state="new",this._arrayMode=r.rowMode==="array",this._emitRowEvents=!1,this.on("newListener",function(n){n==="row"&&(this._emitRowEvents=!0)}.bind(this))};Ba.inherits(ie,is);var Fa={sqlState:"code",statementPosition:"position",messagePrimary:"message",context:"where",schemaName:"schema",tableName:"table",columnName:"column",dataTypeName:"dataType",constraintName:"constraint",sourceFile:"file",sourceLine:"line",sourceFunction:"routine"};ie.prototype.handleError=function(r){let e=this.native.pq.resultErrorFields();if(e)for(let t in e){let n=Fa[t]||t;r[n]=e[t]}this.callback?this.callback(r):this.emit("error",r),this.state="error"};ie.prototype.then=function(r,e){return this._getPromise().then(r,e)};ie.prototype.catch=function(r){return this._getPromise().catch(r)};ie.prototype._getPromise=function(){return this._promise?this._promise:(this._promise=new Promise(function(r,e){this._once("end",r),this._once("error",e)}.bind(this)),this._promise)};ie.prototype.submit=function(r){this.state="running";let e=this;this.native=r.native,r.native.arrayMode=this._arrayMode;let t=function(n,s,i){if(r.native.arrayMode=!1,setImmediate(function(){e.emit("_done")}),n)return e.handleError(n);e._emitRowEvents&&(i.length>1?s.forEach((o,a)=>{o.forEach(u=>{e.emit("row",u,i[a])})}):s.forEach(function(o){e.emit("row",o,i)})),e.state="end",e.emit("end",i),e.callback&&e.callback(null,i)};if(process.domain&&(t=process.domain.bind(t)),this.name){this.name.length>63&&(console.error("Warning! Postgres only supports 63 characters for query names."),console.error("You supplied %s (%s)",this.name,this.name.length),console.error("This can cause conflicts and silent errors executing queries"));let n=(this.values||[]).map(ar.prepareValue);if(r.namedQueries[this.name]){if(this.text&&r.namedQueries[this.name]!==this.text){let s=new Error(`Prepared statements must be unique - '${this.name}' was used for a different statement`);return t(s)}return r.native.execute(this.name,n,t)}return r.native.prepare(this.name,this.text,n.length,function(s){return s?t(s):(r.namedQueries[e.name]=e.text,e.native.execute(e.name,n,t))})}else if(this.values){if(!Array.isArray(this.values)){let s=new Error("Query values must be an array");return t(s)}let n=this.values.map(ar.prepareValue);r.native.query(this.text,n,t)}else this.queryMode==="extended"?r.native.query(this.text,[],t):r.native.query(this.text,t)}});var ds=g((Dl,hs)=>{"use strict";l();var Ua=require("util"),cs;try{cs=require("pg-native")}catch(r){throw r}var ja=qe(),us=require("events").EventEmitter,$a=require("util"),Ha=kt(),ls=as(),za=Ua.deprecate(()=>{},"Calling client.query() when the client is already executing a query is deprecated and will be removed in pg@9.0. Use async/await or an external async flow control mechanism instead."),P=hs.exports=function(r){us.call(this),r=r||{},this._Promise=r.Promise||global.Promise,this._types=new ja(r.types),this.native=new cs({types:this._types}),this._queryQueue=[],this._ending=!1,this._connecting=!1,this._connected=!1,this._queryable=!0;let e=this.connectionParameters=new Ha(r);r.nativeConnectionString&&(e.nativeConnectionString=r.nativeConnectionString),this.user=e.user,Object.defineProperty(this,"password",{configurable:!0,enumerable:!1,writable:!0,value:e.password}),this.database=e.database,this.host=e.host,this.port=e.port,this.namedQueries={}};P.Query=ls;$a.inherits(P,us);P.prototype._errorAllQueries=function(r){let e=t=>{process.nextTick(()=>{t.native=this.native,t.handleError(r)})};this._hasActiveQuery()&&(e(this._activeQuery),this._activeQuery=null),this._queryQueue.forEach(e),this._queryQueue.length=0};P.prototype._connect=function(r){let e=this;if(this._connecting){process.nextTick(()=>r(new Error("Client has already been connected. You cannot reuse a client.")));return}this._connecting=!0,this.connectionParameters.getLibpqConnectionString(function(t,n){if(e.connectionParameters.nativeConnectionString&&(n=e.connectionParameters.nativeConnectionString),t)return r(t);e.native.connect(n,function(s){if(s)return e.native.end(),r(s);e._connected=!0,e.native.on("error",function(i){e._queryable=!1,e._errorAllQueries(i),e.emit("error",i)}),e.native.on("notification",function(i){e.emit("notification",{channel:i.relname,payload:i.extra})}),e.emit("connect"),e._pulseQueryQueue(!0),r(null,this)})})};P.prototype.connect=function(r){if(r){this._connect(r);return}return new this._Promise((e,t)=>{this._connect(n=>{n?t(n):e(this)})})};P.prototype.query=function(r,e,t){let n,s,i,o,a;if(r==null)throw new TypeError("Client was passed a null or undefined query");if(typeof r.submit=="function")i=r.query_timeout||this.connectionParameters.query_timeout,s=n=r,typeof e=="function"&&(r.callback=e);else if(i=r.query_timeout||this.connectionParameters.query_timeout,n=new ls(r,e,t),!n.callback){let u,c;s=new this._Promise((h,d)=>{u=h,c=d}).catch(h=>{throw Error.captureStackTrace(h),h}),n.callback=(h,d)=>h?c(h):u(d)}return i&&(a=n.callback||(()=>{}),o=setTimeout(()=>{let u=new Error("Query read timeout");process.nextTick(()=>{n.handleError(u,this.connection)}),a(u),n.callback=()=>{};let c=this._queryQueue.indexOf(n);c>-1&&this._queryQueue.splice(c,1),this._pulseQueryQueue()},i),n.callback=(u,c)=>{clearTimeout(o),a(u,c)}),this._queryable?this._ending?(n.native=this.native,process.nextTick(()=>{n.handleError(new Error("Client was closed and is not queryable"))}),s):(this._queryQueue.length>0&&za(),this._queryQueue.push(n),this._pulseQueryQueue(),s):(n.native=this.native,process.nextTick(()=>{n.handleError(new Error("Client has encountered a connection error and is not queryable"))}),s)};P.prototype.end=function(r){let e=this;this._ending=!0,this._connected||this.once("connect",this.end.bind(this,r));let t;return r||(t=new this._Promise(function(n,s){r=i=>i?s(i):n()})),this.native.end(function(){e._connected=!1,e._errorAllQueries(new Error("Connection terminated")),process.nextTick(()=>{e.emit("end"),r&&r()})}),t};P.prototype._hasActiveQuery=function(){return this._activeQuery&&this._activeQuery.state!=="error"&&this._activeQuery.state!=="end"};P.prototype._pulseQueryQueue=function(r){if(!this._connected||this._hasActiveQuery())return;let e=this._queryQueue.shift();if(!e){r||this.emit("drain");return}this._activeQuery=e,e.submit(this);let t=this;e.once("_done",function(){t._pulseQueryQueue()})};P.prototype.cancel=function(r){this._activeQuery===r?this.native.cancel(function(){}):this._queryQueue.indexOf(r)!==-1&&this._queryQueue.splice(this._queryQueue.indexOf(r),1)};P.prototype.ref=function(){};P.prototype.unref=function(){};P.prototype.setTypeParser=function(r,e,t){return this._types.setTypeParser(r,e,t)};P.prototype.getTypeParser=function(r,e){return this._types.getTypeParser(r,e)};P.prototype.isConnected=function(){return this._connected}});var cr=g((Ql,fs)=>{"use strict";l();fs.exports=ds()});var or=g((Fl,ze)=>{"use strict";l();var Ka=ts(),Ga=pe(),Va=Xt(),Wa=Ct(),Ja=X(),Ya=ss(),Xa=qe(),{DatabaseError:Za}=Wt(),{escapeIdentifier:ec,escapeLiteral:tc}=X(),rc=r=>class extends Ya{constructor(t){super(t,r)}},ps=function(r){this.defaults=Ga,this.Client=r,this.Query=this.Client.Query,this.Pool=rc(this.Client),this._pools=[],this.Connection=Va,this.types=fe(),this.DatabaseError=Za,this.TypeOverrides=Xa,this.escapeIdentifier=ec,this.escapeLiteral=tc,this.Result=Wa,this.utils=Ja},ms=Ka,ys=!1;try{ys=!!process.env.NODE_PG_FORCE_NATIVE}catch{}ys&&(ms=cr());ze.exports=new ps(ms);Object.defineProperty(ze.exports,"native",{configurable:!0,enumerable:!1,get(){let r=null;try{r=new ps(cr())}catch(e){if(e.code!=="MODULE_NOT_FOUND")throw e}return Object.defineProperty(ze.exports,"native",{value:r}),r}})});var gs={};lr(gs,{Client:()=>nc,Connection:()=>ic,DatabaseError:()=>cc,Pool:()=>sc,Query:()=>ac,Result:()=>hc,TypeOverrides:()=>dc,default:()=>pc,defaults:()=>fc,escapeIdentifier:()=>uc,escapeLiteral:()=>lc,types:()=>oc});var I,nc,sc,ic,oc,ac,cc,uc,lc,hc,dc,fc,pc,bs=ur(()=>{"use strict";l();I=E(or(),1),nc=I.default.Client,sc=I.default.Pool,ic=I.default.Connection,oc=I.default.types,ac=I.default.Query,cc=I.default.DatabaseError,uc=I.default.escapeIdentifier,lc=I.default.escapeLiteral,hc=I.default.Result,dc=I.default.TypeOverrides,fc=I.default.defaults,pc=I.default});var gc={};lr(gc,{ApiDataSource:()=>Pe,ChunkTooLargeError:()=>Ze,DimensionMismatchError:()=>K,EmbeddingError:()=>_,IngestionError:()=>k,JSONSource:()=>Ae,Knowledge:()=>et,KnowledgeError:()=>Q,KnowledgeProviderError:()=>N,MarkdownSource:()=>_e,MemoryProvider:()=>Ee,OllamaEmbedder:()=>Ge,OpenAIEmbedder:()=>Ve,OpenRouterEmbedder:()=>We,PersistentKnowledgeProvider:()=>ke,PostgresSource:()=>Ke,SQLiteSource:()=>Re,TextSource:()=>Ce,VertexAIEmbedder:()=>Je,WebUrlSource:()=>xe,combineScores:()=>Se,keywordSearch:()=>B,matchesFilter:()=>D});module.exports=Ps(gc);l();l();l();var Q=class extends Error{constructor(t,n){super(t);this.code=n;this.name="KnowledgeError"}code},_=class extends Q{constructor(t,n){super(t,"EMBEDDING_ERROR");this.statusCode=n;this.name="EmbeddingError"}statusCode},k=class extends Q{constructor(t,n){super(t,"INGESTION_ERROR");this.file=n;this.name="IngestionError"}file},Ze=class extends Q{constructor(t,n){super(t,"CHUNK_TOO_LARGE");this.chunkSize=n;this.name="ChunkTooLargeError"}chunkSize},K=class extends Q{expected;actual;constructor(e,t){super(`Dimension mismatch: expected ${e}, got ${t}`,"DIMENSION_MISMATCH"),this.name="DimensionMismatchError",this.expected=e,this.actual=t}},N=class extends Q{constructor(e){super(e,"PROVIDER_ERROR"),this.name="KnowledgeProviderError"}};l();var dr=require("crypto");l();function B(r,e){let t=r.toLowerCase(),n=e.toLowerCase();if(t.includes(n))return 1;let s=n.split(/\s+/).filter(o=>o.length>2);if(s.length===0)return 0;let i=0;for(let o of s)t.includes(o)&&i++;return i/s.length}function Se(r,e,t=.7){let n=1-t;return r*t+e*n}l();function ve(r,e){if(r.length!==e.length)throw new Error("Vectors must have same dimensions");let t=0,n=0,s=0;for(let o=0;o<r.length;o++)t+=r[o]*e[o],n+=r[o]*r[o],s+=e[o]*e[o];let i=Math.sqrt(n)*Math.sqrt(s);return i===0?0:t/i}function D(r,e){if(!e)return!0;for(let[t,n]of Object.entries(e)){let s=r[t];if(typeof n=="object"&&n!==null&&!Array.isArray(n)){if("$in"in n){if(!n.$in.includes(s))return!1}else if("$gt"in n){let i=n.$gt;if(typeof s!="number"||s<=i)return!1}else if("$lt"in n){let i=n.$lt;if(typeof s!="number"||s>=i)return!1}}else if(s!==n)return!1}return!0}var et=class r{constructor(e,t,n,s,i){this.provider=e;this.embedder=t;this.description=n;this.sources=s;this.options=i}provider;embedder;description;sources;options;static async create(e){await e.provider.validateDimensions(e.embedder.dimensions);let t=new r(e.provider,e.embedder,e.description,e.sources,e);return e.reSync!==!0&&"shouldReSync"in e.provider?(e.provider.shouldReSync(e.reSync)&&await t.sync(),t):(e.reSync!==!1&&await t.sync(),t)}async query(e,t){let n=t?.searchType??"semantic",s=t?.semanticWeight??.7;if(n==="keyword")return this.keywordQuery(e,t);if(n==="hybrid"){let[i,o]=await Promise.all([this.semanticQuery(e,t),this.keywordQuery(e,t)]);return this.combineHybridResults(i,o,s,t)}else return this.semanticQuery(e,t)}async semanticQuery(e,t){let n=await this.embedder.embed(e);return this.provider.query(n,t)}async keywordQuery(e,t){let{limit:n=10,threshold:s=.1,filter:i,includeMetadata:o=!0,includeVectors:a=!1}=t||{};if(typeof this.provider.keywordQuery=="function")return this.provider.keywordQuery(e,t);let u=await this.getAllChunks(),c=[];for(let h of u){if(i&&!D(h.metadata,i))continue;let d=B(h.content,e);d>=s&&c.push({chunk:{id:h.id,content:h.content,metadata:o?h.metadata:{},vector:a?h.vector:void 0},score:d,distance:1-d})}return c.sort((h,d)=>d.score-h.score),c.slice(0,n)}combineHybridResults(e,t,n,s){let{limit:i=10,threshold:o=.5,includeMetadata:a=!0,includeVectors:u=!1}=s||{},c=new Map(e.map(m=>[m.chunk.id,m])),h=new Map(t.map(m=>[m.chunk.id,m])),d=[],p=new Set([...c.keys(),...h.keys()]);for(let m of p){let b=c.get(m),T=h.get(m);if(!b&&!T)continue;let Ye=b?.score??0,Xe=T?.score??0,W=Se(Ye,Xe,n);W>=o&&d.push({chunk:{id:m,content:b?.chunk.content??T.chunk.content,metadata:a?b?.chunk.metadata??T.chunk.metadata:{},vector:u?b?.chunk.vector??T.chunk.vector:void 0},score:W,distance:1-W})}return d.sort((m,b)=>b.score-m.score),d.slice(0,i)}async getAllChunks(){if(typeof this.provider.getAllChunks=="function")return this.provider.getAllChunks();let e=new Array(this.embedder.dimensions).fill(0);return(await this.provider.query(e,{limit:1e4,threshold:0})).map(t=>t.chunk)}async sync(){this.options.onSync?.({type:"start"});try{let e=this.embedder.dimensions;await this.provider.clear(),await this.provider.validateDimensions(e);let t=this.options.streamingBatchSize??100,n=0,s=[];for(let i of this.sources)for await(let o of i.load())if(s.push(o),s.length>=t){let a=await this.embedChunks(s);a.length>0&&(await this.provider.add(a),n+=a.length),s.length=0}if(s.length>0){let i=await this.embedChunks(s);i.length>0&&(await this.provider.add(i),n+=i.length)}this.options.onSync?.({type:"complete",chunksAffected:n})}catch(e){throw this.options.onSync?.({type:"error",error:e}),e}}async embedChunks(e){if(e.length===0)return[];let t=[];try{let n=e.map(i=>i.content),s=await this.embedder.embedBatch(n);for(let i=0;i<e.length;i++)t.push({...e[i],vector:s[i]}),this.options.onEmbeddingProgress?.({source:"sync",current:i+1,total:e.length,percent:Math.round((i+1)/e.length*100)})}catch(n){if(this.options.onError?.(n,{})==="abort")throw n;for(let i=0;i<e.length;i++)try{let o=await this.embedder.embed(e[i].content);t.push({...e[i],vector:o}),this.options.onEmbeddingProgress?.({source:"sync",current:i+1,total:e.length,percent:Math.round((i+1)/e.length*100)})}catch(o){if(this.options.onError?.(o,{chunk:e[i]})==="abort")throw o}}return t}async add(e,t){try{let n=(0,dr.randomUUID)(),s=await this.embedder.embed(e),i={id:n,content:e,metadata:t??{},vector:s};return await this.provider.add([i]),this.options.onAdd?.({id:n,content:e,metadata:i.metadata}),n}catch(n){throw new k(`Failed to add content to knowledge base: ${n.message}`,"add")}}async ingest(e){let t=this.options.streamingBatchSize??100,n=[],s=0;for await(let i of e.load())if(n.push(i),n.length>=t){let o=await this.embedChunks(n);o.length>0&&(await this.provider.add(o),s+=o.length),n.length=0}if(n.length>0){let i=await this.embedChunks(n);i.length>0&&(await this.provider.add(i),s+=i.length)}return s}async delete(e){await this.provider.delete(e),this.options.onDelete?.({ids:e})}async deleteWhere(e){let n=(await this.getAllChunks()).filter(i=>D(i.metadata,e));if(n.length===0)return[];let s=n.map(i=>i.id);return await this.provider.delete(s),this.options.onDelete?.({ids:s,filter:e}),s}async stop(){this.provider.close&&this.provider.close()}toTool(){return{name:"knowledge_search",displayName:"Knowledge Search",description:this.description||"Search the knowledge base for relevant information",category:"search",cacheable:!1,parameters:{type:"object",properties:{query:{type:"string",description:"Search query to find relevant information"},limit:{type:"number",description:"Maximum number of results to return (default: 10)"},threshold:{type:"number",description:"Minimum similarity threshold 0-1 (default: 0.3)"},filter:{type:"object",description:"Optional metadata filters"}},required:["query"]},execute:async e=>(await this.query(e.query,{limit:e.limit,threshold:e.threshold??.3,filter:e.filter,searchType:"hybrid"})).map(n=>({content:n.chunk.content,score:n.score,metadata:n.chunk.metadata}))}}};l();var Ee=class{constructor(e={}){this.options=e}options;chunks=new Map;dimensions;async validateDimensions(e){if(this.dimensions&&this.dimensions!==e)throw new K(this.dimensions,e);this.dimensions=e}async add(e){for(let t of e){if(!t.vector)throw new N("Chunk missing vector");if(this.options.maxChunks&&this.chunks.size>=this.options.maxChunks)throw new N(`Max chunks limit reached: ${this.options.maxChunks}`);this.chunks.set(t.id,{chunk:{id:t.id,content:t.content,metadata:t.metadata},vector:t.vector})}}async query(e,t={}){let{limit:n=10,threshold:s=.7,filter:i,includeMetadata:o=!0,includeVectors:a=!1}=t,u=[];for(let{chunk:c,vector:h}of this.chunks.values()){if(i&&!D(c.metadata,i))continue;let d=ve(e,h);d>=s&&u.push({chunk:{id:c.id,content:c.content,metadata:o?c.metadata:{},vector:a?h:void 0},score:d,distance:1-d})}return u.sort((c,h)=>h.score-c.score),u.slice(0,n)}async keywordQuery(e,t={}){let{limit:n=10,threshold:s=.1,filter:i,includeMetadata:o=!0,includeVectors:a=!1}=t,u=[];for(let{chunk:c,vector:h}of this.chunks.values()){if(i&&!D(c.metadata,i))continue;let d=B(c.content,e);d>=s&&u.push({chunk:{id:c.id,content:c.content,metadata:o?c.metadata:{},vector:a?h:void 0},score:d,distance:1-d})}return u.sort((c,h)=>h.score-c.score),u.slice(0,n)}async delete(e){for(let t of e)this.chunks.delete(t)}async clear(){this.chunks.clear(),this.dimensions=void 0}async getAllChunks(){return Array.from(this.chunks.values()).map(({chunk:e,vector:t})=>({...e,vector:t}))}};l();var fr=E(require("better-sqlite3"),1),oe=E(require("fs"),1),F=E(require("path"),1),pr=E(require("os"),1);var ke=class{constructor(e){this.options=e;let t=pr.homedir(),n=`${e.namespace}.db`,s;if(e.storagePath)s=e.storagePath;else{let i=F.join(t,".toolpack","db","knowledge"),o=F.join(t,".toolpack","knowledge"),a=F.join(i,n),u=F.join(o,n);oe.existsSync(u)&&!oe.existsSync(a)?s=o:s=i}this.dbPath=F.join(s,n),oe.mkdirSync(F.dirname(this.dbPath),{recursive:!0}),this.db=new fr.default(this.dbPath),this.db.pragma("journal_mode = WAL"),this.initSchema(),this.loadDimensions()}options;db;dimensions;dbPath;initSchema(){this.db.exec(`
|
|
10
10
|
CREATE TABLE IF NOT EXISTS chunks (
|
|
11
11
|
id TEXT PRIMARY KEY,
|
|
12
12
|
content TEXT NOT NULL,
|
|
@@ -50,7 +50,7 @@ See https://www.postgresql.org/docs/current/libpq-ssl.html for libpq SSL mode de
|
|
|
50
50
|
LIMIT ?
|
|
51
51
|
`).all(u,n*2),h=[];for(let d of c){let p=JSON.parse(d.metadata);if(i&&!D(p,i))continue;let m=B(d.content,e);if(m>=s){let b=new Float32Array(d.vector.buffer,d.vector.byteOffset,d.vector.byteLength/4);h.push({chunk:{id:d.id,content:d.content,metadata:o?p:{},vector:a?Array.from(b):void 0},score:m,distance:1-m})}}return h.sort((d,p)=>p.score-d.score),h.slice(0,n)}async delete(e){let t=this.db.prepare("DELETE FROM chunks WHERE id = ?");this.db.transaction(s=>{for(let i of s)t.run(i)})(e)}async clear(){this.db.prepare("DELETE FROM chunks").run(),this.db.prepare("DELETE FROM provider_meta WHERE key = ?").run("dimensions"),this.dimensions=void 0}async getAllChunks(){return this.db.prepare("SELECT id, content, metadata, vector FROM chunks").all().map(t=>{let n=JSON.parse(t.metadata),s=new Float32Array(t.vector.buffer,t.vector.byteOffset,t.vector.byteLength/4);return{id:t.id,content:t.content,metadata:n,vector:Array.from(s)}})}shouldReSync(e){return(this.options.reSync??e)===!1?this.db.prepare("SELECT COUNT(*) as count FROM chunks").get().count===0:!0}close(){this.db.close()}};l();var mr=E(require("fs/promises"),1),ae=E(require("path"),1),yr=E(require("crypto"),1),gr=E(require("fast-glob"),1);l();function A(r){return Math.ceil(r.length/4)}function As(r,e){let t=r.split(/\n\n+/),n=[],s="";for(let i of t){let o=A(i);A(s)+o>e&&s?(n.push(s.trim()),s=i):s+=(s?`
|
|
52
52
|
|
|
53
|
-
`:"")+i}return s&&n.push(s.trim()),n}function
|
|
53
|
+
`:"")+i}return s&&n.push(s.trim()),n}function Rs(r,e){let t=r.match(/[^.!?]+[.!?]+/g)||[r],n=[],s="";for(let i of t){let o=A(i);A(s)+o>e&&s?(n.push(s.trim()),s=i):s+=(s?" ":"")+i}return s&&n.push(s.trim()),n}function U(r,e){if(r.length<=1||e===0)return r;let t=[];for(let n=0;n<r.length;n++){let s=r[n];if(n>0){let o=r[n-1].split(/\s+/),a=Math.ceil(e/4);s=o.slice(-a).join(" ")+" "+s}t.push(s)}return t}function j(r,e){if(A(r)<=e)return[r];let n=As(r,e),s=[];for(let i of n)A(i)>e?s.push(...Rs(i,e)):s.push(i);return s}var _e=class{constructor(e,t={}){this.pattern=e;this.options={maxChunkSize:t.maxChunkSize??2e3,chunkOverlap:t.chunkOverlap??200,minChunkSize:t.minChunkSize??100,namespace:t.namespace??"markdown",metadata:t.metadata??{}}}pattern;options;async*load(){let e=this.pattern.replace(/\\/g,"/"),t=await(0,gr.default)(e,{absolute:!0});for(let n of t)try{let s=await mr.readFile(n,"utf-8"),i=this.chunkMarkdown(s,n);for(let o of i)yield o}catch(s){throw new k(`Failed to process file: ${s.message}`,n)}}chunkMarkdown(e,t){let n=this.extractFrontmatter(e),s=this.removeFrontmatter(e),i=this.parseHeadings(s),o=[],a=0;for(let u of i){let c=/```[\s\S]*?```/.test(u.content),h=A(u.content);if(h<this.options.minChunkSize&&o.length>0){let p=o[o.length-1];p.content+=`
|
|
54
54
|
|
|
55
55
|
`+u.content,c&&(p.metadata.hasCode=!0);continue}let d;h>this.options.maxChunkSize?d=j(u.content,this.options.maxChunkSize):d=[u.content],this.options.chunkOverlap>0&&d.length>1&&(d=U(d,this.options.chunkOverlap));for(let p=0;p<d.length;p++){let m=d[p],b=this.generateChunkId(t,m,a);o.push({id:b,content:m,metadata:{...this.options.metadata,...n,heading:u.heading,hasCode:c,source:ae.basename(t),sourcePath:t,chunkIndex:a,totalChunks:d.length}}),a++}}return o}parseHeadings(e){let t=e.split(`
|
|
56
56
|
`),n=[],s=[],i=[];for(let o of t){let a=o.match(/^(#{1,6})\s+(.+)$/);if(a){if(i.length>0){let h=s.map(d=>d.text);n.push({heading:h.length>0?[...h]:[""],content:i.join(`
|
|
@@ -60,13 +60,13 @@ See https://www.postgresql.org/docs/current/libpq-ssl.html for libpq SSL mode de
|
|
|
60
60
|
|
|
61
61
|
---
|
|
62
62
|
|
|
63
|
-
`);yield{id:`json:${this.options.namespace}:${s}`,content:o,metadata:{...this.options.metadata,source:nt.basename(this.filePath),type:"json_array_chunk",startIndex:s,endIndex:Math.min(s+this.options.chunkSize,n.length),totalItems:n.length}}}}else{let t=typeof e=="object"&&e!==null?this.options.toContent(e):typeof e=="string"?e:JSON.stringify(e);yield{id:`json:${this.options.namespace}:0`,content:t,metadata:{...this.options.metadata,source:nt.basename(this.filePath),type:"json_object"}}}}};l();var vr=E(require("fs/promises"),1),Er=E(require("path"),1);var
|
|
63
|
+
`);yield{id:`json:${this.options.namespace}:${s}`,content:o,metadata:{...this.options.metadata,source:nt.basename(this.filePath),type:"json_array_chunk",startIndex:s,endIndex:Math.min(s+this.options.chunkSize,n.length),totalItems:n.length}}}}else{let t=typeof e=="object"&&e!==null?this.options.toContent(e):typeof e=="string"?e:JSON.stringify(e);yield{id:`json:${this.options.namespace}:0`,content:t,metadata:{...this.options.metadata,source:nt.basename(this.filePath),type:"json_object"}}}}};l();var vr=E(require("fs/promises"),1),Er=E(require("path"),1);var Re=class{constructor(e,t){this.dbPath=e;if(!t.toContent)throw new k("SQLiteSource requires a toContent callback. Example: toContent: (row) => `Name: ${row.name}`",this.dbPath);this.options={namespace:t.namespace??"sqlite",metadata:t.metadata??{},chunkSize:t.chunkSize??100,toContent:t.toContent,query:t.query,preLoadCSV:t.preLoadCSV}}dbPath;options;async*load(){let e;try{e=(await import("better-sqlite3")).default}catch{throw new k('SQLite source requires "better-sqlite3" package. Install with: npm install better-sqlite3',this.dbPath)}try{await vr.access(this.dbPath)}catch{throw new k("SQLite database file not found",this.dbPath)}let t=new e(this.dbPath);try{this.options.preLoadCSV&&await this.loadCSV(t,this.options.preLoadCSV);let n=this.options.query??'SELECT * FROM sqlite_master WHERE type = "table"',o=t.prepare(n).all().map(a=>this.options.toContent(a));for(let a=0;a<o.length;a+=this.options.chunkSize){let c=o.slice(a,a+this.options.chunkSize).join(`
|
|
64
64
|
|
|
65
65
|
---
|
|
66
66
|
|
|
67
67
|
`);yield{id:`sqlite:${this.options.namespace}:${a}`,content:c,metadata:{...this.options.metadata,source:Er.basename(this.dbPath),type:"sqlite_query_result",query:n,startIndex:a,endIndex:Math.min(a+this.options.chunkSize,o.length),totalRows:o.length}}}}finally{t.exec("VACUUM;")}}async loadCSV(e,t){let s=await(await import("fs")).promises.readFile(t.csvPath,"utf-8"),i=t.delimiter??",",o=s.split(`
|
|
68
|
-
`).filter(m=>m.trim());if(o.length===0)return;let a,u;t.headers!==!1?(a=o[0].split(i).map(m=>m.trim().replace(/^["']|["']$/g,"")),u=1):(a=o[0].split(i).map((b,
|
|
68
|
+
`).filter(m=>m.trim());if(o.length===0)return;let a,u;t.headers!==!1?(a=o[0].split(i).map(m=>m.trim().replace(/^["']|["']$/g,"")),u=1):(a=o[0].split(i).map((b,T)=>`col${T}`),u=0);let c=t.tableName.replace(/[^a-zA-Z0-9_]/g,"_"),h=a.map(m=>`"${m.replace(/"/g,'""')}" TEXT`).join(", ");e.exec(`DROP TABLE IF EXISTS "${c}";`),e.exec(`CREATE TABLE "${c}" (${h});`);let d=a.map(()=>"?").join(", "),p=e.prepare(`INSERT INTO "${c}" VALUES (${d})`);for(let m=u;m<o.length;m++){let b=o[m].split(i).map(T=>T.trim().replace(/^["']|["']$/g,""));p.run(b)}}};l();var Ke=class{options;constructor(e){if(!e.query)throw new k("PostgresSource requires a query","config");if(!e.toContent)throw new k("PostgresSource requires a toContent callback. Example: toContent: (row) => `Name: ${row.name}`","config");this.options={namespace:e.namespace??"postgres",metadata:e.metadata??{},chunkSize:e.chunkSize??100,toContent:e.toContent,query:e.query,connectionString:e.connectionString,host:e.host,port:e.port,database:e.database,user:e.user,password:e.password,ssl:e.ssl}}async*load(){let e;try{e=(await Promise.resolve().then(()=>(bs(),gs))).Client}catch{throw new k('PostgreSQL source requires "pg" package. Install with: npm install pg',"config")}let t=this.options.connectionString?{connectionString:this.options.connectionString}:{host:this.options.host??"localhost",port:this.options.port??5432,database:this.options.database,user:this.options.user,password:this.options.password,ssl:this.options.ssl},n=new e(t);try{await n.connect();let o=(await n.query(this.options.query)).rows.map(a=>this.options.toContent(a));for(let a=0;a<o.length;a+=this.options.chunkSize){let c=o.slice(a,a+this.options.chunkSize).join(`
|
|
69
69
|
|
|
70
70
|
---
|
|
71
71
|
|
|
72
|
-
`);yield{id:`postgres:${this.options.namespace}:${a}`,content:c,metadata:{...this.options.metadata,type:"postgres_query_result",query:this.options.query,startIndex:a,endIndex:Math.min(a+this.options.chunkSize,o.length),totalRows:o.length}}}}finally{await n.end()}}};l();var Ge=class{constructor(e){this.options=e;this.baseUrl=e.baseUrl||"http://localhost:11434",this.dimensions=e.dimensions||this.getModelDimensions(e.model)}options;dimensions;baseUrl;getModelDimensions(e){let t={"nomic-embed-text":768,"mxbai-embed-large":1024,"all-minilm":384,"snowflake-arctic-embed":1024,"bge-m3":1024,"bge-large":1024,"all-minilm:l6-v2":384,"all-minilm:l12-v2":384},n=t[e];if(!n)throw new _(`Unknown Ollama model '${e}'. Provide 'dimensions' in OllamaEmbedderOptions or use a known model: ${Object.keys(t).join(", ")}`);return n}async embed(e){let t=null,n=this.options.retries||3,s=this.options.retryDelay||1e3;for(let i=0;i<n;i++)try{let o=await fetch(`${this.baseUrl}/api/embeddings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:this.options.model,prompt:e})});if(!o.ok)throw new _(`Ollama embedding failed: ${o.statusText}`,o.status);return(await o.json()).embedding}catch(o){if(t=o,o instanceof _&&o.statusCode&&o.statusCode>=400&&o.statusCode<500)throw o;i<n-1&&await new Promise(a=>setTimeout(a,s))}throw new _(`Ollama embedding failed after ${n} retries: ${t?.message}`)}async embedBatch(e){let t=[];for(let n of e)t.push(await this.embed(n));return t}};l();var ws=E(require("openai"),1);var Ve=class{constructor(e){this.options=e;this.client=new ws.default({apiKey:e.apiKey,timeout:e.timeout||3e4}),this.dimensions=this.getModelDimensions(e.model)}options;dimensions;client;getModelDimensions(e){return{"text-embedding-3-small":1536,"text-embedding-3-large":3072,"text-embedding-ada-002":1536}[e]||1536}async embed(e){let t=null,n=this.options.retries||3;for(let s=0;s<n;s++)try{return(await this.client.embeddings.create({model:this.options.model,input:e})).data[0].embedding}catch(i){t=i,s<n-1&&await new Promise(o=>setTimeout(o,this.options.retryDelay||1e3))}throw new _(`OpenAI embedding failed after ${n} retries: ${t?.message}`)}async embedBatch(e){let t=null,n=this.options.retries||3;for(let s=0;s<n;s++)try{return(await this.client.embeddings.create({model:this.options.model,input:e})).data.map(o=>o.embedding)}catch(i){t=i,s<n-1&&await new Promise(o=>setTimeout(o,this.options.retryDelay||1e3))}throw new _(`OpenAI batch embedding failed after ${n} retries: ${t?.message}`)}};l();var Ss=E(require("openai"),1);var mc="https://openrouter.ai/api/v1",We=class{constructor(e){this.options=e;this.client=new Ss.default({apiKey:e.apiKey,baseURL:mc,timeout:e.timeout||3e4}),this.dimensions=e.dimensions??this.getModelDimensions(e.model)}options;dimensions;client;getModelDimensions(e){let t={"nvidia/llama-nemotron-embed-vl-1b-v2":4096,"nvidia/llama-nemotron-embed-vl-1b-v2:free":4096,"openai/text-embedding-3-small":1536,"openai/text-embedding-3-large":3072,"openai/text-embedding-ada-002":1536},n=t[e];if(n===void 0)throw new _(`Unknown OpenRouter embedding model '${e}'. Pass 'dimensions' in OpenRouterEmbedderOptions or use a known model: ${Object.keys(t).join(", ")}`);return n}async embed(e){let t=null,n=this.options.retries??3;for(let s=0;s<n;s++)try{return(await this.client.embeddings.create({model:this.options.model,input:e})).data[0].embedding}catch(i){t=i,s<n-1&&await new Promise(o=>setTimeout(o,this.options.retryDelay??1e3))}throw new _(`OpenRouter embedding failed after ${n} retries: ${t?.message}`)}async embedBatch(e){let t=null,n=this.options.retries??3;for(let s=0;s<n;s++)try{return(await this.client.embeddings.create({model:this.options.model,input:e})).data.map(o=>o.embedding)}catch(i){t=i,s<n-1&&await new Promise(o=>setTimeout(o,this.options.retryDelay??1e3))}throw new _(`OpenRouter batch embedding failed after ${n} retries: ${t?.message}`)}};l();var yc={"gemini-embedding-001":3072,"text-embedding-005":768,"text-multilingual-embedding-002":768},Je=class{dimensions;projectId;location;model;outputDimensionality;retries;retryDelay;rateLimitMs;lastEmbedAt=0;constructor(e={}){this.model=e.model??"gemini-embedding-001",this.location=e.location??process.env.VERTEX_AI_LOCATION??process.env.TOOLPACK_VERTEXAI_LOCATION??"us-central1";let t=e.projectId??process.env.VERTEX_AI_PROJECT??process.env.TOOLPACK_VERTEXAI_PROJECT??process.env.GOOGLE_CLOUD_PROJECT;if(!t)throw new _("VertexAIEmbedder requires a GCP project ID. Pass projectId in options or set VERTEX_AI_PROJECT / GOOGLE_CLOUD_PROJECT.");this.projectId=t,this.dimensions=e.outputDimensionality??yc[this.model]??3072,this.outputDimensionality=this.dimensions,this.retries=e.retries??3,this.retryDelay=e.retryDelay??1e3,this.rateLimitMs=e.rateLimitMs??0}async embed(e){return(await this.embedBatch([e]))[0]}async embedBatch(e){if(this.rateLimitMs>0){let n=Date.now()-this.lastEmbedAt;n<this.rateLimitMs&&await new Promise(s=>setTimeout(s,this.rateLimitMs-n))}let t=null;for(let n=0;n<this.retries;n++)try{let s=await this._request(e);return this.lastEmbedAt=Date.now(),s}catch(s){t=s,console.error(`[${new Date().toISOString()}] [ERROR] [VertexAI Embedder] attempt ${n+1}/${this.retries} failed: ${t.message}`),n<this.retries-1&&await new Promise(i=>setTimeout(i,this.retryDelay))}throw new _(`VertexAI embedding failed after ${this.retries} retries: ${t?.message}`)}async _request(e){let t=()=>new Date().toISOString();console.debug(`[${t()}] [DEBUG] [VertexAI Embedder] embed texts=${e.length} model=${this.model}`);let n=await this._getAccessToken(),s=`https://${this.location}-aiplatform.googleapis.com/v1/projects/${this.projectId}/locations/${this.location}/publishers/google/models/${this.model}:predict`,i=await fetch(s,{method:"POST",headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json"},body:JSON.stringify({instances:e.map(u=>({content:u,taskType:"RETRIEVAL_DOCUMENT"})),parameters:{outputDimensionality:this.outputDimensionality}})});if(!i.ok){let u=await i.text();throw new _(`VertexAI embeddings API error ${i.status}: ${u}`)}let o=await i.json(),a=o.predictions[0]?.embeddings?.values?.length??0;return console.debug(`[${t()}] [DEBUG] [VertexAI Embedder] embed complete dims=${a}`),o.predictions.map(u=>u.embeddings.values)}async _getAccessToken(){let{GoogleAuth:e}=await import("google-auth-library"),s=await(await new e({scopes:["https://www.googleapis.com/auth/cloud-platform"]}).getClient()).getAccessToken();if(!s.token)throw new _("Failed to obtain Google access token via ADC.");return s.token}};0&&(module.exports={ApiDataSource,ChunkTooLargeError,DimensionMismatchError,EmbeddingError,IngestionError,JSONSource,Knowledge,KnowledgeError,KnowledgeProviderError,MarkdownSource,MemoryProvider,OllamaEmbedder,OpenAIEmbedder,OpenRouterEmbedder,PersistentKnowledgeProvider,PostgresSource,SQLiteSource,TextSource,VertexAIEmbedder,WebUrlSource,combineScores,keywordSearch,matchesFilter});
|
|
72
|
+
`);yield{id:`postgres:${this.options.namespace}:${a}`,content:c,metadata:{...this.options.metadata,type:"postgres_query_result",query:this.options.query,startIndex:a,endIndex:Math.min(a+this.options.chunkSize,o.length),totalRows:o.length}}}}finally{await n.end()}}};l();var Ge=class{constructor(e){this.options=e;this.baseUrl=e.baseUrl||"http://localhost:11434",this.dimensions=e.dimensions||this.getModelDimensions(e.model)}options;dimensions;baseUrl;getModelDimensions(e){let t={"nomic-embed-text":768,"mxbai-embed-large":1024,"all-minilm":384,"snowflake-arctic-embed":1024,"bge-m3":1024,"bge-large":1024,"all-minilm:l6-v2":384,"all-minilm:l12-v2":384},n=t[e];if(!n)throw new _(`Unknown Ollama model '${e}'. Provide 'dimensions' in OllamaEmbedderOptions or use a known model: ${Object.keys(t).join(", ")}`);return n}async embed(e){let t=null,n=this.options.retries||3,s=this.options.retryDelay||1e3;for(let i=0;i<n;i++)try{let o=await fetch(`${this.baseUrl}/api/embeddings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:this.options.model,prompt:e})});if(!o.ok)throw new _(`Ollama embedding failed: ${o.statusText}`,o.status);return(await o.json()).embedding}catch(o){if(t=o,o instanceof _&&o.statusCode&&o.statusCode>=400&&o.statusCode<500)throw o;i<n-1&&await new Promise(a=>setTimeout(a,s))}throw new _(`Ollama embedding failed after ${n} retries: ${t?.message}`)}async embedBatch(e){let t=[];for(let n of e)t.push(await this.embed(n));return t}};l();var ws=E(require("openai"),1);var Ve=class{constructor(e){this.options=e;this.client=new ws.default({apiKey:e.apiKey,timeout:e.timeout||3e4}),this.dimensions=this.getModelDimensions(e.model)}options;dimensions;client;getModelDimensions(e){return{"text-embedding-3-small":1536,"text-embedding-3-large":3072,"text-embedding-ada-002":1536}[e]||1536}async embed(e){let t=null,n=this.options.retries||3;for(let s=0;s<n;s++)try{return(await this.client.embeddings.create({model:this.options.model,input:e})).data[0].embedding}catch(i){t=i,s<n-1&&await new Promise(o=>setTimeout(o,this.options.retryDelay||1e3))}throw new _(`OpenAI embedding failed after ${n} retries: ${t?.message}`)}async embedBatch(e){let t=null,n=this.options.retries||3;for(let s=0;s<n;s++)try{return(await this.client.embeddings.create({model:this.options.model,input:e})).data.map(o=>o.embedding)}catch(i){t=i,s<n-1&&await new Promise(o=>setTimeout(o,this.options.retryDelay||1e3))}throw new _(`OpenAI batch embedding failed after ${n} retries: ${t?.message}`)}};l();var Ss=E(require("openai"),1);var mc="https://openrouter.ai/api/v1",We=class{constructor(e){this.options=e;this.client=new Ss.default({apiKey:e.apiKey,baseURL:mc,timeout:e.timeout||3e4}),this.dimensions=e.dimensions??this.getModelDimensions(e.model)}options;dimensions;client;getModelDimensions(e){let t={"nvidia/llama-nemotron-embed-vl-1b-v2":4096,"nvidia/llama-nemotron-embed-vl-1b-v2:free":4096,"openai/text-embedding-3-small":1536,"openai/text-embedding-3-large":3072,"openai/text-embedding-ada-002":1536},n=t[e];if(n===void 0)throw new _(`Unknown OpenRouter embedding model '${e}'. Pass 'dimensions' in OpenRouterEmbedderOptions or use a known model: ${Object.keys(t).join(", ")}`);return n}async embed(e){let t=null,n=this.options.retries??3;for(let s=0;s<n;s++)try{return(await this.client.embeddings.create({model:this.options.model,input:e})).data[0].embedding}catch(i){t=i,s<n-1&&await new Promise(o=>setTimeout(o,this.options.retryDelay??1e3))}throw new _(`OpenRouter embedding failed after ${n} retries: ${t?.message}`)}async embedBatch(e){let t=null,n=this.options.retries??3;for(let s=0;s<n;s++)try{return(await this.client.embeddings.create({model:this.options.model,input:e})).data.map(o=>o.embedding)}catch(i){t=i,s<n-1&&await new Promise(o=>setTimeout(o,this.options.retryDelay??1e3))}throw new _(`OpenRouter batch embedding failed after ${n} retries: ${t?.message}`)}};l();var yc={"gemini-embedding-001":3072,"text-embedding-005":768,"text-multilingual-embedding-002":768},Je=class{dimensions;projectId;location;model;outputDimensionality;retries;retryDelay;rateLimitMs;credentials;lastEmbedAt=0;constructor(e={}){this.model=e.model??"gemini-embedding-001",this.location=e.location??process.env.VERTEX_AI_LOCATION??process.env.TOOLPACK_VERTEXAI_LOCATION??"us-central1";let t=e.projectId??process.env.VERTEX_AI_PROJECT??process.env.TOOLPACK_VERTEXAI_PROJECT??process.env.GOOGLE_CLOUD_PROJECT;if(!t)throw new _("VertexAIEmbedder requires a GCP project ID. Pass projectId in options or set VERTEX_AI_PROJECT / GOOGLE_CLOUD_PROJECT.");this.projectId=t,this.dimensions=e.outputDimensionality??yc[this.model]??3072,this.outputDimensionality=this.dimensions,this.retries=e.retries??3,this.retryDelay=e.retryDelay??1e3,this.rateLimitMs=e.rateLimitMs??0,this.credentials=e.credentials}async embed(e){return(await this.embedBatch([e]))[0]}async embedBatch(e){if(this.rateLimitMs>0){let n=Date.now()-this.lastEmbedAt;n<this.rateLimitMs&&await new Promise(s=>setTimeout(s,this.rateLimitMs-n))}let t=null;for(let n=0;n<this.retries;n++)try{let s=await this._request(e);return this.lastEmbedAt=Date.now(),s}catch(s){t=s,console.error(`[${new Date().toISOString()}] [ERROR] [VertexAI Embedder] attempt ${n+1}/${this.retries} failed: ${t.message}`),n<this.retries-1&&await new Promise(i=>setTimeout(i,this.retryDelay))}throw new _(`VertexAI embedding failed after ${this.retries} retries: ${t?.message}`)}async _request(e){let t=()=>new Date().toISOString();console.debug(`[${t()}] [DEBUG] [VertexAI Embedder] embed texts=${e.length} model=${this.model}`);let n=await this._getAccessToken(),s=`https://${this.location}-aiplatform.googleapis.com/v1/projects/${this.projectId}/locations/${this.location}/publishers/google/models/${this.model}:predict`,i=await fetch(s,{method:"POST",headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json"},body:JSON.stringify({instances:e.map(u=>({content:u,taskType:"RETRIEVAL_DOCUMENT"})),parameters:{outputDimensionality:this.outputDimensionality}})});if(!i.ok){let u=await i.text();throw new _(`VertexAI embeddings API error ${i.status}: ${u}`)}let o=await i.json(),a=o.predictions[0]?.embeddings?.values?.length??0;return console.debug(`[${t()}] [DEBUG] [VertexAI Embedder] embed complete dims=${a}`),o.predictions.map(u=>u.embeddings.values)}async _getAccessToken(){let{GoogleAuth:e}=await import("google-auth-library"),s=await(await new e({scopes:["https://www.googleapis.com/auth/cloud-platform"],...this.credentials?{credentials:this.credentials}:{}}).getClient()).getAccessToken();if(!s.token)throw new _("Failed to obtain Google access token via ADC.");return s.token}};0&&(module.exports={ApiDataSource,ChunkTooLargeError,DimensionMismatchError,EmbeddingError,IngestionError,JSONSource,Knowledge,KnowledgeError,KnowledgeProviderError,MarkdownSource,MemoryProvider,OllamaEmbedder,OpenAIEmbedder,OpenRouterEmbedder,PersistentKnowledgeProvider,PostgresSource,SQLiteSource,TextSource,VertexAIEmbedder,WebUrlSource,combineScores,keywordSearch,matchesFilter});
|
package/dist/index.d.cts
CHANGED
|
@@ -514,6 +514,12 @@ interface VertexAIEmbedderOptions {
|
|
|
514
514
|
* Example: 500 adds a 0.5s pause between batches (120 QPM effective rate).
|
|
515
515
|
*/
|
|
516
516
|
rateLimitMs?: number;
|
|
517
|
+
/**
|
|
518
|
+
* Inline service account credentials object (parsed JSON key).
|
|
519
|
+
* When provided, used instead of Application Default Credentials.
|
|
520
|
+
* Mirrors the googleAuthOptions.credentials pattern in VertexAIAdapter.
|
|
521
|
+
*/
|
|
522
|
+
credentials?: Record<string, unknown>;
|
|
517
523
|
}
|
|
518
524
|
declare class VertexAIEmbedder implements Embedder {
|
|
519
525
|
readonly dimensions: number;
|
|
@@ -524,6 +530,7 @@ declare class VertexAIEmbedder implements Embedder {
|
|
|
524
530
|
private readonly retries;
|
|
525
531
|
private readonly retryDelay;
|
|
526
532
|
private readonly rateLimitMs;
|
|
533
|
+
private readonly credentials?;
|
|
527
534
|
private lastEmbedAt;
|
|
528
535
|
constructor(options?: VertexAIEmbedderOptions);
|
|
529
536
|
embed(text: string): Promise<number[]>;
|
package/dist/index.d.ts
CHANGED
|
@@ -514,6 +514,12 @@ interface VertexAIEmbedderOptions {
|
|
|
514
514
|
* Example: 500 adds a 0.5s pause between batches (120 QPM effective rate).
|
|
515
515
|
*/
|
|
516
516
|
rateLimitMs?: number;
|
|
517
|
+
/**
|
|
518
|
+
* Inline service account credentials object (parsed JSON key).
|
|
519
|
+
* When provided, used instead of Application Default Credentials.
|
|
520
|
+
* Mirrors the googleAuthOptions.credentials pattern in VertexAIAdapter.
|
|
521
|
+
*/
|
|
522
|
+
credentials?: Record<string, unknown>;
|
|
517
523
|
}
|
|
518
524
|
declare class VertexAIEmbedder implements Embedder {
|
|
519
525
|
readonly dimensions: number;
|
|
@@ -524,6 +530,7 @@ declare class VertexAIEmbedder implements Embedder {
|
|
|
524
530
|
private readonly retries;
|
|
525
531
|
private readonly retryDelay;
|
|
526
532
|
private readonly rateLimitMs;
|
|
533
|
+
private readonly credentials?;
|
|
527
534
|
private lastEmbedAt;
|
|
528
535
|
constructor(options?: VertexAIEmbedderOptions);
|
|
529
536
|
embed(text: string): Promise<number[]>;
|
package/dist/index.js
CHANGED
|
@@ -69,4 +69,4 @@ See https://www.postgresql.org/docs/current/libpq-ssl.html for libpq SSL mode de
|
|
|
69
69
|
|
|
70
70
|
---
|
|
71
71
|
|
|
72
|
-
`);yield{id:`postgres:${this.options.namespace}:${a}`,content:c,metadata:{...this.options.metadata,type:"postgres_query_result",query:this.options.query,startIndex:a,endIndex:Math.min(a+this.options.chunkSize,o.length),totalRows:o.length}}}}finally{await n.end()}}};l();var sr=class{constructor(e){this.options=e;this.baseUrl=e.baseUrl||"http://localhost:11434",this.dimensions=e.dimensions||this.getModelDimensions(e.model)}options;dimensions;baseUrl;getModelDimensions(e){let t={"nomic-embed-text":768,"mxbai-embed-large":1024,"all-minilm":384,"snowflake-arctic-embed":1024,"bge-m3":1024,"bge-large":1024,"all-minilm:l6-v2":384,"all-minilm:l12-v2":384},n=t[e];if(!n)throw new C(`Unknown Ollama model '${e}'. Provide 'dimensions' in OllamaEmbedderOptions or use a known model: ${Object.keys(t).join(", ")}`);return n}async embed(e){let t=null,n=this.options.retries||3,s=this.options.retryDelay||1e3;for(let i=0;i<n;i++)try{let o=await fetch(`${this.baseUrl}/api/embeddings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:this.options.model,prompt:e})});if(!o.ok)throw new C(`Ollama embedding failed: ${o.statusText}`,o.status);return(await o.json()).embedding}catch(o){if(t=o,o instanceof C&&o.statusCode&&o.statusCode>=400&&o.statusCode<500)throw o;i<n-1&&await new Promise(a=>setTimeout(a,s))}throw new C(`Ollama embedding failed after ${n} retries: ${t?.message}`)}async embedBatch(e){let t=[];for(let n of e)t.push(await this.embed(n));return t}};l();import pc from"openai";var ir=class{constructor(e){this.options=e;this.client=new pc({apiKey:e.apiKey,timeout:e.timeout||3e4}),this.dimensions=this.getModelDimensions(e.model)}options;dimensions;client;getModelDimensions(e){return{"text-embedding-3-small":1536,"text-embedding-3-large":3072,"text-embedding-ada-002":1536}[e]||1536}async embed(e){let t=null,n=this.options.retries||3;for(let s=0;s<n;s++)try{return(await this.client.embeddings.create({model:this.options.model,input:e})).data[0].embedding}catch(i){t=i,s<n-1&&await new Promise(o=>setTimeout(o,this.options.retryDelay||1e3))}throw new C(`OpenAI embedding failed after ${n} retries: ${t?.message}`)}async embedBatch(e){let t=null,n=this.options.retries||3;for(let s=0;s<n;s++)try{return(await this.client.embeddings.create({model:this.options.model,input:e})).data.map(o=>o.embedding)}catch(i){t=i,s<n-1&&await new Promise(o=>setTimeout(o,this.options.retryDelay||1e3))}throw new C(`OpenAI batch embedding failed after ${n} retries: ${t?.message}`)}};l();import mc from"openai";var yc="https://openrouter.ai/api/v1",or=class{constructor(e){this.options=e;this.client=new mc({apiKey:e.apiKey,baseURL:yc,timeout:e.timeout||3e4}),this.dimensions=e.dimensions??this.getModelDimensions(e.model)}options;dimensions;client;getModelDimensions(e){let t={"nvidia/llama-nemotron-embed-vl-1b-v2":4096,"nvidia/llama-nemotron-embed-vl-1b-v2:free":4096,"openai/text-embedding-3-small":1536,"openai/text-embedding-3-large":3072,"openai/text-embedding-ada-002":1536},n=t[e];if(n===void 0)throw new C(`Unknown OpenRouter embedding model '${e}'. Pass 'dimensions' in OpenRouterEmbedderOptions or use a known model: ${Object.keys(t).join(", ")}`);return n}async embed(e){let t=null,n=this.options.retries??3;for(let s=0;s<n;s++)try{return(await this.client.embeddings.create({model:this.options.model,input:e})).data[0].embedding}catch(i){t=i,s<n-1&&await new Promise(o=>setTimeout(o,this.options.retryDelay??1e3))}throw new C(`OpenRouter embedding failed after ${n} retries: ${t?.message}`)}async embedBatch(e){let t=null,n=this.options.retries??3;for(let s=0;s<n;s++)try{return(await this.client.embeddings.create({model:this.options.model,input:e})).data.map(o=>o.embedding)}catch(i){t=i,s<n-1&&await new Promise(o=>setTimeout(o,this.options.retryDelay??1e3))}throw new C(`OpenRouter batch embedding failed after ${n} retries: ${t?.message}`)}};l();var gc={"gemini-embedding-001":3072,"text-embedding-005":768,"text-multilingual-embedding-002":768},ar=class{dimensions;projectId;location;model;outputDimensionality;retries;retryDelay;rateLimitMs;lastEmbedAt=0;constructor(e={}){this.model=e.model??"gemini-embedding-001",this.location=e.location??process.env.VERTEX_AI_LOCATION??process.env.TOOLPACK_VERTEXAI_LOCATION??"us-central1";let t=e.projectId??process.env.VERTEX_AI_PROJECT??process.env.TOOLPACK_VERTEXAI_PROJECT??process.env.GOOGLE_CLOUD_PROJECT;if(!t)throw new C("VertexAIEmbedder requires a GCP project ID. Pass projectId in options or set VERTEX_AI_PROJECT / GOOGLE_CLOUD_PROJECT.");this.projectId=t,this.dimensions=e.outputDimensionality??gc[this.model]??3072,this.outputDimensionality=this.dimensions,this.retries=e.retries??3,this.retryDelay=e.retryDelay??1e3,this.rateLimitMs=e.rateLimitMs??0}async embed(e){return(await this.embedBatch([e]))[0]}async embedBatch(e){if(this.rateLimitMs>0){let n=Date.now()-this.lastEmbedAt;n<this.rateLimitMs&&await new Promise(s=>setTimeout(s,this.rateLimitMs-n))}let t=null;for(let n=0;n<this.retries;n++)try{let s=await this._request(e);return this.lastEmbedAt=Date.now(),s}catch(s){t=s,console.error(`[${new Date().toISOString()}] [ERROR] [VertexAI Embedder] attempt ${n+1}/${this.retries} failed: ${t.message}`),n<this.retries-1&&await new Promise(i=>setTimeout(i,this.retryDelay))}throw new C(`VertexAI embedding failed after ${this.retries} retries: ${t?.message}`)}async _request(e){let t=()=>new Date().toISOString();console.debug(`[${t()}] [DEBUG] [VertexAI Embedder] embed texts=${e.length} model=${this.model}`);let n=await this._getAccessToken(),s=`https://${this.location}-aiplatform.googleapis.com/v1/projects/${this.projectId}/locations/${this.location}/publishers/google/models/${this.model}:predict`,i=await fetch(s,{method:"POST",headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json"},body:JSON.stringify({instances:e.map(u=>({content:u,taskType:"RETRIEVAL_DOCUMENT"})),parameters:{outputDimensionality:this.outputDimensionality}})});if(!i.ok){let u=await i.text();throw new C(`VertexAI embeddings API error ${i.status}: ${u}`)}let o=await i.json(),a=o.predictions[0]?.embeddings?.values?.length??0;return console.debug(`[${t()}] [DEBUG] [VertexAI Embedder] embed complete dims=${a}`),o.predictions.map(u=>u.embeddings.values)}async _getAccessToken(){let{GoogleAuth:e}=await import("google-auth-library"),s=await(await new e({scopes:["https://www.googleapis.com/auth/cloud-platform"]}).getClient()).getAccessToken();if(!s.token)throw new C("Failed to obtain Google access token via ADC.");return s.token}};export{Ve as ApiDataSource,ur as ChunkTooLargeError,J as DimensionMismatchError,C as EmbeddingError,_ as IngestionError,Je as JSONSource,lr as Knowledge,H as KnowledgeError,z as KnowledgeProviderError,$e as MarkdownSource,Ue as MemoryProvider,sr as OllamaEmbedder,ir as OpenAIEmbedder,or as OpenRouterEmbedder,je as PersistentKnowledgeProvider,nr as PostgresSource,Ye as SQLiteSource,He as TextSource,ar as VertexAIEmbedder,Ke as WebUrlSource,Fe as combineScores,K as keywordSearch,L as matchesFilter};
|
|
72
|
+
`);yield{id:`postgres:${this.options.namespace}:${a}`,content:c,metadata:{...this.options.metadata,type:"postgres_query_result",query:this.options.query,startIndex:a,endIndex:Math.min(a+this.options.chunkSize,o.length),totalRows:o.length}}}}finally{await n.end()}}};l();var sr=class{constructor(e){this.options=e;this.baseUrl=e.baseUrl||"http://localhost:11434",this.dimensions=e.dimensions||this.getModelDimensions(e.model)}options;dimensions;baseUrl;getModelDimensions(e){let t={"nomic-embed-text":768,"mxbai-embed-large":1024,"all-minilm":384,"snowflake-arctic-embed":1024,"bge-m3":1024,"bge-large":1024,"all-minilm:l6-v2":384,"all-minilm:l12-v2":384},n=t[e];if(!n)throw new C(`Unknown Ollama model '${e}'. Provide 'dimensions' in OllamaEmbedderOptions or use a known model: ${Object.keys(t).join(", ")}`);return n}async embed(e){let t=null,n=this.options.retries||3,s=this.options.retryDelay||1e3;for(let i=0;i<n;i++)try{let o=await fetch(`${this.baseUrl}/api/embeddings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:this.options.model,prompt:e})});if(!o.ok)throw new C(`Ollama embedding failed: ${o.statusText}`,o.status);return(await o.json()).embedding}catch(o){if(t=o,o instanceof C&&o.statusCode&&o.statusCode>=400&&o.statusCode<500)throw o;i<n-1&&await new Promise(a=>setTimeout(a,s))}throw new C(`Ollama embedding failed after ${n} retries: ${t?.message}`)}async embedBatch(e){let t=[];for(let n of e)t.push(await this.embed(n));return t}};l();import pc from"openai";var ir=class{constructor(e){this.options=e;this.client=new pc({apiKey:e.apiKey,timeout:e.timeout||3e4}),this.dimensions=this.getModelDimensions(e.model)}options;dimensions;client;getModelDimensions(e){return{"text-embedding-3-small":1536,"text-embedding-3-large":3072,"text-embedding-ada-002":1536}[e]||1536}async embed(e){let t=null,n=this.options.retries||3;for(let s=0;s<n;s++)try{return(await this.client.embeddings.create({model:this.options.model,input:e})).data[0].embedding}catch(i){t=i,s<n-1&&await new Promise(o=>setTimeout(o,this.options.retryDelay||1e3))}throw new C(`OpenAI embedding failed after ${n} retries: ${t?.message}`)}async embedBatch(e){let t=null,n=this.options.retries||3;for(let s=0;s<n;s++)try{return(await this.client.embeddings.create({model:this.options.model,input:e})).data.map(o=>o.embedding)}catch(i){t=i,s<n-1&&await new Promise(o=>setTimeout(o,this.options.retryDelay||1e3))}throw new C(`OpenAI batch embedding failed after ${n} retries: ${t?.message}`)}};l();import mc from"openai";var yc="https://openrouter.ai/api/v1",or=class{constructor(e){this.options=e;this.client=new mc({apiKey:e.apiKey,baseURL:yc,timeout:e.timeout||3e4}),this.dimensions=e.dimensions??this.getModelDimensions(e.model)}options;dimensions;client;getModelDimensions(e){let t={"nvidia/llama-nemotron-embed-vl-1b-v2":4096,"nvidia/llama-nemotron-embed-vl-1b-v2:free":4096,"openai/text-embedding-3-small":1536,"openai/text-embedding-3-large":3072,"openai/text-embedding-ada-002":1536},n=t[e];if(n===void 0)throw new C(`Unknown OpenRouter embedding model '${e}'. Pass 'dimensions' in OpenRouterEmbedderOptions or use a known model: ${Object.keys(t).join(", ")}`);return n}async embed(e){let t=null,n=this.options.retries??3;for(let s=0;s<n;s++)try{return(await this.client.embeddings.create({model:this.options.model,input:e})).data[0].embedding}catch(i){t=i,s<n-1&&await new Promise(o=>setTimeout(o,this.options.retryDelay??1e3))}throw new C(`OpenRouter embedding failed after ${n} retries: ${t?.message}`)}async embedBatch(e){let t=null,n=this.options.retries??3;for(let s=0;s<n;s++)try{return(await this.client.embeddings.create({model:this.options.model,input:e})).data.map(o=>o.embedding)}catch(i){t=i,s<n-1&&await new Promise(o=>setTimeout(o,this.options.retryDelay??1e3))}throw new C(`OpenRouter batch embedding failed after ${n} retries: ${t?.message}`)}};l();var gc={"gemini-embedding-001":3072,"text-embedding-005":768,"text-multilingual-embedding-002":768},ar=class{dimensions;projectId;location;model;outputDimensionality;retries;retryDelay;rateLimitMs;credentials;lastEmbedAt=0;constructor(e={}){this.model=e.model??"gemini-embedding-001",this.location=e.location??process.env.VERTEX_AI_LOCATION??process.env.TOOLPACK_VERTEXAI_LOCATION??"us-central1";let t=e.projectId??process.env.VERTEX_AI_PROJECT??process.env.TOOLPACK_VERTEXAI_PROJECT??process.env.GOOGLE_CLOUD_PROJECT;if(!t)throw new C("VertexAIEmbedder requires a GCP project ID. Pass projectId in options or set VERTEX_AI_PROJECT / GOOGLE_CLOUD_PROJECT.");this.projectId=t,this.dimensions=e.outputDimensionality??gc[this.model]??3072,this.outputDimensionality=this.dimensions,this.retries=e.retries??3,this.retryDelay=e.retryDelay??1e3,this.rateLimitMs=e.rateLimitMs??0,this.credentials=e.credentials}async embed(e){return(await this.embedBatch([e]))[0]}async embedBatch(e){if(this.rateLimitMs>0){let n=Date.now()-this.lastEmbedAt;n<this.rateLimitMs&&await new Promise(s=>setTimeout(s,this.rateLimitMs-n))}let t=null;for(let n=0;n<this.retries;n++)try{let s=await this._request(e);return this.lastEmbedAt=Date.now(),s}catch(s){t=s,console.error(`[${new Date().toISOString()}] [ERROR] [VertexAI Embedder] attempt ${n+1}/${this.retries} failed: ${t.message}`),n<this.retries-1&&await new Promise(i=>setTimeout(i,this.retryDelay))}throw new C(`VertexAI embedding failed after ${this.retries} retries: ${t?.message}`)}async _request(e){let t=()=>new Date().toISOString();console.debug(`[${t()}] [DEBUG] [VertexAI Embedder] embed texts=${e.length} model=${this.model}`);let n=await this._getAccessToken(),s=`https://${this.location}-aiplatform.googleapis.com/v1/projects/${this.projectId}/locations/${this.location}/publishers/google/models/${this.model}:predict`,i=await fetch(s,{method:"POST",headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json"},body:JSON.stringify({instances:e.map(u=>({content:u,taskType:"RETRIEVAL_DOCUMENT"})),parameters:{outputDimensionality:this.outputDimensionality}})});if(!i.ok){let u=await i.text();throw new C(`VertexAI embeddings API error ${i.status}: ${u}`)}let o=await i.json(),a=o.predictions[0]?.embeddings?.values?.length??0;return console.debug(`[${t()}] [DEBUG] [VertexAI Embedder] embed complete dims=${a}`),o.predictions.map(u=>u.embeddings.values)}async _getAccessToken(){let{GoogleAuth:e}=await import("google-auth-library"),s=await(await new e({scopes:["https://www.googleapis.com/auth/cloud-platform"],...this.credentials?{credentials:this.credentials}:{}}).getClient()).getAccessToken();if(!s.token)throw new C("Failed to obtain Google access token via ADC.");return s.token}};export{Ve as ApiDataSource,ur as ChunkTooLargeError,J as DimensionMismatchError,C as EmbeddingError,_ as IngestionError,Je as JSONSource,lr as Knowledge,H as KnowledgeError,z as KnowledgeProviderError,$e as MarkdownSource,Ue as MemoryProvider,sr as OllamaEmbedder,ir as OpenAIEmbedder,or as OpenRouterEmbedder,je as PersistentKnowledgeProvider,nr as PostgresSource,Ye as SQLiteSource,He as TextSource,ar as VertexAIEmbedder,Ke as WebUrlSource,Fe as combineScores,K as keywordSearch,L as matchesFilter};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toolpack-sdk/knowledge",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "Knowledge/RAG package for Toolpack SDK — web crawling, REST API ingestion, hybrid semantic + keyword search, and streaming indexing across 6 source types (Markdown, Web, API, JSON, SQLite, PostgreSQL)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|