@knockdata/objectexplorer 0.5.2 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- function e(e){let t=new DataView(e),n=0,r=!0;return{get offset(){return n},set offset(e){n=e},get littleEndian(){return r},set littleEndian(e){r=e},readInt32(){let e=t.getInt32(n,r);return n+=4,e},readFloat64(){let e=t.getFloat64(n,r);return n+=8,e},readString(t){let r=new Uint8Array(e,n,t);return n+=t,new TextDecoder(`utf-8`).decode(r)},readBytes(t){let r=new Uint8Array(e,n,t);return n+=t,r},skip(e){n+=e}}}var t=-17976931348623157e292;function n(e){return e.replace(/\s+$/,``)}function r(e){let t=e.readString(4);if(t!==`$FL2`&&t!==`$FL3`)throw Error(`Not a valid SPSS .sav file (magic: `+t+`)`);let r=n(e.readString(60)),i=e.readInt32();i===2?e.littleEndian=!0:(i===3||((i&255)<<24|(i&65280)<<8|(i&16711680)>>8|i>>>24&255)==2)&&(e.littleEndian=!1);let a=e.readInt32(),o=e.readInt32(),s=e.readInt32(),c=e.readInt32(),l=e.readFloat64(),u=n(e.readString(9)),d=n(e.readString(8)),f=n(e.readString(64));return e.skip(3),{magic:t,productName:r,nominalCaseSize:a,compression:o,weightIndex:s,ncases:c,bias:l,creationDate:u,creationTime:d,fileLabel:f}}function i(e){let t=e.readInt32(),r=e.readInt32(),i=e.readInt32(),a=e.readInt32(),o=e.readInt32(),s=n(e.readString(8)),c=null;if(r===1){let t=e.readInt32();c=n(e.readString(t));let r=Math.ceil(t/4)*4;r>t&&e.skip(r-t)}let l=[],u=Math.abs(i);for(let t=0;t<u;t++)l.push(e.readFloat64());return{type:t,name:s,label:c,nMissingValues:i,missingValues:l,printFormat:a,writeFormat:o}}function a(e,t){let r=e.readInt32(),i=[];for(let t=0;t<r;t++){let t=e.readFloat64(),r=e.readBytes(1)[0],a=n(e.readString(r)),o=1+r,s=Math.ceil(o/8)*8;s>o&&e.skip(s-o),i.push({value:t,label:a})}let a=e.readInt32();if(a!==4)throw Error(`Expected record type 4 after value labels, got `+a);let o=e.readInt32(),s=[];for(let t=0;t<o;t++)s.push(e.readInt32());return{labels:i,varIndices:s}}function o(e){let t=e.readInt32(),r=e.readInt32(),i=e.readInt32(),a=r*i,o=null;return t===13||t===14||t===20?o=n(e.readString(a)):e.skip(a),{subtype:t,size:r,count:i,data:o}}function s(e,r,i){let a=r.bias,o=[];for(let e of i)e.type===-1?o.push({type:`string-cont`}):e.type===0?o.push({type:`numeric`,variable:e}):o.push({type:`string`,variable:e,width:e.type});let s=[],l=[],u=0;function d(){return u>=l.length&&(l=Array.from(e.readBytes(8)),u=0),l[u++]}let f=r.ncases>0?r.ncases:1/0;outerLoop:for(;s.length<f;){let r={},i=0;for(;i<o.length;){let n=o[i],s;try{s=d()}catch{break outerLoop}if(s===0){i++;continue}if(s===252)break outerLoop;if(s===253){if(n.type===`numeric`){let i=e.readFloat64();i===t||Math.abs(i-t)<1e290?r[n.variable.name]=null:r[n.variable.name]=i}else if(n.type===`string`){let t=e.readString(8);r[n.variable.name]===void 0?r[n.variable.name]=t:r[n.variable.name]+=t}else{let t=c(o,i);t?r[t.variable.name]+=e.readString(8):e.skip(8)}i++}else if(s===254){if(n.type===`string`)r[n.variable.name]===void 0?r[n.variable.name]=` `:r[n.variable.name]+=` `;else if(n.type===`string-cont`){let e=c(o,i);e&&(r[e.variable.name]+=` `)}i++}else s===255?(n.type===`numeric`&&(r[n.variable.name]=null),i++):(n.type===`numeric`&&(r[n.variable.name]=s-a),i++)}for(let e of Object.keys(r))typeof r[e]==`string`&&(r[e]=n(r[e]));Object.keys(r).length>0&&s.push(r)}return s}function c(e,t){for(let n=t-1;n>=0;n--)if(e[n].type===`string`)return e[n];return null}function l(e,r,i){let a=[];for(let e of i)e.type===-1?a.push({type:`string-cont`}):e.type===0?a.push({type:`numeric`,variable:e}):a.push({type:`string`,variable:e,width:e.type});let o=[],s=r.ncases>0?r.ncases:1e5;for(let r=0;r<s;r++){let r={};try{for(let n=0;n<a.length;n++){let i=a[n];if(i.type===`numeric`){let n=e.readFloat64();n===t||Math.abs(n-t)<1e290?r[i.variable.name]=null:r[i.variable.name]=n}else if(i.type===`string`){let t=e.readString(8);r[i.variable.name]===void 0?r[i.variable.name]=t:r[i.variable.name]+=t}else{let t=c(a,n);t?r[t.variable.name]+=e.readString(8):e.skip(8)}}}catch{break}for(let e of Object.keys(r))typeof r[e]==`string`&&(r[e]=n(r[e]));Object.keys(r).length>0&&o.push(r)}return o}function u(t){let c=e(t),u=r(c),d=[],f=[],p={},m=null,h=!0;for(;h;){let e=c.readInt32();if(e===2)d.push(i(c));else if(e===3)f.push(a(c,d));else if(e===6){let e=c.readInt32();c.skip(e*80)}else if(e===7){let e=o(c);p[e.subtype]=e,e.subtype===13&&e.data&&(m=e.data)}else if(e===999)c.readInt32(),h=!1;else throw Error(`Unknown record type: `+e)}let g={};if(m){let e=m.split(` `);for(let t of e){let[e,n]=t.split(`=`);e&&n&&(g[e.trim()]=n.trim())}}let _={};if(p[14]&&p[14].data){let e=p[14].data.split(`\0`).filter(function(e){return e.length>0});for(let t of e){let[e,n]=t.split(`=`);e&&n&&(_[e.trim()]=parseInt(n,10))}}let v=new Set;for(let e of Object.keys(_)){let t=_[e],n=Math.ceil(t/252);for(let t=1;t<n;t++){let n=String(t).padStart(3,`0`),r=(e.substring(0,5)+n).toUpperCase();v.add(r)}}let y=d.filter(function(e){return!(e.type===-1||v.has(e.name))});for(let e of y)e.longName=g[e.name]?g[e.name]:e.name;for(let e of f)for(let t of e.varIndices){let n=d[t-1];if(n){n.valueLabels={};for(let t of e.labels)n.valueLabels[t.value]=t.label}}let b;b=u.compression===1?s(c,u,d):l(c,u,d);let x=b.map(function(e){let t={};for(let r of y){let i=r.longName;if(r.type>0){let a=e[r.name]||``,o=d.indexOf(r);for(let t=o+1;t<d.length&&d[t].type===-1;t++)e[d[t].name]!==void 0&&(a+=e[d[t].name]);if(_[r.name]){let t=_[r.name],n=Math.ceil(t/252);for(let t=1;t<n;t++){let n=String(t).padStart(3,`0`),i=(r.name.substring(0,5)+n).toUpperCase(),o=d.findIndex(function(e){return e.name===i});if(o>=0){a+=e[i]||``;for(let t=o+1;t<d.length&&d[t].type===-1;t++)e[d[t].name]!==void 0&&(a+=e[d[t].name])}}}t[i]=n(a)}else t[i]=e[r.name]}return t});return{header:u,variables:y,payload:x,encoding:p[20]?p[20].data:null,totalCases:x.length,totalVariables:y.length}}var d={0:`meta`,256:`data`,512:`mix`,1024:`amd`,16384:`meta (extended)`};function f(e){return d[e&32767]??`type ${e}`}function p(e){let t=e&32767;return t===0||t===512||t===1024||t===16384}function m(e){let t=e&32767;return t===256||t===512}function h(e,t,n){let{word:r,wordSize:i,u8:a,pageBitOffset:o,pointerSize:s,view:c}=e,l=t+o+8,u=[];for(let e=0;e<n;e+=1){let n=l+e*s;n+s<=c.byteLength&&u.push({index:e,pointerOffset:n,pointerSize:s,offset:t+r(n),size:r(n+i),compression:a(n+i*2),type:a(n+i*2+1),truncated:a(n+i*2)===1})}return u}function g(e,t){let{u16:n,pageBitOffset:r,view:i}=e,a=[],o=Math.min(t.pageCount,4096);for(let s=0;s<o;s+=1){let o=t.headerLength+s*t.pageLength;if(o+t.pageLength<=i.byteLength){let i=o+r,c=n(i),l=n(i+2),u=n(i+4),d={index:s,offset:o,size:t.pageLength,headerSize:r+8,pageType:c,name:f(c),blockCount:l,subheaderCount:u,rowCount:m(c)?l-u:0,subheaders:p(c)?h(e,o,u):[]};a.push(d)}}return a}var _=4160223223,v=4143380214,y=4294967293,b=4294967295,x=4294967292,S=8,ee=[`SASYZCRL`,`SASYZCR2`],te={[_]:`row size`,[v]:`column size`,[y]:`column text`,[b]:`column name`,[x]:`column attributes`,4294966270:`column list`,4294967294:`column format and label`};function ne(e){return te[e>>>0]??`0x${(e>>>0).toString(16)}`}function re(e,t){let n=e.wide&&e.littleEndian===!1;return e.u32(n?t+4:t)>>>0}function ie(e,t){let{word:n,wordSize:r}=e;return{rowLength:n(t.offset+r*5),rowCount:n(t.offset+r*6)}}function C(e,t){let n=t.offset+e.wordSize,r=e.u16(n);return{offset:n,size:Math.min(r,t.size)}}function w(e,t,n,r,i){let a=t[n];return a&&i>0?e.text(a.offset+r,i):``}function ae(e,t,n,r){let{u16:i,wordSize:a}=e,o=n.offset+a,s=Math.floor((n.size-2*a-12)/S);for(let n=0;n<s;n+=1){let a=o+S*(n+1);r.push(w(e,t,i(a),i(a+2),i(a+4)))}}function oe(e,t,n){let{word:r,u32:i,u8:a,wordSize:o}=e,s=o+8,c=Math.floor((t.size-2*o-12)/s);for(let e=0;e<c;e+=1){let c=t.offset+e*s;n.push({offset:r(c+o+8),width:i(c+o*2+8),type:a(c+o*2+14)===1?`numeric`:`character`})}}function se(e,t){let n=[],r=[],i=[],a=0,o=0,s=0,c=``;for(let l of t)for(let t of l.subheaders)if(t.truncated===!1&&t.size>0){let l=re(e,t.offset);if(t.signature=l,t.name=ne(l),l===_){let n=ie(e,t);a=n.rowLength,o=n.rowCount}else if(l===v)s=e.word(t.offset+e.wordSize);else if(l===y){let r=C(e,t);if(n.push(r),c===``){let t=e.text(r.offset,Math.min(r.size,64));c=ee.find(e=>t.includes(e))??``}}else l===b?ae(e,n,t,r):l===x&&oe(e,t,i)}let l=i.map((e,t)=>({name:r[t]??`column${t+1}`,type:e.type,offset:e.offset,width:e.width}));return{columns:s>0?l.slice(0,s):l,rowLength:a,rowCount:o,columnCount:s,compression:c}}var T=[0,0,0,0,0,0,0,0,0,0,0,0,194,234,129,96,179,20,17,207,189,146,8,0,9,199,49,140,24,31,16,17],E=51,D=4,ce=new TextDecoder(`latin1`);function le(e){let t=e.length>1024;for(let n=0;t&&n<T.length;n+=1)t=e[n]===T[n];return t}function O(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=e[32]===E,r=n?D:0,i=e[35]===E?D:0,a=e[37]===1,o=n?8:4;return{view:t,wide:n,align1:i,align2:r,totalAlign:i+r,littleEndian:a,wordSize:o,pageBitOffset:n?32:16,pointerSize:n?24:12,u8:e=>t.getUint8(e),u16:e=>t.getUint16(e,a),u32:e=>t.getUint32(e,a),f64:e=>t.getFloat64(e,a),word:e=>n?Number(t.getBigUint64(e,a)):t.getUint32(e,a),text:(t,n)=>ce.decode(e.subarray(t,t+n)).replace(/\0/g,``).trimEnd()}}var ue=Date.UTC(1960,0,1);function k(e){return new Date(ue+e*1e3).toISOString().slice(0,19).replace(`T`,` `)}function de(e){let{align1:t,align2:n,totalAlign:r,u32:i,f64:a,text:o,word:s,wordSize:c}=e;return{offset:0,magicSize:32,wide:e.wide,littleEndian:e.littleEndian,name:o(92+t,64),fileType:o(156+t,8),created:k(a(164+t)),modified:k(a(172+t)),size:i(196+t),headerLength:i(196+t),pageLength:i(200+t),pageCount:n===0?i(204+t):s(204+t),release:o(216+r,8),host:o(224+r,16),osVersion:o(240+r,16),osName:o(272+r,16),wordSize:c}}function A(e){let t=e instanceof Uint8Array?e:new Uint8Array(e);if(le(t)){let e=O(t),n=de(e),r=g(e,n),i=se(e,r);return{header:n,pages:r,columns:i.columns,rowLength:i.rowLength,rowCount:i.rowCount,compression:i.compression,fileSize:t.length}}throw Error(`not a sas7bdat file`)}var j=new TextDecoder(`latin1`),M=256,N=8;function P(e,t){let{pageBitOffset:n,pointerSize:r}=e;if((t.pageType&32767)===M)return t.offset+n+N;{let e=n+N+t.subheaderCount*r;return t.offset+e+(e%8==0?0:8-e%8)}}function F(e,t,n){if(n===8)return e.f64(t);{let r=new Uint8Array(8);for(let i=0;i<n;i+=1)r[e.littleEndian?8-n+i:i]=e.u8(t+i);return new DataView(r.buffer).getFloat64(0,e.littleEndian)}}function I(e,t,n,r){let i=r+n.offset;if(n.type===`numeric`){let t=F(e,i,n.width);return Number.isNaN(t)?null:t}return j.decode(t.subarray(i,i+n.width)).replace(/\0/g,``).trimEnd()}function L(e,t,n,r){let{columns:i,rowLength:a,header:o,pages:s}=n,c=[],l=Math.min(n.rowCount,r),u=n.compression!==``;if(u===!1&&a>0&&i.length>0){for(let n of s)if(m(n.pageType)&&c.length<l){let r=P(t,n),s=n.offset+o.pageLength;for(let o=0;o<n.rowCount&&c.length<l;o+=1){let n=r+o*a;if(n+a<=s){let r={};for(let a of i)r[a.name]=I(t,e,a,n);c.push(r)}}}}return{rows:c,compressed:u}}var R=new TextDecoder(`ascii`);new TextEncoder;function z(e,t,n){return R.decode(e.subarray(t,t+n)).trimEnd()}function B(e,t){let n=z(e,t,80),r;if(n.startsWith(`HEADER RECORD*******LIBRARY HEADER RECORD`))r=5;else if(n.startsWith(`HEADER RECORD*******LIBV8 HEADER RECORD`)||n.startsWith(`HEADER RECORD*******LIBV9 HEADER RECORD`))r=8;else throw Error(`Not a valid XPT file: missing library header`);z(e,t+80,8),z(e,t+88,8),z(e,t+96,8);let i=z(e,t+104,8),a=z(e,t+112,8),o=z(e,t+144,16),s=z(e,t+160,16);return{xptVersion:r,version:i,os:a,created:o,modified:s,nextOffset:t+240}}function V(e,t){let n=z(e,t,80);return!n.startsWith(`HEADER RECORD*******MEMBER HEADER RECORD`)&&!n.startsWith(`HEADER RECORD*******MEMBV8 HEADER RECORD`)?null:{name:z(e,t+168,8),created:z(e,t+224,16),modified:z(e,t+240,16),label:z(e,t+272,40),nextOffset:t+320}}var H=new TextDecoder(`ascii`);new TextEncoder;function U(e,t,n){return H.decode(e.subarray(t,t+n)).trimEnd()}function W(e){let t=e%80;return t===0?e:e+(80-t)}function fe(e,t){let n=U(e,t,80);if(!n.startsWith(`HEADER RECORD*******NAMESTR HEADER RECORD`)&&!n.startsWith(`HEADER RECORD*******NAMSTV8 HEADER RECORD`))throw Error(`Missing NAMESTR header at offset `+t);return{numVars:parseInt(n.slice(48,58),10),nextOffset:t+80}}function pe(e,t,n){let r=new DataView(e.buffer,e.byteOffset+t,140),i=U(e,t+8,8),a=n>=8?U(e,t+88,32):``;return{ntype:r.getInt16(0,!1),nlng:r.getInt16(4,!1),nvar0:r.getInt16(6,!1),name:a||i,label:U(e,t+16,40),format:U(e,t+56,8),nfl:r.getInt16(64,!1),nfd:r.getInt16(66,!1),npos:r.getInt32(84,!1)}}function me(e,t,n,r){let i=[];for(let a=0;a<n;a++)i.push(pe(e,t+a*140,r));return i.sort(function(e,t){return e.npos-t.npos}),{variables:i,nextOffset:t+W(n*140)}}function he(e,t,n){let r=U(e,t,80),i=r.startsWith(`HEADER RECORD*******LABELV9 HEADER RECORD`);if(!(!i&&r.startsWith(`HEADER RECORD*******LABELV8 HEADER RECORD`))&&!i)return null;let a=parseInt(r.slice(48,53),10),o=i?5:3,s=new Map(n.map(function(e){return[e.nvar0,e]})),c=t+80;for(let t=0;t<a;t++){let t=new DataView(e.buffer,e.byteOffset+c,o*2),n=t.getUint16(0,!1),r=t.getUint16(2,!1),a=t.getUint16(4,!1),l=i?t.getUint16(6,!1):0,u=i?t.getUint16(8,!1):0;c+=o*2;let d=s.get(n),f=U(e,c,r);c+=r;let p=U(e,c,a);c+=a;let m=i?U(e,c,l):void 0;c+=l,c+=u,d&&(d.name=f,d.label=p,m!==void 0&&(d.format=m))}return{nextOffset:t+W(c-t)}}var G=new Set([46,95]);for(let e=65;e<=90;e++)G.add(e);function ge(e,t){if(G.has(e[t])){for(let n=1;n<8;n++)if(e[t+n]!==0)return!1;return!0}return!1}function _e(e,t){for(let n=0;n<8;n++)if(e[t+n]!==0)return!1;return!0}var K=new DataView(new ArrayBuffer(8));function ve(e,t){if(_e(e,t))return 0;if(ge(e,t))return null;let n=new DataView(e.buffer,e.byteOffset+t,8),r=BigInt(n.getUint32(0,!1)),i=BigInt(n.getUint32(4,!1)>>>0),a=r<<32n|i,o=a&9223372036854775808n,s=Number(a>>56n&127n),c=a&72057594037927935n;if(c===0n)return 0;let l=0,u=c;(u&36028797018963968n)==0n&&(l++,u<<=1n),(u&36028797018963968n)==0n&&(l++,u<<=1n),(u&36028797018963968n)==0n&&(l++,u<<=1n);let d=(s-64)*4-l-1+1023;if(d<=0)return 0;if(d>=2047)return o?-1/0:1/0;let f=(u&36028797018963967n)>>3n,p=o|BigInt(d)<<52n|f;return K.setBigUint64(0,p,!1),K.getFloat64(0,!1)}var ye=new TextDecoder(`ascii`);new TextEncoder;function q(e,t,n){return ye.decode(e.subarray(t,t+n)).trimEnd()}function be(e,t,n){for(let r=0;r<n;r++){let n=e[t+r];if(n!==32&&n!==0)return!1}return!0}function xe(e,t,n){let r=q(e,t,80);if(!r.startsWith(`HEADER RECORD*******OBS HEADER RECORD`)&&!r.startsWith(`HEADER RECORD*******OBSV8 HEADER RECORD`))throw Error(`Missing OBS header at offset `+t);let i=t+80,a=n.reduce(function(e,t){return e+t.nlng},0),o=[],s=i;for(;s+a<=e.length&&!be(e,s,a);){let t=[],r=s;for(let i=0;i<n.length;i++){let a=n[i];if(a.ntype===1){let n=ve(e,r);t.push(n)}else t.push(q(e,r,a.nlng));r+=a.nlng}o.push(t),s+=a}return o}function Se(e){let t=new Uint8Array(e),n=0,r=B(t,n);n=r.nextOffset;let i=[];for(;n<t.length;){let e=V(t,n);if(!e)break;n=e.nextOffset;let a=fe(t,n);n=a.nextOffset;let{variables:o,nextOffset:s}=me(t,n,a.numVars,r.xptVersion);n=s;let c=he(t,n,o),l=c?c.nextOffset:n,u=xe(t,l,o);i.push({name:e.name,label:e.label,variables:o,observations:u});let d=o.reduce(function(e,t){return e+t.nlng},0),f=u.length*d;n=l+80+f;let p=n%80;p!==0&&(n+=80-p)}return{version:r.version,os:r.os,created:r.created,modified:r.modified,members:i}}var Ce=new Set([`sav`,`sas7bdat`,`xpt`]),we=-Number.MAX_VALUE,J=new Set([20,23,24,26,27,28,29,30,38,39]),Y=new Set([22]),X=new Set([21,25]),Z=12219379200;function Q(e,t){let n=t instanceof Uint8Array?t:new Uint8Array(t),r=n.buffer.slice(n.byteOffset,n.byteOffset+n.length);if(e===`sav`)return Ee(r);if(e===`sas7bdat`)return ke(n);if(e===`xpt`)return Ae(r);throw Error(`parquet-table: no parser for .${e}`)}function Te(e,t){return t.map(t=>e.map(e=>$(t[e.name])))}function $(e){return e==null||e===we||e<=-17976931348623157e292?null:e}function Ee(e){let{variables:t,payload:n}=u(e),r=t.map(e=>({name:e.longName||e.name,type:e.type===0?De(e):`text`,formatType:e.printFormat>>16&255})),i=n.map(e=>r.map(t=>Oe(t,e[t.name])));return{columns:r.map(({name:e,type:t})=>({name:e,type:t})),rows:i}}function De(e){let t=e.printFormat>>16&255;return J.has(t)||Y.has(t)||X.has(t)?`text`:`number`}function Oe(e,t){let n=$(t);return n===null?null:J.has(e.formatType)?new Date((n-Z)*1e3).toISOString().slice(0,10):Y.has(e.formatType)?new Date((n-Z)*1e3).toISOString():X.has(e.formatType)?new Date(n*1e3).toISOString().slice(11,19):n}function ke(e){let t=A(e),{rows:n}=L(e,O(e),t,t.rowCount),r=t.columns.map(e=>({name:e.name,type:e.type===`numeric`?`number`:`text`}));return{columns:r,rows:Te(r,n)}}function Ae(e){let t=Se(e).members[0];if(t)return{columns:t.variables.map(e=>({name:e.name,type:e.ntype===1?`number`:`text`})),rows:t.observations.map(e=>e.map($))};throw Error(`parquet-table: the xpt file has no members`)}export{Q as n,Ce as t};
1
+ function e(e){let t=new DataView(e),n=0,r=!0;return{get offset(){return n},set offset(e){n=e},get littleEndian(){return r},set littleEndian(e){r=e},readInt32(){let e=t.getInt32(n,r);return n+=4,e},readFloat64(){let e=t.getFloat64(n,r);return n+=8,e},readString(t){let r=new Uint8Array(e,n,t);return n+=t,new TextDecoder(`utf-8`).decode(r)},readBytes(t){let r=new Uint8Array(e,n,t);return n+=t,r},skip(e){n+=e}}}var t=-17976931348623157e292;function n(e){return e.replace(/\s+$/,``)}function r(e){let t=e.readString(4);if(t!==`$FL2`&&t!==`$FL3`)throw Error(`Not a valid SPSS .sav file (magic: `+t+`)`);let r=n(e.readString(60)),i=e.readInt32();i===2?e.littleEndian=!0:(i===3||((i&255)<<24|(i&65280)<<8|(i&16711680)>>8|i>>>24&255)==2)&&(e.littleEndian=!1);let a=e.readInt32(),o=e.readInt32(),s=e.readInt32(),c=e.readInt32(),l=e.readFloat64(),u=n(e.readString(9)),d=n(e.readString(8)),f=n(e.readString(64));return e.skip(3),{magic:t,productName:r,nominalCaseSize:a,compression:o,weightIndex:s,ncases:c,bias:l,creationDate:u,creationTime:d,fileLabel:f}}function i(e){let t=e.readInt32(),r=e.readInt32(),i=e.readInt32(),a=e.readInt32(),o=e.readInt32(),s=n(e.readString(8)),c=null;if(r===1){let t=e.readInt32();c=n(e.readString(t));let r=Math.ceil(t/4)*4;r>t&&e.skip(r-t)}let l=[],u=Math.abs(i);for(let t=0;t<u;t++)l.push(e.readFloat64());return{type:t,name:s,label:c,nMissingValues:i,missingValues:l,printFormat:a,writeFormat:o}}function a(e,t){let r=e.readInt32(),i=[];for(let t=0;t<r;t++){let t=e.readFloat64(),r=e.readBytes(1)[0],a=n(e.readString(r)),o=1+r,s=Math.ceil(o/8)*8;s>o&&e.skip(s-o),i.push({value:t,label:a})}let a=e.readInt32();if(a!==4)throw Error(`Expected record type 4 after value labels, got `+a);let o=e.readInt32(),s=[];for(let t=0;t<o;t++)s.push(e.readInt32());return{labels:i,varIndices:s}}function o(e){let t=e.readInt32(),r=e.readInt32(),i=e.readInt32(),a=r*i,o=null;return t===13||t===14||t===20?o=n(e.readString(a)):e.skip(a),{subtype:t,size:r,count:i,data:o}}function s(e,r,i){let a=r.bias,o=[];for(let e of i)e.type===-1?o.push({type:`string-cont`}):e.type===0?o.push({type:`numeric`,variable:e}):o.push({type:`string`,variable:e,width:e.type});let s=[],l=[],u=0;function d(){return u>=l.length&&(l=Array.from(e.readBytes(8)),u=0),l[u++]}let f=r.ncases>0?r.ncases:1/0;outerLoop:for(;s.length<f;){let r={},i=0;for(;i<o.length;){let n=o[i],s;try{s=d()}catch{break outerLoop}if(s===0){i++;continue}if(s===252)break outerLoop;if(s===253){if(n.type===`numeric`){let i=e.readFloat64();i===t||Math.abs(i-t)<1e290?r[n.variable.name]=null:r[n.variable.name]=i}else if(n.type===`string`){let t=e.readString(8);r[n.variable.name]===void 0?r[n.variable.name]=t:r[n.variable.name]+=t}else{let t=c(o,i);t?r[t.variable.name]+=e.readString(8):e.skip(8)}i++}else if(s===254){if(n.type===`string`)r[n.variable.name]===void 0?r[n.variable.name]=` `:r[n.variable.name]+=` `;else if(n.type===`string-cont`){let e=c(o,i);e&&(r[e.variable.name]+=` `)}i++}else s===255?(n.type===`numeric`&&(r[n.variable.name]=null),i++):(n.type===`numeric`&&(r[n.variable.name]=s-a),i++)}for(let e of Object.keys(r))typeof r[e]==`string`&&(r[e]=n(r[e]));Object.keys(r).length>0&&s.push(r)}return s}function c(e,t){for(let n=t-1;n>=0;n--)if(e[n].type===`string`)return e[n];return null}function l(e,r,i){let a=[];for(let e of i)e.type===-1?a.push({type:`string-cont`}):e.type===0?a.push({type:`numeric`,variable:e}):a.push({type:`string`,variable:e,width:e.type});let o=[],s=r.ncases>0?r.ncases:1e5;for(let r=0;r<s;r++){let r={};try{for(let n=0;n<a.length;n++){let i=a[n];if(i.type===`numeric`){let n=e.readFloat64();n===t||Math.abs(n-t)<1e290?r[i.variable.name]=null:r[i.variable.name]=n}else if(i.type===`string`){let t=e.readString(8);r[i.variable.name]===void 0?r[i.variable.name]=t:r[i.variable.name]+=t}else{let t=c(a,n);t?r[t.variable.name]+=e.readString(8):e.skip(8)}}}catch{break}for(let e of Object.keys(r))typeof r[e]==`string`&&(r[e]=n(r[e]));Object.keys(r).length>0&&o.push(r)}return o}function u(t){let c=e(t),u=r(c),d=[],f=[],p={},m=null,h=!0;for(;h;){let e=c.readInt32();if(e===2)d.push(i(c));else if(e===3)f.push(a(c,d));else if(e===6){let e=c.readInt32();c.skip(e*80)}else if(e===7){let e=o(c);p[e.subtype]=e,e.subtype===13&&e.data&&(m=e.data)}else if(e===999)c.readInt32(),h=!1;else throw Error(`Unknown record type: `+e)}let g={};if(m){let e=m.split(` `);for(let t of e){let[e,n]=t.split(`=`);e&&n&&(g[e.trim()]=n.trim())}}let _={};if(p[14]&&p[14].data){let e=p[14].data.split(`\0`).filter(function(e){return e.length>0});for(let t of e){let[e,n]=t.split(`=`);e&&n&&(_[e.trim()]=parseInt(n,10))}}let v=new Set;for(let e of Object.keys(_)){let t=_[e],n=Math.ceil(t/252);for(let t=1;t<n;t++){let n=String(t).padStart(3,`0`),r=(e.substring(0,5)+n).toUpperCase();v.add(r)}}let y=d.filter(function(e){return!(e.type===-1||v.has(e.name))});for(let e of y)e.longName=g[e.name]?g[e.name]:e.name;for(let e of f)for(let t of e.varIndices){let n=d[t-1];if(n){n.valueLabels={};for(let t of e.labels)n.valueLabels[t.value]=t.label}}let b;b=u.compression===1?s(c,u,d):l(c,u,d);let x=b.map(function(e){let t={};for(let r of y){let i=r.longName;if(r.type>0){let a=e[r.name]||``,o=d.indexOf(r);for(let t=o+1;t<d.length&&d[t].type===-1;t++)e[d[t].name]!==void 0&&(a+=e[d[t].name]);if(_[r.name]){let t=_[r.name],n=Math.ceil(t/252);for(let t=1;t<n;t++){let n=String(t).padStart(3,`0`),i=(r.name.substring(0,5)+n).toUpperCase(),o=d.findIndex(function(e){return e.name===i});if(o>=0){a+=e[i]||``;for(let t=o+1;t<d.length&&d[t].type===-1;t++)e[d[t].name]!==void 0&&(a+=e[d[t].name])}}}t[i]=n(a)}else t[i]=e[r.name]}return t});return{header:u,variables:y,payload:x,encoding:p[20]?p[20].data:null,totalCases:x.length,totalVariables:y.length}}var d={0:`meta`,256:`data`,512:`mix`,1024:`amd`,16384:`meta (extended)`};function f(e){return d[e&32767]??`type ${e}`}function p(e){let t=e&32767;return t===0||t===512||t===1024||t===16384}function m(e){let t=e&32767;return t===256||t===512}function h(e,t,n){let{word:r,wordSize:i,u8:a,pageBitOffset:o,pointerSize:s,view:c}=e,l=t+o+8,u=[];for(let e=0;e<n;e+=1){let n=l+e*s;n+s<=c.byteLength&&u.push({index:e,pointerOffset:n,pointerSize:s,offset:t+r(n),size:r(n+i),compression:a(n+i*2),type:a(n+i*2+1),truncated:a(n+i*2)===1})}return u}function g(e,t){let{u16:n,pageBitOffset:r,view:i}=e,a=[],o=Math.min(t.pageCount,4096);for(let s=0;s<o;s+=1){let o=t.headerLength+s*t.pageLength;if(o+t.pageLength<=i.byteLength){let i=o+r,c=n(i),l=n(i+2),u=n(i+4),d={index:s,offset:o,size:t.pageLength,headerSize:r+8,pageType:c,name:f(c),blockCount:l,subheaderCount:u,rowCount:m(c)?l-u:0,subheaders:p(c)?h(e,o,u):[]};a.push(d)}}return a}var _=4160223223,v=4143380214,y=4294967293,b=4294967295,x=4294967292,S=8,ee=[`SASYZCRL`,`SASYZCR2`],te={[_]:`row size`,[v]:`column size`,[y]:`column text`,[b]:`column name`,[x]:`column attributes`,4294966270:`column list`,4294967294:`column format and label`};function ne(e){return te[e>>>0]??`0x${(e>>>0).toString(16)}`}function re(e,t){let n=e.wide&&e.littleEndian===!1;return e.u32(n?t+4:t)>>>0}function ie(e,t){let{word:n,wordSize:r}=e;return{rowLength:n(t.offset+r*5),rowCount:n(t.offset+r*6)}}function C(e,t){let n=t.offset+e.wordSize,r=e.u16(n);return{offset:n,size:Math.min(r,t.size)}}function w(e,t,n,r,i){let a=t[n];return a&&i>0?e.text(a.offset+r,i):``}function ae(e,t,n,r){let{u16:i,wordSize:a}=e,o=n.offset+a,s=Math.floor((n.size-2*a-12)/S);for(let n=0;n<s;n+=1){let a=o+S*(n+1);r.push(w(e,t,i(a),i(a+2),i(a+4)))}}function oe(e,t,n){let{word:r,u32:i,u8:a,wordSize:o}=e,s=o+8,c=Math.floor((t.size-2*o-12)/s);for(let e=0;e<c;e+=1){let c=t.offset+e*s;n.push({offset:r(c+o+8),width:i(c+o*2+8),type:a(c+o*2+14)===1?`numeric`:`character`})}}function se(e,t){let n=[],r=[],i=[],a=0,o=0,s=0,c=``;for(let l of t)for(let t of l.subheaders)if(t.truncated===!1&&t.size>0){let l=re(e,t.offset);if(t.signature=l,t.name=ne(l),l===_){let n=ie(e,t);a=n.rowLength,o=n.rowCount}else if(l===v)s=e.word(t.offset+e.wordSize);else if(l===y){let r=C(e,t);if(n.push(r),c===``){let t=e.text(r.offset,Math.min(r.size,64));c=ee.find(e=>t.includes(e))??``}}else l===b?ae(e,n,t,r):l===x&&oe(e,t,i)}let l=i.map((e,t)=>({name:r[t]??`column${t+1}`,type:e.type,offset:e.offset,width:e.width}));return{columns:s>0?l.slice(0,s):l,rowLength:a,rowCount:o,columnCount:s,compression:c}}var T=[0,0,0,0,0,0,0,0,0,0,0,0,194,234,129,96,179,20,17,207,189,146,8,0,9,199,49,140,24,31,16,17],E=51,D=4,ce=new TextDecoder(`latin1`);function le(e){let t=e.length>1024;for(let n=0;t&&n<T.length;n+=1)t=e[n]===T[n];return t}function O(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=e[32]===E,r=n?D:0,i=e[35]===E?D:0,a=e[37]===1,o=n?8:4;return{view:t,wide:n,align1:i,align2:r,totalAlign:i+r,littleEndian:a,wordSize:o,pageBitOffset:n?32:16,pointerSize:n?24:12,u8:e=>t.getUint8(e),u16:e=>t.getUint16(e,a),u32:e=>t.getUint32(e,a),f64:e=>t.getFloat64(e,a),word:e=>n?Number(t.getBigUint64(e,a)):t.getUint32(e,a),text:(t,n)=>ce.decode(e.subarray(t,t+n)).replace(/\0/g,``).trimEnd()}}var ue=Date.UTC(1960,0,1);function k(e){return new Date(ue+e*1e3).toISOString().slice(0,19).replace(`T`,` `)}function de(e){let{align1:t,align2:n,totalAlign:r,u32:i,f64:a,text:o,word:s,wordSize:c}=e;return{offset:0,magicSize:32,wide:e.wide,littleEndian:e.littleEndian,name:o(92+t,64),fileType:o(156+t,8),created:k(a(164+t)),modified:k(a(172+t)),size:i(196+t),headerLength:i(196+t),pageLength:i(200+t),pageCount:n===0?i(204+t):s(204+t),release:o(216+r,8),host:o(224+r,16),osVersion:o(240+r,16),osName:o(272+r,16),wordSize:c}}function A(e){let t=e instanceof Uint8Array?e:new Uint8Array(e);if(le(t)){let e=O(t),n=de(e),r=g(e,n),i=se(e,r);return{header:n,pages:r,columns:i.columns,rowLength:i.rowLength,rowCount:i.rowCount,compression:i.compression,fileSize:t.length}}throw Error(`not a sas7bdat file`)}var j=new TextDecoder(`latin1`),M=256,N=8;function P(e,t){let{pageBitOffset:n,pointerSize:r}=e;if((t.pageType&32767)===M)return t.offset+n+N;{let e=n+N+t.subheaderCount*r;return t.offset+e+(e%8==0?0:8-e%8)}}function F(e,t,n){if(n===8)return e.f64(t);{let r=new Uint8Array(8);for(let i=0;i<n;i+=1)r[e.littleEndian?8-n+i:i]=e.u8(t+i);return new DataView(r.buffer).getFloat64(0,e.littleEndian)}}function I(e,t,n,r){let i=r+n.offset;if(n.type===`numeric`){let t=F(e,i,n.width);return Number.isNaN(t)?null:t}return j.decode(t.subarray(i,i+n.width)).replace(/\0/g,``).trimEnd()}function L(e,t,n,r){let{columns:i,rowLength:a,header:o,pages:s}=n,c=[],l=Math.min(n.rowCount,r),u=n.compression!==``;if(u===!1&&a>0&&i.length>0){for(let n of s)if(m(n.pageType)&&c.length<l){let r=P(t,n),s=n.offset+o.pageLength;for(let o=0;o<n.rowCount&&c.length<l;o+=1){let n=r+o*a;if(n+a<=s){let r={};for(let a of i)r[a.name]=I(t,e,a,n);c.push(r)}}}}return{rows:c,compressed:u}}var R=new TextDecoder(`ascii`);new TextEncoder;function z(e,t,n){return R.decode(e.subarray(t,t+n)).trimEnd()}function B(e,t){let n=z(e,t,80),r;if(n.startsWith(`HEADER RECORD*******LIBRARY HEADER RECORD`))r=5;else if(n.startsWith(`HEADER RECORD*******LIBV8 HEADER RECORD`)||n.startsWith(`HEADER RECORD*******LIBV9 HEADER RECORD`))r=8;else throw Error(`Not a valid XPT file: missing library header`);z(e,t+80,8),z(e,t+88,8),z(e,t+96,8);let i=z(e,t+104,8),a=z(e,t+112,8),o=z(e,t+144,16),s=z(e,t+160,16);return{xptVersion:r,version:i,os:a,created:o,modified:s,nextOffset:t+240}}function V(e,t){let n=z(e,t,80);return!n.startsWith(`HEADER RECORD*******MEMBER HEADER RECORD`)&&!n.startsWith(`HEADER RECORD*******MEMBV8 HEADER RECORD`)?null:{name:z(e,t+168,8),created:z(e,t+224,16),modified:z(e,t+240,16),label:z(e,t+272,40),nextOffset:t+320}}var H=new TextDecoder(`ascii`);new TextEncoder;function U(e,t,n){return H.decode(e.subarray(t,t+n)).trimEnd()}function W(e){let t=e%80;return t===0?e:e+(80-t)}function fe(e,t){let n=U(e,t,80);if(!n.startsWith(`HEADER RECORD*******NAMESTR HEADER RECORD`)&&!n.startsWith(`HEADER RECORD*******NAMSTV8 HEADER RECORD`))throw Error(`Missing NAMESTR header at offset `+t);return{numVars:parseInt(n.slice(48,58),10),nextOffset:t+80}}function pe(e,t,n){let r=new DataView(e.buffer,e.byteOffset+t,140),i=U(e,t+8,8),a=n>=8?U(e,t+88,32):``;return{ntype:r.getInt16(0,!1),nlng:r.getInt16(4,!1),nvar0:r.getInt16(6,!1),name:a||i,label:U(e,t+16,40),format:U(e,t+56,8),nfl:r.getInt16(64,!1),nfd:r.getInt16(66,!1),npos:r.getInt32(84,!1)}}function me(e,t,n,r){let i=[];for(let a=0;a<n;a++)i.push(pe(e,t+a*140,r));return i.sort(function(e,t){return e.npos-t.npos}),{variables:i,nextOffset:t+W(n*140)}}function he(e,t,n){let r=U(e,t,80),i=r.startsWith(`HEADER RECORD*******LABELV9 HEADER RECORD`);if((i||!r.startsWith(`HEADER RECORD*******LABELV8 HEADER RECORD`))&&!i)return null;let a=parseInt(r.slice(48,53),10),o=i?5:3,s=new Map(n.map(function(e){return[e.nvar0,e]})),c=t+80;for(let t=0;t<a;t++){let t=new DataView(e.buffer,e.byteOffset+c,o*2),n=t.getUint16(0,!1),r=t.getUint16(2,!1),a=t.getUint16(4,!1),l=i?t.getUint16(6,!1):0,u=i?t.getUint16(8,!1):0;c+=o*2;let d=s.get(n),f=U(e,c,r);c+=r;let p=U(e,c,a);c+=a;let m=i?U(e,c,l):void 0;c+=l,c+=u,d&&(d.name=f,d.label=p,m!==void 0&&(d.format=m))}return{nextOffset:t+W(c-t)}}var G=new Set([46,95]);for(let e=65;e<=90;e++)G.add(e);function ge(e,t){if(G.has(e[t])){for(let n=1;n<8;n++)if(e[t+n]!==0)return!1;return!0}return!1}function _e(e,t){for(let n=0;n<8;n++)if(e[t+n]!==0)return!1;return!0}var K=new DataView(new ArrayBuffer(8));function ve(e,t){if(_e(e,t))return 0;if(ge(e,t))return null;let n=new DataView(e.buffer,e.byteOffset+t,8),r=BigInt(n.getUint32(0,!1)),i=BigInt(n.getUint32(4,!1)>>>0),a=r<<32n|i,o=a&9223372036854775808n,s=Number(a>>56n&127n),c=a&72057594037927935n;if(c===0n)return 0;let l=0,u=c;(u&36028797018963968n)==0n&&(l++,u<<=1n),(u&36028797018963968n)==0n&&(l++,u<<=1n),(u&36028797018963968n)==0n&&(l++,u<<=1n);let d=(s-64)*4-l-1+1023;if(d<=0)return 0;if(d>=2047)return o?-1/0:1/0;let f=(u&36028797018963967n)>>3n,p=o|BigInt(d)<<52n|f;return K.setBigUint64(0,p,!1),K.getFloat64(0,!1)}var ye=new TextDecoder(`ascii`);new TextEncoder;function q(e,t,n){return ye.decode(e.subarray(t,t+n)).trimEnd()}function be(e,t,n){for(let r=0;r<n;r++){let n=e[t+r];if(n!==32&&n!==0)return!1}return!0}function xe(e,t,n){let r=q(e,t,80);if(!r.startsWith(`HEADER RECORD*******OBS HEADER RECORD`)&&!r.startsWith(`HEADER RECORD*******OBSV8 HEADER RECORD`))throw Error(`Missing OBS header at offset `+t);let i=t+80,a=n.reduce(function(e,t){return e+t.nlng},0),o=[],s=i;for(;s+a<=e.length&&!be(e,s,a);){let t=[],r=s;for(let i=0;i<n.length;i++){let a=n[i];if(a.ntype===1){let n=ve(e,r);t.push(n)}else t.push(q(e,r,a.nlng));r+=a.nlng}o.push(t),s+=a}return o}function Se(e){let t=new Uint8Array(e),n=0,r=B(t,n);n=r.nextOffset;let i=[];for(;n<t.length;){let e=V(t,n);if(!e)break;n=e.nextOffset;let a=fe(t,n);n=a.nextOffset;let{variables:o,nextOffset:s}=me(t,n,a.numVars,r.xptVersion);n=s;let c=he(t,n,o),l=c?c.nextOffset:n,u=xe(t,l,o);i.push({name:e.name,label:e.label,variables:o,observations:u});let d=o.reduce(function(e,t){return e+t.nlng},0),f=u.length*d;n=l+80+f;let p=n%80;p!==0&&(n+=80-p)}return{version:r.version,os:r.os,created:r.created,modified:r.modified,members:i}}var Ce=new Set([`sav`,`sas7bdat`,`xpt`]),we=-Number.MAX_VALUE,J=new Set([20,23,24,26,27,28,29,30,38,39]),Y=new Set([22]),X=new Set([21,25]),Z=12219379200;function Q(e,t){let n=t instanceof Uint8Array?t:new Uint8Array(t),r=n.buffer.slice(n.byteOffset,n.byteOffset+n.length);if(e===`sav`)return Ee(r);if(e===`sas7bdat`)return ke(n);if(e===`xpt`)return Ae(r);throw Error(`parquet-table: no parser for .${e}`)}function Te(e,t){return t.map(t=>e.map(e=>$(t[e.name])))}function $(e){return e==null||e===we||e<=-17976931348623157e292?null:e}function Ee(e){let{variables:t,payload:n}=u(e),r=t.map(e=>({name:e.longName||e.name,type:e.type===0?De(e):`text`,formatType:e.printFormat>>16&255})),i=n.map(e=>r.map(t=>Oe(t,e[t.name])));return{columns:r.map(({name:e,type:t})=>({name:e,type:t})),rows:i}}function De(e){let t=e.printFormat>>16&255;return J.has(t)||Y.has(t)||X.has(t)?`text`:`number`}function Oe(e,t){let n=$(t);return n===null?null:J.has(e.formatType)?new Date((n-Z)*1e3).toISOString().slice(0,10):Y.has(e.formatType)?new Date((n-Z)*1e3).toISOString():X.has(e.formatType)?new Date(n*1e3).toISOString().slice(11,19):n}function ke(e){let t=A(e),{rows:n}=L(e,O(e),t,t.rowCount),r=t.columns.map(e=>({name:e.name,type:e.type===`numeric`?`number`:`text`}));return{columns:r,rows:Te(r,n)}}function Ae(e){let t=Se(e).members[0];if(t)return{columns:t.variables.map(e=>({name:e.name,type:e.ntype===1?`number`:`text`})),rows:t.observations.map(e=>e.map($))};throw Error(`parquet-table: the xpt file has no members`)}export{Q as n,Ce as t};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knockdata/objectexplorer",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "description": "The VSCode for Cloud Storage — Explore, Analyze, Search your cloud storage locally with single click",
5
5
  "type": "module",
6
6
  "license": "ISC",