@loaders.gl/csv 4.3.1 → 4.4.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 (49) hide show
  1. package/dist/csv-arrow-loader.d.ts +37 -0
  2. package/dist/csv-arrow-loader.d.ts.map +1 -0
  3. package/dist/csv-arrow-loader.js +23 -0
  4. package/dist/csv-format.d.ts +10 -0
  5. package/dist/csv-format.d.ts.map +1 -0
  6. package/dist/csv-format.js +12 -0
  7. package/dist/csv-loader.d.ts +6 -6
  8. package/dist/csv-loader.d.ts.map +1 -1
  9. package/dist/csv-loader.js +53 -20
  10. package/dist/csv-writer.d.ts +6 -5
  11. package/dist/csv-writer.d.ts.map +1 -1
  12. package/dist/csv-writer.js +2 -5
  13. package/dist/dist.dev.js +13318 -449
  14. package/dist/dist.min.js +23 -20
  15. package/dist/index.cjs +317 -262
  16. package/dist/index.cjs.map +4 -4
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -0
  20. package/dist/lib/encoders/encode-csv.d.ts +1 -1
  21. package/dist/lib/encoders/encode-csv.d.ts.map +1 -1
  22. package/dist/lib/encoders/encode-csv.js +1 -1
  23. package/dist/papaparse/async-iterator-streamer.d.ts +1 -21
  24. package/dist/papaparse/async-iterator-streamer.d.ts.map +1 -1
  25. package/dist/papaparse/async-iterator-streamer.js +6 -6
  26. package/dist/papaparse/papa-constants.d.ts +12 -0
  27. package/dist/papaparse/papa-constants.d.ts.map +1 -0
  28. package/dist/papaparse/papa-constants.js +19 -0
  29. package/dist/papaparse/papa-parser.d.ts +110 -0
  30. package/dist/papaparse/papa-parser.d.ts.map +1 -0
  31. package/dist/papaparse/papa-parser.js +733 -0
  32. package/dist/papaparse/papa-writer.d.ts +22 -0
  33. package/dist/papaparse/papa-writer.d.ts.map +1 -0
  34. package/dist/papaparse/papa-writer.js +166 -0
  35. package/dist/papaparse/papaparse.d.ts +9 -113
  36. package/dist/papaparse/papaparse.d.ts.map +1 -1
  37. package/dist/papaparse/papaparse.js +13 -882
  38. package/package.json +5 -5
  39. package/src/csv-arrow-loader.ts +41 -0
  40. package/src/csv-format.ts +15 -0
  41. package/src/csv-loader.ts +58 -25
  42. package/src/csv-writer.ts +2 -5
  43. package/src/index.ts +3 -0
  44. package/src/lib/encoders/encode-csv.ts +2 -1
  45. package/src/papaparse/async-iterator-streamer.ts +6 -6
  46. package/src/papaparse/papa-constants.ts +23 -0
  47. package/src/papaparse/papa-parser.ts +872 -0
  48. package/src/papaparse/papa-writer.ts +219 -0
  49. package/src/papaparse/papaparse.ts +17 -1048
