New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@uwdata/flechette

Package Overview
Dependencies
Maintainers
0
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@uwdata/flechette - npm Package Compare versions

Comparing version 1.0.0-beta.3 to 1.0.0

docs/api/schema.md

2

dist/flechette.min.js

@@ -1,2 +0,2 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).fl={})}(this,(function(t){"use strict";const e=Uint8Array.of(65,82,82,79,87,49),n={V1:0,V2:1,V3:2,V4:3,V5:4},s={Little:0,Big:1},r={NONE:0,Schema:1,DictionaryBatch:2,RecordBatch:3,Tensor:4,SparseTensor:5},i={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},a={HALF:0,SINGLE:1,DOUBLE:2},c={DAY:0,MILLISECOND:1},u={SECOND:0,MILLISECOND:1,MICROSECOND:2,NANOSECOND:3},o={YEAR_MONTH:0,DAY_TIME:1,MONTH_DAY_NANO:2},d={Sparse:0,Dense:1},l=Uint8Array,h=Uint16Array,f=Uint32Array,y=BigUint64Array,p=Int8Array,I=Int16Array,b=Int32Array,g=BigInt64Array,v=Float32Array,w=Float64Array;function m(t,e){const n=Math.log2(t)-3;return(e?[p,I,b,g]:[l,h,f,y])[n]}const x=Object.getPrototypeOf(Int8Array);function O(t){return t instanceof x}function L(t){return Array.isArray(t)||O(t)}function E(t){return t===g||t===y}function D(t,e){let n=0,s=t.length;if(s<=2147483648)do{const r=n+s>>>1;t[r]<=e?n=r+1:s=r}while(n<s);else do{const r=Math.trunc((n+s)/2);t[r]<=e?n=r+1:s=r}while(n<s);return n}function A(t,e,n=0){const s=new t.constructor(e);return s.set(t,n),s}function N(t,e,n){for(;t.length<=e;)t=A(t,t.length<<1,n?t.length:0);return t}function S(t,e,n){if(e(t))return t;throw new Error(n(t))}function B(t,e,n){return e=Array.isArray(e)?e:Object.values(e),S(t,(t=>e.includes(t)),n??(()=>`${t} must be one of ${e}`))}function M(t,e){for(const[n,s]of Object.entries(t))if(s===e)return n;return"<Unknown>"}const C=t=>`Unsupported data type: "${M(i,t)}" (id ${t})`,V=(t,e,n=!0,s=null)=>({name:t,type:e,nullable:n,metadata:s});function T(t){return Object.hasOwn(t,"name")&&U(t.type)}function U(t){return"number"==typeof t?.typeId}function F(t,e="",n=!0){return T(t)?t:V(e,S(t,U,(()=>"Data type expected.")),n)}const j=t=>({typeId:t}),k=(t,e,n=!1,s=-1)=>({typeId:i.Dictionary,id:s,dictionary:t,indices:e||Y(),ordered:n}),R=()=>j(i.Null),z=(t=32,e=!0)=>({typeId:i.Int,bitWidth:B(t,[8,16,32,64]),signed:e,values:m(t,e)}),_=()=>z(8),$=()=>z(16),Y=()=>z(32),P=()=>z(64),H=()=>z(8,!1),W=()=>z(16,!1),G=()=>z(32,!1),J=()=>z(64,!1),X=(t=2)=>({typeId:i.Float,precision:B(t,a),values:[h,v,w][t]}),q=()=>X(a.SINGLE),K=()=>X(a.DOUBLE),Q=()=>({typeId:i.Binary,offsets:b}),Z=()=>({typeId:i.Utf8,offsets:b}),tt=()=>j(i.Bool),et=(t,e,n=128)=>({typeId:i.Decimal,precision:t,scale:e,bitWidth:B(n,[128,256]),values:y}),nt=t=>({typeId:i.Date,unit:B(t,c),values:t===c.DAY?b:g}),st=()=>nt(c.DAY),rt=(t=u.MILLISECOND,e=32)=>({typeId:i.Time,unit:B(t,u),bitWidth:B(e,[32,64]),values:32===e?b:g}),it=(t=u.MILLISECOND,e=null)=>({typeId:i.Timestamp,unit:B(t,u),timezone:e,values:g}),at=(t=o.MONTH_DAY_NANO)=>({typeId:i.Interval,unit:B(t,o),values:t===o.MONTH_DAY_NANO?void 0:b}),ct=t=>({typeId:i.List,children:[F(t)],offsets:b}),ut=t=>({typeId:i.Struct,children:Array.isArray(t)&&T(t[0])?t:Object.entries(t).map((([t,e])=>V(t,e)))}),ot=(t,e,n,s)=>(n??=e.map(((t,e)=>e)),{typeId:i.Union,mode:B(t,d),typeIds:n,typeMap:n.reduce(((t,e,n)=>(t[e]=n,t)),{}),children:e.map(((t,e)=>F(t,`_${e}`))),typeIdForValue:s,offsets:b}),dt=t=>({typeId:i.FixedSizeBinary,stride:t}),lt=(t,e)=>({typeId:i.FixedSizeList,stride:e,children:[F(t)]}),ht=(t,e)=>({typeId:i.Map,keysSorted:t,children:[e],offsets:b}),ft=(t=u.MILLISECOND)=>({typeId:i.Duration,unit:B(t,u),values:g}),yt=()=>({typeId:i.LargeBinary,offsets:g}),pt=()=>({typeId:i.LargeUtf8,offsets:g}),It=t=>({typeId:i.LargeList,children:[F(t)],offsets:g}),bt=(t,e)=>({typeId:i.RunEndEncoded,children:[S(F(t,"run_ends"),(t=>t.type.typeId===i.Int),(()=>"Run-ends must have an integer type.")),F(e,"values")]}),gt=t=>({typeId:i.ListView,children:[F(t,"value")],offsets:b}),vt=t=>({typeId:i.LargeListView,children:[F(t,"value")],offsets:g}),wt=new w(2),mt=wt.buffer,xt=new g(mt),Ot=new f(mt),Lt=new b(mt),Et=new l(mt);function Dt(t){return t}function At(t){return BigInt(t)}function Nt(t){return E(t)?At:Dt}function St(t){return t/864e5|0}function Bt(t){if(t>Number.MAX_SAFE_INTEGER||t<Number.MIN_SAFE_INTEGER)throw Error(`BigInt exceeds integer number representation: ${t}`);return Number(t)}function Mt(t,e){return Number(t/e)+Number(t%e)/Number(e)}const Ct=t=>BigInt.asUintN(64,t);function Vt(t,e){const n=e<<1;let s;return BigInt.asIntN(64,t[n+1])<0?(s=Ct(~t[n])|Ct(~t[n+1])<<64n,s=-(s+1n)):s=t[n]|t[n+1]<<64n,s}function Tt(t,e){const n=e<<2;let s;return BigInt.asIntN(64,t[n+3])<0?(s=Ct(~t[n])|Ct(~t[n+1])<<64n|Ct(~t[n+2])<<128n|Ct(~t[n+3])<<192n,s=-(s+1n)):s=t[n]|t[n+1]<<64n|t[n+2]<<128n|t[n+3]<<192n,s}function Ut(t){if(t!=t)return 32256;wt[0]=t;const e=(2147483648&Ot[1])>>16&65535;let n=2146435072&Ot[1],s=0;return n>=1089470464?Ot[0]>0?n=31744:(n=(2080374784&n)>>16,s=(1048575&Ot[1])>>10):n<=1056964608?(s=1048576+(1048575&Ot[1]),s=1048576+(s<<(n>>20)-998)>>21,n=0):(n=n-1056964608>>10,s=512+(1048575&Ot[1])>>10),e|n|65535&s}const Ft=new TextDecoder("utf-8"),jt=new TextEncoder;function kt(t){return Ft.decode(t)}function Rt(t){return jt.encode(t)}function zt(t){return`${"object"==typeof t&&t?function(t){return t instanceof Date}(t)?+t:L(t)?`[${t.map(zt)}]`:function(t){let e="",n=-1;for(const s in t)++n>0&&(e+=","),e+=`"${s}":${zt(t[s])}`;return`{${e}}`}(t):t??null}`}const _t=4;function $t(t,e){return!!(t[e>>3]&1<<e%8)}function Yt(t,e){const n=e+Jt(t,e),s=n-Jt(t,n),r=Gt(t,s);return(e,i,a=null)=>{if(e<r){const r=Gt(t,s+e);if(r)return i(t,n+r)}return a}}function Pt(t,e){return e}function Ht(t,e){return!!function(t,e){return Wt(t,e)<<24>>24}(t,e)}function Wt(t,e){return t[e]}function Gt(t,e){return function(t,e){return t[e]|t[e+1]<<8}(t,e)<<16>>16}function Jt(t,e){return t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24}function Xt(t,e){return Jt(t,e)>>>0}function qt(t,e){return Bt(BigInt.asIntN(64,BigInt(Xt(t,e))+(BigInt(Xt(t,e+_t))<<32n)))}function Kt(t,e){let n=e+Jt(t,e);const s=Jt(t,n);return n+=_t,kt(t.subarray(n,n+s))}function Qt(t,e,n,s){if(!e)return[];const r=e+Jt(t,e);return Array.from({length:Jt(t,r)},((e,i)=>s(t,r+_t+i*n)))}const Zt=Symbol("rowIndex");function te(t,e){class n{constructor(t){this[Zt]=t}toJSON(){return ne(t,e,this[Zt])}}const s=n.prototype;for(let n=0;n<t.length;++n){if(Object.hasOwn(s,t[n]))continue;const r=e[n];Object.defineProperty(s,t[n],{get(){return r.at(this[Zt])},enumerable:!0})}return t=>new n(t)}function ee(t,e){return n=>ne(t,e,n)}function ne(t,e,n){const s={};for(let r=0;r<t.length;++r)s[t[r]]=e[r].at(n);return s}class se{static ArrayType=null;constructor({length:t,nullCount:e,type:n,validity:s,values:r,offsets:i,sizes:a,children:c}){this.length=t,this.nullCount=e,this.type=n,this.validity=s,this.values=r,this.offsets=i,this.sizes=a,this.children=c,e&&this.validity||(this.at=t=>this.value(t))}get[Symbol.toStringTag](){return"Batch"}at(t){return this.isValid(t)?this.value(t):null}isValid(t){return $t(this.validity,t)}value(t){return this.values[t]}slice(t,e){const n=e-t,s=Array(n);for(let e=0;e<n;++e)s[e]=this.at(t+e);return s}*[Symbol.iterator](){for(let t=0;t<this.length;++t)yield this.at(t)}}class re extends se{constructor(t){super(t);const{length:e,values:n}=this;this.values=n.subarray(0,e)}slice(t,e){return this.nullCount?super.slice(t,e):this.values.subarray(t,e)}[Symbol.iterator](){return this.nullCount?super[Symbol.iterator]():this.values[Symbol.iterator]()}}class ie extends se{static ArrayType=w}class ae extends se{static ArrayType=Array}class ce extends ae{value(t){return null}}class ue extends ie{value(t){return Bt(this.values[t])}}class oe extends ie{value(t){const e=this.values[t],n=(31744&e)>>10,s=(1023&e)/1024,r=(-1)**((32768&e)>>15);switch(n){case 31:return r*(s?Number.NaN:1/0);case 0:return r*(s?6103515625e-14*s:0)}return r*2**(n-15)*(1+s)}}class de extends ae{value(t){return $t(this.values,t)}}class le extends se{constructor(t){super(t);const{bitWidth:e,scale:n}=this.type;this.decimal=128===e?Vt:Tt,this.scale=10n**BigInt(n)}}class he extends le{static ArrayType=w;value(t){return Mt(this.decimal(this.values,t),this.scale)}}class fe extends le{static ArrayType=Array;value(t){return this.decimal(this.values,t)}}class ye extends ae{constructor(t){super(t),this.source=t}value(t){return new Date(this.source.value(t))}}class pe extends ie{value(t){return 864e5*this.values[t]}}const Ie=ue;class be extends ue{value(t){return 1e3*super.value(t)}}const ge=ue;class ve extends ue{value(t){return Mt(this.values[t],1000n)}}class we extends ue{value(t){return Mt(this.values[t],1000000n)}}class me extends ae{value(t){return this.values.subarray(t<<1,t+1<<1)}}class xe extends ae{value(t){const e=this.values,n=t<<4;return Float64Array.of(Jt(e,n),Jt(e,n+4),qt(e,n+8))}}const Oe=({values:t,offsets:e},n)=>t.subarray(e[n],e[n+1]),Le=({values:t,offsets:e},n)=>t.subarray(Bt(e[n]),Bt(e[n+1]));class Ee extends ae{value(t){return Oe(this,t)}}class De extends ae{value(t){return Le(this,t)}}class Ae extends ae{value(t){return kt(Oe(this,t))}}class Ne extends ae{value(t){return kt(Le(this,t))}}class Se extends ae{value(t){const e=this.offsets;return this.children[0].slice(e[t],e[t+1])}}class Be extends ae{value(t){const e=this.offsets;return this.children[0].slice(Bt(e[t]),Bt(e[t+1]))}}class Me extends ae{value(t){const e=this.offsets[t],n=e+this.sizes[t];return this.children[0].slice(e,n)}}class Ce extends ae{value(t){const e=this.offsets[t],n=e+this.sizes[t];return this.children[0].slice(Bt(e),Bt(n))}}class Ve extends ae{constructor(t){super(t),this.stride=this.type.stride}}class Te extends Ve{value(t){const{stride:e,values:n}=this;return n.subarray(t*e,(t+1)*e)}}class Ue extends Ve{value(t){const{children:e,stride:n}=this;return e[0].slice(t*n,(t+1)*n)}}function Fe({children:t,offsets:e},n){const[s,r]=t[0].children,i=e[n],a=e[n+1],c=[];for(let t=i;t<a;++t)c.push([s.at(t),r.at(t)]);return c}class je extends ae{value(t){return Fe(this,t)}}class ke extends ae{value(t){return new Map(Fe(this,t))}}class Re extends ae{constructor({typeIds:t,...e}){super(e),this.typeIds=t,this.typeMap=this.type.typeMap}value(t,e=t){const{typeIds:n,children:s,typeMap:r}=this;return s[r[n[t]]].at(e)}}class ze extends Re{value(t){return super.value(t,this.offsets[t])}}class _e extends ae{constructor(t,e=ee){super(t),this.names=this.type.children.map((t=>t.name)),this.factory=e(this.names,this.children)}value(t){return this.factory(t)}}class $e extends _e{constructor(t){super(t,te)}}class Ye extends ae{value(t){const[{values:e},n]=this.children;return n.at(D(e,t))}}class Pe extends ae{setDictionary(t){return this.dictionary=t,this.cache=t.cache(),this}value(t){return this.cache[this.key(t)]}key(t){return this.values[t]}}class He extends ae{constructor({data:t,...e}){super(e),this.data=t}view(t){const{values:e,data:n}=this,s=t<<4;let r=s+4,i=e;const a=Jt(i,s);return a>12&&(r=Jt(i,s+12),i=n[Jt(i,s+8)]),i.subarray(r,r+a)}}class We extends He{value(t){return this.view(t)}}class Ge extends He{value(t){return kt(this.view(t))}}function Je(){let t=[];return{add(e){return t.push(e),this},clear:()=>t=[],done:()=>new Xe(t)}}class Xe{constructor(t){this.type=t[0].type,this.length=t.reduce(((t,e)=>t+e.length),0),this.nullCount=t.reduce(((t,e)=>t+e.nullCount),0),this.data=t;const e=t.length,n=new Int32Array(e+1);if(1===e){const[e]=t;n[1]=e.length,this.at=t=>e.at(t)}else for(let s=0,r=0;s<e;++s)n[s+1]=r+=t[s].length;this.offsets=n}get[Symbol.toStringTag](){return"Column"}[Symbol.iterator](){const t=this.data;return 1===t.length?t[0][Symbol.iterator]():function*(t){for(let e=0;e<t.length;++e){const n=t[e][Symbol.iterator]();for(let t=n.next();!t.done;t=n.next())yield t.value}}(t)}at(t){const{data:e,offsets:n}=this,s=D(n,t)-1;return e[s]?.at(t-n[s])}get(t){return this.at(t)}toArray(){const{length:t,nullCount:e,data:n}=this,s=!e&&n[0]instanceof re;const r=n.length;if(s&&1===r)return n[0].values;const i=new(!r||e>0?Array:n[0].constructor.ArrayType??n[0].values.constructor)(t);return s?function(t,e){for(let n=0,s=0;n<e.length;++n){const{values:r}=e[n];t.set(r,s),s+=r.length}return t}(i,n):function(t,e){let n=-1;for(let s=0;s<e.length;++s){const r=e[s];for(let e=0;e<r.length;++e)t[++n]=r.at(e)}return t}(i,n)}cache(){return this._cache??(this._cache=this.toArray())}}class qe{constructor(t,e,n=!1){const s=t.fields.map((t=>t.name));this.schema=t,this.names=s,this.children=e,this.factory=n?te:ee;const r=[];this.getFactory=t=>r[t]??(r[t]=this.factory(s,e.map((e=>e.data[t]))))}get[Symbol.toStringTag](){return"Table"}get numCols(){return this.names.length}get numRows(){return this.children[0]?.length??0}getChildAt(t){return this.children[t]}getChild(t){const e=this.names.findIndex((e=>e===t));return e>-1?this.children[e]:void 0}selectAt(t,e=[]){const{children:n,factory:s,schema:r}=this,{fields:i}=r;return new qe({...r,fields:t.map(((t,n)=>function(t,e){return null!=e&&e!==t.name?{...t,name:e}:t}(i[t],e[n])))},t.map((t=>n[t])),s===te)}select(t,e){const n=this.names,s=t.map((t=>n.indexOf(t)));return this.selectAt(s,e)}toColumns(){const{children:t,names:e}=this,n={};return e.forEach(((e,s)=>n[e]=t[s]?.toArray()??[])),n}toArray(){const{children:t,getFactory:e,numRows:n}=this,s=t[0]?.data??[],r=Array(n);for(let t=0,n=-1;t<s.length;++t){const i=e(t);for(let e=0;e<s[t].length;++e)r[++n]=i(e)}return r}*[Symbol.iterator](){const{children:t,getFactory:e}=this,n=t[0]?.data??[];for(let t=0;t<n.length;++t){const s=e(t);for(let e=0;e<n[t].length;++e)yield s(e)}}at(t){const{children:e,getFactory:n,numRows:s}=this;if(t<0||t>=s)return null;const[{offsets:r}]=e,i=D(r,t)-1;return n(i)(t-r[i])}get(t){return this.at(t)}}function Ke(t,e={}){const{typeId:n,bitWidth:s,precision:r,unit:a}=t,{useBigInt:d,useDate:l,useDecimalBigInt:h,useMap:f,useProxy:y}=e;switch(n){case i.Null:return ce;case i.Bool:return de;case i.Int:case i.Time:case i.Duration:return d||s<64?re:ue;case i.Float:return r?re:oe;case i.Date:return Qe(a===c.DAY?pe:Ie,l&&ye);case i.Timestamp:return Qe(a===u.SECOND?be:a===u.MILLISECOND?ge:a===u.MICROSECOND?ve:we,l&&ye);case i.Decimal:return h?fe:he;case i.Interval:return a===o.DAY_TIME?me:a===o.YEAR_MONTH?re:xe;case i.FixedSizeBinary:return Te;case i.Utf8:return Ae;case i.LargeUtf8:return Ne;case i.Binary:return Ee;case i.LargeBinary:return De;case i.BinaryView:return We;case i.Utf8View:return Ge;case i.List:return Se;case i.LargeList:return Be;case i.Map:return f?ke:je;case i.ListView:return Me;case i.LargeListView:return Ce;case i.FixedSizeList:return Ue;case i.Struct:return y?$e:_e;case i.RunEndEncoded:return Ye;case i.Dictionary:return Pe;case i.Union:return t.mode?ze:Re}throw new Error(C(n))}function Qe(t,e){return e?class extends e{constructor(e){super(new t(e))}}:t}function Ze(t,e){return{offset:qt(t,e),metadataLength:Jt(t,e+8),bodyLength:qt(t,e+16)}}function tn(t,e){return Qt(t,e,24,Ze)}function en(t,e,s){const r=Yt(t,e);if(r(10,Pt,0))throw new Error("Record batch compression not implemented");const i=s<n.V4?8:0;return{length:r(4,qt,0),nodes:Qt(t,r(6,Pt),16,((t,e)=>({length:qt(t,e),nullCount:qt(t,e+8)}))),regions:Qt(t,r(8,Pt),16+i,((t,e)=>({offset:qt(t,e+i),length:qt(t,e+i+8)}))),variadic:Qt(t,r(12,Pt),8,qt)}}function nn(t,e,n){const s=Yt(t,e);return{id:s(4,qt,0),data:s(6,((t,e)=>en(t,e,n))),isDelta:s(8,Ht,!1)}}function sn(t,e,n,s){B(n,i,C);const r=Yt(t,e);switch(n){case i.Binary:return Q();case i.Utf8:return Z();case i.LargeBinary:return yt();case i.LargeUtf8:return pt();case i.List:return ct(s[0]);case i.ListView:return gt(s[0]);case i.LargeList:return It(s[0]);case i.LargeListView:return vt(s[0]);case i.Struct:return ut(s);case i.RunEndEncoded:return bt(s[0],s[1]);case i.Int:return z(r(4,Jt,0),r(6,Ht,!1));case i.Float:return X(r(4,Gt,a.HALF));case i.Decimal:return et(r(4,Jt,0),r(6,Jt,0),r(8,Jt,128));case i.Date:return nt(r(4,Gt,c.MILLISECOND));case i.Time:return rt(r(4,Gt,u.MILLISECOND),r(6,Jt,32));case i.Timestamp:return it(r(4,Gt,u.SECOND),r(6,Kt));case i.Interval:return at(r(4,Gt,o.YEAR_MONTH));case i.Duration:return ft(r(4,Gt,u.MILLISECOND));case i.FixedSizeBinary:return dt(r(4,Jt,0));case i.FixedSizeList:return lt(s[0],r(4,Jt,0));case i.Map:return ht(r(4,Ht,!1),s[0]);case i.Union:return ot(r(4,Gt,d.Sparse),s,Qt(t,r(6,Pt),4,Jt))}return{typeId:n}}function rn(t,e){const n=Qt(t,e,4,((t,e)=>{const n=Yt(t,e);return[n(4,Kt),n(6,Kt)]}));return n.length?new Map(n):null}function an(t,e,n){const s=Yt(t,e);return{version:n,endianness:s(4,Gt,0),fields:s(6,cn,[]),metadata:s(8,rn)}}function cn(t,e){return Qt(t,e,4,un)}function un(t,e){const n=Yt(t,e),s=n(8,Wt,i.NONE),r=n(10,Pt,0),a=n(12,on),c=n(14,((t,e)=>function(t,e){const n=Qt(t,e,4,un);return n.length?n:null}(t,e)));let u=sn(t,r,s,c);return a&&(a.dictionary=u,u=a),{name:n(4,Kt),type:u,nullable:n(6,Ht,!1),metadata:n(16,rn)}}function on(t,e){if(!e)return null;const n=Yt(t,e);return k(null,n(6,dn,Y()),n(8,Ht,!1),n(4,qt,0))}function dn(t,e){return sn(t,e,i.Int)}const ln=(t,e)=>`Expected to read ${t} metadata bytes, but only read ${e}.`,hn=(t,e)=>`Expected to read ${t} bytes for message body, but only read ${e}.`,fn=t=>`Unsupported message type: ${t} (${M(r,t)})`;function yn(t,e){let s=Jt(t,e)||0;if(e+=_t,-1===s&&(s=Jt(t,e)||0,e+=_t),0===s)return null;const i=t.subarray(e,e+=s);if(i.byteLength<s)throw new Error(ln(s,i.byteLength));const a=Yt(i,0),c=a(4,Gt,n.V1),u=a(6,Wt,r.NONE),o=a(8,Pt,0),d=a(10,qt,0);let l;if(o){const n=u===r.Schema?an:u===r.DictionaryBatch?nn:u===r.RecordBatch?en:null;if(!n)throw new Error(fn(u));if(l=n(i,o,c),d>0){const n=t.subarray(e,e+=d);if(n.byteLength<d)throw new Error(hn(d,n.byteLength));l.body=n}}return{version:c,type:u,index:e,content:l}}function pn(t){const s=t instanceof ArrayBuffer?new Uint8Array(t):t;return!Array.isArray(s)&&function(t){if(!t||t.length<4)return!1;for(let n=0;n<6;++n)if(e[n]!==t[n])return!1;return!0}(s)?function(t){const s=t.byteLength-(e.length+4),r=Jt(t,s),i=Yt(t,s-r),a=i(4,Gt,n.V1),c=i(8,tn,[]),u=i(10,tn,[]);return{schema:i(6,((t,e)=>an(t,e,a))),dictionaries:c.map((({offset:e})=>yn(t,e).content)),records:u.map((({offset:e})=>yn(t,e).content)),metadata:i(12,rn)}}(s):function(t){const e=[t].flat();let n;const s=[],i=[];for(const t of e){let e=0;for(;;){const a=yn(t,e);if(null===a)break;if(e=a.index,a.content)switch(a.type){case r.Schema:n||(n=a.content);break;case r.RecordBatch:s.push(a.content);break;case r.DictionaryBatch:i.push(a.content)}}}return{schema:n,dictionaries:i,records:s,metadata:null}}(s)}function In(t,e){const{typeId:s}=t,{length:r,options:a,node:c,buffer:u,variadic:o,version:l}=e,h=Ke(t,a);if(s===i.Null)return new h({length:r,nullCount:r,type:t});const f={...c(),type:t};switch(s){case i.Bool:case i.Int:case i.Time:case i.Duration:case i.Float:case i.Decimal:case i.Date:case i.Timestamp:case i.Interval:case i.FixedSizeBinary:return new h({...f,validity:u(),values:u(t.values)});case i.Utf8:case i.LargeUtf8:case i.Binary:case i.LargeBinary:return new h({...f,validity:u(),offsets:u(t.offsets),values:u()});case i.BinaryView:case i.Utf8View:return new h({...f,validity:u(),values:u(),data:Array.from({length:o()},(()=>u()))});case i.List:case i.LargeList:case i.Map:return new h({...f,validity:u(),offsets:u(t.offsets),children:e.visit(t.children)});case i.ListView:case i.LargeListView:return new h({...f,validity:u(),offsets:u(t.offsets),sizes:u(t.offsets),children:e.visit(t.children)});case i.FixedSizeList:case i.Struct:return new h({...f,validity:u(),children:e.visit(t.children)});case i.RunEndEncoded:return new h({...f,children:e.visit(t.children)});case i.Dictionary:{const{id:n,indices:s}=t;return new h({...f,validity:u(),values:u(s.values)}).setDictionary(e.dictionary(n))}case i.Union:return l<n.V5&&u(),new h({...f,typeIds:u(p),offsets:t.mode===d.Sparse?null:u(t.offsets),children:e.visit(t.children)});default:throw new Error(C(s))}}function bn(t,e,n){t[e]=n,t[e+1]=n>>8,t[e+2]=n>>16,t[e+3]=n>>24}const gn=1024;class vn{constructor(t){this.sink=t,this.minalign=1,this.buf=new Uint8Array(gn),this.space=gn,this.vtables=[],this.outputBytes=0}offset(){return this.buf.length-this.space}writeInt8(t){this.buf[this.space-=1]=t}writeInt16(t){this.buf[this.space-=2]=t,this.buf[this.space+1]=t>>8}writeInt32(t){bn(this.buf,this.space-=4,t)}writeInt64(t){const e=BigInt(t);this.writeInt32(Number(BigInt.asIntN(32,e>>BigInt(32)))),this.writeInt32(Number(BigInt.asIntN(32,e)))}addInt8(t){wn(this,1,0),this.writeInt8(t)}addInt16(t){wn(this,2,0),this.writeInt16(t)}addInt32(t){wn(this,4,0),this.writeInt32(t)}addInt64(t){wn(this,8,0),this.writeInt64(t)}addOffset(t){wn(this,_t,0),this.writeInt32(this.offset()-t+_t)}addObject(t,e){const n=function(t,e){const n=Array(e).fill(0),s=t.offset();function r(e){n[e]=t.offset()}return{addInt8(e,n,s){n!=s&&(t.addInt8(n),r(e))},addInt16(e,n,s){n!=s&&(t.addInt16(n),r(e))},addInt32(e,n,s){n!=s&&(t.addInt32(n),r(e))},addInt64(e,n,s){n!=s&&(t.addInt64(n),r(e))},addOffset(e,n,s){n!=s&&(t.addOffset(n),r(e))},finish(){t.addInt32(0);const r=t.offset();let i=e;for(;--i>=0&&0===n[i];);const a=i+1;for(;i>=0;--i)t.addInt16(n[i]?r-n[i]:0);const c=2;t.addInt16(r-s);const u=2*(a+c);t.addInt16(u);let o=0;const{buf:d,vtables:l,space:h}=t;t:for(i=0;i<l.length;++i){const t=d.length-l[i];if(u==Gt(d,t)){for(let e=2;e<u;e+=2)if(Gt(d,h+e)!=Gt(d,t+e))continue t;o=l[i];break}}if(o)t.space=d.length-r,bn(d,t.space,o-r);else{const e=t.offset();l.push(e),bn(d,d.length-r,e-r)}return r}}}(this,t);return e?.(n),n.finish()}addVector(t,e,n,s){const r=t?.length;if(!r)return 0;wn(this,_t,e*r),wn(this,n,e*r);for(let e=r;--e>=0;)s(this,t[e]);return this.writeInt32(r),this.offset()}addOffsetVector(t){return this.addVector(t,4,4,((t,e)=>t.addOffset(e)))}addString(t){if(null==t)return 0;const e=Rt(t),n=e.length;return this.addInt8(0),wn(this,_t,n),this.buf.set(e,this.space-=n),this.writeInt32(n),this.offset()}finish(t){wn(this,this.minalign,_t),this.addOffset(t)}flush(){const{buf:t,sink:e}=this,n=t.subarray(this.space,t.length);e.write(n),this.outputBytes+=n.byteLength,this.minalign=1,this.vtables=[],this.buf=new Uint8Array(gn),this.space=gn}addBuffer(t){const e=t.byteLength;if(!e)return 0;this.sink.write(t),this.outputBytes+=e;const n=(e+7&-8)-e;return this.addPadding(n),e+n}addPadding(t){t>0&&(this.sink.write(new Uint8Array(t)),this.outputBytes+=t)}}function wn(t,e,n){let{buf:s,space:r,minalign:i}=t;e>i&&(t.minalign=e);const a=s.length,c=a-r+n,u=1+~c&e-1;s=N(s,c+u+e-1,!0),r+=s.length-a;for(let t=0;t<u;++t)s[--r]=0;t.buf=s,t.space=r}function mn(t,e){const{nodes:n,regions:s,variadic:r}=e,i=t.addVector(n,16,8,((t,e)=>(t.writeInt64(e.nullCount),t.writeInt64(e.length),t.offset()))),a=t.addVector(s,16,8,((t,e)=>(t.writeInt64(e.length),t.writeInt64(e.offset),t.offset()))),c=t.addVector(r,8,8,((t,e)=>t.addInt64(e)));return t.addObject(5,(t=>{t.addInt64(0,n[0].length,0),t.addOffset(1,i,0),t.addOffset(2,a,0),t.addOffset(4,c,0)}))}function xn(t,e){const n=mn(t,e.data);return t.addObject(3,(t=>{t.addInt64(0,e.id,0),t.addOffset(1,n,0),t.addInt8(2,+e.isDelta,0)}))}function On(t,e){return e?.size>0?t.addOffsetVector(Array.from(e,(([e,n])=>{const s=t.addString(`${e}`),r=t.addString(`${n}`);return t.addObject(2,(t=>{t.addOffset(0,s,0),t.addOffset(1,r,0)}))}))):0}function Ln(t,e){switch(B(e.typeId,i,C)){case i.Dictionary:return function(t,e){const n=function(t){return t.typeId===i.Int&&32===t.bitWidth&&t.signed}(e.indices)?0:Ln(t,e.indices);return t.addObject(4,(t=>{t.addInt64(0,e.id,0),t.addOffset(1,n,0),t.addInt8(2,+e.ordered,0)}))}(t,e);case i.Int:return function(t,e){return t.addObject(2,(t=>{t.addInt32(0,e.bitWidth,0),t.addInt8(1,+e.signed,0)}))}(t,e);case i.Float:return function(t,e){return t.addObject(1,(t=>{t.addInt16(0,e.precision,a.HALF)}))}(t,e);case i.Decimal:return function(t,e){return t.addObject(3,(t=>{t.addInt32(0,e.precision,0),t.addInt32(1,e.scale,0),t.addInt32(2,e.bitWidth,128)}))}(t,e);case i.Date:return function(t,e){return t.addObject(1,(t=>{t.addInt16(0,e.unit,c.MILLISECOND)}))}(t,e);case i.Time:return function(t,e){return t.addObject(2,(t=>{t.addInt16(0,e.unit,u.MILLISECOND),t.addInt32(1,e.bitWidth,32)}))}(t,e);case i.Timestamp:return function(t,e){const n=t.addString(e.timezone);return t.addObject(2,(t=>{t.addInt16(0,e.unit,u.SECOND),t.addOffset(1,n,0)}))}(t,e);case i.Interval:return function(t,e){return t.addObject(1,(t=>{t.addInt16(0,e.unit,o.YEAR_MONTH)}))}(t,e);case i.Duration:return function(t,e){return t.addObject(1,(t=>{t.addInt16(0,e.unit,u.MILLISECOND)}))}(t,e);case i.FixedSizeBinary:case i.FixedSizeList:return function(t,e){return t.addObject(1,(t=>{t.addInt32(0,e.stride,0)}))}(t,e);case i.Map:return function(t,e){return t.addObject(1,(t=>{t.addInt8(0,+e.keysSorted,0)}))}(t,e);case i.Union:return function(t,e){const n=t.addVector(e.typeIds,4,4,((t,e)=>t.addInt32(e)));return t.addObject(2,(t=>{t.addInt16(0,e.mode,d.Sparse),t.addOffset(1,n,0)}))}(t,e)}return t.addObject(0)}const En=1===new Uint16Array(new Uint8Array([1,0]).buffer)[0];function Dn(t,e){const{fields:n,metadata:s}=e,r=n.map((e=>An(t,e))),i=t.addOffsetVector(r),a=On(t,s);return t.addObject(4,(t=>{t.addInt16(0,+!En,0),t.addOffset(1,i,0),t.addOffset(2,a,0)}))}function An(t,e){const{name:n,nullable:s,type:r,metadata:a}=e;let{typeId:c}=r,u=0,o=0;if(c!==i.Dictionary)u=Ln(t,r);else{const e=r.dictionary;c=e.typeId,o=Ln(t,r),u=Ln(t,e)}const d=(r.children||[]).map((e=>An(t,e))),l=t.addOffsetVector(d),h=On(t,a),f=t.addString(n);return t.addObject(7,(t=>{t.addOffset(0,f,0),t.addInt8(1,+s,0),t.addInt8(2,c,i.NONE),t.addOffset(3,u,0),t.addOffset(4,o,0),t.addOffset(5,l,0),t.addOffset(6,h,0)}))}function Nn(t,{offset:e,metadataLength:n,bodyLength:s}){return t.writeInt64(s),t.writeInt32(0),t.writeInt32(n),t.writeInt64(e),t.offset()}function Sn(t,e,s,i,a){t.finish(t.addObject(5,(t=>{t.addInt16(0,n.V5,n.V1),t.addInt8(1,e,r.NONE),t.addOffset(2,s,0),t.addInt64(3,i,0)})));const c=t.offset(),u=c+8+7&-8;a?.push({offset:t.outputBytes,metadataLength:u,bodyLength:i}),t.addInt32(u-8),t.addInt32(-1),t.flush(),t.addPadding(u-c-8)}class Bn{write(t){}pad(t){this.write(new Uint8Array(t))}finish(){return null}}class Mn extends Bn{constructor(){super(),this.buffers=[]}write(t){this.buffers.push(t)}finish(){const t=this.buffers,e=t.reduce(((t,e)=>t+e.byteLength),0),n=new Uint8Array(e);for(let e=0,s=0;e<t.length;++e)n.set(t[e],s),s+=t[e].byteLength;return n}}const Cn="stream",Vn="file";function Tn(t,{sink:s,format:i=Cn}={}){if(i!==Cn&&i!==Vn)throw new Error(`Unrecognized Arrow IPC format: ${i}`);const{schema:a,dictionaries:c=[],records:u=[],metadata:o}=t,d=new vn(s||new Mn),l=i===Vn,h=[],f=[];l?d.addBuffer(e):a&&Sn(d,r.Schema,Dn(d,a),0);for(const t of c){const{data:e}=t;Sn(d,r.DictionaryBatch,xn(d,t),e.byteLength,h),Un(d,e.buffers)}for(const t of u)Sn(d,r.RecordBatch,mn(d,t),t.byteLength,f),Un(d,t.buffers);return l&&function(t,s,r,i,a){const c=On(t,a),u=t.addVector(i,24,8,Nn),o=t.addVector(r,24,8,Nn),d=Dn(t,s);t.finish(t.addObject(5,(t=>{t.addInt16(0,n.V5,n.V1),t.addOffset(1,d,0),t.addOffset(2,o,0),t.addOffset(3,u,0),t.addOffset(4,c,0)})));const l=t.offset();t.addInt32(0),t.addInt32(-1),t.flush(),t.sink.write(new Uint8Array(Int32Array.of(l).buffer)),t.sink.write(e)}(d,a,h,f,o),d.sink}function Un(t,e){for(let n=0;n<e.length;++n)t.addBuffer(e[n])}function Fn(t,e){if(t?.type.typeId===i.Dictionary){const n=t.dictionary;e(n),Fn(n.data[0],e)}t?.children?.forEach((t=>Fn(t,e)))}function jn(t,e=0){const n=function(){let t=0;const e=[],n=[],s=[],r=[];return{node(t,n){e.push({length:t,nullCount:n})},buffer(e){const r=e.byteLength,i=r+7&-8;n.push({offset:t,length:i}),t+=i,s.push(new Uint8Array(e.buffer,e.byteOffset,r))},variadic(t){r.push(t)},children(t,e){t.children.forEach(((t,n)=>{kn(t.type,e.children[n],this)}))},done:()=>({byteLength:t,nodes:e,regions:n,variadic:r,buffers:s})}}();return t.forEach((t=>{kn(t.type,t.data[e],n)})),n.done()}function kn(t,e,n){const{typeId:s}=t;if(s!==i.Null)switch(n.node(e.length,e.nullCount),s){case i.Bool:case i.Int:case i.Time:case i.Duration:case i.Float:case i.Date:case i.Timestamp:case i.Decimal:case i.Interval:case i.FixedSizeBinary:case i.Dictionary:return n.buffer(e.validity),void n.buffer(e.values);case i.Utf8:case i.LargeUtf8:case i.Binary:case i.LargeBinary:return n.buffer(e.validity),n.buffer(e.offsets),void n.buffer(e.values);case i.BinaryView:case i.Utf8View:return n.buffer(e.validity),n.buffer(e.values),n.variadic(e.data.length),void e.data.forEach((t=>n.buffer(t)));case i.List:case i.LargeList:case i.Map:return n.buffer(e.validity),n.buffer(e.offsets),void n.children(t,e);case i.ListView:case i.LargeListView:return n.buffer(e.validity),n.buffer(e.offsets),n.buffer(e.sizes),void n.children(t,e);case i.FixedSizeList:case i.Struct:return n.buffer(e.validity),void n.children(t,e);case i.RunEndEncoded:return void n.children(t,e);case i.Union:return n.buffer(e.typeIds),t.mode===d.Dense&&n.buffer(e.offsets),void n.children(t,e);default:throw new Error(C(s))}}function Rn(t){return new zn(t)}class zn{constructor(t=l){this.buf=new t(512)}array(t){return function(t,e=t.length){const n=function(t,e=1){return(t*e+7&-8)/e}(e,t.BYTES_PER_ELEMENT);return t.length>n?t.subarray(0,n):t.length<n?A(t,n):t}(this.buf,t)}prep(t){t>=this.buf.length&&(this.buf=N(this.buf,t))}get(t){return this.buf[t]}set(t,e){this.prep(e),this.buf[e]=t}write(t,e){this.prep(e+t.length),this.buf.set(t,e)}}function _n(){return new $n}class $n extends zn{set(t){const e=t>>3;this.prep(e),this.buf[e]|=1<<t%8}}class Yn{constructor(t,e){this.type=t,this.ctx=e,this.batchClass=e.batchType(t)}init(){return this.index=-1,this}set(t,e){return this.index=e,!1}done(){return null}batch(){const t=new this.batchClass(this.done());return this.init(),t}}class Pn extends Yn{constructor(t,e){super(t,e)}init(){return this.nullCount=0,this.validity=_n(),super.init()}set(t,e){this.index=e;const n=null!=t;return n?this.validity.set(e):this.nullCount++,n}done(){const{index:t,nullCount:e,type:n,validity:s}=this;return{length:t+1,nullCount:e,type:n,validity:e?s.array(1+(t>>3)):new l(0)}}}function Hn(){const t=new Map,e=new Set;return{get(n,s){const r=n.id;if(r>=0&&t.has(r))return t.get(r);{const i=function(t,e){const n=Object.create(null),s=e.builder(t.dictionary),r=[];s.init();let i=-1;return{type:t,values:s,add:t=>(r.push(t),t),key(t){const e=zt(t);let r=n[e];return void 0===r&&(n[e]=r=++i,s.set(t,r)),r},finish(e){const n=new(Ke(t.dictionary,e))(s.done()),i=new Xe([n]);r.forEach((t=>t.setDictionary(i)))}}}(n,s);return r>=0&&t.set(r,i),e.add(i),i}},finish(t){e.forEach((e=>e.finish(t)))}}}class Wn extends Pn{constructor(t,e){super(t,e),this.dict=e.dictionary(t)}init(){return this.values=Rn(this.type.indices.values),super.init()}set(t,e){super.set(t,e)&&this.values.set(this.dict.key(t),e)}done(){return{...super.done(),values:this.values.array(this.index+1)}}batch(){return this.dict.add(super.batch())}}function Gn(t){const e=Jn();return t((t=>e.add(t))),e.type()}function Jn(){let t,e,n,s=0,r=0,i=0,a=0,c=0,u=0,o=0,d=0,l=0,h=0,f=0,y=1/0,p=-1/0,I=1/0,b=-1/0,g={};return{add(v){if(s++,null!=v)switch(typeof v){case"string":l++;break;case"number":a++,v<y&&(y=v),v>p&&(p=v),Number.isInteger(v)&&c++;break;case"bigint":u++,void 0===t?t=e=v:(v<t&&(t=v),v>e&&(e=v));break;case"boolean":i++;break;case"object":if(v instanceof Date)o++,+v%864e5==0&&d++;else if(L(v)){h++;const t=v.length;t<I&&(I=t),t>b&&(b=t),n??=Jn(),v.forEach(n.add)}else{f++;for(const t in v){(g[t]??(g[t]=Jn())).add(v[t])}}}else r++},type(){const v=s-r;return 0===v?R():c===v?function(t,e){const n=Math.max(Math.abs(t)-1,e);return n<128?_():n<32768?$():n<2**31?Y():K()}(y,p):a===v?K():u===v?function(t,e){const n=-t>e?-t-1n:e;if(n>=2**63)throw new Error(`BigInt exceeds 64 bits: ${n}`);return P()}(t,e):i===v?tt():d===v?st():o===v?it():l===v?k(Z()):h===v?function(t,e,n){return n===e?lt(t,e):ct(t)}(n.type(),I,b):f===v?ut(Object.entries(g).map((t=>V(t[0],t[1].type())))):function(){throw new Error("Mixed types detected, please define a union type.")}()}}}class Xn extends Pn{constructor(t,e){super(t,e),this.toOffset=Nt(t.offsets)}init(){return this.offsets=Rn(this.type.offsets),this.values=Rn(),this.pos=0,super.init()}set(t,e){const{offsets:n,values:s,toOffset:r}=this;super.set(t,e)&&(s.write(t,this.pos),this.pos+=t.length),n.set(r(this.pos),e+1)}done(){return{...super.done(),offsets:this.offsets.array(this.index+2),values:this.values.array(this.pos+1)}}}class qn extends Pn{constructor(t,e){super(t,e)}init(){return this.values=_n(),super.init()}set(t,e){super.set(t,e),t&&this.values.set(e)}done(){return{...super.done(),values:this.values.array(1+(this.index>>3))}}}class Kn extends Pn{constructor(t,e){super(t,e),this.scale=10**t.scale,this.stride=t.bitWidth>>6}init(){return this.values=Rn(this.type.values),super.init()}set(t,e){const{scale:n,stride:s,values:r}=this;super.set(t,e)&&(r.prep((e+1)*s),function(t,e,n,s,r){const i="bigint"==typeof t?t:At(Math.trunc(t*r));e[n]=i,e[n+1]=i>>64n,s>2&&(e[n+2]=i>>128n,e[n+3]=i>>192n)}(t,r.buf,e*s,s,n))}done(){const{index:t,stride:e,values:n}=this;return{...super.done(),values:n.array((t+1)*e)}}}class Qn extends Pn{constructor(t,e){super(t,e),this.stride=t.stride}init(){return this.values=Rn(),super.init()}set(t,e){super.set(t,e)&&this.values.write(t,e*this.stride)}done(){const{stride:t,values:e}=this;return{...super.done(),values:e.array(t*(this.index+1))}}}class Zn extends Pn{constructor(t,e){super(t,e),this.child=e.builder(this.type.children[0].type),this.stride=t.stride}init(){return this.child.init(),super.init()}set(t,e){const{child:n,stride:s}=this,r=e*s;if(super.set(t,e))for(let e=0;e<s;++e)n.set(t[e],r+e);else n.index=r+s}done(){const{child:t}=this;return{...super.done(),children:[t.batch()]}}}class ts extends Pn{init(){return this.values=Rn(this.type.values),super.init()}set(t,e){if(super.set(t,e)){const n=e<<1;this.values.set(t[0],n),this.values.set(t[1],n+1)}}done(){return{...super.done(),values:this.values.array(this.index+1<<1)}}}class es extends Pn{init(){return this.values=Rn(),super.init()}set(t,e){super.set(t,e)&&this.values.write(function([t,e,n]){return Lt[0]=t,Lt[1]=e,xt[1]=At(n),Et}(t),e<<4)}done(){return{...super.done(),values:this.values.array(this.index+1<<4)}}}class ns extends Pn{constructor(t,e,n){super(t,e),this.child=n}init(){this.child.init();const t=this.type.offsets;return this.offsets=Rn(t),this.toOffset=Nt(t),this.pos=0,super.init()}done(){return{...super.done(),offsets:this.offsets.array(this.index+2),children:[this.child.batch()]}}}class ss extends ns{constructor(t,e){super(t,e,e.builder(t.children[0].type))}set(t,e){const{child:n,offsets:s,toOffset:r}=this;super.set(t,e)&&t.forEach((t=>n.set(t,this.pos++))),s.set(r(this.pos),e+1)}}class rs extends Pn{constructor(t,e){super(t,e),this.children=t.children.map((t=>e.builder(t.type)))}init(){return this.children.forEach((t=>t.init())),super.init()}done(){const{children:t}=this;return t.forEach((t=>t.index=this.index)),{...super.done(),children:t.map((t=>t.batch()))}}}class is extends rs{constructor(t,e){super(t,e),this.setters=this.children.map(((e,n)=>{const s=t.children[n].name;return(t,n)=>e.set(t?.[s],n)}))}set(t,e){super.set(t,e);const n=this.setters;for(let s=0;s<n.length;++s)n[s](t,e)}}class as extends ns{constructor(t,e){super(t,e,new cs(t.children[0].type,e))}set(t,e){const{child:n,offsets:s,toOffset:r}=this;if(super.set(t,e))for(const e of t)n.set(e,this.pos++);s.set(r(this.pos),e+1)}}class cs extends rs{set(t,e){super.set(t,e);const[n,s]=this.children;n.set(t[0],e),s.set(t[1],e)}}const us={};class os extends Yn{constructor(t,e){super(t,e),this.children=t.children.map((t=>e.builder(t.type)))}init(){return this.pos=0,this.key=null,this.value=us,this.children.forEach((t=>t.init())),super.init()}next(){const[t,e]=this.children;t.set(this.index+1,this.pos),e.set(this.value,this.pos++)}set(t,e){if(t!==this.value){const e=zt(t);e!==this.key&&(this.key&&this.next(),this.key=e,this.value=t)}this.index=e}done(){this.next();const{children:t,index:e,type:n}=this;return{length:e+1,nullCount:0,type:n,children:t.map((t=>t.batch()))}}}class ds extends Yn{constructor(t,e){super(t,e),this.children=t.children.map((t=>e.builder(t.type))),this.typeMap=t.typeMap,this.lookup=t.typeIdForValue}init(){return this.nullCount=0,this.typeIds=Rn(p),this.children.forEach((t=>t.init())),super.init()}set(t,e){const{children:n,lookup:s,typeMap:r,typeIds:i}=this;this.index=e;const a=s(t,e),c=n[r[a]];i.set(a,e),null==t&&++this.nullCount,this.update(t,e,c)}done(){const{children:t,nullCount:e,type:n,typeIds:s}=this,r=this.index+1;return{length:r,nullCount:e,type:n,typeIds:s.array(r),children:t.map((t=>t.batch()))}}}class ls extends ds{update(t,e,n){n.set(t,e),this.children.forEach((t=>{t!==n&&t.set(null,e)}))}}class hs extends ds{init(){return this.offsets=Rn(this.type.offsets),super.init()}update(t,e,n){const s=n.index+1;n.set(t,s),this.offsets.set(s,e)}done(){return{...super.done(),offsets:this.offsets.array(this.index+1)}}}class fs extends Xn{set(t,e){super.set(t&&Rt(t),e)}}class ys extends Pn{constructor(t,e){super(t,e),this.values=Rn(t.values)}init(){return this.values=Rn(this.type.values),super.init()}set(t,e){super.set(t,e)&&this.values.set(t,e)}done(){return{...super.done(),values:this.values.array(this.index+1)}}}class ps extends ys{set(t,e){super.set(null==t?t:At(t),e)}}class Is extends ys{constructor(t,e,n){super(t,e),this.transform=n}set(t,e){super.set(null==t?t:this.transform(t),e)}}function bs(t={},e=Hn()){return{batchType:e=>Ke(e,t),builder(t){return gs(t,this)},dictionary(t){return e.get(t,this)},finish:()=>e.finish(t)}}function gs(t,e=bs()){const{typeId:n}=t;switch(n){case i.Int:case i.Time:case i.Duration:return E(t.values)?new ps(t,e):new ys(t,e);case i.Float:return t.precision?new ys(t,e):new Is(t,e,Ut);case i.Binary:case i.LargeBinary:return new Xn(t,e);case i.Utf8:case i.LargeUtf8:return new fs(t,e);case i.Bool:return new qn(t,e);case i.Decimal:return new Kn(t,e);case i.Date:return new Is(t,e,t.unit?At:St);case i.Timestamp:return new Is(t,e,(s=t.unit)===u.SECOND?t=>At(t/1e3):s===u.MILLISECOND?At:s===u.MICROSECOND?t=>At(1e3*t):t=>At(1e6*t));case i.Interval:switch(t.unit){case o.DAY_TIME:return new ts(t,e);case o.MONTH_DAY_NANO:return new es(t,e)}return new ys(t,e);case i.List:case i.LargeList:return new ss(t,e);case i.Struct:return new is(t,e);case i.Union:return t.mode?new hs(t,e):new ls(t,e);case i.FixedSizeBinary:return new Qn(t,e);case i.FixedSizeList:return new Zn(t,e);case i.Map:return new as(t,e);case i.RunEndEncoded:return new os(t,e);case i.Dictionary:return new Wn(t,e)}var s;throw new Error(C(n))}function vs(t,e,n,s,r){n??=Gn(e);const{maxBatchRows:a,...c}=s,u=Math.min(a||1/0,t);if(n.typeId===i.Null)return new Xe(function(t,e,n){const s=[],r=e=>new ce({length:e,nullCount:e,type:t}),i=Math.floor(e/n);for(let t=0;t<i;++t)s.push(r(n));const a=e%n;a&&s.push(r(a));return s}(n,t,u));const o=bs(c,r),d=gs(n,o).init(),l=[],h=t=>l.push(t.batch());let f=0;return e((t=>{d.set(t,f++),f>=u&&(h(d),f=0)})),f&&h(d),o.finish(),new Xe(l)}function ws(t,e,n={},s){return!e&&O(t)?function(t,{maxBatchRows:e,useBigInt:n}){const s=t.constructor,r=function(t){switch(t){case v:return q();case w:return K();case p:return _();case I:return $();case b:return Y();case g:return P();case l:return H();case h:return W();case f:return G();case y:return J()}}(s),i=t.length,a=Math.min(e||1/0,i),c=Math.floor(i/a),u=[],o=E(s)&&!n?ue:re,d=(e,n)=>u.push(new o({length:a,nullCount:0,type:r,values:t.subarray(e,n)}));let m=0;for(let t=0;t<c;++t)d(m,m+=a);m<i&&d(m,i);return new Xe(u)}(t,n):vs(t.length,(e=>t.forEach(e)),e,n,s)}function ms(t,e){const r=[],i=Array.isArray(t)?t:Object.entries(t),a=i[0]?.[1].length,c=i.map((([t,e])=>{if(e.length!==a)throw new Error("All columns must have the same length.");return r.push(V(t,e.type)),e})),u={version:n.V5,endianness:s.Little,fields:r,metadata:null};return new qe(u,c,e)}t.Batch=se,t.Column=Xe,t.DateUnit=c,t.Endianness=s,t.IntervalUnit=o,t.Precision=a,t.Table=qe,t.TimeUnit=u,t.Type=i,t.UnionMode=d,t.Version=n,t.batchType=Ke,t.binary=Q,t.binaryView=()=>j(i.BinaryView),t.bool=tt,t.columnFromArray=ws,t.columnFromValues=vs,t.date=nt,t.dateDay=st,t.dateMillisecond=()=>nt(c.MILLISECOND),t.decimal=et,t.dictionary=k,t.dictionaryContext=Hn,t.duration=ft,t.field=V,t.fixedSizeBinary=dt,t.fixedSizeList=lt,t.float=X,t.float16=()=>X(a.HALF),t.float32=q,t.float64=K,t.int=z,t.int16=$,t.int32=Y,t.int64=P,t.int8=_,t.interval=at,t.largeBinary=yt,t.largeList=It,t.largeListView=vt,t.largeUtf8=pt,t.list=ct,t.listView=gt,t.map=(t,e,n=!1)=>ht(n,V("entries",ut([F(t,"key",!1),F(e,"value")]),!1)),t.nullType=R,t.runEndEncoded=bt,t.struct=ut,t.tableFromArrays=function(t,e={}){const{types:n={},...s}=e,r=Hn();return ms((Array.isArray(t)?t:Object.entries(t)).map((([t,e])=>[t,ws(e,n[t],s,r)])),e.useProxy)},t.tableFromColumns=ms,t.tableFromIPC=function(t,e){return function(t,e={}){const{schema:n={fields:[]},dictionaries:s,records:r}=t,{version:a,fields:c}=n,u=new Map,o=function(t,e,n){const s={version:e,options:t,dictionary:t=>n.get(t)};return t=>{const{length:e,nodes:n,regions:r,variadic:i,body:a}=t;let c=-1,u=-1,o=-1;return{...s,length:e,node:()=>n[++c],buffer:t=>{const{length:e,offset:n}=r[++u];return t?new t(a.buffer,a.byteOffset+n,e/t.BYTES_PER_ELEMENT):a.subarray(n,n+e)},variadic:()=>i[++o],visit(t){return t.map((t=>In(t.type,this)))}}}}(e,a,u),d=new Map;!function(t,e){t.fields.forEach((function t(n){e(n),n.type.dictionary?.children?.forEach(t),n.type.children?.forEach(t)}))}(n,(t=>{const e=t.type;e.typeId===i.Dictionary&&d.set(e.id,e.dictionary)}));const l=new Map;for(const t of s){const{id:e,data:n,isDelta:s,body:r}=t,i=In(d.get(e),o({...n,body:r}));if(l.has(e)){const t=l.get(e);s||t.clear(),t.add(i)}else{if(s)throw new Error("Delta update can not be first dictionary batch.");l.set(e,Je().add(i))}}l.forEach(((t,e)=>u.set(e,t.done())));const h=c.map((()=>Je()));for(const t of r){const e=o(t);c.forEach(((t,n)=>h[n].add(In(t.type,e))))}return new qe(n,h.map((t=>t.done())),e.useProxy)}(pn(t),e)},t.tableToIPC=function(t,e){"string"==typeof e&&(e={format:e});const n=t.children,{dictionaries:s,idMap:r}=function(t){const e=[],n=new Map,s=new Map;let r=-1;const i=t=>{if(n.has(t))s.set(t.type,n.get(t));else{n.set(t,++r);for(let n=0;n<t.data.length;++n)e.push({id:r,isDelta:n>0,data:jn([t],n)});s.set(t.type,r)}};return t.forEach((t=>Fn(t.data[0],i))),{dictionaries:e,idMap:s}}(n),a=function(t){return(t[0]?.data||[]).map(((e,n)=>jn(t,n)))}(n),c=function(t,e){if(!e.size)return t;const n=t=>{t.typeId===i.Dictionary&&(t.id=e.get(t.dictionary),r(t)),t.children&&(t.children=t.children.slice()).forEach(s)},s=(t,e,s)=>{const r={...t.type};s[e]={...t,type:r},n(r)},r=t=>{const e={...t.dictionary};t.dictionary=e,n(e)};return t={...t,fields:t.fields.slice()},t.fields.forEach(s),t}(t.schema,r);return Tn({schema:c,dictionaries:s,records:a},e).finish()},t.time=rt,t.timeMicrosecond=()=>rt(u.MICROSECOND,64),t.timeMillisecond=()=>rt(u.MILLISECOND,32),t.timeNanosecond=()=>rt(u.NANOSECOND,64),t.timeSecond=()=>rt(u.SECOND,32),t.timestamp=it,t.uint16=W,t.uint32=G,t.uint64=J,t.uint8=H,t.union=ot,t.utf8=Z,t.utf8View=()=>j(i.Utf8View)}));
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).fl={})}(this,(function(t){"use strict";const e=Uint8Array.of(65,82,82,79,87,49),n={V1:0,V2:1,V3:2,V4:3,V5:4},s={Little:0,Big:1},r={NONE:0,Schema:1,DictionaryBatch:2,RecordBatch:3,Tensor:4,SparseTensor:5},i={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},a={HALF:0,SINGLE:1,DOUBLE:2},c={DAY:0,MILLISECOND:1},u={SECOND:0,MILLISECOND:1,MICROSECOND:2,NANOSECOND:3},o={YEAR_MONTH:0,DAY_TIME:1,MONTH_DAY_NANO:2},d={Sparse:0,Dense:1},l=Uint8Array,h=Uint16Array,f=Uint32Array,y=BigUint64Array,p=Int8Array,b=Int16Array,I=Int32Array,g=BigInt64Array,v=Float32Array,w=Float64Array;function m(t,e){const n=Math.log2(t)-3;return(e?[p,b,I,g]:[l,h,f,y])[n]}const x=Object.getPrototypeOf(Int8Array);function O(t){return t instanceof x}function L(t){return Array.isArray(t)||O(t)}function E(t){return t===g||t===y}function D(t,e){let n=0,s=t.length;if(s<=2147483648)do{const r=n+s>>>1;t[r]<=e?n=r+1:s=r}while(n<s);else do{const r=Math.trunc((n+s)/2);t[r]<=e?n=r+1:s=r}while(n<s);return n}function A(t,e,n=0){const s=new t.constructor(e);return s.set(t,n),s}function N(t,e,n){for(;t.length<=e;)t=A(t,t.length<<1,n?t.length:0);return t}function S(t,e,n){if(e(t))return t;throw new Error(n(t))}function B(t,e,n){return e=Array.isArray(e)?e:Object.values(e),S(t,(t=>e.includes(t)),n??(()=>`${t} must be one of ${e}`))}function M(t,e){for(const[n,s]of Object.entries(t))if(s===e)return n;return"<Unknown>"}const C=t=>`Unsupported data type: "${M(i,t)}" (id ${t})`,V=(t,e,n=!0,s=null)=>({name:t,type:e,nullable:n,metadata:s});function T(t){return Object.hasOwn(t,"name")&&U(t.type)}function U(t){return"number"==typeof t?.typeId}function F(t,e="",n=!0){return T(t)?t:V(e,S(t,U,(()=>"Data type expected.")),n)}const j=t=>({typeId:t}),k=(t,e,n=!1,s=-1)=>({typeId:i.Dictionary,id:s,dictionary:t,indices:e||Y(),ordered:n}),z=()=>j(i.Null),R=(t=32,e=!0)=>({typeId:i.Int,bitWidth:B(t,[8,16,32,64]),signed:e,values:m(t,e)}),_=()=>R(8),$=()=>R(16),Y=()=>R(32),P=()=>R(64),H=()=>R(8,!1),W=()=>R(16,!1),G=()=>R(32,!1),J=()=>R(64,!1),X=(t=2)=>({typeId:i.Float,precision:B(t,a),values:[h,v,w][t]}),q=()=>X(a.SINGLE),K=()=>X(a.DOUBLE),Q=()=>({typeId:i.Binary,offsets:I}),Z=()=>({typeId:i.Utf8,offsets:I}),tt=()=>j(i.Bool),et=(t,e,n=128)=>({typeId:i.Decimal,precision:t,scale:e,bitWidth:B(n,[128,256]),values:y}),nt=t=>({typeId:i.Date,unit:B(t,c),values:t===c.DAY?I:g}),st=()=>nt(c.DAY),rt=(t=u.MILLISECOND,e=32)=>({typeId:i.Time,unit:B(t,u),bitWidth:B(e,[32,64]),values:32===e?I:g}),it=(t=u.MILLISECOND,e=null)=>({typeId:i.Timestamp,unit:B(t,u),timezone:e,values:g}),at=(t=o.MONTH_DAY_NANO)=>({typeId:i.Interval,unit:B(t,o),values:t===o.MONTH_DAY_NANO?void 0:I}),ct=t=>({typeId:i.List,children:[F(t)],offsets:I}),ut=t=>({typeId:i.Struct,children:Array.isArray(t)&&T(t[0])?t:Object.entries(t).map((([t,e])=>V(t,e)))}),ot=(t,e,n,s)=>(n??=e.map(((t,e)=>e)),{typeId:i.Union,mode:B(t,d),typeIds:n,typeMap:n.reduce(((t,e,n)=>(t[e]=n,t)),{}),children:e.map(((t,e)=>F(t,`_${e}`))),typeIdForValue:s,offsets:I}),dt=t=>({typeId:i.FixedSizeBinary,stride:t}),lt=(t,e)=>({typeId:i.FixedSizeList,stride:e,children:[F(t)]}),ht=(t,e)=>({typeId:i.Map,keysSorted:t,children:[e],offsets:I}),ft=(t=u.MILLISECOND)=>({typeId:i.Duration,unit:B(t,u),values:g}),yt=()=>({typeId:i.LargeBinary,offsets:g}),pt=()=>({typeId:i.LargeUtf8,offsets:g}),bt=t=>({typeId:i.LargeList,children:[F(t)],offsets:g}),It=(t,e)=>({typeId:i.RunEndEncoded,children:[S(F(t,"run_ends"),(t=>t.type.typeId===i.Int),(()=>"Run-ends must have an integer type.")),F(e,"values")]}),gt=t=>({typeId:i.ListView,children:[F(t,"value")],offsets:I}),vt=t=>({typeId:i.LargeListView,children:[F(t,"value")],offsets:g}),wt=new w(2),mt=wt.buffer,xt=new g(mt),Ot=new f(mt),Lt=new I(mt),Et=new l(mt);function Dt(t){return t}function At(t){return BigInt(t)}function Nt(t){return E(t)?At:Dt}function St(t){return t/864e5|0}function Bt(t){if(t>Number.MAX_SAFE_INTEGER||t<Number.MIN_SAFE_INTEGER)throw Error(`BigInt exceeds integer number representation: ${t}`);return Number(t)}function Mt(t,e){return Number(t/e)+Number(t%e)/Number(e)}const Ct=t=>BigInt.asUintN(64,t);function Vt(t,e){const n=e<<1;let s;return BigInt.asIntN(64,t[n+1])<0?(s=Ct(~t[n])|Ct(~t[n+1])<<64n,s=-(s+1n)):s=t[n]|t[n+1]<<64n,s}function Tt(t,e){const n=e<<2;let s;return BigInt.asIntN(64,t[n+3])<0?(s=Ct(~t[n])|Ct(~t[n+1])<<64n|Ct(~t[n+2])<<128n|Ct(~t[n+3])<<192n,s=-(s+1n)):s=t[n]|t[n+1]<<64n|t[n+2]<<128n|t[n+3]<<192n,s}function Ut(t){if(t!=t)return 32256;wt[0]=t;const e=(2147483648&Ot[1])>>16&65535;let n=2146435072&Ot[1],s=0;return n>=1089470464?Ot[0]>0?n=31744:(n=(2080374784&n)>>16,s=(1048575&Ot[1])>>10):n<=1056964608?(s=1048576+(1048575&Ot[1]),s=1048576+(s<<(n>>20)-998)>>21,n=0):(n=n-1056964608>>10,s=512+(1048575&Ot[1])>>10),e|n|65535&s}const Ft=new TextDecoder("utf-8"),jt=new TextEncoder;function kt(t){return Ft.decode(t)}function zt(t){return jt.encode(t)}function Rt(t){return`${"object"==typeof t&&t?function(t){return t instanceof Date}(t)?+t:L(t)?`[${t.map(Rt)}]`:function(t){let e="",n=-1;for(const s in t)++n>0&&(e+=","),e+=`"${s}":${Rt(t[s])}`;return`{${e}}`}(t):t??null}`}const _t=4;function $t(t,e){return!!(t[e>>3]&1<<e%8)}function Yt(t,e){const n=e+Jt(t,e),s=n-Jt(t,n),r=Gt(t,s);return(e,i,a=null)=>{if(e<r){const r=Gt(t,s+e);if(r)return i(t,n+r)}return a}}function Pt(t,e){return e}function Ht(t,e){return!!function(t,e){return Wt(t,e)<<24>>24}(t,e)}function Wt(t,e){return t[e]}function Gt(t,e){return function(t,e){return t[e]|t[e+1]<<8}(t,e)<<16>>16}function Jt(t,e){return t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24}function Xt(t,e){return Jt(t,e)>>>0}function qt(t,e){return Bt(BigInt.asIntN(64,BigInt(Xt(t,e))+(BigInt(Xt(t,e+_t))<<32n)))}function Kt(t,e){let n=e+Jt(t,e);const s=Jt(t,n);return n+=_t,kt(t.subarray(n,n+s))}function Qt(t,e,n,s){if(!e)return[];const r=e+Jt(t,e);return Array.from({length:Jt(t,r)},((e,i)=>s(t,r+_t+i*n)))}const Zt=Symbol("rowIndex");function te(t,e){class n{constructor(t){this[Zt]=t}toJSON(){return ne(t,e,this[Zt])}}const s=n.prototype;for(let n=0;n<t.length;++n){if(Object.hasOwn(s,t[n]))continue;const r=e[n];Object.defineProperty(s,t[n],{get(){return r.at(this[Zt])},enumerable:!0})}return t=>new n(t)}function ee(t,e){return n=>ne(t,e,n)}function ne(t,e,n){const s={};for(let r=0;r<t.length;++r)s[t[r]]=e[r].at(n);return s}class se{static ArrayType=null;constructor({length:t,nullCount:e,type:n,validity:s,values:r,offsets:i,sizes:a,children:c}){this.length=t,this.nullCount=e,this.type=n,this.validity=s,this.values=r,this.offsets=i,this.sizes=a,this.children=c,e&&this.validity||(this.at=t=>this.value(t))}get[Symbol.toStringTag](){return"Batch"}at(t){return this.isValid(t)?this.value(t):null}isValid(t){return $t(this.validity,t)}value(t){return this.values[t]}slice(t,e){const n=e-t,s=Array(n);for(let e=0;e<n;++e)s[e]=this.at(t+e);return s}*[Symbol.iterator](){for(let t=0;t<this.length;++t)yield this.at(t)}}class re extends se{constructor(t){super(t);const{length:e,values:n}=this;this.values=n.subarray(0,e)}slice(t,e){return this.nullCount?super.slice(t,e):this.values.subarray(t,e)}[Symbol.iterator](){return this.nullCount?super[Symbol.iterator]():this.values[Symbol.iterator]()}}class ie extends se{static ArrayType=w}class ae extends se{static ArrayType=Array}class ce extends ae{value(t){return null}}class ue extends ie{value(t){return Bt(this.values[t])}}class oe extends ie{value(t){const e=this.values[t],n=(31744&e)>>10,s=(1023&e)/1024,r=(-1)**((32768&e)>>15);switch(n){case 31:return r*(s?Number.NaN:1/0);case 0:return r*(s?6103515625e-14*s:0)}return r*2**(n-15)*(1+s)}}class de extends ae{value(t){return $t(this.values,t)}}class le extends se{constructor(t){super(t);const{bitWidth:e,scale:n}=this.type;this.decimal=128===e?Vt:Tt,this.scale=10n**BigInt(n)}}class he extends le{static ArrayType=w;value(t){return Mt(this.decimal(this.values,t),this.scale)}}class fe extends le{static ArrayType=Array;value(t){return this.decimal(this.values,t)}}class ye extends ae{constructor(t){super(t),this.source=t}value(t){return new Date(this.source.value(t))}}class pe extends ie{value(t){return 864e5*this.values[t]}}const be=ue;class Ie extends ue{value(t){return 1e3*super.value(t)}}const ge=ue;class ve extends ue{value(t){return Mt(this.values[t],1000n)}}class we extends ue{value(t){return Mt(this.values[t],1000000n)}}class me extends ae{value(t){return this.values.subarray(t<<1,t+1<<1)}}class xe extends ae{value(t){const e=this.values,n=t<<4;return Float64Array.of(Jt(e,n),Jt(e,n+4),qt(e,n+8))}}const Oe=({values:t,offsets:e},n)=>t.subarray(e[n],e[n+1]),Le=({values:t,offsets:e},n)=>t.subarray(Bt(e[n]),Bt(e[n+1]));class Ee extends ae{value(t){return Oe(this,t)}}class De extends ae{value(t){return Le(this,t)}}class Ae extends ae{value(t){return kt(Oe(this,t))}}class Ne extends ae{value(t){return kt(Le(this,t))}}class Se extends ae{value(t){const e=this.offsets;return this.children[0].slice(e[t],e[t+1])}}class Be extends ae{value(t){const e=this.offsets;return this.children[0].slice(Bt(e[t]),Bt(e[t+1]))}}class Me extends ae{value(t){const e=this.offsets[t],n=e+this.sizes[t];return this.children[0].slice(e,n)}}class Ce extends ae{value(t){const e=this.offsets[t],n=e+this.sizes[t];return this.children[0].slice(Bt(e),Bt(n))}}class Ve extends ae{constructor(t){super(t),this.stride=this.type.stride}}class Te extends Ve{value(t){const{stride:e,values:n}=this;return n.subarray(t*e,(t+1)*e)}}class Ue extends Ve{value(t){const{children:e,stride:n}=this;return e[0].slice(t*n,(t+1)*n)}}function Fe({children:t,offsets:e},n){const[s,r]=t[0].children,i=e[n],a=e[n+1],c=[];for(let t=i;t<a;++t)c.push([s.at(t),r.at(t)]);return c}class je extends ae{value(t){return Fe(this,t)}}class ke extends ae{value(t){return new Map(Fe(this,t))}}class ze extends ae{constructor({typeIds:t,...e}){super(e),this.typeIds=t,this.typeMap=this.type.typeMap}value(t,e=t){const{typeIds:n,children:s,typeMap:r}=this;return s[r[n[t]]].at(e)}}class Re extends ze{value(t){return super.value(t,this.offsets[t])}}class _e extends ae{constructor(t,e=ee){super(t),this.names=this.type.children.map((t=>t.name)),this.factory=e(this.names,this.children)}value(t){return this.factory(t)}}class $e extends _e{constructor(t){super(t,te)}}class Ye extends ae{value(t){const[{values:e},n]=this.children;return n.at(D(e,t))}}class Pe extends ae{setDictionary(t){return this.dictionary=t,this.cache=t.cache(),this}value(t){return this.cache[this.key(t)]}key(t){return this.values[t]}}class He extends ae{constructor({data:t,...e}){super(e),this.data=t}view(t){const{values:e,data:n}=this,s=t<<4;let r=s+4,i=e;const a=Jt(i,s);return a>12&&(r=Jt(i,s+12),i=n[Jt(i,s+8)]),i.subarray(r,r+a)}}class We extends He{value(t){return this.view(t)}}class Ge extends He{value(t){return kt(this.view(t))}}function Je(){let t=[];return{add(e){return t.push(e),this},clear:()=>t=[],done:()=>new Xe(t)}}class Xe{constructor(t){this.type=t[0].type,this.length=t.reduce(((t,e)=>t+e.length),0),this.nullCount=t.reduce(((t,e)=>t+e.nullCount),0),this.data=t;const e=t.length,n=new Int32Array(e+1);if(1===e){const[e]=t;n[1]=e.length,this.at=t=>e.at(t)}else for(let s=0,r=0;s<e;++s)n[s+1]=r+=t[s].length;this.offsets=n}get[Symbol.toStringTag](){return"Column"}[Symbol.iterator](){const t=this.data;return 1===t.length?t[0][Symbol.iterator]():function*(t){for(let e=0;e<t.length;++e){const n=t[e][Symbol.iterator]();for(let t=n.next();!t.done;t=n.next())yield t.value}}(t)}at(t){const{data:e,offsets:n}=this,s=D(n,t)-1;return e[s]?.at(t-n[s])}get(t){return this.at(t)}toArray(){const{length:t,nullCount:e,data:n}=this,s=!e&&n[0]instanceof re;const r=n.length;if(s&&1===r)return n[0].values;const i=new(!r||e>0?Array:n[0].constructor.ArrayType??n[0].values.constructor)(t);return s?function(t,e){for(let n=0,s=0;n<e.length;++n){const{values:r}=e[n];t.set(r,s),s+=r.length}return t}(i,n):function(t,e){let n=-1;for(let s=0;s<e.length;++s){const r=e[s];for(let e=0;e<r.length;++e)t[++n]=r.at(e)}return t}(i,n)}cache(){return this._cache??(this._cache=this.toArray())}}class qe{constructor(t,e,n=!1){const s=t.fields.map((t=>t.name));this.schema=t,this.names=s,this.children=e,this.factory=n?te:ee;const r=[];this.getFactory=t=>r[t]??(r[t]=this.factory(s,e.map((e=>e.data[t]))))}get[Symbol.toStringTag](){return"Table"}get numCols(){return this.names.length}get numRows(){return this.children[0]?.length??0}getChildAt(t){return this.children[t]}getChild(t){const e=this.names.findIndex((e=>e===t));return e>-1?this.children[e]:void 0}selectAt(t,e=[]){const{children:n,factory:s,schema:r}=this,{fields:i}=r;return new qe({...r,fields:t.map(((t,n)=>function(t,e){return null!=e&&e!==t.name?{...t,name:e}:t}(i[t],e[n])))},t.map((t=>n[t])),s===te)}select(t,e){const n=this.names,s=t.map((t=>n.indexOf(t)));return this.selectAt(s,e)}toColumns(){const{children:t,names:e}=this,n={};return e.forEach(((e,s)=>n[e]=t[s]?.toArray()??[])),n}toArray(){const{children:t,getFactory:e,numRows:n}=this,s=t[0]?.data??[],r=Array(n);for(let t=0,n=-1;t<s.length;++t){const i=e(t);for(let e=0;e<s[t].length;++e)r[++n]=i(e)}return r}*[Symbol.iterator](){const{children:t,getFactory:e}=this,n=t[0]?.data??[];for(let t=0;t<n.length;++t){const s=e(t);for(let e=0;e<n[t].length;++e)yield s(e)}}at(t){const{children:e,getFactory:n,numRows:s}=this;if(t<0||t>=s)return null;const[{offsets:r}]=e,i=D(r,t)-1;return n(i)(t-r[i])}get(t){return this.at(t)}}function Ke(t,e={}){const{typeId:n,bitWidth:s,precision:r,unit:a}=t,{useBigInt:d,useDate:l,useDecimalBigInt:h,useMap:f,useProxy:y}=e;switch(n){case i.Null:return ce;case i.Bool:return de;case i.Int:case i.Time:case i.Duration:return d||s<64?re:ue;case i.Float:return r?re:oe;case i.Date:return Qe(a===c.DAY?pe:be,l&&ye);case i.Timestamp:return Qe(a===u.SECOND?Ie:a===u.MILLISECOND?ge:a===u.MICROSECOND?ve:we,l&&ye);case i.Decimal:return h?fe:he;case i.Interval:return a===o.DAY_TIME?me:a===o.YEAR_MONTH?re:xe;case i.FixedSizeBinary:return Te;case i.Utf8:return Ae;case i.LargeUtf8:return Ne;case i.Binary:return Ee;case i.LargeBinary:return De;case i.BinaryView:return We;case i.Utf8View:return Ge;case i.List:return Se;case i.LargeList:return Be;case i.Map:return f?ke:je;case i.ListView:return Me;case i.LargeListView:return Ce;case i.FixedSizeList:return Ue;case i.Struct:return y?$e:_e;case i.RunEndEncoded:return Ye;case i.Dictionary:return Pe;case i.Union:return t.mode?Re:ze}throw new Error(C(n))}function Qe(t,e){return e?class extends e{constructor(e){super(new t(e))}}:t}function Ze(t,e){return{offset:qt(t,e),metadataLength:Jt(t,e+8),bodyLength:qt(t,e+16)}}function tn(t,e){return Qt(t,e,24,Ze)}function en(t,e,s){const r=Yt(t,e);if(r(10,Pt,0))throw new Error("Record batch compression not implemented");const i=s<n.V4?8:0;return{length:r(4,qt,0),nodes:Qt(t,r(6,Pt),16,((t,e)=>({length:qt(t,e),nullCount:qt(t,e+8)}))),regions:Qt(t,r(8,Pt),16+i,((t,e)=>({offset:qt(t,e+i),length:qt(t,e+i+8)}))),variadic:Qt(t,r(12,Pt),8,qt)}}function nn(t,e,n){const s=Yt(t,e);return{id:s(4,qt,0),data:s(6,((t,e)=>en(t,e,n))),isDelta:s(8,Ht,!1)}}function sn(t,e,n,s){B(n,i,C);const r=Yt(t,e);switch(n){case i.Binary:return Q();case i.Utf8:return Z();case i.LargeBinary:return yt();case i.LargeUtf8:return pt();case i.List:return ct(s[0]);case i.ListView:return gt(s[0]);case i.LargeList:return bt(s[0]);case i.LargeListView:return vt(s[0]);case i.Struct:return ut(s);case i.RunEndEncoded:return It(s[0],s[1]);case i.Int:return R(r(4,Jt,0),r(6,Ht,!1));case i.Float:return X(r(4,Gt,a.HALF));case i.Decimal:return et(r(4,Jt,0),r(6,Jt,0),r(8,Jt,128));case i.Date:return nt(r(4,Gt,c.MILLISECOND));case i.Time:return rt(r(4,Gt,u.MILLISECOND),r(6,Jt,32));case i.Timestamp:return it(r(4,Gt,u.SECOND),r(6,Kt));case i.Interval:return at(r(4,Gt,o.YEAR_MONTH));case i.Duration:return ft(r(4,Gt,u.MILLISECOND));case i.FixedSizeBinary:return dt(r(4,Jt,0));case i.FixedSizeList:return lt(s[0],r(4,Jt,0));case i.Map:return ht(r(4,Ht,!1),s[0]);case i.Union:return ot(r(4,Gt,d.Sparse),s,Qt(t,r(6,Pt),4,Jt))}return{typeId:n}}function rn(t,e){const n=Qt(t,e,4,((t,e)=>{const n=Yt(t,e);return[n(4,Kt),n(6,Kt)]}));return n.length?new Map(n):null}function an(t,e,n){const s=Yt(t,e);return{version:n,endianness:s(4,Gt,0),fields:s(6,cn,[]),metadata:s(8,rn)}}function cn(t,e){return Qt(t,e,4,un)}function un(t,e){const n=Yt(t,e),s=n(8,Wt,i.NONE),r=n(10,Pt,0),a=n(12,on),c=n(14,((t,e)=>function(t,e){const n=Qt(t,e,4,un);return n.length?n:null}(t,e)));let u=sn(t,r,s,c);return a&&(a.dictionary=u,u=a),{name:n(4,Kt),type:u,nullable:n(6,Ht,!1),metadata:n(16,rn)}}function on(t,e){if(!e)return null;const n=Yt(t,e);return k(null,n(6,dn,Y()),n(8,Ht,!1),n(4,qt,0))}function dn(t,e){return sn(t,e,i.Int)}const ln=(t,e)=>`Expected to read ${t} metadata bytes, but only read ${e}.`,hn=(t,e)=>`Expected to read ${t} bytes for message body, but only read ${e}.`,fn=t=>`Unsupported message type: ${t} (${M(r,t)})`;function yn(t,e){let s=Jt(t,e)||0;if(e+=_t,-1===s&&(s=Jt(t,e)||0,e+=_t),0===s)return null;const i=t.subarray(e,e+=s);if(i.byteLength<s)throw new Error(ln(s,i.byteLength));const a=Yt(i,0),c=a(4,Gt,n.V1),u=a(6,Wt,r.NONE),o=a(8,Pt,0),d=a(10,qt,0);let l;if(o){const n=u===r.Schema?an:u===r.DictionaryBatch?nn:u===r.RecordBatch?en:null;if(!n)throw new Error(fn(u));if(l=n(i,o,c),d>0){const n=t.subarray(e,e+=d);if(n.byteLength<d)throw new Error(hn(d,n.byteLength));l.body=n}}return{version:c,type:u,index:e,content:l}}function pn(t){const s=t instanceof ArrayBuffer?new Uint8Array(t):t;return s instanceof Uint8Array&&function(t){if(!t||t.length<4)return!1;for(let n=0;n<6;++n)if(e[n]!==t[n])return!1;return!0}(s)?function(t){const s=t.byteLength-(e.length+4),r=Jt(t,s),i=Yt(t,s-r),a=i(4,Gt,n.V1),c=i(8,tn,[]),u=i(10,tn,[]);return{schema:i(6,((t,e)=>an(t,e,a))),dictionaries:c.map((({offset:e})=>yn(t,e).content)),records:u.map((({offset:e})=>yn(t,e).content)),metadata:i(12,rn)}}(s):function(t){const e=[t].flat();let n;const s=[],i=[];for(const t of e){if(!(t instanceof Uint8Array))throw new Error("IPC data batch was not a Uint8Array.");let e=0;for(;;){const a=yn(t,e);if(null===a)break;if(e=a.index,a.content)switch(a.type){case r.Schema:n||(n=a.content);break;case r.RecordBatch:s.push(a.content);break;case r.DictionaryBatch:i.push(a.content)}}}return{schema:n,dictionaries:i,records:s,metadata:null}}(s)}function bn(t,e){const{typeId:s}=t,{length:r,options:a,node:c,buffer:u,variadic:o,version:l}=e,h=Ke(t,a);if(s===i.Null)return new h({length:r,nullCount:r,type:t});const f={...c(),type:t};switch(s){case i.Bool:case i.Int:case i.Time:case i.Duration:case i.Float:case i.Decimal:case i.Date:case i.Timestamp:case i.Interval:case i.FixedSizeBinary:return new h({...f,validity:u(),values:u(t.values)});case i.Utf8:case i.LargeUtf8:case i.Binary:case i.LargeBinary:return new h({...f,validity:u(),offsets:u(t.offsets),values:u()});case i.BinaryView:case i.Utf8View:return new h({...f,validity:u(),values:u(),data:Array.from({length:o()},(()=>u()))});case i.List:case i.LargeList:case i.Map:return new h({...f,validity:u(),offsets:u(t.offsets),children:e.visit(t.children)});case i.ListView:case i.LargeListView:return new h({...f,validity:u(),offsets:u(t.offsets),sizes:u(t.offsets),children:e.visit(t.children)});case i.FixedSizeList:case i.Struct:return new h({...f,validity:u(),children:e.visit(t.children)});case i.RunEndEncoded:return new h({...f,children:e.visit(t.children)});case i.Dictionary:{const{id:n,indices:s}=t;return new h({...f,validity:u(),values:u(s.values)}).setDictionary(e.dictionary(n))}case i.Union:return l<n.V5&&u(),new h({...f,typeIds:u(p),offsets:t.mode===d.Sparse?null:u(t.offsets),children:e.visit(t.children)});default:throw new Error(C(s))}}function In(t,e,n){t[e]=n,t[e+1]=n>>8,t[e+2]=n>>16,t[e+3]=n>>24}const gn=1024;class vn{constructor(t){this.sink=t,this.minalign=1,this.buf=new Uint8Array(gn),this.space=gn,this.vtables=[],this.outputBytes=0}offset(){return this.buf.length-this.space}writeInt8(t){this.buf[this.space-=1]=t}writeInt16(t){this.buf[this.space-=2]=t,this.buf[this.space+1]=t>>8}writeInt32(t){In(this.buf,this.space-=4,t)}writeInt64(t){const e=BigInt(t);this.writeInt32(Number(BigInt.asIntN(32,e>>BigInt(32)))),this.writeInt32(Number(BigInt.asIntN(32,e)))}addInt8(t){wn(this,1,0),this.writeInt8(t)}addInt16(t){wn(this,2,0),this.writeInt16(t)}addInt32(t){wn(this,4,0),this.writeInt32(t)}addInt64(t){wn(this,8,0),this.writeInt64(t)}addOffset(t){wn(this,_t,0),this.writeInt32(this.offset()-t+_t)}addObject(t,e){const n=function(t,e){const n=Array(e).fill(0),s=t.offset();function r(e){n[e]=t.offset()}return{addInt8(e,n,s){n!=s&&(t.addInt8(n),r(e))},addInt16(e,n,s){n!=s&&(t.addInt16(n),r(e))},addInt32(e,n,s){n!=s&&(t.addInt32(n),r(e))},addInt64(e,n,s){n!=s&&(t.addInt64(n),r(e))},addOffset(e,n,s){n!=s&&(t.addOffset(n),r(e))},finish(){t.addInt32(0);const r=t.offset();let i=e;for(;--i>=0&&0===n[i];);const a=i+1;for(;i>=0;--i)t.addInt16(n[i]?r-n[i]:0);const c=2;t.addInt16(r-s);const u=2*(a+c);t.addInt16(u);let o=0;const{buf:d,vtables:l,space:h}=t;t:for(i=0;i<l.length;++i){const t=d.length-l[i];if(u==Gt(d,t)){for(let e=2;e<u;e+=2)if(Gt(d,h+e)!=Gt(d,t+e))continue t;o=l[i];break}}if(o)t.space=d.length-r,In(d,t.space,o-r);else{const e=t.offset();l.push(e),In(d,d.length-r,e-r)}return r}}}(this,t);return e?.(n),n.finish()}addVector(t,e,n,s){const r=t?.length;if(!r)return 0;wn(this,_t,e*r),wn(this,n,e*r);for(let e=r;--e>=0;)s(this,t[e]);return this.writeInt32(r),this.offset()}addOffsetVector(t){return this.addVector(t,4,4,((t,e)=>t.addOffset(e)))}addString(t){if(null==t)return 0;const e=zt(t),n=e.length;return this.addInt8(0),wn(this,_t,n),this.buf.set(e,this.space-=n),this.writeInt32(n),this.offset()}finish(t){wn(this,this.minalign,_t),this.addOffset(t)}flush(){const{buf:t,sink:e}=this,n=t.subarray(this.space,t.length);e.write(n),this.outputBytes+=n.byteLength,this.minalign=1,this.vtables=[],this.buf=new Uint8Array(gn),this.space=gn}addBuffer(t){const e=t.byteLength;if(!e)return 0;this.sink.write(t),this.outputBytes+=e;const n=(e+7&-8)-e;return this.addPadding(n),e+n}addPadding(t){t>0&&(this.sink.write(new Uint8Array(t)),this.outputBytes+=t)}}function wn(t,e,n){let{buf:s,space:r,minalign:i}=t;e>i&&(t.minalign=e);const a=s.length,c=a-r+n,u=1+~c&e-1;s=N(s,c+u+e-1,!0),r+=s.length-a;for(let t=0;t<u;++t)s[--r]=0;t.buf=s,t.space=r}function mn(t,e){const{nodes:n,regions:s,variadic:r}=e,i=t.addVector(n,16,8,((t,e)=>(t.writeInt64(e.nullCount),t.writeInt64(e.length),t.offset()))),a=t.addVector(s,16,8,((t,e)=>(t.writeInt64(e.length),t.writeInt64(e.offset),t.offset()))),c=t.addVector(r,8,8,((t,e)=>t.addInt64(e)));return t.addObject(5,(t=>{t.addInt64(0,n[0].length,0),t.addOffset(1,i,0),t.addOffset(2,a,0),t.addOffset(4,c,0)}))}function xn(t,e){const n=mn(t,e.data);return t.addObject(3,(t=>{t.addInt64(0,e.id,0),t.addOffset(1,n,0),t.addInt8(2,+e.isDelta,0)}))}function On(t,e){return e?.size>0?t.addOffsetVector(Array.from(e,(([e,n])=>{const s=t.addString(`${e}`),r=t.addString(`${n}`);return t.addObject(2,(t=>{t.addOffset(0,s,0),t.addOffset(1,r,0)}))}))):0}function Ln(t,e){switch(B(e.typeId,i,C)){case i.Dictionary:return function(t,e){const n=function(t){return t.typeId===i.Int&&32===t.bitWidth&&t.signed}(e.indices)?0:Ln(t,e.indices);return t.addObject(4,(t=>{t.addInt64(0,e.id,0),t.addOffset(1,n,0),t.addInt8(2,+e.ordered,0)}))}(t,e);case i.Int:return function(t,e){return t.addObject(2,(t=>{t.addInt32(0,e.bitWidth,0),t.addInt8(1,+e.signed,0)}))}(t,e);case i.Float:return function(t,e){return t.addObject(1,(t=>{t.addInt16(0,e.precision,a.HALF)}))}(t,e);case i.Decimal:return function(t,e){return t.addObject(3,(t=>{t.addInt32(0,e.precision,0),t.addInt32(1,e.scale,0),t.addInt32(2,e.bitWidth,128)}))}(t,e);case i.Date:return function(t,e){return t.addObject(1,(t=>{t.addInt16(0,e.unit,c.MILLISECOND)}))}(t,e);case i.Time:return function(t,e){return t.addObject(2,(t=>{t.addInt16(0,e.unit,u.MILLISECOND),t.addInt32(1,e.bitWidth,32)}))}(t,e);case i.Timestamp:return function(t,e){const n=t.addString(e.timezone);return t.addObject(2,(t=>{t.addInt16(0,e.unit,u.SECOND),t.addOffset(1,n,0)}))}(t,e);case i.Interval:return function(t,e){return t.addObject(1,(t=>{t.addInt16(0,e.unit,o.YEAR_MONTH)}))}(t,e);case i.Duration:return function(t,e){return t.addObject(1,(t=>{t.addInt16(0,e.unit,u.MILLISECOND)}))}(t,e);case i.FixedSizeBinary:case i.FixedSizeList:return function(t,e){return t.addObject(1,(t=>{t.addInt32(0,e.stride,0)}))}(t,e);case i.Map:return function(t,e){return t.addObject(1,(t=>{t.addInt8(0,+e.keysSorted,0)}))}(t,e);case i.Union:return function(t,e){const n=t.addVector(e.typeIds,4,4,((t,e)=>t.addInt32(e)));return t.addObject(2,(t=>{t.addInt16(0,e.mode,d.Sparse),t.addOffset(1,n,0)}))}(t,e)}return t.addObject(0)}const En=1===new Uint16Array(new Uint8Array([1,0]).buffer)[0];function Dn(t,e){const{fields:n,metadata:s}=e,r=n.map((e=>An(t,e))),i=t.addOffsetVector(r),a=On(t,s);return t.addObject(4,(t=>{t.addInt16(0,+!En,0),t.addOffset(1,i,0),t.addOffset(2,a,0)}))}function An(t,e){const{name:n,nullable:s,type:r,metadata:a}=e;let{typeId:c}=r,u=0,o=0;if(c!==i.Dictionary)u=Ln(t,r);else{const e=r.dictionary;c=e.typeId,o=Ln(t,r),u=Ln(t,e)}const d=(r.children||[]).map((e=>An(t,e))),l=t.addOffsetVector(d),h=On(t,a),f=t.addString(n);return t.addObject(7,(t=>{t.addOffset(0,f,0),t.addInt8(1,+s,0),t.addInt8(2,c,i.NONE),t.addOffset(3,u,0),t.addOffset(4,o,0),t.addOffset(5,l,0),t.addOffset(6,h,0)}))}function Nn(t,{offset:e,metadataLength:n,bodyLength:s}){return t.writeInt64(s),t.writeInt32(0),t.writeInt32(n),t.writeInt64(e),t.offset()}function Sn(t,e,s,i,a){t.finish(t.addObject(5,(t=>{t.addInt16(0,n.V5,n.V1),t.addInt8(1,e,r.NONE),t.addOffset(2,s,0),t.addInt64(3,i,0)})));const c=t.offset(),u=c+8+7&-8;a?.push({offset:t.outputBytes,metadataLength:u,bodyLength:i}),t.addInt32(u-8),t.addInt32(-1),t.flush(),t.addPadding(u-c-8)}class Bn{write(t){}pad(t){this.write(new Uint8Array(t))}finish(){return null}}class Mn extends Bn{constructor(){super(),this.buffers=[]}write(t){this.buffers.push(t)}finish(){const t=this.buffers,e=t.reduce(((t,e)=>t+e.byteLength),0),n=new Uint8Array(e);for(let e=0,s=0;e<t.length;++e)n.set(t[e],s),s+=t[e].byteLength;return n}}const Cn="stream",Vn="file";function Tn(t,{sink:s,format:i=Cn}={}){if(i!==Cn&&i!==Vn)throw new Error(`Unrecognized Arrow IPC format: ${i}`);const{schema:a,dictionaries:c=[],records:u=[],metadata:o}=t,d=new vn(s||new Mn),l=i===Vn,h=[],f=[];l?d.addBuffer(e):a&&Sn(d,r.Schema,Dn(d,a),0);for(const t of c){const{data:e}=t;Sn(d,r.DictionaryBatch,xn(d,t),e.byteLength,h),Un(d,e.buffers)}for(const t of u)Sn(d,r.RecordBatch,mn(d,t),t.byteLength,f),Un(d,t.buffers);return l&&function(t,s,r,i,a){const c=On(t,a),u=t.addVector(i,24,8,Nn),o=t.addVector(r,24,8,Nn),d=Dn(t,s);t.finish(t.addObject(5,(t=>{t.addInt16(0,n.V5,n.V1),t.addOffset(1,d,0),t.addOffset(2,o,0),t.addOffset(3,u,0),t.addOffset(4,c,0)})));const l=t.offset();t.addInt32(0),t.addInt32(-1),t.flush(),t.sink.write(new Uint8Array(Int32Array.of(l).buffer)),t.sink.write(e)}(d,a,h,f,o),d.sink}function Un(t,e){for(let n=0;n<e.length;++n)t.addBuffer(e[n])}function Fn(t,e){if(t?.type.typeId===i.Dictionary){const n=t.dictionary;e(n),Fn(n.data[0],e)}t?.children?.forEach((t=>Fn(t,e)))}function jn(t,e=0){const n=function(){let t=0;const e=[],n=[],s=[],r=[];return{node(t,n){e.push({length:t,nullCount:n})},buffer(e){const r=e.byteLength,i=r+7&-8;n.push({offset:t,length:i}),t+=i,s.push(new Uint8Array(e.buffer,e.byteOffset,r))},variadic(t){r.push(t)},children(t,e){t.children.forEach(((t,n)=>{kn(t.type,e.children[n],this)}))},done:()=>({byteLength:t,nodes:e,regions:n,variadic:r,buffers:s})}}();return t.forEach((t=>{kn(t.type,t.data[e],n)})),n.done()}function kn(t,e,n){const{typeId:s}=t;if(s!==i.Null)switch(n.node(e.length,e.nullCount),s){case i.Bool:case i.Int:case i.Time:case i.Duration:case i.Float:case i.Date:case i.Timestamp:case i.Decimal:case i.Interval:case i.FixedSizeBinary:case i.Dictionary:return n.buffer(e.validity),void n.buffer(e.values);case i.Utf8:case i.LargeUtf8:case i.Binary:case i.LargeBinary:return n.buffer(e.validity),n.buffer(e.offsets),void n.buffer(e.values);case i.BinaryView:case i.Utf8View:return n.buffer(e.validity),n.buffer(e.values),n.variadic(e.data.length),void e.data.forEach((t=>n.buffer(t)));case i.List:case i.LargeList:case i.Map:return n.buffer(e.validity),n.buffer(e.offsets),void n.children(t,e);case i.ListView:case i.LargeListView:return n.buffer(e.validity),n.buffer(e.offsets),n.buffer(e.sizes),void n.children(t,e);case i.FixedSizeList:case i.Struct:return n.buffer(e.validity),void n.children(t,e);case i.RunEndEncoded:return void n.children(t,e);case i.Union:return n.buffer(e.typeIds),t.mode===d.Dense&&n.buffer(e.offsets),void n.children(t,e);default:throw new Error(C(s))}}function zn(t){return new Rn(t)}class Rn{constructor(t=l){this.buf=new t(512)}array(t){return function(t,e=t.length){const n=function(t,e=1){return(t*e+7&-8)/e}(e,t.BYTES_PER_ELEMENT);return t.length>n?t.subarray(0,n):t.length<n?A(t,n):t}(this.buf,t)}prep(t){t>=this.buf.length&&(this.buf=N(this.buf,t))}get(t){return this.buf[t]}set(t,e){this.prep(e),this.buf[e]=t}write(t,e){this.prep(e+t.length),this.buf.set(t,e)}}function _n(){return new $n}class $n extends Rn{set(t){const e=t>>3;this.prep(e),this.buf[e]|=1<<t%8}}class Yn{constructor(t,e){this.type=t,this.ctx=e,this.batchClass=e.batchType(t)}init(){return this.index=-1,this}set(t,e){return this.index=e,!1}done(){return null}batch(){const t=new this.batchClass(this.done());return this.init(),t}}class Pn extends Yn{constructor(t,e){super(t,e)}init(){return this.nullCount=0,this.validity=_n(),super.init()}set(t,e){this.index=e;const n=null!=t;return n?this.validity.set(e):this.nullCount++,n}done(){const{index:t,nullCount:e,type:n,validity:s}=this;return{length:t+1,nullCount:e,type:n,validity:e?s.array(1+(t>>3)):new l(0)}}}function Hn(){const t=new Map,e=new Set;return{get(n,s){const r=n.id;if(r>=0&&t.has(r))return t.get(r);{const i=function(t,e){const n=Object.create(null),s=e.builder(t.dictionary),r=[];s.init();let i=-1;return{type:t,values:s,add:t=>(r.push(t),t),key(t){const e=Rt(t);let r=n[e];return void 0===r&&(n[e]=r=++i,s.set(t,r)),r},finish(e){const n=new(Ke(t.dictionary,e))(s.done()),i=new Xe([n]);r.forEach((t=>t.setDictionary(i)))}}}(n,s);return r>=0&&t.set(r,i),e.add(i),i}},finish(t){e.forEach((e=>e.finish(t)))}}}class Wn extends Pn{constructor(t,e){super(t,e),this.dict=e.dictionary(t)}init(){return this.values=zn(this.type.indices.values),super.init()}set(t,e){super.set(t,e)&&this.values.set(this.dict.key(t),e)}done(){return{...super.done(),values:this.values.array(this.index+1)}}batch(){return this.dict.add(super.batch())}}function Gn(t){const e=Jn();return t((t=>e.add(t))),e.type()}function Jn(){let t,e,n,s=0,r=0,i=0,a=0,c=0,u=0,o=0,d=0,l=0,h=0,f=0,y=1/0,p=-1/0,b=1/0,I=-1/0,g={};return{add(v){if(s++,null!=v)switch(typeof v){case"string":l++;break;case"number":a++,v<y&&(y=v),v>p&&(p=v),Number.isInteger(v)&&c++;break;case"bigint":u++,void 0===t?t=e=v:(v<t&&(t=v),v>e&&(e=v));break;case"boolean":i++;break;case"object":if(v instanceof Date)o++,+v%864e5==0&&d++;else if(L(v)){h++;const t=v.length;t<b&&(b=t),t>I&&(I=t),n??=Jn(),v.forEach(n.add)}else{f++;for(const t in v){(g[t]??(g[t]=Jn())).add(v[t])}}}else r++},type(){const v=s-r;return 0===v?z():c===v?function(t,e){const n=Math.max(Math.abs(t)-1,e);return n<128?_():n<32768?$():n<2**31?Y():K()}(y,p):a===v?K():u===v?function(t,e){const n=-t>e?-t-1n:e;if(n>=2**63)throw new Error(`BigInt exceeds 64 bits: ${n}`);return P()}(t,e):i===v?tt():d===v?st():o===v?it():l===v?k(Z()):h===v?function(t,e,n){return n===e?lt(t,e):ct(t)}(n.type(),b,I):f===v?ut(Object.entries(g).map((t=>V(t[0],t[1].type())))):function(){throw new Error("Mixed types detected, please define a union type.")}()}}}class Xn extends Pn{constructor(t,e){super(t,e),this.toOffset=Nt(t.offsets)}init(){return this.offsets=zn(this.type.offsets),this.values=zn(),this.pos=0,super.init()}set(t,e){const{offsets:n,values:s,toOffset:r}=this;super.set(t,e)&&(s.write(t,this.pos),this.pos+=t.length),n.set(r(this.pos),e+1)}done(){return{...super.done(),offsets:this.offsets.array(this.index+2),values:this.values.array(this.pos+1)}}}class qn extends Pn{constructor(t,e){super(t,e)}init(){return this.values=_n(),super.init()}set(t,e){super.set(t,e),t&&this.values.set(e)}done(){return{...super.done(),values:this.values.array(1+(this.index>>3))}}}class Kn extends Pn{constructor(t,e){super(t,e),this.scale=10**t.scale,this.stride=t.bitWidth>>6}init(){return this.values=zn(this.type.values),super.init()}set(t,e){const{scale:n,stride:s,values:r}=this;super.set(t,e)&&(r.prep((e+1)*s),function(t,e,n,s,r){const i="bigint"==typeof t?t:At(Math.trunc(t*r));e[n]=i,e[n+1]=i>>64n,s>2&&(e[n+2]=i>>128n,e[n+3]=i>>192n)}(t,r.buf,e*s,s,n))}done(){const{index:t,stride:e,values:n}=this;return{...super.done(),values:n.array((t+1)*e)}}}class Qn extends Pn{constructor(t,e){super(t,e),this.stride=t.stride}init(){return this.values=zn(),super.init()}set(t,e){super.set(t,e)&&this.values.write(t,e*this.stride)}done(){const{stride:t,values:e}=this;return{...super.done(),values:e.array(t*(this.index+1))}}}class Zn extends Pn{constructor(t,e){super(t,e),this.child=e.builder(this.type.children[0].type),this.stride=t.stride}init(){return this.child.init(),super.init()}set(t,e){const{child:n,stride:s}=this,r=e*s;if(super.set(t,e))for(let e=0;e<s;++e)n.set(t[e],r+e);else n.index=r+s}done(){const{child:t}=this;return{...super.done(),children:[t.batch()]}}}class ts extends Pn{init(){return this.values=zn(this.type.values),super.init()}set(t,e){if(super.set(t,e)){const n=e<<1;this.values.set(t[0],n),this.values.set(t[1],n+1)}}done(){return{...super.done(),values:this.values.array(this.index+1<<1)}}}class es extends Pn{init(){return this.values=zn(),super.init()}set(t,e){super.set(t,e)&&this.values.write(function([t,e,n]){return Lt[0]=t,Lt[1]=e,xt[1]=At(n),Et}(t),e<<4)}done(){return{...super.done(),values:this.values.array(this.index+1<<4)}}}class ns extends Pn{constructor(t,e,n){super(t,e),this.child=n}init(){this.child.init();const t=this.type.offsets;return this.offsets=zn(t),this.toOffset=Nt(t),this.pos=0,super.init()}done(){return{...super.done(),offsets:this.offsets.array(this.index+2),children:[this.child.batch()]}}}class ss extends ns{constructor(t,e){super(t,e,e.builder(t.children[0].type))}set(t,e){const{child:n,offsets:s,toOffset:r}=this;super.set(t,e)&&t.forEach((t=>n.set(t,this.pos++))),s.set(r(this.pos),e+1)}}class rs extends Pn{constructor(t,e){super(t,e),this.children=t.children.map((t=>e.builder(t.type)))}init(){return this.children.forEach((t=>t.init())),super.init()}done(){const{children:t}=this;return t.forEach((t=>t.index=this.index)),{...super.done(),children:t.map((t=>t.batch()))}}}class is extends rs{constructor(t,e){super(t,e),this.setters=this.children.map(((e,n)=>{const s=t.children[n].name;return(t,n)=>e.set(t?.[s],n)}))}set(t,e){super.set(t,e);const n=this.setters;for(let s=0;s<n.length;++s)n[s](t,e)}}class as extends ns{constructor(t,e){super(t,e,new cs(t.children[0].type,e))}set(t,e){const{child:n,offsets:s,toOffset:r}=this;if(super.set(t,e))for(const e of t)n.set(e,this.pos++);s.set(r(this.pos),e+1)}}class cs extends rs{set(t,e){super.set(t,e);const[n,s]=this.children;n.set(t[0],e),s.set(t[1],e)}}const us={};class os extends Yn{constructor(t,e){super(t,e),this.children=t.children.map((t=>e.builder(t.type)))}init(){return this.pos=0,this.key=null,this.value=us,this.children.forEach((t=>t.init())),super.init()}next(){const[t,e]=this.children;t.set(this.index+1,this.pos),e.set(this.value,this.pos++)}set(t,e){if(t!==this.value){const e=Rt(t);e!==this.key&&(this.key&&this.next(),this.key=e,this.value=t)}this.index=e}done(){this.next();const{children:t,index:e,type:n}=this;return{length:e+1,nullCount:0,type:n,children:t.map((t=>t.batch()))}}}class ds extends Yn{constructor(t,e){super(t,e),this.children=t.children.map((t=>e.builder(t.type))),this.typeMap=t.typeMap,this.lookup=t.typeIdForValue}init(){return this.nullCount=0,this.typeIds=zn(p),this.children.forEach((t=>t.init())),super.init()}set(t,e){const{children:n,lookup:s,typeMap:r,typeIds:i}=this;this.index=e;const a=s(t,e),c=n[r[a]];i.set(a,e),null==t&&++this.nullCount,this.update(t,e,c)}done(){const{children:t,nullCount:e,type:n,typeIds:s}=this,r=this.index+1;return{length:r,nullCount:e,type:n,typeIds:s.array(r),children:t.map((t=>t.batch()))}}}class ls extends ds{update(t,e,n){n.set(t,e),this.children.forEach((t=>{t!==n&&t.set(null,e)}))}}class hs extends ds{init(){return this.offsets=zn(this.type.offsets),super.init()}update(t,e,n){const s=n.index+1;n.set(t,s),this.offsets.set(s,e)}done(){return{...super.done(),offsets:this.offsets.array(this.index+1)}}}class fs extends Xn{set(t,e){super.set(t&&zt(t),e)}}class ys extends Pn{constructor(t,e){super(t,e),this.values=zn(t.values)}init(){return this.values=zn(this.type.values),super.init()}set(t,e){super.set(t,e)&&this.values.set(t,e)}done(){return{...super.done(),values:this.values.array(this.index+1)}}}class ps extends ys{set(t,e){super.set(null==t?t:At(t),e)}}class bs extends ys{constructor(t,e,n){super(t,e),this.transform=n}set(t,e){super.set(null==t?t:this.transform(t),e)}}function Is(t={},e=Hn()){return{batchType:e=>Ke(e,t),builder(t){return gs(t,this)},dictionary(t){return e.get(t,this)},finish:()=>e.finish(t)}}function gs(t,e=Is()){const{typeId:n}=t;switch(n){case i.Int:case i.Time:case i.Duration:return E(t.values)?new ps(t,e):new ys(t,e);case i.Float:return t.precision?new ys(t,e):new bs(t,e,Ut);case i.Binary:case i.LargeBinary:return new Xn(t,e);case i.Utf8:case i.LargeUtf8:return new fs(t,e);case i.Bool:return new qn(t,e);case i.Decimal:return new Kn(t,e);case i.Date:return new bs(t,e,t.unit?At:St);case i.Timestamp:return new bs(t,e,(s=t.unit)===u.SECOND?t=>At(t/1e3):s===u.MILLISECOND?At:s===u.MICROSECOND?t=>At(1e3*t):t=>At(1e6*t));case i.Interval:switch(t.unit){case o.DAY_TIME:return new ts(t,e);case o.MONTH_DAY_NANO:return new es(t,e)}return new ys(t,e);case i.List:case i.LargeList:return new ss(t,e);case i.Struct:return new is(t,e);case i.Union:return t.mode?new hs(t,e):new ls(t,e);case i.FixedSizeBinary:return new Qn(t,e);case i.FixedSizeList:return new Zn(t,e);case i.Map:return new as(t,e);case i.RunEndEncoded:return new os(t,e);case i.Dictionary:return new Wn(t,e)}var s;throw new Error(C(n))}function vs(t,e,n,s,r){n??=Gn(e);const{maxBatchRows:a,...c}=s,u=Math.min(a||1/0,t);if(n.typeId===i.Null)return new Xe(function(t,e,n){const s=[],r=e=>new ce({length:e,nullCount:e,type:t}),i=Math.floor(e/n);for(let t=0;t<i;++t)s.push(r(n));const a=e%n;a&&s.push(r(a));return s}(n,t,u));const o=Is(c,r),d=gs(n,o).init(),l=[],h=t=>l.push(t.batch());let f=0;return e((t=>{d.set(t,f++),f>=u&&(h(d),f=0)})),f&&h(d),o.finish(),new Xe(l)}function ws(t,e,n={},s){return!e&&O(t)?function(t,{maxBatchRows:e,useBigInt:n}){const s=t.constructor,r=function(t){switch(t){case v:return q();case w:return K();case p:return _();case b:return $();case I:return Y();case g:return P();case l:return H();case h:return W();case f:return G();case y:return J()}}(s),i=t.length,a=Math.min(e||1/0,i),c=Math.floor(i/a),u=[],o=E(s)&&!n?ue:re,d=(e,n)=>u.push(new o({length:a,nullCount:0,type:r,values:t.subarray(e,n)}));let m=0;for(let t=0;t<c;++t)d(m,m+=a);m<i&&d(m,i);return new Xe(u)}(t,n):vs(t.length,(e=>t.forEach(e)),e,n,s)}function ms(t,e){const r=[],i=Array.isArray(t)?t:Object.entries(t),a=i[0]?.[1].length,c=i.map((([t,e])=>{if(e.length!==a)throw new Error("All columns must have the same length.");return r.push(V(t,e.type)),e})),u={version:n.V5,endianness:s.Little,fields:r,metadata:null};return new qe(u,c,e)}t.Batch=se,t.Column=Xe,t.DateUnit=c,t.Endianness=s,t.IntervalUnit=o,t.Precision=a,t.Table=qe,t.TimeUnit=u,t.Type=i,t.UnionMode=d,t.Version=n,t.batchType=Ke,t.binary=Q,t.binaryView=()=>j(i.BinaryView),t.bool=tt,t.columnFromArray=ws,t.columnFromValues=vs,t.date=nt,t.dateDay=st,t.dateMillisecond=()=>nt(c.MILLISECOND),t.decimal=et,t.dictionary=k,t.dictionaryContext=Hn,t.duration=ft,t.field=V,t.fixedSizeBinary=dt,t.fixedSizeList=lt,t.float=X,t.float16=()=>X(a.HALF),t.float32=q,t.float64=K,t.int=R,t.int16=$,t.int32=Y,t.int64=P,t.int8=_,t.interval=at,t.largeBinary=yt,t.largeList=bt,t.largeListView=vt,t.largeUtf8=pt,t.list=ct,t.listView=gt,t.map=(t,e,n=!1)=>ht(n,V("entries",ut([F(t,"key",!1),F(e,"value")]),!1)),t.nullType=z,t.runEndEncoded=It,t.struct=ut,t.tableFromArrays=function(t,e={}){const{types:n={},...s}=e,r=Hn();return ms((Array.isArray(t)?t:Object.entries(t)).map((([t,e])=>[t,ws(e,n[t],s,r)])),e.useProxy)},t.tableFromColumns=ms,t.tableFromIPC=function(t,e){return function(t,e={}){const{schema:n={fields:[]},dictionaries:s,records:r}=t,{version:a,fields:c}=n,u=new Map,o=function(t,e,n){const s={version:e,options:t,dictionary:t=>n.get(t)};return t=>{const{length:e,nodes:n,regions:r,variadic:i,body:a}=t;let c=-1,u=-1,o=-1;return{...s,length:e,node:()=>n[++c],buffer:t=>{const{length:e,offset:n}=r[++u];return t?new t(a.buffer,a.byteOffset+n,e/t.BYTES_PER_ELEMENT):a.subarray(n,n+e)},variadic:()=>i[++o],visit(t){return t.map((t=>bn(t.type,this)))}}}}(e,a,u),d=new Map;!function(t,e){t.fields.forEach((function t(n){e(n),n.type.dictionary?.children?.forEach(t),n.type.children?.forEach(t)}))}(n,(t=>{const e=t.type;e.typeId===i.Dictionary&&d.set(e.id,e.dictionary)}));const l=new Map;for(const t of s){const{id:e,data:n,isDelta:s,body:r}=t,i=bn(d.get(e),o({...n,body:r}));if(l.has(e)){const t=l.get(e);s||t.clear(),t.add(i)}else{if(s)throw new Error("Delta update can not be first dictionary batch.");l.set(e,Je().add(i))}}l.forEach(((t,e)=>u.set(e,t.done())));const h=c.map((()=>Je()));for(const t of r){const e=o(t);c.forEach(((t,n)=>h[n].add(bn(t.type,e))))}return new qe(n,h.map((t=>t.done())),e.useProxy)}(pn(t),e)},t.tableToIPC=function(t,e){"string"==typeof e&&(e={format:e});const n=t.children;!function(t){const e=t[0]?.data.map((t=>t.length));t.forEach((({data:t})=>{if(t.length!==e.length||t.some(((t,n)=>t.length!==e[n])))throw new Error("Columns have inconsistent batch sizes.")}))}(n);const{dictionaries:s,idMap:r}=function(t){const e=[],n=new Map,s=new Map;let r=-1;const i=t=>{if(n.has(t))s.set(t.type,n.get(t));else{n.set(t,++r);for(let n=0;n<t.data.length;++n)e.push({id:r,isDelta:n>0,data:jn([t],n)});s.set(t.type,r)}};return t.forEach((t=>Fn(t.data[0],i))),{dictionaries:e,idMap:s}}(n),a=function(t){return(t[0]?.data||[]).map(((e,n)=>jn(t,n)))}(n),c=function(t,e){if(!e.size)return t;const n=t=>{t.typeId===i.Dictionary&&(t.id=e.get(t.dictionary),r(t)),t.children&&(t.children=t.children.slice()).forEach(s)},s=(t,e,s)=>{const r={...t.type};s[e]={...t,type:r},n(r)},r=t=>{const e={...t.dictionary};t.dictionary=e,n(e)};return t={...t,fields:t.fields.slice()},t.fields.forEach(s),t}(t.schema,r);return Tn({schema:c,dictionaries:s,records:a},e).finish()},t.time=rt,t.timeMicrosecond=()=>rt(u.MICROSECOND,64),t.timeMillisecond=()=>rt(u.MILLISECOND,32),t.timeNanosecond=()=>rt(u.NANOSECOND,64),t.timeSecond=()=>rt(u.SECOND,32),t.timestamp=it,t.uint16=W,t.uint32=G,t.uint64=J,t.uint8=H,t.union=ot,t.utf8=Z,t.utf8View=()=>j(i.Utf8View)}));
//# sourceMappingURL=flechette.min.js.map

