@loaders.gl/json 4.4.0-alpha.1 → 4.4.0-alpha.9

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 (62) hide show
  1. package/dist/dist.dev.js +260 -24
  2. package/dist/dist.min.js +11 -11
  3. package/dist/geojson-loader.d.ts.map +1 -1
  4. package/dist/geojson-loader.js +4 -2
  5. package/dist/geojson-loader.js.map +1 -0
  6. package/dist/geojson-worker.js +239 -22
  7. package/dist/geojson-writer.js +1 -0
  8. package/dist/geojson-writer.js.map +1 -0
  9. package/dist/index.cjs +222 -30
  10. package/dist/index.cjs.map +4 -4
  11. package/dist/index.js +1 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/json-loader.js +2 -1
  14. package/dist/json-loader.js.map +1 -0
  15. package/dist/json-writer.js +1 -0
  16. package/dist/json-writer.js.map +1 -0
  17. package/dist/lib/clarinet/clarinet.js +1 -0
  18. package/dist/lib/clarinet/clarinet.js.map +1 -0
  19. package/dist/lib/encoder-utils/encode-table-row.js +1 -0
  20. package/dist/lib/encoder-utils/encode-table-row.js.map +1 -0
  21. package/dist/lib/encoder-utils/encode-utils.js +1 -0
  22. package/dist/lib/encoder-utils/encode-utils.js.map +1 -0
  23. package/dist/lib/encoder-utils/utf8-encoder.d.ts +1 -1
  24. package/dist/lib/encoder-utils/utf8-encoder.d.ts.map +1 -1
  25. package/dist/lib/encoder-utils/utf8-encoder.js +3 -1
  26. package/dist/lib/encoder-utils/utf8-encoder.js.map +1 -0
  27. package/dist/lib/encoders/geojson-encoder.js +1 -0
  28. package/dist/lib/encoders/geojson-encoder.js.map +1 -0
  29. package/dist/lib/encoders/json-encoder.js +1 -0
  30. package/dist/lib/encoders/json-encoder.js.map +1 -0
  31. package/dist/lib/json-parser/json-parser.js +1 -0
  32. package/dist/lib/json-parser/json-parser.js.map +1 -0
  33. package/dist/lib/json-parser/streaming-json-parser.js +1 -0
  34. package/dist/lib/json-parser/streaming-json-parser.js.map +1 -0
  35. package/dist/lib/jsonpath/jsonpath.d.ts.map +1 -1
  36. package/dist/lib/jsonpath/jsonpath.js +213 -18
  37. package/dist/lib/jsonpath/jsonpath.js.map +1 -0
  38. package/dist/lib/parsers/parse-json-in-batches.d.ts +1 -1
  39. package/dist/lib/parsers/parse-json-in-batches.d.ts.map +1 -1
  40. package/dist/lib/parsers/parse-json-in-batches.js +5 -4
  41. package/dist/lib/parsers/parse-json-in-batches.js.map +1 -0
  42. package/dist/lib/parsers/parse-json.js +1 -0
  43. package/dist/lib/parsers/parse-json.js.map +1 -0
  44. package/dist/lib/parsers/parse-ndjson-in-batches.d.ts +1 -1
  45. package/dist/lib/parsers/parse-ndjson-in-batches.d.ts.map +1 -1
  46. package/dist/lib/parsers/parse-ndjson-in-batches.js +4 -3
  47. package/dist/lib/parsers/parse-ndjson-in-batches.js.map +1 -0
  48. package/dist/lib/parsers/parse-ndjson.js +1 -0
  49. package/dist/lib/parsers/parse-ndjson.js.map +1 -0
  50. package/dist/ndgeoson-loader.js +2 -1
  51. package/dist/ndgeoson-loader.js.map +1 -0
  52. package/dist/ndjson-loader.js +2 -1
  53. package/dist/ndjson-loader.js.map +1 -0
  54. package/dist/workers/geojson-worker.js +1 -0
  55. package/dist/workers/geojson-worker.js.map +1 -0
  56. package/package.json +10 -7
  57. package/src/geojson-loader.ts +2 -1
  58. package/src/json-loader.ts +3 -1
  59. package/src/lib/encoder-utils/utf8-encoder.ts +4 -2
  60. package/src/lib/jsonpath/jsonpath.ts +268 -21
  61. package/src/lib/parsers/parse-json-in-batches.ts +7 -5
  62. package/src/lib/parsers/parse-ndjson-in-batches.ts +7 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-encoder.js","sourceRoot":"","sources":["../../../src/lib/encoders/json-encoder.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AACpC,uCAAuC;AAGvC,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AAGzD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAY,EAAE,OAA2B;IACzE,MAAM,KAAK,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,kBAAkB,CAAC;IAEzD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,qBAAqB;QACrB,wCAAwC;QACxC,mEAAmE;QACnE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAClC,CAAC"}
