@loaders.gl/parquet 4.0.3 → 4.1.0-alpha.1

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 (55) hide show
  1. package/dist/index.cjs +138 -66
  2. package/dist/index.d.ts +1 -8
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -21
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/parsers/get-parquet-schema.d.ts.map +1 -1
  7. package/dist/lib/parsers/get-parquet-schema.js.map +1 -1
  8. package/dist/lib/parsers/parse-geoparquet.d.ts +6 -0
  9. package/dist/lib/parsers/parse-geoparquet.d.ts.map +1 -0
  10. package/dist/lib/parsers/parse-geoparquet.js +56 -0
  11. package/dist/lib/parsers/parse-geoparquet.js.map +1 -0
  12. package/dist/lib/parsers/parse-parquet-to-columns.d.ts +6 -0
  13. package/dist/lib/parsers/parse-parquet-to-columns.d.ts.map +1 -1
  14. package/dist/lib/parsers/parse-parquet-to-columns.js.map +1 -1
  15. package/dist/lib/parsers/parse-parquet.d.ts +17 -0
  16. package/dist/lib/parsers/parse-parquet.d.ts.map +1 -0
  17. package/dist/lib/parsers/{parse-parquet-to-rows.js → parse-parquet.js} +2 -8
  18. package/dist/lib/parsers/parse-parquet.js.map +1 -0
  19. package/dist/lib/wasm/encode-parquet-wasm.d.ts.map +1 -1
  20. package/dist/lib/wasm/encode-parquet-wasm.js.map +1 -1
  21. package/dist/lib/wasm/load-wasm-browser.d.ts.map +1 -1
  22. package/dist/lib/wasm/load-wasm-browser.js.map +1 -1
  23. package/dist/lib/wasm/load-wasm-node.d.ts.map +1 -1
  24. package/dist/lib/wasm/load-wasm-node.js.map +1 -1
  25. package/dist/lib/wasm/load-wasm.d.ts.map +1 -1
  26. package/dist/lib/wasm/load-wasm.js.map +1 -1
  27. package/dist/lib/wasm/parse-parquet-wasm.d.ts.map +1 -1
  28. package/dist/lib/wasm/parse-parquet-wasm.js.map +1 -1
  29. package/dist/parquet-loader.d.ts +14 -4
  30. package/dist/parquet-loader.d.ts.map +1 -1
  31. package/dist/parquet-loader.js +50 -4
  32. package/dist/parquet-loader.js.map +1 -1
  33. package/dist/parquet-wasm-loader.d.ts +4 -2
  34. package/dist/parquet-wasm-loader.d.ts.map +1 -1
  35. package/dist/parquet-wasm-loader.js +6 -1
  36. package/dist/parquet-wasm-loader.js.map +1 -1
  37. package/dist/workers/parquet-worker.js +1 -1
  38. package/dist/workers/parquet-worker.js.map +1 -1
  39. package/package.json +15 -12
  40. package/src/index.ts +7 -60
  41. package/src/lib/parsers/get-parquet-schema.ts +3 -0
  42. package/src/lib/parsers/parse-geoparquet.ts +87 -0
  43. package/src/lib/parsers/parse-parquet-to-columns.ts +6 -0
  44. package/src/lib/parsers/{parse-parquet-to-rows.ts → parse-parquet.ts} +20 -21
  45. package/src/lib/wasm/encode-parquet-wasm.ts +3 -0
  46. package/src/lib/wasm/load-wasm-browser.ts +3 -0
  47. package/src/lib/wasm/load-wasm-node.ts +3 -0
  48. package/src/lib/wasm/load-wasm.ts +3 -0
  49. package/src/lib/wasm/parse-parquet-wasm.ts +3 -0
  50. package/src/parquet-loader.ts +89 -9
  51. package/src/parquet-wasm-loader.ts +10 -2
  52. package/src/workers/parquet-worker.ts +1 -1
  53. package/dist/lib/parsers/parse-parquet-to-rows.d.ts +0 -6
  54. package/dist/lib/parsers/parse-parquet-to-rows.d.ts.map +0 -1
  55. package/dist/lib/parsers/parse-parquet-to-rows.js.map +0 -1
