@loaders.gl/csv 4.0.0-alpha.24 → 4.0.0-alpha.25

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.
package/dist/dist.min.js CHANGED
@@ -406,8 +406,9 @@
406
406
  switch (table.shape) {
407
407
  case "array-row-table":
408
408
  case "object-row-table":
409
- case "geojson-row-table":
410
409
  return table.data.length;
410
+ case "geojson-table":
411
+ return table.features.length;
411
412
  case "arrow-table":
412
413
  return table.data.numRows;
413
414
  case "columnar-table":
@@ -430,8 +431,9 @@
430
431
  case "array-row-table":
431
432
  return table.data[0].length;
432
433
  case "object-row-table":
433
- case "geojson-row-table":
434
434
  return Object.keys(table.data[0]).length;
435
+ case "geojson-table":
436
+ return Object.keys(table.features[0]).length;
435
437
  case "columnar-table":
436
438
  return Object.keys(table.data).length;
437
439
  case "arrow-table":
@@ -445,7 +447,6 @@
445
447
  case "array-row-table":
446
448
  return copy2 ? Array.from(table.data[rowIndex]) : table.data[rowIndex];
447
449
  case "object-row-table":
448
- case "geojson-row-table":
449
450
  if (table.schema) {
450
451
  const arrayRow2 = target || [];
451
452
  for (let i = 0; i < table.schema.fields.length; i++) {
@@ -454,6 +455,15 @@
454
455
  return arrayRow2;
455
456
  }
456
457
  return Object.values(table.data[rowIndex]);
458
+ case "geojson-table":
459
+ if (table.schema) {
460
+ const arrayRow2 = target || [];
461
+ for (let i = 0; i < table.schema.fields.length; i++) {
462
+ arrayRow2[i] = table.features[rowIndex][table.schema.fields[i].name];
463
+ }
464
+ return arrayRow2;
465
+ }
466
+ return Object.values(table.features[rowIndex]);
457
467
  case "columnar-table":
458
468
  if (table.schema) {
459
469
  const arrayRow2 = target || [];
@@ -1398,7 +1408,8 @@
1398
1408
  const result = papaparse_default.parse(csvText, papaparseConfig);
1399
1409
  const rows = result.data;
1400
1410
  const headerRow = result.meta.fields || generateHeader(csvOptions.columnPrefix, firstRow.length);
1401
- switch (csvOptions.shape || "object-row-table") {
1411
+ const shape = csvOptions.shape || DEFAULT_CSV_SHAPE;
1412
+ switch (shape) {
1402
1413
  case "object-row-table":
1403
1414
  return {
1404
1415
  shape: "object-row-table",
@@ -1409,8 +1420,9 @@
1409
1420
  shape: "array-row-table",
1410
1421
  data: rows.map((row) => Array.isArray(row) ? row : convertToArrayRow(row, headerRow))
1411
1422
  };
1423
+ default:
1424
+ throw new Error(shape);
1412
1425
  }
1413
- throw new Error(csvOptions.shape);
1414
1426
  }
1415
1427
  function parseCSVInBatches(asyncIterator, options) {
1416
1428
  options = { ...options };
@@ -1455,8 +1467,9 @@
1455
1467
  if (csvOptions.optimizeMemoryUsage) {
1456
1468
  row = JSON.parse(JSON.stringify(row));
1457
1469
  }
1470
+ const shape = csvOptions.shape || DEFAULT_CSV_SHAPE;
1458
1471
  tableBatchBuilder = tableBatchBuilder || new TableBatchBuilder(schema, {
1459
- shape: csvOptions.shape || "array-row-table",
1472
+ shape,
1460
1473
  ...options
1461
1474
  });
1462
1475
  try {
@@ -1533,13 +1546,14 @@
1533
1546
  }
1534
1547
  return schema;
1535
1548
  }
1536
- var VERSION, CSVLoader;
1549
+ var VERSION, DEFAULT_CSV_SHAPE, CSVLoader;
1537
1550
  var init_csv_loader = __esm({
1538
1551
  "src/csv-loader.ts"() {
1539
1552
  init_src();
1540
1553
  init_papaparse();
1541
1554
  init_async_iterator_streamer();
1542
1555
  VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
1556
+ DEFAULT_CSV_SHAPE = "object-row-table";
1543
1557
  CSVLoader = {
1544
1558
  id: "csv",
1545
1559
  module: "csv",
@@ -1553,7 +1567,7 @@
1553
1567
  parseInBatches: parseCSVInBatches,
1554
1568
  options: {
1555
1569
  csv: {
1556
- shape: "object-row-table",
1570
+ shape: DEFAULT_CSV_SHAPE,
1557
1571
  optimizeMemoryUsage: false,
1558
1572
  header: "auto",
1559
1573
  columnPrefix: "column",
@@ -1773,16 +1787,10 @@
1773
1787
  });
1774
1788
 
1775
1789
  // src/csv-writer.ts
1776
- var DEFAULT_WRITER_OPTIONS, CSVWriter;
1790
+ var CSVWriter;
1777
1791
  var init_csv_writer = __esm({
1778
1792
  "src/csv-writer.ts"() {
1779
1793
  init_encode_csv();
1780
- DEFAULT_WRITER_OPTIONS = {
1781
- csv: {
1782
- useDisplayNames: false
1783
- },
1784
- useDisplayNames: false
1785
- };
1786
1794
  CSVWriter = {
1787
1795
  id: "csv",
1788
1796
  version: "latest",
@@ -1790,10 +1798,15 @@
1790
1798
  name: "CSV",
1791
1799
  extensions: ["csv"],
1792
1800
  mimeTypes: ["text/csv"],
1793
- options: DEFAULT_WRITER_OPTIONS,
1801
+ options: {
1802
+ csv: {
1803
+ useDisplayNames: false
1804
+ },
1805
+ useDisplayNames: false
1806
+ },
1794
1807
  text: true,
1795
1808
  encode: async (table, options) => new TextEncoder().encode(encodeTableAsCSV(table, options)).buffer,
1796
- encodeText: (table, options) => encodeTableAsCSV(table, options)
1809
+ encodeTextSync: (table, options) => encodeTableAsCSV(table, options)
1797
1810
  };
1798
1811
  }
1799
1812
  });
@@ -14,7 +14,8 @@ var _papaparse = _interopRequireDefault(require("./papaparse/papaparse"));
14
14
  var _asyncIteratorStreamer = _interopRequireDefault(require("./papaparse/async-iterator-streamer"));
15
15
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
16
16
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
- var VERSION = typeof "4.0.0-alpha.24" !== 'undefined' ? "4.0.0-alpha.24" : 'latest';
17
+ var VERSION = typeof "4.0.0-alpha.25" !== 'undefined' ? "4.0.0-alpha.25" : 'latest';
18
+ var DEFAULT_CSV_SHAPE = 'object-row-table';
18
19
  var CSVLoader = {
19
20
  id: 'csv',
20
21
  module: 'csv',
@@ -46,7 +47,7 @@ var CSVLoader = {
46
47
  parseInBatches: parseCSVInBatches,
47
48
  options: {
48
49
  csv: {
49
- shape: 'object-row-table',
50
+ shape: DEFAULT_CSV_SHAPE,
50
51
  optimizeMemoryUsage: false,
51
52
  header: 'auto',
52
53
  columnPrefix: 'column',
@@ -65,7 +66,7 @@ function parseCSV(_x3, _x4) {
65
66
  }
66
67
  function _parseCSV() {
67
68
  _parseCSV = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(csvText, options) {
68
- var csvOptions, firstRow, header, parseWithHeader, papaparseConfig, result, rows, headerRow;
69
+ var csvOptions, firstRow, header, parseWithHeader, papaparseConfig, result, rows, headerRow, shape;
69
70
  return _regenerator.default.wrap(function _callee2$(_context2) {
70
71
  while (1) switch (_context2.prev = _context2.next) {
71
72
  case 0:
@@ -84,26 +85,27 @@ function _parseCSV() {
84
85
  result = _papaparse.default.parse(csvText, papaparseConfig);
85
86
  rows = result.data;
86
87
  headerRow = result.meta.fields || generateHeader(csvOptions.columnPrefix, firstRow.length);
87
- _context2.t0 = csvOptions.shape || 'object-row-table';
88
- _context2.next = _context2.t0 === 'object-row-table' ? 11 : _context2.t0 === 'array-row-table' ? 12 : 13;
88
+ shape = csvOptions.shape || DEFAULT_CSV_SHAPE;
89
+ _context2.t0 = shape;
90
+ _context2.next = _context2.t0 === 'object-row-table' ? 12 : _context2.t0 === 'array-row-table' ? 13 : 14;
89
91
  break;
90
- case 11:
92
+ case 12:
91
93
  return _context2.abrupt("return", {
92
94
  shape: 'object-row-table',
93
95
  data: rows.map(function (row) {
94
96
  return Array.isArray(row) ? (0, _schema.convertToObjectRow)(row, headerRow) : row;
95
97
  })
96
98
  });
97
- case 12:
99
+ case 13:
98
100
  return _context2.abrupt("return", {
99
101
  shape: 'array-row-table',
100
102
  data: rows.map(function (row) {
101
103
  return Array.isArray(row) ? row : (0, _schema.convertToArrayRow)(row, headerRow);
102
104
  })
103
105
  });
104
- case 13:
105
- throw new Error(csvOptions.shape);
106
106
  case 14:
107
+ throw new Error(shape);
108
+ case 15:
107
109
  case "end":
108
110
  return _context2.stop();
109
111
  }
@@ -154,8 +156,9 @@ function parseCSVInBatches(asyncIterator, options) {
154
156
  if (csvOptions.optimizeMemoryUsage) {
155
157
  row = JSON.parse(JSON.stringify(row));
156
158
  }
159
+ var shape = csvOptions.shape || DEFAULT_CSV_SHAPE;
157
160
  tableBatchBuilder = tableBatchBuilder || new _schema.TableBatchBuilder(schema, _objectSpread({
158
- shape: csvOptions.shape || 'array-row-table'
161
+ shape: shape
159
162
  }, options));
160
163
  try {
161
164
  tableBatchBuilder.addRow(row);
@@ -1 +1 @@
1
- {"version":3,"file":"csv-loader.js","names":["_schema","require","_papaparse","_interopRequireDefault","_asyncIteratorStreamer","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","VERSION","CSVLoader","id","module","name","version","extensions","mimeTypes","category","parse","_parse","_asyncToGenerator2","_regenerator","mark","_callee","arrayBuffer","options","wrap","_callee$","_context","prev","next","abrupt","parseCSV","TextDecoder","decode","stop","_x","_x2","parseText","text","parseInBatches","parseCSVInBatches","csv","shape","optimizeMemoryUsage","header","columnPrefix","quoteChar","escapeChar","dynamicTyping","comments","skipEmptyLines","delimitersToGuess","exports","_x3","_x4","_parseCSV","_callee2","csvText","csvOptions","firstRow","parseWithHeader","papaparseConfig","result","rows","headerRow","_callee2$","_context2","readFirstRow","isHeaderRow","Boolean","download","transformHeader","duplicateColumnTransformer","undefined","error","e","Error","Papa","data","meta","fields","generateHeader","t0","map","row","Array","isArray","convertToObjectRow","convertToArrayRow","asyncIterator","_options","batchSize","asyncQueue","AsyncQueue","isFirstRow","tableBatchBuilder","schema","config","chunkSize","step","results","collapsedRow","flat","join","trim","bytesUsed","cursor","deduceSchema","JSON","stringify","TableBatchBuilder","addRow","batch","getFullBatch","enqueue","complete","getFinalBatch","close","AsyncIteratorStreamer","every","value","preview","observedColumns","Set","col","colName","counter","has","concat","add","count","headers","columnName","_typeof2","String","index","type","Float32Array"],"sources":["../../src/csv-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {ArrayRowTable, ObjectRowTable, TableBatch} from '@loaders.gl/schema';\n\nimport {\n AsyncQueue,\n Table,\n TableBatchBuilder,\n convertToArrayRow,\n convertToObjectRow\n} from '@loaders.gl/schema';\nimport Papa from './papaparse/papaparse';\nimport AsyncIteratorStreamer from './papaparse/async-iterator-streamer';\n\ntype ObjectField = {name: string; index: number; type: any};\ntype ObjectSchema = {[key: string]: ObjectField} | ObjectField[];\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type CSVLoaderOptions = LoaderOptions & {\n csv?: {\n // loaders.gl options\n shape?: 'array-row-table' | 'object-row-table';\n /** optimizes memory usage but increases parsing time. */\n optimizeMemoryUsage?: boolean;\n columnPrefix?: string;\n header?: 'auto';\n\n // CSV options (papaparse)\n // delimiter: auto\n // newline: auto\n quoteChar?: string;\n escapeChar?: string;\n // Convert numbers and boolean values in rows from strings\n dynamicTyping?: boolean;\n comments?: boolean;\n skipEmptyLines?: boolean | 'greedy';\n // transform: null?\n delimitersToGuess?: string[];\n // fastMode: auto\n };\n};\n\nexport const CSVLoader: LoaderWithParser<Table, TableBatch, CSVLoaderOptions> = {\n id: 'csv',\n module: 'csv',\n name: 'CSV',\n version: VERSION,\n extensions: ['csv', 'tsv', 'dsv'],\n mimeTypes: ['text/csv', 'text/tab-separated-values', 'text/dsv'],\n category: 'table',\n parse: async (arrayBuffer: ArrayBuffer, options?: CSVLoaderOptions) =>\n parseCSV(new TextDecoder().decode(arrayBuffer), options),\n parseText: (text: string, options?: CSVLoaderOptions) => parseCSV(text, options),\n parseInBatches: parseCSVInBatches,\n // @ts-ignore\n // testText: null,\n options: {\n csv: {\n shape: 'object-row-table',\n optimizeMemoryUsage: false,\n // CSV options\n header: 'auto',\n columnPrefix: 'column',\n // delimiter: auto\n // newline: auto\n quoteChar: '\"',\n escapeChar: '\"',\n dynamicTyping: true,\n comments: false,\n skipEmptyLines: true,\n // transform: null?\n delimitersToGuess: [',', '\\t', '|', ';']\n // fastMode: auto\n }\n }\n};\n\nasync function parseCSV(\n csvText: string,\n options?: CSVLoaderOptions\n): Promise<ObjectRowTable | ArrayRowTable> {\n // Apps can call the parse method directly, we so apply default options here\n const csvOptions = {...CSVLoader.options.csv, ...options?.csv};\n\n const firstRow = readFirstRow(csvText);\n const header: boolean =\n csvOptions.header === 'auto' ? isHeaderRow(firstRow) : Boolean(csvOptions.header);\n\n const parseWithHeader = header;\n\n const papaparseConfig = {\n // dynamicTyping: true,\n ...csvOptions,\n header: parseWithHeader,\n download: false, // We handle loading, no need for papaparse to do it for us\n transformHeader: parseWithHeader ? duplicateColumnTransformer() : undefined,\n error: (e) => {\n throw new Error(e);\n }\n };\n\n const result = Papa.parse(csvText, papaparseConfig);\n const rows = result.data as any[];\n\n const headerRow = result.meta.fields || generateHeader(csvOptions.columnPrefix!, firstRow.length);\n\n switch (csvOptions.shape || 'object-row-table') {\n case 'object-row-table':\n return {\n shape: 'object-row-table',\n data: rows.map((row) => (Array.isArray(row) ? convertToObjectRow(row, headerRow) : row))\n };\n case 'array-row-table':\n return {\n shape: 'array-row-table',\n data: rows.map((row) => (Array.isArray(row) ? row : convertToArrayRow(row, headerRow)))\n };\n }\n throw new Error(csvOptions.shape);\n}\n\n// TODO - support batch size 0 = no batching/single batch?\nfunction parseCSVInBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: CSVLoaderOptions\n): AsyncIterable<TableBatch> {\n // Papaparse does not support standard batch size handling\n // TODO - investigate papaparse chunks mode\n options = {...options};\n if (options.batchSize === 'auto') {\n options.batchSize = 4000;\n }\n\n // Apps can call the parse method directly, we so apply default options here\n const csvOptions = {...CSVLoader.options.csv, ...options?.csv};\n\n const asyncQueue = new AsyncQueue<TableBatch>();\n\n let isFirstRow: boolean = true;\n let headerRow: string[] | null = null;\n let tableBatchBuilder: TableBatchBuilder | null = null;\n let schema: ObjectSchema | null = null;\n\n const config = {\n // dynamicTyping: true, // Convert numbers and boolean values in rows from strings,\n ...csvOptions,\n header: false, // Unfortunately, header detection is not automatic and does not infer shapes\n download: false, // We handle loading, no need for papaparse to do it for us\n // chunkSize is set to 5MB explicitly (same as Papaparse default) due to a bug where the\n // streaming parser gets stuck if skipEmptyLines and a step callback are both supplied.\n // See https://github.com/mholt/PapaParse/issues/465\n chunkSize: 1024 * 1024 * 5,\n // skipEmptyLines is set to a boolean value if supplied. Greedy is set to true\n // skipEmptyLines is handled manually given two bugs where the streaming parser gets stuck if\n // both of the skipEmptyLines and step callback options are provided:\n // - true doesn't work unless chunkSize is set: https://github.com/mholt/PapaParse/issues/465\n // - greedy doesn't work: https://github.com/mholt/PapaParse/issues/825\n skipEmptyLines: false,\n\n // step is called on every row\n // eslint-disable-next-line complexity\n step(results) {\n let row = results.data;\n\n if (csvOptions.skipEmptyLines) {\n // Manually reject lines that are empty\n const collapsedRow = row.flat().join('').trim();\n if (collapsedRow === '') {\n return;\n }\n }\n const bytesUsed = results.meta.cursor;\n\n // Check if we need to save a header row\n if (isFirstRow && !headerRow) {\n // Auto detects or can be forced with csvOptions.header\n const header = csvOptions.header === 'auto' ? isHeaderRow(row) : Boolean(csvOptions.header);\n if (header) {\n headerRow = row.map(duplicateColumnTransformer());\n return;\n }\n }\n\n // If first data row, we can deduce the schema\n if (isFirstRow) {\n isFirstRow = false;\n if (!headerRow) {\n headerRow = generateHeader(csvOptions.columnPrefix!, row.length);\n }\n schema = deduceSchema(row, headerRow);\n }\n\n if (csvOptions.optimizeMemoryUsage) {\n // A workaround to allocate new strings and don't retain pointers to original strings.\n // https://bugs.chromium.org/p/v8/issues/detail?id=2869\n row = JSON.parse(JSON.stringify(row));\n }\n\n // Add the row\n tableBatchBuilder =\n tableBatchBuilder ||\n new TableBatchBuilder(\n // @ts-expect-error TODO this is not a proper schema\n schema,\n {\n shape: csvOptions.shape || 'array-row-table',\n ...options\n }\n );\n\n try {\n tableBatchBuilder.addRow(row);\n // If a batch has been completed, emit it\n const batch = tableBatchBuilder && tableBatchBuilder.getFullBatch({bytesUsed});\n if (batch) {\n asyncQueue.enqueue(batch);\n }\n } catch (error) {\n asyncQueue.enqueue(error as Error);\n }\n },\n\n // complete is called when all rows have been read\n complete(results) {\n try {\n const bytesUsed = results.meta.cursor;\n // Ensure any final (partial) batch gets emitted\n const batch = tableBatchBuilder && tableBatchBuilder.getFinalBatch({bytesUsed});\n if (batch) {\n asyncQueue.enqueue(batch);\n }\n } catch (error) {\n asyncQueue.enqueue(error as Error);\n }\n\n asyncQueue.close();\n }\n };\n\n Papa.parse(asyncIterator, config, AsyncIteratorStreamer);\n\n // TODO - Does it matter if we return asyncIterable or asyncIterator\n // return asyncQueue[Symbol.asyncIterator]();\n return asyncQueue;\n}\n\n/**\n * Checks if a certain row is a header row\n * @param row the row to check\n * @returns true if the row looks like a header\n */\nfunction isHeaderRow(row: string[]): boolean {\n return row && row.every((value) => typeof value === 'string');\n}\n\n/**\n * Reads, parses, and returns the first row of a CSV text\n * @param csvText the csv text to parse\n * @returns the first row\n */\nfunction readFirstRow(csvText: string): any[] {\n const result = Papa.parse(csvText, {\n download: false,\n dynamicTyping: true,\n preview: 1\n });\n return result.data[0];\n}\n\n/**\n * Creates a transformer that renames duplicate columns. This is needed as Papaparse doesn't handle\n * duplicate header columns and would use the latest occurrence by default.\n * See the header option in https://www.papaparse.com/docs#config\n * @returns a transform function that returns sanitized names for duplicate fields\n */\nfunction duplicateColumnTransformer(): (column: string) => string {\n const observedColumns = new Set<string>();\n return (col) => {\n let colName = col;\n let counter = 1;\n while (observedColumns.has(colName)) {\n colName = `${col}.${counter}`;\n counter++;\n }\n observedColumns.add(colName);\n return colName;\n };\n}\n\n/**\n * Generates the header of a CSV given a prefix and a column count\n * @param columnPrefix the columnPrefix to use\n * @param count the count of column names to generate\n * @returns an array of column names\n */\nfunction generateHeader(columnPrefix: string, count: number = 0): string[] {\n const headers: string[] = [];\n for (let i = 0; i < count; i++) {\n headers.push(`${columnPrefix}${i + 1}`);\n }\n return headers;\n}\n\nfunction deduceSchema(row, headerRow): ObjectSchema {\n const schema: ObjectSchema = headerRow ? {} : [];\n for (let i = 0; i < row.length; i++) {\n const columnName = (headerRow && headerRow[i]) || i;\n const value = row[i];\n switch (typeof value) {\n case 'number':\n case 'boolean':\n // TODO - booleans could be handled differently...\n schema[columnName] = {name: String(columnName), index: i, type: Float32Array};\n break;\n case 'string':\n default:\n schema[columnName] = {name: String(columnName), index: i, type: Array};\n // We currently only handle numeric rows\n // TODO we could offer a function to map strings to numbers?\n }\n }\n return schema;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"csv-loader.js","names":["_schema","require","_papaparse","_interopRequireDefault","_asyncIteratorStreamer","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","VERSION","DEFAULT_CSV_SHAPE","CSVLoader","id","module","name","version","extensions","mimeTypes","category","parse","_parse","_asyncToGenerator2","_regenerator","mark","_callee","arrayBuffer","options","wrap","_callee$","_context","prev","next","abrupt","parseCSV","TextDecoder","decode","stop","_x","_x2","parseText","text","parseInBatches","parseCSVInBatches","csv","shape","optimizeMemoryUsage","header","columnPrefix","quoteChar","escapeChar","dynamicTyping","comments","skipEmptyLines","delimitersToGuess","exports","_x3","_x4","_parseCSV","_callee2","csvText","csvOptions","firstRow","parseWithHeader","papaparseConfig","result","rows","headerRow","_callee2$","_context2","readFirstRow","isHeaderRow","Boolean","download","transformHeader","duplicateColumnTransformer","undefined","error","e","Error","Papa","data","meta","fields","generateHeader","t0","map","row","Array","isArray","convertToObjectRow","convertToArrayRow","asyncIterator","_options","batchSize","asyncQueue","AsyncQueue","isFirstRow","tableBatchBuilder","schema","config","chunkSize","step","results","collapsedRow","flat","join","trim","bytesUsed","cursor","deduceSchema","JSON","stringify","TableBatchBuilder","addRow","batch","getFullBatch","enqueue","complete","getFinalBatch","close","AsyncIteratorStreamer","every","value","preview","observedColumns","Set","col","colName","counter","has","concat","add","count","headers","columnName","_typeof2","String","index","type","Float32Array"],"sources":["../../src/csv-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {ArrayRowTable, ObjectRowTable, TableBatch} from '@loaders.gl/schema';\n\nimport {\n AsyncQueue,\n Table,\n TableBatchBuilder,\n convertToArrayRow,\n convertToObjectRow\n} from '@loaders.gl/schema';\nimport Papa from './papaparse/papaparse';\nimport AsyncIteratorStreamer from './papaparse/async-iterator-streamer';\n\ntype ObjectField = {name: string; index: number; type: any};\ntype ObjectSchema = {[key: string]: ObjectField} | ObjectField[];\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nconst DEFAULT_CSV_SHAPE = 'object-row-table';\n\nexport type CSVLoaderOptions = LoaderOptions & {\n csv?: {\n // loaders.gl options\n shape?: 'array-row-table' | 'object-row-table';\n /** optimizes memory usage but increases parsing time. */\n optimizeMemoryUsage?: boolean;\n columnPrefix?: string;\n header?: 'auto';\n\n // CSV options (papaparse)\n // delimiter: auto\n // newline: auto\n quoteChar?: string;\n escapeChar?: string;\n // Convert numbers and boolean values in rows from strings\n dynamicTyping?: boolean;\n comments?: boolean;\n skipEmptyLines?: boolean | 'greedy';\n // transform: null?\n delimitersToGuess?: string[];\n // fastMode: auto\n };\n};\n\nexport const CSVLoader: LoaderWithParser<Table, TableBatch, CSVLoaderOptions> = {\n id: 'csv',\n module: 'csv',\n name: 'CSV',\n version: VERSION,\n extensions: ['csv', 'tsv', 'dsv'],\n mimeTypes: ['text/csv', 'text/tab-separated-values', 'text/dsv'],\n category: 'table',\n parse: async (arrayBuffer: ArrayBuffer, options?: CSVLoaderOptions) =>\n parseCSV(new TextDecoder().decode(arrayBuffer), options),\n parseText: (text: string, options?: CSVLoaderOptions) => parseCSV(text, options),\n parseInBatches: parseCSVInBatches,\n // @ts-ignore\n // testText: null,\n options: {\n csv: {\n shape: DEFAULT_CSV_SHAPE, // 'object-row-table'\n optimizeMemoryUsage: false,\n // CSV options\n header: 'auto',\n columnPrefix: 'column',\n // delimiter: auto\n // newline: auto\n quoteChar: '\"',\n escapeChar: '\"',\n dynamicTyping: true,\n comments: false,\n skipEmptyLines: true,\n // transform: null?\n delimitersToGuess: [',', '\\t', '|', ';']\n // fastMode: auto\n }\n }\n};\n\nasync function parseCSV(\n csvText: string,\n options?: CSVLoaderOptions\n): Promise<ObjectRowTable | ArrayRowTable> {\n // Apps can call the parse method directly, we so apply default options here\n const csvOptions = {...CSVLoader.options.csv, ...options?.csv};\n\n const firstRow = readFirstRow(csvText);\n const header: boolean =\n csvOptions.header === 'auto' ? isHeaderRow(firstRow) : Boolean(csvOptions.header);\n\n const parseWithHeader = header;\n\n const papaparseConfig = {\n // dynamicTyping: true,\n ...csvOptions,\n header: parseWithHeader,\n download: false, // We handle loading, no need for papaparse to do it for us\n transformHeader: parseWithHeader ? duplicateColumnTransformer() : undefined,\n error: (e) => {\n throw new Error(e);\n }\n };\n\n const result = Papa.parse(csvText, papaparseConfig);\n const rows = result.data as any[];\n\n const headerRow = result.meta.fields || generateHeader(csvOptions.columnPrefix!, firstRow.length);\n\n const shape = csvOptions.shape || DEFAULT_CSV_SHAPE;\n switch (shape) {\n case 'object-row-table':\n return {\n shape: 'object-row-table',\n data: rows.map((row) => (Array.isArray(row) ? convertToObjectRow(row, headerRow) : row))\n };\n case 'array-row-table':\n return {\n shape: 'array-row-table',\n data: rows.map((row) => (Array.isArray(row) ? row : convertToArrayRow(row, headerRow)))\n };\n default:\n throw new Error(shape);\n }\n}\n\n// TODO - support batch size 0 = no batching/single batch?\nfunction parseCSVInBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: CSVLoaderOptions\n): AsyncIterable<TableBatch> {\n // Papaparse does not support standard batch size handling\n // TODO - investigate papaparse chunks mode\n options = {...options};\n if (options.batchSize === 'auto') {\n options.batchSize = 4000;\n }\n\n // Apps can call the parse method directly, we so apply default options here\n const csvOptions = {...CSVLoader.options.csv, ...options?.csv};\n\n const asyncQueue = new AsyncQueue<TableBatch>();\n\n let isFirstRow: boolean = true;\n let headerRow: string[] | null = null;\n let tableBatchBuilder: TableBatchBuilder | null = null;\n let schema: ObjectSchema | null = null;\n\n const config = {\n // dynamicTyping: true, // Convert numbers and boolean values in rows from strings,\n ...csvOptions,\n header: false, // Unfortunately, header detection is not automatic and does not infer shapes\n download: false, // We handle loading, no need for papaparse to do it for us\n // chunkSize is set to 5MB explicitly (same as Papaparse default) due to a bug where the\n // streaming parser gets stuck if skipEmptyLines and a step callback are both supplied.\n // See https://github.com/mholt/PapaParse/issues/465\n chunkSize: 1024 * 1024 * 5,\n // skipEmptyLines is set to a boolean value if supplied. Greedy is set to true\n // skipEmptyLines is handled manually given two bugs where the streaming parser gets stuck if\n // both of the skipEmptyLines and step callback options are provided:\n // - true doesn't work unless chunkSize is set: https://github.com/mholt/PapaParse/issues/465\n // - greedy doesn't work: https://github.com/mholt/PapaParse/issues/825\n skipEmptyLines: false,\n\n // step is called on every row\n // eslint-disable-next-line complexity, max-statements\n step(results) {\n let row = results.data;\n\n if (csvOptions.skipEmptyLines) {\n // Manually reject lines that are empty\n const collapsedRow = row.flat().join('').trim();\n if (collapsedRow === '') {\n return;\n }\n }\n const bytesUsed = results.meta.cursor;\n\n // Check if we need to save a header row\n if (isFirstRow && !headerRow) {\n // Auto detects or can be forced with csvOptions.header\n const header = csvOptions.header === 'auto' ? isHeaderRow(row) : Boolean(csvOptions.header);\n if (header) {\n headerRow = row.map(duplicateColumnTransformer());\n return;\n }\n }\n\n // If first data row, we can deduce the schema\n if (isFirstRow) {\n isFirstRow = false;\n if (!headerRow) {\n headerRow = generateHeader(csvOptions.columnPrefix!, row.length);\n }\n schema = deduceSchema(row, headerRow);\n }\n\n if (csvOptions.optimizeMemoryUsage) {\n // A workaround to allocate new strings and don't retain pointers to original strings.\n // https://bugs.chromium.org/p/v8/issues/detail?id=2869\n row = JSON.parse(JSON.stringify(row));\n }\n\n const shape = csvOptions.shape || DEFAULT_CSV_SHAPE;\n\n // Add the row\n tableBatchBuilder =\n tableBatchBuilder ||\n new TableBatchBuilder(\n // @ts-expect-error TODO this is not a proper schema\n schema,\n {\n shape,\n ...options\n }\n );\n\n try {\n tableBatchBuilder.addRow(row);\n // If a batch has been completed, emit it\n const batch = tableBatchBuilder && tableBatchBuilder.getFullBatch({bytesUsed});\n if (batch) {\n asyncQueue.enqueue(batch);\n }\n } catch (error) {\n asyncQueue.enqueue(error as Error);\n }\n },\n\n // complete is called when all rows have been read\n complete(results) {\n try {\n const bytesUsed = results.meta.cursor;\n // Ensure any final (partial) batch gets emitted\n const batch = tableBatchBuilder && tableBatchBuilder.getFinalBatch({bytesUsed});\n if (batch) {\n asyncQueue.enqueue(batch);\n }\n } catch (error) {\n asyncQueue.enqueue(error as Error);\n }\n\n asyncQueue.close();\n }\n };\n\n Papa.parse(asyncIterator, config, AsyncIteratorStreamer);\n\n // TODO - Does it matter if we return asyncIterable or asyncIterator\n // return asyncQueue[Symbol.asyncIterator]();\n return asyncQueue;\n}\n\n/**\n * Checks if a certain row is a header row\n * @param row the row to check\n * @returns true if the row looks like a header\n */\nfunction isHeaderRow(row: string[]): boolean {\n return row && row.every((value) => typeof value === 'string');\n}\n\n/**\n * Reads, parses, and returns the first row of a CSV text\n * @param csvText the csv text to parse\n * @returns the first row\n */\nfunction readFirstRow(csvText: string): any[] {\n const result = Papa.parse(csvText, {\n download: false,\n dynamicTyping: true,\n preview: 1\n });\n return result.data[0];\n}\n\n/**\n * Creates a transformer that renames duplicate columns. This is needed as Papaparse doesn't handle\n * duplicate header columns and would use the latest occurrence by default.\n * See the header option in https://www.papaparse.com/docs#config\n * @returns a transform function that returns sanitized names for duplicate fields\n */\nfunction duplicateColumnTransformer(): (column: string) => string {\n const observedColumns = new Set<string>();\n return (col) => {\n let colName = col;\n let counter = 1;\n while (observedColumns.has(colName)) {\n colName = `${col}.${counter}`;\n counter++;\n }\n observedColumns.add(colName);\n return colName;\n };\n}\n\n/**\n * Generates the header of a CSV given a prefix and a column count\n * @param columnPrefix the columnPrefix to use\n * @param count the count of column names to generate\n * @returns an array of column names\n */\nfunction generateHeader(columnPrefix: string, count: number = 0): string[] {\n const headers: string[] = [];\n for (let i = 0; i < count; i++) {\n headers.push(`${columnPrefix}${i + 1}`);\n }\n return headers;\n}\n\nfunction deduceSchema(row, headerRow): ObjectSchema {\n const schema: ObjectSchema = headerRow ? {} : [];\n for (let i = 0; i < row.length; i++) {\n const columnName = (headerRow && headerRow[i]) || i;\n const value = row[i];\n switch (typeof value) {\n case 'number':\n case 'boolean':\n // TODO - booleans could be handled differently...\n schema[columnName] = {name: String(columnName), index: i, type: Float32Array};\n break;\n case 'string':\n default:\n schema[columnName] = {name: String(columnName), index: i, type: Array};\n // We currently only handle numeric rows\n // TODO we could offer a function to map strings to numbers?\n }\n }\n return schema;\n}\n"],"mappings":"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"}
@@ -8,12 +8,6 @@ exports.CSVWriter = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _encodeCsv = require("./lib/encoders/encode-csv");
11
- var DEFAULT_WRITER_OPTIONS = {
12
- csv: {
13
- useDisplayNames: false
14
- },
15
- useDisplayNames: false
16
- };
17
11
  var CSVWriter = {
18
12
  id: 'csv',
19
13
  version: 'latest',
@@ -21,7 +15,12 @@ var CSVWriter = {
21
15
  name: 'CSV',
22
16
  extensions: ['csv'],
23
17
  mimeTypes: ['text/csv'],
24
- options: DEFAULT_WRITER_OPTIONS,
18
+ options: {
19
+ csv: {
20
+ useDisplayNames: false
21
+ },
22
+ useDisplayNames: false
23
+ },
25
24
  text: true,
26
25
  encode: function () {
27
26
  var _encode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(table, options) {
@@ -40,7 +39,7 @@ var CSVWriter = {
40
39
  }
41
40
  return encode;
42
41
  }(),
43
- encodeText: function encodeText(table, options) {
42
+ encodeTextSync: function encodeTextSync(table, options) {
44
43
  return (0, _encodeCsv.encodeTableAsCSV)(table, options);
45
44
  }
46
45
  };
@@ -1 +1 @@
1
- {"version":3,"file":"csv-writer.js","names":["_encodeCsv","require","DEFAULT_WRITER_OPTIONS","csv","useDisplayNames","CSVWriter","id","version","module","name","extensions","mimeTypes","options","text","encode","_encode","_asyncToGenerator2","default","_regenerator","mark","_callee","table","wrap","_callee$","_context","prev","next","abrupt","TextEncoder","encodeTableAsCSV","buffer","stop","_x","_x2","apply","arguments","encodeText","exports"],"sources":["../../src/csv-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/* global TextEncoder */\nimport type {Writer} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport type {CSVWriterOptions} from './lib/encoders/encode-csv';\nimport {encodeTableAsCSV} from './lib/encoders/encode-csv';\n\nexport type {CSVWriterOptions};\n\nconst DEFAULT_WRITER_OPTIONS: Required<CSVWriterOptions> = {\n csv: {\n useDisplayNames: false\n },\n useDisplayNames: false\n};\n\nexport const CSVWriter: Writer<Table, TableBatch, CSVWriterOptions> = {\n id: 'csv',\n version: 'latest',\n module: 'csv',\n name: 'CSV',\n extensions: ['csv'],\n mimeTypes: ['text/csv'],\n options: DEFAULT_WRITER_OPTIONS,\n text: true,\n encode: async (table, options) =>\n new TextEncoder().encode(encodeTableAsCSV(table, options)).buffer,\n encodeText: (table, options) => encodeTableAsCSV(table, options)\n};\n"],"mappings":";;;;;;;;;AAMA,IAAAA,UAAA,GAAAC,OAAA;AAIA,IAAMC,sBAAkD,GAAG;EACzDC,GAAG,EAAE;IACHC,eAAe,EAAE;EACnB,CAAC;EACDA,eAAe,EAAE;AACnB,CAAC;AAEM,IAAMC,SAAsD,GAAG;EACpEC,EAAE,EAAE,KAAK;EACTC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,KAAK;EACXC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,UAAU,CAAC;EACvBC,OAAO,EAAEV,sBAAsB;EAC/BW,IAAI,EAAE,IAAI;EACVC,MAAM;IAAA,IAAAC,OAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAOC,KAAK,EAAET,OAAO;MAAA,OAAAM,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WAC3B,IAAIC,WAAW,CAAC,CAAC,CAACd,MAAM,CAAC,IAAAe,2BAAgB,EAACR,KAAK,EAAET,OAAO,CAAC,CAAC,CAACkB,MAAM;UAAA;UAAA;YAAA,OAAAN,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAX,OAAA;IAAA;IAAA,SAAAN,OAAAkB,EAAA,EAAAC,GAAA;MAAA,OAAAlB,OAAA,CAAAmB,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAArB,MAAA;EAAA;EACnEsB,UAAU,EAAE,SAAAA,WAACf,KAAK,EAAET,OAAO;IAAA,OAAK,IAAAiB,2BAAgB,EAACR,KAAK,EAAET,OAAO,CAAC;EAAA;AAClE,CAAC;AAACyB,OAAA,CAAAhC,SAAA,GAAAA,SAAA"}
1
+ {"version":3,"file":"csv-writer.js","names":["_encodeCsv","require","CSVWriter","id","version","module","name","extensions","mimeTypes","options","csv","useDisplayNames","text","encode","_encode","_asyncToGenerator2","default","_regenerator","mark","_callee","table","wrap","_callee$","_context","prev","next","abrupt","TextEncoder","encodeTableAsCSV","buffer","stop","_x","_x2","apply","arguments","encodeTextSync","exports"],"sources":["../../src/csv-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/* global TextEncoder */\nimport type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport {encodeTableAsCSV} from './lib/encoders/encode-csv';\n\nexport type CSVWriterOptions = WriterOptions & {\n csv?: {\n useDisplayNames?: boolean;\n };\n /** @deprecated */\n useDisplayNames?: boolean;\n};\n\nexport const CSVWriter: Writer<Table, TableBatch, CSVWriterOptions> = {\n id: 'csv',\n version: 'latest',\n module: 'csv',\n name: 'CSV',\n extensions: ['csv'],\n mimeTypes: ['text/csv'],\n options: {\n csv: {\n useDisplayNames: false\n },\n /** @deprecated use csv.displayNames */\n useDisplayNames: false\n },\n text: true,\n encode: async (table, options) =>\n new TextEncoder().encode(encodeTableAsCSV(table, options)).buffer,\n encodeTextSync: (table, options) => encodeTableAsCSV(table, options)\n};\n"],"mappings":";;;;;;;;;AAKA,IAAAA,UAAA,GAAAC,OAAA;AAUO,IAAMC,SAAsD,GAAG;EACpEC,EAAE,EAAE,KAAK;EACTC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,KAAK;EACXC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,UAAU,CAAC;EACvBC,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,eAAe,EAAE;IACnB,CAAC;IAEDA,eAAe,EAAE;EACnB,CAAC;EACDC,IAAI,EAAE,IAAI;EACVC,MAAM;IAAA,IAAAC,OAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAOC,KAAK,EAAEX,OAAO;MAAA,OAAAQ,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WAC3B,IAAIC,WAAW,CAAC,CAAC,CAACd,MAAM,CAAC,IAAAe,2BAAgB,EAACR,KAAK,EAAEX,OAAO,CAAC,CAAC,CAACoB,MAAM;UAAA;UAAA;YAAA,OAAAN,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAX,OAAA;IAAA;IAAA,SAAAN,OAAAkB,EAAA,EAAAC,GAAA;MAAA,OAAAlB,OAAA,CAAAmB,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAArB,MAAA;EAAA;EACnEsB,cAAc,EAAE,SAAAA,eAACf,KAAK,EAAEX,OAAO;IAAA,OAAK,IAAAmB,2BAAgB,EAACR,KAAK,EAAEX,OAAO,CAAC;EAAA;AACtE,CAAC;AAAC2B,OAAA,CAAAlC,SAAA,GAAAA,SAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"encode-csv.js","names":["_schema","require","_d3Dsv","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","encodeTableAsCSV","table","_options$csv","_table$schema","options","arguments","undefined","csv","useDisplayNames","fields","schema","columnNames","map","_f$metadata","displayName","metadata","formattedData","_iterator","makeArrayRowIterator","_step","row","formattedRow","columnIndex","getTableNumCols","preformatFieldValue","push","csvFormatRows","Date","toISOString","_typeof2","default","JSON","stringify","String"],"sources":["../../../../src/lib/encoders/encode-csv.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Table, makeArrayRowIterator, getTableNumCols} from '@loaders.gl/schema';\nimport {csvFormatRows} from 'd3-dsv';\n\ntype EncodableData = string | null;\n\nexport type CSVWriterOptions = {\n csv?: {\n useDisplayNames?: boolean;\n };\n /** @deprecated */\n useDisplayNames?: boolean;\n};\n\n/**\n * Encode a Table object as CSV\n */\nexport function encodeTableAsCSV(\n table: Table,\n options: CSVWriterOptions = {csv: {useDisplayNames: true}}\n): string {\n const useDisplayNames = options.useDisplayNames || options.csv?.useDisplayNames;\n\n const fields = table.schema?.fields || [];\n\n const columnNames = fields.map((f) => {\n // This is a leaky abstraction, assuming Kepler metadata\n const displayName = f.metadata?.displayName;\n return useDisplayNames && typeof displayName === 'string' ? displayName : f.name;\n });\n const formattedData: EncodableData[][] = [columnNames];\n\n for (const row of makeArrayRowIterator(table)) {\n const formattedRow: EncodableData[] = [];\n for (let columnIndex = 0; columnIndex < getTableNumCols(table); ++columnIndex) {\n const value = row[columnIndex];\n formattedRow[columnIndex] = preformatFieldValue(value);\n }\n formattedData.push(formattedRow);\n }\n\n return csvFormatRows(formattedData);\n}\n\n/**\n * Stringifies a value\n * @todo Why is it called parse?\n */\nconst preformatFieldValue = (value: unknown): EncodableData => {\n if (value === null || value === undefined) {\n // TODO: It would be nice to distinguish between missing values and the empty string\n // https://github.com/d3/d3-dsv/issues/84\n return null;\n }\n if (value instanceof Date) {\n // d3-dsv formats dates without timezones if they don't have time info;\n // this forces them to always use fully-qualified ISO time strings\n return value.toISOString();\n }\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\n return String(value);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"encode-csv.js","names":["_schema","require","_d3Dsv","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","encodeTableAsCSV","table","_options$csv","_table$schema","options","arguments","undefined","csv","useDisplayNames","fields","schema","columnNames","map","_f$metadata","displayName","metadata","formattedData","_iterator","makeArrayRowIterator","_step","row","formattedRow","columnIndex","getTableNumCols","preformatFieldValue","push","csvFormatRows","Date","toISOString","_typeof2","default","JSON","stringify","String"],"sources":["../../../../src/lib/encoders/encode-csv.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Table, makeArrayRowIterator, getTableNumCols} from '@loaders.gl/schema';\nimport {csvFormatRows} from 'd3-dsv';\nimport type {CSVWriterOptions} from '../../csv-writer';\n\ntype EncodableData = string | null;\n\n/**\n * Encode a Table object as CSV\n */\nexport function encodeTableAsCSV(\n table: Table,\n options: CSVWriterOptions = {csv: {useDisplayNames: true}}\n): string {\n const useDisplayNames = options.useDisplayNames || options.csv?.useDisplayNames;\n\n const fields = table.schema?.fields || [];\n\n const columnNames = fields.map((f) => {\n // This is a leaky abstraction, assuming Kepler metadata\n const displayName = f.metadata?.displayName;\n return useDisplayNames && typeof displayName === 'string' ? displayName : f.name;\n });\n const formattedData: EncodableData[][] = [columnNames];\n\n for (const row of makeArrayRowIterator(table)) {\n const formattedRow: EncodableData[] = [];\n for (let columnIndex = 0; columnIndex < getTableNumCols(table); ++columnIndex) {\n const value = row[columnIndex];\n formattedRow[columnIndex] = preformatFieldValue(value);\n }\n formattedData.push(formattedRow);\n }\n\n return csvFormatRows(formattedData);\n}\n\n/**\n * Stringifies a value\n * @todo Why is it called parse?\n */\nconst preformatFieldValue = (value: unknown): EncodableData => {\n if (value === null || value === undefined) {\n // TODO: It would be nice to distinguish between missing values and the empty string\n // https://github.com/d3/d3-dsv/issues/84\n return null;\n }\n if (value instanceof Date) {\n // d3-dsv formats dates without timezones if they don't have time info;\n // this forces them to always use fully-qualified ISO time strings\n return value.toISOString();\n }\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\n return String(value);\n};\n"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { AsyncQueue, TableBatchBuilder, convertToArrayRow, convertToObjectRow } from '@loaders.gl/schema';
2
2
  import Papa from './papaparse/papaparse';
3
3
  import AsyncIteratorStreamer from './papaparse/async-iterator-streamer';
4
- const VERSION = typeof "4.0.0-alpha.24" !== 'undefined' ? "4.0.0-alpha.24" : 'latest';
4
+ const VERSION = typeof "4.0.0-alpha.25" !== 'undefined' ? "4.0.0-alpha.25" : 'latest';
5
+ const DEFAULT_CSV_SHAPE = 'object-row-table';
5
6
  export const CSVLoader = {
6
7
  id: 'csv',
7
8
  module: 'csv',
@@ -15,7 +16,7 @@ export const CSVLoader = {
15
16
  parseInBatches: parseCSVInBatches,
16
17
  options: {
17
18
  csv: {
18
- shape: 'object-row-table',
19
+ shape: DEFAULT_CSV_SHAPE,
19
20
  optimizeMemoryUsage: false,
20
21
  header: 'auto',
21
22
  columnPrefix: 'column',
@@ -48,7 +49,8 @@ async function parseCSV(csvText, options) {
48
49
  const result = Papa.parse(csvText, papaparseConfig);
49
50
  const rows = result.data;
50
51
  const headerRow = result.meta.fields || generateHeader(csvOptions.columnPrefix, firstRow.length);
51
- switch (csvOptions.shape || 'object-row-table') {
52
+ const shape = csvOptions.shape || DEFAULT_CSV_SHAPE;
53
+ switch (shape) {
52
54
  case 'object-row-table':
53
55
  return {
54
56
  shape: 'object-row-table',
@@ -59,8 +61,9 @@ async function parseCSV(csvText, options) {
59
61
  shape: 'array-row-table',
60
62
  data: rows.map(row => Array.isArray(row) ? row : convertToArrayRow(row, headerRow))
61
63
  };
64
+ default:
65
+ throw new Error(shape);
62
66
  }
63
- throw new Error(csvOptions.shape);
64
67
  }
65
68
  function parseCSVInBatches(asyncIterator, options) {
66
69
  var _options;
@@ -111,8 +114,9 @@ function parseCSVInBatches(asyncIterator, options) {
111
114
  if (csvOptions.optimizeMemoryUsage) {
112
115
  row = JSON.parse(JSON.stringify(row));
113
116
  }
117
+ const shape = csvOptions.shape || DEFAULT_CSV_SHAPE;
114
118
  tableBatchBuilder = tableBatchBuilder || new TableBatchBuilder(schema, {
115
- shape: csvOptions.shape || 'array-row-table',
119
+ shape,
116
120
  ...options
117
121
  });
118
122
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"csv-loader.js","names":["AsyncQueue","TableBatchBuilder","convertToArrayRow","convertToObjectRow","Papa","AsyncIteratorStreamer","VERSION","CSVLoader","id","module","name","version","extensions","mimeTypes","category","parse","arrayBuffer","options","parseCSV","TextDecoder","decode","parseText","text","parseInBatches","parseCSVInBatches","csv","shape","optimizeMemoryUsage","header","columnPrefix","quoteChar","escapeChar","dynamicTyping","comments","skipEmptyLines","delimitersToGuess","csvText","csvOptions","firstRow","readFirstRow","isHeaderRow","Boolean","parseWithHeader","papaparseConfig","download","transformHeader","duplicateColumnTransformer","undefined","error","e","Error","result","rows","data","headerRow","meta","fields","generateHeader","length","map","row","Array","isArray","asyncIterator","_options","batchSize","asyncQueue","isFirstRow","tableBatchBuilder","schema","config","chunkSize","step","results","collapsedRow","flat","join","trim","bytesUsed","cursor","deduceSchema","JSON","stringify","addRow","batch","getFullBatch","enqueue","complete","getFinalBatch","close","every","value","preview","observedColumns","Set","col","colName","counter","has","concat","add","count","arguments","headers","i","push","columnName","String","index","type","Float32Array"],"sources":["../../src/csv-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {ArrayRowTable, ObjectRowTable, TableBatch} from '@loaders.gl/schema';\n\nimport {\n AsyncQueue,\n Table,\n TableBatchBuilder,\n convertToArrayRow,\n convertToObjectRow\n} from '@loaders.gl/schema';\nimport Papa from './papaparse/papaparse';\nimport AsyncIteratorStreamer from './papaparse/async-iterator-streamer';\n\ntype ObjectField = {name: string; index: number; type: any};\ntype ObjectSchema = {[key: string]: ObjectField} | ObjectField[];\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type CSVLoaderOptions = LoaderOptions & {\n csv?: {\n // loaders.gl options\n shape?: 'array-row-table' | 'object-row-table';\n /** optimizes memory usage but increases parsing time. */\n optimizeMemoryUsage?: boolean;\n columnPrefix?: string;\n header?: 'auto';\n\n // CSV options (papaparse)\n // delimiter: auto\n // newline: auto\n quoteChar?: string;\n escapeChar?: string;\n // Convert numbers and boolean values in rows from strings\n dynamicTyping?: boolean;\n comments?: boolean;\n skipEmptyLines?: boolean | 'greedy';\n // transform: null?\n delimitersToGuess?: string[];\n // fastMode: auto\n };\n};\n\nexport const CSVLoader: LoaderWithParser<Table, TableBatch, CSVLoaderOptions> = {\n id: 'csv',\n module: 'csv',\n name: 'CSV',\n version: VERSION,\n extensions: ['csv', 'tsv', 'dsv'],\n mimeTypes: ['text/csv', 'text/tab-separated-values', 'text/dsv'],\n category: 'table',\n parse: async (arrayBuffer: ArrayBuffer, options?: CSVLoaderOptions) =>\n parseCSV(new TextDecoder().decode(arrayBuffer), options),\n parseText: (text: string, options?: CSVLoaderOptions) => parseCSV(text, options),\n parseInBatches: parseCSVInBatches,\n // @ts-ignore\n // testText: null,\n options: {\n csv: {\n shape: 'object-row-table',\n optimizeMemoryUsage: false,\n // CSV options\n header: 'auto',\n columnPrefix: 'column',\n // delimiter: auto\n // newline: auto\n quoteChar: '\"',\n escapeChar: '\"',\n dynamicTyping: true,\n comments: false,\n skipEmptyLines: true,\n // transform: null?\n delimitersToGuess: [',', '\\t', '|', ';']\n // fastMode: auto\n }\n }\n};\n\nasync function parseCSV(\n csvText: string,\n options?: CSVLoaderOptions\n): Promise<ObjectRowTable | ArrayRowTable> {\n // Apps can call the parse method directly, we so apply default options here\n const csvOptions = {...CSVLoader.options.csv, ...options?.csv};\n\n const firstRow = readFirstRow(csvText);\n const header: boolean =\n csvOptions.header === 'auto' ? isHeaderRow(firstRow) : Boolean(csvOptions.header);\n\n const parseWithHeader = header;\n\n const papaparseConfig = {\n // dynamicTyping: true,\n ...csvOptions,\n header: parseWithHeader,\n download: false, // We handle loading, no need for papaparse to do it for us\n transformHeader: parseWithHeader ? duplicateColumnTransformer() : undefined,\n error: (e) => {\n throw new Error(e);\n }\n };\n\n const result = Papa.parse(csvText, papaparseConfig);\n const rows = result.data as any[];\n\n const headerRow = result.meta.fields || generateHeader(csvOptions.columnPrefix!, firstRow.length);\n\n switch (csvOptions.shape || 'object-row-table') {\n case 'object-row-table':\n return {\n shape: 'object-row-table',\n data: rows.map((row) => (Array.isArray(row) ? convertToObjectRow(row, headerRow) : row))\n };\n case 'array-row-table':\n return {\n shape: 'array-row-table',\n data: rows.map((row) => (Array.isArray(row) ? row : convertToArrayRow(row, headerRow)))\n };\n }\n throw new Error(csvOptions.shape);\n}\n\n// TODO - support batch size 0 = no batching/single batch?\nfunction parseCSVInBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: CSVLoaderOptions\n): AsyncIterable<TableBatch> {\n // Papaparse does not support standard batch size handling\n // TODO - investigate papaparse chunks mode\n options = {...options};\n if (options.batchSize === 'auto') {\n options.batchSize = 4000;\n }\n\n // Apps can call the parse method directly, we so apply default options here\n const csvOptions = {...CSVLoader.options.csv, ...options?.csv};\n\n const asyncQueue = new AsyncQueue<TableBatch>();\n\n let isFirstRow: boolean = true;\n let headerRow: string[] | null = null;\n let tableBatchBuilder: TableBatchBuilder | null = null;\n let schema: ObjectSchema | null = null;\n\n const config = {\n // dynamicTyping: true, // Convert numbers and boolean values in rows from strings,\n ...csvOptions,\n header: false, // Unfortunately, header detection is not automatic and does not infer shapes\n download: false, // We handle loading, no need for papaparse to do it for us\n // chunkSize is set to 5MB explicitly (same as Papaparse default) due to a bug where the\n // streaming parser gets stuck if skipEmptyLines and a step callback are both supplied.\n // See https://github.com/mholt/PapaParse/issues/465\n chunkSize: 1024 * 1024 * 5,\n // skipEmptyLines is set to a boolean value if supplied. Greedy is set to true\n // skipEmptyLines is handled manually given two bugs where the streaming parser gets stuck if\n // both of the skipEmptyLines and step callback options are provided:\n // - true doesn't work unless chunkSize is set: https://github.com/mholt/PapaParse/issues/465\n // - greedy doesn't work: https://github.com/mholt/PapaParse/issues/825\n skipEmptyLines: false,\n\n // step is called on every row\n // eslint-disable-next-line complexity\n step(results) {\n let row = results.data;\n\n if (csvOptions.skipEmptyLines) {\n // Manually reject lines that are empty\n const collapsedRow = row.flat().join('').trim();\n if (collapsedRow === '') {\n return;\n }\n }\n const bytesUsed = results.meta.cursor;\n\n // Check if we need to save a header row\n if (isFirstRow && !headerRow) {\n // Auto detects or can be forced with csvOptions.header\n const header = csvOptions.header === 'auto' ? isHeaderRow(row) : Boolean(csvOptions.header);\n if (header) {\n headerRow = row.map(duplicateColumnTransformer());\n return;\n }\n }\n\n // If first data row, we can deduce the schema\n if (isFirstRow) {\n isFirstRow = false;\n if (!headerRow) {\n headerRow = generateHeader(csvOptions.columnPrefix!, row.length);\n }\n schema = deduceSchema(row, headerRow);\n }\n\n if (csvOptions.optimizeMemoryUsage) {\n // A workaround to allocate new strings and don't retain pointers to original strings.\n // https://bugs.chromium.org/p/v8/issues/detail?id=2869\n row = JSON.parse(JSON.stringify(row));\n }\n\n // Add the row\n tableBatchBuilder =\n tableBatchBuilder ||\n new TableBatchBuilder(\n // @ts-expect-error TODO this is not a proper schema\n schema,\n {\n shape: csvOptions.shape || 'array-row-table',\n ...options\n }\n );\n\n try {\n tableBatchBuilder.addRow(row);\n // If a batch has been completed, emit it\n const batch = tableBatchBuilder && tableBatchBuilder.getFullBatch({bytesUsed});\n if (batch) {\n asyncQueue.enqueue(batch);\n }\n } catch (error) {\n asyncQueue.enqueue(error as Error);\n }\n },\n\n // complete is called when all rows have been read\n complete(results) {\n try {\n const bytesUsed = results.meta.cursor;\n // Ensure any final (partial) batch gets emitted\n const batch = tableBatchBuilder && tableBatchBuilder.getFinalBatch({bytesUsed});\n if (batch) {\n asyncQueue.enqueue(batch);\n }\n } catch (error) {\n asyncQueue.enqueue(error as Error);\n }\n\n asyncQueue.close();\n }\n };\n\n Papa.parse(asyncIterator, config, AsyncIteratorStreamer);\n\n // TODO - Does it matter if we return asyncIterable or asyncIterator\n // return asyncQueue[Symbol.asyncIterator]();\n return asyncQueue;\n}\n\n/**\n * Checks if a certain row is a header row\n * @param row the row to check\n * @returns true if the row looks like a header\n */\nfunction isHeaderRow(row: string[]): boolean {\n return row && row.every((value) => typeof value === 'string');\n}\n\n/**\n * Reads, parses, and returns the first row of a CSV text\n * @param csvText the csv text to parse\n * @returns the first row\n */\nfunction readFirstRow(csvText: string): any[] {\n const result = Papa.parse(csvText, {\n download: false,\n dynamicTyping: true,\n preview: 1\n });\n return result.data[0];\n}\n\n/**\n * Creates a transformer that renames duplicate columns. This is needed as Papaparse doesn't handle\n * duplicate header columns and would use the latest occurrence by default.\n * See the header option in https://www.papaparse.com/docs#config\n * @returns a transform function that returns sanitized names for duplicate fields\n */\nfunction duplicateColumnTransformer(): (column: string) => string {\n const observedColumns = new Set<string>();\n return (col) => {\n let colName = col;\n let counter = 1;\n while (observedColumns.has(colName)) {\n colName = `${col}.${counter}`;\n counter++;\n }\n observedColumns.add(colName);\n return colName;\n };\n}\n\n/**\n * Generates the header of a CSV given a prefix and a column count\n * @param columnPrefix the columnPrefix to use\n * @param count the count of column names to generate\n * @returns an array of column names\n */\nfunction generateHeader(columnPrefix: string, count: number = 0): string[] {\n const headers: string[] = [];\n for (let i = 0; i < count; i++) {\n headers.push(`${columnPrefix}${i + 1}`);\n }\n return headers;\n}\n\nfunction deduceSchema(row, headerRow): ObjectSchema {\n const schema: ObjectSchema = headerRow ? {} : [];\n for (let i = 0; i < row.length; i++) {\n const columnName = (headerRow && headerRow[i]) || i;\n const value = row[i];\n switch (typeof value) {\n case 'number':\n case 'boolean':\n // TODO - booleans could be handled differently...\n schema[columnName] = {name: String(columnName), index: i, type: Float32Array};\n break;\n case 'string':\n default:\n schema[columnName] = {name: String(columnName), index: i, type: Array};\n // We currently only handle numeric rows\n // TODO we could offer a function to map strings to numbers?\n }\n }\n return schema;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"csv-loader.js","names":["AsyncQueue","TableBatchBuilder","convertToArrayRow","convertToObjectRow","Papa","AsyncIteratorStreamer","VERSION","DEFAULT_CSV_SHAPE","CSVLoader","id","module","name","version","extensions","mimeTypes","category","parse","arrayBuffer","options","parseCSV","TextDecoder","decode","parseText","text","parseInBatches","parseCSVInBatches","csv","shape","optimizeMemoryUsage","header","columnPrefix","quoteChar","escapeChar","dynamicTyping","comments","skipEmptyLines","delimitersToGuess","csvText","csvOptions","firstRow","readFirstRow","isHeaderRow","Boolean","parseWithHeader","papaparseConfig","download","transformHeader","duplicateColumnTransformer","undefined","error","e","Error","result","rows","data","headerRow","meta","fields","generateHeader","length","map","row","Array","isArray","asyncIterator","_options","batchSize","asyncQueue","isFirstRow","tableBatchBuilder","schema","config","chunkSize","step","results","collapsedRow","flat","join","trim","bytesUsed","cursor","deduceSchema","JSON","stringify","addRow","batch","getFullBatch","enqueue","complete","getFinalBatch","close","every","value","preview","observedColumns","Set","col","colName","counter","has","concat","add","count","arguments","headers","i","push","columnName","String","index","type","Float32Array"],"sources":["../../src/csv-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {ArrayRowTable, ObjectRowTable, TableBatch} from '@loaders.gl/schema';\n\nimport {\n AsyncQueue,\n Table,\n TableBatchBuilder,\n convertToArrayRow,\n convertToObjectRow\n} from '@loaders.gl/schema';\nimport Papa from './papaparse/papaparse';\nimport AsyncIteratorStreamer from './papaparse/async-iterator-streamer';\n\ntype ObjectField = {name: string; index: number; type: any};\ntype ObjectSchema = {[key: string]: ObjectField} | ObjectField[];\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nconst DEFAULT_CSV_SHAPE = 'object-row-table';\n\nexport type CSVLoaderOptions = LoaderOptions & {\n csv?: {\n // loaders.gl options\n shape?: 'array-row-table' | 'object-row-table';\n /** optimizes memory usage but increases parsing time. */\n optimizeMemoryUsage?: boolean;\n columnPrefix?: string;\n header?: 'auto';\n\n // CSV options (papaparse)\n // delimiter: auto\n // newline: auto\n quoteChar?: string;\n escapeChar?: string;\n // Convert numbers and boolean values in rows from strings\n dynamicTyping?: boolean;\n comments?: boolean;\n skipEmptyLines?: boolean | 'greedy';\n // transform: null?\n delimitersToGuess?: string[];\n // fastMode: auto\n };\n};\n\nexport const CSVLoader: LoaderWithParser<Table, TableBatch, CSVLoaderOptions> = {\n id: 'csv',\n module: 'csv',\n name: 'CSV',\n version: VERSION,\n extensions: ['csv', 'tsv', 'dsv'],\n mimeTypes: ['text/csv', 'text/tab-separated-values', 'text/dsv'],\n category: 'table',\n parse: async (arrayBuffer: ArrayBuffer, options?: CSVLoaderOptions) =>\n parseCSV(new TextDecoder().decode(arrayBuffer), options),\n parseText: (text: string, options?: CSVLoaderOptions) => parseCSV(text, options),\n parseInBatches: parseCSVInBatches,\n // @ts-ignore\n // testText: null,\n options: {\n csv: {\n shape: DEFAULT_CSV_SHAPE, // 'object-row-table'\n optimizeMemoryUsage: false,\n // CSV options\n header: 'auto',\n columnPrefix: 'column',\n // delimiter: auto\n // newline: auto\n quoteChar: '\"',\n escapeChar: '\"',\n dynamicTyping: true,\n comments: false,\n skipEmptyLines: true,\n // transform: null?\n delimitersToGuess: [',', '\\t', '|', ';']\n // fastMode: auto\n }\n }\n};\n\nasync function parseCSV(\n csvText: string,\n options?: CSVLoaderOptions\n): Promise<ObjectRowTable | ArrayRowTable> {\n // Apps can call the parse method directly, we so apply default options here\n const csvOptions = {...CSVLoader.options.csv, ...options?.csv};\n\n const firstRow = readFirstRow(csvText);\n const header: boolean =\n csvOptions.header === 'auto' ? isHeaderRow(firstRow) : Boolean(csvOptions.header);\n\n const parseWithHeader = header;\n\n const papaparseConfig = {\n // dynamicTyping: true,\n ...csvOptions,\n header: parseWithHeader,\n download: false, // We handle loading, no need for papaparse to do it for us\n transformHeader: parseWithHeader ? duplicateColumnTransformer() : undefined,\n error: (e) => {\n throw new Error(e);\n }\n };\n\n const result = Papa.parse(csvText, papaparseConfig);\n const rows = result.data as any[];\n\n const headerRow = result.meta.fields || generateHeader(csvOptions.columnPrefix!, firstRow.length);\n\n const shape = csvOptions.shape || DEFAULT_CSV_SHAPE;\n switch (shape) {\n case 'object-row-table':\n return {\n shape: 'object-row-table',\n data: rows.map((row) => (Array.isArray(row) ? convertToObjectRow(row, headerRow) : row))\n };\n case 'array-row-table':\n return {\n shape: 'array-row-table',\n data: rows.map((row) => (Array.isArray(row) ? row : convertToArrayRow(row, headerRow)))\n };\n default:\n throw new Error(shape);\n }\n}\n\n// TODO - support batch size 0 = no batching/single batch?\nfunction parseCSVInBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: CSVLoaderOptions\n): AsyncIterable<TableBatch> {\n // Papaparse does not support standard batch size handling\n // TODO - investigate papaparse chunks mode\n options = {...options};\n if (options.batchSize === 'auto') {\n options.batchSize = 4000;\n }\n\n // Apps can call the parse method directly, we so apply default options here\n const csvOptions = {...CSVLoader.options.csv, ...options?.csv};\n\n const asyncQueue = new AsyncQueue<TableBatch>();\n\n let isFirstRow: boolean = true;\n let headerRow: string[] | null = null;\n let tableBatchBuilder: TableBatchBuilder | null = null;\n let schema: ObjectSchema | null = null;\n\n const config = {\n // dynamicTyping: true, // Convert numbers and boolean values in rows from strings,\n ...csvOptions,\n header: false, // Unfortunately, header detection is not automatic and does not infer shapes\n download: false, // We handle loading, no need for papaparse to do it for us\n // chunkSize is set to 5MB explicitly (same as Papaparse default) due to a bug where the\n // streaming parser gets stuck if skipEmptyLines and a step callback are both supplied.\n // See https://github.com/mholt/PapaParse/issues/465\n chunkSize: 1024 * 1024 * 5,\n // skipEmptyLines is set to a boolean value if supplied. Greedy is set to true\n // skipEmptyLines is handled manually given two bugs where the streaming parser gets stuck if\n // both of the skipEmptyLines and step callback options are provided:\n // - true doesn't work unless chunkSize is set: https://github.com/mholt/PapaParse/issues/465\n // - greedy doesn't work: https://github.com/mholt/PapaParse/issues/825\n skipEmptyLines: false,\n\n // step is called on every row\n // eslint-disable-next-line complexity, max-statements\n step(results) {\n let row = results.data;\n\n if (csvOptions.skipEmptyLines) {\n // Manually reject lines that are empty\n const collapsedRow = row.flat().join('').trim();\n if (collapsedRow === '') {\n return;\n }\n }\n const bytesUsed = results.meta.cursor;\n\n // Check if we need to save a header row\n if (isFirstRow && !headerRow) {\n // Auto detects or can be forced with csvOptions.header\n const header = csvOptions.header === 'auto' ? isHeaderRow(row) : Boolean(csvOptions.header);\n if (header) {\n headerRow = row.map(duplicateColumnTransformer());\n return;\n }\n }\n\n // If first data row, we can deduce the schema\n if (isFirstRow) {\n isFirstRow = false;\n if (!headerRow) {\n headerRow = generateHeader(csvOptions.columnPrefix!, row.length);\n }\n schema = deduceSchema(row, headerRow);\n }\n\n if (csvOptions.optimizeMemoryUsage) {\n // A workaround to allocate new strings and don't retain pointers to original strings.\n // https://bugs.chromium.org/p/v8/issues/detail?id=2869\n row = JSON.parse(JSON.stringify(row));\n }\n\n const shape = csvOptions.shape || DEFAULT_CSV_SHAPE;\n\n // Add the row\n tableBatchBuilder =\n tableBatchBuilder ||\n new TableBatchBuilder(\n // @ts-expect-error TODO this is not a proper schema\n schema,\n {\n shape,\n ...options\n }\n );\n\n try {\n tableBatchBuilder.addRow(row);\n // If a batch has been completed, emit it\n const batch = tableBatchBuilder && tableBatchBuilder.getFullBatch({bytesUsed});\n if (batch) {\n asyncQueue.enqueue(batch);\n }\n } catch (error) {\n asyncQueue.enqueue(error as Error);\n }\n },\n\n // complete is called when all rows have been read\n complete(results) {\n try {\n const bytesUsed = results.meta.cursor;\n // Ensure any final (partial) batch gets emitted\n const batch = tableBatchBuilder && tableBatchBuilder.getFinalBatch({bytesUsed});\n if (batch) {\n asyncQueue.enqueue(batch);\n }\n } catch (error) {\n asyncQueue.enqueue(error as Error);\n }\n\n asyncQueue.close();\n }\n };\n\n Papa.parse(asyncIterator, config, AsyncIteratorStreamer);\n\n // TODO - Does it matter if we return asyncIterable or asyncIterator\n // return asyncQueue[Symbol.asyncIterator]();\n return asyncQueue;\n}\n\n/**\n * Checks if a certain row is a header row\n * @param row the row to check\n * @returns true if the row looks like a header\n */\nfunction isHeaderRow(row: string[]): boolean {\n return row && row.every((value) => typeof value === 'string');\n}\n\n/**\n * Reads, parses, and returns the first row of a CSV text\n * @param csvText the csv text to parse\n * @returns the first row\n */\nfunction readFirstRow(csvText: string): any[] {\n const result = Papa.parse(csvText, {\n download: false,\n dynamicTyping: true,\n preview: 1\n });\n return result.data[0];\n}\n\n/**\n * Creates a transformer that renames duplicate columns. This is needed as Papaparse doesn't handle\n * duplicate header columns and would use the latest occurrence by default.\n * See the header option in https://www.papaparse.com/docs#config\n * @returns a transform function that returns sanitized names for duplicate fields\n */\nfunction duplicateColumnTransformer(): (column: string) => string {\n const observedColumns = new Set<string>();\n return (col) => {\n let colName = col;\n let counter = 1;\n while (observedColumns.has(colName)) {\n colName = `${col}.${counter}`;\n counter++;\n }\n observedColumns.add(colName);\n return colName;\n };\n}\n\n/**\n * Generates the header of a CSV given a prefix and a column count\n * @param columnPrefix the columnPrefix to use\n * @param count the count of column names to generate\n * @returns an array of column names\n */\nfunction generateHeader(columnPrefix: string, count: number = 0): string[] {\n const headers: string[] = [];\n for (let i = 0; i < count; i++) {\n headers.push(`${columnPrefix}${i + 1}`);\n }\n return headers;\n}\n\nfunction deduceSchema(row, headerRow): ObjectSchema {\n const schema: ObjectSchema = headerRow ? {} : [];\n for (let i = 0; i < row.length; i++) {\n const columnName = (headerRow && headerRow[i]) || i;\n const value = row[i];\n switch (typeof value) {\n case 'number':\n case 'boolean':\n // TODO - booleans could be handled differently...\n schema[columnName] = {name: String(columnName), index: i, type: Float32Array};\n break;\n case 'string':\n default:\n schema[columnName] = {name: String(columnName), index: i, type: Array};\n // We currently only handle numeric rows\n // TODO we could offer a function to map strings to numbers?\n }\n }\n return schema;\n}\n"],"mappings":"AAKA,SACEA,UAAU,EAEVC,iBAAiB,EACjBC,iBAAiB,EACjBC,kBAAkB,QACb,oBAAoB;AAC3B,OAAOC,IAAI,MAAM,uBAAuB;AACxC,OAAOC,qBAAqB,MAAM,qCAAqC;AAOvE,MAAMC,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAE3E,MAAMC,iBAAiB,GAAG,kBAAkB;AA0B5C,OAAO,MAAMC,SAAgE,GAAG;EAC9EC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,KAAK;EACXC,OAAO,EAAEN,OAAO;EAChBO,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;EACjCC,SAAS,EAAE,CAAC,UAAU,EAAE,2BAA2B,EAAE,UAAU,CAAC;EAChEC,QAAQ,EAAE,OAAO;EACjBC,KAAK,EAAE,MAAAA,CAAOC,WAAwB,EAAEC,OAA0B,KAChEC,QAAQ,CAAC,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACJ,WAAW,CAAC,EAAEC,OAAO,CAAC;EAC1DI,SAAS,EAAEA,CAACC,IAAY,EAAEL,OAA0B,KAAKC,QAAQ,CAACI,IAAI,EAAEL,OAAO,CAAC;EAChFM,cAAc,EAAEC,iBAAiB;EAGjCP,OAAO,EAAE;IACPQ,GAAG,EAAE;MACHC,KAAK,EAAEpB,iBAAiB;MACxBqB,mBAAmB,EAAE,KAAK;MAE1BC,MAAM,EAAE,MAAM;MACdC,YAAY,EAAE,QAAQ;MAGtBC,SAAS,EAAE,GAAG;MACdC,UAAU,EAAE,GAAG;MACfC,aAAa,EAAE,IAAI;MACnBC,QAAQ,EAAE,KAAK;MACfC,cAAc,EAAE,IAAI;MAEpBC,iBAAiB,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG;IAEzC;EACF;AACF,CAAC;AAED,eAAejB,QAAQA,CACrBkB,OAAe,EACfnB,OAA0B,EACe;EAEzC,MAAMoB,UAAU,GAAG;IAAC,GAAG9B,SAAS,CAACU,OAAO,CAACQ,GAAG;IAAE,IAAGR,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEQ,GAAG;EAAA,CAAC;EAE9D,MAAMa,QAAQ,GAAGC,YAAY,CAACH,OAAO,CAAC;EACtC,MAAMR,MAAe,GACnBS,UAAU,CAACT,MAAM,KAAK,MAAM,GAAGY,WAAW,CAACF,QAAQ,CAAC,GAAGG,OAAO,CAACJ,UAAU,CAACT,MAAM,CAAC;EAEnF,MAAMc,eAAe,GAAGd,MAAM;EAE9B,MAAMe,eAAe,GAAG;IAEtB,GAAGN,UAAU;IACbT,MAAM,EAAEc,eAAe;IACvBE,QAAQ,EAAE,KAAK;IACfC,eAAe,EAAEH,eAAe,GAAGI,0BAA0B,CAAC,CAAC,GAAGC,SAAS;IAC3EC,KAAK,EAAGC,CAAC,IAAK;MACZ,MAAM,IAAIC,KAAK,CAACD,CAAC,CAAC;IACpB;EACF,CAAC;EAED,MAAME,MAAM,GAAGhD,IAAI,CAACY,KAAK,CAACqB,OAAO,EAAEO,eAAe,CAAC;EACnD,MAAMS,IAAI,GAAGD,MAAM,CAACE,IAAa;EAEjC,MAAMC,SAAS,GAAGH,MAAM,CAACI,IAAI,CAACC,MAAM,IAAIC,cAAc,CAACpB,UAAU,CAACR,YAAY,EAAGS,QAAQ,CAACoB,MAAM,CAAC;EAEjG,MAAMhC,KAAK,GAAGW,UAAU,CAACX,KAAK,IAAIpB,iBAAiB;EACnD,QAAQoB,KAAK;IACX,KAAK,kBAAkB;MACrB,OAAO;QACLA,KAAK,EAAE,kBAAkB;QACzB2B,IAAI,EAAED,IAAI,CAACO,GAAG,CAAEC,GAAG,IAAMC,KAAK,CAACC,OAAO,CAACF,GAAG,CAAC,GAAG1D,kBAAkB,CAAC0D,GAAG,EAAEN,SAAS,CAAC,GAAGM,GAAI;MACzF,CAAC;IACH,KAAK,iBAAiB;MACpB,OAAO;QACLlC,KAAK,EAAE,iBAAiB;QACxB2B,IAAI,EAAED,IAAI,CAACO,GAAG,CAAEC,GAAG,IAAMC,KAAK,CAACC,OAAO,CAACF,GAAG,CAAC,GAAGA,GAAG,GAAG3D,iBAAiB,CAAC2D,GAAG,EAAEN,SAAS,CAAE;MACxF,CAAC;IACH;MACE,MAAM,IAAIJ,KAAK,CAACxB,KAAK,CAAC;EAC1B;AACF;AAGA,SAASF,iBAAiBA,CACxBuC,aAAiE,EACjE9C,OAA0B,EACC;EAAA,IAAA+C,QAAA;EAG3B/C,OAAO,GAAG;IAAC,GAAGA;EAAO,CAAC;EACtB,IAAIA,OAAO,CAACgD,SAAS,KAAK,MAAM,EAAE;IAChChD,OAAO,CAACgD,SAAS,GAAG,IAAI;EAC1B;EAGA,MAAM5B,UAAU,GAAG;IAAC,GAAG9B,SAAS,CAACU,OAAO,CAACQ,GAAG;IAAE,KAAAuC,QAAA,GAAG/C,OAAO,cAAA+C,QAAA,uBAAPA,QAAA,CAASvC,GAAG;EAAA,CAAC;EAE9D,MAAMyC,UAAU,GAAG,IAAInE,UAAU,CAAa,CAAC;EAE/C,IAAIoE,UAAmB,GAAG,IAAI;EAC9B,IAAIb,SAA0B,GAAG,IAAI;EACrC,IAAIc,iBAA2C,GAAG,IAAI;EACtD,IAAIC,MAA2B,GAAG,IAAI;EAEtC,MAAMC,MAAM,GAAG;IAEb,GAAGjC,UAAU;IACbT,MAAM,EAAE,KAAK;IACbgB,QAAQ,EAAE,KAAK;IAIf2B,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC;IAM1BrC,cAAc,EAAE,KAAK;IAIrBsC,IAAIA,CAACC,OAAO,EAAE;MACZ,IAAIb,GAAG,GAAGa,OAAO,CAACpB,IAAI;MAEtB,IAAIhB,UAAU,CAACH,cAAc,EAAE;QAE7B,MAAMwC,YAAY,GAAGd,GAAG,CAACe,IAAI,CAAC,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC,CAACC,IAAI,CAAC,CAAC;QAC/C,IAAIH,YAAY,KAAK,EAAE,EAAE;UACvB;QACF;MACF;MACA,MAAMI,SAAS,GAAGL,OAAO,CAAClB,IAAI,CAACwB,MAAM;MAGrC,IAAIZ,UAAU,IAAI,CAACb,SAAS,EAAE;QAE5B,MAAM1B,MAAM,GAAGS,UAAU,CAACT,MAAM,KAAK,MAAM,GAAGY,WAAW,CAACoB,GAAG,CAAC,GAAGnB,OAAO,CAACJ,UAAU,CAACT,MAAM,CAAC;QAC3F,IAAIA,MAAM,EAAE;UACV0B,SAAS,GAAGM,GAAG,CAACD,GAAG,CAACb,0BAA0B,CAAC,CAAC,CAAC;UACjD;QACF;MACF;MAGA,IAAIqB,UAAU,EAAE;QACdA,UAAU,GAAG,KAAK;QAClB,IAAI,CAACb,SAAS,EAAE;UACdA,SAAS,GAAGG,cAAc,CAACpB,UAAU,CAACR,YAAY,EAAG+B,GAAG,CAACF,MAAM,CAAC;QAClE;QACAW,MAAM,GAAGW,YAAY,CAACpB,GAAG,EAAEN,SAAS,CAAC;MACvC;MAEA,IAAIjB,UAAU,CAACV,mBAAmB,EAAE;QAGlCiC,GAAG,GAAGqB,IAAI,CAAClE,KAAK,CAACkE,IAAI,CAACC,SAAS,CAACtB,GAAG,CAAC,CAAC;MACvC;MAEA,MAAMlC,KAAK,GAAGW,UAAU,CAACX,KAAK,IAAIpB,iBAAiB;MAGnD8D,iBAAiB,GACfA,iBAAiB,IACjB,IAAIpE,iBAAiB,CAEnBqE,MAAM,EACN;QACE3C,KAAK;QACL,GAAGT;MACL,CACF,CAAC;MAEH,IAAI;QACFmD,iBAAiB,CAACe,MAAM,CAACvB,GAAG,CAAC;QAE7B,MAAMwB,KAAK,GAAGhB,iBAAiB,IAAIA,iBAAiB,CAACiB,YAAY,CAAC;UAACP;QAAS,CAAC,CAAC;QAC9E,IAAIM,KAAK,EAAE;UACTlB,UAAU,CAACoB,OAAO,CAACF,KAAK,CAAC;QAC3B;MACF,CAAC,CAAC,OAAOpC,KAAK,EAAE;QACdkB,UAAU,CAACoB,OAAO,CAACtC,KAAc,CAAC;MACpC;IACF,CAAC;IAGDuC,QAAQA,CAACd,OAAO,EAAE;MAChB,IAAI;QACF,MAAMK,SAAS,GAAGL,OAAO,CAAClB,IAAI,CAACwB,MAAM;QAErC,MAAMK,KAAK,GAAGhB,iBAAiB,IAAIA,iBAAiB,CAACoB,aAAa,CAAC;UAACV;QAAS,CAAC,CAAC;QAC/E,IAAIM,KAAK,EAAE;UACTlB,UAAU,CAACoB,OAAO,CAACF,KAAK,CAAC;QAC3B;MACF,CAAC,CAAC,OAAOpC,KAAK,EAAE;QACdkB,UAAU,CAACoB,OAAO,CAACtC,KAAc,CAAC;MACpC;MAEAkB,UAAU,CAACuB,KAAK,CAAC,CAAC;IACpB;EACF,CAAC;EAEDtF,IAAI,CAACY,KAAK,CAACgD,aAAa,EAAEO,MAAM,EAAElE,qBAAqB,CAAC;EAIxD,OAAO8D,UAAU;AACnB;AAOA,SAAS1B,WAAWA,CAACoB,GAAa,EAAW;EAC3C,OAAOA,GAAG,IAAIA,GAAG,CAAC8B,KAAK,CAAEC,KAAK,IAAK,OAAOA,KAAK,KAAK,QAAQ,CAAC;AAC/D;AAOA,SAASpD,YAAYA,CAACH,OAAe,EAAS;EAC5C,MAAMe,MAAM,GAAGhD,IAAI,CAACY,KAAK,CAACqB,OAAO,EAAE;IACjCQ,QAAQ,EAAE,KAAK;IACfZ,aAAa,EAAE,IAAI;IACnB4D,OAAO,EAAE;EACX,CAAC,CAAC;EACF,OAAOzC,MAAM,CAACE,IAAI,CAAC,CAAC,CAAC;AACvB;AAQA,SAASP,0BAA0BA,CAAA,EAA+B;EAChE,MAAM+C,eAAe,GAAG,IAAIC,GAAG,CAAS,CAAC;EACzC,OAAQC,GAAG,IAAK;IACd,IAAIC,OAAO,GAAGD,GAAG;IACjB,IAAIE,OAAO,GAAG,CAAC;IACf,OAAOJ,eAAe,CAACK,GAAG,CAACF,OAAO,CAAC,EAAE;MACnCA,OAAO,MAAAG,MAAA,CAAMJ,GAAG,OAAAI,MAAA,CAAIF,OAAO,CAAE;MAC7BA,OAAO,EAAE;IACX;IACAJ,eAAe,CAACO,GAAG,CAACJ,OAAO,CAAC;IAC5B,OAAOA,OAAO;EAChB,CAAC;AACH;AAQA,SAASvC,cAAcA,CAAC5B,YAAoB,EAA+B;EAAA,IAA7BwE,KAAa,GAAAC,SAAA,CAAA5C,MAAA,QAAA4C,SAAA,QAAAvD,SAAA,GAAAuD,SAAA,MAAG,CAAC;EAC7D,MAAMC,OAAiB,GAAG,EAAE;EAC5B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,EAAEG,CAAC,EAAE,EAAE;IAC9BD,OAAO,CAACE,IAAI,IAAAN,MAAA,CAAItE,YAAY,EAAAsE,MAAA,CAAGK,CAAC,GAAG,CAAC,CAAE,CAAC;EACzC;EACA,OAAOD,OAAO;AAChB;AAEA,SAASvB,YAAYA,CAACpB,GAAG,EAAEN,SAAS,EAAgB;EAClD,MAAMe,MAAoB,GAAGf,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE;EAChD,KAAK,IAAIkD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG5C,GAAG,CAACF,MAAM,EAAE8C,CAAC,EAAE,EAAE;IACnC,MAAME,UAAU,GAAIpD,SAAS,IAAIA,SAAS,CAACkD,CAAC,CAAC,IAAKA,CAAC;IACnD,MAAMb,KAAK,GAAG/B,GAAG,CAAC4C,CAAC,CAAC;IACpB,QAAQ,OAAOb,KAAK;MAClB,KAAK,QAAQ;MACb,KAAK,SAAS;QAEZtB,MAAM,CAACqC,UAAU,CAAC,GAAG;UAAChG,IAAI,EAAEiG,MAAM,CAACD,UAAU,CAAC;UAAEE,KAAK,EAAEJ,CAAC;UAAEK,IAAI,EAAEC;QAAY,CAAC;QAC7E;MACF,KAAK,QAAQ;MACb;QACEzC,MAAM,CAACqC,UAAU,CAAC,GAAG;UAAChG,IAAI,EAAEiG,MAAM,CAACD,UAAU,CAAC;UAAEE,KAAK,EAAEJ,CAAC;UAAEK,IAAI,EAAEhD;QAAK,CAAC;IAG1E;EACF;EACA,OAAOQ,MAAM;AACf"}
@@ -1,10 +1,4 @@
1
1
  import { encodeTableAsCSV } from './lib/encoders/encode-csv';
2
- const DEFAULT_WRITER_OPTIONS = {
3
- csv: {
4
- useDisplayNames: false
5
- },
6
- useDisplayNames: false
7
- };
8
2
  export const CSVWriter = {
9
3
  id: 'csv',
10
4
  version: 'latest',
@@ -12,9 +6,14 @@ export const CSVWriter = {
12
6
  name: 'CSV',
13
7
  extensions: ['csv'],
14
8
  mimeTypes: ['text/csv'],
15
- options: DEFAULT_WRITER_OPTIONS,
9
+ options: {
10
+ csv: {
11
+ useDisplayNames: false
12
+ },
13
+ useDisplayNames: false
14
+ },
16
15
  text: true,
17
16
  encode: async (table, options) => new TextEncoder().encode(encodeTableAsCSV(table, options)).buffer,
18
- encodeText: (table, options) => encodeTableAsCSV(table, options)
17
+ encodeTextSync: (table, options) => encodeTableAsCSV(table, options)
19
18
  };
20
19
  //# sourceMappingURL=csv-writer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"csv-writer.js","names":["encodeTableAsCSV","DEFAULT_WRITER_OPTIONS","csv","useDisplayNames","CSVWriter","id","version","module","name","extensions","mimeTypes","options","text","encode","table","TextEncoder","buffer","encodeText"],"sources":["../../src/csv-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/* global TextEncoder */\nimport type {Writer} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport type {CSVWriterOptions} from './lib/encoders/encode-csv';\nimport {encodeTableAsCSV} from './lib/encoders/encode-csv';\n\nexport type {CSVWriterOptions};\n\nconst DEFAULT_WRITER_OPTIONS: Required<CSVWriterOptions> = {\n csv: {\n useDisplayNames: false\n },\n useDisplayNames: false\n};\n\nexport const CSVWriter: Writer<Table, TableBatch, CSVWriterOptions> = {\n id: 'csv',\n version: 'latest',\n module: 'csv',\n name: 'CSV',\n extensions: ['csv'],\n mimeTypes: ['text/csv'],\n options: DEFAULT_WRITER_OPTIONS,\n text: true,\n encode: async (table, options) =>\n new TextEncoder().encode(encodeTableAsCSV(table, options)).buffer,\n encodeText: (table, options) => encodeTableAsCSV(table, options)\n};\n"],"mappings":"AAMA,SAAQA,gBAAgB,QAAO,2BAA2B;AAI1D,MAAMC,sBAAkD,GAAG;EACzDC,GAAG,EAAE;IACHC,eAAe,EAAE;EACnB,CAAC;EACDA,eAAe,EAAE;AACnB,CAAC;AAED,OAAO,MAAMC,SAAsD,GAAG;EACpEC,EAAE,EAAE,KAAK;EACTC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,KAAK;EACXC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,UAAU,CAAC;EACvBC,OAAO,EAAEV,sBAAsB;EAC/BW,IAAI,EAAE,IAAI;EACVC,MAAM,EAAE,MAAAA,CAAOC,KAAK,EAAEH,OAAO,KAC3B,IAAII,WAAW,CAAC,CAAC,CAACF,MAAM,CAACb,gBAAgB,CAACc,KAAK,EAAEH,OAAO,CAAC,CAAC,CAACK,MAAM;EACnEC,UAAU,EAAEA,CAACH,KAAK,EAAEH,OAAO,KAAKX,gBAAgB,CAACc,KAAK,EAAEH,OAAO;AACjE,CAAC"}
1
+ {"version":3,"file":"csv-writer.js","names":["encodeTableAsCSV","CSVWriter","id","version","module","name","extensions","mimeTypes","options","csv","useDisplayNames","text","encode","table","TextEncoder","buffer","encodeTextSync"],"sources":["../../src/csv-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/* global TextEncoder */\nimport type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport {encodeTableAsCSV} from './lib/encoders/encode-csv';\n\nexport type CSVWriterOptions = WriterOptions & {\n csv?: {\n useDisplayNames?: boolean;\n };\n /** @deprecated */\n useDisplayNames?: boolean;\n};\n\nexport const CSVWriter: Writer<Table, TableBatch, CSVWriterOptions> = {\n id: 'csv',\n version: 'latest',\n module: 'csv',\n name: 'CSV',\n extensions: ['csv'],\n mimeTypes: ['text/csv'],\n options: {\n csv: {\n useDisplayNames: false\n },\n /** @deprecated use csv.displayNames */\n useDisplayNames: false\n },\n text: true,\n encode: async (table, options) =>\n new TextEncoder().encode(encodeTableAsCSV(table, options)).buffer,\n encodeTextSync: (table, options) => encodeTableAsCSV(table, options)\n};\n"],"mappings":"AAKA,SAAQA,gBAAgB,QAAO,2BAA2B;AAU1D,OAAO,MAAMC,SAAsD,GAAG;EACpEC,EAAE,EAAE,KAAK;EACTC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,KAAK;EACXC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,UAAU,CAAC;EACvBC,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,eAAe,EAAE;IACnB,CAAC;IAEDA,eAAe,EAAE;EACnB,CAAC;EACDC,IAAI,EAAE,IAAI;EACVC,MAAM,EAAE,MAAAA,CAAOC,KAAK,EAAEL,OAAO,KAC3B,IAAIM,WAAW,CAAC,CAAC,CAACF,MAAM,CAACZ,gBAAgB,CAACa,KAAK,EAAEL,OAAO,CAAC,CAAC,CAACO,MAAM;EACnEC,cAAc,EAAEA,CAACH,KAAK,EAAEL,OAAO,KAAKR,gBAAgB,CAACa,KAAK,EAAEL,OAAO;AACrE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"encode-csv.js","names":["makeArrayRowIterator","getTableNumCols","csvFormatRows","encodeTableAsCSV","table","_options$csv","_table$schema","options","arguments","length","undefined","csv","useDisplayNames","fields","schema","columnNames","map","f","_f$metadata","displayName","metadata","name","formattedData","row","formattedRow","columnIndex","value","preformatFieldValue","push","Date","toISOString","JSON","stringify","String"],"sources":["../../../../src/lib/encoders/encode-csv.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Table, makeArrayRowIterator, getTableNumCols} from '@loaders.gl/schema';\nimport {csvFormatRows} from 'd3-dsv';\n\ntype EncodableData = string | null;\n\nexport type CSVWriterOptions = {\n csv?: {\n useDisplayNames?: boolean;\n };\n /** @deprecated */\n useDisplayNames?: boolean;\n};\n\n/**\n * Encode a Table object as CSV\n */\nexport function encodeTableAsCSV(\n table: Table,\n options: CSVWriterOptions = {csv: {useDisplayNames: true}}\n): string {\n const useDisplayNames = options.useDisplayNames || options.csv?.useDisplayNames;\n\n const fields = table.schema?.fields || [];\n\n const columnNames = fields.map((f) => {\n // This is a leaky abstraction, assuming Kepler metadata\n const displayName = f.metadata?.displayName;\n return useDisplayNames && typeof displayName === 'string' ? displayName : f.name;\n });\n const formattedData: EncodableData[][] = [columnNames];\n\n for (const row of makeArrayRowIterator(table)) {\n const formattedRow: EncodableData[] = [];\n for (let columnIndex = 0; columnIndex < getTableNumCols(table); ++columnIndex) {\n const value = row[columnIndex];\n formattedRow[columnIndex] = preformatFieldValue(value);\n }\n formattedData.push(formattedRow);\n }\n\n return csvFormatRows(formattedData);\n}\n\n/**\n * Stringifies a value\n * @todo Why is it called parse?\n */\nconst preformatFieldValue = (value: unknown): EncodableData => {\n if (value === null || value === undefined) {\n // TODO: It would be nice to distinguish between missing values and the empty string\n // https://github.com/d3/d3-dsv/issues/84\n return null;\n }\n if (value instanceof Date) {\n // d3-dsv formats dates without timezones if they don't have time info;\n // this forces them to always use fully-qualified ISO time strings\n return value.toISOString();\n }\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\n return String(value);\n};\n"],"mappings":"AAGA,SAAeA,oBAAoB,EAAEC,eAAe,QAAO,oBAAoB;AAC/E,SAAQC,aAAa,QAAO,QAAQ;AAepC,OAAO,SAASC,gBAAgBA,CAC9BC,KAAY,EAEJ;EAAA,IAAAC,YAAA,EAAAC,aAAA;EAAA,IADRC,OAAyB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG;IAACG,GAAG,EAAE;MAACC,eAAe,EAAE;IAAI;EAAC,CAAC;EAE1D,MAAMA,eAAe,GAAGL,OAAO,CAACK,eAAe,MAAAP,YAAA,GAAIE,OAAO,CAACI,GAAG,cAAAN,YAAA,uBAAXA,YAAA,CAAaO,eAAe;EAE/E,MAAMC,MAAM,GAAG,EAAAP,aAAA,GAAAF,KAAK,CAACU,MAAM,cAAAR,aAAA,uBAAZA,aAAA,CAAcO,MAAM,KAAI,EAAE;EAEzC,MAAME,WAAW,GAAGF,MAAM,CAACG,GAAG,CAAEC,CAAC,IAAK;IAAA,IAAAC,WAAA;IAEpC,MAAMC,WAAW,IAAAD,WAAA,GAAGD,CAAC,CAACG,QAAQ,cAAAF,WAAA,uBAAVA,WAAA,CAAYC,WAAW;IAC3C,OAAOP,eAAe,IAAI,OAAOO,WAAW,KAAK,QAAQ,GAAGA,WAAW,GAAGF,CAAC,CAACI,IAAI;EAClF,CAAC,CAAC;EACF,MAAMC,aAAgC,GAAG,CAACP,WAAW,CAAC;EAEtD,KAAK,MAAMQ,GAAG,IAAIvB,oBAAoB,CAACI,KAAK,CAAC,EAAE;IAC7C,MAAMoB,YAA6B,GAAG,EAAE;IACxC,KAAK,IAAIC,WAAW,GAAG,CAAC,EAAEA,WAAW,GAAGxB,eAAe,CAACG,KAAK,CAAC,EAAE,EAAEqB,WAAW,EAAE;MAC7E,MAAMC,KAAK,GAAGH,GAAG,CAACE,WAAW,CAAC;MAC9BD,YAAY,CAACC,WAAW,CAAC,GAAGE,mBAAmB,CAACD,KAAK,CAAC;IACxD;IACAJ,aAAa,CAACM,IAAI,CAACJ,YAAY,CAAC;EAClC;EAEA,OAAOtB,aAAa,CAACoB,aAAa,CAAC;AACrC;AAMA,MAAMK,mBAAmB,GAAID,KAAc,IAAoB;EAC7D,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKhB,SAAS,EAAE;IAGzC,OAAO,IAAI;EACb;EACA,IAAIgB,KAAK,YAAYG,IAAI,EAAE;IAGzB,OAAOH,KAAK,CAACI,WAAW,CAAC,CAAC;EAC5B;EACA,IAAI,OAAOJ,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOK,IAAI,CAACC,SAAS,CAACN,KAAK,CAAC;EAC9B;EACA,OAAOO,MAAM,CAACP,KAAK,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"encode-csv.js","names":["makeArrayRowIterator","getTableNumCols","csvFormatRows","encodeTableAsCSV","table","_options$csv","_table$schema","options","arguments","length","undefined","csv","useDisplayNames","fields","schema","columnNames","map","f","_f$metadata","displayName","metadata","name","formattedData","row","formattedRow","columnIndex","value","preformatFieldValue","push","Date","toISOString","JSON","stringify","String"],"sources":["../../../../src/lib/encoders/encode-csv.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Table, makeArrayRowIterator, getTableNumCols} from '@loaders.gl/schema';\nimport {csvFormatRows} from 'd3-dsv';\nimport type {CSVWriterOptions} from '../../csv-writer';\n\ntype EncodableData = string | null;\n\n/**\n * Encode a Table object as CSV\n */\nexport function encodeTableAsCSV(\n table: Table,\n options: CSVWriterOptions = {csv: {useDisplayNames: true}}\n): string {\n const useDisplayNames = options.useDisplayNames || options.csv?.useDisplayNames;\n\n const fields = table.schema?.fields || [];\n\n const columnNames = fields.map((f) => {\n // This is a leaky abstraction, assuming Kepler metadata\n const displayName = f.metadata?.displayName;\n return useDisplayNames && typeof displayName === 'string' ? displayName : f.name;\n });\n const formattedData: EncodableData[][] = [columnNames];\n\n for (const row of makeArrayRowIterator(table)) {\n const formattedRow: EncodableData[] = [];\n for (let columnIndex = 0; columnIndex < getTableNumCols(table); ++columnIndex) {\n const value = row[columnIndex];\n formattedRow[columnIndex] = preformatFieldValue(value);\n }\n formattedData.push(formattedRow);\n }\n\n return csvFormatRows(formattedData);\n}\n\n/**\n * Stringifies a value\n * @todo Why is it called parse?\n */\nconst preformatFieldValue = (value: unknown): EncodableData => {\n if (value === null || value === undefined) {\n // TODO: It would be nice to distinguish between missing values and the empty string\n // https://github.com/d3/d3-dsv/issues/84\n return null;\n }\n if (value instanceof Date) {\n // d3-dsv formats dates without timezones if they don't have time info;\n // this forces them to always use fully-qualified ISO time strings\n return value.toISOString();\n }\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\n return String(value);\n};\n"],"mappings":"AAGA,SAAeA,oBAAoB,EAAEC,eAAe,QAAO,oBAAoB;AAC/E,SAAQC,aAAa,QAAO,QAAQ;AAQpC,OAAO,SAASC,gBAAgBA,CAC9BC,KAAY,EAEJ;EAAA,IAAAC,YAAA,EAAAC,aAAA;EAAA,IADRC,OAAyB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG;IAACG,GAAG,EAAE;MAACC,eAAe,EAAE;IAAI;EAAC,CAAC;EAE1D,MAAMA,eAAe,GAAGL,OAAO,CAACK,eAAe,MAAAP,YAAA,GAAIE,OAAO,CAACI,GAAG,cAAAN,YAAA,uBAAXA,YAAA,CAAaO,eAAe;EAE/E,MAAMC,MAAM,GAAG,EAAAP,aAAA,GAAAF,KAAK,CAACU,MAAM,cAAAR,aAAA,uBAAZA,aAAA,CAAcO,MAAM,KAAI,EAAE;EAEzC,MAAME,WAAW,GAAGF,MAAM,CAACG,GAAG,CAAEC,CAAC,IAAK;IAAA,IAAAC,WAAA;IAEpC,MAAMC,WAAW,IAAAD,WAAA,GAAGD,CAAC,CAACG,QAAQ,cAAAF,WAAA,uBAAVA,WAAA,CAAYC,WAAW;IAC3C,OAAOP,eAAe,IAAI,OAAOO,WAAW,KAAK,QAAQ,GAAGA,WAAW,GAAGF,CAAC,CAACI,IAAI;EAClF,CAAC,CAAC;EACF,MAAMC,aAAgC,GAAG,CAACP,WAAW,CAAC;EAEtD,KAAK,MAAMQ,GAAG,IAAIvB,oBAAoB,CAACI,KAAK,CAAC,EAAE;IAC7C,MAAMoB,YAA6B,GAAG,EAAE;IACxC,KAAK,IAAIC,WAAW,GAAG,CAAC,EAAEA,WAAW,GAAGxB,eAAe,CAACG,KAAK,CAAC,EAAE,EAAEqB,WAAW,EAAE;MAC7E,MAAMC,KAAK,GAAGH,GAAG,CAACE,WAAW,CAAC;MAC9BD,YAAY,CAACC,WAAW,CAAC,GAAGE,mBAAmB,CAACD,KAAK,CAAC;IACxD;IACAJ,aAAa,CAACM,IAAI,CAACJ,YAAY,CAAC;EAClC;EAEA,OAAOtB,aAAa,CAACoB,aAAa,CAAC;AACrC;AAMA,MAAMK,mBAAmB,GAAID,KAAc,IAAoB;EAC7D,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKhB,SAAS,EAAE;IAGzC,OAAO,IAAI;EACb;EACA,IAAIgB,KAAK,YAAYG,IAAI,EAAE;IAGzB,OAAOH,KAAK,CAACI,WAAW,CAAC,CAAC;EAC5B;EACA,IAAI,OAAOJ,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOK,IAAI,CAACC,SAAS,CAACN,KAAK,CAAC;EAC9B;EACA,OAAOO,MAAM,CAACP,KAAK,CAAC;AACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"csv-loader.d.ts","sourceRoot":"","sources":["../../src/csv-loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAgC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAElF,OAAO,EAEL,KAAK,EAIN,MAAM,oBAAoB,CAAC;AAW5B,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,EAAE,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,CAiC3E,CAAC"}
1
+ {"version":3,"file":"csv-loader.d.ts","sourceRoot":"","sources":["../../src/csv-loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAgC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAElF,OAAO,EAEL,KAAK,EAIN,MAAM,oBAAoB,CAAC;AAa5B,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,EAAE,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,CAiC3E,CAAC"}
@@ -1,6 +1,11 @@
1
- import type { Writer } from '@loaders.gl/loader-utils';
1
+ import type { Writer, WriterOptions } from '@loaders.gl/loader-utils';
2
2
  import type { Table, TableBatch } from '@loaders.gl/schema';
3
- import type { CSVWriterOptions } from './lib/encoders/encode-csv';
4
- export type { CSVWriterOptions };
3
+ export type CSVWriterOptions = WriterOptions & {
4
+ csv?: {
5
+ useDisplayNames?: boolean;
6
+ };
7
+ /** @deprecated */
8
+ useDisplayNames?: boolean;
9
+ };
5
10
  export declare const CSVWriter: Writer<Table, TableBatch, CSVWriterOptions>;
6
11
  //# sourceMappingURL=csv-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"csv-writer.d.ts","sourceRoot":"","sources":["../../src/csv-writer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAC,KAAK,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAGhE,YAAY,EAAC,gBAAgB,EAAC,CAAC;AAS/B,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,CAYjE,CAAC"}
1
+ {"version":3,"file":"csv-writer.d.ts","sourceRoot":"","sources":["../../src/csv-writer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAC,KAAK,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAG1D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE;QACJ,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;IACF,kBAAkB;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,CAkBjE,CAAC"}
@@ -1,11 +1,5 @@
1
1
  import { Table } from '@loaders.gl/schema';
2
- export type CSVWriterOptions = {
3
- csv?: {
4
- useDisplayNames?: boolean;
5
- };
6
- /** @deprecated */
7
- useDisplayNames?: boolean;
8
- };
2
+ import type { CSVWriterOptions } from '../../csv-writer';
9
3
  /**
10
4
  * Encode a Table object as CSV
11
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"encode-csv.d.ts","sourceRoot":"","sources":["../../../../src/lib/encoders/encode-csv.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAwC,MAAM,oBAAoB,CAAC;AAKhF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,CAAC,EAAE;QACJ,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;IACF,kBAAkB;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,gBAAiD,GACzD,MAAM,CAsBR"}
1
+ {"version":3,"file":"encode-csv.d.ts","sourceRoot":"","sources":["../../../../src/lib/encoders/encode-csv.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAwC,MAAM,oBAAoB,CAAC;AAEhF,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAIvD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,gBAAiD,GACzD,MAAM,CAsBR"}
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.es2020.full.d.ts","../src/bundle.ts","../../loader-utils/dist/types.d.ts","../../loader-utils/dist/loader-types.d.ts","../../loader-utils/dist/writer-types.d.ts","../../loader-utils/dist/lib/env-utils/assert.d.ts","../../loader-utils/dist/lib/env-utils/globals.d.ts","../../loader-utils/dist/lib/option-utils/merge-loader-options.d.ts","../../loader-utils/dist/lib/worker-loader-utils/create-loader-worker.d.ts","../../loader-utils/dist/lib/worker-loader-utils/parse-with-worker.d.ts","../../loader-utils/dist/lib/worker-loader-utils/encode-with-worker.d.ts","../../loader-utils/dist/lib/parser-utils/parse-json.d.ts","../../loader-utils/dist/lib/binary-utils/array-buffer-utils.d.ts","../../loader-utils/dist/lib/binary-utils/memory-copy-utils.d.ts","../../loader-utils/dist/lib/binary-utils/dataview-copy-utils.d.ts","../../loader-utils/dist/lib/binary-utils/get-first-characters.d.ts","../../loader-utils/dist/lib/iterators/text-iterators.d.ts","../../loader-utils/dist/lib/iterators/async-iteration.d.ts","../../loader-utils/node_modules/@probe.gl/stats/dist/lib/stat.d.ts","../../loader-utils/node_modules/@probe.gl/stats/dist/lib/stats.d.ts","../../loader-utils/node_modules/@probe.gl/stats/dist/utils/hi-res-timestamp.d.ts","../../loader-utils/node_modules/@probe.gl/stats/dist/index.d.ts","../../loader-utils/dist/lib/request-utils/request-scheduler.d.ts","../../loader-utils/dist/lib/path-utils/file-aliases.d.ts","../../schema/dist/types/types.d.ts","../../../node_modules/apache-arrow/node_modules/flatbuffers/js/constants.d.ts","../../../node_modules/apache-arrow/node_modules/flatbuffers/js/encoding.d.ts","../../../node_modules/apache-arrow/node_modules/flatbuffers/js/byte-buffer.d.ts","../../../node_modules/apache-arrow/node_modules/flatbuffers/js/builder.d.ts","../../../node_modules/apache-arrow/node_modules/flatbuffers/js/types.d.ts","../../../node_modules/apache-arrow/node_modules/flatbuffers/js/utils.d.ts","../../../node_modules/apache-arrow/node_modules/flatbuffers/js/flatbuffers.d.ts","../../../node_modules/apache-arrow/fb/body-compression-method.d.ts","../../../node_modules/apache-arrow/fb/compression-type.d.ts","../../../node_modules/apache-arrow/fb/body-compression.d.ts","../../../node_modules/apache-arrow/fb/buffer.d.ts","../../../node_modules/apache-arrow/fb/field-node.d.ts","../../../node_modules/apache-arrow/fb/record-batch.d.ts","../../../node_modules/apache-arrow/fb/dictionary-batch.d.ts","../../../node_modules/apache-arrow/fb/endianness.d.ts","../../../node_modules/apache-arrow/fb/dictionary-kind.d.ts","../../../node_modules/apache-arrow/fb/int.d.ts","../../../node_modules/apache-arrow/fb/dictionary-encoding.d.ts","../../../node_modules/apache-arrow/fb/key-value.d.ts","../../../node_modules/apache-arrow/fb/binary.d.ts","../../../node_modules/apache-arrow/fb/bool.d.ts","../../../node_modules/apache-arrow/fb/date-unit.d.ts","../../../node_modules/apache-arrow/fb/date.d.ts","../../../node_modules/apache-arrow/fb/decimal.d.ts","../../../node_modules/apache-arrow/fb/time-unit.d.ts","../../../node_modules/apache-arrow/fb/duration.d.ts","../../../node_modules/apache-arrow/fb/fixed-size-binary.d.ts","../../../node_modules/apache-arrow/fb/fixed-size-list.d.ts","../../../node_modules/apache-arrow/fb/precision.d.ts","../../../node_modules/apache-arrow/fb/floating-point.d.ts","../../../node_modules/apache-arrow/fb/interval-unit.d.ts","../../../node_modules/apache-arrow/fb/interval.d.ts","../../../node_modules/apache-arrow/fb/large-binary.d.ts","../../../node_modules/apache-arrow/fb/large-list.d.ts","../../../node_modules/apache-arrow/fb/large-utf8.d.ts","../../../node_modules/apache-arrow/fb/list.d.ts","../../../node_modules/apache-arrow/fb/map.d.ts","../../../node_modules/apache-arrow/fb/null.d.ts","../../../node_modules/apache-arrow/fb/run-end-encoded.d.ts","../../../node_modules/apache-arrow/fb/struct-.d.ts","../../../node_modules/apache-arrow/fb/time.d.ts","../../../node_modules/apache-arrow/fb/timestamp.d.ts","../../../node_modules/apache-arrow/fb/union-mode.d.ts","../../../node_modules/apache-arrow/fb/union.d.ts","../../../node_modules/apache-arrow/fb/utf8.d.ts","../../../node_modules/apache-arrow/fb/type.d.ts","../../../node_modules/apache-arrow/fb/field.d.ts","../../../node_modules/apache-arrow/fb/schema.d.ts","../../../node_modules/apache-arrow/fb/sparse-matrix-compressed-axis.d.ts","../../../node_modules/apache-arrow/fb/sparse-matrix-index-csx.d.ts","../../../node_modules/apache-arrow/fb/sparse-tensor-index-coo.d.ts","../../../node_modules/apache-arrow/fb/sparse-tensor-index-csf.d.ts","../../../node_modules/apache-arrow/fb/sparse-tensor-index.d.ts","../../../node_modules/apache-arrow/fb/tensor-dim.d.ts","../../../node_modules/apache-arrow/fb/sparse-tensor.d.ts","../../../node_modules/apache-arrow/fb/tensor.d.ts","../../../node_modules/apache-arrow/fb/message-header.d.ts","../../../node_modules/apache-arrow/enum.d.ts","../../../node_modules/apache-arrow/schema.d.ts","../../../node_modules/apache-arrow/row/map.d.ts","../../../node_modules/apache-arrow/row/struct.d.ts","../../../node_modules/apache-arrow/builder/buffer.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/apache-arrow/io/node/builder.d.ts","../../../node_modules/apache-arrow/io/whatwg/builder.d.ts","../../../node_modules/apache-arrow/builder.d.ts","../../../node_modules/apache-arrow/builder/bool.d.ts","../../../node_modules/apache-arrow/builder/null.d.ts","../../../node_modules/apache-arrow/builder/date.d.ts","../../../node_modules/apache-arrow/builder/decimal.d.ts","../../../node_modules/apache-arrow/builder/int.d.ts","../../../node_modules/apache-arrow/builder/dictionary.d.ts","../../../node_modules/apache-arrow/builder/fixedsizebinary.d.ts","../../../node_modules/apache-arrow/builder/float.d.ts","../../../node_modules/apache-arrow/builder/time.d.ts","../../../node_modules/apache-arrow/builder/timestamp.d.ts","../../../node_modules/apache-arrow/builder/interval.d.ts","../../../node_modules/apache-arrow/builder/utf8.d.ts","../../../node_modules/apache-arrow/builder/binary.d.ts","../../../node_modules/apache-arrow/builder/list.d.ts","../../../node_modules/apache-arrow/builder/fixedsizelist.d.ts","../../../node_modules/apache-arrow/builder/map.d.ts","../../../node_modules/apache-arrow/builder/struct.d.ts","../../../node_modules/apache-arrow/builder/union.d.ts","../../../node_modules/apache-arrow/interfaces.d.ts","../../../node_modules/apache-arrow/type.d.ts","../../../node_modules/apache-arrow/vector.d.ts","../../../node_modules/apache-arrow/data.d.ts","../../../node_modules/apache-arrow/recordbatch.d.ts","../../../node_modules/apache-arrow/table.d.ts","../../../node_modules/apache-arrow/visitor.d.ts","../../../node_modules/apache-arrow/factories.d.ts","../../../node_modules/apache-arrow/io/interfaces.d.ts","../../../node_modules/apache-arrow/util/buffer.d.ts","../../../node_modules/apache-arrow/io/stream.d.ts","../../../node_modules/apache-arrow/fb/block.d.ts","../../../node_modules/apache-arrow/ipc/metadata/file.d.ts","../../../node_modules/apache-arrow/ipc/metadata/json.d.ts","../../../node_modules/apache-arrow/ipc/metadata/message.d.ts","../../../node_modules/apache-arrow/io/file.d.ts","../../../node_modules/apache-arrow/ipc/message.d.ts","../../../node_modules/apache-arrow/ipc/reader.d.ts","../../../node_modules/apache-arrow/ipc/writer.d.ts","../../../node_modules/apache-arrow/ipc/serialization.d.ts","../../../node_modules/apache-arrow/util/bn.d.ts","../../../node_modules/apache-arrow/util/int.d.ts","../../../node_modules/apache-arrow/util/bit.d.ts","../../../node_modules/apache-arrow/visitor/typecomparator.d.ts","../../../node_modules/apache-arrow/Arrow.d.ts","../../../node_modules/apache-arrow/Arrow.dom.d.ts","../../../node_modules/apache-arrow/Arrow.node.d.ts","../../schema/dist/types/schema.d.ts","../../../node_modules/@types/geojson/index.d.ts","../../schema/dist/types/flat-geometries.d.ts","../../schema/dist/types/binary-geometries.d.ts","../../schema/dist/types/category-gis.d.ts","../../schema/dist/types/category-table.d.ts","../../schema/dist/lib/table/batches/table-batch-aggregator.d.ts","../../schema/dist/lib/table/batches/table-batch-builder.d.ts","../../schema/dist/lib/table/batches/row-table-batch-aggregator.d.ts","../../schema/dist/lib/table/batches/columnar-table-batch-aggregator.d.ts","../../schema/dist/lib/table/simple-table/table-accessors.d.ts","../../schema/dist/lib/table/arrow-api/enum.d.ts","../../schema/dist/lib/table/arrow-api/arrow-like-type.d.ts","../../schema/dist/lib/table/arrow-api/arrow-like-field.d.ts","../../schema/dist/lib/table/arrow-api/arrow-like-schema.d.ts","../../schema/dist/lib/table/arrow-api/arrow-like-table.d.ts","../../schema/dist/lib/table/simple-table/make-table.d.ts","../../schema/dist/lib/table/simple-table/convert-table.d.ts","../../schema/dist/lib/table/simple-table/table-schema.d.ts","../../schema/dist/lib/table/simple-table/row-utils.d.ts","../../schema/dist/lib/table/simple-table/data-type.d.ts","../../schema/dist/types/category-mesh.d.ts","../../schema/dist/lib/mesh/mesh-utils.d.ts","../../schema/dist/lib/mesh/deduce-mesh-schema.d.ts","../../schema/dist/types/category-image.d.ts","../../schema/dist/types/category-texture.d.ts","../../schema/dist/lib/table/arrow-api/index.d.ts","../../schema/dist/lib/table/arrow-api/get-type-info.d.ts","../../schema/dist/lib/table/arrow/arrow-type-utils.d.ts","../../schema/dist/lib/utils/async-queue.d.ts","../../schema/dist/index.d.ts","../../loader-utils/dist/json-loader.d.ts","../../loader-utils/dist/lib/binary-utils/memory-conversion-utils.d.ts","../../loader-utils/dist/lib/node/promisify.d.ts","../../loader-utils/dist/lib/path-utils/path.d.ts","../../loader-utils/dist/lib/node/fs.d.ts","../../loader-utils/dist/lib/node/stream.d.ts","../../loader-utils/dist/lib/filesystems/filesystem.d.ts","../../loader-utils/dist/lib/filesystems/node-filesystem.d.ts","../../loader-utils/dist/lib/file-provider/file-provider.d.ts","../../loader-utils/dist/lib/file-provider/file-handle.d.ts","../../loader-utils/dist/lib/file-provider/file-handle-file.d.ts","../../loader-utils/dist/lib/file-provider/data-view-file.d.ts","../../loader-utils/dist/lib/filesystems/readable-file.d.ts","../../loader-utils/dist/lib/filesystems/writable-file.d.ts","../../loader-utils/dist/index.d.ts","../src/papaparse/papaparse.ts","../src/papaparse/async-iterator-streamer.ts","../src/csv-loader.ts","../src/lib/encoders/encode-csv.ts","../src/csv-writer.ts","../src/index.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/brotli/compress.d.ts","../../../node_modules/@types/brotli/decompress.d.ts","../../../node_modules/@types/brotli/index.d.ts","../../../node_modules/@types/command-line-args/index.d.ts","../../../node_modules/@types/command-line-usage/index.d.ts","../../../node_modules/@types/crypto-js/index.d.ts","../../../node_modules/@types/emscripten/index.d.ts","../../../node_modules/@types/send/node_modules/@types/mime/index.d.ts","../../../node_modules/@types/send/index.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/mime/Mime.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/http-errors/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../../node_modules/@types/ndarray/index.d.ts","../../../node_modules/@types/get-pixels/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/glob/index.d.ts","../../../node_modules/@types/hammerjs/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/node-int64/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/offscreencanvas/index.d.ts","../../../node_modules/@types/pad-left/index.d.ts","../../../node_modules/@types/pako/index.d.ts","../../../node_modules/@types/pbf/index.d.ts","../../../node_modules/@types/pngjs/index.d.ts","../../../node_modules/@types/proj4/index.d.ts","../../../node_modules/@types/q/index.d.ts","../../../node_modules/@types/sql.js/index.d.ts","../../../node_modules/@types/through/index.d.ts","../../../node_modules/@types/tape/index.d.ts","../../../node_modules/@types/tape-promise/index.d.ts","../../../node_modules/@types/thrift/index.d.ts","../../../node_modules/@types/varint/index.d.ts","../../../node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"f59215c5f1d886b05395ee7aca73e0ac69ddfad2843aa88530e797879d511bad","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"3dda5344576193a4ae48b8d03f105c86f20b2f2aff0a1d1fd7935f5d68649654","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"c5c5565225fce2ede835725a92a28ece149f83542aa4866cfb10290bff7b8996","affectsGlobalScope":true},{"version":"7d2dbc2a0250400af0809b0ad5f84686e84c73526de931f84560e483eb16b03c","affectsGlobalScope":true},{"version":"9d9885c728913c1d16e0d2831b40341d6ad9a0ceecaabc55209b306ad9c736a5","affectsGlobalScope":true},{"version":"17bea081b9c0541f39dd1ae9bc8c78bdd561879a682e60e2f25f688c0ecab248","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"f06948deb2a51aae25184561c9640fb66afeddb34531a9212d011792b1d19e0a","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"322cc0ca9c311414642c0d7ef3b57beedbac198ca074e3e109a4be4c366dcb81",{"version":"9d3c44c5662654459def646b30ff930d4198e5b77d57cf1d21d5de5f7b30dc07","signature":"1160f1801f74994542376d565e986ec3e49c83b662019fe09e2b5107e75977fb","affectsGlobalScope":true},"33e032e02fe1909039aba738d93c54a3552ee2347f47c811c0decd0b8f5b2f3e","82a1ba203c0b96773921865b58e9b391d659eddec725fe5e7489c53f3e36eae8","ff59cc4c292f20c9a088fae5d3b9e3cb04d46cfa07c6ee873a03b0e4e52dd0ec","27939d01f8d6be041c1d5c1816b428b3e8229829233e073f7b45b6af3b660ebe","7c4dd44256edda6b1e653ade809a4834ea1672557c32740e7018a89082e67f98","50cccf12df778f241ed7bc0924507debdc3ea0aab99bd8567f4f62ec66ce1e71","16945fb857d0467c9990ab40c66ee4b548b9aac85fdb1dee0a51d7dc93962c57","394462987ac0b4c19b7c59b4eb984f9e5db86af93a96e752918d945197e22982","d20beb3b34cb36fa1a97972df3321ec8e4462a842544c81877f2150bc9c2ddf9","e0f7c61f78b9d64f5c05de758086d992bea83dbdf0c6cace9c5df02534cd0bb2","8312a4d6aa569fc57d9f564678e5817483feb50fedebe84e50cc9c1cf0c33459","65e0b1ad130fc07161f051c2a5e5c3c4a5d3fc9ae70806b87aa3d91e21f25fb4","2ad4364f8229359d8d87035a32a6a4adf4ae17ae417c3020e5051177856f0d6c","d1c7ce4be3ae34ad0b2ea4a685f2521701a36382808d049ac5e2d259025479ed","ab844b5925c28e479fc12a62d863d475404134f4d5c55f9287666ea94aa30d1f","2da34af5c8cf099add4be5774fd504f802e6e0711820b0cddd76da9182c90f19","8432aee1c4d9e7490d0276956afb4945285aa54ca0ef2ea33c94a1362ad40656","289c93fe295277a33119aaee688863eee6d7ec57111f428a12f77ab6af9790a9","476cc782a34c53072c7b585184fab1da9cc381337ce8c7562e2d50d1a16ef5ad","6dd764e36d98ddf0b22e042d5a693a3e7664accff7029a75492e061d763febed","8b789c97d89d9a45ac1005dd50350aecc2c4e9d9ec56efacc3edf41171324ef4","1d6736f895b28f9db177573a41c4b33566a0764b149f0e0dc92116786ae375a2","49e837668d4c989f90c458286cef8ba31dff74baa3101b7246cb4bb0d1401cfe","05adb45e3dde250b6ae4a50b9dd26457489cbe6bb5de36468aea83df2324e3b8","b71da9f22a46322f03f5900108c7bc23fe598e2dcd3955d94df0bf9b03adc9ef","15d54b1dc36761e843f740e13d896928b5bcb76c9cca250faded032e552ff447","791b89410fb8a65d6993c0bc12abc6a404ffaf21609d752b00228116b2ee1897","a6ce2450e3b08abb086b77e0408b4717322b370715b77f0b9f185619e2523b8c","5bcefd704c479b68d8050f61beeb84911739d7db5ce22b50c2c8396a7f8a973e","1bf22eff6631acc2d999b72cb87f26781fe2d449000beab70e5becba665237aa","cb31fbd38e527e01368c338daa15c472c9dacb72a0a6e483d7f338d2a2b88d92","9a056e9b9acc76b8320976d9fe6cd87c53bc1f4e2919613bcceebcff6b539cfa","a8f09ab4bfbaf32009c5ceb09f267c45d3e9fad63a9640c3dfc824480522eb1c","8d6da1d6d75e21fc322882a7a6cce39c4a85279582c0652fad76ae658f1fa4d8","2dcb4881af7d254e20cef0d36e33ef63025cea48ac9b739e310ac8dfb6a4d4d1","0e8c1b7ce40dab54106b02db1b529a9d1d34b0bec61bdd3af9c27dfc5041b8d5","fdd8e8b914f1d8c32363f45e37f9577be9f65e9171833a4c8c117afde983df3b","9fa2d338f2c6e4fb5a2cf20bc83f24102f177c9996a9550ab9cb295afc443322","b6b354bd57b44849015d119134a2adf6136dd459fb38f3625fbb35c844343362","831e08bc1e0e0fed9f34180a42bcffa15437283b3a90c453f98fd82f639784c0","576d3ac930288e7fe44873f24dd8ba11873ab8c536c5f67464e9acdbdbf5f0be","6210058f2ce3e9052681f3d2df475d6bda1cee4584dd3a5ef1ef0e60959522d7","7a04ce0e85d6db683f63ec9f2699fac3e2d9fdd6a9313dda42e25761a3c83a2c","2b9c4aed45c33a93dc6de1e5894094090363aaee045921a0e6ef245657c5315d","b9c7f144f9051934bba76cb051d806377a0676ed488ae5764daa9bf7a198fbad","dd36b72841bc2a5edbe39640abc5d0175f06b9de32d6b767615c62c460330382","de06c3051539ddd64044947bf5a804005e98b09613699b19de1c09ef8e8df95f","681c8a82369365bef1360957b467844e8bb3e9626df2162d904c8bbfc92863f8","8585b7a7cc1cb48171fd9e168ca0126a921189c6643cc4dd5dac43de6d3b61e4","7eb739af12059b8c368641641776937254b381ba298e43820b78696d4e12d3c9","f85ef2b6b6243d398b2146de3186f12c825a18295d3913aee1d7ad237856c6c3","e83218020bb0bc9a527cf10bca9f3afe489900c60dee03e8398fe135054c81ae","d30f3ae4c835c4006e1676170181461e7e97b4e1d2fa0c96a4d0a355cd97fd8f","989b02e98599537eccb0e89c3c737b75159fc64299bcee5ecf495535a4096efd","b0cfe92f5a41d98256df17702e2e30afbcbc5d33fcde330b20dcac2df26b393e","7de22e2447797056c5bbf57153d8e7d7106bab19b2bb8111cf9c9776935b81e9","74ecda5bfdd35b1b365b3069acb0224303c20b458e92dbacf6954eef4d9f30db","7e1862fcb5a27f449515e7ad569afb738896183889a3dfbf09f125d2ad1effaa","c3bc001ab25d65e716b576b0c607d413802122e85fedf847629227fdbf73298e","e0644b2e6e5f5709fd5b0377e801ae12fbd1a9d612312ed86b823159421e29fd","1dfa53faf0395d8e6714329b001659009171d5268f7231ad05fefeb19b7dd0a2","baf281afcc69097878a9f76190ec1139cdcb6d39adb1e0685644789fe99769ed","6d0e0c26cd26694ef8f4776443fdd846add0a327244424b5be1eb3320a770486","77df8e8553d35e13728f6d0a37ca982520046645694ec1edab9df2df4e905dc2","387575cfe4ed66a1e3b066d2b6923c41be68d39905d62a8fa00e95cee9d4e719","03c9cee66774b18d3c20119b5fd25b3a94f95757aa82cb5bfe9cf7cb91400bd9","0c7aadf8379300a1dba35b087663c682f440aa5923ea96a8ff9ff483b891766c","70f8da676faa53028982803fb3b389b98119fb0b41df9020a3130b008ac6dc74","2409017257471ec5e3bf053cb4a0e0a5f3a7f11901a247118c1654980d7e1fe7","8b729a1d9b4f457b23b790a07111742b5c2714b614da768550e0a7309350e438","07ae8276b1ded724db7342f1271258bdf7d897ad47affecde328f89543fbef71","959e21dddaa3d50c7a9573c033371f8a8eb75e1da2e4f0d2ffc2e44862a7939f","5c5150c7774dcedeaf599b1372b8158b3f8a0e665d602a35e34470822da59f59","fbe77f3f07a47c30835cb7b88d1aeaf605052884b819f0669977a9977bbd4a8f","07cf01ae7f286d5c1390bec1fc2cad285c2cd96b3778b61eddfadd2305786040","d07829c9a6e7288abc6d1df2d0e3ffd31a2418b38e7bf3d374437042844ed17f","7299ae6e1cd70af673d26872a2c7616ea6fa287021669473bdd7842c94094f61","820567b6f3633584ecd3e57c8cc192a6a18f2803edfe730fd1531d9cb6fed891","2ae462dea06b9d0a202c1c034ae686d225169038c33242052f4edf93db00b254","5ffe14c99d9130074d6bbc1edeabe4b4ef9168a05986ac7aff84ac5735c4d77b","e5fdfb44e69cc7ddaf28db39288c24b1116f33539aee0b0fc7b7a436c73cb727","980826c7be8addf3ca7bb0c238d26a682442dfbe0abe8103e63fbba13b942a2c","7f9371e6554e4e48793a31a353d00fa92dd92a0b8fa8ae00e480036e3a4d2776","fdcd57d2575b4e00c4c92b1a2fa15c791365aa763c4d4c901c3f3a362acd27d5","f59156c06f6c0cdbffd04ca6d99b093ba6deceffa921e68e9aebc8f49cb6ec4e","7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"f749812878fecfa53cfc13b36e5d35086fb6377983a9df44175da83ccc23af1f","affectsGlobalScope":true},"7d2e3fea24c712c99c03ad8f556abedbfe105f87f1be10b95dbd409d24bc05a3",{"version":"211e3f15fbced4ab4be19f49ffa990b9ff20d749d33b65ff753be691e7616239","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","e596c9bb2f29a2699fdd4ae89139612652245192f67f45617c5a4b20832aaae9","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","1cdcfc1f624d6c08aa12c73935f6e13f095919cd99edf95752951796eb225729","216717f17c095cde1dc19375e1ab3af0a4a485355860c077a4f9d6ea59fab5b5","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"00dee7cdca8b8420c47ea4a31a34b8e8294013ebc4f463fd941e867e7bf05029","affectsGlobalScope":true},"80473bd0dd90ca1e166514c2dfead9d5803f9c51418864ca35abbeec6e6847e1","1c84b46267610a34028edfd0d035509341751262bac1062857f3c8df7aff7153","3bd1b21f21d18995315d232c5c7e868651e109396f3ca48fa8ab15f57a20d911","a3d541d303ee505053f5dcbf9fafb65cac3d5631037501cd616195863a6c5740","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true},"bcebb922784739bdb34c18ee51095d25a92b560c78ccd2eaacd6bd00f7443d83","7ee6ed878c4528215c82b664fe0cfe80e8b4da6c0d4cc80869367868774db8b1","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"0715e4cd28ad471b2a93f3e552ff51a3ae423417a01a10aa1d3bc7c6b95059d6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","4f3fdeba4e28e21aa719c081b8dc8f91d47e12e773389b9d35679c08151c9d37","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","f69ff39996a61a0dd10f4bce73272b52e8024a4d58b13ab32bf4712909d0a2b7",{"version":"3c4ba1dd9b12ffa284b565063108f2f031d150ea15b8fafbdc17f5d2a07251f3","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","1422cd9e705adcc09088fda85a900c2b70e3ad36ea85846f68bd1a884cdf4e2b","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"a73ae8c0e62103bb9e21bb6538700881bf135b9a8b125b857ec68edfa0da4ed3","affectsGlobalScope":true},{"version":"e1c1b2fbe236bf7ee3e342eeae7e20efb8988a0ac7da1cbbfa2c1f66b76c3423","affectsGlobalScope":true},"868831cab82b65dfe1d68180e898af1f2101e89ba9b754d1db6fb8cc2fac1921","0fe8985a28f82c450a04a6edf1279d7181c0893f37da7d2a27f8efd4fd5edb03","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"52120bb7e4583612225bdf08e7c12559548170f11e660d33a33623bae9bbdbba","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"a6dd3dba8e665ac43d279e0fdf5219edda0eed69b5e9a5061f46cd6a65c4f7a1","73812e98e1ea55e4183fc4cd49c968ce9fb5affad9cd7503781f58160ac830df","dd1f84835041fb21fbcb6d213290cfdb07fbd7551c5b9340db3f5a8906d403c9","d1cf164102945309b279ff06bc2d121ac737e5487a2408914655f689ecc2be1f","fd2d5cc8041746b1cc71ab247163982c68b4fad0522b2a8f555368d57f1aa134","7f56883fceba869ca2e3bab049cf33272bac1a6937c235c652e0bbd9aef67624","af1f132f95a4a56d9304f8dfe68f116d2324b0368411574932c55cbe2fafa214","4e0a5de3811fcb44426b7f6bea3458d1c794591d0b4a715c51c3ad5d70f08ab4","68b735874e866f37d072bf674535a9f33965132ed9e1e4164a6fbc494d590604","9cec0cc895584e0e42d5c97c4a16ebd25a4fa60730c186edf0d28df0a5bc3702","94d41a754d3dda0f2517d49d181f1ba1d812b85e7bc2c822c40be945328edc33","842ffda229092b37ce0bc6748b09a38aaedc8490a69b3a10ec48ebf47baa3224","0449afb9de90d153878437b4004c6c5ce1e2f8f33e93ace383d387b683bac845","358999876ec96fa23597d354ed2fe6ae495d7c654e720ab3be349179133ed14d","8daf1c92a5955e61e5f82160f1d3db34beb4b60657a20ed91e450b32c4d09350","74e3a9065b290394d3ee7fb111bb4523d846663d898aa21bb76c8e9af979ffa2","e19b2a73885f75f29b2adcf1077c8dde7d69137af24c065b5ae7d7fa9bd3b820","0e720e8c78a3398bb6fe498919c4e21ce991c093a93235d7641891b65d0cad54","207e465a5c27537cd6c987739a0ccdd2bd0b13dc69511d11bfe979e19fcbbbbd","7008aa856c52cc0af5aa6c755abfba94dbc5e0a9dac3f9a985eb5ed52e6d535d","27551a71453552cdb14453753b2808fb405e6b1495f53b1de318953ac4ac73b5","0bb991b7c106b013ccd1b236bca252a34d8cfd2a61387409c1c407e8e07acada","0d510711f47a9337d385f7f53cb9bca5a59c245c40d5499ca6db75410a8a9436","865cad10c204bb43eafcdb1957ff4dd810c3caf290cbc18a67d5ca5d48a9b398","a8129d8de89732097a12fa202536d1f18d418be881e1fe2d40cb8883d141a3ea","02fad3c2d4fb705ad84df9e48beeb60b55e803913d504bdb7f37ec80f088d26f","fe47866cf57ede76bc97ddce7d33933ec21a4ffda175a10841e8fba45de7330f","ffe308a8dca440f45388b685bd7bee2a61d9d40624fcd0d6383844d90843bb68","3b7f2318cf351fcf9883a2c87ca85ce4dd3027dfbf6931fc034c9d3f23a2b6c3","8f9fdb0a9539cb998c359c0b991b6c687092306141076a7843d31b016adcd154","533ab639c90c7b6dc53c792dc20e8eecd08b87f7d8b7b9b76df681169a6c097d","f8f1b109894f78f146db848fe2989a01200b094b46677345ba90c0d9a218786a","dd01829a1232dc969066f1a1f478a25ee453a4e76f4e033080e279520b4460ba","d6bf6f2a8f1bf3fdc6ad05035672d8c38a04f72f39c5a55db9f1844689eec144","ec1e72c665317467b85ad4d27f5c106e6a888116f8757d883c8600e5f299192e","414e31d3a66f5c79cb49e82c3960a6983f1c031df82de1008bd255bf7aee58ae","d5d9c822987d673eabe9f058211e5d4015e38023e99738a63157fdf98ad17705","87b5a7dce771abfa0ea41eca3935c98f98148b9f563a62c582f0b456a63d951a","5d176ae3b4b1d9b4fd09dd2181d8822dbdfda2975efbe688289e7799e4acc3f1","9c43cd99639d7a77f9fdbfbc083dc5e074a2755be234dd19005bf01ab6ba1451","26f5cc01fbfc3491b155f37a4972de5df84e9f732ec20c3279992004a695b5aa","27496861e0db6ede90b48607bccd9ea9a18aeac897b463cfadead98abe105ccc","c9be5b0a527826562a6f4026b846647af717bb1366327b31e8eef98ea630b349","87fd703309f6f640f2a0a6ce79c0b14c02cbbfdbd3913d6af601be883ab8cf18","9bb021b1303e52cdc159ad2a254e449c68b9b5157ae26b9d918f19e2c8d94223","ce3e8890c187fdab18aa9c41aeadd0bb3fb13875dea5ea03e1d3c07e8446ee79","2d4ad114f5c2e8d7ca7cbcb94035fd4f45bfdb53dbbc82bd5be39431326ade39","1a90db26f4f4dee02b8bd2a7d470bb08162c644185630c5d71436592d9331536","b01d9cda99bd4a3363a6605f0e20de677fb6942eadd642991fb05a27abbba73e","7fe51705b1a1b94c66bf99e48c3467806682aa57523df8f680437effe8d1b2a8","a3b6c93a9838b8c94c6998e85646d6f2d07c20ecfe1e235dba62158b29451391","0fa5fb053d5976cfc833eac924af0e4d12bcc148a22d2bc05eb4a56dcdfe5c0d","63cf7392a0c1877d0b3d25648e16b32bddebe11f08ba474035b191c960cee0f2","202a0f6f9eff1d888a7a360df4f871a7de8aa7be9d2a14ab6b06943ff5fd46f2","2c6fe74cdc9a1416f603a95917b5212b37d786de20b4ca0716c9d27a26b7c65e","9ebdf3e2e4de01b5761d7863c61e0d7fa690637d92393ef31790a580c5e2f5a9","907a7f4a2f1e385ac53af2c6543acac6b9adab1ef1f827ef2663e4e7f1a98aa4","4e9c0fd9c626ceed22d9ed37087b7c263fc77b9d64ebbd70c0b718f2cd741105","f89f5c94352802530fb3801545d83ffa8ce8f9d6d996ce82aa24ddc019e97e47","63c917bca35d28e15479dc2b1b6e572881ba4ee2495390ea8eb91374e43745e3","31fa6e8452bef01da6aa5ad57e621e240c87bc3175ce2d2de552c85d710db746","3014b762a92a846346ae6f1e44164ec30ef6e41e9290fbde51802ae472c7379e","5329a5972c3953a19a37ce65ac539a47de96e36ff87e7eda90d68760e9ed2a5e","cce4acd479fa79d1662ce4fd3b1bc098b3b43d347e4f7c563ea9c5bb38182a8c","379c23bff093a237d2f63c994f3e4ca0f95456c6f0548d0023eab60c61a00fbf","f21309ea38bcb63431532d4c139c235c1d5c5bc4ce15eb8c5cf2055b6b4f1d82","b7eee16c3d82d32ee916e9a663d0e6da58b6620ba094227a3b8bc51c88d83ba9","5283047c95c3895b54471261aada51dd47b4e7c6fb00d58f8a8b4034bd0be517","e29e9bad6fb8e05f3ce22b495ed839301dd8d057484fbd4f4c7218d360f941af","406134b920a681373ceba80dda358a015b0379d752b82b4a4430367196a6f4b5","99ee232ec78662869c921fee90c3809fec53e0e9fcdb0f225b63365a799bc38b","d1ada1111c2d8c6f20f940b0185fcd6f20562c0045d25433d5e2af37bee85fc1","7de5231dae45cbe3be9061a3da7ad310a7b0ee69a485926cb19e9914d3903659","7ca3915472a9f35c88a2661918ce99e1f791c3c04b4d5b25e03a0de99311ec6d","d9c400c03120bd59a0f8c61ca675a92d17679980ec3fd03c8fd566c2962f8cc8","8f1a5455aeff08cbc457dd6779a1ad32dfbb45f8e19075d2a99cbbbb8d519937","dd743ab18dd99672635b11dfc9c6a4ec2e586a018878b6b7d2b6456fabb1c493","6eeeac9646fd4c561c7aa730b9c4a1475eb31a13b0bb682a370cac5faa3feaba","9ee3277aa530d275d666fb69afbb6282c480e7aa5fdd3acede75afda7518abe0","62b8873064bebfcb884cc47bcc4174203792bf84e38c30f31b7e654f9d4f291d","417723bcd93ea77a71730d4326b2e9eb3f29ddcf3c217a307dd23fba6921f05b","b3b44303e3858ca1299d6d90165d9e9ef8f9a3a6a430edb31e3001fdc7dc0c68","0eb0ddc4a3111b0e63e4580d71017c73e63bc07e340ca0bcc6635573b3fdde7a","74607de7ffe82d5cea87b084f47bd689e5b32866a79434a2153377cf148dce66","bd6e03edf1804ccdcd2877b6fe73aa4e4d3b98b5f731c8290458516db77580fa","56da90af66a4883eb5d1f8530e60e99f9d1935fe6a9e7bad6a026c32d08d582f","79164ddc2de91e0a0c78af06520321715e9853916d43d2a041d5b220c3b73841","ada3113b7522f77fa0d7ed6d55d6bb71de8fefbd9c56a93b686bd254a77ca4fb","cc452d7aee67d7c81a107da08d17d36bf5e89a13c3819dff8441deee3d4be005","215cefbd18c46475da0703e924a3568f2fec19548653dd3d34cb12ab732764b5","5387fd5eb366c494db9bc2c5f1f5fa6c41d363757fd7231e4d8f38fdd0a4bf41","e62d41c984ae275aa3676b2ec6fee1d8ea5148f641a017f9bd6f8944f0b5686a","a814321be049bf59256278f68dce5bd5199c521394b3032b74fde53265c3d492","aedd3163c1b62854300b573c8245a7ac347fdb5ffc27c92a00bb6db9e1871e30","b525390947ad39dbfa3a9c5b19e549b9760e729e4e4d62aa72c7aa1ac5debada",{"version":"8f2869cc655b12580adec567b745e567de74b417e4eab8628ba5ecd23ef5e5ff","signature":"8820074b3a54efa1de40568042869cff26f44887f0fa76c2ed14a302ef95c803"},{"version":"f71038a5cd16db3b8c0589d932af619436578e2f773f575590d66f69795dce66","signature":"589a00baf40c4fbd6f99457f626951617e39f3402179a2c5a705a3992e334fb8"},{"version":"3a6b6541f2f5a77c22f83124b9244421b4b891f996c5ccbd16c11f2f56ebe153","signature":"7bf018741694e71ceae7a6fadb6d2f41aa774b61f4558e4ce9d11859b71ff5b0"},{"version":"beacd95c840c7141472b2490d55d780594fdcaa03fc331d78fd3eb86c90b3e13","signature":"74172818c239004baab501623f2f85f66bc94f4fbaae5072ceca54165abed2d9"},{"version":"b181bf31b7ce0a4eb0eef4505bb0a8b4c5f33685c0d61e4ebd5a88aa15db2da2","signature":"03d434d8fe265b9c7390096575424d9439ad1fe3d914987de8d42adc75d55bc7"},{"version":"f7368e68b2ff356ff5c27cc635fcb50ad45f6e281d382f2649a354f756511ddf","signature":"2b5ff11e59fb01d503155bf670b2c07dc18a5c37bedc54f2e880ceea186279c0"},"6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","39c18ea70fa2449cb00c97e73b3b8f96983e423678cfede0fbcb9319cbefa67c","a6f0218395ecb8e0d736e0a19524223ab7a8a7ed217c4a99c165df2532e1beec","287bb1a9e0f935417f8e753687737d3c90c35a56d07448773fc3ec8f0f97a6be","629766229f541d92210f30a92b6038568ec165fab14b7ee53bdf13667da37ca3","29193c018378ca9c8033eaa974c02c1f503e8fcd8a2bf406057c53f7d3fa17a8",{"version":"4f9362850bb427525ba05c0e861dae06d9918bd16ccb38d504cb7294f69e8496","affectsGlobalScope":true},{"version":"82fcf338bc21711d93d65f981a7182f9942d3ac1f268c4480537c9b62c89d10d","affectsGlobalScope":true},"84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","aad5ffa61406b8e19524738fcf0e6fda8b3485bba98626268fdf252d1b2b630a","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"352fc8497a30bc806d7defa0043d85802e5f35a7688731ee9a21456f5cb32a94","affectsGlobalScope":true},"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f463d61cf39c3a6a5f96cdf7adfdb72a0b1d663f7b5d5b6dd042adba835430c2","f7a9cb83c8fbc081a8b605880d191e0d0527cde2c1b2b2b623beca8f0203a2cd","43cdd474c5aa3340da4816bb8f1ae7f3b1bcf9e70d997afc36a0f2c432378c84","23790f2da8d5370068bf8ba250786babee91f619ba9f8e067957c7166c824432","9226af9c56e77e2de484e3778a33a53a1dfb11ead282a7bdc55c2ffd84136837","963d59066dd6742da1918a6213a209bcc205b8ee53b1876ee2b4e6d80f97c85e","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33",{"version":"3e947c8dc536e569ceb62a7cb0255e4866fd54dd5d35d21e49c7e755f5c134a6","affectsGlobalScope":true},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","cddf5c26907c0b8378bc05543161c11637b830da9fadf59e02a11e675d11e180","5774751340e987a6a9e4a5dcc03ff68a6515adc2b91423e1af2f660fc8f30e81","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","86889bc3e5323b1e92f5d23d41395ccee3dc91c37b5a5dbf115ea40fc13edd28","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a",{"version":"86cc8969b76067ccf25e02c62b7df6ccdb419481fbce594b5ae9da21e9015e39","affectsGlobalScope":true},"b92ae8263cac4e5a79f55fe6cb63c030b096679b98f603fbc13963c30ab7da5e","4e9d375d05a75efefcdae0a6a7be76861b5c96683acd31d1c8b120f60c0f6194","2a856615ecd0af49997dfbb38cf94fd787d529062a2e96ce26b84432e61d785d","0b6a0b628776a3e3a4aeeba090438a26e7ffa15373ce658452c78c1f2254665d","5764c1db026d0f1070ff009879d8f90dec70cebc3d1b27ca20f7beeac2afcae2","62b931417104c7cb35d0725e1869f51d52d7b18462fd58f32f846a314a42ba10","77b89017a4f1a1e5497efbbb0b742506b6c5c725d7d6855e793a12a97c7ace61","656424ca784760c679bf2677d8aaf55d1cb8452cd0ac04bbe1c0f659f45f8c11","bed28de34a5dd2b08d47b584da338e5fba92de84ce8727dd153d9ec16bc0f2e4","6745e41d07e777a049bb25425bb1c6c1a9b437bc2568ca8eef03daa8e8913ac0","032667dd4a981d2b58dfaf5840f5a2ea76160ab18658fdd5abd0a0bba1565af1","7382cbf0d8a841a91d7ae2217897bd53bcb9584ca6fbe123771167a7f641c157","65dfa4bc49ccd1355789abb6ae215b302a5b050fdee9651124fe7e826f33113c"],"root":[49,[283,288]],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":2,"module":1,"noImplicitAny":false,"noUnusedLocals":true,"outDir":"./","skipLibCheck":true,"strict":true,"target":7},"fileIdsList":[[181],[181,267,282,283,284],[181,267,282,286],[181,285,287],[181,267],[181,283],[50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,70,71,181,268,269,270,271,272,273,274,275,276,277,278,279,280,281],[51,181,267],[50,181],[181,188],[181,276],[152,181,188],[181,188,272,274],[169,181,188],[51,181],[69,181],[52,181],[66,67,68,181],[66,181],[72,181,237,241,242,243,244,245,246,247,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266],[181,237,258],[72,181,258],[181,249],[181,237,250],[181,236,238,242,251],[181,248,250],[181,249,250,251,252],[72,181,236],[181,237,242,243],[181,237,242],[181,242],[72,181,237],[72,181],[181,238,239,240],[72,181,237,242],[181,236,237,241],[181,261],[181,238],[181,236],[154,181,188,289],[181,188,291,292],[154,181,188],[151,154,181,188,299,300,301],[181,290,301,302,306],[181,188,308],[151,152,181,188,310],[181,315],[181,304],[181,303],[135,181],[138,181],[139,144,172,181],[140,151,152,159,169,180,181],[140,141,151,159,181],[142,181],[143,144,152,160,181],[144,169,177,181],[145,147,151,159,181],[146,181],[147,148,181],[151,181],[149,151,181],[151,152,153,169,180,181],[151,152,153,166,169,172,181],[181,185],[147,154,159,169,180,181],[151,152,154,155,159,169,177,180,181],[154,156,169,177,180,181],[135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[151,157,181],[158,180,181],[147,151,159,169,181],[160,181],[161,181],[138,162,181],[163,179,181,185],[164,181],[165,181],[151,166,167,181],[166,168,181,183],[139,151,169,170,171,172,181],[139,169,171,181],[169,170,181],[172,181],[173,181],[151,175,176,181],[175,176,181],[144,159,169,177,181],[178,181],[159,179,181],[139,154,165,180,181],[144,181],[169,181,182],[181,183],[181,184],[139,144,151,153,162,169,180,181,183,185],[169,181,186],[169,181,186,188],[152,169,181,188,298],[154,181,188,304,305],[181,188,297],[181,329],[181,188,328],[151,154,156,159,177,181,188,318,326],[151,169,181,188],[129,130,131,132,133,181,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,224,226,227,228,229,230,231,232,233],[181,234],[181,235],[134,169,181,189,190,211,212,213],[181,191,211],[181,210],[181,191,196,211,212,213],[134,181,191,211],[130,181,211,212],[181,191,210,211,212,213,215],[79,181],[79,80,81,181],[79,94,181],[79,85,181],[79,88,89,181],[79,97,181],[79,90,91,118,181],[79,101,181],[79,103,181],[85,86,120,127,128,181],[79,82,83,84,181],[79,87,91,119,181],[79,83,89,121,181],[79,83,89,181],[122,123,124,181],[79,83,118,125,126,181],[79,83,118,126,181],[89,92,93,95,96,98,99,100,102,104,105,106,107,108,109,110,111,112,113,114,116,117,181],[79,115,181],[130,181,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,211],[181,218,219,220],[152,169,181,188],[169,181,188,191,211],[181,188,218,219],[181,191,211,212],[130,131,181,218,219,220,224],[79,130,131,181,219,221,224],[131,181,211,224],[79,83,84,85,86,119,120,130,131,181,211,219,223,224],[130,131,169,181,188,211,212,213,214,218,219,220,222,224,225,226],[181,211,215,227],[130,131,169,181,188,211,213,214,215,218,219,220,222,224],[75,77,181],[74,77,181],[73,74,75,76,77,78,181],[75,76,181],[131,181,211,212,213,215,224,234],[181,211,212,213],[181,211,213],[130,181,211],[131,181,210,211,212,213,214,224],[130,131,132,133,181,210,212,224],[181,210,219],[79,181,210],[181,210,211,213],[130,181],[131,181,211,212,213,216,224],[267,282],[267,282,286],[285,287],[267]],"referencedMap":[[49,1],[285,2],[287,3],[288,4],[286,5],[284,6],[283,1],[282,7],[268,8],[60,1],[62,9],[63,1],[269,10],[61,1],[53,1],[54,1],[279,11],[278,11],[277,12],[276,1],[274,10],[275,13],[280,10],[281,14],[65,1],[64,1],[272,12],[270,1],[273,14],[55,15],[59,1],[71,1],[271,1],[70,16],[56,15],[58,17],[57,15],[51,9],[50,1],[52,1],[69,18],[66,1],[67,19],[68,1],[267,20],[260,21],[259,22],[250,23],[251,24],[252,25],[249,26],[248,1],[264,23],[263,27],[265,28],[246,29],[245,29],[243,30],[244,29],[254,31],[257,32],[253,31],[256,1],[247,31],[255,30],[266,1],[240,33],[241,34],[261,1],[258,35],[242,36],[262,37],[239,38],[237,39],[72,1],[290,40],[291,1],[292,1],[293,41],[294,1],[295,1],[289,42],[296,1],[297,1],[302,43],[307,44],[238,1],[309,45],[311,46],[312,1],[305,1],[313,1],[314,1],[316,47],[303,48],[304,49],[310,1],[317,1],[308,1],[318,10],[135,50],[136,50],[138,51],[139,52],[140,53],[141,54],[142,55],[143,56],[144,57],[145,58],[146,59],[147,60],[148,60],[150,61],[149,62],[151,61],[152,63],[153,64],[137,65],[187,1],[154,66],[155,67],[156,68],[188,69],[157,70],[158,71],[159,72],[160,73],[161,74],[162,75],[163,76],[164,77],[165,78],[166,79],[167,79],[168,80],[169,81],[171,82],[170,83],[172,84],[173,85],[174,1],[175,86],[176,87],[177,88],[178,89],[179,90],[180,91],[181,92],[182,93],[183,94],[184,95],[185,96],[186,97],[319,1],[320,1],[321,1],[322,1],[323,1],[324,98],[325,1],[326,1],[301,1],[300,1],[299,99],[298,1],[306,100],[327,101],[330,102],[329,103],[331,104],[328,14],[315,1],[332,10],[333,105],[234,106],[235,107],[236,108],[191,109],[204,110],[192,110],[134,111],[194,110],[195,110],[197,112],[198,110],[206,110],[199,110],[196,110],[202,110],[205,113],[207,110],[193,110],[208,110],[200,110],[201,110],[209,113],[203,110],[213,114],[130,1],[217,115],[92,116],[221,116],[80,1],[82,117],[93,116],[83,116],[81,1],[94,1],[95,118],[96,116],[86,119],[90,120],[88,1],[98,121],[87,1],[84,116],[119,122],[99,116],[100,116],[102,123],[89,116],[103,1],[104,124],[91,116],[105,116],[106,116],[107,116],[108,116],[109,116],[129,125],[110,116],[101,1],[85,126],[111,116],[120,127],[121,1],[122,128],[123,129],[124,129],[125,130],[127,131],[112,116],[126,116],[128,132],[97,1],[113,121],[114,121],[118,133],[115,1],[116,134],[117,116],[210,135],[225,136],[218,137],[189,138],[220,139],[190,140],[226,141],[222,142],[223,143],[224,144],[227,145],[229,146],[228,147],[76,148],[75,149],[73,1],[74,1],[79,150],[77,151],[78,1],[214,152],[132,153],[133,154],[131,155],[215,156],[211,157],[232,1],[230,158],[219,159],[231,1],[212,160],[216,161],[233,162],[46,1],[47,1],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[36,1],[33,1],[34,1],[35,1],[37,1],[7,1],[38,1],[48,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[1,1],[45,1],[11,1],[10,1]],"exportedModulesMap":[[285,163],[287,164],[288,165],[286,166],[282,7],[268,8],[60,1],[62,9],[63,1],[269,10],[61,1],[53,1],[54,1],[279,11],[278,11],[277,12],[276,1],[274,10],[275,13],[280,10],[281,14],[65,1],[64,1],[272,12],[270,1],[273,14],[55,15],[59,1],[71,1],[271,1],[70,16],[56,15],[58,17],[57,15],[51,9],[50,1],[52,1],[69,18],[66,1],[67,19],[68,1],[267,20],[260,21],[259,22],[250,23],[251,24],[252,25],[249,26],[248,1],[264,23],[263,27],[265,28],[246,29],[245,29],[243,30],[244,29],[254,31],[257,32],[253,31],[256,1],[247,31],[255,30],[266,1],[240,33],[241,34],[261,1],[258,35],[242,36],[262,37],[239,38],[237,39],[72,1],[290,40],[291,1],[292,1],[293,41],[294,1],[295,1],[289,42],[296,1],[297,1],[302,43],[307,44],[238,1],[309,45],[311,46],[312,1],[305,1],[313,1],[314,1],[316,47],[303,48],[304,49],[310,1],[317,1],[308,1],[318,10],[135,50],[136,50],[138,51],[139,52],[140,53],[141,54],[142,55],[143,56],[144,57],[145,58],[146,59],[147,60],[148,60],[150,61],[149,62],[151,61],[152,63],[153,64],[137,65],[187,1],[154,66],[155,67],[156,68],[188,69],[157,70],[158,71],[159,72],[160,73],[161,74],[162,75],[163,76],[164,77],[165,78],[166,79],[167,79],[168,80],[169,81],[171,82],[170,83],[172,84],[173,85],[174,1],[175,86],[176,87],[177,88],[178,89],[179,90],[180,91],[181,92],[182,93],[183,94],[184,95],[185,96],[186,97],[319,1],[320,1],[321,1],[322,1],[323,1],[324,98],[325,1],[326,1],[301,1],[300,1],[299,99],[298,1],[306,100],[327,101],[330,102],[329,103],[331,104],[328,14],[315,1],[332,10],[333,105],[234,106],[235,107],[236,108],[191,109],[204,110],[192,110],[134,111],[194,110],[195,110],[197,112],[198,110],[206,110],[199,110],[196,110],[202,110],[205,113],[207,110],[193,110],[208,110],[200,110],[201,110],[209,113],[203,110],[213,114],[130,1],[217,115],[92,116],[221,116],[80,1],[82,117],[93,116],[83,116],[81,1],[94,1],[95,118],[96,116],[86,119],[90,120],[88,1],[98,121],[87,1],[84,116],[119,122],[99,116],[100,116],[102,123],[89,116],[103,1],[104,124],[91,116],[105,116],[106,116],[107,116],[108,116],[109,116],[129,125],[110,116],[101,1],[85,126],[111,116],[120,127],[121,1],[122,128],[123,129],[124,129],[125,130],[127,131],[112,116],[126,116],[128,132],[97,1],[113,121],[114,121],[118,133],[115,1],[116,134],[117,116],[210,135],[225,136],[218,137],[189,138],[220,139],[190,140],[226,141],[222,142],[223,143],[224,144],[227,145],[229,146],[228,147],[76,148],[75,149],[73,1],[74,1],[79,150],[77,151],[78,1],[214,152],[132,153],[133,154],[131,155],[215,156],[211,157],[232,1],[230,158],[219,159],[231,1],[212,160],[216,161],[233,162],[46,1],[47,1],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[36,1],[33,1],[34,1],[35,1],[37,1],[7,1],[38,1],[48,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[1,1],[45,1],[11,1],[10,1]],"semanticDiagnosticsPerFile":[49,285,287,288,286,284,283,282,268,60,62,63,269,61,53,54,279,278,277,276,274,275,280,281,65,64,272,270,273,55,59,71,271,70,56,58,57,51,50,52,69,66,67,68,267,260,259,250,251,252,249,248,264,263,265,246,245,243,244,254,257,253,256,247,255,266,240,241,261,258,242,262,239,237,72,290,291,292,293,294,295,289,296,297,302,307,238,309,311,312,305,313,314,316,303,304,310,317,308,318,135,136,138,139,140,141,142,143,144,145,146,147,148,150,149,151,152,153,137,187,154,155,156,188,157,158,159,160,161,162,163,164,165,166,167,168,169,171,170,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,319,320,321,322,323,324,325,326,301,300,299,298,306,327,330,329,331,328,315,332,333,234,235,236,191,204,192,134,194,195,197,198,206,199,196,202,205,207,193,208,200,201,209,203,213,130,217,92,221,80,82,93,83,81,94,95,96,86,90,88,98,87,84,119,99,100,102,89,103,104,91,105,106,107,108,109,129,110,101,85,111,120,121,122,123,124,125,127,112,126,128,97,113,114,118,115,116,117,210,225,218,189,220,190,226,222,223,224,227,229,228,76,75,73,74,79,77,78,214,132,133,131,215,211,232,230,219,231,212,216,233,46,47,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,48,43,44,39,40,41,42,1,45,11,10],"latestChangedDtsFile":"./src/index.d.ts"},"version":"5.1.6"}
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.es2020.full.d.ts","../src/bundle.ts","../../loader-utils/dist/types.d.ts","../../loader-utils/dist/loader-types.d.ts","../../loader-utils/dist/writer-types.d.ts","../../loader-utils/dist/lib/env-utils/assert.d.ts","../../loader-utils/dist/lib/env-utils/globals.d.ts","../../loader-utils/dist/lib/option-utils/merge-loader-options.d.ts","../../loader-utils/dist/lib/worker-loader-utils/create-loader-worker.d.ts","../../loader-utils/dist/lib/worker-loader-utils/parse-with-worker.d.ts","../../loader-utils/dist/lib/worker-loader-utils/encode-with-worker.d.ts","../../loader-utils/dist/lib/parser-utils/parse-json.d.ts","../../loader-utils/dist/lib/binary-utils/array-buffer-utils.d.ts","../../loader-utils/dist/lib/binary-utils/memory-copy-utils.d.ts","../../loader-utils/dist/lib/binary-utils/dataview-copy-utils.d.ts","../../loader-utils/dist/lib/binary-utils/get-first-characters.d.ts","../../loader-utils/dist/lib/iterators/text-iterators.d.ts","../../loader-utils/dist/lib/iterators/async-iteration.d.ts","../../loader-utils/node_modules/@probe.gl/stats/dist/lib/stat.d.ts","../../loader-utils/node_modules/@probe.gl/stats/dist/lib/stats.d.ts","../../loader-utils/node_modules/@probe.gl/stats/dist/utils/hi-res-timestamp.d.ts","../../loader-utils/node_modules/@probe.gl/stats/dist/index.d.ts","../../loader-utils/dist/lib/request-utils/request-scheduler.d.ts","../../loader-utils/dist/lib/path-utils/file-aliases.d.ts","../../schema/dist/types/types.d.ts","../../schema/dist/types/schema.d.ts","../../../node_modules/apache-arrow/node_modules/flatbuffers/js/constants.d.ts","../../../node_modules/apache-arrow/node_modules/flatbuffers/js/encoding.d.ts","../../../node_modules/apache-arrow/node_modules/flatbuffers/js/byte-buffer.d.ts","../../../node_modules/apache-arrow/node_modules/flatbuffers/js/builder.d.ts","../../../node_modules/apache-arrow/node_modules/flatbuffers/js/types.d.ts","../../../node_modules/apache-arrow/node_modules/flatbuffers/js/utils.d.ts","../../../node_modules/apache-arrow/node_modules/flatbuffers/js/flatbuffers.d.ts","../../../node_modules/apache-arrow/fb/body-compression-method.d.ts","../../../node_modules/apache-arrow/fb/compression-type.d.ts","../../../node_modules/apache-arrow/fb/body-compression.d.ts","../../../node_modules/apache-arrow/fb/buffer.d.ts","../../../node_modules/apache-arrow/fb/field-node.d.ts","../../../node_modules/apache-arrow/fb/record-batch.d.ts","../../../node_modules/apache-arrow/fb/dictionary-batch.d.ts","../../../node_modules/apache-arrow/fb/endianness.d.ts","../../../node_modules/apache-arrow/fb/dictionary-kind.d.ts","../../../node_modules/apache-arrow/fb/int.d.ts","../../../node_modules/apache-arrow/fb/dictionary-encoding.d.ts","../../../node_modules/apache-arrow/fb/key-value.d.ts","../../../node_modules/apache-arrow/fb/binary.d.ts","../../../node_modules/apache-arrow/fb/bool.d.ts","../../../node_modules/apache-arrow/fb/date-unit.d.ts","../../../node_modules/apache-arrow/fb/date.d.ts","../../../node_modules/apache-arrow/fb/decimal.d.ts","../../../node_modules/apache-arrow/fb/time-unit.d.ts","../../../node_modules/apache-arrow/fb/duration.d.ts","../../../node_modules/apache-arrow/fb/fixed-size-binary.d.ts","../../../node_modules/apache-arrow/fb/fixed-size-list.d.ts","../../../node_modules/apache-arrow/fb/precision.d.ts","../../../node_modules/apache-arrow/fb/floating-point.d.ts","../../../node_modules/apache-arrow/fb/interval-unit.d.ts","../../../node_modules/apache-arrow/fb/interval.d.ts","../../../node_modules/apache-arrow/fb/large-binary.d.ts","../../../node_modules/apache-arrow/fb/large-list.d.ts","../../../node_modules/apache-arrow/fb/large-utf8.d.ts","../../../node_modules/apache-arrow/fb/list.d.ts","../../../node_modules/apache-arrow/fb/map.d.ts","../../../node_modules/apache-arrow/fb/null.d.ts","../../../node_modules/apache-arrow/fb/run-end-encoded.d.ts","../../../node_modules/apache-arrow/fb/struct-.d.ts","../../../node_modules/apache-arrow/fb/time.d.ts","../../../node_modules/apache-arrow/fb/timestamp.d.ts","../../../node_modules/apache-arrow/fb/union-mode.d.ts","../../../node_modules/apache-arrow/fb/union.d.ts","../../../node_modules/apache-arrow/fb/utf8.d.ts","../../../node_modules/apache-arrow/fb/type.d.ts","../../../node_modules/apache-arrow/fb/field.d.ts","../../../node_modules/apache-arrow/fb/schema.d.ts","../../../node_modules/apache-arrow/fb/sparse-matrix-compressed-axis.d.ts","../../../node_modules/apache-arrow/fb/sparse-matrix-index-csx.d.ts","../../../node_modules/apache-arrow/fb/sparse-tensor-index-coo.d.ts","../../../node_modules/apache-arrow/fb/sparse-tensor-index-csf.d.ts","../../../node_modules/apache-arrow/fb/sparse-tensor-index.d.ts","../../../node_modules/apache-arrow/fb/tensor-dim.d.ts","../../../node_modules/apache-arrow/fb/sparse-tensor.d.ts","../../../node_modules/apache-arrow/fb/tensor.d.ts","../../../node_modules/apache-arrow/fb/message-header.d.ts","../../../node_modules/apache-arrow/enum.d.ts","../../../node_modules/apache-arrow/schema.d.ts","../../../node_modules/apache-arrow/row/map.d.ts","../../../node_modules/apache-arrow/row/struct.d.ts","../../../node_modules/apache-arrow/builder/buffer.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/apache-arrow/io/node/builder.d.ts","../../../node_modules/apache-arrow/io/whatwg/builder.d.ts","../../../node_modules/apache-arrow/builder.d.ts","../../../node_modules/apache-arrow/builder/bool.d.ts","../../../node_modules/apache-arrow/builder/null.d.ts","../../../node_modules/apache-arrow/builder/date.d.ts","../../../node_modules/apache-arrow/builder/decimal.d.ts","../../../node_modules/apache-arrow/builder/int.d.ts","../../../node_modules/apache-arrow/builder/dictionary.d.ts","../../../node_modules/apache-arrow/builder/fixedsizebinary.d.ts","../../../node_modules/apache-arrow/builder/float.d.ts","../../../node_modules/apache-arrow/builder/time.d.ts","../../../node_modules/apache-arrow/builder/timestamp.d.ts","../../../node_modules/apache-arrow/builder/interval.d.ts","../../../node_modules/apache-arrow/builder/utf8.d.ts","../../../node_modules/apache-arrow/builder/binary.d.ts","../../../node_modules/apache-arrow/builder/list.d.ts","../../../node_modules/apache-arrow/builder/fixedsizelist.d.ts","../../../node_modules/apache-arrow/builder/map.d.ts","../../../node_modules/apache-arrow/builder/struct.d.ts","../../../node_modules/apache-arrow/builder/union.d.ts","../../../node_modules/apache-arrow/interfaces.d.ts","../../../node_modules/apache-arrow/type.d.ts","../../../node_modules/apache-arrow/vector.d.ts","../../../node_modules/apache-arrow/data.d.ts","../../../node_modules/apache-arrow/recordbatch.d.ts","../../../node_modules/apache-arrow/table.d.ts","../../../node_modules/apache-arrow/visitor.d.ts","../../../node_modules/apache-arrow/factories.d.ts","../../../node_modules/apache-arrow/io/interfaces.d.ts","../../../node_modules/apache-arrow/util/buffer.d.ts","../../../node_modules/apache-arrow/io/stream.d.ts","../../../node_modules/apache-arrow/fb/block.d.ts","../../../node_modules/apache-arrow/ipc/metadata/file.d.ts","../../../node_modules/apache-arrow/ipc/metadata/json.d.ts","../../../node_modules/apache-arrow/ipc/metadata/message.d.ts","../../../node_modules/apache-arrow/io/file.d.ts","../../../node_modules/apache-arrow/ipc/message.d.ts","../../../node_modules/apache-arrow/ipc/reader.d.ts","../../../node_modules/apache-arrow/ipc/writer.d.ts","../../../node_modules/apache-arrow/ipc/serialization.d.ts","../../../node_modules/apache-arrow/util/bn.d.ts","../../../node_modules/apache-arrow/util/int.d.ts","../../../node_modules/apache-arrow/util/bit.d.ts","../../../node_modules/apache-arrow/visitor/typecomparator.d.ts","../../../node_modules/apache-arrow/arrow.d.ts","../../../node_modules/apache-arrow/arrow.dom.d.ts","../../../node_modules/apache-arrow/arrow.node.d.ts","../../schema/dist/types/batch.d.ts","../../../node_modules/@types/geojson/index.d.ts","../../schema/dist/types/flat-geometries.d.ts","../../schema/dist/types/binary-geometries.d.ts","../../schema/dist/types/category-gis.d.ts","../../schema/dist/types/category-table.d.ts","../../schema/dist/lib/table/batches/table-batch-aggregator.d.ts","../../schema/dist/lib/table/batches/table-batch-builder.d.ts","../../schema/dist/lib/table/batches/row-table-batch-aggregator.d.ts","../../schema/dist/lib/table/batches/columnar-table-batch-aggregator.d.ts","../../schema/dist/lib/table/simple-table/table-accessors.d.ts","../../schema/dist/lib/table/arrow-api/enum.d.ts","../../schema/dist/lib/table/arrow-api/arrow-like-type.d.ts","../../schema/dist/lib/table/arrow-api/arrow-like-field.d.ts","../../schema/dist/lib/table/arrow-api/arrow-like-schema.d.ts","../../schema/dist/lib/table/arrow-api/arrow-like-table.d.ts","../../schema/dist/lib/table/simple-table/make-table.d.ts","../../schema/dist/lib/table/simple-table/convert-table.d.ts","../../schema/dist/lib/table/simple-table/table-schema.d.ts","../../schema/dist/lib/table/simple-table/row-utils.d.ts","../../schema/dist/lib/table/simple-table/data-type.d.ts","../../schema/dist/types/category-mesh.d.ts","../../schema/dist/lib/mesh/mesh-utils.d.ts","../../schema/dist/lib/mesh/deduce-mesh-schema.d.ts","../../schema/dist/types/category-image.d.ts","../../schema/dist/types/category-texture.d.ts","../../schema/dist/lib/table/arrow-api/index.d.ts","../../schema/dist/lib/table/arrow-api/get-type-info.d.ts","../../schema/dist/lib/table/arrow/arrow-type-utils.d.ts","../../schema/dist/lib/utils/async-queue.d.ts","../../schema/dist/index.d.ts","../../loader-utils/dist/json-loader.d.ts","../../loader-utils/dist/lib/binary-utils/memory-conversion-utils.d.ts","../../loader-utils/dist/lib/node/promisify.d.ts","../../loader-utils/dist/lib/path-utils/path.d.ts","../../loader-utils/dist/lib/node/fs.d.ts","../../loader-utils/dist/lib/node/stream.d.ts","../../loader-utils/dist/lib/filesystems/filesystem.d.ts","../../loader-utils/dist/lib/filesystems/node-filesystem.d.ts","../../loader-utils/dist/lib/file-provider/file-provider.d.ts","../../loader-utils/dist/lib/file-provider/file-handle.d.ts","../../loader-utils/dist/lib/file-provider/file-handle-file.d.ts","../../loader-utils/dist/lib/file-provider/data-view-file.d.ts","../../loader-utils/dist/lib/filesystems/readable-file.d.ts","../../loader-utils/dist/lib/filesystems/writable-file.d.ts","../../loader-utils/dist/index.d.ts","../src/papaparse/papaparse.ts","../src/papaparse/async-iterator-streamer.ts","../src/csv-loader.ts","../src/lib/encoders/encode-csv.ts","../src/csv-writer.ts","../src/index.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/brotli/compress.d.ts","../../../node_modules/@types/brotli/decompress.d.ts","../../../node_modules/@types/brotli/index.d.ts","../../../node_modules/@types/command-line-args/index.d.ts","../../../node_modules/@types/command-line-usage/index.d.ts","../../../node_modules/@types/crypto-js/index.d.ts","../../../node_modules/@types/emscripten/index.d.ts","../../../node_modules/@types/send/node_modules/@types/mime/index.d.ts","../../../node_modules/@types/send/index.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/mime/mime.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/http-errors/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../../node_modules/@types/ndarray/index.d.ts","../../../node_modules/@types/get-pixels/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/glob/index.d.ts","../../../node_modules/@types/hammerjs/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/node-int64/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/offscreencanvas/index.d.ts","../../../node_modules/@types/pad-left/index.d.ts","../../../node_modules/@types/pako/index.d.ts","../../../node_modules/@types/pbf/index.d.ts","../../../node_modules/@types/pngjs/index.d.ts","../../../node_modules/@types/proj4/index.d.ts","../../../node_modules/@types/q/index.d.ts","../../../node_modules/@types/sql.js/index.d.ts","../../../node_modules/@types/through/index.d.ts","../../../node_modules/@types/tape/index.d.ts","../../../node_modules/@types/tape-promise/index.d.ts","../../../node_modules/@types/thrift/index.d.ts","../../../node_modules/@types/varint/index.d.ts","../../../node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"f59215c5f1d886b05395ee7aca73e0ac69ddfad2843aa88530e797879d511bad","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"3dda5344576193a4ae48b8d03f105c86f20b2f2aff0a1d1fd7935f5d68649654","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"c5c5565225fce2ede835725a92a28ece149f83542aa4866cfb10290bff7b8996","affectsGlobalScope":true},{"version":"7d2dbc2a0250400af0809b0ad5f84686e84c73526de931f84560e483eb16b03c","affectsGlobalScope":true},{"version":"9d9885c728913c1d16e0d2831b40341d6ad9a0ceecaabc55209b306ad9c736a5","affectsGlobalScope":true},{"version":"17bea081b9c0541f39dd1ae9bc8c78bdd561879a682e60e2f25f688c0ecab248","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"f06948deb2a51aae25184561c9640fb66afeddb34531a9212d011792b1d19e0a","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"322cc0ca9c311414642c0d7ef3b57beedbac198ca074e3e109a4be4c366dcb81",{"version":"9d3c44c5662654459def646b30ff930d4198e5b77d57cf1d21d5de5f7b30dc07","signature":"1160f1801f74994542376d565e986ec3e49c83b662019fe09e2b5107e75977fb","affectsGlobalScope":true},"33e032e02fe1909039aba738d93c54a3552ee2347f47c811c0decd0b8f5b2f3e","b5d49a89aa67cb571b25e167d3902482dcdd94e55743a28bae2afacee7a89e37","354ada2e04452d05bc4aa6f471ed6f917772c954e8a325d98892c74ceed21109","27939d01f8d6be041c1d5c1816b428b3e8229829233e073f7b45b6af3b660ebe","7c4dd44256edda6b1e653ade809a4834ea1672557c32740e7018a89082e67f98","50cccf12df778f241ed7bc0924507debdc3ea0aab99bd8567f4f62ec66ce1e71","16945fb857d0467c9990ab40c66ee4b548b9aac85fdb1dee0a51d7dc93962c57","394462987ac0b4c19b7c59b4eb984f9e5db86af93a96e752918d945197e22982","d20beb3b34cb36fa1a97972df3321ec8e4462a842544c81877f2150bc9c2ddf9","e0f7c61f78b9d64f5c05de758086d992bea83dbdf0c6cace9c5df02534cd0bb2","8312a4d6aa569fc57d9f564678e5817483feb50fedebe84e50cc9c1cf0c33459","65e0b1ad130fc07161f051c2a5e5c3c4a5d3fc9ae70806b87aa3d91e21f25fb4","2ad4364f8229359d8d87035a32a6a4adf4ae17ae417c3020e5051177856f0d6c","d1c7ce4be3ae34ad0b2ea4a685f2521701a36382808d049ac5e2d259025479ed","ab844b5925c28e479fc12a62d863d475404134f4d5c55f9287666ea94aa30d1f","2da34af5c8cf099add4be5774fd504f802e6e0711820b0cddd76da9182c90f19","8432aee1c4d9e7490d0276956afb4945285aa54ca0ef2ea33c94a1362ad40656","289c93fe295277a33119aaee688863eee6d7ec57111f428a12f77ab6af9790a9","476cc782a34c53072c7b585184fab1da9cc381337ce8c7562e2d50d1a16ef5ad","6dd764e36d98ddf0b22e042d5a693a3e7664accff7029a75492e061d763febed","8b789c97d89d9a45ac1005dd50350aecc2c4e9d9ec56efacc3edf41171324ef4","1d6736f895b28f9db177573a41c4b33566a0764b149f0e0dc92116786ae375a2","49e837668d4c989f90c458286cef8ba31dff74baa3101b7246cb4bb0d1401cfe","4407fb1764e98192ae81b9d86e0bda41402fa9dcdc5993feb5f1687fcd4a3d67","05adb45e3dde250b6ae4a50b9dd26457489cbe6bb5de36468aea83df2324e3b8","b71da9f22a46322f03f5900108c7bc23fe598e2dcd3955d94df0bf9b03adc9ef","15d54b1dc36761e843f740e13d896928b5bcb76c9cca250faded032e552ff447","791b89410fb8a65d6993c0bc12abc6a404ffaf21609d752b00228116b2ee1897","a6ce2450e3b08abb086b77e0408b4717322b370715b77f0b9f185619e2523b8c","5bcefd704c479b68d8050f61beeb84911739d7db5ce22b50c2c8396a7f8a973e","1bf22eff6631acc2d999b72cb87f26781fe2d449000beab70e5becba665237aa","cb31fbd38e527e01368c338daa15c472c9dacb72a0a6e483d7f338d2a2b88d92","9a056e9b9acc76b8320976d9fe6cd87c53bc1f4e2919613bcceebcff6b539cfa","a8f09ab4bfbaf32009c5ceb09f267c45d3e9fad63a9640c3dfc824480522eb1c","8d6da1d6d75e21fc322882a7a6cce39c4a85279582c0652fad76ae658f1fa4d8","2dcb4881af7d254e20cef0d36e33ef63025cea48ac9b739e310ac8dfb6a4d4d1","0e8c1b7ce40dab54106b02db1b529a9d1d34b0bec61bdd3af9c27dfc5041b8d5","fdd8e8b914f1d8c32363f45e37f9577be9f65e9171833a4c8c117afde983df3b","9fa2d338f2c6e4fb5a2cf20bc83f24102f177c9996a9550ab9cb295afc443322","b6b354bd57b44849015d119134a2adf6136dd459fb38f3625fbb35c844343362","831e08bc1e0e0fed9f34180a42bcffa15437283b3a90c453f98fd82f639784c0","576d3ac930288e7fe44873f24dd8ba11873ab8c536c5f67464e9acdbdbf5f0be","6210058f2ce3e9052681f3d2df475d6bda1cee4584dd3a5ef1ef0e60959522d7","7a04ce0e85d6db683f63ec9f2699fac3e2d9fdd6a9313dda42e25761a3c83a2c","2b9c4aed45c33a93dc6de1e5894094090363aaee045921a0e6ef245657c5315d","b9c7f144f9051934bba76cb051d806377a0676ed488ae5764daa9bf7a198fbad","dd36b72841bc2a5edbe39640abc5d0175f06b9de32d6b767615c62c460330382","de06c3051539ddd64044947bf5a804005e98b09613699b19de1c09ef8e8df95f","681c8a82369365bef1360957b467844e8bb3e9626df2162d904c8bbfc92863f8","8585b7a7cc1cb48171fd9e168ca0126a921189c6643cc4dd5dac43de6d3b61e4","7eb739af12059b8c368641641776937254b381ba298e43820b78696d4e12d3c9","f85ef2b6b6243d398b2146de3186f12c825a18295d3913aee1d7ad237856c6c3","e83218020bb0bc9a527cf10bca9f3afe489900c60dee03e8398fe135054c81ae","d30f3ae4c835c4006e1676170181461e7e97b4e1d2fa0c96a4d0a355cd97fd8f","989b02e98599537eccb0e89c3c737b75159fc64299bcee5ecf495535a4096efd","b0cfe92f5a41d98256df17702e2e30afbcbc5d33fcde330b20dcac2df26b393e","7de22e2447797056c5bbf57153d8e7d7106bab19b2bb8111cf9c9776935b81e9","74ecda5bfdd35b1b365b3069acb0224303c20b458e92dbacf6954eef4d9f30db","7e1862fcb5a27f449515e7ad569afb738896183889a3dfbf09f125d2ad1effaa","c3bc001ab25d65e716b576b0c607d413802122e85fedf847629227fdbf73298e","e0644b2e6e5f5709fd5b0377e801ae12fbd1a9d612312ed86b823159421e29fd","1dfa53faf0395d8e6714329b001659009171d5268f7231ad05fefeb19b7dd0a2","baf281afcc69097878a9f76190ec1139cdcb6d39adb1e0685644789fe99769ed","6d0e0c26cd26694ef8f4776443fdd846add0a327244424b5be1eb3320a770486","77df8e8553d35e13728f6d0a37ca982520046645694ec1edab9df2df4e905dc2","387575cfe4ed66a1e3b066d2b6923c41be68d39905d62a8fa00e95cee9d4e719","03c9cee66774b18d3c20119b5fd25b3a94f95757aa82cb5bfe9cf7cb91400bd9","0c7aadf8379300a1dba35b087663c682f440aa5923ea96a8ff9ff483b891766c","70f8da676faa53028982803fb3b389b98119fb0b41df9020a3130b008ac6dc74","2409017257471ec5e3bf053cb4a0e0a5f3a7f11901a247118c1654980d7e1fe7","8b729a1d9b4f457b23b790a07111742b5c2714b614da768550e0a7309350e438","07ae8276b1ded724db7342f1271258bdf7d897ad47affecde328f89543fbef71","959e21dddaa3d50c7a9573c033371f8a8eb75e1da2e4f0d2ffc2e44862a7939f","5c5150c7774dcedeaf599b1372b8158b3f8a0e665d602a35e34470822da59f59","fbe77f3f07a47c30835cb7b88d1aeaf605052884b819f0669977a9977bbd4a8f","07cf01ae7f286d5c1390bec1fc2cad285c2cd96b3778b61eddfadd2305786040","d07829c9a6e7288abc6d1df2d0e3ffd31a2418b38e7bf3d374437042844ed17f","7299ae6e1cd70af673d26872a2c7616ea6fa287021669473bdd7842c94094f61","820567b6f3633584ecd3e57c8cc192a6a18f2803edfe730fd1531d9cb6fed891","2ae462dea06b9d0a202c1c034ae686d225169038c33242052f4edf93db00b254","5ffe14c99d9130074d6bbc1edeabe4b4ef9168a05986ac7aff84ac5735c4d77b","e5fdfb44e69cc7ddaf28db39288c24b1116f33539aee0b0fc7b7a436c73cb727","980826c7be8addf3ca7bb0c238d26a682442dfbe0abe8103e63fbba13b942a2c","7f9371e6554e4e48793a31a353d00fa92dd92a0b8fa8ae00e480036e3a4d2776","fdcd57d2575b4e00c4c92b1a2fa15c791365aa763c4d4c901c3f3a362acd27d5","f59156c06f6c0cdbffd04ca6d99b093ba6deceffa921e68e9aebc8f49cb6ec4e","7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"f749812878fecfa53cfc13b36e5d35086fb6377983a9df44175da83ccc23af1f","affectsGlobalScope":true},"7d2e3fea24c712c99c03ad8f556abedbfe105f87f1be10b95dbd409d24bc05a3",{"version":"211e3f15fbced4ab4be19f49ffa990b9ff20d749d33b65ff753be691e7616239","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","e596c9bb2f29a2699fdd4ae89139612652245192f67f45617c5a4b20832aaae9","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","1cdcfc1f624d6c08aa12c73935f6e13f095919cd99edf95752951796eb225729","216717f17c095cde1dc19375e1ab3af0a4a485355860c077a4f9d6ea59fab5b5","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"00dee7cdca8b8420c47ea4a31a34b8e8294013ebc4f463fd941e867e7bf05029","affectsGlobalScope":true},"80473bd0dd90ca1e166514c2dfead9d5803f9c51418864ca35abbeec6e6847e1","1c84b46267610a34028edfd0d035509341751262bac1062857f3c8df7aff7153","3bd1b21f21d18995315d232c5c7e868651e109396f3ca48fa8ab15f57a20d911","a3d541d303ee505053f5dcbf9fafb65cac3d5631037501cd616195863a6c5740","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true},"bcebb922784739bdb34c18ee51095d25a92b560c78ccd2eaacd6bd00f7443d83","7ee6ed878c4528215c82b664fe0cfe80e8b4da6c0d4cc80869367868774db8b1","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"0715e4cd28ad471b2a93f3e552ff51a3ae423417a01a10aa1d3bc7c6b95059d6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","4f3fdeba4e28e21aa719c081b8dc8f91d47e12e773389b9d35679c08151c9d37","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","f69ff39996a61a0dd10f4bce73272b52e8024a4d58b13ab32bf4712909d0a2b7",{"version":"3c4ba1dd9b12ffa284b565063108f2f031d150ea15b8fafbdc17f5d2a07251f3","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","1422cd9e705adcc09088fda85a900c2b70e3ad36ea85846f68bd1a884cdf4e2b","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"a73ae8c0e62103bb9e21bb6538700881bf135b9a8b125b857ec68edfa0da4ed3","affectsGlobalScope":true},{"version":"e1c1b2fbe236bf7ee3e342eeae7e20efb8988a0ac7da1cbbfa2c1f66b76c3423","affectsGlobalScope":true},"868831cab82b65dfe1d68180e898af1f2101e89ba9b754d1db6fb8cc2fac1921","0fe8985a28f82c450a04a6edf1279d7181c0893f37da7d2a27f8efd4fd5edb03","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"52120bb7e4583612225bdf08e7c12559548170f11e660d33a33623bae9bbdbba","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"a6dd3dba8e665ac43d279e0fdf5219edda0eed69b5e9a5061f46cd6a65c4f7a1","73812e98e1ea55e4183fc4cd49c968ce9fb5affad9cd7503781f58160ac830df","dd1f84835041fb21fbcb6d213290cfdb07fbd7551c5b9340db3f5a8906d403c9","d1cf164102945309b279ff06bc2d121ac737e5487a2408914655f689ecc2be1f","fd2d5cc8041746b1cc71ab247163982c68b4fad0522b2a8f555368d57f1aa134","7f56883fceba869ca2e3bab049cf33272bac1a6937c235c652e0bbd9aef67624","af1f132f95a4a56d9304f8dfe68f116d2324b0368411574932c55cbe2fafa214","4e0a5de3811fcb44426b7f6bea3458d1c794591d0b4a715c51c3ad5d70f08ab4","68b735874e866f37d072bf674535a9f33965132ed9e1e4164a6fbc494d590604","9cec0cc895584e0e42d5c97c4a16ebd25a4fa60730c186edf0d28df0a5bc3702","94d41a754d3dda0f2517d49d181f1ba1d812b85e7bc2c822c40be945328edc33","842ffda229092b37ce0bc6748b09a38aaedc8490a69b3a10ec48ebf47baa3224","0449afb9de90d153878437b4004c6c5ce1e2f8f33e93ace383d387b683bac845","358999876ec96fa23597d354ed2fe6ae495d7c654e720ab3be349179133ed14d","8daf1c92a5955e61e5f82160f1d3db34beb4b60657a20ed91e450b32c4d09350","74e3a9065b290394d3ee7fb111bb4523d846663d898aa21bb76c8e9af979ffa2","e19b2a73885f75f29b2adcf1077c8dde7d69137af24c065b5ae7d7fa9bd3b820","0e720e8c78a3398bb6fe498919c4e21ce991c093a93235d7641891b65d0cad54","207e465a5c27537cd6c987739a0ccdd2bd0b13dc69511d11bfe979e19fcbbbbd","7008aa856c52cc0af5aa6c755abfba94dbc5e0a9dac3f9a985eb5ed52e6d535d","27551a71453552cdb14453753b2808fb405e6b1495f53b1de318953ac4ac73b5","0bb991b7c106b013ccd1b236bca252a34d8cfd2a61387409c1c407e8e07acada","0d510711f47a9337d385f7f53cb9bca5a59c245c40d5499ca6db75410a8a9436","865cad10c204bb43eafcdb1957ff4dd810c3caf290cbc18a67d5ca5d48a9b398","a8129d8de89732097a12fa202536d1f18d418be881e1fe2d40cb8883d141a3ea","02fad3c2d4fb705ad84df9e48beeb60b55e803913d504bdb7f37ec80f088d26f","fe47866cf57ede76bc97ddce7d33933ec21a4ffda175a10841e8fba45de7330f","ffe308a8dca440f45388b685bd7bee2a61d9d40624fcd0d6383844d90843bb68","3b7f2318cf351fcf9883a2c87ca85ce4dd3027dfbf6931fc034c9d3f23a2b6c3","8f9fdb0a9539cb998c359c0b991b6c687092306141076a7843d31b016adcd154","533ab639c90c7b6dc53c792dc20e8eecd08b87f7d8b7b9b76df681169a6c097d","f8f1b109894f78f146db848fe2989a01200b094b46677345ba90c0d9a218786a","dd01829a1232dc969066f1a1f478a25ee453a4e76f4e033080e279520b4460ba","d6bf6f2a8f1bf3fdc6ad05035672d8c38a04f72f39c5a55db9f1844689eec144","ec1e72c665317467b85ad4d27f5c106e6a888116f8757d883c8600e5f299192e","414e31d3a66f5c79cb49e82c3960a6983f1c031df82de1008bd255bf7aee58ae","d5d9c822987d673eabe9f058211e5d4015e38023e99738a63157fdf98ad17705","87b5a7dce771abfa0ea41eca3935c98f98148b9f563a62c582f0b456a63d951a","5d176ae3b4b1d9b4fd09dd2181d8822dbdfda2975efbe688289e7799e4acc3f1","9c43cd99639d7a77f9fdbfbc083dc5e074a2755be234dd19005bf01ab6ba1451","26f5cc01fbfc3491b155f37a4972de5df84e9f732ec20c3279992004a695b5aa","27496861e0db6ede90b48607bccd9ea9a18aeac897b463cfadead98abe105ccc","c9be5b0a527826562a6f4026b846647af717bb1366327b31e8eef98ea630b349","87fd703309f6f640f2a0a6ce79c0b14c02cbbfdbd3913d6af601be883ab8cf18","9bb021b1303e52cdc159ad2a254e449c68b9b5157ae26b9d918f19e2c8d94223","ce3e8890c187fdab18aa9c41aeadd0bb3fb13875dea5ea03e1d3c07e8446ee79","2d4ad114f5c2e8d7ca7cbcb94035fd4f45bfdb53dbbc82bd5be39431326ade39","1a90db26f4f4dee02b8bd2a7d470bb08162c644185630c5d71436592d9331536","b01d9cda99bd4a3363a6605f0e20de677fb6942eadd642991fb05a27abbba73e","933684c327bcf518415160c9279befae18e006f3650ad56f6745bc2e1916323f","a3b6c93a9838b8c94c6998e85646d6f2d07c20ecfe1e235dba62158b29451391","0fa5fb053d5976cfc833eac924af0e4d12bcc148a22d2bc05eb4a56dcdfe5c0d","63cf7392a0c1877d0b3d25648e16b32bddebe11f08ba474035b191c960cee0f2","202a0f6f9eff1d888a7a360df4f871a7de8aa7be9d2a14ab6b06943ff5fd46f2","8a4f0e1e23e608bd917a42b2fee9b4aa255c01d5838fb99962a688a3d8276de7","9ebdf3e2e4de01b5761d7863c61e0d7fa690637d92393ef31790a580c5e2f5a9","907a7f4a2f1e385ac53af2c6543acac6b9adab1ef1f827ef2663e4e7f1a98aa4","95f146c547caf2f02fbbd80dd1889aab37912af904d3f70e388ec4fd5c3946a4","f89f5c94352802530fb3801545d83ffa8ce8f9d6d996ce82aa24ddc019e97e47","63c917bca35d28e15479dc2b1b6e572881ba4ee2495390ea8eb91374e43745e3","31fa6e8452bef01da6aa5ad57e621e240c87bc3175ce2d2de552c85d710db746","3014b762a92a846346ae6f1e44164ec30ef6e41e9290fbde51802ae472c7379e","5329a5972c3953a19a37ce65ac539a47de96e36ff87e7eda90d68760e9ed2a5e","cce4acd479fa79d1662ce4fd3b1bc098b3b43d347e4f7c563ea9c5bb38182a8c","379c23bff093a237d2f63c994f3e4ca0f95456c6f0548d0023eab60c61a00fbf","f21309ea38bcb63431532d4c139c235c1d5c5bc4ce15eb8c5cf2055b6b4f1d82","b7eee16c3d82d32ee916e9a663d0e6da58b6620ba094227a3b8bc51c88d83ba9","5283047c95c3895b54471261aada51dd47b4e7c6fb00d58f8a8b4034bd0be517","e29e9bad6fb8e05f3ce22b495ed839301dd8d057484fbd4f4c7218d360f941af","406134b920a681373ceba80dda358a015b0379d752b82b4a4430367196a6f4b5","99ee232ec78662869c921fee90c3809fec53e0e9fcdb0f225b63365a799bc38b","d1ada1111c2d8c6f20f940b0185fcd6f20562c0045d25433d5e2af37bee85fc1","7de5231dae45cbe3be9061a3da7ad310a7b0ee69a485926cb19e9914d3903659","7ca3915472a9f35c88a2661918ce99e1f791c3c04b4d5b25e03a0de99311ec6d","d9c400c03120bd59a0f8c61ca675a92d17679980ec3fd03c8fd566c2962f8cc8","8f1a5455aeff08cbc457dd6779a1ad32dfbb45f8e19075d2a99cbbbb8d519937","dd743ab18dd99672635b11dfc9c6a4ec2e586a018878b6b7d2b6456fabb1c493","6eeeac9646fd4c561c7aa730b9c4a1475eb31a13b0bb682a370cac5faa3feaba","9ee3277aa530d275d666fb69afbb6282c480e7aa5fdd3acede75afda7518abe0","8ad7bb10245defe33f41541c9ae6ba370ba1d691aa76c8bc6ed20834d2770926","417723bcd93ea77a71730d4326b2e9eb3f29ddcf3c217a307dd23fba6921f05b","b3b44303e3858ca1299d6d90165d9e9ef8f9a3a6a430edb31e3001fdc7dc0c68","0eb0ddc4a3111b0e63e4580d71017c73e63bc07e340ca0bcc6635573b3fdde7a","74607de7ffe82d5cea87b084f47bd689e5b32866a79434a2153377cf148dce66","1133c27ca4c37e4b52f6d9734aebfe3bae666447725f7f7a8c0541ae7f898b77","25cf1493daa6661a8a955338741a31c5423d519c197c3c554f4b73ad7e393027","de71c909039b1fedfb18cdd165c2e5cb6689ab64075727acb401d4911c6f2d0b","05fd608fccaf9a3022acf63655a168e09a8503261dffc00d17b83891c5d3d59d","cc452d7aee67d7c81a107da08d17d36bf5e89a13c3819dff8441deee3d4be005","7f9c8e3b58f1af8e935b9e072587cfc3a3a18f798dc11ffbecf9ac7bf194bf8f","5387fd5eb366c494db9bc2c5f1f5fa6c41d363757fd7231e4d8f38fdd0a4bf41","e62d41c984ae275aa3676b2ec6fee1d8ea5148f641a017f9bd6f8944f0b5686a","a814321be049bf59256278f68dce5bd5199c521394b3032b74fde53265c3d492","aedd3163c1b62854300b573c8245a7ac347fdb5ffc27c92a00bb6db9e1871e30","b525390947ad39dbfa3a9c5b19e549b9760e729e4e4d62aa72c7aa1ac5debada",{"version":"8f2869cc655b12580adec567b745e567de74b417e4eab8628ba5ecd23ef5e5ff","signature":"8820074b3a54efa1de40568042869cff26f44887f0fa76c2ed14a302ef95c803"},{"version":"f71038a5cd16db3b8c0589d932af619436578e2f773f575590d66f69795dce66","signature":"589a00baf40c4fbd6f99457f626951617e39f3402179a2c5a705a3992e334fb8"},{"version":"89d3d98ec40e971b77d46fcbf4017baf94526cdd5f78493b1b4dea6a48651ee2","signature":"7bf018741694e71ceae7a6fadb6d2f41aa774b61f4558e4ce9d11859b71ff5b0"},{"version":"c8a61d40a36913b9c837bade8d97521ffd4e58bccd7a55de42d83c5ac3ec284a","signature":"ee4d7ded21074f95556f600b417f19a6c70f4392bf4a8f4238d23e42408cc87a"},{"version":"efca8eefe90e9487b8034e2b45d4ea04a05fcc9dceccc719a546710bc701c5d6","signature":"d9acf1c0fa6e12e0288f18309c4997c7fdd97f5da9bb91248c3fba1932705ba9"},{"version":"f7368e68b2ff356ff5c27cc635fcb50ad45f6e281d382f2649a354f756511ddf","signature":"2b5ff11e59fb01d503155bf670b2c07dc18a5c37bedc54f2e880ceea186279c0"},"6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","39c18ea70fa2449cb00c97e73b3b8f96983e423678cfede0fbcb9319cbefa67c","a6f0218395ecb8e0d736e0a19524223ab7a8a7ed217c4a99c165df2532e1beec","287bb1a9e0f935417f8e753687737d3c90c35a56d07448773fc3ec8f0f97a6be","629766229f541d92210f30a92b6038568ec165fab14b7ee53bdf13667da37ca3","29193c018378ca9c8033eaa974c02c1f503e8fcd8a2bf406057c53f7d3fa17a8",{"version":"4f9362850bb427525ba05c0e861dae06d9918bd16ccb38d504cb7294f69e8496","affectsGlobalScope":true},{"version":"82fcf338bc21711d93d65f981a7182f9942d3ac1f268c4480537c9b62c89d10d","affectsGlobalScope":true},"84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","aad5ffa61406b8e19524738fcf0e6fda8b3485bba98626268fdf252d1b2b630a","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"352fc8497a30bc806d7defa0043d85802e5f35a7688731ee9a21456f5cb32a94","affectsGlobalScope":true},"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f463d61cf39c3a6a5f96cdf7adfdb72a0b1d663f7b5d5b6dd042adba835430c2","f7a9cb83c8fbc081a8b605880d191e0d0527cde2c1b2b2b623beca8f0203a2cd","43cdd474c5aa3340da4816bb8f1ae7f3b1bcf9e70d997afc36a0f2c432378c84","23790f2da8d5370068bf8ba250786babee91f619ba9f8e067957c7166c824432","9226af9c56e77e2de484e3778a33a53a1dfb11ead282a7bdc55c2ffd84136837","963d59066dd6742da1918a6213a209bcc205b8ee53b1876ee2b4e6d80f97c85e","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33",{"version":"3e947c8dc536e569ceb62a7cb0255e4866fd54dd5d35d21e49c7e755f5c134a6","affectsGlobalScope":true},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","cddf5c26907c0b8378bc05543161c11637b830da9fadf59e02a11e675d11e180","5774751340e987a6a9e4a5dcc03ff68a6515adc2b91423e1af2f660fc8f30e81","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","86889bc3e5323b1e92f5d23d41395ccee3dc91c37b5a5dbf115ea40fc13edd28","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a",{"version":"86cc8969b76067ccf25e02c62b7df6ccdb419481fbce594b5ae9da21e9015e39","affectsGlobalScope":true},"b92ae8263cac4e5a79f55fe6cb63c030b096679b98f603fbc13963c30ab7da5e","4e9d375d05a75efefcdae0a6a7be76861b5c96683acd31d1c8b120f60c0f6194","2a856615ecd0af49997dfbb38cf94fd787d529062a2e96ce26b84432e61d785d","0b6a0b628776a3e3a4aeeba090438a26e7ffa15373ce658452c78c1f2254665d","5764c1db026d0f1070ff009879d8f90dec70cebc3d1b27ca20f7beeac2afcae2","62b931417104c7cb35d0725e1869f51d52d7b18462fd58f32f846a314a42ba10","77b89017a4f1a1e5497efbbb0b742506b6c5c725d7d6855e793a12a97c7ace61","656424ca784760c679bf2677d8aaf55d1cb8452cd0ac04bbe1c0f659f45f8c11","bed28de34a5dd2b08d47b584da338e5fba92de84ce8727dd153d9ec16bc0f2e4","6745e41d07e777a049bb25425bb1c6c1a9b437bc2568ca8eef03daa8e8913ac0","032667dd4a981d2b58dfaf5840f5a2ea76160ab18658fdd5abd0a0bba1565af1","7382cbf0d8a841a91d7ae2217897bd53bcb9584ca6fbe123771167a7f641c157","65dfa4bc49ccd1355789abb6ae215b302a5b050fdee9651124fe7e826f33113c"],"root":[49,[284,289]],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":2,"module":1,"noImplicitAny":false,"noUnusedLocals":true,"outDir":"./","skipLibCheck":true,"strict":true,"target":7},"fileIdsList":[[182],[182,268,283,284,285],[182,268,283,287],[182,286,288],[182,268,288],[182,284],[50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,70,71,182,269,270,271,272,273,274,275,276,277,278,279,280,281,282],[51,182,268],[50,182],[182,189],[182,277],[182,189,273],[182,189,273,275],[170,182,189],[153,182,189],[51,182],[69,182],[52,182],[66,67,68,182],[66,182],[72,73,182,238,242,243,244,245,246,247,248,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267],[73,182,259],[72,182,259],[182,250],[73,182,251],[182,237,239,243,252],[182,249,251],[182,250,251,252,253],[72,182,237],[73,182,243,244],[73,182,243],[182,243],[72,73,182],[73,182,237],[72,182],[182,239,240,241],[72,73,182,243],[73,182,237,238,242],[182,262],[182,239],[155,182,189,290],[182,189,292,293],[155,182,189],[152,155,182,189,300,301,302],[182,291,302,303,307],[182,189,309],[152,153,182,189,311],[182,316],[182,304],[182,305],[136,182],[139,182],[140,145,173,182],[141,152,153,160,170,181,182],[141,142,152,160,182],[143,182],[144,145,153,161,182],[145,170,178,182],[146,148,152,160,182],[147,182],[148,149,182],[152,182],[150,152,182],[152,153,154,170,181,182],[152,153,154,167,170,173,182],[182,186],[148,155,160,170,181,182],[152,153,155,156,160,170,178,181,182],[155,157,170,178,181,182],[136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188],[152,158,182],[159,181,182],[148,152,160,170,182],[161,182],[162,182],[139,163,182],[164,180,182,186],[165,182],[166,182],[152,167,168,182],[167,169,182,184],[140,152,170,171,172,173,182],[140,170,172,182],[170,171,182],[173,182],[174,182],[152,176,177,182],[176,177,182],[145,160,170,178,182],[179,182],[160,180,182],[140,155,166,181,182],[145,182],[170,182,183],[182,184],[182,185],[140,145,152,154,163,170,181,182,184,186],[170,182,187],[170,182,187,189],[153,170,182,189,299],[155,182,189,305,306],[182,189,298],[182,330],[182,189,329],[152,155,157,160,178,182,189,319,327],[152,170,182,189],[130,131,132,133,134,182,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,225,227,228,229,230,231,232,233,234],[182,235],[182,236],[135,170,182,190,191,212,213,214],[182,192,212],[182,211],[182,192,197,212,213,214],[135,182,192,212],[131,182,212,213],[182,192,211,212,213,214,216],[80,182],[80,81,82,182],[80,95,182],[80,86,182],[80,89,90,182],[80,98,182],[80,91,92,119,182],[80,102,182],[80,104,182],[86,87,121,128,129,182],[80,83,84,85,182],[80,88,92,120,182],[80,84,90,122,182],[80,84,90,182],[123,124,125,182],[80,84,119,126,127,182],[80,84,119,127,182],[90,93,94,96,97,99,100,101,103,105,106,107,108,109,110,111,112,113,114,115,117,118,182],[80,116,182],[131,182,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,212],[182,219,220,221],[153,170,182,189],[170,182,189,192,212],[182,189,219,220],[182,192,212,213],[131,132,182,219,220,221,225],[80,131,132,182,220,222,225],[132,182,212,225],[80,84,85,86,87,120,121,131,132,182,212,220,224,225],[131,132,170,182,189,212,213,214,215,219,220,221,223,225,226,227],[182,212,216,228],[131,132,170,182,189,212,214,215,216,219,220,221,223,225],[76,78,182],[75,78,182],[74,75,76,77,78,79,182],[76,77,182],[132,182,212,213,214,216,225,235],[182,212,213,214],[182,212,214],[131,182,212],[132,182,211,212,213,214,215,225],[131,132,133,134,182,211,213,225],[182,211,220],[80,182,211],[182,211,212,214],[131,182],[132,182,212,213,214,217,225],[268,283],[286,288],[268,288]],"referencedMap":[[49,1],[286,2],[288,3],[289,4],[287,5],[285,6],[284,1],[283,7],[269,8],[60,1],[62,9],[63,1],[270,10],[61,1],[53,1],[54,1],[280,11],[279,11],[278,12],[277,1],[275,1],[276,13],[281,10],[282,14],[65,1],[64,1],[273,15],[271,1],[274,14],[55,16],[59,1],[71,1],[272,1],[70,17],[56,16],[58,18],[57,16],[51,9],[50,1],[52,1],[69,19],[66,1],[67,20],[68,1],[268,21],[261,22],[260,23],[251,24],[252,25],[253,26],[250,27],[249,1],[265,24],[264,28],[266,29],[247,30],[246,30],[244,31],[245,30],[255,32],[258,33],[254,32],[257,1],[248,32],[256,31],[267,1],[238,34],[241,35],[242,36],[262,1],[259,37],[243,38],[263,39],[240,40],[73,1],[72,1],[291,41],[292,1],[293,1],[294,42],[295,1],[296,1],[290,43],[297,1],[298,1],[303,44],[308,45],[239,1],[310,46],[312,47],[313,1],[306,1],[314,1],[315,1],[317,48],[305,49],[304,50],[311,1],[318,1],[309,1],[319,10],[136,51],[137,51],[139,52],[140,53],[141,54],[142,55],[143,56],[144,57],[145,58],[146,59],[147,60],[148,61],[149,61],[151,62],[150,63],[152,62],[153,64],[154,65],[138,66],[188,1],[155,67],[156,68],[157,69],[189,70],[158,71],[159,72],[160,73],[161,74],[162,75],[163,76],[164,77],[165,78],[166,79],[167,80],[168,80],[169,81],[170,82],[172,83],[171,84],[173,85],[174,86],[175,1],[176,87],[177,88],[178,89],[179,90],[180,91],[181,92],[182,93],[183,94],[184,95],[185,96],[186,97],[187,98],[320,1],[321,1],[322,1],[323,1],[324,1],[325,99],[326,1],[327,1],[302,1],[301,1],[300,100],[299,1],[307,101],[328,102],[331,103],[330,104],[332,105],[329,14],[316,1],[333,10],[334,106],[235,107],[236,108],[237,109],[192,110],[205,111],[193,111],[135,112],[195,111],[196,111],[198,113],[199,111],[207,111],[200,111],[197,111],[203,111],[206,114],[208,111],[194,111],[209,111],[201,111],[202,111],[210,114],[204,111],[214,115],[131,1],[218,116],[93,117],[222,117],[81,1],[83,118],[94,117],[84,117],[82,1],[95,1],[96,119],[97,117],[87,120],[91,121],[89,1],[99,122],[88,1],[85,117],[120,123],[100,117],[101,117],[103,124],[90,117],[104,1],[105,125],[92,117],[106,117],[107,117],[108,117],[109,117],[110,117],[130,126],[111,117],[102,1],[86,127],[112,117],[121,128],[122,1],[123,129],[124,130],[125,130],[126,131],[128,132],[113,117],[127,117],[129,133],[98,1],[114,122],[115,122],[119,134],[116,1],[117,135],[118,117],[211,136],[226,137],[219,138],[190,139],[221,140],[191,141],[227,142],[223,143],[224,144],[225,145],[228,146],[230,147],[229,148],[77,149],[76,150],[74,1],[75,1],[80,151],[78,152],[79,1],[215,153],[133,154],[134,155],[132,156],[216,157],[212,158],[233,1],[231,159],[220,160],[232,1],[213,161],[217,162],[234,163],[46,1],[47,1],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[36,1],[33,1],[34,1],[35,1],[37,1],[7,1],[38,1],[48,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[1,1],[45,1],[11,1],[10,1]],"exportedModulesMap":[[286,164],[288,164],[289,165],[287,166],[283,7],[269,8],[60,1],[62,9],[63,1],[270,10],[61,1],[53,1],[54,1],[280,11],[279,11],[278,12],[277,1],[275,1],[276,13],[281,10],[282,14],[65,1],[64,1],[273,15],[271,1],[274,14],[55,16],[59,1],[71,1],[272,1],[70,17],[56,16],[58,18],[57,16],[51,9],[50,1],[52,1],[69,19],[66,1],[67,20],[68,1],[268,21],[261,22],[260,23],[251,24],[252,25],[253,26],[250,27],[249,1],[265,24],[264,28],[266,29],[247,30],[246,30],[244,31],[245,30],[255,32],[258,33],[254,32],[257,1],[248,32],[256,31],[267,1],[238,34],[241,35],[242,36],[262,1],[259,37],[243,38],[263,39],[240,40],[73,1],[72,1],[291,41],[292,1],[293,1],[294,42],[295,1],[296,1],[290,43],[297,1],[298,1],[303,44],[308,45],[239,1],[310,46],[312,47],[313,1],[306,1],[314,1],[315,1],[317,48],[305,49],[304,50],[311,1],[318,1],[309,1],[319,10],[136,51],[137,51],[139,52],[140,53],[141,54],[142,55],[143,56],[144,57],[145,58],[146,59],[147,60],[148,61],[149,61],[151,62],[150,63],[152,62],[153,64],[154,65],[138,66],[188,1],[155,67],[156,68],[157,69],[189,70],[158,71],[159,72],[160,73],[161,74],[162,75],[163,76],[164,77],[165,78],[166,79],[167,80],[168,80],[169,81],[170,82],[172,83],[171,84],[173,85],[174,86],[175,1],[176,87],[177,88],[178,89],[179,90],[180,91],[181,92],[182,93],[183,94],[184,95],[185,96],[186,97],[187,98],[320,1],[321,1],[322,1],[323,1],[324,1],[325,99],[326,1],[327,1],[302,1],[301,1],[300,100],[299,1],[307,101],[328,102],[331,103],[330,104],[332,105],[329,14],[316,1],[333,10],[334,106],[235,107],[236,108],[237,109],[192,110],[205,111],[193,111],[135,112],[195,111],[196,111],[198,113],[199,111],[207,111],[200,111],[197,111],[203,111],[206,114],[208,111],[194,111],[209,111],[201,111],[202,111],[210,114],[204,111],[214,115],[131,1],[218,116],[93,117],[222,117],[81,1],[83,118],[94,117],[84,117],[82,1],[95,1],[96,119],[97,117],[87,120],[91,121],[89,1],[99,122],[88,1],[85,117],[120,123],[100,117],[101,117],[103,124],[90,117],[104,1],[105,125],[92,117],[106,117],[107,117],[108,117],[109,117],[110,117],[130,126],[111,117],[102,1],[86,127],[112,117],[121,128],[122,1],[123,129],[124,130],[125,130],[126,131],[128,132],[113,117],[127,117],[129,133],[98,1],[114,122],[115,122],[119,134],[116,1],[117,135],[118,117],[211,136],[226,137],[219,138],[190,139],[221,140],[191,141],[227,142],[223,143],[224,144],[225,145],[228,146],[230,147],[229,148],[77,149],[76,150],[74,1],[75,1],[80,151],[78,152],[79,1],[215,153],[133,154],[134,155],[132,156],[216,157],[212,158],[233,1],[231,159],[220,160],[232,1],[213,161],[217,162],[234,163],[46,1],[47,1],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[36,1],[33,1],[34,1],[35,1],[37,1],[7,1],[38,1],[48,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[1,1],[45,1],[11,1],[10,1]],"semanticDiagnosticsPerFile":[49,286,288,289,287,285,284,283,269,60,62,63,270,61,53,54,280,279,278,277,275,276,281,282,65,64,273,271,274,55,59,71,272,70,56,58,57,51,50,52,69,66,67,68,268,261,260,251,252,253,250,249,265,264,266,247,246,244,245,255,258,254,257,248,256,267,238,241,242,262,259,243,263,240,73,72,291,292,293,294,295,296,290,297,298,303,308,239,310,312,313,306,314,315,317,305,304,311,318,309,319,136,137,139,140,141,142,143,144,145,146,147,148,149,151,150,152,153,154,138,188,155,156,157,189,158,159,160,161,162,163,164,165,166,167,168,169,170,172,171,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,320,321,322,323,324,325,326,327,302,301,300,299,307,328,331,330,332,329,316,333,334,235,236,237,192,205,193,135,195,196,198,199,207,200,197,203,206,208,194,209,201,202,210,204,214,131,218,93,222,81,83,94,84,82,95,96,97,87,91,89,99,88,85,120,100,101,103,90,104,105,92,106,107,108,109,110,130,111,102,86,112,121,122,123,124,125,126,128,113,127,129,98,114,115,119,116,117,118,211,226,219,190,221,191,227,223,224,225,228,230,229,77,76,74,75,80,78,79,215,133,134,132,216,212,233,231,220,232,213,217,234,46,47,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,48,43,44,39,40,41,42,1,45,11,10],"latestChangedDtsFile":"./src/index.d.ts"},"version":"5.1.6"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/csv",
3
- "version": "4.0.0-alpha.24",
3
+ "version": "4.0.0-alpha.25",
4
4
  "description": "Framework-independent loader for CSV and DSV table formats",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -30,11 +30,11 @@
30
30
  "build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/dist.min.js"
31
31
  },
32
32
  "dependencies": {
33
- "@loaders.gl/loader-utils": "4.0.0-alpha.24",
34
- "@loaders.gl/schema": "4.0.0-alpha.24"
33
+ "@loaders.gl/loader-utils": "4.0.0-alpha.25",
34
+ "@loaders.gl/schema": "4.0.0-alpha.25"
35
35
  },
36
36
  "devDependencies": {
37
37
  "d3-dsv": "^1.2.0"
38
38
  },
39
- "gitHead": "97a8990595c132fb14e3445a8768d9f4cb98ff05"
39
+ "gitHead": "40135f391b869388dbbcd615bbe51178d0c370be"
40
40
  }
package/src/csv-loader.ts CHANGED
@@ -20,6 +20,8 @@ type ObjectSchema = {[key: string]: ObjectField} | ObjectField[];
20
20
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
21
21
  const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
22
22
 
23
+ const DEFAULT_CSV_SHAPE = 'object-row-table';
24
+
23
25
  export type CSVLoaderOptions = LoaderOptions & {
24
26
  csv?: {
25
27
  // loaders.gl options
@@ -60,7 +62,7 @@ export const CSVLoader: LoaderWithParser<Table, TableBatch, CSVLoaderOptions> =
60
62
  // testText: null,
61
63
  options: {
62
64
  csv: {
63
- shape: 'object-row-table',
65
+ shape: DEFAULT_CSV_SHAPE, // 'object-row-table'
64
66
  optimizeMemoryUsage: false,
65
67
  // CSV options
66
68
  header: 'auto',
@@ -108,7 +110,8 @@ async function parseCSV(
108
110
 
109
111
  const headerRow = result.meta.fields || generateHeader(csvOptions.columnPrefix!, firstRow.length);
110
112
 
111
- switch (csvOptions.shape || 'object-row-table') {
113
+ const shape = csvOptions.shape || DEFAULT_CSV_SHAPE;
114
+ switch (shape) {
112
115
  case 'object-row-table':
113
116
  return {
114
117
  shape: 'object-row-table',
@@ -119,8 +122,9 @@ async function parseCSV(
119
122
  shape: 'array-row-table',
120
123
  data: rows.map((row) => (Array.isArray(row) ? row : convertToArrayRow(row, headerRow)))
121
124
  };
125
+ default:
126
+ throw new Error(shape);
122
127
  }
123
- throw new Error(csvOptions.shape);
124
128
  }
125
129
 
126
130
  // TODO - support batch size 0 = no batching/single batch?
@@ -162,7 +166,7 @@ function parseCSVInBatches(
162
166
  skipEmptyLines: false,
163
167
 
164
168
  // step is called on every row
165
- // eslint-disable-next-line complexity
169
+ // eslint-disable-next-line complexity, max-statements
166
170
  step(results) {
167
171
  let row = results.data;
168
172
 
@@ -200,6 +204,8 @@ function parseCSVInBatches(
200
204
  row = JSON.parse(JSON.stringify(row));
201
205
  }
202
206
 
207
+ const shape = csvOptions.shape || DEFAULT_CSV_SHAPE;
208
+
203
209
  // Add the row
204
210
  tableBatchBuilder =
205
211
  tableBatchBuilder ||
@@ -207,7 +213,7 @@ function parseCSVInBatches(
207
213
  // @ts-expect-error TODO this is not a proper schema
208
214
  schema,
209
215
  {
210
- shape: csvOptions.shape || 'array-row-table',
216
+ shape,
211
217
  ...options
212
218
  }
213
219
  );
package/src/csv-writer.ts CHANGED
@@ -1,18 +1,16 @@
1
1
  // loaders.gl, MIT license
2
2
 
3
3
  /* global TextEncoder */
4
- import type {Writer} from '@loaders.gl/loader-utils';
4
+ import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';
5
5
  import type {Table, TableBatch} from '@loaders.gl/schema';
6
- import type {CSVWriterOptions} from './lib/encoders/encode-csv';
7
6
  import {encodeTableAsCSV} from './lib/encoders/encode-csv';
8
7
 
9
- export type {CSVWriterOptions};
10
-
11
- const DEFAULT_WRITER_OPTIONS: Required<CSVWriterOptions> = {
12
- csv: {
13
- useDisplayNames: false
14
- },
15
- useDisplayNames: false
8
+ export type CSVWriterOptions = WriterOptions & {
9
+ csv?: {
10
+ useDisplayNames?: boolean;
11
+ };
12
+ /** @deprecated */
13
+ useDisplayNames?: boolean;
16
14
  };
17
15
 
18
16
  export const CSVWriter: Writer<Table, TableBatch, CSVWriterOptions> = {
@@ -22,9 +20,15 @@ export const CSVWriter: Writer<Table, TableBatch, CSVWriterOptions> = {
22
20
  name: 'CSV',
23
21
  extensions: ['csv'],
24
22
  mimeTypes: ['text/csv'],
25
- options: DEFAULT_WRITER_OPTIONS,
23
+ options: {
24
+ csv: {
25
+ useDisplayNames: false
26
+ },
27
+ /** @deprecated use csv.displayNames */
28
+ useDisplayNames: false
29
+ },
26
30
  text: true,
27
31
  encode: async (table, options) =>
28
32
  new TextEncoder().encode(encodeTableAsCSV(table, options)).buffer,
29
- encodeText: (table, options) => encodeTableAsCSV(table, options)
33
+ encodeTextSync: (table, options) => encodeTableAsCSV(table, options)
30
34
  };
@@ -3,17 +3,10 @@
3
3
 
4
4
  import {Table, makeArrayRowIterator, getTableNumCols} from '@loaders.gl/schema';
5
5
  import {csvFormatRows} from 'd3-dsv';
6
+ import type {CSVWriterOptions} from '../../csv-writer';
6
7
 
7
8
  type EncodableData = string | null;
8
9
 
9
- export type CSVWriterOptions = {
10
- csv?: {
11
- useDisplayNames?: boolean;
12
- };
13
- /** @deprecated */
14
- useDisplayNames?: boolean;
15
- };
16
-
17
10
  /**
18
11
  * Encode a Table object as CSV
19
12
  */