@@ -94,3 +94,4 @@ export default class JSONParser {
94
94
  this.currentState = this.previousStates.pop();
95
95
  }
96
96
  }
97
+ //# sourceMappingURL=json-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-parser.js","sourceRoot":"","sources":["../../../src/lib/json-parser/json-parser.ts"],"names":[],"mappings":"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"}
@@ -96,3 +96,4 @@ export default class StreamingJSONParser extends JSONParser {
96
96
  return false;
97
97
  }
98
98
  }
99
+ //# sourceMappingURL=streaming-json-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming-json-parser.js","sourceRoot":"","sources":["../../../src/lib/json-parser/streaming-json-parser.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,yBAAsB;AACpD,OAAO,QAAQ,gCAA6B;AAE5C;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,UAAU;IACjD,SAAS,CAAa;IACtB,iBAAiB,GAAoB,IAAI,CAAC;IAC1C,cAAc,GAAiB,IAAI,CAAC;IACpC,cAAc,GAAkB,IAAI,CAAC;IAE7C,YAAY,UAAgC,EAAE;QAC5C,KAAK,CAAC;YACJ,WAAW,EAAE,GAAG,EAAE;gBAChB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;wBAC1B,aAAa;wBACb,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;wBACpD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;wBACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAoB,CAAC,CAAC;wBAC3C,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC;YAED,4DAA4D;YAC5D,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;gBACrB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACzB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;oBACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACvB,CAAC;gBACD,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE,CAAC;oBAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK;QACT,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,KAAK,GAAU,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,4BAA4B;QAC1B,OAAO,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IACrE,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,kBAAkB;IAElB;;OAEG;IACH,cAAc;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,kDAAkD;QAElD,2CAA2C;QAC3C,uDAAuD;QACvD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"jsonpath.d.ts","sourceRoot":"","sources":["../../../src/lib/jsonpath/jsonpath.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,IAAI,EAAE,MAAM,EAAE,CAAC;gBAEH,IAAI,GAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,IAAW;IAuB5D,KAAK,IAAI,QAAQ;IAIjB,QAAQ,IAAI,MAAM;IAIlB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxB,GAAG;IAIH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIvB,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAchC;;;;;OAKG;IACH,cAAc,CAAC,MAAM,KAAA,EAAE,KAAK,KAAA;IAW5B;;;;OAIG;IACH,cAAc,CAAC,MAAM,KAAA;CAUtB"}
1
+ {"version":3,"file":"jsonpath.d.ts","sourceRoot":"","sources":["../../../src/lib/jsonpath/jsonpath.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,IAAI,EAAE,MAAM,EAAE,CAAC;gBAEH,IAAI,GAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,IAAW;IAI5D,KAAK,IAAI,QAAQ;IAIjB,QAAQ,IAAI,MAAM;IAIlB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxB,GAAG;IAIH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIvB,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAchC;;;;;OAKG;IACH,cAAc,CAAC,MAAM,KAAA,EAAE,KAAK,KAAA;IAW5B;;;;OAIG;IACH,cAAc,CAAC,MAAM,KAAA;CAUtB"}
@@ -1,6 +1,7 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
+ /* eslint-disable no-continue */
4
5
  /**
5
6
  * A parser for a minimal subset of the jsonpath standard
6
7
  * Full JSON path parsers for JS exist but are quite large (bundle size)
@@ -12,29 +13,13 @@
12
13
  export default class JSONPath {
13
14
  path;
14
15
  constructor(path = null) {
15
- this.path = ['$'];
16
- if (path instanceof JSONPath) {
17
- // @ts-ignore
18
- this.path = [...path.path];
19
- return;
20
- }
21
- if (Array.isArray(path)) {
22
- this.path.push(...path);
23
- return;
24
- }
25
- // Parse a string as a JSONPath
26
- if (typeof path === 'string') {
27
- this.path = path.split('.');
28
- if (this.path[0] !== '$') {
29
- throw new Error('JSONPaths must start with $');
30
- }
31
- }
16
+ this.path = parseJsonPath(path);
32
17
  }
33
18
  clone() {
34
19
  return new JSONPath(this);
35
20
  }
36
21
  toString() {
37
- return this.path.join('.');
22
+ return formatJsonPath(this.path);
38
23
  }
39
24
  push(name) {
40
25
  this.path.push(name);
@@ -88,3 +73,213 @@ export default class JSONPath {
88
73
  return object[field];
89
74
  }
90
75
  }
76
+ function parseJsonPath(path) {
77
+ if (path instanceof JSONPath) {
78
+ return [...path.path];
79
+ }
80
+ if (Array.isArray(path)) {
81
+ return ['$'].concat(path);
82
+ }
83
+ if (typeof path === 'string') {
84
+ return parseJsonPathString(path);
85
+ }
86
+ return ['$'];
87
+ }
88
+ // eslint-disable-next-line complexity, max-statements
89
+ function parseJsonPathString(pathString) {
90
+ const trimmedPath = pathString.trim();
91
+ if (!trimmedPath.startsWith('$')) {
92
+ throw new Error('JSONPath must start with $');
93
+ }
94
+ const segments = ['$'];
95
+ let index = 1;
96
+ let arrayElementSelectorEncountered = false;
97
+ while (index < trimmedPath.length) {
98
+ const character = trimmedPath[index];
99
+ if (character === '.') {
100
+ if (arrayElementSelectorEncountered) {
101
+ throw new Error('JSONPath cannot select fields after array element selectors');
102
+ }
103
+ index += 1;
104
+ if (trimmedPath[index] === '.') {
105
+ throw new Error('JSONPath descendant selectors (..) are not supported');
106
+ }
107
+ const { value, nextIndex, isWildcard } = parseDotSegment(trimmedPath, index);
108
+ if (isWildcard) {
109
+ if (nextIndex < trimmedPath.length) {
110
+ throw new Error('JSONPath wildcard selectors must terminate the path');
111
+ }
112
+ arrayElementSelectorEncountered = true;
113
+ index = nextIndex;
114
+ continue;
115
+ }
116
+ segments.push(value);
117
+ index = nextIndex;
118
+ continue;
119
+ }
120
+ if (character === '[') {
121
+ const parsedSegment = parseBracketSegment(trimmedPath, index);
122
+ if (parsedSegment.type === 'property') {
123
+ if (arrayElementSelectorEncountered) {
124
+ throw new Error('JSONPath cannot select fields after array element selectors');
125
+ }
126
+ segments.push(parsedSegment.value);
127
+ }
128
+ else {
129
+ arrayElementSelectorEncountered = true;
130
+ }
131
+ index = parsedSegment.nextIndex;
132
+ continue;
133
+ }
134
+ if (character === '@') {
135
+ throw new Error('JSONPath current node selector (@) is not supported');
136
+ }
137
+ if (character.trim() === '') {
138
+ index += 1;
139
+ continue;
140
+ }
141
+ throw new Error(`Unexpected character "${character}" in JSONPath`);
142
+ }
143
+ return segments;
144
+ }
145
+ function parseDotSegment(pathString, startIndex) {
146
+ if (startIndex >= pathString.length) {
147
+ throw new Error('JSONPath cannot end with a period');
148
+ }
149
+ if (pathString[startIndex] === '*') {
150
+ return { value: '*', nextIndex: startIndex + 1, isWildcard: true };
151
+ }
152
+ const firstCharacter = pathString[startIndex];
153
+ if (firstCharacter === '@') {
154
+ throw new Error('JSONPath current node selector (@) is not supported');
155
+ }
156
+ if (!isIdentifierStartCharacter(firstCharacter)) {
157
+ throw new Error('JSONPath property names after period must start with a letter, $ or _');
158
+ }
159
+ let endIndex = startIndex + 1;
160
+ while (endIndex < pathString.length && isIdentifierCharacter(pathString[endIndex])) {
161
+ endIndex++;
162
+ }
163
+ if (endIndex === startIndex) {
164
+ throw new Error('JSONPath is missing a property name after period');
165
+ }
166
+ return {
167
+ value: pathString.slice(startIndex, endIndex),
168
+ nextIndex: endIndex,
169
+ isWildcard: false
170
+ };
171
+ }
172
+ function parseBracketSegment(pathString, startIndex) {
173
+ const contentStartIndex = startIndex + 1;
174
+ if (contentStartIndex >= pathString.length) {
175
+ throw new Error('JSONPath has unterminated bracket');
176
+ }
177
+ const firstCharacter = pathString[contentStartIndex];
178
+ if (firstCharacter === "'" || firstCharacter === '"') {
179
+ const { value, nextIndex } = parseBracketProperty(pathString, contentStartIndex);
180
+ return { type: 'property', value, nextIndex };
181
+ }
182
+ const closingBracketIndex = pathString.indexOf(']', contentStartIndex);
183
+ if (closingBracketIndex === -1) {
184
+ throw new Error('JSONPath has unterminated bracket');
185
+ }
186
+ const content = pathString.slice(contentStartIndex, closingBracketIndex).trim();
187
+ const unsupportedSelectorMessage = getUnsupportedBracketSelectorMessage(content);
188
+ if (unsupportedSelectorMessage) {
189
+ throw new Error(unsupportedSelectorMessage);
190
+ }
191
+ if (content === '*') {
192
+ return { type: 'array-selector', nextIndex: closingBracketIndex + 1 };
193
+ }
194
+ if (/^\d+$/.test(content)) {
195
+ throw new Error('JSONPath array index selectors are not supported');
196
+ }
197
+ if (/^\d*\s*:\s*\d*(\s*:\s*\d*)?$/.test(content)) {
198
+ return { type: 'array-selector', nextIndex: closingBracketIndex + 1 };
199
+ }
200
+ throw new Error(`Unsupported bracket selector "[${content}]" in JSONPath`);
201
+ }
202
+ function getUnsupportedBracketSelectorMessage(content) {
203
+ if (!content.length) {
204
+ return 'JSONPath bracket selectors cannot be empty';
205
+ }
206
+ if (content.startsWith('(')) {
207
+ return 'JSONPath script selectors are not supported';
208
+ }
209
+ if (content.startsWith('?')) {
210
+ return 'JSONPath filter selectors are not supported';
211
+ }
212
+ if (content.includes(',')) {
213
+ return 'JSONPath union selectors are not supported';
214
+ }
215
+ if (content.startsWith('@') || content.includes('@.')) {
216
+ return 'JSONPath current node selector (@) is not supported';
217
+ }
218
+ return null;
219
+ }
220
+ // eslint-disable-next-line complexity, max-statements
221
+ function parseBracketProperty(pathString, startIndex) {
222
+ const quoteCharacter = pathString[startIndex];
223
+ let index = startIndex + 1;
224
+ let value = '';
225
+ let terminated = false;
226
+ while (index < pathString.length) {
227
+ const character = pathString[index];
228
+ if (character === '\\') {
229
+ index += 1;
230
+ if (index >= pathString.length) {
231
+ break;
232
+ }
233
+ value += pathString[index];
234
+ index += 1;
235
+ continue;
236
+ }
237
+ if (character === quoteCharacter) {
238
+ terminated = true;
239
+ index += 1;
240
+ break;
241
+ }
242
+ value += character;
243
+ index += 1;
244
+ }
245
+ if (!terminated) {
246
+ throw new Error('JSONPath string in bracket property selector is unterminated');
247
+ }
248
+ while (index < pathString.length && pathString[index].trim() === '') {
249
+ index += 1;
250
+ }
251
+ if (pathString[index] !== ']') {
252
+ throw new Error('JSONPath property selectors must end with ]');
253
+ }
254
+ if (!value.length) {
255
+ throw new Error('JSONPath property selectors cannot be empty');
256
+ }
257
+ return { value, nextIndex: index + 1 };
258
+ }
259
+ function isIdentifierCharacter(character) {
260
+ return /[a-zA-Z0-9$_]/.test(character);
261
+ }
262
+ function isIdentifierStartCharacter(character) {
263
+ return /[a-zA-Z_$]/.test(character);
264
+ }
265
+ function isIdentifierSegment(segment) {
266
+ return /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(segment);
267
+ }
268
+ function formatJsonPath(path) {
269
+ return path
270
+ .map((segment, index) => {
271
+ if (index === 0) {
272
+ return segment;
273
+ }
274
+ if (segment === '*') {
275
+ return '.*';
276
+ }
277
+ if (isIdentifierSegment(segment)) {
278
+ return `.${segment}`;
279
+ }
280
+ const escapedSegment = segment.replace(/\\/g, '\\\\').replace(/'/g, "\\'");
281
+ return `['${escapedSegment}']`;
282
+ })
283
+ .join('');
284
+ }
285
+ //# sourceMappingURL=jsonpath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonpath.js","sourceRoot":"","sources":["../../../src/lib/jsonpath/jsonpath.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { TableBatch } from '@loaders.gl/schema';
2
2
  import type { JSONLoaderOptions, MetadataBatch, JSONBatch } from "../../json-loader.js";
3
- export declare function parseJSONInBatches(binaryAsyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>, options: JSONLoaderOptions): AsyncIterable<TableBatch | MetadataBatch | JSONBatch>;
3
+ export declare function parseJSONInBatches(binaryAsyncIterator: AsyncIterable<ArrayBufferLike | ArrayBufferView> | Iterable<ArrayBufferLike | ArrayBufferView>, options: JSONLoaderOptions): AsyncIterable<TableBatch | MetadataBatch | JSONBatch>;
4
4
  export declare function rebuildJsonObject(batch: any, data: any): any;
5
5
  //# sourceMappingURL=parse-json-in-batches.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-json-in-batches.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-json-in-batches.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAS,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAC,iBAAiB,EAAE,aAAa,EAAE,SAAS,EAAC,6BAA0B;AASnF,wBAAuB,kBAAkB,CACvC,mBAAmB,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,EACvE,OAAO,EAAE,iBAAiB,GACzB,aAAa,CAAC,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC,CA2EvD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA,OAmB5C"}
1
+ {"version":3,"file":"parse-json-in-batches.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-json-in-batches.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAS,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAC,iBAAiB,EAAE,aAAa,EAAE,SAAS,EAAC,6BAA0B;AASnF,wBAAuB,kBAAkB,CACvC,mBAAmB,EACf,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC,GAChD,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC,EAC/C,OAAO,EAAE,iBAAiB,GACzB,aAAa,CAAC,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC,CA2EvD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA,OAmB5C"}
@@ -2,19 +2,19 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { TableBatchBuilder } from '@loaders.gl/schema-utils';
5
- import { assert, makeTextDecoderIterator } from '@loaders.gl/loader-utils';
5
+ import { assert, makeTextDecoderIterator, toArrayBufferIterator } from '@loaders.gl/loader-utils';
6
6
  import StreamingJSONParser from "../json-parser/streaming-json-parser.js";
7
7
  import JSONPath from "../jsonpath/jsonpath.js";
8
8
  // TODO - support batch size 0 = no batching/single batch?
9
9
  // eslint-disable-next-line max-statements, complexity
10
10
  export async function* parseJSONInBatches(binaryAsyncIterator, options) {
11
- const asyncIterator = makeTextDecoderIterator(binaryAsyncIterator);
12
- const { metadata } = options;
11
+ const asyncIterator = makeTextDecoderIterator(toArrayBufferIterator(binaryAsyncIterator));
12
+ const metadata = Boolean(options?.core?.metadata || options?.metadata);
13
13
  const { jsonpaths } = options.json || {};
14
14
  let isFirstChunk = true;
15
15
  // @ts-expect-error TODO fix Schema deduction
16
16
  const schema = null;
17
- const tableBatchBuilder = new TableBatchBuilder(schema, options);
17
+ const tableBatchBuilder = new TableBatchBuilder(schema, options?.core);
18
18
  const parser = new StreamingJSONParser({ jsonpaths });
19
19
  for await (const chunk of asyncIterator) {
20
20
  const rows = parser.write(chunk);
@@ -89,3 +89,4 @@ export function rebuildJsonObject(batch, data) {
89
89
  // No jsonpath, in this case nothing was streamed.
90
90
  return batch.container;
91
91
  }
92
+ //# sourceMappingURL=parse-json-in-batches.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-json-in-batches.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-json-in-batches.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAC,MAAM,EAAE,uBAAuB,EAAE,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;AAChG,OAAO,mBAAmB,gDAA6C;AACvE,OAAO,QAAQ,gCAA6B;AAE5C,0DAA0D;AAC1D,sDAAsD;AACtD,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,kBAAkB,CACvC,mBAE+C,EAC/C,OAA0B;IAE1B,MAAM,aAAa,GAAG,uBAAuB,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE1F,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,IAAK,OAAe,EAAE,QAAQ,CAAC,CAAC;IAChF,MAAM,EAAC,SAAS,EAAC,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IAEvC,IAAI,YAAY,GAAY,IAAI,CAAC;IAEjC,6CAA6C;IAC7C,MAAM,MAAM,GAAW,IAAI,CAAC;IAC5B,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAEvE,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,EAAC,SAAS,EAAC,CAAC,CAAC;IAEpD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,4BAA4B,EAAE,CAAC;QAE1E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC;YACpC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,YAAY,GAAe;oBAC/B,gBAAgB;oBAChB,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,iBAAiB;oBAChD,SAAS,EAAE,gBAAgB;oBAC3B,IAAI,EAAE,EAAE;oBACR,MAAM,EAAE,CAAC;oBACT,SAAS,EAAE,CAAC;oBACZ,iBAAiB;oBACjB,SAAS,EAAE,MAAM,CAAC,gBAAgB,EAAE;oBACpC,QAAQ;iBACT,CAAC;gBACF,MAAM,YAAY,CAAC;YACrB,CAAC;YACD,YAAY,GAAG,KAAK,CAAC;YACrB,+BAA+B;QACjC,CAAC;QAED,cAAc;QACd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9B,yCAAyC;YACzC,MAAM,KAAK,GAAG,iBAAiB,CAAC,YAAY,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC;YACzD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,iBAAiB,CAAC,YAAY,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC;QACzD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,4BAA4B,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,iBAAiB,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC;IAC1D,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,UAAU,GAAc;YAC5B,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,cAAc;YACzB,SAAS,EAAE,MAAM,CAAC,gBAAgB,EAAE;YACpC,QAAQ,EAAE,MAAM,CAAC,4BAA4B,EAAE;YAC/C,mCAAmC;YACnC,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,CAAC;YACT,eAAe;SAChB,CAAC;QACF,MAAM,UAAU,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAK,EAAE,IAAI;IAC3C,iGAAiG;IACjG,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,cAAc,CAAC,CAAC;IAE3C,qGAAqG;IACrG,IAAI,KAAK,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8GAA8G;IAC9G,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC;QACvC,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnD,aAAa,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QACnD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,kDAAkD;IAClD,OAAO,KAAK,CAAC,SAAS,CAAC;AACzB,CAAC"}
@@ -29,3 +29,4 @@ function getFirstArray(json) {
29
29
  }
30
30
  return null;
31
31
  }
32
+ //# sourceMappingURL=parse-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-json.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-json.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAG3D,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,OAA0B;IACxE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;YACzC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAI;IACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import type { TableBatch } from '@loaders.gl/schema';
2
2
  import { LoaderOptions } from '@loaders.gl/loader-utils';
3
- export declare function parseNDJSONInBatches(binaryAsyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>, options?: LoaderOptions): AsyncIterable<TableBatch>;
3
+ export declare function parseNDJSONInBatches(binaryAsyncIterator: AsyncIterable<ArrayBufferLike | ArrayBufferView> | Iterable<ArrayBufferLike | ArrayBufferView>, options?: LoaderOptions): AsyncIterable<TableBatch>;
4
4
  //# sourceMappingURL=parse-ndjson-in-batches.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-ndjson-in-batches.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-ndjson-in-batches.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EACL,aAAa,EAId,MAAM,0BAA0B,CAAC;AAElC,wBAAuB,oBAAoB,CACzC,mBAAmB,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,EACvE,OAAO,CAAC,EAAE,aAAa,GACtB,aAAa,CAAC,UAAU,CAAC,CA+B3B"}
1
+ {"version":3,"file":"parse-ndjson-in-batches.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-ndjson-in-batches.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EACL,aAAa,EAKd,MAAM,0BAA0B,CAAC;AAElC,wBAAuB,oBAAoB,CACzC,mBAAmB,EACf,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC,GAChD,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC,EAC/C,OAAO,CAAC,EAAE,aAAa,GACtB,aAAa,CAAC,UAAU,CAAC,CA+B3B"}
@@ -2,16 +2,16 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { TableBatchBuilder } from '@loaders.gl/schema-utils';
5
- import { makeLineIterator, makeNumberedLineIterator, makeTextDecoderIterator } from '@loaders.gl/loader-utils';
5
+ import { makeLineIterator, makeNumberedLineIterator, makeTextDecoderIterator, toArrayBufferIterator } from '@loaders.gl/loader-utils';
6
6
  export async function* parseNDJSONInBatches(binaryAsyncIterator, options) {
7
- const textIterator = makeTextDecoderIterator(binaryAsyncIterator);
7
+ const textIterator = makeTextDecoderIterator(toArrayBufferIterator(binaryAsyncIterator));
8
8
  const lineIterator = makeLineIterator(textIterator);
9
9
  const numberedLineIterator = makeNumberedLineIterator(lineIterator);
10
10
  const schema = null;
11
11
  const shape = 'row-table';
12
12
  // @ts-ignore
13
13
  const tableBatchBuilder = new TableBatchBuilder(schema, {
14
- ...options,
14
+ ...(options?.core || options),
15
15
  shape
16
16
  });
17
17
  for await (const { counter, line } of numberedLineIterator) {
@@ -33,3 +33,4 @@ export async function* parseNDJSONInBatches(binaryAsyncIterator, options) {
33
33
  yield batch;
34
34
  }
35
35
  }
36
+ //# sourceMappingURL=parse-ndjson-in-batches.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-ndjson-in-batches.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-ndjson-in-batches.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAEL,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAElC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,oBAAoB,CACzC,mBAE+C,EAC/C,OAAuB;IAEvB,MAAM,YAAY,GAAG,uBAAuB,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACzF,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,oBAAoB,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;IAEpE,MAAM,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,KAAK,GAAG,WAAW,CAAC;IAC1B,aAAa;IACb,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE;QACtD,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,OAAO,CAAC;QAC7B,KAAK;KACN,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,MAAM,EAAC,OAAO,EAAE,IAAI,EAAC,IAAI,oBAAoB,EAAE,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9B,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,KAAK,GAAG,iBAAiB,CAAC,YAAY,EAAE,CAAC;YAC/C,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8CAA8C,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,iBAAiB,CAAC,aAAa,EAAE,CAAC;IAChD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -14,3 +14,4 @@ export function parseNDJSONSync(ndjsonText) {
14
14
  });
15
15
  return makeTableFromData(parsedLines);
16
16
  }
17
+ //# sourceMappingURL=parse-ndjson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-ndjson.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-ndjson.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAE3D,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QAC9C,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8CAA8C,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,iBAAiB,CAAC,WAAW,CAAC,CAAC;AACxC,CAAC"}
@@ -5,7 +5,7 @@ import { parseNDJSONSync } from "./lib/parsers/parse-ndjson.js";
5
5
  import { parseNDJSONInBatches } from "./lib/parsers/parse-ndjson-in-batches.js";
6
6
  // __VERSION__ is injected by babel-plugin-version-inline
7
7
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
8
- const VERSION = typeof "4.4.0-alpha.0" !== 'undefined' ? "4.4.0-alpha.0" : 'latest';
8
+ const VERSION = typeof "4.4.0-alpha.9" !== 'undefined' ? "4.4.0-alpha.9" : 'latest';
9
9
  /** NDGeoJSONLoader */
10
10
  export const NDJSONLoader = {
11
11
  dataType: null,
@@ -36,3 +36,4 @@ export const NDJSONLoader = {
36
36
  }
37
37
  }
38
38
  };
