@kepler.gl/duckdb 3.1.0-alpha.6
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/components/index.d.ts +1 -0
- package/dist/components/index.js +17 -0
- package/dist/components/monaco-editor.d.ts +14 -0
- package/dist/components/monaco-editor.js +176 -0
- package/dist/components/preview-data-panel.d.ts +33 -0
- package/dist/components/preview-data-panel.js +138 -0
- package/dist/components/schema-panel.d.ts +4 -0
- package/dist/components/schema-panel.js +150 -0
- package/dist/components/sql-panel.d.ts +6 -0
- package/dist/components/sql-panel.js +199 -0
- package/dist/components/tree.d.ts +28 -0
- package/dist/components/tree.js +90 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +25 -0
- package/dist/init.d.ts +19 -0
- package/dist/init.js +154 -0
- package/dist/plugin.d.ts +3 -0
- package/dist/plugin.js +32 -0
- package/dist/processors/data-processor.d.ts +18 -0
- package/dist/processors/data-processor.js +328 -0
- package/dist/table/duckdb-table.d.ts +37 -0
- package/dist/table/duckdb-table.js +443 -0
- package/dist/utils/perf.d.ts +4 -0
- package/dist/utils/perf.js +46 -0
- package/package.json +57 -0
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.KeplerGlDuckDbTable = void 0;
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
14
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
|
+
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
17
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
18
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
19
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
20
|
+
var arrow = _interopRequireWildcard(require("apache-arrow"));
|
|
21
|
+
var _constants = require("@kepler.gl/constants");
|
|
22
|
+
var _table = require("@kepler.gl/table");
|
|
23
|
+
var _processors = require("@kepler.gl/processors");
|
|
24
|
+
var _init = require("../init");
|
|
25
|
+
var _dataProcessor = require("../processors/data-processor");
|
|
26
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
27
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
28
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
29
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
30
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
31
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
32
|
+
function _superPropGet(t, e, r, o) { var p = (0, _get2["default"])((0, _getPrototypeOf2["default"])(1 & o ? t.prototype : t), e, r); return 2 & o ? function (t) { return p.apply(r, t); } : p; } // SPDX-License-Identifier: MIT
|
|
33
|
+
// Copyright contributors to the kepler.gl project
|
|
34
|
+
// TODO format geojson, all binary geogson columns should be tranformed to wkb
|
|
35
|
+
var GEOMETRY_COLUMN = 'geom';
|
|
36
|
+
/**
|
|
37
|
+
* Creates an arrow table from arrow vectors and fields.
|
|
38
|
+
* @param columns An array of arrow vectors.
|
|
39
|
+
* @param fields An array of fields per arrow vector.
|
|
40
|
+
* @returns An arrow table.
|
|
41
|
+
*/
|
|
42
|
+
// TODO: consider using original drag&dropped arrow table, as it could contain extra metadata, not passed to the fields.
|
|
43
|
+
var restoreArrowTable = function restoreArrowTable(columns, fields) {
|
|
44
|
+
var creaOpts = {};
|
|
45
|
+
fields.map(function (field, index) {
|
|
46
|
+
creaOpts[field.name] = columns[index];
|
|
47
|
+
});
|
|
48
|
+
return new arrow.Table(creaOpts);
|
|
49
|
+
};
|
|
50
|
+
var dropIfTableExists = /*#__PURE__*/function () {
|
|
51
|
+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(c, tableName) {
|
|
52
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
53
|
+
while (1) switch (_context.prev = _context.next) {
|
|
54
|
+
case 0:
|
|
55
|
+
_context.prev = 0;
|
|
56
|
+
_context.next = 3;
|
|
57
|
+
return c.query("DROP TABLE IF EXISTS \"".concat(tableName, "\";"));
|
|
58
|
+
case 3:
|
|
59
|
+
_context.next = 8;
|
|
60
|
+
break;
|
|
61
|
+
case 5:
|
|
62
|
+
_context.prev = 5;
|
|
63
|
+
_context.t0 = _context["catch"](0);
|
|
64
|
+
console.error('Dropping table failed', tableName, _context.t0);
|
|
65
|
+
case 8:
|
|
66
|
+
case "end":
|
|
67
|
+
return _context.stop();
|
|
68
|
+
}
|
|
69
|
+
}, _callee, null, [[0, 5]]);
|
|
70
|
+
}));
|
|
71
|
+
return function dropIfTableExists(_x, _x2) {
|
|
72
|
+
return _ref.apply(this, arguments);
|
|
73
|
+
};
|
|
74
|
+
}();
|
|
75
|
+
var KeplerGlDuckDbTable = exports.KeplerGlDuckDbTable = /*#__PURE__*/function (_KeplerTable) {
|
|
76
|
+
function KeplerGlDuckDbTable(props) {
|
|
77
|
+
(0, _classCallCheck2["default"])(this, KeplerGlDuckDbTable);
|
|
78
|
+
return _callSuper(this, KeplerGlDuckDbTable, [props]);
|
|
79
|
+
}
|
|
80
|
+
(0, _inherits2["default"])(KeplerGlDuckDbTable, _KeplerTable);
|
|
81
|
+
return (0, _createClass2["default"])(KeplerGlDuckDbTable, [{
|
|
82
|
+
key: "importRowData",
|
|
83
|
+
value: function () {
|
|
84
|
+
var _importRowData = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(_ref2) {
|
|
85
|
+
var data, db, c, fields, rows, rowsForDb, columns, createTableSql;
|
|
86
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
87
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
88
|
+
case 0:
|
|
89
|
+
data = _ref2.data, db = _ref2.db, c = _ref2.c;
|
|
90
|
+
_context2.prev = 1;
|
|
91
|
+
fields = data.fields, rows = data.rows; // DATASET_FORMATS.keplergl loads data as any[][] instead of [{}]
|
|
92
|
+
// TODO potential memory usage explosion: original data, new object and then DuckDb table
|
|
93
|
+
rowsForDb = Array.isArray(rows[0]) ? rows.map(function (row) {
|
|
94
|
+
var newRow = {};
|
|
95
|
+
row.forEach(function (value, index) {
|
|
96
|
+
newRow[fields[index].name] = value;
|
|
97
|
+
});
|
|
98
|
+
return newRow;
|
|
99
|
+
}) : rows;
|
|
100
|
+
_context2.next = 6;
|
|
101
|
+
return db.registerFileText(this.id, JSON.stringify(rowsForDb));
|
|
102
|
+
case 6:
|
|
103
|
+
columns = fields.reduce(function (acc, field, index) {
|
|
104
|
+
// @ts-expect-error TODO extend fields to contain duckDBColumnType
|
|
105
|
+
return "".concat(acc).concat(index > 0 ? ',' : '', " '").concat(field.name, "': '").concat(field.duckDBColumnType, "'");
|
|
106
|
+
}, '');
|
|
107
|
+
createTableSql = "\n CREATE TABLE '".concat(this.label, "' AS\n SELECT *\n FROM read_json('").concat(this.id, "',\n columns = {").concat(columns, "});\n ");
|
|
108
|
+
_context2.next = 10;
|
|
109
|
+
return c.query(createTableSql);
|
|
110
|
+
case 10:
|
|
111
|
+
_context2.next = 15;
|
|
112
|
+
break;
|
|
113
|
+
case 12:
|
|
114
|
+
_context2.prev = 12;
|
|
115
|
+
_context2.t0 = _context2["catch"](1);
|
|
116
|
+
console.log('importRowData', _context2.t0);
|
|
117
|
+
case 15:
|
|
118
|
+
case "end":
|
|
119
|
+
return _context2.stop();
|
|
120
|
+
}
|
|
121
|
+
}, _callee2, this, [[1, 12]]);
|
|
122
|
+
}));
|
|
123
|
+
function importRowData(_x3) {
|
|
124
|
+
return _importRowData.apply(this, arguments);
|
|
125
|
+
}
|
|
126
|
+
return importRowData;
|
|
127
|
+
}()
|
|
128
|
+
}, {
|
|
129
|
+
key: "importGeoJsonData",
|
|
130
|
+
value: function () {
|
|
131
|
+
var _importGeoJsonData = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(_ref3) {
|
|
132
|
+
var data, db, c, rows, createTableSql;
|
|
133
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
134
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
135
|
+
case 0:
|
|
136
|
+
data = _ref3.data, db = _ref3.db, c = _ref3.c;
|
|
137
|
+
_context3.prev = 1;
|
|
138
|
+
rows = data.rows;
|
|
139
|
+
_context3.next = 5;
|
|
140
|
+
return db.registerFileText(this.id, JSON.stringify(rows));
|
|
141
|
+
case 5:
|
|
142
|
+
createTableSql = "\n install spatial;\n load spatial;\n CREATE TABLE '".concat(this.label, "' AS \n SELECT *\n FROM ST_READ('").concat(this.id, "');\n ");
|
|
143
|
+
_context3.next = 8;
|
|
144
|
+
return c.query(createTableSql);
|
|
145
|
+
case 8:
|
|
146
|
+
_context3.next = 13;
|
|
147
|
+
break;
|
|
148
|
+
case 10:
|
|
149
|
+
_context3.prev = 10;
|
|
150
|
+
_context3.t0 = _context3["catch"](1);
|
|
151
|
+
console.error('importGeoJsonData', _context3.t0);
|
|
152
|
+
case 13:
|
|
153
|
+
case "end":
|
|
154
|
+
return _context3.stop();
|
|
155
|
+
}
|
|
156
|
+
}, _callee3, this, [[1, 10]]);
|
|
157
|
+
}));
|
|
158
|
+
function importGeoJsonData(_x4) {
|
|
159
|
+
return _importGeoJsonData.apply(this, arguments);
|
|
160
|
+
}
|
|
161
|
+
return importGeoJsonData;
|
|
162
|
+
}()
|
|
163
|
+
}, {
|
|
164
|
+
key: "importArrowData",
|
|
165
|
+
value: function () {
|
|
166
|
+
var _importArrowData = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(_ref4) {
|
|
167
|
+
var data, db, c, arrowTable, setupSql;
|
|
168
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
169
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
170
|
+
case 0:
|
|
171
|
+
data = _ref4.data, db = _ref4.db, c = _ref4.c;
|
|
172
|
+
_context4.prev = 1;
|
|
173
|
+
// 1) data.rows contains an arrow table created by Add to Map data from DuckDb query.
|
|
174
|
+
// 2) arrow table is in cols & fields when a file is dragged & dropped into Add Data To Map dialog.
|
|
175
|
+
arrowTable = data.rows instanceof arrow.Table ? data.rows : restoreArrowTable(data.cols || [], data.fields);
|
|
176
|
+
setupSql = "\n install spatial;\n load spatial;\n ";
|
|
177
|
+
_context4.next = 6;
|
|
178
|
+
return c.query(setupSql);
|
|
179
|
+
case 6:
|
|
180
|
+
_context4.next = 8;
|
|
181
|
+
return c.insertArrowTable(arrowTable, {
|
|
182
|
+
name: this.label
|
|
183
|
+
});
|
|
184
|
+
case 8:
|
|
185
|
+
_context4.next = 13;
|
|
186
|
+
break;
|
|
187
|
+
case 10:
|
|
188
|
+
_context4.prev = 10;
|
|
189
|
+
_context4.t0 = _context4["catch"](1);
|
|
190
|
+
// Known issues:
|
|
191
|
+
// 1) Arrow Type with extension name: geoarrow.point and format: +w:2 is not currently supported in DuckDB.
|
|
192
|
+
console.error('importArrowData', _context4.t0);
|
|
193
|
+
case 13:
|
|
194
|
+
case "end":
|
|
195
|
+
return _context4.stop();
|
|
196
|
+
}
|
|
197
|
+
}, _callee4, this, [[1, 10]]);
|
|
198
|
+
}));
|
|
199
|
+
function importArrowData(_x5) {
|
|
200
|
+
return _importArrowData.apply(this, arguments);
|
|
201
|
+
}
|
|
202
|
+
return importArrowData;
|
|
203
|
+
}()
|
|
204
|
+
/**
|
|
205
|
+
* Creates a table from data, returns an arrow table with the data
|
|
206
|
+
* @param data
|
|
207
|
+
* @returns {Promise<{fields: Field[], cols: any[]}>}
|
|
208
|
+
*/
|
|
209
|
+
}, {
|
|
210
|
+
key: "createTableAndGetArrow",
|
|
211
|
+
value: (function () {
|
|
212
|
+
var _createTableAndGetArrow = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(data) {
|
|
213
|
+
var db, c, tableName, format, _data$rows, _data$rows2, _data$rows3, _data$cols, fields, cols, _data$fields, dummyResult, hasBinaryGeoField, arrowResult, geoField;
|
|
214
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
215
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
216
|
+
case 0:
|
|
217
|
+
_context5.next = 2;
|
|
218
|
+
return (0, _init.getDuckDB)();
|
|
219
|
+
case 2:
|
|
220
|
+
db = _context5.sent;
|
|
221
|
+
_context5.next = 5;
|
|
222
|
+
return db.connect();
|
|
223
|
+
case 5:
|
|
224
|
+
c = _context5.sent;
|
|
225
|
+
tableName = this.label;
|
|
226
|
+
_context5.next = 9;
|
|
227
|
+
return dropIfTableExists(c, tableName);
|
|
228
|
+
case 9:
|
|
229
|
+
format = this.metadata.format;
|
|
230
|
+
if (!format) {
|
|
231
|
+
// format is missing when we load Kepler.gl examples
|
|
232
|
+
if (Array.isArray((_data$rows = data.rows) === null || _data$rows === void 0 ? void 0 : _data$rows[0]) || (0, _typeof2["default"])((_data$rows2 = data.rows) === null || _data$rows2 === void 0 ? void 0 : _data$rows2[0]) === 'object') {
|
|
233
|
+
format = _constants.DATASET_FORMATS.row;
|
|
234
|
+
} else if (((_data$rows3 = data.rows) === null || _data$rows3 === void 0 ? void 0 : _data$rows3.type) === 'FeatureCollection') {
|
|
235
|
+
format = _constants.DATASET_FORMATS.geojson;
|
|
236
|
+
} else if (((_data$cols = data.cols) === null || _data$cols === void 0 ? void 0 : _data$cols[0]) instanceof arrow.Vector) {
|
|
237
|
+
format = _constants.DATASET_FORMATS.arrow;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
if (!(format === _constants.DATASET_FORMATS.row)) {
|
|
241
|
+
_context5.next = 16;
|
|
242
|
+
break;
|
|
243
|
+
}
|
|
244
|
+
_context5.next = 14;
|
|
245
|
+
return this.importRowData({
|
|
246
|
+
data: data,
|
|
247
|
+
db: db,
|
|
248
|
+
c: c
|
|
249
|
+
});
|
|
250
|
+
case 14:
|
|
251
|
+
_context5.next = 27;
|
|
252
|
+
break;
|
|
253
|
+
case 16:
|
|
254
|
+
if (!(format === _constants.DATASET_FORMATS.geojson)) {
|
|
255
|
+
_context5.next = 21;
|
|
256
|
+
break;
|
|
257
|
+
}
|
|
258
|
+
_context5.next = 19;
|
|
259
|
+
return this.importGeoJsonData({
|
|
260
|
+
data: data,
|
|
261
|
+
db: db,
|
|
262
|
+
c: c
|
|
263
|
+
});
|
|
264
|
+
case 19:
|
|
265
|
+
_context5.next = 27;
|
|
266
|
+
break;
|
|
267
|
+
case 21:
|
|
268
|
+
if (!(format === _constants.DATASET_FORMATS.arrow)) {
|
|
269
|
+
_context5.next = 26;
|
|
270
|
+
break;
|
|
271
|
+
}
|
|
272
|
+
_context5.next = 24;
|
|
273
|
+
return this.importArrowData({
|
|
274
|
+
data: data,
|
|
275
|
+
db: db,
|
|
276
|
+
c: c
|
|
277
|
+
});
|
|
278
|
+
case 24:
|
|
279
|
+
_context5.next = 27;
|
|
280
|
+
break;
|
|
281
|
+
case 26:
|
|
282
|
+
console.error('Unrecognized format', format);
|
|
283
|
+
case 27:
|
|
284
|
+
fields = [];
|
|
285
|
+
cols = [];
|
|
286
|
+
_context5.prev = 29;
|
|
287
|
+
_context5.next = 32;
|
|
288
|
+
return c.query("\n SELECT * FROM '".concat(tableName, "' LIMIT 0;\n "));
|
|
289
|
+
case 32:
|
|
290
|
+
dummyResult = _context5.sent;
|
|
291
|
+
hasBinaryGeoField = Boolean(dummyResult.schema.fields.find(function (f) {
|
|
292
|
+
return f.name === GEOMETRY_COLUMN && arrow.DataType.isBinary(f.type);
|
|
293
|
+
})); // TODO don't do this for all columns named 'geom', check whether it's a wkb and not something else!
|
|
294
|
+
// query and transform geometry column to wkb
|
|
295
|
+
_context5.next = 36;
|
|
296
|
+
return c.query("SELECT * ".concat(hasBinaryGeoField ? "EXCLUDE ".concat(GEOMETRY_COLUMN, ", ST_AsWKB(").concat(GEOMETRY_COLUMN, ") as ").concat(GEOMETRY_COLUMN) : '', " FROM '").concat(tableName, "';"));
|
|
297
|
+
case 36:
|
|
298
|
+
arrowResult = _context5.sent;
|
|
299
|
+
geoField = arrowResult.schema.fields.find(function (f) {
|
|
300
|
+
return f.name === GEOMETRY_COLUMN && arrow.DataType.isBinary(f.type);
|
|
301
|
+
});
|
|
302
|
+
geoField === null || geoField === void 0 || geoField.metadata.set('ARROW:extension:name', 'geoarrow.wkb');
|
|
303
|
+
fields = (_data$fields = data.fields) !== null && _data$fields !== void 0 ? _data$fields : (0, _processors.arrowSchemaToFields)(arrowResult.schema);
|
|
304
|
+
cols = (0, _toConsumableArray2["default"])(Array(arrowResult.numCols).keys()).map(function (i) {
|
|
305
|
+
return arrowResult.getChildAt(i);
|
|
306
|
+
}).filter(function (col) {
|
|
307
|
+
return col;
|
|
308
|
+
});
|
|
309
|
+
_context5.next = 46;
|
|
310
|
+
break;
|
|
311
|
+
case 43:
|
|
312
|
+
_context5.prev = 43;
|
|
313
|
+
_context5.t0 = _context5["catch"](29);
|
|
314
|
+
// Known issues:
|
|
315
|
+
// 1) ST_AsWKB binder error, no type match
|
|
316
|
+
console.error('DuckDb table: binary geometry column to wkb', _context5.t0);
|
|
317
|
+
case 46:
|
|
318
|
+
_context5.next = 48;
|
|
319
|
+
return c.close();
|
|
320
|
+
case 48:
|
|
321
|
+
return _context5.abrupt("return", {
|
|
322
|
+
fields: fields,
|
|
323
|
+
cols: cols
|
|
324
|
+
});
|
|
325
|
+
case 49:
|
|
326
|
+
case "end":
|
|
327
|
+
return _context5.stop();
|
|
328
|
+
}
|
|
329
|
+
}, _callee5, this, [[29, 43]]);
|
|
330
|
+
}));
|
|
331
|
+
function createTableAndGetArrow(_x6) {
|
|
332
|
+
return _createTableAndGetArrow.apply(this, arguments);
|
|
333
|
+
}
|
|
334
|
+
return createTableAndGetArrow;
|
|
335
|
+
}())
|
|
336
|
+
}, {
|
|
337
|
+
key: "importData",
|
|
338
|
+
value: function () {
|
|
339
|
+
var _importData = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(_ref5) {
|
|
340
|
+
var data, _yield$this$createTab, fields, cols;
|
|
341
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
342
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
343
|
+
case 0:
|
|
344
|
+
data = _ref5.data;
|
|
345
|
+
if (!(this.type === _constants.DatasetType.VECTOR_TILE)) {
|
|
346
|
+
_context6.next = 4;
|
|
347
|
+
break;
|
|
348
|
+
}
|
|
349
|
+
_superPropGet(KeplerGlDuckDbTable, "importData", this, 3)([{
|
|
350
|
+
data: _objectSpread(_objectSpread({}, data), {}, {
|
|
351
|
+
rows: []
|
|
352
|
+
})
|
|
353
|
+
}]);
|
|
354
|
+
return _context6.abrupt("return");
|
|
355
|
+
case 4:
|
|
356
|
+
_context6.next = 6;
|
|
357
|
+
return this.createTableAndGetArrow(data);
|
|
358
|
+
case 6:
|
|
359
|
+
_yield$this$createTab = _context6.sent;
|
|
360
|
+
fields = _yield$this$createTab.fields;
|
|
361
|
+
cols = _yield$this$createTab.cols;
|
|
362
|
+
_superPropGet(KeplerGlDuckDbTable, "importData", this, 3)([{
|
|
363
|
+
data: {
|
|
364
|
+
fields: fields,
|
|
365
|
+
cols: cols,
|
|
366
|
+
rows: []
|
|
367
|
+
}
|
|
368
|
+
}]);
|
|
369
|
+
case 10:
|
|
370
|
+
case "end":
|
|
371
|
+
return _context6.stop();
|
|
372
|
+
}
|
|
373
|
+
}, _callee6, this);
|
|
374
|
+
}));
|
|
375
|
+
function importData(_x7) {
|
|
376
|
+
return _importData.apply(this, arguments);
|
|
377
|
+
}
|
|
378
|
+
return importData;
|
|
379
|
+
}()
|
|
380
|
+
}, {
|
|
381
|
+
key: "update",
|
|
382
|
+
value: function () {
|
|
383
|
+
var _update = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(data) {
|
|
384
|
+
var _yield$this$createTab2, cols;
|
|
385
|
+
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
386
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
387
|
+
case 0:
|
|
388
|
+
if (!(this.type === _constants.DatasetType.VECTOR_TILE)) {
|
|
389
|
+
_context7.next = 3;
|
|
390
|
+
break;
|
|
391
|
+
}
|
|
392
|
+
_superPropGet(KeplerGlDuckDbTable, "importData", this, 3)([{
|
|
393
|
+
data: data
|
|
394
|
+
}]);
|
|
395
|
+
return _context7.abrupt("return", this);
|
|
396
|
+
case 3:
|
|
397
|
+
_context7.next = 5;
|
|
398
|
+
return this.createTableAndGetArrow(data);
|
|
399
|
+
case 5:
|
|
400
|
+
_yield$this$createTab2 = _context7.sent;
|
|
401
|
+
cols = _yield$this$createTab2.cols;
|
|
402
|
+
return _context7.abrupt("return", _superPropGet(KeplerGlDuckDbTable, "update", this, 3)([{
|
|
403
|
+
cols: cols,
|
|
404
|
+
rows: [],
|
|
405
|
+
fields: []
|
|
406
|
+
}]));
|
|
407
|
+
case 8:
|
|
408
|
+
case "end":
|
|
409
|
+
return _context7.stop();
|
|
410
|
+
}
|
|
411
|
+
}, _callee7, this);
|
|
412
|
+
}));
|
|
413
|
+
function update(_x8) {
|
|
414
|
+
return _update.apply(this, arguments);
|
|
415
|
+
}
|
|
416
|
+
return update;
|
|
417
|
+
}()
|
|
418
|
+
}]);
|
|
419
|
+
}(_table.KeplerTable);
|
|
420
|
+
(0, _defineProperty2["default"])(KeplerGlDuckDbTable, "getFileProcessor", function (data, inputFormat) {
|
|
421
|
+
var processor;
|
|
422
|
+
var format;
|
|
423
|
+
if (inputFormat === _constants.DATASET_FORMATS.arrow || (0, _processors.isArrowData)(data)) {
|
|
424
|
+
format = _constants.DATASET_FORMATS.arrow;
|
|
425
|
+
// TODO injest arrow files from disk without loaders
|
|
426
|
+
processor = _processors.processArrowBatches;
|
|
427
|
+
} else if (inputFormat === _constants.DATASET_FORMATS.keplergl || (0, _processors.isKeplerGlMap)(data)) {
|
|
428
|
+
format = _constants.DATASET_FORMATS.keplergl;
|
|
429
|
+
processor = _dataProcessor.processKeplerglJSONforDuckDb;
|
|
430
|
+
} else if (inputFormat === _constants.DATASET_FORMATS.row || (0, _processors.isRowObject)(data)) {
|
|
431
|
+
// csv file goes here
|
|
432
|
+
format = _constants.DATASET_FORMATS.row;
|
|
433
|
+
processor = _dataProcessor.processCsvRowObject; // directly import json object into duckdb-wasm
|
|
434
|
+
} else if (inputFormat === _constants.DATASET_FORMATS.geojson || (0, _processors.isGeoJson)(data)) {
|
|
435
|
+
format = _constants.DATASET_FORMATS.geojson;
|
|
436
|
+
processor = _dataProcessor.processGeojson;
|
|
437
|
+
}
|
|
438
|
+
return {
|
|
439
|
+
processor: processor,
|
|
440
|
+
format: format
|
|
441
|
+
};
|
|
442
|
+
});
|
|
443
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcnJvdyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9jb25zdGFudHMiLCJfdGFibGUiLCJfcHJvY2Vzc29ycyIsIl9pbml0IiwiX2RhdGFQcm9jZXNzb3IiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YzIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJfc3VwZXJQcm9wR2V0IiwicCIsIl9nZXQyIiwiR0VPTUVUUllfQ09MVU1OIiwicmVzdG9yZUFycm93VGFibGUiLCJjb2x1bW5zIiwiZmllbGRzIiwiY3JlYU9wdHMiLCJtYXAiLCJmaWVsZCIsImluZGV4IiwibmFtZSIsIlRhYmxlIiwiZHJvcElmVGFibGVFeGlzdHMiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJjIiwidGFibGVOYW1lIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInF1ZXJ5IiwiY29uY2F0IiwidDAiLCJjb25zb2xlIiwiZXJyb3IiLCJzdG9wIiwiX3giLCJfeDIiLCJLZXBsZXJHbER1Y2tEYlRhYmxlIiwiZXhwb3J0cyIsIl9LZXBsZXJUYWJsZSIsInByb3BzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwidmFsdWUiLCJfaW1wb3J0Um93RGF0YSIsIl9jYWxsZWUyIiwiX3JlZjIiLCJkYXRhIiwiZGIiLCJyb3dzIiwicm93c0ZvckRiIiwiY3JlYXRlVGFibGVTcWwiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJBcnJheSIsImlzQXJyYXkiLCJyb3ciLCJuZXdSb3ciLCJyZWdpc3RlckZpbGVUZXh0IiwiaWQiLCJKU09OIiwic3RyaW5naWZ5IiwicmVkdWNlIiwiYWNjIiwiZHVja0RCQ29sdW1uVHlwZSIsImxhYmVsIiwibG9nIiwiaW1wb3J0Um93RGF0YSIsIl94MyIsIl9pbXBvcnRHZW9Kc29uRGF0YSIsIl9jYWxsZWUzIiwiX3JlZjMiLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJpbXBvcnRHZW9Kc29uRGF0YSIsIl94NCIsIl9pbXBvcnRBcnJvd0RhdGEiLCJfY2FsbGVlNCIsIl9yZWY0IiwiYXJyb3dUYWJsZSIsInNldHVwU3FsIiwiX2NhbGxlZTQkIiwiX2NvbnRleHQ0IiwiY29scyIsImluc2VydEFycm93VGFibGUiLCJpbXBvcnRBcnJvd0RhdGEiLCJfeDUiLCJfY3JlYXRlVGFibGVBbmRHZXRBcnJvdyIsIl9jYWxsZWU1IiwiZm9ybWF0IiwiX2RhdGEkcm93cyIsIl9kYXRhJHJvd3MyIiwiX2RhdGEkcm93czMiLCJfZGF0YSRjb2xzIiwiX2RhdGEkZmllbGRzIiwiZHVtbXlSZXN1bHQiLCJoYXNCaW5hcnlHZW9GaWVsZCIsImFycm93UmVzdWx0IiwiZ2VvRmllbGQiLCJfY2FsbGVlNSQiLCJfY29udGV4dDUiLCJnZXREdWNrREIiLCJzZW50IiwiY29ubmVjdCIsIm1ldGFkYXRhIiwiX3R5cGVvZjIiLCJEQVRBU0VUX0ZPUk1BVFMiLCJ0eXBlIiwiZ2VvanNvbiIsIlZlY3RvciIsInNjaGVtYSIsImZpbmQiLCJmIiwiRGF0YVR5cGUiLCJpc0JpbmFyeSIsImFycm93U2NoZW1hVG9GaWVsZHMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwibnVtQ29scyIsImdldENoaWxkQXQiLCJjb2wiLCJjbG9zZSIsImFicnVwdCIsImNyZWF0ZVRhYmxlQW5kR2V0QXJyb3ciLCJfeDYiLCJfaW1wb3J0RGF0YSIsIl9jYWxsZWU2IiwiX3JlZjUiLCJfeWllbGQkdGhpcyRjcmVhdGVUYWIiLCJfY2FsbGVlNiQiLCJfY29udGV4dDYiLCJEYXRhc2V0VHlwZSIsIlZFQ1RPUl9USUxFIiwiaW1wb3J0RGF0YSIsIl94NyIsIl91cGRhdGUiLCJfY2FsbGVlNyIsIl95aWVsZCR0aGlzJGNyZWF0ZVRhYjIiLCJfY2FsbGVlNyQiLCJfY29udGV4dDciLCJ1cGRhdGUiLCJfeDgiLCJLZXBsZXJUYWJsZSIsImlucHV0Rm9ybWF0IiwicHJvY2Vzc29yIiwiaXNBcnJvd0RhdGEiLCJwcm9jZXNzQXJyb3dCYXRjaGVzIiwia2VwbGVyZ2wiLCJpc0tlcGxlckdsTWFwIiwicHJvY2Vzc0tlcGxlcmdsSlNPTmZvckR1Y2tEYiIsImlzUm93T2JqZWN0IiwicHJvY2Vzc0NzdlJvd09iamVjdCIsImlzR2VvSnNvbiIsInByb2Nlc3NHZW9qc29uIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RhYmxlL2R1Y2tkYi10YWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgKiBhcyBhcnJvdyBmcm9tICdhcGFjaGUtYXJyb3cnO1xuaW1wb3J0IHtBc3luY0R1Y2tEQiwgQXN5bmNEdWNrREJDb25uZWN0aW9ufSBmcm9tICdAZHVja2RiL2R1Y2tkYi13YXNtJztcblxuaW1wb3J0IHtEYXRhc2V0VHlwZSwgREFUQVNFVF9GT1JNQVRTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0tlcGxlclRhYmxlfSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcbmltcG9ydCB7RmllbGQsIFByb3RvRGF0YXNldEZpZWxkfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIGFycm93U2NoZW1hVG9GaWVsZHMsXG4gIGlzQXJyb3dEYXRhLFxuICBpc0dlb0pzb24sXG4gIGlzS2VwbGVyR2xNYXAsXG4gIGlzUm93T2JqZWN0LFxuICBwcm9jZXNzQXJyb3dCYXRjaGVzXG59IGZyb20gJ0BrZXBsZXIuZ2wvcHJvY2Vzc29ycyc7XG5cbmltcG9ydCB7Z2V0RHVja0RCfSBmcm9tICcuLi9pbml0JztcbmltcG9ydCB7XG4gIHByb2Nlc3NDc3ZSb3dPYmplY3QsXG4gIHByb2Nlc3NHZW9qc29uLFxuICBwcm9jZXNzS2VwbGVyZ2xKU09OZm9yRHVja0RiLFxuICBQcm9jZXNzb3JSZXN1bHRcbn0gZnJvbSAnLi4vcHJvY2Vzc29ycy9kYXRhLXByb2Nlc3Nvcic7XG5cbi8vIFRPRE8gZm9ybWF0IGdlb2pzb24sIGFsbCBiaW5hcnkgZ2VvZ3NvbiBjb2x1bW5zIHNob3VsZCBiZSB0cmFuZm9ybWVkIHRvIHdrYlxuY29uc3QgR0VPTUVUUllfQ09MVU1OID0gJ2dlb20nO1xuXG50eXBlIEltcG9ydERhdGFUb0R1Y2tQcm9wcyA9IHtcbiAgZGF0YTogUHJvY2Vzc29yUmVzdWx0O1xuICBkYjogQXN5bmNEdWNrREI7XG4gIGM6IEFzeW5jRHVja0RCQ29ubmVjdGlvbjtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJvdyB0YWJsZSBmcm9tIGFycm93IHZlY3RvcnMgYW5kIGZpZWxkcy5cbiAqIEBwYXJhbSBjb2x1bW5zIEFuIGFycmF5IG9mIGFycm93IHZlY3RvcnMuXG4gKiBAcGFyYW0gZmllbGRzIEFuIGFycmF5IG9mIGZpZWxkcyBwZXIgYXJyb3cgdmVjdG9yLlxuICogQHJldHVybnMgQW4gYXJyb3cgdGFibGUuXG4gKi9cbi8vIFRPRE86IGNvbnNpZGVyIHVzaW5nIG9yaWdpbmFsIGRyYWcmZHJvcHBlZCBhcnJvdyB0YWJsZSwgYXMgaXQgY291bGQgY29udGFpbiBleHRyYSBtZXRhZGF0YSwgbm90IHBhc3NlZCB0byB0aGUgZmllbGRzLlxuY29uc3QgcmVzdG9yZUFycm93VGFibGUgPSAoY29sdW1uczogYXJyb3cuVmVjdG9yW10sIGZpZWxkczogUHJvdG9EYXRhc2V0RmllbGRbXSkgPT4ge1xuICBjb25zdCBjcmVhT3B0cyA9IHt9O1xuICBmaWVsZHMubWFwKChmaWVsZCwgaW5kZXgpID0+IHtcbiAgICBjcmVhT3B0c1tmaWVsZC5uYW1lXSA9IGNvbHVtbnNbaW5kZXhdO1xuICB9KTtcbiAgcmV0dXJuIG5ldyBhcnJvdy5UYWJsZShjcmVhT3B0cyk7XG59O1xuXG5jb25zdCBkcm9wSWZUYWJsZUV4aXN0cyA9IGFzeW5jIChjOiBBc3luY0R1Y2tEQkNvbm5lY3Rpb24sIHRhYmxlTmFtZTogc3RyaW5nKSA9PiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgYy5xdWVyeShgRFJPUCBUQUJMRSBJRiBFWElTVFMgXCIke3RhYmxlTmFtZX1cIjtgKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdEcm9wcGluZyB0YWJsZSBmYWlsZWQnLCB0YWJsZU5hbWUsIGVycm9yKTtcbiAgfVxufTtcblxuZXhwb3J0IGNsYXNzIEtlcGxlckdsRHVja0RiVGFibGUgZXh0ZW5kcyBLZXBsZXJUYWJsZSB7XG4gIGRlY2xhcmUgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgZGVjbGFyZSBsYWJlbDogc3RyaW5nO1xuICBkZWNsYXJlIHR5cGU6IHN0cmluZztcbiAgZGVjbGFyZSBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIGFzeW5jIGltcG9ydFJvd0RhdGEoe2RhdGEsIGRiLCBjfTogSW1wb3J0RGF0YVRvRHVja1Byb3BzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHtmaWVsZHMsIHJvd3N9ID0gZGF0YTtcblxuICAgICAgLy8gREFUQVNFVF9GT1JNQVRTLmtlcGxlcmdsIGxvYWRzIGRhdGEgYXMgYW55W11bXSBpbnN0ZWFkIG9mIFt7fV1cbiAgICAgIC8vIFRPRE8gcG90ZW50aWFsIG1lbW9yeSB1c2FnZSBleHBsb3Npb246IG9yaWdpbmFsIGRhdGEsIG5ldyBvYmplY3QgYW5kIHRoZW4gRHVja0RiIHRhYmxlXG4gICAgICBjb25zdCByb3dzRm9yRGIgPSBBcnJheS5pc0FycmF5KHJvd3NbMF0pXG4gICAgICAgID8gcm93cy5tYXAocm93ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1JvdyA9IHt9O1xuICAgICAgICAgICAgcm93LmZvckVhY2goKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBuZXdSb3dbZmllbGRzW2luZGV4XS5uYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gbmV3Um93O1xuICAgICAgICAgIH0pXG4gICAgICAgIDogcm93cztcblxuICAgICAgYXdhaXQgZGIucmVnaXN0ZXJGaWxlVGV4dCh0aGlzLmlkLCBKU09OLnN0cmluZ2lmeShyb3dzRm9yRGIpKTtcblxuICAgICAgY29uc3QgY29sdW1ucyA9IGZpZWxkcy5yZWR1Y2UoKGFjYywgZmllbGQsIGluZGV4KSA9PiB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETyBleHRlbmQgZmllbGRzIHRvIGNvbnRhaW4gZHVja0RCQ29sdW1uVHlwZVxuICAgICAgICByZXR1cm4gYCR7YWNjfSR7aW5kZXggPiAwID8gJywnIDogJyd9ICcke2ZpZWxkLm5hbWV9JzogJyR7ZmllbGQuZHVja0RCQ29sdW1uVHlwZX0nYDtcbiAgICAgIH0sICcnKTtcblxuICAgICAgY29uc3QgY3JlYXRlVGFibGVTcWwgPSBgXG4gICAgICAgIENSRUFURSBUQUJMRSAnJHt0aGlzLmxhYmVsfScgQVNcbiAgICAgICAgU0VMRUNUICpcbiAgICAgICAgRlJPTSByZWFkX2pzb24oJyR7dGhpcy5pZH0nLFxuICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zID0geyR7Y29sdW1uc319KTtcbiAgICAgIGA7XG4gICAgICBhd2FpdCBjLnF1ZXJ5KGNyZWF0ZVRhYmxlU3FsKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coJ2ltcG9ydFJvd0RhdGEnLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaW1wb3J0R2VvSnNvbkRhdGEoe2RhdGEsIGRiLCBjfTogSW1wb3J0RGF0YVRvRHVja1Byb3BzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHtyb3dzfSA9IGRhdGE7XG4gICAgICBhd2FpdCBkYi5yZWdpc3RlckZpbGVUZXh0KHRoaXMuaWQsIEpTT04uc3RyaW5naWZ5KHJvd3MpKTtcblxuICAgICAgY29uc3QgY3JlYXRlVGFibGVTcWwgPSBgXG4gICAgICAgIGluc3RhbGwgc3BhdGlhbDtcbiAgICAgICAgbG9hZCBzcGF0aWFsO1xuICAgICAgICBDUkVBVEUgVEFCTEUgJyR7dGhpcy5sYWJlbH0nIEFTIFxuICAgICAgICBTRUxFQ1QgKlxuICAgICAgICBGUk9NIFNUX1JFQUQoJyR7dGhpcy5pZH0nKTtcbiAgICAgIGA7XG4gICAgICBhd2FpdCBjLnF1ZXJ5KGNyZWF0ZVRhYmxlU3FsKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignaW1wb3J0R2VvSnNvbkRhdGEnLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaW1wb3J0QXJyb3dEYXRhKHtkYXRhLCBkYiwgY306IEltcG9ydERhdGFUb0R1Y2tQcm9wcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICAvLyAxKSBkYXRhLnJvd3MgY29udGFpbnMgYW4gYXJyb3cgdGFibGUgY3JlYXRlZCBieSBBZGQgdG8gTWFwIGRhdGEgZnJvbSBEdWNrRGIgcXVlcnkuXG4gICAgICAvLyAyKSBhcnJvdyB0YWJsZSBpcyBpbiBjb2xzICYgZmllbGRzIHdoZW4gYSBmaWxlIGlzIGRyYWdnZWQgJiBkcm9wcGVkIGludG8gQWRkIERhdGEgVG8gTWFwIGRpYWxvZy5cbiAgICAgIGNvbnN0IGFycm93VGFibGUgPVxuICAgICAgICBkYXRhLnJvd3MgaW5zdGFuY2VvZiBhcnJvdy5UYWJsZVxuICAgICAgICAgID8gZGF0YS5yb3dzXG4gICAgICAgICAgOiByZXN0b3JlQXJyb3dUYWJsZShkYXRhLmNvbHMgfHwgW10sIGRhdGEuZmllbGRzKTtcblxuICAgICAgY29uc3Qgc2V0dXBTcWwgPSBgXG4gICAgICAgIGluc3RhbGwgc3BhdGlhbDtcbiAgICAgICAgbG9hZCBzcGF0aWFsO1xuICAgICAgYDtcbiAgICAgIGF3YWl0IGMucXVlcnkoc2V0dXBTcWwpO1xuICAgICAgYXdhaXQgYy5pbnNlcnRBcnJvd1RhYmxlKGFycm93VGFibGUsIHtuYW1lOiB0aGlzLmxhYmVsfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIEtub3duIGlzc3VlczpcbiAgICAgIC8vIDEpIEFycm93IFR5cGUgd2l0aCBleHRlbnNpb24gbmFtZTogZ2VvYXJyb3cucG9pbnQgYW5kIGZvcm1hdDogK3c6MiBpcyBub3QgY3VycmVudGx5IHN1cHBvcnRlZCBpbiBEdWNrREIuXG4gICAgICBjb25zb2xlLmVycm9yKCdpbXBvcnRBcnJvd0RhdGEnLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB0YWJsZSBmcm9tIGRhdGEsIHJldHVybnMgYW4gYXJyb3cgdGFibGUgd2l0aCB0aGUgZGF0YVxuICAgKiBAcGFyYW0gZGF0YVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7ZmllbGRzOiBGaWVsZFtdLCBjb2xzOiBhbnlbXX0+fVxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZVRhYmxlQW5kR2V0QXJyb3coZGF0YSk6IFByb21pc2U8e2ZpZWxkczogYW55W107IGNvbHM6IGFycm93LlZlY3RvcltdfT4ge1xuICAgIGNvbnN0IGRiID0gYXdhaXQgZ2V0RHVja0RCKCk7XG4gICAgY29uc3QgYyA9IGF3YWl0IGRiLmNvbm5lY3QoKTtcblxuICAgIGNvbnN0IHRhYmxlTmFtZSA9IHRoaXMubGFiZWw7XG4gICAgYXdhaXQgZHJvcElmVGFibGVFeGlzdHMoYywgdGFibGVOYW1lKTtcblxuICAgIGxldCBmb3JtYXQgPSB0aGlzLm1ldGFkYXRhLmZvcm1hdDtcbiAgICBpZiAoIWZvcm1hdCkge1xuICAgICAgLy8gZm9ybWF0IGlzIG1pc3Npbmcgd2hlbiB3ZSBsb2FkIEtlcGxlci5nbCBleGFtcGxlc1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YS5yb3dzPy5bMF0pIHx8IHR5cGVvZiBkYXRhLnJvd3M/LlswXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgZm9ybWF0ID0gREFUQVNFVF9GT1JNQVRTLnJvdztcbiAgICAgIH0gZWxzZSBpZiAoZGF0YS5yb3dzPy50eXBlID09PSAnRmVhdHVyZUNvbGxlY3Rpb24nKSB7XG4gICAgICAgIGZvcm1hdCA9IERBVEFTRVRfRk9STUFUUy5nZW9qc29uO1xuICAgICAgfSBlbHNlIGlmIChkYXRhLmNvbHM/LlswXSBpbnN0YW5jZW9mIGFycm93LlZlY3Rvcikge1xuICAgICAgICBmb3JtYXQgPSBEQVRBU0VUX0ZPUk1BVFMuYXJyb3c7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZvcm1hdCA9PT0gREFUQVNFVF9GT1JNQVRTLnJvdykge1xuICAgICAgYXdhaXQgdGhpcy5pbXBvcnRSb3dEYXRhKHtkYXRhLCBkYiwgY30pO1xuICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSBEQVRBU0VUX0ZPUk1BVFMuZ2VvanNvbikge1xuICAgICAgYXdhaXQgdGhpcy5pbXBvcnRHZW9Kc29uRGF0YSh7ZGF0YSwgZGIsIGN9KTtcbiAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gREFUQVNFVF9GT1JNQVRTLmFycm93KSB7XG4gICAgICBhd2FpdCB0aGlzLmltcG9ydEFycm93RGF0YSh7ZGF0YSwgZGIsIGN9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignVW5yZWNvZ25pemVkIGZvcm1hdCcsIGZvcm1hdCk7XG4gICAgfVxuXG4gICAgbGV0IGZpZWxkczogRmllbGRbXSA9IFtdO1xuICAgIGxldCBjb2xzOiBhcnJvdy5WZWN0b3JbXSA9IFtdO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFdlIG5lZWQgdG8gdHJhbnNmb3JtIHRoZSBiaW5hcnkgZ2VvbWV0cnkgY29sdW1uIHRvIHByb3BlciB3a2IuXG4gICAgICAvLyBGaXJzdCBjaGVjayB3aGV0aGVyIHN1Y2ggYSBjb2x1bW4gZXhpc3RzLCB0aGVuIHF1ZXJ5IHdpdGggU1RfQXNXS0IuXG4gICAgICBjb25zdCBkdW1teVJlc3VsdCA9IGF3YWl0IGMucXVlcnkoYFxuICAgICAgICBTRUxFQ1QgKiBGUk9NICcke3RhYmxlTmFtZX0nIExJTUlUIDA7XG4gICAgICBgKTtcbiAgICAgIGNvbnN0IGhhc0JpbmFyeUdlb0ZpZWxkID0gQm9vbGVhbihcbiAgICAgICAgZHVtbXlSZXN1bHQuc2NoZW1hLmZpZWxkcy5maW5kKFxuICAgICAgICAgIGYgPT4gZi5uYW1lID09PSBHRU9NRVRSWV9DT0xVTU4gJiYgYXJyb3cuRGF0YVR5cGUuaXNCaW5hcnkoZi50eXBlKVxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgICAvLyBUT0RPIGRvbid0IGRvIHRoaXMgZm9yIGFsbCBjb2x1bW5zIG5hbWVkICdnZW9tJywgY2hlY2sgd2hldGhlciBpdCdzIGEgd2tiIGFuZCBub3Qgc29tZXRoaW5nIGVsc2UhXG4gICAgICAvLyBxdWVyeSBhbmQgdHJhbnNmb3JtIGdlb21ldHJ5IGNvbHVtbiB0byB3a2JcbiAgICAgIGNvbnN0IGFycm93UmVzdWx0ID0gYXdhaXQgYy5xdWVyeShcbiAgICAgICAgYFNFTEVDVCAqICR7XG4gICAgICAgICAgaGFzQmluYXJ5R2VvRmllbGRcbiAgICAgICAgICAgID8gYEVYQ0xVREUgJHtHRU9NRVRSWV9DT0xVTU59LCBTVF9Bc1dLQigke0dFT01FVFJZX0NPTFVNTn0pIGFzICR7R0VPTUVUUllfQ09MVU1OfWBcbiAgICAgICAgICAgIDogJydcbiAgICAgICAgfSBGUk9NICcke3RhYmxlTmFtZX0nO2BcbiAgICAgICk7XG4gICAgICBjb25zdCBnZW9GaWVsZCA9IGFycm93UmVzdWx0LnNjaGVtYS5maWVsZHMuZmluZChcbiAgICAgICAgZiA9PiBmLm5hbWUgPT09IEdFT01FVFJZX0NPTFVNTiAmJiBhcnJvdy5EYXRhVHlwZS5pc0JpbmFyeShmLnR5cGUpXG4gICAgICApO1xuICAgICAgZ2VvRmllbGQ/Lm1ldGFkYXRhLnNldCgnQVJST1c6ZXh0ZW5zaW9uOm5hbWUnLCAnZ2VvYXJyb3cud2tiJyk7XG5cbiAgICAgIGZpZWxkcyA9IGRhdGEuZmllbGRzID8/IGFycm93U2NoZW1hVG9GaWVsZHMoYXJyb3dSZXN1bHQuc2NoZW1hKTtcbiAgICAgIGNvbHMgPSBbLi4uQXJyYXkoYXJyb3dSZXN1bHQubnVtQ29scykua2V5cygpXVxuICAgICAgICAubWFwKGkgPT4gYXJyb3dSZXN1bHQuZ2V0Q2hpbGRBdChpKSlcbiAgICAgICAgLmZpbHRlcihjb2wgPT4gY29sKSBhcyBhcnJvdy5WZWN0b3JbXTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gS25vd24gaXNzdWVzOlxuICAgICAgLy8gMSkgU1RfQXNXS0IgYmluZGVyIGVycm9yLCBubyB0eXBlIG1hdGNoXG4gICAgICBjb25zb2xlLmVycm9yKCdEdWNrRGIgdGFibGU6IGJpbmFyeSBnZW9tZXRyeSBjb2x1bW4gdG8gd2tiJywgZXJyb3IpO1xuICAgIH1cblxuICAgIGF3YWl0IGMuY2xvc2UoKTtcblxuICAgIHJldHVybiB7ZmllbGRzLCBjb2xzfTtcbiAgfVxuXG4gIGFzeW5jIGltcG9ydERhdGEoe2RhdGF9OiB7ZGF0YTogUHJvY2Vzc29yUmVzdWx0fSk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFZlY3RvclRpbGUgaXMgYSBzcGVjaWFsIGNhc2UsIGlnbm9yZSBmb3Igbm93XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gRGF0YXNldFR5cGUuVkVDVE9SX1RJTEUpIHtcbiAgICAgIHN1cGVyLmltcG9ydERhdGEoe2RhdGE6IHsuLi5kYXRhLCByb3dzOiBbXX19KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7ZmllbGRzLCBjb2xzfSA9IGF3YWl0IHRoaXMuY3JlYXRlVGFibGVBbmRHZXRBcnJvdyhkYXRhKTtcblxuICAgIHN1cGVyLmltcG9ydERhdGEoe2RhdGE6IHtmaWVsZHMsIGNvbHMsIHJvd3M6IFtdfX0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlKGRhdGEpIHtcbiAgICAvLyBWZWN0b3JUaWxlIGlzIGEgc3BlY2lhbCBjYXNlLCBpZ25vcmUgZm9yIG5vd1xuICAgIGlmICh0aGlzLnR5cGUgPT09IERhdGFzZXRUeXBlLlZFQ1RPUl9USUxFKSB7XG4gICAgICBzdXBlci5pbXBvcnREYXRhKHtkYXRhfSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBjb25zdCB7Y29sc30gPSBhd2FpdCB0aGlzLmNyZWF0ZVRhYmxlQW5kR2V0QXJyb3coZGF0YSk7XG5cbiAgICByZXR1cm4gc3VwZXIudXBkYXRlKHtjb2xzLCByb3dzOiBbXSwgZmllbGRzOiBbXX0pO1xuICB9XG5cbiAgc3RhdGljIGdldEZpbGVQcm9jZXNzb3IgPSBmdW5jdGlvbiAoZGF0YTogYW55LCBpbnB1dEZvcm1hdD86IHN0cmluZykge1xuICAgIGxldCBwcm9jZXNzb3I7XG4gICAgbGV0IGZvcm1hdDtcbiAgICBpZiAoaW5wdXRGb3JtYXQgPT09IERBVEFTRVRfRk9STUFUUy5hcnJvdyB8fCBpc0Fycm93RGF0YShkYXRhKSkge1xuICAgICAgZm9ybWF0ID0gREFUQVNFVF9GT1JNQVRTLmFycm93O1xuICAgICAgLy8gVE9ETyBpbmplc3QgYXJyb3cgZmlsZXMgZnJvbSBkaXNrIHdpdGhvdXQgbG9hZGVyc1xuICAgICAgcHJvY2Vzc29yID0gcHJvY2Vzc0Fycm93QmF0Y2hlcztcbiAgICB9IGVsc2UgaWYgKGlucHV0Rm9ybWF0ID09PSBEQVRBU0VUX0ZPUk1BVFMua2VwbGVyZ2wgfHwgaXNLZXBsZXJHbE1hcChkYXRhKSkge1xuICAgICAgZm9ybWF0ID0gREFUQVNFVF9GT1JNQVRTLmtlcGxlcmdsO1xuICAgICAgcHJvY2Vzc29yID0gcHJvY2Vzc0tlcGxlcmdsSlNPTmZvckR1Y2tEYjtcbiAgICB9IGVsc2UgaWYgKGlucHV0Rm9ybWF0ID09PSBEQVRBU0VUX0ZPUk1BVFMucm93IHx8IGlzUm93T2JqZWN0KGRhdGEpKSB7XG4gICAgICAvLyBjc3YgZmlsZSBnb2VzIGhlcmVcbiAgICAgIGZvcm1hdCA9IERBVEFTRVRfRk9STUFUUy5yb3c7XG4gICAgICBwcm9jZXNzb3IgPSBwcm9jZXNzQ3N2Um93T2JqZWN0OyAvLyBkaXJlY3RseSBpbXBvcnQganNvbiBvYmplY3QgaW50byBkdWNrZGItd2FzbVxuICAgIH0gZWxzZSBpZiAoaW5wdXRGb3JtYXQgPT09IERBVEFTRVRfRk9STUFUUy5nZW9qc29uIHx8IGlzR2VvSnNvbihkYXRhKSkge1xuICAgICAgZm9ybWF0ID0gREFUQVNFVF9GT1JNQVRTLmdlb2pzb247XG4gICAgICBwcm9jZXNzb3IgPSBwcm9jZXNzR2VvanNvbjtcbiAgICB9XG4gICAgcmV0dXJuIHtwcm9jZXNzb3IsIGZvcm1hdH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxLQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFHQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFB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
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.logElapsedTime = void 0;
|
|
7
|
+
// SPDX-License-Identifier: MIT
|
|
8
|
+
// Copyright contributors to the kepler.gl project
|
|
9
|
+
|
|
10
|
+
// git@github.com:holdenmatt/duckdb-wasm-kit.git
|
|
11
|
+
var FgRed = '\x1b[31m';
|
|
12
|
+
var ResetColors = '\x1b[0m';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Format a time interval between start/end timestamps.
|
|
16
|
+
*
|
|
17
|
+
* If no end time is given, use the current time.
|
|
18
|
+
*/
|
|
19
|
+
var formatElapsedTime = function formatElapsedTime(label, start) {
|
|
20
|
+
var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
|
21
|
+
var endTime = end !== null && end !== void 0 ? end : performance.now();
|
|
22
|
+
var elapsed = endTime - start;
|
|
23
|
+
var timeString;
|
|
24
|
+
switch (true) {
|
|
25
|
+
case elapsed >= 1000:
|
|
26
|
+
timeString = "".concat((elapsed / 1000).toFixed(1), "s");
|
|
27
|
+
break;
|
|
28
|
+
case elapsed >= 1:
|
|
29
|
+
timeString = "".concat(elapsed.toFixed(0), "ms");
|
|
30
|
+
break;
|
|
31
|
+
default:
|
|
32
|
+
timeString = "".concat(elapsed.toFixed(3), "ms");
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
var message = "".concat(FgRed, "[").concat(timeString, "] ").concat(ResetColors).concat(label);
|
|
36
|
+
return message;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Print the elapsed time to console.debug.
|
|
41
|
+
*/
|
|
42
|
+
var logElapsedTime = exports.logElapsedTime = function logElapsedTime(label, start) {
|
|
43
|
+
var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
|
44
|
+
console.debug(formatElapsedTime(label, start, end));
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGZ1JlZCIsIlJlc2V0Q29sb3JzIiwiZm9ybWF0RWxhcHNlZFRpbWUiLCJsYWJlbCIsInN0YXJ0IiwiZW5kIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiZW5kVGltZSIsInBlcmZvcm1hbmNlIiwibm93IiwiZWxhcHNlZCIsInRpbWVTdHJpbmciLCJjb25jYXQiLCJ0b0ZpeGVkIiwibWVzc2FnZSIsImxvZ0VsYXBzZWRUaW1lIiwiZXhwb3J0cyIsImNvbnNvbGUiLCJkZWJ1ZyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9wZXJmLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIGdpdEBnaXRodWIuY29tOmhvbGRlbm1hdHQvZHVja2RiLXdhc20ta2l0LmdpdFxuY29uc3QgRmdSZWQgPSAnXFx4MWJbMzFtJztcbmNvbnN0IFJlc2V0Q29sb3JzID0gJ1xceDFiWzBtJztcblxuLyoqXG4gKiBGb3JtYXQgYSB0aW1lIGludGVydmFsIGJldHdlZW4gc3RhcnQvZW5kIHRpbWVzdGFtcHMuXG4gKlxuICogSWYgbm8gZW5kIHRpbWUgaXMgZ2l2ZW4sIHVzZSB0aGUgY3VycmVudCB0aW1lLlxuICovXG5jb25zdCBmb3JtYXRFbGFwc2VkVGltZSA9IChcbiAgbGFiZWw6IHN0cmluZyxcbiAgc3RhcnQ6IG51bWJlcixcbiAgZW5kOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGVuZFRpbWUgPSBlbmQgPz8gcGVyZm9ybWFuY2Uubm93KCk7XG4gIGNvbnN0IGVsYXBzZWQgPSBlbmRUaW1lIC0gc3RhcnQ7XG5cbiAgbGV0IHRpbWVTdHJpbmc6IHN0cmluZztcbiAgc3dpdGNoICh0cnVlKSB7XG4gICAgY2FzZSBlbGFwc2VkID49IDEwMDA6XG4gICAgICB0aW1lU3RyaW5nID0gYCR7KGVsYXBzZWQgLyAxMDAwKS50b0ZpeGVkKDEpfXNgO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBlbGFwc2VkID49IDE6XG4gICAgICB0aW1lU3RyaW5nID0gYCR7ZWxhcHNlZC50b0ZpeGVkKDApfW1zYDtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aW1lU3RyaW5nID0gYCR7ZWxhcHNlZC50b0ZpeGVkKDMpfW1zYDtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgY29uc3QgbWVzc2FnZSA9IGAke0ZnUmVkfVske3RpbWVTdHJpbmd9XSAke1Jlc2V0Q29sb3JzfSR7bGFiZWx9YDtcbiAgcmV0dXJuIG1lc3NhZ2U7XG59O1xuXG4vKipcbiAqIFByaW50IHRoZSBlbGFwc2VkIHRpbWUgdG8gY29uc29sZS5kZWJ1Zy5cbiAqL1xuZXhwb3J0IGNvbnN0IGxvZ0VsYXBzZWRUaW1lID0gKFxuICBsYWJlbDogc3RyaW5nLFxuICBzdGFydDogbnVtYmVyLFxuICBlbmQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuKSA9PiB7XG4gIGNvbnNvbGUuZGVidWcoZm9ybWF0RWxhcHNlZFRpbWUobGFiZWwsIHN0YXJ0LCBlbmQpKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7O0FBRUE7QUFDQSxJQUFNQSxLQUFLLEdBQUcsVUFBVTtBQUN4QixJQUFNQyxXQUFXLEdBQUcsU0FBUzs7QUFFN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQ3JCQyxLQUFhLEVBQ2JDLEtBQWEsRUFFRjtFQUFBLElBRFhDLEdBQXVCLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHRSxTQUFTO0VBRW5DLElBQU1DLE9BQU8sR0FBR0osR0FBRyxhQUFIQSxHQUFHLGNBQUhBLEdBQUcsR0FBSUssV0FBVyxDQUFDQyxHQUFHLENBQUMsQ0FBQztFQUN4QyxJQUFNQyxPQUFPLEdBQUdILE9BQU8sR0FBR0wsS0FBSztFQUUvQixJQUFJUyxVQUFrQjtFQUN0QixRQUFRLElBQUk7SUFDVixLQUFLRCxPQUFPLElBQUksSUFBSTtNQUNsQkMsVUFBVSxNQUFBQyxNQUFBLENBQU0sQ0FBQ0YsT0FBTyxHQUFHLElBQUksRUFBRUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFHO01BQzlDO0lBQ0YsS0FBS0gsT0FBTyxJQUFJLENBQUM7TUFDZkMsVUFBVSxNQUFBQyxNQUFBLENBQU1GLE9BQU8sQ0FBQ0csT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFJO01BQ3RDO0lBQ0Y7TUFDRUYsVUFBVSxNQUFBQyxNQUFBLENBQU1GLE9BQU8sQ0FBQ0csT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFJO01BQ3RDO0VBQ0o7RUFFQSxJQUFNQyxPQUFPLE1BQUFGLE1BQUEsQ0FBTWQsS0FBSyxPQUFBYyxNQUFBLENBQUlELFVBQVUsUUFBQUMsTUFBQSxDQUFLYixXQUFXLEVBQUFhLE1BQUEsQ0FBR1gsS0FBSyxDQUFFO0VBQ2hFLE9BQU9hLE9BQU87QUFDaEIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDTyxJQUFNQyxjQUFjLEdBQUFDLE9BQUEsQ0FBQUQsY0FBQSxHQUFHLFNBQWpCQSxjQUFjQSxDQUN6QmQsS0FBYSxFQUNiQyxLQUFhLEVBRVY7RUFBQSxJQURIQyxHQUF1QixHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBR0UsU0FBUztFQUVuQ1csT0FBTyxDQUFDQyxLQUFLLENBQUNsQixpQkFBaUIsQ0FBQ0MsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JELENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/package.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@kepler.gl/duckdb",
|
|
3
|
+
"author": "Shan He <heshan0131@gmail.com>",
|
|
4
|
+
"version": "3.1.0-alpha.6",
|
|
5
|
+
"description": "DuckDB plugin for Kepler.gl",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"keywords": [
|
|
10
|
+
"duckdb"
|
|
11
|
+
],
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "https://github.com/keplergl/kepler.gl.git"
|
|
15
|
+
},
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "rm -fr dist && babel src --out-dir dist --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/*.d.ts'",
|
|
18
|
+
"build:umd": "NODE_OPTIONS=--openssl-legacy-provider webpack --config ./webpack/umd.js --progress --env.prod",
|
|
19
|
+
"build:types": "tsc --project ./tsconfig.production.json",
|
|
20
|
+
"prepublishOnly": "babel-node ../../scripts/license-header/bin --license ../../FILE-HEADER && yarn build && yarn build:types",
|
|
21
|
+
"stab": "mkdir -p dist && touch dist/index.js"
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"dist",
|
|
25
|
+
"umd"
|
|
26
|
+
],
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@duckdb/duckdb-wasm": "^1.28.0",
|
|
29
|
+
"@kepler.gl/common-utils": "3.1.0-alpha.6",
|
|
30
|
+
"@kepler.gl/constants": "3.1.0-alpha.6",
|
|
31
|
+
"@kepler.gl/processors": "3.1.0-alpha.6",
|
|
32
|
+
"@kepler.gl/table": "3.1.0-alpha.6",
|
|
33
|
+
"@kepler.gl/types": "3.1.0-alpha.6",
|
|
34
|
+
"@monaco-editor/react": "^4.6.0",
|
|
35
|
+
"@radix-ui/react-collapsible": "^1.1.0",
|
|
36
|
+
"apache-arrow": ">=15.0.0",
|
|
37
|
+
"monaco-editor": "^0.52.0",
|
|
38
|
+
"react-resizable-panels": "^2.1.7"
|
|
39
|
+
},
|
|
40
|
+
"nyc": {
|
|
41
|
+
"sourceMap": false,
|
|
42
|
+
"instrument": false
|
|
43
|
+
},
|
|
44
|
+
"maintainers": [
|
|
45
|
+
"Shan He <heshan0131@gmail.com>",
|
|
46
|
+
"Igor Dykhta <dikhta.igor@gmail.com>",
|
|
47
|
+
"Ilya Boyandin <ilya@boyandin.me>"
|
|
48
|
+
],
|
|
49
|
+
"engines": {
|
|
50
|
+
"node": ">=18"
|
|
51
|
+
},
|
|
52
|
+
"volta": {
|
|
53
|
+
"node": "18.18.2",
|
|
54
|
+
"yarn": "4.4.0"
|
|
55
|
+
},
|
|
56
|
+
"packageManager": "yarn@4.4.0"
|
|
57
|
+
}
|