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