@ducklings/browser 1.4.4 → 1.5.1

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.
Binary file
package/dist/worker.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Ducklings Worker
2
- var ge=Uint8Array.of(65,82,82,79,87,49),Lr=Uint8Array.of(255,255,255,255,0,0,0,0),T={V1:0,V5:4},dr={Little:0},V={NONE:0,Schema:1,DictionaryBatch:2,RecordBatch:3},u={Dictionary:-1,NONE:0,Null:1,Int:2,Float:3,Binary:4,Utf8:5,Bool:6,Decimal:7,Date:8,Time:9,Timestamp:10,Interval:11,List:12,Struct:13,Union:14,FixedSizeBinary:15,FixedSizeList:16,Map:17,Duration:18,LargeBinary:19,LargeUtf8:20,LargeList:21,RunEndEncoded:22,BinaryView:23,Utf8View:24,ListView:25,LargeListView:26},G={HALF:0,SINGLE:1,DOUBLE:2},A={DAY:0,MILLISECOND:1},E={SECOND:0,MILLISECOND:1,MICROSECOND:2,NANOSECOND:3},x={YEAR_MONTH:0,DAY_TIME:1,MONTH_DAY_NANO:2},H={Sparse:0,Dense:1},oe={LZ4_FRAME:0,ZSTD:1},ie={BUFFER:0};var C=Uint8Array,Ee=Uint16Array,Re=Uint32Array,Te=BigUint64Array,ae=Int8Array,fr=Int16Array,P=Int32Array,k=BigInt64Array,He=Float32Array,M=Float64Array;function Dr(r,e){let t=Math.log2(r)-3;return (e?[ae,fr,P,k]:[C,Ee,Re,Te])[t]}var Sn=Object.getPrototypeOf(Int8Array);function mr(r){return r instanceof Sn}function je(r){return Array.isArray(r)||mr(r)}function ce(r){return r===k||r===Te}function ue(r,e){let t=0,n=r.length;if(n<=2147483648)do{let s=t+n>>>1;r[s]<=e?t=s+1:n=s;}while(t<n);else do{let s=Math.trunc((t+n)/2);r[s]<=e?t=s+1:n=s;}while(t<n);return t}function wn(r,e=1){return (r*e+7&-8)/e}function Pr(r,e=r.length){let t=wn(e,r.BYTES_PER_ELEMENT);return r.length>t?r.subarray(0,t):r.length<t?kr(r,t):r}function kr(r,e,t=0){let n=new r.constructor(e);return n.set(r,t),n}function Qe(r,e,t){for(;r.length<=e;)r=kr(r,r.length<<1,t?r.length:0);return r}function Mr(r){return r instanceof Date}function Ur(r){return typeof r[Symbol.iterator]=="function"}function pr(r,e,t){if(e(r))return r;throw new Error(t(r))}function j(r,e,t){return e=Array.isArray(e)?e:Object.values(e),pr(r,n=>e.includes(n),t??(()=>`${r} must be one of ${e}`))}function _e(r,e){for(let[t,n]of Object.entries(r))if(n===e)return t;return "<Unknown>"}var v=r=>`Unsupported data type: "${_e(u,r)}" (id ${r})`,J=(r,e,t=true,n=null)=>({name:r,type:e,nullable:t,metadata:n});function Br(r){return Object.hasOwn(r,"name")&&qr(r.type)}function qr(r){return typeof r?.typeId=="number"}function Vr(r,e="",t=true){return Br(r)?r:J(e,pr(r,qr,()=>"Data type expected."),t)}var Gr=r=>({typeId:r}),$e=(r,e,t=false,n=-1)=>({typeId:u.Dictionary,id:n,dictionary:r,indices:e||U(),ordered:t}),hr=()=>Gr(u.Null),N=(r=32,e=true)=>({typeId:u.Int,bitWidth:j(r,[8,16,32,64]),signed:e,values:Dr(r,e)}),X=()=>N(8),Z=()=>N(16),U=()=>N(32),ee=()=>N(64),xe=()=>N(8,false),Se=()=>N(16,false),we=()=>N(32,false),Fe=()=>N(64,false),Ye=(r=2)=>({typeId:u.Float,precision:j(r,G),values:[Ee,He,M][r]});var Oe=()=>Ye(G.SINGLE),Q=()=>Ye(G.DOUBLE);var te=()=>({typeId:u.Utf8,offsets:P}),Ae=()=>Gr(u.Bool);var br=r=>({typeId:u.Date,unit:j(r,A),values:r===A.DAY?P:k}),Ce=()=>br(A.DAY);var le=(r=E.MILLISECOND,e=null)=>({typeId:u.Timestamp,unit:j(r,E),timezone:e,values:k});var ze=r=>({typeId:u.List,children:[Vr(r)],offsets:P}),Ke=r=>({typeId:u.Struct,children:Array.isArray(r)&&r.length>0&&Br(r[0])?r:Object.entries(r).map(([e,t])=>J(e,t))});var We=(r,e)=>({typeId:u.FixedSizeList,stride:e,children:[Vr(r)]});var jr=new M(2),Je=jr.buffer,Fn=new k(Je),de=new Re(Je),Hr=new P(Je),On=new C(Je);function An(r){return r}function S(r){return BigInt(r)}function Xe(r){return ce(r)?S:An}function Qr(r){return r/864e5|0}function $r(r){return r===E.SECOND?e=>S(e/1e3):r===E.MILLISECOND?S:r===E.MICROSECOND?e=>S(e*1e3):e=>S(e*1e6)}function Yr([r,e,t]){return Hr[0]=r,Hr[1]=e,Fn[1]=S(t),On}function L(r){if(r>Number.MAX_SAFE_INTEGER||r<Number.MIN_SAFE_INTEGER)throw Error(`BigInt exceeds integer number representation: ${r}`);return Number(r)}function Ze(r,e){return Number(r/e)+Number(r%e)/Number(e)}function zr(r){return e=>typeof e=="bigint"?Number(e):Math.trunc(e*r)}function Kr(r,e,t,n,s){let o=typeof r=="bigint"?r:S(Math.trunc(r*s));e[t]=o,n>1&&(e[t+1]=o>>64n,n>2&&(e[t+2]=o>>128n,e[t+3]=o>>192n));}var fe=r=>BigInt.asUintN(64,r);function Wr(r,e){return BigInt.asIntN(64,r[e])}function Jr(r,e){let t=e<<1,n;return BigInt.asIntN(64,r[t+1])<0?(n=fe(~r[t])|fe(~r[t+1])<<64n,n=-(n+1n)):n=r[t]|r[t+1]<<64n,n}function Xr(r,e){let t=e<<2,n;return BigInt.asIntN(64,r[t+3])<0?(n=fe(~r[t])|fe(~r[t+1])<<64n|fe(~r[t+2])<<128n|fe(~r[t+3])<<192n,n=-(n+1n)):n=r[t]|r[t+1]<<64n|r[t+2]<<128n|r[t+3]<<192n,n}function Zr(r){if(r!==r)return 32256;jr[0]=r;let e=(de[1]&2147483648)>>16&65535,t=de[1]&2146435072,n=0;return t>=1089470464?de[0]>0?t=31744:(t=(t&2080374784)>>16,n=(de[1]&1048575)>>10):t<=1056964608?(n=1048576+(de[1]&1048575),n=1048576+(n<<(t>>20)-998)>>21,t=0):(t=t-1056964608>>10,n=(de[1]&1048575)+512>>10),e|t|n&65535}var Cn=new TextDecoder("utf-8"),vn=new TextEncoder;function ve(r){return Cn.decode(r)}function et(r){return vn.encode(r)}function me(r){return `${typeof r!="object"||!r?r??null:Mr(r)?+r:je(r)?`[${r.map(me)}]`:Nn(r)}`}function Nn(r){let e="",t=-1;for(let n in r)++t>0&&(e+=","),e+=`"${n}":${me(r[n])}`;return `{${e}}`}var $=4,tt=2;function yr(r,e){return (r[e>>3]&1<<e%8)!==0}function Y(r,e){return Ln(r,e)<<16>>16}function Ln(r,e){return r[e]|r[e+1]<<8}function w(r,e){return r[e]|r[e+1]<<8|r[e+2]<<16|r[e+3]<<24}function en(r,e){return w(r,e)>>>0}function z(r,e){return L(BigInt.asIntN(64,BigInt(en(r,e))+(BigInt(en(r,e+$))<<32n)))}var rt=Symbol("rowIndex");function Ne(r,e){class t{constructor(o){this[rt]=o;}toJSON(){return tn(r,e,this[rt])}}let n=t.prototype;for(let s=0;s<r.length;++s){if(Object.hasOwn(n,r[s]))continue;let o=e[s];Object.defineProperty(n,r[s],{get(){return o.at(this[rt])},enumerable:true});}return s=>new t(s)}function nt(r,e){return t=>tn(r,e,t)}function tn(r,e,t){let n={};for(let s=0;s<r.length;++s)n[r[s]]=e[s].at(t);return n}function rn(r){return r instanceof D}var re=class{static ArrayType=null;constructor({length:e,nullCount:t,type:n,validity:s,values:o,offsets:i,sizes:a,children:c}){this.length=e,this.nullCount=t,this.type=n,this.validity=s,this.values=o,this.offsets=i,this.sizes=a,this.children=c,(!t||!this.validity)&&(this.at=l=>this.value(l));}get[Symbol.toStringTag](){return "Batch"}at(e){return this.isValid(e)?this.value(e):null}isValid(e){return yr(this.validity,e)}value(e){return this.values[e]}slice(e,t){let n=t-e,s=Array(n);for(let o=0;o<n;++o)s[o]=this.at(e+o);return s}*[Symbol.iterator](){for(let e=0;e<this.length;++e)yield this.at(e);}},D=class extends re{constructor(e){super(e);let{length:t,values:n}=this;this.values=n.subarray(0,t);}slice(e,t){return this.nullCount?super.slice(e,t):this.values.subarray(e,t)}[Symbol.iterator](){return this.nullCount?super[Symbol.iterator]():this.values[Symbol.iterator]()}},pe=class extends re{static ArrayType=M},y=class extends re{static ArrayType=Array},he=class extends y{value(e){return null}},F=class extends pe{value(e){return L(this.values[e])}},st=class extends pe{value(e){let t=this.values[e],n=(t&31744)>>10,s=(t&1023)/1024,o=(-1)**((t&32768)>>15);switch(n){case 31:return o*(s?Number.NaN:1/0);case 0:return o*(s?6103515625e-14*s:0)}return o*2**(n-15)*(1+s)}},ot=class extends y{value(e){return yr(this.values,e)}},it=class extends pe{constructor(e){super(e);let{scale:t}=this.type;this.scale=10**t;}value(e){return this.values[e]/this.scale}},at=class extends re{constructor(e){super(e);let{bitWidth:t,scale:n}=this.type;this.decimal=t===64?Wr:t===128?Jr:Xr,this.scale=10n**BigInt(n);}},ct=class extends at{static ArrayType=M;value(e){return Ze(this.decimal(this.values,e),this.scale)}},ut=class extends at{static ArrayType=Array;value(e){return this.decimal(this.values,e)}},Le=class extends y{constructor(e){super(e),this.source=e;}value(e){return new Date(this.source.value(e))}},lt=class extends pe{value(e){return 864e5*this.values[e]}},nn=F,dt=class extends F{value(e){return super.value(e)*1e3}},sn=F,ft=class extends F{value(e){return Ze(this.values[e],1000n)}},mt=class extends F{value(e){return Ze(this.values[e],1000000n)}},pt=class extends y{value(e){return this.values.subarray(e<<1,e+1<<1)}},ht=class extends y{value(e){let t=this.values,n=e<<4;return Float64Array.of(w(t,n),w(t,n+4),z(t,n+8))}},on=({values:r,offsets:e},t)=>r.subarray(e[t],e[t+1]),an=({values:r,offsets:e},t)=>r.subarray(L(e[t]),L(e[t+1])),bt=class extends y{value(e){return on(this,e)}},yt=class extends y{value(e){return an(this,e)}},It=class extends y{value(e){return ve(on(this,e))}},gt=class extends y{value(e){return ve(an(this,e))}},Et=class extends y{value(e){let t=this.offsets;return this.children[0].slice(t[e],t[e+1])}},Rt=class extends y{value(e){let t=this.offsets;return this.children[0].slice(L(t[e]),L(t[e+1]))}},Tt=class extends y{value(e){let t=this.offsets[e],n=t+this.sizes[e];return this.children[0].slice(t,n)}},_t=class extends y{value(e){let t=this.offsets[e],n=t+this.sizes[e];return this.children[0].slice(L(t),L(n))}},xt=class extends y{constructor(e){super(e),this.stride=this.type.stride;}},St=class extends xt{value(e){let{stride:t,values:n}=this;return n.subarray(e*t,(e+1)*t)}},wt=class extends xt{value(e){let{children:t,stride:n}=this;return t[0].slice(e*n,(e+1)*n)}};function cn({children:r,offsets:e},t){let[n,s]=r[0].children,o=e[t],i=e[t+1],a=[];for(let c=o;c<i;++c)a.push([n.at(c),s.at(c)]);return a}var Ft=class extends y{value(e){return cn(this,e)}},Ot=class extends y{value(e){return new Map(cn(this,e))}},De=class extends y{constructor({typeIds:e,...t}){super(t),this.typeIds=e,this.typeMap=this.type.typeMap;}value(e,t=e){let{typeIds:n,children:s,typeMap:o}=this;return s[o[n[e]]].at(t)}},At=class extends De{value(e){return super.value(e,this.offsets[e])}},Pe=class extends y{constructor(e,t=nt){super(e),this.names=this.type.children.map(n=>n.name),this.factory=t(this.names,this.children);}value(e){return this.factory(e)}},Ct=class extends Pe{constructor(e){super(e,Ne);}},vt=class extends y{value(e){let[{values:t},n]=this.children;return n.at(ue(t,e))}},Nt=class extends y{setDictionary(e){return this.dictionary=e,this.cache=e.cache(),this}value(e){return this.cache[this.key(e)]}key(e){return this.values[e]}},Lt=class extends y{constructor({data:e,...t}){super(t),this.data=e;}view(e){let{values:t,data:n}=this,s=e<<4,o=s+4,i=t,a=w(i,s);return a>12&&(o=w(i,s+12),i=n[w(i,s+8)]),i.subarray(o,o+a)}},Dt=class extends Lt{value(e){return this.view(e)}},Pt=class extends Lt{value(e){return ve(this.view(e))}};var B=class{constructor(e,t=e[0]?.type){this.type=t,this.length=e.reduce((o,i)=>o+i.length,0),this.nullCount=e.reduce((o,i)=>o+i.nullCount,0),this.data=e;let n=e.length,s=new Int32Array(n+1);if(n===1){let[o]=e;s[1]=o.length,this.at=i=>o.at(i);}else for(let o=0,i=0;o<n;++o)s[o+1]=i+=e[o].length;this.offsets=s;}get[Symbol.toStringTag](){return "Column"}[Symbol.iterator](){let e=this.data;return e.length===1?e[0][Symbol.iterator]():Dn(e)}at(e){let{data:t,offsets:n}=this,s=ue(n,e)-1;return t[s]?.at(e-n[s])}get(e){return this.at(e)}toArray(){let{length:e,nullCount:t,data:n}=this,s=!t&&rn(n[0]),o=n.length;if(s&&o===1)return n[0].values;let i=!o||t>0?Array:n[0].constructor.ArrayType??n[0].values.constructor,a=new i(e);return s?Pn(a,n):kn(a,n)}cache(){return this._cache??(this._cache=this.toArray())}};function*Dn(r){for(let e=0;e<r.length;++e){let t=r[e][Symbol.iterator]();for(let n=t.next();!n.done;n=t.next())yield n.value;}}function Pn(r,e){for(let t=0,n=0;t<e.length;++t){let{values:s}=e[t];r.set(s,n),n+=s.length;}return r}function kn(r,e){let t=-1;for(let n=0;n<e.length;++n){let s=e[n];for(let o=0;o<s.length;++o)r[++t]=s.at(o);}return r}var be=class r{constructor(e,t,n=false){let s=e.fields.map(i=>i.name);this.schema=e,this.names=s,this.children=t,this.factory=n?Ne:nt;let o=[];this.getFactory=i=>o[i]??(o[i]=this.factory(s,t.map(a=>a.data[i])));}get[Symbol.toStringTag](){return "Table"}get numCols(){return this.names.length}get numRows(){return this.children[0]?.length??0}getChildAt(e){return this.children[e]}getChild(e){let t=this.names.findIndex(n=>n===e);return t>-1?this.children[t]:void 0}selectAt(e,t=[]){let{children:n,factory:s,schema:o}=this,{fields:i}=o;return new r({...o,fields:e.map((a,c)=>Mn(i[a],t[c]))},e.map(a=>n[a]),s===Ne)}select(e,t){let n=this.names,s=e.map(o=>n.indexOf(o));return this.selectAt(s,t)}toColumns(){let{children:e,names:t}=this,n={};return t.forEach((s,o)=>n[s]=e[o]?.toArray()??[]),n}toArray(){let{children:e,getFactory:t,numRows:n}=this,s=e[0]?.data??[],o=Array(n);for(let i=0,a=-1;i<s.length;++i){let c=t(i);for(let l=0;l<s[i].length;++l)o[++a]=c(l);}return o}*[Symbol.iterator](){let{children:e,getFactory:t}=this,n=e[0]?.data??[];for(let s=0;s<n.length;++s){let o=t(s);for(let i=0;i<n[s].length;++i)yield o(i);}}at(e){let{children:t,getFactory:n,numRows:s}=this;if(e<0||e>=s)return null;let[{offsets:o}]=t,i=ue(o,e)-1;return n(i)(e-o[i])}get(e){return this.at(e)}};function Mn(r,e){return e!=null&&e!==r.name?{...r,name:e}:r}function ye(r,e={}){let{typeId:t,bitWidth:n,mode:s,precision:o,unit:i}=r,{useBigInt:a,useDate:c,useDecimalInt:l,useMap:d,useProxy:f}=e;switch(t){case u.Null:return he;case u.Bool:return ot;case u.Int:case u.Time:case u.Duration:return a||n<64?D:F;case u.Float:return o?D:st;case u.Date:return un(i===A.DAY?lt:nn,c&&Le);case u.Timestamp:return un(i===E.SECOND?dt:i===E.MILLISECOND?sn:i===E.MICROSECOND?ft:mt,c&&Le);case u.Decimal:return n===32?l?D:it:l?ut:ct;case u.Interval:return i===x.DAY_TIME?pt:i===x.YEAR_MONTH?D:ht;case u.FixedSizeBinary:return St;case u.Utf8:return It;case u.LargeUtf8:return gt;case u.Binary:return bt;case u.LargeBinary:return yt;case u.BinaryView:return Dt;case u.Utf8View:return Pt;case u.List:return Et;case u.LargeList:return Rt;case u.Map:return d?Ot:Ft;case u.ListView:return Tt;case u.LargeListView:return _t;case u.FixedSizeList:return wt;case u.Struct:return f?Ct:Pe;case u.RunEndEncoded:return vt;case u.Dictionary:return Nt;case u.Union:return s?At:De}throw new Error(v(t))}function un(r,e){return e?class extends e{constructor(n){super(new r(n));}}:r}function ke(r,e,t){r[e]=t,r[e+1]=t>>8,r[e+2]=t>>16,r[e+3]=t>>24;}function Ir(r,e,t){let n=BigInt(t);ke(r,e+4,Number(BigInt.asIntN(32,n>>BigInt(32)))),ke(r,e+0,Number(BigInt.asIntN(32,n)));}var kt=1024,Mt=class{constructor(e){this.sink=e,this.minalign=1,this.buf=new Uint8Array(kt),this.space=kt,this.vtables=[],this.outputBytes=0;}offset(){return this.buf.length-this.space}writeInt8(e){this.buf[this.space-=1]=e;}writeInt16(e){this.buf[this.space-=2]=e,this.buf[this.space+1]=e>>8;}writeInt32(e){ke(this.buf,this.space-=4,e);}writeInt64(e){Ir(this.buf,this.space-=8,e);}addInt8(e){q(this,1,0),this.writeInt8(e);}addInt16(e){q(this,2,0),this.writeInt16(e);}addInt32(e){q(this,4,0),this.writeInt32(e);}addInt64(e){q(this,8,0),this.writeInt64(e);}addOffset(e){q(this,$,0),this.writeInt32(this.offset()-e+$);}addObject(e,t){let n=Un(this,e);return t?.(n),n.finish()}addVector(e,t,n,s){let o=e?.length;if(!o)return 0;q(this,$,t*o),q(this,n,t*o);for(let i=o;--i>=0;)s(this,e[i]);return this.writeInt32(o),this.offset()}addOffsetVector(e){return this.addVector(e,4,4,(t,n)=>t.addOffset(n))}addString(e){if(e==null)return 0;let t=et(e),n=t.length;return this.addInt8(0),q(this,$,n),this.buf.set(t,this.space-=n),this.writeInt32(n),this.offset()}finish(e){q(this,this.minalign,$),this.addOffset(e);}flush(){let{buf:e,sink:t}=this,n=e.subarray(this.space,e.length);t.write(n),this.outputBytes+=n.byteLength,this.minalign=1,this.vtables=[],this.buf=new Uint8Array(kt),this.space=kt;}addBuffer(e){let t=e.byteLength;if(!t)return 0;this.sink.write(e),this.outputBytes+=t;let n=(t+7&-8)-t;return this.addPadding(n),t+n}addPadding(e){e>0&&(this.sink.write(new Uint8Array(e)),this.outputBytes+=e);}};function q(r,e,t){let{buf:n,space:s,minalign:o}=r;e>o&&(r.minalign=e);let i=n.length,a=i-s+t,c=~a+1&e-1;n=Qe(n,a+c+e-1,true),s+=n.length-i;for(let l=0;l<c;++l)n[--s]=0;r.buf=n,r.space=s;}function Un(r,e){let t=Array(e).fill(0),n=r.offset();function s(o){t[o]=r.offset();}return {addInt8(o,i,a){i!=a&&(r.addInt8(i),s(o));},addInt16(o,i,a){i!=a&&(r.addInt16(i),s(o));},addInt32(o,i,a){i!=a&&(r.addInt32(i),s(o));},addInt64(o,i,a){i!=a&&(r.addInt64(i),s(o));},addOffset(o,i,a){i!=a&&(r.addOffset(i),s(o));},finish(){r.addInt32(0);let o=r.offset(),i=e;for(;--i>=0&&t[i]===0;);let a=i+1;for(;i>=0;--i)r.addInt16(t[i]?o-t[i]:0);let c=2;r.addInt16(o-n);let l=(a+c)*tt;r.addInt16(l);let d=0,{buf:f,vtables:p,space:m}=r;e:for(i=0;i<p.length;++i){let R=f.length-p[i];if(l==Y(f,R)){for(let O=tt;O<l;O+=tt)if(Y(f,m+O)!=Y(f,R+O))continue e;d=p[i];break}}if(d)r.space=f.length-o,ke(f,r.space,d-o);else {let R=r.offset();p.push(R),ke(f,f.length-o,R-o);}return o}}}var Bn=-1,ln=8;function gr(r){return `Missing compression codec "${_e(oe,r)}" (id ${r})`}var qn=new Map;function Ut(r){return r!=null&&qn.get(r)||null}function dn(r,e){let t=e.encode(r),n=t.length<r.length,s=n?t:r,o=new Uint8Array(ln+s.length);return Ir(o,0,n?r.length:Bn),o.set(s,ln),o}function qt(r,e,t){let{nodes:n,regions:s,variadic:o}=e,i=r.addVector(n,16,8,(l,d)=>(l.writeInt64(d.nullCount),l.writeInt64(d.length),l.offset())),a=r.addVector(s,16,8,(l,d)=>(l.writeInt64(d.length),l.writeInt64(d.offset),l.offset())),c=r.addVector(o,8,8,(l,d)=>l.addInt64(d));return r.addObject(5,l=>{l.addInt64(0,n[0].length,0),l.addOffset(1,i,0),l.addOffset(2,a,0),l.addOffset(3,ss(r,t),0),l.addOffset(4,c,0);})}function ss(r,e){if(!e)return 0;let{codec:t,method:n}=e;return r.addObject(2,s=>{s.addInt8(0,t,oe.LZ4_FRAME),s.addInt8(1,n,ie.BUFFER);})}function pn(r,e,t){let n=qt(r,e.data,t);return r.addObject(3,s=>{s.addInt64(0,e.id,0),s.addOffset(1,n,0),s.addInt8(2,+e.isDelta,0);})}function Me(r,e){return e?.size>0?r.addOffsetVector(Array.from(e,([t,n])=>{let s=r.addString(`${t}`),o=r.addString(`${n}`);return r.addObject(2,i=>{i.addOffset(0,s,0),i.addOffset(1,o,0);})})):0}function Ue(r,e){switch(j(e.typeId,u,v)){case u.Dictionary:return bs(r,e);case u.Int:return ls(r,e);case u.Float:return us(r,e);case u.Decimal:return is(r,e);case u.Date:return os(r,e);case u.Time:return ms(r,e);case u.Timestamp:return ps(r,e);case u.Interval:return ds(r,e);case u.Duration:return as(r,e);case u.FixedSizeBinary:case u.FixedSizeList:return cs(r,e);case u.Map:return fs(r,e);case u.Union:return hs(r,e)}return r.addObject(0)}function os(r,e){return r.addObject(1,t=>{t.addInt16(0,e.unit,A.MILLISECOND);})}function is(r,e){return r.addObject(3,t=>{t.addInt32(0,e.precision,0),t.addInt32(1,e.scale,0),t.addInt32(2,e.bitWidth,128);})}function as(r,e){return r.addObject(1,t=>{t.addInt16(0,e.unit,E.MILLISECOND);})}function cs(r,e){return r.addObject(1,t=>{t.addInt32(0,e.stride,0);})}function us(r,e){return r.addObject(1,t=>{t.addInt16(0,e.precision,G.HALF);})}function ls(r,e){return r.addObject(2,t=>{t.addInt32(0,e.bitWidth,0),t.addInt8(1,+e.signed,0);})}function ds(r,e){return r.addObject(1,t=>{t.addInt16(0,e.unit,x.YEAR_MONTH);})}function fs(r,e){return r.addObject(1,t=>{t.addInt8(0,+e.keysSorted,0);})}function ms(r,e){return r.addObject(2,t=>{t.addInt16(0,e.unit,E.MILLISECOND),t.addInt32(1,e.bitWidth,32);})}function ps(r,e){let t=r.addString(e.timezone);return r.addObject(2,n=>{n.addInt16(0,e.unit,E.SECOND),n.addOffset(1,t,0);})}function hs(r,e){let t=r.addVector(e.typeIds,4,4,(n,s)=>n.addInt32(s));return r.addObject(2,n=>{n.addInt16(0,e.mode,H.Sparse),n.addOffset(1,t,0);})}function bs(r,e){return r.addObject(4,t=>{t.addInt64(0,e.id,0),t.addOffset(1,Ue(r,e.indices),0),t.addInt8(2,+e.ordered,0);})}var ys=new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;function Vt(r,e){let{fields:t,metadata:n}=e,s=t.map(a=>hn(r,a)),o=r.addOffsetVector(s),i=Me(r,n);return r.addObject(4,a=>{a.addInt16(0,+!ys,0),a.addOffset(1,o,0),a.addOffset(2,i,0);})}function hn(r,e){let{name:t,nullable:n,type:s,metadata:o}=e,{typeId:i}=s,a=0,c=0;if(i!==u.Dictionary)a=Ue(r,s);else {let m=s.dictionary;i=m.typeId,c=Ue(r,s),a=Ue(r,m);}let l=(s.children||[]).map(m=>hn(r,m)),d=r.addOffsetVector(l),f=Me(r,o),p=r.addString(t);return r.addObject(7,m=>{m.addOffset(0,p,0),m.addInt8(1,+n,0),m.addInt8(2,i,u.NONE),m.addOffset(3,a,0),m.addOffset(4,c,0),m.addOffset(5,d,0),m.addOffset(6,f,0);})}function yn(r,e,t,n,s){let o=Me(r,s),i=r.addVector(n,24,8,bn),a=r.addVector(t,24,8,bn),c=Vt(r,e);r.finish(r.addObject(5,d=>{d.addInt16(0,T.V5,T.V1),d.addOffset(1,c,0),d.addOffset(2,a,0),d.addOffset(3,i,0),d.addOffset(4,o,0);}));let l=r.offset();r.addInt32(0),r.addInt32(-1),r.flush(),r.sink.write(new Uint8Array(Int32Array.of(l).buffer)),r.sink.write(ge);}function bn(r,{offset:e,metadataLength:t,bodyLength:n}){return r.writeInt64(n),r.writeInt32(0),r.writeInt32(t),r.writeInt64(e),r.offset()}function Gt(r,e,t,n,s){r.finish(r.addObject(5,c=>{c.addInt16(0,T.V5,T.V1),c.addInt8(1,e,V.NONE),c.addOffset(2,t,0),c.addInt64(3,n,0);}));let o=8,i=r.offset(),a=i+o+7&-8;s?.push({offset:r.outputBytes,metadataLength:a,bodyLength:n}),r.addInt32(a-o),r.addInt32(-1),r.flush(),r.addPadding(a-i-o);}var Rr=class{write(e){}pad(e){this.write(new Uint8Array(e));}finish(){return null}},Ht=class extends Rr{constructor(){super(),this.buffers=[];}write(e){this.buffers.push(e);}finish(){let e=this.buffers,t=e.reduce((s,o)=>s+o.byteLength,0),n=new Uint8Array(t);for(let s=0,o=0;s<e.length;++s)n.set(e[s],o),o+=e[s].byteLength;return n}};var In="stream",gn="file";function Rn(r,{sink:e,format:t=In,codec:n}={}){if(t!==In&&t!==gn)throw new Error(`Unrecognized Arrow IPC format: ${t}`);let{schema:s,dictionaries:o=[],records:i=[],metadata:a}=r,c=new Mt(e||new Ht),l=t===gn,d=[],f=[],p=n!=null?{codec:n,method:ie.BUFFER}:null;l&&c.addBuffer(ge),s&&Gt(c,V.Schema,Vt(c,s),0);for(let m of o){let{data:R}=m;Gt(c,V.DictionaryBatch,pn(c,m,p),R.byteLength,d),En(c,R.buffers);}for(let m of i)Gt(c,V.RecordBatch,qt(c,m,p),m.byteLength,f),En(c,m.buffers);return c.addBuffer(Lr),l&&yn(c,s,d,f,a),c.sink}function En(r,e){for(let t=0;t<e.length;++t)r.addBuffer(e[t]);}function _r(r,e){typeof e=="string"&&(e={format:e});let t=e?.codec,n=Ut(t);if(t!=null&&!n)throw new Error(gr(t));let s=r.children;Is(s);let{dictionaries:o,idMap:i}=Es(s,n),a=Ts(s,n),l={schema:Rs(r.schema,i),dictionaries:o,records:a};return Rn(l,{...e,codec:t}).finish()}function Is(r){let e=r[0]?.data.map(t=>t.length);r.forEach(({data:t})=>{if(t.length!==e.length||t.some((n,s)=>n.length!==e[s]))throw new Error("Columns have inconsistent batch sizes.")});}function gs(r){let e=0,t=[],n=[],s=[],o=[];return {node(i,a){t.push({length:i,nullCount:a});},buffer(i){let a=new Uint8Array(i.buffer,i.byteOffset,i.byteLength),c=r?dn(a,r):a,l=c.byteLength;n.push({offset:e,length:l}),s.push(c),e+=l+7&-8;},variadic(i){o.push(i);},children(i,a){i.children.forEach((c,l)=>{_n(c.type,a.children[l],this);});},done(){return {byteLength:e,nodes:t,regions:n,variadic:o,buffers:s}}}}function Es(r,e){let t=[],n=new Map,s=new Map,o=-1,i=a=>{if(n.has(a))s.set(a.type,n.get(a));else {n.set(a,++o);for(let c=0;c<a.data.length;++c)t.push({id:o,isDelta:c>0,data:Tn([a],c,e)});s.set(a.type,o);}};return r.forEach(a=>Tr(a.data[0],i)),{dictionaries:t,idMap:s}}function Tr(r,e){if(r?.type.typeId===u.Dictionary){let t=r.dictionary;e(t),Tr(t.data[0],e);}r?.children?.forEach(t=>Tr(t,e));}function Rs(r,e){if(!e.size)return r;let t=o=>{o.typeId===u.Dictionary&&(o.id=e.get(o.dictionary),s(o)),o.children&&(o.children=o.children.slice()).forEach(n);},n=(o,i,a)=>{let c={...o.type};a[i]={...o,type:c},t(c);},s=o=>{let i={...o.dictionary};o.dictionary=i,t(i);};return r={...r,fields:r.fields.slice()},r.fields.forEach(n),r}function Ts(r,e){return (r[0]?.data||[]).map((t,n)=>Tn(r,n,e))}function Tn(r,e=0,t){let n=gs(t);return r.forEach(s=>{_n(s.type,s.data[e],n);}),n.done()}function _n(r,e,t){let{typeId:n}=r;if(t.node(e.length,e.nullCount),n!==u.Null)switch(n){case u.Bool:case u.Int:case u.Time:case u.Duration:case u.Float:case u.Date:case u.Timestamp:case u.Decimal:case u.Interval:case u.FixedSizeBinary:case u.Dictionary:t.buffer(e.validity),t.buffer(e.values);return;case u.Utf8:case u.LargeUtf8:case u.Binary:case u.LargeBinary:t.buffer(e.validity),t.buffer(e.offsets),t.buffer(e.values);return;case u.BinaryView:case u.Utf8View:t.buffer(e.validity),t.buffer(e.values),t.variadic(e.data.length),e.data.forEach(s=>t.buffer(s));return;case u.List:case u.LargeList:case u.Map:t.buffer(e.validity),t.buffer(e.offsets),t.children(r,e);return;case u.ListView:case u.LargeListView:t.buffer(e.validity),t.buffer(e.offsets),t.buffer(e.sizes),t.children(r,e);return;case u.FixedSizeList:case u.Struct:t.buffer(e.validity),t.children(r,e);return;case u.RunEndEncoded:t.children(r,e);return;case u.Union:{t.buffer(e.typeIds),r.mode===H.Dense&&t.buffer(e.offsets),t.children(r,e);return}default:throw new Error(v(n))}}function g(r){return new jt(r)}var jt=class{constructor(e=C){this.buf=new e(512);}array(e){return Pr(this.buf,e)}prep(e){e>=this.buf.length&&(this.buf=Qe(this.buf,e));}get(e){return this.buf[e]}set(e,t){this.prep(t),this.buf[t]=e;}write(e,t){this.prep(t+e.length),this.buf.set(e,t);}};function Qt(){return new xr}var xr=class extends jt{set(e){let t=e>>3;this.prep(t),this.buf[t]|=1<<e%8;}};var K=class{constructor(e,t){this.type=e,this.ctx=t,this.batchClass=t.batchType(e);}init(){return this.index=-1,this}set(e,t){return this.index=t,false}done(){return null}batch(){let e=new this.batchClass(this.done());return this.init(),e}};var I=class extends K{constructor(e,t){super(e,t);}init(){return this.nullCount=0,this.validity=Qt(),super.init()}set(e,t){this.index=t;let n=e!=null;return n?this.validity.set(t):this.nullCount++,n}done(){let{index:e,nullCount:t,type:n,validity:s}=this;return {length:e+1,nullCount:t,type:n,validity:t?s.array((e>>3)+1):new C(0)}}};function Be(){let r=new Map,e=new Set;return {get(t,n){let s=t.id;if(s>=0&&r.has(s))return r.get(s);{let o=_s(t,n);return s>=0&&r.set(s,o),e.add(o),o}},finish(t){e.forEach(n=>n.finish(t));}}}function _s(r,e){let t=Object.create(null),n=e.builder(r.dictionary),s=[];n.init();let o=-1;return {type:r,values:n,add(i){return s.push(i),i},key(i){let a=me(i),c=t[a];return c===void 0&&(t[a]=c=++o,n.set(i,c)),c},finish(i){let a=r.dictionary,c=new(ye(a,i))(n.done()),l=new B([c]);s.forEach(d=>d.setDictionary(l));}}}var $t=class extends I{constructor(e,t){super(e,t),this.dict=t.dictionary(e);}init(){return this.values=g(this.type.indices.values),super.init()}set(e,t){super.set(e,t)&&this.values.set(this.dict.key(e),t);}done(){return {...super.done(),values:this.values.array(this.index+1)}}batch(){return this.dict.add(super.batch())}};function xn(r){let e=Sr();return r(t=>e.add(t)),e.type()}function Sr(){let r=0,e=0,t=0,n=0,s=0,o=0,i=0,a=0,c=0,l=0,d=0,f=1/0,p=-1/0,m=1/0,R=-1/0,O,Ge,ur,lr={};return {add(h){if(r++,h==null){e++;return}switch(typeof h){case "string":c++;break;case "number":n++,h<f&&(f=h),h>p&&(p=h),Number.isInteger(h)&&s++;break;case "bigint":o++,O===void 0?O=Ge=h:(h<O&&(O=h),h>Ge&&(Ge=h));break;case "boolean":t++;break;case "object":if(h instanceof Date)i++,+h%864e5===0&&a++;else if(je(h)){l++;let _=h.length;_<m&&(m=_),_>R&&(R=_),ur??=Sr(),h.forEach(ur.add);}else {d++;for(let _ in h)(lr[_]??(lr[_]=Sr())).add(h[_]);}}},type(){let h=r-e;return h===0?hr():s===h?Ss(f,p):n===h?Q():o===h?ws(O,Ge):t===h?Ae():a===h?Ce():i===h?le():c===h?$e(te()):l===h?xs(ur.type(),m,R):d===h?Ke(Object.entries(lr).map(_=>J(_[0],_[1].type()))):Fs()}}}function xs(r,e,t){return t===e?We(r,e):ze(r)}function Ss(r,e){let t=Math.max(Math.abs(r)-1,e);return t<128?X():t<32768?Z():t<2**31?U():Q()}function ws(r,e){let t=-r>e?-r-1n:e;if(t>=2**63)throw new Error(`BigInt exceeds 64 bits: ${t}`);return ee()}function Fs(){throw new Error("Mixed types detected, please define a union type.")}var Ie=class extends I{constructor(e,t){super(e,t),this.toOffset=Xe(e.offsets);}init(){return this.offsets=g(this.type.offsets),this.values=g(),this.pos=0,super.init()}set(e,t){let{offsets:n,values:s,toOffset:o}=this;super.set(e,t)&&(s.write(e,this.pos),this.pos+=e.length),n.set(o(this.pos),t+1);}done(){return {...super.done(),offsets:this.offsets.array(this.index+2),values:this.values.array(this.pos+1)}}};var Yt=class extends I{constructor(e,t){super(e,t);}init(){return this.values=Qt(),super.init()}set(e,t){super.set(e,t),e&&this.values.set(t);}done(){return {...super.done(),values:this.values.array((this.index>>3)+1)}}};var zt=class extends I{constructor(e,t){super(e,t),this.scale=10**e.scale,this.stride=e.bitWidth>>6;}init(){return this.values=g(this.type.values),super.init()}set(e,t){let{scale:n,stride:s,values:o}=this;super.set(e,t)&&(o.prep((t+1)*s),Kr(e,o.buf,t*s,s,n));}done(){let{index:e,stride:t,values:n}=this;return {...super.done(),values:n.array((e+1)*t)}}};var Kt=class extends I{constructor(e,t){super(e,t),this.stride=e.stride;}init(){return this.values=g(),super.init()}set(e,t){super.set(e,t)&&this.values.write(e,t*this.stride);}done(){let{stride:e,values:t}=this;return {...super.done(),values:t.array(e*(this.index+1))}}};var Wt=class extends I{constructor(e,t){super(e,t),this.child=t.builder(this.type.children[0].type),this.stride=e.stride;}init(){return this.child.init(),super.init()}set(e,t){let{child:n,stride:s}=this,o=t*s;if(super.set(e,t))for(let i=0;i<s;++i)n.set(e[i],o+i);else n.index=o+s;}done(){let{child:e}=this;return {...super.done(),children:[e.batch()]}}};var Jt=class extends I{init(){return this.values=g(this.type.values),super.init()}set(e,t){if(super.set(e,t)){let n=t<<1;this.values.set(e[0],n),this.values.set(e[1],n+1);}}done(){return {...super.done(),values:this.values.array(this.index+1<<1)}}},Xt=class extends I{init(){return this.values=g(),super.init()}set(e,t){super.set(e,t)&&this.values.write(Yr(e),t<<4);}done(){return {...super.done(),values:this.values.array(this.index+1<<4)}}};var qe=class extends I{constructor(e,t,n){super(e,t),this.child=n;}init(){this.child.init();let e=this.type.offsets;return this.offsets=g(e),this.toOffset=Xe(e),this.pos=0,super.init()}done(){return {...super.done(),offsets:this.offsets.array(this.index+2),children:[this.child.batch()]}}},Zt=class extends qe{constructor(e,t){super(e,t,t.builder(e.children[0].type));}set(e,t){let{child:n,offsets:s,toOffset:o}=this;super.set(e,t)&&e.forEach(i=>n.set(i,this.pos++)),s.set(o(this.pos),t+1);}};var Ve=class extends I{constructor(e,t){super(e,t),this.children=e.children.map(n=>t.builder(n.type));}init(){return this.children.forEach(e=>e.init()),super.init()}done(){let{children:e}=this;return e.forEach(t=>t.index=this.index),{...super.done(),children:e.map(t=>t.batch())}}},er=class extends Ve{constructor(e,t){super(e,t),this.setters=this.children.map((n,s)=>{let o=e.children[s].name;return (i,a)=>n.set(i?.[o],a)});}set(e,t){super.set(e,t);let n=this.setters;for(let s=0;s<n.length;++s)n[s](e,t);}};var tr=class extends qe{constructor(e,t){super(e,t,new wr(e.children[0].type,t));}set(e,t){let{child:n,offsets:s,toOffset:o}=this;if(super.set(e,t))for(let i of e)n.set(i,this.pos++);s.set(o(this.pos),t+1);}},wr=class extends Ve{set(e,t){super.set(e,t);let[n,s]=this.children;n.set(e[0],t),s.set(e[1],t);}};var Os={},rr=class extends K{constructor(e,t){super(e,t),this.children=e.children.map(n=>t.builder(n.type));}init(){return this.pos=0,this.key=null,this.value=Os,this.children.forEach(e=>e.init()),super.init()}next(){let[e,t]=this.children;e.set(this.index+1,this.pos),t.set(this.value,this.pos++);}set(e,t){if(e!==this.value){let n=me(e);n!==this.key&&(this.key&&this.next(),this.key=n,this.value=e);}this.index=t;}done(){this.next();let{children:e,index:t,type:n}=this;return {length:t+1,nullCount:0,type:n,children:e.map(s=>s.batch())}}};var nr=class extends K{constructor(e,t){super(e,t),this.children=e.children.map(n=>t.builder(n.type)),this.typeMap=e.typeMap,this.lookup=e.typeIdForValue;}init(){return this.nullCount=0,this.typeIds=g(ae),this.children.forEach(e=>e.init()),super.init()}set(e,t){let{children:n,lookup:s,typeMap:o,typeIds:i}=this;this.index=t;let a=s(e,t),c=n[o[a]];i.set(a,t),e==null&&++this.nullCount,this.update(e,t,c);}done(){let{children:e,nullCount:t,type:n,typeIds:s}=this,o=this.index+1;return {length:o,nullCount:t,type:n,typeIds:s.array(o),children:e.map(i=>i.batch())}}},sr=class extends nr{update(e,t,n){n.set(e,t),this.children.forEach(s=>{s!==n&&s.set(null,t);});}},or=class extends nr{init(){return this.offsets=g(this.type.offsets),super.init()}update(e,t,n){let s=n.index+1;n.set(e,s),this.offsets.set(s,t);}done(){return {...super.done(),offsets:this.offsets.array(this.index+1)}}};var ir=class extends Ie{set(e,t){super.set(e&&et(e),t);}};var W=class extends I{constructor(e,t){super(e,t),this.values=g(e.values);}init(){return this.values=g(this.type.values),super.init()}set(e,t){super.set(e,t)&&this.values.set(e,t);}done(){return {...super.done(),values:this.values.array(this.index+1)}}},ar=class extends W{set(e,t){super.set(e==null?e:S(e),t);}},se=class extends W{constructor(e,t,n){super(e,t),this.transform=n;}set(e,t){super.set(e==null?e:this.transform(e),t);}};function Fr(r={},e=Be()){return {batchType:t=>ye(t,r),builder(t){return Or(t,this)},dictionary(t){return e.get(t,this)},finish:()=>e.finish(r)}}function Or(r,e=Fr()){let{typeId:t}=r;switch(t){case u.Int:case u.Time:case u.Duration:return ce(r.values)?new ar(r,e):new W(r,e);case u.Float:return r.precision?new W(r,e):new se(r,e,Zr);case u.Binary:case u.LargeBinary:return new Ie(r,e);case u.Utf8:case u.LargeUtf8:return new ir(r,e);case u.Bool:return new Yt(r,e);case u.Decimal:return r.bitWidth===32?new se(r,e,zr(r.scale)):new zt(r,e);case u.Date:return new se(r,e,r.unit?S:Qr);case u.Timestamp:return new se(r,e,$r(r.unit));case u.Interval:switch(r.unit){case x.DAY_TIME:return new Jt(r,e);case x.MONTH_DAY_NANO:return new Xt(r,e)}return new W(r,e);case u.List:case u.LargeList:return new Zt(r,e);case u.Struct:return new er(r,e);case u.Union:return r.mode?new or(r,e):new sr(r,e);case u.FixedSizeBinary:return new Kt(r,e);case u.FixedSizeList:return new Wt(r,e);case u.Map:return new tr(r,e);case u.RunEndEncoded:return new rr(r,e);case u.Dictionary:return new $t(r,e)}throw new Error(v(t))}function Ar(r,e,t={},n){let s=Ur(r)?c=>{for(let l of r)c(l);}:r;e??=xn(s);let{maxBatchRows:o=1/0,...i}=t,a;if(e.typeId===u.Null){let c=0;s(()=>++c),a=As(e,c,o);}else {let c=Fr(i,n),l=Or(e,c).init(),d=p=>a.push(p.batch());a=[];let f=0;s(p=>{l.set(p,f++),f>=o&&(d(l),f=0);}),f&&d(l),c.finish();}return new B(a,e)}function As(r,e,t){let n=[],s=a=>new he({length:a,nullCount:a,type:r}),o=Math.floor(e/t);for(let a=0;a<o;++a)n.push(s(t));let i=e%t;return i&&n.push(s(i)),n}function Cr(r,e,t={},n){return !e&&mr(r)?Cs(r,t):Ar(s=>r.forEach(s),e,t,n)}function Cs(r,{maxBatchRows:e,useBigInt:t}){let n=r.constructor,s=vs(n),o=r.length,i=Math.min(e||1/0,o),a=Math.floor(o/i),c=[],l=ce(n)&&!t?F:D,d=(p,m)=>c.push(new l({length:m-p,nullCount:0,type:s,validity:new C(0),values:r.subarray(p,m)})),f=0;for(let p=0;p<a;++p)d(f,f+=i);return f<o&&d(f,o),new B(c)}function vs(r){switch(r){case He:return Oe();case M:return Q();case ae:return X();case fr:return Z();case P:return U();case k:return ee();case C:return xe();case Ee:return Se();case Re:return we();case Te:return Fe()}}function vr(r,e){let t=[],n=Array.isArray(r)?r:Object.entries(r),s=n[0]?.[1].length,o=n.map(([a,c])=>{if(c.length!==s)throw new Error("All columns must have the same length.");return t.push(J(a,c.type)),c}),i={version:T.V5,endianness:dr.Little,fields:t,metadata:null};return new be(i,o,e)}function Nr(r,e={}){let{types:t={},...n}=e,s=Be(),i=(Array.isArray(r)?r:Object.entries(r)).map(([a,c])=>[a,Cr(c,t[a],n,s)]);return vr(i,e.useProxy)}var b={BOOLEAN:1,TINYINT:2,SMALLINT:3,INTEGER:4,BIGINT:5,UTINYINT:6,USMALLINT:7,UINTEGER:8,UBIGINT:9,FLOAT:10,DOUBLE:11,TIMESTAMP:12,DATE:13,VARCHAR:17,TIMESTAMP_TZ:31};var cr=class{module=null;dbPtr=0;connections=new Map;preparedStatements=new Map;streamingResults=new Map;nextConnectionId=1;nextPreparedStatementId=1;nextStreamingResultId=1;async onMessage(e){let t=e.data,{messageId:n,type:s,data:o}=t;try{switch(s){case "PING":this.postResponse(n,"OK",void 0);break;case "INSTANTIATE":await this.handleInstantiate(n,o);break;case "GET_VERSION":this.handleGetVersion(n);break;case "OPEN":this.handleOpen(n,o);break;case "CLOSE":this.handleClose(n);break;case "CONNECT":this.handleConnect(n);break;case "DISCONNECT":this.handleDisconnect(n,o);break;case "QUERY":this.handleQuery(n,o);break;case "QUERY_ARROW":this.handleQueryArrow(n,o);break;case "QUERY_STREAMING":this.handleQueryStreaming(n,o);break;case "EXECUTE":this.handleExecute(n,o);break;case "FETCH_CHUNK":this.handleFetchChunk(n,o);break;case "CLOSE_STREAMING_RESULT":this.handleCloseStreamingResult(n,o);break;case "PREPARE":this.handlePrepare(n,o);break;case "RUN_PREPARED":this.handleRunPrepared(n,o);break;case "EXECUTE_PREPARED":this.handleExecutePrepared(n,o);break;case "CLOSE_PREPARED":this.handleClosePrepared(n,o);break;case "BEGIN_TRANSACTION":this.handleBeginTransaction(n,o);break;case "COMMIT":this.handleCommit(n,o);break;case "ROLLBACK":this.handleRollback(n,o);break;case "REGISTER_FILE_URL":this.handleRegisterFileURL(n,o);break;case "REGISTER_FILE_BUFFER":this.handleRegisterFileBuffer(n,o);break;case "REGISTER_FILE_TEXT":this.handleRegisterFileText(n,o);break;case "DROP_FILE":this.handleDropFile(n,o);break;case "DROP_FILES":this.handleDropFiles(n);break;case "FLUSH_FILES":this.handleFlushFiles(n);break;case "COPY_FILE_TO_BUFFER":this.handleCopyFileToBuffer(n,o);break;case "COPY_FILE_TO_PATH":this.handleCopyFileToPath(n,o);break;case "GLOB_FILES":this.handleGlobFiles(n,o);break;case "INSERT_ARROW_FROM_IPC":this.handleInsertArrowFromIPC(n,o);break;case "INSERT_CSV_FROM_PATH":this.handleInsertCSVFromPath(n,o);break;case "INSERT_JSON_FROM_PATH":this.handleInsertJSONFromPath(n,o);break;default:this.postError(n,`Unknown request type: ${s}`);}}catch(i){let a=i instanceof Error?i.message:String(i);this.postError(n,a);}}postResponse(e,t,n,s){let o={messageId:e,requestId:e,type:t,data:n};s&&s.length>0?self.postMessage(o,{transfer:s}):self.postMessage(o);}postError(e,t,n,s){let o={message:t,code:n,query:s};this.postResponse(e,"ERROR",o);}postOK(e){this.postResponse(e,"OK",void 0);}getModule(){if(!this.module)throw new Error("DuckDB WASM module not initialized");return this.module}getConnectionPtr(e){let t=this.connections.get(e);if(!t)throw new Error(`Connection ${e} not found`);return t}async handleInstantiate(e,t){let n;if(globalThis.__DUCKDB_MODULE_FACTORY__)n=globalThis.__DUCKDB_MODULE_FACTORY__;else {if(!t.wasmJsUrl)throw new Error("wasmJsUrl is required for initialization");n=(await new Function("url","return import(url)")(t.wasmJsUrl)).default;}let s={},o=globalThis.__DUCKDB_WASM_MODULE__;o?s.instantiateWasm=(i,a)=>(WebAssembly.instantiate(o,i).then(c=>{a(c);}),{}):t.wasmUrl&&(s.locateFile=i=>i.endsWith(".wasm")?t.wasmUrl:i),this.module=await n(s),this.postOK(e);}handleGetVersion(e){let t=this.getModule(),n=t.ccall("duckdb_library_version","number",[],[]),s=t.UTF8ToString(n);this.postResponse(e,"VERSION",{version:s});}handleOpen(e,t){let n=this.getModule(),s=t?.config??{},o={accessMode:s.accessMode??"automatic",enableExternalAccess:s.enableExternalAccess??true,lockConfiguration:s.lockConfiguration??true,customConfig:s.customConfig??{}},i=n._malloc(4);if(n.ccall("duckdb_create_config","number",["number"],[i])!==0)throw n._free(i),new Error("Failed to create DuckDB configuration");let c=n.getValue(i,"i32");n._free(i);try{let l=(p,m)=>{if(n.ccall("duckdb_set_config","number",["number","string","string"],[c,p,m])!==0)throw new Error(`Failed to set config option: ${p}`)};o.accessMode!=="automatic"&&l("access_mode",o.accessMode),o.enableExternalAccess===!1&&l("enable_external_access","false");for(let[p,m]of Object.entries(o.customConfig))l(p,m);let d=n._malloc(4),f=n._malloc(4);try{if(n.ccall("duckdb_open_ext","number",["string","number","number","number"],[":memory:",d,c,f])!==0){let m=n.getValue(f,"i32"),R=m?n.UTF8ToString(m):"Unknown error";throw new Error(`Failed to open database: ${R}`)}this.dbPtr=n.getValue(d,"i32");}finally{n._free(d),n._free(f);}o.enableExternalAccess!==!1&&n.ccall("duckdb_wasm_httpfs_init",null,["number"],[this.dbPtr]),o.lockConfiguration!==!1&&this.executeSQLInternal("SET lock_configuration = true"),this.postOK(e);}finally{let l=n._malloc(4);n.setValue(l,c,"i32"),n.ccall("duckdb_destroy_config",null,["number"],[l]),n._free(l);}}executeSQLInternal(e){let t=this.getModule(),n=t._malloc(4);try{if(t.ccall("duckdb_connect","number",["number","number"],[this.dbPtr,n])!==0)return;let o=t.getValue(n,"i32"),i=t._malloc(64);try{t.ccall("duckdb_query","number",["number","string","number"],[o,e,i]),t.ccall("duckdb_destroy_result",null,["number"],[i]);}finally{t._free(i);}t.ccall("duckdb_disconnect",null,["number"],[n]);}finally{t._free(n);}}handleClose(e){let t=this.getModule();for(let[,n]of this.connections)t.ccall("duckdb_disconnect",null,["number"],[n]);this.connections.clear();for(let[,n]of this.preparedStatements){let s=t._malloc(4);try{t.setValue(s,n.stmtPtr,"i32"),t.ccall("duckdb_destroy_prepare",null,["number"],[s]);}finally{t._free(s);}}this.preparedStatements.clear();for(let[,n]of this.streamingResults)t.ccall("duckdb_destroy_result",null,["number"],[n.resultPtr]);if(this.streamingResults.clear(),this.dbPtr){let n=t._malloc(4);try{t.setValue(n,this.dbPtr,"*"),t.ccall("duckdb_close",null,["number"],[n]);}finally{t._free(n);}this.dbPtr=0;}this.postOK(e);}handleConnect(e){let t=this.getModule();if(!this.dbPtr)throw new Error("Database not opened");let n=t._malloc(4);try{if(t.ccall("duckdb_connect","number",["number","number"],[this.dbPtr,n])!==0)throw new Error("Failed to create connection");let o=t.getValue(n,"*"),i=this.nextConnectionId++;this.connections.set(i,o),this.postResponse(e,"CONNECTION_ID",{connectionId:i});}finally{t._free(n);}}handleDisconnect(e,t){let n=this.getModule(),s=this.getConnectionPtr(t.connectionId);n.ccall("duckdb_disconnect",null,["number"],[s]),this.connections.delete(t.connectionId),this.postOK(e);}handleQuery(e,t){let n=this.getModule(),s=this.getConnectionPtr(t.connectionId),o=n._malloc(64);try{if(n.ccall("duckdb_query","number",["number","string","number"],[s,t.sql,o])!==0){let d=n.ccall("duckdb_result_error","number",["number"],[o]),f=d?n.UTF8ToString(d):"Query failed";throw n.ccall("duckdb_destroy_result",null,["number"],[o]),new Error(f)}let{columns:a,rows:c}=this.extractQueryResult(n,o);n.ccall("duckdb_destroy_result",null,["number"],[o]);let l={columns:a,rows:c};this.postResponse(e,"QUERY_RESULT",l);}finally{n._free(o);}}handleQueryArrow(e,t){let n=this.getModule(),s=this.getConnectionPtr(t.connectionId),o=n._malloc(64);try{if(n.ccall("duckdb_query","number",["number","string","number"],[s,t.sql,o])!==0){let l=n.ccall("duckdb_result_error","number",["number"],[o]),d=l?n.UTF8ToString(l):"Query failed";throw n.ccall("duckdb_destroy_result",null,["number"],[o]),new Error(d)}let a=this.buildArrowTable(n,o);n.ccall("duckdb_destroy_result",null,["number"],[o]);let c=_r(a,{format:"stream"});if(!c)throw new Error("Failed to serialize Arrow table to IPC");this.postResponse(e,"ARROW_IPC",{ipcBuffer:c},[c.buffer]);}finally{n._free(o);}}handleQueryStreaming(e,t){let n=this.getModule(),s=this.getConnectionPtr(t.connectionId),o=n._malloc(64);try{if(n.ccall("duckdb_query","number",["number","string","number"],[s,t.sql,o])!==0){let d=n.ccall("duckdb_result_error","number",["number"],[o]),f=d?n.UTF8ToString(d):"Query failed";throw n.ccall("duckdb_destroy_result",null,["number"],[o]),new Error(f)}let a=this.getColumnInfo(n,o),c=this.nextStreamingResultId++;this.streamingResults.set(c,{resultPtr:o,connectionId:t.connectionId,columns:a,currentChunk:0});let l={streamingResultId:c,columns:a};this.postResponse(e,"STREAMING_RESULT_INFO",l);}catch(i){throw n._free(o),i}}handleExecute(e,t){let n=this.getModule(),s=this.getConnectionPtr(t.connectionId),o=n._malloc(64);try{if(n.ccall("duckdb_query","number",["number","string","number"],[s,t.sql,o])!==0){let c=n.ccall("duckdb_result_error","number",["number"],[o]),l=c?n.UTF8ToString(c):"Query failed";throw n.ccall("duckdb_destroy_result",null,["number"],[o]),new Error(l)}let a=n.ccall("duckdb_rows_changed","number",["number"],[o]);n.ccall("duckdb_destroy_result",null,["number"],[o]),this.postResponse(e,"ROWS_CHANGED",{rowsChanged:a});}finally{n._free(o);}}handleFetchChunk(e,t){let n=this.getModule(),s=this.streamingResults.get(t.streamingResultId);if(!s)throw new Error(`Streaming result ${t.streamingResultId} not found`);let o=2048,i=n.ccall("duckdb_row_count","number",["number"],[s.resultPtr]),a=s.currentChunk*o,c=Math.min(a+o,i),l=c-a,d=c>=i;if(l===0){let m={columns:s.columns,rows:[],rowCount:0,done:true};this.postResponse(e,"DATA_CHUNK",m);return}let f=this.extractRows(n,s.resultPtr,s.columns,a,c);s.currentChunk++;let p={columns:s.columns,rows:f,rowCount:l,done:d};this.postResponse(e,"DATA_CHUNK",p);}handleCloseStreamingResult(e,t){let n=this.getModule(),s=this.streamingResults.get(t.streamingResultId);s&&(n.ccall("duckdb_destroy_result",null,["number"],[s.resultPtr]),this.streamingResults.delete(t.streamingResultId)),this.postOK(e);}handlePrepare(e,t){let n=this.getModule(),s=this.getConnectionPtr(t.connectionId),o=n._malloc(4);try{if(n.ccall("duckdb_prepare","number",["number","string","number"],[s,t.sql,o])!==0){let l=n.getValue(o,"*");if(l){let d=n.ccall("duckdb_prepare_error","number",["number"],[l]),f=d?n.UTF8ToString(d):"Prepare failed";throw n.ccall("duckdb_destroy_prepare",null,["number"],[o]),new Error(f)}throw new Error("Prepare failed")}let a=n.getValue(o,"*"),c=this.nextPreparedStatementId++;this.preparedStatements.set(c,{stmtPtr:a,connectionId:t.connectionId,sql:t.sql}),this.postResponse(e,"PREPARED_STATEMENT_ID",{preparedStatementId:c});}finally{n._free(o);}}handleRunPrepared(e,t){let n=this.getModule(),s=this.preparedStatements.get(t.preparedStatementId);if(!s)throw new Error(`Prepared statement ${t.preparedStatementId} not found`);this.applyBindings(n,s.stmtPtr,t.bindings);let o=n._malloc(64);try{if(n.ccall("duckdb_execute_prepared","number",["number","number"],[s.stmtPtr,o])!==0){let d=n.ccall("duckdb_result_error","number",["number"],[o]),f=d?n.UTF8ToString(d):"Execute prepared failed";throw n.ccall("duckdb_destroy_result",null,["number"],[o]),new Error(f)}let{columns:a,rows:c}=this.extractQueryResult(n,o);n.ccall("duckdb_destroy_result",null,["number"],[o]);let l={columns:a,rows:c};this.postResponse(e,"QUERY_RESULT",l);}finally{n._free(o);}}handleExecutePrepared(e,t){let n=this.getModule(),s=this.preparedStatements.get(t.preparedStatementId);if(!s)throw new Error(`Prepared statement ${t.preparedStatementId} not found`);this.applyBindings(n,s.stmtPtr,t.bindings);let o=n._malloc(64);try{if(n.ccall("duckdb_execute_prepared","number",["number","number"],[s.stmtPtr,o])!==0){let c=n.ccall("duckdb_result_error","number",["number"],[o]),l=c?n.UTF8ToString(c):"Execute prepared failed";throw n.ccall("duckdb_destroy_result",null,["number"],[o]),new Error(l)}let a=n.ccall("duckdb_rows_changed","number",["number"],[o]);n.ccall("duckdb_destroy_result",null,["number"],[o]),this.postResponse(e,"ROWS_CHANGED",{rowsChanged:a});}finally{n._free(o);}}handleClosePrepared(e,t){let n=this.getModule(),s=this.preparedStatements.get(t.preparedStatementId);if(s){let o=n._malloc(4);try{n.setValue(o,s.stmtPtr,"i32"),n.ccall("duckdb_destroy_prepare",null,["number"],[o]);}finally{n._free(o);}this.preparedStatements.delete(t.preparedStatementId);}this.postOK(e);}applyBindings(e,t,n){for(let s of n){let{index:o,type:i,value:a}=s,c;switch(i){case "null":c=e.ccall("duckdb_bind_null","number",["number","number","number"],[t,o,0]);break;case "boolean":c=e.ccall("duckdb_bind_boolean","number",["number","number","number","number"],[t,o,0,a?1:0]);break;case "int8":case "int16":case "int32":case "uint8":case "uint16":case "uint32":c=e.ccall("duckdb_bind_int32","number",["number","number","number","number"],[t,o,0,a]);break;case "int64":case "uint64":{let l=BigInt(a),d=Number(l&BigInt(4294967295)),f=Number(l>>BigInt(32)&BigInt(4294967295));c=e.ccall("duckdb_bind_int64","number",["number","number","number","number","number"],[t,o,0,d,f]);break}case "float":c=e.ccall("duckdb_bind_float","number",["number","number","number","number"],[t,o,0,a]);break;case "double":c=e.ccall("duckdb_bind_double","number",["number","number","number","number"],[t,o,0,a]);break;case "varchar":c=e.ccall("duckdb_bind_varchar","number",["number","number","number","string"],[t,o,0,a]);break;case "blob":{let l=a,d=e._malloc(l.length);try{e.HEAPU8.set(l,d),c=e.ccall("duckdb_bind_blob","number",["number","number","number","number","number","number"],[t,o,0,d,l.length,0]);}finally{e._free(d);}break}default:throw new Error(`Unsupported binding type: ${i}`)}if(c!==0)throw new Error(`Failed to bind ${i} at index ${o}`)}}handleBeginTransaction(e,t){this.executeSQL(t.connectionId,"BEGIN TRANSACTION"),this.postOK(e);}handleCommit(e,t){this.executeSQL(t.connectionId,"COMMIT"),this.postOK(e);}handleRollback(e,t){this.executeSQL(t.connectionId,"ROLLBACK"),this.postOK(e);}executeSQL(e,t){let n=this.getModule(),s=this.getConnectionPtr(e),o=n._malloc(64);try{if(n.ccall("duckdb_query","number",["number","string","number"],[s,t,o])!==0){let a=n.ccall("duckdb_result_error","number",["number"],[o]),c=a?n.UTF8ToString(a):"Query failed";throw n.ccall("duckdb_destroy_result",null,["number"],[o]),new Error(c)}n.ccall("duckdb_destroy_result",null,["number"],[o]);}finally{n._free(o);}}handleRegisterFileURL(e,t){this.postOK(e);}handleRegisterFileBuffer(e,t){let n=this.getModule(),s=`/${t.name}`,o=s.split("/").filter(Boolean),i="";for(let a=0;a<o.length-1;a++){i+="/"+o[a];try{n.FS.mkdir(i);}catch{}}n.FS.writeFile(s,t.buffer),this.postOK(e);}handleRegisterFileText(e,t){let n=this.getModule(),s=`/${t.name}`,i=new TextEncoder().encode(t.text);n.FS.writeFile(s,i),this.postOK(e);}handleDropFile(e,t){let n=this.getModule();try{let s=`/${t.name}`;n.FS.unlink(s);}catch{}this.postOK(e);}handleDropFiles(e){this.postOK(e);}handleFlushFiles(e){this.postOK(e);}handleCopyFileToBuffer(e,t){let n=this.getModule(),s=`/${t.name}`,o=n.FS.readFile(s);this.postResponse(e,"FILE_BUFFER",{buffer:o},[o.buffer]);}handleCopyFileToPath(e,t){let n=this.getModule(),s=`/${t.srcName}`,o=`/${t.dstPath}`,i=n.FS.readFile(s);n.FS.writeFile(o,i),this.postOK(e);}handleGlobFiles(e,t){let n=this.getModule(),s=[];try{let o=n.FS.readdir("/"),i=t.pattern.replace(/\*/g,".*").replace(/\?/g,"."),a=new RegExp(`^${i}$`);for(let c of o)if(!(c==="."||c==="..")&&a.test(c))try{let l=n.FS.stat(`/${c}`);s.push({name:c,size:l.size});}catch{}}catch{}this.postResponse(e,"FILE_INFO_LIST",{files:s});}handleInsertArrowFromIPC(e,t){let n=this.getModule(),s=`/_temp_arrow_${Date.now()}.arrow`;n.FS.writeFile(s,t.ipcBuffer);try{this.executeSQL(t.connectionId,`CREATE TABLE IF NOT EXISTS "${t.tableName}" AS SELECT * FROM '${s}'`);}finally{try{n.FS.unlink(s);}catch{}}this.postOK(e);}handleInsertCSVFromPath(e,t){let n=`CREATE TABLE IF NOT EXISTS "${t.tableName}" AS SELECT * FROM read_csv('/${t.path}'`;if(t.options){let s=[];t.options.header!==void 0&&s.push(`header = ${t.options.header}`),t.options.delimiter&&s.push(`delim = '${t.options.delimiter}'`),t.options.quote&&s.push(`quote = '${t.options.quote}'`),t.options.escape&&s.push(`escape = '${t.options.escape}'`),t.options.skip&&s.push(`skip = ${t.options.skip}`),s.length>0&&(n+=`, ${s.join(", ")}`);}n+=")",this.executeSQL(t.connectionId,n),this.postOK(e);}handleInsertJSONFromPath(e,t){let n=`CREATE TABLE IF NOT EXISTS "${t.tableName}" AS SELECT * FROM read_json('/${t.path}'`;if(t.options){let s=[];t.options.format&&s.push(`format = '${t.options.format}'`),s.length>0&&(n+=`, ${s.join(", ")}`);}n+=")",this.executeSQL(t.connectionId,n),this.postOK(e);}getColumnInfo(e,t){let n=e.ccall("duckdb_column_count","number",["number"],[t]),s=[];for(let o=0;o<n;o++){let i=e.ccall("duckdb_column_name","number",["number","number"],[t,o]),a=e.ccall("duckdb_column_type","number",["number","number"],[t,o]);s.push({name:e.UTF8ToString(i),type:a});}return s}extractQueryResult(e,t){let n=this.getColumnInfo(e,t),s=e.ccall("duckdb_row_count","number",["number"],[t]),o=this.extractRows(e,t,n,0,s);return {columns:n,rows:o}}extractRows(e,t,n,s,o){let i=[],a=n.length;for(let c=s;c<o;c++){let l=[];for(let d=0;d<a;d++){let f=n[d];e.ccall("duckdb_value_is_null","number",["number","number","number","number","number"],[t,d,0,c,0])?l.push(null):l.push(this.extractValue(e,t,d,c,f.type));}i.push(l);}return i}extractValue(e,t,n,s,o){switch(o){case b.BOOLEAN:return e.ccall("duckdb_value_boolean","number",["number","number","number","number","number"],[t,n,0,s,0])!==0;case b.TINYINT:return e.ccall("duckdb_value_int8","number",["number","number","number","number","number"],[t,n,0,s,0]);case b.SMALLINT:return e.ccall("duckdb_value_int16","number",["number","number","number","number","number"],[t,n,0,s,0]);case b.INTEGER:return e.ccall("duckdb_value_int32","number",["number","number","number","number","number"],[t,n,0,s,0]);case b.BIGINT:{let i=e.ccall("duckdb_value_varchar","number",["number","number","number","number","number"],[t,n,0,s,0]);if(i){let a=e.UTF8ToString(i);e._free(i);let c=Number(a);return Number.isSafeInteger(c)?c:a}return null}case b.UTINYINT:return e.ccall("duckdb_value_uint8","number",["number","number","number","number","number"],[t,n,0,s,0]);case b.USMALLINT:return e.ccall("duckdb_value_uint16","number",["number","number","number","number","number"],[t,n,0,s,0]);case b.UINTEGER:return e.ccall("duckdb_value_uint32","number",["number","number","number","number","number"],[t,n,0,s,0])>>>0;case b.UBIGINT:{let i=e.ccall("duckdb_value_varchar","number",["number","number","number","number","number"],[t,n,0,s,0]);if(i){let a=e.UTF8ToString(i);e._free(i);let c=Number(a);return Number.isSafeInteger(c)?c:a}return null}case b.FLOAT:return e.ccall("duckdb_value_float","number",["number","number","number","number","number"],[t,n,0,s,0]);case b.DOUBLE:return e.ccall("duckdb_value_double","number",["number","number","number","number","number"],[t,n,0,s,0]);default:{let i=e.ccall("duckdb_value_varchar","number",["number","number","number","number","number"],[t,n,0,s,0]);if(i){let a=e.UTF8ToString(i);return e._free(i),a}return null}}}buildArrowTable(e,t){let n=this.getColumnInfo(e,t),s=e.ccall("duckdb_row_count","number",["number"],[t]),o=n.length,i={};for(let c=0;c<o;c++){let l=n[c],d=this.getFlechetteType(l.type),f=[];for(let p=0;p<s;p++)e.ccall("duckdb_value_is_null","number",["number","number","number","number","number"],[t,c,0,p,0])?f.push(null):f.push(this.extractValue(e,t,c,p,l.type));i[l.name]={type:d,values:f};}let a={};for(let[c,{values:l}]of Object.entries(i))a[c]=l;return Nr(a)}getFlechetteType(e){switch(e){case b.BOOLEAN:return Ae();case b.TINYINT:return X();case b.SMALLINT:return Z();case b.INTEGER:return U();case b.BIGINT:return ee();case b.UTINYINT:return xe();case b.USMALLINT:return Se();case b.UINTEGER:return we();case b.UBIGINT:return Fe();case b.FLOAT:return Oe();case b.DOUBLE:return Q();case b.VARCHAR:return te();case b.DATE:return Ce();case b.TIMESTAMP:case b.TIMESTAMP_TZ:return le(E.MICROSECOND);default:return te()}}};var Ns=new cr;self.onmessage=r=>{Ns.onMessage(r);};self.postMessage({type:"WORKER_READY"});//# sourceMappingURL=worker.js.map
2
+ var ge=Uint8Array.of(65,82,82,79,87,49),Lr=Uint8Array.of(255,255,255,255,0,0,0,0),_={V1:0,V5:4},dr={Little:0},V={NONE:0,Schema:1,DictionaryBatch:2,RecordBatch:3},u={Dictionary:-1,NONE:0,Null:1,Int:2,Float:3,Binary:4,Utf8:5,Bool:6,Decimal:7,Date:8,Time:9,Timestamp:10,Interval:11,List:12,Struct:13,Union:14,FixedSizeBinary:15,FixedSizeList:16,Map:17,Duration:18,LargeBinary:19,LargeUtf8:20,LargeList:21,RunEndEncoded:22,BinaryView:23,Utf8View:24,ListView:25,LargeListView:26},G={HALF:0,SINGLE:1,DOUBLE:2},A={DAY:0,MILLISECOND:1},E={SECOND:0,MILLISECOND:1,MICROSECOND:2,NANOSECOND:3},x={YEAR_MONTH:0,DAY_TIME:1,MONTH_DAY_NANO:2},H={Sparse:0,Dense:1},oe={LZ4_FRAME:0,ZSTD:1},ie={BUFFER:0};var C=Uint8Array,Ee=Uint16Array,Re=Uint32Array,_e=BigUint64Array,ae=Int8Array,fr=Int16Array,P=Int32Array,M=BigInt64Array,He=Float32Array,k=Float64Array;function Dr(r,e){let t=Math.log2(r)-3;return (e?[ae,fr,P,M]:[C,Ee,Re,_e])[t]}var Sn=Object.getPrototypeOf(Int8Array);function mr(r){return r instanceof Sn}function je(r){return Array.isArray(r)||mr(r)}function ce(r){return r===M||r===_e}function ue(r,e){let t=0,n=r.length;if(n<=2147483648)do{let s=t+n>>>1;r[s]<=e?t=s+1:n=s;}while(t<n);else do{let s=Math.trunc((t+n)/2);r[s]<=e?t=s+1:n=s;}while(t<n);return t}function wn(r,e=1){return (r*e+7&-8)/e}function Pr(r,e=r.length){let t=wn(e,r.BYTES_PER_ELEMENT);return r.length>t?r.subarray(0,t):r.length<t?Mr(r,t):r}function Mr(r,e,t=0){let n=new r.constructor(e);return n.set(r,t),n}function Qe(r,e,t){for(;r.length<=e;)r=Mr(r,r.length<<1,t?r.length:0);return r}function kr(r){return r instanceof Date}function Ur(r){return typeof r[Symbol.iterator]=="function"}function pr(r,e,t){if(e(r))return r;throw new Error(t(r))}function j(r,e,t){return e=Array.isArray(e)?e:Object.values(e),pr(r,n=>e.includes(n),t??(()=>`${r} must be one of ${e}`))}function Te(r,e){for(let[t,n]of Object.entries(r))if(n===e)return t;return "<Unknown>"}var v=r=>`Unsupported data type: "${Te(u,r)}" (id ${r})`,J=(r,e,t=true,n=null)=>({name:r,type:e,nullable:t,metadata:n});function Br(r){return Object.hasOwn(r,"name")&&qr(r.type)}function qr(r){return typeof r?.typeId=="number"}function Vr(r,e="",t=true){return Br(r)?r:J(e,pr(r,qr,()=>"Data type expected."),t)}var Gr=r=>({typeId:r}),$e=(r,e,t=false,n=-1)=>({typeId:u.Dictionary,id:n,dictionary:r,indices:e||U(),ordered:t}),hr=()=>Gr(u.Null),N=(r=32,e=true)=>({typeId:u.Int,bitWidth:j(r,[8,16,32,64]),signed:e,values:Dr(r,e)}),X=()=>N(8),Z=()=>N(16),U=()=>N(32),ee=()=>N(64),xe=()=>N(8,false),Se=()=>N(16,false),we=()=>N(32,false),Fe=()=>N(64,false),Ye=(r=2)=>({typeId:u.Float,precision:j(r,G),values:[Ee,He,k][r]});var Oe=()=>Ye(G.SINGLE),Q=()=>Ye(G.DOUBLE);var te=()=>({typeId:u.Utf8,offsets:P}),Ae=()=>Gr(u.Bool);var br=r=>({typeId:u.Date,unit:j(r,A),values:r===A.DAY?P:M}),Ce=()=>br(A.DAY);var le=(r=E.MILLISECOND,e=null)=>({typeId:u.Timestamp,unit:j(r,E),timezone:e,values:M});var ze=r=>({typeId:u.List,children:[Vr(r)],offsets:P}),Ke=r=>({typeId:u.Struct,children:Array.isArray(r)&&r.length>0&&Br(r[0])?r:Object.entries(r).map(([e,t])=>J(e,t))});var We=(r,e)=>({typeId:u.FixedSizeList,stride:e,children:[Vr(r)]});var jr=new k(2),Je=jr.buffer,Fn=new M(Je),de=new Re(Je),Hr=new P(Je),On=new C(Je);function An(r){return r}function S(r){return BigInt(r)}function Xe(r){return ce(r)?S:An}function Qr(r){return r/864e5|0}function $r(r){return r===E.SECOND?e=>S(e/1e3):r===E.MILLISECOND?S:r===E.MICROSECOND?e=>S(e*1e3):e=>S(e*1e6)}function Yr([r,e,t]){return Hr[0]=r,Hr[1]=e,Fn[1]=S(t),On}function L(r){if(r>Number.MAX_SAFE_INTEGER||r<Number.MIN_SAFE_INTEGER)throw Error(`BigInt exceeds integer number representation: ${r}`);return Number(r)}function Ze(r,e){return Number(r/e)+Number(r%e)/Number(e)}function zr(r){return e=>typeof e=="bigint"?Number(e):Math.trunc(e*r)}function Kr(r,e,t,n,s){let o=typeof r=="bigint"?r:S(Math.trunc(r*s));e[t]=o,n>1&&(e[t+1]=o>>64n,n>2&&(e[t+2]=o>>128n,e[t+3]=o>>192n));}var fe=r=>BigInt.asUintN(64,r);function Wr(r,e){return BigInt.asIntN(64,r[e])}function Jr(r,e){let t=e<<1,n;return BigInt.asIntN(64,r[t+1])<0?(n=fe(~r[t])|fe(~r[t+1])<<64n,n=-(n+1n)):n=r[t]|r[t+1]<<64n,n}function Xr(r,e){let t=e<<2,n;return BigInt.asIntN(64,r[t+3])<0?(n=fe(~r[t])|fe(~r[t+1])<<64n|fe(~r[t+2])<<128n|fe(~r[t+3])<<192n,n=-(n+1n)):n=r[t]|r[t+1]<<64n|r[t+2]<<128n|r[t+3]<<192n,n}function Zr(r){if(r!==r)return 32256;jr[0]=r;let e=(de[1]&2147483648)>>16&65535,t=de[1]&2146435072,n=0;return t>=1089470464?de[0]>0?t=31744:(t=(t&2080374784)>>16,n=(de[1]&1048575)>>10):t<=1056964608?(n=1048576+(de[1]&1048575),n=1048576+(n<<(t>>20)-998)>>21,t=0):(t=t-1056964608>>10,n=(de[1]&1048575)+512>>10),e|t|n&65535}var Cn=new TextDecoder("utf-8"),vn=new TextEncoder;function ve(r){return Cn.decode(r)}function et(r){return vn.encode(r)}function me(r){return `${typeof r!="object"||!r?r??null:kr(r)?+r:je(r)?`[${r.map(me)}]`:Nn(r)}`}function Nn(r){let e="",t=-1;for(let n in r)++t>0&&(e+=","),e+=`"${n}":${me(r[n])}`;return `{${e}}`}var $=4,tt=2;function yr(r,e){return (r[e>>3]&1<<e%8)!==0}function Y(r,e){return Ln(r,e)<<16>>16}function Ln(r,e){return r[e]|r[e+1]<<8}function w(r,e){return r[e]|r[e+1]<<8|r[e+2]<<16|r[e+3]<<24}function en(r,e){return w(r,e)>>>0}function z(r,e){return L(BigInt.asIntN(64,BigInt(en(r,e))+(BigInt(en(r,e+$))<<32n)))}var rt=Symbol("rowIndex");function Ne(r,e){class t{constructor(o){this[rt]=o;}toJSON(){return tn(r,e,this[rt])}}let n=t.prototype;for(let s=0;s<r.length;++s){if(Object.hasOwn(n,r[s]))continue;let o=e[s];Object.defineProperty(n,r[s],{get(){return o.at(this[rt])},enumerable:true});}return s=>new t(s)}function nt(r,e){return t=>tn(r,e,t)}function tn(r,e,t){let n={};for(let s=0;s<r.length;++s)n[r[s]]=e[s].at(t);return n}function rn(r){return r instanceof D}var re=class{static ArrayType=null;constructor({length:e,nullCount:t,type:n,validity:s,values:o,offsets:i,sizes:a,children:c}){this.length=e,this.nullCount=t,this.type=n,this.validity=s,this.values=o,this.offsets=i,this.sizes=a,this.children=c,(!t||!this.validity)&&(this.at=l=>this.value(l));}get[Symbol.toStringTag](){return "Batch"}at(e){return this.isValid(e)?this.value(e):null}isValid(e){return yr(this.validity,e)}value(e){return this.values[e]}slice(e,t){let n=t-e,s=Array(n);for(let o=0;o<n;++o)s[o]=this.at(e+o);return s}*[Symbol.iterator](){for(let e=0;e<this.length;++e)yield this.at(e);}},D=class extends re{constructor(e){super(e);let{length:t,values:n}=this;this.values=n.subarray(0,t);}slice(e,t){return this.nullCount?super.slice(e,t):this.values.subarray(e,t)}[Symbol.iterator](){return this.nullCount?super[Symbol.iterator]():this.values[Symbol.iterator]()}},pe=class extends re{static ArrayType=k},y=class extends re{static ArrayType=Array},he=class extends y{value(e){return null}},F=class extends pe{value(e){return L(this.values[e])}},st=class extends pe{value(e){let t=this.values[e],n=(t&31744)>>10,s=(t&1023)/1024,o=(-1)**((t&32768)>>15);switch(n){case 31:return o*(s?Number.NaN:1/0);case 0:return o*(s?6103515625e-14*s:0)}return o*2**(n-15)*(1+s)}},ot=class extends y{value(e){return yr(this.values,e)}},it=class extends pe{constructor(e){super(e);let{scale:t}=this.type;this.scale=10**t;}value(e){return this.values[e]/this.scale}},at=class extends re{constructor(e){super(e);let{bitWidth:t,scale:n}=this.type;this.decimal=t===64?Wr:t===128?Jr:Xr,this.scale=10n**BigInt(n);}},ct=class extends at{static ArrayType=k;value(e){return Ze(this.decimal(this.values,e),this.scale)}},ut=class extends at{static ArrayType=Array;value(e){return this.decimal(this.values,e)}},Le=class extends y{constructor(e){super(e),this.source=e;}value(e){return new Date(this.source.value(e))}},lt=class extends pe{value(e){return 864e5*this.values[e]}},nn=F,dt=class extends F{value(e){return super.value(e)*1e3}},sn=F,ft=class extends F{value(e){return Ze(this.values[e],1000n)}},mt=class extends F{value(e){return Ze(this.values[e],1000000n)}},pt=class extends y{value(e){return this.values.subarray(e<<1,e+1<<1)}},ht=class extends y{value(e){let t=this.values,n=e<<4;return Float64Array.of(w(t,n),w(t,n+4),z(t,n+8))}},on=({values:r,offsets:e},t)=>r.subarray(e[t],e[t+1]),an=({values:r,offsets:e},t)=>r.subarray(L(e[t]),L(e[t+1])),bt=class extends y{value(e){return on(this,e)}},yt=class extends y{value(e){return an(this,e)}},It=class extends y{value(e){return ve(on(this,e))}},gt=class extends y{value(e){return ve(an(this,e))}},Et=class extends y{value(e){let t=this.offsets;return this.children[0].slice(t[e],t[e+1])}},Rt=class extends y{value(e){let t=this.offsets;return this.children[0].slice(L(t[e]),L(t[e+1]))}},_t=class extends y{value(e){let t=this.offsets[e],n=t+this.sizes[e];return this.children[0].slice(t,n)}},Tt=class extends y{value(e){let t=this.offsets[e],n=t+this.sizes[e];return this.children[0].slice(L(t),L(n))}},xt=class extends y{constructor(e){super(e),this.stride=this.type.stride;}},St=class extends xt{value(e){let{stride:t,values:n}=this;return n.subarray(e*t,(e+1)*t)}},wt=class extends xt{value(e){let{children:t,stride:n}=this;return t[0].slice(e*n,(e+1)*n)}};function cn({children:r,offsets:e},t){let[n,s]=r[0].children,o=e[t],i=e[t+1],a=[];for(let c=o;c<i;++c)a.push([n.at(c),s.at(c)]);return a}var Ft=class extends y{value(e){return cn(this,e)}},Ot=class extends y{value(e){return new Map(cn(this,e))}},De=class extends y{constructor({typeIds:e,...t}){super(t),this.typeIds=e,this.typeMap=this.type.typeMap;}value(e,t=e){let{typeIds:n,children:s,typeMap:o}=this;return s[o[n[e]]].at(t)}},At=class extends De{value(e){return super.value(e,this.offsets[e])}},Pe=class extends y{constructor(e,t=nt){super(e),this.names=this.type.children.map(n=>n.name),this.factory=t(this.names,this.children);}value(e){return this.factory(e)}},Ct=class extends Pe{constructor(e){super(e,Ne);}},vt=class extends y{value(e){let[{values:t},n]=this.children;return n.at(ue(t,e))}},Nt=class extends y{setDictionary(e){return this.dictionary=e,this.cache=e.cache(),this}value(e){return this.cache[this.key(e)]}key(e){return this.values[e]}},Lt=class extends y{constructor({data:e,...t}){super(t),this.data=e;}view(e){let{values:t,data:n}=this,s=e<<4,o=s+4,i=t,a=w(i,s);return a>12&&(o=w(i,s+12),i=n[w(i,s+8)]),i.subarray(o,o+a)}},Dt=class extends Lt{value(e){return this.view(e)}},Pt=class extends Lt{value(e){return ve(this.view(e))}};var B=class{constructor(e,t=e[0]?.type){this.type=t,this.length=e.reduce((o,i)=>o+i.length,0),this.nullCount=e.reduce((o,i)=>o+i.nullCount,0),this.data=e;let n=e.length,s=new Int32Array(n+1);if(n===1){let[o]=e;s[1]=o.length,this.at=i=>o.at(i);}else for(let o=0,i=0;o<n;++o)s[o+1]=i+=e[o].length;this.offsets=s;}get[Symbol.toStringTag](){return "Column"}[Symbol.iterator](){let e=this.data;return e.length===1?e[0][Symbol.iterator]():Dn(e)}at(e){let{data:t,offsets:n}=this,s=ue(n,e)-1;return t[s]?.at(e-n[s])}get(e){return this.at(e)}toArray(){let{length:e,nullCount:t,data:n}=this,s=!t&&rn(n[0]),o=n.length;if(s&&o===1)return n[0].values;let i=!o||t>0?Array:n[0].constructor.ArrayType??n[0].values.constructor,a=new i(e);return s?Pn(a,n):Mn(a,n)}cache(){return this._cache??(this._cache=this.toArray())}};function*Dn(r){for(let e=0;e<r.length;++e){let t=r[e][Symbol.iterator]();for(let n=t.next();!n.done;n=t.next())yield n.value;}}function Pn(r,e){for(let t=0,n=0;t<e.length;++t){let{values:s}=e[t];r.set(s,n),n+=s.length;}return r}function Mn(r,e){let t=-1;for(let n=0;n<e.length;++n){let s=e[n];for(let o=0;o<s.length;++o)r[++t]=s.at(o);}return r}var be=class r{constructor(e,t,n=false){let s=e.fields.map(i=>i.name);this.schema=e,this.names=s,this.children=t,this.factory=n?Ne:nt;let o=[];this.getFactory=i=>o[i]??(o[i]=this.factory(s,t.map(a=>a.data[i])));}get[Symbol.toStringTag](){return "Table"}get numCols(){return this.names.length}get numRows(){return this.children[0]?.length??0}getChildAt(e){return this.children[e]}getChild(e){let t=this.names.findIndex(n=>n===e);return t>-1?this.children[t]:void 0}selectAt(e,t=[]){let{children:n,factory:s,schema:o}=this,{fields:i}=o;return new r({...o,fields:e.map((a,c)=>kn(i[a],t[c]))},e.map(a=>n[a]),s===Ne)}select(e,t){let n=this.names,s=e.map(o=>n.indexOf(o));return this.selectAt(s,t)}toColumns(){let{children:e,names:t}=this,n={};return t.forEach((s,o)=>n[s]=e[o]?.toArray()??[]),n}toArray(){let{children:e,getFactory:t,numRows:n}=this,s=e[0]?.data??[],o=Array(n);for(let i=0,a=-1;i<s.length;++i){let c=t(i);for(let l=0;l<s[i].length;++l)o[++a]=c(l);}return o}*[Symbol.iterator](){let{children:e,getFactory:t}=this,n=e[0]?.data??[];for(let s=0;s<n.length;++s){let o=t(s);for(let i=0;i<n[s].length;++i)yield o(i);}}at(e){let{children:t,getFactory:n,numRows:s}=this;if(e<0||e>=s)return null;let[{offsets:o}]=t,i=ue(o,e)-1;return n(i)(e-o[i])}get(e){return this.at(e)}};function kn(r,e){return e!=null&&e!==r.name?{...r,name:e}:r}function ye(r,e={}){let{typeId:t,bitWidth:n,mode:s,precision:o,unit:i}=r,{useBigInt:a,useDate:c,useDecimalInt:l,useMap:d,useProxy:f}=e;switch(t){case u.Null:return he;case u.Bool:return ot;case u.Int:case u.Time:case u.Duration:return a||n<64?D:F;case u.Float:return o?D:st;case u.Date:return un(i===A.DAY?lt:nn,c&&Le);case u.Timestamp:return un(i===E.SECOND?dt:i===E.MILLISECOND?sn:i===E.MICROSECOND?ft:mt,c&&Le);case u.Decimal:return n===32?l?D:it:l?ut:ct;case u.Interval:return i===x.DAY_TIME?pt:i===x.YEAR_MONTH?D:ht;case u.FixedSizeBinary:return St;case u.Utf8:return It;case u.LargeUtf8:return gt;case u.Binary:return bt;case u.LargeBinary:return yt;case u.BinaryView:return Dt;case u.Utf8View:return Pt;case u.List:return Et;case u.LargeList:return Rt;case u.Map:return d?Ot:Ft;case u.ListView:return _t;case u.LargeListView:return Tt;case u.FixedSizeList:return wt;case u.Struct:return f?Ct:Pe;case u.RunEndEncoded:return vt;case u.Dictionary:return Nt;case u.Union:return s?At:De}throw new Error(v(t))}function un(r,e){return e?class extends e{constructor(n){super(new r(n));}}:r}function Me(r,e,t){r[e]=t,r[e+1]=t>>8,r[e+2]=t>>16,r[e+3]=t>>24;}function Ir(r,e,t){let n=BigInt(t);Me(r,e+4,Number(BigInt.asIntN(32,n>>BigInt(32)))),Me(r,e+0,Number(BigInt.asIntN(32,n)));}var Mt=1024,kt=class{constructor(e){this.sink=e,this.minalign=1,this.buf=new Uint8Array(Mt),this.space=Mt,this.vtables=[],this.outputBytes=0;}offset(){return this.buf.length-this.space}writeInt8(e){this.buf[this.space-=1]=e;}writeInt16(e){this.buf[this.space-=2]=e,this.buf[this.space+1]=e>>8;}writeInt32(e){Me(this.buf,this.space-=4,e);}writeInt64(e){Ir(this.buf,this.space-=8,e);}addInt8(e){q(this,1,0),this.writeInt8(e);}addInt16(e){q(this,2,0),this.writeInt16(e);}addInt32(e){q(this,4,0),this.writeInt32(e);}addInt64(e){q(this,8,0),this.writeInt64(e);}addOffset(e){q(this,$,0),this.writeInt32(this.offset()-e+$);}addObject(e,t){let n=Un(this,e);return t?.(n),n.finish()}addVector(e,t,n,s){let o=e?.length;if(!o)return 0;q(this,$,t*o),q(this,n,t*o);for(let i=o;--i>=0;)s(this,e[i]);return this.writeInt32(o),this.offset()}addOffsetVector(e){return this.addVector(e,4,4,(t,n)=>t.addOffset(n))}addString(e){if(e==null)return 0;let t=et(e),n=t.length;return this.addInt8(0),q(this,$,n),this.buf.set(t,this.space-=n),this.writeInt32(n),this.offset()}finish(e){q(this,this.minalign,$),this.addOffset(e);}flush(){let{buf:e,sink:t}=this,n=e.subarray(this.space,e.length);t.write(n),this.outputBytes+=n.byteLength,this.minalign=1,this.vtables=[],this.buf=new Uint8Array(Mt),this.space=Mt;}addBuffer(e){let t=e.byteLength;if(!t)return 0;this.sink.write(e),this.outputBytes+=t;let n=(t+7&-8)-t;return this.addPadding(n),t+n}addPadding(e){e>0&&(this.sink.write(new Uint8Array(e)),this.outputBytes+=e);}};function q(r,e,t){let{buf:n,space:s,minalign:o}=r;e>o&&(r.minalign=e);let i=n.length,a=i-s+t,c=~a+1&e-1;n=Qe(n,a+c+e-1,true),s+=n.length-i;for(let l=0;l<c;++l)n[--s]=0;r.buf=n,r.space=s;}function Un(r,e){let t=Array(e).fill(0),n=r.offset();function s(o){t[o]=r.offset();}return {addInt8(o,i,a){i!=a&&(r.addInt8(i),s(o));},addInt16(o,i,a){i!=a&&(r.addInt16(i),s(o));},addInt32(o,i,a){i!=a&&(r.addInt32(i),s(o));},addInt64(o,i,a){i!=a&&(r.addInt64(i),s(o));},addOffset(o,i,a){i!=a&&(r.addOffset(i),s(o));},finish(){r.addInt32(0);let o=r.offset(),i=e;for(;--i>=0&&t[i]===0;);let a=i+1;for(;i>=0;--i)r.addInt16(t[i]?o-t[i]:0);let c=2;r.addInt16(o-n);let l=(a+c)*tt;r.addInt16(l);let d=0,{buf:f,vtables:p,space:m}=r;e:for(i=0;i<p.length;++i){let R=f.length-p[i];if(l==Y(f,R)){for(let O=tt;O<l;O+=tt)if(Y(f,m+O)!=Y(f,R+O))continue e;d=p[i];break}}if(d)r.space=f.length-o,Me(f,r.space,d-o);else {let R=r.offset();p.push(R),Me(f,f.length-o,R-o);}return o}}}var Bn=-1,ln=8;function gr(r){return `Missing compression codec "${Te(oe,r)}" (id ${r})`}var qn=new Map;function Ut(r){return r!=null&&qn.get(r)||null}function dn(r,e){let t=e.encode(r),n=t.length<r.length,s=n?t:r,o=new Uint8Array(ln+s.length);return Ir(o,0,n?r.length:Bn),o.set(s,ln),o}function qt(r,e,t){let{nodes:n,regions:s,variadic:o}=e,i=r.addVector(n,16,8,(l,d)=>(l.writeInt64(d.nullCount),l.writeInt64(d.length),l.offset())),a=r.addVector(s,16,8,(l,d)=>(l.writeInt64(d.length),l.writeInt64(d.offset),l.offset())),c=r.addVector(o,8,8,(l,d)=>l.addInt64(d));return r.addObject(5,l=>{l.addInt64(0,n[0].length,0),l.addOffset(1,i,0),l.addOffset(2,a,0),l.addOffset(3,ss(r,t),0),l.addOffset(4,c,0);})}function ss(r,e){if(!e)return 0;let{codec:t,method:n}=e;return r.addObject(2,s=>{s.addInt8(0,t,oe.LZ4_FRAME),s.addInt8(1,n,ie.BUFFER);})}function pn(r,e,t){let n=qt(r,e.data,t);return r.addObject(3,s=>{s.addInt64(0,e.id,0),s.addOffset(1,n,0),s.addInt8(2,+e.isDelta,0);})}function ke(r,e){return e?.size>0?r.addOffsetVector(Array.from(e,([t,n])=>{let s=r.addString(`${t}`),o=r.addString(`${n}`);return r.addObject(2,i=>{i.addOffset(0,s,0),i.addOffset(1,o,0);})})):0}function Ue(r,e){switch(j(e.typeId,u,v)){case u.Dictionary:return bs(r,e);case u.Int:return ls(r,e);case u.Float:return us(r,e);case u.Decimal:return is(r,e);case u.Date:return os(r,e);case u.Time:return ms(r,e);case u.Timestamp:return ps(r,e);case u.Interval:return ds(r,e);case u.Duration:return as(r,e);case u.FixedSizeBinary:case u.FixedSizeList:return cs(r,e);case u.Map:return fs(r,e);case u.Union:return hs(r,e)}return r.addObject(0)}function os(r,e){return r.addObject(1,t=>{t.addInt16(0,e.unit,A.MILLISECOND);})}function is(r,e){return r.addObject(3,t=>{t.addInt32(0,e.precision,0),t.addInt32(1,e.scale,0),t.addInt32(2,e.bitWidth,128);})}function as(r,e){return r.addObject(1,t=>{t.addInt16(0,e.unit,E.MILLISECOND);})}function cs(r,e){return r.addObject(1,t=>{t.addInt32(0,e.stride,0);})}function us(r,e){return r.addObject(1,t=>{t.addInt16(0,e.precision,G.HALF);})}function ls(r,e){return r.addObject(2,t=>{t.addInt32(0,e.bitWidth,0),t.addInt8(1,+e.signed,0);})}function ds(r,e){return r.addObject(1,t=>{t.addInt16(0,e.unit,x.YEAR_MONTH);})}function fs(r,e){return r.addObject(1,t=>{t.addInt8(0,+e.keysSorted,0);})}function ms(r,e){return r.addObject(2,t=>{t.addInt16(0,e.unit,E.MILLISECOND),t.addInt32(1,e.bitWidth,32);})}function ps(r,e){let t=r.addString(e.timezone);return r.addObject(2,n=>{n.addInt16(0,e.unit,E.SECOND),n.addOffset(1,t,0);})}function hs(r,e){let t=r.addVector(e.typeIds,4,4,(n,s)=>n.addInt32(s));return r.addObject(2,n=>{n.addInt16(0,e.mode,H.Sparse),n.addOffset(1,t,0);})}function bs(r,e){return r.addObject(4,t=>{t.addInt64(0,e.id,0),t.addOffset(1,Ue(r,e.indices),0),t.addInt8(2,+e.ordered,0);})}var ys=new Uint16Array(new Uint8Array([1,0]).buffer)[0]===1;function Vt(r,e){let{fields:t,metadata:n}=e,s=t.map(a=>hn(r,a)),o=r.addOffsetVector(s),i=ke(r,n);return r.addObject(4,a=>{a.addInt16(0,+!ys,0),a.addOffset(1,o,0),a.addOffset(2,i,0);})}function hn(r,e){let{name:t,nullable:n,type:s,metadata:o}=e,{typeId:i}=s,a=0,c=0;if(i!==u.Dictionary)a=Ue(r,s);else {let m=s.dictionary;i=m.typeId,c=Ue(r,s),a=Ue(r,m);}let l=(s.children||[]).map(m=>hn(r,m)),d=r.addOffsetVector(l),f=ke(r,o),p=r.addString(t);return r.addObject(7,m=>{m.addOffset(0,p,0),m.addInt8(1,+n,0),m.addInt8(2,i,u.NONE),m.addOffset(3,a,0),m.addOffset(4,c,0),m.addOffset(5,d,0),m.addOffset(6,f,0);})}function yn(r,e,t,n,s){let o=ke(r,s),i=r.addVector(n,24,8,bn),a=r.addVector(t,24,8,bn),c=Vt(r,e);r.finish(r.addObject(5,d=>{d.addInt16(0,_.V5,_.V1),d.addOffset(1,c,0),d.addOffset(2,a,0),d.addOffset(3,i,0),d.addOffset(4,o,0);}));let l=r.offset();r.addInt32(0),r.addInt32(-1),r.flush(),r.sink.write(new Uint8Array(Int32Array.of(l).buffer)),r.sink.write(ge);}function bn(r,{offset:e,metadataLength:t,bodyLength:n}){return r.writeInt64(n),r.writeInt32(0),r.writeInt32(t),r.writeInt64(e),r.offset()}function Gt(r,e,t,n,s){r.finish(r.addObject(5,c=>{c.addInt16(0,_.V5,_.V1),c.addInt8(1,e,V.NONE),c.addOffset(2,t,0),c.addInt64(3,n,0);}));let o=8,i=r.offset(),a=i+o+7&-8;s?.push({offset:r.outputBytes,metadataLength:a,bodyLength:n}),r.addInt32(a-o),r.addInt32(-1),r.flush(),r.addPadding(a-i-o);}var Rr=class{write(e){}pad(e){this.write(new Uint8Array(e));}finish(){return null}},Ht=class extends Rr{constructor(){super(),this.buffers=[];}write(e){this.buffers.push(e);}finish(){let e=this.buffers,t=e.reduce((s,o)=>s+o.byteLength,0),n=new Uint8Array(t);for(let s=0,o=0;s<e.length;++s)n.set(e[s],o),o+=e[s].byteLength;return n}};var In="stream",gn="file";function Rn(r,{sink:e,format:t=In,codec:n}={}){if(t!==In&&t!==gn)throw new Error(`Unrecognized Arrow IPC format: ${t}`);let{schema:s,dictionaries:o=[],records:i=[],metadata:a}=r,c=new kt(e||new Ht),l=t===gn,d=[],f=[],p=n!=null?{codec:n,method:ie.BUFFER}:null;l&&c.addBuffer(ge),s&&Gt(c,V.Schema,Vt(c,s),0);for(let m of o){let{data:R}=m;Gt(c,V.DictionaryBatch,pn(c,m,p),R.byteLength,d),En(c,R.buffers);}for(let m of i)Gt(c,V.RecordBatch,qt(c,m,p),m.byteLength,f),En(c,m.buffers);return c.addBuffer(Lr),l&&yn(c,s,d,f,a),c.sink}function En(r,e){for(let t=0;t<e.length;++t)r.addBuffer(e[t]);}function Tr(r,e){typeof e=="string"&&(e={format:e});let t=e?.codec,n=Ut(t);if(t!=null&&!n)throw new Error(gr(t));let s=r.children;Is(s);let{dictionaries:o,idMap:i}=Es(s,n),a=_s(s,n),l={schema:Rs(r.schema,i),dictionaries:o,records:a};return Rn(l,{...e,codec:t}).finish()}function Is(r){let e=r[0]?.data.map(t=>t.length);r.forEach(({data:t})=>{if(t.length!==e.length||t.some((n,s)=>n.length!==e[s]))throw new Error("Columns have inconsistent batch sizes.")});}function gs(r){let e=0,t=[],n=[],s=[],o=[];return {node(i,a){t.push({length:i,nullCount:a});},buffer(i){let a=new Uint8Array(i.buffer,i.byteOffset,i.byteLength),c=r?dn(a,r):a,l=c.byteLength;n.push({offset:e,length:l}),s.push(c),e+=l+7&-8;},variadic(i){o.push(i);},children(i,a){i.children.forEach((c,l)=>{Tn(c.type,a.children[l],this);});},done(){return {byteLength:e,nodes:t,regions:n,variadic:o,buffers:s}}}}function Es(r,e){let t=[],n=new Map,s=new Map,o=-1,i=a=>{if(n.has(a))s.set(a.type,n.get(a));else {n.set(a,++o);for(let c=0;c<a.data.length;++c)t.push({id:o,isDelta:c>0,data:_n([a],c,e)});s.set(a.type,o);}};return r.forEach(a=>_r(a.data[0],i)),{dictionaries:t,idMap:s}}function _r(r,e){if(r?.type.typeId===u.Dictionary){let t=r.dictionary;e(t),_r(t.data[0],e);}r?.children?.forEach(t=>_r(t,e));}function Rs(r,e){if(!e.size)return r;let t=o=>{o.typeId===u.Dictionary&&(o.id=e.get(o.dictionary),s(o)),o.children&&(o.children=o.children.slice()).forEach(n);},n=(o,i,a)=>{let c={...o.type};a[i]={...o,type:c},t(c);},s=o=>{let i={...o.dictionary};o.dictionary=i,t(i);};return r={...r,fields:r.fields.slice()},r.fields.forEach(n),r}function _s(r,e){return (r[0]?.data||[]).map((t,n)=>_n(r,n,e))}function _n(r,e=0,t){let n=gs(t);return r.forEach(s=>{Tn(s.type,s.data[e],n);}),n.done()}function Tn(r,e,t){let{typeId:n}=r;if(t.node(e.length,e.nullCount),n!==u.Null)switch(n){case u.Bool:case u.Int:case u.Time:case u.Duration:case u.Float:case u.Date:case u.Timestamp:case u.Decimal:case u.Interval:case u.FixedSizeBinary:case u.Dictionary:t.buffer(e.validity),t.buffer(e.values);return;case u.Utf8:case u.LargeUtf8:case u.Binary:case u.LargeBinary:t.buffer(e.validity),t.buffer(e.offsets),t.buffer(e.values);return;case u.BinaryView:case u.Utf8View:t.buffer(e.validity),t.buffer(e.values),t.variadic(e.data.length),e.data.forEach(s=>t.buffer(s));return;case u.List:case u.LargeList:case u.Map:t.buffer(e.validity),t.buffer(e.offsets),t.children(r,e);return;case u.ListView:case u.LargeListView:t.buffer(e.validity),t.buffer(e.offsets),t.buffer(e.sizes),t.children(r,e);return;case u.FixedSizeList:case u.Struct:t.buffer(e.validity),t.children(r,e);return;case u.RunEndEncoded:t.children(r,e);return;case u.Union:{t.buffer(e.typeIds),r.mode===H.Dense&&t.buffer(e.offsets),t.children(r,e);return}default:throw new Error(v(n))}}function g(r){return new jt(r)}var jt=class{constructor(e=C){this.buf=new e(512);}array(e){return Pr(this.buf,e)}prep(e){e>=this.buf.length&&(this.buf=Qe(this.buf,e));}get(e){return this.buf[e]}set(e,t){this.prep(t),this.buf[t]=e;}write(e,t){this.prep(t+e.length),this.buf.set(e,t);}};function Qt(){return new xr}var xr=class extends jt{set(e){let t=e>>3;this.prep(t),this.buf[t]|=1<<e%8;}};var K=class{constructor(e,t){this.type=e,this.ctx=t,this.batchClass=t.batchType(e);}init(){return this.index=-1,this}set(e,t){return this.index=t,false}done(){return null}batch(){let e=new this.batchClass(this.done());return this.init(),e}};var I=class extends K{constructor(e,t){super(e,t);}init(){return this.nullCount=0,this.validity=Qt(),super.init()}set(e,t){this.index=t;let n=e!=null;return n?this.validity.set(t):this.nullCount++,n}done(){let{index:e,nullCount:t,type:n,validity:s}=this;return {length:e+1,nullCount:t,type:n,validity:t?s.array((e>>3)+1):new C(0)}}};function Be(){let r=new Map,e=new Set;return {get(t,n){let s=t.id;if(s>=0&&r.has(s))return r.get(s);{let o=Ts(t,n);return s>=0&&r.set(s,o),e.add(o),o}},finish(t){e.forEach(n=>n.finish(t));}}}function Ts(r,e){let t=Object.create(null),n=e.builder(r.dictionary),s=[];n.init();let o=-1;return {type:r,values:n,add(i){return s.push(i),i},key(i){let a=me(i),c=t[a];return c===void 0&&(t[a]=c=++o,n.set(i,c)),c},finish(i){let a=r.dictionary,c=new(ye(a,i))(n.done()),l=new B([c]);s.forEach(d=>d.setDictionary(l));}}}var $t=class extends I{constructor(e,t){super(e,t),this.dict=t.dictionary(e);}init(){return this.values=g(this.type.indices.values),super.init()}set(e,t){super.set(e,t)&&this.values.set(this.dict.key(e),t);}done(){return {...super.done(),values:this.values.array(this.index+1)}}batch(){return this.dict.add(super.batch())}};function xn(r){let e=Sr();return r(t=>e.add(t)),e.type()}function Sr(){let r=0,e=0,t=0,n=0,s=0,o=0,i=0,a=0,c=0,l=0,d=0,f=1/0,p=-1/0,m=1/0,R=-1/0,O,Ge,ur,lr={};return {add(h){if(r++,h==null){e++;return}switch(typeof h){case "string":c++;break;case "number":n++,h<f&&(f=h),h>p&&(p=h),Number.isInteger(h)&&s++;break;case "bigint":o++,O===void 0?O=Ge=h:(h<O&&(O=h),h>Ge&&(Ge=h));break;case "boolean":t++;break;case "object":if(h instanceof Date)i++,+h%864e5===0&&a++;else if(je(h)){l++;let T=h.length;T<m&&(m=T),T>R&&(R=T),ur??=Sr(),h.forEach(ur.add);}else {d++;for(let T in h)(lr[T]??(lr[T]=Sr())).add(h[T]);}}},type(){let h=r-e;return h===0?hr():s===h?Ss(f,p):n===h?Q():o===h?ws(O,Ge):t===h?Ae():a===h?Ce():i===h?le():c===h?$e(te()):l===h?xs(ur.type(),m,R):d===h?Ke(Object.entries(lr).map(T=>J(T[0],T[1].type()))):Fs()}}}function xs(r,e,t){return t===e?We(r,e):ze(r)}function Ss(r,e){let t=Math.max(Math.abs(r)-1,e);return t<128?X():t<32768?Z():t<2**31?U():Q()}function ws(r,e){let t=-r>e?-r-1n:e;if(t>=2**63)throw new Error(`BigInt exceeds 64 bits: ${t}`);return ee()}function Fs(){throw new Error("Mixed types detected, please define a union type.")}var Ie=class extends I{constructor(e,t){super(e,t),this.toOffset=Xe(e.offsets);}init(){return this.offsets=g(this.type.offsets),this.values=g(),this.pos=0,super.init()}set(e,t){let{offsets:n,values:s,toOffset:o}=this;super.set(e,t)&&(s.write(e,this.pos),this.pos+=e.length),n.set(o(this.pos),t+1);}done(){return {...super.done(),offsets:this.offsets.array(this.index+2),values:this.values.array(this.pos+1)}}};var Yt=class extends I{constructor(e,t){super(e,t);}init(){return this.values=Qt(),super.init()}set(e,t){super.set(e,t),e&&this.values.set(t);}done(){return {...super.done(),values:this.values.array((this.index>>3)+1)}}};var zt=class extends I{constructor(e,t){super(e,t),this.scale=10**e.scale,this.stride=e.bitWidth>>6;}init(){return this.values=g(this.type.values),super.init()}set(e,t){let{scale:n,stride:s,values:o}=this;super.set(e,t)&&(o.prep((t+1)*s),Kr(e,o.buf,t*s,s,n));}done(){let{index:e,stride:t,values:n}=this;return {...super.done(),values:n.array((e+1)*t)}}};var Kt=class extends I{constructor(e,t){super(e,t),this.stride=e.stride;}init(){return this.values=g(),super.init()}set(e,t){super.set(e,t)&&this.values.write(e,t*this.stride);}done(){let{stride:e,values:t}=this;return {...super.done(),values:t.array(e*(this.index+1))}}};var Wt=class extends I{constructor(e,t){super(e,t),this.child=t.builder(this.type.children[0].type),this.stride=e.stride;}init(){return this.child.init(),super.init()}set(e,t){let{child:n,stride:s}=this,o=t*s;if(super.set(e,t))for(let i=0;i<s;++i)n.set(e[i],o+i);else n.index=o+s;}done(){let{child:e}=this;return {...super.done(),children:[e.batch()]}}};var Jt=class extends I{init(){return this.values=g(this.type.values),super.init()}set(e,t){if(super.set(e,t)){let n=t<<1;this.values.set(e[0],n),this.values.set(e[1],n+1);}}done(){return {...super.done(),values:this.values.array(this.index+1<<1)}}},Xt=class extends I{init(){return this.values=g(),super.init()}set(e,t){super.set(e,t)&&this.values.write(Yr(e),t<<4);}done(){return {...super.done(),values:this.values.array(this.index+1<<4)}}};var qe=class extends I{constructor(e,t,n){super(e,t),this.child=n;}init(){this.child.init();let e=this.type.offsets;return this.offsets=g(e),this.toOffset=Xe(e),this.pos=0,super.init()}done(){return {...super.done(),offsets:this.offsets.array(this.index+2),children:[this.child.batch()]}}},Zt=class extends qe{constructor(e,t){super(e,t,t.builder(e.children[0].type));}set(e,t){let{child:n,offsets:s,toOffset:o}=this;super.set(e,t)&&e.forEach(i=>n.set(i,this.pos++)),s.set(o(this.pos),t+1);}};var Ve=class extends I{constructor(e,t){super(e,t),this.children=e.children.map(n=>t.builder(n.type));}init(){return this.children.forEach(e=>e.init()),super.init()}done(){let{children:e}=this;return e.forEach(t=>t.index=this.index),{...super.done(),children:e.map(t=>t.batch())}}},er=class extends Ve{constructor(e,t){super(e,t),this.setters=this.children.map((n,s)=>{let o=e.children[s].name;return (i,a)=>n.set(i?.[o],a)});}set(e,t){super.set(e,t);let n=this.setters;for(let s=0;s<n.length;++s)n[s](e,t);}};var tr=class extends qe{constructor(e,t){super(e,t,new wr(e.children[0].type,t));}set(e,t){let{child:n,offsets:s,toOffset:o}=this;if(super.set(e,t))for(let i of e)n.set(i,this.pos++);s.set(o(this.pos),t+1);}},wr=class extends Ve{set(e,t){super.set(e,t);let[n,s]=this.children;n.set(e[0],t),s.set(e[1],t);}};var Os={},rr=class extends K{constructor(e,t){super(e,t),this.children=e.children.map(n=>t.builder(n.type));}init(){return this.pos=0,this.key=null,this.value=Os,this.children.forEach(e=>e.init()),super.init()}next(){let[e,t]=this.children;e.set(this.index+1,this.pos),t.set(this.value,this.pos++);}set(e,t){if(e!==this.value){let n=me(e);n!==this.key&&(this.key&&this.next(),this.key=n,this.value=e);}this.index=t;}done(){this.next();let{children:e,index:t,type:n}=this;return {length:t+1,nullCount:0,type:n,children:e.map(s=>s.batch())}}};var nr=class extends K{constructor(e,t){super(e,t),this.children=e.children.map(n=>t.builder(n.type)),this.typeMap=e.typeMap,this.lookup=e.typeIdForValue;}init(){return this.nullCount=0,this.typeIds=g(ae),this.children.forEach(e=>e.init()),super.init()}set(e,t){let{children:n,lookup:s,typeMap:o,typeIds:i}=this;this.index=t;let a=s(e,t),c=n[o[a]];i.set(a,t),e==null&&++this.nullCount,this.update(e,t,c);}done(){let{children:e,nullCount:t,type:n,typeIds:s}=this,o=this.index+1;return {length:o,nullCount:t,type:n,typeIds:s.array(o),children:e.map(i=>i.batch())}}},sr=class extends nr{update(e,t,n){n.set(e,t),this.children.forEach(s=>{s!==n&&s.set(null,t);});}},or=class extends nr{init(){return this.offsets=g(this.type.offsets),super.init()}update(e,t,n){let s=n.index+1;n.set(e,s),this.offsets.set(s,t);}done(){return {...super.done(),offsets:this.offsets.array(this.index+1)}}};var ir=class extends Ie{set(e,t){super.set(e&&et(e),t);}};var W=class extends I{constructor(e,t){super(e,t),this.values=g(e.values);}init(){return this.values=g(this.type.values),super.init()}set(e,t){super.set(e,t)&&this.values.set(e,t);}done(){return {...super.done(),values:this.values.array(this.index+1)}}},ar=class extends W{set(e,t){super.set(e==null?e:S(e),t);}},se=class extends W{constructor(e,t,n){super(e,t),this.transform=n;}set(e,t){super.set(e==null?e:this.transform(e),t);}};function Fr(r={},e=Be()){return {batchType:t=>ye(t,r),builder(t){return Or(t,this)},dictionary(t){return e.get(t,this)},finish:()=>e.finish(r)}}function Or(r,e=Fr()){let{typeId:t}=r;switch(t){case u.Int:case u.Time:case u.Duration:return ce(r.values)?new ar(r,e):new W(r,e);case u.Float:return r.precision?new W(r,e):new se(r,e,Zr);case u.Binary:case u.LargeBinary:return new Ie(r,e);case u.Utf8:case u.LargeUtf8:return new ir(r,e);case u.Bool:return new Yt(r,e);case u.Decimal:return r.bitWidth===32?new se(r,e,zr(r.scale)):new zt(r,e);case u.Date:return new se(r,e,r.unit?S:Qr);case u.Timestamp:return new se(r,e,$r(r.unit));case u.Interval:switch(r.unit){case x.DAY_TIME:return new Jt(r,e);case x.MONTH_DAY_NANO:return new Xt(r,e)}return new W(r,e);case u.List:case u.LargeList:return new Zt(r,e);case u.Struct:return new er(r,e);case u.Union:return r.mode?new or(r,e):new sr(r,e);case u.FixedSizeBinary:return new Kt(r,e);case u.FixedSizeList:return new Wt(r,e);case u.Map:return new tr(r,e);case u.RunEndEncoded:return new rr(r,e);case u.Dictionary:return new $t(r,e)}throw new Error(v(t))}function Ar(r,e,t={},n){let s=Ur(r)?c=>{for(let l of r)c(l);}:r;e??=xn(s);let{maxBatchRows:o=1/0,...i}=t,a;if(e.typeId===u.Null){let c=0;s(()=>++c),a=As(e,c,o);}else {let c=Fr(i,n),l=Or(e,c).init(),d=p=>a.push(p.batch());a=[];let f=0;s(p=>{l.set(p,f++),f>=o&&(d(l),f=0);}),f&&d(l),c.finish();}return new B(a,e)}function As(r,e,t){let n=[],s=a=>new he({length:a,nullCount:a,type:r}),o=Math.floor(e/t);for(let a=0;a<o;++a)n.push(s(t));let i=e%t;return i&&n.push(s(i)),n}function Cr(r,e,t={},n){return !e&&mr(r)?Cs(r,t):Ar(s=>r.forEach(s),e,t,n)}function Cs(r,{maxBatchRows:e,useBigInt:t}){let n=r.constructor,s=vs(n),o=r.length,i=Math.min(e||1/0,o),a=Math.floor(o/i),c=[],l=ce(n)&&!t?F:D,d=(p,m)=>c.push(new l({length:m-p,nullCount:0,type:s,validity:new C(0),values:r.subarray(p,m)})),f=0;for(let p=0;p<a;++p)d(f,f+=i);return f<o&&d(f,o),new B(c)}function vs(r){switch(r){case He:return Oe();case k:return Q();case ae:return X();case fr:return Z();case P:return U();case M:return ee();case C:return xe();case Ee:return Se();case Re:return we();case _e:return Fe()}}function vr(r,e){let t=[],n=Array.isArray(r)?r:Object.entries(r),s=n[0]?.[1].length,o=n.map(([a,c])=>{if(c.length!==s)throw new Error("All columns must have the same length.");return t.push(J(a,c.type)),c}),i={version:_.V5,endianness:dr.Little,fields:t,metadata:null};return new be(i,o,e)}function Nr(r,e={}){let{types:t={},...n}=e,s=Be(),i=(Array.isArray(r)?r:Object.entries(r)).map(([a,c])=>[a,Cr(c,t[a],n,s)]);return vr(i,e.useProxy)}var b={BOOLEAN:1,TINYINT:2,SMALLINT:3,INTEGER:4,BIGINT:5,UTINYINT:6,USMALLINT:7,UINTEGER:8,UBIGINT:9,FLOAT:10,DOUBLE:11,TIMESTAMP:12,DATE:13,VARCHAR:17,TIMESTAMP_TZ:31};var cr=class{module=null;dbPtr=0;connections=new Map;preparedStatements=new Map;streamingResults=new Map;nextConnectionId=1;nextPreparedStatementId=1;nextStreamingResultId=1;async onMessage(e){let t=e.data,{messageId:n,type:s,data:o}=t;try{switch(s){case "PING":this.postResponse(n,"OK",void 0);break;case "INSTANTIATE":await this.handleInstantiate(n,o);break;case "GET_VERSION":this.handleGetVersion(n);break;case "OPEN":this.handleOpen(n,o);break;case "CLOSE":this.handleClose(n);break;case "CONNECT":this.handleConnect(n);break;case "DISCONNECT":this.handleDisconnect(n,o);break;case "QUERY":this.handleQuery(n,o);break;case "QUERY_ARROW":this.handleQueryArrow(n,o);break;case "QUERY_STREAMING":this.handleQueryStreaming(n,o);break;case "EXECUTE":this.handleExecute(n,o);break;case "FETCH_CHUNK":this.handleFetchChunk(n,o);break;case "CLOSE_STREAMING_RESULT":this.handleCloseStreamingResult(n,o);break;case "PREPARE":this.handlePrepare(n,o);break;case "RUN_PREPARED":this.handleRunPrepared(n,o);break;case "EXECUTE_PREPARED":this.handleExecutePrepared(n,o);break;case "CLOSE_PREPARED":this.handleClosePrepared(n,o);break;case "BEGIN_TRANSACTION":this.handleBeginTransaction(n,o);break;case "COMMIT":this.handleCommit(n,o);break;case "ROLLBACK":this.handleRollback(n,o);break;case "REGISTER_FILE_URL":this.handleRegisterFileURL(n,o);break;case "REGISTER_FILE_BUFFER":this.handleRegisterFileBuffer(n,o);break;case "REGISTER_FILE_TEXT":this.handleRegisterFileText(n,o);break;case "DROP_FILE":this.handleDropFile(n,o);break;case "DROP_FILES":this.handleDropFiles(n);break;case "FLUSH_FILES":this.handleFlushFiles(n);break;case "COPY_FILE_TO_BUFFER":this.handleCopyFileToBuffer(n,o);break;case "COPY_FILE_TO_PATH":this.handleCopyFileToPath(n,o);break;case "GLOB_FILES":this.handleGlobFiles(n,o);break;case "INSERT_ARROW_FROM_IPC":this.handleInsertArrowFromIPC(n,o);break;case "INSERT_CSV_FROM_PATH":this.handleInsertCSVFromPath(n,o);break;case "INSERT_JSON_FROM_PATH":this.handleInsertJSONFromPath(n,o);break;default:this.postError(n,`Unknown request type: ${s}`);}}catch(i){let a=i instanceof Error?i.message:String(i);this.postError(n,a);}}postResponse(e,t,n,s){let o={messageId:e,requestId:e,type:t,data:n};s&&s.length>0?self.postMessage(o,{transfer:s}):self.postMessage(o);}postError(e,t,n,s){let o={message:t,code:n,query:s};this.postResponse(e,"ERROR",o);}postOK(e){this.postResponse(e,"OK",void 0);}getModule(){if(!this.module)throw new Error("DuckDB WASM module not initialized");return this.module}getConnectionPtr(e){let t=this.connections.get(e);if(!t)throw new Error(`Connection ${e} not found`);return t}async handleInstantiate(e,t){let n;if(globalThis.__DUCKDB_MODULE_FACTORY__)n=globalThis.__DUCKDB_MODULE_FACTORY__;else {if(!t.wasmJsUrl)throw new Error("wasmJsUrl is required for initialization");n=(await new Function("url","return import(url)")(t.wasmJsUrl)).default;}let s={},o=globalThis.__DUCKDB_WASM_MODULE__;o?s.instantiateWasm=(i,a)=>(WebAssembly.instantiate(o,i).then(c=>{a(c);}),{}):t.wasmUrl&&(s.locateFile=i=>i.endsWith(".wasm")?t.wasmUrl:i),this.module=await n(s),this.postOK(e);}handleGetVersion(e){let t=this.getModule(),n=t.ccall("duckdb_library_version","number",[],[]),s=t.UTF8ToString(n);this.postResponse(e,"VERSION",{version:s});}handleOpen(e,t){let n=this.getModule(),s=t?.config??{},o={accessMode:s.accessMode??"automatic",enableExternalAccess:s.enableExternalAccess??true,lockConfiguration:s.lockConfiguration??true,customConfig:s.customConfig??{}},i=n._malloc(4);if(n.ccall("duckdb_create_config","number",["number"],[i])!==0)throw n._free(i),new Error("Failed to create DuckDB configuration");let c=n.getValue(i,"i32");n._free(i);try{let l=(p,m)=>{if(n.ccall("duckdb_set_config","number",["number","string","string"],[c,p,m])!==0)throw new Error(`Failed to set config option: ${p}`)};o.accessMode!=="automatic"&&l("access_mode",o.accessMode),o.enableExternalAccess===!1&&l("enable_external_access","false");for(let[p,m]of Object.entries(o.customConfig))l(p,m);let d=n._malloc(4),f=n._malloc(4);try{if(n.ccall("duckdb_open_ext","number",["string","number","number","number"],[":memory:",d,c,f])!==0){let m=n.getValue(f,"i32"),R=m?n.UTF8ToString(m):"Unknown error";throw new Error(`Failed to open database: ${R}`)}this.dbPtr=n.getValue(d,"i32");}finally{n._free(d),n._free(f);}o.enableExternalAccess!==!1&&n.ccall("duckdb_wasm_httpfs_init",null,["number"],[this.dbPtr]),o.lockConfiguration!==!1&&this.executeSQLInternal("SET lock_configuration = true"),this.postOK(e);}finally{let l=n._malloc(4);n.setValue(l,c,"i32"),n.ccall("duckdb_destroy_config",null,["number"],[l]),n._free(l);}}executeSQLInternal(e){let t=this.getModule(),n=t._malloc(4);try{if(t.ccall("duckdb_connect","number",["number","number"],[this.dbPtr,n])!==0)return;let o=t.getValue(n,"i32"),i=t._malloc(64);try{t.ccall("duckdb_query","number",["number","string","number"],[o,e,i]),t.ccall("duckdb_destroy_result",null,["number"],[i]);}finally{t._free(i);}t.ccall("duckdb_disconnect",null,["number"],[n]);}finally{t._free(n);}}handleClose(e){let t=this.getModule();for(let[,n]of this.connections)t.ccall("duckdb_disconnect",null,["number"],[n]);this.connections.clear();for(let[,n]of this.preparedStatements){let s=t._malloc(4);try{t.setValue(s,n.stmtPtr,"i32"),t.ccall("duckdb_destroy_prepare",null,["number"],[s]);}finally{t._free(s);}}this.preparedStatements.clear();for(let[,n]of this.streamingResults)t.ccall("duckdb_destroy_result",null,["number"],[n.resultPtr]);if(this.streamingResults.clear(),this.dbPtr){let n=t._malloc(4);try{t.setValue(n,this.dbPtr,"*"),t.ccall("duckdb_close",null,["number"],[n]);}finally{t._free(n);}this.dbPtr=0;}this.postOK(e);}handleConnect(e){let t=this.getModule();if(!this.dbPtr)throw new Error("Database not opened");let n=t._malloc(4);try{if(t.ccall("duckdb_connect","number",["number","number"],[this.dbPtr,n])!==0)throw new Error("Failed to create connection");let o=t.getValue(n,"*"),i=this.nextConnectionId++;this.connections.set(i,o),this.postResponse(e,"CONNECTION_ID",{connectionId:i});}finally{t._free(n);}}handleDisconnect(e,t){let n=this.getModule(),s=this.getConnectionPtr(t.connectionId);n.ccall("duckdb_disconnect",null,["number"],[s]),this.connections.delete(t.connectionId),this.postOK(e);}handleQuery(e,t){let n=this.getModule(),s=this.getConnectionPtr(t.connectionId),o=n._malloc(64);try{if(n.ccall("duckdb_query","number",["number","string","number"],[s,t.sql,o])!==0){let d=n.ccall("duckdb_result_error","number",["number"],[o]),f=d?n.UTF8ToString(d):"Query failed";throw n.ccall("duckdb_destroy_result",null,["number"],[o]),new Error(f)}let{columns:a,rows:c}=this.extractQueryResult(n,o);n.ccall("duckdb_destroy_result",null,["number"],[o]);let l={columns:a,rows:c};this.postResponse(e,"QUERY_RESULT",l);}finally{n._free(o);}}handleQueryArrow(e,t){let n=this.getModule(),s=this.getConnectionPtr(t.connectionId),o=n._malloc(64);try{if(n.ccall("duckdb_query","number",["number","string","number"],[s,t.sql,o])!==0){let l=n.ccall("duckdb_result_error","number",["number"],[o]),d=l?n.UTF8ToString(l):"Query failed";throw n.ccall("duckdb_destroy_result",null,["number"],[o]),new Error(d)}let a=this.buildArrowTable(n,o);n.ccall("duckdb_destroy_result",null,["number"],[o]);let c=Tr(a,{format:"stream"});if(!c)throw new Error("Failed to serialize Arrow table to IPC");this.postResponse(e,"ARROW_IPC",{ipcBuffer:c},[c.buffer]);}finally{n._free(o);}}handleQueryStreaming(e,t){let n=this.getModule(),s=this.getConnectionPtr(t.connectionId),o=n._malloc(64);try{if(n.ccall("duckdb_query","number",["number","string","number"],[s,t.sql,o])!==0){let d=n.ccall("duckdb_result_error","number",["number"],[o]),f=d?n.UTF8ToString(d):"Query failed";throw n.ccall("duckdb_destroy_result",null,["number"],[o]),new Error(f)}let a=this.getColumnInfo(n,o),c=this.nextStreamingResultId++;this.streamingResults.set(c,{resultPtr:o,connectionId:t.connectionId,columns:a,currentChunk:0});let l={streamingResultId:c,columns:a};this.postResponse(e,"STREAMING_RESULT_INFO",l);}catch(i){throw n._free(o),i}}handleExecute(e,t){let n=this.getModule(),s=this.getConnectionPtr(t.connectionId),o=n._malloc(64);try{if(n.ccall("duckdb_query","number",["number","string","number"],[s,t.sql,o])!==0){let c=n.ccall("duckdb_result_error","number",["number"],[o]),l=c?n.UTF8ToString(c):"Query failed";throw n.ccall("duckdb_destroy_result",null,["number"],[o]),new Error(l)}let a=n.ccall("duckdb_rows_changed","number",["number"],[o]);n.ccall("duckdb_destroy_result",null,["number"],[o]),this.postResponse(e,"ROWS_CHANGED",{rowsChanged:a});}finally{n._free(o);}}handleFetchChunk(e,t){let n=this.getModule(),s=this.streamingResults.get(t.streamingResultId);if(!s)throw new Error(`Streaming result ${t.streamingResultId} not found`);let o=2048,i=n.ccall("duckdb_row_count","number",["number"],[s.resultPtr]),a=s.currentChunk*o,c=Math.min(a+o,i),l=c-a,d=c>=i;if(l===0){let m={columns:s.columns,rows:[],rowCount:0,done:true};this.postResponse(e,"DATA_CHUNK",m);return}let f=this.extractRows(n,s.resultPtr,s.columns,a,c);s.currentChunk++;let p={columns:s.columns,rows:f,rowCount:l,done:d};this.postResponse(e,"DATA_CHUNK",p);}handleCloseStreamingResult(e,t){let n=this.getModule(),s=this.streamingResults.get(t.streamingResultId);s&&(n.ccall("duckdb_destroy_result",null,["number"],[s.resultPtr]),this.streamingResults.delete(t.streamingResultId)),this.postOK(e);}handlePrepare(e,t){let n=this.getModule(),s=this.getConnectionPtr(t.connectionId),o=n._malloc(4);try{if(n.ccall("duckdb_prepare","number",["number","string","number"],[s,t.sql,o])!==0){let l=n.getValue(o,"*");if(l){let d=n.ccall("duckdb_prepare_error","number",["number"],[l]),f=d?n.UTF8ToString(d):"Prepare failed";throw n.ccall("duckdb_destroy_prepare",null,["number"],[o]),new Error(f)}throw new Error("Prepare failed")}let a=n.getValue(o,"*"),c=this.nextPreparedStatementId++;this.preparedStatements.set(c,{stmtPtr:a,connectionId:t.connectionId,sql:t.sql}),this.postResponse(e,"PREPARED_STATEMENT_ID",{preparedStatementId:c});}finally{n._free(o);}}handleRunPrepared(e,t){let n=this.getModule(),s=this.preparedStatements.get(t.preparedStatementId);if(!s)throw new Error(`Prepared statement ${t.preparedStatementId} not found`);this.applyBindings(n,s.stmtPtr,t.bindings);let o=n._malloc(64);try{if(n.ccall("duckdb_execute_prepared","number",["number","number"],[s.stmtPtr,o])!==0){let d=n.ccall("duckdb_result_error","number",["number"],[o]),f=d?n.UTF8ToString(d):"Execute prepared failed";throw n.ccall("duckdb_destroy_result",null,["number"],[o]),new Error(f)}let{columns:a,rows:c}=this.extractQueryResult(n,o);n.ccall("duckdb_destroy_result",null,["number"],[o]);let l={columns:a,rows:c};this.postResponse(e,"QUERY_RESULT",l);}finally{n._free(o);}}handleExecutePrepared(e,t){let n=this.getModule(),s=this.preparedStatements.get(t.preparedStatementId);if(!s)throw new Error(`Prepared statement ${t.preparedStatementId} not found`);this.applyBindings(n,s.stmtPtr,t.bindings);let o=n._malloc(64);try{if(n.ccall("duckdb_execute_prepared","number",["number","number"],[s.stmtPtr,o])!==0){let c=n.ccall("duckdb_result_error","number",["number"],[o]),l=c?n.UTF8ToString(c):"Execute prepared failed";throw n.ccall("duckdb_destroy_result",null,["number"],[o]),new Error(l)}let a=n.ccall("duckdb_rows_changed","number",["number"],[o]);n.ccall("duckdb_destroy_result",null,["number"],[o]),this.postResponse(e,"ROWS_CHANGED",{rowsChanged:a});}finally{n._free(o);}}handleClosePrepared(e,t){let n=this.getModule(),s=this.preparedStatements.get(t.preparedStatementId);if(s){let o=n._malloc(4);try{n.setValue(o,s.stmtPtr,"i32"),n.ccall("duckdb_destroy_prepare",null,["number"],[o]);}finally{n._free(o);}this.preparedStatements.delete(t.preparedStatementId);}this.postOK(e);}applyBindings(e,t,n){for(let s of n){let{index:o,type:i,value:a}=s,c;switch(i){case "null":c=e.ccall("duckdb_bind_null","number",["number","number","number"],[t,o,0]);break;case "boolean":c=e.ccall("duckdb_bind_boolean","number",["number","number","number","number"],[t,o,0,a?1:0]);break;case "int8":case "int16":case "int32":case "uint8":case "uint16":case "uint32":c=e.ccall("duckdb_bind_int32","number",["number","number","number","number"],[t,o,0,a]);break;case "int64":case "uint64":{let l=BigInt(a),d=Number(l&BigInt(4294967295)),f=Number(l>>BigInt(32)&BigInt(4294967295));c=e.ccall("duckdb_bind_int64","number",["number","number","number","number","number"],[t,o,0,d,f]);break}case "float":c=e.ccall("duckdb_bind_float","number",["number","number","number","number"],[t,o,0,a]);break;case "double":c=e.ccall("duckdb_bind_double","number",["number","number","number","number"],[t,o,0,a]);break;case "varchar":c=e.ccall("duckdb_bind_varchar","number",["number","number","number","string"],[t,o,0,a]);break;case "blob":{let l=a,d=e._malloc(l.length);try{e.HEAPU8.set(l,d),c=e.ccall("duckdb_bind_blob","number",["number","number","number","number","number","number"],[t,o,0,d,l.length,0]);}finally{e._free(d);}break}default:throw new Error(`Unsupported binding type: ${i}`)}if(c!==0)throw new Error(`Failed to bind ${i} at index ${o}`)}}handleBeginTransaction(e,t){this.executeSQL(t.connectionId,"BEGIN TRANSACTION"),this.postOK(e);}handleCommit(e,t){this.executeSQL(t.connectionId,"COMMIT"),this.postOK(e);}handleRollback(e,t){this.executeSQL(t.connectionId,"ROLLBACK"),this.postOK(e);}executeSQL(e,t){let n=this.getModule(),s=this.getConnectionPtr(e),o=n._malloc(64);try{if(n.ccall("duckdb_query","number",["number","string","number"],[s,t,o])!==0){let a=n.ccall("duckdb_result_error","number",["number"],[o]),c=a?n.UTF8ToString(a):"Query failed";throw n.ccall("duckdb_destroy_result",null,["number"],[o]),new Error(c)}n.ccall("duckdb_destroy_result",null,["number"],[o]);}finally{n._free(o);}}handleRegisterFileURL(e,t){this.postOK(e);}handleRegisterFileBuffer(e,t){let n=this.getModule(),s=`/${t.name}`,o=s.split("/").filter(Boolean),i="";for(let a=0;a<o.length-1;a++){i+="/"+o[a];try{n.FS.mkdir(i);}catch{}}n.FS.writeFile(s,t.buffer),this.postOK(e);}handleRegisterFileText(e,t){let n=this.getModule(),s=`/${t.name}`,i=new TextEncoder().encode(t.text);n.FS.writeFile(s,i),this.postOK(e);}handleDropFile(e,t){let n=this.getModule();try{let s=`/${t.name}`;n.FS.unlink(s);}catch{}this.postOK(e);}handleDropFiles(e){this.postOK(e);}handleFlushFiles(e){this.postOK(e);}handleCopyFileToBuffer(e,t){let n=this.getModule(),s=`/${t.name}`,o=n.FS.readFile(s);this.postResponse(e,"FILE_BUFFER",{buffer:o},[o.buffer]);}handleCopyFileToPath(e,t){let n=this.getModule(),s=`/${t.srcName}`,o=`/${t.dstPath}`,i=n.FS.readFile(s);n.FS.writeFile(o,i),this.postOK(e);}handleGlobFiles(e,t){let n=this.getModule(),s=[];try{let o=n.FS.readdir("/"),i=t.pattern.replace(/\*/g,".*").replace(/\?/g,"."),a=new RegExp(`^${i}$`);for(let c of o)if(!(c==="."||c==="..")&&a.test(c))try{let l=n.FS.stat(`/${c}`);s.push({name:c,size:l.size});}catch{}}catch{}this.postResponse(e,"FILE_INFO_LIST",{files:s});}handleInsertArrowFromIPC(e,t){let n=this.getModule(),s=this.getConnectionPtr(t.connectionId),o=n._malloc(t.ipcBuffer.length);n.HEAPU8.set(t.ipcBuffer,o);try{if(n.ccall("duckdb_wasm_insert_arrow_ipc","number",["number","string","number","number"],[s,t.tableName,o,t.ipcBuffer.length])!==0)throw new Error(`Failed to insert Arrow IPC data into "${t.tableName}"`)}finally{n._free(o);}this.postOK(e);}handleInsertCSVFromPath(e,t){let n=`CREATE TABLE IF NOT EXISTS "${t.tableName}" AS SELECT * FROM read_csv('/${t.path}'`;if(t.options){let s=[];t.options.header!==void 0&&s.push(`header = ${t.options.header}`),t.options.delimiter&&s.push(`delim = '${t.options.delimiter}'`),t.options.quote&&s.push(`quote = '${t.options.quote}'`),t.options.escape&&s.push(`escape = '${t.options.escape}'`),t.options.skip&&s.push(`skip = ${t.options.skip}`),s.length>0&&(n+=`, ${s.join(", ")}`);}n+=")",this.executeSQL(t.connectionId,n),this.postOK(e);}handleInsertJSONFromPath(e,t){let n=`CREATE TABLE IF NOT EXISTS "${t.tableName}" AS SELECT * FROM read_json('/${t.path}'`;if(t.options){let s=[];t.options.format&&s.push(`format = '${t.options.format}'`),s.length>0&&(n+=`, ${s.join(", ")}`);}n+=")",this.executeSQL(t.connectionId,n),this.postOK(e);}getColumnInfo(e,t){let n=e.ccall("duckdb_column_count","number",["number"],[t]),s=[];for(let o=0;o<n;o++){let i=e.ccall("duckdb_column_name","number",["number","number"],[t,o]),a=e.ccall("duckdb_column_type","number",["number","number"],[t,o]);s.push({name:e.UTF8ToString(i),type:a});}return s}extractQueryResult(e,t){let n=this.getColumnInfo(e,t),s=e.ccall("duckdb_row_count","number",["number"],[t]),o=this.extractRows(e,t,n,0,s);return {columns:n,rows:o}}extractRows(e,t,n,s,o){let i=[],a=n.length;for(let c=s;c<o;c++){let l=[];for(let d=0;d<a;d++){let f=n[d];e.ccall("duckdb_value_is_null","number",["number","number","number","number","number"],[t,d,0,c,0])?l.push(null):l.push(this.extractValue(e,t,d,c,f.type));}i.push(l);}return i}extractValue(e,t,n,s,o){switch(o){case b.BOOLEAN:return e.ccall("duckdb_value_boolean","number",["number","number","number","number","number"],[t,n,0,s,0])!==0;case b.TINYINT:return e.ccall("duckdb_value_int8","number",["number","number","number","number","number"],[t,n,0,s,0]);case b.SMALLINT:return e.ccall("duckdb_value_int16","number",["number","number","number","number","number"],[t,n,0,s,0]);case b.INTEGER:return e.ccall("duckdb_value_int32","number",["number","number","number","number","number"],[t,n,0,s,0]);case b.BIGINT:{let i=e.ccall("duckdb_value_varchar","number",["number","number","number","number","number"],[t,n,0,s,0]);if(i){let a=e.UTF8ToString(i);e._free(i);let c=Number(a);return Number.isSafeInteger(c)?c:a}return null}case b.UTINYINT:return e.ccall("duckdb_value_uint8","number",["number","number","number","number","number"],[t,n,0,s,0]);case b.USMALLINT:return e.ccall("duckdb_value_uint16","number",["number","number","number","number","number"],[t,n,0,s,0]);case b.UINTEGER:return e.ccall("duckdb_value_uint32","number",["number","number","number","number","number"],[t,n,0,s,0])>>>0;case b.UBIGINT:{let i=e.ccall("duckdb_value_varchar","number",["number","number","number","number","number"],[t,n,0,s,0]);if(i){let a=e.UTF8ToString(i);e._free(i);let c=Number(a);return Number.isSafeInteger(c)?c:a}return null}case b.FLOAT:return e.ccall("duckdb_value_float","number",["number","number","number","number","number"],[t,n,0,s,0]);case b.DOUBLE:return e.ccall("duckdb_value_double","number",["number","number","number","number","number"],[t,n,0,s,0]);default:{let i=e.ccall("duckdb_value_varchar","number",["number","number","number","number","number"],[t,n,0,s,0]);if(i){let a=e.UTF8ToString(i);return e._free(i),a}return null}}}buildArrowTable(e,t){let n=this.getColumnInfo(e,t),s=e.ccall("duckdb_row_count","number",["number"],[t]),o=n.length,i={};for(let c=0;c<o;c++){let l=n[c],d=this.getFlechetteType(l.type),f=[];for(let p=0;p<s;p++)e.ccall("duckdb_value_is_null","number",["number","number","number","number","number"],[t,c,0,p,0])?f.push(null):f.push(this.extractValue(e,t,c,p,l.type));i[l.name]={type:d,values:f};}let a={};for(let[c,{values:l}]of Object.entries(i))a[c]=l;return Nr(a)}getFlechetteType(e){switch(e){case b.BOOLEAN:return Ae();case b.TINYINT:return X();case b.SMALLINT:return Z();case b.INTEGER:return U();case b.BIGINT:return ee();case b.UTINYINT:return xe();case b.USMALLINT:return Se();case b.UINTEGER:return we();case b.UBIGINT:return Fe();case b.FLOAT:return Oe();case b.DOUBLE:return Q();case b.VARCHAR:return te();case b.DATE:return Ce();case b.TIMESTAMP:case b.TIMESTAMP_TZ:return le(E.MICROSECOND);default:return te()}}};var Ns=new cr;self.onmessage=r=>{Ns.onMessage(r);};self.postMessage({type:"WORKER_READY"});//# sourceMappingURL=worker.js.map
3
3
  //# sourceMappingURL=worker.js.map