39
+ //# sourceMappingURL=ndgeoson-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ndgeoson-loader.js","sourceRoot":"","sources":["../src/ndgeoson-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,eAAe,EAAC,sCAAmC;AAC3D,OAAO,EAAC,oBAAoB,EAAC,iDAA8C;AAG3E,yDAAyD;AACzD,qDAAqD;AACrD,MAAM,OAAO,GAAG,sBAAkB,KAAK,WAAW,CAAC,CAAC,iBAAa,CAAC,CAAC,QAAQ,CAAC;AAY5E,sBAAsB;AACtB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE,IAAiD;IAC3D,SAAS,EAAE,IAAwB;IAEnC,IAAI,EAAE,QAAQ;IACd,EAAE,EAAE,QAAQ;IACZ,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;IACnC,SAAS,EAAE;QACT,0BAA0B;QAC1B,0BAA0B;QAC1B,uBAAuB,EAAE,8EAA8E;QACvG,0BAA0B;QAC1B,sBAAsB;KACvB;IACD,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK,EAAE,WAAwB,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACjG,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,oBAAoB;IACpC,OAAO,EAAE;QACP,OAAO,EAAE;YACP,KAAK,EAAE,kBAAkB;SAC1B;QACD,GAAG,EAAE;YACH,MAAM,EAAE,SAAS;SAClB;KACF;CAKF,CAAC"}
@@ -5,7 +5,7 @@ import { parseNDJSONSync } from "./lib/parsers/parse-ndjson.js";
5
5
  import { parseNDJSONInBatches } from "./lib/parsers/parse-ndjson-in-batches.js";
