@loaders.gl/json 4.2.0-alpha.4 → 4.2.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +319 -366
- package/dist/dist.min.js +21 -0
- package/dist/geojson-loader.d.ts +1 -1
- package/dist/geojson-loader.d.ts.map +1 -1
- package/dist/geojson-loader.js +75 -73
- package/dist/geojson-worker.js +78 -54
- package/dist/geojson-writer.js +23 -20
- package/dist/index.cjs +155 -121
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +12 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/json-loader.js +30 -37
- package/dist/json-writer.js +14 -11
- package/dist/lib/clarinet/clarinet.js +513 -391
- package/dist/lib/encoder-utils/encode-table-row.d.ts +1 -1
- package/dist/lib/encoder-utils/encode-table-row.d.ts.map +1 -1
- package/dist/lib/encoder-utils/encode-table-row.js +46 -37
- package/dist/lib/encoder-utils/encode-utils.js +38 -25
- package/dist/lib/encoder-utils/utf8-encoder.js +26 -27
- package/dist/lib/encoders/geojson-encoder.d.ts +1 -1
- package/dist/lib/encoders/geojson-encoder.d.ts.map +1 -1
- package/dist/lib/encoders/geojson-encoder.js +43 -40
- package/dist/lib/encoders/json-encoder.d.ts +1 -1
- package/dist/lib/encoders/json-encoder.d.ts.map +1 -1
- package/dist/lib/encoders/json-encoder.js +17 -9
- package/dist/lib/json-parser/json-parser.d.ts +2 -2
- package/dist/lib/json-parser/json-parser.d.ts.map +1 -1
- package/dist/lib/json-parser/json-parser.js +86 -102
- package/dist/lib/json-parser/streaming-json-parser.d.ts +2 -2
- package/dist/lib/json-parser/streaming-json-parser.d.ts.map +1 -1
- package/dist/lib/json-parser/streaming-json-parser.js +87 -63
- package/dist/lib/jsonpath/jsonpath.js +78 -57
- package/dist/lib/parsers/parse-json-in-batches.d.ts +1 -1
- package/dist/lib/parsers/parse-json-in-batches.d.ts.map +1 -1
- package/dist/lib/parsers/parse-json-in-batches.js +76 -75
- package/dist/lib/parsers/parse-json.d.ts +1 -1
- package/dist/lib/parsers/parse-json.d.ts.map +1 -1
- package/dist/lib/parsers/parse-json.js +21 -22
- package/dist/lib/parsers/parse-ndjson-in-batches.js +26 -28
- package/dist/lib/parsers/parse-ndjson.js +10 -10
- package/dist/ndgeoson-loader.js +28 -20
- package/dist/ndjson-loader.js +22 -14
- package/dist/workers/geojson-worker.js +0 -1
- package/package.json +11 -7
- package/dist/geojson-loader.js.map +0 -1
- package/dist/geojson-writer.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/json-loader.js.map +0 -1
- package/dist/json-writer.js.map +0 -1
- package/dist/lib/clarinet/LICENSE +0 -28
- package/dist/lib/clarinet/clarinet.js.map +0 -1
- package/dist/lib/encoder-utils/encode-table-row.js.map +0 -1
- package/dist/lib/encoder-utils/encode-utils.js.map +0 -1
- package/dist/lib/encoder-utils/utf8-encoder.js.map +0 -1
- package/dist/lib/encoders/geojson-encoder.js.map +0 -1
- package/dist/lib/encoders/json-encoder.js.map +0 -1
- package/dist/lib/json-parser/json-parser.js.map +0 -1
- package/dist/lib/json-parser/streaming-json-parser.js.map +0 -1
- package/dist/lib/jsonpath/jsonpath.js.map +0 -1
- package/dist/lib/parsers/parse-json-in-batches.js.map +0 -1
- package/dist/lib/parsers/parse-json.js.map +0 -1
- package/dist/lib/parsers/parse-ndjson-in-batches.js.map +0 -1
- package/dist/lib/parsers/parse-ndjson.js.map +0 -1
- package/dist/ndgeoson-loader.js.map +0 -1
- package/dist/ndjson-loader.js.map +0 -1
- package/dist/workers/geojson-worker.js.map +0 -1
package/dist/dist.min.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
|
2
|
+
if (typeof exports === 'object' && typeof module === 'object')
|
|
3
|
+
module.exports = factory();
|
|
4
|
+
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
|
+
else if (typeof exports === 'object') exports['loaders'] = factory();
|
|
6
|
+
else root['loaders'] = factory();})(globalThis, function () {
|
|
7
|
+
"use strict";var __exports__=(()=>{var yt=Object.create;var D=Object.defineProperty;var gt=Object.getOwnPropertyDescriptor;var xt=Object.getOwnPropertyNames;var wt=Object.getPrototypeOf,bt=Object.prototype.hasOwnProperty;var At=(t,e,r)=>e in t?D(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var Pt=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),jt=(t,e)=>{for(var r in e)D(t,r,{get:e[r],enumerable:!0})},Q=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of xt(e))!bt.call(t,n)&&n!==r&&D(t,n,{get:()=>e[n],enumerable:!(o=gt(e,n))||o.enumerable});return t},X=(t,e,r)=>(Q(t,e,"default"),r&&Q(r,e,"default")),Nt=(t,e,r)=>(r=t!=null?yt(wt(t)):{},Q(e||!t||!t.__esModule?D(r,"default",{value:t,enumerable:!0}):r,t)),Ot=t=>Q(D({},"__esModule",{value:!0}),t);var Le=(t,e,r)=>(At(t,typeof e!="symbol"?e+"":e,r),r);var ve=Pt((Pr,Fe)=>{Fe.exports=globalThis.loaders});var H={};jt(H,{JSONLoader:()=>ce,JSONWriter:()=>qe,NDJSONLoader:()=>Xe,_ClarinetParser:()=>L,_GeoJSONLoader:()=>U,_GeoJSONWorkerLoader:()=>Ce,_GeoJSONWriter:()=>mt,_JSONPath:()=>P,_rebuildJsonObject:()=>Ye});X(H,Nt(ve(),1));var q=class{schema;options;shape;length=0;rows=null;cursor=0;_headers=[];constructor(e,r){if(this.options=r,this.schema=e,!Array.isArray(e)){this._headers=[];for(let o in e)this._headers[e[o].index]=e[o].name}}rowCount(){return this.length}addArrayRow(e,r){Number.isFinite(r)&&(this.cursor=r),this.shape="array-row-table",this.rows=this.rows||new Array(100),this.rows[this.length]=e,this.length++}addObjectRow(e,r){Number.isFinite(r)&&(this.cursor=r),this.shape="object-row-table",this.rows=this.rows||new Array(100),this.rows[this.length]=e,this.length++}getBatch(){let e=this.rows;return e?(e=e.slice(0,this.length),this.rows=null,{shape:this.shape||"array-row-table",batchType:"data",data:e,length:this.length,schema:this.schema,cursor:this.cursor}):null}};function Re(t,e){if(!t)throw new Error("null row");let r={};if(e)for(let o=0;o<e.length;o++)r[e[o]]=t[o];else for(let o=0;o<t.length;o++){let n=`column-${o}`;r[n]=t[o]}return r}function ke(t,e){if(!t)throw new Error("null row");if(e){let r=new Array(e.length);for(let o=0;o<e.length;o++)r[o]=t[e[o]];return r}return Object.values(t)}function Te(t){let e=[];for(let r=0;r<t.length;r++){let o=`column-${r}`;e.push(o)}return e}function Ue(t){return Object.keys(t)}var De=100,ee=class{schema;options;length=0;objectRows=null;arrayRows=null;cursor=0;_headers=null;constructor(e,r){if(this.options=r,this.schema=e,e){this._headers=[];for(let o in e)this._headers[e[o].index]=e[o].name}}rowCount(){return this.length}addArrayRow(e,r){switch(Number.isFinite(r)&&(this.cursor=r),this._headers||=Te(e),this.options.shape){case"object-row-table":let o=Re(e,this._headers);this.addObjectRow(o,r);break;case"array-row-table":this.arrayRows=this.arrayRows||new Array(De),this.arrayRows[this.length]=e,this.length++;break}}addObjectRow(e,r){switch(Number.isFinite(r)&&(this.cursor=r),this._headers||=Ue(e),this.options.shape){case"array-row-table":let o=ke(e,this._headers);this.addArrayRow(o,r);break;case"object-row-table":this.objectRows=this.objectRows||new Array(De),this.objectRows[this.length]=e,this.length++;break}}getBatch(){let e=this.arrayRows||this.objectRows;return e?(e=e.slice(0,this.length),this.arrayRows=null,this.objectRows=null,{shape:this.options.shape,batchType:"data",data:e,length:this.length,schema:this.schema,cursor:this.cursor}):null}};var te=class{schema;length=0;allocated=0;columns={};constructor(e,r){this.schema=e,this._reallocateColumns()}rowCount(){return this.length}addArrayRow(e){this._reallocateColumns();let r=0;for(let o in this.columns)this.columns[o][this.length]=e[r++];this.length++}addObjectRow(e){this._reallocateColumns();for(let r in e)this.columns[r][this.length]=e[r];this.length++}getBatch(){this._pruneColumns();let e=Array.isArray(this.schema)?this.columns:{};if(!Array.isArray(this.schema))for(let o in this.schema){let n=this.schema[o];e[n.name]=this.columns[n.index]}return this.columns={},{shape:"columnar-table",batchType:"data",data:e,schema:this.schema,length:this.length}}_reallocateColumns(){if(!(this.length<this.allocated)){this.allocated=this.allocated>0?this.allocated*=2:100,this.columns={};for(let e in this.schema){let r=this.schema[e],o=r.type||Float32Array,n=this.columns[r.index];if(n&&ArrayBuffer.isView(n)){let s=new o(this.allocated);s.set(n),this.columns[r.index]=s}else n?(n.length=this.allocated,this.columns[r.index]=n):this.columns[r.index]=new o(this.allocated)}}}_pruneColumns(){for(let[e,r]of Object.entries(this.columns))this.columns[e]=r.slice(0,this.length)}};var St={shape:void 0,batchSize:"auto",batchDebounceMs:0,limit:0,_limitMB:0},It="TableBatchBuilder",re=class{schema;options;aggregator=null;batchCount=0;bytesUsed=0;isChunkComplete=!1;lastBatchEmittedMs=Date.now();totalLength=0;totalBytes=0;rowBytes=0;constructor(e,r){this.schema=e,this.options={...St,...r}}limitReached(){return!!(Boolean(this.options?.limit)&&this.totalLength>=this.options.limit||Boolean(this.options?._limitMB)&&this.totalBytes/1e6>=this.options._limitMB)}addRow(e){this.limitReached()||(this.totalLength++,this.rowBytes=this.rowBytes||this._estimateRowMB(e),this.totalBytes+=this.rowBytes,Array.isArray(e)?this.addArrayRow(e):this.addObjectRow(e))}addArrayRow(e){if(!this.aggregator){let r=this._getTableBatchType();this.aggregator=new r(this.schema,this.options)}this.aggregator.addArrayRow(e)}addObjectRow(e){if(!this.aggregator){let r=this._getTableBatchType();this.aggregator=new r(this.schema,this.options)}this.aggregator.addObjectRow(e)}chunkComplete(e){e instanceof ArrayBuffer&&(this.bytesUsed+=e.byteLength),typeof e=="string"&&(this.bytesUsed+=e.length),this.isChunkComplete=!0}getFullBatch(e){return this._isFull()?this._getBatch(e):null}getFinalBatch(e){return this._getBatch(e)}_estimateRowMB(e){return Array.isArray(e)?e.length*8:Object.keys(e).length*8}_isFull(){if(!this.aggregator||this.aggregator.rowCount()===0)return!1;if(this.options.batchSize==="auto"){if(!this.isChunkComplete)return!1}else if(this.options.batchSize>this.aggregator.rowCount())return!1;return this.options.batchDebounceMs>Date.now()-this.lastBatchEmittedMs?!1:(this.isChunkComplete=!1,this.lastBatchEmittedMs=Date.now(),!0)}_getBatch(e){if(!this.aggregator)return null;e?.bytesUsed&&(this.bytesUsed=e.bytesUsed);let r=this.aggregator.getBatch();return r.count=this.batchCount,r.bytesUsed=this.bytesUsed,Object.assign(r,e),this.batchCount++,this.aggregator=null,r}_getTableBatchType(){switch(this.options.shape){case"array-row-table":case"object-row-table":return ee;case"columnar-table":return te;case"arrow-table":if(!re.ArrowBatch)throw new Error(It);return re.ArrowBatch;default:return q}}},I=re;Le(I,"ArrowBatch");function B(t){switch(t.shape){case"array-row-table":case"object-row-table":return t.data.length;case"geojson-table":return t.features.length;case"arrow-table":return t.data.numRows;case"columnar-table":for(let r of Object.values(t.data))return r.length||0;return 0;default:throw new Error("table")}}function oe(t){if(t.schema)return t.schema.fields.length;if(B(t)===0)throw new Error("empty table");switch(t.shape){case"array-row-table":return t.data[0].length;case"object-row-table":return Object.keys(t.data[0]).length;case"geojson-table":return Object.keys(t.features[0]).length;case"columnar-table":return Object.keys(t.data).length;case"arrow-table":return t.data.numCols;default:throw new Error("table")}}function ne(t,e,r,o){switch(t.shape){case"object-row-table":return o?Object.fromEntries(Object.entries(t.data[e])):t.data[e];case"array-row-table":if(t.schema){let c=r||{};for(let l=0;l<t.schema.fields.length;l++)c[t.schema.fields[l].name]=t.data[e][l];return c}throw new Error("no schema");case"geojson-table":if(t.schema){let c=r||{};for(let l=0;l<t.schema.fields.length;l++)c[t.schema.fields[l].name]=t.features[e][l];return c}throw new Error("no schema");case"columnar-table":if(t.schema){let c=r||{};for(let l=0;l<t.schema.fields.length;l++)c[t.schema.fields[l].name]=t.data[t.schema.fields[l].name][e];return c}else{let c=r||{};for(let[l,u]of Object.entries(t.data))c[l]=u[e];return c}case"arrow-table":let n=t.data,s=r||{},a=n.get(e),i=n.schema;for(let c=0;c<i.fields.length;c++)s[i.fields[c].name]=a?.[i.fields[c].name];return s;default:throw new Error("shape")}}function se(t,e,r,o){switch(t.shape){case"array-row-table":return o?Array.from(t.data[e]):t.data[e];case"object-row-table":if(t.schema){let c=r||[];for(let l=0;l<t.schema.fields.length;l++)c[l]=t.data[e][t.schema.fields[l].name];return c}return Object.values(t.data[e]);case"geojson-table":if(t.schema){let c=r||[];for(let l=0;l<t.schema.fields.length;l++)c[l]=t.features[e][t.schema.fields[l].name];return c}return Object.values(t.features[e]);case"columnar-table":if(t.schema){let c=r||[];for(let l=0;l<t.schema.fields.length;l++)c[l]=t.data[t.schema.fields[l].name][e];return c}else{let c=r||[],l=0;for(let u of Object.values(t.data))c[l]=u[e],l++;return c}case"arrow-table":let n=t.data,s=r||[],a=n.get(e),i=n.schema;for(let c=0;c<i.fields.length;c++)s[c]=a?.[i.fields[c].name];return s;default:throw new Error("shape")}}function*de(t,e){switch(e){case"array-row-table":yield*Je(t);break;case"object-row-table":yield*Ge(t);break;default:throw new Error(`Unknown row type ${e}`)}}function*Je(t,e=[]){let r=B(t);for(let o=0;o<r;o++)yield se(t,o,e)}function*Ge(t,e={}){let r=B(t);for(let o=0;o<r;o++)yield ne(t,o,e)}function ie(t,e="float32"){return t instanceof Date?"date-millisecond":t instanceof Number?e:typeof t=="string"?"utf8":(t===null||t==="undefined","null")}function Me(t){let e=Bt(t);return e!=="null"?{type:e,nullable:!1}:t.length>0?(e=ie(t[0]),{type:e,nullable:!0}):{type:"null",nullable:!0}}function Bt(t){switch(t.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function ze(t){switch(t.shape){case"array-row-table":case"object-row-table":return Ct(t.data);case"columnar-table":return Et(t.data);case"arrow-table":default:throw new Error("Deduce schema")}}function Et(t){let e=[];for(let[r,o]of Object.entries(t)){let n=_t(o,r);e.push(n)}return{fields:e,metadata:{}}}function Ct(t){if(!t.length)throw new Error("deduce from empty table");let e=[],r=t[0];for(let[o,n]of Object.entries(r))e.push(Lt(n,o));return{fields:e,metadata:{}}}function _t(t,e){if(ArrayBuffer.isView(t)){let r=Me(t);return{name:e,type:r.type||"null",nullable:r.nullable}}if(Array.isArray(t)&&t.length>0){let r=t[0],o=ie(r);return{name:e,type:o,nullable:!0}}throw new Error("empty table")}function Lt(t,e){let r=ie(t);return{name:e,type:r,nullable:!0}}function J(t){let e;switch(Ft(t)){case"array-row-table":e={shape:"array-row-table",data:t};break;case"object-row-table":e={shape:"object-row-table",data:t};break;case"columnar-table":e={shape:"columnar-table",data:t};break;default:throw new Error("table")}let r=ze(e);return{...e,schema:r}}function Ft(t){if(Array.isArray(t)){if(t.length===0)throw new Error("cannot deduce type of empty table");let e=t[0];if(Array.isArray(e))return"array-row-table";if(e&&typeof e=="object")return"object-row-table"}if(t&&typeof t=="object")return"columnar-table";throw new Error("invalid table")}function We(t,e){try{let r=JSON.parse(t);if(e.json?.table){let o=Ve(r)||r;return J(o)}return r}catch{throw new Error("JSONLoader: failed to parse JSON")}}function Ve(t){if(Array.isArray(t))return t;if(t&&typeof t=="object")for(let e of Object.values(t)){let r=Ve(e);if(r)return r}return null}function me(t,e){if(!t)throw new Error(e||"loader assertion failed.")}function $e(...t){return vt(t)}function vt(t){let e=t.map(s=>s instanceof ArrayBuffer?new Uint8Array(s):s),r=e.reduce((s,a)=>s+a.byteLength,0),o=new Uint8Array(r),n=0;for(let s of e)o.set(s,n),n+=s.byteLength;return o.buffer}async function*G(t,e={}){let r=new TextDecoder(void 0,e);for await(let o of t)yield typeof o=="string"?o:r.decode(o,{stream:!0})}async function*ye(t){let e="";for await(let r of t){e+=r;let o;for(;(o=e.indexOf(`
|
|
8
|
+
`))>=0;){let n=e.slice(0,o+1);e=e.slice(o+1),yield n}}e.length>0&&(yield e)}async function*ge(t){let e=1;for await(let r of t)yield{counter:e,line:r},e++}async function xe(t){let e=[];for await(let r of t)e.push(r);return $e(...e)}function E(t){return E=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E(t)}function we(t,e){if(E(t)!=="object"||t===null)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var o=r.call(t,e||"default");if(E(o)!=="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function be(t){var e=we(t,"string");return E(e)==="symbol"?e:String(e)}function j(t,e,r){return e=be(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var Ae=Number.MAX_SAFE_INTEGER,h;(function(t){t[t.BEGIN=0]="BEGIN",t[t.VALUE=1]="VALUE",t[t.OPEN_OBJECT=2]="OPEN_OBJECT",t[t.CLOSE_OBJECT=3]="CLOSE_OBJECT",t[t.OPEN_ARRAY=4]="OPEN_ARRAY",t[t.CLOSE_ARRAY=5]="CLOSE_ARRAY",t[t.TEXT_ESCAPE=6]="TEXT_ESCAPE",t[t.STRING=7]="STRING",t[t.BACKSLASH=8]="BACKSLASH",t[t.END=9]="END",t[t.OPEN_KEY=10]="OPEN_KEY",t[t.CLOSE_KEY=11]="CLOSE_KEY",t[t.TRUE=12]="TRUE",t[t.TRUE2=13]="TRUE2",t[t.TRUE3=14]="TRUE3",t[t.FALSE=15]="FALSE",t[t.FALSE2=16]="FALSE2",t[t.FALSE3=17]="FALSE3",t[t.FALSE4=18]="FALSE4",t[t.NULL=19]="NULL",t[t.NULL2=20]="NULL2",t[t.NULL3=21]="NULL3",t[t.NUMBER_DECIMAL_POINT=22]="NUMBER_DECIMAL_POINT",t[t.NUMBER_DIGIT=23]="NUMBER_DIGIT"})(h||(h={}));var p={tab:9,lineFeed:10,carriageReturn:13,space:32,doubleQuote:34,plus:43,comma:44,minus:45,period:46,_0:48,_9:57,colon:58,E:69,openBracket:91,backslash:92,closeBracket:93,a:97,b:98,e:101,f:102,l:108,n:110,r:114,s:115,t:116,u:117,openBrace:123,closeBrace:125},Ze=/[\\"\n]/g,Ke={onready:()=>{},onopenobject:()=>{},onkey:()=>{},oncloseobject:()=>{},onopenarray:()=>{},onclosearray:()=>{},onvalue:()=>{},onerror:()=>{},onend:()=>{},onchunkparsed:()=>{}},L=class{options=Ke;bufferCheckPosition=Ae;q="";c="";p="";closed=!1;closedRoot=!1;sawRoot=!1;error=null;state=h.BEGIN;stack=[];position=0;column=0;line=1;slashed=!1;unicodeI=0;unicodeS=null;depth=0;textNode;numberNode;constructor(e={}){this.options={...Ke,...e},this.textNode=void 0,this.numberNode="",this.emit("onready")}end(){return(this.state!==h.VALUE||this.depth!==0)&&this._error("Unexpected end"),this._closeValue(),this.c="",this.closed=!0,this.emit("onend"),this}resume(){return this.error=null,this}close(){return this.write(null)}emit(e,r){this.options[e]?.(r,this)}emitNode(e,r){this._closeValue(),this.emit(e,r)}write(e){if(this.error)throw this.error;if(this.closed)return this._error("Cannot write after close. Assign an onready handler.");if(e===null)return this.end();let r=0,o=e.charCodeAt(0),n=this.p;for(;o&&(n=o,this.c=o=e.charCodeAt(r++),n!==o?this.p=n:n=this.p,!!o);)switch(this.position++,o===p.lineFeed?(this.line++,this.column=0):this.column++,this.state){case h.BEGIN:o===p.openBrace?this.state=h.OPEN_OBJECT:o===p.openBracket?this.state=h.OPEN_ARRAY:M(o)||this._error("Non-whitespace before {[.");continue;case h.OPEN_KEY:case h.OPEN_OBJECT:if(M(o))continue;if(this.state===h.OPEN_KEY)this.stack.push(h.CLOSE_KEY);else if(o===p.closeBrace){this.emit("onopenobject"),this.depth++,this.emit("oncloseobject"),this.depth--,this.state=this.stack.pop()||h.VALUE;continue}else this.stack.push(h.CLOSE_OBJECT);o===p.doubleQuote?this.state=h.STRING:this._error('Malformed object key should start with "');continue;case h.CLOSE_KEY:case h.CLOSE_OBJECT:if(M(o))continue;o===p.colon?(this.state===h.CLOSE_OBJECT?(this.stack.push(h.CLOSE_OBJECT),this._closeValue("onopenobject"),this.depth++):this._closeValue("onkey"),this.state=h.VALUE):o===p.closeBrace?(this.emitNode("oncloseobject"),this.depth--,this.state=this.stack.pop()||h.VALUE):o===p.comma?(this.state===h.CLOSE_OBJECT&&this.stack.push(h.CLOSE_OBJECT),this._closeValue(),this.state=h.OPEN_KEY):this._error("Bad object");continue;case h.OPEN_ARRAY:case h.VALUE:if(M(o))continue;if(this.state===h.OPEN_ARRAY)if(this.emit("onopenarray"),this.depth++,this.state=h.VALUE,o===p.closeBracket){this.emit("onclosearray"),this.depth--,this.state=this.stack.pop()||h.VALUE;continue}else this.stack.push(h.CLOSE_ARRAY);o===p.doubleQuote?this.state=h.STRING:o===p.openBrace?this.state=h.OPEN_OBJECT:o===p.openBracket?this.state=h.OPEN_ARRAY:o===p.t?this.state=h.TRUE:o===p.f?this.state=h.FALSE:o===p.n?this.state=h.NULL:o===p.minus?this.numberNode+="-":p._0<=o&&o<=p._9?(this.numberNode+=String.fromCharCode(o),this.state=h.NUMBER_DIGIT):this._error("Bad value");continue;case h.CLOSE_ARRAY:if(o===p.comma)this.stack.push(h.CLOSE_ARRAY),this._closeValue("onvalue"),this.state=h.VALUE;else if(o===p.closeBracket)this.emitNode("onclosearray"),this.depth--,this.state=this.stack.pop()||h.VALUE;else{if(M(o))continue;this._error("Bad array")}continue;case h.STRING:this.textNode===void 0&&(this.textNode="");let s=r-1,a=this.slashed,i=this.unicodeI;e:for(;;){for(;i>0;)if(this.unicodeS+=String.fromCharCode(o),o=e.charCodeAt(r++),this.position++,i===4?(this.textNode+=String.fromCharCode(parseInt(this.unicodeS,16)),i=0,s=r-1):i++,!o)break e;if(o===p.doubleQuote&&!a){this.state=this.stack.pop()||h.VALUE,this.textNode+=e.substring(s,r-1),this.position+=r-1-s;break}if(o===p.backslash&&!a&&(a=!0,this.textNode+=e.substring(s,r-1),this.position+=r-1-s,o=e.charCodeAt(r++),this.position++,!o))break;if(a){if(a=!1,o===p.n?this.textNode+=`
|
|
9
|
+
`:o===p.r?this.textNode+="\r":o===p.t?this.textNode+=" ":o===p.f?this.textNode+="\f":o===p.b?this.textNode+="\b":o===p.u?(i=1,this.unicodeS=""):this.textNode+=String.fromCharCode(o),o=e.charCodeAt(r++),this.position++,s=r-1,o)continue;break}Ze.lastIndex=r;let c=Ze.exec(e);if(c===null){r=e.length+1,this.textNode+=e.substring(s,r-1),this.position+=r-1-s;break}if(r=c.index+1,o=e.charCodeAt(c.index),!o){this.textNode+=e.substring(s,r-1),this.position+=r-1-s;break}}this.slashed=a,this.unicodeI=i;continue;case h.TRUE:o===p.r?this.state=h.TRUE2:this._error(`Invalid true started with t${o}`);continue;case h.TRUE2:o===p.u?this.state=h.TRUE3:this._error(`Invalid true started with tr${o}`);continue;case h.TRUE3:o===p.e?(this.emit("onvalue",!0),this.state=this.stack.pop()||h.VALUE):this._error(`Invalid true started with tru${o}`);continue;case h.FALSE:o===p.a?this.state=h.FALSE2:this._error(`Invalid false started with f${o}`);continue;case h.FALSE2:o===p.l?this.state=h.FALSE3:this._error(`Invalid false started with fa${o}`);continue;case h.FALSE3:o===p.s?this.state=h.FALSE4:this._error(`Invalid false started with fal${o}`);continue;case h.FALSE4:o===p.e?(this.emit("onvalue",!1),this.state=this.stack.pop()||h.VALUE):this._error(`Invalid false started with fals${o}`);continue;case h.NULL:o===p.u?this.state=h.NULL2:this._error(`Invalid null started with n${o}`);continue;case h.NULL2:o===p.l?this.state=h.NULL3:this._error(`Invalid null started with nu${o}`);continue;case h.NULL3:o===p.l?(this.emit("onvalue",null),this.state=this.stack.pop()||h.VALUE):this._error(`Invalid null started with nul${o}`);continue;case h.NUMBER_DECIMAL_POINT:o===p.period?(this.numberNode+=".",this.state=h.NUMBER_DIGIT):this._error("Leading zero not followed by .");continue;case h.NUMBER_DIGIT:p._0<=o&&o<=p._9?this.numberNode+=String.fromCharCode(o):o===p.period?(this.numberNode.indexOf(".")!==-1&&this._error("Invalid number has two dots"),this.numberNode+="."):o===p.e||o===p.E?((this.numberNode.indexOf("e")!==-1||this.numberNode.indexOf("E")!==-1)&&this._error("Invalid number has two exponential"),this.numberNode+="e"):o===p.plus||o===p.minus?(n===p.e||n===p.E||this._error("Invalid symbol in number"),this.numberNode+=String.fromCharCode(o)):(this._closeNumber(),r--,this.state=this.stack.pop()||h.VALUE);continue;default:this._error(`Unknown state: ${this.state}`)}return this.position>=this.bufferCheckPosition&&Rt(this),this.emit("onchunkparsed"),this}_closeValue(e="onvalue"){this.textNode!==void 0&&this.emit(e,this.textNode),this.textNode=void 0}_closeNumber(){this.numberNode&&this.emit("onvalue",parseFloat(this.numberNode)),this.numberNode=""}_error(e=""){this._closeValue(),e+=`
|
|
10
|
+
Line: ${this.line}
|
|
11
|
+
Column: ${this.column}
|
|
12
|
+
Char: ${this.c}`;let r=new Error(e);this.error=r,this.emit("onerror",r)}};function M(t){return t===p.carriageReturn||t===p.lineFeed||t===p.space||t===p.tab}function Rt(t){let e=Math.max(Ae,10),r=0;for(let o of["textNode","numberNode"]){let n=t[o]===void 0?0:t[o].length;if(n>e)switch(o){case"text":break;default:t._error(`Max buffer length exceeded: ${o}`)}r=Math.max(r,n)}t.bufferCheckPosition=Ae-r+t.position}var P=class{path;constructor(e=null){if(this.path=["$"],e instanceof P){this.path=[...e.path];return}if(Array.isArray(e)){this.path.push(...e);return}if(typeof e=="string"&&(this.path=e.split("."),this.path[0]!=="$"))throw new Error("JSONPaths must start with $")}clone(){return new P(this)}toString(){return this.path.join(".")}push(e){this.path.push(e)}pop(){return this.path.pop()}set(e){this.path[this.path.length-1]=e}equals(e){if(!this||!e||this.path.length!==e.path.length)return!1;for(let r=0;r<this.path.length;++r)if(this.path[r]!==e.path[r])return!1;return!0}setFieldAtPath(e,r){let o=[...this.path];o.shift();let n=o.pop();for(let s of o)e=e[s];e[n]=r}getFieldAtPath(e){let r=[...this.path];r.shift();let o=r.pop();for(let n of r)e=e[n];return e[o]}};var z=class{parser;result=void 0;previousStates=[];currentState=Object.freeze({container:[],key:null});jsonpath=new P;constructor(e){this.reset(),this.parser=new L({onready:()=>{this.jsonpath=new P,this.previousStates.length=0,this.currentState.container.length=0},onopenobject:r=>{this._openObject({}),typeof r<"u"&&this.parser.emit("onkey",r)},onkey:r=>{this.jsonpath.set(r),this.currentState.key=r},oncloseobject:()=>{this._closeObject()},onopenarray:()=>{this._openArray()},onclosearray:()=>{this._closeArray()},onvalue:r=>{this._pushOrSet(r)},onerror:r=>{throw r},onend:()=>{this.result=this.currentState.container.pop()},...e})}reset(){this.result=void 0,this.previousStates=[],this.currentState=Object.freeze({container:[],key:null}),this.jsonpath=new P}write(e){this.parser.write(e)}close(){this.parser.close()}_pushOrSet(e){let{container:r,key:o}=this.currentState;o!==null?(r[o]=e,this.currentState.key=null):r.push(e)}_openArray(e=[]){this.jsonpath.push(null),this._pushOrSet(e),this.previousStates.push(this.currentState),this.currentState={container:e,isArray:!0,key:null}}_closeArray(){this.jsonpath.pop(),this.currentState=this.previousStates.pop()}_openObject(e={}){this.jsonpath.push(null),this._pushOrSet(e),this.previousStates.push(this.currentState),this.currentState={container:e,isArray:!1,key:null}}_closeObject(){this.jsonpath.pop(),this.currentState=this.previousStates.pop()}};var W=class extends z{jsonPaths;streamingJsonPath=null;streamingArray=null;topLevelObject=null;constructor(e={}){super({onopenarray:()=>{if(!this.streamingArray&&this._matchJSONPath()){this.streamingJsonPath=this.getJsonPath().clone(),this.streamingArray=[],this._openArray(this.streamingArray);return}this._openArray()},onopenobject:o=>{this.topLevelObject?this._openObject({}):(this.topLevelObject={},this._openObject(this.topLevelObject)),typeof o<"u"&&this.parser.emit("onkey",o)}});let r=e.jsonpaths||[];this.jsonPaths=r.map(o=>new P(o))}write(e){super.write(e);let r=[];return this.streamingArray&&(r=[...this.streamingArray],this.streamingArray.length=0),r}getPartialResult(){return this.topLevelObject}getStreamingJsonPath(){return this.streamingJsonPath}getStreamingJsonPathAsString(){return this.streamingJsonPath&&this.streamingJsonPath.toString()}getJsonPath(){return this.jsonpath}_matchJSONPath(){let e=this.getJsonPath();if(this.jsonPaths.length===0)return!0;for(let r of this.jsonPaths)if(r.equals(e))return!0;return!1}};async function*ae(t,e){let r=G(t),{metadata:o}=e,{jsonpaths:n}=e.json||{},s=!0,a=null,i=new I(a,e),c=new W({jsonpaths:n});for await(let d of r){let f=c.write(d),y=f.length>0&&c.getStreamingJsonPathAsString();f.length>0&&s&&(o&&(yield{shape:e?.json?.shape||"array-row-table",batchType:"partial-result",data:[],length:0,bytesUsed:0,container:c.getPartialResult(),jsonpath:y}),s=!1);for(let w of f){i.addRow(w);let A=i.getFullBatch({jsonpath:y});A&&(yield A)}i.chunkComplete(d);let m=i.getFullBatch({jsonpath:y});m&&(yield m)}let l=c.getStreamingJsonPathAsString(),u=i.getFinalBatch({jsonpath:l});u&&(yield u),o&&(yield{shape:"json",batchType:"final-result",container:c.getPartialResult(),jsonpath:c.getStreamingJsonPathAsString(),data:[],length:0})}function Ye(t,e){if(me(t.batchType==="final-result"),t.jsonpath==="$")return e;if(t.jsonpath&&t.jsonpath.length>1){let r=t.container;return new P(t.jsonpath).setFieldAtPath(r,e),r}return t.container}var kt="4.2.0-alpha.5",ce={name:"JSON",id:"json",module:"json",version:kt,extensions:["json","geojson"],mimeTypes:["application/json"],category:"table",text:!0,options:{json:{shape:void 0,table:!1,jsonpaths:[]}},parse:Tt,parseTextSync:He,parseInBatches:Ut};async function Tt(t,e){return He(new TextDecoder().decode(t),e)}function He(t,e){let r={...e,json:{...ce.options.json,...e?.json}};return We(t,r)}function Ut(t,e){let r={...e,json:{...ce.options.json,...e?.json}};return ae(t,r)}function Pe(t){let r=t.trim().split(`
|
|
13
|
+
`).map((o,n)=>{try{return JSON.parse(o)}catch{throw new Error(`NDJSONLoader: failed to parse JSON on line ${n+1}`)}});return J(r)}async function*Qe(t,e){let r=G(t),o=ye(r),n=ge(o),s=null,a="row-table",i=new I(s,{...e,shape:a});for await(let{counter:l,line:u}of n)try{let d=JSON.parse(u);i.addRow(d),i.chunkComplete(u);let f=i.getFullBatch();f&&(yield f)}catch{throw new Error(`NDJSONLoader: failed to parse JSON on line ${l}`)}let c=i.getFinalBatch();c&&(yield c)}var Dt="4.2.0-alpha.5",Xe={name:"NDJSON",id:"ndjson",module:"json",version:Dt,extensions:["ndjson","jsonl"],mimeTypes:["application/x-ndjson","application/jsonlines","application/json-seq"],category:"table",text:!0,parse:async t=>Pe(new TextDecoder().decode(t)),parseTextSync:Pe,parseInBatches:Qe,options:{}};function je(t,e){let r=e?.json?.shape||"object-row-table",o=[],n=de(t,r);for(let s of n)o.push(JSON.stringify(s));return`[${o.join(",")}]`}var qe={id:"json",version:"latest",module:"json",name:"JSON",extensions:["json"],mimeTypes:["application/json"],options:{},text:!0,encode:async(t,e)=>new TextEncoder().encode(je(t,e)).buffer,encodeTextSync:(t,e)=>je(t,e)};var V={x:0,y:1,z:2};function k(t,e={}){let{start:r=0,end:o=t.length,plane:n="xy"}=e,s=e.size||2,a=0,i=V[n[0]],c=V[n[1]];for(let l=r,u=o-s;l<o;l+=s)a+=(t[l+i]-t[u+i])*(t[l+c]+t[u+c]),u=l;return a/2}function Oe(t,e,r=2,o,n="xy"){let s=e&&e.length,a=s?e[0]*r:t.length,i=tt(t,0,a,r,!0,o&&o[0],n),c=[];if(!i||i.next===i.prev)return c;let l,u,d,f,y,m,w;if(s&&(i=$t(t,e,i,r,o,n)),t.length>80*r){f=u=t[0],y=d=t[1];for(let A=r;A<a;A+=r)m=t[A],w=t[A+1],m<f&&(f=m),w<y&&(y=w),m>u&&(u=m),w>d&&(d=w);l=Math.max(u-f,d-y),l=l!==0?32767/l:0}return $(i,c,r,f,y,l,0),c}function tt(t,e,r,o,n,s,a){let i,c;s===void 0&&(s=k(t,{start:e,end:r,size:o,plane:a}));let l=V[a[0]],u=V[a[1]];if(n===s<0)for(i=e;i<r;i+=o)c=et(i,t[i+l],t[i+u],c);else for(i=r-o;i>=e;i-=o)c=et(i,t[i+l],t[i+u],c);return c&&he(c,c.next)&&(K(c),c=c.next),c}function F(t,e){if(!t)return t;e||(e=t);let r=t,o;do if(o=!1,!r.steiner&&(he(r,r.next)||b(r.prev,r,r.next)===0)){if(K(r),r=e=r.prev,r===r.next)break;o=!0}else r=r.next;while(o||r!==e);return e}function $(t,e,r,o,n,s,a){if(!t)return;!a&&s&&Qt(t,o,n,s);let i=t,c,l;for(;t.prev!==t.next;){if(c=t.prev,l=t.next,s?zt(t,o,n,s):Mt(t)){e.push(c.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),K(t),t=l.next,i=l.next;continue}if(t=l,t===i){a?a===1?(t=Wt(F(t),e,r),$(t,e,r,o,n,s,2)):a===2&&Vt(t,e,r,o,n,s):$(F(t),e,r,o,n,s,1);break}}}function Mt(t){let e=t.prev,r=t,o=t.next;if(b(e,r,o)>=0)return!1;let n=e.x,s=r.x,a=o.x,i=e.y,c=r.y,l=o.y,u=n<s?n<a?n:a:s<a?s:a,d=i<c?i<l?i:l:c<l?c:l,f=n>s?n>a?n:a:s>a?s:a,y=i>c?i>l?i:l:c>l?c:l,m=o.next;for(;m!==e;){if(m.x>=u&&m.x<=f&&m.y>=d&&m.y<=y&&T(n,i,s,c,a,l,m.x,m.y)&&b(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function zt(t,e,r,o){let n=t.prev,s=t,a=t.next;if(b(n,s,a)>=0)return!1;let i=n.x,c=s.x,l=a.x,u=n.y,d=s.y,f=a.y,y=i<c?i<l?i:l:c<l?c:l,m=u<d?u<f?u:f:d<f?d:f,w=i>c?i>l?i:l:c>l?c:l,A=u>d?u>f?u:f:d>f?d:f,v=Ne(y,m,e,r,o),R=Ne(w,A,e,r,o),x=t.prevZ,g=t.nextZ;for(;x&&x.z>=v&&g&&g.z<=R;){if(x.x>=y&&x.x<=w&&x.y>=m&&x.y<=A&&x!==n&&x!==a&&T(i,u,c,d,l,f,x.x,x.y)&&b(x.prev,x,x.next)>=0||(x=x.prevZ,g.x>=y&&g.x<=w&&g.y>=m&&g.y<=A&&g!==n&&g!==a&&T(i,u,c,d,l,f,g.x,g.y)&&b(g.prev,g,g.next)>=0))return!1;g=g.nextZ}for(;x&&x.z>=v;){if(x.x>=y&&x.x<=w&&x.y>=m&&x.y<=A&&x!==n&&x!==a&&T(i,u,c,d,l,f,x.x,x.y)&&b(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;g&&g.z<=R;){if(g.x>=y&&g.x<=w&&g.y>=m&&g.y<=A&&g!==n&&g!==a&&T(i,u,c,d,l,f,g.x,g.y)&&b(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function Wt(t,e,r){let o=t;do{let n=o.prev,s=o.next.next;!he(n,s)&&rt(n,o,o.next,s)&&Z(n,s)&&Z(s,n)&&(e.push(n.i/r|0),e.push(o.i/r|0),e.push(s.i/r|0),K(o),K(o.next),o=t=s),o=o.next}while(o!==t);return F(o)}function Vt(t,e,r,o,n,s){let a=t;do{let i=a.next.next;for(;i!==a.prev;){if(a.i!==i.i&&er(a,i)){let c=ot(a,i);a=F(a,a.next),c=F(c,c.next),$(a,e,r,o,n,s,0),$(c,e,r,o,n,s,0);return}i=i.next}a=a.next}while(a!==t)}function $t(t,e,r,o,n,s){let a=[],i,c,l,u,d;for(i=0,c=e.length;i<c;i++)l=e[i]*o,u=i<c-1?e[i+1]*o:t.length,d=tt(t,l,u,o,!1,n&&n[i+1],s),d===d.next&&(d.steiner=!0),a.push(qt(d));for(a.sort(Zt),i=0;i<a.length;i++)r=Kt(a[i],r);return r}function Zt(t,e){return t.x-e.x}function Kt(t,e){let r=Yt(t,e);if(!r)return e;let o=ot(r,t);return F(o,o.next),F(r,r.next)}function Yt(t,e){let r=e,o=t.x,n=t.y,s=-1/0,a;do{if(n<=r.y&&n>=r.next.y&&r.next.y!==r.y){let f=r.x+(n-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(f<=o&&f>s&&(s=f,a=r.x<r.next.x?r:r.next,f===o))return a}r=r.next}while(r!==e);if(!a)return null;let i=a,c=a.x,l=a.y,u=1/0,d;r=a;do o>=r.x&&r.x>=c&&o!==r.x&&T(n<l?o:s,n,c,l,n<l?s:o,n,r.x,r.y)&&(d=Math.abs(n-r.y)/(o-r.x),Z(r,t)&&(d<u||d===u&&(r.x>a.x||r.x===a.x&&Ht(a,r)))&&(a=r,u=d)),r=r.next;while(r!==i);return a}function Ht(t,e){return b(t.prev,t,e.prev)<0&&b(e.next,t,t.next)<0}function Qt(t,e,r,o){let n=t;do n.z===0&&(n.z=Ne(n.x,n.y,e,r,o)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next;while(n!==t);n.prevZ.nextZ=null,n.prevZ=null,Xt(n)}function Xt(t){let e,r,o=1,n,s,a,i,c,l;do{for(s=t,t=null,l=null,n=0;s;){for(n++,i=s,a=0,r=0;r<o&&(a++,i=i.nextZ,!!i);r++);for(c=o;a>0||c>0&&i;)a!==0&&(c===0||!i||s.z<=i.z)?(e=s,s=s.nextZ,a--):(e=i,i=i.nextZ,c--),l?l.nextZ=e:t=e,e.prevZ=l,l=e;s=i}l.nextZ=null,o*=2}while(n>1);return t}function Ne(t,e,r,o,n){return t=(t-r)*n|0,e=(e-o)*n|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function qt(t){let e=t,r=t;do(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next;while(e!==t);return r}function T(t,e,r,o,n,s,a,i){return(n-a)*(e-i)>=(t-a)*(s-i)&&(t-a)*(o-i)>=(r-a)*(e-i)&&(r-a)*(s-i)>=(n-a)*(o-i)}function er(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!tr(t,e)&&(Z(t,e)&&Z(e,t)&&rr(t,e)&&(b(t.prev,t,e.prev)||b(t,e.prev,e))||he(t,e)&&b(t.prev,t,t.next)>0&&b(e.prev,e,e.next)>0)}function b(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function he(t,e){return t.x===e.x&&t.y===e.y}function rt(t,e,r,o){let n=ue(b(t,e,r)),s=ue(b(t,e,o)),a=ue(b(r,o,t)),i=ue(b(r,o,e));return!!(n!==s&&a!==i||n===0&&le(t,r,e)||s===0&&le(t,o,e)||a===0&&le(r,t,o)||i===0&&le(r,e,o))}function le(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function ue(t){return t>0?1:t<0?-1:0}function tr(t,e){let r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&rt(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function Z(t,e){return b(t.prev,t,t.next)<0?b(t,e,t.next)>=0&&b(t,t.prev,e)>=0:b(t,e,t.prev)<0||b(t,t.next,e)<0}function rr(t,e){let r=t,o=!1,n=(t.x+e.x)/2,s=(t.y+e.y)/2;do r.y>s!=r.next.y>s&&r.next.y!==r.y&&n<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(o=!o),r=r.next;while(r!==t);return o}function ot(t,e){let r=new Y(t.i,t.x,t.y),o=new Y(e.i,e.x,e.y),n=t.next,s=e.prev;return t.next=e,e.prev=t,r.next=n,n.prev=r,o.next=r,r.prev=o,s.next=o,o.prev=s,o}function et(t,e,r,o){let n=new Y(t,e,r);return o?(n.next=o.next,n.prev=o,o.next.prev=n,o.next=n):(n.prev=n,n.next=n),n}function K(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}var Y=class{constructor(e,r,o){j(this,"i",void 0),j(this,"x",void 0),j(this,"y",void 0),j(this,"prev",null),j(this,"next",null),j(this,"z",0),j(this,"prevZ",null),j(this,"nextZ",null),j(this,"steiner",!1),this.i=e,this.x=r,this.y=o}};function it(t,e,r){let o=ar(t),n=Object.keys(o).filter(s=>o[s]!==Array);return cr(t,{propArrayTypes:o,...e},{numericPropKeys:r&&r.numericPropKeys||n,PositionDataType:r?r.PositionDataType:Float32Array,triangulate:r?r.triangulate:!0})}function ar(t){let e={};for(let r of t)if(r.properties)for(let o in r.properties){let n=r.properties[o];e[o]=dr(n,e[o])}return e}function cr(t,e,r){let{pointPositionsCount:o,pointFeaturesCount:n,linePositionsCount:s,linePathsCount:a,lineFeaturesCount:i,polygonPositionsCount:c,polygonObjectsCount:l,polygonRingsCount:u,polygonFeaturesCount:d,propArrayTypes:f,coordLength:y}=e,{numericPropKeys:m=[],PositionDataType:w=Float32Array,triangulate:A=!0}=r,v=t[0]&&"id"in t[0],R=t.length>65535?Uint32Array:Uint16Array,x={type:"Point",positions:new w(o*y),globalFeatureIds:new R(o),featureIds:n>65535?new Uint32Array(o):new Uint16Array(o),numericProps:{},properties:[],fields:[]},g={type:"LineString",pathIndices:s>65535?new Uint32Array(a+1):new Uint16Array(a+1),positions:new w(s*y),globalFeatureIds:new R(s),featureIds:i>65535?new Uint32Array(s):new Uint16Array(s),numericProps:{},properties:[],fields:[]},N={type:"Polygon",polygonIndices:c>65535?new Uint32Array(l+1):new Uint16Array(l+1),primitivePolygonIndices:c>65535?new Uint32Array(u+1):new Uint16Array(u+1),positions:new w(c*y),globalFeatureIds:new R(c),featureIds:d>65535?new Uint32Array(c):new Uint16Array(c),numericProps:{},properties:[],fields:[]};A&&(N.triangles=[]);for(let O of[x,g,N])for(let _ of m){let S=f[_];O.numericProps[_]=new S(O.positions.length/y)}g.pathIndices[a]=s,N.polygonIndices[l]=c,N.primitivePolygonIndices[u]=c;let C={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let O of t){let _=O.geometry,S=O.properties||{};switch(_.type){case"Point":lr(_,x,C,y,S),x.properties.push(Ie(S,m)),v&&x.fields.push({id:O.id}),C.pointFeature++;break;case"LineString":ur(_,g,C,y,S),g.properties.push(Ie(S,m)),v&&g.fields.push({id:O.id}),C.lineFeature++;break;case"Polygon":hr(_,N,C,y,S),N.properties.push(Ie(S,m)),v&&N.fields.push({id:O.id}),C.polygonFeature++;break;default:throw new Error("Invalid geometry type")}C.feature++}return pr(x,g,N,y)}function lr(t,e,r,o,n){e.positions.set(t.data,r.pointPosition*o);let s=t.data.length/o;Be(e,n,r.pointPosition,s),e.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+s),e.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+s),r.pointPosition+=s}function ur(t,e,r,o,n){e.positions.set(t.data,r.linePosition*o);let s=t.data.length/o;Be(e,n,r.linePosition,s),e.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+s),e.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+s);for(let a=0,i=t.indices.length;a<i;++a){let c=t.indices[a],l=a===i-1?t.data.length:t.indices[a+1];e.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(l-c)/o}}function hr(t,e,r,o,n){e.positions.set(t.data,r.polygonPosition*o);let s=t.data.length/o;Be(e,n,r.polygonPosition,s),e.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+s),e.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+s);for(let a=0,i=t.indices.length;a<i;++a){let c=r.polygonPosition;e.polygonIndices[r.polygonObject++]=c;let l=t.areas[a],u=t.indices[a],d=t.indices[a+1];for(let y=0,m=u.length;y<m;++y){let w=u[y],A=y===m-1?d===void 0?t.data.length:d[0]:u[y+1];e.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(A-w)/o}let f=r.polygonPosition;fr(e,l,u,{startPosition:c,endPosition:f,coordLength:o})}}function fr(t,e,r,{startPosition:o,endPosition:n,coordLength:s}){if(!t.triangles)return;let a=o*s,i=n*s,c=t.positions.subarray(a,i),l=r[0],u=r.slice(1).map(f=>(f-l)/s),d=Oe(c,u,s,e);for(let f=0,y=d.length;f<y;++f)t.triangles.push(o+d[f])}function Se(t,e){let r={};for(let o in t)r[o]={value:t[o],size:e};return r}function pr(t,e,r,o){let n={shape:"binary-feature-collection",points:{...t,positions:{value:t.positions,size:o},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:Se(t.numericProps,1)},lines:{...e,positions:{value:e.positions,size:o},pathIndices:{value:e.pathIndices,size:1},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:Se(e.numericProps,1)},polygons:{...r,positions:{value:r.positions,size:o},polygonIndices:{value:r.polygonIndices,size:1},primitivePolygonIndices:{value:r.primitivePolygonIndices,size:1},globalFeatureIds:{value:r.globalFeatureIds,size:1},featureIds:{value:r.featureIds,size:1},numericProps:Se(r.numericProps,1)}};return n.polygons&&r.triangles&&(n.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),n}function Be(t,e,r,o){for(let n in t.numericProps)if(n in e){let s=e[n];t.numericProps[n].fill(s,r,r+o)}}function Ie(t,e){let r={};for(let o in t)e.includes(o)||(r[o]=t[o]);return r}function dr(t,e){return e===Array||!Number.isFinite(t)?Array:e===Float64Array||Math.fround(t)!==t?Float64Array:Float32Array}function at(t){let e=0,r=0,o=0,n=0,s=0,a=0,i=0,c=0,l=0,u=new Set;for(let d of t){let f=d.geometry;switch(f.type){case"Point":r++,e++,u.add(f.coordinates.length);break;case"MultiPoint":r++,e+=f.coordinates.length;for(let m of f.coordinates)u.add(m.length);break;case"LineString":s++,o+=f.coordinates.length,n++;for(let m of f.coordinates)u.add(m.length);break;case"MultiLineString":s++;for(let m of f.coordinates){o+=m.length,n++;for(let w of m)u.add(w.length)}break;case"Polygon":l++,i++,c+=f.coordinates.length;let y=f.coordinates.flat();a+=y.length;for(let m of y)u.add(m.length);break;case"MultiPolygon":l++;for(let m of f.coordinates){i++,c+=m.length;let w=m.flat();a+=w.length;for(let A of w)u.add(A.length)}break;default:throw new Error(`Unsupported geometry type: ${f.type}`)}}return{coordLength:u.size>0?Math.max(...u):2,pointPositionsCount:e,pointFeaturesCount:r,linePositionsCount:o,linePathsCount:n,lineFeaturesCount:s,polygonPositionsCount:a,polygonObjectsCount:i,polygonRingsCount:c,polygonFeaturesCount:l}}function ut(t,e={coordLength:2,fixRingWinding:!0}){return t.map(r=>mr(r,e))}function ct(t,e,r,o){r.push(e.length),e.push(...t);for(let n=t.length;n<o.coordLength;n++)e.push(0)}function Ee(t,e,r,o){r.push(e.length);for(let n of t){e.push(...n);for(let s=n.length;s<o.coordLength;s++)e.push(0)}}function lt(t,e,r,o,n){let s=0,a=[],i=[];for(let c of t){let l=c.map(f=>f.slice(0,2)),u=k(l.flat()),d=u<0;n.fixRingWinding&&(s===0&&!d||s>0&&d)&&(c.reverse(),u=-u),a.push(u),Ee(c,e,i,n),s++}s>0&&(o.push(a),r.push(i))}function mr(t,e){let{geometry:r}=t;if(r.type==="GeometryCollection")throw new Error("GeometryCollection type not supported");let o=[],n=[],s,a;switch(r.type){case"Point":a="Point",ct(r.coordinates,o,n,e);break;case"MultiPoint":a="Point",r.coordinates.map(i=>ct(i,o,n,e));break;case"LineString":a="LineString",Ee(r.coordinates,o,n,e);break;case"MultiLineString":a="LineString",r.coordinates.map(i=>Ee(i,o,n,e));break;case"Polygon":a="Polygon",s=[],lt(r.coordinates,o,n,s,e);break;case"MultiPolygon":a="Polygon",s=[],r.coordinates.map(i=>lt(i,o,n,s,e));break;default:throw new Error(`Unknown type: ${a}`)}return{...t,geometry:{type:a,indices:n,data:o,areas:s}}}function fe(t,e={fixRingWinding:!0,triangulate:!0}){let r=at(t),o=r.coordLength,{fixRingWinding:n}=e,s=ut(t,{coordLength:o,fixRingWinding:n});return it(s,r,{numericPropKeys:e.numericPropKeys,PositionDataType:e.PositionDataType||Float32Array,triangulate:e.triangulate})}var yr="4.2.0-alpha.5",Ce={name:"GeoJSON",id:"geojson",module:"geojson",version:yr,worker:!0,extensions:["geojson"],mimeTypes:["application/geo+json"],category:"geometry",text:!0,options:{geojson:{shape:"object-row-table"},json:{shape:"object-row-table",jsonpaths:["$","$.features"]},gis:{format:"geojson"}}},U={...Ce,parse:gr,parseTextSync:ht,parseInBatches:xr};async function gr(t,e){return ht(new TextDecoder().decode(t),e)}function ht(t,e){e={...U.options,...e},e.geojson={...U.options.geojson,...e.geojson},e.gis=e.gis||{};let r;try{r=JSON.parse(t)}catch{r={}}let o={shape:"geojson-table",type:"FeatureCollection",features:r?.features||[]};switch(e.gis.format){case"binary":return fe(o.features);default:return o}}function xr(t,e){e={...U.options,...e},e.json={...U.options.geojson,...e.geojson};let r=ae(t,e);switch(e.gis.format){case"binary":return wr(r);default:return r}}async function*wr(t){for await(let e of t)e.data=fe(e.data),yield e}function ft(t){let e=t.schema?.fields.findIndex(r=>r.name==="geometry")??-1;if(e>-1)return e;if(B(t)>0){let r=se(t,0);for(let o=0;o<oe(t);o++){let n=r?.[o];if(n&&typeof n=="object")return o}}throw new Error("Failed to detect geometry column")}function pt(t,e,r=[]){let o={};for(let n=0;n<oe(t);++n){let s=t.schema?.fields[n].name;s&&!r.includes(n)&&(o[s]=e[s])}return o}function dt(t,e,r,o){let n=ne(t,e);if(!n)return;let s=br(t,n,r),a=JSON.stringify(s);o.push(a)}function br(t,e,r){let o=pt(t,e,[r]),n=t.schema?.fields[r].name,s=n&&e[n];if(!s)return{type:"Feature",geometry:null,properties:o};if(typeof s=="string")try{s=JSON.parse(s)}catch{throw new Error("Invalid string geometry")}if(typeof s!="object"||typeof s?.type!="string")throw new Error("invalid geometry column value");return s?.type==="Feature"?{...s,properties:o}:{type:"Feature",geometry:s,properties:o}}var pe=class{chunkSize;strings=[];totalLength=0;textEncoder=new TextEncoder;constructor(e){this.chunkSize=e}push(...e){for(let r of e)this.strings.push(r),this.totalLength+=r.length}isFull(){return this.totalLength>=this.chunkSize}getArrayBufferBatch(){return this.textEncoder.encode(this.getStringBatch()).buffer}getStringBatch(){let e=this.strings.join("");return this.strings=[],this.totalLength=0,e}};async function*_e(t,e={}){let r={geojson:{},chunkSize:1e4,...e},o=new pe(r.chunkSize);r.geojson.featureArray||o.push(`{
|
|
14
|
+
`,`"type": "FeatureCollection",
|
|
15
|
+
`,`"features":
|
|
16
|
+
`),o.push("[");let n=r.geojson.geometryColumn,s=!0,a=0;for await(let i of t){let c=a+B(i);n||(n=n||ft(i));for(let u=a;u<c;++u)s||o.push(","),o.push(`
|
|
17
|
+
`),s=!1,dt(i,u,n,o),o.isFull()&&(yield o.getArrayBufferBatch()),a=c;let l=o.getArrayBufferBatch();l.byteLength>0&&(yield l)}o.push(`
|
|
18
|
+
`),o.push(`]
|
|
19
|
+
`),r.geojson.featureArray||o.push("}"),yield o.getArrayBufferBatch()}var mt={id:"geojson",version:"latest",module:"geojson",name:"GeoJSON",extensions:["geojson"],mimeTypes:["application/geo+json"],text:!0,options:{geojson:{featureArray:!1,geometryColumn:null}},async encode(t,e){let o=_e([t],e);return await xe(o)},encodeInBatches:(t,e)=>_e(t,e)};return Ot(H);})();
|
|
20
|
+
return __exports__;
|
|
21
|
+
});
|
package/dist/geojson-loader.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Loader, LoaderWithParser } from '@loaders.gl/loader-utils';
|
|
2
2
|
import type { GeoJSON, TableBatch } from '@loaders.gl/schema';
|
|
3
|
-
import type { JSONLoaderOptions } from
|
|
3
|
+
import type { JSONLoaderOptions } from "./json-loader.js";
|
|
4
4
|
export type GeoJSONLoaderOptions = JSONLoaderOptions & {
|
|
5
5
|
geojson?: {
|
|
6
6
|
shape?: 'object-row-table';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geojson-loader.d.ts","sourceRoot":"","sources":["../src/geojson-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAC,OAAO,EAAgB,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAC,iBAAiB,EAAC,
|
|
1
|
+
{"version":3,"file":"geojson-loader.d.ts","sourceRoot":"","sources":["../src/geojson-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAC,OAAO,EAAgB,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAC,iBAAiB,EAAC,yBAAsB;AASrD,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG;IACrD,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,kBAAkB,CAAC;KAC5B,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;KAC/B,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,oBAAoB,CAsBjF,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,oBAAoB,CAOrF,CAAC"}
|
package/dist/geojson-loader.js
CHANGED
|
@@ -1,88 +1,90 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { geojsonToBinary } from '@loaders.gl/gis';
|
|
5
|
+
// import {parseJSONSync} from './lib/parsers/parse-json';
|
|
2
6
|
import { parseJSONInBatches } from "./lib/parsers/parse-json-in-batches.js";
|
|
3
|
-
|
|
7
|
+
// __VERSION__ is injected by babel-plugin-version-inline
|
|
8
|
+
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
9
|
+
const VERSION = typeof "4.2.0-alpha.5" !== 'undefined' ? "4.2.0-alpha.5" : 'latest';
|
|
10
|
+
/**
|
|
11
|
+
* GeoJSON loader
|
|
12
|
+
*/
|
|
4
13
|
export const GeoJSONWorkerLoader = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
14
|
+
name: 'GeoJSON',
|
|
15
|
+
id: 'geojson',
|
|
16
|
+
module: 'geojson',
|
|
17
|
+
version: VERSION,
|
|
18
|
+
worker: true,
|
|
19
|
+
extensions: ['geojson'],
|
|
20
|
+
mimeTypes: ['application/geo+json'],
|
|
21
|
+
category: 'geometry',
|
|
22
|
+
text: true,
|
|
23
|
+
options: {
|
|
24
|
+
geojson: {
|
|
25
|
+
shape: 'object-row-table'
|
|
26
|
+
},
|
|
27
|
+
json: {
|
|
28
|
+
shape: 'object-row-table',
|
|
29
|
+
jsonpaths: ['$', '$.features']
|
|
30
|
+
},
|
|
31
|
+
gis: {
|
|
32
|
+
format: 'geojson'
|
|
33
|
+
}
|
|
24
34
|
}
|
|
25
|
-
}
|
|
26
35
|
};
|
|
27
36
|
export const GeoJSONLoader = {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
37
|
+
...GeoJSONWorkerLoader,
|
|
38
|
+
// @ts-expect-error
|
|
39
|
+
parse,
|
|
40
|
+
// @ts-expect-error
|
|
41
|
+
parseTextSync,
|
|
42
|
+
parseInBatches
|
|
32
43
|
};
|
|
33
44
|
async function parse(arrayBuffer, options) {
|
|
34
|
-
|
|
45
|
+
return parseTextSync(new TextDecoder().decode(arrayBuffer), options);
|
|
35
46
|
}
|
|
36
47
|
function parseTextSync(text, options) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
...GeoJSONLoader.options,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
default:
|
|
62
|
-
return table;
|
|
63
|
-
}
|
|
48
|
+
// Apps can call the parse method directly, we so apply default options here
|
|
49
|
+
options = { ...GeoJSONLoader.options, ...options };
|
|
50
|
+
options.geojson = { ...GeoJSONLoader.options.geojson, ...options.geojson };
|
|
51
|
+
options.gis = options.gis || {};
|
|
52
|
+
let geojson;
|
|
53
|
+
try {
|
|
54
|
+
geojson = JSON.parse(text);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
geojson = {};
|
|
58
|
+
}
|
|
59
|
+
const table = {
|
|
60
|
+
shape: 'geojson-table',
|
|
61
|
+
// TODO - deduce schema from geojson
|
|
62
|
+
// TODO check that parsed data is of type FeatureCollection
|
|
63
|
+
type: 'FeatureCollection',
|
|
64
|
+
features: geojson?.features || []
|
|
65
|
+
};
|
|
66
|
+
switch (options.gis.format) {
|
|
67
|
+
case 'binary':
|
|
68
|
+
return geojsonToBinary(table.features);
|
|
69
|
+
default:
|
|
70
|
+
return table;
|
|
71
|
+
}
|
|
64
72
|
}
|
|
65
73
|
function parseInBatches(asyncIterator, options) {
|
|
66
|
-
|
|
67
|
-
...GeoJSONLoader.options,
|
|
68
|
-
...options
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
case 'binary':
|
|
77
|
-
return makeBinaryGeometryIterator(geojsonIterator);
|
|
78
|
-
default:
|
|
79
|
-
return geojsonIterator;
|
|
80
|
-
}
|
|
74
|
+
// Apps can call the parse method directly, we so apply default options here
|
|
75
|
+
options = { ...GeoJSONLoader.options, ...options };
|
|
76
|
+
options.json = { ...GeoJSONLoader.options.geojson, ...options.geojson };
|
|
77
|
+
const geojsonIterator = parseJSONInBatches(asyncIterator, options);
|
|
78
|
+
switch (options.gis.format) {
|
|
79
|
+
case 'binary':
|
|
80
|
+
return makeBinaryGeometryIterator(geojsonIterator);
|
|
81
|
+
default:
|
|
82
|
+
return geojsonIterator;
|
|
83
|
+
}
|
|
81
84
|
}
|
|
82
85
|
async function* makeBinaryGeometryIterator(geojsonIterator) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
86
|
+
for await (const batch of geojsonIterator) {
|
|
87
|
+
batch.data = geojsonToBinary(batch.data);
|
|
88
|
+
yield batch;
|
|
89
|
+
}
|
|
87
90
|
}
|
|
88
|
-
//# sourceMappingURL=geojson-loader.js.map
|
package/dist/geojson-worker.js
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
(() => {
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
|
+
var __publicField = (obj, key, value) => {
|
|
6
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
7
|
+
return value;
|
|
8
|
+
};
|
|
9
|
+
|
|
3
10
|
// ../worker-utils/src/lib/node/worker_threads-browser.ts
|
|
4
11
|
var parentPort = null;
|
|
5
12
|
|
|
@@ -59,7 +66,9 @@
|
|
|
59
66
|
}
|
|
60
67
|
getParentPort().then((parentPort2) => {
|
|
61
68
|
if (parentPort2) {
|
|
62
|
-
parentPort2.on("message",
|
|
69
|
+
parentPort2.on("message", (message) => {
|
|
70
|
+
handleMessage(message);
|
|
71
|
+
});
|
|
63
72
|
parentPort2.on("exit", () => console.debug("Node worker closing"));
|
|
64
73
|
} else {
|
|
65
74
|
globalThis.onmessage = handleMessage;
|
|
@@ -254,11 +263,14 @@
|
|
|
254
263
|
// ../schema/src/lib/table/batches/base-table-batch-aggregator.ts
|
|
255
264
|
var DEFAULT_ROW_COUNT = 100;
|
|
256
265
|
var BaseTableBatchAggregator = class {
|
|
266
|
+
schema;
|
|
267
|
+
options;
|
|
268
|
+
shape;
|
|
269
|
+
length = 0;
|
|
270
|
+
rows = null;
|
|
271
|
+
cursor = 0;
|
|
272
|
+
_headers = [];
|
|
257
273
|
constructor(schema, options) {
|
|
258
|
-
this.length = 0;
|
|
259
|
-
this.rows = null;
|
|
260
|
-
this.cursor = 0;
|
|
261
|
-
this._headers = [];
|
|
262
274
|
this.options = options;
|
|
263
275
|
this.schema = schema;
|
|
264
276
|
if (!Array.isArray(schema)) {
|
|
@@ -354,12 +366,14 @@
|
|
|
354
366
|
// ../schema/src/lib/table/batches/row-table-batch-aggregator.ts
|
|
355
367
|
var DEFAULT_ROW_COUNT2 = 100;
|
|
356
368
|
var RowTableBatchAggregator = class {
|
|
369
|
+
schema;
|
|
370
|
+
options;
|
|
371
|
+
length = 0;
|
|
372
|
+
objectRows = null;
|
|
373
|
+
arrayRows = null;
|
|
374
|
+
cursor = 0;
|
|
375
|
+
_headers = null;
|
|
357
376
|
constructor(schema, options) {
|
|
358
|
-
this.length = 0;
|
|
359
|
-
this.objectRows = null;
|
|
360
|
-
this.arrayRows = null;
|
|
361
|
-
this.cursor = 0;
|
|
362
|
-
this._headers = null;
|
|
363
377
|
this.options = options;
|
|
364
378
|
this.schema = schema;
|
|
365
379
|
if (schema) {
|
|
@@ -376,7 +390,7 @@
|
|
|
376
390
|
if (Number.isFinite(cursor)) {
|
|
377
391
|
this.cursor = cursor;
|
|
378
392
|
}
|
|
379
|
-
this._headers
|
|
393
|
+
this._headers ||= inferHeadersFromArrayRow(row);
|
|
380
394
|
switch (this.options.shape) {
|
|
381
395
|
case "object-row-table":
|
|
382
396
|
const rowObject = convertToObjectRow(row, this._headers);
|
|
@@ -393,7 +407,7 @@
|
|
|
393
407
|
if (Number.isFinite(cursor)) {
|
|
394
408
|
this.cursor = cursor;
|
|
395
409
|
}
|
|
396
|
-
this._headers
|
|
410
|
+
this._headers ||= inferHeadersFromObjectRow(row);
|
|
397
411
|
switch (this.options.shape) {
|
|
398
412
|
case "array-row-table":
|
|
399
413
|
const rowArray = convertToArrayRow(row, this._headers);
|
|
@@ -429,10 +443,11 @@
|
|
|
429
443
|
// ../schema/src/lib/table/batches/columnar-table-batch-aggregator.ts
|
|
430
444
|
var DEFAULT_ROW_COUNT3 = 100;
|
|
431
445
|
var ColumnarTableBatchAggregator = class {
|
|
446
|
+
schema;
|
|
447
|
+
length = 0;
|
|
448
|
+
allocated = 0;
|
|
449
|
+
columns = {};
|
|
432
450
|
constructor(schema, options) {
|
|
433
|
-
this.length = 0;
|
|
434
|
-
this.allocated = 0;
|
|
435
|
-
this.columns = {};
|
|
436
451
|
this.schema = schema;
|
|
437
452
|
this._reallocateColumns();
|
|
438
453
|
}
|
|
@@ -512,16 +527,18 @@
|
|
|
512
527
|
_limitMB: 0
|
|
513
528
|
};
|
|
514
529
|
var ERR_MESSAGE = "TableBatchBuilder";
|
|
515
|
-
var
|
|
530
|
+
var _TableBatchBuilder = class {
|
|
531
|
+
schema;
|
|
532
|
+
options;
|
|
533
|
+
aggregator = null;
|
|
534
|
+
batchCount = 0;
|
|
535
|
+
bytesUsed = 0;
|
|
536
|
+
isChunkComplete = false;
|
|
537
|
+
lastBatchEmittedMs = Date.now();
|
|
538
|
+
totalLength = 0;
|
|
539
|
+
totalBytes = 0;
|
|
540
|
+
rowBytes = 0;
|
|
516
541
|
constructor(schema, options) {
|
|
517
|
-
this.aggregator = null;
|
|
518
|
-
this.batchCount = 0;
|
|
519
|
-
this.bytesUsed = 0;
|
|
520
|
-
this.isChunkComplete = false;
|
|
521
|
-
this.lastBatchEmittedMs = Date.now();
|
|
522
|
-
this.totalLength = 0;
|
|
523
|
-
this.totalBytes = 0;
|
|
524
|
-
this.rowBytes = 0;
|
|
525
542
|
this.schema = schema;
|
|
526
543
|
this.options = { ...DEFAULT_OPTIONS, ...options };
|
|
527
544
|
}
|
|
@@ -628,15 +645,17 @@
|
|
|
628
645
|
case "columnar-table":
|
|
629
646
|
return ColumnarTableBatchAggregator;
|
|
630
647
|
case "arrow-table":
|
|
631
|
-
if (!
|
|
648
|
+
if (!_TableBatchBuilder.ArrowBatch) {
|
|
632
649
|
throw new Error(ERR_MESSAGE);
|
|
633
650
|
}
|
|
634
|
-
return
|
|
651
|
+
return _TableBatchBuilder.ArrowBatch;
|
|
635
652
|
default:
|
|
636
653
|
return BaseTableBatchAggregator;
|
|
637
654
|
}
|
|
638
655
|
}
|
|
639
656
|
};
|
|
657
|
+
var TableBatchBuilder = _TableBatchBuilder;
|
|
658
|
+
__publicField(TableBatchBuilder, "ArrowBatch");
|
|
640
659
|
|
|
641
660
|
// ../../node_modules/@math.gl/polygon/dist/polygon-utils.js
|
|
642
661
|
var DimIndex = {
|
|
@@ -1704,27 +1723,29 @@
|
|
|
1704
1723
|
}
|
|
1705
1724
|
};
|
|
1706
1725
|
var ClarinetParser = class {
|
|
1726
|
+
options = DEFAULT_OPTIONS2;
|
|
1727
|
+
bufferCheckPosition = MAX_BUFFER_LENGTH;
|
|
1728
|
+
q = "";
|
|
1729
|
+
c = "";
|
|
1730
|
+
p = "";
|
|
1731
|
+
closed = false;
|
|
1732
|
+
closedRoot = false;
|
|
1733
|
+
sawRoot = false;
|
|
1734
|
+
// tag = null;
|
|
1735
|
+
error = null;
|
|
1736
|
+
state = 0 /* BEGIN */;
|
|
1737
|
+
stack = [];
|
|
1738
|
+
// mostly just for error reporting
|
|
1739
|
+
position = 0;
|
|
1740
|
+
column = 0;
|
|
1741
|
+
line = 1;
|
|
1742
|
+
slashed = false;
|
|
1743
|
+
unicodeI = 0;
|
|
1744
|
+
unicodeS = null;
|
|
1745
|
+
depth = 0;
|
|
1746
|
+
textNode;
|
|
1747
|
+
numberNode;
|
|
1707
1748
|
constructor(options = {}) {
|
|
1708
|
-
this.options = DEFAULT_OPTIONS2;
|
|
1709
|
-
this.bufferCheckPosition = MAX_BUFFER_LENGTH;
|
|
1710
|
-
this.q = "";
|
|
1711
|
-
this.c = "";
|
|
1712
|
-
this.p = "";
|
|
1713
|
-
this.closed = false;
|
|
1714
|
-
this.closedRoot = false;
|
|
1715
|
-
this.sawRoot = false;
|
|
1716
|
-
// tag = null;
|
|
1717
|
-
this.error = null;
|
|
1718
|
-
this.state = 0 /* BEGIN */;
|
|
1719
|
-
this.stack = [];
|
|
1720
|
-
// mostly just for error reporting
|
|
1721
|
-
this.position = 0;
|
|
1722
|
-
this.column = 0;
|
|
1723
|
-
this.line = 1;
|
|
1724
|
-
this.slashed = false;
|
|
1725
|
-
this.unicodeI = 0;
|
|
1726
|
-
this.unicodeS = null;
|
|
1727
|
-
this.depth = 0;
|
|
1728
1749
|
this.options = { ...DEFAULT_OPTIONS2, ...options };
|
|
1729
1750
|
this.textNode = void 0;
|
|
1730
1751
|
this.numberNode = "";
|
|
@@ -2119,6 +2140,7 @@ Char: ${this.c}`;
|
|
|
2119
2140
|
|
|
2120
2141
|
// src/lib/jsonpath/jsonpath.ts
|
|
2121
2142
|
var JSONPath = class {
|
|
2143
|
+
path;
|
|
2122
2144
|
constructor(path = null) {
|
|
2123
2145
|
this.path = ["$"];
|
|
2124
2146
|
if (path instanceof JSONPath) {
|
|
@@ -2195,11 +2217,12 @@ Char: ${this.c}`;
|
|
|
2195
2217
|
|
|
2196
2218
|
// src/lib/json-parser/json-parser.ts
|
|
2197
2219
|
var JSONParser = class {
|
|
2220
|
+
parser;
|
|
2221
|
+
result = void 0;
|
|
2222
|
+
previousStates = [];
|
|
2223
|
+
currentState = Object.freeze({ container: [], key: null });
|
|
2224
|
+
jsonpath = new JSONPath();
|
|
2198
2225
|
constructor(options) {
|
|
2199
|
-
this.result = void 0;
|
|
2200
|
-
this.previousStates = [];
|
|
2201
|
-
this.currentState = Object.freeze({ container: [], key: null });
|
|
2202
|
-
this.jsonpath = new JSONPath();
|
|
2203
2226
|
this.reset();
|
|
2204
2227
|
this.parser = new ClarinetParser({
|
|
2205
2228
|
onready: () => {
|
|
@@ -2284,6 +2307,10 @@ Char: ${this.c}`;
|
|
|
2284
2307
|
|
|
2285
2308
|
// src/lib/json-parser/streaming-json-parser.ts
|
|
2286
2309
|
var StreamingJSONParser = class extends JSONParser {
|
|
2310
|
+
jsonPaths;
|
|
2311
|
+
streamingJsonPath = null;
|
|
2312
|
+
streamingArray = null;
|
|
2313
|
+
topLevelObject = null;
|
|
2287
2314
|
constructor(options = {}) {
|
|
2288
2315
|
super({
|
|
2289
2316
|
onopenarray: () => {
|
|
@@ -2310,9 +2337,6 @@ Char: ${this.c}`;
|
|
|
2310
2337
|
}
|
|
2311
2338
|
}
|
|
2312
2339
|
});
|
|
2313
|
-
this.streamingJsonPath = null;
|
|
2314
|
-
this.streamingArray = null;
|
|
2315
|
-
this.topLevelObject = null;
|
|
2316
2340
|
const jsonpaths = options.jsonpaths || [];
|
|
2317
2341
|
this.jsonPaths = jsonpaths.map((jsonpath) => new JSONPath(jsonpath));
|
|
2318
2342
|
}
|
|
@@ -2430,7 +2454,7 @@ Char: ${this.c}`;
|
|
|
2430
2454
|
}
|
|
2431
2455
|
|
|
2432
2456
|
// src/geojson-loader.ts
|
|
2433
|
-
var VERSION = true ? "4.2.0-alpha.
|
|
2457
|
+
var VERSION = true ? "4.2.0-alpha.5" : "latest";
|
|
2434
2458
|
var GeoJSONWorkerLoader = {
|
|
2435
2459
|
name: "GeoJSON",
|
|
2436
2460
|
id: "geojson",
|
package/dist/geojson-writer.js
CHANGED
|
@@ -1,24 +1,27 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
// Copyright Foursquare, Inc 20222
|
|
1
5
|
import { concatenateArrayBuffersAsync } from '@loaders.gl/loader-utils';
|
|
2
6
|
import { encodeTableAsGeojsonInBatches } from "./lib/encoders/geojson-encoder.js";
|
|
3
7
|
export const GeoJSONWriter = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
8
|
+
id: 'geojson',
|
|
9
|
+
version: 'latest',
|
|
10
|
+
module: 'geojson',
|
|
11
|
+
name: 'GeoJSON',
|
|
12
|
+
extensions: ['geojson'],
|
|
13
|
+
mimeTypes: ['application/geo+json'],
|
|
14
|
+
text: true,
|
|
15
|
+
options: {
|
|
16
|
+
geojson: {
|
|
17
|
+
featureArray: false,
|
|
18
|
+
geometryColumn: null
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
async encode(table, options) {
|
|
22
|
+
const tableIterator = [table];
|
|
23
|
+
const batches = encodeTableAsGeojsonInBatches(tableIterator, options);
|
|
24
|
+
return await concatenateArrayBuffersAsync(batches);
|
|
25
|
+
},
|
|
26
|
+
encodeInBatches: (tableIterator, options) => encodeTableAsGeojsonInBatches(tableIterator, options)
|
|
23
27
|
};
|
|
24
|
-
//# sourceMappingURL=geojson-writer.js.map
|