@loaders.gl/parquet 4.2.0-alpha.6 → 4.2.0-beta.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.
@@ -3,7 +3,7 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
  // __VERSION__ is injected by babel-plugin-version-inline
5
5
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
6
- export const VERSION = typeof "4.2.0-alpha.5" !== 'undefined' ? "4.2.0-alpha.5" : 'latest';
6
+ export const VERSION = typeof "4.2.0-alpha.6" !== 'undefined' ? "4.2.0-alpha.6" : 'latest';
7
7
  export const PARQUET_WASM_URL = 'https://unpkg.com/parquet-wasm@0.6.0-beta.1/esm/arrow1_bg.wasm';
8
8
  /**
9
9
  * Parquet File Magic String
@@ -1 +1 @@
1
- {"version":3,"file":"parse-parquet-to-columns.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"names":[],"mappings":"AAIA,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,gCAA6B;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
+ {"version":3,"file":"parse-parquet-to-columns.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet-to-columns.ts"],"names":[],"mappings":"AAIA,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,gCAA6B;AAS/D;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,aAAa,CAAC,CAYxB;AAED;;GAEG;AACH,wBAAuB,iCAAiC,CACtD,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,kBAAkB,CAAC,CAgBnC"}
@@ -5,11 +5,13 @@ import { ParquetReader } from "../../parquetjs/parser/parquet-reader.js";
5
5
  import { materializeColumns } from "../../parquetjs/schema/shred.js";
6
6
  import { getSchemaFromParquetReader } from "./get-parquet-schema.js";
7
7
  import { installBufferPolyfill } from "../../polyfills/buffer/index.js";
8
+ import { preloadCompressions } from "../../parquetjs/compression.js";
8
9
  /**
9
10
  * @deprecated
10
11
  */