6
6
  // __VERSION__ is injected by babel-plugin-version-inline
7
7
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
8
- const VERSION = typeof "4.4.0-alpha.0" !== 'undefined' ? "4.4.0-alpha.0" : 'latest';
8
+ const VERSION = typeof "4.4.0-alpha.9" !== 'undefined' ? "4.4.0-alpha.9" : 'latest';
9
9
  export const NDJSONLoader = {
10
10
  dataType: null,
11
11
  batchType: null,
@@ -26,3 +26,4 @@ export const NDJSONLoader = {
26
26
  parseInBatches: parseNDJSONInBatches,
27
27
  options: {}
28
28
  };
29
+ //# sourceMappingURL=ndjson-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ndjson-loader.js","sourceRoot":"","sources":["../src/ndjson-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,eAAe,EAAC,sCAAmC;AAC3D,OAAO,EAAC,oBAAoB,EAAC,iDAA8C;AAE3E,yDAAyD;AACzD,qDAAqD;AACrD,MAAM,OAAO,GAAG,sBAAkB,KAAK,WAAW,CAAC,CAAC,iBAAa,CAAC,CAAC,QAAQ,CAAC;AAE5E,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE,IAAiD;IAC3D,SAAS,EAAE,IAA6B;IAExC,IAAI,EAAE,QAAQ;IACd,EAAE,EAAE,QAAQ;IACZ,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC/B,SAAS,EAAE;QACT,sBAAsB;QACtB,uBAAuB,EAAE,8EAA8E;QACvG,sBAAsB;KACvB;IACD,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK,EAAE,WAAwB,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACjG,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,oBAAoB;IACpC,OAAO,EAAE,EAAE;CACmF,CAAC"}
@@ -4,3 +4,4 @@
4
4
  import { createLoaderWorker } from '@loaders.gl/loader-utils';
5
5
  import { GeoJSONLoader } from "../geojson-loader.js";
6
6
  createLoaderWorker(GeoJSONLoader);
7
+ //# sourceMappingURL=geojson-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geojson-worker.js","sourceRoot":"","sources":["../../src/workers/geojson-worker.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAC,aAAa,EAAC,6BAA0B;AAEhD,kBAAkB,CAAC,aAAa,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/json",
3
- "version": "4.4.0-alpha.1",
3
+ "version": "4.4.0-alpha.9",
4
4
  "description": "Framework-independent loader for JSON and streaming JSON formats",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -29,6 +29,9 @@
29
29
  "types": "./dist/index.d.ts",
30
30
  "import": "./dist/index.js",
31
31
  "require": "./dist/index.cjs"
32
+ },
33
+ "./geojson-worker.js": {
34
+ "import": "./dist/geojson-worker.js"
32
35
  }
