@ducklings/browser 1.4.3-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/worker.js ADDED
@@ -0,0 +1,3 @@
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
3
+ //# sourceMappingURL=worker.js.map