@loaders.gl/parquet 3.3.2 → 3.4.0-alpha.2

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 (119) hide show
  1. package/dist/dist.min.js +16 -16
  2. package/dist/dist.min.js.map +3 -3
  3. package/dist/es5/index.js +46 -5
  4. package/dist/es5/index.js.map +1 -1
  5. package/dist/es5/lib/arrow/convert-columns-to-row-group.js +2 -0
  6. package/dist/es5/lib/arrow/convert-columns-to-row-group.js.map +1 -0
  7. package/dist/es5/lib/arrow/convert-row-group-to-columns.js +20 -0
  8. package/dist/es5/lib/arrow/convert-row-group-to-columns.js.map +1 -0
  9. package/dist/es5/lib/arrow/convert-schema-from-parquet.js +98 -0
  10. package/dist/es5/lib/arrow/convert-schema-from-parquet.js.map +1 -0
  11. package/dist/es5/lib/{convert-schema.js → arrow/convert-schema-to-parquet.js} +5 -31
  12. package/dist/es5/lib/arrow/convert-schema-to-parquet.js.map +1 -0
  13. package/dist/es5/lib/geo/decode-geo-metadata.js +82 -0
  14. package/dist/es5/lib/geo/decode-geo-metadata.js.map +1 -0
  15. package/dist/es5/lib/geo/geoparquet-schema.js +83 -0
  16. package/dist/es5/lib/geo/geoparquet-schema.js.map +1 -0
  17. package/dist/es5/lib/parsers/parse-parquet-to-columns.js +177 -0
  18. package/dist/es5/lib/parsers/parse-parquet-to-columns.js.map +1 -0
  19. package/dist/es5/lib/{parse-parquet.js → parsers/parse-parquet-to-rows.js} +2 -2
  20. package/dist/es5/lib/parsers/parse-parquet-to-rows.js.map +1 -0
  21. package/dist/es5/lib/wip/convert-schema-deep.rs.disabled +976 -0
  22. package/dist/es5/parquet-loader.js +3 -2
  23. package/dist/es5/parquet-loader.js.map +1 -1
  24. package/dist/es5/parquet-wasm-loader.js +1 -1
  25. package/dist/es5/parquet-wasm-loader.js.map +1 -1
  26. package/dist/es5/parquet-wasm-writer.js +1 -1
  27. package/dist/es5/parquet-wasm-writer.js.map +1 -1
  28. package/dist/es5/parquet-writer.js +1 -1
  29. package/dist/es5/parquet-writer.js.map +1 -1
  30. package/dist/esm/index.js +12 -2
  31. package/dist/esm/index.js.map +1 -1
  32. package/dist/esm/lib/arrow/convert-columns-to-row-group.js +2 -0
  33. package/dist/esm/lib/arrow/convert-columns-to-row-group.js.map +1 -0
  34. package/dist/esm/lib/arrow/convert-row-group-to-columns.js +10 -0
  35. package/dist/esm/lib/arrow/convert-row-group-to-columns.js.map +1 -0
  36. package/dist/esm/lib/{convert-schema.js → arrow/convert-schema-from-parquet.js} +32 -16
  37. package/dist/esm/lib/arrow/convert-schema-from-parquet.js.map +1 -0
  38. package/dist/esm/lib/arrow/convert-schema-to-parquet.js +40 -0
  39. package/dist/esm/lib/arrow/convert-schema-to-parquet.js.map +1 -0
  40. package/dist/esm/lib/geo/decode-geo-metadata.js +64 -0
  41. package/dist/esm/lib/geo/decode-geo-metadata.js.map +1 -0
  42. package/dist/esm/lib/geo/geoparquet-schema.js +78 -0
  43. package/dist/esm/lib/geo/geoparquet-schema.js.map +1 -0
  44. package/dist/esm/lib/parsers/parse-parquet-to-columns.js +37 -0
  45. package/dist/esm/lib/parsers/parse-parquet-to-columns.js.map +1 -0
  46. package/dist/esm/lib/{parse-parquet.js → parsers/parse-parquet-to-rows.js} +2 -2
  47. package/dist/esm/lib/parsers/parse-parquet-to-rows.js.map +1 -0
  48. package/dist/esm/lib/wip/convert-schema-deep.rs.disabled +976 -0
  49. package/dist/esm/parquet-loader.js +3 -2
  50. package/dist/esm/parquet-loader.js.map +1 -1
  51. package/dist/esm/parquet-wasm-loader.js +1 -1
  52. package/dist/esm/parquet-wasm-loader.js.map +1 -1
  53. package/dist/esm/parquet-wasm-writer.js +1 -1
  54. package/dist/esm/parquet-wasm-writer.js.map +1 -1
  55. package/dist/esm/parquet-writer.js +1 -1
  56. package/dist/esm/parquet-writer.js.map +1 -1
  57. package/dist/index.d.ts +23 -3
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +24 -6
  60. package/dist/lib/arrow/convert-columns-to-row-group.d.ts +1 -0
  61. package/dist/lib/arrow/convert-columns-to-row-group.d.ts.map +1 -0
  62. package/dist/lib/arrow/convert-columns-to-row-group.js +1 -0
  63. package/dist/lib/arrow/convert-row-group-to-columns.d.ts +4 -0
  64. package/dist/lib/arrow/convert-row-group-to-columns.d.ts.map +1 -0
  65. package/dist/lib/arrow/convert-row-group-to-columns.js +12 -0
  66. package/dist/lib/arrow/convert-schema-from-parquet.d.ts +9 -0
  67. package/dist/lib/arrow/convert-schema-from-parquet.d.ts.map +1 -0
  68. package/dist/lib/{convert-schema.js → arrow/convert-schema-from-parquet.js} +30 -18
  69. package/dist/lib/arrow/convert-schema-to-parquet.d.ts +7 -0
  70. package/dist/lib/arrow/convert-schema-to-parquet.d.ts.map +1 -0
  71. package/dist/lib/arrow/convert-schema-to-parquet.js +72 -0
  72. package/dist/lib/geo/decode-geo-metadata.d.ts +31 -0
  73. package/dist/lib/geo/decode-geo-metadata.d.ts.map +1 -0
  74. package/dist/lib/geo/decode-geo-metadata.js +73 -0
  75. package/dist/lib/geo/geoparquet-schema.d.ts +80 -0
  76. package/dist/lib/geo/geoparquet-schema.d.ts.map +1 -0
  77. package/dist/lib/geo/geoparquet-schema.js +69 -0
  78. package/dist/lib/parsers/parse-parquet-to-columns.d.ts +5 -0
  79. package/dist/lib/parsers/parse-parquet-to-columns.d.ts.map +1 -0
  80. package/dist/lib/parsers/parse-parquet-to-columns.js +40 -0
  81. package/dist/lib/parsers/parse-parquet-to-rows.d.ts +4 -0
  82. package/dist/lib/parsers/parse-parquet-to-rows.d.ts.map +1 -0
  83. package/dist/lib/{parse-parquet.js → parsers/parse-parquet-to-rows.js} +1 -1
  84. package/dist/parquet-loader.d.ts +1 -0
  85. package/dist/parquet-loader.d.ts.map +1 -1
  86. package/dist/parquet-loader.js +2 -1
  87. package/dist/parquet-worker.js +19 -19
  88. package/dist/parquet-worker.js.map +3 -3
  89. package/package.json +5 -5
  90. package/src/index.ts +22 -2
  91. package/src/lib/arrow/convert-columns-to-row-group.ts +0 -0
  92. package/src/lib/arrow/convert-row-group-to-columns.ts +15 -0
  93. package/src/lib/{convert-schema.ts → arrow/convert-schema-from-parquet.ts} +41 -22
  94. package/src/lib/arrow/convert-schema-to-parquet.ts +102 -0
  95. package/src/lib/geo/decode-geo-metadata.ts +99 -0
  96. package/src/lib/geo/geoparquet-schema.ts +69 -0
  97. package/src/lib/parsers/parse-parquet-to-columns.ts +49 -0
  98. package/src/lib/{parse-parquet.ts → parsers/parse-parquet-to-rows.ts} +2 -2
  99. package/src/lib/wip/convert-schema-deep.rs.disabled +976 -0
  100. package/src/parquet-loader.ts +3 -1
  101. package/dist/es5/lib/convert-schema.js.map +0 -1
  102. package/dist/es5/lib/parse-parquet.js.map +0 -1
  103. package/dist/es5/lib/read-array-buffer.js +0 -43
  104. package/dist/es5/lib/read-array-buffer.js.map +0 -1
  105. package/dist/esm/lib/convert-schema.js.map +0 -1
  106. package/dist/esm/lib/parse-parquet.js.map +0 -1
  107. package/dist/esm/lib/read-array-buffer.js +0 -10
  108. package/dist/esm/lib/read-array-buffer.js.map +0 -1
  109. package/dist/lib/convert-schema.d.ts +0 -8
  110. package/dist/lib/convert-schema.d.ts.map +0 -1
  111. package/dist/lib/parse-parquet.d.ts +0 -4
  112. package/dist/lib/parse-parquet.d.ts.map +0 -1
  113. package/dist/lib/read-array-buffer.d.ts +0 -19
  114. package/dist/lib/read-array-buffer.d.ts.map +0 -1
  115. package/dist/lib/read-array-buffer.js +0 -29
  116. package/src/lib/read-array-buffer.ts +0 -31
  117. /package/dist/es5/lib/{convert-schema-deep.ts.disabled → wip/convert-schema-deep.java.disabled} +0 -0
  118. /package/dist/esm/lib/{convert-schema-deep.ts.disabled → wip/convert-schema-deep.java.disabled} +0 -0
  119. /package/src/lib/{convert-schema-deep.ts.disabled → wip/convert-schema-deep.java.disabled} +0 -0
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ // loaders.gl, MIT license
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /* eslint-disable camelcase */
5
+ /**
6
+ * Geoparquet JSON schema for geo metadata
7
+ * @see https://github.com/geoarrow/geoarrow/blob/main/metadata.md
8
+ * @see https://github.com/opengeospatial/geoparquet/blob/main/format-specs/geoparquet.md
9
+ */
10
+ exports.default = {
11
+ $schema: 'http://json-schema.org/draft-07/schema#',
12
+ title: 'GeoParquet',
13
+ description: 'Parquet metadata included in the geo field.',
14
+ type: 'object',
15
+ required: ['version', 'primary_column', 'columns'],
16
+ properties: {
17
+ version: { type: 'string', const: '1.0.0-beta.1' },
18
+ primary_column: { type: 'string', minLength: 1 },
19
+ columns: {
20
+ type: 'object',
21
+ minProperties: 1,
22
+ patternProperties: {
23
+ '.+': {
24
+ type: 'object',
25
+ required: ['encoding', 'geometry_types'],
26
+ properties: {
27
+ encoding: { type: 'string', const: 'WKB' },
28
+ geometry_types: {
29
+ type: 'array',
30
+ uniqueItems: true,
31
+ items: {
32
+ type: 'string',
33
+ pattern: '^(GeometryCollection|(Multi)?(Point|LineString|Polygon))( Z)?$'
34
+ }
35
+ },
36
+ crs: {
37
+ oneOf: [
38
+ {
39
+ $ref: 'https://proj.org/schemas/v0.5/projjson.schema.json'
40
+ },
41
+ { type: 'null' }
42
+ ]
43
+ },
44
+ edges: { type: 'string', enum: ['planar', 'spherical'] },
45
+ orientation: { type: 'string', const: 'counterclockwise' },
46
+ bbox: {
47
+ type: 'array',
48
+ items: { type: 'number' },
49
+ oneOf: [
50
+ {
51
+ description: '2D bbox consisting of (xmin, ymin, xmax, ymax)',
52
+ minItems: 4,
53
+ maxItems: 4
54
+ },
55
+ {
56
+ description: '3D bbox consisting of (xmin, ymin, zmin, xmax, ymax, zmax)',
57
+ minItems: 6,
58
+ maxItems: 6
59
+ }
60
+ ]
61
+ },
62
+ epoch: { type: 'number' }
63
+ }
64
+ }
65
+ },
66
+ additionalProperties: false
67
+ }
68
+ }
69
+ };
@@ -0,0 +1,5 @@
1
+ import { ColumnarTableBatch } from '@loaders.gl/schema';
2
+ import type { ParquetLoaderOptions } from '../../parquet-loader';
3
+ export declare function parseParquetInColumns(arrayBuffer: ArrayBuffer, options?: ParquetLoaderOptions): Promise<ColumnarTableBatch | null>;
4
+ export declare function parseParquetFileInColumnarBatches(blob: Blob, options?: ParquetLoaderOptions): AsyncIterable<ColumnarTableBatch>;
5
+ //# sourceMappingURL=parse-parquet-to-columns.d.ts.map
@@ -0,0 +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,EAAC,kBAAkB,EAAS,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAO/D,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,oBAAoB,sCAO/B;AAED,wBAAuB,iCAAiC,CACtD,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,kBAAkB,CAAC,CAWnC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ // loaders.gl, MIT license
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.parseParquetFileInColumnarBatches = exports.parseParquetInColumns = void 0;
5
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
6
+ const parquet_reader_1 = require("../../parquetjs/parser/parquet-reader");
7
+ const convert_schema_from_parquet_1 = require("../arrow/convert-schema-from-parquet");
8
+ const convert_row_group_to_columns_1 = require("../arrow/convert-row-group-to-columns");
9
+ const decode_geo_metadata_1 = require("../geo/decode-geo-metadata");
10
+ async function parseParquetInColumns(arrayBuffer, options) {
11
+ const blob = new Blob([arrayBuffer]);
12
+ for await (const batch of parseParquetFileInColumnarBatches(blob, options)) {
13
+ return batch;
14
+ }
15
+ return null;
16
+ }
17
+ exports.parseParquetInColumns = parseParquetInColumns;
18
+ async function* parseParquetFileInColumnarBatches(blob, options) {
19
+ const file = (0, loader_utils_1.makeReadableFile)(blob);
20
+ const reader = new parquet_reader_1.ParquetReader(file);
21
+ const parquetSchema = await reader.getSchema();
22
+ const parquetMetadata = await reader.getFileMetadata();
23
+ const schema = (0, convert_schema_from_parquet_1.convertSchemaFromParquet)(parquetSchema, parquetMetadata);
24
+ (0, decode_geo_metadata_1.unpackGeoMetadata)(schema);
25
+ const rowGroups = reader.rowGroupIterator(options?.parquet);
26
+ for await (const rowGroup of rowGroups) {
27
+ yield convertRowGroupToTableBatch(schema, rowGroup);
28
+ }
29
+ }
30
+ exports.parseParquetFileInColumnarBatches = parseParquetFileInColumnarBatches;
31
+ function convertRowGroupToTableBatch(schema, rowGroup) {
32
+ const data = (0, convert_row_group_to_columns_1.convertParquetRowGroupToColumns)(schema, rowGroup);
33
+ return {
34
+ shape: 'columnar-table',
35
+ batchType: 'data',
36
+ schema,
37
+ data,
38
+ length: rowGroup.rowCount
39
+ };
40
+ }
@@ -0,0 +1,4 @@
1
+ import type { ParquetLoaderOptions } from '../../parquet-loader';
2
+ export declare function parseParquet(arrayBuffer: ArrayBuffer, options?: ParquetLoaderOptions): Promise<import("../../parquetjs/schema/declare").ParquetRecord[] | null>;
3
+ export declare function parseParquetFileInBatches(blob: Blob, options?: ParquetLoaderOptions): AsyncGenerator<import("../../parquetjs/schema/declare").ParquetRecord[], void, unknown>;
4
+ //# sourceMappingURL=parse-parquet-to-rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-parquet-to-rows.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-rows.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAG/D,wBAAsB,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,oBAAoB,4EAM1F;AAED,wBAAuB,yBAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,oBAAoB,2FAO1F"}
@@ -4,7 +4,7 @@ exports.parseParquetFileInBatches = exports.parseParquet = void 0;
4
4
  // import type {LoaderWithParser, Loader, LoaderOptions} from '@loaders.gl/loader-utils';