33
36
  },
34
37
  "sideEffects": false,
@@ -44,13 +47,13 @@
44
47
  "build-worker": "esbuild src/workers/geojson-worker.ts --bundle --outfile=dist/geojson-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
45
48
  },
46
49
  "dependencies": {
47
- "@loaders.gl/gis": "4.4.0-alpha.1",
48
- "@loaders.gl/loader-utils": "4.4.0-alpha.1",
49
- "@loaders.gl/schema": "4.4.0-alpha.1",
50
- "@loaders.gl/schema-utils": "4.4.0-alpha.1"
50
+ "@loaders.gl/gis": "4.4.0-alpha.9",
51
+ "@loaders.gl/loader-utils": "4.4.0-alpha.9",
52
+ "@loaders.gl/schema": "4.4.0-alpha.9",
53
+ "@loaders.gl/schema-utils": "4.4.0-alpha.9"
51
54
  },
52
55
  "peerDependencies": {
53
- "@loaders.gl/core": "4.4.0-alpha.0"
56
+ "@loaders.gl/core": "4.4.0-alpha.1"
54
57
  },
55
- "gitHead": "f1732de45907bd500bf4eedb4803beca8bf4bfb0"
58
+ "gitHead": "e9e6710379718c7663e97eba868c76e15de4cb84"
56
59
  }
