@loaders.gl/json 4.0.0-beta.7 → 4.0.0-beta.8

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 (39) hide show
  1. package/LICENSE +7 -7
  2. package/dist/geojson-loader.d.ts.map +1 -1
  3. package/dist/geojson-loader.js.map +1 -1
  4. package/dist/geojson-worker.js +1 -1
  5. package/dist/geojson-writer.d.ts.map +1 -1
  6. package/dist/geojson-writer.js.map +1 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/json-loader.d.ts.map +1 -1
  10. package/dist/json-loader.js.map +1 -1
  11. package/dist/json-writer.d.ts.map +1 -1
  12. package/dist/json-writer.js.map +1 -1
  13. package/dist/lib/clarinet/clarinet.d.ts.map +1 -1
  14. package/dist/lib/clarinet/clarinet.js.map +1 -1
  15. package/dist/lib/encoder-utils/encode-table-row.d.ts.map +1 -1
  16. package/dist/lib/encoder-utils/encode-table-row.js.map +1 -1
  17. package/dist/lib/encoder-utils/encode-utils.d.ts.map +1 -1
  18. package/dist/lib/encoder-utils/encode-utils.js.map +1 -1
  19. package/dist/lib/encoders/geojson-encoder.d.ts.map +1 -1
  20. package/dist/lib/encoders/geojson-encoder.js.map +1 -1
  21. package/dist/lib/encoders/json-encoder.d.ts.map +1 -1
  22. package/dist/lib/encoders/json-encoder.js.map +1 -1
  23. package/dist/lib/parsers/parse-json.d.ts.map +1 -1
  24. package/dist/lib/parsers/parse-json.js.map +1 -1
  25. package/dist/ndjson-loader.d.ts.map +1 -1
  26. package/dist/ndjson-loader.js.map +1 -1
  27. package/package.json +5 -5
  28. package/src/geojson-loader.ts +1 -0
  29. package/src/geojson-writer.ts +1 -0
  30. package/src/index.ts +1 -0
  31. package/src/json-loader.ts +1 -0
  32. package/src/json-writer.ts +1 -0
  33. package/src/lib/clarinet/clarinet.ts +1 -0
  34. package/src/lib/encoder-utils/encode-table-row.ts +1 -0
  35. package/src/lib/encoder-utils/encode-utils.ts +1 -0
  36. package/src/lib/encoders/geojson-encoder.ts +1 -0
  37. package/src/lib/encoders/json-encoder.ts +1 -0
  38. package/src/lib/parsers/parse-json.ts +1 -0
  39. package/src/ndjson-loader.ts +1 -0