@@ -0,0 +1,37 @@
1
+ import type { LoaderOptions } from '@loaders.gl/loader-utils';
2
+ import type { ArrowTable, ArrowTableBatch } from '@loaders.gl/schema';
3
+ import type { CSVLoaderOptions } from "./csv-loader.js";
4
+ export type CSVArrowLoaderOptions = LoaderOptions & {
5
+ csv?: Omit<CSVLoaderOptions['csv'], 'shape'>;
6
+ };
7
+ export declare const CSVArrowLoader: {
8
+ readonly dataType: ArrowTable;
9
+ readonly batchType: ArrowTableBatch;
10
+ readonly parse: (arrayBuffer: ArrayBuffer, options?: CSVLoaderOptions) => Promise<ArrowTable>;
11
+ readonly parseText: (text: string, options?: CSVLoaderOptions) => Promise<ArrowTable>;
12
+ readonly parseInBatches: typeof parseCSVToArrowBatches;
13
+ readonly version: any;
14
+ readonly options: {
15
+ readonly csv: {
16
+ readonly shape: "object-row-table";
17
+ readonly optimizeMemoryUsage: false;
18
+ readonly header: "auto";
19
+ readonly columnPrefix: "column";
20
+ readonly quoteChar: "\"";
21
+ readonly escapeChar: "\"";
22
+ readonly dynamicTyping: true;
23
+ readonly comments: false;
24
+ readonly skipEmptyLines: true;
25
+ readonly delimitersToGuess: [",", "\t", "|", ";"];
26
+ };
27
+ };
28
+ readonly id: "csv";
29
+ readonly module: "csv";
30
+ readonly name: "CSV";
31
+ readonly extensions: ["csv", "tsv", "dsv"];
32
+ readonly mimeTypes: ["text/csv", "text/tab-separated-values", "text/dsv"];
33
+ readonly category: "table";
34
+ };
35
+ declare function parseCSVToArrowBatches(asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>, options?: CSVArrowLoaderOptions): AsyncIterable<ArrowTableBatch>;
36
+ export {};
37
+ //# sourceMappingURL=csv-arrow-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-arrow-loader.d.ts","sourceRoot":"","sources":["../src/csv-arrow-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAC,UAAU,EAAE,eAAe,EAAC,MAAM,oBAAoB,CAAC;AAGpE,OAAO,KAAK,EAAC,gBAAgB,EAAC,wBAAqB;AAGnD,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG;IAClD,GAAG,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,cAAc;uBAGI,UAAU;wBACT,eAAe;kCAElB,WAAW,YAAY,gBAAgB;+BAEhD,MAAM,YAAY,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;CAEmC,CAAC;AAS1F,iBAAS,sBAAsB,CAC7B,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,EACjE,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAAC,eAAe,CAAC,CAGhC"}
@@ -0,0 +1,23 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { convertTable, convertBatches } from '@loaders.gl/schema-utils';
5
+ import { CSVLoader } from "./csv-loader.js";
6
+ export const CSVArrowLoader = {
7
+ ...CSVLoader,
8
+ dataType: null,
9
+ batchType: null,
10
+ parse: async (arrayBuffer, options) => parseCSVToArrow(new TextDecoder().decode(arrayBuffer), options),
11
+ parseText: (text, options) => parseCSVToArrow(text, options),
12
+ parseInBatches: parseCSVToArrowBatches
13
+ };
14
+ async function parseCSVToArrow(csvText, options) {
15
+ // Apps can call the parse method directly, we so apply default options here
16
+ // const csvOptions = {...CSVArrowLoader.options.csv, ...options?.csv};
17
+ const table = await CSVLoader.parseText(csvText, options);
18
+ return convertTable(table, 'arrow-table');
19
+ }
20
+ function parseCSVToArrowBatches(asyncIterator, options) {
21
+ const tableIterator = CSVLoader.parseInBatches(asyncIterator, options);
22
+ return convertBatches(tableIterator, 'arrow-table');
23
+ }
@@ -0,0 +1,10 @@
1
+ /** Comma-Separated Values */
2
+ export declare const CSVFormat: {
3
+ readonly id: "csv";
4
+ readonly module: "csv";
5
+ readonly name: "CSV";
6
+ readonly extensions: ["csv", "tsv", "dsv"];
7
+ readonly mimeTypes: ["text/csv", "text/tab-separated-values", "text/dsv"];
8
+ readonly category: "table";
9
+ };
10
+ //# sourceMappingURL=csv-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-format.d.ts","sourceRoot":"","sources":["../src/csv-format.ts"],"names":[],"mappings":"AAMA,6BAA6B;AAC7B,eAAO,MAAM,SAAS;;;;;;;CAOK,CAAC"}
@@ -0,0 +1,12 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ /** Comma-Separated Values */
5
+ export const CSVFormat = {
6
+ id: 'csv',
7
+ module: 'csv',
8
+ name: 'CSV',
9
+ extensions: ['csv', 'tsv', 'dsv'],
10
+ mimeTypes: ['text/csv', 'text/tab-separated-values', 'text/dsv'],
11
+ category: 'table'
12
+ };
@@ -18,13 +18,7 @@ export type CSVLoaderOptions = LoaderOptions & {
18
18
  export declare const CSVLoader: {
19
19
  readonly dataType: ObjectRowTable | ArrayRowTable;
20
20
  readonly batchType: TableBatch;
21
- readonly id: "csv";
22
- readonly module: "csv";
23
- readonly name: "CSV";
24
21
  readonly version: any;
25
- readonly extensions: ["csv", "tsv", "dsv"];
26
- readonly mimeTypes: ["text/csv", "text/tab-separated-values", "text/dsv"];
27
- readonly category: "table";
28
22
  readonly parse: (arrayBuffer: ArrayBuffer, options?: CSVLoaderOptions) => Promise<ObjectRowTable | ArrayRowTable>;
29
23
  readonly parseText: (text: string, options?: CSVLoaderOptions) => Promise<ObjectRowTable | ArrayRowTable>;
30
24
  readonly parseInBatches: typeof parseCSVInBatches;
@@ -42,6 +36,12 @@ export declare const CSVLoader: {
42
36
  readonly delimitersToGuess: [",", "\t", "|", ";"];
43
37
  };
44
38
  };
39
+ readonly id: "csv";
40
+ readonly module: "csv";
41
+ readonly name: "CSV";
42
+ readonly extensions: ["csv", "tsv", "dsv"];
43
+ readonly mimeTypes: ["text/csv", "text/tab-separated-values", "text/dsv"];
44
+ readonly category: "table";
45
45
  };