5
5
  // import {ColumnarTableBatch} from '@loaders.gl/schema';
6
6
  const loader_utils_1 = require("@loaders.gl/loader-utils");
7
- const parquet_reader_1 = require("../parquetjs/parser/parquet-reader");
7
+ const parquet_reader_1 = require("../../parquetjs/parser/parquet-reader");
8
8
  async function parseParquet(arrayBuffer, options) {
9
9
  const blob = new Blob([arrayBuffer]);
10
10
  for await (const batch of parseParquetFileInBatches(blob, options)) {
@@ -4,6 +4,7 @@ export type ParquetLoaderOptions = LoaderOptions & {
4
4
  type?: 'object-row-table';
5
5
  url?: string;
6
6
  columnList?: string[] | string[][];
7
+ geoparquet?: boolean;
7
8
  };
8
9
  };
9
10
  /** ParquetJS table loader */
@@ -1 +1 @@
1
- {"version":3,"file":"parquet-loader.d.ts","sourceRoot":"","sources":["../src/parquet-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAMpE,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,kBAAkB,CAAC;QAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;KACpC,CAAC;CACH,CAAC;AAUF,6BAA6B;AAC7B,eAAO,MAAM,aAAa;;;;;;;;;;;;CAYzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAsB,CAAC"}
1
+ {"version":3,"file":"parquet-loader.d.ts","sourceRoot":"","sources":["../src/parquet-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAMpE,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,kBAAkB,CAAC;QAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;QACnC,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;CACH,CAAC;AAWF,6BAA6B;AAC7B,eAAO,MAAM,aAAa;;;;;;;;;;;;CAYzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAsB,CAAC"}
@@ -8,7 +8,8 @@ const DEFAULT_PARQUET_LOADER_OPTIONS = {
8
8
  parquet: {
9
9
  type: 'object-row-table',
10
10
  url: undefined,
11
- columnList: []
11
+ columnList: [],
12
+ geoparquet: true
12
13
  }
13
14
  };
14
15
  /** ParquetJS table loader */