package/LICENSE CHANGED
@@ -1,9 +1,6 @@
1
- Copyright (c) 2015 Uber Technologies, Inc.
2
-
3
- This software includes parts of PhiloGL (https://github.com/philogb/philogl)
4
- under MIT license. PhiloGL parts Copyright © 2013 Sencha Labs.
1
+ loaders.gl is licensed under the MIT license
5
2
 
6
- This software includes adaptations of postprocessing code from THREE.js (https://github.com/mrdoob/three.js/) under MIT license. Additional attribution given in specific source files. THREE.js parts Copyright © 2010-2018 three.js authors.
3
+ Copyright (c) vis.gl contributors
7
4
 
8
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
9
6
  of this software and associated documentation files (the "Software"), to deal
@@ -23,8 +20,12 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
21
  THE SOFTWARE.
25
22
 
23
+ ---
24
+
25
+ Copyright (c) 2015 Uber Technologies, Inc.
26
26
 
27
- loaders.gl includes certain files from Cesium (https://github.com/AnalyticalGraphicsInc/cesium) under the Apache 2 License:
27
+ loaders.gl includes certain files from Cesium (https://github.com/AnalyticalGraphicsInc/cesium)
28
+ under the Apache 2 License (found in the submodule: modules/3d-tiles):)
28
29
 
29
30
  Copyright 2011-2018 CesiumJS Contributors
30
31
 
@@ -38,4 +39,3 @@ distributed under the License is distributed on an "AS IS" BASIS,
38
39
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
39
40
  See the License for the specific language governing permissions and limitations under the License.
40
41
 
41
- Cesium-derived code can be found in the submodule: modules/3d-tiles
@@ -1 +1 @@
1
- {"version":3,"file":"geojson-loader.d.ts","sourceRoot":"","sources":["../src/geojson-loader.ts"],"names":[],"mappings":"AAEA,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":"AAGA,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 +1 @@
1
- {"version":3,"file":"geojson-loader.js","names":["geojsonToBinary","parseJSONInBatches","VERSION","__VERSION__","GeoJSONWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","category","text","options","geojson","shape","json","jsonpaths","gis","format","GeoJSONLoader","parse","parseTextSync","parseInBatches","arrayBuffer","TextDecoder","decode","_geojson","JSON","table","type","features","asyncIterator","geojsonIterator","makeBinaryGeometryIterator","batch","data"],"sources":["../src/geojson-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {GeoJSON, GeoJSONTable, TableBatch} from '@loaders.gl/schema';\nimport type {JSONLoaderOptions} from './json-loader';\nimport {geojsonToBinary} from '@loaders.gl/gis';\n// import {parseJSONSync} from './lib/parsers/parse-json';\nimport {parseJSONInBatches} from './lib/parsers/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type GeoJSONLoaderOptions = JSONLoaderOptions & {\n geojson?: {\n shape?: 'object-row-table';\n };\n gis?: {\n format?: 'geojson' | 'binary';\n };\n};\n\n/**\n * GeoJSON loader\n */\nexport const GeoJSONWorkerLoader: Loader<GeoJSON, TableBatch, GeoJSONLoaderOptions> = {\n name: 'GeoJSON',\n id: 'geojson',\n module: 'geojson',\n version: VERSION,\n worker: true,\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n category: 'geometry',\n text: true,\n options: {\n geojson: {\n shape: 'object-row-table'\n },\n json: {\n shape: 'object-row-table',\n jsonpaths: ['$', '$.features']\n },\n gis: {\n format: 'geojson'\n }\n }\n};\n\nexport const GeoJSONLoader: LoaderWithParser<GeoJSON, TableBatch, GeoJSONLoaderOptions> = {\n ...GeoJSONWorkerLoader,\n // @ts-expect-error\n parse,\n // @ts-expect-error\n parseTextSync,\n parseInBatches\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: GeoJSONLoaderOptions) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text: string, options?: GeoJSONLoaderOptions) {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GeoJSONLoader.options, ...options};\n options.geojson = {...GeoJSONLoader.options.geojson, ...options.geojson};\n options.gis = options.gis || {};\n\n let geojson;\n try {\n geojson = JSON.parse(text);\n } catch {\n geojson = {};\n }\n\n const table: GeoJSONTable = {\n shape: 'geojson-table',\n // TODO - deduce schema from geojson\n // TODO check that parsed data is of type FeatureCollection\n type: 'FeatureCollection',\n features: geojson?.features || []\n };\n\n switch (options.gis.format) {\n case 'binary':\n return geojsonToBinary(table.features);\n default:\n return table;\n }\n}\n\nfunction parseInBatches(asyncIterator, options): AsyncIterable<TableBatch> {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GeoJSONLoader.options, ...options};\n options.json = {...GeoJSONLoader.options.geojson, ...options.geojson};\n\n const geojsonIterator = parseJSONInBatches(asyncIterator, options);\n\n switch (options.gis.format) {\n case 'binary':\n return makeBinaryGeometryIterator(geojsonIterator);\n default:\n return geojsonIterator;\n }\n}\n\nasync function* makeBinaryGeometryIterator(geojsonIterator) {\n for await (const batch of geojsonIterator) {\n batch.data = geojsonToBinary(batch.data);\n yield batch;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"geojson-loader.js","names":["geojsonToBinary","parseJSONInBatches","VERSION","__VERSION__","GeoJSONWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","category","text","options","geojson","shape","json","jsonpaths","gis","format","GeoJSONLoader","parse","parseTextSync","parseInBatches","arrayBuffer","TextDecoder","decode","_geojson","JSON","table","type","features","asyncIterator","geojsonIterator","makeBinaryGeometryIterator","batch","data"],"sources":["../src/geojson-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {GeoJSON, GeoJSONTable, TableBatch} from '@loaders.gl/schema';\nimport type {JSONLoaderOptions} from './json-loader';\nimport {geojsonToBinary} from '@loaders.gl/gis';\n// import {parseJSONSync} from './lib/parsers/parse-json';\nimport {parseJSONInBatches} from './lib/parsers/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type GeoJSONLoaderOptions = JSONLoaderOptions & {\n geojson?: {\n shape?: 'object-row-table';\n };\n gis?: {\n format?: 'geojson' | 'binary';\n };\n};\n\n/**\n * GeoJSON loader\n */\nexport const GeoJSONWorkerLoader: Loader<GeoJSON, TableBatch, GeoJSONLoaderOptions> = {\n name: 'GeoJSON',\n id: 'geojson',\n module: 'geojson',\n version: VERSION,\n worker: true,\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n category: 'geometry',\n text: true,\n options: {\n geojson: {\n shape: 'object-row-table'\n },\n json: {\n shape: 'object-row-table',\n jsonpaths: ['$', '$.features']\n },\n gis: {\n format: 'geojson'\n }\n }\n};\n\nexport const GeoJSONLoader: LoaderWithParser<GeoJSON, TableBatch, GeoJSONLoaderOptions> = {\n ...GeoJSONWorkerLoader,\n // @ts-expect-error\n parse,\n // @ts-expect-error\n parseTextSync,\n parseInBatches\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: GeoJSONLoaderOptions) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text: string, options?: GeoJSONLoaderOptions) {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GeoJSONLoader.options, ...options};\n options.geojson = {...GeoJSONLoader.options.geojson, ...options.geojson};\n options.gis = options.gis || {};\n\n let geojson;\n try {\n geojson = JSON.parse(text);\n } catch {\n geojson = {};\n }\n\n const table: GeoJSONTable = {\n shape: 'geojson-table',\n // TODO - deduce schema from geojson\n // TODO check that parsed data is of type FeatureCollection\n type: 'FeatureCollection',\n features: geojson?.features || []\n };\n\n switch (options.gis.format) {\n case 'binary':\n return geojsonToBinary(table.features);\n default:\n return table;\n }\n}\n\nfunction parseInBatches(asyncIterator, options): AsyncIterable<TableBatch> {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GeoJSONLoader.options, ...options};\n options.json = {...GeoJSONLoader.options.geojson, ...options.geojson};\n\n const geojsonIterator = parseJSONInBatches(asyncIterator, options);\n\n switch (options.gis.format) {\n case 'binary':\n return makeBinaryGeometryIterator(geojsonIterator);\n default:\n return geojsonIterator;\n }\n}\n\nasync function* makeBinaryGeometryIterator(geojsonIterator) {\n for await (const batch of geojsonIterator) {\n batch.data = geojsonToBinary(batch.data);\n yield batch;\n }\n}\n"],"mappings":"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"}
@@ -2417,7 +2417,7 @@ Char: ${this.c}`;
2417
2417
  }
2418
2418
 
2419
2419
  // src/geojson-loader.ts
2420
- var VERSION = true ? "4.0.0-beta.7" : "latest";
2420
+ var VERSION = true ? "4.0.0-beta.8" : "latest";
2421
2421
  var GeoJSONWorkerLoader = {
2422
2422
  name: "GeoJSON",
2423
2423
  id: "geojson",
@@ -1 +1 @@
1
- {"version":3,"file":"geojson-writer.d.ts","sourceRoot":"","sources":["../src/geojson-writer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAC,KAAK,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAG1D,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,oBAAoB,CAgBzE,CAAC"}
1
+ {"version":3,"file":"geojson-writer.d.ts","sourceRoot":"","sources":["../src/geojson-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAC,KAAK,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAG1D,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,oBAAoB,CAgBzE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"geojson-writer.js","names":["encodeTableAsGeojsonInBatches","GeoJSONWriter","id","version","module","name","extensions","mimeTypes","options","geojson","featureArray","geometryColumn","text","encodeInBatches","tableIterator"],"sources":["../src/geojson-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright Foursquare, Inc 20222\n\nimport type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport {encodeTableAsGeojsonInBatches} from './lib/encoders/geojson-encoder';\n\nexport type GeoJSONWriterOptions = WriterOptions & {\n geojson?: {\n featureArray?: boolean;\n geometryColumn?: number | null;\n };\n chunkSize?: number;\n};\n\nexport const GeoJSONWriter: Writer<Table, TableBatch, GeoJSONWriterOptions> = {\n id: 'geojson',\n version: 'latest',\n module: 'geojson',\n name: 'GeoJSON',\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n options: {\n geojson: {\n featureArray: false,\n geometryColumn: null\n }\n },\n text: true,\n encodeInBatches: (tableIterator: AsyncIterable<TableBatch>, options) =>\n encodeTableAsGeojsonInBatches(tableIterator, options)\n};\n"],"mappings":"SAKQA,6BAA6B;AAUrC,OAAO,MAAMC,aAA8D,GAAG;EAC5EC,EAAE,EAAE,SAAS;EACbC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE,SAAS;EACfC,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,sBAAsB,CAAC;EACnCC,OAAO,EAAE;IACPC,OAAO,EAAE;MACPC,YAAY,EAAE,KAAK;MACnBC,cAAc,EAAE;IAClB;EACF,CAAC;EACDC,IAAI,EAAE,IAAI;EACVC,eAAe,EAAEA,CAACC,aAAwC,EAAEN,OAAO,KACjER,6BAA6B,CAACc,aAAa,EAAEN,OAAO;AACxD,CAAC"}
1
+ {"version":3,"file":"geojson-writer.js","names":["encodeTableAsGeojsonInBatches","GeoJSONWriter","id","version","module","name","extensions","mimeTypes","options","geojson","featureArray","geometryColumn","text","encodeInBatches","tableIterator"],"sources":["../src/geojson-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n// Copyright Foursquare, Inc 20222\n\nimport type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport {encodeTableAsGeojsonInBatches} from './lib/encoders/geojson-encoder';\n\nexport type GeoJSONWriterOptions = WriterOptions & {\n geojson?: {\n featureArray?: boolean;\n geometryColumn?: number | null;\n };\n chunkSize?: number;\n};\n\nexport const GeoJSONWriter: Writer<Table, TableBatch, GeoJSONWriterOptions> = {\n id: 'geojson',\n version: 'latest',\n module: 'geojson',\n name: 'GeoJSON',\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n options: {\n geojson: {\n featureArray: false,\n geometryColumn: null\n }\n },\n text: true,\n encodeInBatches: (tableIterator: AsyncIterable<TableBatch>, options) =>\n encodeTableAsGeojsonInBatches(tableIterator, options)\n};\n"],"mappings":"SAMQA,6BAA6B;AAUrC,OAAO,MAAMC,aAA8D,GAAG;EAC5EC,EAAE,EAAE,SAAS;EACbC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE,SAAS;EACfC,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,sBAAsB,CAAC;EACnCC,OAAO,EAAE;IACPC,OAAO,EAAE;MACPC,YAAY,EAAE,KAAK;MACnBC,cAAc,EAAE;IAClB;EACF,CAAC;EACDC,IAAI,EAAE,IAAI;EACVC,eAAe,EAAEA,CAACC,aAAwC,EAAEN,OAAO,KACjER,6BAA6B,CAACc,aAAa,EAAEN,OAAO;AACxD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAE7C,YAAY,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAGzC,YAAY,EAAC,oBAAoB,IAAI,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AACpF,OAAO,EACL,aAAa,IAAI,cAAc,EAC/B,mBAAmB,IAAI,oBAAoB,EAC5C,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAC,oBAAoB,IAAI,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAC,aAAa,IAAI,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAC,iBAAiB,IAAI,kBAAkB,EAAC,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAE7C,YAAY,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAGzC,YAAY,EAAC,oBAAoB,IAAI,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AACpF,OAAO,EACL,aAAa,IAAI,cAAc,EAC/B,mBAAmB,IAAI,oBAAoB,EAC5C,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAC,oBAAoB,IAAI,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAC,aAAa,IAAI,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAC,iBAAiB,IAAI,kBAAkB,EAAC,MAAM,qCAAqC,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["JSONLoader","NDJSONLoader","JSONWriter","GeoJSONLoader","_GeoJSONLoader","GeoJSONWorkerLoader","_GeoJSONWorkerLoader","GeoJSONWriter","_GeoJSONWriter","default","_JSONPath","_ClarinetParser","rebuildJsonObject","_rebuildJsonObject"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport type {JSONLoaderOptions} from './json-loader';\nexport {JSONLoader} from './json-loader';\nexport {NDJSONLoader} from './ndjson-loader';\n\nexport type {JSONWriterOptions} from './json-writer';\nexport {JSONWriter} from './json-writer';\n\n// EXPERIMENTAL EXPORTS - WARNING: MAY BE REMOVED WIHTOUT NOTICE IN FUTURE RELEASES\nexport type {GeoJSONLoaderOptions as _GeoJSONLoaderOptions} from './geojson-loader';\nexport {\n GeoJSONLoader as _GeoJSONLoader,\n GeoJSONWorkerLoader as _GeoJSONWorkerLoader\n} from './geojson-loader';\n\nexport type {GeoJSONWriterOptions as _GeoJSONWriterOptions} from './geojson-writer';\nexport {GeoJSONWriter as _GeoJSONWriter} from './geojson-writer';\n\nexport {default as _JSONPath} from './lib/jsonpath/jsonpath';\nexport {default as _ClarinetParser} from './lib/clarinet/clarinet';\n\nexport {rebuildJsonObject as _rebuildJsonObject} from './lib/parsers/parse-json-in-batches';\n"],"mappings":"SAGQA,UAAU;AAAA,SACVC,YAAY;AAAA,SAGZC,UAAU;AAAA,SAKhBC,aAAa,IAAIC,cAAc,EAC/BC,mBAAmB,IAAIC,oBAAoB;AAAA,SAIrCC,aAAa,IAAIC,cAAc;AAAA,SAE/BC,OAAO,IAAIC,SAAS;AAAA,SACpBD,OAAO,IAAIE,eAAe;AAAA,SAE1BC,iBAAiB,IAAIC,kBAAkB"}
1
+ {"version":3,"file":"index.js","names":["JSONLoader","NDJSONLoader","JSONWriter","GeoJSONLoader","_GeoJSONLoader","GeoJSONWorkerLoader","_GeoJSONWorkerLoader","GeoJSONWriter","_GeoJSONWriter","default","_JSONPath","_ClarinetParser","rebuildJsonObject","_rebuildJsonObject"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nexport type {JSONLoaderOptions} from './json-loader';\nexport {JSONLoader} from './json-loader';\nexport {NDJSONLoader} from './ndjson-loader';\n\nexport type {JSONWriterOptions} from './json-writer';\nexport {JSONWriter} from './json-writer';\n\n// EXPERIMENTAL EXPORTS - WARNING: MAY BE REMOVED WIHTOUT NOTICE IN FUTURE RELEASES\nexport type {GeoJSONLoaderOptions as _GeoJSONLoaderOptions} from './geojson-loader';\nexport {\n GeoJSONLoader as _GeoJSONLoader,\n GeoJSONWorkerLoader as _GeoJSONWorkerLoader\n} from './geojson-loader';\n\nexport type {GeoJSONWriterOptions as _GeoJSONWriterOptions} from './geojson-writer';\nexport {GeoJSONWriter as _GeoJSONWriter} from './geojson-writer';\n\nexport {default as _JSONPath} from './lib/jsonpath/jsonpath';\nexport {default as _ClarinetParser} from './lib/clarinet/clarinet';\n\nexport {rebuildJsonObject as _rebuildJsonObject} from './lib/parsers/parse-json-in-batches';\n"],"mappings":"SAIQA,UAAU;AAAA,SACVC,YAAY;AAAA,SAGZC,UAAU;AAAA,SAKhBC,aAAa,IAAIC,cAAc,EAC/BC,mBAAmB,IAAIC,oBAAoB;AAAA,SAIrCC,aAAa,IAAIC,cAAc;AAAA,SAE/BC,OAAO,IAAIC,SAAS;AAAA,SACpBD,OAAO,IAAIE,eAAe;AAAA,SAE1BC,iBAAiB,IAAIC,kBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-loader.d.ts","sourceRoot":"","sources":["../src/json-loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,KAAK,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAQ9E,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAWF,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,iBAAiB,CAa7E,CAAC"}
1
+ {"version":3,"file":"json-loader.d.ts","sourceRoot":"","sources":["../src/json-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,KAAK,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAQ9E,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAWF,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,iBAAiB,CAa7E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-loader.js","names":["parseJSONSync","parseJSONInBatches","VERSION","__VERSION__","DEFAULT_JSON_LOADER_OPTIONS","json","shape","table","jsonpaths","JSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","parseTextSync","parseInBatches","options","arrayBuffer","TextDecoder","decode","jsonOptions","asyncIterator"],"sources":["../src/json-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {parseJSONSync} from './lib/parsers/parse-json';\nimport {parseJSONInBatches} from './lib/parsers/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\ntype ParseJSONOptions = {\n shape: 'object-row-table'; // TODO - 'auto'?\n table?: boolean;\n jsonpaths?: string[];\n};\n\n/**\n * @param table -\n * @param jsonpaths -\n */\nexport type JSONLoaderOptions = LoaderOptions & {\n json?: ParseJSONOptions;\n};\n\nconst DEFAULT_JSON_LOADER_OPTIONS: {json: Required<ParseJSONOptions>} = {\n json: {\n shape: 'object-row-table',\n table: false,\n jsonpaths: []\n // batchSize: 'auto'\n }\n};\n\nexport const JSONLoader: LoaderWithParser<Table, TableBatch, JSONLoaderOptions> = {\n name: 'JSON',\n id: 'json',\n module: 'json',\n version: VERSION,\n extensions: ['json', 'geojson'],\n mimeTypes: ['application/json'],\n category: 'table',\n text: true,\n parse,\n parseTextSync,\n parseInBatches,\n options: DEFAULT_JSON_LOADER_OPTIONS\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: JSONLoaderOptions) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text: string, options?: JSONLoaderOptions) {\n const jsonOptions = {...options, json: {...DEFAULT_JSON_LOADER_OPTIONS.json, ...options?.json}};\n return parseJSONSync(text, jsonOptions as JSONLoaderOptions);\n}\n\nfunction parseInBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: JSONLoaderOptions\n): AsyncIterable<TableBatch> {\n const jsonOptions = {...options, json: {...DEFAULT_JSON_LOADER_OPTIONS.json, ...options?.json}};\n return parseJSONInBatches(asyncIterator, jsonOptions as JSONLoaderOptions);\n}\n"],"mappings":"SAIQA,aAAa;AAAA,SACbC,kBAAkB;AAI1B,MAAMC,OAAO,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAGA,WAAW,GAAG,QAAQ;AAgB3E,MAAMC,2BAA+D,GAAG;EACtEC,IAAI,EAAE;IACJC,KAAK,EAAE,kBAAkB;IACzBC,KAAK,EAAE,KAAK;IACZC,SAAS,EAAE;EAEb;AACF,CAAC;AAED,OAAO,MAAMC,UAAkE,GAAG;EAChFC,IAAI,EAAE,MAAM;EACZC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEX,OAAO;EAChBY,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;EAC/BC,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,QAAQ,EAAE,OAAO;EACjBC,IAAI,EAAE,IAAI;EACVC,KAAK;EACLC,aAAa;EACbC,cAAc;EACdC,OAAO,EAAEjB;AACX,CAAC;AAED,eAAec,KAAKA,CAACI,WAAwB,EAAED,OAA2B,EAAE;EAC1E,OAAOF,aAAa,CAAC,IAAII,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,WAAW,CAAC,EAAED,OAAO,CAAC;AACtE;AAEA,SAASF,aAAaA,CAACF,IAAY,EAAEI,OAA2B,EAAE;EAChE,MAAMI,WAAW,GAAG;IAAC,GAAGJ,OAAO;IAAEhB,IAAI,EAAE;MAAC,GAAGD,2BAA2B,CAACC,IAAI;MAAE,IAAGgB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEhB,IAAI;IAAA;EAAC,CAAC;EAC/F,OAAOL,aAAa,CAACiB,IAAI,EAAEQ,WAAgC,CAAC;AAC9D;AAEA,SAASL,cAAcA,CACrBM,aAAiE,EACjEL,OAA2B,EACA;EAC3B,MAAMI,WAAW,GAAG;IAAC,GAAGJ,OAAO;IAAEhB,IAAI,EAAE;MAAC,GAAGD,2BAA2B,CAACC,IAAI;MAAE,IAAGgB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEhB,IAAI;IAAA;EAAC,CAAC;EAC/F,OAAOJ,kBAAkB,CAACyB,aAAa,EAAED,WAAgC,CAAC;AAC5E"}
1
+ {"version":3,"file":"json-loader.js","names":["parseJSONSync","parseJSONInBatches","VERSION","__VERSION__","DEFAULT_JSON_LOADER_OPTIONS","json","shape","table","jsonpaths","JSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","parseTextSync","parseInBatches","options","arrayBuffer","TextDecoder","decode","jsonOptions","asyncIterator"],"sources":["../src/json-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {parseJSONSync} from './lib/parsers/parse-json';\nimport {parseJSONInBatches} from './lib/parsers/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\ntype ParseJSONOptions = {\n shape: 'object-row-table'; // TODO - 'auto'?\n table?: boolean;\n jsonpaths?: string[];\n};\n\n/**\n * @param table -\n * @param jsonpaths -\n */\nexport type JSONLoaderOptions = LoaderOptions & {\n json?: ParseJSONOptions;\n};\n\nconst DEFAULT_JSON_LOADER_OPTIONS: {json: Required<ParseJSONOptions>} = {\n json: {\n shape: 'object-row-table',\n table: false,\n jsonpaths: []\n // batchSize: 'auto'\n }\n};\n\nexport const JSONLoader: LoaderWithParser<Table, TableBatch, JSONLoaderOptions> = {\n name: 'JSON',\n id: 'json',\n module: 'json',\n version: VERSION,\n extensions: ['json', 'geojson'],\n mimeTypes: ['application/json'],\n category: 'table',\n text: true,\n parse,\n parseTextSync,\n parseInBatches,\n options: DEFAULT_JSON_LOADER_OPTIONS\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: JSONLoaderOptions) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text: string, options?: JSONLoaderOptions) {\n const jsonOptions = {...options, json: {...DEFAULT_JSON_LOADER_OPTIONS.json, ...options?.json}};\n return parseJSONSync(text, jsonOptions as JSONLoaderOptions);\n}\n\nfunction parseInBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: JSONLoaderOptions\n): AsyncIterable<TableBatch> {\n const jsonOptions = {...options, json: {...DEFAULT_JSON_LOADER_OPTIONS.json, ...options?.json}};\n return parseJSONInBatches(asyncIterator, jsonOptions as JSONLoaderOptions);\n}\n"],"mappings":"SAKQA,aAAa;AAAA,SACbC,kBAAkB;AAI1B,MAAMC,OAAO,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAGA,WAAW,GAAG,QAAQ;AAgB3E,MAAMC,2BAA+D,GAAG;EACtEC,IAAI,EAAE;IACJC,KAAK,EAAE,kBAAkB;IACzBC,KAAK,EAAE,KAAK;IACZC,SAAS,EAAE;EAEb;AACF,CAAC;AAED,OAAO,MAAMC,UAAkE,GAAG;EAChFC,IAAI,EAAE,MAAM;EACZC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEX,OAAO;EAChBY,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;EAC/BC,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,QAAQ,EAAE,OAAO;EACjBC,IAAI,EAAE,IAAI;EACVC,KAAK;EACLC,aAAa;EACbC,cAAc;EACdC,OAAO,EAAEjB;AACX,CAAC;AAED,eAAec,KAAKA,CAACI,WAAwB,EAAED,OAA2B,EAAE;EAC1E,OAAOF,aAAa,CAAC,IAAII,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,WAAW,CAAC,EAAED,OAAO,CAAC;AACtE;AAEA,SAASF,aAAaA,CAACF,IAAY,EAAEI,OAA2B,EAAE;EAChE,MAAMI,WAAW,GAAG;IAAC,GAAGJ,OAAO;IAAEhB,IAAI,EAAE;MAAC,GAAGD,2BAA2B,CAACC,IAAI;MAAE,IAAGgB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEhB,IAAI;IAAA;EAAC,CAAC;EAC/F,OAAOL,aAAa,CAACiB,IAAI,EAAEQ,WAAgC,CAAC;AAC9D;AAEA,SAASL,cAAcA,CACrBM,aAAiE,EACjEL,OAA2B,EACA;EAC3B,MAAMI,WAAW,GAAG;IAAC,GAAGJ,OAAO;IAAEhB,IAAI,EAAE;MAAC,GAAGD,2BAA2B,CAACC,IAAI;MAAE,IAAGgB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEhB,IAAI;IAAA;EAAC,CAAC;EAC/F,OAAOJ,kBAAkB,CAACyB,aAAa,EAAED,WAAgC,CAAC;AAC5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-writer.d.ts","sourceRoot":"","sources":["../src/json-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAC,KAAK,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAG1D,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,kBAAkB,GAAG,iBAAiB,CAAC;QAC/C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;KACzC,CAAC;CACH,CAAC;AAEF,KAAK,QAAQ,GAAG,OAAO,EAAE,CAAC;AAC1B,KAAK,SAAS,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC;AAC1C,KAAK,SAAS,GAAG,QAAQ,EAAE,GAAG,SAAS,EAAE,CAAC;AAE1C,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,iBAAiB,CAYnE,CAAC"}
1
+ {"version":3,"file":"json-writer.d.ts","sourceRoot":"","sources":["../src/json-writer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAC,KAAK,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAG1D,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,kBAAkB,GAAG,iBAAiB,CAAC;QAC/C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;KACzC,CAAC;CACH,CAAC;AAEF,KAAK,QAAQ,GAAG,OAAO,EAAE,CAAC;AAC1B,KAAK,SAAS,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC;AAC1C,KAAK,SAAS,GAAG,QAAQ,EAAE,GAAG,SAAS,EAAE,CAAC;AAE1C,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,iBAAiB,CAYnE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-writer.js","names":["encodeTableAsJSON","JSONWriter","id","version","module","name","extensions","mimeTypes","options","text","encode","table","TextEncoder","buffer","encodeTextSync"],"sources":["../src/json-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\n/* global TextEncoder */\nimport type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport {encodeTableAsJSON} from './lib/encoders/json-encoder';\n\nexport type JSONWriterOptions = WriterOptions & {\n json?: {\n shape?: 'object-row-table' | 'array-row-table';\n wrapper?: (table: TableJSON) => unknown;\n };\n};\n\ntype RowArray = unknown[];\ntype RowObject = {[key: string]: unknown};\ntype TableJSON = RowArray[] | RowObject[];\n\nexport const JSONWriter: Writer<Table, TableBatch, JSONWriterOptions> = {\n id: 'json',\n version: 'latest',\n module: 'json',\n name: 'JSON',\n extensions: ['json'],\n mimeTypes: ['application/json'],\n options: {},\n text: true,\n encode: async (table: Table, options: JSONWriterOptions) =>\n new TextEncoder().encode(encodeTableAsJSON(table, options)).buffer,\n encodeTextSync: (table: Table, options: JSONWriterOptions) => encodeTableAsJSON(table, options)\n};\n"],"mappings":"SAMQA,iBAAiB;AAazB,OAAO,MAAMC,UAAwD,GAAG;EACtEC,EAAE,EAAE,MAAM;EACVC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,MAAM;EACdC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,OAAO,EAAE,CAAC,CAAC;EACXC,IAAI,EAAE,IAAI;EACVC,MAAM,EAAE,MAAAA,CAAOC,KAAY,EAAEH,OAA0B,KACrD,IAAII,WAAW,CAAC,CAAC,CAACF,MAAM,CAACV,iBAAiB,CAACW,KAAK,EAAEH,OAAO,CAAC,CAAC,CAACK,MAAM;EACpEC,cAAc,EAAEA,CAACH,KAAY,EAAEH,OAA0B,KAAKR,iBAAiB,CAACW,KAAK,EAAEH,OAAO;AAChG,CAAC"}
1
+ {"version":3,"file":"json-writer.js","names":["encodeTableAsJSON","JSONWriter","id","version","module","name","extensions","mimeTypes","options","text","encode","table","TextEncoder","buffer","encodeTextSync"],"sources":["../src/json-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n// Copyright 2022 Foursquare Labs, Inc.\n\n/* global TextEncoder */\nimport type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport {encodeTableAsJSON} from './lib/encoders/json-encoder';\n\nexport type JSONWriterOptions = WriterOptions & {\n json?: {\n shape?: 'object-row-table' | 'array-row-table';\n wrapper?: (table: TableJSON) => unknown;\n };\n};\n\ntype RowArray = unknown[];\ntype RowObject = {[key: string]: unknown};\ntype TableJSON = RowArray[] | RowObject[];\n\nexport const JSONWriter: Writer<Table, TableBatch, JSONWriterOptions> = {\n id: 'json',\n version: 'latest',\n module: 'json',\n name: 'JSON',\n extensions: ['json'],\n mimeTypes: ['application/json'],\n options: {},\n text: true,\n encode: async (table: Table, options: JSONWriterOptions) =>\n new TextEncoder().encode(encodeTableAsJSON(table, options)).buffer,\n encodeTextSync: (table: Table, options: JSONWriterOptions) => encodeTableAsJSON(table, options)\n};\n"],"mappings":"SAOQA,iBAAiB;AAazB,OAAO,MAAMC,UAAwD,GAAG;EACtEC,EAAE,EAAE,MAAM;EACVC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,MAAM;EACdC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,OAAO,EAAE,CAAC,CAAC;EACXC,IAAI,EAAE,IAAI;EACVC,MAAM,EAAE,MAAAA,CAAOC,KAAY,EAAEH,OAA0B,KACrD,IAAII,WAAW,CAAC,CAAC,CAACF,MAAM,CAACV,iBAAiB,CAACW,KAAK,EAAEH,OAAO,CAAC,CAAC,CAACK,MAAM;EACpEC,cAAc,EAAEA,CAACH,KAAY,EAAEH,OAA0B,KAAKR,iBAAiB,CAACW,KAAK,EAAEH,OAAO;AAChG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"clarinet.d.ts","sourceRoot":"","sources":["../../../src/lib/clarinet/clarinet.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,UAAU,GACV,OAAO,GACP,cAAc,GACd,eAAe,GACf,aAAa,GACb,cAAc,GACd,SAAS,GACT,OAAO,GACP,SAAS,CAAC;AAMd,aAAK,KAAK;IACR,KAAK,IAAI;IACT,KAAK,IAAA;IACL,WAAW,IAAA;IACX,YAAY,IAAA;IACZ,UAAU,IAAA;IACV,WAAW,IAAA;IACX,WAAW,IAAA;IACX,MAAM,IAAA;IACN,SAAS,IAAA;IACT,GAAG,IAAA;IACH,QAAQ,KAAA;IACR,SAAS,KAAA;IACT,IAAI,KAAA;IACJ,KAAK,KAAA;IACL,KAAK,KAAA;IACL,KAAK,KAAA;IACL,MAAM,KAAA;IACN,MAAM,KAAA;IACN,MAAM,KAAA;IACN,IAAI,KAAA;IACJ,KAAK,KAAA;IACL,KAAK,KAAA;IACL,oBAAoB,KAAA;IACpB,YAAY,KAAA;CACb;AA0CD,KAAK,WAAW,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;AAE/E,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EAAE,WAAW,CAAC;CAC7B,CAAC;AAcF,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAmB;IAErE,mBAAmB,SAAqB;IACxC,CAAC,SAAM;IACP,CAAC,SAAM;IACP,CAAC,SAAM;IACP,MAAM,UAAS;IACf,UAAU,UAAS;IACnB,OAAO,UAAS;IAEhB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAQ;IAC3B,KAAK,QAAe;IACpB,KAAK,EAAE,KAAK,EAAE,CAAM;IAEpB,QAAQ,EAAE,MAAM,CAAK;IACrB,MAAM,EAAE,MAAM,CAAK;IACnB,IAAI,EAAE,MAAM,CAAK;IACjB,OAAO,EAAE,OAAO,CAAS;IACzB,QAAQ,EAAE,MAAM,CAAK;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC/B,KAAK,EAAE,MAAM,CAAK;IAElB,QAAQ,MAAC;IACT,UAAU,MAAC;gBAEC,OAAO,GAAE,qBAA0B;IAO/C,GAAG;IAUH,MAAM;IAKN,KAAK;IAML,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAKrC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAOzC,KAAK,CAAC,KAAK,KAAA;IAwTX,WAAW,CAAC,KAAK,GAAE,MAAkB,GAAG,IAAI;IAO5C,YAAY,IAAI,IAAI;IAKpB,MAAM,CAAC,OAAO,GAAE,MAAW,GAAG,IAAI;CAOnC"}
1
+ {"version":3,"file":"clarinet.d.ts","sourceRoot":"","sources":["../../../src/lib/clarinet/clarinet.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,UAAU,GACV,OAAO,GACP,cAAc,GACd,eAAe,GACf,aAAa,GACb,cAAc,GACd,SAAS,GACT,OAAO,GACP,SAAS,CAAC;AAMd,aAAK,KAAK;IACR,KAAK,IAAI;IACT,KAAK,IAAA;IACL,WAAW,IAAA;IACX,YAAY,IAAA;IACZ,UAAU,IAAA;IACV,WAAW,IAAA;IACX,WAAW,IAAA;IACX,MAAM,IAAA;IACN,SAAS,IAAA;IACT,GAAG,IAAA;IACH,QAAQ,KAAA;IACR,SAAS,KAAA;IACT,IAAI,KAAA;IACJ,KAAK,KAAA;IACL,KAAK,KAAA;IACL,KAAK,KAAA;IACL,MAAM,KAAA;IACN,MAAM,KAAA;IACN,MAAM,KAAA;IACN,IAAI,KAAA;IACJ,KAAK,KAAA;IACL,KAAK,KAAA;IACL,oBAAoB,KAAA;IACpB,YAAY,KAAA;CACb;AA0CD,KAAK,WAAW,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;AAE/E,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EAAE,WAAW,CAAC;CAC7B,CAAC;AAcF,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAmB;IAErE,mBAAmB,SAAqB;IACxC,CAAC,SAAM;IACP,CAAC,SAAM;IACP,CAAC,SAAM;IACP,MAAM,UAAS;IACf,UAAU,UAAS;IACnB,OAAO,UAAS;IAEhB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAQ;IAC3B,KAAK,QAAe;IACpB,KAAK,EAAE,KAAK,EAAE,CAAM;IAEpB,QAAQ,EAAE,MAAM,CAAK;IACrB,MAAM,EAAE,MAAM,CAAK;IACnB,IAAI,EAAE,MAAM,CAAK;IACjB,OAAO,EAAE,OAAO,CAAS;IACzB,QAAQ,EAAE,MAAM,CAAK;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC/B,KAAK,EAAE,MAAM,CAAK;IAElB,QAAQ,MAAC;IACT,UAAU,MAAC;gBAEC,OAAO,GAAE,qBAA0B;IAO/C,GAAG;IAUH,MAAM;IAKN,KAAK;IAML,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAKrC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAOzC,KAAK,CAAC,KAAK,KAAA;IAwTX,WAAW,CAAC,KAAK,GAAE,MAAkB,GAAG,IAAI;IAO5C,YAAY,IAAI,IAAI;IAKpB,MAAM,CAAC,OAAO,GAAE,MAAW,GAAG,IAAI;CAOnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"clarinet.js","names":["MAX_BUFFER_LENGTH","Number","MAX_SAFE_INTEGER","STATE","Char","tab","lineFeed","carriageReturn","space","doubleQuote","plus","comma","minus","period","_0","_9","colon","E","openBracket","backslash","closeBracket","a","b","e","f","l","n","r","s","t","u","openBrace","closeBrace","stringTokenPattern","DEFAULT_OPTIONS","onready","onopenobject","onkey","oncloseobject","onopenarray","onclosearray","onvalue","onerror","onend","onchunkparsed","ClarinetParser","constructor","options","arguments","length","undefined","bufferCheckPosition","q","c","p","closed","closedRoot","sawRoot","error","state","BEGIN","stack","position","column","line","slashed","unicodeI","unicodeS","depth","textNode","numberNode","emit","end","VALUE","_error","_closeValue","resume","close","write","event","data","_this$options$event","_this$options","call","emitNode","chunk","i","charCodeAt","OPEN_OBJECT","OPEN_ARRAY","isWhitespace","OPEN_KEY","push","CLOSE_KEY","pop","CLOSE_OBJECT","STRING","CLOSE_ARRAY","TRUE","FALSE","NULL","String","fromCharCode","NUMBER_DIGIT","starti","STRING_BIGLOOP","parseInt","substring","lastIndex","reResult","exec","index","TRUE2","TRUE3","FALSE2","FALSE3","FALSE4","NULL2","NULL3","NUMBER_DECIMAL_POINT","indexOf","_closeNumber","checkBufferLength","parseFloat","message","Error","parser","maxAllowed","Math","max","maxActual","buffer","len"],"sources":["../../../src/lib/clarinet/clarinet.ts"],"sourcesContent":["// loaders.gl, MIT license\n// This is a fork of the clarinet library, originally BSD license (see LICENSE file)\n// loaders.gl changes:\n// - typescript port\n\nexport type ClarinetEvent =\n | 'onvalue'\n | 'onstring'\n | 'onkey'\n | 'onopenobject'\n | 'oncloseobject'\n | 'onopenarray'\n | 'onclosearray'\n | 'onerror'\n | 'onend'\n | 'onready';\n\n// Removes the MAX_BUFFER_LENGTH, originally set to 64 * 1024\nconst MAX_BUFFER_LENGTH = Number.MAX_SAFE_INTEGER;\n// const DEBUG = false;\n\nenum STATE {\n BEGIN = 0,\n VALUE, // general stuff\n OPEN_OBJECT, // {\n CLOSE_OBJECT, // }\n OPEN_ARRAY, // [\n CLOSE_ARRAY, // ]\n TEXT_ESCAPE, // \\ stuff\n STRING, // \"\"\n BACKSLASH,\n END, // No more stack\n OPEN_KEY, // , \"a\"\n CLOSE_KEY, // :\n TRUE, // r\n TRUE2, // u\n TRUE3, // e\n FALSE, // a\n FALSE2, // l\n FALSE3, // s\n FALSE4, // e\n NULL, // u\n NULL2, // l\n NULL3, // l\n NUMBER_DECIMAL_POINT, // .\n NUMBER_DIGIT // [0-9]\n}\n\nconst Char = {\n tab: 0x09, // \\t\n lineFeed: 0x0a, // \\n\n carriageReturn: 0x0d, // \\r\n space: 0x20, // \" \"\n\n doubleQuote: 0x22, // \"\n plus: 0x2b, // +\n comma: 0x2c, // ,\n minus: 0x2d, // -\n period: 0x2e, // .\n\n _0: 0x30, // 0\n _9: 0x39, // 9\n\n colon: 0x3a, // :\n\n E: 0x45, // E\n\n openBracket: 0x5b, // [\n backslash: 0x5c, // \\\n closeBracket: 0x5d, // ]\n\n a: 0x61, // a\n b: 0x62, // b\n e: 0x65, // e\n f: 0x66, // f\n l: 0x6c, // l\n n: 0x6e, // n\n r: 0x72, // r\n s: 0x73, // s\n t: 0x74, // t\n u: 0x75, // u\n\n openBrace: 0x7b, // {\n closeBrace: 0x7d // }\n};\n\nconst stringTokenPattern = /[\\\\\"\\n]/g;\n\ntype ParserEvent = (parser: ClarinetParser, event: string, data?: any) => void;\n\nexport type ClarinetParserOptions = {\n onready?: ParserEvent;\n onopenobject?: ParserEvent;\n onkey?: ParserEvent;\n oncloseobject?: ParserEvent;\n onopenarray?: ParserEvent;\n onclosearray?: ParserEvent;\n onvalue?: ParserEvent;\n onerror?: ParserEvent;\n onend?: ParserEvent;\n onchunkparsed?: ParserEvent;\n};\n\nconst DEFAULT_OPTIONS: Required<ClarinetParserOptions> = {\n onready: () => {},\n onopenobject: () => {},\n onkey: () => {},\n oncloseobject: () => {},\n onopenarray: () => {},\n onclosearray: () => {},\n onvalue: () => {},\n onerror: () => {},\n onend: () => {},\n onchunkparsed: () => {}\n};\nexport default class ClarinetParser {\n protected options: Required<ClarinetParserOptions> = DEFAULT_OPTIONS;\n\n bufferCheckPosition = MAX_BUFFER_LENGTH;\n q = '';\n c = '';\n p = '';\n closed = false;\n closedRoot = false;\n sawRoot = false;\n // tag = null;\n error: Error | null = null;\n state = STATE.BEGIN;\n stack: STATE[] = [];\n // mostly just for error reporting\n position: number = 0;\n column: number = 0;\n line: number = 1;\n slashed: boolean = false;\n unicodeI: number = 0;\n unicodeS: string | null = null;\n depth: number = 0;\n\n textNode;\n numberNode;\n\n constructor(options: ClarinetParserOptions = {}) {\n this.options = {...DEFAULT_OPTIONS, ...options};\n this.textNode = undefined;\n this.numberNode = '';\n this.emit('onready');\n }\n\n end() {\n if (this.state !== STATE.VALUE || this.depth !== 0) this._error('Unexpected end');\n\n this._closeValue();\n this.c = '';\n this.closed = true;\n this.emit('onend');\n return this;\n }\n\n resume() {\n this.error = null;\n return this;\n }\n\n close() {\n return this.write(null);\n }\n\n // protected\n\n emit(event: string, data?: any): void {\n // if (DEBUG) console.log('-- emit', event, data);\n this.options[event]?.(data, this);\n }\n\n emitNode(event: string, data?: any): void {\n this._closeValue();\n this.emit(event, data);\n }\n\n /* eslint-disable no-continue */\n // eslint-disable-next-line complexity, max-statements\n write(chunk) {\n if (this.error) {\n throw this.error;\n }\n if (this.closed) {\n return this._error('Cannot write after close. Assign an onready handler.');\n }\n if (chunk === null) {\n return this.end();\n }\n let i = 0;\n let c = chunk.charCodeAt(0);\n let p = this.p;\n // if (DEBUG) console.log(`write -> [${ chunk }]`);\n while (c) {\n p = c;\n this.c = c = chunk.charCodeAt(i++);\n // if chunk doesnt have next, like streaming char by char\n // this way we need to check if previous is really previous\n // if not we need to reset to what the this says is the previous\n // from buffer\n if (p !== c) {\n this.p = p;\n } else {\n p = this.p;\n }\n\n if (!c) break;\n\n // if (DEBUG) console.log(i, c, STATE[this.state]);\n this.position++;\n if (c === Char.lineFeed) {\n this.line++;\n this.column = 0;\n } else this.column++;\n\n switch (this.state) {\n case STATE.BEGIN:\n if (c === Char.openBrace) this.state = STATE.OPEN_OBJECT;\n else if (c === Char.openBracket) this.state = STATE.OPEN_ARRAY;\n else if (!isWhitespace(c)) {\n this._error('Non-whitespace before {[.');\n }\n continue;\n\n case STATE.OPEN_KEY:\n case STATE.OPEN_OBJECT:\n if (isWhitespace(c)) continue;\n if (this.state === STATE.OPEN_KEY) this.stack.push(STATE.CLOSE_KEY);\n else if (c === Char.closeBrace) {\n this.emit('onopenobject');\n this.depth++;\n this.emit('oncloseobject');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n continue;\n } else this.stack.push(STATE.CLOSE_OBJECT);\n if (c === Char.doubleQuote) this.state = STATE.STRING;\n else this._error('Malformed object key should start with \"');\n continue;\n\n case STATE.CLOSE_KEY:\n case STATE.CLOSE_OBJECT:\n if (isWhitespace(c)) continue;\n // let event = this.state === STATE.CLOSE_KEY ? 'key' : 'object';\n if (c === Char.colon) {\n if (this.state === STATE.CLOSE_OBJECT) {\n this.stack.push(STATE.CLOSE_OBJECT);\n this._closeValue('onopenobject');\n this.depth++;\n } else this._closeValue('onkey');\n this.state = STATE.VALUE;\n } else if (c === Char.closeBrace) {\n this.emitNode('oncloseobject');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n } else if (c === Char.comma) {\n if (this.state === STATE.CLOSE_OBJECT) this.stack.push(STATE.CLOSE_OBJECT);\n this._closeValue();\n this.state = STATE.OPEN_KEY;\n } else this._error('Bad object');\n continue;\n\n case STATE.OPEN_ARRAY: // after an array there always a value\n case STATE.VALUE:\n if (isWhitespace(c)) continue;\n if (this.state === STATE.OPEN_ARRAY) {\n this.emit('onopenarray');\n this.depth++;\n this.state = STATE.VALUE;\n if (c === Char.closeBracket) {\n this.emit('onclosearray');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n continue;\n } else {\n this.stack.push(STATE.CLOSE_ARRAY);\n }\n }\n if (c === Char.doubleQuote) this.state = STATE.STRING;\n else if (c === Char.openBrace) this.state = STATE.OPEN_OBJECT;\n else if (c === Char.openBracket) this.state = STATE.OPEN_ARRAY;\n else if (c === Char.t) this.state = STATE.TRUE;\n else if (c === Char.f) this.state = STATE.FALSE;\n else if (c === Char.n) this.state = STATE.NULL;\n else if (c === Char.minus) {\n // keep and continue\n this.numberNode += '-';\n } else if (Char._0 <= c && c <= Char._9) {\n this.numberNode += String.fromCharCode(c);\n this.state = STATE.NUMBER_DIGIT;\n } else this._error('Bad value');\n continue;\n\n case STATE.CLOSE_ARRAY:\n if (c === Char.comma) {\n this.stack.push(STATE.CLOSE_ARRAY);\n this._closeValue('onvalue');\n this.state = STATE.VALUE;\n } else if (c === Char.closeBracket) {\n this.emitNode('onclosearray');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n } else if (isWhitespace(c)) continue;\n else this._error('Bad array');\n continue;\n\n case STATE.STRING:\n if (this.textNode === undefined) {\n this.textNode = '';\n }\n\n // thanks thejh, this is an about 50% performance improvement.\n let starti = i - 1;\n let slashed = this.slashed;\n let unicodeI = this.unicodeI;\n // eslint-disable-next-line no-constant-condition, no-labels\n STRING_BIGLOOP: while (true) {\n // if (DEBUG) console.log(i, c, STATE[this.state], slashed);\n // zero means \"no unicode active\". 1-4 mean \"parse some more\". end after 4.\n while (unicodeI > 0) {\n this.unicodeS += String.fromCharCode(c);\n c = chunk.charCodeAt(i++);\n this.position++;\n if (unicodeI === 4) {\n // TODO this might be slow? well, probably not used too often anyway\n this.textNode += String.fromCharCode(parseInt(this.unicodeS as string, 16));\n unicodeI = 0;\n starti = i - 1;\n } else {\n unicodeI++;\n }\n // we can just break here: no stuff we skipped that still has to be sliced out or so\n // eslint-disable-next-line no-labels\n if (!c) break STRING_BIGLOOP;\n }\n if (c === Char.doubleQuote && !slashed) {\n this.state = this.stack.pop() || STATE.VALUE;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n if (c === Char.backslash && !slashed) {\n slashed = true;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n c = chunk.charCodeAt(i++);\n this.position++;\n if (!c) break;\n }\n if (slashed) {\n slashed = false;\n if (c === Char.n) {\n this.textNode += '\\n';\n } else if (c === Char.r) {\n this.textNode += '\\r';\n } else if (c === Char.t) {\n this.textNode += '\\t';\n } else if (c === Char.f) {\n this.textNode += '\\f';\n } else if (c === Char.b) {\n this.textNode += '\\b';\n } else if (c === Char.u) {\n // \\uxxxx. meh!\n unicodeI = 1;\n this.unicodeS = '';\n } else {\n this.textNode += String.fromCharCode(c);\n }\n c = chunk.charCodeAt(i++);\n this.position++;\n starti = i - 1;\n if (!c) break;\n else continue;\n }\n\n stringTokenPattern.lastIndex = i;\n const reResult = stringTokenPattern.exec(chunk);\n if (reResult === null) {\n i = chunk.length + 1;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n i = reResult.index + 1;\n c = chunk.charCodeAt(reResult.index);\n if (!c) {\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n }\n this.slashed = slashed;\n this.unicodeI = unicodeI;\n continue;\n\n case STATE.TRUE:\n if (c === Char.r) this.state = STATE.TRUE2;\n else this._error(`Invalid true started with t${c}`);\n continue;\n\n case STATE.TRUE2:\n if (c === Char.u) this.state = STATE.TRUE3;\n else this._error(`Invalid true started with tr${c}`);\n continue;\n\n case STATE.TRUE3:\n if (c === Char.e) {\n this.emit('onvalue', true);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid true started with tru${c}`);\n continue;\n\n case STATE.FALSE:\n if (c === Char.a) this.state = STATE.FALSE2;\n else this._error(`Invalid false started with f${c}`);\n continue;\n\n case STATE.FALSE2:\n if (c === Char.l) this.state = STATE.FALSE3;\n else this._error(`Invalid false started with fa${c}`);\n continue;\n\n case STATE.FALSE3:\n if (c === Char.s) this.state = STATE.FALSE4;\n else this._error(`Invalid false started with fal${c}`);\n continue;\n\n case STATE.FALSE4:\n if (c === Char.e) {\n this.emit('onvalue', false);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid false started with fals${c}`);\n continue;\n\n case STATE.NULL:\n if (c === Char.u) this.state = STATE.NULL2;\n else this._error(`Invalid null started with n${c}`);\n continue;\n\n case STATE.NULL2:\n if (c === Char.l) this.state = STATE.NULL3;\n else this._error(`Invalid null started with nu${c}`);\n continue;\n\n case STATE.NULL3:\n if (c === Char.l) {\n this.emit('onvalue', null);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid null started with nul${c}`);\n continue;\n\n case STATE.NUMBER_DECIMAL_POINT:\n if (c === Char.period) {\n this.numberNode += '.';\n this.state = STATE.NUMBER_DIGIT;\n } else this._error('Leading zero not followed by .');\n continue;\n\n case STATE.NUMBER_DIGIT:\n if (Char._0 <= c && c <= Char._9) this.numberNode += String.fromCharCode(c);\n else if (c === Char.period) {\n if (this.numberNode.indexOf('.') !== -1) this._error('Invalid number has two dots');\n this.numberNode += '.';\n } else if (c === Char.e || c === Char.E) {\n if (this.numberNode.indexOf('e') !== -1 || this.numberNode.indexOf('E') !== -1)\n this._error('Invalid number has two exponential');\n this.numberNode += 'e';\n } else if (c === Char.plus || c === Char.minus) {\n // @ts-expect-error\n if (!(p === Char.e || p === Char.E)) this._error('Invalid symbol in number');\n this.numberNode += String.fromCharCode(c);\n } else {\n this._closeNumber();\n i--; // go back one\n this.state = this.stack.pop() || STATE.VALUE;\n }\n continue;\n\n default:\n this._error(`Unknown state: ${this.state}`);\n }\n }\n if (this.position >= this.bufferCheckPosition) {\n checkBufferLength(this);\n }\n\n this.emit('onchunkparsed');\n\n return this;\n }\n\n _closeValue(event: string = 'onvalue'): void {\n if (this.textNode !== undefined) {\n this.emit(event, this.textNode);\n }\n this.textNode = undefined;\n }\n\n _closeNumber(): void {\n if (this.numberNode) this.emit('onvalue', parseFloat(this.numberNode));\n this.numberNode = '';\n }\n\n _error(message: string = ''): void {\n this._closeValue();\n message += `\\nLine: ${this.line}\\nColumn: ${this.column}\\nChar: ${this.c}`;\n const error = new Error(message);\n this.error = error;\n this.emit('onerror', error);\n }\n}\n\nfunction isWhitespace(c): boolean {\n return c === Char.carriageReturn || c === Char.lineFeed || c === Char.space || c === Char.tab;\n}\n\nfunction checkBufferLength(parser) {\n const maxAllowed = Math.max(MAX_BUFFER_LENGTH, 10);\n let maxActual = 0;\n\n for (const buffer of ['textNode', 'numberNode']) {\n const len = parser[buffer] === undefined ? 0 : parser[buffer].length;\n if (len > maxAllowed) {\n switch (buffer) {\n case 'text':\n // TODO - should this be closeValue?\n // closeText(parser);\n break;\n\n default:\n parser._error(`Max buffer length exceeded: ${buffer}`);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n parser.bufferCheckPosition = MAX_BUFFER_LENGTH - maxActual + parser.position;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"clarinet.js","names":["MAX_BUFFER_LENGTH","Number","MAX_SAFE_INTEGER","STATE","Char","tab","lineFeed","carriageReturn","space","doubleQuote","plus","comma","minus","period","_0","_9","colon","E","openBracket","backslash","closeBracket","a","b","e","f","l","n","r","s","t","u","openBrace","closeBrace","stringTokenPattern","DEFAULT_OPTIONS","onready","onopenobject","onkey","oncloseobject","onopenarray","onclosearray","onvalue","onerror","onend","onchunkparsed","ClarinetParser","constructor","options","arguments","length","undefined","bufferCheckPosition","q","c","p","closed","closedRoot","sawRoot","error","state","BEGIN","stack","position","column","line","slashed","unicodeI","unicodeS","depth","textNode","numberNode","emit","end","VALUE","_error","_closeValue","resume","close","write","event","data","_this$options$event","_this$options","call","emitNode","chunk","i","charCodeAt","OPEN_OBJECT","OPEN_ARRAY","isWhitespace","OPEN_KEY","push","CLOSE_KEY","pop","CLOSE_OBJECT","STRING","CLOSE_ARRAY","TRUE","FALSE","NULL","String","fromCharCode","NUMBER_DIGIT","starti","STRING_BIGLOOP","parseInt","substring","lastIndex","reResult","exec","index","TRUE2","TRUE3","FALSE2","FALSE3","FALSE4","NULL2","NULL3","NUMBER_DECIMAL_POINT","indexOf","_closeNumber","checkBufferLength","parseFloat","message","Error","parser","maxAllowed","Math","max","maxActual","buffer","len"],"sources":["../../../src/lib/clarinet/clarinet.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n// This is a fork of the clarinet library, originally BSD license (see LICENSE file)\n// loaders.gl changes:\n// - typescript port\n\nexport type ClarinetEvent =\n | 'onvalue'\n | 'onstring'\n | 'onkey'\n | 'onopenobject'\n | 'oncloseobject'\n | 'onopenarray'\n | 'onclosearray'\n | 'onerror'\n | 'onend'\n | 'onready';\n\n// Removes the MAX_BUFFER_LENGTH, originally set to 64 * 1024\nconst MAX_BUFFER_LENGTH = Number.MAX_SAFE_INTEGER;\n// const DEBUG = false;\n\nenum STATE {\n BEGIN = 0,\n VALUE, // general stuff\n OPEN_OBJECT, // {\n CLOSE_OBJECT, // }\n OPEN_ARRAY, // [\n CLOSE_ARRAY, // ]\n TEXT_ESCAPE, // \\ stuff\n STRING, // \"\"\n BACKSLASH,\n END, // No more stack\n OPEN_KEY, // , \"a\"\n CLOSE_KEY, // :\n TRUE, // r\n TRUE2, // u\n TRUE3, // e\n FALSE, // a\n FALSE2, // l\n FALSE3, // s\n FALSE4, // e\n NULL, // u\n NULL2, // l\n NULL3, // l\n NUMBER_DECIMAL_POINT, // .\n NUMBER_DIGIT // [0-9]\n}\n\nconst Char = {\n tab: 0x09, // \\t\n lineFeed: 0x0a, // \\n\n carriageReturn: 0x0d, // \\r\n space: 0x20, // \" \"\n\n doubleQuote: 0x22, // \"\n plus: 0x2b, // +\n comma: 0x2c, // ,\n minus: 0x2d, // -\n period: 0x2e, // .\n\n _0: 0x30, // 0\n _9: 0x39, // 9\n\n colon: 0x3a, // :\n\n E: 0x45, // E\n\n openBracket: 0x5b, // [\n backslash: 0x5c, // \\\n closeBracket: 0x5d, // ]\n\n a: 0x61, // a\n b: 0x62, // b\n e: 0x65, // e\n f: 0x66, // f\n l: 0x6c, // l\n n: 0x6e, // n\n r: 0x72, // r\n s: 0x73, // s\n t: 0x74, // t\n u: 0x75, // u\n\n openBrace: 0x7b, // {\n closeBrace: 0x7d // }\n};\n\nconst stringTokenPattern = /[\\\\\"\\n]/g;\n\ntype ParserEvent = (parser: ClarinetParser, event: string, data?: any) => void;\n\nexport type ClarinetParserOptions = {\n onready?: ParserEvent;\n onopenobject?: ParserEvent;\n onkey?: ParserEvent;\n oncloseobject?: ParserEvent;\n onopenarray?: ParserEvent;\n onclosearray?: ParserEvent;\n onvalue?: ParserEvent;\n onerror?: ParserEvent;\n onend?: ParserEvent;\n onchunkparsed?: ParserEvent;\n};\n\nconst DEFAULT_OPTIONS: Required<ClarinetParserOptions> = {\n onready: () => {},\n onopenobject: () => {},\n onkey: () => {},\n oncloseobject: () => {},\n onopenarray: () => {},\n onclosearray: () => {},\n onvalue: () => {},\n onerror: () => {},\n onend: () => {},\n onchunkparsed: () => {}\n};\nexport default class ClarinetParser {\n protected options: Required<ClarinetParserOptions> = DEFAULT_OPTIONS;\n\n bufferCheckPosition = MAX_BUFFER_LENGTH;\n q = '';\n c = '';\n p = '';\n closed = false;\n closedRoot = false;\n sawRoot = false;\n // tag = null;\n error: Error | null = null;\n state = STATE.BEGIN;\n stack: STATE[] = [];\n // mostly just for error reporting\n position: number = 0;\n column: number = 0;\n line: number = 1;\n slashed: boolean = false;\n unicodeI: number = 0;\n unicodeS: string | null = null;\n depth: number = 0;\n\n textNode;\n numberNode;\n\n constructor(options: ClarinetParserOptions = {}) {\n this.options = {...DEFAULT_OPTIONS, ...options};\n this.textNode = undefined;\n this.numberNode = '';\n this.emit('onready');\n }\n\n end() {\n if (this.state !== STATE.VALUE || this.depth !== 0) this._error('Unexpected end');\n\n this._closeValue();\n this.c = '';\n this.closed = true;\n this.emit('onend');\n return this;\n }\n\n resume() {\n this.error = null;\n return this;\n }\n\n close() {\n return this.write(null);\n }\n\n // protected\n\n emit(event: string, data?: any): void {\n // if (DEBUG) console.log('-- emit', event, data);\n this.options[event]?.(data, this);\n }\n\n emitNode(event: string, data?: any): void {\n this._closeValue();\n this.emit(event, data);\n }\n\n /* eslint-disable no-continue */\n // eslint-disable-next-line complexity, max-statements\n write(chunk) {\n if (this.error) {\n throw this.error;\n }\n if (this.closed) {\n return this._error('Cannot write after close. Assign an onready handler.');\n }\n if (chunk === null) {\n return this.end();\n }\n let i = 0;\n let c = chunk.charCodeAt(0);\n let p = this.p;\n // if (DEBUG) console.log(`write -> [${ chunk }]`);\n while (c) {\n p = c;\n this.c = c = chunk.charCodeAt(i++);\n // if chunk doesnt have next, like streaming char by char\n // this way we need to check if previous is really previous\n // if not we need to reset to what the this says is the previous\n // from buffer\n if (p !== c) {\n this.p = p;\n } else {\n p = this.p;\n }\n\n if (!c) break;\n\n // if (DEBUG) console.log(i, c, STATE[this.state]);\n this.position++;\n if (c === Char.lineFeed) {\n this.line++;\n this.column = 0;\n } else this.column++;\n\n switch (this.state) {\n case STATE.BEGIN:\n if (c === Char.openBrace) this.state = STATE.OPEN_OBJECT;\n else if (c === Char.openBracket) this.state = STATE.OPEN_ARRAY;\n else if (!isWhitespace(c)) {\n this._error('Non-whitespace before {[.');\n }\n continue;\n\n case STATE.OPEN_KEY:\n case STATE.OPEN_OBJECT:\n if (isWhitespace(c)) continue;\n if (this.state === STATE.OPEN_KEY) this.stack.push(STATE.CLOSE_KEY);\n else if (c === Char.closeBrace) {\n this.emit('onopenobject');\n this.depth++;\n this.emit('oncloseobject');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n continue;\n } else this.stack.push(STATE.CLOSE_OBJECT);\n if (c === Char.doubleQuote) this.state = STATE.STRING;\n else this._error('Malformed object key should start with \"');\n continue;\n\n case STATE.CLOSE_KEY:\n case STATE.CLOSE_OBJECT:\n if (isWhitespace(c)) continue;\n // let event = this.state === STATE.CLOSE_KEY ? 'key' : 'object';\n if (c === Char.colon) {\n if (this.state === STATE.CLOSE_OBJECT) {\n this.stack.push(STATE.CLOSE_OBJECT);\n this._closeValue('onopenobject');\n this.depth++;\n } else this._closeValue('onkey');\n this.state = STATE.VALUE;\n } else if (c === Char.closeBrace) {\n this.emitNode('oncloseobject');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n } else if (c === Char.comma) {\n if (this.state === STATE.CLOSE_OBJECT) this.stack.push(STATE.CLOSE_OBJECT);\n this._closeValue();\n this.state = STATE.OPEN_KEY;\n } else this._error('Bad object');\n continue;\n\n case STATE.OPEN_ARRAY: // after an array there always a value\n case STATE.VALUE:\n if (isWhitespace(c)) continue;\n if (this.state === STATE.OPEN_ARRAY) {\n this.emit('onopenarray');\n this.depth++;\n this.state = STATE.VALUE;\n if (c === Char.closeBracket) {\n this.emit('onclosearray');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n continue;\n } else {\n this.stack.push(STATE.CLOSE_ARRAY);\n }\n }\n if (c === Char.doubleQuote) this.state = STATE.STRING;\n else if (c === Char.openBrace) this.state = STATE.OPEN_OBJECT;\n else if (c === Char.openBracket) this.state = STATE.OPEN_ARRAY;\n else if (c === Char.t) this.state = STATE.TRUE;\n else if (c === Char.f) this.state = STATE.FALSE;\n else if (c === Char.n) this.state = STATE.NULL;\n else if (c === Char.minus) {\n // keep and continue\n this.numberNode += '-';\n } else if (Char._0 <= c && c <= Char._9) {\n this.numberNode += String.fromCharCode(c);\n this.state = STATE.NUMBER_DIGIT;\n } else this._error('Bad value');\n continue;\n\n case STATE.CLOSE_ARRAY:\n if (c === Char.comma) {\n this.stack.push(STATE.CLOSE_ARRAY);\n this._closeValue('onvalue');\n this.state = STATE.VALUE;\n } else if (c === Char.closeBracket) {\n this.emitNode('onclosearray');\n this.depth--;\n this.state = this.stack.pop() || STATE.VALUE;\n } else if (isWhitespace(c)) continue;\n else this._error('Bad array');\n continue;\n\n case STATE.STRING:\n if (this.textNode === undefined) {\n this.textNode = '';\n }\n\n // thanks thejh, this is an about 50% performance improvement.\n let starti = i - 1;\n let slashed = this.slashed;\n let unicodeI = this.unicodeI;\n // eslint-disable-next-line no-constant-condition, no-labels\n STRING_BIGLOOP: while (true) {\n // if (DEBUG) console.log(i, c, STATE[this.state], slashed);\n // zero means \"no unicode active\". 1-4 mean \"parse some more\". end after 4.\n while (unicodeI > 0) {\n this.unicodeS += String.fromCharCode(c);\n c = chunk.charCodeAt(i++);\n this.position++;\n if (unicodeI === 4) {\n // TODO this might be slow? well, probably not used too often anyway\n this.textNode += String.fromCharCode(parseInt(this.unicodeS as string, 16));\n unicodeI = 0;\n starti = i - 1;\n } else {\n unicodeI++;\n }\n // we can just break here: no stuff we skipped that still has to be sliced out or so\n // eslint-disable-next-line no-labels\n if (!c) break STRING_BIGLOOP;\n }\n if (c === Char.doubleQuote && !slashed) {\n this.state = this.stack.pop() || STATE.VALUE;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n if (c === Char.backslash && !slashed) {\n slashed = true;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n c = chunk.charCodeAt(i++);\n this.position++;\n if (!c) break;\n }\n if (slashed) {\n slashed = false;\n if (c === Char.n) {\n this.textNode += '\\n';\n } else if (c === Char.r) {\n this.textNode += '\\r';\n } else if (c === Char.t) {\n this.textNode += '\\t';\n } else if (c === Char.f) {\n this.textNode += '\\f';\n } else if (c === Char.b) {\n this.textNode += '\\b';\n } else if (c === Char.u) {\n // \\uxxxx. meh!\n unicodeI = 1;\n this.unicodeS = '';\n } else {\n this.textNode += String.fromCharCode(c);\n }\n c = chunk.charCodeAt(i++);\n this.position++;\n starti = i - 1;\n if (!c) break;\n else continue;\n }\n\n stringTokenPattern.lastIndex = i;\n const reResult = stringTokenPattern.exec(chunk);\n if (reResult === null) {\n i = chunk.length + 1;\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n i = reResult.index + 1;\n c = chunk.charCodeAt(reResult.index);\n if (!c) {\n this.textNode += chunk.substring(starti, i - 1);\n this.position += i - 1 - starti;\n break;\n }\n }\n this.slashed = slashed;\n this.unicodeI = unicodeI;\n continue;\n\n case STATE.TRUE:\n if (c === Char.r) this.state = STATE.TRUE2;\n else this._error(`Invalid true started with t${c}`);\n continue;\n\n case STATE.TRUE2:\n if (c === Char.u) this.state = STATE.TRUE3;\n else this._error(`Invalid true started with tr${c}`);\n continue;\n\n case STATE.TRUE3:\n if (c === Char.e) {\n this.emit('onvalue', true);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid true started with tru${c}`);\n continue;\n\n case STATE.FALSE:\n if (c === Char.a) this.state = STATE.FALSE2;\n else this._error(`Invalid false started with f${c}`);\n continue;\n\n case STATE.FALSE2:\n if (c === Char.l) this.state = STATE.FALSE3;\n else this._error(`Invalid false started with fa${c}`);\n continue;\n\n case STATE.FALSE3:\n if (c === Char.s) this.state = STATE.FALSE4;\n else this._error(`Invalid false started with fal${c}`);\n continue;\n\n case STATE.FALSE4:\n if (c === Char.e) {\n this.emit('onvalue', false);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid false started with fals${c}`);\n continue;\n\n case STATE.NULL:\n if (c === Char.u) this.state = STATE.NULL2;\n else this._error(`Invalid null started with n${c}`);\n continue;\n\n case STATE.NULL2:\n if (c === Char.l) this.state = STATE.NULL3;\n else this._error(`Invalid null started with nu${c}`);\n continue;\n\n case STATE.NULL3:\n if (c === Char.l) {\n this.emit('onvalue', null);\n this.state = this.stack.pop() || STATE.VALUE;\n } else this._error(`Invalid null started with nul${c}`);\n continue;\n\n case STATE.NUMBER_DECIMAL_POINT:\n if (c === Char.period) {\n this.numberNode += '.';\n this.state = STATE.NUMBER_DIGIT;\n } else this._error('Leading zero not followed by .');\n continue;\n\n case STATE.NUMBER_DIGIT:\n if (Char._0 <= c && c <= Char._9) this.numberNode += String.fromCharCode(c);\n else if (c === Char.period) {\n if (this.numberNode.indexOf('.') !== -1) this._error('Invalid number has two dots');\n this.numberNode += '.';\n } else if (c === Char.e || c === Char.E) {\n if (this.numberNode.indexOf('e') !== -1 || this.numberNode.indexOf('E') !== -1)\n this._error('Invalid number has two exponential');\n this.numberNode += 'e';\n } else if (c === Char.plus || c === Char.minus) {\n // @ts-expect-error\n if (!(p === Char.e || p === Char.E)) this._error('Invalid symbol in number');\n this.numberNode += String.fromCharCode(c);\n } else {\n this._closeNumber();\n i--; // go back one\n this.state = this.stack.pop() || STATE.VALUE;\n }\n continue;\n\n default:\n this._error(`Unknown state: ${this.state}`);\n }\n }\n if (this.position >= this.bufferCheckPosition) {\n checkBufferLength(this);\n }\n\n this.emit('onchunkparsed');\n\n return this;\n }\n\n _closeValue(event: string = 'onvalue'): void {\n if (this.textNode !== undefined) {\n this.emit(event, this.textNode);\n }\n this.textNode = undefined;\n }\n\n _closeNumber(): void {\n if (this.numberNode) this.emit('onvalue', parseFloat(this.numberNode));\n this.numberNode = '';\n }\n\n _error(message: string = ''): void {\n this._closeValue();\n message += `\\nLine: ${this.line}\\nColumn: ${this.column}\\nChar: ${this.c}`;\n const error = new Error(message);\n this.error = error;\n this.emit('onerror', error);\n }\n}\n\nfunction isWhitespace(c): boolean {\n return c === Char.carriageReturn || c === Char.lineFeed || c === Char.space || c === Char.tab;\n}\n\nfunction checkBufferLength(parser) {\n const maxAllowed = Math.max(MAX_BUFFER_LENGTH, 10);\n let maxActual = 0;\n\n for (const buffer of ['textNode', 'numberNode']) {\n const len = parser[buffer] === undefined ? 0 : parser[buffer].length;\n if (len > maxAllowed) {\n switch (buffer) {\n case 'text':\n // TODO - should this be closeValue?\n // closeText(parser);\n break;\n\n default:\n parser._error(`Max buffer length exceeded: ${buffer}`);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n parser.bufferCheckPosition = MAX_BUFFER_LENGTH - maxActual + parser.position;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"encode-table-row.d.ts","sourceRoot":"","sources":["../../../src/lib/encoder-utils/encode-table-row.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,EAAsB,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAC,sBAAsB,EAAC,MAAM,gBAAgB,CAAC;AAMtD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,mBAAmB,EAAE,MAAM,EAC3B,WAAW,EAAE,sBAAsB,GAClC,IAAI,CAMN"}
1
+ {"version":3,"file":"encode-table-row.d.ts","sourceRoot":"","sources":["../../../src/lib/encoder-utils/encode-table-row.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,KAAK,EAAsB,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAC,sBAAsB,EAAC,MAAM,gBAAgB,CAAC;AAMtD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,mBAAmB,EAAE,MAAM,EAC3B,WAAW,EAAE,sBAAsB,GAClC,IAAI,CAMN"}
@@ -1 +1 @@
1
- {"version":3,"file":"encode-table-row.js","names":["getTableRowAsObject","getRowPropertyObject","encodeTableRow","table","rowIndex","geometryColumnIndex","utf8Encoder","row","featureWithProperties","getFeatureFromRow","featureString","JSON","stringify","push","_table$schema","_featureOrGeometry","_featureOrGeometry2","properties","columnName","schema","fields","name","featureOrGeometry","type","geometry","parse","err","Error"],"sources":["../../../src/lib/encoder-utils/encode-table-row.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Feature} from '@loaders.gl/schema';\nimport {Table, getTableRowAsObject} from '@loaders.gl/schema';\nimport {getRowPropertyObject} from './encode-utils';\nimport {Utf8ArrayBufferEncoder} from './utf8-encoder';\n\ntype Row = {[key: string]: unknown};\n\n// Helpers\n\n/**\n * Encode a row. Currently this ignores properties in the geometry column.\n */\nexport function encodeTableRow(\n table: Table,\n rowIndex: number,\n geometryColumnIndex: number,\n utf8Encoder: Utf8ArrayBufferEncoder\n): void {\n const row = getTableRowAsObject(table, rowIndex);\n if (!row) return;\n const featureWithProperties = getFeatureFromRow(table, row, geometryColumnIndex);\n const featureString = JSON.stringify(featureWithProperties);\n utf8Encoder.push(featureString);\n}\n\n/**\n * Encode a row as a Feature. Currently this ignores properties objects in the geometry column.\n */\nfunction getFeatureFromRow(table: Table, row: Row, geometryColumnIndex: number): Feature {\n // Extract non-feature/geometry properties\n const properties = getRowPropertyObject(table, row, [geometryColumnIndex]);\n\n // Extract geometry feature\n const columnName = table.schema?.fields[geometryColumnIndex].name;\n let featureOrGeometry =\n columnName && (row[columnName] as {[key: string]: unknown} | string | null | undefined);\n\n // GeoJSON support null geometries\n if (!featureOrGeometry) {\n // @ts-ignore Feature type does not support null geometries\n return {type: 'Feature', geometry: null, properties};\n }\n\n // Support string geometries?\n // TODO: This assumes GeoJSON strings, which may not be the correct format\n // (could be WKT, encoded WKB...)\n if (typeof featureOrGeometry === 'string') {\n try {\n featureOrGeometry = JSON.parse(featureOrGeometry);\n } catch (err) {\n throw new Error('Invalid string geometry');\n }\n }\n\n if (typeof featureOrGeometry !== 'object' || typeof featureOrGeometry?.type !== 'string') {\n throw new Error('invalid geometry column value');\n }\n\n if (featureOrGeometry?.type === 'Feature') {\n // @ts-ignore Feature type does not support null geometries\n return {...featureOrGeometry, properties};\n }\n\n // @ts-ignore Feature type does not support null geometries\n return {type: 'Feature', geometry: featureOrGeometry, properties};\n}\n"],"mappings":"AAIA,SAAeA,mBAAmB,QAAO,oBAAoB;AAAC,SACtDC,oBAAoB;AAU5B,OAAO,SAASC,cAAcA,CAC5BC,KAAY,EACZC,QAAgB,EAChBC,mBAA2B,EAC3BC,WAAmC,EAC7B;EACN,MAAMC,GAAG,GAAGP,mBAAmB,CAACG,KAAK,EAAEC,QAAQ,CAAC;EAChD,IAAI,CAACG,GAAG,EAAE;EACV,MAAMC,qBAAqB,GAAGC,iBAAiB,CAACN,KAAK,EAAEI,GAAG,EAAEF,mBAAmB,CAAC;EAChF,MAAMK,aAAa,GAAGC,IAAI,CAACC,SAAS,CAACJ,qBAAqB,CAAC;EAC3DF,WAAW,CAACO,IAAI,CAACH,aAAa,CAAC;AACjC;AAKA,SAASD,iBAAiBA,CAACN,KAAY,EAAEI,GAAQ,EAAEF,mBAA2B,EAAW;EAAA,IAAAS,aAAA,EAAAC,kBAAA,EAAAC,mBAAA;EAEvF,MAAMC,UAAU,GAAGhB,oBAAoB,CAACE,KAAK,EAAEI,GAAG,EAAE,CAACF,mBAAmB,CAAC,CAAC;EAG1E,MAAMa,UAAU,IAAAJ,aAAA,GAAGX,KAAK,CAACgB,MAAM,cAAAL,aAAA,uBAAZA,aAAA,CAAcM,MAAM,CAACf,mBAAmB,CAAC,CAACgB,IAAI;EACjE,IAAIC,iBAAiB,GACnBJ,UAAU,IAAKX,GAAG,CAACW,UAAU,CAA0D;EAGzF,IAAI,CAACI,iBAAiB,EAAE;IAEtB,OAAO;MAACC,IAAI,EAAE,SAAS;MAAEC,QAAQ,EAAE,IAAI;MAAEP;IAAU,CAAC;EACtD;EAKA,IAAI,OAAOK,iBAAiB,KAAK,QAAQ,EAAE;IACzC,IAAI;MACFA,iBAAiB,GAAGX,IAAI,CAACc,KAAK,CAACH,iBAAiB,CAAC;IACnD,CAAC,CAAC,OAAOI,GAAG,EAAE;MACZ,MAAM,IAAIC,KAAK,CAAC,yBAAyB,CAAC;IAC5C;EACF;EAEA,IAAI,OAAOL,iBAAiB,KAAK,QAAQ,IAAI,SAAAP,kBAAA,GAAOO,iBAAiB,cAAAP,kBAAA,uBAAjBA,kBAAA,CAAmBQ,IAAI,MAAK,QAAQ,EAAE;IACxF,MAAM,IAAII,KAAK,CAAC,+BAA+B,CAAC;EAClD;EAEA,IAAI,EAAAX,mBAAA,GAAAM,iBAAiB,cAAAN,mBAAA,uBAAjBA,mBAAA,CAAmBO,IAAI,MAAK,SAAS,EAAE;IAEzC,OAAO;MAAC,GAAGD,iBAAiB;MAAEL;IAAU,CAAC;EAC3C;EAGA,OAAO;IAACM,IAAI,EAAE,SAAS;IAAEC,QAAQ,EAAEF,iBAAiB;IAAEL;EAAU,CAAC;AACnE"}
1
+ {"version":3,"file":"encode-table-row.js","names":["getTableRowAsObject","getRowPropertyObject","encodeTableRow","table","rowIndex","geometryColumnIndex","utf8Encoder","row","featureWithProperties","getFeatureFromRow","featureString","JSON","stringify","push","_table$schema","_featureOrGeometry","_featureOrGeometry2","properties","columnName","schema","fields","name","featureOrGeometry","type","geometry","parse","err","Error"],"sources":["../../../src/lib/encoder-utils/encode-table-row.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Feature} from '@loaders.gl/schema';\nimport {Table, getTableRowAsObject} from '@loaders.gl/schema';\nimport {getRowPropertyObject} from './encode-utils';\nimport {Utf8ArrayBufferEncoder} from './utf8-encoder';\n\ntype Row = {[key: string]: unknown};\n\n// Helpers\n\n/**\n * Encode a row. Currently this ignores properties in the geometry column.\n */\nexport function encodeTableRow(\n table: Table,\n rowIndex: number,\n geometryColumnIndex: number,\n utf8Encoder: Utf8ArrayBufferEncoder\n): void {\n const row = getTableRowAsObject(table, rowIndex);\n if (!row) return;\n const featureWithProperties = getFeatureFromRow(table, row, geometryColumnIndex);\n const featureString = JSON.stringify(featureWithProperties);\n utf8Encoder.push(featureString);\n}\n\n/**\n * Encode a row as a Feature. Currently this ignores properties objects in the geometry column.\n */\nfunction getFeatureFromRow(table: Table, row: Row, geometryColumnIndex: number): Feature {\n // Extract non-feature/geometry properties\n const properties = getRowPropertyObject(table, row, [geometryColumnIndex]);\n\n // Extract geometry feature\n const columnName = table.schema?.fields[geometryColumnIndex].name;\n let featureOrGeometry =\n columnName && (row[columnName] as {[key: string]: unknown} | string | null | undefined);\n\n // GeoJSON support null geometries\n if (!featureOrGeometry) {\n // @ts-ignore Feature type does not support null geometries\n return {type: 'Feature', geometry: null, properties};\n }\n\n // Support string geometries?\n // TODO: This assumes GeoJSON strings, which may not be the correct format\n // (could be WKT, encoded WKB...)\n if (typeof featureOrGeometry === 'string') {\n try {\n featureOrGeometry = JSON.parse(featureOrGeometry);\n } catch (err) {\n throw new Error('Invalid string geometry');\n }\n }\n\n if (typeof featureOrGeometry !== 'object' || typeof featureOrGeometry?.type !== 'string') {\n throw new Error('invalid geometry column value');\n }\n\n if (featureOrGeometry?.type === 'Feature') {\n // @ts-ignore Feature type does not support null geometries\n return {...featureOrGeometry, properties};\n }\n\n // @ts-ignore Feature type does not support null geometries\n return {type: 'Feature', geometry: featureOrGeometry, properties};\n}\n"],"mappings":"AAKA,SAAeA,mBAAmB,QAAO,oBAAoB;AAAC,SACtDC,oBAAoB;AAU5B,OAAO,SAASC,cAAcA,CAC5BC,KAAY,EACZC,QAAgB,EAChBC,mBAA2B,EAC3BC,WAAmC,EAC7B;EACN,MAAMC,GAAG,GAAGP,mBAAmB,CAACG,KAAK,EAAEC,QAAQ,CAAC;EAChD,IAAI,CAACG,GAAG,EAAE;EACV,MAAMC,qBAAqB,GAAGC,iBAAiB,CAACN,KAAK,EAAEI,GAAG,EAAEF,mBAAmB,CAAC;EAChF,MAAMK,aAAa,GAAGC,IAAI,CAACC,SAAS,CAACJ,qBAAqB,CAAC;EAC3DF,WAAW,CAACO,IAAI,CAACH,aAAa,CAAC;AACjC;AAKA,SAASD,iBAAiBA,CAACN,KAAY,EAAEI,GAAQ,EAAEF,mBAA2B,EAAW;EAAA,IAAAS,aAAA,EAAAC,kBAAA,EAAAC,mBAAA;EAEvF,MAAMC,UAAU,GAAGhB,oBAAoB,CAACE,KAAK,EAAEI,GAAG,EAAE,CAACF,mBAAmB,CAAC,CAAC;EAG1E,MAAMa,UAAU,IAAAJ,aAAA,GAAGX,KAAK,CAACgB,MAAM,cAAAL,aAAA,uBAAZA,aAAA,CAAcM,MAAM,CAACf,mBAAmB,CAAC,CAACgB,IAAI;EACjE,IAAIC,iBAAiB,GACnBJ,UAAU,IAAKX,GAAG,CAACW,UAAU,CAA0D;EAGzF,IAAI,CAACI,iBAAiB,EAAE;IAEtB,OAAO;MAACC,IAAI,EAAE,SAAS;MAAEC,QAAQ,EAAE,IAAI;MAAEP;IAAU,CAAC;EACtD;EAKA,IAAI,OAAOK,iBAAiB,KAAK,QAAQ,EAAE;IACzC,IAAI;MACFA,iBAAiB,GAAGX,IAAI,CAACc,KAAK,CAACH,iBAAiB,CAAC;IACnD,CAAC,CAAC,OAAOI,GAAG,EAAE;MACZ,MAAM,IAAIC,KAAK,CAAC,yBAAyB,CAAC;IAC5C;EACF;EAEA,IAAI,OAAOL,iBAAiB,KAAK,QAAQ,IAAI,SAAAP,kBAAA,GAAOO,iBAAiB,cAAAP,kBAAA,uBAAjBA,kBAAA,CAAmBQ,IAAI,MAAK,QAAQ,EAAE;IACxF,MAAM,IAAII,KAAK,CAAC,+BAA+B,CAAC;EAClD;EAEA,IAAI,EAAAX,mBAAA,GAAAM,iBAAiB,cAAAN,mBAAA,uBAAjBA,mBAAA,CAAmBO,IAAI,MAAK,SAAS,EAAE;IAEzC,OAAO;MAAC,GAAGD,iBAAiB;MAAEL;IAAU,CAAC;EAC3C;EAGA,OAAO;IAACM,IAAI,EAAE,SAAS;IAAEC,QAAQ,EAAEF,iBAAiB;IAAEL;EAAU,CAAC;AACnE"}
@@ -1 +1 @@
1
- {"version":3,"file":"encode-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/encoder-utils/encode-utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAsD,MAAM,oBAAoB,CAAC;AAE9F,KAAK,GAAG,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC;AAEpC;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAsB9D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,GAAG,EACR,oBAAoB,GAAE,MAAM,EAAO,GAClC;IAAC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CASjC"}
1
+ {"version":3,"file":"encode-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/encoder-utils/encode-utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,EAAsD,MAAM,oBAAoB,CAAC;AAE9F,KAAK,GAAG,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC;AAEpC;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAsB9D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,GAAG,EACR,oBAAoB,GAAE,MAAM,EAAO,GAClC;IAAC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CASjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"encode-utils.js","names":["getTableLength","getTableNumCols","getTableRowAsArray","detectGeometryColumnIndex","table","_table$schema$fields$","_table$schema","geometryIndex","schema","fields","findIndex","field","name","row","columnIndex","value","Error","getRowPropertyObject","excludeColumnIndices","arguments","length","undefined","properties","_table$schema2","columnName","includes"],"sources":["../../../src/lib/encoder-utils/encode-utils.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Table, getTableLength, getTableNumCols, getTableRowAsArray} from '@loaders.gl/schema';\n\ntype Row = {[key: string]: unknown};\n\n/**\n * Attempts to identify which column contains geometry\n * Currently just returns name (key) of first object-valued column\n * @todo look for hints in schema metadata\n * @todo look for WKB\n */\nexport function detectGeometryColumnIndex(table: Table): number {\n // TODO - look for hints in schema metadata\n\n // look for a column named geometry\n const geometryIndex = table.schema?.fields.findIndex((field) => field.name === 'geometry') ?? -1;\n if (geometryIndex > -1) {\n return geometryIndex;\n }\n\n // look at the data\n // TODO - this drags in the indices\n if (getTableLength(table) > 0) {\n const row = getTableRowAsArray(table, 0);\n for (let columnIndex = 0; columnIndex < getTableNumCols(table); columnIndex++) {\n const value = row?.[columnIndex];\n if (value && typeof value === 'object') {\n return columnIndex;\n }\n }\n }\n\n throw new Error('Failed to detect geometry column');\n}\n\n/**\n * Return a row as a property (key/value) object, excluding selected columns\n */\nexport function getRowPropertyObject(\n table: Table,\n row: Row,\n excludeColumnIndices: number[] = []\n): {[columnName: string]: unknown} {\n const properties = {};\n for (let columnIndex = 0; columnIndex < getTableNumCols(table); ++columnIndex) {\n const columnName = table.schema?.fields[columnIndex].name;\n if (columnName && !excludeColumnIndices.includes(columnIndex)) {\n properties[columnName] = row[columnName];\n }\n }\n return properties;\n}\n"],"mappings":"AAGA,SAAeA,cAAc,EAAEC,eAAe,EAAEC,kBAAkB,QAAO,oBAAoB;AAU7F,OAAO,SAASC,yBAAyBA,CAACC,KAAY,EAAU;EAAA,IAAAC,qBAAA,EAAAC,aAAA;EAI9D,MAAMC,aAAa,IAAAF,qBAAA,IAAAC,aAAA,GAAGF,KAAK,CAACI,MAAM,cAAAF,aAAA,uBAAZA,aAAA,CAAcG,MAAM,CAACC,SAAS,CAAEC,KAAK,IAAKA,KAAK,CAACC,IAAI,KAAK,UAAU,CAAC,cAAAP,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;EAChG,IAAIE,aAAa,GAAG,CAAC,CAAC,EAAE;IACtB,OAAOA,aAAa;EACtB;EAIA,IAAIP,cAAc,CAACI,KAAK,CAAC,GAAG,CAAC,EAAE;IAC7B,MAAMS,GAAG,GAAGX,kBAAkB,CAACE,KAAK,EAAE,CAAC,CAAC;IACxC,KAAK,IAAIU,WAAW,GAAG,CAAC,EAAEA,WAAW,GAAGb,eAAe,CAACG,KAAK,CAAC,EAAEU,WAAW,EAAE,EAAE;MAC7E,MAAMC,KAAK,GAAGF,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAGC,WAAW,CAAC;MAChC,IAAIC,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;QACtC,OAAOD,WAAW;MACpB;IACF;EACF;EAEA,MAAM,IAAIE,KAAK,CAAC,kCAAkC,CAAC;AACrD;AAKA,OAAO,SAASC,oBAAoBA,CAClCb,KAAY,EACZS,GAAQ,EAEyB;EAAA,IADjCK,oBAA8B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAEnC,MAAMG,UAAU,GAAG,CAAC,CAAC;EACrB,KAAK,IAAIR,WAAW,GAAG,CAAC,EAAEA,WAAW,GAAGb,eAAe,CAACG,KAAK,CAAC,EAAE,EAAEU,WAAW,EAAE;IAAA,IAAAS,cAAA;IAC7E,MAAMC,UAAU,IAAAD,cAAA,GAAGnB,KAAK,CAACI,MAAM,cAAAe,cAAA,uBAAZA,cAAA,CAAcd,MAAM,CAACK,WAAW,CAAC,CAACF,IAAI;IACzD,IAAIY,UAAU,IAAI,CAACN,oBAAoB,CAACO,QAAQ,CAACX,WAAW,CAAC,EAAE;MAC7DQ,UAAU,CAACE,UAAU,CAAC,GAAGX,GAAG,CAACW,UAAU,CAAC;IAC1C;EACF;EACA,OAAOF,UAAU;AACnB"}
1
+ {"version":3,"file":"encode-utils.js","names":["getTableLength","getTableNumCols","getTableRowAsArray","detectGeometryColumnIndex","table","_table$schema$fields$","_table$schema","geometryIndex","schema","fields","findIndex","field","name","row","columnIndex","value","Error","getRowPropertyObject","excludeColumnIndices","arguments","length","undefined","properties","_table$schema2","columnName","includes"],"sources":["../../../src/lib/encoder-utils/encode-utils.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Table, getTableLength, getTableNumCols, getTableRowAsArray} from '@loaders.gl/schema';\n\ntype Row = {[key: string]: unknown};\n\n/**\n * Attempts to identify which column contains geometry\n * Currently just returns name (key) of first object-valued column\n * @todo look for hints in schema metadata\n * @todo look for WKB\n */\nexport function detectGeometryColumnIndex(table: Table): number {\n // TODO - look for hints in schema metadata\n\n // look for a column named geometry\n const geometryIndex = table.schema?.fields.findIndex((field) => field.name === 'geometry') ?? -1;\n if (geometryIndex > -1) {\n return geometryIndex;\n }\n\n // look at the data\n // TODO - this drags in the indices\n if (getTableLength(table) > 0) {\n const row = getTableRowAsArray(table, 0);\n for (let columnIndex = 0; columnIndex < getTableNumCols(table); columnIndex++) {\n const value = row?.[columnIndex];\n if (value && typeof value === 'object') {\n return columnIndex;\n }\n }\n }\n\n throw new Error('Failed to detect geometry column');\n}\n\n/**\n * Return a row as a property (key/value) object, excluding selected columns\n */\nexport function getRowPropertyObject(\n table: Table,\n row: Row,\n excludeColumnIndices: number[] = []\n): {[columnName: string]: unknown} {\n const properties = {};\n for (let columnIndex = 0; columnIndex < getTableNumCols(table); ++columnIndex) {\n const columnName = table.schema?.fields[columnIndex].name;\n if (columnName && !excludeColumnIndices.includes(columnIndex)) {\n properties[columnName] = row[columnName];\n }\n }\n return properties;\n}\n"],"mappings":"AAIA,SAAeA,cAAc,EAAEC,eAAe,EAAEC,kBAAkB,QAAO,oBAAoB;AAU7F,OAAO,SAASC,yBAAyBA,CAACC,KAAY,EAAU;EAAA,IAAAC,qBAAA,EAAAC,aAAA;EAI9D,MAAMC,aAAa,IAAAF,qBAAA,IAAAC,aAAA,GAAGF,KAAK,CAACI,MAAM,cAAAF,aAAA,uBAAZA,aAAA,CAAcG,MAAM,CAACC,SAAS,CAAEC,KAAK,IAAKA,KAAK,CAACC,IAAI,KAAK,UAAU,CAAC,cAAAP,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;EAChG,IAAIE,aAAa,GAAG,CAAC,CAAC,EAAE;IACtB,OAAOA,aAAa;EACtB;EAIA,IAAIP,cAAc,CAACI,KAAK,CAAC,GAAG,CAAC,EAAE;IAC7B,MAAMS,GAAG,GAAGX,kBAAkB,CAACE,KAAK,EAAE,CAAC,CAAC;IACxC,KAAK,IAAIU,WAAW,GAAG,CAAC,EAAEA,WAAW,GAAGb,eAAe,CAACG,KAAK,CAAC,EAAEU,WAAW,EAAE,EAAE;MAC7E,MAAMC,KAAK,GAAGF,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAGC,WAAW,CAAC;MAChC,IAAIC,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;QACtC,OAAOD,WAAW;MACpB;IACF;EACF;EAEA,MAAM,IAAIE,KAAK,CAAC,kCAAkC,CAAC;AACrD;AAKA,OAAO,SAASC,oBAAoBA,CAClCb,KAAY,EACZS,GAAQ,EAEyB;EAAA,IADjCK,oBAA8B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAEnC,MAAMG,UAAU,GAAG,CAAC,CAAC;EACrB,KAAK,IAAIR,WAAW,GAAG,CAAC,EAAEA,WAAW,GAAGb,eAAe,CAACG,KAAK,CAAC,EAAE,EAAEU,WAAW,EAAE;IAAA,IAAAS,cAAA;IAC7E,MAAMC,UAAU,IAAAD,cAAA,GAAGnB,KAAK,CAACI,MAAM,cAAAe,cAAA,uBAAZA,cAAA,CAAcd,MAAM,CAACK,WAAW,CAAC,CAACF,IAAI;IACzD,IAAIY,UAAU,IAAI,CAACN,oBAAoB,CAACO,QAAQ,CAACX,WAAW,CAAC,EAAE;MAC7DQ,UAAU,CAACE,UAAU,CAAC,GAAGX,GAAG,CAACW,UAAU,CAAC;IAC1C;EACF;EACA,OAAOF,UAAU;AACnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"geojson-encoder.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/geojson-encoder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAKnD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAE/D;;GAEG;AAEH,wBAAuB,6BAA6B,CAClD,aAAa,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,0BAA0B;AACpE,SAAS,GAAE,oBAAyB,GACnC,aAAa,CAAC,WAAW,CAAC,CA0D5B"}
1
+ {"version":3,"file":"geojson-encoder.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/geojson-encoder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAKnD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAE/D;;GAEG;AAEH,wBAAuB,6BAA6B,CAClD,aAAa,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,0BAA0B;AACpE,SAAS,GAAE,oBAAyB,GACnC,aAAa,CAAC,WAAW,CAAC,CA0D5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"geojson-encoder.js","names":["getTableLength","detectGeometryColumnIndex","encodeTableRow","Utf8ArrayBufferEncoder","encodeTableAsGeojsonInBatches","batchIterator","inputOpts","arguments","length","undefined","options","geojson","chunkSize","utf8Encoder","featureArray","push","geometryColumn","isFirstLine","start","tableBatch","end","rowIndex","isFull","getArrayBufferBatch","arrayBufferBatch","byteLength","e","Promise","reject"],"sources":["../../../src/lib/encoders/geojson-encoder.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport type {TableBatch} from '@loaders.gl/schema';\nimport {getTableLength} from '@loaders.gl/schema';\nimport {detectGeometryColumnIndex} from '../encoder-utils/encode-utils';\nimport {encodeTableRow} from '../encoder-utils/encode-table-row';\nimport {Utf8ArrayBufferEncoder} from '../encoder-utils/utf8-encoder';\nimport type {GeoJSONWriterOptions} from '../../geojson-writer';\n\n/**\n * Encode a table as GeoJSON\n */\n// eslint-disable-next-line max-statements\nexport async function* encodeTableAsGeojsonInBatches(\n batchIterator: AsyncIterable<TableBatch>, // | Iterable<TableBatch>,\n inputOpts: GeoJSONWriterOptions = {}\n): AsyncIterable<ArrayBuffer> {\n // @ts-expect-error\n const options: Required<GeoJSONWriterOptions> = {geojson: {}, chunkSize: 10000, ...inputOpts};\n\n const utf8Encoder = new Utf8ArrayBufferEncoder(options.chunkSize);\n\n if (!options.geojson.featureArray) {\n utf8Encoder.push('{\\n', '\"type\": \"FeatureCollection\",\\n', '\"features\":\\n');\n }\n utf8Encoder.push('['); // Note no newline\n\n let geometryColumn = options.geojson.geometryColumn;\n\n let isFirstLine = true;\n\n let start = 0;\n for await (const tableBatch of batchIterator) {\n const end = start + getTableLength(tableBatch);\n\n // Deduce geometry column if not already done\n if (!geometryColumn) {\n geometryColumn = geometryColumn || detectGeometryColumnIndex(tableBatch);\n }\n\n for (let rowIndex = start; rowIndex < end; ++rowIndex) {\n // Add a comma except on final feature\n if (!isFirstLine) {\n utf8Encoder.push(',');\n }\n utf8Encoder.push('\\n');\n isFirstLine = false;\n\n encodeTableRow(tableBatch, rowIndex, geometryColumn, utf8Encoder);\n\n // eslint-disable-next-line max-depth\n if (utf8Encoder.isFull()) {\n yield utf8Encoder.getArrayBufferBatch();\n }\n\n start = end;\n }\n\n const arrayBufferBatch = utf8Encoder.getArrayBufferBatch();\n if (arrayBufferBatch.byteLength > 0) {\n yield arrayBufferBatch;\n }\n }\n\n utf8Encoder.push('\\n');\n\n // Add completing rows and emit final batch\n utf8Encoder.push(']\\n');\n if (!options.geojson.featureArray) {\n utf8Encoder.push('}');\n }\n\n // Note: Since we pushed a few final lines, the last batch will always exist, no need to check first\n yield utf8Encoder.getArrayBufferBatch();\n}\n"],"mappings":"AAIA,SAAQA,cAAc,QAAO,oBAAoB;AAAC,SAC1CC,yBAAyB;AAAA,SACzBC,cAAc;AAAA,SACdC,sBAAsB;AAO9B,OAAO,SAAgBC,6BAA6BA,CAClDC,aAAwC;EAAA;IAAA,IACxCC,SAA+B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,0BACR;MAE5B,MAAMG,OAAuC,GAAG;QAACC,OAAO,EAAE,CAAC,CAAC;QAAEC,SAAS,EAAE,KAAK;QAAE,GAAGN;MAAS,CAAC;MAE7F,MAAMO,WAAW,GAAG,IAAIV,sBAAsB,CAACO,OAAO,CAACE,SAAS,CAAC;MAEjE,IAAI,CAACF,OAAO,CAACC,OAAO,CAACG,YAAY,EAAE;QACjCD,WAAW,CAACE,IAAI,CAAC,KAAK,EAAE,gCAAgC,EAAE,eAAe,CAAC;MAC5E;MACAF,WAAW,CAACE,IAAI,CAAC,GAAG,CAAC;MAErB,IAAIC,cAAc,GAAGN,OAAO,CAACC,OAAO,CAACK,cAAc;MAEnD,IAAIC,WAAW,GAAG,IAAI;MAEtB,IAAIC,KAAK,GAAG,CAAC;MACb,WAAW,MAAMC,UAAU,IAAId,aAAa,EAAE;QAC5C,MAAMe,GAAG,GAAGF,KAAK,GAAGlB,cAAc,CAACmB,UAAU,CAAC;QAG9C,IAAI,CAACH,cAAc,EAAE;UACnBA,cAAc,GAAGA,cAAc,IAAIf,yBAAyB,CAACkB,UAAU,CAAC;QAC1E;QAEA,KAAK,IAAIE,QAAQ,GAAGH,KAAK,EAAEG,QAAQ,GAAGD,GAAG,EAAE,EAAEC,QAAQ,EAAE;UAErD,IAAI,CAACJ,WAAW,EAAE;YAChBJ,WAAW,CAACE,IAAI,CAAC,GAAG,CAAC;UACvB;UACAF,WAAW,CAACE,IAAI,CAAC,IAAI,CAAC;UACtBE,WAAW,GAAG,KAAK;UAEnBf,cAAc,CAACiB,UAAU,EAAEE,QAAQ,EAAEL,cAAc,EAAEH,WAAW,CAAC;UAGjE,IAAIA,WAAW,CAACS,MAAM,CAAC,CAAC,EAAE;YACxB,MAAMT,WAAW,CAACU,mBAAmB,CAAC,CAAC;UACzC;UAEAL,KAAK,GAAGE,GAAG;QACb;QAEA,MAAMI,gBAAgB,GAAGX,WAAW,CAACU,mBAAmB,CAAC,CAAC;QAC1D,IAAIC,gBAAgB,CAACC,UAAU,GAAG,CAAC,EAAE;UACnC,MAAMD,gBAAgB;QACxB;MACF;MAEAX,WAAW,CAACE,IAAI,CAAC,IAAI,CAAC;MAGtBF,WAAW,CAACE,IAAI,CAAC,KAAK,CAAC;MACvB,IAAI,CAACL,OAAO,CAACC,OAAO,CAACG,YAAY,EAAE;QACjCD,WAAW,CAACE,IAAI,CAAC,GAAG,CAAC;MACvB;MAGA,MAAMF,WAAW,CAACU,mBAAmB,CAAC,CAAC;IACzC,CAAC;EAAA,SAAAG,CAAA;IAAA,OAAAC,OAAA,CAAAC,MAAA,CAAAF,CAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"geojson-encoder.js","names":["getTableLength","detectGeometryColumnIndex","encodeTableRow","Utf8ArrayBufferEncoder","encodeTableAsGeojsonInBatches","batchIterator","inputOpts","arguments","length","undefined","options","geojson","chunkSize","utf8Encoder","featureArray","push","geometryColumn","isFirstLine","start","tableBatch","end","rowIndex","isFull","getArrayBufferBatch","arrayBufferBatch","byteLength","e","Promise","reject"],"sources":["../../../src/lib/encoders/geojson-encoder.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport type {TableBatch} from '@loaders.gl/schema';\nimport {getTableLength} from '@loaders.gl/schema';\nimport {detectGeometryColumnIndex} from '../encoder-utils/encode-utils';\nimport {encodeTableRow} from '../encoder-utils/encode-table-row';\nimport {Utf8ArrayBufferEncoder} from '../encoder-utils/utf8-encoder';\nimport type {GeoJSONWriterOptions} from '../../geojson-writer';\n\n/**\n * Encode a table as GeoJSON\n */\n// eslint-disable-next-line max-statements\nexport async function* encodeTableAsGeojsonInBatches(\n batchIterator: AsyncIterable<TableBatch>, // | Iterable<TableBatch>,\n inputOpts: GeoJSONWriterOptions = {}\n): AsyncIterable<ArrayBuffer> {\n // @ts-expect-error\n const options: Required<GeoJSONWriterOptions> = {geojson: {}, chunkSize: 10000, ...inputOpts};\n\n const utf8Encoder = new Utf8ArrayBufferEncoder(options.chunkSize);\n\n if (!options.geojson.featureArray) {\n utf8Encoder.push('{\\n', '\"type\": \"FeatureCollection\",\\n', '\"features\":\\n');\n }\n utf8Encoder.push('['); // Note no newline\n\n let geometryColumn = options.geojson.geometryColumn;\n\n let isFirstLine = true;\n\n let start = 0;\n for await (const tableBatch of batchIterator) {\n const end = start + getTableLength(tableBatch);\n\n // Deduce geometry column if not already done\n if (!geometryColumn) {\n geometryColumn = geometryColumn || detectGeometryColumnIndex(tableBatch);\n }\n\n for (let rowIndex = start; rowIndex < end; ++rowIndex) {\n // Add a comma except on final feature\n if (!isFirstLine) {\n utf8Encoder.push(',');\n }\n utf8Encoder.push('\\n');\n isFirstLine = false;\n\n encodeTableRow(tableBatch, rowIndex, geometryColumn, utf8Encoder);\n\n // eslint-disable-next-line max-depth\n if (utf8Encoder.isFull()) {\n yield utf8Encoder.getArrayBufferBatch();\n }\n\n start = end;\n }\n\n const arrayBufferBatch = utf8Encoder.getArrayBufferBatch();\n if (arrayBufferBatch.byteLength > 0) {\n yield arrayBufferBatch;\n }\n }\n\n utf8Encoder.push('\\n');\n\n // Add completing rows and emit final batch\n utf8Encoder.push(']\\n');\n if (!options.geojson.featureArray) {\n utf8Encoder.push('}');\n }\n\n // Note: Since we pushed a few final lines, the last batch will always exist, no need to check first\n yield utf8Encoder.getArrayBufferBatch();\n}\n"],"mappings":"AAKA,SAAQA,cAAc,QAAO,oBAAoB;AAAC,SAC1CC,yBAAyB;AAAA,SACzBC,cAAc;AAAA,SACdC,sBAAsB;AAO9B,OAAO,SAAgBC,6BAA6BA,CAClDC,aAAwC;EAAA;IAAA,IACxCC,SAA+B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,0BACR;MAE5B,MAAMG,OAAuC,GAAG;QAACC,OAAO,EAAE,CAAC,CAAC;QAAEC,SAAS,EAAE,KAAK;QAAE,GAAGN;MAAS,CAAC;MAE7F,MAAMO,WAAW,GAAG,IAAIV,sBAAsB,CAACO,OAAO,CAACE,SAAS,CAAC;MAEjE,IAAI,CAACF,OAAO,CAACC,OAAO,CAACG,YAAY,EAAE;QACjCD,WAAW,CAACE,IAAI,CAAC,KAAK,EAAE,gCAAgC,EAAE,eAAe,CAAC;MAC5E;MACAF,WAAW,CAACE,IAAI,CAAC,GAAG,CAAC;MAErB,IAAIC,cAAc,GAAGN,OAAO,CAACC,OAAO,CAACK,cAAc;MAEnD,IAAIC,WAAW,GAAG,IAAI;MAEtB,IAAIC,KAAK,GAAG,CAAC;MACb,WAAW,MAAMC,UAAU,IAAId,aAAa,EAAE;QAC5C,MAAMe,GAAG,GAAGF,KAAK,GAAGlB,cAAc,CAACmB,UAAU,CAAC;QAG9C,IAAI,CAACH,cAAc,EAAE;UACnBA,cAAc,GAAGA,cAAc,IAAIf,yBAAyB,CAACkB,UAAU,CAAC;QAC1E;QAEA,KAAK,IAAIE,QAAQ,GAAGH,KAAK,EAAEG,QAAQ,GAAGD,GAAG,EAAE,EAAEC,QAAQ,EAAE;UAErD,IAAI,CAACJ,WAAW,EAAE;YAChBJ,WAAW,CAACE,IAAI,CAAC,GAAG,CAAC;UACvB;UACAF,WAAW,CAACE,IAAI,CAAC,IAAI,CAAC;UACtBE,WAAW,GAAG,KAAK;UAEnBf,cAAc,CAACiB,UAAU,EAAEE,QAAQ,EAAEL,cAAc,EAAEH,WAAW,CAAC;UAGjE,IAAIA,WAAW,CAACS,MAAM,CAAC,CAAC,EAAE;YACxB,MAAMT,WAAW,CAACU,mBAAmB,CAAC,CAAC;UACzC;UAEAL,KAAK,GAAGE,GAAG;QACb;QAEA,MAAMI,gBAAgB,GAAGX,WAAW,CAACU,mBAAmB,CAAC,CAAC;QAC1D,IAAIC,gBAAgB,CAACC,UAAU,GAAG,CAAC,EAAE;UACnC,MAAMD,gBAAgB;QACxB;MACF;MAEAX,WAAW,CAACE,IAAI,CAAC,IAAI,CAAC;MAGtBF,WAAW,CAACE,IAAI,CAAC,KAAK,CAAC;MACvB,IAAI,CAACL,OAAO,CAACC,OAAO,CAACG,YAAY,EAAE;QACjCD,WAAW,CAACE,IAAI,CAAC,GAAG,CAAC;MACvB;MAGA,MAAMF,WAAW,CAACU,mBAAmB,CAAC,CAAC;IACzC,CAAC;EAAA,SAAAG,CAAA;IAAA,OAAAC,OAAA,CAAAC,MAAA,CAAAF,CAAA;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-encoder.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/json-encoder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAkB,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEzD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAYnF"}
1
+ {"version":3,"file":"json-encoder.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/json-encoder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,EAAkB,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEzD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAYnF"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-encoder.js","names":["makeRowIterator","encodeTableAsJSON","table","options","_options$json","shape","json","strings","rowIterator","row","push","JSON","stringify","join"],"sources":["../../../src/lib/encoders/json-encoder.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Table, makeRowIterator} from '@loaders.gl/schema';\nimport type {JSONWriterOptions} from '../../json-writer';\n\n/**\n * Encode a table as a JSON string\n */\nexport function encodeTableAsJSON(table: Table, options?: JSONWriterOptions): string {\n const shape = options?.json?.shape || 'object-row-table';\n\n const strings: string[] = [];\n const rowIterator = makeRowIterator(table, shape);\n for (const row of rowIterator) {\n // Round elements etc\n // processRow(wrappedRow, table.schema);\n // const wrappedRow = options.wrapper ? options.wrapper(row) : row;\n strings.push(JSON.stringify(row));\n }\n return `[${strings.join(',')}]`;\n}\n"],"mappings":"AAGA,SAAeA,eAAe,QAAO,oBAAoB;AAMzD,OAAO,SAASC,iBAAiBA,CAACC,KAAY,EAAEC,OAA2B,EAAU;EAAA,IAAAC,aAAA;EACnF,MAAMC,KAAK,GAAG,CAAAF,OAAO,aAAPA,OAAO,wBAAAC,aAAA,GAAPD,OAAO,CAAEG,IAAI,cAAAF,aAAA,uBAAbA,aAAA,CAAeC,KAAK,KAAI,kBAAkB;EAExD,MAAME,OAAiB,GAAG,EAAE;EAC5B,MAAMC,WAAW,GAAGR,eAAe,CAACE,KAAK,EAAEG,KAAK,CAAC;EACjD,KAAK,MAAMI,GAAG,IAAID,WAAW,EAAE;IAI7BD,OAAO,CAACG,IAAI,CAACC,IAAI,CAACC,SAAS,CAACH,GAAG,CAAC,CAAC;EACnC;EACA,OAAQ,IAAGF,OAAO,CAACM,IAAI,CAAC,GAAG,CAAE,GAAE;AACjC"}
1
+ {"version":3,"file":"json-encoder.js","names":["makeRowIterator","encodeTableAsJSON","table","options","_options$json","shape","json","strings","rowIterator","row","push","JSON","stringify","join"],"sources":["../../../src/lib/encoders/json-encoder.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Table, makeRowIterator} from '@loaders.gl/schema';\nimport type {JSONWriterOptions} from '../../json-writer';\n\n/**\n * Encode a table as a JSON string\n */\nexport function encodeTableAsJSON(table: Table, options?: JSONWriterOptions): string {\n const shape = options?.json?.shape || 'object-row-table';\n\n const strings: string[] = [];\n const rowIterator = makeRowIterator(table, shape);\n for (const row of rowIterator) {\n // Round elements etc\n // processRow(wrappedRow, table.schema);\n // const wrappedRow = options.wrapper ? options.wrapper(row) : row;\n strings.push(JSON.stringify(row));\n }\n return `[${strings.join(',')}]`;\n}\n"],"mappings":"AAIA,SAAeA,eAAe,QAAO,oBAAoB;AAMzD,OAAO,SAASC,iBAAiBA,CAACC,KAAY,EAAEC,OAA2B,EAAU;EAAA,IAAAC,aAAA;EACnF,MAAMC,KAAK,GAAG,CAAAF,OAAO,aAAPA,OAAO,wBAAAC,aAAA,GAAPD,OAAO,CAAEG,IAAI,cAAAF,aAAA,uBAAbA,aAAA,CAAeC,KAAK,KAAI,kBAAkB;EAExD,MAAME,OAAiB,GAAG,EAAE;EAC5B,MAAMC,WAAW,GAAGR,eAAe,CAACE,KAAK,EAAEG,KAAK,CAAC;EACjD,KAAK,MAAMI,GAAG,IAAID,WAAW,EAAE;IAI7BD,OAAO,CAACG,IAAI,CAACC,IAAI,CAACC,SAAS,CAACH,GAAG,CAAC,CAAC;EACnC;EACA,OAAQ,IAAGF,OAAO,CAACM,IAAI,CAAC,GAAG,CAAE,GAAE;AACjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-json.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-json.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAEjD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEzD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,QAAQ,CAWpF"}
1
+ {"version":3,"file":"parse-json.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-json.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAEjD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEzD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,QAAQ,CAWpF"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-json.js","names":["makeTableFromData","parseJSONSync","jsonText","options","_options$json","json","JSON","parse","table","data","getFirstArray","error","Error","Array","isArray","value","Object","values","array"],"sources":["../../../src/lib/parsers/parse-json.ts"],"sourcesContent":["// loaders.gl, MIT license\nimport type {RowTable} from '@loaders.gl/schema';\nimport {makeTableFromData} from '@loaders.gl/schema';\nimport type {JSONLoaderOptions} from '../../json-loader';\n\nexport function parseJSONSync(jsonText: string, options: JSONLoaderOptions): RowTable {\n try {\n const json = JSON.parse(jsonText);\n if (options.json?.table) {\n const data = getFirstArray(json) || json;\n return makeTableFromData(data);\n }\n return json;\n } catch (error) {\n throw new Error('JSONLoader: failed to parse JSON');\n }\n}\n\nfunction getFirstArray(json) {\n if (Array.isArray(json)) {\n return json;\n }\n if (json && typeof json === 'object') {\n for (const value of Object.values(json)) {\n const array = getFirstArray(value);\n if (array) {\n return array;\n }\n }\n }\n return null;\n}\n"],"mappings":"AAEA,SAAQA,iBAAiB,QAAO,oBAAoB;AAGpD,OAAO,SAASC,aAAaA,CAACC,QAAgB,EAAEC,OAA0B,EAAY;EACpF,IAAI;IAAA,IAAAC,aAAA;IACF,MAAMC,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACL,QAAQ,CAAC;IACjC,KAAAE,aAAA,GAAID,OAAO,CAACE,IAAI,cAAAD,aAAA,eAAZA,aAAA,CAAcI,KAAK,EAAE;MACvB,MAAMC,IAAI,GAAGC,aAAa,CAACL,IAAI,CAAC,IAAIA,IAAI;MACxC,OAAOL,iBAAiB,CAACS,IAAI,CAAC;IAChC;IACA,OAAOJ,IAAI;EACb,CAAC,CAAC,OAAOM,KAAK,EAAE;IACd,MAAM,IAAIC,KAAK,CAAC,kCAAkC,CAAC;EACrD;AACF;AAEA,SAASF,aAAaA,CAACL,IAAI,EAAE;EAC3B,IAAIQ,KAAK,CAACC,OAAO,CAACT,IAAI,CAAC,EAAE;IACvB,OAAOA,IAAI;EACb;EACA,IAAIA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IACpC,KAAK,MAAMU,KAAK,IAAIC,MAAM,CAACC,MAAM,CAACZ,IAAI,CAAC,EAAE;MACvC,MAAMa,KAAK,GAAGR,aAAa,CAACK,KAAK,CAAC;MAClC,IAAIG,KAAK,EAAE;QACT,OAAOA,KAAK;MACd;IACF;EACF;EACA,OAAO,IAAI;AACb"}
1
+ {"version":3,"file":"parse-json.js","names":["makeTableFromData","parseJSONSync","jsonText","options","_options$json","json","JSON","parse","table","data","getFirstArray","error","Error","Array","isArray","value","Object","values","array"],"sources":["../../../src/lib/parsers/parse-json.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\nimport type {RowTable} from '@loaders.gl/schema';\nimport {makeTableFromData} from '@loaders.gl/schema';\nimport type {JSONLoaderOptions} from '../../json-loader';\n\nexport function parseJSONSync(jsonText: string, options: JSONLoaderOptions): RowTable {\n try {\n const json = JSON.parse(jsonText);\n if (options.json?.table) {\n const data = getFirstArray(json) || json;\n return makeTableFromData(data);\n }\n return json;\n } catch (error) {\n throw new Error('JSONLoader: failed to parse JSON');\n }\n}\n\nfunction getFirstArray(json) {\n if (Array.isArray(json)) {\n return json;\n }\n if (json && typeof json === 'object') {\n for (const value of Object.values(json)) {\n const array = getFirstArray(value);\n if (array) {\n return array;\n }\n }\n }\n return null;\n}\n"],"mappings":"AAGA,SAAQA,iBAAiB,QAAO,oBAAoB;AAGpD,OAAO,SAASC,aAAaA,CAACC,QAAgB,EAAEC,OAA0B,EAAY;EACpF,IAAI;IAAA,IAAAC,aAAA;IACF,MAAMC,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACL,QAAQ,CAAC;IACjC,KAAAE,aAAA,GAAID,OAAO,CAACE,IAAI,cAAAD,aAAA,eAAZA,aAAA,CAAcI,KAAK,EAAE;MACvB,MAAMC,IAAI,GAAGC,aAAa,CAACL,IAAI,CAAC,IAAIA,IAAI;MACxC,OAAOL,iBAAiB,CAACS,IAAI,CAAC;IAChC;IACA,OAAOJ,IAAI;EACb,CAAC,CAAC,OAAOM,KAAK,EAAE;IACd,MAAM,IAAIC,KAAK,CAAC,kCAAkC,CAAC;EACrD;AACF;AAEA,SAASF,aAAaA,CAACL,IAAI,EAAE;EAC3B,IAAIQ,KAAK,CAACC,OAAO,CAACT,IAAI,CAAC,EAAE;IACvB,OAAOA,IAAI;EACb;EACA,IAAIA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IACpC,KAAK,MAAMU,KAAK,IAAIC,MAAM,CAACC,MAAM,CAACZ,IAAI,CAAC,EAAE;MACvC,MAAMa,KAAK,GAAGR,aAAa,CAACK,KAAK,CAAC;MAClC,IAAIG,KAAK,EAAE;QACT,OAAOA,KAAK;MACd;IACF;EACF;EACA,OAAO,IAAI;AACb"}
@@ -1 +1 @@
1
- {"version":3,"file":"ndjson-loader.d.ts","sourceRoot":"","sources":["../src/ndjson-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAC,cAAc,EAAE,aAAa,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAQ7E,eAAO,MAAM,YAAY,EAAE,gBAAgB,CACzC,cAAc,GAAG,aAAa,EAC9B,UAAU,EACV,aAAa,CAkBd,CAAC"}
1
+ {"version":3,"file":"ndjson-loader.d.ts","sourceRoot":"","sources":["../src/ndjson-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAC,cAAc,EAAE,aAAa,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAQ7E,eAAO,MAAM,YAAY,EAAE,gBAAgB,CACzC,cAAc,GAAG,aAAa,EAC9B,UAAU,EACV,aAAa,CAkBd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ndjson-loader.js","names":["parseNDJSONSync","parseNDJSONInBatches","VERSION","__VERSION__","NDJSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","arrayBuffer","TextDecoder","decode","parseTextSync","parseInBatches","options"],"sources":["../src/ndjson-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {ObjectRowTable, ArrayRowTable, TableBatch} from '@loaders.gl/schema';\nimport {parseNDJSONSync} from './lib/parsers/parse-ndjson';\nimport {parseNDJSONInBatches} from './lib/parsers/parse-ndjson-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport const NDJSONLoader: LoaderWithParser<\n ObjectRowTable | ArrayRowTable,\n TableBatch,\n LoaderOptions\n> = {\n name: 'NDJSON',\n id: 'ndjson',\n module: 'json',\n version: VERSION,\n extensions: ['ndjson', 'jsonl'],\n mimeTypes: [\n 'application/x-ndjson',\n 'application/jsonlines', // https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html#cm-batch\n 'application/json-seq'\n ],\n category: 'table',\n text: true,\n parse: async (arrayBuffer: ArrayBuffer) => parseNDJSONSync(new TextDecoder().decode(arrayBuffer)),\n parseTextSync: parseNDJSONSync,\n parseInBatches: parseNDJSONInBatches,\n options: {}\n};\n"],"mappings":"SAIQA,eAAe;AAAA,SACfC,oBAAoB;AAI5B,MAAMC,OAAO,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAGA,WAAW,GAAG,QAAQ;AAE3E,OAAO,MAAMC,YAIZ,GAAG;EACFC,IAAI,EAAE,QAAQ;EACdC,EAAE,EAAE,QAAQ;EACZC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEN,OAAO;EAChBO,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;EAC/BC,SAAS,EAAE,CACT,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,CACvB;EACDC,QAAQ,EAAE,OAAO;EACjBC,IAAI,EAAE,IAAI;EACVC,KAAK,EAAE,MAAOC,WAAwB,IAAKd,eAAe,CAAC,IAAIe,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,WAAW,CAAC,CAAC;EACjGG,aAAa,EAAEjB,eAAe;EAC9BkB,cAAc,EAAEjB,oBAAoB;EACpCkB,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"ndjson-loader.js","names":["parseNDJSONSync","parseNDJSONInBatches","VERSION","__VERSION__","NDJSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","arrayBuffer","TextDecoder","decode","parseTextSync","parseInBatches","options"],"sources":["../src/ndjson-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {ObjectRowTable, ArrayRowTable, TableBatch} from '@loaders.gl/schema';\nimport {parseNDJSONSync} from './lib/parsers/parse-ndjson';\nimport {parseNDJSONInBatches} from './lib/parsers/parse-ndjson-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport const NDJSONLoader: LoaderWithParser<\n ObjectRowTable | ArrayRowTable,\n TableBatch,\n LoaderOptions\n> = {\n name: 'NDJSON',\n id: 'ndjson',\n module: 'json',\n version: VERSION,\n extensions: ['ndjson', 'jsonl'],\n mimeTypes: [\n 'application/x-ndjson',\n 'application/jsonlines', // https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html#cm-batch\n 'application/json-seq'\n ],\n category: 'table',\n text: true,\n parse: async (arrayBuffer: ArrayBuffer) => parseNDJSONSync(new TextDecoder().decode(arrayBuffer)),\n parseTextSync: parseNDJSONSync,\n parseInBatches: parseNDJSONInBatches,\n options: {}\n};\n"],"mappings":"SAKQA,eAAe;AAAA,SACfC,oBAAoB;AAI5B,MAAMC,OAAO,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAGA,WAAW,GAAG,QAAQ;AAE3E,OAAO,MAAMC,YAIZ,GAAG;EACFC,IAAI,EAAE,QAAQ;EACdC,EAAE,EAAE,QAAQ;EACZC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAEN,OAAO;EAChBO,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;EAC/BC,SAAS,EAAE,CACT,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,CACvB;EACDC,QAAQ,EAAE,OAAO;EACjBC,IAAI,EAAE,IAAI;EACVC,KAAK,EAAE,MAAOC,WAAwB,IAAKd,eAAe,CAAC,IAAIe,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,WAAW,CAAC,CAAC;EACjGG,aAAa,EAAEjB,eAAe;EAC9BkB,cAAc,EAAEjB,oBAAoB;EACpCkB,OAAO,EAAE,CAAC;AACZ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/json",
3
- "version": "4.0.0-beta.7",
3
+ "version": "4.0.0-beta.8",
4
4
  "description": "Framework-independent loader for JSON and streaming JSON formats",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -43,9 +43,9 @@
43
43
  "build-worker": "esbuild src/workers/geojson-worker.ts --bundle --outfile=dist/geojson-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
44
44
  },
45
45
  "dependencies": {
46
- "@loaders.gl/gis": "4.0.0-beta.7",
47
- "@loaders.gl/loader-utils": "4.0.0-beta.7",
48
- "@loaders.gl/schema": "4.0.0-beta.7"
46
+ "@loaders.gl/gis": "4.0.0-beta.8",
47
+ "@loaders.gl/loader-utils": "4.0.0-beta.8",
48
+ "@loaders.gl/schema": "4.0.0-beta.8"
49
49
  },
50
- "gitHead": "5b6cab0ab5d73212cfa37fa5da6e25ad7ef83fe5"
50
+ "gitHead": "ec3d1747b4c01c52a235455d6462680e711b4e19"
51
51
  }
@@ -1,4 +1,5 @@
1
1
  // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
2
3
 
3
4
  import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';
4
5
  import type {GeoJSON, GeoJSONTable, TableBatch} from '@loaders.gl/schema';
@@ -1,4 +1,5 @@
1
1
  // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
2
3
  // Copyright Foursquare, Inc 20222
3
4
 
4
5
  import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
2
3
 
3
4
  export type {JSONLoaderOptions} from './json-loader';
4
5
  export {JSONLoader} from './json-loader';
@@ -1,4 +1,5 @@
1
1
  // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
2
3
 
3
4
  import type {Table, TableBatch} from '@loaders.gl/schema';
4
5
  import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';
@@ -1,4 +1,5 @@
1
1
  // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
2
3
  // Copyright 2022 Foursquare Labs, Inc.
3
4
 
4
5
  /* global TextEncoder */
@@ -1,4 +1,5 @@
1
1
  // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
2
3
  // This is a fork of the clarinet library, originally BSD license (see LICENSE file)
3
4
  // loaders.gl changes:
4
5
  // - typescript port
@@ -1,4 +1,5 @@
1
1
  // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
2
3
  // Copyright 2022 Foursquare Labs, Inc.
3
4
 
4
5
  import {Feature} from '@loaders.gl/schema';
@@ -1,4 +1,5 @@
1
1
  // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
2
3
  // Copyright 2022 Foursquare Labs, Inc.
3
4
 
4
5
  import {Table, getTableLength, getTableNumCols, getTableRowAsArray} from '@loaders.gl/schema';
@@ -1,4 +1,5 @@
1
1
  // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
2
3
  // Copyright 2022 Foursquare Labs, Inc.
3
4
 
4
5
  import type {TableBatch} from '@loaders.gl/schema';
@@ -1,4 +1,5 @@
1
1
  // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
2
3
  // Copyright 2022 Foursquare Labs, Inc.
3
4
 
4
5
  import {Table, makeRowIterator} from '@loaders.gl/schema';
@@ -1,4 +1,5 @@
1
1
  // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
2
3
  import type {RowTable} from '@loaders.gl/schema';
3
4
  import {makeTableFromData} from '@loaders.gl/schema';
4
5
  import type {JSONLoaderOptions} from '../../json-loader';
@@ -1,4 +1,5 @@
1
1
  // loaders.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
2
3
 
3
4
  import {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';
4
5
  import {ObjectRowTable, ArrayRowTable, TableBatch} from '@loaders.gl/schema';