46
46
  declare function parseCSVInBatches(asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>, options?: CSVLoaderOptions): AsyncIterable<TableBatch>;
47
47
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"csv-loader.d.ts","sourceRoot":"","sources":["../src/csv-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAoBlF,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE;QAEJ,KAAK,CAAC,EAAE,iBAAiB,GAAG,kBAAkB,CAAC;QAC/C,yDAAyD;QACzD,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAKhB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QAEpB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;QAEpC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;KAE9B,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,SAAS;uBACS,cAAc,GAAG,aAAa;wBAC7B,UAAU;;;;;;;;kCASb,WAAW,YAAY,gBAAgB;+BAEhD,MAAM,YAAY,gBAAgB;;;;;;;;;;;;;;;;CAuB6C,CAAC;AAiDpG,iBAAS,iBAAiB,CACxB,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,EACjE,OAAO,CAAC,EAAE,gBAAgB,GACzB,aAAa,CAAC,UAAU,CAAC,CAyH3B"}
1
+ {"version":3,"file":"csv-loader.d.ts","sourceRoot":"","sources":["../src/csv-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAS,aAAa,EAAE,cAAc,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAoB1F,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE;QAEJ,KAAK,CAAC,EAAE,iBAAiB,GAAG,kBAAkB,CAAC;QAC/C,yDAAyD;QACzD,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAKhB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QAEpB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;QAEpC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;KAE9B,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,SAAS;uBAGS,cAAc,GAAG,aAAa;wBAC7B,UAAU;;kCAEb,WAAW,YAAY,gBAAgB;+BAEhD,MAAM,YAAY,gBAAgB;;;;;;;;;;;;;;;;;;;;;;CAuB6C,CAAC;AAsDpG,iBAAS,iBAAiB,CACxB,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,EACjE,OAAO,CAAC,EAAE,gBAAgB,GACzB,aAAa,CAAC,UAAU,CAAC,CAyH3B"}
@@ -1,23 +1,20 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { AsyncQueue, TableBatchBuilder, convertToArrayRow, convertToObjectRow } from '@loaders.gl/schema';
4
+ import { log } from '@loaders.gl/loader-utils';
5
+ import { AsyncQueue, deduceTableSchema, TableBatchBuilder, convertToArrayRow, convertToObjectRow } from '@loaders.gl/schema-utils';
5
6
  import Papa from "./papaparse/papaparse.js";
6
7
  import AsyncIteratorStreamer from "./papaparse/async-iterator-streamer.js";
8
+ import { CSVFormat } from "./csv-format.js";
7
9
  // __VERSION__ is injected by babel-plugin-version-inline
8
10
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
9
- const VERSION = typeof "4.3.0" !== 'undefined' ? "4.3.0" : 'latest';
11
+ const VERSION = typeof "4.4.0-alpha.0" !== 'undefined' ? "4.4.0-alpha.0" : 'latest';
10
12
  const DEFAULT_CSV_SHAPE = 'object-row-table';
11
13
  export const CSVLoader = {
14
+ ...CSVFormat,
12
15
  dataType: null,
13
16
  batchType: null,
14
- id: 'csv',
15
- module: 'csv',
16
- name: 'CSV',
17
17
  version: VERSION,
18
- extensions: ['csv', 'tsv', 'dsv'],
19
- mimeTypes: ['text/csv', 'text/tab-separated-values', 'text/dsv'],
20
- category: 'table',
21
18
  parse: async (arrayBuffer, options) => parseCSV(new TextDecoder().decode(arrayBuffer), options),
22
19
  parseText: (text, options) => parseCSV(text, options),
23
20
  parseInBatches: parseCSVInBatches,
@@ -44,7 +41,7 @@ export const CSVLoader = {
44
41
  }
45
42
  };
46
43
  async function parseCSV(csvText, options) {
47
- // Apps can call the parse method directly, we so apply default options here
44
+ // Apps can call the parse method directly, so we apply default options here
48
45
  const csvOptions = { ...CSVLoader.options.csv, ...options?.csv };
49
46
  const firstRow = readFirstRow(csvText);
50
47
  const header = csvOptions.header === 'auto' ? isHeaderRow(firstRow) : Boolean(csvOptions.header);
@@ -63,20 +60,25 @@ async function parseCSV(csvText, options) {
63
60
  const rows = result.data;
64
61
  const headerRow = result.meta.fields || generateHeader(csvOptions.columnPrefix, firstRow.length);
65
62
  const shape = csvOptions.shape || DEFAULT_CSV_SHAPE;
63
+ let table;
66
64
  switch (shape) {
67
65
  case 'object-row-table':
68
- return {
66
+ table = {
69
67
  shape: 'object-row-table',
70
68
  data: rows.map((row) => (Array.isArray(row) ? convertToObjectRow(row, headerRow) : row))
71
69
  };
70
+ break;
72
71
  case 'array-row-table':
73
- return {
72
+ table = {
74
73
  shape: 'array-row-table',
75
74
  data: rows.map((row) => (Array.isArray(row) ? row : convertToArrayRow(row, headerRow)))
76
75
  };
76
+ break;
77
77
  default:
78
78
  throw new Error(shape);
79
79
  }
80
+ table.schema = deduceTableSchema(table);
81
+ return table;
80
82
  }
81
83
  // TODO - support batch size 0 = no batching/single batch?
82
84
  function parseCSVInBatches(asyncIterator, options) {
@@ -135,7 +137,7 @@ function parseCSVInBatches(asyncIterator, options) {
135
137
  if (!headerRow) {
136
138
  headerRow = generateHeader(csvOptions.columnPrefix, row.length);
137
139
  }
138
- schema = deduceSchema(row, headerRow);
140
+ schema = deduceCSVSchema(row, headerRow);
139
141
  }
140
142
  if (csvOptions.optimizeMemoryUsage) {
141
143
  // A workaround to allocate new strings and don't retain pointers to original strings.
@@ -237,23 +239,54 @@ function generateHeader(columnPrefix, count = 0) {
237
239
  }
238
240
  return headers;
239
241
  }
240
- function deduceSchema(row, headerRow) {
241
- const schema = headerRow ? {} : [];
242
+ function deduceCSVSchema(row, headerRow) {
243
+ const fields = [];
242
244
  for (let i = 0; i < row.length; i++) {
243
245
  const columnName = (headerRow && headerRow[i]) || i;
244
246
  const value = row[i];
245
247
  switch (typeof value) {
246
248
  case 'number':
249
+ fields.push({ name: String(columnName), type: 'float64', nullable: true });
250
+ break;
247
251
  case 'boolean':
248
- // TODO - booleans could be handled differently...
249
- schema[columnName] = { name: String(columnName), index: i, type: Float32Array };
252
+ fields.push({ name: String(columnName), type: 'bool', nullable: true });
250
253
  break;
251
254
  case 'string':
255
+ fields.push({ name: String(columnName), type: 'utf8', nullable: true });
256
+ break;
252
257
  default:
253
- schema[columnName] = { name: String(columnName), index: i, type: Array };
254
- // We currently only handle numeric rows
255
- // TODO we could offer a function to map strings to numbers?
258
+ log.warn(`CSV: Unknown column type: ${typeof value}`)();
259
+ fields.push({ name: String(columnName), type: 'utf8', nullable: true });
256
260
  }
257
261
  }
258
- return schema;
262
+ return {
263
+ fields,
264
+ metadata: {
265
+ 'loaders.gl#format': 'csv',
266
+ 'loaders.gl#loader': 'CSVLoader'
267
+ }
268
+ };
259
269
  }
270
+ // TODO - remove
271
+ // type ObjectField = {name: string; index: number; type: any};
272
+ // type ObjectSchema = {[key: string]: ObjectField} | ObjectField[];
273
+ // function deduceObjectSchema(row, headerRow): ObjectSchema {
274
+ // const schema: ObjectSchema = headerRow ? {} : [];
275
+ // for (let i = 0; i < row.length; i++) {
276
+ // const columnName = (headerRow && headerRow[i]) || i;
277
+ // const value = row[i];
278
+ // switch (typeof value) {
279
+ // case 'number':
280
+ // case 'boolean':
281
+ // // TODO - booleans could be handled differently...
282
+ // schema[columnName] = {name: String(columnName), index: i, type: Float32Array};
283
+ // break;
284
+ // case 'string':
285
+ // default:
286
+ // schema[columnName] = {name: String(columnName), index: i, type: Array};
287
+ // // We currently only handle numeric rows
288
+ // // TODO we could offer a function to map strings to numbers?
289
+ // }
290
+ // }
291
+ // return schema;
292
+ // }
@@ -6,12 +6,7 @@ export type CSVWriterOptions = WriterOptions & {
6
6
  };
7
7
  };
8
8
  export declare const CSVWriter: {
9
- readonly id: "csv";
10
9
  readonly version: "latest";
11
- readonly module: "csv";
12
- readonly name: "CSV";
13
- readonly extensions: ["csv"];
14
- readonly mimeTypes: ["text/csv"];
15
10
  readonly options: {
16
11
  readonly csv: {
17
12
  readonly useDisplayNames: false;
@@ -20,5 +15,11 @@ export declare const CSVWriter: {
20
15
  readonly text: true;
21
16
  readonly encode: (table: Table, options: CSVWriterOptions | undefined) => Promise<ArrayBufferLike>;
22
17
  readonly encodeTextSync: (table: Table, options: CSVWriterOptions | undefined) => string;
18
+ readonly id: "csv";
19
+ readonly module: "csv";
20
+ readonly name: "CSV";
21
+ readonly extensions: ["csv", "tsv", "dsv"];
22
+ readonly mimeTypes: ["text/csv", "text/tab-separated-values", "text/dsv"];
23
+ readonly category: "table";
23
24
  };
24
25
  //# sourceMappingURL=csv-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"csv-writer.d.ts","sourceRoot":"","sources":["../src/csv-writer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAoB,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC/E,OAAO,KAAK,EAAC,KAAK,EAAa,MAAM,oBAAoB,CAAC;AAG1D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE;QACJ,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;CAgBqD,CAAC"}
1
+ {"version":3,"file":"csv-writer.d.ts","sourceRoot":"","sources":["../src/csv-writer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAoB,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC/E,OAAO,KAAK,EAAC,KAAK,EAAa,MAAM,oBAAoB,CAAC;AAI1D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE;QACJ,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;CAYqD,CAAC"}
@@ -2,13 +2,10 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { encodeTableAsCSV } from "./lib/encoders/encode-csv.js";
5
+ import { CSVFormat } from "./csv-format.js";
5
6
  export const CSVWriter = {
6
- id: 'csv',
7
+ ...CSVFormat,
7
8
  version: 'latest',
8
- module: 'csv',
9
- name: 'CSV',
10
- extensions: ['csv'],
11
- mimeTypes: ['text/csv'],
12
9
  options: {
13
10
  csv: {
14
11
  useDisplayNames: false