@@ -103,7 +103,8 @@ function parseTextSync(
103
103
  function parseInBatches(asyncIterator, options): AsyncIterable<TableBatch> {
104
104
  // Apps can call the parse method directly, we so apply default options here
105
105
  options = {...GeoJSONLoader.options, ...options};
106
- options.json = {...GeoJSONLoader.options.geojson, ...options.geojson};
106
+ options.json = {...GeoJSONLoader.options.json, ...options.json};
107
+ options.geojson = {...GeoJSONLoader.options.geojson, ...options.geojson};
107
108
 
108
109
  const geojsonIterator = parseJSONInBatches(asyncIterator, options);
109
110
 
@@ -73,7 +73,9 @@ function parseTextSync(text: string, options?: JSONLoaderOptions) {
73
73
  }
74
74
 
75
75
  function parseInBatches(
76
- asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,
76
+ asyncIterator:
77
+ | AsyncIterable<ArrayBufferLike | ArrayBufferView>
78
+ | Iterable<ArrayBufferLike | ArrayBufferView>,
77
79
  options?: JSONLoaderOptions
78
80
  ): AsyncIterable<TableBatch | MetadataBatch | JSONBatch> {
79
81
  const jsonOptions = {...options, json: {...JSONLoader.options.json, ...options?.json}};
@@ -1,6 +1,8 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
 
4
+ import {ensureArrayBuffer} from '@loaders.gl/loader-utils';
5
+
4
6
  /* global TextEncoder */
5
7
  export class Utf8ArrayBufferEncoder {
6
8
  private readonly chunkSize: number;
@@ -23,8 +25,8 @@ export class Utf8ArrayBufferEncoder {
23
25
  return this.totalLength >= this.chunkSize;
24
26
  }
25
27
 
26
- getArrayBufferBatch(): ArrayBufferLike {
27
- return this.textEncoder.encode(this.getStringBatch()).buffer;
28
+ getArrayBufferBatch(): ArrayBuffer {
29
+ return ensureArrayBuffer(this.textEncoder.encode(this.getStringBatch()).buffer);
28
30
  }
29
31
 
30
32
  getStringBatch(): string {