@@ -6,7 +6,7 @@ ---

[Top-Level](/flechette/api) | [Data Types](data-types) | [Table](table) | [**Column**](column)
[Top-Level](/flechette/api) | [Data Types](data-types) | [Schema](schema) | [Table](table) | [**Column**](column)
## Column Class
A data column. A column provides a view over one or more value batches, each corresponding to part of an Arrow record batch. The Column class supports random access to column values by integer index using the [`at`](#at) method; however, extracting arrays using [`toArray`](#toArray) may provide more efficient means of bulk access and scanning.
A data column. A column provides a view over one or more value batches, each corresponding to part of an Arrow record batch. The Column class supports random access to column values by integer index using the [`at`](#at) method; however, extracting arrays using [`toArray`](#toArray) may provide more performant means of bulk access and scanning.

@@ -53,4 +53,6 @@ * [constructor](#constructor)

Return the column value at the given *index*. If a column has multiple batches, this method performs binary search over the batch lengths to determine the batch from which to retrieve the value. The search makes lookup less efficient than a standard array access. If making multiple full scans of a column, consider extracting an array via `toArray()`.
Return the column value at the given *index*. The value type is determined by the column data type and extraction options; see the [data types](data-types#data-type-overview) documentation for more.
If a column has multiple batches, this method performs binary search over the batch lengths to determine the batch from which to retrieve the value. The search makes lookup less efficient than a standard array access. If making multiple full scans of a column, consider extracting an array via `toArray()`.
* *index* (`number`): The row index.

@@ -66,7 +68,7 @@

Extract column values into a single array instance. When possible, a zero-copy subarray of the input Arrow data is returned. A typed array is used if possible. If a column contains `null` values, a standard `Array` is created and populated.
Extract column values into a single array instance. The value type is determined by the column data type and extraction options; see the [data types](data-types#data-type-overview) documentation for more. When possible, a zero-copy subarray of the input Arrow data is returned. A typed array is used if possible. If a column contains `null` values, a standard `Array` is created and populated.
<hr/><a id="iterator" href="#iterator">#</a>
Column<b>[Symbol.iterator]</b>()
Column[<b>Symbol.iterator</b>]()
Return an iterator over the values in this column.
Return an iterator over the values in this column. The value type is determined by the column data type and extraction options; see the [data types](data-types#data-type-overview) documentation for more.

@@ -6,3 +6,3 @@ ---

[Top-Level](/flechette/api) | [**Data Types**](data-types) | [Table](table) | [Column](column)
[Top-Level](/flechette/api) | [**Data Types**](data-types) | [Schema](schema) | [Table](table) | [Column](column)

@@ -45,3 +45,4 @@ ## Data Type Overview

* [field](#field)
Each of the methods below returns a `DataType` instance as a standard JavaScript object. Data types are used to define a `Field` within a table `Schema`. See the [Schema documentation](./schema) for more.
* [dictionary](#dictionary)

@@ -75,14 +76,2 @@ * [nullType](#nullType)

### Field
<hr/><a id="field" href="#field">#</a>
<b>field</b>(<i>name</i>, <i>type</i>[, <i>nullable</i>, <i>metadata</i>])
Create a new field instance for use in a schema or type definition. A field represents a field name, data type, and additional metadata. Fields are used to represent child types within nested types like [List](#list), [Struct](#struct), and [Union](#union).
* *name* (`string`): The field name.
* *type* (`DataType`): The field data type.
* *nullable* (`boolean`): Flag indicating if the field is nullable (default `true`).
* *metadata* (`Map<string,string>`): Custom field metadata annotations (default `null`).
### Dictionary

@@ -89,0 +78,0 @@

@@ -6,3 +6,3 @@ ---

[**Top-Level**](/flechette/api) | [Data Types](data-types) | [Table](table) | [Column](column)
[**Top-Level**](/flechette/api) | [Data Types](data-types) | [Schema](schema) | [Table](table) | [Column](column)

@@ -9,0 +9,0 @@ ## Top-Level Decoding and Encoding

@@ -6,3 +6,3 @@ ---

[Top-Level](/flechette/api) | [Data Types](data-types) | [**Table**](table) | [Column](column)
[Top-Level](/flechette/api) | [Data Types](data-types) | [Schema](schema) | [**Table**](table) | [Column](column)

@@ -29,3 +29,3 @@ ## Table Class

Create a new table with the given *schema* and *children* columns. The column types and order *must* be consistent with the given *schema*.
Create a new table with the given *schema* and *children* columns. The column types and order *must* be consistent with the given *schema*. The [`tableFromArrays`](/flechette/api/#tableFromArrays) and [`tableFromColumns`](/flechette/api/#tableFromColumns) methods provide more convenient ways to construct a table.

@@ -79,3 +79,3 @@ * *schema* (`Schema`): The table schema.

Return a row object for the given *index*. The type of object (standard object or row proxy object) is determined by the table `useProxy` constructor argument.
Return a row object for the given *index*. The type of object (standard object or row proxy object) is determined by the table `useProxy` constructor argument. The property values of the object are determined by the column data types and extraction options; see the [data types](data-types#data-type-overview) documentation for more.

@@ -92,3 +92,3 @@ * *index* (`number`): The row index.

Return an object that maps column names to extracted value arrays.
Return an object that maps column names to extracted value arrays. The values in each array are determined by the column data types and extraction options; see the [data types](data-types#data-type-overview) documentation for more.

@@ -98,7 +98,7 @@ <hr/><a id="toArray" href="#toArray">#</a>

Return an array of objects representing the rows of this table. The type of object (standard object or row proxy object) is determined by the table `useProxy` constructor argument.
Return an array of objects representing the rows of this table. The type of object (standard object or row proxy object) is determined by the table `useProxy` constructor argument. The property values of the object are determined by the column data types and extraction options; see the [data types](data-types#data-type-overview) documentation for more.
<hr/><a id="iterator" href="#iterator">#</a>
Table<b>[Symbol.iterator]</b>()
Table[<b>Symbol.iterator</b>]()
Return an iterator over row objects representing the rows of this table. The type of object (standard object or row proxy object) is determined by the table `useProxy` constructor argument.
Return an iterator over row objects representing the rows of this table. The type of object (standard object or row proxy object) is determined by the table `useProxy` constructor argument. The property values of the object are determined by the column data types and extraction options; see the [data types](data-types#data-type-overview) documentation for more.
{
"name": "@uwdata/flechette",
"version": "1.0.0-beta.3",
"version": "1.0.0",
"description": "Fast, lightweight access to Apache Arrow data.",

@@ -5,0 +5,0 @@ "keywords": [

@@ -28,3 +28,3 @@ import { MAGIC, MessageHeader, Version } from '../constants.js';

: data;
return !Array.isArray(source) && isArrowFileFormat(source)
return source instanceof Uint8Array && isArrowFileFormat(source)
? decodeIPCFile(source)

@@ -64,2 +64,5 @@ : decodeIPCStream(source);

for (const buf of stream) {
if (!(buf instanceof Uint8Array)) {
throw new Error(`IPC data batch was not a Uint8Array.`);
}
let offset = 0;

@@ -66,0 +69,0 @@

@@ -19,3 +19,6 @@ import { Type, UnionMode } from '../constants.js';

}
const columns = table.children;
checkBatchLengths(columns);
const { dictionaries, idMap } = assembleDictionaryBatches(columns);

@@ -28,2 +31,11 @@ const records = assembleRecordBatches(columns);

function checkBatchLengths(columns) {
const n = columns[0]?.data.map(d => d.length);
columns.forEach(({ data }) => {
if (data.length !== n.length || data.some((b, i) => b.length !== n[i])) {
throw new Error('Columns have inconsistent batch sizes.');
}
});
}
/**

@@ -30,0 +42,0 @@ * Create a new assembly context.

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc