@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.
Files changed (67) hide show
  1. package/dist/dist.dev.js +319 -366
  2. package/dist/dist.min.js +21 -0
  3. package/dist/geojson-loader.d.ts +1 -1
  4. package/dist/geojson-loader.d.ts.map +1 -1
  5. package/dist/geojson-loader.js +75 -73
  6. package/dist/geojson-worker.js +78 -54
  7. package/dist/geojson-writer.js +23 -20
  8. package/dist/index.cjs +155 -121
  9. package/dist/index.cjs.map +7 -0
  10. package/dist/index.d.ts +12 -12
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +3 -1
  13. package/dist/json-loader.js +30 -37
  14. package/dist/json-writer.js +14 -11
  15. package/dist/lib/clarinet/clarinet.js +513 -391
  16. package/dist/lib/encoder-utils/encode-table-row.d.ts +1 -1
  17. package/dist/lib/encoder-utils/encode-table-row.d.ts.map +1 -1
  18. package/dist/lib/encoder-utils/encode-table-row.js +46 -37
  19. package/dist/lib/encoder-utils/encode-utils.js +38 -25
  20. package/dist/lib/encoder-utils/utf8-encoder.js +26 -27
  21. package/dist/lib/encoders/geojson-encoder.d.ts +1 -1
  22. package/dist/lib/encoders/geojson-encoder.d.ts.map +1 -1
  23. package/dist/lib/encoders/geojson-encoder.js +43 -40
  24. package/dist/lib/encoders/json-encoder.d.ts +1 -1
  25. package/dist/lib/encoders/json-encoder.d.ts.map +1 -1
  26. package/dist/lib/encoders/json-encoder.js +17 -9
  27. package/dist/lib/json-parser/json-parser.d.ts +2 -2
  28. package/dist/lib/json-parser/json-parser.d.ts.map +1 -1
  29. package/dist/lib/json-parser/json-parser.js +86 -102
  30. package/dist/lib/json-parser/streaming-json-parser.d.ts +2 -2
  31. package/dist/lib/json-parser/streaming-json-parser.d.ts.map +1 -1
  32. package/dist/lib/json-parser/streaming-json-parser.js +87 -63
  33. package/dist/lib/jsonpath/jsonpath.js +78 -57
  34. package/dist/lib/parsers/parse-json-in-batches.d.ts +1 -1
  35. package/dist/lib/parsers/parse-json-in-batches.d.ts.map +1 -1
  36. package/dist/lib/parsers/parse-json-in-batches.js +76 -75
  37. package/dist/lib/parsers/parse-json.d.ts +1 -1
  38. package/dist/lib/parsers/parse-json.d.ts.map +1 -1
  39. package/dist/lib/parsers/parse-json.js +21 -22
  40. package/dist/lib/parsers/parse-ndjson-in-batches.js +26 -28
  41. package/dist/lib/parsers/parse-ndjson.js +10 -10
  42. package/dist/ndgeoson-loader.js +28 -20
  43. package/dist/ndjson-loader.js +22 -14
  44. package/dist/workers/geojson-worker.js +0 -1
  45. package/package.json +11 -7
  46. package/dist/geojson-loader.js.map +0 -1
  47. package/dist/geojson-writer.js.map +0 -1
  48. package/dist/index.js.map +0 -1
  49. package/dist/json-loader.js.map +0 -1
  50. package/dist/json-writer.js.map +0 -1
  51. package/dist/lib/clarinet/LICENSE +0 -28
  52. package/dist/lib/clarinet/clarinet.js.map +0 -1
  53. package/dist/lib/encoder-utils/encode-table-row.js.map +0 -1
  54. package/dist/lib/encoder-utils/encode-utils.js.map +0 -1
  55. package/dist/lib/encoder-utils/utf8-encoder.js.map +0 -1
  56. package/dist/lib/encoders/geojson-encoder.js.map +0 -1
  57. package/dist/lib/encoders/json-encoder.js.map +0 -1
  58. package/dist/lib/json-parser/json-parser.js.map +0 -1
  59. package/dist/lib/json-parser/streaming-json-parser.js.map +0 -1
  60. package/dist/lib/jsonpath/jsonpath.js.map +0 -1
  61. package/dist/lib/parsers/parse-json-in-batches.js.map +0 -1
  62. package/dist/lib/parsers/parse-json.js.map +0 -1
  63. package/dist/lib/parsers/parse-ndjson-in-batches.js.map +0 -1
  64. package/dist/lib/parsers/parse-ndjson.js.map +0 -1
  65. package/dist/ndgeoson-loader.js.map +0 -1
  66. package/dist/ndjson-loader.js.map +0 -1
  67. package/dist/workers/geojson-worker.js.map +0 -1