package/dist/index.cjs CHANGED
@@ -32,12 +32,15 @@ var src_exports = {};
32
32
  __export(src_exports, {
33
33
  Buffer: () => Buffer3,
34
34
  BufferPolyfill: () => Buffer2,
35
- ParquetColumnarLoader: () => ParquetColumnarLoader2,
35
+ GeoParquetLoader: () => GeoParquetLoader,
36
+ GeoParquetWorkerLoader: () => GeoParquetWorkerLoader,
37
+ ParquetColumnarLoader: () => ParquetColumnarLoader,
38
+ ParquetColumnarWorkerLoader: () => ParquetColumnarWorkerLoader,
36
39
  ParquetEncoder: () => ParquetEncoder,
37
- ParquetLoader: () => ParquetLoader2,
40
+ ParquetLoader: () => ParquetLoader,
38
41
  ParquetReader: () => ParquetReader,
39
42
  ParquetSchema: () => ParquetSchema,
40
- ParquetWorkerLoader: () => ParquetLoader,
43
+ ParquetWorkerLoader: () => ParquetWorkerLoader,
41
44
  _ParquetWriter: () => ParquetWriter,
42
45
  convertParquetSchema: () => convertParquetSchema,
43
46
  convertParquetToArrowSchema: () => convertParquetSchema,
@@ -1776,51 +1779,8 @@ globalThis.process = globalThis.process || {};
1776
1779
  globalThis.process.env = globalThis.process.env || {};
1777
1780
  var Buffer3 = installBufferPolyfill();
1778
1781
 
1779
- // src/index.ts
1780
- var import_loader_utils = require("@loaders.gl/loader-utils");
1781
-
1782
1782
  // src/parquet-loader.ts
1783
- var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
1784
- var ParquetLoader = {
1785
- name: "Apache Parquet",
1786
- id: "parquet",
1787
- module: "parquet",
1788
- version: VERSION,
1789
- worker: true,
1790
- category: "table",
1791
- extensions: ["parquet"],
1792
- mimeTypes: ["application/octet-stream"],
1793
- binary: true,
1794
- tests: ["PAR1", "PARE"],
1795
- options: {
1796
- parquet: {
1797
- shape: "object-row-table",
1798
- columnList: [],
1799
- geoparquet: true,
1800
- url: void 0,
1801
- preserveBinary: false
1802
- }
1803
- }
1804
- };
1805
- var ParquetColumnarLoader = {
1806
- name: "Apache Parquet",
1807
- id: "parquet",
1808
- module: "parquet",
1809
- version: VERSION,
1810
- worker: true,
1811
- category: "table",
1812
- extensions: ["parquet"],
1813
- mimeTypes: ["application/octet-stream"],
1814
- binary: true,
1815
- tests: ["PAR1", "PARE"],
1816
- options: ParquetLoader.options
1817
- };
1818
- ParquetLoader.Buffer = Buffer;
1819
- ParquetColumnarLoader.Buffer = Buffer;
1820
-
1821
- // src/lib/parsers/parse-parquet-to-rows.ts
1822
- var import_gis2 = require("@loaders.gl/gis");
1823
- var import_wkt = require("@loaders.gl/wkt");
1783
+ var import_loader_utils = require("@loaders.gl/loader-utils");
1824
1784
 
1825
1785
  // src/parquetjs/codecs/plain.ts
1826
1786
  var import_int53 = __toESM(require("int53"), 1);
@@ -7199,7 +7159,7 @@ async function getSchemaFromParquetReader(reader) {
7199
7159
  return schema;
7200
7160
  }
7201
7161
 
7202
- // src/lib/parsers/parse-parquet-to-rows.ts
7162
+ // src/lib/parsers/parse-parquet.ts
7203
7163
  async function parseParquetFile(file, options) {
7204
7164
  var _a, _b;
7205
7165
  installBufferPolyfill();
@@ -7246,6 +7206,34 @@ async function* parseParquetFileInBatches(file, options) {
7246
7206
  }
7247
7207
  }
7248
7208
  function convertTable(objectRowTable, shape) {
7209
+ switch (shape) {
7210
+ case "object-row-table":
7211
+ return objectRowTable;
7212
+ case "geojson-table":
7213
+ return objectRowTable;
7214
+ default:
7215
+ throw new Error(shape);
7216
+ }
7217
+ }
7218
+
7219
+ // src/lib/parsers/parse-geoparquet.ts
7220
+ var import_gis2 = require("@loaders.gl/gis");
7221
+ var import_wkt = require("@loaders.gl/wkt");
7222
+ async function parseGeoParquetFile(file, options) {
7223
+ var _a;
7224
+ const table = await parseParquetFile(file, { ...options, shape: "object-row-table" });
7225
+ const shape = (_a = options == null ? void 0 : options.parquet) == null ? void 0 : _a.shape;
7226
+ return convertTable2(table, shape);
7227
+ }
7228
+ async function* parseGeoParquetFileInBatches(file, options) {
7229
+ var _a;
7230
+ const tableBatches = parseParquetFileInBatches(file, { ...options, shape: "object-row-table" });
7231
+ for await (const batch of tableBatches) {
7232
+ const shape = (_a = options == null ? void 0 : options.parquet) == null ? void 0 : _a.shape;
7233
+ yield convertBatch(batch, shape);
7234
+ }
7235
+ }
7236
+ function convertTable2(objectRowTable, shape) {
7249
7237
  switch (shape) {
7250
7238
  case "object-row-table":
7251
7239
  return objectRowTable;
@@ -7262,6 +7250,27 @@ function convertTable(objectRowTable, shape) {
7262
7250
  throw new Error(shape);
7263
7251
  }
7264
7252
  }
7253
+ function convertBatch(objectRowBatch, shape) {
7254
+ switch (shape) {
7255
+ case "object-row-table":
7256
+ return objectRowBatch;
7257
+ case "geojson-table":
7258
+ try {
7259
+ const geojsonTable = (0, import_gis2.convertWKBTableToGeoJSON)(objectRowBatch, objectRowBatch.schema, [
7260
+ import_wkt.WKTLoader,
7261
+ import_wkt.WKBLoader
7262
+ ]);
7263
+ return {
7264
+ ...objectRowBatch,
7265
+ ...geojsonTable
7266
+ };
7267
+ } catch (error) {
7268
+ return objectRowBatch;
7269
+ }
7270
+ default:
7271
+ throw new Error(shape);
7272
+ }
7273
+ }
7265
7274
 
7266
7275
  // src/lib/parsers/parse-parquet-to-columns.ts
7267
7276
  async function parseParquetFileInColumns(file, options) {
@@ -7295,6 +7304,87 @@ function convertRowGroupToTableBatch(rowGroup, parquetSchema, schema) {
7295
7304
  };
7296
7305
  }
7297
7306
 
7307
+ // src/parquet-loader.ts
7308
+ var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
7309
+ var ParquetWorkerLoader = {
7310
+ name: "Apache Parquet",
7311
+ id: "parquet",
7312
+ module: "parquet",
7313
+ version: VERSION,
7314
+ worker: true,
7315
+ category: "table",
7316
+ extensions: ["parquet"],
7317
+ mimeTypes: ["application/octet-stream"],
7318
+ binary: true,
7319
+ tests: ["PAR1", "PARE"],
7320
+ options: {
7321
+ parquet: {
7322
+ shape: "object-row-table",
7323
+ columnList: [],
7324
+ geoparquet: true,
7325
+ url: void 0,
7326
+ preserveBinary: false
7327
+ }
7328
+ }
7329
+ };
7330
+ var ParquetLoader = {
7331
+ ...ParquetWorkerLoader,
7332
+ parse: (arrayBuffer, options) => parseParquetFile(new import_loader_utils.BlobFile(arrayBuffer), options),
7333
+ parseFile: parseParquetFile,
7334
+ parseFileInBatches: parseParquetFileInBatches
7335
+ };
7336
+ ParquetLoader.Buffer = Buffer;
7337
+ var GeoParquetWorkerLoader = {
7338
+ name: "Apache Parquet",
7339
+ id: "parquet",
7340
+ module: "parquet",
7341
+ version: VERSION,
7342
+ worker: true,
7343
+ category: "table",
7344
+ extensions: ["parquet"],
7345
+ mimeTypes: ["application/octet-stream"],
7346
+ binary: true,
7347
+ tests: ["PAR1", "PARE"],
7348
+ options: {
7349
+ parquet: {
7350
+ shape: "geojson-table",
7351
+ columnList: [],
7352
+ geoparquet: true,
7353
+ url: void 0,
7354
+ preserveBinary: false
7355
+ }
7356
+ }
7357
+ };
7358
+ var GeoParquetLoader = {
7359
+ ...GeoParquetWorkerLoader,
7360
+ parse(arrayBuffer, options) {
7361
+ return parseGeoParquetFile(new import_loader_utils.BlobFile(arrayBuffer), options);
7362
+ },
7363
+ parseFile: parseGeoParquetFile,
7364
+ parseFileInBatches: parseGeoParquetFileInBatches
7365
+ };
7366
+ var ParquetColumnarWorkerLoader = {
7367
+ name: "Apache Parquet",
7368
+ id: "parquet",
7369
+ module: "parquet",
7370
+ version: VERSION,
7371
+ worker: true,
7372
+ category: "table",
7373
+ extensions: ["parquet"],
7374
+ mimeTypes: ["application/octet-stream"],
7375
+ binary: true,
7376
+ tests: ["PAR1", "PARE"],
7377
+ options: ParquetLoader.options
7378
+ };
7379
+ var ParquetColumnarLoader = {
7380
+ ...ParquetColumnarWorkerLoader,
7381
+ parse(arrayBuffer, options) {
7382
+ return parseParquetFileInColumns(new import_loader_utils.BlobFile(arrayBuffer), options);
7383
+ },
7384
+ parseFile: parseParquetFileInColumns,
7385
+ parseFileInBatches: parseParquetFileInColumnarBatches
7386
+ };
7387
+
7298
7388
  // src/parquet-writer.ts
7299
7389
  var VERSION2 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
7300
7390
  var ParquetWriter = {
@@ -7689,24 +7779,6 @@ function encodeFooter(schema, rowCount, rowGroups, userMetadata) {
7689
7779
  footerEncoded.write(PARQUET_MAGIC2, metadataEncoded.length + 4);
7690
7780
  return footerEncoded;
7691
7781
  }
7692
-
7693
- // src/index.ts
7694
- var ParquetLoader2 = {
7695
- ...ParquetLoader,
7696
- parse(arrayBuffer, options) {
7697
- return parseParquetFile(new import_loader_utils.BlobFile(arrayBuffer), options);
7698
- },
7699
- parseFile: parseParquetFile,
7700
- parseFileInBatches: parseParquetFileInBatches
7701
- };
7702
- var ParquetColumnarLoader2 = {
7703
- ...ParquetColumnarLoader,
7704
- parse(arrayBuffer, options) {
7705
- return parseParquetFileInColumns(new import_loader_utils.BlobFile(arrayBuffer), options);
7706
- },
7707
- parseFile: parseParquetFileInColumns,
7708
- parseFileInBatches: parseParquetFileInColumnarBatches
7709
- };
7710
7782
  /* !
7711
7783
  * The buffer module from node.js, for the browser.
7712
7784
  * @author Feross Aboukhadijeh <https://feross.org>
package/dist/index.d.ts CHANGED
@@ -1,12 +1,5 @@
1
1
  export { Buffer } from './polyfills/buffer/install-buffer-polyfill';
2
- import type { LoaderWithParser } from '@loaders.gl/loader-utils';
3
- import type { ObjectRowTable, ObjectRowTableBatch, ColumnarTable, ColumnarTableBatch, GeoJSONTable, GeoJSONTableBatch } from '@loaders.gl/schema';
4
- import { ParquetLoader as ParquetWorkerLoader, ParquetLoaderOptions } from './parquet-loader';
5
- export { ParquetWorkerLoader };
6
- /** ParquetJS table loader */
7
- export declare const ParquetLoader: LoaderWithParser<ObjectRowTable | GeoJSONTable, ObjectRowTableBatch | GeoJSONTableBatch, ParquetLoaderOptions>;
8
- /** ParquetJS table loader */
9
- export declare const ParquetColumnarLoader: LoaderWithParser<ColumnarTable, ColumnarTableBatch, ParquetLoaderOptions>;
2
+ export { ParquetWorkerLoader, ParquetLoader, GeoParquetWorkerLoader, GeoParquetLoader, ParquetColumnarWorkerLoader, ParquetColumnarLoader } from './parquet-loader';
10
3
  export { ParquetWriter as _ParquetWriter } from './parquet-writer';
11
4
  export { preloadCompressions } from './parquetjs/compression';
12
5
  export { ParquetSchema } from './parquetjs/schema/schema';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAC,MAAM,4CAA4C,CAAC;AAElE,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EACL,aAAa,IAAI,mBAAmB,EAEpC,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAW1B,OAAO,EAAC,mBAAmB,EAAC,CAAC;AAG7B,6BAA6B;AAC7B,eAAO,MAAM,aAAa,EAAE,gBAAgB,CAC1C,cAAc,GAAG,YAAY,EAC7B,mBAAmB,GAAG,iBAAiB,EACvC,oBAAoB,CAQrB,CAAC;AAEF,6BAA6B;AAC7B,eAAO,MAAM,qBAAqB,EAAE,gBAAgB,CAClD,aAAa,EACb,kBAAkB,EAClB,oBAAoB,CAQrB,CAAC;AASF,OAAO,EAAC,aAAa,IAAI,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAKjE,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,aAAa,EAAC,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAC,cAAc,EAAC,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,IAAI,2BAA2B,EACpD,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAC,cAAc,EAAE,qBAAqB,EAAC,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAC,MAAM,4CAA4C,CAAC;AAIlE,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAC,aAAa,IAAI,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAKjE,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,aAAa,EAAC,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAC,cAAc,EAAC,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,IAAI,2BAA2B,EACpD,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAC,cAAc,EAAE,qBAAqB,EAAC,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -1,25 +1,5 @@
1
1
  export { Buffer } from "./polyfills/buffer/install-buffer-polyfill.js";
2
- import { BlobFile } from '@loaders.gl/loader-utils';
3
- import { ParquetLoader as ParquetWorkerLoader, ParquetColumnarLoader as ParquetColumnarWorkerLoader } from "./parquet-loader.js";
4
- import { parseParquetFile, parseParquetFileInBatches } from "./lib/parsers/parse-parquet-to-rows.js";
5
- import { parseParquetFileInColumns, parseParquetFileInColumnarBatches } from "./lib/parsers/parse-parquet-to-columns.js";
6
- export { ParquetWorkerLoader };
7
- export const ParquetLoader = {
8
- ...ParquetWorkerLoader,
9
- parse(arrayBuffer, options) {
10
- return parseParquetFile(new BlobFile(arrayBuffer), options);
11
- },
12
- parseFile: parseParquetFile,
13
- parseFileInBatches: parseParquetFileInBatches
14
- };
15
- export const ParquetColumnarLoader = {
16
- ...ParquetColumnarWorkerLoader,
17
- parse(arrayBuffer, options) {
18
- return parseParquetFileInColumns(new BlobFile(arrayBuffer), options);
19
- },
20
- parseFile: parseParquetFileInColumns,
21
- parseFileInBatches: parseParquetFileInColumnarBatches
22
- };
2
+ export { ParquetWorkerLoader, ParquetLoader, GeoParquetWorkerLoader, GeoParquetLoader, ParquetColumnarWorkerLoader, ParquetColumnarLoader } from "./parquet-loader.js";
23
3
  export { ParquetWriter as _ParquetWriter } from "./parquet-writer.js";
24
4
  export { preloadCompressions } from "./parquetjs/compression.js";
25
5
  export { ParquetSchema } from "./parquetjs/schema/schema.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Buffer","BlobFile","ParquetLoader","ParquetWorkerLoader","ParquetColumnarLoader","ParquetColumnarWorkerLoader","parseParquetFile","parseParquetFileInBatches","parseParquetFileInColumns","parseParquetFileInColumnarBatches","parse","arrayBuffer","options","parseFile","parseFileInBatches","ParquetWriter","_ParquetWriter","preloadCompressions","ParquetSchema","ParquetReader","ParquetEncoder","convertParquetSchema","convertParquetToArrowSchema","BufferPolyfill","installBufferPolyfill"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nexport {Buffer} from './polyfills/buffer/install-buffer-polyfill';\n\nimport type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {\n ObjectRowTable,\n ObjectRowTableBatch,\n ColumnarTable,\n ColumnarTableBatch,\n GeoJSONTable,\n GeoJSONTableBatch\n} from '@loaders.gl/schema';\n\n// import {ArrowTable, ArrowTableBatch} from '@loaders.gl/arrow';\n\n// ParquetLoader\n\nimport {BlobFile} from '@loaders.gl/loader-utils';\nimport {\n ParquetLoader as ParquetWorkerLoader,\n ParquetColumnarLoader as ParquetColumnarWorkerLoader,\n ParquetLoaderOptions\n} from './parquet-loader';\nimport {parseParquetFile, parseParquetFileInBatches} from './lib/parsers/parse-parquet-to-rows';\nimport {\n parseParquetFileInColumns,\n parseParquetFileInColumnarBatches\n} from './lib/parsers/parse-parquet-to-columns';\n\n// import type {ParquetWasmLoaderOptions} from './lib/wasm/parse-parquet-wasm';\n// import {parseParquetWasm} from './lib/wasm/parse-parquet-wasm';\n// import {ParquetWasmLoader as ParquetWasmWorkerLoader} from './parquet-wasm-loader';\n\nexport {ParquetWorkerLoader};\n// export {ParquetWasmWorkerLoader};\n\n/** ParquetJS table loader */\nexport const ParquetLoader: LoaderWithParser<\n ObjectRowTable | GeoJSONTable,\n ObjectRowTableBatch | GeoJSONTableBatch,\n ParquetLoaderOptions\n> = {\n ...ParquetWorkerLoader,\n parse(arrayBuffer: ArrayBuffer, options?: ParquetLoaderOptions) {\n return parseParquetFile(new BlobFile(arrayBuffer), options);\n },\n parseFile: parseParquetFile,\n parseFileInBatches: parseParquetFileInBatches\n};\n\n/** ParquetJS table loader */\nexport const ParquetColumnarLoader: LoaderWithParser<\n ColumnarTable,\n ColumnarTableBatch,\n ParquetLoaderOptions\n> = {\n ...ParquetColumnarWorkerLoader,\n parse(arrayBuffer: ArrayBuffer, options?: ParquetLoaderOptions) {\n return parseParquetFileInColumns(new BlobFile(arrayBuffer), options);\n },\n parseFile: parseParquetFileInColumns,\n parseFileInBatches: parseParquetFileInColumnarBatches\n};\n\n// export const ParquetWasmLoader: LoaderWithParser<ArrowTable, never, ParquetWasmLoaderOptions> = {\n// ...ParquetWasmWorkerLoader,\n// parse: parseParquetWasm\n// };\n\n// ParquetWriter\n\nexport {ParquetWriter as _ParquetWriter} from './parquet-writer';\n// export {ParquetWasmWriter} from './parquet-wasm-writer';\n\n// EXPERIMENTAL - expose the internal parquetjs API\n\nexport {preloadCompressions} from './parquetjs/compression';\n\nexport {ParquetSchema} from './parquetjs/schema/schema';\nexport {ParquetReader} from './parquetjs/parser/parquet-reader';\nexport {ParquetEncoder} from './parquetjs/encoder/parquet-encoder';\n\nexport {\n convertParquetSchema,\n convertParquetSchema as convertParquetToArrowSchema\n} from './lib/arrow/convert-schema-from-parquet';\n\n// Experimental\nexport {BufferPolyfill, installBufferPolyfill} from './polyfills/buffer';\n"],"mappings":"SAGQA,MAAM;AAgBd,SAAQC,QAAQ,QAAO,0BAA0B;AAAC,SAEhDC,aAAa,IAAIC,mBAAmB,EACpCC,qBAAqB,IAAIC,2BAA2B;AAAA,SAG9CC,gBAAgB,EAAEC,yBAAyB;AAAA,SAEjDC,yBAAyB,EACzBC,iCAAiC;AAOnC,SAAQN,mBAAmB;AAI3B,OAAO,MAAMD,aAIZ,GAAG;EACF,GAAGC,mBAAmB;EACtBO,KAAKA,CAACC,WAAwB,EAAEC,OAA8B,EAAE;IAC9D,OAAON,gBAAgB,CAAC,IAAIL,QAAQ,CAACU,WAAW,CAAC,EAAEC,OAAO,CAAC;EAC7D,CAAC;EACDC,SAAS,EAAEP,gBAAgB;EAC3BQ,kBAAkB,EAAEP;AACtB,CAAC;AAGD,OAAO,MAAMH,qBAIZ,GAAG;EACF,GAAGC,2BAA2B;EAC9BK,KAAKA,CAACC,WAAwB,EAAEC,OAA8B,EAAE;IAC9D,OAAOJ,yBAAyB,CAAC,IAAIP,QAAQ,CAACU,WAAW,CAAC,EAAEC,OAAO,CAAC;EACtE,CAAC;EACDC,SAAS,EAAEL,yBAAyB;EACpCM,kBAAkB,EAAEL;AACtB,CAAC;AAAC,SASMM,aAAa,IAAIC,cAAc;AAAA,SAK/BC,mBAAmB;AAAA,SAEnBC,aAAa;AAAA,SACbC,aAAa;AAAA,SACbC,cAAc;AAAA,SAGpBC,oBAAoB,EACpBA,oBAAoB,IAAIC,2BAA2B;AAAA,SAI7CC,cAAc,EAAEC,qBAAqB"}
1
+ {"version":3,"file":"index.js","names":["Buffer","ParquetWorkerLoader","ParquetLoader","GeoParquetWorkerLoader","GeoParquetLoader","ParquetColumnarWorkerLoader","ParquetColumnarLoader","ParquetWriter","_ParquetWriter","preloadCompressions","ParquetSchema","ParquetReader","ParquetEncoder","convertParquetSchema","convertParquetToArrowSchema","BufferPolyfill","installBufferPolyfill"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nexport {Buffer} from './polyfills/buffer/install-buffer-polyfill';\n\n// import {ArrowTable, ArrowTableBatch} from '@loaders.gl/arrow';\n\nexport {\n ParquetWorkerLoader,\n ParquetLoader,\n GeoParquetWorkerLoader,\n GeoParquetLoader,\n ParquetColumnarWorkerLoader,\n ParquetColumnarLoader\n} from './parquet-loader';\n\n// import type {ParquetWasmLoaderOptions} from './lib/wasm/parse-parquet-wasm';\n// import {parseParquetWasm} from './lib/wasm/parse-parquet-wasm';\n// import {ParquetWasmLoader as ParquetWasmWorkerLoader} from './parquet-wasm-loader';\n\nexport {ParquetWriter as _ParquetWriter} from './parquet-writer';\n// export {ParquetWasmWriter} from './parquet-wasm-writer';\n\n// EXPERIMENTAL - expose the internal parquetjs API\n\nexport {preloadCompressions} from './parquetjs/compression';\n\nexport {ParquetSchema} from './parquetjs/schema/schema';\nexport {ParquetReader} from './parquetjs/parser/parquet-reader';\nexport {ParquetEncoder} from './parquetjs/encoder/parquet-encoder';\n\nexport {\n convertParquetSchema,\n convertParquetSchema as convertParquetToArrowSchema\n} from './lib/arrow/convert-schema-from-parquet';\n\n// Experimental\nexport {BufferPolyfill, installBufferPolyfill} from './polyfills/buffer';\n"],"mappings":"SAGQA,MAAM;AAAA,SAKZC,mBAAmB,EACnBC,aAAa,EACbC,sBAAsB,EACtBC,gBAAgB,EAChBC,2BAA2B,EAC3BC,qBAAqB;AAAA,SAOfC,aAAa,IAAIC,cAAc;AAAA,SAK/BC,mBAAmB;AAAA,SAEnBC,aAAa;AAAA,SACbC,aAAa;AAAA,SACbC,cAAc;AAAA,SAGpBC,oBAAoB,EACpBA,oBAAoB,IAAIC,2BAA2B;AAAA,SAI7CC,cAAc,EAAEC,qBAAqB"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-parquet-schema.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/get-parquet-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAC,aAAa,EAAC,MAAM,uCAAuC,CAAC;AAIpE,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAOvF"}
1
+ {"version":3,"file":"get-parquet-schema.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/get-parquet-schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAC,aAAa,EAAC,MAAM,uCAAuC,CAAC;AAIpE,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAOvF"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-parquet-schema.js","names":["convertParquetSchema","unpackGeoMetadata","unpackJSONStringMetadata","getSchemaFromParquetReader","reader","parquetSchema","getSchema","parquetMetadata","getFileMetadata","schema"],"sources":["../../../src/lib/parsers/get-parquet-schema.ts"],"sourcesContent":["// loaders.gl\nimport {Schema} from '@loaders.gl/schema';\nimport {ParquetReader} from '../../parquetjs/parser/parquet-reader';\nimport {convertParquetSchema} from '../arrow/convert-schema-from-parquet';\nimport {unpackGeoMetadata, unpackJSONStringMetadata} from '@loaders.gl/gis';\n\nexport async function getSchemaFromParquetReader(reader: ParquetReader): Promise<Schema> {\n const parquetSchema = await reader.getSchema();\n const parquetMetadata = await reader.getFileMetadata();\n const schema = convertParquetSchema(parquetSchema, parquetMetadata);\n unpackGeoMetadata(schema);\n unpackJSONStringMetadata(schema, 'pandas');\n return schema;\n}\n"],"mappings":"SAGQA,oBAAoB;AAC5B,SAAQC,iBAAiB,EAAEC,wBAAwB,QAAO,iBAAiB;AAE3E,OAAO,eAAeC,0BAA0BA,CAACC,MAAqB,EAAmB;EACvF,MAAMC,aAAa,GAAG,MAAMD,MAAM,CAACE,SAAS,CAAC,CAAC;EAC9C,MAAMC,eAAe,GAAG,MAAMH,MAAM,CAACI,eAAe,CAAC,CAAC;EACtD,MAAMC,MAAM,GAAGT,oBAAoB,CAACK,aAAa,EAAEE,eAAe,CAAC;EACnEN,iBAAiB,CAACQ,MAAM,CAAC;EACzBP,wBAAwB,CAACO,MAAM,EAAE,QAAQ,CAAC;EAC1C,OAAOA,MAAM;AACf"}
1
+ {"version":3,"file":"get-parquet-schema.js","names":["convertParquetSchema","unpackGeoMetadata","unpackJSONStringMetadata","getSchemaFromParquetReader","reader","parquetSchema","getSchema","parquetMetadata","getFileMetadata","schema"],"sources":["../../../src/lib/parsers/get-parquet-schema.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n// loaders.gl\nimport {Schema} from '@loaders.gl/schema';\nimport {ParquetReader} from '../../parquetjs/parser/parquet-reader';\nimport {convertParquetSchema} from '../arrow/convert-schema-from-parquet';\nimport {unpackGeoMetadata, unpackJSONStringMetadata} from '@loaders.gl/gis';\n\nexport async function getSchemaFromParquetReader(reader: ParquetReader): Promise<Schema> {\n const parquetSchema = await reader.getSchema();\n const parquetMetadata = await reader.getFileMetadata();\n const schema = convertParquetSchema(parquetSchema, parquetMetadata);\n unpackGeoMetadata(schema);\n unpackJSONStringMetadata(schema, 'pandas');\n return schema;\n}\n"],"mappings":"SAMQA,oBAAoB;AAC5B,SAAQC,iBAAiB,EAAEC,wBAAwB,QAAO,iBAAiB;AAE3E,OAAO,eAAeC,0BAA0BA,CAACC,MAAqB,EAAmB;EACvF,MAAMC,aAAa,GAAG,MAAMD,MAAM,CAACE,SAAS,CAAC,CAAC;EAC9C,MAAMC,eAAe,GAAG,MAAMH,MAAM,CAACI,eAAe,CAAC,CAAC;EACtD,MAAMC,MAAM,GAAGT,oBAAoB,CAACK,aAAa,EAAEE,eAAe,CAAC;EACnEN,iBAAiB,CAACQ,MAAM,CAAC;EACzBP,wBAAwB,CAACO,MAAM,EAAE,QAAQ,CAAC;EAC1C,OAAOA,MAAM;AACf"}
@@ -0,0 +1,6 @@
1
+ import type { ReadableFile } from '@loaders.gl/loader-utils';
2
+ import type { GeoJSONTable, GeoJSONTableBatch, ObjectRowTable, ObjectRowTableBatch } from '@loaders.gl/schema';
3
+ import type { ParquetLoaderOptions } from '../../parquet-loader';
4
+ export declare function parseGeoParquetFile(file: ReadableFile, options?: ParquetLoaderOptions): Promise<ObjectRowTable | GeoJSONTable>;
5
+ export declare function parseGeoParquetFileInBatches(file: ReadableFile, options?: ParquetLoaderOptions): AsyncIterable<ObjectRowTableBatch | GeoJSONTableBatch>;
6
+ //# sourceMappingURL=parse-geoparquet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-geoparquet.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-geoparquet.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAI/D,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,cAAc,GAAG,YAAY,CAAC,CAIxC;AAED,wBAAuB,4BAA4B,CACjD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,CAOxD"}
@@ -0,0 +1,56 @@
1
+ import { convertWKBTableToGeoJSON } from '@loaders.gl/gis';
2
+ import { WKTLoader, WKBLoader } from '@loaders.gl/wkt';
3
+ import { parseParquetFile, parseParquetFileInBatches } from "./parse-parquet.js";
4
+ export async function parseGeoParquetFile(file, options) {
5
+ var _options$parquet;
6
+ const table = await parseParquetFile(file, {
7
+ ...options,
8
+ shape: 'object-row-table'
9
+ });
10
+ const shape = options === null || options === void 0 ? void 0 : (_options$parquet = options.parquet) === null || _options$parquet === void 0 ? void 0 : _options$parquet.shape;
11
+ return convertTable(table, shape);
12
+ }
13
+ export async function* parseGeoParquetFileInBatches(file, options) {
14
+ const tableBatches = parseParquetFileInBatches(file, {
15
+ ...options,
16
+ shape: 'object-row-table'
17
+ });
18
+ for await (const batch of tableBatches) {
19
+ var _options$parquet2;
20
+ const shape = options === null || options === void 0 ? void 0 : (_options$parquet2 = options.parquet) === null || _options$parquet2 === void 0 ? void 0 : _options$parquet2.shape;
21
+ yield convertBatch(batch, shape);
22
+ }
23
+ }
24
+ function convertTable(objectRowTable, shape) {
25
+ switch (shape) {
26
+ case 'object-row-table':
27
+ return objectRowTable;
28
+ case 'geojson-table':
29
+ try {
30
+ return convertWKBTableToGeoJSON(objectRowTable, objectRowTable.schema, [WKTLoader, WKBLoader]);
31
+ } catch (error) {
32
+ return objectRowTable;
33
+ }
34
+ default:
35
+ throw new Error(shape);
36
+ }
37
+ }
38
+ function convertBatch(objectRowBatch, shape) {
39
+ switch (shape) {
40
+ case 'object-row-table':
41
+ return objectRowBatch;
42
+ case 'geojson-table':
43
+ try {
44
+ const geojsonTable = convertWKBTableToGeoJSON(objectRowBatch, objectRowBatch.schema, [WKTLoader, WKBLoader]);
45
+ return {
46
+ ...objectRowBatch,
47
+ ...geojsonTable
48
+ };
49
+ } catch (error) {
50
+ return objectRowBatch;
51
+ }
52
+ default:
53
+ throw new Error(shape);
54
+ }
55
+ }
56
+ //# sourceMappingURL=parse-geoparquet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-geoparquet.js","names":["convertWKBTableToGeoJSON","WKTLoader","WKBLoader","parseParquetFile","parseParquetFileInBatches","parseGeoParquetFile","file","options","_options$parquet","table","shape","parquet","convertTable","parseGeoParquetFileInBatches","tableBatches","batch","_options$parquet2","convertBatch","objectRowTable","schema","error","Error","objectRowBatch","geojsonTable"],"sources":["../../../src/lib/parsers/parse-geoparquet.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {ReadableFile} from '@loaders.gl/loader-utils';\nimport type {\n GeoJSONTable,\n GeoJSONTableBatch,\n ObjectRowTable,\n ObjectRowTableBatch\n} from '@loaders.gl/schema';\nimport {convertWKBTableToGeoJSON} from '@loaders.gl/gis';\nimport {WKTLoader, WKBLoader} from '@loaders.gl/wkt';\n\nimport type {ParquetLoaderOptions} from '../../parquet-loader';\n\nimport {parseParquetFile, parseParquetFileInBatches} from './parse-parquet';\n\nexport async function parseGeoParquetFile(\n file: ReadableFile,\n options?: ParquetLoaderOptions\n): Promise<ObjectRowTable | GeoJSONTable> {\n const table = await parseParquetFile(file, {...options, shape: 'object-row-table'});\n const shape = options?.parquet?.shape;\n return convertTable(table, shape);\n}\n\nexport async function* parseGeoParquetFileInBatches(\n file: ReadableFile,\n options?: ParquetLoaderOptions\n): AsyncIterable<ObjectRowTableBatch | GeoJSONTableBatch> {\n const tableBatches = parseParquetFileInBatches(file, {...options, shape: 'object-row-table'});\n\n for await (const batch of tableBatches) {\n const shape = options?.parquet?.shape;\n yield convertBatch(batch, shape);\n }\n}\n\nfunction convertTable(\n objectRowTable: ObjectRowTable,\n shape?: 'object-row-table' | 'geojson-table'\n): ObjectRowTable | GeoJSONTable {\n switch (shape) {\n case 'object-row-table':\n return objectRowTable;\n\n case 'geojson-table':\n try {\n return convertWKBTableToGeoJSON(objectRowTable, objectRowTable.schema!, [\n WKTLoader,\n WKBLoader\n ]);\n } catch (error) {\n return objectRowTable;\n }\n\n default:\n throw new Error(shape);\n }\n}\n\nfunction convertBatch(\n objectRowBatch: ObjectRowTableBatch,\n shape?: 'object-row-table' | 'geojson-table'\n): ObjectRowTableBatch | GeoJSONTableBatch {\n switch (shape) {\n case 'object-row-table':\n return objectRowBatch;\n\n case 'geojson-table':\n try {\n const geojsonTable = convertWKBTableToGeoJSON(objectRowBatch, objectRowBatch.schema!, [\n WKTLoader,\n WKBLoader\n ]);\n return {\n ...objectRowBatch,\n ...geojsonTable\n };\n } catch (error) {\n return objectRowBatch;\n }\n\n default:\n throw new Error(shape);\n }\n}\n"],"mappings":"AAUA,SAAQA,wBAAwB,QAAO,iBAAiB;AACxD,SAAQC,SAAS,EAAEC,SAAS,QAAO,iBAAiB;AAAC,SAI7CC,gBAAgB,EAAEC,yBAAyB;AAEnD,OAAO,eAAeC,mBAAmBA,CACvCC,IAAkB,EAClBC,OAA8B,EACU;EAAA,IAAAC,gBAAA;EACxC,MAAMC,KAAK,GAAG,MAAMN,gBAAgB,CAACG,IAAI,EAAE;IAAC,GAAGC,OAAO;IAAEG,KAAK,EAAE;EAAkB,CAAC,CAAC;EACnF,MAAMA,KAAK,GAAGH,OAAO,aAAPA,OAAO,wBAAAC,gBAAA,GAAPD,OAAO,CAAEI,OAAO,cAAAH,gBAAA,uBAAhBA,gBAAA,CAAkBE,KAAK;EACrC,OAAOE,YAAY,CAACH,KAAK,EAAEC,KAAK,CAAC;AACnC;AAEA,OAAO,gBAAgBG,4BAA4BA,CACjDP,IAAkB,EAClBC,OAA8B,EAC0B;EACxD,MAAMO,YAAY,GAAGV,yBAAyB,CAACE,IAAI,EAAE;IAAC,GAAGC,OAAO;IAAEG,KAAK,EAAE;EAAkB,CAAC,CAAC;EAE7F,WAAW,MAAMK,KAAK,IAAID,YAAY,EAAE;IAAA,IAAAE,iBAAA;IACtC,MAAMN,KAAK,GAAGH,OAAO,aAAPA,OAAO,wBAAAS,iBAAA,GAAPT,OAAO,CAAEI,OAAO,cAAAK,iBAAA,uBAAhBA,iBAAA,CAAkBN,KAAK;IACrC,MAAMO,YAAY,CAACF,KAAK,EAAEL,KAAK,CAAC;EAClC;AACF;AAEA,SAASE,YAAYA,CACnBM,cAA8B,EAC9BR,KAA4C,EACb;EAC/B,QAAQA,KAAK;IACX,KAAK,kBAAkB;MACrB,OAAOQ,cAAc;IAEvB,KAAK,eAAe;MAClB,IAAI;QACF,OAAOlB,wBAAwB,CAACkB,cAAc,EAAEA,cAAc,CAACC,MAAM,EAAG,CACtElB,SAAS,EACTC,SAAS,CACV,CAAC;MACJ,CAAC,CAAC,OAAOkB,KAAK,EAAE;QACd,OAAOF,cAAc;MACvB;IAEF;MACE,MAAM,IAAIG,KAAK,CAACX,KAAK,CAAC;EAC1B;AACF;AAEA,SAASO,YAAYA,CACnBK,cAAmC,EACnCZ,KAA4C,EACH;EACzC,QAAQA,KAAK;IACX,KAAK,kBAAkB;MACrB,OAAOY,cAAc;IAEvB,KAAK,eAAe;MAClB,IAAI;QACF,MAAMC,YAAY,GAAGvB,wBAAwB,CAACsB,cAAc,EAAEA,cAAc,CAACH,MAAM,EAAG,CACpFlB,SAAS,EACTC,SAAS,CACV,CAAC;QACF,OAAO;UACL,GAAGoB,cAAc;UACjB,GAAGC;QACL,CAAC;MACH,CAAC,CAAC,OAAOH,KAAK,EAAE;QACd,OAAOE,cAAc;MACvB;IAEF;MACE,MAAM,IAAID,KAAK,CAACX,KAAK,CAAC;EAC1B;AACF"}
@@ -1,6 +1,12 @@
1
1
  import type { ColumnarTable, ColumnarTableBatch } from '@loaders.gl/schema';
2
2
  import type { ReadableFile } from '@loaders.gl/loader-utils';
3
3
  import type { ParquetLoaderOptions } from '../../parquet-loader';
4
+ /**
5
+ * @deprecated
6
+ */
4
7
  export declare function parseParquetFileInColumns(file: ReadableFile, options?: ParquetLoaderOptions): Promise<ColumnarTable>;
8
+ /**
9
+ * @deprecated
10
+ */
5
11
  export declare function parseParquetFileInColumnarBatches(file: ReadableFile, options?: ParquetLoaderOptions): AsyncIterable<ColumnarTableBatch>;
6
12
  //# sourceMappingURL=parse-parquet-to-columns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-parquet-to-columns.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAE,kBAAkB,EAAS,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAQ/D,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,aAAa,CAAC,CAUxB;AAED,wBAAuB,iCAAiC,CACtD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,kBAAkB,CAAC,CAanC"}
1
+ {"version":3,"file":"parse-parquet-to-columns.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAE,kBAAkB,EAAS,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAQ/D;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,aAAa,CAAC,CAUxB;AAED;;GAEG;AACH,wBAAuB,iCAAiC,CACtD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,kBAAkB,CAAC,CAanC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-parquet-to-columns.js","names":["ParquetReader","materializeColumns","getSchemaFromParquetReader","installBufferPolyfill","parseParquetFileInColumns","file","options","batch","parseParquetFileInColumnarBatches","shape","schema","data","Error","reader","parquetSchema","getSchema","rowGroups","rowGroupIterator","parquet","rowGroup","convertRowGroupToTableBatch","batchType","length","rowCount"],"sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {ColumnarTable, ColumnarTableBatch, Schema} from '@loaders.gl/schema';\nimport type {ReadableFile} from '@loaders.gl/loader-utils';\nimport type {ParquetLoaderOptions} from '../../parquet-loader';\nimport {ParquetReader} from '../../parquetjs/parser/parquet-reader';\nimport {ParquetRowGroup} from '../../parquetjs/schema/declare';\nimport {ParquetSchema} from '../../parquetjs/schema/schema';\nimport {materializeColumns} from '../../parquetjs/schema/shred';\nimport {getSchemaFromParquetReader} from './get-parquet-schema';\nimport {installBufferPolyfill} from '../../polyfills/buffer';\n\nexport async function parseParquetFileInColumns(\n file: ReadableFile,\n options?: ParquetLoaderOptions\n): Promise<ColumnarTable> {\n installBufferPolyfill();\n for await (const batch of parseParquetFileInColumnarBatches(file, options)) {\n return {\n shape: 'columnar-table',\n schema: batch.schema,\n data: batch.data\n };\n }\n throw new Error('empty table');\n}\n\nexport async function* parseParquetFileInColumnarBatches(\n file: ReadableFile,\n options?: ParquetLoaderOptions\n): AsyncIterable<ColumnarTableBatch> {\n const reader = new ParquetReader(file);\n\n // Extract schema and geo metadata\n const schema = await getSchemaFromParquetReader(reader);\n\n const parquetSchema = await reader.getSchema();\n\n // Iterate over row batches\n const rowGroups = reader.rowGroupIterator(options?.parquet);\n for await (const rowGroup of rowGroups) {\n yield convertRowGroupToTableBatch(rowGroup, parquetSchema, schema);\n }\n}\n\nfunction convertRowGroupToTableBatch(\n rowGroup: ParquetRowGroup,\n parquetSchema: ParquetSchema,\n schema: Schema\n): ColumnarTableBatch {\n // const data = convertParquetRowGroupToColumns(schema, rowGroup);\n const data = materializeColumns(parquetSchema, rowGroup);\n return {\n shape: 'columnar-table',\n batchType: 'data',\n schema,\n data,\n length: rowGroup.rowCount\n };\n}\n"],"mappings":"SAMQA,aAAa;AAAA,SAGbC,kBAAkB;AAAA,SAClBC,0BAA0B;AAAA,SAC1BC,qBAAqB;AAE7B,OAAO,eAAeC,yBAAyBA,CAC7CC,IAAkB,EAClBC,OAA8B,EACN;EACxBH,qBAAqB,CAAC,CAAC;EACvB,WAAW,MAAMI,KAAK,IAAIC,iCAAiC,CAACH,IAAI,EAAEC,OAAO,CAAC,EAAE;IAC1E,OAAO;MACLG,KAAK,EAAE,gBAAgB;MACvBC,MAAM,EAAEH,KAAK,CAACG,MAAM;MACpBC,IAAI,EAAEJ,KAAK,CAACI;IACd,CAAC;EACH;EACA,MAAM,IAAIC,KAAK,CAAC,aAAa,CAAC;AAChC;AAEA,OAAO,gBAAgBJ,iCAAiCA,CACtDH,IAAkB,EAClBC,OAA8B,EACK;EACnC,MAAMO,MAAM,GAAG,IAAIb,aAAa,CAACK,IAAI,CAAC;EAGtC,MAAMK,MAAM,GAAG,MAAMR,0BAA0B,CAACW,MAAM,CAAC;EAEvD,MAAMC,aAAa,GAAG,MAAMD,MAAM,CAACE,SAAS,CAAC,CAAC;EAG9C,MAAMC,SAAS,GAAGH,MAAM,CAACI,gBAAgB,CAACX,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEY,OAAO,CAAC;EAC3D,WAAW,MAAMC,QAAQ,IAAIH,SAAS,EAAE;IACtC,MAAMI,2BAA2B,CAACD,QAAQ,EAAEL,aAAa,EAAEJ,MAAM,CAAC;EACpE;AACF;AAEA,SAASU,2BAA2BA,CAClCD,QAAyB,EACzBL,aAA4B,EAC5BJ,MAAc,EACM;EAEpB,MAAMC,IAAI,GAAGV,kBAAkB,CAACa,aAAa,EAAEK,QAAQ,CAAC;EACxD,OAAO;IACLV,KAAK,EAAE,gBAAgB;IACvBY,SAAS,EAAE,MAAM;IACjBX,MAAM;IACNC,IAAI;IACJW,MAAM,EAAEH,QAAQ,CAACI;EACnB,CAAC;AACH"}
1
+ {"version":3,"file":"parse-parquet-to-columns.js","names":["ParquetReader","materializeColumns","getSchemaFromParquetReader","installBufferPolyfill","parseParquetFileInColumns","file","options","batch","parseParquetFileInColumnarBatches","shape","schema","data","Error","reader","parquetSchema","getSchema","rowGroups","rowGroupIterator","parquet","rowGroup","convertRowGroupToTableBatch","batchType","length","rowCount"],"sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {ColumnarTable, ColumnarTableBatch, Schema} from '@loaders.gl/schema';\nimport type {ReadableFile} from '@loaders.gl/loader-utils';\nimport type {ParquetLoaderOptions} from '../../parquet-loader';\nimport {ParquetReader} from '../../parquetjs/parser/parquet-reader';\nimport {ParquetRowGroup} from '../../parquetjs/schema/declare';\nimport {ParquetSchema} from '../../parquetjs/schema/schema';\nimport {materializeColumns} from '../../parquetjs/schema/shred';\nimport {getSchemaFromParquetReader} from './get-parquet-schema';\nimport {installBufferPolyfill} from '../../polyfills/buffer';\n\n/**\n * @deprecated\n */\nexport async function parseParquetFileInColumns(\n file: ReadableFile,\n options?: ParquetLoaderOptions\n): Promise<ColumnarTable> {\n installBufferPolyfill();\n for await (const batch of parseParquetFileInColumnarBatches(file, options)) {\n return {\n shape: 'columnar-table',\n schema: batch.schema,\n data: batch.data\n };\n }\n throw new Error('empty table');\n}\n\n/**\n * @deprecated\n */\nexport async function* parseParquetFileInColumnarBatches(\n file: ReadableFile,\n options?: ParquetLoaderOptions\n): AsyncIterable<ColumnarTableBatch> {\n const reader = new ParquetReader(file);\n\n // Extract schema and geo metadata\n const schema = await getSchemaFromParquetReader(reader);\n\n const parquetSchema = await reader.getSchema();\n\n // Iterate over row batches\n const rowGroups = reader.rowGroupIterator(options?.parquet);\n for await (const rowGroup of rowGroups) {\n yield convertRowGroupToTableBatch(rowGroup, parquetSchema, schema);\n }\n}\n\nfunction convertRowGroupToTableBatch(\n rowGroup: ParquetRowGroup,\n parquetSchema: ParquetSchema,\n schema: Schema\n): ColumnarTableBatch {\n // const data = convertParquetRowGroupToColumns(schema, rowGroup);\n const data = materializeColumns(parquetSchema, rowGroup);\n return {\n shape: 'columnar-table',\n batchType: 'data',\n schema,\n data,\n length: rowGroup.rowCount\n };\n}\n"],"mappings":"SAMQA,aAAa;AAAA,SAGbC,kBAAkB;AAAA,SAClBC,0BAA0B;AAAA,SAC1BC,qBAAqB;AAK7B,OAAO,eAAeC,yBAAyBA,CAC7CC,IAAkB,EAClBC,OAA8B,EACN;EACxBH,qBAAqB,CAAC,CAAC;EACvB,WAAW,MAAMI,KAAK,IAAIC,iCAAiC,CAACH,IAAI,EAAEC,OAAO,CAAC,EAAE;IAC1E,OAAO;MACLG,KAAK,EAAE,gBAAgB;MACvBC,MAAM,EAAEH,KAAK,CAACG,MAAM;MACpBC,IAAI,EAAEJ,KAAK,CAACI;IACd,CAAC;EACH;EACA,MAAM,IAAIC,KAAK,CAAC,aAAa,CAAC;AAChC;AAKA,OAAO,gBAAgBJ,iCAAiCA,CACtDH,IAAkB,EAClBC,OAA8B,EACK;EACnC,MAAMO,MAAM,GAAG,IAAIb,aAAa,CAACK,IAAI,CAAC;EAGtC,MAAMK,MAAM,GAAG,MAAMR,0BAA0B,CAACW,MAAM,CAAC;EAEvD,MAAMC,aAAa,GAAG,MAAMD,MAAM,CAACE,SAAS,CAAC,CAAC;EAG9C,MAAMC,SAAS,GAAGH,MAAM,CAACI,gBAAgB,CAACX,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEY,OAAO,CAAC;EAC3D,WAAW,MAAMC,QAAQ,IAAIH,SAAS,EAAE;IACtC,MAAMI,2BAA2B,CAACD,QAAQ,EAAEL,aAAa,EAAEJ,MAAM,CAAC;EACpE;AACF;AAEA,SAASU,2BAA2BA,CAClCD,QAAyB,EACzBL,aAA4B,EAC5BJ,MAAc,EACM;EAEpB,MAAMC,IAAI,GAAGV,kBAAkB,CAACa,aAAa,EAAEK,QAAQ,CAAC;EACxD,OAAO;IACLV,KAAK,EAAE,gBAAgB;IACvBY,SAAS,EAAE,MAAM;IACjBX,MAAM;IACNC,IAAI;IACJW,MAAM,EAAEH,QAAQ,CAACI;EACnB,CAAC;AACH"}
@@ -0,0 +1,17 @@
1
+ import type { ReadableFile } from '@loaders.gl/loader-utils';
2
+ import type { ObjectRowTable, ObjectRowTableBatch } from '@loaders.gl/schema';
3
+ import type { ParquetLoaderOptions } from '../../parquet-loader';
4
+ /**
5
+ * * Parse a parquet file using parquetjs
6
+ * @param file
7
+ * @param options
8
+ * @returns
9
+ */
10
+ export declare function parseParquetFile(file: ReadableFile, options?: ParquetLoaderOptions): Promise<ObjectRowTable>;
11
+ /**
12
+ * Parse a parquet file in batches using parquetjs
13
+ * @param file
14
+ * @param options
15
+ */
16
+ export declare function parseParquetFileInBatches(file: ReadableFile, options?: ParquetLoaderOptions): AsyncIterable<ObjectRowTableBatch>;
17
+ //# sourceMappingURL=parse-parquet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-parquet.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAE5E,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAM/D;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,cAAc,CAAC,CA0BzB;AAED;;;;GAIG;AACH,wBAAuB,yBAAyB,CAC9C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,mBAAmB,CAAC,CAuBpC"}
@@ -1,5 +1,3 @@
1
- import { convertWKBTableToGeoJSON } from '@loaders.gl/gis';
2
- import { WKTLoader, WKBLoader } from '@loaders.gl/wkt';
3
1
  import { ParquetReader } from "../../parquetjs/parser/parquet-reader.js";
4
2
  import { getSchemaFromParquetReader } from "./get-parquet-schema.js";
5
3
  import { installBufferPolyfill } from "../../polyfills/buffer/index.js";
@@ -54,13 +52,9 @@ function convertTable(objectRowTable, shape) {
54
52
  case 'object-row-table':
55
53
  return objectRowTable;
56
54
  case 'geojson-table':
57
- try {
58
- return convertWKBTableToGeoJSON(objectRowTable, objectRowTable.schema, [WKTLoader, WKBLoader]);
59
- } catch (error) {
60
- return objectRowTable;
61
- }
55
+ return objectRowTable;
62
56
  default:
63
57
  throw new Error(shape);
64
58
  }
65
59
  }
66
- //# sourceMappingURL=parse-parquet-to-rows.js.map
60
+ //# sourceMappingURL=parse-parquet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-parquet.js","names":["ParquetReader","getSchemaFromParquetReader","installBufferPolyfill","parseParquetFile","file","options","_options$parquet","_options$parquet2","reader","preserveBinary","parquet","schema","rows","rowBatches","rowBatchIterator","rowBatch","row","push","objectRowTable","shape","data","convertTable","parseParquetFileInBatches","_options$parquet3","_options$parquet4","table","batchType","length","Error"],"sources":["../../../src/lib/parsers/parse-parquet.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {ReadableFile} from '@loaders.gl/loader-utils';\nimport type {ObjectRowTable, ObjectRowTableBatch} from '@loaders.gl/schema';\n\nimport type {ParquetLoaderOptions} from '../../parquet-loader';\nimport type {ParquetRow} from '../../parquetjs/schema/declare';\nimport {ParquetReader} from '../../parquetjs/parser/parquet-reader';\nimport {getSchemaFromParquetReader} from './get-parquet-schema';\nimport {installBufferPolyfill} from '../../polyfills/buffer';\n\n/**\n * * Parse a parquet file using parquetjs\n * @param file\n * @param options\n * @returns\n */\nexport async function parseParquetFile(\n file: ReadableFile,\n options?: ParquetLoaderOptions\n): Promise<ObjectRowTable> {\n installBufferPolyfill();\n\n const reader = new ParquetReader(file, {\n preserveBinary: options?.parquet?.preserveBinary\n });\n\n const schema = await getSchemaFromParquetReader(reader);\n\n const rows: ParquetRow[] = [];\n\n const rowBatches = reader.rowBatchIterator(options?.parquet);\n for await (const rowBatch of rowBatches) {\n // we have only one input batch so return\n for (const row of rowBatch) {\n rows.push(row);\n }\n }\n const objectRowTable: ObjectRowTable = {\n shape: 'object-row-table',\n schema,\n data: rows\n };\n\n const shape = options?.parquet?.shape;\n return convertTable(objectRowTable, shape);\n}\n\n/**\n * Parse a parquet file in batches using parquetjs\n * @param file\n * @param options\n */\nexport async function* parseParquetFileInBatches(\n file: ReadableFile,\n options?: ParquetLoaderOptions\n): AsyncIterable<ObjectRowTableBatch> {\n const reader = new ParquetReader(file, {\n preserveBinary: options?.parquet?.preserveBinary\n });\n\n const schema = await getSchemaFromParquetReader(reader);\n const rowBatches = reader.rowBatchIterator(options?.parquet);\n for await (const rows of rowBatches) {\n const objectRowTable: ObjectRowTable = {\n shape: 'object-row-table',\n schema,\n data: rows\n };\n const shape = options?.parquet?.shape;\n const table = convertTable(objectRowTable, shape);\n\n yield {\n batchType: 'data',\n schema,\n ...table,\n length: rows.length\n };\n }\n}\n\nfunction convertTable(\n objectRowTable: ObjectRowTable,\n shape?: 'object-row-table' | 'geojson-table'\n): ObjectRowTable {\n switch (shape) {\n case 'object-row-table':\n return objectRowTable;\n\n // Hack until geoparquet fixes up forwarded shape\n case 'geojson-table':\n return objectRowTable;\n\n default:\n throw new Error(shape);\n }\n}\n"],"mappings":"SAQQA,aAAa;AAAA,SACbC,0BAA0B;AAAA,SAC1BC,qBAAqB;AAQ7B,OAAO,eAAeC,gBAAgBA,CACpCC,IAAkB,EAClBC,OAA8B,EACL;EAAA,IAAAC,gBAAA,EAAAC,iBAAA;EACzBL,qBAAqB,CAAC,CAAC;EAEvB,MAAMM,MAAM,GAAG,IAAIR,aAAa,CAACI,IAAI,EAAE;IACrCK,cAAc,EAAEJ,OAAO,aAAPA,OAAO,wBAAAC,gBAAA,GAAPD,OAAO,CAAEK,OAAO,cAAAJ,gBAAA,uBAAhBA,gBAAA,CAAkBG;EACpC,CAAC,CAAC;EAEF,MAAME,MAAM,GAAG,MAAMV,0BAA0B,CAACO,MAAM,CAAC;EAEvD,MAAMI,IAAkB,GAAG,EAAE;EAE7B,MAAMC,UAAU,GAAGL,MAAM,CAACM,gBAAgB,CAACT,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEK,OAAO,CAAC;EAC5D,WAAW,MAAMK,QAAQ,IAAIF,UAAU,EAAE;IAEvC,KAAK,MAAMG,GAAG,IAAID,QAAQ,EAAE;MAC1BH,IAAI,CAACK,IAAI,CAACD,GAAG,CAAC;IAChB;EACF;EACA,MAAME,cAA8B,GAAG;IACrCC,KAAK,EAAE,kBAAkB;IACzBR,MAAM;IACNS,IAAI,EAAER;EACR,CAAC;EAED,MAAMO,KAAK,GAAGd,OAAO,aAAPA,OAAO,wBAAAE,iBAAA,GAAPF,OAAO,CAAEK,OAAO,cAAAH,iBAAA,uBAAhBA,iBAAA,CAAkBY,KAAK;EACrC,OAAOE,YAAY,CAACH,cAAc,EAAEC,KAAK,CAAC;AAC5C;AAOA,OAAO,gBAAgBG,yBAAyBA,CAC9ClB,IAAkB,EAClBC,OAA8B,EACM;EAAA,IAAAkB,iBAAA;EACpC,MAAMf,MAAM,GAAG,IAAIR,aAAa,CAACI,IAAI,EAAE;IACrCK,cAAc,EAAEJ,OAAO,aAAPA,OAAO,wBAAAkB,iBAAA,GAAPlB,OAAO,CAAEK,OAAO,cAAAa,iBAAA,uBAAhBA,iBAAA,CAAkBd;EACpC,CAAC,CAAC;EAEF,MAAME,MAAM,GAAG,MAAMV,0BAA0B,CAACO,MAAM,CAAC;EACvD,MAAMK,UAAU,GAAGL,MAAM,CAACM,gBAAgB,CAACT,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEK,OAAO,CAAC;EAC5D,WAAW,MAAME,IAAI,IAAIC,UAAU,EAAE;IAAA,IAAAW,iBAAA;IACnC,MAAMN,cAA8B,GAAG;MACrCC,KAAK,EAAE,kBAAkB;MACzBR,MAAM;MACNS,IAAI,EAAER;IACR,CAAC;IACD,MAAMO,KAAK,GAAGd,OAAO,aAAPA,OAAO,wBAAAmB,iBAAA,GAAPnB,OAAO,CAAEK,OAAO,cAAAc,iBAAA,uBAAhBA,iBAAA,CAAkBL,KAAK;IACrC,MAAMM,KAAK,GAAGJ,YAAY,CAACH,cAAc,EAAEC,KAAK,CAAC;IAEjD,MAAM;MACJO,SAAS,EAAE,MAAM;MACjBf,MAAM;MACN,GAAGc,KAAK;MACRE,MAAM,EAAEf,IAAI,CAACe;IACf,CAAC;EACH;AACF;AAEA,SAASN,YAAYA,CACnBH,cAA8B,EAC9BC,KAA4C,EAC5B;EAChB,QAAQA,KAAK;IACX,KAAK,kBAAkB;MACrB,OAAOD,cAAc;IAGvB,KAAK,eAAe;MAClB,OAAOA,cAAc;IAEvB;MACE,MAAM,IAAIU,KAAK,CAACT,KAAK,CAAC;EAC1B;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"encode-parquet-wasm.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/encode-parquet-wasm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAKlD,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,wBAAsB,MAAM,CAC1B,KAAK,EAAE,UAAU,EACjB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,WAAW,CAAC,CAiBtB"}
1
+ {"version":3,"file":"encode-parquet-wasm.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/encode-parquet-wasm.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAKlD,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,wBAAsB,MAAM,CAC1B,KAAK,EAAE,UAAU,EACjB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,WAAW,CAAC,CAiBtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"encode-parquet-wasm.js","names":["arrow","loadWasm","encode","table","options","_options$parquet","wasmUrl","parquet","wasm","arrowTable","data","writer","RecordBatchStreamWriter","writeAll","arrowIPCBytes","toUint8Array","writerProperties","WriterPropertiesBuilder","build","parquetBytes","writeParquet","buffer","slice","byteOffset","byteLength"],"sources":["../../../src/lib/wasm/encode-parquet-wasm.ts"],"sourcesContent":["import type {WriterOptions} from '@loaders.gl/loader-utils';\nimport type {ArrowTable} from '@loaders.gl/arrow';\n\nimport * as arrow from 'apache-arrow';\nimport {loadWasm} from './load-wasm';\n\nexport type ParquetWriterOptions = WriterOptions & {\n parquet?: {\n wasmUrl?: string;\n };\n};\n\n/**\n * Encode Arrow arrow.Table to Parquet buffer\n */\nexport async function encode(\n table: ArrowTable,\n options?: ParquetWriterOptions\n): Promise<ArrayBuffer> {\n const wasmUrl = options?.parquet?.wasmUrl;\n const wasm = await loadWasm(wasmUrl);\n\n const arrowTable: arrow.Table = table.data;\n\n // Serialize a table to the IPC format.\n const writer = arrow.RecordBatchStreamWriter.writeAll(arrowTable);\n const arrowIPCBytes = writer.toUint8Array(true);\n\n // TODO: provide options for how to write table.\n const writerProperties = new wasm.WriterPropertiesBuilder().build();\n const parquetBytes = wasm.writeParquet(arrowIPCBytes, writerProperties);\n return parquetBytes.buffer.slice(\n parquetBytes.byteOffset,\n parquetBytes.byteLength + parquetBytes.byteOffset\n );\n}\n"],"mappings":"AAGA,OAAO,KAAKA,KAAK,MAAM,cAAc;AAAC,SAC9BC,QAAQ;AAWhB,OAAO,eAAeC,MAAMA,CAC1BC,KAAiB,EACjBC,OAA8B,EACR;EAAA,IAAAC,gBAAA;EACtB,MAAMC,OAAO,GAAGF,OAAO,aAAPA,OAAO,wBAAAC,gBAAA,GAAPD,OAAO,CAAEG,OAAO,cAAAF,gBAAA,uBAAhBA,gBAAA,CAAkBC,OAAO;EACzC,MAAME,IAAI,GAAG,MAAMP,QAAQ,CAACK,OAAO,CAAC;EAEpC,MAAMG,UAAuB,GAAGN,KAAK,CAACO,IAAI;EAG1C,MAAMC,MAAM,GAAGX,KAAK,CAACY,uBAAuB,CAACC,QAAQ,CAACJ,UAAU,CAAC;EACjE,MAAMK,aAAa,GAAGH,MAAM,CAACI,YAAY,CAAC,IAAI,CAAC;EAG/C,MAAMC,gBAAgB,GAAG,IAAIR,IAAI,CAACS,uBAAuB,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;EACnE,MAAMC,YAAY,GAAGX,IAAI,CAACY,YAAY,CAACN,aAAa,EAAEE,gBAAgB,CAAC;EACvE,OAAOG,YAAY,CAACE,MAAM,CAACC,KAAK,CAC9BH,YAAY,CAACI,UAAU,EACvBJ,YAAY,CAACK,UAAU,GAAGL,YAAY,CAACI,UACzC,CAAC;AACH"}
1
+ {"version":3,"file":"encode-parquet-wasm.js","names":["arrow","loadWasm","encode","table","options","_options$parquet","wasmUrl","parquet","wasm","arrowTable","data","writer","RecordBatchStreamWriter","writeAll","arrowIPCBytes","toUint8Array","writerProperties","WriterPropertiesBuilder","build","parquetBytes","writeParquet","buffer","slice","byteOffset","byteLength"],"sources":["../../../src/lib/wasm/encode-parquet-wasm.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {WriterOptions} from '@loaders.gl/loader-utils';\nimport type {ArrowTable} from '@loaders.gl/arrow';\n\nimport * as arrow from 'apache-arrow';\nimport {loadWasm} from './load-wasm';\n\nexport type ParquetWriterOptions = WriterOptions & {\n parquet?: {\n wasmUrl?: string;\n };\n};\n\n/**\n * Encode Arrow arrow.Table to Parquet buffer\n */\nexport async function encode(\n table: ArrowTable,\n options?: ParquetWriterOptions\n): Promise<ArrayBuffer> {\n const wasmUrl = options?.parquet?.wasmUrl;\n const wasm = await loadWasm(wasmUrl);\n\n const arrowTable: arrow.Table = table.data;\n\n // Serialize a table to the IPC format.\n const writer = arrow.RecordBatchStreamWriter.writeAll(arrowTable);\n const arrowIPCBytes = writer.toUint8Array(true);\n\n // TODO: provide options for how to write table.\n const writerProperties = new wasm.WriterPropertiesBuilder().build();\n const parquetBytes = wasm.writeParquet(arrowIPCBytes, writerProperties);\n return parquetBytes.buffer.slice(\n parquetBytes.byteOffset,\n parquetBytes.byteLength + parquetBytes.byteOffset\n );\n}\n"],"mappings":"AAMA,OAAO,KAAKA,KAAK,MAAM,cAAc;AAAC,SAC9BC,QAAQ;AAWhB,OAAO,eAAeC,MAAMA,CAC1BC,KAAiB,EACjBC,OAA8B,EACR;EAAA,IAAAC,gBAAA;EACtB,MAAMC,OAAO,GAAGF,OAAO,aAAPA,OAAO,wBAAAC,gBAAA,GAAPD,OAAO,CAAEG,OAAO,cAAAF,gBAAA,uBAAhBA,gBAAA,CAAkBC,OAAO;EACzC,MAAME,IAAI,GAAG,MAAMP,QAAQ,CAACK,OAAO,CAAC;EAEpC,MAAMG,UAAuB,GAAGN,KAAK,CAACO,IAAI;EAG1C,MAAMC,MAAM,GAAGX,KAAK,CAACY,uBAAuB,CAACC,QAAQ,CAACJ,UAAU,CAAC;EACjE,MAAMK,aAAa,GAAGH,MAAM,CAACI,YAAY,CAAC,IAAI,CAAC;EAG/C,MAAMC,gBAAgB,GAAG,IAAIR,IAAI,CAACS,uBAAuB,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;EACnE,MAAMC,YAAY,GAAGX,IAAI,CAACY,YAAY,CAACN,aAAa,EAAEE,gBAAgB,CAAC;EACvE,OAAOG,YAAY,CAACE,MAAM,CAACC,KAAK,CAC9BH,YAAY,CAACI,UAAU,EACvBJ,YAAY,CAACK,UAAU,GAAGL,YAAY,CAACI,UACzC,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"load-wasm-browser.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/load-wasm-browser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAIpD,wBAAsB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,2BAU9C"}
1
+ {"version":3,"file":"load-wasm-browser.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/load-wasm-browser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAIpD,wBAAsB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,2BAU9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"load-wasm-browser.js","names":["wasmEsm","cached","loadWasm","wasmUrl","default"],"sources":["../../../src/lib/wasm/load-wasm-browser.ts"],"sourcesContent":["import * as wasmEsm from 'parquet-wasm/esm2/arrow1';\n\nlet cached: typeof wasmEsm | null = null;\n\nexport async function loadWasm(wasmUrl?: string) {\n if (cached !== null) {\n return cached;\n }\n\n // For ESM bundles, need to await the default export, which loads the WASM\n await wasmEsm.default(wasmUrl);\n cached = wasmEsm;\n\n return wasmEsm;\n}\n"],"mappings":"AAAA,OAAO,KAAKA,OAAO,MAAM,0BAA0B;AAEnD,IAAIC,MAA6B,GAAG,IAAI;AAExC,OAAO,eAAeC,QAAQA,CAACC,OAAgB,EAAE;EAC/C,IAAIF,MAAM,KAAK,IAAI,EAAE;IACnB,OAAOA,MAAM;EACf;EAGA,MAAMD,OAAO,CAACI,OAAO,CAACD,OAAO,CAAC;EAC9BF,MAAM,GAAGD,OAAO;EAEhB,OAAOA,OAAO;AAChB"}
1
+ {"version":3,"file":"load-wasm-browser.js","names":["wasmEsm","cached","loadWasm","wasmUrl","default"],"sources":["../../../src/lib/wasm/load-wasm-browser.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport * as wasmEsm from 'parquet-wasm/esm2/arrow1';\n\nlet cached: typeof wasmEsm | null = null;\n\nexport async function loadWasm(wasmUrl?: string) {\n if (cached !== null) {\n return cached;\n }\n\n // For ESM bundles, need to await the default export, which loads the WASM\n await wasmEsm.default(wasmUrl);\n cached = wasmEsm;\n\n return wasmEsm;\n}\n"],"mappings":"AAGA,OAAO,KAAKA,OAAO,MAAM,0BAA0B;AAEnD,IAAIC,MAA6B,GAAG,IAAI;AAExC,OAAO,eAAeC,QAAQA,CAACC,OAAgB,EAAE;EAC/C,IAAIF,MAAM,KAAK,IAAI,EAAE;IACnB,OAAOA,MAAM;EACf;EAGA,MAAMD,OAAO,CAACI,OAAO,CAACD,OAAO,CAAC;EAC9BF,MAAM,GAAGD,OAAO;EAEhB,OAAOA,OAAO;AAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"load-wasm-node.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/load-wasm-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AAErD,wBAAsB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,4BAE9C"}
1
+ {"version":3,"file":"load-wasm-node.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/load-wasm-node.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AAErD,wBAAsB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,4BAE9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"load-wasm-node.js","names":["wasmNode","loadWasm","wasmUrl"],"sources":["../../../src/lib/wasm/load-wasm-node.ts"],"sourcesContent":["import * as wasmNode from 'parquet-wasm/node/arrow1';\n\nexport async function loadWasm(wasmUrl?: string) {\n return wasmNode;\n}\n"],"mappings":"AAAA,OAAO,KAAKA,QAAQ,MAAM,0BAA0B;AAEpD,OAAO,eAAeC,QAAQA,CAACC,OAAgB,EAAE;EAC/C,OAAOF,QAAQ;AACjB"}
1
+ {"version":3,"file":"load-wasm-node.js","names":["wasmNode","loadWasm","wasmUrl"],"sources":["../../../src/lib/wasm/load-wasm-node.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport * as wasmNode from 'parquet-wasm/node/arrow1';\n\nexport async function loadWasm(wasmUrl?: string) {\n return wasmNode;\n}\n"],"mappings":"AAGA,OAAO,KAAKA,QAAQ,MAAM,0BAA0B;AAEpD,OAAO,eAAeC,QAAQA,CAACC,OAAgB,EAAE;EAC/C,OAAOF,QAAQ;AACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"load-wasm.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/load-wasm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"load-wasm.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/load-wasm.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"load-wasm.js","names":["loadWasm"],"sources":["../../../src/lib/wasm/load-wasm.ts"],"sourcesContent":["export {loadWasm} from './load-wasm-node';\n"],"mappings":"SAAQA,QAAQ"}
1
+ {"version":3,"file":"load-wasm.js","names":["loadWasm"],"sources":["../../../src/lib/wasm/load-wasm.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nexport {loadWasm} from './load-wasm-node';\n"],"mappings":"SAGQA,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-parquet-wasm.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/parse-parquet-wasm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAKlD,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG;IACrD,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,aAAa,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,UAAU,CAAC,CAuBrB"}
1
+ {"version":3,"file":"parse-parquet-wasm.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/parse-parquet-wasm.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAKlD,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG;IACrD,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,aAAa,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,UAAU,CAAC,CAuBrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-parquet-wasm.js","names":["serializeArrowSchema","arrow","loadWasm","parseParquetWasm","arrayBuffer","options","_options$parquet","wasmUrl","parquet","wasm","arr","Uint8Array","arrowIPCUint8Arr","readParquet","arrowIPCBuffer","buffer","slice","byteOffset","byteLength","reader","RecordBatchStreamReader","from","recordBatches","recordBatch","push","arrowTable","Table","shape","schema","data"],"sources":["../../../src/lib/wasm/parse-parquet-wasm.ts"],"sourcesContent":["// eslint-disable\nimport type {LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {ArrowTable} from '@loaders.gl/arrow';\nimport {serializeArrowSchema} from '@loaders.gl/arrow';\nimport * as arrow from 'apache-arrow';\nimport {loadWasm} from './load-wasm';\n\nexport type ParquetWasmLoaderOptions = LoaderOptions & {\n parquet?: {\n type?: 'arrow-table';\n wasmUrl?: string;\n };\n};\n\nexport async function parseParquetWasm(\n arrayBuffer: ArrayBuffer,\n options?: ParquetWasmLoaderOptions\n): Promise<ArrowTable> {\n const wasmUrl = options?.parquet?.wasmUrl;\n const wasm = await loadWasm(wasmUrl);\n\n const arr = new Uint8Array(arrayBuffer);\n const arrowIPCUint8Arr = wasm.readParquet(arr);\n const arrowIPCBuffer = arrowIPCUint8Arr.buffer.slice(\n arrowIPCUint8Arr.byteOffset,\n arrowIPCUint8Arr.byteLength + arrowIPCUint8Arr.byteOffset\n );\n\n const reader = arrow.RecordBatchStreamReader.from(arrowIPCBuffer);\n const recordBatches: arrow.RecordBatch[] = [];\n for (const recordBatch of reader) {\n recordBatches.push(recordBatch);\n }\n const arrowTable = new arrow.Table(recordBatches);\n\n return {\n shape: 'arrow-table',\n schema: serializeArrowSchema(arrowTable.schema),\n data: arrowTable\n };\n}\n"],"mappings":"AAGA,SAAQA,oBAAoB,QAAO,mBAAmB;AACtD,OAAO,KAAKC,KAAK,MAAM,cAAc;AAAC,SAC9BC,QAAQ;AAShB,OAAO,eAAeC,gBAAgBA,CACpCC,WAAwB,EACxBC,OAAkC,EACb;EAAA,IAAAC,gBAAA;EACrB,MAAMC,OAAO,GAAGF,OAAO,aAAPA,OAAO,wBAAAC,gBAAA,GAAPD,OAAO,CAAEG,OAAO,cAAAF,gBAAA,uBAAhBA,gBAAA,CAAkBC,OAAO;EACzC,MAAME,IAAI,GAAG,MAAMP,QAAQ,CAACK,OAAO,CAAC;EAEpC,MAAMG,GAAG,GAAG,IAAIC,UAAU,CAACP,WAAW,CAAC;EACvC,MAAMQ,gBAAgB,GAAGH,IAAI,CAACI,WAAW,CAACH,GAAG,CAAC;EAC9C,MAAMI,cAAc,GAAGF,gBAAgB,CAACG,MAAM,CAACC,KAAK,CAClDJ,gBAAgB,CAACK,UAAU,EAC3BL,gBAAgB,CAACM,UAAU,GAAGN,gBAAgB,CAACK,UACjD,CAAC;EAED,MAAME,MAAM,GAAGlB,KAAK,CAACmB,uBAAuB,CAACC,IAAI,CAACP,cAAc,CAAC;EACjE,MAAMQ,aAAkC,GAAG,EAAE;EAC7C,KAAK,MAAMC,WAAW,IAAIJ,MAAM,EAAE;IAChCG,aAAa,CAACE,IAAI,CAACD,WAAW,CAAC;EACjC;EACA,MAAME,UAAU,GAAG,IAAIxB,KAAK,CAACyB,KAAK,CAACJ,aAAa,CAAC;EAEjD,OAAO;IACLK,KAAK,EAAE,aAAa;IACpBC,MAAM,EAAE5B,oBAAoB,CAACyB,UAAU,CAACG,MAAM,CAAC;IAC/CC,IAAI,EAAEJ;EACR,CAAC;AACH"}
1
+ {"version":3,"file":"parse-parquet-wasm.js","names":["serializeArrowSchema","arrow","loadWasm","parseParquetWasm","arrayBuffer","options","_options$parquet","wasmUrl","parquet","wasm","arr","Uint8Array","arrowIPCUint8Arr","readParquet","arrowIPCBuffer","buffer","slice","byteOffset","byteLength","reader","RecordBatchStreamReader","from","recordBatches","recordBatch","push","arrowTable","Table","shape","schema","data"],"sources":["../../../src/lib/wasm/parse-parquet-wasm.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n// eslint-disable\nimport type {LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {ArrowTable} from '@loaders.gl/arrow';\nimport {serializeArrowSchema} from '@loaders.gl/arrow';\nimport * as arrow from 'apache-arrow';\nimport {loadWasm} from './load-wasm';\n\nexport type ParquetWasmLoaderOptions = LoaderOptions & {\n parquet?: {\n type?: 'arrow-table';\n wasmUrl?: string;\n };\n};\n\nexport async function parseParquetWasm(\n arrayBuffer: ArrayBuffer,\n options?: ParquetWasmLoaderOptions\n): Promise<ArrowTable> {\n const wasmUrl = options?.parquet?.wasmUrl;\n const wasm = await loadWasm(wasmUrl);\n\n const arr = new Uint8Array(arrayBuffer);\n const arrowIPCUint8Arr = wasm.readParquet(arr);\n const arrowIPCBuffer = arrowIPCUint8Arr.buffer.slice(\n arrowIPCUint8Arr.byteOffset,\n arrowIPCUint8Arr.byteLength + arrowIPCUint8Arr.byteOffset\n );\n\n const reader = arrow.RecordBatchStreamReader.from(arrowIPCBuffer);\n const recordBatches: arrow.RecordBatch[] = [];\n for (const recordBatch of reader) {\n recordBatches.push(recordBatch);\n }\n const arrowTable = new arrow.Table(recordBatches);\n\n return {\n shape: 'arrow-table',\n schema: serializeArrowSchema(arrowTable.schema),\n data: arrowTable\n };\n}\n"],"mappings":"AAMA,SAAQA,oBAAoB,QAAO,mBAAmB;AACtD,OAAO,KAAKC,KAAK,MAAM,cAAc;AAAC,SAC9BC,QAAQ;AAShB,OAAO,eAAeC,gBAAgBA,CACpCC,WAAwB,EACxBC,OAAkC,EACb;EAAA,IAAAC,gBAAA;EACrB,MAAMC,OAAO,GAAGF,OAAO,aAAPA,OAAO,wBAAAC,gBAAA,GAAPD,OAAO,CAAEG,OAAO,cAAAF,gBAAA,uBAAhBA,gBAAA,CAAkBC,OAAO;EACzC,MAAME,IAAI,GAAG,MAAMP,QAAQ,CAACK,OAAO,CAAC;EAEpC,MAAMG,GAAG,GAAG,IAAIC,UAAU,CAACP,WAAW,CAAC;EACvC,MAAMQ,gBAAgB,GAAGH,IAAI,CAACI,WAAW,CAACH,GAAG,CAAC;EAC9C,MAAMI,cAAc,GAAGF,gBAAgB,CAACG,MAAM,CAACC,KAAK,CAClDJ,gBAAgB,CAACK,UAAU,EAC3BL,gBAAgB,CAACM,UAAU,GAAGN,gBAAgB,CAACK,UACjD,CAAC;EAED,MAAME,MAAM,GAAGlB,KAAK,CAACmB,uBAAuB,CAACC,IAAI,CAACP,cAAc,CAAC;EACjE,MAAMQ,aAAkC,GAAG,EAAE;EAC7C,KAAK,MAAMC,WAAW,IAAIJ,MAAM,EAAE;IAChCG,aAAa,CAACE,IAAI,CAACD,WAAW,CAAC;EACjC;EACA,MAAME,UAAU,GAAG,IAAIxB,KAAK,CAACyB,KAAK,CAACJ,aAAa,CAAC;EAEjD,OAAO;IACLK,KAAK,EAAE,aAAa;IACpBC,MAAM,EAAE5B,oBAAoB,CAACyB,UAAU,CAACG,MAAM,CAAC;IAC/CC,IAAI,EAAEJ;EACR,CAAC;AACH"}