11
12
  export async function parseParquetFileInColumns(file, options) {
12
13
  installBufferPolyfill();
14
+ await preloadCompressions(options);
13
15
  for await (const batch of parseParquetFileInColumnarBatches(file, options)) {
14
16
  return {
15
17
  shape: 'columnar-table',
@@ -23,6 +25,8 @@ export async function parseParquetFileInColumns(file, options) {
23
25
  * @deprecated
24
26
  */
25
27
  export async function* parseParquetFileInColumnarBatches(file, options) {
28
+ installBufferPolyfill();
29
+ await preloadCompressions(options);
26
30
  const reader = new ParquetReader(file);
27
31
  // Extract schema and geo metadata
28
32
  const schema = await getSchemaFromParquetReader(reader);
@@ -1 +1 @@
1
- {"version":3,"file":"parse-parquet.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet.ts"],"names":[],"mappings":"AAIA,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,gCAA6B;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
+ {"version":3,"file":"parse-parquet.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-parquet.ts"],"names":[],"mappings":"AAIA,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,gCAA6B;AAO/D;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,cAAc,CAAC,CA2BzB;AAED;;;;GAIG;AACH,wBAAuB,yBAAyB,CAC9C,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,aAAa,CAAC,mBAAmB,CAAC,CA0BpC"}
@@ -4,6 +4,7 @@
4
4
  import { ParquetReader } from "../../parquetjs/parser/parquet-reader.js";
5
5
  import { getSchemaFromParquetReader } from "./get-parquet-schema.js";
6
6
  import { installBufferPolyfill } from "../../polyfills/buffer/index.js";
7
+ import { preloadCompressions } from "../../parquetjs/compression.js";
7
8
  /**
8
9
  * * Parse a parquet file using parquetjs
9
10
  * @param file
@@ -12,6 +13,7 @@ import { installBufferPolyfill } from "../../polyfills/buffer/index.js";
12
13
  */
13
14
  export async function parseParquetFile(file, options) {
14
15
  installBufferPolyfill();
16
+ await preloadCompressions(options);
15
17
  const reader = new ParquetReader(file, {
16
18
  preserveBinary: options?.parquet?.preserveBinary
17
19
  });
@@ -38,6 +40,8 @@ export async function parseParquetFile(file, options) {
38
40
  * @param options
39
41
  */
40
42
  export async function* parseParquetFileInBatches(file, options) {
43
+ installBufferPolyfill();
44
+ await preloadCompressions(options);
41
45
  const reader = new ParquetReader(file, {
42
46
  preserveBinary: options?.parquet?.preserveBinary
43
47
  });
@@ -1,5 +1,8 @@
1
- import type { Loader, LoaderWithParser, LoaderOptions } from '@loaders.gl/loader-utils';
1
+ import type { LoaderOptions } from '@loaders.gl/loader-utils';
2
2
  import type { ObjectRowTable, ObjectRowTableBatch, GeoJSONTable, GeoJSONTableBatch, ColumnarTable, ColumnarTableBatch } from '@loaders.gl/schema';
3
+ import { parseParquetFile, parseParquetFileInBatches } from "./lib/parsers/parse-parquet.js";
4
+ import { parseGeoParquetFile, parseGeoParquetFileInBatches } from "./lib/parsers/parse-geoparquet.js";
5
+ import { parseParquetFileInColumns, parseParquetFileInColumnarBatches } from "./lib/parsers/parse-parquet-to-columns.js";
3
6
  export { Buffer } from "./polyfills/buffer/install-buffer-polyfill.js";
4
7
  /** Options for the parquet loader */
5
8
  export type ParquetLoaderOptions = LoaderOptions & {
@@ -20,14 +23,155 @@ export type ParquetLoaderOptions = LoaderOptions & {
20
23
  /**
21
24
  * ParquetJS table loader
22
25
  */
23
- export declare const ParquetWorkerLoader: Loader<ObjectRowTable, ObjectRowTableBatch, ParquetLoaderOptions>;
26
+ export declare const ParquetWorkerLoader: {
27
+ readonly dataType: ObjectRowTable;
28
+ readonly batchType: ObjectRowTableBatch;
29
+ readonly name: "Apache Parquet";
30
+ readonly id: "parquet";
31
+ readonly module: "parquet";
32
+ readonly version: any;
33
+ readonly worker: true;
34
+ readonly category: "table";
35
+ readonly extensions: ["parquet"];
36
+ readonly mimeTypes: ["application/octet-stream"];
37
+ readonly binary: true;
38
+ readonly tests: ["PAR1", "PARE"];
39
+ readonly options: {
40
+ readonly parquet: {
41
+ readonly shape: "object-row-table";
42
+ readonly columnList: [];
43
+ readonly geoparquet: true;
44
+ readonly url: undefined;
45
+ readonly preserveBinary: false;
46
+ };
47
+ };
48
+ };
24
49
  /** ParquetJS table loader */
25
- export declare const ParquetLoader: LoaderWithParser<ObjectRowTable | GeoJSONTable, ObjectRowTableBatch | GeoJSONTableBatch, ParquetLoaderOptions>;
26
- export declare const GeoParquetWorkerLoader: Loader<GeoJSONTable, GeoJSONTableBatch, ParquetLoaderOptions>;
50
+ export declare const ParquetLoader: {
51
+ readonly dataType: ObjectRowTable | GeoJSONTable;
52
+ readonly batchType: ObjectRowTableBatch | GeoJSONTableBatch;
53
+ readonly parse: (arrayBuffer: ArrayBuffer, options?: ParquetLoaderOptions) => Promise<ObjectRowTable>;
54
+ readonly parseFile: typeof parseParquetFile;
55
+ readonly parseFileInBatches: typeof parseParquetFileInBatches;
56
+ readonly name: "Apache Parquet";
57
+ readonly id: "parquet";
58
+ readonly module: "parquet";
59
+ readonly version: any;
60
+ readonly worker: true;
61
+ readonly category: "table";
62
+ readonly extensions: ["parquet"];
63
+ readonly mimeTypes: ["application/octet-stream"];
64
+ readonly binary: true;
65
+ readonly tests: ["PAR1", "PARE"];
66
+ readonly options: {
67
+ readonly parquet: {
68
+ readonly shape: "object-row-table";
69
+ readonly columnList: [];
70
+ readonly geoparquet: true;
71
+ readonly url: undefined;
72
+ readonly preserveBinary: false;
73
+ };
74
+ };
75
+ };
76
+ export declare const GeoParquetWorkerLoader: {
77
+ readonly dataType: GeoJSONTable;
78
+ readonly batchType: GeoJSONTableBatch;
79
+ readonly name: "Apache Parquet";
80
+ readonly id: "parquet";
81
+ readonly module: "parquet";
82
+ readonly version: any;
83
+ readonly worker: true;
84
+ readonly category: "table";
85
+ readonly extensions: ["parquet"];
86
+ readonly mimeTypes: ["application/octet-stream"];
87
+ readonly binary: true;
88
+ readonly tests: ["PAR1", "PARE"];
89
+ readonly options: {
90
+ readonly parquet: {
91
+ readonly shape: "geojson-table";
92
+ readonly columnList: [];
93
+ readonly geoparquet: true;
94
+ readonly url: undefined;
95
+ readonly preserveBinary: false;
96
+ };
97
+ };
98
+ };
27
99
  /** ParquetJS table loader */
28
- export declare const GeoParquetLoader: LoaderWithParser<ObjectRowTable | GeoJSONTable, ObjectRowTableBatch | GeoJSONTableBatch, ParquetLoaderOptions>;
100
+ export declare const GeoParquetLoader: {
101
+ readonly parse: (arrayBuffer: ArrayBuffer, options?: ParquetLoaderOptions) => Promise<ObjectRowTable | GeoJSONTable>;
102
+ readonly parseFile: typeof parseGeoParquetFile;
103
+ readonly parseFileInBatches: typeof parseGeoParquetFileInBatches;
104
+ readonly dataType: GeoJSONTable;
105
+ readonly batchType: GeoJSONTableBatch;
106
+ readonly name: "Apache Parquet";
107
+ readonly id: "parquet";
108
+ readonly module: "parquet";
109
+ readonly version: any;
110
+ readonly worker: true;
111
+ readonly category: "table";
112
+ readonly extensions: ["parquet"];
113
+ readonly mimeTypes: ["application/octet-stream"];
114
+ readonly binary: true;
115
+ readonly tests: ["PAR1", "PARE"];
116
+ readonly options: {
117
+ readonly parquet: {
118
+ readonly shape: "geojson-table";
119
+ readonly columnList: [];
120
+ readonly geoparquet: true;
121
+ readonly url: undefined;
122
+ readonly preserveBinary: false;
123
+ };
124
+ };
125
+ };
29
126
  /** @deprecated Test to see if we can improve perf of parquetjs loader */
30
- export declare const ParquetColumnarWorkerLoader: Loader<ColumnarTable, ColumnarTableBatch, ParquetLoaderOptions>;
127
+ export declare const ParquetColumnarWorkerLoader: {
128
+ readonly dataType: ColumnarTable;
129
+ readonly batchType: ColumnarTableBatch;
130
+ readonly name: "Apache Parquet";
131
+ readonly id: "parquet";
132
+ readonly module: "parquet";
133
+ readonly version: any;
134
+ readonly worker: true;
135
+ readonly category: "table";
136
+ readonly extensions: ["parquet"];
137
+ readonly mimeTypes: ["application/octet-stream"];
138
+ readonly binary: true;
139
+ readonly tests: ["PAR1", "PARE"];
140
+ readonly options: {
141
+ readonly parquet: {
142
+ readonly shape: "object-row-table";
143
+ readonly columnList: [];
144
+ readonly geoparquet: true;
145
+ readonly url: undefined;
146
+ readonly preserveBinary: false;
147
+ };
148
+ };
149
+ };
31
150
  /** @deprecated Test to see if we can improve perf of parquetjs loader */
32
- export declare const ParquetColumnarLoader: LoaderWithParser<ColumnarTable, ColumnarTableBatch, ParquetLoaderOptions>;
151
+ export declare const ParquetColumnarLoader: {
152
+ readonly parse: (arrayBuffer: ArrayBuffer, options?: ParquetLoaderOptions) => Promise<ColumnarTable>;
153
+ readonly parseFile: typeof parseParquetFileInColumns;
154
+ readonly parseFileInBatches: typeof parseParquetFileInColumnarBatches;
155
+ readonly dataType: ColumnarTable;
156
+ readonly batchType: ColumnarTableBatch;
157
+ readonly name: "Apache Parquet";
158
+ readonly id: "parquet";
159
+ readonly module: "parquet";
160
+ readonly version: any;
161
+ readonly worker: true;
162
+ readonly category: "table";
163
+ readonly extensions: ["parquet"];
164
+ readonly mimeTypes: ["application/octet-stream"];
165
+ readonly binary: true;
166
+ readonly tests: ["PAR1", "PARE"];
167
+ readonly options: {
168
+ readonly parquet: {
169
+ readonly shape: "object-row-table";
170
+ readonly columnList: [];
171
+ readonly geoparquet: true;
172
+ readonly url: undefined;
173
+ readonly preserveBinary: false;
174
+ };
175
+ };
176
+ };
33
177
  //# sourceMappingURL=parquet-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parquet-loader.d.ts","sourceRoot":"","sources":["../src/parquet-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAU5B,OAAO,EAAC,MAAM,EAAC,sDAAmD;AAMlE,qCAAqC;AACrC,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,qCAAqC;IACrC,OAAO,CAAC,EAAE;QACR,qCAAqC;QACrC,KAAK,CAAC,EAAE,kBAAkB,GAAG,eAAe,CAAC;QAC7C,0FAA0F;QAC1F,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;QACnC,0DAA0D;QAC1D,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,qFAAqF;QACrF,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,gEAAgE;QAChE,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CACtC,cAAc,EACd,mBAAmB,EACnB,oBAAoB,CAqBrB,CAAC;AAEF,6BAA6B;AAC7B,eAAO,MAAM,aAAa,EAAE,gBAAgB,CAC1C,cAAc,GAAG,YAAY,EAC7B,mBAAmB,GAAG,iBAAiB,EACvC,oBAAoB,CAQrB,CAAC;AAMF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,CAqB9F,CAAC;AAEJ,6BAA6B;AAC7B,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,CAC7C,cAAc,GAAG,YAAY,EAC7B,mBAAmB,GAAG,iBAAiB,EACvC,oBAAoB,CAQrB,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAC9C,aAAa,EACb,kBAAkB,EAClB,oBAAoB,CAarB,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,EAAE,gBAAgB,CAClD,aAAa,EACb,kBAAkB,EAClB,oBAAoB,CAQrB,CAAC"}
1
+ {"version":3,"file":"parquet-loader.d.ts","sourceRoot":"","sources":["../src/parquet-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAC,gBAAgB,EAAE,yBAAyB,EAAC,uCAAoC;AACxF,OAAO,EAAC,mBAAmB,EAAE,4BAA4B,EAAC,0CAAuC;AACjG,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EAClC,kDAA+C;AAEhD,OAAO,EAAC,MAAM,EAAC,sDAAmD;AAMlE,qCAAqC;AACrC,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,qCAAqC;IACrC,OAAO,CAAC,EAAE;QACR,qCAAqC;QACrC,KAAK,CAAC,EAAE,kBAAkB,GAAG,eAAe,CAAC;QAC7C,0FAA0F;QAC1F,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;QACnC,0DAA0D;QAC1D,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,qFAAqF;QACrF,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,gEAAgE;QAChE,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;CAuBsD,CAAC;AAEvF,6BAA6B;AAC7B,eAAO,MAAM,aAAa;;;kCAMH,WAAW,YAAY,oBAAoB;;;;;;;;;;;;;;;;;;;;;;CASjE,CAAC;AAMF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;CAuB+C,CAAC;AAEnF,6BAA6B;AAC7B,eAAO,MAAM,gBAAgB;kCAGR,WAAW,YAAY,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;CAS/D,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;CAe4C,CAAC;AAErF,yEAAyE;AACzE,eAAO,MAAM,qBAAqB;kCAEb,WAAW,YAAY,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;CAK8B,CAAC"}
@@ -8,11 +8,13 @@ import { parseParquetFileInColumns, parseParquetFileInColumnarBatches } from "./
8
8
  export { Buffer } from "./polyfills/buffer/install-buffer-polyfill.js";
9
9
  // __VERSION__ is injected by babel-plugin-version-inline
10
10
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
11
- const VERSION = typeof "4.2.0-alpha.5" !== 'undefined' ? "4.2.0-alpha.5" : 'latest';
11
+ const VERSION = typeof "4.2.0-alpha.6" !== 'undefined' ? "4.2.0-alpha.6" : 'latest';
12
12
  /**
13
13
  * ParquetJS table loader
14
14
  */
15
15
  export const ParquetWorkerLoader = {
16
+ dataType: null,
17
+ batchType: null,
16
18
  name: 'Apache Parquet',
17
19
  id: 'parquet',
18
20
  module: 'parquet',
@@ -36,6 +38,8 @@ export const ParquetWorkerLoader = {
36
38
  /** ParquetJS table loader */
37
39
  export const ParquetLoader = {
38
40
  ...ParquetWorkerLoader,
41
+ dataType: null,
42
+ batchType: null,
39
43
  parse: (arrayBuffer, options) => parseParquetFile(new BlobFile(arrayBuffer), options),
40
44
  parseFile: parseParquetFile,
41
45
  parseFileInBatches: parseParquetFileInBatches
@@ -44,6 +48,8 @@ export const ParquetLoader = {
44
48
  // @ts-ignore
45
49
  ParquetLoader.Buffer = Buffer;
46
50
  export const GeoParquetWorkerLoader = {
51
+ dataType: null,
52
+ batchType: null,
47
53
  name: 'Apache Parquet',
48
54
  id: 'parquet',
49
55
  module: 'parquet',
@@ -75,6 +81,8 @@ export const GeoParquetLoader = {
75
81
  };
76
82
  /** @deprecated Test to see if we can improve perf of parquetjs loader */
77
83
  export const ParquetColumnarWorkerLoader = {
84
+ dataType: null,
85
+ batchType: null,
78
86
  name: 'Apache Parquet',
79
87
  id: 'parquet',
80
88
  module: 'parquet',
@@ -1,4 +1,4 @@
1
- import type { Loader, LoaderWithParser, LoaderOptions } from '@loaders.gl/loader-utils';
1
+ import type { LoaderOptions } from '@loaders.gl/loader-utils';
2
2
  import type { ArrowTable } from '@loaders.gl/arrow';
3
3
  /** Parquet WASM loader options */
4
4
  export type ParquetWasmLoaderOptions = LoaderOptions & {
@@ -8,7 +8,26 @@ export type ParquetWasmLoaderOptions = LoaderOptions & {
8
8
  };
9
9
  };
10
10
  /** Parquet WASM table loader */
11
- export declare const ParquetWasmWorkerLoader: Loader<ArrowTable, never, ParquetWasmLoaderOptions>;
11
+ export declare const ParquetWasmWorkerLoader: {
12
+ readonly dataType: ArrowTable;
13
+ readonly batchType: never;
14
+ readonly name: "Apache Parquet";
15
+ readonly id: "parquet-wasm";
16
+ readonly module: "parquet";
17
+ readonly version: any;
18
+ readonly worker: false;
19
+ readonly category: "table";
20
+ readonly extensions: ["parquet"];
21
+ readonly mimeTypes: ["application/octet-stream"];
22
+ readonly binary: true;
23
+ readonly tests: ["PAR1", "PARE"];
24
+ readonly options: {
25
+ readonly parquet: {
26
+ readonly type: "arrow-table";
27
+ readonly wasmUrl: "https://unpkg.com/parquet-wasm@0.6.0-beta.1/esm/arrow1_bg.wasm";
28
+ };
29
+ };
30
+ };
12
31
  /** Parquet WASM table loader */
13
- export declare const ParquetWasmLoader: LoaderWithParser<ArrowTable, never, ParquetWasmLoaderOptions>;
32
+ export declare const ParquetWasmLoader: any;
14
33
  //# sourceMappingURL=parquet-wasm-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parquet-wasm-loader.d.ts","sourceRoot":"","sources":["../src/parquet-wasm-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAKlD,kCAAkC;AAClC,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,gCAAgC;AAChC,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,wBAAwB,CAiBvF,CAAC;AAEF,gCAAgC;AAChC,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,CAAC,UAAU,EAAE,KAAK,EAAE,wBAAwB,CAM3F,CAAC"}
1
+ {"version":3,"file":"parquet-wasm-loader.d.ts","sourceRoot":"","sources":["../src/parquet-wasm-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAKlD,kCAAkC;AAClC,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,gCAAgC;AAChC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;CAoBoC,CAAC;AAEzE,gCAAgC;AAChC,eAAO,MAAM,iBAAiB,KAMoD,CAAC"}
@@ -5,6 +5,8 @@ import { parseParquetWasm } from "./lib/wasm/parse-parquet-wasm.js";
5
5
  import { VERSION, PARQUET_WASM_URL } from "./lib/constants.js";
6
6
  /** Parquet WASM table loader */
7
7
  export const ParquetWasmWorkerLoader = {
8
+ dataType: null,
9
+ batchType: null,
8
10
  name: 'Apache Parquet',
9
11
  id: 'parquet-wasm',
10
12
  module: 'parquet',
@@ -1,5 +1,3 @@
1
- import type { WriterWithEncoder } from '@loaders.gl/loader-utils';
2
- import type { ArrowTable } from '@loaders.gl/arrow';
3
1
  import type { WriterOptions } from '@loaders.gl/loader-utils';
4
2
  export type ParquetWriterOptions = WriterOptions & {
5
3
  parquet?: {
@@ -7,5 +5,5 @@ export type ParquetWriterOptions = WriterOptions & {
7
5
  };
8
6
  };
9
7
  /** Parquet WASM writer */
10
- export declare const ParquetWasmWriter: WriterWithEncoder<ArrowTable, never, ParquetWriterOptions>;
8
+ export declare const ParquetWasmWriter: any;
11
9
  //# sourceMappingURL=parquet-wasm-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parquet-wasm-writer.d.ts","sourceRoot":"","sources":["../src/parquet-wasm-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAI5D,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,0BAA0B;AAC1B,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,CAAC,UAAU,EAAE,KAAK,EAAE,oBAAoB,CAiBxF,CAAC"}
1
+ {"version":3,"file":"parquet-wasm-writer.d.ts","sourceRoot":"","sources":["../src/parquet-wasm-writer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAI5D,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,0BAA0B;AAC1B,eAAO,MAAM,iBAAiB,KAiBiD,CAAC"}
@@ -1,5 +1,17 @@
1
- import type { WriterWithEncoder } from '@loaders.gl/loader-utils';
2
- import { Table, TableBatch } from '@loaders.gl/schema';
1
+ import { Table } from '@loaders.gl/schema';
3
2
  export type ParquetWriterOptions = {};
4
- export declare const ParquetWriter: WriterWithEncoder<Table, TableBatch, ParquetWriterOptions>;
3
+ export declare const ParquetWriter: {
4
+ readonly name: "Apache Parquet";
5
+ readonly id: "parquet";
6
+ readonly module: "parquet";
7
+ readonly version: any;
8
+ readonly extensions: ["parquet"];
9
+ readonly mimeTypes: ["application/octet-stream"];
10
+ readonly binary: true;
11
+ readonly options: {};
12
+ readonly encode: (data: Table, options: ParquetWriterOptions | undefined) => Promise<ArrayBuffer>;
13
+ readonly encodeSync: typeof encodeSync;
14
+ };
15
+ declare function encodeSync(data: any, options?: ParquetWriterOptions): ArrayBuffer;
16
+ export {};
5
17
  //# sourceMappingURL=parquet-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parquet-writer.d.ts","sourceRoot":"","sources":["../src/parquet-writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,KAAK,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAMrD,MAAM,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEtC,eAAO,MAAM,aAAa,EAAE,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,oBAAoB,CAWpF,CAAC"}
1
+ {"version":3,"file":"parquet-writer.d.ts","sourceRoot":"","sources":["../src/parquet-writer.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,KAAK,EAAa,MAAM,oBAAoB,CAAC;AAMrD,MAAM,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEtC,eAAO,MAAM,aAAa;;;;;;;;;;;CAWqD,CAAC;AAEhF,iBAAS,UAAU,CAAC,IAAI,KAAA,EAAE,OAAO,CAAC,EAAE,oBAAoB,eAEvD"}
@@ -3,7 +3,7 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
  // __VERSION__ is injected by babel-plugin-version-inline
5
5
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
6
- const VERSION = typeof "4.2.0-alpha.5" !== 'undefined' ? "4.2.0-alpha.5" : 'latest';
6
+ const VERSION = typeof "4.2.0-alpha.6" !== 'undefined' ? "4.2.0-alpha.6" : 'latest';
7
7
  export const ParquetWriter = {
8
8
  name: 'Apache Parquet',
9
9
  id: 'parquet',
@@ -10,7 +10,7 @@ export declare const PARQUET_COMPRESSION_METHODS: Record<ParquetCompression, Com
10
10
  * @param options.modules External library dependencies
11
11
  */
12
12
  export declare function preloadCompressions(options?: {
13
- modules: {
13
+ modules?: {
14
14
  [key: string]: any;
15
15
  };
16
16
  }): Promise<void[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/parquetjs/compression.ts"],"names":[],"mappings":";AAIA,OAAO,EACL,WAAW,EAQZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAC,kBAAkB,EAAC,4BAAyB;AAsCpD;;GAEG;AAEH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,kBAAkB,EAAE,WAAW,CAW/E,CAAC;AAEF;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,CAAC,EAAE;IAAC,OAAO,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAA;CAAC,mBAGlF;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQxF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAQjB;AAKD,wBAAgB,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMvF"}
1
+ {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/parquetjs/compression.ts"],"names":[],"mappings":";AAIA,OAAO,EACL,WAAW,EAQZ,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAC,kBAAkB,EAAC,4BAAyB;AAsCpD;;GAEG;AAEH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,kBAAkB,EAAE,WAAW,CAW/E,CAAC;AAEF;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,CAAC,EAAE;IAAC,OAAO,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAA;CAAC,mBAMnF;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQxF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAQjB;AAKD,wBAAgB,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMvF"}
@@ -4,6 +4,7 @@
4
4
  import { NoCompression, GZipCompression, SnappyCompression, BrotliCompression,
5
5
  // LZOCompression,
6
6
  LZ4Compression, ZstdCompression } from '@loaders.gl/compression';
7
+ import { registerJSModules } from '@loaders.gl/loader-utils';
7
8
  /** We can't use loaders-util buffer handling since we are dependent on buffers even in the browser */
8
9
  function toBuffer(arrayBuffer) {
9
10
  return Buffer.from(arrayBuffer);
@@ -56,8 +57,9 @@ export const PARQUET_COMPRESSION_METHODS = {
56
57
  * @param options.modules External library dependencies
57
58
  */
58
59
  export async function preloadCompressions(options) {
60
+ registerJSModules(options?.modules);
59
61
  const compressions = Object.values(PARQUET_COMPRESSION_METHODS);
60
- return await Promise.all(compressions.map((compression) => compression.preload()));
62
+ return await Promise.all(compressions.map((compression) => compression.preload(options?.modules)));
61
63
  }
62
64
  /**
63
65
  * Deflate a value using compression method `method`
@@ -296,6 +296,7 @@ function fromPrimitive_JSON(value) {
296
296
  return JSON.parse(value);
297
297
  }
298
298
  function toPrimitive_BSON(value) {
299
+ // @ts-ignore
299
300
  const arrayBuffer = BSONWriter.encodeSync?.(value);
300
301
  return Buffer.from(arrayBuffer);
301
302
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/parquet",
3
- "version": "4.2.0-alpha.6",
3
+ "version": "4.2.0-beta.1",
4
4
  "description": "Framework-independent loader for Apache Parquet files",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -60,13 +60,13 @@
60
60
  "base64-js and ieee754 are used by buffer polyfill"
61
61
  ],
62
62
  "dependencies": {
63
- "@loaders.gl/arrow": "4.2.0-alpha.6",
64
- "@loaders.gl/bson": "4.2.0-alpha.6",
65
- "@loaders.gl/compression": "4.2.0-alpha.6",
66
- "@loaders.gl/gis": "4.2.0-alpha.6",
67
- "@loaders.gl/loader-utils": "4.2.0-alpha.6",
68
- "@loaders.gl/schema": "4.2.0-alpha.6",
69
- "@loaders.gl/wkt": "4.2.0-alpha.6",
63
+ "@loaders.gl/arrow": "4.2.0-beta.1",
64
+ "@loaders.gl/bson": "4.2.0-beta.1",
65
+ "@loaders.gl/compression": "4.2.0-beta.1",
66
+ "@loaders.gl/gis": "4.2.0-beta.1",
67
+ "@loaders.gl/loader-utils": "4.2.0-beta.1",
68
+ "@loaders.gl/schema": "4.2.0-beta.1",
69
+ "@loaders.gl/wkt": "4.2.0-beta.1",
70
70
  "async-mutex": "^0.2.2",
71
71
  "base64-js": "^1.3.1",
72
72
  "brotli": "^1.3.2",
@@ -93,5 +93,5 @@
93
93
  "@loaders.gl/core": "^4.0.0",
94
94
  "apache-arrow": ">= 15.0.0"
95
95
  },
96
- "gitHead": "37bd8ca71763529f18727ee4bf29dd176aa914ca"
96
+ "gitHead": "c386a9196516fe3ff24847b40e6c77be039cf905"
97
97
  }
@@ -11,6 +11,7 @@ import {ParquetSchema} from '../../parquetjs/schema/schema';
11
11
  import {materializeColumns} from '../../parquetjs/schema/shred';
12
12
  import {getSchemaFromParquetReader} from './get-parquet-schema';
13
13
  import {installBufferPolyfill} from '../../polyfills/buffer/index';
14
+ import {preloadCompressions} from '../../parquetjs/compression';
14
15
 
15
16
  /**
16
17
  * @deprecated
@@ -20,6 +21,8 @@ export async function parseParquetFileInColumns(
20
21
  options?: ParquetLoaderOptions
21
22
  ): Promise<ColumnarTable> {
22
23
  installBufferPolyfill();
24
+ await preloadCompressions(options);
25
+
23
26
  for await (const batch of parseParquetFileInColumnarBatches(file, options)) {
24
27
  return {
25
28
  shape: 'columnar-table',
@@ -37,6 +40,9 @@ export async function* parseParquetFileInColumnarBatches(
37
40
  file: ReadableFile,
38
41
  options?: ParquetLoaderOptions
39
42
  ): AsyncIterable<ColumnarTableBatch> {
43
+ installBufferPolyfill();
44
+ await preloadCompressions(options);
45
+
40
46
  const reader = new ParquetReader(file);
41
47
 
42
48
  // Extract schema and geo metadata
@@ -10,6 +10,7 @@ import type {ParquetRow} from '../../parquetjs/schema/declare';
10
10
  import {ParquetReader} from '../../parquetjs/parser/parquet-reader';
11
11
  import {getSchemaFromParquetReader} from './get-parquet-schema';
12
12
  import {installBufferPolyfill} from '../../polyfills/buffer/index';
13
+ import {preloadCompressions} from '../../parquetjs/compression';
13
14
 
14
15
  /**
15
16
  * * Parse a parquet file using parquetjs
@@ -22,6 +23,7 @@ export async function parseParquetFile(
22
23
  options?: ParquetLoaderOptions
23
24
  ): Promise<ObjectRowTable> {
24
25
  installBufferPolyfill();
26
+ await preloadCompressions(options);
25
27
 
26
28
  const reader = new ParquetReader(file, {
27
29
  preserveBinary: options?.parquet?.preserveBinary
@@ -57,6 +59,9 @@ export async function* parseParquetFileInBatches(
57
59
  file: ReadableFile,
58
60
  options?: ParquetLoaderOptions
59
61
  ): AsyncIterable<ObjectRowTableBatch> {
62
+ installBufferPolyfill();
63
+ await preloadCompressions(options);
64
+
60
65
  const reader = new ParquetReader(file, {
61
66
  preserveBinary: options?.parquet?.preserveBinary
62
67
  });