@@ -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
+ });
@@ -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 './json-loader';
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,MAAM,eAAe,CAAC;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"}
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"}
@@ -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
- const VERSION = typeof "4.2.0-alpha.4" !== 'undefined' ? "4.2.0-alpha.4" : 'latest';
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
- name: 'GeoJSON',
6
- id: 'geojson',
7
- module: 'geojson',
8
- version: VERSION,
9
- worker: true,
10
- extensions: ['geojson'],
11
- mimeTypes: ['application/geo+json'],
12
- category: 'geometry',
13
- text: true,
14
- options: {
15
- geojson: {
16
- shape: 'object-row-table'
17
- },
18
- json: {
19
- shape: 'object-row-table',
20
- jsonpaths: ['$', '$.features']
21
- },
22
- gis: {
23
- format: 'geojson'
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
- ...GeoJSONWorkerLoader,
29
- parse,
30
- parseTextSync,
31
- parseInBatches
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
- return parseTextSync(new TextDecoder().decode(arrayBuffer), options);
45
+ return parseTextSync(new TextDecoder().decode(arrayBuffer), options);
35
46
  }
36
47
  function parseTextSync(text, options) {
37
- var _geojson;
38
- options = {
39
- ...GeoJSONLoader.options,
40
- ...options
41
- };
42
- options.geojson = {
43
- ...GeoJSONLoader.options.geojson,
44
- ...options.geojson
45
- };
46
- options.gis = options.gis || {};
47
- let geojson;
48
- try {
49
- geojson = JSON.parse(text);
50
- } catch {
51
- geojson = {};
52
- }
53
- const table = {
54
- shape: 'geojson-table',
55
- type: 'FeatureCollection',
56
- features: ((_geojson = geojson) === null || _geojson === void 0 ? void 0 : _geojson.features) || []
57
- };
58
- switch (options.gis.format) {
59
- case 'binary':
60
- return geojsonToBinary(table.features);
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
- options = {
67
- ...GeoJSONLoader.options,
68
- ...options
69
- };
70
- options.json = {
71
- ...GeoJSONLoader.options.geojson,
72
- ...options.geojson
73
- };
74
- const geojsonIterator = parseJSONInBatches(asyncIterator, options);
75
- switch (options.gis.format) {
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
- for await (const batch of geojsonIterator) {
84
- batch.data = geojsonToBinary(batch.data);
85
- yield batch;
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
@@ -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", handleMessage);
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 || (this._headers = inferHeadersFromArrayRow(row));
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 || (this._headers = inferHeadersFromObjectRow(row));
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 TableBatchBuilder = class {
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 (!TableBatchBuilder.ArrowBatch) {
648
+ if (!_TableBatchBuilder.ArrowBatch) {
632
649
  throw new Error(ERR_MESSAGE);
633
650
  }
634
- return TableBatchBuilder.ArrowBatch;
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.4" : "latest";
2457
+ var VERSION = true ? "4.2.0-alpha.5" : "latest";
2434
2458
  var GeoJSONWorkerLoader = {
2435
2459
  name: "GeoJSON",
2436
2460
  id: "geojson",
@@ -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
- id: 'geojson',
5
- version: 'latest',
6
- module: 'geojson',
7
- name: 'GeoJSON',
8
- extensions: ['geojson'],
9
- mimeTypes: ['application/geo+json'],
10
- text: true,
11
- options: {
12
- geojson: {
13
- featureArray: false,
14
- geometryColumn: null
15
- }
16
- },
17
- async encode(table, options) {
18
- const tableIterator = [table];
19
- const batches = encodeTableAsGeojsonInBatches(tableIterator, options);
20
- return await concatenateArrayBuffersAsync(batches);
21
- },
22
- encodeInBatches: (tableIterator, options) => encodeTableAsGeojsonInBatches(tableIterator, options)
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